diff options
author | Feng Qian <fqian@google.com> | 2009-06-17 12:12:20 -0700 |
---|---|---|
committer | Feng Qian <fqian@google.com> | 2009-06-17 12:12:20 -0700 |
commit | 5f1ab04193ad0130ca8204aadaceae083aca9881 (patch) | |
tree | 5a92cd389e2cfe7fb67197ce14b38469462379f8 /WebCore/ChangeLog | |
parent | 194315e5a908cc8ed67d597010544803eef1ac59 (diff) | |
download | external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.zip external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.tar.gz external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.tar.bz2 |
Get WebKit r44544.
Diffstat (limited to 'WebCore/ChangeLog')
-rw-r--r-- | WebCore/ChangeLog | 24495 |
1 files changed, 24494 insertions, 1 deletions
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog index 164a9fd..c132fb9 100644 --- a/WebCore/ChangeLog +++ b/WebCore/ChangeLog @@ -1,3 +1,24496 @@ +2009-06-09 Darin Fisher <darin@chromium.org> + + Fix Chromium build bustage. + + CachedResource.cpp no longer compiles if USE(JSC) is not defined. The + problem is that this file is using a macro from StdLibExtras.h without + including that file. It just happenes to get that file via a JSC + specific include. + + * loader/CachedResource.cpp: + +2009-06-09 Dean McNamee <deanm@chromium.org> + + Reviewed by Oliver Hunt. + + Make sure the graphics backends are in sync with the canvas lineWidth state. + https://bugs.webkit.org/show_bug.cgi?id=26187 + + Test: fast/canvas/canvas-line-width.html + + * html/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): + +2009-06-09 Michael Nordman <michaeln@google.com> + + Reviewed by Eric Seidel. + + Proactively cancel pending requests at DocLoader dtor time, + otherwise crashes can occur. + + https://bugs.webkit.org/show_bug.cgi?id=26230 + http://code.google.com/p/chromium/issues/detail?id=12161 + + Test: fast/frames/javascript-url-as-framesrc-crash.html + + * loader/DocLoader.cpp: + (WebCore::DocLoader::~DocLoader): + +2009-06-09 Eric Seidel <eric@webkit.org> + + Reviewed by Darin Adler. + + Fix ASSERT seen in shadow tree testing + https://bugs.webkit.org/show_bug.cgi?id=25092 + + Test: svg/custom/use-mutation-event-crash.svg + + * svg/SVGUseElement.cpp: + (WebCore::SVGUseElement::instanceForShadowTreeElement): + +2009-06-09 Brent Fulgham <bfulgham@webkit.org> + + Reviewed by Eric Seidel. + + Fixes https://bugs.webkit.org/show_bug.cgi?id=22891 + Scrolling in Windows Cairo Broken if no background color set. + + * platform/graphics/cairo/GradientCairo.cpp: + (WebCore::Gradient::fill): Use the GraphicsContext save and restore + methods (rather than the Cairo-only functions) so that the Windows + device context is kept in sync. + * platform/graphics/cairo/GraphicsContextCairo.cpp: + (WebCore::GraphicsContext::GraphicsContext): Add new constructor call + to sync Windows HDC with Cairo surface. + * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: + (WebCore::GraphicsContextPlatformPrivate::syncContext): Provide + declaration for Windows HDC sync method (and stub for non-Windows + Cairo implementations). + * platform/graphics/cairo/ImageCairo.cpp: + (WebCore::BitmapImage::draw): Use GraphicsContext save and restore + methods (rather than the Cairo-only functions) so that the Windows + device context is kept in sync. + * platform/graphics/win/GraphicsContextCairoWin.cpp: + (WebCore::CairoContextWithHDC): New method to create a valid Cairo + context for a given HDC. + (WebCore::GraphicsContext::GraphicsContext): Modify constructor to + use new CairoContextWithHDC call. + (WebCore::GraphicsContext::getWindowsContext): Revise to match + behavior of CG implementation. + (WebCore::GraphicsContext::releaseWindowsContext): Revise to match + behavior of CG implementation. + (WebCore::GraphicsContextPlatformPrivate::concatCTM): Get rid of + incorrect new HDC, and use object's HDC member for dealing with + concatCTM operations. + (WebCore::GraphicsContextPlatformPrivate::syncContext): New method + to sync Windows HDC with Cairo context. + * platform/graphics/win/ImageCairoWin.cpp: + (WebCore::BitmapImage::getHBITMAPOfSize): Revise implementation to + match CG behavior. + +2009-06-09 Jian Li <jianli@chromium.org> + + Reviewed by David Levin. + + Bug 26196: Fix the problem that worker's importScripts fails if the + script URL is redirected from different origin. + https://bugs.webkit.org/show_bug.cgi?id=26196 + + Test: http/tests/workers/worker-importScripts.html + + The fix is to pass an additional enum parameter to the loader in + order to tell it to perform the redirect origin check or not. + + * loader/DocumentThreadableLoader.cpp: + (WebCore::DocumentThreadableLoader::create): + (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): + (WebCore::DocumentThreadableLoader::willSendRequest): + * loader/DocumentThreadableLoader.h: + * loader/ThreadableLoader.cpp: + (WebCore::ThreadableLoader::create): + (WebCore::ThreadableLoader::loadResourceSynchronously): + * loader/ThreadableLoader.h: + (WebCore::): + * loader/WorkerThreadableLoader.cpp: + (WebCore::WorkerThreadableLoader::WorkerThreadableLoader): + (WebCore::WorkerThreadableLoader::loadResourceSynchronously): + (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): + (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader): + * loader/WorkerThreadableLoader.h: + (WebCore::WorkerThreadableLoader::create): + * workers/WorkerContext.cpp: + (WebCore::WorkerContext::importScripts): + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::loadRequestAsynchronously): + +2009-06-09 Anand K. Mistry <amistry@google.com> + + Reviewed by Dimitri Glazkov. + + Paint bitmaps with the alpha channel in Skia. + https://bugs.webkit.org/show_bug.cgi?id=26037 + + Test: fast/canvas/drawImage-with-globalAlpha.html + + * platform/graphics/skia/ImageSkia.cpp: + (WebCore::paintSkBitmap): + * platform/graphics/skia/PlatformContextSkia.cpp: + (PlatformContextSkia::getAlpha): + * platform/graphics/skia/PlatformContextSkia.h: + +2009-06-09 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=26104 + [GTK] Make NetworkRequest a proper GObject and expose SoupMessage + + Refactor how SoupMessage is handled, so that our ResourceRequest + object doesn't have to store it as a member, which complicates + managing ResourceRequest's lifetime. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::ResourceHandle::startHttp): + * platform/network/soup/ResourceRequest.h: + (WebCore::ResourceRequest::ResourceRequest): + (WebCore::ResourceRequest::doUpdatePlatformRequest): + (WebCore::ResourceRequest::doUpdateResourceRequest): + * platform/network/soup/ResourceRequestSoup.cpp: + (WebCore::ResourceRequest::toSoupMessage): + (WebCore::ResourceRequest::updateFromSoupMessage): + +2009-06-09 Simon Hausmann <simon.hausmann@nokia.com> + + Fix the Qt build, the time functions moved into the WTF namespace. + + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::convertValueToQVariant): + (JSC::Bindings::convertQVariantToValue): + +2009-06-08 Brady Eidson <beidson@apple.com> + + Reviewed by Antti Koivisto + + <rdar://problem/6727495> Repro crash in WebCore::Loader::Host::servePendingRequests() and dupes. + + Test: http/tests/loading/deleted-host-in-resource-load-delegate-callback.html + + Loader::Host objects were manually managed via new/delete. + There's a variety of circumstances where a Host might've been deleted while it was still in the middle + of a resource load delegate callback. + Changing them to be RefCounted then adding protectors in the callbacks makes this possibility disappear. + + At the same time, remove ProcessingResource which was an earlier fix for this same problem that wasn't + fully implemented. + + * loader/loader.cpp: + (WebCore::Loader::Loader): + (WebCore::Loader::load): + (WebCore::Loader::servePendingRequests): + (WebCore::Loader::resumePendingRequests): + (WebCore::Loader::cancelRequests): + (WebCore::Loader::Host::didFinishLoading): + (WebCore::Loader::Host::didFail): + (WebCore::Loader::Host::didReceiveResponse): + (WebCore::Loader::Host::didReceiveData): + * loader/loader.h: + (WebCore::Loader::Host::create): + +2009-06-08 Dmitry Titov <dimich@chromium.org> + + Reviewed by David Levin. + + https://bugs.webkit.org/show_bug.cgi?id=26126 + Refactor methods of WorkerMessagingProxy used to talk to main-thread loader into new interface. + + Split a couple of methods used to schedule cross-thread tasks between worker thread and loader thread + implemented on WorkerMessagingProxy into a separate interface so the loading can be implemented in + Chromium's workers. + + No changes in functionality so no tests added. + + * GNUmakefile.am: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + Added WorkerLoaderProxy.h to the bulid. + + * bindings/js/WorkerScriptController.cpp: + (WebCore::WorkerScriptController::evaluate): WorkerThread::workerObjectProxy() now returns & instead of * + * bindings/v8/WorkerScriptController.cpp: + (WebCore::WorkerScriptController::evaluate): same. + * workers/WorkerContext.cpp: + (WebCore::WorkerContext::~WorkerContext): same. + (WebCore::WorkerContext::reportException): same. + (WebCore::WorkerContext::addMessage): same. + (WebCore::WorkerContext::postMessage): same. + + * loader/WorkerThreadableLoader.cpp: + (WebCore::WorkerThreadableLoader::WorkerThreadableLoader): + (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): + (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy): + (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel): + (WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData): + (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse): + (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData): + (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading): + (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail): + (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck): + (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveAuthenticationCancellation): + Use WorkerLoaderProxy instead of WorkerMessagingProxy for the MainThreadBridge. + Mostly rename. + + (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader): + In addition to using WorkerLoaderProxy instead of WorkerMessagingProxy, the check for + AskedToTerminate is removed. It seems to be an optimization for a very small number of cases + when worker termination is requested a very short time before the request to load something + (XHR or importScript) was dispatched on the main thread. + + * loader/WorkerThreadableLoader.h: + Now keeps a pointer to WorkerLoaderProxy rather then to a WorkerMessagingProxy. This allows + to implement WorkerThreadableLoader for Chromium. + + * workers/WorkerLoaderProxy.h: Added. + (WebCore::WorkerLoaderProxy::~WorkerLoaderProxy): + + * workers/WorkerMessagingProxy.cpp: + (WebCore::WorkerMessagingProxy::startWorkerContext): + (WebCore::WorkerMessagingProxy::postTaskToLoader): Added ASSERT since this needs to be implemented for nested workers. + * workers/WorkerMessagingProxy.h: + Derived from WorkerLoaderProxy, the methods for posting tasks cross-thread are now virtual. + Removed unused postTaskToWorkerContext() method. + + * workers/WorkerThread.cpp: + (WebCore::WorkerThread::create): + (WebCore::WorkerThread::WorkerThread): + * workers/WorkerThread.h: + (WebCore::WorkerThread::workerLoaderProxy): + * workers/WorkerThread.cpp: + (WebCore::WorkerThread::create): + (WebCore::WorkerThread::WorkerThread): + (WebCore::WorkerThread::workerThread): + * workers/WorkerThread.h: + (WebCore::WorkerThread::workerLoaderProxy): + (WebCore::WorkerThread::workerObjectProxy): + WorkerThread gets a new member of type WorkerLoaderProxy&, and accessor. + Also, existing WorkerObjectProxy* member is now WorkerObjectProxy& because it can't be null. + +2009-06-08 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=26238 + Add parseDate helper to HTTPParsers, which uses WTF::parseDateFromNullTerminatedCharacters. + + * ForwardingHeaders/runtime/DateMath.h: Removed. + * ForwardingHeaders/wtf/DateMath.h: Copied from WebCore/ForwardingHeaders/runtime/DateMath.h. + * platform/network/HTTPParsers.cpp: + (WebCore::parseDate): Added. + * platform/network/HTTPParsers.h: + * platform/network/ResourceResponseBase.cpp: + (WebCore::parseDateValueInHeader): Changed to use the new helper. + +2009-06-08 Adam Langley <agl@google.com> + + Reviewed by Eric Siedel. + + Chromium Linux ignored the background color on <select>s. Rather + than encode magic colours, we start with a base color (specified + via CSS) and derive the other colors from it. Thus, setting the + CSS background-color now correctly changes the colour of the + control. + + This should not change the appearence controls without + background-colors. However, <select>s with a background-color + will now renderer correctly, which may require rebaselining + pixel tests in the Chromium tree. + + https://bugs.webkit.org/show_bug.cgi?id=26030 + http://code.google.com/p/chromium/issues/detail?id=12596 + + * platform/graphics/Color.cpp: + (WebCore::Color::getHSL): new member + * platform/graphics/Color.h: + * rendering/RenderThemeChromiumLinux.cpp: + (WebCore::RenderThemeChromiumLinux::systemColor): + (WebCore::brightenColor): + (WebCore::paintButtonLike): + +2009-06-08 Victor Wang <victorw@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=26087 + Bug 26087: Removing element in JS crashes Chrome tab if it fired the change event + + Fix tab crash caused by destroying the popup list that fired the change event on abandon. + + If a popup list is abandoned (press a key to jump to an item + and then use tab or mouse to get away from the select box), + the current code fires a change event in PopupListBox::updateFromElemt(). + The JS that listens to this event may destroy the object and cause the + rest of popup list code crashes. + + The updateFromElement() is called before abandon() and this causes + the selected index to be discarded after updateFromElement(). From + the code comments, this appears to be the reason why valueChanged is + called in updateFromElement. + + Fix the issue by removing the valueChanged call in updateFromElement, + saving the selected index that we should accept on abandon and pass + it to the valueChange in abandon(). + + A manual test has been added. + + * manual-tests/chromium: Added. + * manual-tests/chromium/onchange-reload-popup.html: Added. + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupListBox::PopupListBox): + (WebCore::PopupListBox::handleKeyEvent): + (WebCore::PopupListBox::abandon): + (WebCore::PopupListBox::updateFromElement): + +2009-06-08 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Disable a few warnings on Windows + + * WebCore.pro: + +2009-06-08 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Don't enable ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH on Windows + + This define was brought in after refactoring some code from + PluginPackage(Qt|Gtk).cpp into the shared PluginPackage.cpp. + + * WebCore.pro: + +2009-06-08 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Use $QMAKE_PATH_SEP instead of hardcoded / to fix Windows build + + * WebCore.pro: + +2009-06-08 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Ariya Hidayat. + + [Qt] Build fix when NETSCAPE_PLUGIN_API support is turned off + https://bugs.webkit.org/show_bug.cgi?id=26244 + + * WebCore.pro: Define PLUGIN_PACKAGE_SIMPLE_HASH only if + NETSCAPE_PLUGIN_API is turned on + * plugins/PluginPackage.cpp: Guard initializeBrowserFuncs() + * plugins/PluginViewNone.cpp: Match guards with PluginView.h + +2009-06-07 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + - fix <rdar://problem/6931661> -[WebView _selectionIsAll] returns YES + when the selection is inside a text field. + + * editing/VisibleSelection.cpp: + (WebCore::VisibleSelection::isAll): Return false if the selection is in + a shadow tree. + +2009-06-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=26106 + [GTK] Crashes when you keep a combo open during a page transition, then close it + + Hide the combo popup and disconnect from its signals during + PopupMenu destruction to handle this exceptional case with no + crash. + + * platform/gtk/PopupMenuGtk.cpp: + (WebCore::PopupMenu::~PopupMenu): + (WebCore::PopupMenu::menuUnmapped): + +2009-06-06 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + Fix for <rdar://problem/6930540> + REGRESSION (r43797): Serif and fantasy font-family names are wrong in result of getComputedStyle + + Test: fast/css/font-family-builtins.html + + * css/CSSComputedStyleDeclaration.cpp: + (WebCore::identifierForFamily): Fix typo. Fantasy family should be + -webkit-fantasy not, -webkit-serif. + +2009-06-06 Sam Weinig <sam@webkit.org> + + Reviewed by Brady Eidson. + + Fix for <rdar://problem/6936235> + Need to support StorageEvent.storageArea to meet the Web Storage spec + + * storage/LocalStorageArea.cpp: + (WebCore::LocalStorageArea::dispatchStorageEvent): Pass the localStorage for + the frame being dispatched to. + * storage/SessionStorageArea.cpp: + (WebCore::SessionStorageArea::dispatchStorageEvent): Ditto, only for sessionStorage. + + * storage/StorageEvent.cpp: + (WebCore::StorageEvent::StorageEvent): + (WebCore::StorageEvent::initStorageEvent): + * storage/StorageEvent.h: + (WebCore::StorageEvent::create): + (WebCore::StorageEvent::storageArea): + * storage/StorageEvent.idl: + Add storageArea member. + +2009-06-05 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by Anders Carlsson. + + Fix WMLInputElement initialization code. Don't call initialize() on attach(), let + WMLCardElement handle initialization once, after the document has been parsed. + + To keep layout tests working introduce a new function in Document.idl: initializeWMLPageState(). + WMLTestCase.js (the wml/ layout test framework) will use it to simulate a regular WML document, + whose variable state gets initialized on WMLDocument::finishedParsing(). Force initialization + of the WML variable state, right after the dynamically created elements have been inserted into the tree. + + * dom/Document.cpp: + (WebCore::Document::initializeWMLPageState): + * dom/Document.h: + * dom/Document.idl: + * wml/WMLCardElement.cpp: + (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded): + * wml/WMLDocument.cpp: + (WebCore::WMLDocument::finishedParsing): + (WebCore::WMLDocument::initialize): + * wml/WMLDocument.h: + * wml/WMLInputElement.cpp: + (WebCore::WMLInputElement::initialize): + * wml/WMLInputElement.h: + +2009-06-05 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Add ononline and onoffline attributes for the <body> element. + + * html/HTMLAttributeNames.in: Added ononlineAttr and onofflineAttr. + * html/HTMLBodyElement.cpp: + (WebCore::HTMLBodyElement::parseMappedAttribute): Map ononlineAttr + and onofflineAttr to window event listeners. + +2009-06-05 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Add missing includes of config.h + + * platform/qt/QWebPopup.cpp: + * platform/text/qt/TextBreakIteratorQt.cpp: + +2009-06-05 Fumitoshi Ukai <ukai@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=26215 + Try to fix the Chromium build. + + * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp: + (WebCore::fillBMPGlyphs): + (WebCore::fillNonBMPGlyphs): + +2009-06-05 Shinichiro Hamaji <hamaji@chromium.org> + + Bug 26160: Compile fails in MacOSX when GNU fileutils are installed + + <https://bugs.webkit.org/show_bug.cgi?id=26160> + + Reviewed by Alexey Proskuryakov. + + Use /bin/ln instead of ln for cases where this command is used with -h option. + As this option is not supported by GNU fileutils, this change helps users + who have GNU fileutils in their PATH. + + * WebCore.xcodeproj/project.pbxproj: + +2009-06-03 Ben Murdoch <benm@google.com> + + <https://bugs.webkit.org/show_bug.cgi?id=25710> HTML5 Database stops executing transactions if the URL hash changes while a transaction is open and an XHR is in progress. + + Reviewed by Alexey Proskuryakov. + + Fix a bug that causes database transactions to fail if a history navigation to a hash fragment of the same document is made while resources (e.g. an XHR) are loading + + Test: storage/hash-change-with-xhr.html + + * loader/DocumentLoader.cpp: + (WebCore::DocumentLoader::stopLoading): + * loader/DocumentLoader.h: + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::stopLoading): + (WebCore::FrameLoader::stopAllLoaders): + * loader/FrameLoader.h: + * loader/FrameLoaderTypes.h: + (WebCore::): + * page/Page.cpp: + (WebCore::Page::goToItem): + * WebCore.base.exp: + +2009-06-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Make sure the correct config.h is included when shadowbuilding + + * WebCore.pro: + +2009-06-05 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + Fix Qt build after r44452 + + * platform/network/qt/QNetworkReplyHandler.cpp: + (WebCore::QNetworkReplyHandler::sendResponseIfNeeded): + +2009-06-05 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Remove some dead code (MenuEventProxy) + + * WebCore.pro: + * platform/ContextMenu.h: + * platform/qt/ContextMenuQt.cpp: + * platform/qt/MenuEventProxy.h: Removed. + +2009-06-05 Xan Lopez <xlopez@igalia.com> + + More build fixes. + + * platform/graphics/gtk/GlyphPageTreeNodePango.cpp: + (WebCore::GlyphPage::fill): + +2009-06-05 Xan Lopez <xlopez@igalia.com> + + Fix the GTK+ build. + + * GNUmakefile.am: + * platform/graphics/gtk/FontCacheGtk.cpp: + (WebCore::FontCache::getFontDataForCharacters): + * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp: + (WebCore::GlyphPage::fill): + +2009-06-05 Antti Koivisto <antti@apple.com> + + Try to fix Windows (and possibly other platforms) build. + + Restore ResourceResponseBase::lastModifiedDate() and setLastModifiedDate() removed in previous commit. + for now since PluginStream used on some platforms expects them and calculations differ from plain + Last-modified header value. + + Also include <wtf/MathExtras.h> to get isfinite(). + + * platform/network/ResourceResponseBase.cpp: + (WebCore::ResourceResponseBase::adopt): + (WebCore::ResourceResponseBase::copyData): + (WebCore::ResourceResponseBase::setLastModifiedDate): + (WebCore::ResourceResponseBase::lastModifiedDate): + * platform/network/ResourceResponseBase.h: + * platform/network/cf/ResourceResponseCFNet.cpp: + (WebCore::ResourceResponse::platformLazyInit): + +2009-06-03 Antti Koivisto <antti@apple.com> + + Reviewed by Dave Kilzer. + + https://bugs.webkit.org/show_bug.cgi?id=13128 + Safari not obeying cache header + + Implement RFC 2616 cache expiration calculations in WebKit instead of + relying on the networking layer. + + * ForwardingHeaders/runtime/DateMath.h: Added. + * WebCore.base.exp: + * loader/Cache.cpp: + (WebCore::Cache::revalidationSucceeded): + * loader/CachedResource.cpp: + (WebCore::CachedResource::CachedResource): + (WebCore::CachedResource::isExpired): + (WebCore::CachedResource::currentAge): + (WebCore::CachedResource::freshnessLifetime): + (WebCore::CachedResource::setResponse): + (WebCore::CachedResource::updateResponseAfterRevalidation): + (WebCore::CachedResource::mustRevalidate): + * loader/CachedResource.h: + * platform/network/ResourceResponseBase.cpp: + (WebCore::ResourceResponseBase::ResourceResponseBase): + (WebCore::ResourceResponseBase::adopt): + (WebCore::ResourceResponseBase::copyData): + (WebCore::ResourceResponseBase::setHTTPHeaderField): + (WebCore::ResourceResponseBase::parseCacheControlDirectives): + (WebCore::ResourceResponseBase::cacheControlContainsNoCache): + (WebCore::ResourceResponseBase::cacheControlContainsMustRevalidate): + (WebCore::ResourceResponseBase::cacheControlMaxAge): + (WebCore::parseDateValueInHeader): + (WebCore::ResourceResponseBase::date): + (WebCore::ResourceResponseBase::age): + (WebCore::ResourceResponseBase::expires): + (WebCore::ResourceResponseBase::lastModified): + (WebCore::ResourceResponseBase::isAttachment): + (WebCore::ResourceResponseBase::compare): + * platform/network/ResourceResponseBase.h: + * platform/network/cf/ResourceResponseCFNet.cpp: + (WebCore::ResourceResponse::platformLazyInit): + * platform/network/mac/ResourceResponseMac.mm: + (WebCore::ResourceResponse::platformLazyInit): + +2009-06-04 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Eric Seidel. + + Bug 26201: Remove superfluous 'if' statements in RenderTable::addChild + https://bugs.webkit.org/show_bug.cgi?id=26201 + + * rendering/RenderTable.cpp: + (WebCore::RenderTable::addChild): remove superfluous 'if' statements + + +2009-06-04 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Eric Seidel. + + Bug 26202: add macros for primitive values to simplify CSSStyleSelector::applyProperty + https://bugs.webkit.org/show_bug.cgi?id=26202 + + * css/CSSStyleSelector.cpp: add HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE[_WITH_VALUE] macros + (WebCore::CSSStyleSelector::applyProperty): use new macros + +2009-06-04 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Eric Seidel + + Bug 26203: Move parsing of 'attr(X)' values to own method + https://bugs.webkit.org/show_bug.cgi?id=26203 + + * css/CSSParser.cpp: + (WebCore::CSSParser::parseAttr): new method + (WebCore::CSSParser::parseContent): use new parseAttr method + * css/CSSParser.h: + (WebCore::CSSParser::parseAttr): new method + +2009-06-04 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Eric Seidel. + + Bug 26205: RenderTableSection::addChild : correct comment + https://bugs.webkit.org/show_bug.cgi?id=26205 + + * rendering/RenderTableSection.cpp: + (WebCore::RenderTableSection::addChild): correct comment + +2009-06-04 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Eric Seidel. + + Bug 26204: RenderBlock : simplify handleSpecialChild, comment correction + https://bugs.webkit.org/show_bug.cgi?id=26204 + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::handleSpecialChild): simplify usage + (WebCore::RenderBlock::handlePositionedChild): simplify usage + (WebCore::RenderBlock::handleFloatingChild): simplify usage + (WebCore::RenderBlock::handleRunInChild): simplify usage + (WebCore::RenderBlock::layoutBlock): correct comment + (WebCore::RenderBlock::layoutBlockChildren): simplify loop, change call to handleSpecialChild + * rendering/RenderBlock.h: + (WebCore::RenderBlock::handleSpecialChild): change signature + (WebCore::RenderBlock::handlePositionedChild): change signature + (WebCore::RenderBlock::handleFloatingChild): change signature + (WebCore::RenderBlock::handleRunInChild): change signature + +2009-06-04 Dan Bernstein <mitz@apple.com> + + - retry to fix the Tiger build + + * platform/graphics/mac/SimpleFontDataMac.mm: + (WebCore::initFontData): + +2009-06-04 Dan Bernstein <mitz@apple.com> + + - try to fix the Tiger build + + * platform/graphics/SimpleFontData.h: + +2009-06-04 Dan Bernstein <mitz@apple.com> + + - try to fix the Leopard and Tiger builds + + * platform/graphics/SimpleFontData.h: + +2009-06-04 Dan Bernstein <mitz@apple.com> + + - try to fix the Windows build + + * platform/graphics/win/UniscribeController.cpp: + (WebCore::UniscribeController::shapeAndPlaceItem): + +2009-06-04 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + - make SimpleFontData's data members private + - rename SimpleFontData's m_font member to m_platformData + + * platform/graphics/Font.h: + (WebCore::Font::spaceWidth): + * platform/graphics/SimpleFontData.cpp: + (WebCore::SimpleFontData::SimpleFontData): + * platform/graphics/SimpleFontData.h: + (WebCore::SimpleFontData::platformData): + (WebCore::SimpleFontData::spaceWidth): + (WebCore::SimpleFontData::adjustedSpaceWidth): + (WebCore::SimpleFontData::syntheticBoldOffset): + (WebCore::SimpleFontData::spaceGlyph): + (WebCore::SimpleFontData::getNSFont): + (WebCore::SimpleFontData::getQtFont): + (WebCore::SimpleFontData::getWxFont): + * platform/graphics/WidthIterator.cpp: + (WebCore::WidthIterator::advance): + * platform/graphics/cairo/FontCairo.cpp: + (WebCore::Font::drawGlyphs): + * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::smallCapsFontData): + (WebCore::SimpleFontData::determinePitch): + (WebCore::SimpleFontData::platformWidthForGlyph): + * platform/graphics/chromium/SimpleFontDataLinux.cpp: + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::smallCapsFontData): + (WebCore::SimpleFontData::containsCharacters): + (WebCore::SimpleFontData::platformWidthForGlyph): + * platform/graphics/gtk/FontGtk.cpp: + (WebCore::setPangoAttributes): + * platform/graphics/gtk/SimpleFontDataGtk.cpp: + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::containsCharacters): + (WebCore::SimpleFontData::determinePitch): + (WebCore::SimpleFontData::platformWidthForGlyph): + (WebCore::SimpleFontData::setFont): + * platform/graphics/gtk/SimpleFontDataPango.cpp: + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::containsCharacters): + (WebCore::SimpleFontData::determinePitch): + (WebCore::SimpleFontData::platformWidthForGlyph): + (WebCore::SimpleFontData::setFont): + * platform/graphics/mac/CoreTextController.cpp: + (WebCore::CoreTextController::adjustGlyphsAndAdvances): + * platform/graphics/mac/FontMac.mm: + (WebCore::Font::drawGlyphs): + * platform/graphics/mac/FontMacATSUI.mm: + (WebCore::initializeATSUStyle): + (WebCore::overrideLayoutOperation): + (WebCore::ATSULayoutParameters::initialize): + * platform/graphics/mac/SimpleFontDataMac.mm: + (WebCore::initFontData): + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::platformCharWidthInit): + (WebCore::SimpleFontData::smallCapsFontData): + (WebCore::SimpleFontData::containsCharacters): + (WebCore::SimpleFontData::determinePitch): + (WebCore::SimpleFontData::platformWidthForGlyph): + (WebCore::SimpleFontData::checkShapesArabic): + (WebCore::SimpleFontData::getCTFont): + * platform/graphics/qt/SimpleFontDataQt.cpp: + (WebCore::SimpleFontData::determinePitch): + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::platformCharWidthInit): + * platform/graphics/win/FontCGWin.cpp: + (WebCore::drawGDIGlyphs): + (WebCore::Font::drawGlyphs): + * platform/graphics/win/SimpleFontDataCGWin.cpp: + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::platformCharWidthInit): + (WebCore::SimpleFontData::platformWidthForGlyph): + * platform/graphics/win/SimpleFontDataCairoWin.cpp: + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::platformDestroy): + (WebCore::SimpleFontData::platformWidthForGlyph): + (WebCore::SimpleFontData::setFont): + * platform/graphics/win/SimpleFontDataWin.cpp: + (WebCore::SimpleFontData::initGDIFont): + (WebCore::SimpleFontData::smallCapsFontData): + (WebCore::SimpleFontData::containsCharacters): + (WebCore::SimpleFontData::determinePitch): + (WebCore::SimpleFontData::widthForGDIGlyph): + (WebCore::SimpleFontData::scriptFontProperties): + * platform/graphics/wx/SimpleFontDataWx.cpp: + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::determinePitch): + (WebCore::SimpleFontData::platformWidthForGlyph): + +2009-06-04 Paul Godavari <paul@chromium.org> + + Reviewed by Eric Seidel. + + Initialize the width of PopupMenuListBox properly for Mac Chromium. + + Added a test that works only with this patch applied. The test is + a manual one, since the hit testing infrastructure in the layout + tests sends keyboard and mouse events to the main window and not + the cocoa control that implements the popup up, which means we can't + select items from the popup up. + + https://bugs.webkit.org/show_bug.cgi?id=25904 + + + * manual-tests/select-narrow-width.html: Added. + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupListBox::PopupListBox): + (WebCore::PopupContainer::showExternal): + +2009-06-04 Brent Fulgham <bfulgham@webkit.org> + + Unreviewed Windows build correction. + + * WebCore.vcproj/WebCore.vcproj: Add missing 'ReplaceNodeWithSpanCommand.cpp' + and 'ReplaceNodeWithSpanCommand.h' + +2009-02-03 Eric Seidel <eric@webkit.org> + + Reviewed by Justin Garcia. + + Make sure execCommand("bold") on <b style="text-decoration: underline">test</b> + only removes the bold and not the underline. + https://bugs.webkit.org/show_bug.cgi?id=23496 + + Test: editing/execCommand/convert-style-elements-to-spans.html + + * WebCore.xcodeproj/project.pbxproj: + * css/CSSStyleDeclaration.h: + (WebCore::CSSStyleDeclaration::isEmpty): + * dom/NamedAttrMap.h: + (WebCore::NamedAttrMap::isEmpty): + * editing/ApplyStyleCommand.cpp: + (WebCore::isUnstyledStyleSpan): + (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan): + (WebCore::ApplyStyleCommand::applyBlockStyle): + (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): + (WebCore::ApplyStyleCommand::implicitlyStyledElementShouldBeRemovedWhenApplyingStyle): + (WebCore::ApplyStyleCommand::replaceWithSpanOrRemoveIfWithoutAttributes): + (WebCore::ApplyStyleCommand::removeCSSStyle): + (WebCore::ApplyStyleCommand::applyTextDecorationStyle): + (WebCore::ApplyStyleCommand::removeInlineStyle): + (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): + * editing/ApplyStyleCommand.h: + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::replaceNodeWithSpanPreservingChildrenAndAttributes): + * editing/CompositeEditCommand.h: + * editing/RemoveNodePreservingChildrenCommand.cpp: + (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): + * editing/ReplaceNodeWithSpanCommand.cpp: Added. + (WebCore::ReplaceNodeWithSpanCommand::ReplaceNodeWithSpanCommand): + (WebCore::swapInNodePreservingAttributesAndChildren): + (WebCore::ReplaceNodeWithSpanCommand::doApply): + (WebCore::ReplaceNodeWithSpanCommand::doUnapply): + * editing/ReplaceNodeWithSpanCommand.h: Added. + (WebCore::ReplaceNodeWithSpanCommand::create): + +2009-06-04 Brent Fulgham <bfulgham@webkit.org> + + Unreviewed build fix for Windows Cairo target. + + Add missing post-build command to copy history/cf contents + to output directory. + + * WebCore.vcproj/WebCore.vcproj: Update Debug_Cairo and Release_Cairo + target post-build steps with copy commands. + +2009-06-04 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/6854695> Movie controller thumb fails to scale with full page zoom + + Account for zoom level when drawing media controller thumb on Windows. + + * rendering/RenderMediaControls.cpp: + (WebCore::RenderMediaControls::adjustMediaSliderThumbSize): + +2009-06-04 David Hyatt <hyatt@apple.com> + + Reviewed by Sam Weinig. + + Move DOM window focus/blur out of SelectionController and into FocusController. Make sure it + fires on the focused frame when the page activation state changes also. This is covered by an existing + layout test (albeit badly). I have modified the test to be correct. + + * editing/SelectionController.cpp: + (WebCore::SelectionController::setFocused): + * page/FocusController.cpp: + (WebCore::FocusController::setFocusedFrame): + (WebCore::FocusController::setActive): + +2009-06-04 Albert J. Wong <ajwong@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=26148 + Adding in empty files to stage the extract of RenderThemeChromiumSkia + from RenderThemeChromiumLinux and RenderThemeChromiumWindows. + + * rendering/RenderThemeChromiumSkia.cpp: Added. + * rendering/RenderThemeChromiumSkia.h: Added. + +2009-06-04 Andrei Popescu <andreip@google.com> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=25562 + Potential crash after ApplicationCacheStorage::storeNewestCache() fails + + Fix the crash by checking the return value of cacheStorage().storeNewestCache(this) + in WebCore::ApplicationCacheGroup::checkIfLoadIsComplete. If storeNewestCache failed, + we run the cache failure steps: + + 1. Fire the error events to all pending master entries, as well any other cache hosts + currently associated with a cache in this group. + 2. Disassociate the pending master entries from the failed new cache. + 3. Reinstate the old "newest cache", if there was one. + + We also introduce two other changes: + + 1. a mechanism to rollback storageID changes to the in-memory resource + objects when the storing of an ApplicationCache object fails. + + 2. defer removing the pending master entries from the list of pending master entries + until the entire load is complete. This matches the HTML 5 spec better. To track + if the load is complete we now introduce a counter for those pending master entries + that haven't yet finshed downloading. + + * loader/appcache/ApplicationCacheGroup.cpp: + (WebCore::ApplicationCacheGroup::ApplicationCacheGroup): initializes the new counter to 0 + (WebCore::ApplicationCacheGroup::selectCache): increments the counter when a new pending + master entry is added. + (WebCore::ApplicationCacheGroup::finishedLoadingMainResource): decrements the counter + instead of removing the pending master entry. + (WebCore::ApplicationCacheGroup::failedLoadingMainResource): decrements the counter + instead of removing the pending master entry. + (WebCore::ApplicationCacheGroup::setNewestCache): removes an assertion that no longer + holds true. In particular, the newest cache is not necessarily new anymore. We can + set an old cache as the new cache. This can happen if we failed to store a newly + downloaded cache to the database and we are now reinstating the former newest cache. + (WebCore::ApplicationCacheGroup::manifestNotFound): resets the counter to 0. + (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): check if the loading is complete + based on the counter instead of the list of pending master entries. Empty the list of + master entries if the load is complete. + * loader/appcache/ApplicationCacheGroup.h: add the new counter. + * loader/appcache/ApplicationCacheStorage.cpp: introduce the journaling mechanism for + in-memory resource objects. + (WebCore::ResourceStorageIDJournal::~ResourceStorageIDJournal): + (WebCore::ResourceStorageIDJournal::add): + (WebCore::ResourceStorageIDJournal::commit): + (WebCore::ResourceStorageIDJournal::Record::Record): + (WebCore::ResourceStorageIDJournal::Record::restore): + (WebCore::ApplicationCacheStorage::store): log the changes to the in-memory resource + objects. + (WebCore::ApplicationCacheStorage::storeNewestCache): create the journal object. + * loader/appcache/ApplicationCacheStorage.h: modify the signature of + bool store(ApplicationCache*) to add a pointer to the logger object used to + trace the changes to the storageID of the resource objects. + +2009-06-04 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=26154 + Allow underscores in the hostnames we parse out of databaseIdentifiers. + This code is used for HTML 5 database support. + + * page/SecurityOrigin.cpp: + (WebCore::SecurityOrigin::createFromDatabaseIdentifier): + +2009-06-04 Mihnea Ovidenie <mihnea@adobe.com> + + Reviewed by Darin Adler. + + Bug 26084: Multiple missing images in webkit-mask-image prevent rendering + https://bugs.webkit.org/show_bug.cgi?id=26084 + + When painting multiple images, make sure that at least one image is valid before pushing a transparency layer. + + Added a manual test. + + * manual-tests/mask-composite-missing-images.html: Added. + * rendering/RenderBox.cpp: + (WebCore::RenderBox::paintMaskImages): + +2009-06-04 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=26180 + Add a fast path for SecurityOrigin::equal. If "other == this" (where + other is the other security origin), then we really don't need to do + all the other (expensive) comparisons. We know it's equal. + + * page/SecurityOrigin.cpp: + (WebCore::SecurityOrigin::equal): + +2009-06-03 David Hyatt <hyatt@apple.com> + + Reviewed by Sam Weinig. + + Improvements in how selection behaves with focus/activation and a reversion back to using isActive + in the scrollbar theme code to remove a Chromium ifdef. + + * editing/SelectionController.cpp: + (WebCore::SelectionController::SelectionController): + Make the controller set its focused state correctly upon initial creation. + + (WebCore::SelectionController::setSelection): + Make selection willing to shift the focus node if the selection is focused even if the + selection is not active. Whether or not the Page is active is irrelevant to focus changes. + + (WebCore::SelectionController::setFocused): + * editing/SelectionController.h: + (WebCore::SelectionController::isFocused): + Add a new isFocused() method so that code can check if the Selection is focused without caring + about the active state. + + * page/Frame.cpp: + (WebCore::Frame::setFocusedNodeIfNeeded): + Allow focus shifts even when the selection is not active. + + * platform/mac/ScrollbarThemeMac.mm: + (WebCore::ScrollbarThemeMac::paint): + Revert Dan's change to directly talk to AppKit for checking active state. Now that the WebCore isActive + method works, ditch the Chromium-specific #ifdef and go back to the original code. + +2009-06-04 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Darin Adler. + + Test: media/before-load-member-access.html + + https://bugs.webkit.org/show_bug.cgi?id=26081 + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::played): Ensure that if m_playedTimeRanges, + is not initialized we return a valid range, and don't attempt to use it. + +2009-06-03 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + Reviewed by Simon Hausmann. + + Implement a way to invalidate the FontCache used by the Qt port. + + * platform/graphics/qt/FontCacheQt.cpp: + (WebCore::FontCache::invalidate): + +2009-06-04 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Ariya Hidayat. + + https://bugs.webkit.org/show_bug.cgi?id=26015 + + [Qt] Single-threaded QtWebKit configuration + + Turn off Database, DOM storage, icon database and Web Workers support + when ENABLE_SINGLE_THREADED is turned on. + + Set SQLITE_THREADSAFE to false to turn off SQLite mutexes + when ENABLE_SINGLE_THREADED is turned on. + + * WebCore.pro: + +2009-06-03 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + - add some assertions that Font methods are used on the main thread + + * platform/graphics/Font.cpp: + (WebCore::Font::setShouldUseSmoothing): + * platform/graphics/Font.h: + (WebCore::Font::primaryFont): + * platform/graphics/FontFastPath.cpp: + (WebCore::Font::glyphDataForCharacter): + +2009-06-03 Dan Bernstein <mitz@apple.com> + + - Windows build fix + + Rolled out apparently-accidental changes to config.h from r44398. These + were not part of the patch as reviewed. + + * config.h: + +2009-06-03 Dmitry Titov <dimich@chromium.org> + + Not reviewed, Chromium build fix. + + https://bugs.webkit.org/show_bug.cgi?id=26177 + Reverting 'private' to 'protected' on 2 classes. + Chromium glue layer (not yet in Webkit tree) relies on ability to derive + Chromium-specific platform classes and access the data members. + See bug for more details. + + * platform/PlatformMouseEvent.h: + * platform/PlatformWheelEvent.h: + +2009-06-03 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser <simonfr@apple.com>. + + Fixed https://bugs.webkit.org/show_bug.cgi?id=26162 + + This corrects an error when destroying an animation + or transition where endAnimation was never getting + called and therefore the hardware animation was never + getting removed. + + This includes a manual-test since it's really impossible + to make a meaningful automatic test for an animation + bug like this. + + This has no effect unless accelerated compositing is + enabled. + + * manual-tests/interrupted-compound-transform.html: Added. + * page/animation/ImplicitAnimation.cpp: + (WebCore::ImplicitAnimation::~ImplicitAnimation): + * page/animation/KeyframeAnimation.cpp: + (WebCore::KeyframeAnimation::~KeyframeAnimation): + +2009-06-03 Adam Langley <agl@google.com> + + Reviewed by Eric Seidel. + + Make the scrollbar thumb size twice the width for Chromium Linux. This + matches Firefox on Linux. + + This will need layout test pixel results to be rebaselined in the + Chromium tree. + + http://code.google.com/p/chromium/issues/detail?id=12602 + https://bugs.webkit.org/show_bug.cgi?id=26176 + + * platform/chromium/ScrollbarThemeChromiumLinux.cpp: + (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength): + * platform/chromium/ScrollbarThemeChromiumLinux.h: + +2009-06-03 Adam Langley <agl@google.com> + + Reviewed by Eric Seidel. + + Change Chromium scrollbar theme code to use different classes on + Windows and Linux rather than suppling symbols. The ScrollbarTheme + class is already using virtual dispatch, so there's no reason not to. + + This should not affect any layout tests. + + https://bugs.webkit.org/show_bug.cgi?id=26174 + + * platform/chromium/ScrollbarThemeChromium.cpp: + * platform/chromium/ScrollbarThemeChromium.h: + * platform/chromium/ScrollbarThemeChromiumLinux.cpp: + (WebCore::ScrollbarTheme::nativeTheme): + (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness): + (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece): + (WebCore::ScrollbarThemeChromiumLinux::paintButton): + (WebCore::ScrollbarThemeChromiumLinux::paintThumb): + (WebCore::ScrollbarThemeChromiumLinux::buttonSize): + * platform/chromium/ScrollbarThemeChromiumLinux.h: Added. + * platform/chromium/ScrollbarThemeChromiumWin.cpp: + (WebCore::ScrollbarTheme::nativeTheme): + (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness): + (WebCore::ScrollbarThemeChromiumWin::invalidateOnMouseEnterExit): + (WebCore::ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin): + (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece): + (WebCore::ScrollbarThemeChromiumWin::paintButton): + (WebCore::ScrollbarThemeChromiumWin::paintThumb): + (WebCore::ScrollbarThemeChromiumWin::getThemeState): + (WebCore::ScrollbarThemeChromiumWin::getThemeArrowState): + (WebCore::ScrollbarThemeChromiumWin::getClassicThemeState): + (WebCore::ScrollbarThemeChromiumWin::buttonSize): + * platform/chromium/ScrollbarThemeChromiumWin.h: Added. + +2009-06-03 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Enabling debugger requires that Scripts panel is already attached to the + render tree. The reason is that recompile events result in script sources + being added into the source frames. Prior to the global options introduced, + debugger was enabled from the Scripts panel, so that it was guaranteed to + exist. The InspectorController::enableDebugger API calls with no inspector + frontend showing were failing though. + + https://bugs.webkit.org/show_bug.cgi?id=26145 + + * WebCore.base.exp: + * inspector/InspectorController.cpp: + (WebCore::InspectorController::setWindowVisible): + (WebCore::InspectorController::scriptObjectReady): + (WebCore::InspectorController::enableDebuggerFromFrontend): + (WebCore::InspectorController::enableDebugger): + * inspector/InspectorController.h: + * inspector/InspectorController.idl: + * inspector/InspectorFrontend.cpp: + (WebCore::InspectorFrontend::attachDebuggerWhenShown): + * inspector/InspectorFrontend.h: + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype.show): + (WebInspector.ScriptsPanel.prototype.attachDebuggerWhenShown): + * inspector/front-end/inspector.js: + (WebInspector.attachDebuggerWhenShown): + +2009-06-03 Dan Bernstein <mitz@apple.com> + + Reviewed by Anders Carlsson. + + - fix a regression from the previous patch + + * platform/graphics/Font.cpp: Initialize shouldUseFontSmoothing to true. + +2009-06-03 Dan Bernstein <mitz@apple.com> + + Reviewed by Anders Carlsson. + + - eliminate WebCoreTextRenderer + + * WebCore.base.exp: Updated. + * WebCore.xcodeproj/project.pbxproj: Removed WebCoreTextRenderer.{h,mm} + and promoted WebFontCache.h to private. + * platform/graphics/Font.cpp: + (WebCore::Font::setShouldUseSmoothing): Added this static setter for + a new file-static boolean. + (WebCore::Font::shouldUseSmoothing): Added this static getter. + * platform/graphics/Font.h: Decleared setShouldUseSmoothing() and + shouldUseSmoothing(). + * platform/graphics/mac/FontMac.mm: + (WebCore::Font::drawGlyphs): Use Font::shouldUseSmoothing() instead of + WebCoreShouldUseFontSmoothing(). + * platform/graphics/mac/WebLayer.mm: Removed unneeded #import. + * platform/mac/WebCoreTextRenderer.h: Removed. + * platform/mac/WebCoreTextRenderer.mm: Removed. + +2009-06-03 David Levin <levin@chromium.org> + + Reviewed by Dimitri Glazkov. + + v8's ScriptController::evaluate should protect the Frame like the jsc version. + https://bugs.webkit.org/show_bug.cgi?id=26172 + + This change is simply copying protections done for Frame in the method + WebCore::ScriptController::evaluate in the file js/ScriptController.cpp. + + * bindings/v8/ScriptController.cpp: + (WebCore::ScriptController::evaluate): + +2009-06-03 Dan Bernstein <mitz@apple.com> + + Reviewed by John Sullivan. + + - fix <rdar://problem/6841120> Use CTFontManager notifications instead + of ATS notifications + + * platform/graphics/FontCache.h: Made it an error to destroy a + FontCache instance. + * platform/graphics/mac/FontCacheMac.mm: + (WebCore::fontCacheRegisteredFontsChangedNotificationCallback): Added + this notification callback for the + kCTFontManagerRegisteredFontsChangedNotification, which calls + invalidate(). + (WebCore::FontCache::platformInit): Register for + kCTFontManagerRegisteredFontsChangedNotification. + +2009-06-03 Kevin Watters <kevinwatters@gmail.com> + + Reviewed by Kevin Ollivier. + + Use CGContextShowGlyphsWithAdvances to get more accurate text rendering on Mac. + + https://bugs.webkit.org/show_bug.cgi?id=26161 + + * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp: + (WebCore::drawTextWithSpacing): + +2009-06-03 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Reorder ResourcesPanel components initialization to unfreeze resource list scroller. + + https://bugs.webkit.org/show_bug.cgi?id=26159 + + * inspector/front-end/ResourcesPanel.js: + (WebInspector.ResourcesPanel): + +2009-06-03 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + - Fix for crash (preceded by assertion) in InspectorController::didCommitLoad + when reloading or navigating with the Inspector open. + - Fix for Inspector's Elements panel being empty when Inspector first appears. + + https://bugs.webkit.org/show_bug.cgi?id=26134 + https://bugs.webkit.org/show_bug.cgi?id=26135 + + * inspector/InspectorController.cpp: + (WebCore::InspectorController::scriptObjectReady): + (WebCore::InspectorController::didLoadResourceFromMemoryCache): + (WebCore::InspectorController::identifierForInitialRequest): + (WebCore::InspectorController::ensureResourceTrackingSettingsLoaded): + * inspector/InspectorController.h: + +2009-06-03 Adam Roben <aroben@apple.com> + + Windows build fix after r44379 + + * svg/graphics/SVGImage.cpp: Move EmptyClients.h back down below the + other #includes to fix a compiler warning on Windows. + +2009-06-02 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + Reviewed by Simon Hausmann. + + Add workaround for crash in Linux Flash Player when hosted by + another toolkit than GTK+. Bug fixed at the Flash Player bugzilla, + issue (FP-2140). + + * plugins/qt/PluginViewQt.cpp: + (WebCore::PluginView::setNPWindowIfNeeded): + +2009-06-01 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + Reviewed by Simon Hausmann. + + Refactor the Qt plugin code to use NPP_SetWindow correctly, + to make resizing of plugins work. + + Attention was paid to make sure that the windowed plugins scroll + synchronized with the page view. A manual test has been added. + + * manual-tests/qt/plugin-iframe.html: Added. + * plugins/PluginView.cpp: + (WebCore::PluginView::setFrameRect): + (WebCore::PluginView::frameRectsChanged): + * plugins/PluginView.h: + * plugins/qt/PluginContainerQt.cpp: + (PluginContainerQt::PluginContainerQt): + * plugins/qt/PluginContainerQt.h: + * plugins/qt/PluginPackageQt.cpp: + (WebCore::PluginPackage::load): + * plugins/qt/PluginViewQt.cpp: + (WebCore::PluginView::updatePluginWidget): + (WebCore::PluginView::paint): + (WebCore::PluginView::setParent): + (WebCore::PluginView::setNPWindowRect): + (WebCore::PluginView::setNPWindowIfNeeded): + (WebCore::PluginView::handlePostReadFile): + (WebCore::PluginView::getValue): + (WebCore::PluginView::invalidateRect): + (WebCore::PluginView::init): + +2009-06-02 Darin Adler <darin@apple.com> + + Reviewed by David Hyatt. + + Bug 26112: viewless WebKit -- make events work + https://bugs.webkit.org/show_bug.cgi?id=26112 + + The main fix here is to make mouse and wheel event coordinates in the coordinate + system of the top level NSView rather than the NSWindow when in the viewless mode. + This is the design Hyatt chose, but the event part of it wasn't done yet. + + Also fix FrameView to do normal reference counting instead of a strange model with + an explicit deref near creation time. + + * WebCore.base.exp: Updated. + + * page/EventHandler.cpp: + (WebCore::EventHandler::eventLoopHandleMouseUp): Moved this function into the file + to reduce conditionals in the header. + (WebCore::EventHandler::eventLoopHandleMouseDragged): Ditto. + + * page/EventHandler.h: Reduced includes. Fixed formatting of Objective-C types. + Made currentNSEvent a static member function. Added sendContextMenuEvent and + eventMayStartDrag functions that takes NSEvent * so the conversion to PlatformMouseEvent + can be done here rather than in WebKit. Reduced #if by making eventLoopHandleMouseUp and + eventLoopHandleMouseDragged unconditional. + + * page/Frame.cpp: + (WebCore::Frame::setView): Made this take a PassRefPtr since it takes ownership. + (WebCore::Frame::createView): Changed to use RefPtr and FrameView::create and remove + the explicit deref. + + * page/Frame.h: Changed setView to take a PassRefPtr. + + * page/FrameTree.cpp: Added newly-needed include. + + * page/FrameView.cpp: + (WebCore::FrameView::FrameView): Got rid of one of the two constructors, and removed + the initialization of m_refCount and call to show from the reamining one. + (WebCore::FrameView::create): Added two create functions that do what the two + constructors did before, except that they return a PassRefPtr to make sure the + reference counting is handled correctly. + (WebCore::FrameView::~FrameView): Removed assertion from when FrameView implemented + its own reference counting. + + * page/FrameView.h: Inherit from RefCounted for reference counting. Made the + constructor private and added create functions. Got rid of the hand-implemented + reference counting in this class. + + * page/mac/EventHandlerMac.mm: + (WebCore::currentNSEventSlot): Renamed currentEvent to currentNSEventSlot to + make it more clear how it relates to currentNSEvent. + (WebCore::EventHandler::currentNSEvent): Updated. + (WebCore::CurrentEventScope::CurrentEventScope): Added. Use to set/reset the + current event in a foolproof way. + (WebCore::CurrentEventScope::~CurrentEventScope): Ditto. + (WebCore::EventHandler::wheelEvent): Use CurrentEventScope. Pass the platform + window in when constructing the PlatformWheelEvent. + (WebCore::EventHandler::keyEvent): Use CurrentEventScope. + (WebCore::lastEventIsMouseUp): Use currentNSEvent. + (WebCore::EventHandler::passMouseDownEventToWidget): Ditto. + (WebCore::EventHandler::eventLoopHandleMouseDragged): Ditto. + (WebCore::EventHandler::eventLoopHandleMouseUp): Ditto. + (WebCore::EventHandler::passSubframeEventToSubframe): Use + currentPlatformMouseEvent to get a mouse event that has the appropriate + platform window passed to create it. + (WebCore::EventHandler::passWheelEventToWidget): Ditto. + (WebCore::EventHandler::mouseDown): Ditto. + (WebCore::EventHandler::mouseDragged): Ditto. + (WebCore::EventHandler::mouseUp): Ditto. + (WebCore::EventHandler::mouseMoved): Ditto. + (WebCore::EventHandler::currentPlatformMouseEvent): Added. Passes the + platform window that's now needed to create a PlatformMouseEvent. + (WebCore::EventHandler::sendContextMenuEvent): Added. + (WebCore::EventHandler::eventMayStartDrag): Added. + + * platform/HostWindow.h: Removed unneeded includes and constructor definition. + + * platform/PlatformMouseEvent.h: Sorted things in alphabetical order. + Changed Mac constructor to take a windowView as well as the event. This is + needed in viewless mode, since the "window" is actually an NSView, so the + event has to know which view to compute the coordinates with. Made the + same change to pointForEvent. + * platform/PlatformWheelEvent.h: Ditto. + + * platform/mac/PlatformMouseEventMac.mm: + (WebCore::pointForEvent): Convert point from window coordinates to view + coordinates if a windowView is passed in. This is used in viewless mode. + (WebCore::PlatformMouseEvent::PlatformMouseEvent): Ditto. + * platform/mac/WheelEventMac.mm: + (WebCore::PlatformWheelEvent::PlatformWheelEvent): Ditto. + + * platform/mac/WidgetMac.mm: + (WebCore::Widget::convertFromContainingWindow): Fixed case where there + is no platform widget and no parent. Before it would yield unpredictable + results because of dispatching to a nil object and returning a structure. + Now it returns the point without changing coordinates at all, which is what + we need for this case in viewless mode. + + * rendering/RenderApplet.cpp: Removed unneeded includes. + (WebCore::RenderApplet::intrinsicSize): Use widget function. + (WebCore::RenderApplet::createWidgetIfNecessary): Ditto. + + * rendering/RenderApplet.h: Make more things private. Get rid of unneeded + explicit destructor. + + * rendering/RenderFrame.cpp: Removed unneeded includes. + (WebCore::RenderFrame::edgeInfo): Updated to use node function so header + doesn't have to define element function. + (WebCore::RenderFrame::viewCleared): Ditto. Also changed to use widget + function. + + * rendering/RenderFrame.h: Removed unneeded includes. Made some things + private. Got rid of element function. + + * rendering/RenderPart.cpp: Removed unneeded includes. + (WebCore::RenderPart::~RenderPart): Changed to use clearWidget function. + (WebCore::RenderPart::setWidget): Changed to use widget function. + (WebCore::RenderPart::deleteWidget): Changed to use passed-in widget. + This is now only called by the clearWidget function. + + * rendering/RenderPart.h: Removed unneeded forward declarations. + Made more functions private. Updated deleteWidget to take widget argument. + + * rendering/RenderPartObject.cpp: + (WebCore::RenderPartObject::~RenderPartObject): use frameView function + instead of getting at m_view directly. + (WebCore::RenderPartObject::updateWidget): Ditto. + (WebCore::RenderPartObject::layout): Ditto. Same for widget and m_widget. + (WebCore::RenderPartObject::viewCleared): Ditto. + + * rendering/RenderPartObject.h: Made some functions private. + + * rendering/RenderWidget.cpp: + (WebCore::RenderWidget::RenderWidget): Initialize m_frameView with + construction syntax instead of assignment. + (WebCore::RenderWidget::destroy): Updated for name change of m_view + to m_frameView. + (WebCore::RenderWidget::~RenderWidget): Use clearWidget to delete + the widget. + (WebCore::RenderWidget::setWidget): Use clearWidget. + (WebCore::RenderWidget::paint): Updated for name change of m_view + to m_frameView. + (WebCore::RenderWidget::deleteWidget): Changed to use passed-in widget. + + * rendering/RenderWidget.h: Made many functions protected, others + private and made all data members private. + + * svg/animation/SMILTime.h: Removed unhelpful max and min functions. These + just do what std::max and std::min will already do automatically for this + type, so they are not helpful. + + * svg/graphics/SVGImage.cpp: + (WebCore::SVGImage::SVGImage): Removed unneeded initial values for types + that initialize to zero without anything explicit. + (WebCore::SVGImage::~SVGImage): Update since m_frame and m_frameView are + no longer stored. + (WebCore::SVGImage::setContainerSize): Ditto. + (WebCore::SVGImage::usesContainerSize): Ditto. + (WebCore::SVGImage::size): Ditto. + (WebCore::SVGImage::hasRelativeWidth): Ditto. + (WebCore::SVGImage::hasRelativeHeight): Ditto. + (WebCore::SVGImage::draw): Ditto. + (WebCore::SVGImage::nativeImageForCurrentFrame): Ditto. + (WebCore::SVGImage::dataChanged): Ditto. + + * svg/graphics/SVGImage.h: Removed unneeded includes and unneeded data + members m_document, m_frame, m_frameView, and m_minSize. + +2009-06-02 Adam Langley <agl@google.com> + + Reviewed by Eric Seidel. + + The previous code was assuming that we'll be painting buttons on the scrollbar + which isn't true on Linux. To reproduce, resize a page with scrollbars until + they are less than two widths high. + + This will need pixel test baselines to be updated in the Chromium tree. + + * platform/chromium/ScrollbarThemeChromium.cpp: move this function... + * platform/chromium/ScrollbarThemeChromiumWin.cpp: + (WebCore::ScrollbarThemeChromium::trackRect): ... to here + * platform/chromium/ScrollbarThemeChromiumLinux.cpp: + (WebCore::ScrollbarThemeChromium::trackRect): add an alternative which + doesn't remove the track when the scrollbar is less than two widths + high. + +2009-06-02 Mark Rowe <mrowe@apple.com> + + Reviewed by Anders Carlsson. + + Remove workaround that was added to address <rdar://problem/5488678> as it no longer affects our Tiger builds. + + * Configurations/Base.xcconfig: + +2009-06-02 Eric Seidel <eric@webkit.org> + + Reviewed by Maciej Stachowiak. + + Insert*List on an stand-alone image in a content editable region ASSERTS + ASSERTION FAILED: isStartOfParagraph(startOfParagraphToMove) + https://bugs.webkit.org/show_bug.cgi?id=19066 + + Attempt to fix this by noticing that we inserted the list inside + the selection which includes the image, and re-adjust the selection + to not include the list before trying to move the image into + the list item. + + Test: editing/execCommand/list-wrapping-image-crash.html + + * editing/InsertListCommand.cpp: + (WebCore::InsertListCommand::doApply): + +2009-06-02 Eric Seidel <eric@webkit.org> + + Reviewed by Darin Adler. + + Rename PositionIterator members in hope of further clarity + https://bugs.webkit.org/show_bug.cgi?id=24854 + + Rename m_parent to m_anchorNode (since although it's always the parent + of the previous m_child member, it is not always the parent of the effective position) + Rename m_child to m_nodeAfterPositionInAnchor to make clear that it's the node + directly following the position. This member is often NULL, but is always + a child of m_parent, now m_anchorNode if set. + Rename m_offset to m_offsetInAnchor (since it's interpreted relative to m_anchorNode) + + * dom/PositionIterator.cpp: + (WebCore::PositionIterator::operator Position): + (WebCore::PositionIterator::increment): + (WebCore::PositionIterator::decrement): + (WebCore::PositionIterator::atStart): + (WebCore::PositionIterator::atEnd): + (WebCore::PositionIterator::atStartOfNode): + (WebCore::PositionIterator::atEndOfNode): + (WebCore::PositionIterator::isCandidate): + * dom/PositionIterator.h: + (WebCore::PositionIterator::PositionIterator): + (WebCore::PositionIterator::node): + (WebCore::PositionIterator::offsetInLeafNode): + +2009-06-02 Julien Chaffraix <jchaffraix@webkit.org> + + Reviewed by Eric Seidel. + + Bug 17167: Failures in fast/dom/Node/initial-values.html + + This partly solve a compatibility issue with other browsers. It will also + make us more consistent while handling XHTML element. + + The issue is that when we create an XHTML element inside an HTML document + (as it is the case when calling createElementNS), we default to the HTML + behaviour in nodeName. As we cannot test if an HTMLElement is an XHTML + element, our fix is to check whether it has a prefix and then default + to XML behaviour for nodeName. + + * html/HTMLElement.cpp: + (WebCore::HTMLElement::nodeName): Add a prefix check before + returning the uppercase tagName (HTML behaviour). + +2009-06-02 Eric Seidel <eric@webkit.org> + + Reviewed by Maciej Stachowiak. + + Add a compareBoundaryPoints which takes RangeBoundaryPoints + https://bugs.webkit.org/show_bug.cgi?id=25500 + + I noticed the need for this function when removing compareBoundaryPoints(Position, Position) + This patch is almost entirely minus lines. + + No functional changes, thus no tests. + + * dom/Range.cpp: + (WebCore::Range::setStart): + (WebCore::Range::setEnd): + (WebCore::Range::compareBoundaryPoints): + (WebCore::Range::boundaryPointsValid): + * dom/Range.h: + +2009-06-02 Eric Seidel <eric@webkit.org> + + Reviewed by Maciej Stachowiak. + + Remove Range::compareBoundaryPoints(Position, Position) per Darin's suggestion in bug 25056 + https://bugs.webkit.org/show_bug.cgi?id=25500 + + Darin indicated the Range should deal only with primitive DOM node/offset + pairs, and that Position (which is a more robust editing construct) should have + its own comparison functions and that Range.h should not mention Position at all. + + Turns out that Position already has a comparePositions() function (which knows + how to additionally handled positions in shadow trees). So I've just changed + all callers of compareBoundaryPoints(Position, Position) to use the existing + comparePositions() function. I've also added a comparePositions which takes + VisiblePositions for convenience. + + * dom/Range.cpp: + * dom/Range.h: + * editing/ApplyStyleCommand.cpp: + (WebCore::ApplyStyleCommand::updateStartEnd): + (WebCore::ApplyStyleCommand::applyBlockStyle): + (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): + (WebCore::ApplyStyleCommand::applyInlineStyle): + (WebCore::ApplyStyleCommand::applyInlineStyleToRange): + (WebCore::ApplyStyleCommand::removeInlineStyle): + (WebCore::ApplyStyleCommand::nodeFullySelected): + (WebCore::ApplyStyleCommand::nodeFullyUnselected): + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::deleteInsignificantText): + (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): + (WebCore::CompositeEditCommand::moveParagraphs): + * editing/DeleteSelectionCommand.cpp: + (WebCore::DeleteSelectionCommand::initializeStartEnd): + (WebCore::DeleteSelectionCommand::handleGeneralDelete): + (WebCore::DeleteSelectionCommand::mergeParagraphs): + * editing/SelectionController.cpp: + (WebCore::SelectionController::nodeWillBeRemoved): + * editing/VisibleSelection.cpp: + (WebCore::VisibleSelection::toNormalizedRange): + * editing/htmlediting.cpp: + (WebCore::comparePositions): + * editing/htmlediting.h: + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMousePressEventSingleClick): + +2009-06-02 Albert J. Wong <ajwong@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=26122 + Upstream v8_utility.h functions into V8Utilities.h. This patch has + some transitional code to make upstreaming easier. This code will + be deleted in a few days. + + * bindings/v8/ScriptFunctionCall.cpp: + (WebCore::ScriptFunctionCall::construct): NewInstance -> newInstance. + * bindings/v8/V8Utilities.h: + (WebCore::AllowAllocation::AllowAllocation): Function added. + (WebCore::AllowAllocation::~AllowAllocation): Function added. + (WebCore::SafeAllocation::NewInstance): Function added. + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): + NewInstance -> newInstance. + (WebCore::WorkerContextExecutionProxy::toV8): NewInstance -> + newInstance. + +2009-06-02 Dan Bernstein <mitz@apple.com> + + Reviewed by John Sullivan. + + - fix <rdar://problem/6940747> Search field’s focus ring is outset + + * rendering/RenderThemeWin.cpp: + (WebCore::RenderThemeWin::adjustSearchFieldStyle): Set the focused + search field outline offset to -2. + +2009-06-02 Sam Weinig <sam@webkit.org> + + Reviewed by Alexey Proskuryakov. + + Add list of unimplemented event handlers to DOMWindow. + + * page/DOMWindow.idl: + +2009-06-02 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=26133 + Adapt and import py-dom-xpath tests + + Tests: fast/xpath/py-dom-xpath/abbreviations.html + fast/xpath/py-dom-xpath/axes.html + fast/xpath/py-dom-xpath/data.html + fast/xpath/py-dom-xpath/expressions.html + fast/xpath/py-dom-xpath/functions.html + fast/xpath/py-dom-xpath/nodetests.html + fast/xpath/py-dom-xpath/paths.html + fast/xpath/py-dom-xpath/predicates.html + + Fix bugs found with this test suite: + - name and local-name were incorrect for processing instructions (XPath expanded-name + doesn't match DOM exactly); + - name, local-name and namespace functions should crash on attribute nodes; + - attemps to make node sets from other types were not detected as errors. + + No performance impact. + + * xml/XPathExpressionNode.h: Track type conversion errors that happen during evaluation. + An error won't stop evaluation, but an exception will be raised afterwards. We could also + detect conversion errors at compile time, but not if we're going to support XPath variables + (which is unnecessary for XPathEvaluator, but will be necessary if we decide to make our own + XSLT one day). + + * xml/XPathExpression.cpp: (WebCore::XPathExpression::evaluate): Check whether a type + conversion exception occurred during evaluation, and raise an excpetion if it did. + + * xml/XPathFunctions.cpp: + (WebCore::XPath::expandedNameLocalPart): + (WebCore::XPath::expandedName): + XPath name(), local-name() and namespace-uri() functions are defined in terms of expanded-name, + which doesn't match anything available via DOM exactly. Calculate the expanded name properly. + (WebCore::XPath::FunNamespaceURI::evaluate): This function could crash if used with an + attribute node, because it released what was possibly the only reference to attribute node + before using it. Changed the function to avoid such situation. + (WebCore::XPath::FunLocalName::evaluate): Ditto. Also, used the new expandedNameLocalPart() + to work properly with processing instruction nodes. + (WebCore::XPath::FunName::evaluate): Ditto (using expandedName()). + (WebCore::XPath::FunCount::evaluate): Signal an error if the argument is not a node-set + (by using toNodeSet unconditionally, which will raise an error, and return an empty set). + + * xml/XPathPath.cpp: (WebCore::XPath::Filter::evaluate): Signal an error if the expression + evaluation result is not a node-set. + + * xml/XPathPath.h: (WebCore::XPath::Filter::resultType): A Filter's result is actually + always a node-set (this is not so for FilterExpr production in the spec, but is for us, + because we don't naively map BNF productions to classes). + + * xml/XPathPredicate.cpp: (WebCore::XPath::Union::evaluate): Signal an error if either side + is not a node-set. + + * xml/XPathStep.cpp: Removed an unnecesary include. + + * xml/XPathValue.cpp: + (WebCore::XPath::Value::toNodeSet): Signal an error if conversion fails. + (WebCore::XPath::Value::modifiableNodeSet): Ditto. + (WebCore::XPath::Value::toNumber): Don't allow inputs that don't match XPath Number production + (in particular, those using exponential notation). + +2009-06-01 Sam Weinig <sam@webkit.org> + + Reviewed by Brady Eidson. + + Part of https://bugs.webkit.org/show_bug.cgi?id=26100 + Add missing event handler properties to the DOMWindow + + Added oncontextmenu, oninput, and onmessage event handlers to + the DOMWindow. Aditionally, the onloadstart, onprogress, onstalled, + and onsuspend event handlers were implemented but not added to + DOMWindow.idl. + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::oninput): + (WebCore::DOMWindow::setOninput): + (WebCore::DOMWindow::onmessage): + (WebCore::DOMWindow::setOnmessage): + (WebCore::DOMWindow::oncontextmenu): + (WebCore::DOMWindow::setOncontextmenu): + * page/DOMWindow.h: + * page/DOMWindow.idl: + +2009-06-01 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Darin Adler. Landed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=26123 + + Remove a redundant checkEncodedString call when constructing a + KURL object from a string. + + * platform/KURL.cpp: + (WebCore::KURL::KURL): + +2009-06-01 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, build fix. + + Reposition platform guard, improperly placed by http://trac.webkit.org/changeset/44340 + Bad Dimitri. + + * platform/KeyboardCodes.h: Repositioned the guard to avoid nested + WebCore namespace declarations. + +2009-06-01 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, build fix. + + * platform/KeyboardCodes.h: Integrated contents of platform/chromium/KeyboardCodes.h + with a stern FIXME. + * platform/chromium/KeyboardCodes.h: Removed. + +2009-06-01 Nikolas Zimmermann <zimmermann@kde.org> + + Reviewed by Eric Seidel. + + Fix assertion error in --filters enabled debug builds. + Instead of using RefPtr<AtomicStringImpl> as keys for the hash maps in SVGFilterBuilder, just use AtomicString objects. + + * svg/graphics/filters/SVGFilterBuilder.cpp: + (WebCore::SVGFilterBuilder::SVGFilterBuilder): + (WebCore::SVGFilterBuilder::add): + (WebCore::SVGFilterBuilder::getEffectById): + * svg/graphics/filters/SVGFilterBuilder.h: + +2009-06-01 Nikolas Zimmermann <zimmermann@kde.org> + + Reviewed by Eric Seidel. + + Fix --filters enabled build on Mac. + Remove unnecessary 'boundingBox' parameter from finishRenderSVGContent() method. + Kill several warnings, to make build pass. + + * rendering/RenderPath.cpp: + (WebCore::RenderPath::paint): + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::paint): + * rendering/RenderSVGImage.cpp: + (WebCore::RenderSVGImage::paint): + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::paint): + * rendering/SVGRenderSupport.cpp: + (WebCore::SVGRenderBase::finishRenderSVGContent): + * rendering/SVGRenderSupport.h: + * rendering/SVGRootInlineBox.cpp: + (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback): + * svg/SVGFEGaussianBlurElement.cpp: + (WebCore::SVGFEGaussianBlurElement::setStdDeviation): + * svg/graphics/filters/SVGFEFlood.cpp: + (WebCore::FEFlood::FEFlood): + +2009-06-01 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Dave Hyatt. + + Fix Chromium build by adding an #ifdef, restoring the code path to that + before http://trac.webkit.org/changeset/44287. + + * platform/mac/ScrollbarThemeMac.mm: + (WebCore::ScrollbarThemeMac::paint): Added an #ifdef. + +2009-06-01 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + Remove last pieces of the old SVG filter system. They are not + usable with our current filter system. The new filter effects + will replace the functionality step by step. + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * svg/graphics/cairo: Removed. + * svg/graphics/cairo/SVGResourceFilterCairo.cpp: Removed. + * svg/graphics/cg: Removed. + * svg/graphics/cg/SVGResourceFilterCg.cpp: Removed. + * svg/graphics/cg/SVGResourceFilterCg.mm: Removed. + * svg/graphics/filters/SVGFilterEffect.cpp: Removed. + * svg/graphics/filters/SVGFilterEffect.h: Removed. + * svg/graphics/filters/cg: Removed. + * svg/graphics/filters/cg/SVGFEHelpersCg.h: Removed. + * svg/graphics/filters/cg/SVGFEHelpersCg.mm: Removed. + * svg/graphics/filters/cg/SVGFilterEffectCg.mm: Removed. + * svg/graphics/filters/cg/WKArithmeticFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKArithmeticFilter.h: Removed. + * svg/graphics/filters/cg/WKArithmeticFilter.m: Removed. + * svg/graphics/filters/cg/WKComponentMergeFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKComponentMergeFilter.h: Removed. + * svg/graphics/filters/cg/WKComponentMergeFilter.m: Removed. + * svg/graphics/filters/cg/WKDiffuseLightingFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKDiffuseLightingFilter.h: Removed. + * svg/graphics/filters/cg/WKDiffuseLightingFilter.m: Removed. + * svg/graphics/filters/cg/WKDiscreteTransferFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKDiscreteTransferFilter.h: Removed. + * svg/graphics/filters/cg/WKDiscreteTransferFilter.m: Removed. + * svg/graphics/filters/cg/WKDisplacementMapFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKDisplacementMapFilter.h: Removed. + * svg/graphics/filters/cg/WKDisplacementMapFilter.m: Removed. + * svg/graphics/filters/cg/WKDistantLightFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKDistantLightFilter.h: Removed. + * svg/graphics/filters/cg/WKDistantLightFilter.m: Removed. + * svg/graphics/filters/cg/WKGammaTransferFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKGammaTransferFilter.h: Removed. + * svg/graphics/filters/cg/WKGammaTransferFilter.m: Removed. + * svg/graphics/filters/cg/WKIdentityTransferFilter.h: Removed. + * svg/graphics/filters/cg/WKIdentityTransferFilter.m: Removed. + * svg/graphics/filters/cg/WKLinearTransferFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKLinearTransferFilter.h: Removed. + * svg/graphics/filters/cg/WKLinearTransferFilter.m: Removed. + * svg/graphics/filters/cg/WKNormalMapFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKNormalMapFilter.h: Removed. + * svg/graphics/filters/cg/WKNormalMapFilter.m: Removed. + * svg/graphics/filters/cg/WKPointLightFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKPointLightFilter.h: Removed. + * svg/graphics/filters/cg/WKPointLightFilter.m: Removed. + * svg/graphics/filters/cg/WKSpecularLightingFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKSpecularLightingFilter.h: Removed. + * svg/graphics/filters/cg/WKSpecularLightingFilter.m: Removed. + * svg/graphics/filters/cg/WKSpotLightFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKSpotLightFilter.h: Removed. + * svg/graphics/filters/cg/WKSpotLightFilter.m: Removed. + * svg/graphics/filters/cg/WKTableTransferFilter.cikernel: Removed. + * svg/graphics/filters/cg/WKTableTransferFilter.h: Removed. + * svg/graphics/filters/cg/WKTableTransferFilter.m: Removed. + * svg/graphics/mac: Removed. + * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h: Removed. + * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm: Removed. + * svg/graphics/qt: Removed. + * svg/graphics/qt/SVGResourceFilterQt.cpp: Removed. + * svg/graphics/skia: Removed. + * svg/graphics/skia/SVGResourceFilterSkia.cpp: Removed. + +2009-06-01 Dmitry Titov <dimich@chromium.org> + + Fix the previous checkin (ttp://trac.webkit.org/changeset/44327). + This adds a comment suggested during review. + + * platform/ThreadGlobalData.cpp: + (WebCore::ThreadGlobalData::~ThreadGlobalData): Add comment clarifying the change. + +2009-06-01 Dmitry Titov <dimich@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25973 + Avoid calling CurrentThread() in thread-specific destructors in OSX Chromium. + Pthreads invoke thread-specific destructors after WTF::detachThread() is called and ThreadIdentifier + for the thread removed from the WTF thread map. Calling CurrentThread() in such destructor causes + the ThreadIdentifier to be re-created and inserted into the map again. Since Pthreads on OSX reuse + the pthread_t between threads, the next created thread will have the same pthread_t and cause an assert + in establishIdentifierForPthreadHandle() since the id is already in the map. + + The behavior is covered by existing test LayoutTests/fast/workers/worker-terminate.html, which currently fails + on OSX Chromium and will stop failing after this change. + + * platform/ThreadGlobalData.h: + * platform/ThreadGlobalData.cpp: + (WebCore::ThreadGlobalData::~ThreadGlobalData): + Store the result of "isMainThread()" in a member variable during construction of thread-specific data + to avoid calling IsMainThread() in destructor, since the latter calls CurrentThread() in OSX Chromium. + +2009-06-01 David Levin <levin@chromium.org> + + Reviewed by Darin Alder and Maciej Stachowiak. + + Bug 26057: StringImpl should share buffers with UString. + https://bugs.webkit.org/show_bug.cgi?id=26057 + + This change results in the following performance improvements: + On http://www.hixie.ch/tests/adhoc/perf/dom/artificial/core/001.html + the time went from 78ms to 40ms for append (other times remained constant). + + On http://www.hixie.ch/tests/adhoc/perf/dom/artificial/core/002.html, + the time went from 3900ms to 2600ms. + + For http://dromaeo.com/?dom, the time for DomModification improved by ~6%. + Other tests in dom seemed to be faster across several runs but within the + margin of error (except DOM Attributes which was slightly ~1.5% worse). + + Existing tests cover this code and there is no new functionality + that is exposed to test. + + * platform/text/AtomicString.cpp: + (WebCore::AtomicString::add): + * platform/text/String.cpp: + (WebCore::String::String): + (WebCore::String::operator UString): + * platform/text/StringImpl.cpp: + (WebCore::StringImpl::StringImpl): + (WebCore::StringImpl::~StringImpl): + (WebCore::StringImpl::create): Consumes a shared buffer. + (WebCore::StringImpl::ustring): Shares the StringImpl's buffer with the UString. + (WebCore::StringImpl::sharedBuffer): Exposes the buffer that may be shared. + * platform/text/StringImpl.h: + (WebCore::StringImpl::hasTerminatingNullCharacter): + (WebCore::StringImpl::inTable): + (WebCore::StringImpl::setInTable): Converted the bools to be inside of PtrAndFlags + to avoid growing StringImpl in size. + +2009-06-01 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, build fix. + + V8 bindings follow-up to to DOMWindow-related cleanup: + http://trac.webkit.org/changeset/44215 + + * bindings/v8/ScriptController.cpp: Removed disconnectFrame(), relocated + its body to destructor. + * bindings/v8/ScriptController.h: Removed disconnectFrame() decl. + +2009-05-28 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + - Add panel enabler to the resources panel. + - Add session / always options into the panel enabler. + - Make enabled status for three panels sticky (globally). + - Persist enabled status using InspectorController::Settings + - Make InspectorController produce no network-related overhead when + resources panel is not enabled. + + https://bugs.webkit.org/show_bug.cgi?id=26046 + + * inspector/InspectorController.cpp: + (WebCore::InspectorController::InspectorController): + (WebCore::InspectorController::setWindowVisible): + (WebCore::InspectorController::populateScriptObjects): + (WebCore::InspectorController::identifierForInitialRequest): + (WebCore::InspectorController::willSendRequest): + (WebCore::InspectorController::didReceiveResponse): + (WebCore::InspectorController::didReceiveContentLength): + (WebCore::InspectorController::didFinishLoading): + (WebCore::InspectorController::didFailLoading): + (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest): + (WebCore::InspectorController::scriptImported): + (WebCore::InspectorController::enableResourceTracking): + (WebCore::InspectorController::disableResourceTracking): + (WebCore::InspectorController::startUserInitiatedProfiling): + (WebCore::InspectorController::enableProfiler): + (WebCore::InspectorController::disableProfiler): + (WebCore::InspectorController::enableDebugger): + (WebCore::InspectorController::disableDebugger): + * inspector/InspectorController.h: + (WebCore::InspectorController::Setting::Setting): + (WebCore::InspectorController::resourceTrackingEnabled): + * inspector/InspectorController.idl: + * inspector/InspectorFrontend.cpp: + (WebCore::InspectorFrontend::resourceTrackingWasEnabled): + (WebCore::InspectorFrontend::resourceTrackingWasDisabled): + * inspector/InspectorFrontend.h: + * inspector/front-end/PanelEnablerView.js: + (WebInspector.PanelEnablerView.enableOption): + (WebInspector.PanelEnablerView): + (WebInspector.PanelEnablerView.prototype._windowResized): + (WebInspector.PanelEnablerView.prototype.alwaysWasChosen): + * inspector/front-end/ProfilesPanel.js: + (WebInspector.ProfilesPanel.prototype._enableProfiling): + (WebInspector.ProfilesPanel.prototype._toggleProfiling): + * inspector/front-end/ResourcesPanel.js: + (WebInspector.ResourcesPanel): + (WebInspector.ResourcesPanel.prototype.get statusBarItems): + (WebInspector.ResourcesPanel.prototype.resourceTrackingWasEnabled): + (WebInspector.ResourcesPanel.prototype.resourceTrackingWasDisabled): + (WebInspector.ResourcesPanel.prototype.reset): + (WebInspector.ResourcesPanel.prototype._updateSidebarWidth): + (WebInspector.ResourcesPanel.prototype._enableResourceTracking): + (WebInspector.ResourcesPanel.prototype._toggleResourceTracking): + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._enableDebugging): + (WebInspector.ScriptsPanel.prototype._toggleDebugging): + * inspector/front-end/inspector.css: + * inspector/front-end/inspector.js: + (WebInspector.resourceTrackingWasEnabled): + (WebInspector.resourceTrackingWasDisabled): + +2009-06-01 Drew Wilson <atwilson@google.com> + + Reviewed by Darin Adler. Landed (and tweaked) by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=25902 + + Added WorkerContext.close() + + Test: fast/workers/worker-close.html + + * workers/WorkerContext.cpp: + (WebCore::WorkerContext::close): + * workers/WorkerContext.h: + * workers/WorkerContext.idl: + * workers/WorkerMessagingProxy.cpp: + (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal): + +2009-06-01 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=12471 + XPathResult not invalidated for documents retrieved via XMLHttpRequest + + Test: fast/xpath/detached-subtree-invalidate-iterator.html and existing tests in dom/svg/level3/xpath. + + Use DOM tree version instead of DOMSubtreeModified events to invalidate, which is more + reliable and much faster. + + * xml/XPathExpression.cpp: + (WebCore::XPathExpression::evaluate): + * xml/XPathResult.cpp: + (WebCore::XPathResult::XPathResult): + (WebCore::XPathResult::~XPathResult): + (WebCore::XPathResult::invalidIteratorState): + (WebCore::XPathResult::iterateNext): + * xml/XPathResult.h: + (WebCore::XPathResult::create): + +2009-06-01 Brett Wilson <brettw@chromium.org> + + Reviewed by Darin Adler. Landed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=25750 + + Test: fast/transforms/bounding-rect-zoom.html + + Make getClientRects and getBoundingClientRect account for ther zoom + factor. + + * dom/Element.cpp: + (WebCore::adjustFloatPointForAbsoluteZoom): + (WebCore::adjustFloatQuadForAbsoluteZoom): + (WebCore::adjustIntRectForAbsoluteZoom): + (WebCore::Element::getClientRects): + (WebCore::Element::getBoundingClientRect): + +2009-06-01 Tony Chang <tony@chromium.org> + + Reviewed by Dimitri Glazkov. Landed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=26026 + + Fix an infinite loop when using the keyboard in Chromium select + popups. + + Not testable since it involves sending a keyboard event to + the popup, which is not possible (eventSender sends the key + events through webview, we want to go through the webwidget). + + * platform/chromium/PopupMenuChromium.cpp: + +2009-06-01 Nate Chapin <japhet@google.com> + + Reviewed by Dimitri Glazkov. Landed by Adam Barth. + + If a url with an anchor is being loaded, ensure that the anchor remains locked in view until the page + has finished loading compeltely or the user has manually scrolled. Refreshing an anchor url after + scrolling to a new location on the page will still result in jumping to the new location. + + https://bugs.webkit.org/show_bug.cgi?id=26034 + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::gotoAnchor): Set anchor lock after navigating to anchor. + (WebCore::FrameLoader::completed): Release anchor lock. + * page/FrameView.cpp: + (WebCore::FrameView::FrameView): Ensure anchor lock starts unset. + (WebCore::FrameView::reset): Ensure anchor lock starts unset. + (WebCore::FrameView::layout): If anchor lock is set, force a gotoAnchor() after layout. + (WebCore::FrameView::scrollRectIntoViewRecursively): Release anchor lock if a programmatic scroll begins. + (WebCore::FrameView::setWasScrolledByUser): Release anchor lock if user manually scrolls. + (WebCore::FrameView::setScrollPosition): Release anchor lock if a programmatic scroll begins. + * page/FrameView.h: + (WebCore::FrameView::lockedToAnchor): Added. + (WebCore::FrameView::setLockedToAnchor): Added. + +2009-05-31 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + WebKit needs cross-platform filter system + [https://bugs.webkit.org/show_bug.cgi?id=19991] + + A short clean-up. FilterBuilder is SVG specific. Move it + to svg/graphics/filters and rename it to SVGFilterBuilder. + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.xcodeproj/project.pbxproj: + * svg/FilterBuilder.cpp: Removed. + * svg/FilterBuilder.h: Removed. + * svg/SVGFilterElement.cpp: + * svg/SVGFilterPrimitiveStandardAttributes.h: + * svg/graphics/SVGResourceFilter.cpp: + (WebCore::SVGResourceFilter::SVGResourceFilter): + * svg/graphics/SVGResourceFilter.h: + (WebCore::SVGResourceFilter::builder): + * svg/graphics/filters/SVGFilterBuilder.cpp: Added. + (WebCore::SVGFilterBuilder::SVGFilterBuilder): + (WebCore::SVGFilterBuilder::add): + (WebCore::SVGFilterBuilder::getEffectById): + (WebCore::SVGFilterBuilder::clearEffects): + * svg/graphics/filters/SVGFilterBuilder.h: Added. + (WebCore::SVGFilterBuilder::lastEffect): + +2009-05-31 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=13233 + Need to implement an optimizing XPath evaluator + + Avoid sorting results of hierarchical paths that are naturally sorted. On a flat data structure + with 128K nodes and a simple XPath expression, this changes evaluation time from 1.5 minutes + to 33 ms. + + * xml/XPathNodeSet.h: Keep track of whether subtrees rooted at nodes in set are disjoint, + which is useful for optimization. + (WebCore::XPath::NodeSet::NodeSet): Removed, it was identical to compiler generated one. + (WebCore::XPath::NodeSet::operator=): Ditto. + (WebCore::XPath::NodeSet::swap): Ditto. + (WebCore::XPath::NodeSet::isSorted): Single element sets are always sorted, even if sort() + was never called. + (WebCore::XPath::NodeSet::markSubtreesDisjoint): Just like being sorted, the new flag is + maintained by callers. + (WebCore::XPath::NodeSet::subtreesAreDisjoint): A single element set only has one subtree. + Currently, the only way for a set to gain this flag is to be produced from a single element + set with a hierarchical location path. + + * xml/XPathPath.cpp: (WebCore::XPath::LocationPath::evaluate): Use the new flag to avoid + maintaining a set of unique nodes, and to avoid sorting the result. + +2009-05-31 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=13233 + Need to implement an optimizing XPath evaluator + + This patch adds some infrastructure and simple optimizations. Namely, + - we now avoid building a full NodeSet just to evaluate a predicate in some cases; + - "/descendant-or-self::node()/child::" is optimized to iterate the tree once when possible; + + * xml/XPathExpressionNode.cpp: + (WebCore::XPath::Expression::Expression): + * xml/XPathExpressionNode.h: + (WebCore::XPath::Expression::addSubExpression): + (WebCore::XPath::Expression::isContextNodeSensitive): + (WebCore::XPath::Expression::isContextPositionSensitive): + (WebCore::XPath::Expression::isContextSizeSensitive): + (WebCore::XPath::Expression::setIsContextNodeSensitive): + (WebCore::XPath::Expression::setIsContextPositionSensitive): + (WebCore::XPath::Expression::setIsContextSizeSensitive): + XPath expression now knows its result type, and whether evaluation depends on context. + + * xml/XPathFunctions.cpp: + (WebCore::XPath::FunLast::resultType): + (WebCore::XPath::FunLast::FunLast): + (WebCore::XPath::FunPosition::resultType): + (WebCore::XPath::FunPosition::FunPosition): + (WebCore::XPath::FunCount::resultType): + (WebCore::XPath::FunId::resultType): + (WebCore::XPath::FunLocalName::resultType): + (WebCore::XPath::FunLocalName::FunLocalName): + (WebCore::XPath::FunNamespaceURI::resultType): + (WebCore::XPath::FunNamespaceURI::FunNamespaceURI): + (WebCore::XPath::FunName::resultType): + (WebCore::XPath::FunName::FunName): + (WebCore::XPath::FunString::resultType): + (WebCore::XPath::FunString::FunString): + (WebCore::XPath::FunConcat::resultType): + (WebCore::XPath::FunStartsWith::resultType): + (WebCore::XPath::FunContains::resultType): + (WebCore::XPath::FunSubstringBefore::resultType): + (WebCore::XPath::FunSubstringAfter::resultType): + (WebCore::XPath::FunSubstring::resultType): + (WebCore::XPath::FunStringLength::resultType): + (WebCore::XPath::FunStringLength::FunStringLength): + (WebCore::XPath::FunNormalizeSpace::resultType): + (WebCore::XPath::FunNormalizeSpace::FunNormalizeSpace): + (WebCore::XPath::FunTranslate::resultType): + (WebCore::XPath::FunBoolean::resultType): + (WebCore::XPath::FunNot::resultType): + (WebCore::XPath::FunTrue::resultType): + (WebCore::XPath::FunFalse::resultType): + (WebCore::XPath::FunLang::resultType): + (WebCore::XPath::FunLang::FunLang): + (WebCore::XPath::FunNumber::resultType): + (WebCore::XPath::FunNumber::FunNumber): + (WebCore::XPath::FunSum::resultType): + (WebCore::XPath::FunFloor::resultType): + (WebCore::XPath::FunCeiling::resultType): + (WebCore::XPath::FunRound::resultType): + (WebCore::XPath::Function::setArguments): + Set optimization details for the expression. Normally, a function does not introduce context + node set dependency, but some use context node as default argument, or otherwise use the context. + + * xml/XPathFunctions.h: Tweaked style. + + * xml/XPathPath.cpp: + (WebCore::XPath::Filter::Filter): A filter is as context node set sensitive as its expression is. + (WebCore::XPath::LocationPath::LocationPath): A location path can only be context node sensitive, + and only if the path relative. + (WebCore::XPath::LocationPath::appendStep): Invoke compile-time Step optimizations. + (WebCore::XPath::LocationPath::insertFirstStep): Ditto. + (WebCore::XPath::Path::Path): A path is as context node set sensitive as its filter is. + + * xml/XPathPath.h: + (WebCore::XPath::Filter::resultType): Result type of a filter is the same as of its expression + (useful filters return NodeSets, of course). + (WebCore::XPath::LocationPath::setAbsolute): An absolute location path if context node set + insensitive. + (WebCore::XPath::LocationPath::resultType): A path's result is always a node set. + (WebCore::XPath::Path::resultType): Ditto. + + * xml/XPathPredicate.h: + (WebCore::XPath::Number::resultType): Return a proper result type. + (WebCore::XPath::StringExpression::resultType): Ditto. + (WebCore::XPath::Negative::resultType): Ditto. + (WebCore::XPath::NumericOp::resultType): Ditto. + (WebCore::XPath::EqTestOp::resultType): Ditto. + (WebCore::XPath::LogicalOp::resultType): Ditto. + (WebCore::XPath::Union::resultType): Ditto. + (WebCore::XPath::Predicate::isContextPositionSensitive): A predicate can be context position + sensitive even if its expression is not, because e.g. [5] is a shortcut for [position()=5]. + (WebCore::XPath::Predicate::isContextSizeSensitive): This matches expression result. + + * xml/XPathStep.h: + (WebCore::XPath::Step::NodeTest::Kind): Removed unused ElementNodeTest, which was previously + borrowed from XPath 2.0 to express some optimizations. + (WebCore::XPath::Step::NodeTest::mergedPredicates): To avoid building a huge node set and + filtering it with predicates, we now try to apply predicates while enumerating an axis. + (WebCore::XPath::Step::nodeTest): Expose m_nodeTest. + + * xml/XPathStep.cpp: + (WebCore::XPath::Step::~Step): The step owns NodeTest merged predicates, so it is still + possible to copy NodeTests. + (WebCore::XPath::Step::optimize): Merge predicates into NodeTest if possible. + (WebCore::XPath::optimizeStepPair): Optimize some expressions containing "//". + (WebCore::XPath::Step::predicatesAreContextListInsensitive): The above optimization is only + possible if there are no context sensitive predicates for "//". + (WebCore::XPath::Step::evaluate): Track context position for the first merged predicate. + (WebCore::XPath::nodeMatchesBasicTest): Check whether the node matches node test, ignoring + merged predicates. + (WebCore::XPath::nodeMatches): Additionally check merged predicates, and update position. + (WebCore::XPath::Step::nodesInAxis): Check merged predicates in optimized attribute code + path. + + * xml/XPathVariableReference.h: (WebCore::XPath::VariableReference::resultType): Variable + references are not used with XPathEvaluator, so we'll only need them if we decide to + reimplement XSLT. The type of variable reference is not known at compile time. + +2009-05-31 Sam Weinig <sam@webkit.org> + + Rubber-stamped by Dan Bernstein. + + Remove unused JSEventTargetBase.h + + * GNUmakefile.am: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/JSEventTargetBase.h: Removed. + +2009-05-31 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + Part of https://bugs.webkit.org/show_bug.cgi?id=26100 + Add missing event handler properties to the DOMWindow + + Add missing oncanplay, oncanplaythrough, ondurationchange, onemptied, + onended, onloadeddata, onloadedmetadata, onpause, onplay, onplaying, + onratechange, onseeked, onseeking, ontimeupdate, onvolumechange, + onwaiting, onloadstart, onprogress, onstalled, onsuspend, ondrag, + ondragend, ondragenter, ondragleave, ondragover, ondragstart and + ondrop event handlers to the DOMWindow. + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::ondrag): + (WebCore::DOMWindow::setOndrag): + (WebCore::DOMWindow::ondragend): + (WebCore::DOMWindow::setOndragend): + (WebCore::DOMWindow::ondragenter): + (WebCore::DOMWindow::setOndragenter): + (WebCore::DOMWindow::ondragleave): + (WebCore::DOMWindow::setOndragleave): + (WebCore::DOMWindow::ondragover): + (WebCore::DOMWindow::setOndragover): + (WebCore::DOMWindow::ondragstart): + (WebCore::DOMWindow::setOndragstart): + (WebCore::DOMWindow::ondrop): + (WebCore::DOMWindow::setOndrop): + (WebCore::DOMWindow::oncanplay): + (WebCore::DOMWindow::setOncanplay): + (WebCore::DOMWindow::oncanplaythrough): + (WebCore::DOMWindow::setOncanplaythrough): + (WebCore::DOMWindow::ondurationchange): + (WebCore::DOMWindow::setOndurationchange): + (WebCore::DOMWindow::onemptied): + (WebCore::DOMWindow::setOnemptied): + (WebCore::DOMWindow::onended): + (WebCore::DOMWindow::setOnended): + (WebCore::DOMWindow::onloadeddata): + (WebCore::DOMWindow::setOnloadeddata): + (WebCore::DOMWindow::onloadedmetadata): + (WebCore::DOMWindow::setOnloadedmetadata): + (WebCore::DOMWindow::onpause): + (WebCore::DOMWindow::setOnpause): + (WebCore::DOMWindow::onplay): + (WebCore::DOMWindow::setOnplay): + (WebCore::DOMWindow::onplaying): + (WebCore::DOMWindow::setOnplaying): + (WebCore::DOMWindow::onratechange): + (WebCore::DOMWindow::setOnratechange): + (WebCore::DOMWindow::onseeked): + (WebCore::DOMWindow::setOnseeked): + (WebCore::DOMWindow::onseeking): + (WebCore::DOMWindow::setOnseeking): + (WebCore::DOMWindow::ontimeupdate): + (WebCore::DOMWindow::setOntimeupdate): + (WebCore::DOMWindow::onvolumechange): + (WebCore::DOMWindow::setOnvolumechange): + (WebCore::DOMWindow::onwaiting): + (WebCore::DOMWindow::setOnwaiting): + (WebCore::DOMWindow::onloadstart): + (WebCore::DOMWindow::setOnloadstart): + (WebCore::DOMWindow::onprogress): + (WebCore::DOMWindow::setOnprogress): + (WebCore::DOMWindow::onstalled): + (WebCore::DOMWindow::setOnstalled): + (WebCore::DOMWindow::onsuspend): + (WebCore::DOMWindow::setOnsuspend): + * page/DOMWindow.h: + * page/DOMWindow.idl: + +2009-05-31 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Part of https://bugs.webkit.org/show_bug.cgi?id=26100 + Add missing event handler properties to the DOMWindow + + Add missing onstorage event handler to the DOMWindow. + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::onstorage): + (WebCore::DOMWindow::setOnstorage): + * page/DOMWindow.h: + * page/DOMWindow.idl: + +2009-05-30 Sam Weinig <sam@webkit.org> + + Reviewed by Mark Rowe. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=26110 + Update online/offline events to match the current spec. + - Also adds window.ononline and window.onoffline event handler + properties. + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::onoffline): + (WebCore::DOMWindow::setOnoffline): + (WebCore::DOMWindow::ononline): + (WebCore::DOMWindow::setOnonline): + * page/DOMWindow.h: + * page/DOMWindow.idl: + * page/Page.cpp: + (WebCore::networkStateChanged): + +2009-05-31 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + WebKit needs cross-platform filter system + [https://bugs.webkit.org/show_bug.cgi?id=19991] + + Make use of the new filter system in WebCore for SVG. Deleted Mac bindings + and replace it by a platform independent code. Calculation of subRegions + is missing but needed for a first filter effect. + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * platform/graphics/filters/Filter.h: + (WebCore::Filter::~Filter): + (WebCore::Filter::setSourceImage): + * rendering/SVGRenderSupport.cpp: + (WebCore::SVGRenderBase::prepareToRenderSVGContent): + (WebCore::SVGRenderBase::finishRenderSVGContent): + * svg/FilterBuilder.h: + (WebCore::FilterBuilder::lastEffect): + * svg/SVGFEBlendElement.cpp: + (WebCore::SVGFEBlendElement::SVGFEBlendElement): + (WebCore::SVGFEBlendElement::build): + * svg/SVGFEBlendElement.h: + * svg/SVGFEColorMatrixElement.cpp: + (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement): + (WebCore::SVGFEColorMatrixElement::build): + * svg/SVGFEColorMatrixElement.h: + * svg/SVGFEComponentTransferElement.cpp: + (WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement): + (WebCore::SVGFEComponentTransferElement::build): + * svg/SVGFEComponentTransferElement.h: + * svg/SVGFECompositeElement.cpp: + (WebCore::SVGFECompositeElement::SVGFECompositeElement): + (WebCore::SVGFECompositeElement::build): + * svg/SVGFECompositeElement.h: + * svg/SVGFEDiffuseLightingElement.cpp: + (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement): + (WebCore::SVGFEDiffuseLightingElement::build): + * svg/SVGFEDiffuseLightingElement.h: + * svg/SVGFEDisplacementMapElement.cpp: + (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement): + (WebCore::SVGFEDisplacementMapElement::build): + * svg/SVGFEDisplacementMapElement.h: + * svg/SVGFEFloodElement.cpp: + (WebCore::SVGFEFloodElement::SVGFEFloodElement): + (WebCore::SVGFEFloodElement::build): + * svg/SVGFEFloodElement.h: + * svg/SVGFEGaussianBlurElement.cpp: + (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement): + (WebCore::SVGFEGaussianBlurElement::build): + * svg/SVGFEGaussianBlurElement.h: + * svg/SVGFEImageElement.cpp: + (WebCore::SVGFEImageElement::SVGFEImageElement): + (WebCore::SVGFEImageElement::notifyFinished): + (WebCore::SVGFEImageElement::build): + * svg/SVGFEImageElement.h: + * svg/SVGFEMergeElement.cpp: + (WebCore::SVGFEMergeElement::SVGFEMergeElement): + (WebCore::SVGFEMergeElement::build): + * svg/SVGFEMergeElement.h: + * svg/SVGFEOffsetElement.cpp: + (WebCore::SVGFEOffsetElement::SVGFEOffsetElement): + (WebCore::SVGFEOffsetElement::build): + * svg/SVGFEOffsetElement.h: + * svg/SVGFESpecularLightingElement.cpp: + (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement): + (WebCore::SVGFESpecularLightingElement::build): + * svg/SVGFESpecularLightingElement.h: + * svg/SVGFETileElement.cpp: + (WebCore::SVGFETileElement::SVGFETileElement): + (WebCore::SVGFETileElement::build): + * svg/SVGFETileElement.h: + * svg/SVGFETurbulenceElement.cpp: + (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement): + (WebCore::SVGFETurbulenceElement::build): + * svg/SVGFETurbulenceElement.h: + * svg/SVGFilterElement.cpp: + (WebCore::SVGFilterElement::canvasResource): + * svg/SVGFilterPrimitiveStandardAttributes.cpp: + (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes): + * svg/SVGFilterPrimitiveStandardAttributes.h: + (WebCore::SVGFilterPrimitiveStandardAttributes::contextElement): + * svg/graphics/SVGResourceFilter.cpp: + (WebCore::SVGResourceFilter::SVGResourceFilter): + (WebCore::SVGResourceFilter::addFilterEffect): + (WebCore::SVGResourceFilter::filterBBoxForItemBBox): + (WebCore::SVGResourceFilter::prepareFilter): + (WebCore::SVGResourceFilter::applyFilter): + (WebCore::SVGResourceFilter::externalRepresentation): + * svg/graphics/SVGResourceFilter.h: + (WebCore::SVGResourceFilter::filterBoundingBox): + (WebCore::SVGResourceFilter::setFilterBoundingBox): + (WebCore::SVGResourceFilter::itemBoundingBox): + (WebCore::SVGResourceFilter::setItemBoundingBox): + (WebCore::SVGResourceFilter::builder): + +2009-05-31 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + WebKit needs cross-platform filter system + [https://bugs.webkit.org/show_bug.cgi?id=19991] + + Adding 'in1' attribute support for <feFlood>, as specified in SVG 1.1. + This change helps creating test cases, once filters are activated. + + * svg/SVGFEFloodElement.cpp: + (WebCore::SVGFEFloodElement::SVGFEFloodElement): + (WebCore::SVGFEFloodElement::parseMappedAttribute): + (WebCore::SVGFEFloodElement::build): + * svg/SVGFEFloodElement.h: + * svg/SVGFEFloodElement.idl: + * svg/graphics/filters/SVGFEFlood.cpp: + (WebCore::FEFlood::FEFlood): + (WebCore::FEFlood::create): + * svg/graphics/filters/SVGFEFlood.h: + +2009-05-31 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + WebKit needs cross-platform filter system + [https://bugs.webkit.org/show_bug.cgi?id=19991] + + Replace all occurrences of SVGResourceFilter by Filter. This is the last + step for a SVG independent filter system. Every other part of WebCore can + use the filter system by creating a new Filter object. + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.xcodeproj/project.pbxproj: + * platform/graphics/filters/FEBlend.cpp: + (WebCore::FEBlend::apply): + * platform/graphics/filters/FEBlend.h: + * platform/graphics/filters/FEColorMatrix.cpp: + (WebCore::FEColorMatrix::apply): + * platform/graphics/filters/FEColorMatrix.h: + * platform/graphics/filters/FEComponentTransfer.cpp: + (WebCore::FEComponentTransfer::apply): + * platform/graphics/filters/FEComponentTransfer.h: + * platform/graphics/filters/FEComposite.cpp: + (WebCore::FEComposite::apply): + * platform/graphics/filters/FEComposite.h: + * platform/graphics/filters/Filter.h: Added. + (WebCore::Filter::setSourceImage): + (WebCore::Filter::sourceImage): + * platform/graphics/filters/FilterEffect.h: + * platform/graphics/filters/SourceAlpha.cpp: + (WebCore::SourceAlpha::apply): + * platform/graphics/filters/SourceAlpha.h: + * platform/graphics/filters/SourceGraphic.cpp: + (WebCore::SourceGraphic::apply): + * platform/graphics/filters/SourceGraphic.h: + * svg/Filter.cpp: Removed. + * svg/Filter.h: Removed. + * svg/graphics/filters/SVGFEConvolveMatrix.cpp: + (WebCore::FEConvolveMatrix::apply): + * svg/graphics/filters/SVGFEConvolveMatrix.h: + * svg/graphics/filters/SVGFEDiffuseLighting.cpp: + (WebCore::FEDiffuseLighting::apply): + * svg/graphics/filters/SVGFEDiffuseLighting.h: + * svg/graphics/filters/SVGFEDisplacementMap.cpp: + (WebCore::FEDisplacementMap::apply): + * svg/graphics/filters/SVGFEDisplacementMap.h: + * svg/graphics/filters/SVGFEFlood.cpp: + (WebCore::FEFlood::apply): + * svg/graphics/filters/SVGFEFlood.h: + * svg/graphics/filters/SVGFEGaussianBlur.cpp: + (WebCore::FEGaussianBlur::apply): + * svg/graphics/filters/SVGFEGaussianBlur.h: + * svg/graphics/filters/SVGFEImage.cpp: + (WebCore::FEImage::apply): + * svg/graphics/filters/SVGFEImage.h: + * svg/graphics/filters/SVGFEMerge.cpp: + (WebCore::FEMerge::apply): + * svg/graphics/filters/SVGFEMerge.h: + * svg/graphics/filters/SVGFEMorphology.cpp: + (WebCore::FEMorphology::apply): + * svg/graphics/filters/SVGFEMorphology.h: + * svg/graphics/filters/SVGFEOffset.cpp: + (WebCore::FEOffset::apply): + * svg/graphics/filters/SVGFEOffset.h: + * svg/graphics/filters/SVGFESpecularLighting.cpp: + (WebCore::FESpecularLighting::apply): + * svg/graphics/filters/SVGFESpecularLighting.h: + * svg/graphics/filters/SVGFETile.cpp: + (WebCore::FETile::apply): + * svg/graphics/filters/SVGFETile.h: + * svg/graphics/filters/SVGFETurbulence.cpp: + (WebCore::FETurbulence::apply): + * svg/graphics/filters/SVGFETurbulence.h: + * svg/graphics/filters/SVGFilter.cpp: Added. + (WebCore::SVGFilter::SVGFilter): + (WebCore::SVGFilter::calculateEffectSubRegion): + (WebCore::SVGFilter::create): + * svg/graphics/filters/SVGFilter.h: Added. + +2009-05-30 Kevin Ollivier <kevino@theolliviers.com> + + Build fix for platforms without plugins support. + + * plugins/PluginViewNone.cpp: + (WebCore::PluginView::userAgentStatic): + (WebCore::PluginView::getValueStatic): + +2009-05-30 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by Darin Adler. + + Fixes: https://bugs.webkit.org/show_bug.cgi?id=25979 + + Fix regression, local WML files won't load anymore, as the mimetype isn't correctly detected. + Bug filed at <rdar://problem/6917571> to cover this CFNetwork limitation. + + * platform/network/mac/ResourceHandleMac.mm: + (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): + +2009-05-29 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=26091 + Make storage events match the current spec. + - Storage event listeners are added to the window. + - Storage events are dispatched to the window. + + Updated existing tests. + + * dom/Document.cpp: + (WebCore::Document::dispatchWindowEvent): + * dom/Document.h: + * dom/Node.cpp: + * dom/Node.h: + * html/HTMLBodyElement.cpp: + (WebCore::HTMLBodyElement::parseMappedAttribute): + * storage/LocalStorageArea.cpp: + (WebCore::LocalStorageArea::dispatchStorageEvent): + * storage/SessionStorageArea.cpp: + (WebCore::SessionStorageArea::dispatchStorageEvent): + +2009-05-30 Darin Adler <darin@apple.com> + + Reviewed by Adele Peterson. + + Bug 26097: REGRESSION (r44283): Tab key doesn't work when focus is on a <select> element + + Test: fast/forms/focus-control-to-page.html + + * dom/SelectElement.h: Made destructor protected. Tweaked a bit. + + * html/HTMLSelectElement.cpp: Removed unneeded includes. + (WebCore::HTMLSelectElement::remove): Removed unneeded range check of the + result of optionToListIndex. + (WebCore::HTMLSelectElement::parseMappedAttribute): Removed code to set the + unused attribute, m_minwidth. + (WebCore::HTMLSelectElement::defaultEventHandler): The actual bug fix. + Call through to the base class defaultEventHandler if the event hasn't + been handled yet. + + * html/HTMLSelectElement.h: Removed unneeded includes. Made a lot more functions + private. Removed unused minWidth function and m_minwidth data member. + +2009-05-30 Fridrich Strba <fridrich.strba@bluewin.ch> + + Reviewed by Holger Freyther. + + The two KeyboardCodes.h files are basically identical and the + qt one is properly #ifdef-ed for different win32 systems. Share + them between Qt and Gtk implementations. + + * GNUmakefile.am: + * platform/KeyboardCodes.h: Copied from WebCore/platform/qt/KeyboardCodes.h. + * platform/gtk/KeyboardCodes.h: Removed. + * platform/qt/KeyboardCodes.h: Removed. + +2009-05-30 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Sam Weinig. + + LocalStorage and SessionStorage's implicit setters do not correctly + handle null. The custom JS bindings should convert to strings + unconditionally and not try to handle null specially. + https://bugs.webkit.org/show_bug.cgi?id=25970 + + Tests: storage/domstorage/localstorage/string-conversion.html + storage/domstorage/sessionstorage/string-conversion.html + + * bindings/js/JSStorageCustom.cpp: + (WebCore::JSStorage::customPut): + +2009-05-30 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + - fix <rdar://problem/6935192> REGRESSION (Safari 3-TOT): Scroll + bars in key window draw as inactive if the WebView is not active + + Test: platform/mac/scrollbars/key-window-not-first-responder.html + + * platform/mac/ScrollbarThemeMac.mm: + (WebCore::ScrollbarThemeMac::paint): Use the window's key state instead + of the WebView's first responder state to switch between active and + inactive state. + +2009-05-30 Dan Bernstein <mitz@apple.com> + + Reviewed by Simon Fraser. + + - fix https://bugs.webkit.org/show_bug.cgi?id=18445 + <rdar://problem/5931174> Assertion failure in CSSGradientValue::image + with -webkit-gradient as body's background + + Test: fast/backgrounds/body-generated-image-propagated-to-root.html + + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintFillLayerExtended): Check if this + is the root element painting a background layer propagated from the + body, and if it is, use the body's renderer as the client to + StyleImage::image(). + +2009-05-30 Holger Hans Peter Freyther <zecke@selfish.org> + + Unreviewed build fix for AXObjectCache. + + For !HAVE(ACCESSIBILITY) postNotification was defined twice. Move + that into the #ifdef. + + * accessibility/AXObjectCache.cpp: + +2009-05-29 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by George Staikos. + + Fixes: https://bugs.webkit.org/show_bug.cgi?id=26072 + + Add support for the last missing WML element: <select>. This patch adds WMLSelectElement, providing + the same functionality HTMLSelectElement has. The WML specific features will follow soon. + + Add simple testcase covering <select> element rendering: fast/wml/select.wml + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * dom/OptionElement.cpp: + (WebCore::OptionElement::optionIndex): + (WebCore::isOptionElement): + * dom/OptionElement.h: + * dom/OptionGroupElement.cpp: + (WebCore::isOptionGroupElement): + * dom/OptionGroupElement.h: + * dom/SelectElement.cpp: + (WebCore::SelectElement::accessKeySetSelectedIndex): + (WebCore::toSelectElement): + * dom/SelectElement.h: + * html/HTMLOptionElement.cpp: + (WebCore::HTMLOptionElement::index): + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::accessKeySetSelectedIndex): + * rendering/RenderListBox.cpp: + (WebCore::RenderListBox::paintItemForeground): + * rendering/RenderMenuList.cpp: + (WebCore::RenderMenuList::itemIsEnabled): + (WebCore::RenderMenuList::itemIsLabel): + * wml/WMLFormControlElement.cpp: + (WebCore::WMLFormControlElement::attach): + (WebCore::WMLFormControlElement::recalcStyle): + * wml/WMLFormControlElement.h: + * wml/WMLInputElement.cpp: + (WebCore::WMLInputElement::attach): + * wml/WMLOptGroupElement.cpp: + (WebCore::WMLOptGroupElement::insertBefore): + (WebCore::WMLOptGroupElement::replaceChild): + (WebCore::WMLOptGroupElement::removeChild): + (WebCore::WMLOptGroupElement::appendChild): + (WebCore::WMLOptGroupElement::removeChildren): + (WebCore::ownerSelectElement): + (WebCore::WMLOptGroupElement::accessKeyAction): + (WebCore::WMLOptGroupElement::childrenChanged): + (WebCore::WMLOptGroupElement::parseMappedAttribute): + (WebCore::WMLOptGroupElement::attach): + (WebCore::WMLOptGroupElement::detach): + (WebCore::WMLOptGroupElement::recalcSelectOptions): + * wml/WMLOptionElement.cpp: + (WebCore::ownerSelectElement): + (WebCore::WMLOptionElement::accessKeyAction): + (WebCore::WMLOptionElement::childrenChanged): + (WebCore::WMLOptionElement::parseMappedAttribute): + (WebCore::WMLOptionElement::attach): + (WebCore::WMLOptionElement::detach): + (WebCore::WMLOptionElement::insertedIntoDocument): + * wml/WMLSelectElement.cpp: Added. + (WebCore::WMLSelectElement::WMLSelectElement): + (WebCore::WMLSelectElement::~WMLSelectElement): + (WebCore::WMLSelectElement::formControlType): + (WebCore::WMLSelectElement::isKeyboardFocusable): + (WebCore::WMLSelectElement::isMouseFocusable): + (WebCore::WMLSelectElement::selectAll): + (WebCore::WMLSelectElement::recalcStyle): + (WebCore::WMLSelectElement::dispatchFocusEvent): + (WebCore::WMLSelectElement::dispatchBlurEvent): + (WebCore::WMLSelectElement::selectedIndex): + (WebCore::WMLSelectElement::setSelectedIndex): + (WebCore::WMLSelectElement::saveFormControlState): + (WebCore::WMLSelectElement::restoreFormControlState): + (WebCore::WMLSelectElement::childrenChanged): + (WebCore::WMLSelectElement::parseMappedAttribute): + (WebCore::WMLSelectElement::createRenderer): + (WebCore::WMLSelectElement::appendFormData): + (WebCore::WMLSelectElement::optionToListIndex): + (WebCore::WMLSelectElement::listToOptionIndex): + (WebCore::WMLSelectElement::reset): + (WebCore::WMLSelectElement::defaultEventHandler): + (WebCore::WMLSelectElement::accessKeyAction): + (WebCore::WMLSelectElement::setActiveSelectionAnchorIndex): + (WebCore::WMLSelectElement::setActiveSelectionEndIndex): + (WebCore::WMLSelectElement::updateListBoxSelection): + (WebCore::WMLSelectElement::listBoxOnChange): + (WebCore::WMLSelectElement::menuListOnChange): + (WebCore::WMLSelectElement::activeSelectionStartListIndex): + (WebCore::WMLSelectElement::activeSelectionEndListIndex): + (WebCore::WMLSelectElement::accessKeySetSelectedIndex): + (WebCore::WMLSelectElement::setRecalcListItems): + (WebCore::WMLSelectElement::scrollToSelection): + (WebCore::WMLSelectElement::insertedIntoTree): + * wml/WMLSelectElement.h: Added. + (WebCore::WMLSelectElement::canSelectAll): + (WebCore::WMLSelectElement::canStartSelection): + (WebCore::WMLSelectElement::size): + (WebCore::WMLSelectElement::multiple): + (WebCore::WMLSelectElement::listItems): + * wml/WMLTagNames.in: + +2009-05-29 David Levin <levin@chromium.org> + + Reviewed by NOBODY (build fix for windows). + + http://trac.webkit.org/changeset/44279 left in a "Vector<WCHAR> localeNameBuf" + that it was trying to replace. Resulting in this variable being defined twice (and + the second time incorrectly). + + * platform/win/Language.cpp: + (WebCore::localeInfo): + +2009-05-29 Takeshi Yoshino <tyoshino@google.com> + + Reviewed by Darin Alder. + + https://bugs.webkit.org/show_bug.cgi?id=26018 + + Fix behavior of the Element View of the Web Inspector for double + clicking the element outline tree. + + Double clicking the element outline tree should + 1) on attribute: enter attribute editing mode + 2) on text: enter text editing mode + 3) otherwise: change root node to the parent element of double clicked + element. + + Now, 3) is broken. For example, clicking <html> clears the element + outline view. + + rootDOMNode should be updated to this.representedObject.parentNode, not + this.parent.representedObject which is parent inside the element + outline tree itself. + + * inspector/front-end/ElementsTreeOutline.js: + (WebInspector.ElementsTreeElement.prototype.ondblclick): + +2009-05-29 David Moore <davemoore@google.com> + + Reviewed by Darin Alder. + + https://bugs.webkit.org/show_bug.cgi?id=26001 + Change many of the uses of String::adopt() to String::createUninitialized(). + This allows those strings to use an inlined buffer for their characters. + + * dom/StyleElement.cpp: + Loop over nodes to precompute length of string and then + write the characters into the allocated inline buffer + (WebCore::StyleElement::process): + * dom/Text.cpp: + Loop over nodes to precompute length of string and then + write the characters into the allocated inline buffer + (WebCore::Text::wholeText): + (WebCore::Text::rendererIsNeeded): + (WebCore::Text::createRenderer): + (WebCore::Text::createWithLengthLimit): + (WebCore::Text::formatForDebugger): + * platform/text/String.cpp: + (WebCore::String::append): + (WebCore::String::insert): + (WebCore::String::truncate): + (WebCore::String::remove): + * platform/text/StringBuilder.cpp: + (WebCore::StringBuilder::toString): + * platform/text/StringImpl.cpp: + (WebCore::StringImpl::lower): + (WebCore::StringImpl::upper): + (WebCore::StringImpl::secure): + (WebCore::StringImpl::foldCase): + (WebCore::StringImpl::replace): + * platform/text/TextCodecLatin1.cpp: + (WebCore::TextCodecLatin1::decode): + * platform/text/TextCodecUserDefined.cpp: + (WebCore::TextCodecUserDefined::decode): + * platform/win/Language.cpp: + (WebCore::localeInfo): + +2009-05-29 Takeshi Yoshino <tyoshino@google.com> + + Reviewed by Darin Alder. + + Bug 25911: Apply href in base elements to anchors shown on the source viewer + https://bugs.webkit.org/show_bug.cgi?id=25911 + + In rendering HTML sources, parse base elements to apply the base URI to + anchors shown on the source viewer. + + This issue was originally reported to the Chromium issue tracker. + http://code.google.com/p/chromium/issues/detail?id=2418 + + Test: fast/frames/viewsource-link-on-href-value.html + + * html/HTMLViewSourceDocument.cpp: + (WebCore::HTMLViewSourceDocument::addViewSourceToken): + +2009-05-29 Rob Buis <rwlbuis@gmail.com> + + Reviewed by David Hyatt. + + https://bugs.webkit.org/show_bug.cgi?id=22429 + document.styleSheets collection ignores media=presentation + + Ensure that stylesheets though <link> show up in document.styleSheets regardless of media attribute. + + Test: fast/css/sheet-collection-link.html + + * html/HTMLLinkElement.cpp: + (WebCore::HTMLLinkElement::process): + +2009-05-29 Jian Li <jianli@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=26069 + Fix a crash in custom V8 bindings code for XMLHttpRequest. + + Test: fast/xmlhttprequest/xmlhttprequest-open-after-iframe-onload-remove-self.html + + * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + +2009-05-29 David Levin <levin@chromium.org> + + Reviewed by Darin Adler. + + Bug 26074: SQLTransaction::executeSQL does an unnecessary call to String::copy. + https://bugs.webkit.org/show_bug.cgi?id=26074 + + The constructor for SQLStatement already does a copy for this string. + + * storage/SQLTransaction.cpp: + (WebCore::SQLTransaction::executeSQL): + +2009-05-29 Darin Adler <darin@apple.com> + + Fix build; the new Cairo code compiled on Windows only. + + * platform/graphics/gtk/FontPlatformData.h: Added syntheticBold + and syntheticOblique functions as in the Windows version to make it + easier to use this cross-platform. Later we can make data members + private as in the Windows version. + * platform/graphics/mac/FontPlatformData.h: Ditto. + +2009-05-29 Alexander Macdonald <alexmac@adobe.com> + + Reviewed by Darin Adler. + + Added support for synthetic bold/oblique font rendering + on platforms that use cairo. + + * platform/graphics/SimpleFontData.h: + * platform/graphics/cairo/FontCairo.cpp: + (WebCore::Font::drawGlyphs): + * platform/graphics/gtk/SimpleFontDataGtk.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/gtk/SimpleFontDataPango.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/win/SimpleFontDataCairoWin.cpp: + (WebCore::SimpleFontData::platformInit): + +2009-05-29 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Beth Dakin. + + Bug 26024: AX: possible to fail assertion because AXPostNotification calls accessibilityIsIgnored + https://bugs.webkit.org/show_bug.cgi?id=26024 + + AX notifications are posted after a one shot timer so that notifications are not performed mid-layout. + Consolidated postNotification and postNotificationToElement into one method. + + * accessibility/AXObjectCache.cpp: + (WebCore::AXObjectCache::AXObjectCache): + (WebCore::AXObjectCache::notificationPostTimerFired): + (WebCore::AXObjectCache::postNotification): + (WebCore::AXObjectCache::selectedChildrenChanged): + * accessibility/AXObjectCache.h: + (WebCore::AXObjectCache::postNotification): + (WebCore::AXObjectCache::postPlatformNotification): + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged): + * accessibility/chromium/AXObjectCacheChromium.cpp: + (WebCore::AXObjectCache::postPlatformNotification): + * accessibility/gtk/AXObjectCacheAtk.cpp: + (WebCore::AXObjectCache::postPlatformNotification): + * accessibility/mac/AXObjectCacheMac.mm: + (WebCore::AXObjectCache::postPlatformNotification): + * accessibility/win/AXObjectCacheWin.cpp: + (WebCore::AXObjectCache::postPlatformNotification): + * dom/Document.cpp: + (WebCore::Document::implicitClose): + * editing/Editor.cpp: + (WebCore::Editor::respondToChangedContents): + * editing/mac/SelectionControllerMac.mm: + (WebCore::SelectionController::notifyAccessibilityForSelectionChange): + * page/FrameView.cpp: + (WebCore::FrameView::layout): + * rendering/RenderTextControl.cpp: + (WebCore::RenderTextControl::setInnerTextValue): + +2009-05-29 Brent Fulgham <bfulgham@webkit.org> + + Reviewed by Adam Roben. + + Build fix for Windows Cairo target. + https://bugs.webkit.org/show_bug.cgi?id=25972 + + Compiler mistakenly selects SMILTime min/max instead of STL version, + resulting in a build error. This change makes the meaning of the + min/max explicit and avoids the problem. + + * html/TimeRanges.h: + (WebCore::TimeRanges::Range::unionWithOverlappingOrContiguousRange): + +2009-05-29 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Jan Alonzo. + + Make SoupMessage a member of ResourceRequest, instead of creating + it in startHttp. Implement updating of ResourceRequest from + SoupMessage, and vice versa. + + * GNUmakefile.am: + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::ResourceHandle::~ResourceHandle): + (WebCore::gotHeadersCallback): + (WebCore::ResourceHandle::startHttp): + * platform/network/soup/ResourceRequest.h: + (WebCore::ResourceRequest::ResourceRequest): + (WebCore::ResourceRequest::~ResourceRequest): + * platform/network/soup/ResourceRequestSoup.cpp: Added. + (WTF::SoupURI): + (WebCore::ResourceRequest::soupMessage): + (WebCore::ResourceRequest::ResourceRequest): + (WebCore::ResourceRequest::doUpdateResourceRequest): + (WebCore::ResourceRequest::doUpdatePlatformRequest): + +2009-05-28 Dmitry Titov <dimich@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=26068 + V8: Remove the remaining b8::Locker usage in worker code. + This completes the fix for https://bugs.webkit.org/show_bug.cgi?id=25944, + since the patches for enabling timers and that bug have "crossed in the queue". + Existing LayoutTests/fast/workers/worker-timeout.html covers this fix (will start work in Chromium). + + * bindings/v8/ScheduledAction.cpp: + (WebCore::ScheduledAction::execute): + +2009-05-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + Simplify the Accept-Encoding header we are sending out, for it + seems some servers do not enjoy parsing the full, explicit + version. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::ResourceHandle::startHttp): + +2009-05-28 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + Added a new build flag --filters. This replaces the old --svg-filters and enables + other parts of WebKit to use some basic filters of platform/graphics/filters if needed. + This patch also fixes a bug in dom/DOMImplementation.cpp where we used SVG_FILTER. This flag + doesn't exist and was replaced by FILTERS as well as all SVG_FILTERS occurrences. + Filters are not working yet. This patch is just a preperation. Filters are deactivated by + default. + + * Configurations/FeatureDefines.xcconfig: + * DerivedSources.make: + * GNUmakefile.am: + * WebCore.pro: + * bindings/objc/DOM.mm: + (WebCore::createElementClassMap): + * dom/DOMImplementation.cpp: + (WebCore::isSVG10Feature): + (WebCore::isSVG11Feature): + * page/DOMWindow.idl: + * platform/graphics/filters/FEBlend.cpp: + * platform/graphics/filters/FEBlend.h: + * platform/graphics/filters/FEColorMatrix.cpp: + * platform/graphics/filters/FEColorMatrix.h: + * platform/graphics/filters/FEComponentTransfer.cpp: + * platform/graphics/filters/FEComponentTransfer.h: + * platform/graphics/filters/FEComposite.cpp: + * platform/graphics/filters/FEComposite.h: + * platform/graphics/filters/FilterEffect.cpp: + * platform/graphics/filters/FilterEffect.h: + * platform/graphics/filters/SourceAlpha.cpp: + * platform/graphics/filters/SourceAlpha.h: + * platform/graphics/filters/SourceGraphic.cpp: + * platform/graphics/filters/SourceGraphic.h: + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::selfWillPaint): + * rendering/RenderSVGModelObject.cpp: + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::selfWillPaint): + * rendering/SVGRenderSupport.cpp: + (WebCore::SVGRenderBase::prepareToRenderSVGContent): + (WebCore::SVGRenderBase::finishRenderSVGContent): + (WebCore::SVGRenderBase::filterBoundingBoxForRenderer): + * svg/Filter.cpp: + * svg/Filter.h: + * svg/FilterBuilder.cpp: + * svg/FilterBuilder.h: + * svg/SVGComponentTransferFunctionElement.cpp: + * svg/SVGComponentTransferFunctionElement.h: + * svg/SVGComponentTransferFunctionElement.idl: + * svg/SVGFEBlendElement.cpp: + * svg/SVGFEBlendElement.h: + * svg/SVGFEBlendElement.idl: + * svg/SVGFEColorMatrixElement.cpp: + * svg/SVGFEColorMatrixElement.h: + * svg/SVGFEColorMatrixElement.idl: + * svg/SVGFEComponentTransferElement.cpp: + * svg/SVGFEComponentTransferElement.h: + * svg/SVGFEComponentTransferElement.idl: + * svg/SVGFECompositeElement.cpp: + * svg/SVGFECompositeElement.h: + * svg/SVGFECompositeElement.idl: + * svg/SVGFEDiffuseLightingElement.cpp: + * svg/SVGFEDiffuseLightingElement.h: + * svg/SVGFEDiffuseLightingElement.idl: + * svg/SVGFEDisplacementMapElement.cpp: + * svg/SVGFEDisplacementMapElement.h: + * svg/SVGFEDisplacementMapElement.idl: + * svg/SVGFEDistantLightElement.cpp: + * svg/SVGFEDistantLightElement.h: + * svg/SVGFEDistantLightElement.idl: + * svg/SVGFEFloodElement.cpp: + * svg/SVGFEFloodElement.h: + * svg/SVGFEFloodElement.idl: + * svg/SVGFEFuncAElement.cpp: + * svg/SVGFEFuncAElement.h: + * svg/SVGFEFuncAElement.idl: + * svg/SVGFEFuncBElement.cpp: + * svg/SVGFEFuncBElement.h: + * svg/SVGFEFuncBElement.idl: + * svg/SVGFEFuncGElement.cpp: + * svg/SVGFEFuncGElement.h: + * svg/SVGFEFuncGElement.idl: + * svg/SVGFEFuncRElement.cpp: + * svg/SVGFEFuncRElement.h: + * svg/SVGFEFuncRElement.idl: + * svg/SVGFEGaussianBlurElement.cpp: + * svg/SVGFEGaussianBlurElement.h: + * svg/SVGFEGaussianBlurElement.idl: + * svg/SVGFEImageElement.cpp: + * svg/SVGFEImageElement.h: + * svg/SVGFEImageElement.idl: + * svg/SVGFELightElement.cpp: + * svg/SVGFELightElement.h: + * svg/SVGFEMergeElement.cpp: + * svg/SVGFEMergeElement.h: + * svg/SVGFEMergeElement.idl: + * svg/SVGFEMergeNodeElement.cpp: + * svg/SVGFEMergeNodeElement.h: + * svg/SVGFEMergeNodeElement.idl: + * svg/SVGFEOffsetElement.cpp: + * svg/SVGFEOffsetElement.h: + * svg/SVGFEOffsetElement.idl: + * svg/SVGFEPointLightElement.cpp: + * svg/SVGFEPointLightElement.h: + * svg/SVGFEPointLightElement.idl: + * svg/SVGFESpecularLightingElement.cpp: + * svg/SVGFESpecularLightingElement.h: + * svg/SVGFESpecularLightingElement.idl: + * svg/SVGFESpotLightElement.cpp: + * svg/SVGFESpotLightElement.h: + * svg/SVGFESpotLightElement.idl: + * svg/SVGFETileElement.cpp: + * svg/SVGFETileElement.h: + * svg/SVGFETileElement.idl: + * svg/SVGFETurbulenceElement.cpp: + * svg/SVGFETurbulenceElement.h: + * svg/SVGFETurbulenceElement.idl: + * svg/SVGFilterElement.cpp: + * svg/SVGFilterElement.h: + * svg/SVGFilterElement.idl: + * svg/SVGFilterPrimitiveStandardAttributes.cpp: + * svg/SVGFilterPrimitiveStandardAttributes.h: + * svg/graphics/SVGResourceFilter.cpp: + * svg/graphics/SVGResourceFilter.h: + * svg/graphics/cairo/SVGResourceFilterCairo.cpp: + * svg/graphics/cg/SVGResourceFilterCg.cpp: + * svg/graphics/cg/SVGResourceFilterCg.mm: + * svg/graphics/filters/SVGDistantLightSource.h: + * svg/graphics/filters/SVGFEConvolveMatrix.cpp: + * svg/graphics/filters/SVGFEConvolveMatrix.h: + * svg/graphics/filters/SVGFEDiffuseLighting.cpp: + * svg/graphics/filters/SVGFEDiffuseLighting.h: + * svg/graphics/filters/SVGFEDisplacementMap.cpp: + * svg/graphics/filters/SVGFEDisplacementMap.h: + * svg/graphics/filters/SVGFEFlood.cpp: + * svg/graphics/filters/SVGFEFlood.h: + * svg/graphics/filters/SVGFEGaussianBlur.cpp: + * svg/graphics/filters/SVGFEGaussianBlur.h: + * svg/graphics/filters/SVGFEImage.cpp: + * svg/graphics/filters/SVGFEImage.h: + * svg/graphics/filters/SVGFEMerge.cpp: + * svg/graphics/filters/SVGFEMerge.h: + * svg/graphics/filters/SVGFEMorphology.cpp: + * svg/graphics/filters/SVGFEMorphology.h: + * svg/graphics/filters/SVGFEOffset.cpp: + * svg/graphics/filters/SVGFEOffset.h: + * svg/graphics/filters/SVGFESpecularLighting.cpp: + * svg/graphics/filters/SVGFESpecularLighting.h: + * svg/graphics/filters/SVGFETile.cpp: + * svg/graphics/filters/SVGFETile.h: + * svg/graphics/filters/SVGFETurbulence.cpp: + * svg/graphics/filters/SVGFETurbulence.h: + * svg/graphics/filters/SVGFilterEffect.cpp: + * svg/graphics/filters/SVGFilterEffect.h: + * svg/graphics/filters/SVGLightSource.cpp: + * svg/graphics/filters/SVGLightSource.h: + * svg/graphics/filters/SVGPointLightSource.h: + * svg/graphics/filters/SVGSpotLightSource.h: + * svg/graphics/filters/cg/SVGFEHelpersCg.h: + * svg/graphics/filters/cg/SVGFEHelpersCg.mm: + * svg/graphics/filters/cg/SVGFilterEffectCg.mm: + * svg/graphics/filters/cg/WKArithmeticFilter.h: + * svg/graphics/filters/cg/WKArithmeticFilter.m: + * svg/graphics/filters/cg/WKComponentMergeFilter.h: + * svg/graphics/filters/cg/WKComponentMergeFilter.m: + * svg/graphics/filters/cg/WKDiffuseLightingFilter.h: + * svg/graphics/filters/cg/WKDiffuseLightingFilter.m: + * svg/graphics/filters/cg/WKDiscreteTransferFilter.h: + * svg/graphics/filters/cg/WKDiscreteTransferFilter.m: + * svg/graphics/filters/cg/WKDisplacementMapFilter.h: + * svg/graphics/filters/cg/WKDisplacementMapFilter.m: + * svg/graphics/filters/cg/WKDistantLightFilter.h: + * svg/graphics/filters/cg/WKDistantLightFilter.m: + * svg/graphics/filters/cg/WKGammaTransferFilter.h: + * svg/graphics/filters/cg/WKGammaTransferFilter.m: + * svg/graphics/filters/cg/WKIdentityTransferFilter.h: + * svg/graphics/filters/cg/WKIdentityTransferFilter.m: + * svg/graphics/filters/cg/WKLinearTransferFilter.h: + * svg/graphics/filters/cg/WKLinearTransferFilter.m: + * svg/graphics/filters/cg/WKNormalMapFilter.h: + * svg/graphics/filters/cg/WKNormalMapFilter.m: + * svg/graphics/filters/cg/WKPointLightFilter.h: + * svg/graphics/filters/cg/WKPointLightFilter.m: + * svg/graphics/filters/cg/WKSpecularLightingFilter.h: + * svg/graphics/filters/cg/WKSpecularLightingFilter.m: + * svg/graphics/filters/cg/WKSpotLightFilter.h: + * svg/graphics/filters/cg/WKSpotLightFilter.m: + * svg/graphics/filters/cg/WKTableTransferFilter.h: + * svg/graphics/filters/cg/WKTableTransferFilter.m: + * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h: + * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm: + * svg/graphics/qt/SVGResourceFilterQt.cpp: + * svg/graphics/skia/SVGResourceFilterSkia.cpp: + * svg/svgtags.in: + +2009-05-28 Brett Wilson <brettw@chromium.org> + + Unreviewed, build fix. + + https://bugs.webkit.org/show_bug.cgi?id=26067 + + Add casts for scale function to make more explicit what is happening + and fix a compiler warning. + + * platform/graphics/IntSize.h: + (WebCore::IntSize::scale): + +2009-05-28 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Remove the returnValueSlot concept from JSDOMWindowBase. Now that windows + are not cleared on navigation it is no longer necessary. + + * bindings/js/JSDOMWindowBase.cpp: + (WebCore::JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData): + (WebCore::JSDOMWindowBase::willRemoveFromWindowShell): + * bindings/js/JSDOMWindowBase.h: + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::showModalDialog): + +2009-05-19 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo and Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=25415 + [GTK][ATK] Please implement support for get_text_at_offset + + Implement atk_text_get_text_{at,after,before}_offset. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-05-28 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Rubber-stamped by Darin Adler. + + Remove unnecessary destructor from InputElementData/OptionElementData. + + * dom/InputElement.cpp: + * dom/InputElement.h: + * dom/OptionElement.cpp: + * dom/OptionElement.h: + +2009-05-28 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by Darin Adler. + + Fixes: https://bugs.webkit.org/show_bug.cgi?id=26062 + + Refactor code from all virtual methods in HTMLSelectElement (that are also needed for WMLSelectElement) + in the recently introduced SelectElement abstract base class. Follow the same design sheme that InputElement uses. + + A follow-up patch can now easily add WMLSelectElement. + + * dom/OptionElement.h: + * dom/SelectElement.cpp: + (WebCore::SelectElement::selectAll): + (WebCore::SelectElement::saveLastSelection): + (WebCore::isOptionElement): + (WebCore::isOptionGroupElement): + (WebCore::SelectElement::nextSelectableListIndex): + (WebCore::SelectElement::previousSelectableListIndex): + (WebCore::SelectElement::setActiveSelectionAnchorIndex): + (WebCore::SelectElement::setActiveSelectionEndIndex): + (WebCore::SelectElement::updateListBoxSelection): + (WebCore::SelectElement::listBoxOnChange): + (WebCore::SelectElement::menuListOnChange): + (WebCore::SelectElement::scrollToSelection): + (WebCore::SelectElement::recalcStyle): + (WebCore::SelectElement::setRecalcListItems): + (WebCore::SelectElement::recalcListItems): + (WebCore::SelectElement::selectedIndex): + (WebCore::SelectElement::setSelectedIndex): + (WebCore::SelectElement::optionToListIndex): + (WebCore::SelectElement::listToOptionIndex): + (WebCore::SelectElement::dispatchFocusEvent): + (WebCore::SelectElement::dispatchBlurEvent): + (WebCore::SelectElement::deselectItems): + (WebCore::SelectElement::saveFormControlState): + (WebCore::SelectElement::restoreFormControlState): + (WebCore::SelectElement::parseMultipleAttribute): + (WebCore::SelectElement::appendFormData): + (WebCore::SelectElement::reset): + (WebCore::SelectElement::menuListDefaultEventHandler): + (WebCore::SelectElement::listBoxDefaultEventHandler): + (WebCore::SelectElement::defaultEventHandler): + (WebCore::SelectElement::lastSelectedListIndex): + (WebCore::stripLeadingWhiteSpace): + (WebCore::SelectElement::typeAheadFind): + (WebCore::SelectElement::insertedIntoTree): + (WebCore::SelectElementData::SelectElementData): + (WebCore::SelectElementData::checkListItems): + (WebCore::SelectElementData::listItems): + * dom/SelectElement.h: + (WebCore::SelectElementData::multiple): + (WebCore::SelectElementData::setMultiple): + (WebCore::SelectElementData::size): + (WebCore::SelectElementData::setSize): + (WebCore::SelectElementData::usesMenuList): + (WebCore::SelectElementData::lastOnChangeIndex): + (WebCore::SelectElementData::setLastOnChangeIndex): + (WebCore::SelectElementData::lastOnChangeSelection): + (WebCore::SelectElementData::activeSelectionState): + (WebCore::SelectElementData::setActiveSelectionState): + (WebCore::SelectElementData::activeSelectionAnchorIndex): + (WebCore::SelectElementData::setActiveSelectionAnchorIndex): + (WebCore::SelectElementData::activeSelectionEndIndex): + (WebCore::SelectElementData::setActiveSelectionEndIndex): + (WebCore::SelectElementData::cachedStateForActiveSelection): + (WebCore::SelectElementData::shouldRecalcListItems): + (WebCore::SelectElementData::setShouldRecalcListItems): + (WebCore::SelectElementData::rawListItems): + (WebCore::SelectElementData::repeatingChar): + (WebCore::SelectElementData::setRepeatingChar): + (WebCore::SelectElementData::lastCharTime): + (WebCore::SelectElementData::setLastCharTime): + (WebCore::SelectElementData::typedString): + (WebCore::SelectElementData::setTypedString): + * html/HTMLOptionElement.h: + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::HTMLSelectElement): + (WebCore::HTMLSelectElement::recalcStyle): + (WebCore::HTMLSelectElement::formControlType): + (WebCore::HTMLSelectElement::selectedIndex): + (WebCore::HTMLSelectElement::deselectItems): + (WebCore::HTMLSelectElement::setSelectedIndex): + (WebCore::HTMLSelectElement::activeSelectionStartListIndex): + (WebCore::HTMLSelectElement::activeSelectionEndListIndex): + (WebCore::HTMLSelectElement::saveFormControlState): + (WebCore::HTMLSelectElement::restoreFormControlState): + (WebCore::HTMLSelectElement::parseMappedAttribute): + (WebCore::HTMLSelectElement::canSelectAll): + (WebCore::HTMLSelectElement::selectAll): + (WebCore::HTMLSelectElement::createRenderer): + (WebCore::HTMLSelectElement::appendFormData): + (WebCore::HTMLSelectElement::optionToListIndex): + (WebCore::HTMLSelectElement::listToOptionIndex): + (WebCore::HTMLSelectElement::recalcListItems): + (WebCore::HTMLSelectElement::setRecalcListItems): + (WebCore::HTMLSelectElement::reset): + (WebCore::HTMLSelectElement::dispatchFocusEvent): + (WebCore::HTMLSelectElement::dispatchBlurEvent): + (WebCore::HTMLSelectElement::defaultEventHandler): + (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex): + (WebCore::HTMLSelectElement::setActiveSelectionEndIndex): + (WebCore::HTMLSelectElement::updateListBoxSelection): + (WebCore::HTMLSelectElement::menuListOnChange): + (WebCore::HTMLSelectElement::listBoxOnChange): + (WebCore::HTMLSelectElement::saveLastSelection): + (WebCore::HTMLSelectElement::setOption): + (WebCore::HTMLSelectElement::scrollToSelection): + (WebCore::HTMLSelectElement::insertedIntoTree): + * html/HTMLSelectElement.h: + (WebCore::HTMLSelectElement::size): + (WebCore::HTMLSelectElement::multiple): + (WebCore::HTMLSelectElement::listItems): + * wml/WMLOptionElement.cpp: + (WebCore::WMLOptionElement::text): + * wml/WMLOptionElement.h: + + + * dom/OptionElement.h: + * dom/SelectElement.cpp: + (WebCore::SelectElement::selectAll): + (WebCore::SelectElement::saveLastSelection): + (WebCore::isOptionElement): + (WebCore::isOptionGroupElement): + (WebCore::SelectElement::nextSelectableListIndex): + (WebCore::SelectElement::previousSelectableListIndex): + (WebCore::SelectElement::setActiveSelectionAnchorIndex): + (WebCore::SelectElement::setActiveSelectionEndIndex): + (WebCore::SelectElement::updateListBoxSelection): + (WebCore::SelectElement::listBoxOnChange): + (WebCore::SelectElement::menuListOnChange): + (WebCore::SelectElement::scrollToSelection): + (WebCore::SelectElement::recalcStyle): + (WebCore::SelectElement::setRecalcListItems): + (WebCore::SelectElement::recalcListItems): + (WebCore::SelectElement::selectedIndex): + (WebCore::SelectElement::setSelectedIndex): + (WebCore::SelectElement::optionToListIndex): + (WebCore::SelectElement::listToOptionIndex): + (WebCore::SelectElement::dispatchFocusEvent): + (WebCore::SelectElement::dispatchBlurEvent): + (WebCore::SelectElement::deselectItems): + (WebCore::SelectElement::saveFormControlState): + (WebCore::SelectElement::restoreFormControlState): + (WebCore::SelectElement::parseMultipleAttribute): + (WebCore::SelectElement::appendFormData): + (WebCore::SelectElement::reset): + (WebCore::SelectElement::menuListDefaultEventHandler): + (WebCore::SelectElement::listBoxDefaultEventHandler): + (WebCore::SelectElement::defaultEventHandler): + (WebCore::SelectElement::lastSelectedListIndex): + (WebCore::stripLeadingWhiteSpace): + (WebCore::SelectElement::typeAheadFind): + (WebCore::SelectElement::insertedIntoTree): + (WebCore::SelectElementData::SelectElementData): + (WebCore::SelectElementData::~SelectElementData): + (WebCore::SelectElementData::checkListItems): + (WebCore::SelectElementData::listItems): + * dom/SelectElement.h: + (WebCore::SelectElementData::multiple): + (WebCore::SelectElementData::setMultiple): + (WebCore::SelectElementData::size): + (WebCore::SelectElementData::setSize): + (WebCore::SelectElementData::usesMenuList): + (WebCore::SelectElementData::lastOnChangeIndex): + (WebCore::SelectElementData::setLastOnChangeIndex): + (WebCore::SelectElementData::lastOnChangeSelection): + (WebCore::SelectElementData::activeSelectionState): + (WebCore::SelectElementData::setActiveSelectionState): + (WebCore::SelectElementData::activeSelectionAnchorIndex): + (WebCore::SelectElementData::setActiveSelectionAnchorIndex): + (WebCore::SelectElementData::activeSelectionEndIndex): + (WebCore::SelectElementData::setActiveSelectionEndIndex): + (WebCore::SelectElementData::cachedStateForActiveSelection): + (WebCore::SelectElementData::shouldRecalcListItems): + (WebCore::SelectElementData::setShouldRecalcListItems): + (WebCore::SelectElementData::rawListItems): + (WebCore::SelectElementData::repeatingChar): + (WebCore::SelectElementData::setRepeatingChar): + (WebCore::SelectElementData::lastCharTime): + (WebCore::SelectElementData::setLastCharTime): + (WebCore::SelectElementData::typedString): + (WebCore::SelectElementData::setTypedString): + * html/HTMLOptionElement.h: + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::HTMLSelectElement): + (WebCore::HTMLSelectElement::recalcStyle): + (WebCore::HTMLSelectElement::formControlType): + (WebCore::HTMLSelectElement::selectedIndex): + (WebCore::HTMLSelectElement::deselectItems): + (WebCore::HTMLSelectElement::setSelectedIndex): + (WebCore::HTMLSelectElement::activeSelectionStartListIndex): + (WebCore::HTMLSelectElement::activeSelectionEndListIndex): + (WebCore::HTMLSelectElement::saveFormControlState): + (WebCore::HTMLSelectElement::restoreFormControlState): + (WebCore::HTMLSelectElement::parseMappedAttribute): + (WebCore::HTMLSelectElement::canSelectAll): + (WebCore::HTMLSelectElement::selectAll): + (WebCore::HTMLSelectElement::createRenderer): + (WebCore::HTMLSelectElement::appendFormData): + (WebCore::HTMLSelectElement::optionToListIndex): + (WebCore::HTMLSelectElement::listToOptionIndex): + (WebCore::HTMLSelectElement::recalcListItems): + (WebCore::HTMLSelectElement::setRecalcListItems): + (WebCore::HTMLSelectElement::reset): + (WebCore::HTMLSelectElement::dispatchFocusEvent): + (WebCore::HTMLSelectElement::dispatchBlurEvent): + (WebCore::HTMLSelectElement::defaultEventHandler): + (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex): + (WebCore::HTMLSelectElement::setActiveSelectionEndIndex): + (WebCore::HTMLSelectElement::updateListBoxSelection): + (WebCore::HTMLSelectElement::menuListOnChange): + (WebCore::HTMLSelectElement::listBoxOnChange): + (WebCore::HTMLSelectElement::saveLastSelection): + (WebCore::HTMLSelectElement::setOption): + (WebCore::HTMLSelectElement::scrollToSelection): + (WebCore::HTMLSelectElement::insertedIntoTree): + * html/HTMLSelectElement.h: + (WebCore::HTMLSelectElement::size): + (WebCore::HTMLSelectElement::multiple): + (WebCore::HTMLSelectElement::listItems): + * wml/WMLOptionElement.cpp: + (WebCore::WMLOptionElement::text): + * wml/WMLOptionElement.h: + +2009-05-28 Adam Roben <aroben@apple.com> + + Don't try to use the new combobox parts on Vista in Classic mode + + Fixes: + <rdar://problem/6929277> REGRESSION (r42289+r42350): Windows Classic + theme: drop down lists in Preferences get a line/square + <rdar://problem/6929298> REGRESSION (r42289): Windows Classic: drop + down lists are black with a circle on many sites + + Reviewed by Steve Falkenburg. + + * rendering/RenderThemeWin.cpp: + (WebCore::RenderThemeWin::paintMenuList): Only use the new combobox + parts when we have a theme (i.e., when we're not in Classic mode). + When we don't have a theme, fall back to the pre-r42289 code. + +2009-05-27 Peter Kasting <pkasting@google.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=25659 + Avoid calling frameCount() unnecessarily (which could lead to extra + GIF decoding). + + * platform/graphics/BitmapImage.cpp: + (WebCore::BitmapImage::destroyDecodedDataIfNecessary): + +2009-05-28 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Oliver Hunt. + + https://bugs.webkit.org/show_bug.cgi?id=8736 + + Tests: fast/borders/border-radius-constraints.html + fast/borders/border-radius-split-inline.html + + When the sum of the corner radii on a side exceed the length of the side, + reduce the radii according to CSS 3 rules. + + Add RenderStyle::getBorderRadiiForRect() to fetch corner radii, applying + the constraints. Use that for painting borders, box-shadow, clipping replaced + elements + + * platform/graphics/IntSize.h: + (WebCore::IntSize::scale): + Add a scale method that scales by a float (using C rounding rules, like IntRect::scale()). + + * platform/graphics/Path.cpp: + Make the QUARTER const static. + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::pushContentsClip): + Use getBorderRadiiForRect to fetch border radii. + + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintFillLayerExtended): + Use getBorderRadiiForRect to fetch border radii. + + (WebCore::RenderBoxModelObject::paintBorder): + Use getBorderRadiiForRect to fetch border radii, and fix a bug when drawing + borders for split inlines, which used to apply the radii for each segment, + and no longer does. + + (WebCore::RenderBoxModelObject::paintBoxShadow): + Use getBorderRadiiForRect to fetch border radii. + + * rendering/RenderReplaced.cpp: + (WebCore::RenderReplaced::paint): + Use getBorderRadiiForRect to fetch border radii for clipping. + + * rendering/RenderWidget.cpp: + (WebCore::RenderWidget::paint): + Use getBorderRadiiForRect to fetch border radii for clipping. + + * rendering/style/RenderStyle.h: + * rendering/style/RenderStyle.cpp: + (WebCore::RenderStyle::getBorderRadiiForRect): + New bottleneck method to fetch corner radiil given a rect, applying the constraint + rules. + +2009-05-28 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=26005 + Optimization for XPath //* does not preserve context size + + Test: fast/xpath/position.html + + Fixed the bug by removing the incorrect optimization, and made enough micro-optimizations to + get a performance progression on my tests. + + * xml/XPathPath.h: Removed broken optimizeStepPair(). + + * xml/XPathPath.cpp: + (WebCore::XPath::LocationPath::evaluate): Style fix. + (WebCore::XPath::LocationPath::appendStep): Don't call optimizeStepPair(). + (WebCore::XPath::LocationPath::insertFirstStep): Ditto. + (WebCore::XPath::Path::Path): Style fix. + + * xml/XPathStep.cpp: + (WebCore::XPath::primaryNodeType): Turned this member function into a static inline helper. + (WebCore::XPath::nodeMatches): Ditto. Don't check for namespace axis, which is unsupported + (and might never be). + (WebCore::XPath::Step::nodesInAxis): Updated for the new nodeMatches() signature. + + * xml/XPathStep.h: + (WebCore::XPath::Step::NodeTest::data): + (WebCore::XPath::Step::NodeTest::namespaceURI): + Made these data members AtomicString to avoid repeated conversions. This is the biggest + performance win here. + + * xml/XPathUtil.cpp: (WebCore::XPath::stringValue): Reserve some capacity upfront. + +2009-05-28 Stephen White <senorblanco@chromium.org> + + Reviewed by Dimitri Glazkov. + + When creating a linear or radial gradient with a single stop + at offset 1.0, the Skia layer was allocating 3 stops, but only + filling 2, leaving one uninitialized. Only 2 stops are necessary + in this case, at offsets (0.0, 1.0). + + http://bugs.webkit.org/show_bug.cgi?id=26063 + + Covered by: LayoutTests/svg/W3C-SVG-1.1/pservers-grad-16-b.svg + LayoutTests/svg/custom/gradient-stop-corner-cases.svg + LayoutTests/svg/custom/js-late-gradient-and-object-creation.svg + + * platform/graphics/skia/GradientSkia.cpp: + (WebCore::totalStopsNeeded): + +2009-05-28 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Timothy Hatcher. + + https://bugs.webkit.org/show_bug.cgi?id=26041 + Allow adding resource source to WebInspector.SourceFrame asynchronously. + + Provide common implementation for InspectorController::addResourceSourceToFrame and + InspectorController::addSourceToFrame methods. + + * bindings/js/JSInspectorControllerCustom.cpp: + * bindings/v8/custom/V8InspectorControllerCustom.cpp: + * inspector/InspectorController.cpp: + (WebCore::InspectorController::addResourceSourceToFrame): + * inspector/InspectorController.h: + * inspector/InspectorController.idl: + * inspector/front-end/SourceFrame.js: + (WebInspector.SourceFrame.prototype.revealLine): + (WebInspector.SourceFrame.prototype.highlightLine): + (WebInspector.SourceFrame.prototype._loaded): + (WebInspector.SourceFrame.prototype._isContentLoaded): + * inspector/front-end/SourceView.js: + (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): + (WebInspector.SourceView.prototype._contentLoaded): + +2009-05-28 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Xan Lopez. + + After r44177 we had a problem when increasing the size + of the window the scrollbars stayed and were not hidden. + This was due WebCore giving up on the Scrollbar as it became + unnecessary but the GtkAdjustment remained unchanged. + So from the point of view of the GtkScrolledWindow scrolling + was still necessary and the GtkScrollbar kept being displayed. + + Solve the issue by resetting the GtkAdjustment in the + destructor of ScrollbarGtk. + + * platform/gtk/ScrollbarGtk.cpp: + (ScrollbarGtk::~ScrollbarGtk): + +2009-05-28 Adam Barth <abarth@webkit.org> + + Reviewed by Darin Adler. + + Clean up window.open()'s use of lexical and dynamic scope. + + (Added one unreviewed tweak: use dynamicFrame instead of lexicalFrame + for DOMWindow::allowPopUp.) + + Test: http/tests/security/frameNavigation/context-for-window-open.html + + * bindings/js/JSDOMBinding.cpp: + (WebCore::toDynamicFrame): + (WebCore::processingUserGesture): + (WebCore::completeURL): + * bindings/js/JSDOMBinding.h: + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::createWindow): + (WebCore::JSDOMWindow::open): + (WebCore::JSDOMWindow::showModalDialog): + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + (WebCore::createWindow): + +2009-05-27 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Oliver Hunt. + + https://bugs.webkit.org/show_bug.cgi?id=26056 + XPath string() function can be very slow + + * xml/XPathUtil.cpp: (WebCore::XPath::stringValue): Use an intermediate Vector when appending. + +2009-05-27 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + - fix <rdar://problem/6927761> <isindex> placeholder text is unstylable + and initially not visible + + Test: fast/forms/isindex-placeholder.html + + * css/html4.css: Added a default style for <isindex> placeholder text. + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::parseMappedAttribute): Changed to call + the new protected function updatePlaceholderVisibility(). + * html/HTMLInputElement.h: + (WebCore::HTMLInputElement::updatePlaceholderVisibility): Added this + protected function to allow HTMLIsIndexElement::parseMappedAttribute() + to invoke InputElement::updatePlaceholderVisibility(). + * html/HTMLIsIndexElement.cpp: + (WebCore::HTMLIsIndexElement::parseMappedAttribute): Call + updatePlaceholderVisibility() when parsing the placeholder attribute. + * rendering/RenderTextControlSingleLine.cpp: + (WebCore::RenderTextControlSingleLine::createInnerTextStyle): If there + is no placeholder pseudo-element style, use the normal style. + +2009-05-27 Sam Weinig <sam@webkit.org> + + Reviewed by Maciej Stachowiak. + + More cleanup of DOMWindow related functions. + + * bindings/js/JSDOMWindowBase.cpp: + (WebCore::JSDOMWindowBase::willRemoveFromWindowShell): Renamed from JSDOMWindowBase::clear() + * bindings/js/JSDOMWindowBase.h: + + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::showModalDialog): Update Comment. + + * bindings/js/JSDOMWindowShell.cpp: + * bindings/js/JSDOMWindowShell.h: + Remove JSDOMWindowShell::clear(). It was unused. + + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::clearWindowShell): + +2009-05-27 Sam Weinig <sam@webkit.org> + + Reviewed by David Hyatt. + + Miscellaneous cleanup of DOMWindow related functions. + + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject): Fix poorly named variables. + * bindings/js/JSDOMWindowBase.cpp: + (WebCore::JSDOMWindowBase::supportsProfiling): Don't jump through hoops + checking for null frames if the build does not support profiling. + (WebCore::JSDOMWindowBase::clear): Use setCurrentEvent(0) instead of calling + clearHelperObjectProperties(). It is clearer. + * bindings/js/JSDOMWindowBase.h: + Removed now unused clearHelperObjectProperties() function, empty disconnectFrame() + function, and the empty destructor. + * bindings/js/JSDOMWindowShell.cpp: + * bindings/js/JSDOMWindowShell.h: + Remove disconnectFrame() which only called JSDOMWindowBase::disconnectFrame(), which + is a no-op. + * page/Frame.cpp: + (WebCore::Frame::~Frame): + (WebCore::Frame::pageDestroyed): + Remove calls to JSDOMWindowShell::disconnectFrame() which only called + JSDOMWindowBase::disconnectFrame(), which is a no-op. + +2009-05-27 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, build fix. + + https://bugs.webkit.org/show_bug.cgi?id=25974 + Remove extra qualifiers from the ScheduledAction decl. + + * bindings/v8/ScheduledAction.h: Removed extraneous class qualifiers. + +2009-05-27 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed make distcheck fix. One more missing file. + + * GNUmakefile.am: + +2009-05-27 Antonio Gomes <antonio.gomes@openbossa.org> + + Reviewed by Simon Hausmann. + + [Qt] Fixed trunk build on Linux after r44126. + + * WebCore.pro: + +2009-05-27 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Oliver Hunt. + + <rdar://problem/6926046> REGRESSION (r43972): http://www.youtube.com/html5 crashes on open + + * platform/graphics/MediaPlayer.cpp: + (WebCore::MediaPlayer::load): Don't look for a media engine based on an empty MIME type. + +2009-05-27 David Levin <levin@chromium.org> + + Reviewed by Maciej Stachowiak. + + Bug 26029: FrameLoader::canLoad should allow calls with just a security origin + https://bugs.webkit.org/show_bug.cgi?id=26029 + + No functional changes, so no tests. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::canLoad): + * loader/FrameLoader.h: + +2009-05-27 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed build fix. + + Remove file that does not exist from the build. + + * GNUmakefile.am: + +2009-05-27 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by Darin Adler. + + Remove two unneeded protected constructors, these classes have pure-virtual functions, and can't be constructed anyway. + + * dom/InputElement.h: + * dom/OptionGroupElement.h: + +2009-05-27 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=17725 + XPath should be case insensitive for HTML + + Test: fast/xpath/node-name-case-sensitivity.html + + * xml/XPathStep.cpp: (WebCore::XPath::Step::nodeMatches): Made node name check case insensitive + for HTML elements in HTML documents. + +2009-05-27 John Sullivan <sullivan@apple.com> + + fixed <rdar://problem/6925482> repro crash in WebCore::DragController::dragExited dropping + bookmarks (at least) over Top Sites (at least) + + Reviewed by Kevin Decker + + * page/DragController.cpp: + (WebCore::DragController::dragExited): + nil check m_documentUnderMouse and take the "local file" case if it's nil + +2009-05-27 Fridrich Strba <fridrich.strba@bluewin.ch> + + Reviewed by Gustavo Noronha. + + When building on window, consider Windows specific files. + + * GNUmakefile.am: + +2009-05-27 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by George Staikos. + + Fixes: https://bugs.webkit.org/show_bug.cgi?id=26031 + + InputElementData is too heavy, save storing two pointers by passing them + directly to the static helper functions (the only place which needs them). + + * dom/InputElement.cpp: + (WebCore::InputElement::dispatchFocusEvent): + (WebCore::InputElement::dispatchBlurEvent): + (WebCore::InputElement::updatePlaceholderVisibility): + (WebCore::InputElement::updateFocusAppearance): + (WebCore::InputElement::updateSelectionRange): + (WebCore::InputElement::aboutToUnload): + (WebCore::InputElement::setValueFromRenderer): + (WebCore::InputElement::constrainValue): + (WebCore::InputElement::handleBeforeTextInsertedEvent): + (WebCore::InputElement::parseSizeAttribute): + (WebCore::InputElement::parseMaxLengthAttribute): + (WebCore::InputElement::updateValueIfNeeded): + (WebCore::InputElement::notifyFormStateChanged): + (WebCore::InputElementData::InputElementData): + * dom/InputElement.h: + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::HTMLInputElement): + (WebCore::HTMLInputElement::updateFocusAppearance): + (WebCore::HTMLInputElement::aboutToUnload): + (WebCore::HTMLInputElement::dispatchFocusEvent): + (WebCore::HTMLInputElement::dispatchBlurEvent): + (WebCore::HTMLInputElement::setInputType): + (WebCore::HTMLInputElement::setSelectionRange): + (WebCore::HTMLInputElement::parseMappedAttribute): + (WebCore::HTMLInputElement::setValue): + (WebCore::HTMLInputElement::setValueFromRenderer): + (WebCore::HTMLInputElement::setFileListFromRenderer): + (WebCore::HTMLInputElement::defaultEventHandler): + (WebCore::HTMLInputElement::constrainValue): + * wml/WMLInputElement.cpp: + (WebCore::WMLInputElement::WMLInputElement): + (WebCore::WMLInputElement::dispatchFocusEvent): + (WebCore::WMLInputElement::dispatchBlurEvent): + (WebCore::WMLInputElement::updateFocusAppearance): + (WebCore::WMLInputElement::aboutToUnload): + (WebCore::WMLInputElement::setValue): + (WebCore::WMLInputElement::setValueFromRenderer): + (WebCore::WMLInputElement::parseMappedAttribute): + (WebCore::WMLInputElement::defaultEventHandler): + (WebCore::WMLInputElement::constrainValue): + +2009-05-27 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by George Staikos. + + Fixes: https://bugs.webkit.org/show_bug.cgi?id=26033 + + OptionElementData saves an Element pointer, which is unnessary. + Just pass it to the static function calls directly. + + * dom/OptionElement.cpp: + (WebCore::OptionElement::setSelectedState): + (WebCore::OptionElement::collectOptionText): + (WebCore::OptionElement::collectOptionTextRespectingGroupLabel): + (WebCore::OptionElement::collectOptionValue): + (WebCore::OptionElementData::OptionElementData): + * dom/OptionElement.h: + * html/HTMLOptionElement.cpp: + (WebCore::HTMLOptionElement::HTMLOptionElement): + (WebCore::HTMLOptionElement::text): + (WebCore::HTMLOptionElement::value): + (WebCore::HTMLOptionElement::setSelected): + (WebCore::HTMLOptionElement::setSelectedState): + (WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel): + * wml/WMLOptionElement.cpp: + (WebCore::WMLOptionElement::WMLOptionElement): + (WebCore::WMLOptionElement::setSelectedState): + (WebCore::WMLOptionElement::value): + (WebCore::WMLOptionElement::textIndentedToRespectGroupLabel): + +2009-05-27 Fridrich Strba <fridrich.strba@bluewin.ch> + + Reviewed by Maciej Stachowiak. + + When building with MinGW, don't use the __declspec(dl{import,export}) + decorations and rely on the linker to use its nifty auto-import feature. + It is extremely hard to get the decorations right with MinGW in general + and impossible in WebKit, where the resulting shared library is linking + together some static libraries. + + * config.h: + +2009-05-26 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=25613 + + Add a WebCore::Widget that can embed GtkWidget with and + without a GdkWindow. This can be used to embed any GtkWidget. + + Some bits are directly copied from the Scrollbar implementation + but can not be easily shared here. + + * GNUmakefile.am: + * platform/gtk/GtkPluginWidget.cpp: Added. + (WebCore::GtkPluginWidget::GtkPluginWidget): + (WebCore::GtkPluginWidget::invalidateRect): + (WebCore::GtkPluginWidget::frameRectsChanged): + (WebCore::GtkPluginWidget::paint): + * platform/gtk/GtkPluginWidget.h: Added. + +2009-05-26 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=25613. + + Implement Widget::setIsSelected for Gtk+ by searching + for a property of the name "webkit-widget-is-selected" and if + such property exists we are going to set it. We expect + the property to take a boolean. + + * platform/gtk/WidgetGtk.cpp: + (WebCore::Widget::setIsSelected): + +2009-05-26 Sam Weinig <sam@webkit.org> + + Reviewed by Brady Eidson. + + Fix for <rdar://problem/6916371> + iWeb 'Announce' button does nothing after publishing to MobileMe + + Add ability to force content sniffing for all urls (including file: urls) + + * WebCore.base.exp: + * platform/network/ResourceHandle.cpp: + (WebCore::ResourceHandle::shouldContentSniffURL): + (WebCore::ResourceHandle::forceContentSniffing): + * platform/network/ResourceHandle.h: + +2009-05-26 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=25996 + + [Qt] Dead-code stripping for unix + + * WebCore.pro: Turn on GCC dead-code stripping flags for Unix + +2009-05-10 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Dave Hyatt. + + https://bugs.webkit.org/show_bug.cgi?id=25646 + + [GTK] Send onscroll events for the main FrameView + + WebKit/GTK+ is currently not sending any onscroll + events for a frame with external adjustments. This is + due the fact that the value-changed signal of the GtkAdjustment + is handled by WebCore::ScrollView directly and is not going through + the WebCore::Scrollbar -> WebCore::ScrollbarClient -> + WebCore::FrameView::valueChanged -> WebCore::ScrollView::valueChanged + path. + + Fix the above problem by wrapping the GtkAdjustment we get + assigned from GTK+ in a ScrollbarGtk that will not have any + visual appearance. Remove code from ScrollView that knows + about adjustments and create a special case for + WebCore::ScrollView::createScrollbar that will create such + a special WebCore::ScrollbarGtk. + + * platform/ScrollView.cpp: Remove adjustment code + (WebCore::ScrollView::setHasHorizontalScrollbar): + (WebCore::ScrollView::setHasVerticalScrollbar): + (WebCore::ScrollView::updateScrollbars): + (WebCore::ScrollView::wheelEvent): + * platform/ScrollView.h: Remove adjustment code + * platform/gtk/ScrollViewGtk.cpp: + (WebCore::ScrollView::platformDestroy): + (WebCore::ScrollView::createScrollbar): + (WebCore::ScrollView::setGtkAdjustments): + * platform/gtk/ScrollbarGtk.cpp: + (ScrollbarGtk::createScrollbar): Special case. + (ScrollbarGtk::ScrollbarGtk): New ctor and work on the adjustment + (ScrollbarGtk::~ScrollbarGtk): Disconnect signal + (ScrollbarGtk::frameRectsChanged): Do nothing when we lack a platformWidget + * platform/gtk/ScrollbarGtk.h: + +2009-05-26 Cameron Zwarich <zwarich@apple.com> + + Reviewed by Maciej Stachowiak. + + Bug 26035: Make ImageSource::frameHasAlphaAtIndex() return false for JPEGs with CG + <https://bugs.webkit.org/show_bug.cgi?id=26035> + <rdar://problem/6924087> + + * platform/graphics/cg/ImageSourceCG.cpp: + (WebCore::ImageSource::frameHasAlphaAtIndex): return false if the image + is JPEG, there is no image type, or m_decoder is null. + +2009-05-26 Holger Hans Peter Freyther <zecke@selfish.org> + + Unreviewed build fix for the JPEGImageDecoder. + + Revision 44167 removed stdio.h from the included headers and + this will lead to an error that FILE is not known inside the + jpeglib.h Put back the stdio.h include. + + * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: + +2009-05-26 Yichao Yin <yichao.yin@torchmobile.com.cn> + + Reviewed by Maciej Stachowiak. + + Fix the crash issue while running layout tests after enalbed XHTMLMP + https://bugs.webkit.org/show_bug.cgi?id=26017 + + * dom/Document.cpp: + (WebCore::Document::isXHTMLMPDocument): + +2009-05-26 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/6901751> + REGRESSION (r35515): Tiger crash painting the selection on registration page of car2go.com + + Don't use the WKCGContextIsSafeToClip function; it wasn't working correctly. Instead, just disable + the improved selection drawing on Tiger. + + * WebCore.Tiger.exp: + * platform/graphics/cg/GraphicsContextCG.cpp: + (WebCore::GraphicsContext::fillPath): + (WebCore::GraphicsContext::strokePath): + (WebCore::GraphicsContext::fillRect): + (WebCore::GraphicsContext::clip): + (WebCore::GraphicsContext::clipOut): + (WebCore::GraphicsContext::clipOutEllipseInRect): + (WebCore::GraphicsContext::clipPath): + (WebCore::GraphicsContext::addInnerRoundedRectClip): + (WebCore::GraphicsContext::strokeRect): + * platform/mac/WebCoreSystemInterface.h: + * platform/mac/WebCoreSystemInterface.mm: + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::fillSelectionGaps): + +2009-05-26 Peter Kasting <pkasting@google.com> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25709 part two + Mostly cosmetic changes, mainly to get image decoders for Cairo build to + comply with WebKit style guidelines: + * Fix header guard names + * Fix initializer list wrapping + * Fix class/function "{" wrapping + * Fix wrapping of long boolean expressions + * Fix whitespace around operators + * Eliminate whitespace on otherwise-blank lines + * No {} on single-line conditional arms + * Use 0 instead of NULL + * Don't #include "config.h" in headers + + Also a few non-cosmetic changes: + * Remove unneeded #ifdef protecting the contents of these files. The + platforms listed don't match who uses these files anymore (even + without considering Skia), and platforms which don't use them at all + (like CG) aren't harmed by the files, since they don't have + equivalently-named classes. It's simpler to just ditch these. + * Convert a use of Vector<>& into SharedBuffer*, since that's how the + data is really stored anyway. + * Use size() instead of m_size, for consistency with Skia code, and + future-proofing (if a particular decoder wants to specialize this). + * Move an ASSERT that was slightly more aggressive than necessary. + * Change variable names/types for clarity/accuracy and to match Skia. + * Remove unnecessary macro magic to work around a problem which no + longer exists in the third-party JPEG headers. + * Stop silencing a portability warning about setjmp (the vcproj/vsprops + are the right place for this) + * In Skia code, don't explicitly check |m_failed| before calling + isSizeAvailable(), which itself checks |m_failed|. + + * platform/image-decoders/ImageDecoder.h: Fix header guards, "{" wrapping. + (WebCore::RGBA32Buffer::): + (WebCore::RGBA32Buffer::RGBA32Buffer): Fix initializer list wrapping. + (WebCore::ImageDecoder::ImageDecoder): Fix initializer list wrapping. + * platform/image-decoders/bmp/BMPImageDecoder.cpp: Remove unneeded #ifdef. + * platform/image-decoders/bmp/BMPImageDecoder.h: Fix header guards, "{" wrapping. + * platform/image-decoders/gif/GIFImageDecoder.cpp: Remove unneeded #ifdef, fix "{" wrapping. + (WebCore::GIFImageDecoderPrivate::GIFImageDecoderPrivate): Use an initializer instead of a block-level statement. + (WebCore::GIFImageDecoderPrivate::decode): Expect a SharedBuffer. + (WebCore::GIFImageDecoderPrivate::getColorMap): + (WebCore::GIFImageDecoder::GIFImageDecoder): Fix initializer list wrapping. + (WebCore::GIFImageDecoder::frameCount): Add comment. + (WebCore::GIFImageDecoder::frameBufferAtIndex): Explicitly cast, fix whitespace around operators. + (WebCore::GIFImageDecoder::decode): Pass a SharedBuffer. + (WebCore::GIFImageDecoder::initFrameBuffer): Use size() instead of m_size, move ASSERT, fix boolean wrapping, fix indenting. + (WebCore::GIFImageDecoder::prepEmptyFrameBuffer): Use size() instead of m_size. + (WebCore::GIFImageDecoder::haveDecodedRow): Use size() instead of m_size, eliminate unneeded whitespace, change variable name. + (WebCore::GIFImageDecoder::frameComplete): Use size() instead of m_size, no {} on single-line conditional arms, fix boolean wrapping. + * platform/image-decoders/gif/GIFImageDecoder.h: Fix header guards, "{" wrapping. + * platform/image-decoders/gif/GIFImageReader.cpp: Remove unneeded #ifdef. + (GIFImageReader::read): + * platform/image-decoders/gif/GIFImageReader.h: Fix header guards, change variable type. + * platform/image-decoders/ico/ICOImageDecoder.cpp: Remove unneeded #ifdef. + * platform/image-decoders/ico/ICOImageDecoder.h: Fix header guards, "{" wrapping. + * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Remove unneeded #ifdef, macro magic, silencing of warning. + (WebCore::JPEGImageDecoder::outputScanlines): Use size() instead of m_size, change variable name. + * platform/image-decoders/jpeg/JPEGImageDecoder.h: Fix header guards, "{" wrapping. + * platform/image-decoders/png/PNGImageDecoder.cpp: Remove unneeded #ifdef, silencing of warning, change variable type. + (WebCore::PNGImageReader::PNGImageReader): Fix initializer list wrapping. + (WebCore::PNGImageReader::close): Add comment, zero another member for consistency. + (WebCore::PNGImageDecoder::PNGImageDecoder): Fix indenting. + (WebCore::PNGImageDecoder::decodingFailed): Define in .cpp, not .h. + (WebCore::PNGImageDecoder::rowAvailable): + * platform/image-decoders/png/PNGImageDecoder.h: Fix header guards, "{" wrapping. + * platform/image-decoders/skia/GIFImageDecoder.cpp: + (WebCore::GIFImageDecoder::isSizeAvailable): Don't check m_failed unnecessarily. + (WebCore::GIFImageDecoder::frameBufferAtIndex): Fix whitespace around operators. + * platform/image-decoders/skia/GIFImageReader.h: "unsigned" is sufficient to convey "unsigned int". + * platform/image-decoders/skia/ImageDecoder.h: Remove unnecessary #includes. + (WebCore::ImageDecoder::ImageDecoder): Fix initializer list wrapping. + * platform/image-decoders/skia/JPEGImageDecoder.cpp: + (WebCore::JPEGImageReader::JPEGImageReader): Use 0 instead of NULL. + (WebCore::JPEGImageDecoder::isSizeAvailable): Don't check m_failed unnecessarily. + * platform/image-decoders/skia/PNGImageDecoder.cpp: + (WebCore::PNGImageReader::PNGImageReader): Fix initializer list wrapping. + (WebCore::PNGImageDecoder::PNGImageDecoder): Fix indenting. + (WebCore::PNGImageDecoder::isSizeAvailable): Don't check m_failed unnecessarily. + (WebCore::rowAvailable): + * platform/image-decoders/skia/XBMImageDecoder.h: Don't #include config.h. + * platform/image-decoders/xbm/XBMImageDecoder.cpp: Remove unneeded #ifdef. + * platform/image-decoders/xbm/XBMImageDecoder.h: Fix header guards, "{" wrapping. + +2009-05-26 Jian Li <jianli@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25944 + Remove the uses of V8 Locker in worker execution code. No additional test is needed. + The normal WebKit layout tests should cover it. However, layout tests that start + multiple workers will fail to pass due to test shell limitation in Chromium. To cover + this, UI tests will be added (http://code.google.com/p/chromium/issues/detail?id=12554). + + * bindings/v8/V8WorkerContextEventListener.cpp: + (WebCore::V8WorkerContextEventListener::handleEvent): + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::WorkerContextExecutionProxy::dispose): + (WebCore::WorkerContextExecutionProxy::initV8IfNeeded): + (WebCore::WorkerContextExecutionProxy::evaluate): + (WebCore::WorkerContextExecutionProxy::findOrCreateEventListenerHelper): + (WebCore::WorkerContextExecutionProxy::RemoveEventListener): + +2009-05-26 Dmitry Titov <dimich@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25974 + Enable timers in Chromuim workers. + + * bindings/v8/ScheduledAction.cpp: + (WebCore::ScheduledAction::execute): Added function which can execute a callback using WorkerContext. + * bindings/v8/ScheduledAction.h: + (WebCore::ScheduledAction::ScheduledAction): added url parameter to capture the worker's location. + * bindings/v8/custom/V8WorkerContextCustom.cpp: + (WebCore::SetTimeoutOrInterval): replaced NotImplemented with code to create ScheduledAction and DOMTimer. + Also, removed declarations for clearTimeout/clearInterval callbacks since they are now directly generated from IDL. + +2009-05-26 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, build fix. + + https://bugs.webkit.org/show_bug.cgi?id=23649 + Update V8 bindings to match SQLTransactionErrorCallback change. + + * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp: + (WebCore::V8CustomSQLTransactionErrorCallback::handleEvent): Changed to return void. + * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.h: Ditto. + +2009-05-26 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + Move FilterEffect to platform/graphics/filters. First step to get an + SVG independent filter system. + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.xcodeproj/project.pbxproj: + * platform/graphics/filters/FilterEffect.cpp: Added. + (WebCore::FilterEffect::FilterEffect): + (WebCore::FilterEffect::~FilterEffect): + (WebCore::FilterEffect::externalRepresentation): + * platform/graphics/filters/FilterEffect.h: Added. + (WebCore::FilterEffect::xBoundingBoxMode): + (WebCore::FilterEffect::setXBoundingBoxMode): + (WebCore::FilterEffect::yBoundingBoxMode): + (WebCore::FilterEffect::setYBoundingBoxMode): + (WebCore::FilterEffect::widthBoundingBoxMode): + (WebCore::FilterEffect::setWidthBoundingBoxMode): + (WebCore::FilterEffect::heightBoundingBoxMode): + (WebCore::FilterEffect::setHeightBoundingBoxMode): + (WebCore::FilterEffect::subRegion): + (WebCore::FilterEffect::setSubRegion): + (WebCore::FilterEffect::resultImage): + (WebCore::FilterEffect::setEffectBuffer): + * svg/FilterEffect.cpp: Removed. + * svg/FilterEffect.h: Removed. + +2009-05-26 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=23649 + Update SQLTransactionErrorCallback to not return a value per changes in + HTML5 spec. + + Test: storage/transaction-error-callback.html + + * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: + (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent): + * bindings/js/JSCustomSQLTransactionErrorCallback.h: + * storage/SQLTransaction.cpp: + (WebCore::SQLTransaction::SQLTransaction): + (WebCore::SQLTransaction::postflightAndCommit): + (WebCore::SQLTransaction::handleTransactionError): + (WebCore::SQLTransaction::deliverTransactionErrorCallback): + (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): + * storage/SQLTransaction.h: + * storage/SQLTransactionErrorCallback.h: + +2009-05-26 David Hyatt <hyatt@apple.com> + + Reviewed by Darin Adler. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=25969 + + Detect the case where we can fit without scrollbars when the view shrinks, so that we don't mistakenly + continue to show scrollbars. + + Added two tests in fast/dynamic. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::updateScrollbars): + +2009-05-26 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Mark Rowe. + + Bug 25801: change AccessibilityAria -> AccessibilityARIA + https://bugs.webkit.org/show_bug.cgi?id=25801 + + * GNUmakefile.am: + * WebCore.order: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * WebCoreSources.bkl: + * accessibility/AXObjectCache.cpp: + (WebCore::AXObjectCache::getOrCreate): + * accessibility/AccessibilityARIAGrid.cpp: Copied from WebCore/accessibility/AccessibilityAriaGrid.cpp. + (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid): + (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid): + (WebCore::AccessibilityARIAGrid::create): + (WebCore::AccessibilityARIAGrid::addChild): + (WebCore::AccessibilityARIAGrid::addChildren): + (WebCore::AccessibilityARIAGrid::cellForColumnAndRow): + * accessibility/AccessibilityARIAGrid.h: Copied from WebCore/accessibility/AccessibilityAriaGrid.h. + * accessibility/AccessibilityARIAGridCell.cpp: Copied from WebCore/accessibility/AccessibilityAriaGridCell.cpp. + (WebCore::AccessibilityARIAGridCell::AccessibilityARIAGridCell): + (WebCore::AccessibilityARIAGridCell::~AccessibilityARIAGridCell): + (WebCore::AccessibilityARIAGridCell::create): + (WebCore::AccessibilityARIAGridCell::parentTable): + (WebCore::AccessibilityARIAGridCell::rowIndexRange): + (WebCore::AccessibilityARIAGridCell::columnIndexRange): + * accessibility/AccessibilityARIAGridCell.h: Copied from WebCore/accessibility/AccessibilityAriaGridCell.h. + * accessibility/AccessibilityARIAGridRow.cpp: Copied from WebCore/accessibility/AccessibilityAriaGridRow.cpp. + (WebCore::AccessibilityARIAGridRow::AccessibilityARIAGridRow): + (WebCore::AccessibilityARIAGridRow::~AccessibilityARIAGridRow): + (WebCore::AccessibilityARIAGridRow::create): + (WebCore::AccessibilityARIAGridRow::parentTable): + (WebCore::AccessibilityARIAGridRow::headerObject): + * accessibility/AccessibilityARIAGridRow.h: Copied from WebCore/accessibility/AccessibilityAriaGridRow.h. + * accessibility/AccessibilityAriaGrid.cpp: Removed. + * accessibility/AccessibilityAriaGrid.h: Removed. + * accessibility/AccessibilityAriaGridCell.cpp: Removed. + * accessibility/AccessibilityAriaGridCell.h: Removed. + * accessibility/AccessibilityAriaGridRow.cpp: Removed. + * accessibility/AccessibilityAriaGridRow.h: Removed. + +2009-05-26 Stephen White <senorblanco@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=26012 + + Fix the Skia path to normalize the given source rect when + drawing patterns, so it accepts negative width/height (as CG does). + Fixes Chromium bug http://www.crbug.com/6167. + * platform/graphics/skia/ImageSkia.cpp: + (WebCore::Image::drawPattern): + +2009-05-26 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Serialize calls to WebInspector. This is the first step where method + calls are being serialized to arrays (not yet JSON stringified ones) and + are being dispatched on the client. This change also allows client to override + InspectorFrontend, so that the serialized calls can be made on a given object + instead of in-process WebInspector global. This will be the main control flow + when InspectorController is decoupled from the in-process frontend. + + https://bugs.webkit.org/show_bug.cgi?id=26010 + + * inspector/InspectorController.cpp: + (WebCore::InspectorController::scriptObjectReady): + (WebCore::InspectorController::overrideFrontendObject): + (WebCore::InspectorController::show): + (WebCore::InspectorController::populateScriptObjects): + * inspector/InspectorController.h: + * inspector/InspectorFrontend.cpp: + (WebCore::InspectorFrontend::addMessageToConsole): + (WebCore::InspectorFrontend::addResource): + (WebCore::InspectorFrontend::updateResource): + (WebCore::InspectorFrontend::removeResource): + (WebCore::InspectorFrontend::updateFocusedNode): + (WebCore::InspectorFrontend::setAttachedWindow): + (WebCore::InspectorFrontend::inspectedWindowScriptObjectCleared): + (WebCore::InspectorFrontend::showPanel): + (WebCore::InspectorFrontend::populateInterface): + (WebCore::InspectorFrontend::reset): + (WebCore::InspectorFrontend::debuggerWasEnabled): + (WebCore::InspectorFrontend::debuggerWasDisabled): + (WebCore::InspectorFrontend::profilerWasEnabled): + (WebCore::InspectorFrontend::profilerWasDisabled): + (WebCore::InspectorFrontend::parsedScriptSource): + (WebCore::InspectorFrontend::failedToParseScriptSource): + (WebCore::InspectorFrontend::addProfile): + (WebCore::InspectorFrontend::setRecordingProfile): + (WebCore::InspectorFrontend::pausedScript): + (WebCore::InspectorFrontend::resumedScript): + (WebCore::InspectorFrontend::addDatabase): + (WebCore::InspectorFrontend::addDOMStorage): + (WebCore::InspectorFrontend::newFunctionCall): + (WebCore::InspectorFrontend::callSimpleFunction): + * inspector/InspectorFrontend.h: + * inspector/front-end/inspector.js: + (WebInspector.dispatch): + +2009-05-25 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + <rdar://problem/6918671> REGRESSION (r41700): Crashes in debug DumpRenderTree at RefCountedBase::ref(). + + * dom/QualifiedName.cpp: (WebCore::QualifiedName::QualifiedName): + * dom/QualifiedName.h: (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl): + Adjust empty namespace before QNameComponentsTranslator black magic, not after. + +2009-05-25 David Levin <levin@chromium.org> + + Reviewed by Maciej Stachowiak and Oliver Hunt. + + Added forwarding headers. + + * ForwardingHeaders/wtf/CrossThreadRefCounted.h: Added. + * ForwardingHeaders/wtf/OwnFastMallocPtr.h: Added. + +2009-05-25 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + - WebCore side of <rdar://problem/6914001>. + + Add a new m_allowPopupsFromPlugin flag. + + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::ScriptController): + (WebCore::ScriptController::processingUserGesture): + * bindings/js/ScriptController.h: + (WebCore::ScriptController::setAllowPopupsFromPlugin): + (WebCore::ScriptController::allowPopupsFromPlugin): + +2009-05-25 Adam Barth <abarth@webkit.org> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=26006 + + Sort out our use of dynamicGlobalObject and lexicalGlobalObject for + window.location. The correct use appears to be as follows: + + 1) Use dynamicGlobalObject to find the user gesture. + 2) Use dynamicGlobalObject to complete URLs. + 3) Use lexicalGlobalObject to find the referrer. + 4) Use lexicalGlobalObject for the frame navigation checks. + 5) Use lexicalGlobalObject for the XSS checks. + + Tests: http/tests/security/frameNavigation/context-for-location-assign.html + http/tests/security/frameNavigation/context-for-location-href.html + http/tests/security/frameNavigation/context-for-location.html + + * bindings/js/JSDOMBinding.cpp: + (WebCore::shouldAllowNavigation): + (WebCore::toLexicalFrame): + (WebCore::processingUserGesture): + (WebCore::completeURL): + * bindings/js/JSDOMBinding.h: + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::setLocation): + * bindings/js/JSLocationCustom.cpp: + (WebCore::navigateIfAllowed): + (WebCore::JSLocation::setHref): + (WebCore::JSLocation::replace): + (WebCore::JSLocation::reload): + (WebCore::JSLocation::assign): + (WebCore::JSLocation::toString): + (WebCore::JSLocationPrototype::customPut): + * bindings/v8/V8Utilities.cpp: + (WebCore::processingUserGesture): + (WebCore::shouldAllowNavigation): + (WebCore::completeURL): + (WebCore::navigateIfAllowed): + * bindings/v8/V8Utilities.h: + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::V8Custom::WindowSetLocation): + * bindings/v8/custom/V8LocationCustom.cpp: + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + +2009-05-25 Fridrich Strba <fridrich.strba@bluewin.ch> + + Reviewed by Maciej Stachowiak. + + With Windows compilers older then MSVC 2005, the functions + gmtime_s and localtime_s don't exist. The gmtime and localtime are + on Windows always thread safe. So use them in the cases where + gmtime_s and localtime_s are not present. + + * loader/FTPDirectoryDocument.cpp: + * loader/FTPDirectoryParser.cpp: + +2009-05-25 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Simon Hausmann. + + Follow up on r44120. PluginPackageMac.cpp is used + by Qt on Mac and contained a copy of the m_browserFunc + assignments and ::equal, ::hash and ::compareFileVersion. + Change it to use the ones from PluginPackage.cpp as well. + + * plugins/mac/PluginPackageMac.cpp: + (WebCore::PluginPackage::load): + +2009-05-25 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + https://bugs.webkit.org/show_bug.cgi?id=25612 + + Support conditionals in the tag factories, by placing + feature #ifdefs around the individual factory functions + and the registration. + + Made the Audio and Video elements conditional in the tag factories + + * html/HTMLTagNames.in: + * dom/make_names.pl: + +2009-05-25 Simon Hausmann <simon.hausmann@nokia.com> + + Fix the Gtk build when video is disabled. + + * GNUmakefile.am: Always generate and compile the IDL files for the media + elements. They contain proper feature #ifdefs. + +2009-05-25 Simon Hausmann <simon.hausmann@nokia.com> + + Fix the Qt build when video is disabled. + + * WebCore.pro: Always generate the IDL files for the media elements. They + contain proper ENABLE(VIDEO) #ifdefs. + +2009-05-25 Adam Barth <abarth@webkit.org> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=26004 + + The origin for postMessage should follow lexical scope, not dynamic + scope. Yes, this is a super-obscure corner case. + + Test: http/tests/security/postMessage/origin-follows-lexical-scope.html + + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::postMessage): + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + +2009-05-24 Darin Fisher <darin@chromium.org> + + Reviewed by Mark Rowe. + + Fix build bustage related to PassOwnPtr changes. + + https://bugs.webkit.org/show_bug.cgi?id=25999 + + * platform/graphics/chromium/TransparencyWin.cpp: + +2009-05-24 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=25988 + + Minor cleanup in PluginPackage::hash. Let the compiler + figure out the size of the array. Do not have it in the + definition and specially not the in the call to + StringImpl::hash. + + * plugins/PluginPackage.cpp: + (WebCore::PluginPackage::hash): + +2009-05-24 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=25988 + + Move ::hash, ::equal and ::compareFileVersion from + the duplicated copies in PluginPackageQt.cpp and + PluginPackageGtk to PluginPackage.cpp. We need to #ifdef + this for the PluginPackageWin version. Use the new style + ENABLE() for this feature/policy and enable it in the Gtk+ + and Qt buildsystem. + + * GNUmakefile.am: + * WebCore.pro: + * plugins/PluginPackage.cpp: + (WebCore::PluginPackage::hash): + (WebCore::PluginPackage::equal): + (WebCore::PluginPackage::compareFileVersion): + * plugins/gtk/PluginPackageGtk.cpp: + * plugins/qt/PluginPackageQt.cpp: + +2009-05-24 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=25988 + + So far the initialization of the browserfuncs struct + is done in PluginPackageQt, PluginPackageGtk and + PluginPackageWin there is no need for this duplication. + + The PluginPackageWin version got copied to PluginPackage + + * plugins/PluginPackage.cpp: + (WebCore::PluginPackage::initializeBrowserFuncs): + * plugins/PluginPackage.h: + * plugins/gtk/PluginPackageGtk.cpp: + (WebCore::PluginPackage::load): + * plugins/qt/PluginPackageQt.cpp: + (WebCore::PluginPackage::load): + * plugins/win/PluginPackageWin.cpp: + (WebCore::PluginPackage::load): + +2009-05-24 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + WebKit needs cross-platform filter system + [https://bugs.webkit.org/show_bug.cgi?id=19991] + + Added standard input for filter system. + + No testcases were added. Filter system is still off. + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.xcodeproj/project.pbxproj: + * platform/graphics/filters/SourceAlpha.cpp: Added. + (WebCore::SourceAlpha::create): + (WebCore::SourceAlpha::effectName): + (WebCore::SourceAlpha::apply): + (WebCore::SourceAlpha::dump): + * platform/graphics/filters/SourceAlpha.h: Added. + (WebCore::SourceAlpha::SourceAlpha): + * platform/graphics/filters/SourceGraphic.cpp: Added. + (WebCore::SourceGraphic::create): + (WebCore::SourceGraphic::effectName): + (WebCore::SourceGraphic::apply): + (WebCore::SourceGraphic::dump): + * platform/graphics/filters/SourceGraphic.h: Added. + (WebCore::SourceGraphic::SourceGraphic): + * svg/FilterBuilder.cpp: Added. + (WebCore::FilterBuilder::FilterBuilder): + (WebCore::FilterBuilder::add): + (WebCore::FilterBuilder::getEffectById): + (WebCore::FilterBuilder::clearEffects): + * svg/FilterBuilder.h: + +2009-05-24 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=25612 + + Add support conditionals in the JSC bindings generator code for attributes, + by placing feature #ifdefs around the setters/getters. + + Made the audio and video element specific DOM attributes conditional + in the generated code, by moving the #ifdefs from the IDL files into + the generated code. This allows for re-using the same generated code + with or without ENABLE(VIDEO). + + * page/DOMWindow.idl: + * bindings/scripts/CodeGeneratorJS.pm: + +2009-05-23 Holger Hans Peter Freyther <zecke@selfish.org> + + Unreviewed build fix for Qt. Change signature to have PassOwnPtr. + + * platform/text/qt/TextCodecQt.cpp: + (WebCore::newTextCodecQt): + +2009-05-23 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + - clean up ColorMac a little + + * platform/graphics/mac/ColorMac.h: Whitespace change. + * platform/graphics/mac/ColorMac.mm: Removed redundant #import + statements and sorted the remaining ones. + (WebCore::makeRGBAFromNSColor): Replaced four Objective-C method calls + with a single call and removed redundant casts to int. + (WebCore::nsColor): Removed ".0f" from number literals used as CGFloats. + In one case, this avoids an intermediate conversion to float before + conversion to double on 64-bit. + (WebCore::CGColorFromNSColor): Replaced four Objective-C method calls + with a single call. + (WebCore::focusRingColor): + (+[WebCoreControlTintObserver controlTintDidChange]): Whitespace change. + +2009-05-23 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + [Gtk] ROLE_ROW_HEADER should not be used for list item bullets/numbers + https://bugs.webkit.org/show_bug.cgi?id=25900 + + Use ATK_ROLE_TEXT for ListMarkerRole. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (atkRole): + +2009-05-23 David Kilzer <ddkilzer@apple.com> + + Reformat WebCore::requiresContextForWordBoundary() + + * platform/text/TextBoundaries.h: + (WebCore::requiresContextForWordBoundary): + +2009-05-23 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Not reviewed. Roll out ResourceHandle patch, that I accidently included in my last commit. + + * platform/network/ResourceHandle.cpp: + (WebCore::ResourceHandle::shouldContentSniffURL): + +2009-05-23 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by Darin Adler. + + Fixes: https://bugs.webkit.org/show_bug.cgi?id=23808 + + After a long journey, add the last missing ABC to share form control element support with HTMLSelectElement. + RenderListBox/RenderMenuList operates on SelectElement instead of HTMLSelectElement now, querying selected index etc. + This makes it possible to use these render objects for ie. WML, as it's done before for input & option elements. + + WMLSelectElement will be created soon, in a follow-up patch, adding more methods to SelectElement, sharing code between + HTMLSelectElement/WMLSelectElement. + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * WebCoreSources.bkl: + * accessibility/AccessibilityListBox.cpp: + (WebCore::AccessibilityListBox::addChildren): + (WebCore::AccessibilityListBox::doAccessibilityHitTest): + * accessibility/AccessibilityListBoxOption.cpp: + (WebCore::AccessibilityListBoxOption::listBoxOptionIndex): + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::actionElement): + * dom/Element.h: + (WebCore::Element::isFormControlElement): + (WebCore::Element::dispatchFormControlChangeEvent): + * dom/SelectElement.cpp: Added. + (WebCore::toSelectElement): + * dom/SelectElement.h: Added. + (WebCore::SelectElement::~SelectElement): + * html/HTMLFormControlElement.cpp: + (WebCore::HTMLFormControlElement::dispatchFormControlChangeEvent): + * html/HTMLFormControlElement.h: + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::setChecked): + (WebCore::HTMLInputElement::defaultEventHandler): + * html/HTMLOptionElement.cpp: + (WebCore::HTMLOptionElement::index): + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::selectedIndex): + (WebCore::HTMLSelectElement::lastSelectedListIndex): + (WebCore::HTMLSelectElement::deselectItems): + (WebCore::HTMLSelectElement::setSelectedIndex): + (WebCore::HTMLSelectElement::length): + (WebCore::HTMLSelectElement::remove): + (WebCore::HTMLSelectElement::value): + (WebCore::HTMLSelectElement::setValue): + (WebCore::HTMLSelectElement::saveFormControlState): + (WebCore::HTMLSelectElement::restoreFormControlState): + (WebCore::HTMLSelectElement::selectAll): + (WebCore::HTMLSelectElement::appendFormData): + (WebCore::HTMLSelectElement::optionToListIndex): + (WebCore::HTMLSelectElement::listToOptionIndex): + (WebCore::HTMLSelectElement::recalcListItems): + (WebCore::HTMLSelectElement::reset): + (WebCore::HTMLSelectElement::dispatchFocusEvent): + (WebCore::HTMLSelectElement::dispatchBlurEvent): + (WebCore::HTMLSelectElement::menuListDefaultEventHandler): + (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): + (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex): + (WebCore::HTMLSelectElement::updateListBoxSelection): + (WebCore::HTMLSelectElement::menuListOnChange): + (WebCore::HTMLSelectElement::listBoxOnChange): + (WebCore::HTMLSelectElement::saveLastSelection): + (WebCore::HTMLSelectElement::typeAheadFind): + (WebCore::HTMLSelectElement::nextSelectableListIndex): + (WebCore::HTMLSelectElement::previousSelectableListIndex): + (WebCore::HTMLSelectElement::setLength): + (WebCore::HTMLSelectElement::checkListItems): + * html/HTMLSelectElement.h: + (WebCore::HTMLSelectElement::size): + (WebCore::HTMLSelectElement::multiple): + (WebCore::HTMLSelectElement::listItems): + (WebCore::HTMLSelectElement::setActiveSelectionEndIndex): + * platform/network/ResourceHandle.cpp: + (WebCore::ResourceHandle::shouldContentSniffURL): + * rendering/RenderFileUploadControl.cpp: + (WebCore::RenderFileUploadControl::valueChanged): + * rendering/RenderListBox.cpp: + (WebCore::RenderListBox::RenderListBox): + (WebCore::RenderListBox::updateFromElement): + (WebCore::RenderListBox::scrollToRevealSelection): + (WebCore::RenderListBox::size): + (WebCore::RenderListBox::numItems): + (WebCore::RenderListBox::paintItemForeground): + (WebCore::RenderListBox::paintItemBackground): + (WebCore::RenderListBox::panScroll): + (WebCore::RenderListBox::autoscroll): + (WebCore::RenderListBox::stopAutoscroll): + (WebCore::RenderListBox::valueChanged): + (WebCore::RenderListBox::nodeAtPoint): + * rendering/RenderListBox.h: + * rendering/RenderMenuList.cpp: + (WebCore::RenderMenuList::RenderMenuList): + (WebCore::RenderMenuList::updateOptionsWidth): + (WebCore::RenderMenuList::updateFromElement): + (WebCore::RenderMenuList::setTextFromOption): + (WebCore::RenderMenuList::showPopup): + (WebCore::RenderMenuList::valueChanged): + (WebCore::RenderMenuList::itemText): + (WebCore::RenderMenuList::itemIsEnabled): + (WebCore::RenderMenuList::itemStyle): + (WebCore::RenderMenuList::itemBackgroundColor): + (WebCore::RenderMenuList::listSize): + (WebCore::RenderMenuList::selectedIndex): + (WebCore::RenderMenuList::itemIsSeparator): + (WebCore::RenderMenuList::itemIsLabel): + (WebCore::RenderMenuList::itemIsSelected): + (WebCore::RenderMenuList::setTextFromItem): + * rendering/RenderMenuList.h: + * rendering/RenderSlider.cpp: + (WebCore::RenderSlider::setValueForPosition): + +2009-05-23 David Kilzer <ddkilzer@apple.com> + + Fix Gtk/Qt builds for PassOwnPtr + + * platform/graphics/cairo/ImageCairo.cpp: + (WebCore::Image::drawPattern): Use an OwnPtr<ImageBuffer> + instead of an std::auto_ptr<ImageBuffer> to store the result of + ImageBuffer::create() now that it returns a + PassOwnPtr<ImageBuffer>. + * platform/graphics/qt/PathQt.cpp: + (WebCore::Path::strokeContains): Ditto. + (WebCore::Path::strokeBoundingRect): Ditto. + +2009-05-23 David Kilzer <ddkilzer@apple.com> + + Part 2 of 2: Bug 25495: Implement PassOwnPtr and replace uses of std::auto_ptr + + <https://bugs.webkit.org/show_bug.cgi?id=25495> + + Reviewed by Oliver Hunt. + + No test cases added since there is no change in behavior. + + * WebCore.base.exp: Updated export for + HistoryItem::setRedirectURLs() which now takes a PassOwnPtr. + * dom/Node.cpp: + (WebCore::Node::childNodes): Use NodeListsNodeData::create() + instead of new NodeListsNodeData. + (WebCore::Node::registerDynamicNodeList): Ditto. + (WebCore::Node::getElementsByTagNameNS): Ditto. + (WebCore::Node::getElementsByName): Ditto. + (WebCore::Node::getElementsByClassName): Ditto. + * dom/NodeRareData.h: + (WebCore::NodeListsNodeData::create): Added. Implements + create() pattern popularized by RefCounted classes. + (WebCore::NodeListsNodeData::NodeListsNodeData): Declared + private constructor. + (WebCore::NodeRareData::setNodeLists): Now takes a PassOwnPtr<> + instead of an auto_ptr<>. + * history/HistoryItem.cpp: + (WebCore::HistoryItem::setRedirectURLs): Ditto. + * history/HistoryItem.h: + (WebCore::HistoryItem::setRedirectURLs): Ditto. + * html/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::drawTextInternal): Use + OwnPtr<> instead of auto_ptr<> for stack variable. + * html/HTMLCanvasElement.cpp: + (WebCore::HTMLCanvasElement::createImageBuffer): Updated to use + assignment operator now that ImageBuffer::create() returns a + PassOwnPtr<>. + * loader/EmptyClients.h: + (WebCore::EmptyChromeClient::createHTMLParserQuirks): Return a + PassOwnPtr<> instead of a raw HTMLParserQuirks pointer. + * page/ChromeClient.h: + (WebCore::ChromeClient::createHTMLParserQuirks): Ditto. + * platform/graphics/GeneratedImage.cpp: + (WebCore::GeneratedImage::drawPattern): Use OwnPtr<> instead of + auto_ptr<> for stack variable. + * platform/graphics/ImageBuffer.h: + (WebCore::ImageBuffer::create): Return PassOwnPtr<> instead of + auto_ptr<>. Use OwnPtr<> instead of auto_ptr<> for stack + variable. + * platform/mac/ScrollbarThemeMac.mm: + (WebCore::ScrollbarThemeMac::paint): Use OwnPtr<> instead of + auto_ptr<> for stack variable. + * platform/text/TextCodec.h: + (WebCore::NewTextCodecFunction): Return PassOwnPtr<> instead of + auto_ptr<>. + * platform/text/TextCodecICU.cpp: + (WebCore::newTextCodecICU): Ditto. + * platform/text/TextCodecLatin1.cpp: + (WebCore::newStreamingTextDecoderWindowsLatin1): Ditto. + * platform/text/TextCodecUTF16.cpp: + (WebCore::newStreamingTextDecoderUTF16LE): Ditto. + (WebCore::newStreamingTextDecoderUTF16BE): Ditto. + * platform/text/TextCodecUserDefined.cpp: + (WebCore::newStreamingTextDecoderUserDefined): Ditto. + * platform/text/TextEncodingRegistry.cpp: + (WebCore::newTextCodec): Ditto. + * platform/text/TextEncodingRegistry.h: + (WebCore::newTextCodec): Ditto. + * platform/text/mac/TextCodecMac.cpp: + (WebCore::newTextCodecMac): Ditto. + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintFillLayerExtended): Use + OwnPtr<> instead of auto_ptr<> for stack variable. + * svg/SVGMaskElement.cpp: + (WebCore::SVGMaskElement::drawMaskerContent): Ditto. Return + OwnPtr<> instead of auto_ptr<>. + * svg/SVGMaskElement.h: + (WebCore::SVGMaskElement::drawMaskerContent): Return OwnPtr<> + instead of auto_ptr<>. + * svg/SVGPatternElement.cpp: + (WebCore::SVGPatternElement::buildPattern): Use OwnPtr<> instead + of auto_ptr<> for stack variable. + * svg/graphics/SVGImage.cpp: + (WebCore::SVGImage::nativeImageForCurrentFrame): Updated to use + assignment operator now that ImageBuffer::create() returns a + PassOwnPtr<>. + * svg/graphics/SVGPaintServerGradient.cpp: + (WebCore::createMaskAndSwapContextForTextGradient): Use OwnPtr<> + instead of auto_ptr<> for stack variable. + * svg/graphics/SVGPaintServerPattern.cpp: + (WebCore::SVGPaintServerPattern::setTile): Updated to take a + PassOwnPtr<> instead of an auto_ptr<>. + (WebCore::SVGPaintServerPattern::setup): Use OwnPtr<> instead of + auto_ptr<> for stack variable. + * svg/graphics/SVGPaintServerPattern.h: + (WebCore::SVGPaintServerPattern::setTile): Updated to take a + PassOwnPtr<> instead of an auto_ptr<>. + * svg/graphics/SVGResourceMasker.cpp: + (WebCore::SVGResourceMasker::applyMask): Updated to use + assignment operator now that SVGMaskElement::drawMaskerContent() + returns a PassOwnPtr<>. Use OwnPtr<> instead of auto_ptr<> for + stack variable. + +2009-05-23 David Kilzer <ddkilzer@apple.com> + + Part 1 of 2: Bug 25495: Implement PassOwnPtr and replace uses of std::auto_ptr + + <https://bugs.webkit.org/show_bug.cgi?id=25495> + + Reviewed by Oliver Hunt. + + * ForwardingHeaders/wtf/OwnPtrCommon.h: Added. + * ForwardingHeaders/wtf/PassOwnPtr.h: Added. + * WebCore.vcproj/WebCore.vcproj: Added OwnPtrCommon.h and + PassOwnPtr.h. + +2009-05-23 David Kilzer <ddkilzer@apple.com> + + Fix Mac builds by backing out r44093 + + * bindings/js/JSCustomPositionCallback.cpp: + * bindings/js/JSCustomPositionCallback.h: + * bindings/js/JSCustomPositionErrorCallback.cpp: + * bindings/js/JSCustomPositionErrorCallback.h: + * bindings/js/JSGeolocationCustom.cpp: + * page/Geolocation.cpp: + * page/Geolocation.idl: + * page/Geoposition.cpp: + * page/Geoposition.h: + * page/Geoposition.idl: + * page/Navigator.cpp: + (WebCore::Navigator::disconnectFrame): + (WebCore::Navigator::geolocation): + * page/PositionError.idl: + * platform/GeolocationService.cpp: + (WebCore::GeolocationService::create): + +2009-05-23 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Eric Seidel. + + Add GEOLOCATION guards around Geolocation API code + https://bugs.webkit.org/show_bug.cgi?id=25756 + + * bindings/js/JSCustomPositionCallback.cpp: + * bindings/js/JSCustomPositionCallback.h: + * bindings/js/JSCustomPositionErrorCallback.cpp: + * bindings/js/JSCustomPositionErrorCallback.h: + * bindings/js/JSGeolocationCustom.cpp: + * page/Geolocation.cpp: + * page/Geolocation.idl: + * page/Geoposition.cpp: + * page/Geoposition.h: + * page/Geoposition.idl: + * page/Navigator.cpp: + (WebCore::Navigator::disconnectFrame): + (WebCore::Navigator::geolocation): + * page/PositionError.idl: + * platform/GeolocationService.cpp: + +2009-05-23 David Kilzer <ddkilzer@apple.com> + + Rename startupdateStyleIfNeededDispatcher to startUpdateStyleIfNeededDispatcher + + In r42377, startUpdateRenderingDispatcher() was renamed to + startupdateStyleIfNeededDispatcher(), but the camelCase "U" was + dropped. This change restores it. + + * WebCore.order: + * page/animation/AnimationController.cpp: + (WebCore::AnimationControllerPrivate::startUpdateStyleIfNeededDispatcher): + (WebCore::AnimationControllerPrivate::addEventToDispatch): + (WebCore::AnimationControllerPrivate::addNodeChangeToDispatch): + (WebCore::AnimationControllerPrivate::pauseAnimationAtTime): + (WebCore::AnimationControllerPrivate::pauseTransitionAtTime): + * page/animation/AnimationControllerPrivate.h: + +2009-05-23 Holger Hans Peter Freyther <zecke@selfish.org> + + Unreviewed build-fix for Qt. Disable SVG Filters. + + SVG Filters can not be built right now and Qt should not have + them enabled anyway as they do not carry out any filtering. + + * WebCore.pro: + +2009-05-23 Dirk Schulze <krit@webkit.org> + + Unreviewed build-fix for gtk. Remove source input files + for SVG filter system from the build for the moment and + add them later again. + + * GNUmakefile.am: + +2009-05-23 Dirk Schulze <krit@webkit.org> + + Reviewed by Eric Seidel. + + WebKit needs cross-platform filter system + [https://bugs.webkit.org/show_bug.cgi?id=19991] + + Preparing Filter primitves for the new filter system. + + No testcases were added. SVG filters are off by default. + + * GNUmakefile.am: + * platform/graphics/filters/FEBlend.cpp: + (WebCore::FEBlend::apply): + * platform/graphics/filters/FEBlend.h: + * platform/graphics/filters/FEColorMatrix.cpp: + (WebCore::FEColorMatrix::apply): + * platform/graphics/filters/FEColorMatrix.h: + * platform/graphics/filters/FEComponentTransfer.cpp: + (WebCore::FEComponentTransfer::apply): + * platform/graphics/filters/FEComponentTransfer.h: + * platform/graphics/filters/FEComposite.cpp: + (WebCore::FEComposite::apply): + * platform/graphics/filters/FEComposite.h: + * svg/Filter.h: + * svg/FilterBuilder.h: + (WebCore::FilterBuilder::lastFilter): + * svg/FilterEffect.cpp: + (WebCore::FilterEffect::FilterEffect): + * svg/FilterEffect.h: + (WebCore::FilterEffect::xBoundingBoxMode): + (WebCore::FilterEffect::setXBoundingBoxMode): + (WebCore::FilterEffect::yBoundingBoxMode): + (WebCore::FilterEffect::setYBoundingBoxMode): + (WebCore::FilterEffect::widthBoundingBoxMode): + (WebCore::FilterEffect::setWidthBoundingBoxMode): + (WebCore::FilterEffect::heightBoundingBoxMode): + (WebCore::FilterEffect::setHeightBoundingBoxMode): + (WebCore::FilterEffect::subRegion): + (WebCore::FilterEffect::setSubRegion): + (WebCore::FilterEffect::resultImage): + (WebCore::FilterEffect::setEffectBuffer): + * svg/graphics/filters/SVGFEConvolveMatrix.cpp: + (WebCore::FEConvolveMatrix::apply): + * svg/graphics/filters/SVGFEConvolveMatrix.h: + * svg/graphics/filters/SVGFEDiffuseLighting.cpp: + (WebCore::FEDiffuseLighting::apply): + * svg/graphics/filters/SVGFEDiffuseLighting.h: + * svg/graphics/filters/SVGFEDisplacementMap.cpp: + (WebCore::FEDisplacementMap::apply): + * svg/graphics/filters/SVGFEDisplacementMap.h: + * svg/graphics/filters/SVGFEFlood.cpp: + (WebCore::FEFlood::apply): + * svg/graphics/filters/SVGFEFlood.h: + * svg/graphics/filters/SVGFEGaussianBlur.cpp: + (WebCore::FEGaussianBlur::apply): + * svg/graphics/filters/SVGFEGaussianBlur.h: + * svg/graphics/filters/SVGFEImage.cpp: + (WebCore::FEImage::apply): + * svg/graphics/filters/SVGFEImage.h: + * svg/graphics/filters/SVGFEMerge.cpp: + (WebCore::FEMerge::apply): + * svg/graphics/filters/SVGFEMerge.h: + * svg/graphics/filters/SVGFEMorphology.cpp: + (WebCore::FEMorphology::apply): + * svg/graphics/filters/SVGFEMorphology.h: + * svg/graphics/filters/SVGFEOffset.cpp: + (WebCore::FEOffset::apply): + * svg/graphics/filters/SVGFEOffset.h: + * svg/graphics/filters/SVGFESpecularLighting.cpp: + (WebCore::FESpecularLighting::apply): + * svg/graphics/filters/SVGFESpecularLighting.h: + * svg/graphics/filters/SVGFETile.cpp: + (WebCore::FETile::apply): + * svg/graphics/filters/SVGFETile.h: + * svg/graphics/filters/SVGFETurbulence.cpp: + (WebCore::FETurbulence::apply): + * svg/graphics/filters/SVGFETurbulence.h: + +2009-05-22 Dirk Schulze <krit@webkit.org> + + Unreviewed build-fix for gtk. Breakage caused by a wrong call of ImageBuffer. + + * platform/graphics/cairo/ImageCairo.cpp: + (WebCore::Image::drawPattern): + +2009-05-22 Dirk Schulze <vbs85@gmx.de> + + Reviewed by Eric Seidel. + + Added the use of tileRect() for a correct drawing of + border-images. + + Testcases for border-image are in fast/borders like + border-image-01.html and will be activated for cairo, once + gtk supports pixel tests. + + https://bugs.webkit.org/show_bug.cgi?id=19652 + [CAIRO] wrong drawing of border-image + + * platform/graphics/cairo/ImageCairo.cpp: + (WebCore::Image::drawPattern): + +2009-05-22 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=25684 + + Ask the Scrollbar for the orientation. + + Use Scrollbar::orientation to figure out the + direction of scrolling. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::valueChanged): + +2009-05-22 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/6916082> Incorrect handling of % as CSS value. + + Test: fast/css/percent-character-as-value.html + + * css/CSSGrammar.y: Make a stray % character reliably cause + CSS parsing to succeed, but the CSS value to be ignored because + of incorrect type. A type of 0 has this effect. + +2009-05-22 Brent Fulgham <bfulgham@webkit.org> + + Reviewed by Adam Roben. + + https://bugs.webkit.org/show_bug.cgi?id=25971 + Correct a handful of build errors in the Windows Cairo variant + due to missing VIDEO support. + + * WebCore.vcproj/WebCore.vcproj: Exclude RenderMediaControls for + the Cairo-based Windows target. + * rendering/RenderThemeWin.cpp: Avoid #include of RenderMediaControls + for non-VIDEO builds. + +2009-05-22 David Kilzer <ddkilzer@apple.com> + + One <limits> is enough + + * html/HTMLMediaElement.cpp: Removed duplicate #include <limits>. + +2009-05-22 Jon Honeycutt <jhoneycutt@apple.com> + + <rdar://problem/6915957> REGRESSION: Hang when leaving page with VLC + plug-in + + Reviewed by Steve Falkenburg. + + * plugins/win/PluginPackageWin.cpp: + (WebCore::PluginPackage::determineQuirks): + Look for the VLC plug-in's new name. + +2009-05-22 Adam Barth <abarth@webkit.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25966 + + Remove redudant member from Chromium's ResourceRequest. We already + have this data in the cross-platform ResourceRequestBase. Also, rename + ChromiumBridge parameter to be consistant with the new name for this + piece of data. + + * platform/chromium/ChromiumBridge.h: + * platform/network/chromium/ResourceRequest.h: + +2009-05-22 Kevin Watters <kevinwatters@gmail.com> + + Reviewed by Kevin Ollivier. + + Only account for overhang for multi-character strings. + + https://bugs.webkit.org/show_bug.cgi?id=25961 + + * platform/wx/wxcode/win/fontprops.cpp: + (GetTextExtent): + +2009-05-22 Kevin Ollivier <kevino@theolliviers.com> + + wx build fix. Switch to CURL cookies so we can benefit from API updates. + + * platform/wx/TemporaryLinkStubs.cpp: + * webcore-wx.bkl: + +2009-05-22 Peter Kasting <pkasting@google.com> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25709 part one + Indent contents of namespaces in header files, to comply with the + style guide. No functional change. + + * platform/image-decoders/ImageDecoder.h: + (WebCore::RGBA32Buffer::): + (WebCore::RGBA32Buffer::RGBA32Buffer): + (WebCore::RGBA32Buffer::clear): + (WebCore::RGBA32Buffer::bytes): + (WebCore::RGBA32Buffer::rect): + (WebCore::RGBA32Buffer::height): + (WebCore::RGBA32Buffer::status): + (WebCore::RGBA32Buffer::duration): + (WebCore::RGBA32Buffer::disposalMethod): + (WebCore::RGBA32Buffer::hasAlpha): + (WebCore::RGBA32Buffer::setRect): + (WebCore::RGBA32Buffer::ensureHeight): + (WebCore::RGBA32Buffer::setStatus): + (WebCore::RGBA32Buffer::setDuration): + (WebCore::RGBA32Buffer::setDisposalMethod): + (WebCore::RGBA32Buffer::setHasAlpha): + (WebCore::RGBA32Buffer::setRGBA): + (WebCore::ImageDecoder::m_failed): + (WebCore::ImageDecoder::~ImageDecoder): + (WebCore::ImageDecoder::setData): + (WebCore::ImageDecoder::size): + (WebCore::ImageDecoder::frameCount): + (WebCore::ImageDecoder::repetitionCount): + (WebCore::ImageDecoder::supportsAlpha): + (WebCore::ImageDecoder::failed): + (WebCore::ImageDecoder::setFailed): + (WebCore::ImageDecoder::clearFrameBufferCache): + * platform/image-decoders/bmp/BMPImageDecoder.h: + (WebCore::BMPImageDecoder::filenameExtension): + * platform/image-decoders/gif/GIFImageDecoder.h: + (WebCore::GIFImageDecoder::filenameExtension): + (WebCore::GIFImageDecoder::frameDurationAtIndex): + (WebCore::GIFImageDecoder::): + * platform/image-decoders/ico/ICOImageDecoder.h: + (WebCore::ICOImageDecoder::filenameExtension): + * platform/image-decoders/jpeg/JPEGImageDecoder.h: + (WebCore::JPEGImageDecoder::filenameExtension): + (WebCore::JPEGImageDecoder::supportsAlpha): + (WebCore::JPEGImageDecoder::reader): + (WebCore::JPEGImageDecoder::setSize): + * platform/image-decoders/png/PNGImageDecoder.h: + (WebCore::PNGImageDecoder::filenameExtension): + (WebCore::PNGImageDecoder::reader): + (WebCore::PNGImageDecoder::decodingFailed): + * platform/image-decoders/xbm/XBMImageDecoder.h: + (WebCore::XBMImageDecoder::filenameExtension): + +2009-05-22 Dominik Röttsches <dominik.roettsches@access-company.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=15914 + [GTK] Implement Unicode functionality using GLib + + Minor changes that allow building a hybrid version of WebKit + that has WTF Unicode backend based on GLib functions while + text codecs and TextBreakIterator remain based on ICU. + + Fixed some includes that were assuming a WTF ICU backend and + introduced temporary usage of WTF_USE_GLIB_ICU_UNICODE_HYBRID + macro. + + * platform/ThreadGlobalData.cpp: + (WebCore::ThreadGlobalData::ThreadGlobalData): + (WebCore::ThreadGlobalData::~ThreadGlobalData): + * platform/ThreadGlobalData.h: + * platform/text/TextBoundariesICU.cpp: + * platform/text/TextCodecICU.h: + * platform/text/TextEncoding.cpp: + (WebCore::TextEncoding::encode): + * platform/text/TextEncodingRegistry.cpp: + (WebCore::buildBaseTextCodecMaps): + (WebCore::extendTextCodecMaps): + +2009-05-22 Adam Barth <abarth@webkit.org> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=25955 + + Remove the policyBaseURL parameter from setCookie. This parameter is + redundant with the document parameter. + + * WebCore.base.exp: + * WebCore.order: + * dom/Document.cpp: + (WebCore::Document::setCookie): + * platform/CookieJar.h: + * platform/mac/CookieJar.mm: + (WebCore::setCookies): + * platform/network/chromium/CookieJarChromium.cpp: + (WebCore::setCookies): + * platform/network/curl/CookieJarCurl.cpp: + (WebCore::setCookies): + * platform/network/soup/CookieJarSoup.cpp: + (WebCore::setCookies): + * platform/network/win/CookieJarCFNetWin.cpp: + (WebCore::setCookies): + * platform/network/win/CookieJarWin.cpp: + (WebCore::setCookies): + * platform/qt/CookieJarQt.cpp: + (WebCore::setCookies): + +2009-05-22 Adam Barth <abarth@webkit.org> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=25955 + + Rename policyBaseURL and mainDocumentURL to firstPartyForCookies. The + previous names were confusing and inaccurate. + + * WebCore.order: + * dom/Document.cpp: + (WebCore::Document::setCookie): + * dom/Document.h: + (WebCore::Document::firstPartyForCookies): + (WebCore::Document::setFirstPartyForCookies): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::begin): + (WebCore::FrameLoader::updateFirstPartyForCookies): + (WebCore::FrameLoader::setFirstPartyForCookies): + (WebCore::FrameLoader::open): + (WebCore::FrameLoader::addExtraFieldsToRequest): + (WebCore::FrameLoader::loadResourceSynchronously): + * loader/FrameLoader.h: + * loader/MainResourceLoader.cpp: + (WebCore::MainResourceLoader::willSendRequest): + (WebCore::ResourceRequestBase::adopt): + (WebCore::ResourceRequestBase::copyData): + (WebCore::ResourceRequestBase::firstPartyForCookies): + (WebCore::ResourceRequestBase::setFirstPartyForCookies): + (WebCore::equalIgnoringHeaderFields): + * platform/network/ResourceRequestBase.h: + * platform/network/cf/ResourceRequestCFNet.cpp: + (WebCore::ResourceRequest::doUpdatePlatformRequest): + (WebCore::ResourceRequest::doUpdateResourceRequest): + * platform/network/chromium/CookieJarChromium.cpp: + (WebCore::setCookies): + * platform/network/mac/ResourceRequestMac.mm: + (WebCore::ResourceRequest::doUpdateResourceRequest): + (WebCore::ResourceRequest::doUpdatePlatformRequest): + * platform/network/ResourceRequestBase.cpp: + (WebCore::ResourceRequestBase::firstPartyForCookies): + (WebCore::ResourceRequestBase::setFirstPartyForCookies): + * platform/network/chromium/CookieJarChromium.cpp: + (WebCore::setCookies): + * platform/network/curl/CookieJarCurl.cpp: + (WebCore::setCookies): + * platform/network/soup/CookieJarSoup.cpp: + (WebCore::setCookies): + * platform/network/win/CookieJarCFNetWin.cpp: + (WebCore::setCookies): + * platform/network/win/CookieJarWin.cpp: + (WebCore::setCookies): + * platform/qt/CookieJarQt.cpp: + (WebCore::setCookies): + +2009-05-22 Pavel Feldman <pfeldman@chromium.org> + + Fix the call to editingCancelled to be this._editingCancelled, since + editingCancelled doesn't exist and throws an exception. + + <https://bugs.webkit.org/show_bug.cgi?id=24881> + + Reviewed by Timothy Hatcher. + + * inspector/front-end/ElementsTreeOutline.js: + (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted): + +2009-05-22 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25928 + Several errors detected by cppcheck + + Fix all (the only one) problem in cross-platform code found by the tool. Port maintainers + should take a look at other reports. + + * css/CSSParser.cpp: (WebCore::CSSParser::addProperty): Don't leak the property even if there + are billions of those. + +2009-05-22 Shinichiro Hamaji <hamaji@google.com> + + Reviewed by Oliver Hunt. + + Remove optimization path alpha=0 case from GraphicContext(CG|Skia). + This optimization doesn't make sense for some composite mode (e.g., 'copy' operation). + + https://bugs.webkit.org/show_bug.cgi?id=25956 + + * platform/graphics/cg/GraphicsContextCG.cpp: + (WebCore::GraphicsContext::drawRect): + (WebCore::GraphicsContext::drawLine): + (WebCore::GraphicsContext::strokeArc): + (WebCore::GraphicsContext::drawConvexPolygon): + (WebCore::GraphicsContext::fillPath): + (WebCore::GraphicsContext::strokePath): + (WebCore::GraphicsContext::fillRect): + (WebCore::GraphicsContext::fillRoundedRect): + (WebCore::GraphicsContext::strokeRect): + * platform/graphics/skia/GraphicsContextSkia.cpp: + (WebCore::GraphicsContext::drawConvexPolygon): + (WebCore::GraphicsContext::drawEllipse): + (WebCore::GraphicsContext::fillPath): + (WebCore::GraphicsContext::fillRect): + (WebCore::GraphicsContext::strokePath): + (WebCore::GraphicsContext::strokeRect): + +2009-05-22 Xan Lopez <xlopez@igalia.com> + + Unreviewed build fix. + + Revert the whole thing, since we can't figure out a way to make it + work in all platforms. + + * rendering/SVGInlineTextBox.cpp: + (WebCore::pathForDecoration): + * svg/SVGLength.cpp: + (WebCore::SVGLength::PercentageOfViewport): + +2009-05-22 Xan Lopez <xlopez@igalia.com> + + Try to fix Windows build. + + Apparently it can't tell if '1.0f' is float or double, so cast to + float. + + * rendering/SVGInlineTextBox.cpp: + (WebCore::pathForDecoration): + +2009-05-22 Xan Lopez <xlopez@igalia.com> + + Try to fix breakage from the previous patch. + + * rendering/SVGInlineTextBox.cpp: + (WebCore::pathForDecoration): + * svg/SVGLength.cpp: + (WebCore::SVGLength::PercentageOfViewport): + +2009-05-15 Fridrich Strba <fridrich.strba@bluewin.ch> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=25805 + In debug build, mingw win32 build has problems with powf + + Change C-style calls to powf and sqrtf to C++-style calls to + overloaded pow and sqrt. This solves also a problem with mingw + compiler during the debug build. + + * rendering/SVGInlineTextBox.cpp: + (WebCore::pathForDecoration): + * svg/SVGLength.cpp: + (WebCore::SVGLength::PercentageOfViewport): + +2009-05-21 Stephanie Lewis <slewis@apple.com> + + Reviewed by Mark Rowe. + + <rdar://problem/6913680> Update image caching options. + Disable extra ImageIO cache because we already handle caching decoded image data. + + * platform/graphics/cg/ImageSourceCG.cpp: + (WebCore::imageSourceOptions): + +2009-05-21 Albert J. Wong <ajwong@chromium.org> + + Reviewed by Eric Seidel. + + Bug 25903: Create a default UI theme for media controls in Chromium. + https://bugs.webkit.org/show_bug.cgi?id=25903 + + Implement a default UI for chromium. Add a style sheet for Chromium + media controls with good defaults and implemented basic draw functions + for play/pause & mute buttons. + + * css/mediaControlsChromium.css: Added. + * rendering/RenderThemeChromiumLinux.cpp: + (WebCore::RenderThemeChromiumWin::extraMediaControlsStyleSheet): Export + our custom media controls style sheet. + (WebCore::RenderThemeChromiumLinux::paintMediaButtonInternal): Paint + buttons respecting chromium media controls color scheme. + (WebCore::RenderThemeChromiumLinux::paintMediaPlayButton): Paint logic + specific to play/pause button. + (WebCore::RenderThemeChromiumLinux::paintMediaMuteButton): Paint + specific to mute button. + * rendering/RenderThemeChromiumLinux.h: Appropriate header changes. + * rendering/RenderThemeChromiumWin.cpp: + (WebCore::RenderThemeChromiumWin::extraMediaControlsStyleSheet): Export + our custom media controls style sheet. + (WebCore::RenderThemeChromiumWin::paintMediaButtonInternal): Paint + buttons respecting chromium media controls color scheme. + (WebCore::RenderThemeChromiumWin::paintMediaPlayButton): Paint logic + specific to play/pause button. + (WebCore::RenderThemeChromiumWin::paintMediaMuteButton): Paint specific + to mute button. + (WebCore::RenderThemeChromiumWin::setDefaultFontSize): Appropriate + header changes. + * rendering/RenderThemeChromiumWin.h: + +2009-05-21 Kevin Watters <kevinwatters@gmail.com> + + Reviewed by Kevin Ollivier. + + When stripping the query from a file:// URL, do not leave a trailing question mark. + + https://bugs.webkit.org/show_bug.cgi?id=25940 + + * platform/network/curl/ResourceHandleManager.cpp: + (WebCore::ResourceHandleManager::initializeHandle): + +2009-05-21 Kevin Watters <kevinwatters@gmail.com> + + Reviewed by Kevin Ollivier. + + Notify ImageObserver::didDraw to help the cache purge alive resources. + + https://bugs.webkit.org/show_bug.cgi?id=25942 + + * platform/graphics/wx/ImageWx.cpp: + (WebCore::BitmapImage::draw): + (WebCore::BitmapImage::drawPattern): + +2009-05-21 Evan Martin <evan@chromium.org> + + Reviewed by Eric Seidel. + + Flesh out font fallback for Chromium's Skia port. + getLastResortFallbackFont should fall back on well-known fonts. + https://bugs.webkit.org/show_bug.cgi?id=25860 + + * platform/graphics/chromium/FontCacheLinux.cpp: + (WebCore::FontCache::getLastResortFallbackFont): try known font names. + +2009-05-21 Dan Bernstein <mitz@apple.com> + + Reviewed by John Sullivan. + + - speculative fix for <rdar://problem/6890716> crash at + FontCache::purgeInactiveFontData + 199 + + * platform/graphics/FontCache.cpp: + (WebCore::FontCache::purgeInactiveFontData): Deleting a SimpleFontData + can cause releaseFontData() to be called, which modifies + gInactiveFontData. Therefore, avoid deleting SimpleFontData instances + while iterating over gInactiveFontData and delete them afterwards. + +2009-05-21 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Sam Weinig. + + Test for <rdar://problem/6910832> | https://bugs.webkit.org/show_bug.cgi?id=25907 + Incorrect URL returned to the DOM while the user drags a file + + * page/DragController.cpp: + (WebCore::DragController::dragExited): + (WebCore::DragController::tryDHTMLDrag): Don't base our decision on KURL, + since that only looks at the text of the document's URL. Do base our + decision on the securityOrigin(), which knows more about the document's + actual origin. + +2009-05-21 Dan Bernstein <mitz@apple.com> + + Rubber-stamped by Mark Rowe. + + - fix https://bugs.webkit.org/show_bug.cgi?id=25947 + Assertion failure in FrameLoader::transitionToCommitted on launch in + Safari with r43985 + + Rolled out r43979. + + * platform/MIMETypeRegistry.cpp: + (WebCore::initializeSupportedNonImageMimeTypes): + (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType): + +2009-05-21 Sam Weinig <sam@webkit.org> + + Reviewed by Brady Eidson and Mark Rowe. + + Fix for <rdar://problem/6901522> + REGRESSION: Office 2008: Preview with browser is not shown, and Finder window is in the front of Safari + + If the NSURLRequest is annotated with a "ForceHTMLMIMEType" property, force + the MIME type to be text/html. + + * platform/network/mac/ResourceHandleMac.mm: + (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): + +2009-05-21 Kevin Ollivier <kevino@theolliviers.com> + + Blind windows fix after last commit. + + * platform/Logging.cpp: + (WebCore::getChannelFromName): + +2009-05-21 Kevin Watters <kevinwatters@gmail.com> + + Reviewed by Kevin Ollivier. + + Use an environment variable to control which logs are on and off. + Also, make a generic function for translating channel name to its log. + + https://bugs.webkit.org/show_bug.cgi?id=25936 + + * platform/Logging.cpp: + (WebCore::getChannelFromName): + * platform/Logging.h: + * platform/wx/LoggingWx.cpp: + (WebCore::InitializeLoggingChannelsIfNecessary): + +2009-05-21 David Levin <levin@chromium.org> + + Reviewed by Darin Fisher. + + Bug 25946: Chromium needs MIMETypeRegistry::getMediaMIMETypeForExtension implementation. + https://bugs.webkit.org/show_bug.cgi?id=25946 + + A very simple implementation to keep it working. A bug has been filed in the chromium db + (http://code.google.com/p/chromium/issues/detail?id=12441) to investigate doing something more + complete. + + * platform/chromium/MimeTypeRegistryChromium.cpp: + (WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension): + +2009-05-20 Siddhartha Chattopadhyaya <sidchat@google.com> + + Reviewed by Justin Garcia. + + Add automatic spell correction support in WebKit + + https://bugs.webkit.org/show_bug.cgi?id=24953 + + * editing/Editor.cpp: + (WebCore::findFirstMisspellingInRange): + (WebCore::Editor::advanceToNextMisspelling): + (WebCore::Editor::markMisspellingsAfterTypingToPosition): + (WebCore::markAllMisspellingsInRange): + (WebCore::markMisspellingsOrBadGrammar): + (WebCore::Editor::markMisspellings): + (WebCore::Editor::markBadGrammar): + (WebCore::Editor::markMisspellingsAndBadGrammar): + * editing/Editor.h: + * loader/EmptyClients.h: + (WebCore::EmptyEditorClient::getAutoCorrectSuggestionForMisspelledWord): + * page/EditorClient.h: + +2009-05-21 Christian Dywan <christian@twotoasts.de> + + Reviewed by Darin Adler. + + Text files which have sub MIME types are treated as not displayable + http://bugs.webkit.org/show_bug.cgi?id=24903 + + * platform/MIMETypeRegistry.cpp: + (WebCore::initializeSupportedNonImageMimeTypes): + (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType): Regard any + MIME type beginning with "text/" as supported and remove all "text/" + types from the list. + +2009-05-21 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by David Kilzer. + + https://bugs.webkit.org/show_bug.cgi?id=25890 + Implement Network logging channel on Mac + + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::~ResourceHandle): + (WebCore::ResourceHandle::start): + (WebCore::ResourceHandle::cancel): + (WebCore::ResourceHandle::setDefersLoading): + (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): + (-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]): + (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]): + (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]): + (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): + (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]): + (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]): + (-[WebCoreResourceHandleAsDelegate connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:]): + (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]): + (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]): + (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): + Added logging for async requests (as these are most interesting). + +2009-05-21 Eric Carlson <eric.carlson@apple.com> + + Reviewed by David Kilzer. + + <rdar://problem/6902197> WebCore doesn't know about all of the MIME types supported by QTKit + + Add a static table to map from some common file extensions to their MIME types so it + is possible to detect support even when the platform mapping is incomplete. Use the + table to lookup types not found by UTI on the OSX, and when looking for a media engine + with a generic or missing type. + + * platform/MIMETypeRegistry.cpp: + (WebCore::initializeMediaTypeMaps): New, initialize the mediaMIMETypeForExtensionMap. + (WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension): New. Look for the specified + MIME type in the static mapping table if the platform specific getMIMETypeForExtension + doesn't find a match. + * platform/MIMETypeRegistry.h: Declare getMediaMIMETypeForExtension. + + * platform/graphics/MediaPlayer.cpp: + (WebCore::MediaPlayer::load): When the type passed is empty, "application/octet-stream", or + "text/plain", try to look it up based on the file extension with getMediaMIMETypeForExtension. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::addFileTypesToCache): See if getMediaMIMETypeForExtension can map from file extension + to MIME type if UTI fails. + +2009-05-21 Eric Seidel <eric@webkit.org> + + Reviewed by Alexey Proskuryakov. + + Clean up DragController + https://bugs.webkit.org/show_bug.cgi?id=25926 + + I renamed m_document to m_documentUnderMouse to better document what it does + I could call it m_lastDocumentUnderMouse to be most-accurate, but this seemed + long enough. + + I also saw copy/paste code involving clearing the selection when moving out of + one document and into another. I moved that code into a function called + mouseMovedIntoDocument. + + I also got rid of a couple needless null-checks after confirming via source + inspection they were not ever possible. + In Mac WebKit it's not possible to have a Page that doesn't have a mainFrame() + I left an ASSERT(m_page->mainFrame()) in case some other port ever violates this. + It's also not possible to return a document from documentAtPoint that is not + in a frame (as such a document would not be rendered). + + No functional changes, thus no tests. + + * page/DragController.cpp: + (WebCore::DragController::DragController): + (WebCore::DragController::dragIsMove): + (WebCore::DragController::dragExited): + (WebCore::DragController::performDrag): + (WebCore::DragController::mouseMovedIntoDocument): + (WebCore::DragController::dragEnteredOrUpdated): + (WebCore::DragController::tryDocumentDrag): + (WebCore::DragController::operationForLoad): + (WebCore::DragController::concludeEditDrag): + (WebCore::DragController::canProcessDrag): + (WebCore::DragController::tryDHTMLDrag): + (WebCore::DragController::placeDragCaret): + * page/DragController.h: + (WebCore::DragController::documentUnderMouse): + +2009-05-21 Eric Seidel <eric@webkit.org> + + Reviewed by Alexey Proskuryakov. + + Rename DragController::dragOperation() to sourceDragOperation() for clarity + Remove unused setDragOperation() + + There are two times DragOperation is used. The source specifies + what drag operations it supports (in a mask) and the destination + picks a subset of those as DragOperations it supports if a drop were + to occur. I was confused when I first saw this accessor as to which + it meant. It turns out that this is only used when WebKit starts a + drag, and we keep it around so that we can provide this information + to other Mac OS X applications when they ask. I've renamed the method + for clarity so the next person in this code will be less confused. + + No functional changes, thus no tests. + + * page/DragController.h: + (WebCore::DragController::sourceDragOperation): + +2009-05-21 Dan Bernstein <mitz@apple.com> + + Reviewed by Anders Carlsson. + + - WebCore part of <rdar://problem/6901751> REGRESSION (r35515): Tiger + crash painting the selection on registration page of car2go.com + + A bug in old versions of Core Graphics causes memory corruption to occur + when clipping under certain conditions. Make the clipping functions + fail silently under those conditions. + + Test: fast/block/float/selection-gap-clip-out-tiger-crash.html + + * WebCore.Tiger.exp: Added wkCGContextIsSafeToClip + * platform/graphics/cg/GraphicsContextCG.cpp: + (WebCore::safeCGContextClip): Added a wrapper around CGContextClip that, + on Tiger, bails out if wkCGContextIsSafeToClip() returns false. + (WebCore::safeCGContextEOClip): Ditto for CGContextEOClip. + (WebCore::safeCGContextClipToRect): Ditto for CGContextClipToRect. + (WebCore::GraphicsContext::fillPath): Changed to call the safe variants + of CGContextClip, CGContextEOClip and CGContextClipToRect. + (WebCore::GraphicsContext::strokePath): Ditto. + (WebCore::GraphicsContext::fillRect): Ditto. + (WebCore::GraphicsContext::clip): Ditto. + (WebCore::GraphicsContext::clipOut): Ditto. + (WebCore::GraphicsContext::clipOutEllipseInRect): Ditto. + (WebCore::GraphicsContext::clipPath): Ditto. + (WebCore::GraphicsContext::addInnerRoundedRectClip): Ditto. + (WebCore::GraphicsContext::strokeRect): Ditto. + * platform/mac/WebCoreSystemInterface.h: Added wkCGContextIsSafeToClip. + * platform/mac/WebCoreSystemInterface.mm: Added wkCGContextIsSafeToClip. + +2009-05-21 Xan Lopez <xlopez@igalia.com> + + Unreviewed build fix. + + https://bugs.webkit.org/show_bug.cgi?id=25910 + WebkitGTK r43960 cannot compile + + Do not include local copy of guriescape header, which was + removed. We now use the copy in glib. + + * platform/gtk/FileSystemGtk.cpp: + +2009-05-20 Adam Barth <abarth@webkit.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25706 + + It turns out the CurrentContext wasn't currect either because it gave + us the frame for the write() function itself. We actually want the + *calling* context. + + * bindings/v8/custom/V8HTMLDocumentCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + +2009-05-20 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Gustavo Noronha. + + [GTK] Implement Image::loadPlatformResource. + + Install the four resources we are using. For the icons + where an icon name is specified by freedeskop.org try to + map the WebCore name to that name and fallback to the + internal icon. For everything else use the internal icon + name. Remove the temporary link stub as this is not + required any more. + + * GNUmakefile.am: Install the png files, set DATA_DIR again + * Resources/panIcon.png: Copied from WebKit/win/WebKit.vcproj/panIcon.png. + * platform/graphics/gtk/ImageGtk.cpp: + (WTF::GtkIconInfo): Add template specialization for GtkIconInfo + (WebCore::getIconFileNameOrFallback): Use GtkIconTheme to get the icon + (WebCore::loadResourceIntoSharedBuffer): + (WebCore::Image::loadPlatformResource): Implement + * platform/gtk/TemporaryLinkStubs.cpp: Remove link stub + +2009-05-20 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=19357 + + [GTK] The Gtk+ port wants to have a themable + urlIcon too. + + * loader/icon/IconDatabase.cpp: + +2009-05-20 Stephanie Lewis <slewis@apple.com> + + Update the order files. <rdar://problem/6881750> Generate new order files. + + * WebCore.order: + +2009-05-20 Mark Rowe <mrowe@apple.com> + + Reviewed by Gavin Barraclough. + + Fix some assertion failures in plug-in tests on the Windows debug build bot. + + * plugins/PluginStream.cpp: + (WebCore::PluginStream::startStream): Switch to using protocolIsJavaScript. + * plugins/PluginView.cpp: + (WebCore::scriptStringIfJavaScriptURL): Ditto. + +2009-05-20 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler. + + More protocolInHTTPFamily() cleanup. + + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::send): + +2009-05-20 Sam Weinig <sam@webkit.org> + + Reviewed by Oliver Hunt. + + Fix for <rdar://problem/6905475> + Office 2008: Entourage: Crash when you switch to "My Day" view + + The host function callback callObjCFallbackObject was not annotated + with JSC_HOST_CALL which meant that when it was called by the JIT, which + expects the JSC_HOST_CALL calling convention, the arguments are not in the + expected places. + + * bridge/objc/objc_runtime.mm: + (JSC::Bindings::callObjCFallbackObject): Added missing JSC_HOST_CALL + annotation on callObjCFallbackObject. + +2009-05-20 David Levin <levin@chromium.org> + + Not Reviewed, build fix. + + Need to disable this assert while the chormium code is fixed for it. + + * platform/KURLGoogle.cpp: + (WebCore::KURL::protocolIs): + +2009-05-20 David Levin <levin@chromium.org> + + Not Reviewed, build fix. + + Change KURLGoogle.cpp to mirror the KURL.cpp changes done in + http://trac.webkit.org/changeset/43929. Fix assert placement. + + * platform/KURLGoogle.cpp: + (WebCore::KURL::protocolIs): + (WebCore::protocolIs): + +2009-05-20 Nate Chapin <japhet@google.com> + + Reviewed by Dimitri Glazkov. + + Upstream V8 bindings for V8DomWindow. + https://bugs.webkit.org/show_bug.cgi?id=25869 + + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::V8Custom::WindowSetTimeoutImpl): Moved from v8_custom.cpp. + (WebCore::isAscii): Moved from v8_custom.cpp. + (WebCore::convertBase64): Moved from v8_custom.cpp. + (WebCore::CALLBACK_FUNC_DECL): Moved from v8_custom.cpp. + (WebCore::eventNameFromAttributeName): Moved from v8_custom.cpp. + (WebCore::ACCESSOR_SETTER): Moved from v8_custom.cpp. + (WebCore::ACCESSOR_GETTER): Moved from v8_custom.cpp. + (WebCore::NAMED_ACCESS_CHECK): Moved from v8_custom.cpp. + (WebCore::INDEXED_ACCESS_CHECK): Moved from v8_custom.cpp. + +2009-05-21 Christian Dywan <christian@twotoasts.de> + + Reviewed by Jan Alonzo. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::parseDataUrl): Always use Glib Base64 decoding. + +2009-05-21 Christian Dywan <christian@twotoasts.de> + + Rubberstamped by Gustavo Noronha. + + * platform/network/curl/ResourceHandleManager.cpp: + (WebCore::parseDataUrl): Remove Gtk/ Glib Base64 decoding. + +2009-05-20 Christian Dywan <christian@twotoasts.de> + + Reviewed by Gustavo Noronha. + + * GNUmakefile.am: + * platform/gtk/guriescape.c: + * platform/gtk/guriescape.h: Remove copies of g_uri_escape_string and + g_uri_unescape_string now that we require Glib 2.16. + +2009-05-20 David Levin <levin@chromium.org> + + Not Reviewed, build fix. + + Change KURLGoogle.cpp to mirror the KURL.cpp changes done in + http://trac.webkit.org/changeset/43929. + + * platform/KURLGoogle.cpp: + (WebCore::protocolIsJavaScript): + (WebCore::protocolIs): + +2009-05-20 Brady Eidson <beidson@apple.com> + + Rubberstamped by Sam Weinig + + At all call sites that check if a KURL has either the http or https protocol, + use the KURL::protocolInHTTPFamily() accessor, instead. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::iconURL): + (WebCore::FrameLoader::didOpenURL): + (WebCore::FrameLoader::open): + + * loader/appcache/ApplicationCache.cpp: + (WebCore::ApplicationCache::requestIsHTTPOrHTTPSGet): + + * loader/loader.cpp: + (WebCore::Loader::load): + + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::send): + +2009-05-20 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler. + + Fix <rdar://problem/6904941> and https://bugs.webkit.org/show_bug.cgi?id=25300 + + KURL parsing changes back in r30243 and r30815 made javascript urls that use the form + "javascript://" be detected as invalid hierarchical URLs. When a KURL is marked as + invalid, you can no longer ask it a question such as "is your protocol javascript?" + Therefore FrameLoader wouldn't recognize them as javascript URLs and instead try to + navigate to them. + + URL parsing rules aside, such URLs are in use in the wild (Microsoft's Virtual Earth + being a high profile example) and actually represent valid javascript. + + Whenever checking for javascript urls, the new protocolIsJavaScript() should be used + as it functions on a String which doesn't have to pass KURLs parsing rules. + + Test: fast/loader/javascript-url-hierarchical-execution.html + + * bindings/js/JSAttrCustom.cpp: + (WebCore::JSAttr::setValue): Use protocolIsJavaScript(). + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::setLocation): Ditto. + (WebCore::createWindow): Ditto. + (WebCore::JSDOMWindow::open): Ditto. + * bindings/js/JSElementCustom.cpp: + (WebCore::allowSettingSrcToJavascriptURL): Ditto. + * bindings/js/JSHTMLFrameElementCustom.cpp: + (WebCore::allowSettingJavascriptURL): Ditto. + * bindings/js/JSHTMLIFrameElementCustom.cpp: + (WebCore::JSHTMLIFrameElement::setSrc): Ditto. + * bindings/js/JSLocationCustom.cpp: + (WebCore::navigateIfAllowed): Ditto. + (WebCore::JSLocation::reload): Ditto. + * editing/markup.cpp: + (WebCore::appendQuotedURLAttributeValue): Ditto. + * html/HTMLAnchorElement.cpp: + (WebCore::HTMLAnchorElement::parseMappedAttribute): Ditto. + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::requestFrame): Ditto. + (WebCore::FrameLoader::submitForm): Ditto. + (WebCore::FrameLoader::executeIfJavaScriptURL): Ditto. + + * platform/KURL.cpp: + (WebCore::KURL::init): Use protocolIsJavaScript(). + (WebCore::KURL::protocolIs): ASSERT that the protocol being asked about is not javascript. + Such checks should go through protocolIsJavaScript() instead. + (WebCore::encodeRelativeString): Use protocolIsJavaScript(). + (WebCore::protocolIsJavaScript): + * platform/KURL.h: + +2009-05-20 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Anders Carlsson. + + https://bugs.webkit.org/show_bug.cgi?id=24510 + + Fix a bug where the browserfuncs were not properly assigned, + make hasproperty use _NP_HasProperty and hasmethod _NP_HasMethod. + + Test: plugins/netscape-invoke-browserfuncs.html + + * plugins/gtk/PluginPackageGtk.cpp: + (WebCore::PluginPackage::load): Fix assignment + * plugins/qt/PluginPackageQt.cpp: + (WebCore::PluginPackage::load): Fix assignment + +2009-05-20 Sam Weinig <sam@webkit.org> + + Reviewed by Timothy Hatcher. + + Make absoluteRectsForRange and absoluteQuadsForRange non-virtual + and only exist on RenderText. + + * dom/Range.cpp: + (WebCore::Range::textRects): + * inspector/InspectorController.cpp: + (WebCore::InspectorController::drawNodeHighlight): Use absoluteQuads instead + of absoluteQuadsForRange since no range is being specifiec. + * rendering/RenderObject.cpp: + * rendering/RenderObject.h: + * rendering/RenderText.h: + +2009-05-20 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Implement AtkObject::focus-event and + AtkObject::state-changed:focused signal emission. + + Adds a new handleFocusedUIElementChangedWithRenderers, only in the + GTK port, called at the same point than + handleFocusedUIElementChanged but with two parameters, the old and + the newly focused RenderObjects. We need this, since the ATK + signals require us to pass the objects involved in the focus + change as arguments. + + * accessibility/AXObjectCache.h: + * accessibility/gtk/AXObjectCacheAtk.cpp: + (WebCore::AXObjectCache::handleFocusedUIElementChangedWithRenderers): + * dom/Document.cpp: + (WebCore::Document::setFocusedNode): + +2009-05-20 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25834 + + Make ChromeClient a interface again + + With recent additions to ChromeClient.h empty defaults were + added. This is bad for porters as these changes go unnoticed + and at runtime no notImplemented warning is logged and grepping + for notImplemented will not show anything. Change this Client + to be like the other Clients again and always have pure virtuals + (but for stuff inside #ifdef PLATFORM(MAC)). + + Update the various WebKit/* implementations to compile again. + + * loader/EmptyClients.h: Add empty defaults + (WebCore::EmptyChromeClient::setCursor): + (WebCore::EmptyChromeClient::scrollRectIntoView): + (WebCore::EmptyChromeClient::requestGeolocationPermissionForFrame): + * page/ChromeClient.h: Make methods pure virtual + +2009-05-19 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + Reviewed by Simon Hausmann. + + Fix a bug where a non visible plugin would show it self in a + sibling frame. The problem was due to our clipping. In Qt, + if setMask is set with an empty QRegion, no clipping will + be performed, so in that case we hide the PluginContainer + + Added manual test. + + * plugins/qt/PluginContainerQt.cpp: + (PluginContainerQt::adjustGeometry): + * manual-tests/qt/plugin-sibling-frame-include.html + * manual-tests/qt/plugin-sibling-frame.html + +2009-05-19 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + Reviewed by Simon Hausmann. + + Do not call the parent implementation (Widget::) in show() and hide() + of the PluginViewQt, as it always changes the visible state of the + platformWidget (equal to the platformPluginWidget in the Qt port), + thus ignoring the isParentVisible() test. + + * plugins/qt/PluginViewQt.cpp: + (WebCore::PluginView::show): + (WebCore::PluginView::hide): + +2009-05-20 Yichao Yin <yichao.yin@torchmobile.com.cn> + + Reviewed by George Staikos. + + https://bugs.webkit.org/show_bug.cgi?id=23452 + Change the implementation of HTMLNoScriptElement to avoid the pain of + adding virtual function for XHTMLMP support + + Includes changes suggested by Simon Fraser. + + * dom/Node.cpp: + (WebCore::Node::styleForRenderer): + * dom/Node.h: + * html/HTMLNoScriptElement.cpp: + * html/HTMLNoScriptElement.h: + +2009-05-20 Kevin Ollivier <kevino@theolliviers.com> + + CURL backend build fix. Make sure URL is always set. + + * platform/network/curl/ResourceHandleManager.cpp: + (WebCore::ResourceHandleManager::downloadTimerCallback): + +2009-05-20 Yongjun Zhang <yongjun.zhang@nokia.com> + + Reviewed by George Staikos. + + Fix Qt WebKit build break in Mac OS. + + * platform/FileSystem.h: + +2009-05-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Eric Seidel. + + Enable code that was commented out waiting for a way to get a + GdkPixbuf from an image, effectively enabling copying images to + the clipboard. + + * platform/gtk/PasteboardGtk.cpp: + (WebCore::Pasteboard::writeImage): + +2009-05-20 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + https://bugs.webkit.org/show_bug.cgi?id=25414 + [GTK] ROLE_PANEL should not be used for paragraphs and list items. + + Implement Atk list item role for list items. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (webkit_accessible_get_role): + +2009-05-20 Xan Lopez <xlopez@igalia.com> + + Reviewed by Jan Alonzo. + + https://bugs.webkit.org/show_bug.cgi?id=25414 + [GTK] ROLE_PANEL should not be used for paragraphs and list items. + + Implement Atk paragraph role for paragraph elements. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (webkit_accessible_get_role): + +2009-05-20 Eric Seidel <eric@webkit.org> + + Fix bug URL in ChangeLogs in r43903. + https://bugs.webkit.org/show_bug.cgi?id=25742 + +2009-05-20 Takeshi Yoshino <tyoshino@google.com> + + Reviewed by Eric Seidel. + + Bug 24539: Fix RenderThemeChromiumWin::paintTextFieldInternal() not to hide background image. + https://bugs.webkit.org/show_bug.cgi?id=25742 + + Fix RenderThemeChromiumWin::paintTextFieldInternal(). + + We shouldn't paint the content area of text fields when o->style() has + background image or transparent background color. paintTextFieldInternal() is + used for painting inner area of HTML option elements by Chromium. + + When we pass fillContentArea = true to ChromiumBridge::paintTextField, it hides + the background image rendered by RenderBoxModelObject. So, we should set + fillContentArea = false in such case. + + Besides, when background-color:transparent is specified for CSS property, + o->style().backgroundColor returns black color with alpha channel == 0. But + since ThemeEngine for Windows behind ChromiumBridge::paintTextField cannot + recognize alpha channel, it fills the rect with black. I made workaround to set + fillContentArea = false when alpha channel == 0 to avoid this. + + And more, I'd like to fallback the color passed to ChromiumBridge to white when + o->style()->backgroundColor() is invalid. + + * rendering/RenderThemeChromiumWin.cpp: + (WebCore::RenderThemeChromiumWin::paintTextFieldInternal): + +2009-05-20 Shinichiro Hamaji <hamaji@google.com> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25417 + Map CompositeCopy to Skia's kSrc_Mode composite operation. + + Test: fast/canvas/canvas-composite-alpha.html + + * platform/graphics/skia/SkiaUtils.cpp: + (WebCore::): + +2009-05-20 Jan Michael Alonzo <jmalonzo@webkit.org> + + Rubber-stamped by Xan Lopez. + + Remove misplaced extern "C" + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-05-20 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + [GTK] Expose password field with role of PASSWORD_TEXT + https://bugs.webkit.org/show_bug.cgi?id=25682 + + Check if input type is a password field and return + ATK_ROLE_PASSWORD_TEXT if it is. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-05-20 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by George Staikos. + + BUG 25845: [Qt] Fix QtWebKit pkgconfig dependencies + <https://bugs.webkit.org/show_bug.cgi?id=25845> + + * WebCore.pro: Remove QtDBus; remove QtXml if Qt >= 4.4 + +2009-05-20 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by George Staikos. + + BUG 25843: [Qt] Remove qt-port build flag + <https://bugs.webkit.org/show_bug.cgi?id=25843> + + * bridge/testbindings.pro: + +2009-05-20 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by George Staikos. + + https://bugs.webkit.org/show_bug.cgi?id=25824 + + [Qt] Cleanup - move files exclusive to JAVASCRIPT_DEBUGGER + and WORKERS under the appropriate build section + + * WebCore.pro: + +2009-05-20 Ariya Hidayat <ariya.hidayat@nokia.com> + + Unreviewed Qt build fix, after r43892. + + * platform/graphics/qt/ImageQt.cpp: included ImageObservser.h + +2009-05-20 Yongjun Zhang <yongjun.zhang@nokia.com> + + Reviewed by Simon Hausmann. + + https://bugs.webkit.org/show_bug.cgi?id=25856 + [Qt] notify an image has been drawn, to help Cache purge alive decoded data. + + * platform/graphics/qt/ImageQt.cpp: + (WebCore::Image::drawPattern): + (WebCore::BitmapImage::draw): + +2009-05-20 David Levin <levin@chromium.org> + + Reviewed by NOBODY, layout tests fix. + + https://bugs.webkit.org/show_bug.cgi?id=23727 + This reverts commit r43888. + + Once that change was checked in many of the fast/flexbox0*.html + tests (and others) started failing. + + * WebCore.pro: + * css/CSSParser.cpp: + (WebCore::CSSParser::parseValue): + * css/CSSPropertyNames.in: + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::applyProperty): + * css/CSSValueKeywords.in: + * rendering/RenderMarquee.cpp: + (WebCore::RenderMarquee::updateMarqueePosition): + (WebCore::RenderMarquee::timerFired): + +2009-05-19 Yichao Yin <yichao.yin@torchmobile.com.cn> + + Reviewed by George Staikos. + + Add XHTMLMP support to Webkit + Update the configure files for building XHTMLMP-enabled WebKit on different platform + https://bugs.webkit.org/show_bug.cgi?id=23452 + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCoreSources.bkl: + +2009-05-19 Antti Koivisto <antti@apple.com> + + I can't figure out how to make this not timing dependent, making it manual test instead. + + * manual-tests/preload-scanner-entities.html: Added. + +2009-05-19 Brady Eidson <beidson@apple.com> + + Reviewed by Antti Koivisto. + + <rdar://problem/6886382> REGRESSION (Safari 4PB -> ToT): HTTP cache revalidation broken. + + This was caused in http://trac.webkit.org/changeset/41425, which fixed an image caching bug + in QuickLooks (rdar://problem/6619630). + + We need to respect the DocumentLoader's request cache policy when deciding the cache policy + for subresources, but the check (originally removed in r39304 and added back in in the same + place in r41424) needs to be tweaked and relocated a bit. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::subresourceCachePolicy): Renamed from cachePolicy(). Move checking + the DocumentLoader's request to a more appropriate place. Add code to handle the recently + added FIXME regarding POSTs. Add a new FIXME describing a great way to make this code + cleaner in the future. + * loader/FrameLoader.h: + + * loader/DocLoader.cpp: + (WebCore::DocLoader::cachePolicy): Calls the newly renamed subresourceCachePolicy(). + +2009-05-19 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Beth Dakin. + + Bug 25872: aria-labeledby appends all siblings instead of all children to aria name + https://bugs.webkit.org/show_bug.cgi?id=25872 + + When setting the aria-labeledby text it should stay within the element identified by the id + when searching through the sibling list. + + This also removes an outdated assert in getDocumentLinks. Its possible for the document to + think an element is a link, but accessibility can treat it differently (eg. its ARIA role is different). + + Test: accessibility/aria-labelledby-stay-within.html + + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::ariaAccessiblityName): + (WebCore::AccessibilityRenderObject::getDocumentLinks): + +2009-05-19 Antti Koivisto <antti@apple.com> + + Reviewed by Darin Adler). + + <rdar://problem/6902674> REGRESSION: Query parameters are sometimes incorrect in URL (23135) + + Push characters back in correct order when entity parsing fails after 3 characters. + + Test: fast/tokenizer/preload-scanner-entities.html + + * html/PreloadScanner.cpp: + (WebCore::PreloadScanner::consumeEntity): + +2009-05-19 Paul Godavari <paul@chromium.org> + + Reviewed by Dimitri Glazkov. + + Fix a crash in Mac Chromium when displaying an HTML select element + with no items. + https://bugs.webkit.org/show_bug.cgi?id=25874 + + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupContainer::showExternal): + +2009-05-19 Nate Chapin <japhet@google.com> + + Reviewed by Darin Fisher. + + Upstream V8 bindings for CanvasRenderingContext2D. + https://bugs.webkit.org/show_bug.cgi?id=25858 + + * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: Moved bindings from v8_custom.cpp. + +2009-05-19 Jessie Berlin <jberlin@apple.com> + + Reviewed by Mark Rowe. + + Windows Build Fix. + + * WebCore.vcproj/WebCore.vcproj: Copy accessibility headers from WebCore. + +2009-05-19 Timothy Hatcher <timothy@apple.com> + + <rdar://problem/6889218> REGRESSION: Some iChat transcript resources are not + loaded because willSendRequest doesn't happen immediately + + Reviewed by Antti Koivisto. + + * WebCore.base.exp: Export Loader::servePendingRequests(). + +2009-05-19 David Levin <levin@chromium.org> + + Reviewed by Dimitri Glazkov. + + Bug 25859: Need to upstream ScriptController.* for v8. + https://bugs.webkit.org/show_bug.cgi?id=25859 + + Fixing the header file (which I accidentally made identical to the cpp file). + + * bindings/v8/ScriptController.h: + +2009-05-19 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler and Brady Eidson. + + <rdar://problem/6900582> REGRESSION (r42446?): UA Profiler in http://stevesouders.com/ua/ stalls + + The problem was that Document::removeAllEventListeners() was called for a wrong document + when a CachedFrame was destroyed. + + Cannot be tested automatically, because DRT doesn't have a b/f cache. + + * dom/Document.cpp: (WebCore::Document::domWindow): Make sure that this doesn't return an + unrelated window even if document's m_frame pointer is stale. + + * history/CachedFrame.cpp: (WebCore::CachedFrame::clear): Added a FIXME about strange behavior. + +2009-05-19 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Split InspectorController into InspectorController and InspectorFrontend. Latter encapsulates all frontend interaction and is the only entity allowed to make ScriptFunctionCalls. The further plan is to serialize these script function calls. + + https://bugs.webkit.org/show_bug.cgi?id=25419 + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * WebCoreSources.bkl: + * inspector/ConsoleMessage.cpp: + (WebCore::ConsoleMessage::addToConsole): + * inspector/ConsoleMessage.h: + * inspector/InspectorController.cpp: + (WebCore::InspectorController::~InspectorController): + (WebCore::InspectorController::inspect): + (WebCore::InspectorController::focusNode): + (WebCore::InspectorController::setWindowVisible): + (WebCore::InspectorController::addConsoleMessage): + (WebCore::InspectorController::setAttachedWindow): + (WebCore::InspectorController::inspectedWindowScriptObjectCleared): + (WebCore::InspectorController::scriptObjectReady): + (WebCore::InspectorController::showPanel): + (WebCore::InspectorController::close): + (WebCore::InspectorController::populateScriptObjects): + (WebCore::InspectorController::resetScriptObjects): + (WebCore::InspectorController::pruneResources): + (WebCore::InspectorController::didCommitLoad): + (WebCore::InspectorController::didLoadResourceFromMemoryCache): + (WebCore::InspectorController::identifierForInitialRequest): + (WebCore::InspectorController::willSendRequest): + (WebCore::InspectorController::didReceiveResponse): + (WebCore::InspectorController::didReceiveContentLength): + (WebCore::InspectorController::didFinishLoading): + (WebCore::InspectorController::didFailLoading): + (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest): + (WebCore::InspectorController::scriptImported): + (WebCore::InspectorController::didOpenDatabase): + (WebCore::InspectorController::didUseDOMStorage): + (WebCore::InspectorController::addScriptProfile): + (WebCore::InspectorController::toggleRecordButton): + (WebCore::InspectorController::enableProfiler): + (WebCore::InspectorController::disableProfiler): + (WebCore::InspectorController::enableDebugger): + (WebCore::InspectorController::disableDebugger): + (WebCore::InspectorController::didParseSource): + (WebCore::InspectorController::failedToParseSource): + (WebCore::InspectorController::didPause): + (WebCore::InspectorController::didContinue): + * inspector/InspectorController.h: + * inspector/InspectorDOMStorageResource.cpp: + (WebCore::InspectorDOMStorageResource::bind): + * inspector/InspectorDOMStorageResource.h: + * inspector/InspectorDatabaseResource.cpp: + (WebCore::InspectorDatabaseResource::bind): + * inspector/InspectorDatabaseResource.h: + * inspector/InspectorFrontend.cpp: Added. + (WebCore::callSimpleFunction): + (WebCore::InspectorFrontend::InspectorFrontend): + (WebCore::InspectorFrontend::~InspectorFrontend): + (WebCore::InspectorFrontend::newJSONObject): + (WebCore::InspectorFrontend::addMessageToConsole): + (WebCore::InspectorFrontend::addResource): + (WebCore::InspectorFrontend::updateResource): + (WebCore::InspectorFrontend::removeResource): + (WebCore::InspectorFrontend::updateFocusedNode): + (WebCore::InspectorFrontend::setAttachedWindow): + (WebCore::InspectorFrontend::inspectedWindowScriptObjectCleared): + (WebCore::InspectorFrontend::showPanel): + (WebCore::InspectorFrontend::populateInterface): + (WebCore::InspectorFrontend::reset): + (WebCore::InspectorFrontend::debuggerWasEnabled): + (WebCore::InspectorFrontend::debuggerWasDisabled): + (WebCore::InspectorFrontend::profilerWasEnabled): + (WebCore::InspectorFrontend::profilerWasDisabled): + (WebCore::InspectorFrontend::parsedScriptSource): + (WebCore::InspectorFrontend::failedToParseScriptSource): + (WebCore::InspectorFrontend::addProfile): + (WebCore::InspectorFrontend::setRecordingProfile): + (WebCore::InspectorFrontend::pausedScript): + (WebCore::InspectorFrontend::resumedScript): + (WebCore::InspectorFrontend::addDatabase): + (WebCore::InspectorFrontend::addDOMStorage): + * inspector/InspectorFrontend.h: Added. + * inspector/InspectorResource.cpp: + (WebCore::InspectorResource::createScriptObject): + (WebCore::InspectorResource::updateScriptObject): + (WebCore::InspectorResource::releaseScriptObject): + * inspector/InspectorResource.h: + +2009-05-19 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Introduce JSONObject that wraps ScriptObject and ScriptState* for further serialization + + https://bugs.webkit.org/show_bug.cgi?id=25419 + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * WebCoreSources.bkl: + * inspector/ConsoleMessage.cpp: + (WebCore::ConsoleMessage::addToConsole): + * inspector/InspectorDOMStorageResource.cpp: + (WebCore::InspectorDOMStorageResource::bind): + * inspector/InspectorDatabaseResource.cpp: + (WebCore::InspectorDatabaseResource::bind): + * inspector/InspectorResource.cpp: + (WebCore::populateHeadersObject): + (WebCore::InspectorResource::createScriptObject): + (WebCore::InspectorResource::updateScriptObject): + * inspector/JSONObject.cpp: Added. + (WebCore::JSONObject::JSONObject): + (WebCore::JSONObject::set): + (WebCore::JSONObject::scriptObject): + (WebCore::JSONObject::createNew): + * inspector/JSONObject.h: Added. + +2009-05-19 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Refactor InpectorController so that it does not instantiate resource/console/database/domresource javascript objects. Move instantiation into the javascript. + + https://bugs.webkit.org/show_bug.cgi?id=25419 + + * inspector/ConsoleMessage.cpp: + (WebCore::ConsoleMessage::addToConsole): + * inspector/InspectorController.cpp: + (WebCore::InspectorController::didReceiveResponse): + (WebCore::InspectorController::didReceiveContentLength): + (WebCore::InspectorController::didFinishLoading): + (WebCore::InspectorController::didFailLoading): + (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest): + (WebCore::InspectorController::scriptImported): + * inspector/InspectorDOMStorageResource.cpp: + (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource): + (WebCore::InspectorDOMStorageResource::bind): + (WebCore::InspectorDOMStorageResource::unbind): + * inspector/InspectorDOMStorageResource.h: + * inspector/InspectorDatabaseResource.cpp: + (WebCore::InspectorDatabaseResource::InspectorDatabaseResource): + (WebCore::InspectorDatabaseResource::bind): + (WebCore::InspectorDatabaseResource::unbind): + * inspector/InspectorDatabaseResource.h: + * inspector/InspectorResource.cpp: + (WebCore::InspectorResource::InspectorResource): + (WebCore::populateHeadersObject): + (WebCore::InspectorResource::createScriptObject): + (WebCore::InspectorResource::updateScriptObject): + (WebCore::InspectorResource::releaseScriptObject): + * inspector/InspectorResource.h: + * inspector/front-end/Console.js: + (WebInspector.ConsoleMessage): + * inspector/front-end/inspector.js: + (WebInspector.addResource): + (WebInspector.updateResource): + (WebInspector.removeResource): + (WebInspector.addDatabase): + (WebInspector.addDOMStorage): + (WebInspector.reset): + (WebInspector.addMessageToConsole): + +2009-05-19 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + Reviewed by Ariya Hidayat. + + The Qt port has code that disables scrolling optimizations + when the root contains native windows, such as windowed plugins. + + This code broke when detaching iframes containing windowed + plugins. + + Each ScrollView now knows how many native windows it and its + children contain, and when it is detached, that number is + substracted from its old parents. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::scrollContents): + (WebCore::ScrollView::setParent): + * platform/ScrollView.h: + * platform/qt/ScrollViewQt.cpp: + (WebCore::ScrollView::adjustWidgetsPreventingBlittingCount): + (WebCore::ScrollView::platformAddChild): + (WebCore::ScrollView::platformRemoveChild): + +2009-05-18 David Kilzer <ddkilzer@apple.com> + + Tiger build fix for r43850 + + * platform/mac/ClipboardMac.mm: Added typedef for NSUinteger + when building on Tiger. + +2009-05-18 Eric Seidel <eric@webkit.org> + + Reviewed by Darin Adler. + + ClipboardMac cleanup + https://bugs.webkit.org/show_bug.cgi?id=25847 + + I'm mostly just moving code, however there are 3 changes I made while moving, detailed below. + + No functional changes, so no tests. + + * platform/mac/ClipboardMac.mm: + (WebCore::ClipboardMac::clearData): + (WebCore::absoluteURLsFromPasteboardFilenames): + Broke out logic for filenames into its own function to make the caller more readable. + (WebCore::absoluteURLsFromPasteboard): + Broke out logic from getData into absoluteURLsFromPasteboard. This returns an NSArray + so that we can use -[NSArray componentsJoinedByString] in the caller (which is + cleaner than the manual "\n" addition before). + This also access to the full list of file urls for future callers. + (WebCore::ClipboardMac::getData): + unsigned count = (type == "URL") ? 1 : [fileList count]; is now an + explicit check for "URL", before it was a check for != "text/uri-list" which + was much more confusing in my opinion. text/uri-list and URL are the only + two types which map to NSURLPboardType in cocoaTypeFromMIMEType(). + (WebCore::ClipboardMac::types): + I removed an extra if (!types) check, right before [types count]. In Obj-C + messaging nil will return 0 (size of a pointer), so it's safe to message nil + here and expect it to return 0. + +2009-05-18 David Levin <levin@chromium.org> + + Reviewed by Darin Fisher. + + Bug 25859: Need to upstream ScriptController.* for v8. + https://bugs.webkit.org/show_bug.cgi?id=25859 + + * bindings/v8/ScriptController.cpp: Added. + * bindings/v8/ScriptController.h: Added. + +2009-05-18 Yichao Yin <yichao.yin@torchmobile.com.cn> + + Reviewed by George Staikos. + + Change ScriptElement to support XHTMLMP in a better way + https://bugs.webkit.org/show_bug.cgi?id=23452 + + * dom/ScriptElement.h: + * html/HTMLScriptElement.h: + * svg/SVGScriptElement.h: + (WebCore::SVGScriptElement::shouldExecuteAsJavaScript): + +2009-05-18 Kevin Ollivier <kevino@theolliviers.com> + + wx build fix, finish up changes after the accessibility dir split. + + * webcore-base.bkl: + +2009-05-18 Yichao Yin <yichao.yin@torchmobile.com.cn> + + Reviewed by George Staikos (and others). + + Add XHTMLMP support to Webkit + https://bugs.webkit.org/show_bug.cgi?id=23452 + XHTMLMP is a strict subset of XHTML 1.1. It extends XHTML Basic and add enhanced + functionality. Most of the functionalities have already been implemented by Webkit. + + The changes include: + 1) Adding <noscript> support + 2) Document conformance validation + 3) User Agent conformance validation + + refer to the specification: OMA-WAP-XHTMLMP-V1_1-20061020-A.pdf + + Tests: fast/xhtmlmp/check-doctype-declaration.xhtml + fast/xhtmlmp/check-rootelement.xhtml + fast/xhtmlmp/noscript-in-multiscripts.xhtml + fast/xhtmlmp/noscript-nested.xhtml + fast/xhtmlmp/noscript.xhtml + + * dom/DOMImplementation.cpp: + (WebCore::DOMImplementation::createDocument): + * dom/Document.cpp: + (WebCore::Document::Document): + (WebCore::Document::isXHTMLMPDocument): + * dom/Document.h: + (WebCore::Document::shouldProcessNoscriptElement): + (WebCore::Document::setShouldProcessNoscriptElement): + * dom/Node.cpp: + (WebCore::Node::createRendererIfNeeded): + * dom/Node.h: + * dom/XMLTokenizer.h: + (WebCore::XMLTokenizer::setIsXHTMLMPDocument): + (WebCore::XMLTokenizer::isXHTMLMPDocument): + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::XMLTokenizer::XMLTokenizer): + (WebCore::XMLTokenizer::startElementNs): + (WebCore::XMLTokenizer::endElementNs): + (WebCore::XMLTokenizer::endDocument): + (WebCore::XMLTokenizer::internalSubset): + (WebCore::getEntityHandler): + (WebCore::externalSubsetHandler): + * dom/XMLTokenizerQt.cpp: + (WebCore::XMLTokenizer::XMLTokenizer): + (WebCore::XMLTokenizer::parse): + (WebCore::XMLTokenizer::parseStartElement): + (WebCore::XMLTokenizer::parseEndElement): + (WebCore::): + * dom/make_names.pl: + * html/HTMLElement.cpp: + (WebCore::HTMLElement::rendererIsNeeded): + * html/HTMLNoScriptElement.cpp: Added. + (WebCore::HTMLNoScriptElement::HTMLNoScriptElement): + (WebCore::HTMLNoScriptElement::~HTMLNoScriptElement): + (WebCore::HTMLNoScriptElement::checkDTD): + (WebCore::HTMLNoScriptElement::attach): + (WebCore::HTMLNoScriptElement::recalcStyle): + (WebCore::HTMLNoScriptElement::childShouldCreateRenderer): + (WebCore::HTMLNoScriptElement::styleForRenderer): + * html/HTMLNoScriptElement.h: Added. + (WebCore::HTMLNoScriptElement::rendererIsNeeded): + * html/HTMLParser.cpp: + (WebCore::HTMLParser::getNode): + (WebCore::HTMLParser::isInline): + * html/HTMLTagNames.in: + * html/HTMLTokenizer.cpp: + (WebCore::HTMLTokenizer::scriptHandler): + (WebCore::HTMLTokenizer::notifyFinished): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::addExtraFieldsToRequest): + * platform/MIMETypeRegistry.cpp: + (WebCore::initializeSupportedNonImageMimeTypes): + +2009-05-18 Mark Rowe <mrowe@apple.com> + + Fix the build. + + * WebCore.xcodeproj/project.pbxproj: + +2009-05-18 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + Rubber-stamped by Gustavo Noronha. + + Fixed build for the Qt port by adding the WebCore/accessibility + directory to the includepath. + + * WebCore.pro: + +2009-05-18 Chris Fleizach <cfleizach@apple.com> + + Bug 25776: accessibility should have its own folder in WebCore project + https://bugs.webkit.org/show_bug.cgi?id=25776 + + Speculative fix for windows build failure. + + * WebCore.vcproj/WebCoreCommon.vsprops: + +2009-05-18 David Kilzer <ddkilzer@apple.com> + + Bug 20652: WebKit doesn't display favicons with MIME type image/vnd.microsoft.icon + + <https://bugs.webkit.org/show_bug.cgi?id=20652> + + Reviewed by Darin Adler. + + Test: http/tests/misc/favicon-as-image.html + + * inspector/front-end/inspector.js: Added + image/vnd.microsoft.icon to WebInspector.MIMETypes. + * platform/MIMETypeRegistry.cpp: + (WebCore::initializeSupportedImageMIMETypes): Added + image/vnd.microsoft.icon to list of supported image and image + resource MIME types. + +2009-05-18 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Sam Weinig. + + Bug 25776: accessibility should have its own folder in WebCore project + https://bugs.webkit.org/show_bug.cgi?id=25776 + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * WebCoreSources.bkl: + * accessibility: Added. + * accessibility/AXObjectCache.cpp: Copied from WebCore/page/AXObjectCache.cpp. + * accessibility/AXObjectCache.h: Copied from WebCore/page/AXObjectCache.h. + * accessibility/AccessibilityAriaGrid.cpp: Copied from WebCore/page/AccessibilityAriaGrid.cpp. + * accessibility/AccessibilityAriaGrid.h: Copied from WebCore/page/AccessibilityAriaGrid.h. + * accessibility/AccessibilityAriaGridCell.cpp: Copied from WebCore/page/AccessibilityAriaGridCell.cpp. + * accessibility/AccessibilityAriaGridCell.h: Copied from WebCore/page/AccessibilityAriaGridCell.h. + * accessibility/AccessibilityAriaGridRow.cpp: Copied from WebCore/page/AccessibilityAriaGridRow.cpp. + * accessibility/AccessibilityAriaGridRow.h: Copied from WebCore/page/AccessibilityAriaGridRow.h. + * accessibility/AccessibilityImageMapLink.cpp: Copied from WebCore/page/AccessibilityImageMapLink.cpp. + * accessibility/AccessibilityImageMapLink.h: Copied from WebCore/page/AccessibilityImageMapLink.h. + * accessibility/AccessibilityList.cpp: Copied from WebCore/page/AccessibilityList.cpp. + * accessibility/AccessibilityList.h: Copied from WebCore/page/AccessibilityList.h. + * accessibility/AccessibilityListBox.cpp: Copied from WebCore/page/AccessibilityListBox.cpp. + * accessibility/AccessibilityListBox.h: Copied from WebCore/page/AccessibilityListBox.h. + * accessibility/AccessibilityListBoxOption.cpp: Copied from WebCore/page/AccessibilityListBoxOption.cpp. + * accessibility/AccessibilityListBoxOption.h: Copied from WebCore/page/AccessibilityListBoxOption.h. + * accessibility/AccessibilityObject.cpp: Copied from WebCore/page/AccessibilityObject.cpp. + * accessibility/AccessibilityObject.h: Copied from WebCore/page/AccessibilityObject.h. + * accessibility/AccessibilityRenderObject.cpp: Copied from WebCore/page/AccessibilityRenderObject.cpp. + * accessibility/AccessibilityRenderObject.h: Copied from WebCore/page/AccessibilityRenderObject.h. + * accessibility/AccessibilityTable.cpp: Copied from WebCore/page/AccessibilityTable.cpp. + * accessibility/AccessibilityTable.h: Copied from WebCore/page/AccessibilityTable.h. + * accessibility/AccessibilityTableCell.cpp: Copied from WebCore/page/AccessibilityTableCell.cpp. + * accessibility/AccessibilityTableCell.h: Copied from WebCore/page/AccessibilityTableCell.h. + * accessibility/AccessibilityTableColumn.cpp: Copied from WebCore/page/AccessibilityTableColumn.cpp. + * accessibility/AccessibilityTableColumn.h: Copied from WebCore/page/AccessibilityTableColumn.h. + * accessibility/AccessibilityTableHeaderContainer.cpp: Copied from WebCore/page/AccessibilityTableHeaderContainer.cpp. + * accessibility/AccessibilityTableHeaderContainer.h: Copied from WebCore/page/AccessibilityTableHeaderContainer.h. + * accessibility/AccessibilityTableRow.cpp: Copied from WebCore/page/AccessibilityTableRow.cpp. + * accessibility/AccessibilityTableRow.h: Copied from WebCore/page/AccessibilityTableRow.h. + * accessibility/chromium: Added. + * accessibility/chromium/AXObjectCacheChromium.cpp: Copied from WebCore/page/chromium/AXObjectCacheChromium.cpp. + * accessibility/chromium/AccessibilityObjectChromium.cpp: Copied from WebCore/page/chromium/AccessibilityObjectChromium.cpp. + * accessibility/chromium/AccessibilityObjectWrapper.h: Copied from WebCore/page/chromium/AccessibilityObjectWrapper.h. + * accessibility/gtk: Added. + * accessibility/gtk/AXObjectCacheAtk.cpp: Copied from WebCore/page/gtk/AXObjectCacheAtk.cpp. + * accessibility/gtk/AccessibilityObjectAtk.cpp: Copied from WebCore/page/gtk/AccessibilityObjectAtk.cpp. + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: Copied from WebCore/page/gtk/AccessibilityObjectWrapperAtk.cpp. + * accessibility/gtk/AccessibilityObjectWrapperAtk.h: Copied from WebCore/page/gtk/AccessibilityObjectWrapperAtk.h. + * accessibility/mac: Added. + * accessibility/mac/AXObjectCacheMac.mm: Copied from WebCore/page/mac/AXObjectCacheMac.mm. + * accessibility/mac/AccessibilityObjectMac.mm: Copied from WebCore/page/mac/AccessibilityObjectMac.mm. + * accessibility/mac/AccessibilityObjectWrapper.h: Copied from WebCore/page/mac/AccessibilityObjectWrapper.h. + * accessibility/mac/AccessibilityObjectWrapper.mm: Copied from WebCore/page/mac/AccessibilityObjectWrapper.mm. + * accessibility/qt: Added. + * accessibility/qt/AccessibilityObjectQt.cpp: Copied from WebCore/page/qt/AccessibilityObjectQt.cpp. + * accessibility/win: Added. + * accessibility/win/AXObjectCacheWin.cpp: Copied from WebCore/page/win/AXObjectCacheWin.cpp. + * accessibility/win/AccessibilityObjectWin.cpp: Copied from WebCore/page/win/AccessibilityObjectWin.cpp. + * accessibility/win/AccessibilityObjectWrapperWin.h: Copied from WebCore/page/win/AccessibilityObjectWrapperWin.h. + * accessibility/wx: Added. + * accessibility/wx/AccessibilityObjectWx.cpp: Copied from WebCore/page/wx/AccessibilityObjectWx.cpp. + * page/AXObjectCache.cpp: Removed. + * page/AXObjectCache.h: Removed. + * page/AccessibilityAriaGrid.cpp: Removed. + * page/AccessibilityAriaGrid.h: Removed. + * page/AccessibilityAriaGridCell.cpp: Removed. + * page/AccessibilityAriaGridCell.h: Removed. + * page/AccessibilityAriaGridRow.cpp: Removed. + * page/AccessibilityAriaGridRow.h: Removed. + * page/AccessibilityImageMapLink.cpp: Removed. + * page/AccessibilityImageMapLink.h: Removed. + * page/AccessibilityList.cpp: Removed. + * page/AccessibilityList.h: Removed. + * page/AccessibilityListBox.cpp: Removed. + * page/AccessibilityListBox.h: Removed. + * page/AccessibilityListBoxOption.cpp: Removed. + * page/AccessibilityListBoxOption.h: Removed. + * page/AccessibilityObject.cpp: Removed. + * page/AccessibilityObject.h: Removed. + * page/AccessibilityRenderObject.cpp: Removed. + * page/AccessibilityRenderObject.h: Removed. + * page/AccessibilityTable.cpp: Removed. + * page/AccessibilityTable.h: Removed. + * page/AccessibilityTableCell.cpp: Removed. + * page/AccessibilityTableCell.h: Removed. + * page/AccessibilityTableColumn.cpp: Removed. + * page/AccessibilityTableColumn.h: Removed. + * page/AccessibilityTableHeaderContainer.cpp: Removed. + * page/AccessibilityTableHeaderContainer.h: Removed. + * page/AccessibilityTableRow.cpp: Removed. + * page/AccessibilityTableRow.h: Removed. + * page/chromium/AXObjectCacheChromium.cpp: Removed. + * page/chromium/AccessibilityObjectChromium.cpp: Removed. + * page/chromium/AccessibilityObjectWrapper.h: Removed. + * page/gtk/AXObjectCacheAtk.cpp: Removed. + * page/gtk/AccessibilityObjectAtk.cpp: Removed. + * page/gtk/AccessibilityObjectWrapperAtk.cpp: Removed. + * page/gtk/AccessibilityObjectWrapperAtk.h: Removed. + * page/mac/AXObjectCacheMac.mm: Removed. + * page/mac/AccessibilityObjectMac.mm: Removed. + * page/mac/AccessibilityObjectWrapper.h: Removed. + * page/mac/AccessibilityObjectWrapper.mm: Removed. + * page/qt/AccessibilityObjectQt.cpp: Removed. + * page/win/AXObjectCacheWin.cpp: Removed. + * page/win/AccessibilityObjectWin.cpp: Removed. + * page/win/AccessibilityObjectWrapperWin.h: Removed. + * page/wx/AccessibilityObjectWx.cpp: Removed. + +2009-05-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Jan Alonzo. + + https://bugs.webkit.org/show_bug.cgi?id=25854 + [GTK] Should tell servers we only support identity as content encoding + + Let servers know we only support identity as content + encoding. We will implement this in libsoup. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::ResourceHandle::startHttp): + +2009-05-18 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + <rdar://problem/6881160> REGRESSION (r41425): Unable to create battle.net account due to + CAPTCHA failure. + + The problem was that after loading and displaying a CAPTCHA image, it was loaded from + the server again due to preloading. So, the server expected the last loaded (invisible) + CAPTCHA text to be typed and posted back. + + I don't know how to make tests for preloading. + + * loader/DocLoader.cpp: (WebCore::DocLoader::checkForPendingPreloads): There is never a reason + to preload after loading for real - and if cache policy is CachePolicyReload, that actually + results in another load from network layer. + + * loader/FrameLoader.cpp: (WebCore::FrameLoader::cachePolicy): It's not good for cachePolicy() + to lie, but I don't know how to re-do r41425 properly. Added a FIXME. + +2009-05-18 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Simon Hausmann. + + Done together with Balazs Kelemen <kelemen.balazs@stud.u-szeged.hu>. + + https://bugs.webkit.org/show_bug.cgi?id=24551 + + [Qt] Reuse FontPlatformData for the same FontDescription. + This effectively prevents growing heap usage for loading every web page. + + * platform/graphics/qt/FontCacheQt.cpp: + (WebCore::qHash): Necessary for FontPlatformDataCache. + (WebCore::FontCache::getCachedFontPlatformData): Reuse the instance if + it exists, otherwise create a new one and insert it in the cache. + +2009-05-18 Balazs Kelemen <kelemen.balazs@stud.u-szeged.hu> + + Reviewed by Ariya Hidayat. + + https://bugs.webkit.org/show_bug.cgi?id=24551 + + [Qt] Fix the leak in FontFallbackList::fontDataAt() function. + When creating a new instance of SimpleFontData, put it in the font list + so that it can deleted later on. + + * platform/graphics/qt/FontFallbackListQt.cpp: + (WebCore::FontFallbackList::invalidate): + (WebCore::FontFallbackList::releaseFontData): + (WebCore::FontFallbackList::fontDataAt): + +2009-05-15 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + [Gtk] Various autotools build refactoring and fixes + https://bugs.webkit.org/show_bug.cgi?id=25286 + + Style fixes + + * GNUmakefile.am: + +2009-05-17 George Staikos <george.staikos@torchmobile.com> + + Not reviewed - build fix. + + Fix typo: constr -> const. + + * wml/WMLInputElement.h: + (WebCore::WMLInputElement::setPlaceholder): + +2009-05-17 Darin Adler <darin@apple.com> + + Fix done by Simon Fraser (reviewed by me). + + <rdar://problem/6893775> Page with screen-only stylesheet with overflow and height + transitions has bad layout and overlapping garbled text when printing + + * manual-tests/print-with-height-transition-in-screen-stylesheet.html: Added. + + * page/animation/AnimationController.cpp: + (WebCore::AnimationController::updateAnimations): Don't run transitions when printing. + +2009-05-17 Darin Adler <darin@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/6870241> REGRESSION: Programmatically selected popup menu item not shown + + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::setSelectedIndex): Added a call to updateFromElement and + also a type check on the selected index to avoid a bad cast to HTMLOptionElement. + + * manual-tests/select-option-in-onload.html: Added. + +2009-05-17 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Anders Carlsson + + Rename local variables for readability. + + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintBorder): + +2009-05-17 Darin Adler <darin@apple.com> + + Reviewed by Mark Rowe. + + Bug 25840: fix some warnings seen on the GTK bot + https://bugs.webkit.org/show_bug.cgi?id=25840 + + * platform/ScrollView.cpp: + (WebCore::ScrollView::platformScrollbarModes): Initialize results here. + This is really just to quiet warnings. I think this code is unreachable. + Someone could put ASSERT_NOT_REACHED() in here too at some point. + + * plugins/PluginStream.cpp: + (WebCore::PluginStream::startStream): Use proper printf format for int + here, %d, not %lu. This could cause a real problem when compiled 64-bit, + so it's good to fix. + + * rendering/RenderTextControl.cpp: + (WebCore::getNextSoftBreak): Initialize breakOffset to 0 here. This is + really just to quiet the warning, but still seems like a good idea. + +2009-05-17 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 25769: Fix accessibility warnings on GTK + https://bugs.webkit.org/show_bug.cgi?id=25769 + + * page/AccessibilityTable.cpp: + (WebCore::AccessibilityTable::columnCount): Get rid of excess const. + (WebCore::AccessibilityTable::rowCount): Ditto. + * page/AccessibilityTable.h: Ditto. + +2009-05-17 Kai Brüning <kai@granus.net> + + Reviewed by Darin Adler. + + bug 25822: DOM normalize does not remove empty text node between element nodes + https://bugs.webkit.org/show_bug.cgi?id=25822 + + Test: fast/dom/Node/normalize.html + + * dom/Node.cpp: + (WebCore::Node::normalize): Changed to remove any empty text nodes. + +2009-05-16 Dave Moore <davemoore@google.com> + + Reviewed by Darin Adler. + + Allow Strings to be created with one malloc node with no copying + https://bugs.webkit.org/show_bug.cgi?id=25779 + + Add new methods to String and StringImpl, refactoring existing + methods in StringImpl to use new createUninitialized() method. + + * platform/text/PlatformString.h: + (WebCore::String::createUninitialized): + * platform/text/StringImpl.cpp: + (WebCore::StringImpl::createUninitialized): + (WebCore::StringImpl::create): + * platform/text/StringImpl.h: + +2009-05-16 Mark Rowe <mrowe@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6827041> WebCore should stop throwing away the CGImageSourceRef to + dramatically improve animated GIF decoding performance + + Recent versions of ImageIO discard previously decoded image frames if the client + application no longer holds references to them, so there's no need to throw away + the decoder unless we're explicitly asked to destroy all of the frames. + + This drops peak CPU usage when displaying <http://www.aintitcool.com/files/HoD2.gif> + from over 90% to below 3%. + + * platform/graphics/cg/ImageSourceCG.cpp: + (WebCore::ImageSource::clear): + +2009-05-16 Dan Bernstein <mitz@apple.com> + + Reviewed by Alexey Proskuryakov. + + - fix <rdar://problem/6873305> Two distinct characters are not displayed + correctly with 2 of the font selections from the stickies widget + + Test: platform/mac/editing/pasteboard/text-precomposed.html + + Ensure that "text/plain" data retrieved from the clipboard is always + precomposed. This makes Clipboard::getData() and + Pasteboard::documentFragment() consistent with Pasteboard::plainText() + and -[WebHTMLView _documentFragmentFromPasteboard:forType:inContext:subresources:]. + + * platform/mac/ClipboardMac.mm: + (WebCore::ClipboardMac::getData): + * platform/mac/PasteboardMac.mm: + (WebCore::Pasteboard::documentFragment): + +2009-05-16 Mark Rowe <mrowe@apple.com> + + Build fix. + + * css/CSSComputedStyleDeclaration.cpp: + (WebCore::valueForFamily): Declare valueForFamily as static. + +2009-05-15 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/6883872> REGRESSION (r43243): computed style for font-family is returning + only the generic font, if any generic font is in the family list + + Test: fast/css/getComputedStyle/computed-style-font-family.html + + * css/CSSComputedStyleDeclaration.cpp: + Sorted computedProperties alphabetically. Added CSSPropertyClip and CSSPropertyWordBreak. + (WebCore::identifierForFamily): Added. Maps internal font family names to identifiers. + (WebCore::valueForFamily): Added. Creates either an identifier or a string as appropriate. + (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Implemented the font-family + property as specified in the CSS standard. Fixed clip to return "auto" when there is no + clip set instead of nothing at all. Gave inheritableProperties and numInheritableProperties + internal linkage since there was no reason for them to have external linkage. + +2009-05-15 Adam Barth <abarth@webkit.org> + + Reviewed by Oliver Hunt. + + https://bugs.webkit.org/show_bug.cgi?id=25741 + + Append instead of throwing when insertItemBefore gets an out-of-bound + index. + + Test: svg/dom/svglist-insertItemBefore-appends.html + + * svg/SVGList.h: + (WebCore::SVGList::insertItemBefore): + +2009-05-15 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + https://bugs.webkit.org/show_bug.cgi?id=25829 + + Fix -webkit-background-clip:text when the renderer had a non (0,0) x, y offset. + + Test: fast/backgrounds/background-clip-text.html + + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintFillLayerExtended): + +2009-05-15 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + - fix <rdar://problem/6888244> REGRESSION: Using the Up or Down keyboard + arrows, I can't navigate caret between To Do items in a Note message + + Test: editing/selection/move-by-line-004.html + + * editing/visible_units.cpp: + (WebCore::enclosingNodeWithNonInlineRenderer): Added this helper + function. + (WebCore::previousLinePosition): When advancing to the next candidate + node, stop when leaving the closest ancestor of the original node that + is not an inline. The code, incorrectly, was trying to exit the closest + ancestor of that type which was editable, and therefore missing other + blocks in the same editable root. + (WebCore::nextLinePosition): Ditto. + +2009-05-15 Fridrich Strba <fridrich.strba@bluewin.ch> + + Reviewed by Jan Alonzo. + + Converting filename to uri by concatenating strings is broken + on Windows. So, don't do it for that platform. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::ResourceHandle::startGio): + +2009-05-15 Nate Chapin <japhet@google.com> + + Reviewed by Dimitri Glazkov. + + Upstream V8 bindings for HTMLOptionsCollection and HTMLSelectElementCollection. + https://bugs.webkit.org/show_bug.cgi?id=25739 + + * bindings/v8/V8Collection.cpp: Added. + (WebCore::toOptionsCollectionSetter): Moved from v8_custom.cpp. + * bindings/v8/V8Collection.h: Added prototype for toOptionsCollectionSetter(). + * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: + (WebCore::INDEXED_PROPERTY_SETTER): Moved from v8_custom.cpp. + * bindings/v8/custom/V8HTMLSelectElementCollectionCustom.cpp: Added. + (WebCore::NAMED_PROPERTY_GETTER): Moved from v8_custom.cpp. + (WebCore::INDEXED_PROPERTY_SETTER): Moved from v8_custom.cpp. + +2009-05-15 David Kilzer <ddkilzer@apple.com> + + <rdar://problem/6649936> Add *.exp export files to WebCore Xcode project + + Reviewed by Darin Adler and Timothy Hatcher. + + * WebCore.xcodeproj/project.pbxproj: Added Exports group, moved + WebCore.base.exp into the group, and added 10 other *.exp files + in WebCore. + +2009-05-15 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, build fix. + + https://bugs.webkit.org/show_bug.cgi?id=25826 + Change type to only have custom getter in JCS. + + * html/HTMLInputElement.idl: Changed CustomGetter attribute to JSCCustomGetter. + +2009-05-15 Antti Koivisto <antti@apple.com> + + Reviewed by Dave Kilzer. + + Add a settings entry to en/disable web font support + https://bugs.webkit.org/show_bug.cgi?id=25239 + + * css/CSSFontSelector.cpp: + (WebCore::CSSFontSelector::addFontFaceRule): + +2009-05-15 Sam Weinig <sam@webkit.org> + + Reviewed by Steve Falkenburg. + + Remove dead youtube site specific hack that was commented out. + + * bindings/js/JSNavigatorCustom.cpp: + * page/Navigator.idl: + +2009-05-15 Sam Weinig <sam@webkit.org> + + Reviewed by Beth Dakin. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=25826 + <rdar://problem/6884742> + REGRESSION: In Gmail's Edit Link dialog, I can't type in the Link To: field (due to <input type=url> support) + + Added a site specific quirk for mail.google.com which returns "text" when getting the type of an <input type=url> + + * bindings/js/JSHTMLInputElementCustom.cpp: + (WebCore::needsGmailQuirk): + (WebCore::JSHTMLInputElement::type): + * html/HTMLInputElement.idl: + +2009-05-14 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25810 + Upstream V8 DOM Wrapper map declarations. + + No behavior change, so no tests. + + * bindings/v8/V8DOMMap.h: + (WebCore::WeakReferenceMap::WeakReferenceMap): Added. + (WebCore::WeakReferenceMap::~WeakReferenceMap): Added. + (WebCore::WeakReferenceMap::get): Added. + (WebCore::WeakReferenceMap::set): Added. + (WebCore::WeakReferenceMap::forget): Added. + (WebCore::WeakReferenceMap::contains): Added. + (WebCore::WeakReferenceMap::impl): Added. + (WebCore::DOMWrapperMap::DOMWrapperMap): Added. + +2009-05-15 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dave Hyatt + + https://bugs.webkit.org/show_bug.cgi?id=25773 + + Rename GraphicsLayer::graphicsContextsFlipped() to + GraphicsLayer::compositingCoordinatesOrientation() in order to clarify the usage. + + Clean up code around the GraphicsLayer "contents" layer that makes use of this + flag, by removing the setHasContentsLayer() method, and just using setContentsLayer(), + which can then always do the flipping if necessary. + + Only affects ACCELERATED_COMPOSITING builds. + + * platform/graphics/GraphicsLayer.h: + (WebCore::GraphicsLayer::): + * platform/graphics/mac/GraphicsLayerCA.h: + (WebCore::GraphicsLayerCA::contentsLayer): + * platform/graphics/mac/GraphicsLayerCA.mm: + (WebCore::GraphicsLayer::compositingCoordinatesOrientation): + (WebCore::GraphicsLayerCA::setBackgroundColor): + (WebCore::GraphicsLayerCA::clearBackgroundColor): + (WebCore::GraphicsLayerCA::setContentsToImage): + (WebCore::GraphicsLayerCA::clearContents): + (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): + (WebCore::GraphicsLayerCA::setContentsLayer): + * rendering/RenderLayerCompositor.cpp: + (WebCore::RenderLayerCompositor::ensureRootPlatformLayer): + +2009-05-15 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=25765 + + Avoid calling setNeedsStyleRecalc() when we are + putting an animated page in the cache. This avoids + the assert and subsequent problems with a dirty + page going into the cache. + + * page/animation/KeyframeAnimation.cpp: + (WebCore::KeyframeAnimation::endAnimation): + +2009-05-15 Francisco Tolmasky <francisco@280north.com> + + BUG 25467: JavaScript debugger should use function.displayName as the function's name in the call stack + <https://bugs.webkit.org/show_bug.cgi?id=25467> + + Reviewed by Adam Roben. + + * inspector/JavaScriptCallFrame.cpp: + (WebCore::JavaScriptCallFrame::functionName): Use calculatedFunctionName which takes into account displayName + * inspector/front-end/CallStackSidebarPane.js: Remove "|| anonymous function" since it is handled internally just like in profiles + (WebInspector.CallStackSidebarPane.prototype.update): + +2009-05-15 Alexey Proskuryakov <ap@webkit.org> + + Windows build fix (and a matching Mac change, to avoid unnecessarily diverging the implementations). + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::ResourceHandle::start): + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::start): + Check strings with isEmpty(), not relying on any implicit conversions. + +2009-05-15 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler, Brady Eidson and Eric Carlson. + + <rdar://problem/6875643> REGRESSION: Unable to download file with FTP URL that includes + username and password (Lightwave 9.6 for Mac from Newtek site) + + CFNetwork only invokes didReceiveAuthenticationChallenge for HTTP requests. Credentials + for other protocols (including FTP) should be included as part of the URL. + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::ResourceHandle::start): + (WebCore::WebCoreSynchronousLoader::load): + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::start): + (+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]): + Put credentials in URL for non-HTTP requests. + + * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::makeSimpleCrossOriginAccessRequest): + Bail out quickly if the URL is non-HTTP. Cross-origin requests require specific HTTP + headers to be received, so they cannot work with other protocols. + +2009-05-15 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Holger Freyther. + + [Qt] In the image decoder, remove the raw image data represented as QImage + once the image is converted to QPixmap and inserted in the pixmap cache. + This effectively reduces the heap usage when running on graphics system + other than raster (i.e the case where QImage != QPixmap). + + * platform/graphics/qt/ImageDecoderQt.cpp: + (WebCore::ImageDecoderQt::imageAtIndex): Nullified the image on purpose. + * platform/graphics/qt/ImageDecoderQt.h: Made m_imageList mutable. + +2009-05-15 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Holger Freyther. + + [Qt] Refactor alpha channel detection the image decoder. + Sets the boolean flag as soon as the image is being read. + + * platform/graphics/qt/ImageDecoderQt.cpp: + (WebCore::ImageDecoderQt::ImageDecoderQt): Initialized m_hasAlphaChannel. + (WebCore::ImageDecoderQt::setData): Set the flag when appropriate. + (WebCore::ImageDecoderQt::supportsAlpha): Simplified. + (WebCore::ImageDecoderQt::reset): Resetted the flag. + * platform/graphics/qt/ImageDecoderQt.h: Added m_hasAlphaChannel. + +2009-05-15 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Darin Adler. + + Finish support for disabling the JavaScript Debugger and Profiler + at compile time in WebCore + https://bugs.webkit.org/show_bug.cgi?id=24917 + + * bindings/js/JSInspectorControllerCustom.cpp: ENABLE_JAVASCRIPT_DEBUGGER guard + * bindings/js/JSJavaScriptCallFrameCustom.cpp: Ditto. + * inspector/JavaScriptCallFrame.cpp: Ditto. + * inspector/JavaScriptCallFrame.h: Ditto. + * inspector/JavaScriptCallFrame.idl: Ditto. + * inspector/JavaScriptDebugListener.h: Ditto. + * inspector/JavaScriptDebugServer.cpp: Ditto. + * inspector/JavaScriptDebugServer.h: Ditto. + * inspector/JavaScriptProfile.cpp: Ditto. + * inspector/JavaScriptProfile.h: Ditto. + * inspector/JavaScriptProfileNode.cpp: Ditto. + * inspector/JavaScriptProfileNode.h: Ditto. + * page/Console.cpp: Use guard ENABLE(JAVASCRIPT_DEBUGGER) instead of USE(JSC) + * page/Console.h: Ditto. + * page/Console.idl: Use guard ENABLE(JAVASCRIPT_DEBUGGER) instead of !defined(V8_BINDING) + +2009-05-15 Jungshik Shin <jshin@chromium.org> + + Reviewed by Dimitri Glazkov + + http://bugs.webkit.org/show_bug.cgi?id=25464 + + Improve the font fallback for characters belonging to 'common' scripts + in ChromiumWin port. Make characters like Danda, Double Danda (punctuation + marks in North Indian scripts) and currency signs (e.g. Thai Baht) + rendered correctly in Chromium on Win. + + Tests: fast/text/international/danda-space.html + fast/text/international/thai-baht-space.html + + * platform/graphics/chromium/FontUtilsChromiumWin.cpp: + (WebCore::FontMap::getScriptBasedOnUnicodeBlock): + (WebCore::FontMap::getScript): + (WebCore::getFallbackFamily): + +2009-05-15 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=25731 + [Qt] Cleanup - move files exclusive to XPATH and XSLT under the + appropriate build section + + * WebCore.pro: + +2009-05-14 Evan Martin <evan@chromium.org> + + Reviewed by Eric Seidel and Darin Fisher. + + Fix a font-related leak in Chromium's Skia backend found by Valgrind. + https://bugs.webkit.org/show_bug.cgi?id=25760 + + * platform/graphics/chromium/FontCacheLinux.cpp: + (WebCore::FontCache::getFontDataForCharacters): + Use caches instead of "new" on every call. + +2009-05-14 Rahul Kuchhal <kuchhal@chromium.org> + + Reviewed by Eric Seidel. + + Initialize m_spreadMethod in the second constructor too. Not sure if + a test case can be written, so no test case. + https://bugs.webkit.org/show_bug.cgi?id=25814 + + No test possible: spreadMethod() is only used by SVG, doesn't seem possible to hit + this case, since several other SVG tests already should be calling + spreadMethod(). + + * platform/graphics/Gradient.cpp: + (WebCore::Gradient::Gradient): + +2009-05-14 Simon Fraser <simon.fraser@apple.com> + + No review. + + Fix Windows build after renaming MediaControlElements to MediaControlElementType. + + * rendering/RenderMediaControls.cpp: + (WebCore::RenderMediaControls::paintMediaControlsPart): + * rendering/RenderMediaControls.h: + +2009-05-14 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + <rdar://problem/6739671> Movie controller’s play button does not change into a pause + button + + Fix a controls repaint issue when the playing state of a video changes by + educating the MediaControlInputElements about the state they are currently + displaying, and making them repaint when that state changes. This applies + to the play/pause and mute/unmute buttons, which both have two states. + + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlInputElement::MediaControlInputElement): + (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): + (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): + (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): + Pass in and initialize the MediaControlElementType. + + (WebCore::MediaControlInputElement::update): + Update the display type too + + (WebCore::MediaControlInputElement::setDisplayType): + (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): + (WebCore::MediaControlMuteButtonElement::updateDisplayType): + Choose muted vs. unmuted display. + + (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): + (WebCore::MediaControlPlayButtonElement::updateDisplayType): + Choose play vs. paused display. + + * rendering/MediaControlElements.h: + Renamed the MediaControlElements enum to MediaControlElementType. + (WebCore::MediaControlInputElement::updateDisplayType): + Add a MediaControlElementType member variable with a setter to allow + the element to know what type it is displaying. + +2009-05-14 Dean Jackson <dino@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=25197 + + Add support for aspect-ratio and orientation + media queries. + + Tests: fast/media/mq-aspect-ratio.html + fast/media/mq-orientation.html + + * css/MediaFeatureNames.h: + * css/MediaQueryEvaluator.cpp: + (WebCore::orientationMediaFeatureEval): + (WebCore::aspect_ratioMediaFeatureEval): + (WebCore::min_aspect_ratioMediaFeatureEval): + (WebCore::max_aspect_ratioMediaFeatureEval): + * css/MediaQueryExp.h: + (WebCore::MediaQueryExp::isViewportDependent): + +2009-05-14 Kevin McCullough <kmccullough@apple.com> + + - Resubmitting previous patch, correctly this time. + + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::splitTreeToNode): + * editing/IndentOutdentCommand.cpp: + (WebCore::IndentOutdentCommand::outdentParagraph): + +2009-05-14 Kevin McCullough <kmccullough@apple.com> + + - Rolling out to fix a bug and the build + + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::splitTreeToNode): + * editing/IndentOutdentCommand.cpp: + (WebCore::IndentOutdentCommand::outdentParagraph): + +2009-05-14 Kevin McCullough <kmccullough@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/6510362> In some situations message content is messed up + when indentation is decreased + + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::splitTreeToNode): Calling recursively + here served to do nothing because this function will return if the + second argument is the parent of the first. Not only does this now work + as intended, but is necessary for the rest of this fix. + * editing/IndentOutdentCommand.cpp: + (WebCore::IndentOutdentCommand::outdentParagraph): To determine if we + are the last node in a <blockquote>, and can therefore remove the + <blockquote> we need the endOfEnclosingBlock to extend to the end of + the <blockquote> not just the next block, which could be a <div>, for + example. + - Also If a <blockquote> is removed, but it's the child of another + <blockquote> then its children are now children of the top <blockquote>. + In this case we want to split the parent <blockquote> because the next + paragraph assumes that it is the first node in its <blockquote> and if + that is not true, various bugs arise. + +2009-05-14 Brady Eidson <beidson@apple.com> + + Build fix. + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::setDefaultMIMEType): + +2009-05-14 Brady Eidson <beidson@apple.com> + + Reviewed by Adam Roben. + + Fix http/tests/xmlhttprequest/cache-override.html on Windows + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::setDefaultMIMEType): Modify the previous response so it maintains all of its data. + (WebCore::didReceiveResponse): Call setDefaultMIMEType() when needed. + (WebCore::WebCoreSynchronousLoader::load): Ditto. + +2009-05-14 Paul Godavari <paul@chromium.org> + + Reviewed by Dimitri Glazkov. + + Bug: Mac Chromium popup menus are not positioned correctly + on scrolled pages: + https://bugs.webkit.org/show_bug.cgi?id=25772 + + Fix Mac Chromium popup menu placement by taking into + account any scrolling in the current window. This mirrors + the positioning done in PopupContainer::show(), which is + used on Chromium Windows and linux. + + Also fixed indenting for this method. + + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupContainer::showExternal): + +2009-05-14 Drew Wilson <atwilson@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25774 + Upstream V8MessagePortCustom.cpp from the chromium repository. + + * bindings/v8/custom/V8MessagePortCustom.cpp: Added. + (WebCore::ACCESSOR_GETTER): + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + +2009-05-14 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + https://bugs.webkit.org/show_bug.cgi?id=25777 + + StyleGeneratedImage::imageSize() needs to take zooming into account for + fixed-size images (i.e. canvas) so that canvas-as-image-background + renders correctly with zooming. + + Test: fast/canvas/canvas-bg-zoom.html + + * rendering/style/StyleGeneratedImage.cpp: + (WebCore::StyleGeneratedImage::imageSize): + +2009-05-14 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + Patch originally by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25796 + <rdar://problem/6886654> Shouldn't set referer and origin in Loader::Host::servePendingRequests(). + + Test: http/tests/security/credentials-in-referer.html + + * loader/loader.cpp: (WebCore::Loader::Host::servePendingRequests): This will be done in + SubresourceLoader::create() anyway. + +2009-05-14 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 25797: Pages with image maps are not properly read with Voiceover + https://bugs.webkit.org/show_bug.cgi?id=25797 + + * page/AccessibilityImageMapLink.h: + (WebCore::AccessibilityImageMapLink::isEnabled): + +2009-05-14 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6887762> and https://bugs.webkit.org/show_bug.cgi?id=25790 + + Nuke the bogus ASSERT and add a legitimate ASSERT with a little help from a new accessor. + + * platform/network/ResourceHandle.cpp: + (WebCore::ResourceHandle::shouldContentSniff): + * platform/network/ResourceHandle.h: + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::createCFURLResponseWithDefaultMIMEType): + (WebCore::didReceiveResponse): + +2009-05-14 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25791 + Bug 25791: HTMLMediaElement: implement 'startTime' attribute + + Support the recently added HTMLMediaElement 'startTime' attribute. This is a read-only + value that only the media engine can know, so we just need to add the attribute + to HTMLMediaElement and add methods to MediaPlayer and MediaPlayerPrivateInterface so + the engine can make it available. + + Test: media/media-startTime.html + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::startTime): New. + * html/HTMLMediaElement.h: + * html/HTMLMediaElement.idl: + + * platform/graphics/MediaPlayer.cpp: + (WebCore::MediaPlayer::startTime): New. + * platform/graphics/MediaPlayer.h: + + * platform/graphics/MediaPlayerPrivate.h: + (WebCore::MediaPlayerPrivateInterface::startTime): New. + +2009-05-14 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + Reviewed by Ariya Hidayat. + + Only create a QWidget wrapper for the plugin in the case it is not + in the Qt window mapper, and thus receiving events from the Qt + event system. Native Qt based plugins running in process, will + already be in the window mapper, and thus creating a wrapper, + stops them from getting events from Qt, as they are redirected + to the wrapper. + + * plugins/qt/PluginContainerQt.cpp: + (PluginContainerQt::on_clientIsEmbedded): + +2009-05-14 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25784 + Leaks seen on HTTP tests + + We should change ResourceHandleMac.mm to use smart pointers some day, but this is a minimal fix. + + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::loadResourceSynchronously): Release mutable request copy made for + disabling content sniffing, matching the normal code path. + (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): Release m_user + and m_pass before overwriting. + (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Ditto. + +2009-05-14 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25418 + Remove new lines from event handler wrapper to make line numbers + in the wrapped script conside with the lines in the original script. + + * bindings/v8/V8LazyEventListener.cpp: + (WebCore::V8LazyEventListener::getListenerFunction): + (WebCore::V8LazyEventListener::getWrappedListenerFunction): + +2009-05-14 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Alexey Proskuryakov. + + Remove a JSC-specific include that is already added by including + ScriptController. + + No change in behavior, so no tests. + + * dom/Document.cpp: Removed JSDOMBinding include. + +2009-05-14 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Brady Eidson. + + <rdar://problem/4072827> Downloaded non-ASCII file name becomes garbled + + Hopefully, a final stroke. When updating ResourceRequest from a platform request, a wrong + CFString function was used, so a user-friendly name was stored in encoding fallback array. + + * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdateResourceRequest): + * platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::doUpdateResourceRequest): + +2009-05-14 Ben Murdoch <benm@google.com> + + Reviewed by Darin Adler. + + Add more ENABLE_DATABASE guards. + https://bugs.webkit.org/show_bug.cgi?id=25616 + + See also https://bugs.webkit.org/show_bug.cgi?id=24776 (original set of guards) + + * bindings/js/JSSQLResultSetRowListCustom.cpp: + * bindings/v8/custom/V8CustomSQLStatementCallback.cpp: + * bindings/v8/custom/V8CustomSQLStatementCallback.h: + * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp: + * bindings/v8/custom/V8CustomSQLStatementErrorCallback.h: + * bindings/v8/custom/V8CustomSQLTransactionCallback.cpp: + * bindings/v8/custom/V8CustomSQLTransactionCallback.h: + * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp: + * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.h: + * bindings/v8/custom/V8DatabaseCustom.cpp: + * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: + * bindings/v8/custom/V8SQLTransactionCustom.cpp: + * storage/Database.cpp: + * storage/DatabaseDetails.h: + * storage/OriginUsageRecord.cpp: + * storage/OriginUsageRecord.h: + * storage/SQLError.h: + * storage/SQLError.idl: + * storage/SQLResultSet.cpp: + * storage/SQLResultSet.h: + * storage/SQLResultSet.idl: + * storage/SQLResultSetRowList.cpp: + * storage/SQLResultSetRowList.h: + * storage/SQLResultSetRowList.idl: + * storage/SQLStatementCallback.h: + * storage/SQLStatementErrorCallback.h: + * storage/SQLTransactionCallback.h: + * storage/SQLTransactionErrorCallback.h: + +2009-05-11 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25787 + + Gtk was the last platform to not unregister plugins when + the plugin is stopped. Catch up with r43550. + + * plugins/gtk/PluginViewGtk.cpp: + (WebCore::PluginView::stop): + +2009-05-14 Adam Roben <aroben@apple.com> + + Make WebCore.vcproj's pre-build event work again + + * WebCore.vcproj/WebCore.vcproj: Removed empty override of the + pre-build event that was accidentally left in when the pre-build event + was moved to WebCoreCommon.vsprops. + +2009-05-14 Darin Adler <darin@apple.com> + + * manual-tests/right-click-crash.html: Added. + +2009-05-14 Mark Rowe <mrowe@apple.com> + + Rubber-stamped by Darin Adler. + + <rdar://problem/6681868> When building with Xcode 3.1.3 should be using gcc 4.2 + + The meaning of XCODE_VERSION_ACTUAL is more sensible in newer versions of Xcode. + Update our logic to select the compiler version to use the more appropriate XCODE_VERSION_MINOR + if the version of Xcode supports it, and fall back to XCODE_VERSION_ACTUAL if not. + + * Configurations/Base.xcconfig: + +2009-05-13 Anders Carlsson <andersca@apple.com> + + Fix build. + + * WebCore.NPAPI.exp: + +2009-05-13 Eric Seidel <eric@webkit.org> + + Reviewed by Oliver Hunt. + + Fix invalid memory write seen in HTMLCanvasElement by Valgrind + https://bugs.webkit.org/show_bug.cgi?id=25759 + + I can't think of any way to catch this with a layout test, so no test. + + * css/CSSCanvasValue.cpp: + (WebCore::CSSCanvasValue::canvasDestroyed): + * css/CSSCanvasValue.h: + * html/HTMLCanvasElement.cpp: + (WebCore::HTMLCanvasElement::~HTMLCanvasElement): + * html/HTMLCanvasElement.h: + +2009-05-13 Dan Bernstein <mitz@apple.com> + + Reviewed by Anders Carlsson. + + - fix <rdar://problem/5483015> Replies in Mail are drawn first without + the user style sheet and then redrawn with the style sheet + + Test: platform/mac/fast/loader/user-stylesheet-fast-path.html + + * page/mac/FrameMac.mm: + (WebCore::Frame::setUserStyleSheetLocation): For data URLs with + base64-encoded UTF-8 data, just decode the style sheet here an apply + it synchronously instead of invoking an asynchronous loader. + +2009-05-13 Chris Fleizach <cfleizach@apple.com> + + Bug 25755: Implement ARIA grid role + https://bugs.webkit.org/show_bug.cgi?id=25755 + + Fix build bustage from last checkin. + + * page/AccessibilityAriaGrid.cpp: + (WebCore::AccessibilityAriaGrid::addChild): + +2009-05-13 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Beth Dakin. + + Bug 25755: Implement ARIA grid role + https://bugs.webkit.org/show_bug.cgi?id=25755 + + Test: accessibility/aria-tables.html + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * WebCoreSources.bkl: + * page/AXObjectCache.cpp: + (WebCore::AXObjectCache::nodeIsAriaType): + (WebCore::AXObjectCache::getOrCreate): + * page/AXObjectCache.h: + * page/AccessibilityAriaGrid.cpp: Added. + (WebCore::AccessibilityAriaGrid::AccessibilityAriaGrid): + (WebCore::AccessibilityAriaGrid::~AccessibilityAriaGrid): + (WebCore::AccessibilityAriaGrid::create): + (WebCore::AccessibilityAriaGrid::addChild): + (WebCore::AccessibilityAriaGrid::addChildren): + (WebCore::AccessibilityAriaGrid::cellForColumnAndRow): + * page/AccessibilityAriaGrid.h: Added. + (WebCore::AccessibilityAriaGrid::isAriaTable): + * page/AccessibilityAriaGridCell.cpp: Added. + (WebCore::AccessibilityAriaGridCell::AccessibilityAriaGridCell): + (WebCore::AccessibilityAriaGridCell::~AccessibilityAriaGridCell): + (WebCore::AccessibilityAriaGridCell::create): + (WebCore::AccessibilityAriaGridCell::parentTable): + (WebCore::AccessibilityAriaGridCell::rowIndexRange): + (WebCore::AccessibilityAriaGridCell::columnIndexRange): + * page/AccessibilityAriaGridCell.h: Added. + * page/AccessibilityAriaGridRow.cpp: Added. + (WebCore::AccessibilityAriaGridRow::AccessibilityAriaGridRow): + (WebCore::AccessibilityAriaGridRow::~AccessibilityAriaGridRow): + (WebCore::AccessibilityAriaGridRow::create): + (WebCore::AccessibilityAriaGridRow::parentTable): + (WebCore::AccessibilityAriaGridRow::headerObject): + * page/AccessibilityAriaGridRow.h: Added. + * page/AccessibilityList.cpp: + (WebCore::AccessibilityList::accessibilityIsIgnored): + * page/AccessibilityList.h: + * page/AccessibilityObject.h: + (WebCore::): + * page/AccessibilityRenderObject.cpp: + (WebCore::RoleEntry::): + * page/AccessibilityTable.cpp: + (WebCore::AccessibilityTable::AccessibilityTable): + (WebCore::AccessibilityTable::isTableExposableThroughAccessibility): + * page/AccessibilityTable.h: + (WebCore::AccessibilityTable::isAriaTable): + * page/AccessibilityTableCell.cpp: + (WebCore::AccessibilityTableCell::parentTable): + (WebCore::AccessibilityTableCell::isTableCell): + (WebCore::AccessibilityTableCell::titleUIElement): + * page/AccessibilityTableCell.h: + * page/AccessibilityTableColumn.cpp: + (WebCore::AccessibilityTableColumn::setParentTable): + (WebCore::AccessibilityTableColumn::headerObject): + * page/AccessibilityTableRow.cpp: + (WebCore::AccessibilityTableRow::isTableRow): + (WebCore::AccessibilityTableRow::parentTable): + * page/AccessibilityTableRow.h: + * page/mac/AccessibilityObjectWrapper.mm: + (RoleEntry::): + +2009-05-13 David Levin <levin@chromium.org> + + Reviewed by Dimitri Glazkov. + + Bug 25763: Need to move v8 custom binding to the custom directory. + https://bugs.webkit.org/show_bug.cgi?id=25763 + + No test due to no change in behavior. + + * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp: Renamed from WebCore/bindings/v8/V8CanvasPixelArrayCustom.cpp. + +2009-05-13 Nate Chapin <japhet@google.com> + + Reviewed by Dimitri Glazkov. + + Fix LayoutTests/fast/dom/Element/attr-param-typechecking.html crashing with V8. + https://bugs.webkit.org/show_bug.cgi?id=25758 + + * bindings/v8/custom/V8ElementCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): return the result of throwError() if it is called. + +2009-05-13 Jeremy Moskovich <jeremy@chromium.org> + + Reviewed by Dave Hyatt. + + Fix a number of bugs relating to RTL and text-overflow:ellipsis. + Also refactor the relevant code to make it a little clearer. + + This CL fixes 3 fundamental issues: + - Corrects behavior if the truncated InlineTextBox's directionality is + different from the overall flow direction - bug 25135. + - Make decoration drawing in InlineFlowbox RTL-aware - bug 24206. + - Full truncation on InlineBoxes in RTL flow - bug 24186 + - Add tests for the above + reorder/cleanup tests for easier + interpretation of outcome. + + The code for placing ellipsis has been refactored to use + left/right notation rather than a single variable whose meaning + could differ based on flow directionality. + + To support differing inline directionality vs flow directionality, + different variables are now used in InlineTextBox::placeEllipsisBox to + track the two. + + The drawing mode for underlines in standards mode now correctly handles + RTL truncation and relevant test where added. + + https://bugs.webkit.org/show_bug.cgi?id=24186 + https://bugs.webkit.org/show_bug.cgi?id=25135 + https://bugs.webkit.org/show_bug.cgi?id=24206 + + Tests: fast/css/text-overflow-ellipsis-bidi.html + fast/css/text-overflow-ellipsis-strict.html + + * rendering/InlineBox.cpp: + (WebCore::InlineBox::placeEllipsisBox): + * rendering/InlineBox.h: + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::paintTextDecorations): + (WebCore::InlineFlowBox::placeEllipsisBox): + * rendering/InlineFlowBox.h: + * rendering/InlineTextBox.cpp: + (WebCore::InlineTextBox::placeEllipsisBox): + (WebCore::InlineTextBox::paint): + * rendering/InlineTextBox.h: + * rendering/RenderFlexibleBox.cpp: + (WebCore::RenderFlexibleBox::layoutVerticalBox): + * rendering/RootInlineBox.cpp: + (WebCore::RootInlineBox::placeEllipsis): + (WebCore::RootInlineBox::placeEllipsisBox): + * rendering/RootInlineBox.h: + * rendering/bidi.cpp: + (WebCore::RenderBlock::checkLinesForTextOverflow): + +2009-05-13 Dmitry Titov <dimich@chromium.org> + + Rubber-stamped by Mark Rowe. + + https://bugs.webkit.org/show_bug.cgi?id=25746 + Revert http://trac.webkit.org/changeset/43507 which caused crash in PPC nightlies with Safari 4. + + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::matchFunc): + (WebCore::openFunc): + (WebCore::createStringParser): + (WebCore::createMemoryParser): + * loader/icon/IconDatabase.cpp: + (WebCore::IconDatabase::open): + * platform/sql/SQLiteDatabase.cpp: + (WebCore::SQLiteDatabase::SQLiteDatabase): + (WebCore::SQLiteDatabase::close): + * storage/DatabaseThread.cpp: + (WebCore::DatabaseThread::DatabaseThread): + (WebCore::DatabaseThread::start): + (WebCore::DatabaseThread::databaseThread): + * storage/LocalStorageThread.cpp: + (WebCore::LocalStorageThread::LocalStorageThread): + (WebCore::LocalStorageThread::start): + (WebCore::LocalStorageThread::localStorageThread): + (WebCore::LocalStorageThread::scheduleImport): + (WebCore::LocalStorageThread::scheduleSync): + (WebCore::LocalStorageThread::terminate): + * workers/WorkerThread.cpp: + (WebCore::WorkerThread::WorkerThread): + (WebCore::WorkerThread::start): + +2009-05-13 David Hyatt <hyatt@apple.com> + + Reviewed by Beth Dakin. + + Fix for <rdar://problem/6872894> REGRESSION (r41896-42143): First letter cut off in styled select menus + + Make sure to do rounded clipping for overflow and controls relative to the border box and not to the overflow/control clip rect + (which is typically clipped to the padding or content box). Doing so was causing rounded clips to be incorrectly applied to padding and + content. + + Added fast/overflow/border-radius-clipping.html + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::pushContentsClip): + +2009-05-13 Darin Adler <darin@apple.com> + + Revert the parser arena change. It was a slowdown, not a speedup. + Better luck next time (I'll break it up into pieces). + +2009-05-13 David Hyatt <hyatt@apple.com> + + Reviewed by Beth Dakin and Darin Adler. + + Fix for <rdar://problem/6869687> REGRESSION (r41203): Facebook friend suggestions disappear on update. + + Make sure that renderers are marked for layout if a style change causes them to switch from having a self-painting layer + to a non-self-painting layer (and vice versa). + + Move misplaced layer repainting code that was in RenderBox up into RenderBoxModelObject so that inlines with layers + repaint properly on opacity changes, etc. + + Added fast/repaint/opacity-change-on-overflow-float.html. + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::styleWillChange): + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::styleWillChange): + (WebCore::RenderBoxModelObject::styleDidChange): + * rendering/RenderBoxModelObject.h: + +2009-05-13 Dimitri Glazkov <dglazkov@chromium.org> + + Not reviewed, build fix. + + Move an include, needed by Debugger under the corresponding guard. + + * inspector/InspectorController.cpp: Moved parser/SourceCode under JAVASCRIPT_DEBUGGER + guard. + +2009-05-13 David Levin <levin@chromium.org> + + Reviewed by Darin Adler. + + Bug 25394: REGRESSION: crash in DocumentLoader::addResponse due to bad |this| pointer + https://bugs.webkit.org/show_bug.cgi?id=25394 + + Test: http/tests/xmlhttprequest/frame-unload-abort-crash.html + + * loader/SubresourceLoader.cpp: + (WebCore::SubresourceLoader::create): + Add another check to subresource loader to avoid doing any loads in frames + when the loaders are being stopped. + +2009-05-13 Stephan Haller <nomad@froevel.de> + + Reviewed by Gustavo Noronha. + + Wrong handling of file upload if no file selected + https://bugs.webkit.org/show_bug.cgi?id=25649 + + Fixed returned path if path is empty + + * WebCore/platform/gtk/FileSystemGtk.cpp: + +2009-05-13 Dan Bernstein <mitz@apple.com> + + Reviewed by Dave Hyatt. + + - fix <rdar://problem/6805567> REGRESSION (r42348): Notes flicker white + when loading + + Tests: fast/frames/content-opacity-1.html + fast/frames/content-opacity-2.html + + * page/FrameView.cpp: + (WebCore::FrameView::reset): Reset m_contentIsOpaque to false. + (WebCore::FrameView::useSlowRepaints): Use slow repaints if the content + is not known to be opaque. + (WebCore::FrameView::setContentIsOpaque): Added. Sets m_contentIsOpaque + and enables or disables fast repaints accordingly. + * page/FrameView.h: + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintFillLayerExtended): Removed the + document()->haveStylesheetsLoaded() condition in determining whether the + root is opaque. This is what was causing the bug, as iframes were + considered to be opaque, and thus painted an opaque white background, + whenever they were pending a style sheet load. + Changed to call FrameView::setContentIsOpaqe() instead of + setUseSlowRepaints(), which allows the frame to go back to fast repaints + if the content becomes opaque. + Corrected the check for background color opacity: any alpha value other + than 255--not just zero--is not opaque. + +2009-05-13 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Sam Weinig. + + [Qt] Fix "lighther" composition mode. + QPainter::CompositionMode_Plus is the right match. + + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::toQtCompositionMode): + +2009-05-13 Darin Adler <darin@apple.com> + + Reviewed by Cameron Zwarich. + + Bug 25674: syntax tree nodes should use arena allocation + https://bugs.webkit.org/show_bug.cgi?id=25674 + + * bindings/js/JSDOMBinding.h: Removed include of JSFunction.h. + We don't want the entire DOM binding to depend on that file. + + * bindings/js/JSAudioConstructor.cpp: Added include of Error.h. + Before we inherited this automatically because JDDOMBinding.h + included JSFunction.h, but that was excessive. + * bindings/js/JSDOMWindowCustom.cpp: Ditto. + * bindings/js/JSHTMLInputElementCustom.cpp: Ditto. + * bindings/js/JSImageConstructor.cpp: Ditto. + * bindings/js/JSLazyEventListener.cpp: Ditto, but for JSFunction.h. + * bindings/js/JSMessageChannelConstructor.cpp: Ditto. + * bindings/js/JSOptionConstructor.cpp: Ditto. + * bindings/js/JSWorkerConstructor.cpp: Ditto. + * bindings/js/JSXMLHttpRequestConstructor.cpp: Ditto. + * bridge/jni/jni_jsobject.mm: Ditto, but for SourceCode.h. + * inspector/InspectorController.cpp: Ditto. + + * inspector/JavaScriptDebugServer.cpp: + (WebCore::JavaScriptDebugServer::recompileAllJSFunctions): + Moved mose of this function into the base class in JavaScriptCore, + so the details of compilation don't have to be exposed. + +2009-05-13 Douglas R. Davidson <ddavidso@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6879145> + Generate a contextual menu item allowing autocorrections to + easily be changed back. Refrain from re-correcting items + that have already been autocorrected once. + + * dom/DocumentMarker.h: + * editing/Editor.cpp: + (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): + (WebCore::Editor::changeBackToReplacedString): + * editing/Editor.h: + * page/ContextMenuController.cpp: + (WebCore::ContextMenuController::contextMenuItemSelected): + * page/mac/WebCoreViewFactory.h: + * platform/ContextMenu.cpp: + (WebCore::ContextMenu::populate): + (WebCore::ContextMenu::checkOrEnableIfNeeded): + * platform/ContextMenuItem.h: + * platform/LocalizedStrings.h: + * platform/mac/LocalizedStringsMac.mm: + (WebCore::contextMenuItemTagChangeBack): + * rendering/HitTestResult.cpp: + (WebCore::HitTestResult::replacedString): + * rendering/HitTestResult.h: + * rendering/InlineTextBox.cpp: + (WebCore::InlineTextBox::computeRectForReplacementMarker): + (WebCore::InlineTextBox::paintDocumentMarkers): + * rendering/InlineTextBox.h: + +2009-05-13 Holger Hans Peter Freyther <zecke@selfish.org> + + Rubber Stamped by Oliver Hunt. + + [GTK] Fix Gtk+/X11 build on OSX + + Including the CoreFoundation header here and X11 headers + later will result in different definitions of Boolean. The + CoreFoundation include does not seem to be necessary here + and my mac build was successfull without it. I will remove + it for now. If the build bots disagree this will be replaced + by a #if PLATFORM(CF). + + * platform/FileSystem.h: + +2009-05-13 Holger Hans Peter Freyther <zecke@selfish.org> + + Rubber Stamped by Gustavo Noronha. + + [GTK] Move the #ifdef around for a buildfix for Gtk+ on OSX + + When building Gtk+ on OSX we ended up declaring + setNPWindowIfNeeded twice. Fix that by moving + the #if PLATFORM(GTK) up and using elif instead of + else. + + * plugins/PluginView.h: + +2009-05-13 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Xan Lopez. + + https://bugs.webkit.org/show_bug.cgi?id=25685 + [GTK] Middle click paste form the pasteboard + + The kit wants to paste from at least two different + clipboards. By introducing getCurrentTarget to the + PasteboardHelper interface we can make this decision + in the kit. + Use the new method in PasteboardGtk to get the right + GdkClipboard for the paste operation. + + * platform/gtk/PasteboardGtk.cpp: + (WebCore::Pasteboard::documentFragment): + (WebCore::Pasteboard::plainText): + * platform/gtk/PasteboardHelper.h: + +2009-05-13 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6438177> QTMoviePreferredTransformAttribute only supported on SnowLeopard + <rdar://problem/6872468> QTMovieOpenForPlaybackAttribute only supported on SnowLeopard + + QTMoviePreferredTransformAttribute and QTMovieOpenForPlaybackAttribute are not supported + on Tiger or Leopard. + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::setNetworkState): Remove invalid ASSERT. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::createQTMovie): Only request QTMoviePreferredTransformAttribute + when !BUILDING_ON_TIGER and !BUILDING_ON_LEOPARD. + (WebCore::MediaPlayerPrivate::cacheMovieScale): Only ask for QTMovieOpenForPlaybackAttribute + when !BUILDING_ON_TIGER and !BUILDING_ON_LEOPARD, + +2009-05-12 Roland Steiner <rolandsteiner@google.com> + + Reviewed by Eric Seidel. + + Bug 25738: Skia: CSS border style not cleared for SVG object + https://bugs.webkit.org/show_bug.cgi?id=25738 + + If no dashing is set, this change reverts to solid stroke + (previously the code bailed and left the old setting, whatever it was) + + Test case listed in above bug entry. + (Additional complications due to each platform rendering dotted lines differently - + c.f. https://bugs.webkit.org/show_bug.cgi?id=25737) + + * platform/graphics/skia/GraphicsContextSkia.cpp: + (WebCore::GraphicsContext::setLineDash): + +2009-05-11 Erik Arvidsson <arv@chromium.org> + + Reviewed by Eric Seidel. + + Bug 21903: Adds DOM bindings for the placeholder property of the + HTMLInputElement. + https://bugs.webkit.org/show_bug.cgi?id=21903 + + Test: fast/forms/placeholder-dom-property.html + + * dom/InputElement.cpp: + (WebCore::InputElement::updatePlaceholderVisibility): + * dom/InputElement.h: + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::placeholder): + (WebCore::HTMLInputElement::setPlaceholder): + * html/HTMLInputElement.h: + * html/HTMLInputElement.idl: + * rendering/RenderTextControlSingleLine.cpp: + (WebCore::RenderTextControlSingleLine::updateFromElement): + * wml/WMLInputElement.h: + (WebCore::WMLInputElement::placeholder): + (WebCore::WMLInputElement::setPlaceholder): + +2009-05-12 Adam Barth <abarth@webkit.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25706 + + Change V8 bindings to match JSC bindings with respect to using + the lexical or dynamic global object. + + Tests: http/tests/security/aboutBlank/security-context-grandchildren-lexical.html + http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html + http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical.html + + * bindings/v8/custom/V8HTMLDocumentCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + +2009-03-19 Oliver Hunt <oliver@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6702386> Incorrect bound check in SVGList::insertItemBefore + + SVGList::insertItemBefore would not perform a bounds check on the + index it was provided, potentially leading to a buffer overflow. + + Test: svg/dom/svglist-exception-on-out-bounds-error.html + + * svg/SVGList.h: + (WebCore::SVGList::insertItemBefore): + +2009-05-12 Paul Godavari <paul@chromium.org> + + Reviewed by Dimitri Glazkov. + + Bug 25708: Cannot choose menu items in popups with many entries in Chromium + https://bugs.webkit.org/show_bug.cgi?id=25708 + + This change sets the window size for popups on Mac to include all items + in the menu. This is required for hit testing on Mac, where we use native + controls to manage the popups and don't want to artificially limit the + valid hit testing region to a limited scroll window. + + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupListBox::layout): + +2009-05-12 Stephen White <senorblanco@chromium.org> + + Reviewed by Dimitri Glazkov. + + Fixes to build with latest skia: SkTypeface::Create() is now + SkTypeface::CreateFromName(); computeBounds() has been reworked + as getBounds(). The changes are placed behind an #ifdef for now, + so that we can roll back the skia version in Chromium if necessary + without having to roll back this change. + + https://bugs.webkit.org/show_bug.cgi?id=25705 + + * platform/graphics/chromium/FontCacheLinux.cpp: + (WebCore::FontCache::createFontPlatformData): + * platform/graphics/skia/PathSkia.cpp: + (WebCore::Path::boundingRect): + (WebCore::boundingBoxForCurrentStroke): + * platform/graphics/skia/SkiaUtils.cpp: + (WebCore::SkPathContainsPoint): + +2009-05-12 Nate Chapin <japhet@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25732 + Update V8ElementCustom.cpp to match the current API of V8Proxy. + + (WebCore::ACCESSOR_SETTER): Change retrieveActiveFrame() to retrieveFrameForEnteredContext(). + +2009-05-12 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25694 + HTMLParser::createHead() ASSERT: Creating an element, calling document.open() and writing + to the document NULL ptr + + Test: fast/parser/implicit-head-in-fragment-crash.html + + * html/HTMLParser.cpp: (WebCore::HTMLParser::bodyCreateErrorCheck): Do not try to implicitly + create <head> when parsing a fragment. + +2009-05-12 Soren Gjesse <sgjesse@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25687 + Missing check for valid function in V8 bindings for toString function for event listeners. + + * bindings/v8/V8LazyEventListener.cpp: + (WebCore::V8LazyEventListener::getWrappedListenerFunction): Added empty handle checks. + +2009-05-11 Yael Aharon <yael.aharon@nokia.com> + + Reviewed by Holger Freyther. + + Change Qt port to match the mac and windows ports, and unregister plugins when plugins are stopped. + Not doing that can cause assersion failure. + https://bugs.webkit.org/show_bug.cgi?id=25702 + + * plugins/qt/PluginViewQt.cpp: + (WebCore::PluginView::stop): + +2009-05-11 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Holger Freyther. + + Bug 25714: [Qt] Decouple HTML5 Database support from the + SQLite/generic database support in the Qt port + + <https://bugs.webkit.org/show_bug.cgi?id=25714> + + * WebCore.pro: + +2009-05-11 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Beth Dakin. + + Bug 25713: AX: Control Elements not identified in HTML content + https://bugs.webkit.org/show_bug.cgi?id=25713 + + Test: accessibility/onclick-handlers.html + + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::mouseButtonListener): + +2009-05-11 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/6276843> REGRESSION: TextIterator generates + an extra newline for ranges that start outside of body + + * editing/TextIterator.cpp: + (WebCore::TextIterator::shouldRepresentNodeOffsetZero): + Check startPos for null, not just currPos. + +2009-05-11 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 25700: Regression:WebKit:cmd-left and cmd-right use to go to the beginning and end of a line in Mail + https://bugs.webkit.org/show_bug.cgi?id=25700 + + Keyboard selection movement handlers need to also watch for the Cmd key when Accessibility is enabled. + Note: This code is only used when accessibility is enabled. + + * page/EventHandler.cpp: + (WebCore::EventHandler::handleKeyboardSelectionMovement): + +2009-05-11 David Kilzer <ddkilzer@apple.com> + + Bug 25087: Test for ENABLE_FOO macros consistently in IDL files + + <https://bugs.webkit.org/show_bug.cgi?id=25087> + + Reviewed by Timothy Hatcher. + + Change tests for ENABLE macros to check for both existence and + value: + + - Negative: #if !defined(ENABLE_FOO) || !ENABLE_FOO + - Positive: #if defined(ENABLE_FOO) && ENABLE_FOO + + * css/CSSCharsetRule.idl: + * css/CSSPrimitiveValue.idl: + * css/RGBColor.idl: + * dom/Attr.idl: + * dom/DOMCoreException.idl: + * dom/DOMImplementation.idl: + * dom/Document.idl: + * dom/Element.idl: + * dom/Event.idl: + * dom/EventException.idl: + * dom/KeyboardEvent.idl: + * dom/MessagePort.idl: + * dom/MouseEvent.idl: + * dom/Node.idl: + * dom/ProcessingInstruction.idl: + * dom/Range.idl: + * dom/RangeException.idl: + * dom/WheelEvent.idl: + * html/CanvasPixelArray.idl: + * html/HTMLAnchorElement.idl: + * html/HTMLAppletElement.idl: + * html/HTMLAreaElement.idl: + * html/HTMLBaseFontElement.idl: + * html/HTMLCanvasElement.idl: + * html/HTMLDocument.idl: + * html/HTMLElement.idl: + * html/HTMLEmbedElement.idl: + * html/HTMLFrameElement.idl: + * html/HTMLIFrameElement.idl: + * html/HTMLImageElement.idl: + * html/HTMLInputElement.idl: + * html/HTMLLinkElement.idl: + * html/HTMLObjectElement.idl: + * html/HTMLOptionElement.idl: + * html/HTMLOptionsCollection.idl: + * html/HTMLSelectElement.idl: + * html/HTMLStyleElement.idl: + * html/ImageData.idl: + * inspector/InspectorController.idl: + * loader/appcache/DOMApplicationCache.idl: + * page/Console.idl: + * page/Coordinates.idl: + * page/DOMSelection.idl: + * page/DOMWindow.idl: + * page/Geoposition.idl: + * page/History.idl: + * page/Location.idl: + * page/Navigator.idl: + * svg/SVGElementInstance.idl: + * svg/SVGException.idl: + * workers/WorkerContext.idl: + * xml/XMLHttpRequestException.idl: + * xml/XPathException.idl: + +2009-05-11 Norbert Leser <norbert.leser@nokia.com> + + Reviewed by Darin Adler. + + Bug 24538: class/struct mixup in forward declarations + https://bugs.webkit.org/show_bug.cgi?id=24538 + + * inspector/InspectorResource.h: + * loader/CachedFont.h: + * loader/appcache/ApplicationCache.h: + * rendering/RenderBlock.h: + * rendering/RootInlineBox.h: + * rendering/SVGInlineTextBox.h: + * svg/SVGGlyphElement.h: + * svg/SVGHKernElement.h: + +2009-05-11 Norbert Leser <norbert.leser@nokia.com> + + Reviewed by Darin Adler. + + Bug 24539: Unresolved CSSMutableStyleDeclaration + https://bugs.webkit.org/show_bug.cgi?id=24539 + + The Symbian tools can't compile and link this without this include. + It's not clear why this is different from other toolsets or why it affects + only this header file, but adding the include for now. + + * editing/RemoveCSSPropertyCommand.h: Added include of CSSMutableStyleDeclaration.h. + +2009-05-11 Alice Liu <alice.liu@apple.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=25701 + REGRESSION(r38788 & r42020): styled searchfields look wrong on Windows, affects Facebook + + Test: fast/forms/search-styled.html + + * css/themeWin.css: + Remove the overriding of -webkit-appearance for searchfields. This will cause background + images to not be honored when styling searchfields + + * rendering/RenderThemeWin.cpp: + (WebCore::RenderThemeWin::adjustSearchFieldStyle): + * rendering/RenderThemeWin.h: + Re-instate final adjustments to searchfield styling that were removed in r42020 + +2009-05-11 Brady Eidson <beidson@apple.com> + + Fix Windows build + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::createCFURLResponseWithDefaultMIMEType): + +2009-05-11 Nate Chapin <japhet@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25626 + Update V8ElementCustom.cpp to match the current API of Node. + + * bindings/v8/custom/V8ElementCustom.cpp: + (WebCore::ACCESSOR_SETTER): Changed a couple of method names to match current names. + (WebCore::ACCESSOR_GETTER): Changed a method name to match current name. + +2009-05-11 Brady Eidson <beidson@apple.com> + + Fix Windows build + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::createCFURLResponseWithDefaultMIMEType): + (WebCore::WebCoreSynchronousLoader::load): + +2009-05-11 Brady Eidson <beidson@apple.com> + + Fix Windows build + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::createCFURLResponseWithDefaultMIMEType): + +2009-05-11 Nate Chapin <japhet@google.com> + + Reviewed by Dimitri Glazkov. + + V8CustomBinding.cpp is missing a header file + + https://bugs.webkit.org/show_bug.cgi?id=25644 + + * bindings/v8/custom/V8CustomBinding.cpp: Added #include "V8Proxy.h". + +2009-05-11 Aaron Boodman <aa@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25634 + Change V8Proxy::retrieveActiveFrame() call sites to V8Proxy::retrieveFrameForEnteredContext(). + + Also, change instances of ScriptController::retrieveActiveFrame() to + V8::retrieveFrameForEnteredContext() for consistency. + + + See http://codereview.chromium.org/113085 for the corresponding Chromium change. + + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::V8Custom::WindowSetLocation): + * bindings/v8/custom/V8HTMLDocumentCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8LocationCustom.cpp: + (WebCore::navigateIfAllowed): + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + +2009-05-11 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/5972751> Local image files (BMP, ico) can be misidentified as HTML. + + First part of the fix - Disable content sniffing for file resources which never should've been happening anyways. + Second part of the fix - If the networking layer doesn't give us back a MIME type default to "application/octet-stream". + + * platform/MIMETypeRegistry.cpp: + (WebCore::defaultMIMEType): "application/octet-stream" + * platform/MIMETypeRegistry.h: + + * platform/network/ResourceHandle.cpp: + (WebCore::ResourceHandle::create): If content sniffing is true, double check with "shouldContentSniffRequest()" which + might override it to false. + (WebCore::ResourceHandle::shouldContentSniffURL): Return false for file:// urls, true for everything else. + * platform/network/ResourceHandle.h: + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::createCFURLResponseWithDefaultMIMEType): Create a copy of the CFURLRequest with the default MIME type instead + of null. + (WebCore::didReceiveResponse): If the MIME type for the response is null, create a copy with the default MIME type. + (WebCore::WebCoreSynchronousLoader::load): Use shouldContentSniffRequest() to make synchronous loads have the same + sniffing policy as asynchronous loads. Also, correct a null MIME type by creating a copy with the default type. + + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::loadResourceSynchronously): Use shouldContentSniffRequest() to make synchronous loads have the + same sniffing policy as asynchronous loads. + (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): Set up the [NSURLResponse MIMEType] swizzling if + it hasn't been set up yet. + (_web_NSURLResponse_MIMEType): Either return the actual MIME type of the response, or the default MIME type if it's nil. + + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::loadRequestAsynchronously): Remove the workaround added in r29370 as it will now be covered by + the new mechanism. + +2009-05-11 David Kilzer <ddkilzer@apple.com> + + Fix typo "APPLICATION_CAHE_DYNAMIC_ENTRIES" to "APPLICATION_CACHE_DYNAMIC_ENTRIES" + + This was added in r39816 to disable dynamic entries. They are + still disabled after fixing the typo since this feature define + is never set anywhere. + + * bindings/js/JSDOMApplicationCacheCustom.cpp: + * loader/appcache/DOMApplicationCache.idl: + +2009-05-11 Dmitry Titov <dimich@chromium.org> + + Reviewed by Alexey Proskuryakov and Adam Roben. + + https://bugs.webkit.org/show_bug.cgi?id=25348 + Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap. + + Most of the change is in WTF. + Unless noted, all the following files changed to use the new ThreadIdentifier::isValid() + method instead of just doing 'if(m_threadID)' kind of checks, since ThreadIdentifier + is now a class rather then an integer. + Also, there is no need to initialize threadID in constructors to 0 now. + + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::libxmlLoaderThread): use DEFINE_STATIC_LOCAL and accessor function for static thread id, + since now ThreadIdentifier needs construction and we avoid having global initializers. + (WebCore::matchFunc): use the new accessor function. + (WebCore::openFunc): ditto. + (WebCore::createStringParser): ditto. + (WebCore::createMemoryParser): ditto. + * loader/icon/IconDatabase.cpp: + (WebCore::IconDatabase::open): + * platform/sql/SQLiteDatabase.cpp: + (WebCore::SQLiteDatabase::SQLiteDatabase): + (WebCore::SQLiteDatabase::close): + * storage/DatabaseThread.cpp: + (WebCore::DatabaseThread::start): + (WebCore::DatabaseThread::databaseThread): remove m_threadID from debug output. + * storage/LocalStorageThread.cpp: + (WebCore::LocalStorageThread::start): + (WebCore::LocalStorageThread::scheduleImport): + (WebCore::LocalStorageThread::scheduleSync): + (WebCore::LocalStorageThread::terminate): + * workers/WorkerThread.cpp: + (WebCore::WorkerThread::start): + (WebCore::WorkerThread::WorkerThread): + (WebCore::WorkerThread::start): + +2009-05-11 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler. + + Remove unused header that declared one function which was never defined anywhere. + + * WebCore.vcproj/WebCore.vcproj: + * platform/network/cf/ResourceResponseCFNet.cpp: Change to include ResourceResponse.h (which really means + platform/network/cf/ResourceResponse.h) + * platform/network/cf/ResourceResponseCFNet.h: Removed. + +2009-05-11 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Timothy Hatcher. + + https://bugs.webkit.org/show_bug.cgi?id=25213 + Fix assert during Inspector destruction. + + * inspector/InspectorController.cpp: + (WebCore::InspectorController::inspectedPageDestroyed): Moved closing + inspector above removing InspectorController object to fix JS errors, + added clearing inspector page ptr. + +2009-05-11 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Holger Freyther. + + [Qt] Make sure that public APIs are properly exported on all Qt platforms + https://bugs.webkit.org/show_bug.cgi?id=25601 + + * WebCore.pro: Define QT_MAKEDLL for all non-static builds, not just for win + +2009-05-11 Csaba Osztrogonac <oszi@inf.u-szeged.hu> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=24284 + + * WebCore.pro: duplicated values removed from INCLUDEPATH + +2009-05-11 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Eric Seidel. + + Build fix Symbian; clean Up WebKit/Qt if ENABLE_NETSCAPE_PLUGIN_API=0 + https://bugs.webkit.org/show_bug.cgi?id=24688 + + * WebCore.pro: Use platform independent plugin stubs if ENABLE_NETSCAPE_PLUGIN_API=0 + * platform/qt/TemporaryLinkStubs.cpp: Remove stub functions for plugins + +2009-05-10 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + - fix a crash when deactivating a document that had adopted a <form> + element + + Test: fast/dom/HTMLFormElement/document-deactivation-callback-crash.html + + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Corrected the + logic here: <form> elements should be registered for document activation + callbacks if and only if autocomplete is off. + +2009-05-10 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Dan Bernstein. + + <rdar://problem/6867598> REGRESSION (r42483): Have to enter credentials twice when trying + to view protected MobileMe video + + Add a temporary workaround. + + * platform/network/ResourceHandleInternal.h: + (WebCore::ResourceHandleInternal::ResourceHandleInternal): + Added an m_useSiteSpecificQuirks boolean (Mac-only). A Frame pointer is only available when + starting a request, so we need to store this data for later use. + + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::start): Initialize m_useSiteSpecificQuirks. + (WebCore::ResourceHandle::receivedCredential): Use per-session credentials with gallery.me.com. + +2009-05-10 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Dan Bernstein. + + <rdar://problem/6870383> Have to enter credentials twice when downloading from a protected page + + * platform/network/cf/AuthenticationCF.cpp: + * platform/network/cf/AuthenticationCF.h: + (WebCore::WebCoreCredentialStorage::set): + (WebCore::WebCoreCredentialStorage::get): + * platform/network/cf/ResourceHandleCFNet.cpp: + Move WebCore credential storage to AuthenticationCF, so that WebKit could use it (macthing + an earlier Mac change). + +2009-05-10 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Dan Bernstein. + + Match newer XMLHttpRequest draft and make withCredential setter raise an exception when + called at a wrong time. + + No test, because we are waiting for a newer version of system frameworks to test the attribute. + + * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::setWithCredentials): + * xml/XMLHttpRequest.h: + * xml/XMLHttpRequest.idl: + Raise INVALID_STATE_ERR if the state is not OPENED, or if the send() flag is true. + +2009-05-10 Dan Bernstein <mitz@apple.com> + + Reviewed by Dave Kilzer. + + - fix https://bugs.webkit.org/show_bug.cgi?id=25602 + REGRESSION: fast/overflow/overflow-focus-ring.html seems double-drawn + on ToT + + Test: fast/layers/self-painting-outline.html + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::paintLayer): Paint the layer's own outline only + if it is a self-painting layer. + +2009-05-09 Dan Bernstein <mitz@apple.com> + + Reviewed by Geoffrey Garen and Mark Rowe. + + - fix https://bugs.webkit.org/show_bug.cgi?id=25666 + Assertion failure in Node::setDocument() + (willMoveToNewOwnerDocumentWasCalled) when adopting a <form> element + + Test: fast/dom/HTMLFormElement/adopt-assertion.html + + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::willMoveToNewOwnerDocument): Overrides of + this method are required to call the base class implementation. Do it. + (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Ditto. + +2009-03-29 Kevin Ollivier <kevino@theolliviers.com> + + Reviewed by Maciej Stachowiak. + + WebCore::DocumentLoader::mainReceivedError now asserts if error.isNull(), so + make sure CURL does not create empty ResourceError() objects. + + https://bugs.webkit.org/show_bug.cgi?id=24927 + + * platform/network/curl/ResourceHandleManager.cpp: + (WebCore::ResourceHandleManager::downloadTimerCallback): + +2009-05-09 Gustavo Noronha Silva <gns@gnome.org> + + Build fix, adding missing files to make dist. + + * GNUmakefile.am: + +2009-05-08 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein + + https://bugs.webkit.org/show_bug.cgi?id=25656 + + Reduce the inline capacity of CSSParserValueList's m_values + vector to reduce the size of CSSParserValueList from 544 to 160 bytes in 64-bit. + + * css/CSSParserValues.h: + +2009-05-08 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Not reviewed. Used sort-Xcode-project-file to sort the XCode project file - it hasn't been done for a while. + + * WebCore.xcodeproj/project.pbxproj: + +2009-05-08 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + - fix <rdar://problem/6864786> REGRESSION: Crash below + ApplyStyleCommand::applyInlineStyleToRange when reviewing a patch in + Bugzilla + + Test: editing/style/apply-through-end-of-document.html + + * editing/ApplyStyleCommand.cpp: + (WebCore::ApplyStyleCommand::applyInlineStyleToRange): Added a null + check for the case of a range extending through the end of the document, + in which pastEndNode is 0. + +2009-05-08 Douglas R. Davidson <ddavidso@apple.com> + + Reviewed by Beth Dakin. + + <rdar://problem/6857446> REGRESSION (Safari 3-4): Contraction base + marked as misspelled even though contraction is a word + Make sure spelling underline does not persist on words like + <doesn't>. + + * editing/TypingCommand.cpp: + (WebCore::TypingCommand::typingAddedToOpenCommand): + +2009-05-08 Kevin Watters <kevinwatters@gmail.com> + + Reviewed by Kevin Ollivier. + + Make sure the path's refdata isn't deleted before we're done with the object. + + https://bugs.webkit.org/show_bug.cgi?id=25652 + + * platform/graphics/wx/PathWx.cpp: + (WebCore::Path::~Path): + (WebCore::Path::Path): + (WebCore::Path::translate): + +2009-05-08 Kevin Watters <kevinwatters@gmail.com> + + Reviewed by Darin Adler. + + Fix for memory leak on Mac. + + https://bugs.webkit.org/show_bug.cgi?id=25650 + + * platform/wx/wxcode/mac/carbon/fontprops.cpp: + (wxFontProperties::wxFontProperties): + +2009-05-08 Beth Dakin <bdakin@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/6857446> REGRESSION (r37591): Cannot print or + preview from maps.yandex.ru + + We need to fall into the stretchesToViewHeight() quirk when we are + printing and we are the root and the root has percentage height OR + when we are the body and the root has percentage height. Otherwise + we have a height of 0 and can run into painting troubles. + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::calcHeight): + +2009-05-08 Douglas Davidson <ddavidso@apple.com> + + Reviewed by Darin Adler. + + Fixes for <rdar://problem/6852771>. + Prevent text checking replacement immediately after an apostrophe + and automatic link addition except immediately after typing. + + * editing/Editor.cpp: + (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): + +2009-05-08 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25627 + Bug 25627: HTMLMediaElement: some errors should fire on <source> elements + + Update for HTML5 spec change to fire 'error' events on <source> element + when there is a failure while processing/loading a <source>. + + Test: media/video-source-error.html + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::enqueueEvent): Remove white-space. + (WebCore::HTMLMediaElement::loadInternal): Call cancelPendingEventsAndCallbacks instead + of just calling m_pendingEvents.clear() as we now also need to cancel pending errors on + all <source> element. + (WebCore::HTMLMediaElement::selectMediaResource): Call isSafeToLoadURL() here instead of in + loadResource() as we need to report errors differently depending on the type of failure. Use + KURL instead of String. + (WebCore::HTMLMediaElement::loadNextSourceChild): nextSourceChild -> selectNextSourceChild. + Fail silently when there are no more <source> canditates because that is what spec mandates. + Keep url as KURL instead of converting to String. + (WebCore::HTMLMediaElement::loadResource): ASSERT that the URL is safe to load as we now + assume the safety check now done before this function. Takes KURL instead of String. + (WebCore::HTMLMediaElement::isSafeToLoadURL): New, checks to see if a url is safe to load, logs + failure if not. + (WebCore::HTMLMediaElement::noneSupported): MEDIA_ERR_NONE_SUPPORTED -> MEDIA_ERR_SRC_NOT_SUPPORTED + (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks): New, clear all events pending on + the media and all source elements. + (WebCore::HTMLMediaElement::setNetworkState): Fire an error on the source element when the + the failure happened while processing one. Only call nonSupported() when the failure happened + while processing media element 'src' attribute. + (WebCore::HTMLMediaElement::havePotentialSourceChild): nextSourceChild -> selectNextSourceChild. + Deal with selectNextSourceChild returning a KURL instead of a String. + (WebCore::HTMLMediaElement::selectNextSourceChild): Renamed from nextSourceChild, add optional + param to control whether or not errors are fired on a source element when it will not be used. + Check safety of url here instead of waiting until loadResource(). Return a KURL instead of a + String. + (WebCore::HTMLMediaElement::initialURL): nextSourceChild -> selectNextSourceChild. Keep url as + a KURL instead of a String. + * html/HTMLMediaElement.h: + (WebCore::HTMLMediaElement::): + + * html/HTMLSourceElement.cpp: + (WebCore::HTMLSourceElement::HTMLSourceElement): Initialize timer related variables. + (WebCore::HTMLSourceElement::scheduleErrorEvent): New, start one-shot timer to fire an error + event ASAP. + (WebCore::HTMLSourceElement::cancelPendingErrorEvent): New, cancel pending error event. + (WebCore::HTMLSourceElement::errorEventTimerFired): New, fire error event if it has not been + cancelled. + * html/HTMLSourceElement.h: + + * html/MediaError.h: + (WebCore::MediaError::): MEDIA_ERR_NONE_SUPPORTED -> MEDIA_ERR_SRC_NOT_SUPPORTED + * html/MediaError.idl: Ditto + +2009-05-08 Dan Bernstein <mitz@apple.com> + + Reviewed by Maciej Stachowiak. + + - fix <rdar://problem/6859955> Undoing typed text after selecting all + leaves non-text areas highlighted + + Test: fast/repaint/selection-clear.html + + When RenderView::clearSelection() is called from + SelectionController::nodeWillBeRemoved(), selected renderers may already + be marked for layout, which means that they can no longer compute + their selection repaint info. Instead, an empty IntRect (or GapRects) is + returned, leading to incomplete repaint. + + The fix is not to rely on individual renderers when clearing the + selection, but instead, cache the bounding rectangle of the selected + blocks' GapRects when setting the selection, and invalidate that + entire rectangle when clearing it. + + * rendering/RenderView.cpp: + (WebCore::RenderView::setSelection): Added a parameter saying whether + the repainting of selected blocks should include both + previously-selected areas and newly-selected areas or only + newly-selected areas. The default is both. Also compute + m_cachedSelectionBounds to be the bounding rectangle of the + new selection's BlockSelectionInfos' GapRects. + (WebCore::RenderView::clearSelection): Repaint m_cachedSelectionBounds, + and tell setSelection() that it should not paint areas that were in + the old selection's BlockSelectionInfos' GapRects. + * rendering/RenderView.h: + (WebCore::RenderView::): + +2009-05-08 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Maciej Stachowiak. + + <rdar://problem/6868773> NPN_GetAuthenticationInfo does not work with non-permanent credentials + + * WebCore.base.exp: + * platform/network/mac/AuthenticationMac.h: + (WebCore::WebCoreCredentialStorage::set): + (WebCore::WebCoreCredentialStorage::get): + * platform/network/mac/AuthenticationMac.mm: + * platform/network/mac/ResourceHandleMac.mm: + Moved WebCoreCredentialStorage to AuthenticationMac, so that it could be used from WebKit. + +2009-05-08 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> + + Reviewed by Simon Hausmann. + + Fix the Qt build, add missing JSC_HOST_CALL macros to the runtime + call methods. + + * bridge/qt/qt_runtime.h: + +2009-05-08 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Mark Rowe. + + Add missing strings to localizedStrings.js + https://bugs.webkit.org/show_bug.cgi?id=25635 + + Add the strings "Delete", "Key", "Refresh" and "Value". + + * English.lproj/localizedStrings.js: + +2009-05-08 Robert Hogan <robert@roberthogan.net> + + Reviewed, tweaked and landed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=24992 + [Qt] crash at http://browserspy.dk/browser.php + + This cannot be easily tested in DRT, because it relies on interaction with QApplication, + but the added assertions guard against re-introducing this issue. + + * loader/FrameLoader.cpp: (WebCore::FrameLoader::didOpenURL): Don't make client calls + while the frame is being constructed, because the intermediate state without a document + is something we don't want to expose. + + * page/Frame.cpp: + (WebCore::Frame::setJSStatusBarText): Assert that the frame has a document, which is an + approximation of it being in a consistent state for client calls. + (WebCore::Frame::setJSDefaultStatusBarText): Ditto. + +2009-05-07 Mark Rowe <mrowe@apple.com> + + Rubber-stamped by Oliver Hunt. + + Fix <https://bugs.webkit.org/show_bug.cgi?id=25640>. + Bug 25640: Crash on quit in r43384 nightly build on Leopard w/ Safari 4 beta installed + + Roll out r43366 as it removed symbols that Safari 4 Beta uses. + + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::matchFunc): + (WebCore::openFunc): + (WebCore::createStringParser): + (WebCore::createMemoryParser): + * loader/icon/IconDatabase.cpp: + (WebCore::IconDatabase::open): + * platform/sql/SQLiteDatabase.cpp: + (WebCore::SQLiteDatabase::SQLiteDatabase): + (WebCore::SQLiteDatabase::close): + * storage/DatabaseThread.cpp: + (WebCore::DatabaseThread::DatabaseThread): + (WebCore::DatabaseThread::start): + (WebCore::DatabaseThread::databaseThread): + * storage/LocalStorageThread.cpp: + (WebCore::LocalStorageThread::LocalStorageThread): + (WebCore::LocalStorageThread::start): + (WebCore::LocalStorageThread::localStorageThread): + (WebCore::LocalStorageThread::scheduleImport): + (WebCore::LocalStorageThread::scheduleSync): + (WebCore::LocalStorageThread::terminate): + * workers/WorkerThread.cpp: + (WebCore::WorkerThread::WorkerThread): + (WebCore::WorkerThread::start): + +2009-05-08 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + Unify scrolling code via adjustments and keys. Use the WebCore + defined constants, since that's what people are most used to at + this point. + + * platform/gtk/ScrollViewGtk.cpp: + (WebCore::ScrollView::platformHandleHorizontalAdjustment): + (WebCore::ScrollView::platformHandleVerticalAdjustment): + +2009-05-07 David Levin <levin@chromium.org> + + Reviewed by NOBODY. + Suggested by Oliver Hunt. + + Rolling back http://trac.webkit.org/changeset/43385 + because we have to use mac artwork for the underline on OSX. + + * platform/graphics/cg/GraphicsContextCG.cpp: + * platform/graphics/mac/GraphicsContextMac.mm: + (WebCore::createPatternColor): + (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): + * platform/graphics/win/GraphicsContextCGWin.cpp: + (WebCore::setCGStrokeColor): + (WebCore::spellingPatternColor): + (WebCore::grammarPatternColor): + (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): + +2009-05-07 John Grabowski <jrg@chromium.org> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=25573 + Unify use of CG-common routine for drawLineForMisspellingOrBadGrammar. + Cleanup for WebKit, but required for Chromium happiness. + + * platform/graphics/cg/GraphicsContextCG.cpp: + (WebCore::spellingPatternColor): + (WebCore::grammarPatternColor): + (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): + * platform/graphics/mac/GraphicsContextMac.mm: + * platform/graphics/win/GraphicsContextCGWin.cpp: + +2009-05-07 Darin Adler <darin@apple.com> + + Reviewed by Simon Fraser. + + Bug 25575: Registered mutation event listener crashes HTMLMediaElement + https://bugs.webkit.org/show_bug.cgi?id=25575 + + Test: fast/media/video-controls-with-mutation-event-handler.html + + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Don't call setAttribute. + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::createTimeline): Call setAttribute here. + +2009-05-07 Simon Fraser <simon.fraser@apple.com> + + Rubber Stamped by Dave Hyatt + + Shuffle the data members to minimize padding. + + * rendering/RenderTableSection.cpp: + (WebCore::RenderTableSection::RenderTableSection): + * rendering/RenderTableSection.h: + +2009-05-07 Simon Fraser <simon.fraser@apple.com> + + Rubber Stamped by Dave Hyatt + + Shuffle the data members to make Events 8 bytes smaller in 64-bit. + + * dom/Event.cpp: + (WebCore::Event::Event): + * dom/Event.h: + +2009-05-07 Eric Seidel <eric@webkit.org> + + Reviewed by Beth Dakin. + + Fix regression caused by r41469, add test case to prevent it from + happening again. + https://bugs.webkit.org/show_bug.cgi?id=25252 + + hasLayer() was true during removeOnlyThisLayer()/ + updateLayerPositions() + which caused updateLayerPosition()'s walk up the render tree to + include offsets from the layer we were about to remove. + + I'm not 100% convinced that this wasn't a bug in + updateLayerPosition() or in RenderBoxModelObject::styleDidChange, + because the layer in question is not the containing block for the + block which gets laid out wrong. But this restores the previous + behavior and adds a test. So the next time someone is in here re- + factoring, they will at least know if they break something. + + Test: fast/layers/remove-only-this-layer-update.html + + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::destroyLayer): + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::removeOnlyThisLayer): + * rendering/RenderObject.cpp: + (WebCore::RenderObject::destroy): + * rendering/RenderWidget.cpp: + (WebCore::RenderWidget::destroy): + +2009-05-07 Dmitry Titov <dimich@chromium.org> + + Attempt to fix GTK build. + + * platform/graphics/GlyphPageTreeNode.h: add #include <string.h> to ensure memcpy and memset are defined. + +2009-05-07 Oliver Hunt <oliver@apple.com> + + Reviewed by Gavin Barraclough. + + Improve native call performance + + Add calling convention declarations where necessary, and update bindings + script to generate them as well. + + * bindings/js/JSHTMLCollectionCustom.cpp: + (WebCore::callHTMLCollection): + * bindings/js/JSNodeListCustom.cpp: + (WebCore::callNodeList): + * bindings/js/JSPluginElementFunctions.cpp: + (WebCore::callPlugin): + * bindings/js/JSQuarantinedObjectWrapper.h: + * bindings/scripts/CodeGeneratorJS.pm: + * bridge/runtime_method.cpp: + (JSC::callRuntimeMethod): + * bridge/runtime_object.cpp: + (JSC::callRuntimeObject): + +2009-05-07 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by Dave Hyatt. + + Fixes: https://bugs.webkit.org/show_bug.cgi?id=25617 + + Fix memory/performance regression because of too much form control related abstraction just for WMLs sake. + + Remove FormControlElement and FormControlElementWithState base classes, as the overhead is too high for the + gain. HTML has no benefit of that kind of abstraction, so we're going to move the functionality to Element directly. + + The functions now living in FormControlElement(WithState) lived in Node/Element/HTMLFormControlElement before. + This patches moves all of them in a central place in Element.h, as virtual functions with an inline default implementation. + To avoid confusion like isEnabled() living on Node, before the creation of the FormControlElement abstraction layer, all + methods are renamed to clarify where they belong to. All renames are listed here: + + From FormControlElement: + - isEnabled() -> isEnabledFormControl() + - isReadOnly() -> isReadOnlyFormControl() + - isTextControl() -> isTextFormControl() + - valueMatchesRenderer() -> formControlValueMatchesRenderer() + - setValueMatchesRenderer() -> setFormControlValueMatchesRenderer() + - name() -> formControlName() + - type() -> formControlType() + + From FormControlElementWithState: + - saveState() -> saveFormControlState() + - restoreState() -> restoreFormControlState() + + A lot of Element -> FormControlElement(WithState) casting is gone again, so it's not only a memory, but also a performance progression. + + No testcases affected, no new tests needed. + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * WebCoreSources.bkl: + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::canShareStyleWithElement): + (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): + * dom/Document.cpp: + (WebCore::Document::formElementsState): + * dom/Document.h: + (WebCore::Document::registerFormElementWithState): + (WebCore::Document::unregisterFormElementWithState): + * dom/Element.h: + (WebCore::Element::isFormControlElement): + (WebCore::Element::isEnabledFormControl): + (WebCore::Element::isReadOnlyFormControl): + (WebCore::Element::isTextFormControl): + (WebCore::Element::formControlValueMatchesRenderer): + (WebCore::Element::setFormControlValueMatchesRenderer): + (WebCore::Element::formControlName): + (WebCore::Element::formControlType): + (WebCore::Element::saveFormControlState): + (WebCore::Element::restoreFormControlState): + * dom/FormControlElement.cpp: Removed. + * dom/FormControlElement.h: Removed. + * dom/FormControlElementWithState.cpp: Removed. + * dom/FormControlElementWithState.h: Removed. + * dom/InputElement.cpp: + (WebCore::InputElement::setValueFromRenderer): + * html/HTMLButtonElement.cpp: + (WebCore::HTMLButtonElement::formControlType): + * html/HTMLButtonElement.h: + * html/HTMLFieldSetElement.cpp: + (WebCore::HTMLFieldSetElement::formControlType): + * html/HTMLFieldSetElement.h: + * html/HTMLFormControlElement.cpp: + (WebCore::HTMLFormControlElement::attach): + (WebCore::HTMLFormControlElement::formControlName): + (WebCore::HTMLFormControlElement::willValidate): + (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState): + (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState): + (WebCore::HTMLFormControlElementWithState::willMoveToNewOwnerDocument): + (WebCore::HTMLFormControlElementWithState::didMoveToNewOwnerDocument): + (WebCore::HTMLFormControlElementWithState::finishParsingChildren): + * html/HTMLFormControlElement.h: + (WebCore::HTMLFormControlElement::isTextFormControl): + (WebCore::HTMLFormControlElement::isEnabledFormControl): + (WebCore::HTMLFormControlElement::formControlValueMatchesRenderer): + (WebCore::HTMLFormControlElement::setFormControlValueMatchesRenderer): + (WebCore::HTMLFormControlElement::isReadOnlyFormControl): + (WebCore::HTMLFormControlElement::type): + (WebCore::HTMLFormControlElement::name): + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::formControlName): + (WebCore::HTMLInputElement::formControlType): + (WebCore::HTMLInputElement::saveFormControlState): + (WebCore::HTMLInputElement::restoreFormControlState): + (WebCore::HTMLInputElement::parseMappedAttribute): + (WebCore::HTMLInputElement::detach): + (WebCore::HTMLInputElement::setValue): + (WebCore::HTMLInputElement::setFileListFromRenderer): + * html/HTMLInputElement.h: + (WebCore::HTMLInputElement::readOnly): + (WebCore::HTMLInputElement::isTextFormControl): + * html/HTMLKeygenElement.cpp: + (WebCore::HTMLKeygenElement::formControlType): + * html/HTMLKeygenElement.h: + * html/HTMLLegendElement.cpp: + (WebCore::HTMLLegendElement::formControlType): + * html/HTMLLegendElement.h: + * html/HTMLOptGroupElement.cpp: + (WebCore::HTMLOptGroupElement::formControlType): + * html/HTMLOptGroupElement.h: + * html/HTMLOptionElement.cpp: + (WebCore::HTMLOptionElement::formControlType): + * html/HTMLOptionElement.h: + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::formControlType): + (WebCore::HTMLSelectElement::saveFormControlState): + (WebCore::HTMLSelectElement::restoreFormControlState): + * html/HTMLSelectElement.h: + * html/HTMLTextAreaElement.cpp: + (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): + (WebCore::HTMLTextAreaElement::formControlType): + (WebCore::HTMLTextAreaElement::saveFormControlState): + (WebCore::HTMLTextAreaElement::restoreFormControlState): + (WebCore::HTMLTextAreaElement::updateValue): + (WebCore::HTMLTextAreaElement::setValue): + * html/HTMLTextAreaElement.h: + (WebCore::HTMLTextAreaElement::readOnly): + (WebCore::HTMLTextAreaElement::isTextFormControl): + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::isEnabled): + (WebCore::AccessibilityRenderObject::canSetFocusAttribute): + * page/DragController.cpp: + (WebCore::DragController::concludeEditDrag): + * rendering/RenderMenuList.cpp: + (WebCore::RenderMenuList::itemIsEnabled): + * rendering/RenderTextControl.cpp: + (WebCore::updateUserModifyProperty): + (WebCore::RenderTextControl::setInnerTextValue): + * rendering/RenderTextControl.h: + * rendering/RenderTextControlMultiLine.cpp: + (WebCore::RenderTextControlMultiLine::subtreeHasChanged): + * rendering/RenderTextControlSingleLine.cpp: + (WebCore::RenderTextControlSingleLine::updateFromElement): + * rendering/RenderTheme.cpp: + (WebCore::RenderTheme::isEnabled): + (WebCore::RenderTheme::isReadOnlyControl): + * rendering/RenderThemeChromiumMac.mm: + (WebCore::RenderThemeChromiumMac::adjustMenuListStyle): + * rendering/RenderThemeMac.mm: + (WebCore::RenderThemeMac::adjustMenuListStyle): + * rendering/RenderThemeSafari.cpp: + (WebCore::RenderThemeSafari::adjustMenuListStyle): + * wml/WMLFormControlElement.cpp: + * wml/WMLFormControlElement.h: + (WebCore::WMLFormControlElement::isReadOnlyFormControl): + (WebCore::WMLFormControlElement::isTextFormControl): + (WebCore::WMLFormControlElement::formControlValueMatchesRenderer): + (WebCore::WMLFormControlElement::setFormControlValueMatchesRenderer): + * wml/WMLInputElement.cpp: + (WebCore::WMLInputElement::WMLInputElement): + (WebCore::WMLInputElement::isKeyboardFocusable): + (WebCore::WMLInputElement::isMouseFocusable): + (WebCore::WMLInputElement::dispatchBlurEvent): + (WebCore::WMLInputElement::formControlType): + (WebCore::WMLInputElement::formControlName): + (WebCore::WMLInputElement::setValue): + (WebCore::WMLInputElement::saveFormControlState): + (WebCore::WMLInputElement::restoreFormControlState): + (WebCore::WMLInputElement::parseMappedAttribute): + (WebCore::WMLInputElement::detach): + (WebCore::WMLInputElement::appendFormData): + (WebCore::WMLInputElement::init): + * wml/WMLInputElement.h: + (WebCore::WMLInputElement::isTextFormControl): + * wml/WMLOptGroupElement.cpp: + (WebCore::WMLOptGroupElement::formControlType): + * wml/WMLOptGroupElement.h: + * wml/WMLOptionElement.cpp: + (WebCore::WMLOptionElement::formControlType): + * wml/WMLOptionElement.h: + +2009-05-07 Dmitry Titov <dimich@chromium.org> + + Reviewed by Alexey Proskuryakov and Adam Roben. + + https://bugs.webkit.org/show_bug.cgi?id=25348 + Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap. + + Most of the change is in WTF. + Unless noted, all the following files changed to use the new ThreadIdentifier::isValid() + method instead of just doing 'if(m_threadID)' kind of checks, since ThreadIdentifier + is now a class rather then an integer. + Also, there is no need to initialize threadID in constructors to 0 now. + + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::libxmlLoaderThread): use DEFINE_STATIC_LOCAL and accessor function for static thread id, + since now ThreadIdentifier needs construction and we avoid having global initializers. + (WebCore::matchFunc): use the new accessor function. + (WebCore::openFunc): ditto. + (WebCore::createStringParser): ditto. + (WebCore::createMemoryParser): ditto. + * loader/icon/IconDatabase.cpp: + (WebCore::IconDatabase::open): + * platform/sql/SQLiteDatabase.cpp: + (WebCore::SQLiteDatabase::SQLiteDatabase): + (WebCore::SQLiteDatabase::close): + * storage/DatabaseThread.cpp: + (WebCore::DatabaseThread::start): + (WebCore::DatabaseThread::databaseThread): remove m_threadID from debug output. + * storage/LocalStorageThread.cpp: + (WebCore::LocalStorageThread::start): + (WebCore::LocalStorageThread::scheduleImport): + (WebCore::LocalStorageThread::scheduleSync): + (WebCore::LocalStorageThread::terminate): + * workers/WorkerThread.cpp: + (WebCore::WorkerThread::start): + (WebCore::WorkerThread::WorkerThread): + (WebCore::WorkerThread::start): + +2009-05-07 Simon Fraser <simon.fraser@apple.com> + + Rubber Stamped by Dave Hyatt + + Shuffle the data members to minimize padding. + + * dom/ClassNames.h: + +2009-05-07 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + <rdar://problem/6864062> Shrink GlyphPage from 4112 to 2576 bytes in 64-bit + https://bugs.webkit.org/show_bug.cgi?id=25605 + + Shrink GlyphPage by splitting the array of GlyphData, which has lots + of padding, into separate Glyph and SimpleFontData* arrays. + + * platform/graphics/Font.h: + glyphDataForCharacter has to return a GlyphData by value now. + + * platform/graphics/FontFastPath.cpp: + (WebCore::Font::glyphDataForCharacter): + Return GlyphData by value. + + * platform/graphics/GlyphPageTreeNode.cpp: + (WebCore::GlyphPageTreeNode::initializePage): + Better encapsulation of GlyphPage, using the new methods. + + * platform/graphics/Font.h: + * platform/graphics/FontFastPath.cpp: + (WebCore::Font::glyphDataForCharacter): + * platform/graphics/GlyphPageTreeNode.cpp: + (WebCore::GlyphPageTreeNode::initializePage): + * platform/graphics/GlyphPageTreeNode.h: + (WebCore::GlyphData::GlyphData): + (WebCore::GlyphPage::indexForCharacter): + (WebCore::GlyphPage::glyphDataForCharacter): + (WebCore::GlyphPage::glyphDataForIndex): + (WebCore::GlyphPage::glyphAt): + (WebCore::GlyphPage::fontDataForCharacter): + (WebCore::GlyphPage::setGlyphDataForCharacter): + (WebCore::GlyphPage::setGlyphDataForIndex): + (WebCore::GlyphPage::copyFrom): + (WebCore::GlyphPage::clear): + +2009-05-07 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25625 + Implement Image/Option constructors in V8 bindings. + + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::NAMED_PROPERTY_GETTER): Removed old JS-based code. + * bindings/v8/custom/V8HTMLImageElementConstructor.cpp: Added. + * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp: Added. + +2009-05-07 Brady Eidson <beidson@apple.com> + + I hate myself for doing this, but need to fix that ChangeLog entry. + + * ChangeLog: + +2009-05-07 Brady Eidson <beidson@apple.com> + + Rubberstamped by Darin Adler + + * html/HTMLParser.cpp: Use the correct style of BUILDING_ON_* for WebCore. + * html/HTMLParser.h: Ditto + +2009-05-07 David Hyatt <hyatt@apple.com> + + Restore intrinsic margins to all form controls on Mac and Windows. Some of this regressed in 43007 + when textareas were given explicit margins. Some of it had already regressed earlier whenever intrinsic + margins were turned off in themeWin.css. + + Reviewed by Beth Dakin. + + * css/html4.css: + * css/themeWin.css: + +2009-05-07 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler and Alexey Proskuryakov. + + <rdar://problem/6863795> Exception occurs in Mail when attempting to create signatures due to <head> element creation + + * dom/Document.cpp: + (WebCore::Document::implicitClose): Check shouldCreateImplicitHead() before creating it. + + * html/HTMLParser.cpp: + (WebCore::HTMLParser::handleError): Check shouldCreateImplicitHead() before creating it. + (WebCore::HTMLParser::bodyCreateErrorCheck): Ditto. + (WebCore::shouldCreateImplicitHead): For Tiger/Leopard when running under Mail, the implicit <head> shouldn't be created. + * html/HTMLParser.h: + (WebCore::shouldCreateImplicitHead): Inline implementation for non-Tiger/Leopard platforms + +2009-05-07 Antony Sargent <asargent@chromium.org> + + Reviewed by Darin Fisher. + + Fix a memory leak in V8EventListenerList::remove. + + https://bugs.webkit.org/show_bug.cgi?id=25618 + + No new functionality so no new tests. + + * bindings/v8/V8EventListenerList.cpp: + (WebCore::V8EventListenerList::remove): + +2009-05-07 Darin Fisher <darin@chromium.org> + + Fix Chromium build bustage. + + * bindings/v8/custom/V8HTMLFormElementCustom.cpp: Add missing + HTMLCollection.h include. + +2009-05-07 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Beth Dakin. + + Bug 25598: AX: if a radio button has a label and a title, the label is not exposed + https://bugs.webkit.org/show_bug.cgi?id=25598 + + Test: accessibility/radio-button-title-label.html + + * page/AccessibilityObject.h: + (WebCore::AccessibilityObject::exposesTitleUIElement): + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::exposesTitleUIElement): + (WebCore::AccessibilityRenderObject::titleUIElement): + (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): + * page/AccessibilityRenderObject.h: + +2009-05-07 Darin Fisher <darin@chromium.org> + + Fix Chromium build bustage. + + * bindings/v8/custom/V8HTMLFormElementCustom.cpp: + (WebCore::INDEXED_PROPERTY_GETTER): ":" should be "::" + +2009-05-07 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=25610 + [GTK] text.caretOffset is reportedly always 0 + + Use the right function to get the caret offset in an + element. selectionStart() would only work for text + controls (there's even an ASSERT when calculating the selected + text range). Instead just get the selection and get the offset of + the start position. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-05-07 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Fix support for antialiased CSS border-radius + + WebKit implements border-radius by drawing a double-size border, + and then letting the clip constrain the border to the right width + and position. This requires support for antialiased clipping, as + well as painting, to get a nice smooth border. + + Qt only does antialiased clipping if the anti-alias flag is set + at the time of clipping, so we have to enable this in the method + addInnerRoundedRectClip(), as well as when we draw the border. + + Currently the raster-engine is the only Qt paint engine to support + anti-aliased clipping, but the OpenGL and Mac paint engines could + potentially support this in the future. + + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::GraphicsContext::strokeArc): + (WebCore::GraphicsContext::addInnerRoundedRectClip): + +2009-05-07 Adam Langley <agl@google.com> + + Reviewed by Eric Seidel. + + Render empty optgroup elements. + + https://bugs.webkit.org/show_bug.cgi?id=24900 + + Currently, optgroup elements which are empty are not rendered. The + HTML specification gives no guidance on this situation. + + However, the test for being empty is that they have no children, thus + this will not render: + <optgroup label="test"></optgroup> + while this /will/ render (because of the text node child): + <optgroup label="test"> </optgroup> + + This patch will cause both cases to render which matches IE's and + Firefox's behaviour. + + The difference only appears when opening the select element and does + not appear in the render tree. Thus, a manual layout-test is required. + + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::recalcListItems): + * manual-tests/optgroup-empty-and-nested.html: Added. + +2009-05-06 Julie Parent <jparent@google.com> + + Reviewed by Eric Seidel. + + Bug 25608: Unused m_frame in ChromiumClipboard. + https://bugs.webkit.org/show_bug.cgi?id=25608 + + * platform/chromium/ClipboardChromium.h: + + No tests added as this is only removing dead code, no functional changes. + +2009-05-06 Dan Bernstein <mitz@apple.com> + + Reviewed by Simon Fraser and Justin Garcia. + + - fix another part of <rdar://problem/6703873> Triple-click quoted line + and type Return creates an extra quoted blank line + + Test: editing/inserting/6703873-2.html + + * editing/BreakBlockquoteCommand.cpp: + (WebCore::BreakBlockquoteCommand::doApply): Corrected the logic for + determining the first node that should go into the new blockquote + given the split position: if it is at the end of a container, use the + next node after the container. Otherwise, use the child at the + position's offset. + +2009-05-06 Kevin Ollivier <kevino@theolliviers.com> + + wx build fix, fixes for wx trunk builds. + + * platform/graphics/wx/ImageWx.cpp: + (WebCore::BitmapImage::draw): + * platform/wx/RenderThemeWx.cpp: + * platform/wx/wxcode/mac/carbon/fontprops.cpp: + (wxFontProperties::wxFontProperties): + +2009-05-06 Albert J. Wong <ajwong@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25597 + Fix API drift compile errors that occurred while this was ifdef-ed out. + The two big issues were that RenderObject::element() became + RenderObject::node() and some of the wk* drawing functions had + an extra theme parameter added to the argument list. + + * rendering/RenderThemeChromiumMac.mm: + (WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton): + (WebCore::RenderThemeChromiumMac::paintMediaMuteButton): + (WebCore::RenderThemeChromiumMac::paintMediaPlayButton): + (WebCore::RenderThemeChromiumMac::paintMediaSeekBackButton): + (WebCore::RenderThemeChromiumMac::paintMediaSeekForwardButton): + (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack): + (WebCore::RenderThemeChromiumMac::paintMediaSliderThumb): + +2009-05-06 Jian Li <jianli@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25385 + Upstream changes to V8 bindings for supporting nested workers. + + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::WorkerContextExecutionProxy::ToV8Object): + (WebCore::WorkerContextExecutionProxy::EventTargetToV8Object): + * bindings/v8/custom/V8WorkerCustom.cpp: + (WebCore::getEventListener): + (WebCore::ACCESSOR_SETTER WorkerOnmessage): + (WebCore::CALLBACK_FUNC_DECL WorkerAddEventListener): + +2009-05-06 Dave Moore <davemoore@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25513 + The V8 bindings convert every javascript property to its associated css style + name. It then calls functions that convert that name to an id. This makes + getting or setting css styles on elements slow. + + The patch fixes this by caching the results of the transformation, mapping a + javascript property name to its css property id. It then calls the already + public webkit methods that take the id in place of the string property names. + + * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp: + +2009-05-06 Nate Chapin <japhet@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25591 + Upstream V8HTMLFormElement from the Chromium repository. + + * bindings/v8/custom/V8HTMLFormElementCustom.cpp: + (WebCore::INDEXED_PROPERTY_GETTER HTMLFormElement): Upstreamed from Chromium repository + (WebCore::NAMED_PROPERTY_GETTER HTMLFormElement): Changed empty element return case to return notHandledByInterceptor(); + (WebCore::CALLBACK_FUNC_DECL HTMLFormElementSubmit): Upstreamed from Chromium repository + +2009-05-06 Albert J. Wong <ajwong@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25595 + Upstream V8CanvasPixelArrayCustom from chromium port tree. + + * bindings/v8/V8CanvasPixelArrayCustom.cpp: Added. + +2009-05-06 Simon Fraser <simon.fraser@apple.com> + + Rubber-stampted by Eric Seidel + + Add braces to clarify logic flow in RenderObject::adjustStyleDifference. + Only affects ACCELERATED_COMPOSITING builds. + + * rendering/RenderObject.cpp: + (WebCore::RenderObject::adjustStyleDifference): + +2009-05-06 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein + + <rdar://problem/6862550> Reduce size of RenderText in 64-bit + + Rearrange data members of RenderText so that an int comes + first, to minimize padding. + + * rendering/RenderText.cpp: + (WebCore::RenderText::RenderText): + * rendering/RenderText.h: + +2009-05-06 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein + + <rdar://problem/6862823> Reduce size of RenderStyle in 64-bit + + Rearrange data members of RenderStyle to minimize padding + when building for 64-bit. + + * rendering/style/RenderStyle.cpp: + (WebCore::RenderStyle::RenderStyle): + * rendering/style/RenderStyle.h: + (WebCore::): + +2009-05-06 Darin Fisher <darin@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25596 + + Fixes Chromium build bustage caused by r43317 (making + RefCountedBase::m_refCount private) + + * page/chromium/AccessibilityObjectWrapper.h: + (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper): + +2009-05-06 Hin-Chung Lam <hclam@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25593 + + Refactor for MediaPlayerPrivate for Chromium port. Remove + the implementation of MediaPlayerPrivateInferface from it. + + * platform\graphics\chromium\MediaPlayerPrivateChromium.h: + +2009-05-06 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dave Hyatt, Dan Bernstein + + <rdar://problem/6860197> Reduce the size of FontFallbackList in 64-bit + + Re-order the data members of FontFallbackList to save 8 bytes when building 64-bit. + + * platform/graphics/FontFallbackList.cpp: + (WebCore::FontFallbackList::FontFallbackList): + * platform/graphics/FontFallbackList.h: + +2009-05-06 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler, Dan Bernstein + + <rdar://problem/6860068> Reduce size of InlineBox in 64-bit + + Re-order the data members of InlineBox to save 8 bytes when building 64-bit. + + * rendering/InlineBox.h: + (WebCore::InlineBox::InlineBox): + +2009-05-06 David Levin <levin@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25588 + Adding the custom v8 bindings Document.location. + + * bindings/v8/custom/V8DocumentLocationCustom.cpp: Added. + +2009-05-06 Kevin McCullough <kmccullough@apple.com> + + -Clarified a comment + + * editing/InsertParagraphSeparatorCommand.cpp: + (WebCore::InsertParagraphSeparatorCommand::doApply): + +2009-05-06 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Not reviewed. Fix WML enabled builds by including "MappedAttribute.h" in several places. + + * wml/WMLAElement.cpp: + * wml/WMLAccessElement.cpp: + * wml/WMLBRElement.cpp: + * wml/WMLCardElement.cpp: + * wml/WMLDoElement.cpp: + * wml/WMLElement.cpp: + * wml/WMLFieldSetElement.cpp: + * wml/WMLGoElement.cpp: + * wml/WMLImageElement.cpp: + * wml/WMLInputElement.cpp: + * wml/WMLMetaElement.cpp: + * wml/WMLOnEventElement.cpp: + * wml/WMLOptGroupElement.cpp: + * wml/WMLOptionElement.cpp: + * wml/WMLPElement.cpp: + * wml/WMLPostfieldElement.cpp: + * wml/WMLSetvarElement.cpp: + * wml/WMLTableElement.cpp: + * wml/WMLTemplateElement.cpp: + * wml/WMLTimerElement.cpp: + +2009-05-06 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=25526 + [Gtk] Additional support is needed for caret browsing + + Emit AtkText::text-selection-changed when the selection changes + and the current selection is of Range (ie, the start and end + positions are different) type. This seems to match what Gecko + does. + + * editing/gtk/SelectionControllerGtk.cpp: + (WebCore::SelectionController::notifyAccessibilityForSelectionChange): + +2009-05-05 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=25526 + [Gtk] Additional support is needed for caret browsing + + Emit AtkText::text-caret-moved when selection changes. + + * GNUmakefile.am: + * editing/SelectionController.h: + * editing/gtk/SelectionController.cpp: Added. + (WebCore::SelectionController::notifyAccessibilityForSelectionChange): + +2009-05-06 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Gustavo Noronha. + + Use mozilla cursors for the previously not implemented + cursors. The manual-tests/cursor.html is looking complete + now. + + * platform/gtk/CursorGtk.cpp: + (WebCore::cellCursor): + (WebCore::noDropCursor): + (WebCore::progressCursor): + (WebCore::noneCursor): + (WebCore::notAllowedCursor): + (WebCore::grabCursor): + (WebCore::grabbingCursor): + * platform/gtk/CursorGtk.h: + +2009-05-06 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Xan Lopez. + + Properly indent the header file. + + * platform/gtk/CursorGtk.h: + +2009-05-06 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Gustavo Noronha. + + Use the mozilla copyright header. Use MPL1.1/GPL2.0 + and LGPL2.1 as the license compared to LGPL2.0. + + * platform/gtk/CursorGtk.h: + +2009-05-06 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Gustavo Noronha. + + Move PluginView::invalidateRegion from the + TemporaryLinkStubs to PluginViewGtk.cpp and implement + it with a call to Widget::invalidate() just like + mac is doing. Optimisations would have to be window + system specific. + + * platform/gtk/TemporaryLinkStubs.cpp: + * plugins/gtk/PluginViewGtk.cpp: + (WebCore::PluginView::invalidateRegion): + +2009-05-06 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Holger Freyther. + + Misc fixes to InspectorClientGtk. + + * GNUmakefile.am: Add localizedStrings.js to webinspector_DATA. + This prevents copious amounts "Localized string not found" errors + in the console + +2009-05-06 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Ariya Hidayat. + + Fix the Qt build on Windows. + + * platform/graphics/GraphicsContext.h: + (WebCore::GraphicsContext::shouldIncludeChildWindows): Implemented dummy accessor. + +2009-05-06 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + Tweak WebCore.pro for being able to override the generated sources dir for the + generated_files target. + + * WebCore.pro: + +2009-05-06 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Holger Freyther. + + Fix the Qt/Windows build, use iface instead of interface to avoid conflict + with VS2005 headers. + + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState): + +2009-05-06 Joerg Bornemann <joerg.bornemann@trolltech.com> + + Reviewed by Simon Hausmann. + + We need to include StringExtras.h on Windows CE to access the strdup function. + + * plugins/PluginStream.cpp: + +2009-05-06 Soren Gjesse <sgjesse@chromium.org> + + Reviewed by Eric Seidel. + + Changed the toString behaviour for non document dom node event handlers in the V8 bindings. + https://bugs.webkit.org/show_bug.cgi?id=25544 + + In the V8 bindings non document dom node event handlers are wrapped in a number of with blocks and uses an inner + function. This causes the default toString on such a handler to return all this wrapper code. As some web sites + use the source of an event handler to create new functions this wrapper code causes compatibility problems. + + Create a specific toString function for these handlers which will return a function source compatible with the + source returned by the JSC bindings and other browsers. + + Test: fast/events/event-function-toString.html + + * bindings/v8/ScriptEventListener.cpp: + (WebCore::createAttributeEventListener): + * bindings/v8/V8LazyEventListener.cpp: + (WebCore::V8LazyEventListener::V8LazyEventListener): + (WebCore::V8LazyEventListener::getListenerFunction): + (WebCore::V8LazyEventListenerToString): + (WebCore::V8LazyEventListener::getWrappedListenerFunction): + * bindings/v8/V8LazyEventListener.h: + (WebCore::V8LazyEventListener::create): + +2009-05-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + Build QtWebKit as a framework on Mac + + This implies both debug and release build by default, unless + one of the --debug or --release config options are passed to + the build-webkit script. + + Frameworks can be disabled by passing CONFIG+=webkit_no_framework + to the build-webkit script. + + To be able to build both debug and release targets in parallel + we have to use separate output directories for the generated + sources, which is not optimal, but required to avoid race conditions. + + An optimization would be to only require this spit-up on Mac. + + * WebCore.pro: + +2009-05-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Use $$GENERATED_SOURCES_DIR as output when running bison + + A couple of the generators left the bison output file in the source + tree, and then moved it into $$GENERATED_SOURCES_DIR, which did not + work well when building release and debug configurations in parallel. + + * WebCore.pro: + +2009-05-06 Dan Bernstein <mitz@apple.com> + + Reviewed by Justin Garcia. + + - fix an assertion failure in RemoveNodeCommand() when deleting a <br> + between a block and a mail blockquote + + Test: editing/deleting/removeNodeCommand-assert.html + + * editing/DeleteSelectionCommand.cpp: + (WebCore::DeleteSelectionCommand::mergeParagraphs): Pass the start block + to prune() instead of passing m_upstreamStart.node(), because the latter + may have been removed already. + +2009-05-05 Eric Seidel <eric@webkit.org> + + No review, roll out only. + + Roll out r23072 since it broke layout tests + + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): + +2009-05-05 Ben Murdoch <benm@google.com> + + Reviewed by Eric Seidel. + + Add #if ENABLE(DATABASE) guards around database code so toggling ENABLE_DATABASE off does not break builds. + https://bugs.webkit.org/show_bug.cgi?id=24776 + + No functional changes, thus no tests. + + * bindings/js/JSCustomSQLStatementCallback.cpp: + * bindings/js/JSCustomSQLStatementCallback.h: + * bindings/js/JSCustomSQLStatementErrorCallback.cpp: + * bindings/js/JSCustomSQLStatementErrorCallback.h: + * bindings/js/JSCustomSQLTransactionCallback.cpp: + * bindings/js/JSCustomSQLTransactionCallback.h: + * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: + * bindings/js/JSCustomSQLTransactionErrorCallback.h: + * bindings/js/JSDatabaseCustom.cpp: + * bindings/js/JSSQLTransactionCustom.cpp: + * loader/EmptyClients.h: + * page/ChromeClient.h: + * storage/ChangeVersionWrapper.cpp: + * storage/ChangeVersionWrapper.h: + * storage/Database.cpp: + (WebCore::Database::databaseInfoTableName): + * storage/Database.h: + * storage/Database.idl: + * storage/DatabaseTask.cpp: + * storage/DatabaseTask.h: + * storage/DatabaseThread.cpp: + * storage/DatabaseThread.h: + * storage/DatabaseTracker.cpp: + * storage/DatabaseTracker.h: + * storage/DatabaseTrackerClient.h: + * storage/OriginQuotaManager.cpp: + * storage/OriginQuotaManager.h: + * storage/SQLStatement.cpp: + * storage/SQLStatement.h: + * storage/SQLTransaction.cpp: + * storage/SQLTransaction.h: + * storage/SQLTransaction.idl: + +2009-05-05 Jeremy Moskovich <jeremy@chromium.org> + + Reviewed by Eric Seidel. + + Add some documentation to InlineBox::x(),y(). + https://bugs.webkit.org/show_bug.cgi?id=25378 + + * rendering/InlineBox.h: + +2009-05-05 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Eric Seidel. + + Disable all the SVG features for WebKit/Qt if ENABLE_SVG=0 + https://bugs.webkit.org/show_bug.cgi?id=24693 + + * WebCore.pro: + +2009-05-05 Sankar Aditya Tanguturi <sankaraditya@gmail.com> + + Reviewed by Eric Seidel. + + Anonymous blocks should not be exposed in accessibility tree. + Part of https://bugs.webkit.org/show_bug.cgi?id=23072 + + Tests: accessibility/ignore-anonymous-block.html + platform/win/accessibility/document-role.html + + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):Return + true for Anonymous blocks. Matching Firefox 2.0.0.14 + +2009-05-05 Jungshik Shin <jshin@chromium.org> + + Reviewed by Alexey Proskuryakov. + + http://bugs.webkit.org/show_bug.cgi?id=25487 + + For euc-kr and other 8bit Korean encodings + (similar to euc-kr/windows-949), make document.charset return + EUC-KR instead of windows-949. The latter is not recognized by + Korean web servers. + + Add domName method to TextEncoding to deal with cases where + our internal encoding name does not match what's widely recognized + by web servers. Currently, the only case is 'windows-949' (internal + name) vs 'EUC-KR'. + + Test: fast/encoding/euckr-name.html + + * dom/Document.cpp: + (WebCore::Document::encoding): Call TextEncoding.domName() instead + of TextEncoding.name(). + * platform/text/TextEncoding.cpp: + (WebCore::TextEncoding::domName): For the canonical name 'windows-949', + return 'EUC-KR'. Otherwise, just return the canonical name. + * platform/text/TextEncoding.h: + +2009-05-05 Adam Langley <agl@google.com> + + Reviewed by Darin Adler. + + Rendering fix for <select> elements. + https://bugs.webkit.org/show_bug.cgi?id=25558 + + When switching a <select> element from display:none to default + display, we would fail to invalidate the parent's pref widths in some + situations: + + When attaching the element, RenderMenuList::updateOptionsWidth would + call setNeedsLayoutAndPrefWidthsRecalc before the parent pointer was + set. This would mark the pref widths as dirty, but not for any parent + objects. + + When RenderObjectChildList::appendChildNode later calls + setNeedsLayoutAndPrefWidthsRecalc again, with a valid parent pointer, + nothing would be done because the pref widths were already dirty for. + the RenderMenuList. + + * rendering/RenderMenuList.cpp: + (WebCore::RenderMenuList::updateOptionsWidth): + +2009-05-05 Antony Sargent <asargent@chromium.org> + + Reviewed by Dimitri Glazkov. + + Switch V8EventListenerList to use HashTable<T>. + https://bugs.webkit.org/show_bug.cgi?id=25496 + + This avoids some tricky issues with event listener removal in the + current implementation and has slightly better performance. + + No new functionality so no new tests. + + * bindings/v8/V8EventListenerList.cpp: Added V8EventListenerListIterator. + * bindings/v8/V8EventListenerList.h: + (WebCore::V8EventListenerList::size): + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): + +2009-05-05 Darin Fisher <darin@chromium.org> + + Fixing build bustage. + + Add some missing includes to fix the Chromium build. + + * bindings/v8/custom/V8DOMWindowCustom.cpp: + * bindings/v8/custom/V8HTMLDocumentCustom.cpp: + +2009-05-05 Darin Fisher <darin@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25570 + + history.{back,forward,go} should always be dispatched asynchronously, + even when the history navigation would just result in scrolling the + page. This matches the behavior of other browsers like IE and FF. + + Test: fast/history/back-forward-is-asynchronous.html + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::scheduleHistoryNavigation): + +2009-05-05 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Add an ASSERT(useTransforms) to mapLocalToContainer implementations in SVG. + https://bugs.webkit.org/show_bug.cgi?id=25532 + https://bugs.webkit.org/show_bug.cgi?id=25568 + + Adding this ASSERT exposed a bug in SVGPaintServerPattern::setup + which was causing transformed SVG text when filled/stroked with a + pattern using patternUnits=objectBoundingBox to draw incorrectly. + + I fixed the incorrect drawing (by removing the broken code) and added + two test cases to test the fix: + * svg/transforms/text-with-pattern-inside-transformed-html.xhtml + * svg/transforms/text-with-pattern-with-svg-transform.svg + + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::mapLocalToContainer): + * rendering/SVGRenderSupport.cpp: + (WebCore::SVGRenderBase::mapLocalToContainer): + * svg/graphics/SVGPaintServerPattern.cpp: + (WebCore::SVGPaintServerPattern::setup): + +2009-05-05 Greg Bolsinga <bolsinga@apple.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=25554 + + Support HTML5 text control input types: email, number, tel, url + + Test: fast/html/text-field-input-types.html + + * bindings/objc/DOMHTML.mm: + (-[DOMHTMLInputElement _isTextField]): Call HTMLInputElement::isTextField directly. + * html/HTMLInputElement.cpp: Use the new types where appropriate. + (WebCore::HTMLInputElement::setInputType): + (WebCore::HTMLInputElement::type): + (WebCore::HTMLInputElement::saveState): + (WebCore::HTMLInputElement::restoreState): + (WebCore::HTMLInputElement::accessKeyAction): + (WebCore::HTMLInputElement::rendererIsNeeded): + (WebCore::HTMLInputElement::createRenderer): + (WebCore::HTMLInputElement::appendFormData): + (WebCore::HTMLInputElement::valueWithDefault): + (WebCore::HTMLInputElement::storesValueSeparateFromAttribute): + (WebCore::HTMLInputElement::defaultEventHandler): + * html/HTMLInputElement.h: Ditto. + (WebCore::HTMLInputElement::): + (WebCore::HTMLInputElement::isTextField): + +2009-04-01 miggilin <mr.diggilin@gmail.com> + + Reviewed by Kevin Ollivier. + + Mouse wheel scrolling and keyboard shortcut support for wx. + + https://bugs.webkit.org/show_bug.cgi?id=24797 + + * platform/ScrollView.cpp: + (WebCore::ScrollView::wheelEvent): + * platform/wx/KeyboardEventWx.cpp: + (WebCore::windowsKeyCodeForKeyEvent): + (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): + * platform/wx/ScrollViewWx.cpp: + (WebCore::ScrollView::platformSetScrollPosition): + +2009-05-05 Kevin Ollivier <kevino@theolliviers.com> + + wx build fix for Windows, add missing include. + + https://bugs.webkit.org/show_bug.cgi?id=24798 + + * platform/wx/wxcode/win/non-kerned-drawing.cpp: + +2009-05-05 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Beth Dakin. + + Bug 25574: AXImageMap children links don't respond properly to accessibilityHitTest: + https://bugs.webkit.org/show_bug.cgi?id=25574 + + Enable accessibility hit-testing for image map links. + Allow image map links to return AXURLs and AXAccessKey information. + + Test: platform/mac/accessibility/imagemap-hittest.html + + * page/AccessibilityImageMapLink.cpp: + (WebCore::AccessibilityImageMapLink::url): + * page/AccessibilityImageMapLink.h: + * page/AccessibilityObject.h: + (WebCore::AccessibilityObject::minValueForRange): + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap): + (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest): + (WebCore::AccessibilityRenderObject::doAccessibilityHitTest): + * page/AccessibilityRenderObject.h: + * page/mac/AccessibilityObjectWrapper.mm: + (-[AccessibilityObjectWrapper accessibilityAttributeNames]): + +2009-05-05 Kevin McCullough <kmccullough@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/6552129> Select a quote line and paste elsewhere, you + get that line and an extra quoted blank line + <rdar://problem/6609308> Triple-click a quoted header line, copy, paste + onto an empty line makes an extra quoted line + + - When pasting a blockquote with a newline, make sure we put the newline + outside of the blockquote so that it is not quoted. + + * editing/InsertParagraphSeparatorCommand.cpp: + (WebCore::InsertParagraphSeparatorCommand::doApply): + +2009-05-05 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + Call moz_gtk_shutdown on RenderThemeGtk destruction. + + * platform/gtk/RenderThemeGtk.cpp: + (WebCore::RenderThemeGtk::~RenderThemeGtk): + * platform/gtk/RenderThemeGtk.h: + +2009-05-05 Darin Adler <darin@apple.com> + + Reviewed by Steve Falkenburg. + + <rdar://problem/6858340> REGRESSION: can't drag local HTML files into Safari because CFURLCreateWithFileSystemPath inserts "localhost" + + * platform/win/ClipboardUtilitiesWin.cpp: (WebCore::urlFromPath): Remove localhost. + +2009-05-05 Peter Kasting <pkasting@google.com> + + Reviewed by Brady Eidson. + + Safety-check m_documentLoader before dereferencing. While it seems + unlikely this could fail (as Safari 3 shipped without this), + technically almost any call can change or reset m_documentLoader. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::receivedFirstData): + +2009-05-05 Dan Bernstein <mitz@apple.com> + + - Tiger build fix + + * css/CSSComputedStyleDeclaration.cpp: + (WebCore::toCSSIdentifier): + +2009-05-05 Peter Kasting <pkasting@google.com> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25303 + No need to ref the internal buffer inside the Skia ImageDecoder. + + * platform/image-decoders/skia/ImageDecoder.h: + (WebCore::RGBA32Buffer::RGBA32Buffer): + (WebCore::RGBA32Buffer::operator=): + (WebCore::RGBA32Buffer::clear): + (WebCore::RGBA32Buffer::copyBitmapData): + (WebCore::RGBA32Buffer::bitmap): + (WebCore::RGBA32Buffer::setSize): + (WebCore::RGBA32Buffer::width): + (WebCore::RGBA32Buffer::height): + (WebCore::RGBA32Buffer::hasAlpha): + (WebCore::RGBA32Buffer::setStatus): + (WebCore::RGBA32Buffer::setHasAlpha): + (WebCore::RGBA32Buffer::setRGBA): + +2009-05-05 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + - fix https://bugs.webkit.org/show_bug.cgi?id=24192 + <rdar://problem/5760774> Replying to a Mail message that contains + fixed width text can change the size of the text + + Covered by existing tests: editing/pasteboard/5027857.html + editing/pasteboard/paste-pre-002.html + + * css/CSSComputedStyleDeclaration.cpp: + (WebCore::CSSComputedStyleDeclaration::getFontSizeCSSValuePreferringKeyword): + Added. If the font-size is keyword-based, returns the keyword value + instead of the pixel size. + (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): If + font-family is a generic family, return the generic family instead of + the the internal string -webkit-[serif|sans-serif|cursive|fantasy + |monospace]. + (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties): + For the font-size property, prefer a keyword value over a pixel size. + * css/CSSComputedStyleDeclaration.h: + * editing/ApplyStyleCommand.cpp: + (WebCore::StyleChange::currentlyHasStyle): For the font-size property, + call getFontSizeCSSValuePreferringKeyword(). + * platform/graphics/FontDescription.h: + (WebCore::FontDescription::keywordSize): Changed the return type to + unsigned. + (WebCore::FontDescription::setKeywordSize): Changed the parameter type + to unsigned. + (WebCore::FontDescription::m_keywordSize): Changed the type of this + 4-bit field to unsigned, because it takes values as high as 8. + +2009-05-05 Oliver Hunt <oliver@apple.com> + + Reviewed by Maciej Stachowiak. + + Fix http/tests/misc/DOMContentLoaded-event.html + + The native call performance improvement removed a few places where we + unintentionally performed a toThisObject conversion. This patch updates + the bindings codegen to not rely on this bug. + + * bindings/scripts/CodeGeneratorJS.pm: + +2009-05-05 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Xan Lopez and Gustavo Noronha. + + Implement WebCore::directoryName for Gtk+. + + * platform/gtk/FileSystemGtk.cpp: + (WebCore::directoryName): + +2009-05-05 Eric Seidel <eric@webkit.org> + + Reviewed by Adam Roben. + + Fix mappedAttributes() access without NULL check + https://bugs.webkit.org/show_bug.cgi?id=25553 + + SVGStyledElement::getPresentationAttribute was using mappedAttributes() + without checking for NULL. + + HTMLInputElement::setInputType also doesn't NULL check, but I was not + able to get it to crash with a test case so I just added an ASSERT. + + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::setInputType): + * svg/SVGStyledElement.cpp: + (WebCore::SVGStyledElement::getPresentationAttribute): + +2009-05-05 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Xan Lopez. + + Implement WebCore::imageTitle for Gtk+. + + * platform/gtk/LocalizedStringsGtk.cpp: + (WebCore::imageTitle): + +2009-05-05 Oliver Hunt <oliver@apple.com> + + Reviewed by Gavin Barraclough. + + Bug 25559: Improve native function call performance + <https://bugs.webkit.org/show_bug.cgi?id=25559> + + Add forwarding header necessary for compilation, and fix debugger + to correctly account for change in JSFunction behaviour. + + * ForwardingHeaders/jit/JITCode.h: Added. + * inspector/JavaScriptDebugServer.cpp: + (WebCore::JavaScriptDebugServer::recompileAllJSFunctions): + +2009-05-05 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Ariya Hidayat. + + Make convertValueToQVariant more robust against null JSValues. + + Don't require the caller to do the null check. + + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::convertValueToQVariant): + +2009-05-05 Eric Seidel <eric@webkit.org> + + No review, just a revert. + + Roll out http://trac.webkit.org/changeset/43213 as it caused 4 tests to crash. + + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::mapLocalToContainer): + * rendering/SVGRenderSupport.cpp: + (WebCore::SVGRenderBase::mapLocalToContainer): + +2009-05-04 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Dave Hyatt. + + <rdar://problem/6576889> REGRESSION (r35185): Cannot watch Flash movies on omg.yahoo.com + + The problem was caused by missing <head> element - we used to create it when moving a + misplaced <style> element, but we now handle those in place. Other browsers always create + a <head> element. + + There is no guarantee that a <head> element always exists - first, it can be removed with + removeChild or innerHTML, and also, we don't currently create it for frameset documents, or + for manually created ones (e.g. ImageDocument). + + Test: fast/parser/head-element-for-yahoo-player.html + + * dom/Document.cpp: (WebCore::Document::implicitClose): Create a <head> element for about:blank. + A removed comment talked about rdar://3758785, but that problem doesn't re-occur even if this + code is removed completely. + + * html/HTMLHtmlElement.cpp: (WebCore::HTMLHtmlElement::checkDTD): No longer allow <script> + elements as children of <html>. This isn't directly related to this bug, but it was easier + to fix both at once (IE and Firefox both don't allow such mispositioned <script> elements). + + * html/HTMLParser.cpp: + (WebCore::HTMLParser::handleError): Move <script> to <head> if <body> hasn't been created yet. + Create a <head> it a <body> is created implicitly to contain some other element. + (WebCore::HTMLParser::bodyCreateErrorCheck): Ensure that a <head> exists when <body> is + explicitly present in source. + (WebCore::HTMLParser::createHead): Do the work even if <html> element hasn't been created yet. + +2009-05-04 Jakub Wieczorek <faw217@gmail.com> + + Reviewed by Simon Hausmann. + + As Qtish implementation of MIMETypeRegistry::getMIMETypeForExtension() + returns the application/octet-stream mimetype when it can't associate + extension with any mimetype, it can happen that the application/octet-stream + mimetype will hit the list of supported image formats. For instance, + it is possible when QImageReader or QImageWriter support an extension + that is not in the extensions map. + + Make sure that this mimetype is not treated as displayable image type. + + * platform/MIMETypeRegistry.cpp: + (WebCore::initializeSupportedImageMIMETypes): + (WebCore::initializeSupportedImageMIMETypesForEncoding): + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + ASSERT(useTransforms) in SVG mapLocalToContainer implementations + https://bugs.webkit.org/show_bug.cgi?id=25532 + + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::mapLocalToContainer): + * rendering/SVGRenderSupport.cpp: + (WebCore::SVGRenderBase::mapLocalToContainer): + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Remove m_absoluteBounds hack from RenderSVGText + https://bugs.webkit.org/show_bug.cgi?id=25532 + + No functional changes (SVGs inside CSS transformed HTML should theoretically repaint better) + + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::layout): + * rendering/RenderSVGText.h: + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Remove the vestigial calculateLocalTransform() + https://bugs.webkit.org/show_bug.cgi?id=25532 + + RenderSVGContainer is now the only render which needs this + function, but it no longer returns the unused bool. + + calculateLocalTransform() previously was called by the DOM before + transform updates were part of layout(). + + * rendering/RenderForeignObject.cpp: + (WebCore::RenderForeignObject::layout): + * rendering/RenderForeignObject.h: + (WebCore::RenderForeignObject::localTransform): + * rendering/RenderPath.cpp: + (WebCore::RenderPath::layout): + * rendering/RenderPath.h: + * rendering/RenderSVGContainer.cpp: + * rendering/RenderSVGContainer.h: + (WebCore::RenderSVGContainer::calculateLocalTransform): + * rendering/RenderSVGImage.cpp: + (WebCore::RenderSVGImage::layout): + * rendering/RenderSVGImage.h: + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::layout): + * rendering/RenderSVGText.h: + * rendering/RenderSVGTransformableContainer.cpp: + (WebCore::RenderSVGTransformableContainer::calculateLocalTransform): + * rendering/RenderSVGTransformableContainer.h: + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Move more code into SVGRenderBase + https://bugs.webkit.org/show_bug.cgi?id=25532 + + clippedOverflowRectForRepaint, computeRectForRepaint and mapLocalToContainer + are now all shared via SVGRenderBase. + + RenderForeignObject should also be sharing this code, but I've left it + alone for now, as changing that would likely cause test changes. + + No test changes. It's possible that transformed <svg:image> elements will + now show up with better metrics in the inspector. + + * rendering/RenderSVGImage.cpp: + (WebCore::RenderSVGImage::clippedOverflowRectForRepaint): + (WebCore::RenderSVGImage::computeRectForRepaint): + (WebCore::RenderSVGImage::mapLocalToContainer): + * rendering/RenderSVGImage.h: + * rendering/RenderSVGModelObject.cpp: + (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint): + (WebCore::RenderSVGModelObject::computeRectForRepaint): + (WebCore::RenderSVGModelObject::mapLocalToContainer): + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::clippedOverflowRectForRepaint): + (WebCore::RenderSVGText::computeRectForRepaint): + (WebCore::RenderSVGText::mapLocalToContainer): + * rendering/SVGRenderSupport.cpp: + (WebCore::SVGRenderBase::clippedOverflowRectForRepaint): + (WebCore::SVGRenderBase::computeRectForRepaint): + (WebCore::SVGRenderBase::mapLocalToContainer): + * rendering/SVGRenderSupport.h: + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Add SVGRenderBase to share logic between SVG renderers + https://bugs.webkit.org/show_bug.cgi?id=25532 + + I've added an SVGRenderBase base class which is shared by + all of the SVG renders now. This patch is just moving code + there are no functional changes in this patch. + + Currently I've left these functions in SVGRenderSupport.h + In a later patch I will rename SVGRenderSupport.* to SVGRenderBase.* + + clampImageBufferSizeToViewport now takes a FrameView* which makes some code easier to read. + + * rendering/RenderSVGBlock.h: + * rendering/RenderSVGImage.h: + * rendering/RenderSVGModelObject.h: + * rendering/RenderSVGRoot.h: + * rendering/SVGRenderSupport.cpp: + (WebCore::SVGRenderBase::prepareToRenderSVGContent): + (WebCore::SVGRenderBase::finishRenderSVGContent): + (WebCore::clampImageBufferSizeToViewport): + (WebCore::SVGRenderBase::computeContainerBoundingBox): + (WebCore::SVGRenderBase::filterBoundingBoxForRenderer): + * rendering/SVGRenderSupport.h: + * rendering/SVGRootInlineBox.cpp: + (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback): + (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback): + (WebCore::SVGRootInlineBox::paint): + * svg/SVGMaskElement.cpp: + (WebCore::SVGMaskElement::drawMaskerContent): + * svg/SVGPatternElement.cpp: + (WebCore::SVGPatternElement::buildPattern): + * svg/graphics/SVGPaintServerGradient.cpp: + (WebCore::createMaskAndSwapContextForTextGradient): + (WebCore::clipToTextMask): + +2009-05-05 Simon Hausmann <simon.hausmann@nokia.com> + + Unreviewed SVG build fix. + + Include MappedAttribute.h after r43187. + + * svg/SVGComponentTransferFunctionElement.cpp: + * svg/SVGFEBlendElement.cpp: + * svg/SVGFEColorMatrixElement.cpp: + * svg/SVGFEComponentTransferElement.cpp: + * svg/SVGFECompositeElement.cpp: + * svg/SVGFEDiffuseLightingElement.cpp: + * svg/SVGFEDisplacementMapElement.cpp: + * svg/SVGFEGaussianBlurElement.cpp: + * svg/SVGFEImageElement.cpp: + * svg/SVGFELightElement.cpp: + * svg/SVGFEMergeNodeElement.cpp: + * svg/SVGFEOffsetElement.cpp: + * svg/SVGFESpecularLightingElement.cpp: + * svg/SVGFETileElement.cpp: + * svg/SVGFETurbulenceElement.cpp: + * svg/SVGFilterElement.cpp: + * svg/SVGFilterPrimitiveStandardAttributes.cpp: + +2009-05-04 Brady Eidson <beidson@apple.com> + + Reviewed by Sam 'The Belly' Weinig + + <rdar://problem/6828894> - Facebook photo uploader applet broken on Leopard only + + In r41568 we started adding a default codebase attribute to <applet> tags if they didn't specify one + themselves. Leopard's Java plug-in mishandles this case and fails to load code for the applet. + + The spirit of r41568 can be maintained by removing the "default codebase" piece and only performing + the canLoad() check if a codebase was actually set on the applet tag. + + * html/HTMLAppletElement.cpp: + (WebCore::HTMLAppletElement::createRenderer): Don't create a default codebase attribute. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::createJavaAppletWidget): Only perform the canLoad() check if the codebase was set. + +2009-05-04 Adam Roben <aroben@apple.com> + + Windows build fix + + * html/HTMLCollection.h: + * html/HTMLFormElement.h: + Declare CollectionCache as a struct, not a class, to match its + definition. + +2009-05-04 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Beth Dakin, Oliver Hunt. + + Bug 25557: REGRESSION: Canvas elements are ignored instead of being exposed as AXImage + https://bugs.webkit.org/show_bug.cgi?id=25557 + + Test: accessibility/canvas.html + + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): + (WebCore::AccessibilityRenderObject::roleValue): + +2009-05-04 Brady Eidson <beidson@apple.com> + + Fix an ancient Changelog entry where Sam Weinig flat out lied and confused my exploration of a bug. + + * ChangeLog + +2009-05-04 Kai Brüning <kai@granus.net> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=24883 + 24883: Bad success test in parseXMLDocumentFragment in XMLTokenizerLibxml2.cpp + + Fixed test whether all the chunk has been processed to correctly count utf8 bytes. + + Test: fast/innerHTML/innerHTML-nbsp.xhtml + + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::parseXMLDocumentFragment): + +2009-05-04 Darin Adler <darin@apple.com> + + Reviewed by Eric Seidel. + + Bug 24924: remove Document.h include of Attr.h and HTMLCollection.h, + and NamedMappedAttrMap.h include of MappedAttribute.h + https://bugs.webkit.org/show_bug.cgi?id=24924 + + Make compiles faster, and debugging info smaller. + + * GNUmakefile.am: Added new source files. + * WebCore.pro: Ditto. + * WebCore.scons: Ditto. + * WebCore.vcproj/WebCore.vcproj: Ditto. + * WebCore.xcodeproj/project.pbxproj: Ditto. + * WebCoreSources.bkl: Ditto. + + * bindings/js/JSHTMLCollectionCustom.cpp: + (WebCore::toJS): Updated for new collection type names. + + * dom/Document.cpp: + (WebCore::Document::createAttribute): Added. No longer inline. + (WebCore::Document::images): Updated for new collection type names. + (WebCore::Document::applets): Ditto. + (WebCore::Document::embeds): Ditto. + (WebCore::Document::plugins): Ditto. + (WebCore::Document::objects): Ditto. + (WebCore::Document::scripts): Ditto. + (WebCore::Document::links): Ditto. + (WebCore::Document::forms): Ditto. + (WebCore::Document::anchors): Ditto. + (WebCore::Document::all): Ditto. + (WebCore::Document::windowNamedItems): Ditto. + (WebCore::Document::documentNamedItems): Ditto. + (WebCore::Document::nameCollectionInfo): Ditto. + + * dom/Document.h: Changed around includes and forward declarations. + Updated for changes to collection types. + + * dom/NamedMappedAttrMap.h: Removed include of MappedAttribute.h. + + * html/CollectionCache.cpp: Copied from WebCore/html/HTMLCollection.cpp. + Contains the class that used to be HTMLCollection::CollectionInfo. + * html/CollectionCache.h: Copied from WebCore/html/HTMLCollection.h. + Ditto. + + * html/CollectionType.h: Copied from WebCore/html/HTMLCollection.h. + Has the enum that used to be HTMLCollection::Type. + + * html/HTMLCollection.cpp: + (WebCore::HTMLCollection::HTMLCollection): Update for collection type change. + (WebCore::HTMLCollection::create): Ditto. + (WebCore::HTMLCollection::resetCollectionInfo): Ditto. + (WebCore::HTMLCollection::itemAfter): Ditto. + * html/HTMLCollection.h: Ditto. + + * html/HTMLElement.cpp: + (WebCore::HTMLElement::children): Updated for new collection type names. + * html/HTMLFormCollection.cpp: + (WebCore::HTMLFormCollection::formCollectionInfo): Ditto. + (WebCore::HTMLFormCollection::HTMLFormCollection): Ditto. + * html/HTMLFormCollection.h: Ditto. + * html/HTMLFormElement.h: Ditto. + * html/HTMLMapElement.cpp: + (WebCore::HTMLMapElement::areas): Ditto. + * html/HTMLNameCollection.cpp: + (WebCore::HTMLNameCollection::HTMLNameCollection): Ditto. + * html/HTMLNameCollection.h: + (WebCore::HTMLNameCollection::create): Ditto. + * html/HTMLSelectElement.h: + (WebCore::HTMLSelectElement::collectionInfo): Ditto. + * html/HTMLTableElement.cpp: + (WebCore::HTMLTableElement::tBodies):Ditto. + * html/HTMLTableRowElement.cpp: + (WebCore::HTMLTableRowElement::cells):Ditto. + * html/HTMLTableRowsCollection.cpp: + (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection): Ditto. + * html/HTMLTableSectionElement.cpp: + (WebCore::HTMLTableSectionElement::rows): Ditto. + + * bindings/js/JSDOMWindowBase.cpp: Added newly-needed includes. + * bindings/js/JSHTMLFrameSetElementCustom.cpp: Ditto. + * css/CSSStyleSelector.cpp: Ditto. + * dom/Element.cpp: Ditto. + * dom/InputElement.cpp: Ditto. + * dom/NamedAttrMap.cpp: Ditto. + * dom/NamedMappedAttrMap.cpp: Ditto. + * dom/Node.cpp: Ditto. + * dom/StyledElement.cpp: Ditto. + * dom/StyledElement.h: Ditto. + * editing/ApplyStyleCommand.cpp: Ditto. + * editing/DeleteSelectionCommand.cpp: Ditto. + * editing/Editor.cpp: Ditto. + * editing/EditorCommand.cpp: Ditto. + * editing/InsertParagraphSeparatorCommand.cpp: Ditto. + * editing/ReplaceSelectionCommand.cpp: Ditto. + * editing/markup.cpp: Ditto. + * html/CanvasRenderingContext2D.cpp: Ditto. + * html/HTMLAnchorElement.cpp: Ditto. + * html/HTMLAppletElement.cpp: Ditto. + * html/HTMLAreaElement.cpp: Ditto. + * html/HTMLBRElement.cpp: Ditto. + * html/HTMLBaseElement.cpp: Ditto. + * html/HTMLBodyElement.cpp: Ditto. + * html/HTMLButtonElement.cpp: Ditto. + * html/HTMLCanvasElement.cpp: Ditto. + * html/HTMLDivElement.cpp: Ditto. + * html/HTMLEmbedElement.cpp: Ditto. + * html/HTMLFontElement.cpp: Ditto. + * html/HTMLFormControlElement.cpp: Ditto. + * html/HTMLFormElement.cpp: Ditto. + * html/HTMLFrameElement.cpp: Ditto. + * html/HTMLFrameElementBase.cpp: Ditto. + * html/HTMLFrameSetElement.cpp: Ditto. + * html/HTMLHRElement.cpp: Ditto. + * html/HTMLIFrameElement.cpp: Ditto. + * html/HTMLImageElement.cpp: Ditto. + * html/HTMLInputElement.cpp: Ditto. + * html/HTMLIsIndexElement.cpp: Ditto. + * html/HTMLKeygenElement.cpp: Ditto. + * html/HTMLLIElement.cpp: Ditto. + * html/HTMLLinkElement.cpp: Ditto. + * html/HTMLMarqueeElement.cpp: Ditto. + * html/HTMLMetaElement.cpp: Ditto. + * html/HTMLOListElement.cpp: Ditto. + * html/HTMLObjectElement.cpp: Ditto. + * html/HTMLOptionElement.cpp: Ditto. + * html/HTMLParagraphElement.cpp: Ditto. + * html/HTMLParamElement.cpp: Ditto. + * html/HTMLPlugInElement.cpp: Ditto. + * html/HTMLPreElement.cpp: Ditto. + * html/HTMLScriptElement.cpp: Ditto. + * html/HTMLSelectElement.cpp: Ditto. + * html/HTMLStyleElement.cpp: Ditto. + * html/HTMLTableCaptionElement.cpp: Ditto. + * html/HTMLTableCellElement.cpp: Ditto. + * html/HTMLTableColElement.cpp: Ditto. + * html/HTMLTablePartElement.cpp: Ditto. + * html/HTMLTextAreaElement.cpp: Ditto. + * html/HTMLTokenizer.cpp: Ditto. + * html/HTMLUListElement.cpp: Ditto. + * html/HTMLVideoElement.cpp: Ditto. + * html/HTMLViewSourceDocument.cpp: Ditto. + * loader/ImageDocument.cpp: Ditto. + * page/Frame.cpp: Ditto. + * rendering/RenderTreeAsText.cpp: Ditto. + * svg/SVGAElement.cpp: Ditto. + * svg/SVGAnimateMotionElement.cpp: Ditto. + * svg/SVGAnimateTransformElement.cpp: Ditto. + * svg/SVGAnimationElement.cpp: Ditto. + * svg/SVGCircleElement.cpp: Ditto. + * svg/SVGClipPathElement.cpp: Ditto. + * svg/SVGCursorElement.cpp: Ditto. + * svg/SVGElement.cpp: Ditto. + * svg/SVGEllipseElement.cpp: Ditto. + * svg/SVGExternalResourcesRequired.cpp: Ditto. + * svg/SVGFitToViewBox.cpp: Ditto. + * svg/SVGFontFaceElement.cpp: Ditto. + * svg/SVGFontFaceUriElement.cpp: Ditto. + * svg/SVGForeignObjectElement.cpp: Ditto. + * svg/SVGGlyphElement.cpp: Ditto. + * svg/SVGGradientElement.cpp: Ditto. + * svg/SVGImageElement.cpp: Ditto. + * svg/SVGLangSpace.cpp: Ditto. + * svg/SVGLineElement.cpp: Ditto. + * svg/SVGLinearGradientElement.cpp: Ditto. + * svg/SVGMarkerElement.cpp: Ditto. + * svg/SVGMaskElement.cpp: Ditto. + * svg/SVGPathElement.cpp: Ditto. + * svg/SVGPatternElement.cpp: Ditto. + * svg/SVGPolyElement.cpp: Ditto. + * svg/SVGRadialGradientElement.cpp: Ditto. + * svg/SVGRectElement.cpp: Ditto. + * svg/SVGSVGElement.cpp: Ditto. + * svg/SVGScriptElement.cpp: Ditto. + * svg/SVGStopElement.cpp: Ditto. + * svg/SVGStyleElement.cpp: Ditto. + * svg/SVGStyledElement.cpp: Ditto. + * svg/SVGStyledTransformableElement.cpp: Ditto. + * svg/SVGTests.cpp: Ditto. + * svg/SVGTextContentElement.cpp: Ditto. + * svg/SVGTextElement.cpp: Ditto. + * svg/SVGTextPathElement.cpp: Ditto. + * svg/SVGTextPositioningElement.cpp: Ditto. + * svg/SVGURIReference.cpp: Ditto. + * svg/SVGUseElement.cpp: Ditto. + * svg/SVGViewElement.cpp: Ditto. + * svg/animation/SVGSMILElement.cpp: Ditto. + * xml/XPathStep.cpp: Ditto. + +2009-05-04 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Do not instantiate hidden WebInspector panels. Otherwise they are hitting unimplemented InspectorController methods. + https://bugs.webkit.org/show_bug.cgi?id=25520 + + * inspector/front-end/inspector.js: + (WebInspector.loaded): + +2009-05-04 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6839881> With "Mail Contents of This Page" in Safari images don't appear in the Tiger Mail compose window + + DocumentLoader::subresource() is the implementation for the WebKit API [WebDataSource subresourceForURL:] and has + particularly sticky behavior. + + If the DocumentLoader represents a WebArchive, this method should return ArchiveResources from that archive. However, we + prefer CachedResources over ArchiveResources because they might represent fresher data than what was originally loaded + from the WebArchive. + + In some instances, CachedResources are created and associated with the DocumentLoader but not immediately run through the + loading delegate machinery. This was always a possibility, but the Preload Scanner made this significantly more likely. + + When this happens and someone asks the WebDataSource for a subresource, it would prefer the CachedResource over an + ArchiveResource it has even if the CachedResource hasn't been loaded yet. The CachedResource has nil data, so no + WebResource is returned, and the client thinks the subresource doesn't exist even though it does. + + This broke Tiger Mail and probably various other WebKit applications but has a fairly straightforward fix. + + * loader/DocumentLoader.cpp: + (WebCore::DocumentLoader::subresource): If there is a CachedResource but it hasn't been loaded yet, fallback to the + ArchiveResource. + +2009-05-04 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Adam Roben. + + https://bugs.webkit.org/show_bug.cgi?id=25545 + Bug 25545: HTMLMediaElement: display anamorphic video correctly + + Tell QuickTime to use clean aperture mode so movies with non-square pixels are sized + and displayed correctly. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::createQTMovie): Ask QuickTime to use clean aperture mode. + * platform/graphics/win/QTMovieWin.cpp: + (QTMovieWin::load): Ditto. Add ASSERT to ensure that static movie property array isn't + filled beyond capacity. + +2009-05-03 Mark Rowe <mrowe@apple.com> + + Reviewed by Darin Adler. + + Fix <https://bugs.webkit.org/show_bug.cgi?id=25332>. + Bug 25332: Plug-in inserted in to DOM of PluginDocument fails to load + + Only the first plug-in in a PluginDocument can use the main resource data. For all + subsequent plug-ins, such as the plug-in that ClickToFlash inserts when swapping itself + out for the real Flash plug-in, we need to load the resource data in the same manner + as for other embedded plug-ins. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::loadPlugin): + +2009-05-04 Simon Hausmann <simon.hausmann@nokia.com> + + Rubber-stamped by Ariya Hidayat. + + Update the qrc file for the Web Inspector in the Qt build + with missing files. + + * inspector/front-end/WebKit.qrc: + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by George Staikos. + + Move absoluteRects and absoluteQuads into RenderSVGInline and remove absoluteTransform() usage + https://bugs.webkit.org/show_bug.cgi?id=25532 + + * rendering/RenderSVGInline.cpp: + (WebCore::RenderSVGInline::absoluteRects): + (WebCore::RenderSVGInline::absoluteQuads): + * rendering/RenderSVGInline.h: + * rendering/RenderSVGTSpan.cpp: + * rendering/RenderSVGTSpan.h: + * rendering/RenderSVGTextPath.cpp: + * rendering/RenderSVGTextPath.h: + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by George Staikos. + + Move RenderSVGText off of localToAbsolute() + https://bugs.webkit.org/show_bug.cgi?id=25532 + + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::absoluteRects): + (WebCore::RenderSVGText::absoluteQuads): + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by George Staikos. + + Remove broken absoluteTransform() code from RenderSVGInlineText + https://bugs.webkit.org/show_bug.cgi?id=25532 + + This improved SVG text focus rings. + This also improved SVG.getScreenCTM() results. + + SVGSVGElement::getScreenCTM was passing "true" for the second argument in + localToAbsolute, which is "fixed" it meant to pass "true" for the + third argument (useTransforms). That change alone caused no layout test changes, however + before I fixed this, it was hitting ASSERT(!fixed) in RenderSVGRoot::mapLocalToContainer + + mapLocalToContainer implementations really should be shared, + but I'll do that in a later patch. + + * rendering/RenderSVGInlineText.cpp: + (WebCore::RenderSVGInlineText::styleDidChange): + (WebCore::RenderSVGInlineText::absoluteQuads): + (WebCore::RenderSVGInlineText::computeRepaintRectForRange): + (WebCore::RenderSVGInlineText::computeRepaintQuadForRange): + * rendering/RenderSVGInlineText.h: + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::mapLocalToContainer): + * rendering/RenderSVGRoot.h: + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::mapLocalToContainer): + * rendering/RenderSVGText.h: + * svg/SVGSVGElement.cpp: + (WebCore::SVGSVGElement::getScreenCTM): + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by George Staikos. + + Remove dead code from RenderPath + https://bugs.webkit.org/show_bug.cgi?id=25532 + + * rendering/RenderPath.cpp: + * rendering/RenderPath.h: + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by George Staikos. + + Share layout code between RenderSVGViewportContainer and RenderSVGContainer + https://bugs.webkit.org/show_bug.cgi?id=25532 + + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::layout): + * rendering/RenderSVGContainer.h: + (WebCore::RenderSVGContainer::calcViewport): + * rendering/RenderSVGViewportContainer.cpp: + (WebCore::RenderSVGViewportContainer::applyViewportClip): + * rendering/RenderSVGViewportContainer.h: + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by George Staikos. + + Remove redundant disableLayoutState() calls + https://bugs.webkit.org/show_bug.cgi?id=25532 + + * rendering/RenderForeignObject.cpp: + (WebCore::RenderForeignObject::layout): + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::layout): + * rendering/RenderSVGViewportContainer.cpp: + (WebCore::RenderSVGViewportContainer::layout): + +2009-05-03 Eric Seidel <eric@webkit.org> + + Reviewed by George Staikos. + + Simplify RenderForeignObject::paint and fix a repaint bug. + Paint now calls applyTransformToPaintInfo which correctly transforms the damage rect. + https://bugs.webkit.org/show_bug.cgi?id=16939 + + * rendering/RenderForeignObject.cpp: + (WebCore::RenderForeignObject::paint): + +2009-05-03 Hironori Bono <hbono@chromium.org> + + Reviewed by Eric Seidel. + + Test: editing/spelling/spellcheck-attribute.html + + Bug 14552: Add a way to disable spell checking for specific element + https://bugs.webkit.org/show_bug.cgi?id=14552 + + For compatibility with Firefox, this code ascends the DOM tree when an element does + not have its "spellcheck" attribute. + + * editing/Editor.cpp: + (WebCore::markMisspellingsOrBadGrammar): Retrieve the value of the "spellcheck" + attribute of an element before calling a spell checker or a grammar checker. + * html/HTMLAttributeNames.in: Add a "spellcheck" attribute. + +2009-05-03 Sam Weinig <sam@webkit.org> + + Roll JSC API number marshaling back in one last time (I hope). + +2009-05-03 Sam Weinig <sam@webkit.org> + + Roll JSC API number marshaling back out. It still breaks windows. + +2009-05-03 Sam Weinig <sam@webkit.org> + + Roll JSC API number marshaling back in. + +2009-05-02 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + - another fix for <rdar://problem/6617298> Typing delete on an unquoted + blank line unquotes the preceding, quoted blank line + + Test: editing/deleting/type-delete-after-quote-2.html + + * editing/DeleteSelectionCommand.cpp: + (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): Initialize + m_startsAtEmptyLine. + (WebCore::DeleteSelectionCommand::handleSpecialCaseBRDelete): When the + selection starts at an empty line, do not prevent the merging of blocks. + This is what allows the text after the line break to be merged into the + block containing the line break. Also set m_startsAtEmptyLine to true. + (WebCore::DeleteSelectionCommand::mergeParagraphs): If + m_startsAtEmptyLine is true, create a placeholder BR to serve as the + merge destination. + * editing/DeleteSelectionCommand.h: + +2009-05-02 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Sam Weinig. + + Simplified null-ish JSValues. + + Replaced calls to noValue() with calls to JSValue() (which is what + noValue() returned). Removed noValue(). + + Removed "JSValue()" initialiazers, since default construction happens... + by default. + + * bindings/js/JSDOMBinding.cpp: + (WebCore::setDOMException): + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::open): + (WebCore::JSDOMWindow::showModalDialog): + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::handleEvent): + * bindings/js/JSJavaScriptCallFrameCustom.cpp: + (WebCore::JSJavaScriptCallFrame::evaluate): + * bindings/js/JSSQLResultSetRowListCustom.cpp: + (WebCore::JSSQLResultSetRowList::item): + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::evaluate): + * bindings/js/ScriptValue.h: + (WebCore::ScriptValue::ScriptValue): + (WebCore::ScriptValue::hasNoValue): + * bindings/js/WorkerScriptController.cpp: + (WebCore::WorkerScriptController::evaluate): + * bridge/jni/jni_instance.cpp: + (JavaInstance::invokeMethod): + * bridge/jni/jni_runtime.cpp: + (JavaField::dispatchValueFromInstance): + (JavaField::dispatchSetValueToInstance): + * bridge/runtime.h: + (JSC::Bindings::Instance::invokeConstruct): + +2009-05-02 Antti Koivisto <antti@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/6631735> Crash in WebCore::CSSStyleSelector::applyProperty(int, WebCore::CSSValue*) (RenderStyle.h:454) + + Avoid re-entering style selector from load delegates by not issuing resource loads synchronously during attach(). + + * dom/ContainerNode.cpp: + (WebCore::ContainerNode::suspendPostAttachCallbacks): + (WebCore::ContainerNode::resumePostAttachCallbacks): + (WebCore::ContainerNode::attach): + * dom/Element.cpp: + (WebCore::Element::attach): + * loader/loader.cpp: + (WebCore::Loader::Loader): + (WebCore::Loader::servePendingRequests): + (WebCore::Loader::suspendPendingRequests): + (WebCore::Loader::resumePendingRequests): + (WebCore::Loader::Host::servePendingRequests): + * loader/loader.h: + (WebCore::Loader::isSuspendingPendingRequests): + +2009-05-02 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + Bug 25352: REGRESSION(r42322): style isn't applied at bmwusa.com + https://bugs.webkit.org/show_bug.cgi?id=25352 + rdar://problem/6823239 + + Test: http/tests/mime/standard-mode-loads-stylesheet-with-text-css-and-invalid-type.html + + * platform/network/HTTPParsers.cpp: + (WebCore::extractMIMETypeFromMediaType): Allow comma as a separator. + +2009-05-02 Darin Adler <darin@apple.com> + + Reviewed by Brady Eidson. + + Bug 25491: WebFrame leak when a subframe removes itself + https://bugs.webkit.org/show_bug.cgi?id=25491 + rdar://problem/6833859 + + Test: fast/loading/subframe-removes-itself.html + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::checkLoadCompleteForThisFrame): When isStopping is true, + treat load as complete, even if isLoadingInAPISense is still returning true. + +2009-05-01 Sam Weinig <sam@webkit.org> + + Roll out JavaScriptCore API number marshaling. + + * bindings/js/ScriptValue.cpp: + (WebCore::ScriptValue::isEqual): + * inspector/JavaScriptProfile.cpp: + (WebCore::getHeadCallback): + * inspector/JavaScriptProfileNode.cpp: + (WebCore::getChildren): + (WebCore::getParent): + (WebCore::getHead): + +2009-05-01 Sam Weinig <sam@webkit.org> + + Fix build. + + * workers/WorkerContext.idl: + +2009-05-01 Sam Weinig <sam@webkit.org> + + Reviewed by Oliver Hunt. + + Cleanup workers code a bit. + + * bindings/js/JSWorkerContextBase.cpp: + (WebCore::toJS): + * bindings/js/JSWorkerContextBase.h: + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::customGetOwnPropertySlot): + * workers/WorkerContext.h: + (WebCore::WorkerContext::toWorkerContext): + (WebCore::WorkerContext::self): + (WebCore::WorkerContext::setOnmessage): + (WebCore::WorkerContext::onmessage): + * workers/WorkerContext.idl: + +2009-05-01 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + A little clean up. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::createJavaAppletWidget): + +2009-05-01 Sam Weinig <sam@webkit.org> + + Fix the build. + + * bindings/js/ScriptValue.cpp: + (WebCore::ScriptValue::isEqual): + * inspector/JavaScriptProfile.cpp: + (WebCore::getHeadCallback): + * inspector/JavaScriptProfileNode.cpp: + (WebCore::getChildren): + (WebCore::getParent): + (WebCore::getHead): + +2009-05-01 Brady Eidson <beidson@apple.com> + + Reviewed by Oliver Hunt and Sam "Jon 'The Belly' Honeycutt" Weinig + + Fix <rdar://problem/6848867> Addition of DOCTYPE node breaks Tiger Mail + + * bindings/objc/DOMHTML.mm: + (-[DOMHTMLDocument firstChild]): Add a Tiger Mail version of this method that skips DOCTYPE nodes. + +2009-05-01 Geoffrey Garen <ggaren@apple.com> + + Rubber Stamped by Sam Weinig. + + Renamed JSValuePtr => JSValue. + + * bindings/js/JSAttrCustom.cpp: + (WebCore::JSAttr::setValue): + * bindings/js/JSCDATASectionCustom.cpp: + (WebCore::toJSNewlyCreated): + * bindings/js/JSCSSRuleCustom.cpp: + (WebCore::toJS): + * bindings/js/JSCSSStyleDeclarationCustom.cpp: + (WebCore::JSCSSStyleDeclaration::nameGetter): + (WebCore::JSCSSStyleDeclaration::customPut): + * bindings/js/JSCSSValueCustom.cpp: + (WebCore::toJS): + * bindings/js/JSCanvasRenderingContext2DCustom.cpp: + (WebCore::toJS): + (WebCore::toHTMLCanvasStyle): + (WebCore::JSCanvasRenderingContext2D::strokeStyle): + (WebCore::JSCanvasRenderingContext2D::setStrokeStyle): + (WebCore::JSCanvasRenderingContext2D::fillStyle): + (WebCore::JSCanvasRenderingContext2D::setFillStyle): + (WebCore::JSCanvasRenderingContext2D::setFillColor): + (WebCore::JSCanvasRenderingContext2D::setStrokeColor): + (WebCore::JSCanvasRenderingContext2D::strokeRect): + (WebCore::JSCanvasRenderingContext2D::drawImage): + (WebCore::JSCanvasRenderingContext2D::drawImageFromRect): + (WebCore::JSCanvasRenderingContext2D::setShadow): + (WebCore::JSCanvasRenderingContext2D::createPattern): + (WebCore::JSCanvasRenderingContext2D::putImageData): + (WebCore::JSCanvasRenderingContext2D::fillText): + (WebCore::JSCanvasRenderingContext2D::strokeText): + * bindings/js/JSClipboardCustom.cpp: + (WebCore::JSClipboard::types): + (WebCore::JSClipboard::clearData): + (WebCore::JSClipboard::getData): + (WebCore::JSClipboard::setData): + (WebCore::JSClipboard::setDragImage): + * bindings/js/JSConsoleCustom.cpp: + (WebCore::JSConsole::profiles): + * bindings/js/JSCoordinatesCustom.cpp: + (WebCore::JSCoordinates::altitude): + (WebCore::JSCoordinates::altitudeAccuracy): + (WebCore::JSCoordinates::heading): + (WebCore::JSCoordinates::speed): + * bindings/js/JSCustomPositionCallback.cpp: + (WebCore::JSCustomPositionCallback::handleEvent): + * bindings/js/JSCustomPositionErrorCallback.cpp: + (WebCore::JSCustomPositionErrorCallback::handleEvent): + * bindings/js/JSCustomSQLStatementCallback.cpp: + (WebCore::JSCustomSQLStatementCallback::handleEvent): + * bindings/js/JSCustomSQLStatementErrorCallback.cpp: + (WebCore::JSCustomSQLStatementErrorCallback::handleEvent): + * bindings/js/JSCustomSQLTransactionCallback.cpp: + (WebCore::JSCustomSQLTransactionCallback::handleEvent): + * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: + (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent): + * bindings/js/JSCustomVoidCallback.cpp: + (WebCore::JSCustomVoidCallback::handleEvent): + (WebCore::toVoidCallback): + * bindings/js/JSCustomVoidCallback.h: + * bindings/js/JSCustomXPathNSResolver.cpp: + (WebCore::JSCustomXPathNSResolver::create): + (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): + * bindings/js/JSCustomXPathNSResolver.h: + * bindings/js/JSDOMApplicationCacheCustom.cpp: + (WebCore::JSDOMApplicationCache::hasItem): + (WebCore::JSDOMApplicationCache::add): + (WebCore::JSDOMApplicationCache::remove): + (WebCore::JSDOMApplicationCache::addEventListener): + (WebCore::JSDOMApplicationCache::removeEventListener): + * bindings/js/JSDOMBinding.cpp: + (WebCore::jsStringOrNull): + (WebCore::jsOwnedStringOrNull): + (WebCore::jsStringOrUndefined): + (WebCore::jsStringOrFalse): + (WebCore::valueToStringWithNullCheck): + (WebCore::valueToStringWithUndefinedOrNullCheck): + (WebCore::reportException): + (WebCore::reportCurrentException): + (WebCore::setDOMException): + (WebCore::objectToStringFunctionGetter): + * bindings/js/JSDOMBinding.h: + (WebCore::getDOMObjectWrapper): + (WebCore::getDOMNodeWrapper): + (WebCore::toJS): + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::findJSEventListener): + (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener): + (WebCore::JSDOMGlobalObject::createJSAttributeEventListener): + * bindings/js/JSDOMGlobalObject.h: + * bindings/js/JSDOMStringListCustom.cpp: + (WebCore::JSDOMStringList::getByIndex): + (WebCore::JSDOMStringList::item): + * bindings/js/JSDOMWindowBase.cpp: + (WebCore::JSDOMWindowBase::childFrameGetter): + (WebCore::JSDOMWindowBase::indexGetter): + (WebCore::JSDOMWindowBase::namedItemGetter): + (WebCore::JSDOMWindowBase::getOwnPropertySlot): + (WebCore::JSDOMWindowBase::put): + (WebCore::JSDOMWindowBase::setReturnValueSlot): + (WebCore::toJS): + (WebCore::toJSDOMWindow): + * bindings/js/JSDOMWindowBase.h: + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::lookupGetter): + (WebCore::JSDOMWindow::lookupSetter): + (WebCore::JSDOMWindow::history): + (WebCore::JSDOMWindow::location): + (WebCore::JSDOMWindow::setLocation): + (WebCore::JSDOMWindow::crypto): + (WebCore::JSDOMWindow::event): + (WebCore::JSDOMWindow::image): + (WebCore::JSDOMWindow::option): + (WebCore::JSDOMWindow::audio): + (WebCore::JSDOMWindow::webKitPoint): + (WebCore::JSDOMWindow::webKitCSSMatrix): + (WebCore::JSDOMWindow::xmlHttpRequest): + (WebCore::JSDOMWindow::xsltProcessor): + (WebCore::JSDOMWindow::messageChannel): + (WebCore::JSDOMWindow::worker): + (WebCore::createWindow): + (WebCore::JSDOMWindow::open): + (WebCore::JSDOMWindow::showModalDialog): + (WebCore::JSDOMWindow::postMessage): + (WebCore::JSDOMWindow::setTimeout): + (WebCore::JSDOMWindow::setInterval): + (WebCore::JSDOMWindow::atob): + (WebCore::JSDOMWindow::btoa): + (WebCore::JSDOMWindow::addEventListener): + (WebCore::JSDOMWindow::removeEventListener): + (WebCore::toDOMWindow): + * bindings/js/JSDOMWindowCustom.h: + (WebCore::nonCachingStaticFunctionGetter): + (WebCore::JSDOMWindow::customPut): + * bindings/js/JSDOMWindowShell.cpp: + (WebCore::JSDOMWindowShell::put): + (WebCore::JSDOMWindowShell::putWithAttributes): + (WebCore::JSDOMWindowShell::lookupGetter): + (WebCore::JSDOMWindowShell::lookupSetter): + (WebCore::toJS): + * bindings/js/JSDOMWindowShell.h: + (WebCore::JSDOMWindowShell::createStructure): + * bindings/js/JSDatabaseCustom.cpp: + (WebCore::JSDatabase::changeVersion): + (WebCore::JSDatabase::transaction): + * bindings/js/JSDocumentCustom.cpp: + (WebCore::JSDocument::location): + (WebCore::JSDocument::setLocation): + (WebCore::toJS): + * bindings/js/JSElementCustom.cpp: + (WebCore::JSElement::setAttribute): + (WebCore::JSElement::setAttributeNode): + (WebCore::JSElement::setAttributeNS): + (WebCore::JSElement::setAttributeNodeNS): + (WebCore::toJSNewlyCreated): + * bindings/js/JSEventCustom.cpp: + (WebCore::JSEvent::clipboardData): + (WebCore::toJS): + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::handleEvent): + * bindings/js/JSEventTarget.cpp: + (WebCore::toJS): + (WebCore::toEventTarget): + * bindings/js/JSEventTarget.h: + * bindings/js/JSEventTargetBase.h: + * bindings/js/JSGeolocationCustom.cpp: + (WebCore::createPositionOptions): + (WebCore::JSGeolocation::getCurrentPosition): + (WebCore::JSGeolocation::watchPosition): + * bindings/js/JSHTMLAllCollection.h: + (WebCore::JSHTMLAllCollection::createStructure): + * bindings/js/JSHTMLAppletElementCustom.cpp: + (WebCore::JSHTMLAppletElement::customPut): + (WebCore::JSHTMLAppletElement::nameGetter): + * bindings/js/JSHTMLCollectionCustom.cpp: + (WebCore::getNamedItems): + (WebCore::callHTMLCollection): + (WebCore::JSHTMLCollection::nameGetter): + (WebCore::JSHTMLCollection::item): + (WebCore::JSHTMLCollection::namedItem): + (WebCore::toJS): + * bindings/js/JSHTMLDocumentCustom.cpp: + (WebCore::JSHTMLDocument::nameGetter): + (WebCore::JSHTMLDocument::all): + (WebCore::JSHTMLDocument::setAll): + (WebCore::JSHTMLDocument::open): + (WebCore::JSHTMLDocument::write): + (WebCore::JSHTMLDocument::writeln): + * bindings/js/JSHTMLEmbedElementCustom.cpp: + (WebCore::JSHTMLEmbedElement::customPut): + (WebCore::JSHTMLEmbedElement::nameGetter): + * bindings/js/JSHTMLFormElementCustom.cpp: + (WebCore::JSHTMLFormElement::nameGetter): + (WebCore::JSHTMLFormElement::submit): + * bindings/js/JSHTMLFrameElementCustom.cpp: + (WebCore::JSHTMLFrameElement::setSrc): + (WebCore::JSHTMLFrameElement::setLocation): + * bindings/js/JSHTMLFrameSetElementCustom.cpp: + (WebCore::JSHTMLFrameSetElement::nameGetter): + * bindings/js/JSHTMLIFrameElementCustom.cpp: + (WebCore::JSHTMLIFrameElement::setSrc): + * bindings/js/JSHTMLInputElementCustom.cpp: + (WebCore::JSHTMLInputElement::selectionStart): + (WebCore::JSHTMLInputElement::setSelectionStart): + (WebCore::JSHTMLInputElement::selectionEnd): + (WebCore::JSHTMLInputElement::setSelectionEnd): + (WebCore::JSHTMLInputElement::setSelectionRange): + * bindings/js/JSHTMLObjectElementCustom.cpp: + (WebCore::JSHTMLObjectElement::customPut): + (WebCore::JSHTMLObjectElement::nameGetter): + * bindings/js/JSHTMLOptionsCollectionCustom.cpp: + (WebCore::JSHTMLOptionsCollection::length): + (WebCore::JSHTMLOptionsCollection::setLength): + (WebCore::JSHTMLOptionsCollection::indexSetter): + (WebCore::JSHTMLOptionsCollection::add): + (WebCore::JSHTMLOptionsCollection::remove): + * bindings/js/JSHTMLSelectElementCustom.cpp: + (WebCore::JSHTMLSelectElement::remove): + (WebCore::selectIndexSetter): + (WebCore::JSHTMLSelectElement::indexSetter): + * bindings/js/JSHTMLSelectElementCustom.h: + * bindings/js/JSHistoryCustom.cpp: + (WebCore::nonCachingStaticBackFunctionGetter): + (WebCore::nonCachingStaticForwardFunctionGetter): + (WebCore::nonCachingStaticGoFunctionGetter): + (WebCore::JSHistory::customPut): + * bindings/js/JSImageDataCustom.cpp: + (WebCore::toJS): + * bindings/js/JSInspectedObjectWrapper.cpp: + (WebCore::JSInspectedObjectWrapper::wrap): + (WebCore::JSInspectedObjectWrapper::prepareIncomingValue): + * bindings/js/JSInspectedObjectWrapper.h: + (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue): + * bindings/js/JSInspectorCallbackWrapper.cpp: + (WebCore::JSInspectorCallbackWrapper::wrap): + (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue): + * bindings/js/JSInspectorCallbackWrapper.h: + (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue): + * bindings/js/JSInspectorControllerCustom.cpp: + (WebCore::JSInspectorController::highlightDOMNode): + (WebCore::JSInspectorController::addResourceSourceToFrame): + (WebCore::JSInspectorController::addSourceToFrame): + (WebCore::JSInspectorController::getResourceDocumentNode): + (WebCore::JSInspectorController::search): + (WebCore::JSInspectorController::databaseTableNames): + (WebCore::JSInspectorController::inspectedWindow): + (WebCore::JSInspectorController::setting): + (WebCore::JSInspectorController::setSetting): + (WebCore::JSInspectorController::wrapCallback): + (WebCore::JSInspectorController::currentCallFrame): + (WebCore::JSInspectorController::profiles): + * bindings/js/JSJavaScriptCallFrameCustom.cpp: + (WebCore::JSJavaScriptCallFrame::evaluate): + (WebCore::JSJavaScriptCallFrame::thisObject): + (WebCore::JSJavaScriptCallFrame::type): + (WebCore::JSJavaScriptCallFrame::scopeChain): + * bindings/js/JSLazyEventListener.cpp: + (WebCore::JSLazyEventListener::parseCode): + * bindings/js/JSLocationCustom.cpp: + (WebCore::nonCachingStaticReplaceFunctionGetter): + (WebCore::nonCachingStaticReloadFunctionGetter): + (WebCore::nonCachingStaticAssignFunctionGetter): + (WebCore::JSLocation::customPut): + (WebCore::JSLocation::setHref): + (WebCore::JSLocation::setProtocol): + (WebCore::JSLocation::setHost): + (WebCore::JSLocation::setHostname): + (WebCore::JSLocation::setPort): + (WebCore::JSLocation::setPathname): + (WebCore::JSLocation::setSearch): + (WebCore::JSLocation::setHash): + (WebCore::JSLocation::replace): + (WebCore::JSLocation::reload): + (WebCore::JSLocation::assign): + (WebCore::JSLocation::toString): + (WebCore::JSLocationPrototype::customPut): + * bindings/js/JSMessagePortCustom.cpp: + (WebCore::JSMessagePort::startConversation): + (WebCore::JSMessagePort::addEventListener): + (WebCore::JSMessagePort::removeEventListener): + * bindings/js/JSMimeTypeArrayCustom.cpp: + (WebCore::JSMimeTypeArray::nameGetter): + * bindings/js/JSNamedNodeMapCustom.cpp: + (WebCore::JSNamedNodeMap::nameGetter): + * bindings/js/JSNamedNodesCollection.cpp: + (WebCore::JSNamedNodesCollection::lengthGetter): + (WebCore::JSNamedNodesCollection::indexGetter): + * bindings/js/JSNamedNodesCollection.h: + (WebCore::JSNamedNodesCollection::createStructure): + * bindings/js/JSNavigatorCustom.cpp: + (WebCore::needsYouTubeQuirk): + (WebCore::JSNavigator::appVersion): + * bindings/js/JSNodeCustom.cpp: + (WebCore::JSNode::insertBefore): + (WebCore::JSNode::replaceChild): + (WebCore::JSNode::removeChild): + (WebCore::JSNode::appendChild): + (WebCore::JSNode::addEventListener): + (WebCore::JSNode::removeEventListener): + (WebCore::createWrapper): + (WebCore::toJSNewlyCreated): + (WebCore::toJS): + * bindings/js/JSNodeFilterCondition.cpp: + (WebCore::JSNodeFilterCondition::JSNodeFilterCondition): + (WebCore::JSNodeFilterCondition::acceptNode): + * bindings/js/JSNodeFilterCondition.h: + (WebCore::JSNodeFilterCondition::create): + * bindings/js/JSNodeFilterCustom.cpp: + (WebCore::JSNodeFilter::acceptNode): + (WebCore::toNodeFilter): + * bindings/js/JSNodeIteratorCustom.cpp: + (WebCore::JSNodeIterator::nextNode): + (WebCore::JSNodeIterator::previousNode): + * bindings/js/JSNodeListCustom.cpp: + (WebCore::callNodeList): + (WebCore::JSNodeList::nameGetter): + * bindings/js/JSPluginArrayCustom.cpp: + (WebCore::JSPluginArray::nameGetter): + * bindings/js/JSPluginCustom.cpp: + (WebCore::JSPlugin::nameGetter): + * bindings/js/JSPluginElementFunctions.cpp: + (WebCore::runtimeObjectGetter): + (WebCore::runtimeObjectPropertyGetter): + (WebCore::runtimeObjectCustomPut): + (WebCore::callPlugin): + * bindings/js/JSPluginElementFunctions.h: + * bindings/js/JSQuarantinedObjectWrapper.cpp: + (WebCore::JSQuarantinedObjectWrapper::asWrapper): + (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter): + (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState): + (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot): + (WebCore::JSQuarantinedObjectWrapper::put): + (WebCore::JSQuarantinedObjectWrapper::construct): + (WebCore::JSQuarantinedObjectWrapper::hasInstance): + (WebCore::JSQuarantinedObjectWrapper::call): + * bindings/js/JSQuarantinedObjectWrapper.h: + (WebCore::JSQuarantinedObjectWrapper::createStructure): + * bindings/js/JSRGBColor.cpp: + (WebCore::getJSRGBColor): + (jsRGBColorRed): + (jsRGBColorGreen): + (jsRGBColorBlue): + * bindings/js/JSRGBColor.h: + (WebCore::JSRGBColor::createStructure): + * bindings/js/JSSQLResultSetRowListCustom.cpp: + (WebCore::JSSQLResultSetRowList::item): + * bindings/js/JSSQLTransactionCustom.cpp: + (WebCore::JSSQLTransaction::executeSql): + * bindings/js/JSSVGElementInstanceCustom.cpp: + (WebCore::JSSVGElementInstance::addEventListener): + (WebCore::JSSVGElementInstance::removeEventListener): + (WebCore::toJS): + * bindings/js/JSSVGLengthCustom.cpp: + (WebCore::JSSVGLength::value): + (WebCore::JSSVGLength::convertToSpecifiedUnits): + * bindings/js/JSSVGMatrixCustom.cpp: + (WebCore::JSSVGMatrix::inverse): + (WebCore::JSSVGMatrix::rotateFromVector): + * bindings/js/JSSVGPathSegCustom.cpp: + (WebCore::toJS): + * bindings/js/JSSVGPathSegListCustom.cpp: + (WebCore::JSSVGPathSegList::clear): + (WebCore::JSSVGPathSegList::initialize): + (WebCore::JSSVGPathSegList::getItem): + (WebCore::JSSVGPathSegList::insertItemBefore): + (WebCore::JSSVGPathSegList::replaceItem): + (WebCore::JSSVGPathSegList::removeItem): + (WebCore::JSSVGPathSegList::appendItem): + * bindings/js/JSSVGPointListCustom.cpp: + (WebCore::finishGetter): + (WebCore::finishSetter): + (WebCore::finishSetterReadOnlyResult): + (WebCore::JSSVGPointList::clear): + (WebCore::JSSVGPointList::initialize): + (WebCore::JSSVGPointList::getItem): + (WebCore::JSSVGPointList::insertItemBefore): + (WebCore::JSSVGPointList::replaceItem): + (WebCore::JSSVGPointList::removeItem): + (WebCore::JSSVGPointList::appendItem): + * bindings/js/JSSVGTransformListCustom.cpp: + (WebCore::finishGetter): + (WebCore::finishSetter): + (WebCore::finishSetterReadOnlyResult): + (WebCore::JSSVGTransformList::clear): + (WebCore::JSSVGTransformList::initialize): + (WebCore::JSSVGTransformList::getItem): + (WebCore::JSSVGTransformList::insertItemBefore): + (WebCore::JSSVGTransformList::replaceItem): + (WebCore::JSSVGTransformList::removeItem): + (WebCore::JSSVGTransformList::appendItem): + * bindings/js/JSStorageCustom.cpp: + (WebCore::JSStorage::nameGetter): + (WebCore::JSStorage::deleteProperty): + (WebCore::JSStorage::customPut): + * bindings/js/JSStyleSheetCustom.cpp: + (WebCore::toJS): + * bindings/js/JSStyleSheetListCustom.cpp: + (WebCore::JSStyleSheetList::nameGetter): + * bindings/js/JSTextCustom.cpp: + (WebCore::toJSNewlyCreated): + * bindings/js/JSTreeWalkerCustom.cpp: + (WebCore::JSTreeWalker::parentNode): + (WebCore::JSTreeWalker::firstChild): + (WebCore::JSTreeWalker::lastChild): + (WebCore::JSTreeWalker::nextSibling): + (WebCore::JSTreeWalker::previousSibling): + (WebCore::JSTreeWalker::previousNode): + (WebCore::JSTreeWalker::nextNode): + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::self): + (WebCore::JSWorkerContext::setSelf): + (WebCore::JSWorkerContext::xmlHttpRequest): + (WebCore::JSWorkerContext::importScripts): + (WebCore::JSWorkerContext::addEventListener): + (WebCore::JSWorkerContext::removeEventListener): + (WebCore::JSWorkerContext::setTimeout): + (WebCore::JSWorkerContext::setInterval): + * bindings/js/JSWorkerCustom.cpp: + (WebCore::JSWorker::addEventListener): + (WebCore::JSWorker::removeEventListener): + * bindings/js/JSXMLHttpRequestCustom.cpp: + (WebCore::JSXMLHttpRequest::open): + (WebCore::JSXMLHttpRequest::setRequestHeader): + (WebCore::JSXMLHttpRequest::send): + (WebCore::JSXMLHttpRequest::getResponseHeader): + (WebCore::JSXMLHttpRequest::overrideMimeType): + (WebCore::JSXMLHttpRequest::addEventListener): + (WebCore::JSXMLHttpRequest::removeEventListener): + (WebCore::JSXMLHttpRequest::responseText): + * bindings/js/JSXMLHttpRequestUploadCustom.cpp: + (WebCore::JSXMLHttpRequestUpload::addEventListener): + (WebCore::JSXMLHttpRequestUpload::removeEventListener): + * bindings/js/JSXSLTProcessorCustom.cpp: + (WebCore::JSXSLTProcessor::importStylesheet): + (WebCore::JSXSLTProcessor::transformToFragment): + (WebCore::JSXSLTProcessor::transformToDocument): + (WebCore::JSXSLTProcessor::setParameter): + (WebCore::JSXSLTProcessor::getParameter): + (WebCore::JSXSLTProcessor::removeParameter): + * bindings/js/ScheduledAction.cpp: + (WebCore::ScheduledAction::create): + (WebCore::ScheduledAction::ScheduledAction): + (WebCore::ScheduledAction::executeFunctionInContext): + * bindings/js/ScheduledAction.h: + * bindings/js/ScriptCallStack.cpp: + (WebCore::ScriptCallStack::ScriptCallStack): + (WebCore::ScriptCallStack::initialize): + * bindings/js/ScriptCallStack.h: + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::jsObjectForPluginElement): + * bindings/js/ScriptFunctionCall.cpp: + (WebCore::ScriptFunctionCall::appendArgument): + (WebCore::ScriptFunctionCall::call): + (WebCore::ScriptFunctionCall::construct): + * bindings/js/ScriptFunctionCall.h: + * bindings/js/ScriptObject.cpp: + (WebCore::ScriptGlobalObject::get): + * bindings/js/ScriptValue.h: + (WebCore::ScriptValue::ScriptValue): + (WebCore::ScriptValue::jsValue): + * bindings/objc/WebScriptObject.mm: + (-[WebScriptObject callWebScriptMethod:withArguments:]): + (-[WebScriptObject evaluateWebScript:]): + (-[WebScriptObject valueForKey:]): + (-[WebScriptObject webScriptValueAtIndex:]): + (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]): + * bindings/objc/WebScriptObjectPrivate.h: + * bridge/NP_jsobject.cpp: + (_NPN_InvokeDefault): + (_NPN_Invoke): + (_NPN_Evaluate): + (_NPN_GetProperty): + (_NPN_HasMethod): + (_NPN_Construct): + * bridge/c/c_instance.cpp: + (JSC::Bindings::CInstance::invokeMethod): + (JSC::Bindings::CInstance::invokeDefaultMethod): + (JSC::Bindings::CInstance::invokeConstruct): + (JSC::Bindings::CInstance::defaultValue): + (JSC::Bindings::CInstance::stringValue): + (JSC::Bindings::CInstance::numberValue): + (JSC::Bindings::CInstance::booleanValue): + (JSC::Bindings::CInstance::valueOf): + * bridge/c/c_instance.h: + * bridge/c/c_runtime.cpp: + (JSC::Bindings::CField::valueFromInstance): + (JSC::Bindings::CField::setValueToInstance): + * bridge/c/c_runtime.h: + * bridge/c/c_utility.cpp: + (JSC::Bindings::convertValueToNPVariant): + (JSC::Bindings::convertNPVariantToValue): + * bridge/c/c_utility.h: + * bridge/jni/jni_instance.cpp: + (JavaInstance::stringValue): + (JavaInstance::numberValue): + (JavaInstance::booleanValue): + (JavaInstance::invokeMethod): + (JavaInstance::defaultValue): + (JavaInstance::valueOf): + * bridge/jni/jni_instance.h: + * bridge/jni/jni_jsobject.h: + * bridge/jni/jni_jsobject.mm: + (JavaJSObject::call): + (JavaJSObject::eval): + (JavaJSObject::getMember): + (JavaJSObject::getSlot): + (JavaJSObject::convertValueToJObject): + (JavaJSObject::convertJObjectToValue): + * bridge/jni/jni_objc.mm: + (JSC::Bindings::dispatchJNICall): + * bridge/jni/jni_runtime.cpp: + (JavaArray::convertJObjectToArray): + (JavaField::dispatchValueFromInstance): + (JavaField::valueFromInstance): + (JavaField::dispatchSetValueToInstance): + (JavaField::setValueToInstance): + (JavaArray::setValueAt): + (JavaArray::valueAt): + * bridge/jni/jni_runtime.h: + * bridge/jni/jni_utility.cpp: + (JSC::Bindings::convertArrayInstanceToJavaArray): + (JSC::Bindings::convertValueToJValue): + * bridge/jni/jni_utility.h: + * bridge/objc/WebScriptObject.h: + * bridge/objc/objc_class.h: + * bridge/objc/objc_class.mm: + (JSC::Bindings::ObjcClass::fallbackObject): + * bridge/objc/objc_instance.h: + * bridge/objc/objc_instance.mm: + (ObjcInstance::invokeMethod): + (ObjcInstance::invokeDefaultMethod): + (ObjcInstance::setValueOfUndefinedField): + (ObjcInstance::getValueOfUndefinedField): + (ObjcInstance::defaultValue): + (ObjcInstance::stringValue): + (ObjcInstance::numberValue): + (ObjcInstance::booleanValue): + (ObjcInstance::valueOf): + * bridge/objc/objc_runtime.h: + (JSC::Bindings::ObjcFallbackObjectImp::createStructure): + * bridge/objc/objc_runtime.mm: + (JSC::Bindings::ObjcField::valueFromInstance): + (JSC::Bindings::convertValueToObjcObject): + (JSC::Bindings::ObjcField::setValueToInstance): + (JSC::Bindings::ObjcArray::setValueAt): + (JSC::Bindings::ObjcArray::valueAt): + (JSC::Bindings::ObjcFallbackObjectImp::put): + (JSC::Bindings::callObjCFallbackObject): + (JSC::Bindings::ObjcFallbackObjectImp::defaultValue): + * bridge/objc/objc_utility.h: + * bridge/objc/objc_utility.mm: + (JSC::Bindings::convertValueToObjcValue): + (JSC::Bindings::convertNSStringToString): + (JSC::Bindings::convertObjcValueToValue): + * bridge/runtime.h: + (JSC::Bindings::Class::fallbackObject): + (JSC::Bindings::Instance::setValueOfUndefinedField): + (JSC::Bindings::Instance::invokeDefaultMethod): + (JSC::Bindings::Instance::invokeConstruct): + (JSC::Bindings::Instance::put): + * bridge/runtime_array.cpp: + (JSC::RuntimeArray::lengthGetter): + (JSC::RuntimeArray::indexGetter): + (JSC::RuntimeArray::put): + * bridge/runtime_array.h: + (JSC::RuntimeArray::createStructure): + * bridge/runtime_method.cpp: + (JSC::RuntimeMethod::lengthGetter): + (JSC::callRuntimeMethod): + * bridge/runtime_method.h: + (JSC::RuntimeMethod::createStructure): + * bridge/runtime_object.cpp: + (JSC::RuntimeObjectImp::fallbackObjectGetter): + (JSC::RuntimeObjectImp::fieldGetter): + (JSC::RuntimeObjectImp::methodGetter): + (JSC::RuntimeObjectImp::put): + (JSC::RuntimeObjectImp::defaultValue): + (JSC::callRuntimeObject): + (JSC::callRuntimeConstructor): + * bridge/runtime_object.h: + (JSC::RuntimeObjectImp::createStructure): + * inspector/JavaScriptCallFrame.cpp: + (WebCore::JavaScriptCallFrame::evaluate): + * inspector/JavaScriptCallFrame.h: + * inspector/JavaScriptProfile.cpp: + (WebCore::toJS): + * inspector/JavaScriptProfile.h: + * inspector/JavaScriptProfileNode.cpp: + (WebCore::toJS): + * inspector/JavaScriptProfileNode.h: + +2009-05-01 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25485 + Only use visitedURL in Qt. This is a follow-up change to http://trac.webkit.org/changeset/43052, + which broke Chromium build. + + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState): Moved guards around to + provide separate code paths for Qt and non-Qt ports. Also restored original + order of execution. + +2009-05-01 Anders Carlsson <andersca@apple.com> + + Reviewed by Adele Peterson. + + <rdar://problem/6839222> + CrashTracer: Lots of crashes in Safari in hash table remove function inside DocumentLoader::removeSubresourceLoader + + After calling m_client->didFail(), check if the subresource loader has reached its terminal state. If that's the case, + return early to avoid calling removeSubresourceLoader on a null document loader. I don't think this is allowed to happen + which is why I've added the ASSERT. + + * loader/SubresourceLoader.cpp: + (WebCore::SubresourceLoader::didCancel): + +2009-05-01 Timothy Hatcher <timothy@apple.com> + + Disallow the deletion UI for elements that have any overflow clipping. + Also disallow the UI for the body element it isn't practical to delete, + and the deletion UI would be clipped. + + <rdar://problem/6840161> Deletion UI can be clipped by some + elements (with overflow: hidden) + + Reviewed by Darin Adler. + + * editing/DeleteButtonController.cpp: + (WebCore::isDeletableElement): + +2009-05-01 Timothy Hatcher <timothy@apple.com> + + Decrease the minimum height for deleteable elements to 16px, and increase the + minimum width to 48px. This allows deleting shorter items like navigation bars. + + <rdar://problem/6840735> Deletion UI does not show up for short + elements (22px or less) + + Reviewed by Adele Peterson. + + * editing/DeleteButtonController.cpp: + (WebCore::isDeletableElement): + +2009-05-01 Timothy Hatcher <timothy@apple.com> + + Clean up the comments and logic in the code for picking a + deleteable element for the deletion UI. + + Reviewed by Adele Peterson. + + * editing/DeleteButtonController.cpp: + (WebCore::isDeletableElement): + +2009-05-01 Kevin McCullough <kmccullough@apple.com> + + Reviewed by Adele Peterson and Darin Adler. + + <rdar://problem/4815598> Stuck in double spacing mode after pasting a + paragraph with padding/margin (or table mode !) + + A lot of the issues in this bug were resolved on Mail's side by using + WebKit to convert to plain text. This is the final issue, that floating + style stays on copied nodes causing them to float when they are pasted + which is not what the user intended. + + * editing/markup.cpp: + (WebCore::removeExteriorStyles): + (WebCore::): + (WebCore::appendStartMarkup): + (WebCore::getStartMarkup): + (WebCore::createMarkup): + +2009-05-01 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Add a FrameLoaderClient callback for the ResourceRetrievedByXMLHttpRequest. + This is the only resource-related information that is available in InspectorController + and is missing in the FrameLoaderClient. + + https://bugs.webkit.org/show_bug.cgi?id=25347 + + * WebCore.xcodeproj/project.pbxproj: Made ScriptSource private. + * dom/Document.cpp: Made a call to a client along with the call to the InspectorController. + (WebCore::Document::resourceRetrievedByXMLHttpRequest): + * loader/EmptyClients.h: Added stub implementation. + (WebCore::EmptyFrameLoaderClient::dispatchDidLoadResourceByXMLHttpRequest): + * loader/FrameLoader.cpp: Call initiating dispatches. + (WebCore::FrameLoader::resourceRetrievedByXMLHttpRequest): + * loader/FrameLoader.h: + * loader/FrameLoaderClient.h: + +2009-04-30 Beth Dakin <bdakin@apple.com> + + Reviewed by Oliver Hunt. + + Fix for <rdar://problem/6841106> REGRESSION: Crash drag selecting + To Do's in a Mail note (excessive recursion in mouse drag tracking) + + Oliver's recent change to dragging seems to have revealed a long- + time bug in passSubframeEventToSubframe where we did not set + m_sendingEventToSubview to true before calling + handleMouseMoveEvent() in the NSMouseMoved case. This patch fixes + that and adds ASSERTions around all of the places where + m_sendingEventToSubview is set to true and then false to make sure + we are not trampling its state. + + * page/mac/EventHandlerMac.mm: + (WebCore::EventHandler::eventLoopHandleMouseDragged): + (WebCore::EventHandler::eventLoopHandleMouseUp): + (WebCore::EventHandler::passSubframeEventToSubframe): + (WebCore::EventHandler::passWheelEventToWidget): + +2009-04-30 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + MediaDocument falls back to plug-in unnecessarily + https://bugs.webkit.org/show_bug.cgi?id=25504 + <rdar://problem/6844702> + + Don't allow harmless media types to cause a MediaDocument to fall + back to PluginDocument. + + Test: media/video-document-types.html + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): add timecode, timecode 64, + odsm, and sdsm to allowed track types. + + * platform/graphics/win/QTMovieWin.cpp: + (QTMovieWin::disableUnsupportedTracks): Ditto. + +2009-04-30 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Eric Seidel. + + Add CHROMIUM guard to unfork Document.cpp + + * dom/Document.cpp: + (WebCore::Document::setFocusedNode): Added guard. + +2009-04-30 David Kilzer <ddkilzer@apple.com> + + Use OwnPtr<HTMLParserQuirks> for m_parserQuirks + + Reviewed by Geoff Garen. + + * html/HTMLParser.cpp: + (WebCore::HTMLParser::~HTMLParser): Removed unneeded code. + * html/HTMLParser.h: Made m_parserQuirks an OwnPtr. + +2009-04-30 David Kilzer <ddkilzer@apple.com> + + Provide a mechanism to create a quirks delegate for HTMLParser + + Reviewed by David Hyatt. + + No tests since there is no change in behavior. + + HTMLParserQuirks.h defines an abstract base class that may be + extended as needed. The ChromeClient::createHTMLParserQuirks() + factory method should be used to return an HTMLParserQuirks + subclassed object when needed. + + * WebCore.xcodeproj/project.pbxproj: Added HTMLParserQuirks.h. + * html/HTMLParser.cpp: + (WebCore::HTMLParser::HTMLParser): Initialize m_parserQuirks + using ChromeClient::createHTMLParserQuirks(). + (WebCore::HTMLParser::~HTMLParser): Delete m_parserQuirks if + set. + (WebCore::HTMLParser::reset): Call HTMLParserQuirks::reset() if + m_parserQuirks is set. + (WebCore::HTMLParser::insertNode): Call + HTMLParserQuirks::shouldInsertNode() if m_parserQuirks is set, + and return early if it returns false. + (WebCore::HTMLParser::popBlock): Call + HTMLParserQuirks::shouldPopBlock() if m_parserQuirks is set, and + return early if it returns false. + * html/HTMLParser.h: Added m_parserQuirks. + * html/HTMLParserQuirks.h: Added. + (WebCore::HTMLParserQuirks::HTMLParserQuirks): + (WebCore::HTMLParserQuirks::~HTMLParserQuirks): + * loader/EmptyClients.h: + (WebCore::EmptyChromeClient::createHTMLParserQuirks): Added. + * page/ChromeClient.h: + (WebCore::ChromeClient::createHTMLParserQuirks): Added. + +2009-04-30 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25492 + Add JSC guards around node wrapper cache calls. These are not used by V8. + + Also, remove JSDOMBinding include, which is brought in by ScriptController. + + * dom/Document.cpp: + (WebCore::Document::~Document): Added JSC guard. + * dom/Node.cpp: + (WebCore::Node::setDocument): Ditto and removed JSDOMBinding include. + +2009-04-30 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25493 + Remove debugger/profiler custom method stubs, catching V8 bindings up to + http://trac.webkit.org/changeset/43072. + + * bindings/v8/custom/V8InspectorControllerCustom.cpp: Removed method stubs. + +2009-04-30 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + <rdar://problem/6839338> VoiceOver does not take into account transforms when drawing outlines + + Use transform-aware quad methods when computing the boundingBoxRect for + an AccessibilityRenderObject. The code follows RenderObject::absoluteBoundingBoxRect(). + + Test: accessibility/transformed-element.html + + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::boundingBoxRect): + +2009-04-30 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, Chromium build fix. + + Catch up to ScriptObject changes from http://trac.webkit.org/changeset/42512. + + * bindings/v8/ScriptObject.cpp: + (WebCore::ScriptGlobalObject::get): Renamed from getObject. + (WebCore::ScriptGlobalObject::remove): Added. + * bindings/v8/ScriptObject.h: Ditto. + +2009-04-30 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, build fix. + + https://bugs.webkit.org/show_bug.cgi?id=25470 + Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler. + + * WebCore.pro: Fix copy-paste error. + +2009-04-30 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, build fix. + + https://bugs.webkit.org/show_bug.cgi?id=25470 + Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler. + + * GNUmakefile.am: Add ENABLE_JAVASCRIPT_DEBUGGER definitions. + * WebCore.pro: Ditto. + +2009-04-02 Eric Seidel <eric@webkit.org> + + Reviewed by Darin Adler. + + Change Position to pre-compute the AnchorType and store it. + Also store a "legacy editing mode" bit on the Position. + https://bugs.webkit.org/show_bug.cgi?id=24763 + + The old Postion(node, offset) constructor creates legacy positions + but there are new constructors to create explicitly anchored positions + which the next patch will use. + + Once we fix all the "position-fixup" functions (like rangeCompliantEquivalent) to + only affect legacy positions, we will be able to distinguish + between [table, 1] and [table, after] in the code correctly! + + * WebCore.base.exp: + * WebCore.xcodeproj/project.pbxproj: + * dom/Position.cpp: + (WebCore::Position::Position): + (WebCore::Position::moveToPosition): + (WebCore::Position::moveToOffset): + (WebCore::Position::anchorTypeForLegacyEditingPosition): + (WebCore::Position::element): + * dom/Position.h: + (WebCore::Position::): + (WebCore::Position::Position): + (WebCore::Position::anchorType): + (WebCore::Position::deprecatedEditingOffset): + +2009-04-30 Sam Weinig <sam@webkit.org> + + Reviewed by Alexey Proskuryakov. + + Fix bug where the WorkerLocation and WorkerNavigator wrappers would be + collected even if the WorkerContext is still alive. + + Test: fast/workers/worker-context-gc.html + + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::mark): + * workers/WorkerContext.cpp: + (WebCore::WorkerContext::WorkerContext): + (WebCore::WorkerContext::completeURL): + (WebCore::WorkerContext::location): + * workers/WorkerContext.h: + (WebCore::WorkerContext::optionalNavigator): + (WebCore::WorkerContext::optionalLocation): + +2009-04-30 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Timothy Hatcher. + + https://bugs.webkit.org/show_bug.cgi?id=25470 + Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler. + + * Configurations/FeatureDefines.xcconfig: Added ENABLE_JAVASCRIPT_DEBUGGER. + * WebCore.vcproj/build-generated-files.sh: Ditto. + * bindings/js/JSConsoleCustom.cpp: Added ENABLE(JAVASCRIPT_DEBUGGER) guard. + * bindings/js/JSDOMWindowBase.cpp: Ditto. + * bindings/js/JSInspectorControllerCustom.cpp: Ditto. + * inspector/InspectorController.cpp: Moved profiler/debugger methods under + ENABLE(JAVASCRIPT_DEBUGGER) flag. + * inspector/InspectorController.h: Ditto. + * inspector/InspectorController.idl: Added ENABLE(JAVASCRIPT_DEBUGGER) guard. + * page/Console.cpp: Replaced USE(JSC) with ENABLE(JAVASCRIPT_DEBUGGER) guard. + +2009-04-30 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, build fix. + + https://bugs.webkit.org/show_bug.cgi?id=25275 + This patch snuck in a re-definition of a local. + + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::NAMED_PROPERTY_GETTER): Removed re-definition. + +2009-04-30 Sam Weinig <sam@webkit.org> + + Reviewed by Mark Rowe. + + Fix a leak introduced yesterday. Don't allocate a ScheduledAction + if the toString()ing throws an exception. + + * bindings/js/ScheduledAction.cpp: + (WebCore::ScheduledAction::create): + +2009-04-30 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25379 + <rdar://problem/6809460> REGRESSION (r41772): Selecting a bank in American Express Pay Bill fails + + Test: fast/forms/multiple-selected-options-innerHTML.html + + This problem was caused by an inconsistency at when Node::instertedIntoTree() is called. + For normal HTML parsing, it is called immediately after an element is inserted, but for + innerHTML, it is only called after the whole subtree is inserted into a document. + + It may make sense to harmonize these cases one day, but for now, I only made the minimal + changes necessary to fix the bug. + + * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::insertedIntoTree): + * html/HTMLSelectElement.h: + Recalculate list items when a SELECT element is inserted. OPTION elements cannot decide + which one to keep selected themselves, because their logic assumes normal parsing, with + insertedIntoTree() called after each element is inserted. + +2009-04-30 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25342 + Add MessageSource and MessageLevel parameters to the ChromeClient::addMessageToConsole. + + Chromium async/out-of-process version of WebInspector is currently not based on + InspectorController. The reason was that we did not want to interfere with + the unforking effort, yet wanted to experiment. So we came up with these + agents concept that basically mimic InspectorController, but separating 'agent' + nature from the 'transport'. Now that InspectorController is unforked, I am + planning to bring these concepts into the WebKit land and use what we have in + Chromium as a proof of concept / experimental playground. + + * loader/EmptyClients.h: added MessageSource and MessageLevel parameters. + (WebCore::EmptyChromeClient::addMessageToConsole): ditto + * page/ChromeClient.h: ditto + * page/Console.cpp: Used new method signature. + (WebCore::Console::addMessage): ditto + +2009-04-30 Dan Bernstein <mitz@apple.com> + + Reviewed by Simon Fraser. + + - fix https://bugs.webkit.org/show_bug.cgi?id=25476 + <rdar://problem/6841919> REGRESSION (r42987): Welcome to Safari 4 + animation is jittery + + Reverted r42987. + + * platform/graphics/cg/ImageCG.cpp: + (WebCore::BitmapImage::draw): + +2009-04-30 Brady Eidson <beidson@apple.com> + + Reviewed by Maciej Stachowiak + + <rdar://problem/3785248> http://www.greekembassy.org/ gets in an infinite reload loop + https://bugs.webkit.org/show_bug.cgi?id=21193 + + Some websites use for attributes in script elements to specify events that the script + should be run for. One example is greekembassy.org which has the following in their <head>: + + <script for=window event=onresize> + location.reload(false); + </script> + + Since we don't support the full for attribute syntax, we would just blissfully ignore the + condition and execute the code unconditionally. This caused breakage on multiple real-world + sites besides greekembassy.org. + + https://bugs.webkit.org/show_bug.cgi?id=16915 and <rdar://problem/4471751> track adding full + support for the for attribute in scripts. In the meantime it's best to not execute them + unconditionally. + + Test: fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution.html + + * dom/ScriptElement.cpp: + (WebCore::ScriptElementData::shouldExecuteAsJavaScript): After all other checks have + passed, only return true if there is no for attribute in the script element. + * dom/ScriptElement.h: + + * html/HTMLScriptElement.cpp: + (WebCore::HTMLScriptElement::forAttributeValue): Return the attribute value, if any. + * html/HTMLScriptElement.h: + + * svg/SVGScriptElement.cpp: + (WebCore::SVGScriptElement::forAttributeValue): Return an empty string (like the other + attribute getters do for SVGScriptElement) + * svg/SVGScriptElement.h: + +2009-04-30 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Darin Adler. + + The Qt API exposes a global history patch CSSStyleSelector to make API consumers work again + + https://bugs.webkit.org/show_bug.cgi?id=20952 + + The QtWebKit port made the mistake of exposing a global history. This broke + with the addition of PageGroup and LinkHash. This needs to be repaired + for Qt4.5. + + Add a function to LinkHash.cpp that is resolving a URL. Use this + function from within CSSStyleSelector to forward the url to the + QWebHistoryInterface API. + + It is sad that there is a path within visitedLinkHash which is now + doing a memcpy, it is sad to add a PLATFORM(QT) define to CSSStyleSelector + and using QtWebKit types within WebCore is a layering violation as well. + + PageGroup::setShouldTrackVisitedLinks is currently not enabled. For + Qt4.6 a second version of the QWebHistoryInterface is going to be + added which will fix things up. + + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState): + * platform/LinkHash.cpp: + (WebCore::visitedURL): + (WebCore::visitedLinkHash): + * platform/LinkHash.h: + +2009-04-30 Simon Hausmann <simon.hausmann@nokia.com> + + Fix the Qt build. + + * platform/graphics/SimpleFontData.cpp: Don't use initCharWidths() for the Qt build. + * platform/graphics/qt/SimpleFontDataQt.cpp: + (WebCore::SimpleFontData::platformCharWidthInit): Instead initialize the average and + max char widths from QFontMetrics. + +2009-04-30 Ariya Hidayat <ariya.hidayat@nokia.com> + + Unreview build fix after r43037. + + Use MarkedArgumentBuffer instead of ArgList. + + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::QtConnectionObject::execute): + +2009-04-29 Sam Weinig <sam@webkit.org> + + Reviewed by Oliver Hunt. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=25440 + setTimeout should stringify non-string/non-function first arguments + + Test: fast/dom/Window/setTimeout-string-argument.html + + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::setTimeout): + (WebCore::JSDOMWindow::setInterval): + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::setTimeout): + (WebCore::JSWorkerContext::setInterval): + * bindings/js/ScheduledAction.cpp: + (WebCore::ScheduledAction::create): + * bindings/js/ScheduledAction.h: + +2009-04-29 Dan Bernstein <mitz@apple.com> + + Reviewed by Simon Fraser. + + - WebCore part of <rdar://problem/6609509> Select All and then Delete + should put Mail editing back into the same state as a new message + + Test: editing/deleting/in-visibly-empty-root.html + + * WebCore.base.exp: Exported VisibleSelection::isAll(bool). + * editing/SelectionController.h: + (WebCore::SelectionController::isAll): Added. Calls through to + VisibleSelection. + * editing/TypingCommand.cpp: + (WebCore::TypingCommand::makeEditableRootEmpty): Added. Removes all children + of the root editable element the selection is in, other than a + placeholder. Returns true iff it did anything. + (WebCore::TypingCommand::deleteKeyPressed): When there is only a single + visible position in the root editable element, but it has children other + than a placeholder, remove those children. + * editing/TypingCommand.h: + * editing/VisiblePosition.h: + Added a StayInEditableContent enum and a FIXME. + * editing/VisibleSelection.cpp: + (WebCore::VisibleSelection::isAll): Added. Returns whether the + selection encompasses all visible positions, either in the document or + in the editable root. + * editing/VisibleSelection.h: + +2009-04-29 Sam Weinig <sam@webkit.org> + + Fix style nit. + + * editing/visible_units.cpp: + (WebCore::getLeafBoxesInLogicalOrder): + +2009-04-29 David Hyatt <hyatt@apple.com> + + Reviewed by Dan Bernstein. + + For now just drop the deferred layout on the floor, since it causes an infinite hang in mail. Even + trying to schedule a relayout for later leaves you in a state where you hit the needsLayout painting + assertions. + + Basically what Mail is doing is crazy, and we can't support it other than to just drop the last layout + and not do it (which is basically what was happening before). + + * page/FrameView.cpp: + (WebCore::FrameView::setContentsSize): + (WebCore::FrameView::needsLayout): + +2009-04-29 Douglas Davidson <ddavidso@apple.com> + + Reviewed by Justin Garcia. + + <rdar://problem/6836921> Mail exhibits issues with text checking, e.g. menu items not always validated correctly + + Updates to the text checking code to enable text checking even if spellchecking is turned off + and fix an off-by-one error in selection handling. + + * editing/Editor.cpp: + (WebCore::Editor::markMisspellingsAfterTypingToPosition): + (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): + (WebCore::Editor::markMisspellingsAndBadGrammar): + * editing/Editor.h: + * editing/TypingCommand.cpp: + (WebCore::TypingCommand::markMisspellingsAfterTyping): + +2009-04-29 Oliver Hunt <oliver@apple.com> + + Reviewed by Gavin Barraclough. + + Clean up ArgList to be a trivial type + + Start using MarkedArgumentBuffer to create argument lists for function calls + + * bindings/js/JSClipboardCustom.cpp: + (WebCore::JSClipboard::types): + * bindings/js/JSConsoleCustom.cpp: + (WebCore::JSConsole::profiles): + * bindings/js/JSCustomPositionCallback.cpp: + (WebCore::JSCustomPositionCallback::handleEvent): + * bindings/js/JSCustomPositionErrorCallback.cpp: + (WebCore::JSCustomPositionErrorCallback::handleEvent): + * bindings/js/JSCustomSQLStatementCallback.cpp: + (WebCore::JSCustomSQLStatementCallback::handleEvent): + * bindings/js/JSCustomSQLStatementErrorCallback.cpp: + (WebCore::JSCustomSQLStatementErrorCallback::handleEvent): + * bindings/js/JSCustomSQLTransactionCallback.cpp: + (WebCore::JSCustomSQLTransactionCallback::handleEvent): + * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: + (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent): + * bindings/js/JSCustomVoidCallback.cpp: + (WebCore::JSCustomVoidCallback::handleEvent): + * bindings/js/JSCustomXPathNSResolver.cpp: + (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::handleEvent): + * bindings/js/JSInspectorControllerCustom.cpp: + (WebCore::JSInspectorController::profiles): + (WebCore::JSInspectorController::search): + (WebCore::JSInspectorController::databaseTableNames): + (WebCore::JSInspectorController::setting): + * bindings/js/JSJavaScriptCallFrameCustom.cpp: + (WebCore::JSJavaScriptCallFrame::scopeChain): + * bindings/js/JSLazyEventListener.cpp: + (WebCore::JSLazyEventListener::parseCode): + * bindings/js/JSNodeFilterCondition.cpp: + (WebCore::JSNodeFilterCondition::acceptNode): + * bindings/js/JSQuarantinedObjectWrapper.cpp: + (WebCore::JSQuarantinedObjectWrapper::construct): + (WebCore::JSQuarantinedObjectWrapper::call): + * bindings/js/ScheduledAction.cpp: + (WebCore::ScheduledAction::ScheduledAction): + (WebCore::ScheduledAction::executeFunctionInContext): + * bindings/js/ScriptFunctionCall.h: + * bindings/objc/WebScriptObject.mm: + (getListFromNSArray): + (-[WebScriptObject callWebScriptMethod:withArguments:]): + * bridge/NP_jsobject.cpp: + (getListFromVariantArgs): + (_NPN_InvokeDefault): + (_NPN_Invoke): + (_NPN_Construct): + * bridge/jni/jni_jsobject.h: + * bridge/jni/jni_jsobject.mm: + (JavaJSObject::call): + (JavaJSObject::getListFromJArray): + +2009-04-29 Eric Seidel <eric@webkit.org> + + No review, build fix only. + + Fix m_offset uses added while I wasn't looking. + + * editing/visible_units.cpp: + (WebCore::logicalStartPositionForLine): + (WebCore::logicalEndPositionForLine): + +2009-04-29 Xiaomei Ji <xji@chromium.org> + + Reviewed by Dan Bernstein. + + Fix https://bugs.webkit.org/show_bug.cgi?id=24168 + RTL: Home/End key does not behave correctly in mixed bidi text in RTL document + + Test: editing/selection/home-end.html + + * editing/SelectionController.cpp: + (WebCore::SelectionController::modifyExtendingForward): Change calling endOfLine() + to logicalEndOfLine() when granularity is LineBoundary. + (WebCore::SelectionController::modifyMovingForward): Change calling endOfLine() + to logicalEndOfLine() when granularity is LineBoundary + (WebCore::SelectionController::modifyExtendingBackward): Change calling + startOfLine() to logicalStartOfLine() when granularity is LineBoundary. + (WebCore::SelectionController::modifyMovingBackward): Change calling startOfLine() + to logicalStartOfLine() when granularity is LineBoundary. + * editing/visible_units.cpp: + (WebCore::getLeafBoxesInLogicalOrder): Added. Reconstruct leaf boxes in logical order. + (WebCore::getLogicalStartBoxAndNode): Added. + (WebCore::getLogicalEndBoxAndNode): Added. + (WebCore::logicalStartPositionForLine): Added. Similar to startPositionForLine. + (WebCore::logicalStartOfLine): Added. Similar to startOfLine. + (WebCore::logicalEndPositionForLine): Added. Similar to endPositionForLine. + (WebCore::inSameLogicalLine): Added. + (WebCore::logicalEndOfLine): Added. Similar to endOfLine. + * editing/visible_units.h: + +2009-04-29 Eric Seidel <eric@webkit.org> + + Reviewed by Darin Adler. + + Make m_offset private and change all callers to use deprecatedEditingOffset(). + https://bugs.webkit.org/show_bug.cgi?id=25472 + + Per Darin's suggestion, this was just a simple search replace + of .m_offset with .deprecatedEditingOffset(). + + There was one change in InsertParagraphSeparatorCommand::doApply to use + Position::moveToOffset(0) instead of .m_offset = 0; + + * dom/Position.cpp: + (WebCore::Position::rendersInDifferentPosition): + (WebCore::Position::leadingWhitespacePosition): + * dom/Position.h: + (WebCore::Position::deprecatedEditingOffset): + (WebCore::Position::moveToOffset): + (WebCore::operator==): + * dom/PositionIterator.h: + (WebCore::PositionIterator::PositionIterator): + * dom/Range.cpp: + (WebCore::Range::create): + (WebCore::Range::compareBoundaryPoints): + * editing/ApplyStyleCommand.cpp: + (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): + (WebCore::ApplyStyleCommand::applyInlineStyleToRange): + (WebCore::ApplyStyleCommand::removeInlineStyle): + (WebCore::ApplyStyleCommand::nodeFullySelected): + (WebCore::ApplyStyleCommand::nodeFullyUnselected): + (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded): + (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded): + (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded): + (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded): + (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical): + (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical): + (WebCore::ApplyStyleCommand::joinChildTextNodes): + * editing/BreakBlockquoteCommand.cpp: + (WebCore::BreakBlockquoteCommand::doApply): + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::insertNodeAt): + (WebCore::CompositeEditCommand::positionOutsideTabSpan): + (WebCore::CompositeEditCommand::rebalanceWhitespaceAt): + (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit): + (WebCore::CompositeEditCommand::deleteInsignificantText): + (WebCore::CompositeEditCommand::moveParagraphs): + (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph): + * editing/DeleteSelectionCommand.cpp: + (WebCore::updatePositionForNodeRemoval): + (WebCore::updatePositionForTextRemoval): + (WebCore::DeleteSelectionCommand::handleGeneralDelete): + (WebCore::DeleteSelectionCommand::fixupWhitespace): + * editing/Editor.cpp: + (WebCore::Editor::setComposition): + (WebCore::Editor::advanceToNextMisspelling): + (WebCore::Editor::getCompositionSelection): + * editing/InsertLineBreakCommand.cpp: + (WebCore::InsertLineBreakCommand::doApply): + * editing/InsertParagraphSeparatorCommand.cpp: + (WebCore::InsertParagraphSeparatorCommand::doApply): + * editing/InsertTextCommand.cpp: + (WebCore::InsertTextCommand::performTrivialReplace): + (WebCore::InsertTextCommand::input): + (WebCore::InsertTextCommand::insertTab): + * editing/MoveSelectionCommand.cpp: + (WebCore::MoveSelectionCommand::doApply): + * editing/ReplaceSelectionCommand.cpp: + (WebCore::ReplaceSelectionCommand::doApply): + * editing/SelectionController.cpp: + (WebCore::SelectionController::debugRenderer): + * editing/TextIterator.cpp: + (WebCore::TextIterator::rangeFromLocationAndLength): + * editing/TypingCommand.cpp: + (WebCore::TypingCommand::deleteKeyPressed): + (WebCore::TypingCommand::forwardDeleteKeyPressed): + * editing/VisiblePosition.cpp: + (WebCore::VisiblePosition::characterAfter): + (WebCore::VisiblePosition::debugPosition): + (WebCore::makeRange): + (WebCore::setStart): + (WebCore::setEnd): + * editing/VisibleSelection.cpp: + (WebCore::VisibleSelection::toNormalizedRange): + (WebCore::makeSearchRange): + (WebCore::VisibleSelection::debugPosition): + (WebCore::VisibleSelection::showTreeForThis): + * editing/htmlediting.cpp: + (WebCore::comparePositions): + (WebCore::rangeCompliantEquivalent): + * editing/visible_units.cpp: + (WebCore::previousBoundary): + (WebCore::nextBoundary): + (WebCore::startPositionForLine): + (WebCore::startOfLine): + (WebCore::endPositionForLine): + (WebCore::nextLinePosition): + (WebCore::startOfParagraph): + (WebCore::endOfParagraph): + (WebCore::logicalStartPositionForLine): + (WebCore::logicalEndPositionForLine): + * page/AccessibilityObject.cpp: + (WebCore::updateAXLineStartForVisiblePosition): + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::indexForVisiblePosition): + * page/DOMSelection.cpp: + (WebCore::DOMSelection::anchorOffset): + (WebCore::DOMSelection::focusOffset): + (WebCore::DOMSelection::baseOffset): + (WebCore::DOMSelection::extentOffset): + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMousePressEventSingleClick): + * page/Frame.cpp: + (WebCore::Frame::selectionLayoutChanged): + * page/mac/AccessibilityObjectWrapper.mm: + (textMarkerForVisiblePosition): + (visiblePositionForTextMarker): + * rendering/RenderTextControl.cpp: + (WebCore::RenderTextControl::indexForVisiblePosition): + * rendering/RenderTreeAsText.cpp: + (WebCore::writeSelection): + +2009-04-29 Eric Seidel <eric@webkit.org> + + No review, rolling out a patch. + + Revert http://trac.webkit.org/changeset/43019 + + New tests failed because I removed the tabs from them + when landing (since we avoid tabs in WebKit files). + I couldn't tell if the new results were correct with + spaces or not. + + * editing/SelectionController.cpp: + (WebCore::SelectionController::modifyExtendingForward): + (WebCore::SelectionController::modifyMovingForward): + (WebCore::SelectionController::modifyExtendingBackward): + (WebCore::SelectionController::modifyMovingBackward): + * editing/visible_units.cpp: + * editing/visible_units.h: + +2009-04-29 David Hyatt <hyatt@apple.com> + + Reviewed by Dan Bernstein. + + Fix for <rdar://problem/6828164>, Mail hits the !root->needsLayout() assert because it re-marks the FrameView for layout + when the FrameView is resized. This bug was exposed by the elimination of the separate WebKit layout + flag on Mac. + + FrameView now defers setNeedsLayouts during size changes. Once all of the size changes are finished (including re-entrant ones + from WebDynamicScrollbarsView and ScrollView::updateScrollbars) we then do a layout if necessary. + + * page/FrameView.cpp: + (WebCore::FrameView::FrameView): + (WebCore::FrameView::setContentsSize): + (WebCore::FrameView::layout): + (WebCore::FrameView::needsLayout): + (WebCore::FrameView::setNeedsLayout): + * page/FrameView.h: + +2009-04-29 Eric Seidel <eric@webkit.org> + + No review, rolling out a patch. + + Revert 43020 as it caused accessibility/lists.html to fail + and no one is around to tell me if it's a progression or not. + + * page/AccessibilityObject.h: + (WebCore::): + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::roleValue): + (WebCore::AccessibilityRenderObject::canSetFocusAttribute): + * page/mac/AccessibilityObjectWrapper.mm: + (RoleEntry::): + +2009-04-29 Sankar Aditya Tanguturi <sankaraditya@gmail.com> + + Reviewed by Jon Honeycutt. + + Add a new accessibility role for list items. Part of + http://bugs.webkit.org/show_id.cgi?id=20013 + + Tests: platform/win/accessibility/listitem-role.html + + * page/AccessibilityObject.h: + (WebCore::): Add ListItemRole to accessibilityRole enum. + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::roleValue):Return + listItemRole when rendered object is a list item. + (WebCore::AccessibilityRenderObject::canSetFocusAttribute): Return + true for ListItemRole, matching firefox. + * page/mac/AccessibilityObjectWrapper.mm: + (RoleEntry::): Map ListItemRole with NSAccessibilityGroupRole in + MAC. + +2009-04-29 Xiaomei Ji <xji@chromium.org> + + Reviewed by Dan Bernstein. + + Fix https://bugs.webkit.org/show_bug.cgi?id=24168 + RTL: Home/End key does not behave correctly in mixed bidi text in RTL document + + Test: editing/selection/home-end.html + + * editing/SelectionController.cpp: + (WebCore::SelectionController::modifyExtendingForward): Change calling endOfLine() + to logicalEndOfLine() when granularity is LineBoundary. + (WebCore::SelectionController::modifyMovingForward): Change calling endOfLine() + to logicalEndOfLine() when granularity is LineBoundary + (WebCore::SelectionController::modifyExtendingBackward): Change calling + startOfLine() to logicalStartOfLine() when granularity is LineBoundary. + (WebCore::SelectionController::modifyMovingBackward): Change calling startOfLine() + to logicalStartOfLine() when granularity is LineBoundary. + * editing/visible_units.cpp: + (WebCore::getLeafBoxesInLogicalOrder): Added. Reconstruct leaf boxes in logical order. + (WebCore::getLogicalStartBoxAndNode): Added. + (WebCore::getLogicalEndBoxAndNode): Added. + (WebCore::logicalStartPositionForLine): Added. Similar to startPositionForLine. + (WebCore::logicalStartOfLine): Added. Similar to startOfLine. + (WebCore::logicalEndPositionForLine): Added. Similar to endPositionForLine. + (WebCore::inSameLogicalLine): Added. + (WebCore::logicalEndOfLine): Added. Similar to endOfLine. + * editing/visible_units.h: + +2009-04-29 Mike Belshe <mike@belshe.com> + + Reviewed by Eric Seidel. + + Update location while page is loading. + https://bugs.webkit.org/show_bug.cgi?id=21597 + + Tested by: + - fast/dom/location-new-window-no-crash + - fast/dom/Window/window-open-pending-url + + * page/Location.cpp: + +2009-04-29 Feng Qian <feng@chromium.org> + + Reviewed by Darin Adler. + + Add Android port files to WebCore/platform. + https://bugs.webkit.org/show_bug.cgi?id=23296 + + * platform/android: Added. + * platform/android/ClipboardAndroid.cpp: Added. + * platform/android/ClipboardAndroid.h: Added. + +2009-04-29 Feng Qian <feng@chromium.org> + + Reviewed by Darin Adler. + + Add Android-specific files to the WebCore/page directory. + https://bugs.webkit.org/show_bug.cgi?id=23295 + + * page/android: Added. + * page/android/DragControllerAndroid.cpp: Added. + * page/android/EventHandlerAndroid.cpp: Added. + * page/android/InspectorControllerAndroid.cpp: Added. + +2009-04-29 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Extract PageGroupLoadDeferrer from Chrome.cpp + + * GNUmakefile.am: added PageGroupLoadDeferrer + * WebCore.pro: ditto + * WebCore.scons: ditto + * WebCore.vcproj/WebCore.vcproj: ditto + * WebCore.xcodeproj/project.pbxproj: ditto + * WebCoreSources.bkl: ditto + * page/Chrome.cpp: PageGroupLoadDeferrer impl moved to a separate class. + * page/PageGroupLoadDeferrer.cpp: Added. + (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer): + (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer): + * page/PageGroupLoadDeferrer.h: Added. + +2009-04-24 Ojan Vafai <ojan@chromium.org> + + Reviewed by Dan Bernstein. + + Make textarea and text input metrics more closely match IEs. + + 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. On Windows we match + IE exactly except for a couple fonts of the ~12 tested. + + 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: Calculate the avgCharWidth and grab the maxCharWidth off the font. + If either one is non-positive, then calculate the value using the Linux approach. + + 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): + +2009-04-29 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler. + + * bindings/objc/DOMCSS.mm: + (kitClass): Added CSS_INITIAL to the switch statement, and changed to use the WebCore + type and not the binding type. + +2009-04-29 John Abd-El-Malek <jam@google.com> + + Reviewed by Dimitri Glazkov. + + Reverted my previous change to add resetChromiumPluginCache(). + https://bugs.webkit.org/show_bug.cgi?id=25318 + + * plugins/chromium/PluginDataChromium.cpp: + +2009-04-29 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6573742> - Problem dragging standalone images from Safari to Mail + + Roll out trac.webkit.org/changeset/35867 which fixed <rdar://problem/6153432> + + Cloned <rdar://problem/6153432> to <rdar://problem/6839881> to find a better fix for that Tiger Mail bug. + + * loader/DocumentLoader.cpp: + (WebCore::DocumentLoader::subresource): Remove the preload referenced check. + +2009-04-29 Alpha Lam <hclam@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25430 + + Provide style sheet for UI controls of media elements for Chromium port. + + * rendering/RenderThemeChromiumWin.cpp: + (WebCore::RenderThemeChromiumWin::extraMediaControlsStyleSheet): + +2009-04-29 John Abd-El-Malek <jam@chromium.org> + + Reviewed by Darin Adler. + + Expose sudden termination to Chromium port. + https://bugs.webkit.org/show_bug.cgi?id=25457 + + * platform/SuddenTermination.h: + * platform/chromium/ChromiumBridge.h: + * platform/chromium/SuddenTerminationChromium.cpp: Added. + (WebCore::disableSuddenTermination): + (WebCore::enableSuddenTermination): + +2009-04-29 Sam Weinig <sam@webkit.org> + + Reviewed by Dimitri Glazkov. + + Remove unused EventListeners. + + * page/DOMWindow.idl: + +2009-04-29 Yury Semikhatsky <yurys@chromium.org> + + Reveal current execution line once SourceFrame content is loaded. + + https://bugs.webkit.org/show_bug.cgi?id=25448 + + Reviewed by Timothy Hatcher. + + * inspector/front-end/SourceFrame.js: + (WebInspector.SourceFrame.prototype._loaded): + +2009-04-29 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Simon Fraser. + + [Qt] Initialize GraphicsContext's and ImageBuffer's QPainter to match + the default values of canvas attributes. + + * platform/graphics/qt/ImageBufferQt.cpp: + (WebCore::ImageBufferData::ImageBufferData): + +2009-04-28 Simon Hausmann <simon.hausmann@nokia.com> + + Fix the Qt build. + + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::findMethodIndex): Removed exec param from at() call. + (JSC::Bindings::QtRuntimeConnectionMethod::call): Ditto. + +2009-04-28 Geoffrey Garen <ggaren@apple.com> + + Rubber stamped by Beth Dakin. + + Missed one. + + * bindings/scripts/CodeGeneratorJS.pm: + +2009-04-28 Geoffrey Garen <ggaren@apple.com> + + Rubber stamped by Beth Dakin. + + Removed scaffolding supporting dynamically converting between 32bit and + 64bit value representations. + + * bindings/js/JSAudioConstructor.cpp: + (WebCore::constructAudio): + * bindings/js/JSCanvasRenderingContext2DCustom.cpp: + (WebCore::JSCanvasRenderingContext2D::setFillColor): + (WebCore::JSCanvasRenderingContext2D::setStrokeColor): + (WebCore::JSCanvasRenderingContext2D::strokeRect): + (WebCore::JSCanvasRenderingContext2D::drawImage): + (WebCore::JSCanvasRenderingContext2D::drawImageFromRect): + (WebCore::JSCanvasRenderingContext2D::setShadow): + (WebCore::JSCanvasRenderingContext2D::createPattern): + (WebCore::JSCanvasRenderingContext2D::putImageData): + (WebCore::JSCanvasRenderingContext2D::fillText): + (WebCore::JSCanvasRenderingContext2D::strokeText): + * bindings/js/JSClipboardCustom.cpp: + (WebCore::JSClipboard::clearData): + (WebCore::JSClipboard::getData): + (WebCore::JSClipboard::setData): + (WebCore::JSClipboard::setDragImage): + * bindings/js/JSDOMApplicationCacheCustom.cpp: + (WebCore::JSDOMApplicationCache::hasItem): + (WebCore::JSDOMApplicationCache::add): + (WebCore::JSDOMApplicationCache::remove): + (WebCore::JSDOMApplicationCache::addEventListener): + (WebCore::JSDOMApplicationCache::removeEventListener): + * bindings/js/JSDOMStringListCustom.cpp: + (WebCore::JSDOMStringList::item): + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::open): + (WebCore::JSDOMWindow::showModalDialog): + (WebCore::JSDOMWindow::postMessage): + (WebCore::JSDOMWindow::setTimeout): + (WebCore::JSDOMWindow::setInterval): + (WebCore::JSDOMWindow::atob): + (WebCore::JSDOMWindow::btoa): + (WebCore::JSDOMWindow::addEventListener): + (WebCore::JSDOMWindow::removeEventListener): + * bindings/js/JSDatabaseCustom.cpp: + (WebCore::JSDatabase::changeVersion): + (WebCore::JSDatabase::transaction): + * bindings/js/JSElementCustom.cpp: + (WebCore::JSElement::setAttribute): + (WebCore::JSElement::setAttributeNode): + (WebCore::JSElement::setAttributeNS): + (WebCore::JSElement::setAttributeNodeNS): + * bindings/js/JSGeolocationCustom.cpp: + (WebCore::JSGeolocation::getCurrentPosition): + (WebCore::JSGeolocation::watchPosition): + * bindings/js/JSHTMLCollectionCustom.cpp: + (WebCore::callHTMLCollection): + (WebCore::JSHTMLCollection::item): + (WebCore::JSHTMLCollection::namedItem): + * bindings/js/JSHTMLDocumentCustom.cpp: + (WebCore::documentWrite): + * bindings/js/JSHTMLInputElementCustom.cpp: + (WebCore::JSHTMLInputElement::setSelectionRange): + * bindings/js/JSHTMLOptionsCollectionCustom.cpp: + (WebCore::JSHTMLOptionsCollection::add): + * bindings/js/JSHTMLSelectElementCustom.cpp: + (WebCore::JSHTMLSelectElement::remove): + * bindings/js/JSImageConstructor.cpp: + (WebCore::constructImage): + * bindings/js/JSInspectorControllerCustom.cpp: + (WebCore::JSInspectorController::highlightDOMNode): + (WebCore::JSInspectorController::addResourceSourceToFrame): + (WebCore::JSInspectorController::addSourceToFrame): + (WebCore::JSInspectorController::getResourceDocumentNode): + (WebCore::JSInspectorController::search): + (WebCore::JSInspectorController::databaseTableNames): + (WebCore::JSInspectorController::setting): + (WebCore::JSInspectorController::setSetting): + (WebCore::JSInspectorController::wrapCallback): + * bindings/js/JSJavaScriptCallFrameCustom.cpp: + (WebCore::JSJavaScriptCallFrame::evaluate): + * bindings/js/JSLocationCustom.cpp: + (WebCore::JSLocation::replace): + (WebCore::JSLocation::assign): + * bindings/js/JSMessagePortCustom.cpp: + (WebCore::JSMessagePort::startConversation): + (WebCore::JSMessagePort::addEventListener): + (WebCore::JSMessagePort::removeEventListener): + * bindings/js/JSNodeCustom.cpp: + (WebCore::JSNode::insertBefore): + (WebCore::JSNode::replaceChild): + (WebCore::JSNode::removeChild): + (WebCore::JSNode::appendChild): + (WebCore::JSNode::addEventListener): + (WebCore::JSNode::removeEventListener): + * bindings/js/JSNodeFilterCustom.cpp: + (WebCore::JSNodeFilter::acceptNode): + * bindings/js/JSNodeListCustom.cpp: + (WebCore::callNodeList): + * bindings/js/JSOptionConstructor.cpp: + (WebCore::constructHTMLOptionElement): + * bindings/js/JSQuarantinedObjectWrapper.cpp: + (WebCore::JSQuarantinedObjectWrapper::construct): + (WebCore::JSQuarantinedObjectWrapper::call): + * bindings/js/JSSQLResultSetRowListCustom.cpp: + (WebCore::JSSQLResultSetRowList::item): + * bindings/js/JSSQLTransactionCustom.cpp: + (WebCore::JSSQLTransaction::executeSql): + * bindings/js/JSSVGElementInstanceCustom.cpp: + (WebCore::JSSVGElementInstance::addEventListener): + (WebCore::JSSVGElementInstance::removeEventListener): + * bindings/js/JSSVGLengthCustom.cpp: + (WebCore::JSSVGLength::convertToSpecifiedUnits): + * bindings/js/JSSVGMatrixCustom.cpp: + (WebCore::JSSVGMatrix::rotateFromVector): + * bindings/js/JSSVGPathSegListCustom.cpp: + (WebCore::JSSVGPathSegList::initialize): + (WebCore::JSSVGPathSegList::getItem): + (WebCore::JSSVGPathSegList::insertItemBefore): + (WebCore::JSSVGPathSegList::replaceItem): + (WebCore::JSSVGPathSegList::removeItem): + (WebCore::JSSVGPathSegList::appendItem): + * bindings/js/JSSVGPointListCustom.cpp: + (WebCore::JSSVGPointList::initialize): + (WebCore::JSSVGPointList::getItem): + (WebCore::JSSVGPointList::insertItemBefore): + (WebCore::JSSVGPointList::replaceItem): + (WebCore::JSSVGPointList::removeItem): + (WebCore::JSSVGPointList::appendItem): + * bindings/js/JSSVGTransformListCustom.cpp: + (WebCore::JSSVGTransformList::initialize): + (WebCore::JSSVGTransformList::getItem): + (WebCore::JSSVGTransformList::insertItemBefore): + (WebCore::JSSVGTransformList::replaceItem): + (WebCore::JSSVGTransformList::removeItem): + (WebCore::JSSVGTransformList::appendItem): + * bindings/js/JSWebKitCSSMatrixConstructor.cpp: + (WebCore::constructWebKitCSSMatrix): + * bindings/js/JSWebKitPointConstructor.cpp: + (WebCore::constructWebKitPoint): + * bindings/js/JSWorkerConstructor.cpp: + (WebCore::constructWorker): + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::importScripts): + (WebCore::JSWorkerContext::addEventListener): + (WebCore::JSWorkerContext::removeEventListener): + (WebCore::JSWorkerContext::setTimeout): + (WebCore::JSWorkerContext::setInterval): + * bindings/js/JSWorkerCustom.cpp: + (WebCore::JSWorker::addEventListener): + (WebCore::JSWorker::removeEventListener): + * bindings/js/JSXMLHttpRequestCustom.cpp: + (WebCore::JSXMLHttpRequest::open): + (WebCore::JSXMLHttpRequest::setRequestHeader): + (WebCore::JSXMLHttpRequest::send): + (WebCore::JSXMLHttpRequest::getResponseHeader): + (WebCore::JSXMLHttpRequest::overrideMimeType): + (WebCore::JSXMLHttpRequest::addEventListener): + (WebCore::JSXMLHttpRequest::removeEventListener): + * bindings/js/JSXMLHttpRequestUploadCustom.cpp: + (WebCore::JSXMLHttpRequestUpload::addEventListener): + (WebCore::JSXMLHttpRequestUpload::removeEventListener): + * bindings/js/JSXSLTProcessorCustom.cpp: + (WebCore::JSXSLTProcessor::importStylesheet): + (WebCore::JSXSLTProcessor::transformToFragment): + (WebCore::JSXSLTProcessor::transformToDocument): + (WebCore::JSXSLTProcessor::setParameter): + (WebCore::JSXSLTProcessor::getParameter): + (WebCore::JSXSLTProcessor::removeParameter): + * bindings/js/ScheduledAction.cpp: + (WebCore::ScheduledAction::create): + (WebCore::ScheduledAction::ScheduledAction): + * bindings/js/ScheduledAction.h: + * bindings/js/ScriptCallFrame.cpp: + (WebCore::ScriptCallFrame::ScriptCallFrame): + * bindings/js/ScriptCallFrame.h: + * bindings/js/ScriptCallStack.cpp: + (WebCore::ScriptCallStack::ScriptCallStack): + (WebCore::ScriptCallStack::initialize): + * bridge/c/c_instance.cpp: + (JSC::Bindings::CInstance::invokeMethod): + (JSC::Bindings::CInstance::invokeDefaultMethod): + (JSC::Bindings::CInstance::invokeConstruct): + * bridge/jni/jni_instance.cpp: + (JavaInstance::invokeMethod): + * bridge/objc/objc_instance.mm: + (ObjcInstance::invokeMethod): + (ObjcInstance::invokeDefaultMethod): + +2009-04-28 David Carson <dacarson@apple.com> + + Reviewed by David Hyatt. + + Restore alignment to device pixel boundaries. + https://bugs.webkit.org/show_bug.cgi?id=25458 + + Adjust the adjusted destination rect to be device pixel aligned. + + * platform/graphics/cg/ImageCG.cpp: + (WebCore::BitmapImage::draw): + +2009-04-28 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Move unimplemented captureEvents and releaseEvents from JSDOMWindow + to DOMWindow. + + * bindings/js/JSDOMWindowCustom.cpp: + * page/DOMWindow.cpp: + (WebCore::DOMWindow::captureEvents): + (WebCore::DOMWindow::releaseEvents): + * page/DOMWindow.h: + * page/DOMWindow.idl: + +2009-04-28 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25420 + <rdar://problem/6829570> REGRESSION: XMLHttpRequest allows loading from another origin + + Test: http/tests/xmlhttprequest/detaching-frame-2.html + + This was caused by faulty DOMWindow::document(), which could return a new document from + the window's frame after navigation. + + * bindings/js/JSDOMWindowCustom.h: (WebCore::JSDOMWindowBase::allowsAccessFromPrivate): + Removed an obsolete check that allowed access when document was null. Contrary to what a + comment said, that can happen for a window that is no longer in frame, not to one whose + document is not constructed yet. + + * bindings/js/JSXMLHttpRequestConstructor.cpp: (WebCore::constructXMLHttpRequest): Bail + out if context was not found. This currently happens due to a shortcoming in + DOMWindow::document() - when it is fixed, the XMLHttpRequest object in included regression + test will be constructed successfully, but won't be sent, because its context will be + frameless. + + * page/DOMWindow.cpp: (WebCore::DOMWindow::document): Check that the window in frame hasn't + been replaced yet. Added FIXME comments about how this may be better fixed in the future. + + * bindings/js/JSAudioConstructor.cpp: + (WebCore::JSAudioConstructor::document): + (WebCore::constructAudio): + * bindings/js/JSImageConstructor.cpp: + (WebCore::JSImageConstructor::document): + (WebCore::constructImage): + * bindings/js/JSMessageChannelConstructor.cpp: + (WebCore::JSMessageChannelConstructor::construct): + * bindings/js/JSOptionConstructor.cpp: + (WebCore::JSOptionConstructor::document): + (WebCore::constructHTMLOptionElement): + Make matching changes to other constructors that hold a reference to global object. + +2009-04-28 Kevin Ollivier <kevino@theolliviers.com> + + wxMSW build fix. Switch JSCore build back to static. + + * config.h: + +2009-04-28 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/6834830> + + Make sure we cover the two possible values reported by event.total that are playback engine + specific. + + * media/progress-event-total-expected.txt: Match the new test. + * media/progress-event-total.html: Test the two values. + +2009-04-28 Timothy Hatcher <timothy@apple.com> + + Rename -[DOMRange lineBoxRects] to -[DOMRange textRects] and change how it + collects the individual rects, making sure to only include RenderText. + + <rdar://problem/6810061> + + Reviewed by Sam Weinig. + + * bindings/objc/DOM.mm: + (-[DOMNode textRects]): Added. Make a Range and call textRects. + (-[DOMNode lineBoxRects]): Call textRects method. + (-[DOMRange textRects]): Call Range::textRects. + (-[DOMRange lineBoxRects]): Call textRects method. + * bindings/objc/DOMPrivate.h: Add the new methods and a comment + about lineBoxRects being deprecated. + * dom/Range.cpp: + (WebCore::Range::boundingBox): Call textRects (renamed from addLineBoxRects). + (WebCore::Range::textRects): Renamed from addLineBoxRects. Iterate over the + nodes instead of the RenderObjects to correctly account for offsets. Also + only call absoluteRectsForRange on RenderText. + * dom/Range.h: Renamed addLineBoxRects to textRects. + * page/Frame.cpp: + (WebCore::Frame::selectionTextRects): Call textRects (renamed from addLineBoxRects). + * rendering/RenderObject.cpp: + (WebCore::RenderObject::absoluteRectsForRange): Remove if conditions that made this + function very specific for the lineBoxRects API. These functions are still used + by the InspectorController, and this change improves what the Inspector shows. + (WebCore::RenderObject::absoluteQuadsForRange): Ditto. + +2009-04-28 Timothy Hatcher <timothy@apple.com> + + Remove the topLevel boolean argument from absolute{Rects,Quads}. + This argument was default to true and no one ever passed false. + + Reviewed by Sam Weinig. + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::absoluteRects): + (WebCore::RenderBlock::absoluteQuads): + * rendering/RenderBlock.h: + * rendering/RenderBox.cpp: + (WebCore::RenderBox::absoluteRects): + (WebCore::RenderBox::absoluteQuads): + * rendering/RenderBox.h: + * rendering/RenderInline.cpp: + (WebCore::RenderInline::absoluteRects): + (WebCore::RenderInline::absoluteQuads): + * rendering/RenderInline.h: + * rendering/RenderObject.h: + (WebCore::RenderObject::absoluteRects): + (WebCore::RenderObject::absoluteQuads): + * rendering/RenderSVGHiddenContainer.cpp: + (WebCore::RenderSVGHiddenContainer::absoluteRects): + (WebCore::RenderSVGHiddenContainer::absoluteQuads): + * rendering/RenderSVGHiddenContainer.h: + * rendering/RenderSVGImage.cpp: + (WebCore::RenderSVGImage::absoluteRects): + (WebCore::RenderSVGImage::absoluteQuads): + * rendering/RenderSVGImage.h: + * rendering/RenderSVGInlineText.cpp: + (WebCore::RenderSVGInlineText::absoluteRects): + (WebCore::RenderSVGInlineText::absoluteQuads): + * rendering/RenderSVGInlineText.h: + * rendering/RenderSVGModelObject.cpp: + (WebCore::RenderSVGModelObject::absoluteRects): + (WebCore::RenderSVGModelObject::absoluteQuads): + * rendering/RenderSVGModelObject.h: + * rendering/RenderSVGTSpan.cpp: + (WebCore::RenderSVGTSpan::absoluteRects): + (WebCore::RenderSVGTSpan::absoluteQuads): + * rendering/RenderSVGTSpan.h: + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::absoluteRects): + (WebCore::RenderSVGText::absoluteQuads): + * rendering/RenderSVGText.h: + * rendering/RenderSVGTextPath.cpp: + (WebCore::RenderSVGTextPath::absoluteQuads): + * rendering/RenderSVGTextPath.h: + * rendering/RenderText.cpp: + (WebCore::RenderText::absoluteRects): + * rendering/RenderText.h: + * rendering/RenderView.cpp: + (WebCore::RenderView::absoluteRects): + (WebCore::RenderView::absoluteQuads): + * rendering/RenderView.h: + +2009-04-28 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/6794691> Media documents and <video controls> never show controls on Windows + + RenderThemeWin doesn't implement the media element controller rendering methods, so media + controls stopped rendering when we switched from RenderThemeSafari. Rather than having copies + of the code in both places, the logic is in a new class that is called from both. + + * WebCore.vcproj/WebCore.vcproj: Add RenderMediaControls.cpp. + + * rendering/RenderMediaControls.cpp: Added. + (WebCore::determineState): Translate renderer state to ThemeControlState. + (WebCore::RenderMediaControls::adjustMediaSliderThumbSize): Adjust slider thumb. + (WebCore::parentMediaElement): Return the HTMLMediaElement parent of a controller element. + (WebCore::RenderMediaControls::paintMediaControlsPart): Paint a media controller part. + * rendering/RenderMediaControls.h: Added. + + * rendering/RenderThemeSafari.cpp: + (WebCore::RenderThemeSafari::paintSliderTrack): Remove the MediaSliderPart case, it is never + called for the media slider. + (WebCore::RenderThemeSafari::adjustSliderThumbSize): Call RenderMediaControls function. + (WebCore::RenderThemeSafari::paintMediaFullscreenButton): Ditto. + (WebCore::RenderThemeSafari::paintMediaMuteButton): Ditto. + (WebCore::RenderThemeSafari::paintMediaPlayButton): Ditto. + (WebCore::RenderThemeSafari::paintMediaSeekBackButton): Ditto. + (WebCore::RenderThemeSafari::paintMediaSeekForwardButton): Ditto. + (WebCore::RenderThemeSafari::paintMediaSliderTrack): Ditto. + (WebCore::RenderThemeSafari::paintMediaSliderThumb): Ditto. + + * rendering/RenderThemeWin.cpp: + (WebCore::RenderThemeWin::adjustSliderThumbSize): Ditto. + (WebCore::RenderThemeWin::paintMediaFullscreenButton): Ditto. + (WebCore::RenderThemeWin::paintMediaMuteButton): Ditto. + (WebCore::RenderThemeWin::paintMediaPlayButton): Ditto. + (WebCore::RenderThemeWin::paintMediaSeekBackButton): Ditto. + (WebCore::RenderThemeWin::paintMediaSeekForwardButton): Ditto. + (WebCore::RenderThemeWin::paintMediaSliderTrack): Ditto. + (WebCore::RenderThemeWin::paintMediaSliderThumb): Ditto. + * rendering/RenderThemeWin.h: + +2009-04-28 Beth Dakin <bdakin@apple.com> + + Reviewed by Sam Weinig. + + Fix for <rdar://problem/6419515> REGRESSION (r31037): Positioned + images with % height are collapsed when printing + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::calcHeight): Make sure we don't ignore + printing here! + +2009-04-28 Adele Peterson <adele@apple.com> + + Reviewed by Darin Adler. + + Fix for <rdar://problem/6617298> Typing delete on an unquoted blank line unquotes the preceding, quoted blank line + + Test: editing/deleting/type-delete-after-quote.html + + When a selection is deleted that contains a whole number paragraphs plus a line break, we refrain from merging paragraphs after the delete, + since it is unclear to most users that such a selection actually ends at the start of the next paragraph. However, when a user hits delete + with a caret selection, they actually do expect the start of that paragraph to be merged into the paragraph before it. We can tell that + we're in this state because the TypingCommand creates the selection to delete but it doesn't change the endingSelection. So we can tell + that if we started with a caret selection, then we're not in this special case where we have to protect the user from unexpected behavior + from deleting a range they selected. + + * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::initializePositionData): + +2009-04-28 Xan Lopez <xlopez@igalia.com> + + Unreviewed: fix distcheck build, add missing header to file list. + + * GNUmakefile.am: + +2009-04-27 Eric Seidel <eric@webkit.org> + + Reviewed by Sam Weinig. + + Fix foreignObject transform order + https://bugs.webkit.org/show_bug.cgi?id=25433 + + Transforms were being applied in the wrong order. + When mapping from local to parent, first apply the viewport transform + then map from the viewport box to the parent box. + + * rendering/RenderForeignObject.cpp: + (WebCore::RenderForeignObject::localToParentTransform): + +2009-04-27 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Simplify nodeAtPoint for SVG + https://bugs.webkit.org/show_bug.cgi?id=25432 + + Added a new nodeAtFloatPoint method which takes a FloatPoint + instead of the *super confusing* x/y tx/ty pairs that HTML uses. + Mostly this is just lots of minus-lines as the new code is *much* simpler. + + I made all the SVG renderers use the new nodeAtFloatPoint and ASSERT_NOT_REACHED + for the nodeAtPoint HTML/CSS int x/y version. + + Eventually the rest of CSS/HTML render objects will follow suit + and move to nodeAtFloatPoint (possibly renamed back to nodeAtPoint), but changing them + over was well outside the scope of this change. + + SVG hit testing is not actually floating point precise yet, since its still + passed in an integer x/y. Certain transform hit-test edge cases are likely fixed + by moving to FloatPoint here, but I didn't try to find one. + + This should not cause functional changes for common-case hit testing, thus + no tests changed, nor should new tests be needed. + + * rendering/RenderForeignObject.cpp: + (WebCore::RenderForeignObject::translationForAttributes): + (WebCore::RenderForeignObject::paint): + (WebCore::RenderForeignObject::computeRectForRepaint): + (WebCore::RenderForeignObject::localToParentTransform): + (WebCore::RenderForeignObject::layout): + (WebCore::RenderForeignObject::nodeAtFloatPoint): + * rendering/RenderForeignObject.h: + * rendering/RenderObject.cpp: + (WebCore::RenderObject::nodeAtFloatPoint): + * rendering/RenderObject.h: + * rendering/RenderPath.cpp: + (WebCore::RenderPath::nodeAtFloatPoint): + * rendering/RenderPath.h: + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::nodeAtFloatPoint): + * rendering/RenderSVGContainer.h: + (WebCore::RenderSVGContainer::pointIsInsideViewportClip): + * rendering/RenderSVGHiddenContainer.cpp: + (WebCore::RenderSVGHiddenContainer::nodeAtFloatPoint): + * rendering/RenderSVGHiddenContainer.h: + * rendering/RenderSVGImage.cpp: + (WebCore::RenderSVGImage::paint): + (WebCore::RenderSVGImage::nodeAtFloatPoint): + * rendering/RenderSVGImage.h: + (WebCore::RenderSVGImage::localToParentTransform): + (WebCore::RenderSVGImage::localTransform): + * rendering/RenderSVGModelObject.cpp: + (WebCore::RenderSVGModelObject::nodeAtFloatPoint): + * rendering/RenderSVGModelObject.h: + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::nodeAtFloatPoint): + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::nodeAtFloatPoint): + * rendering/RenderSVGText.h: + * rendering/RenderSVGViewportContainer.cpp: + (WebCore::RenderSVGViewportContainer::pointIsInsideViewportClip): + * rendering/RenderSVGViewportContainer.h: + +2009-04-28 Eric Carlson <eric.carlson@apple.com> + + - fix the Tiger build + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::cacheMovieScale): + +2009-04-28 Sam Weinig <sam@webkit.org> + + Reviewed by Beth Dakin. + + Consolidate ScheduleAction creation into ScheduledAction::create. + Autogenerate JSWorkerContext.clearTimeout and clearInterval. + + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::setTimeout): + (WebCore::JSDOMWindow::setInterval): + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::setTimeout): + (WebCore::JSWorkerContext::setInterval): + * bindings/js/ScheduledAction.cpp: + (WebCore::ScheduledAction::create): + (WebCore::ScheduledAction::ScheduledAction): + (WebCore::ScheduledAction::execute): + * bindings/js/ScheduledAction.h: + * workers/WorkerContext.cpp: + (WebCore::DOMWindow::setTimeout): + (WebCore::DOMWindow::clearTimeout): + (WebCore::DOMWindow::setInterval): + (WebCore::DOMWindow::clearInterval): + * workers/WorkerContext.h: + * workers/WorkerContext.idl: + +2009-04-28 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler + + <rdar://problem/6643219> Crashes after moving nodes between documents with Safari 4 Beta installed + + When moving Nodes between documents we weren't properly updating style declarations. Certain operations, such + as creating webarchives, would tickle this bug. + + Tests: webarchive/adopt-attribute-styled-body-webarchive.html + webarchive/adopt-attribute-styled-node-webarchive.html + webarchive/adopt-inline-styled-node-webarchive.html + + * dom/Node.cpp: Add a debug-only mechanism to insure that anyone who overrides (did/will)MoveToNewOwnerDocument + calls their parent-class implementation after they've done their own work. + (WebCore::setWillMoveToNewOwnerDocumentWasCalled): + (WebCore::setDidMoveToNewOwnerDocumentWasCalled): + (WebCore::Node::setDocument): + (WebCore::Node::willMoveToNewOwnerDocument): + (WebCore::Node::didMoveToNewOwnerDocument): + + * dom/StyledElement.cpp: + (WebCore::StyledElement::attributeChanged): Add a comment explaining why we don't need to walk the nameAttrMap + to update style declarations. + (WebCore::StyledElement::didMoveToNewOwnerDocument): Update the parent pointer for the inline style declaration. + * dom/StyledElement.h: + + * html/HTMLBodyElement.cpp: + (WebCore::HTMLBodyElement::didMoveToNewOwnerDocument): Update the parent pointer for the link declaration. + * html/HTMLBodyElement.h: + +2009-04-28 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6834876> Don't use BlockExceptions macros until QTKit supports + QTMoviePreferredTransformAttribute + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::cacheMovieScale): use @try and @catch instead of + BEGIN_BLOCK_OBJC_EXCEPTIONS and END_BLOCK_OBJC_EXCEPTIONS for builds of QTKit + that throw an exception on QTMovieCurrentSizeAttribute but don't support + QTMoviePreferredTransformAttribute + +2009-04-28 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + * rendering/RenderText.cpp: + (WebCore::RenderText::RenderText): Streamline code path to avoid a bit of reference count + churn and remove a strange unneeeded PassRefPtr typecast. Also added a comment. + (WebCore::RenderText::setTextInternal): Ditto. + +2009-04-27 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Simplify how SVG containers paint + https://bugs.webkit.org/show_bug.cgi?id=25431 + + Moved filterBoundingBox() from RenderSVGModelObject to SVGRenderSupport to share with other classes. + Gave RenderSVGText a modern clippedOverflowRectForRepaint and computeRectForRepaint. + RenderSVGText now applies transforms at paint() time instead of during chunk draw time + this should be much more efficient. + + Fixed the order in which RenderSVGViewportContainer applied + transforms and clips. We now clip to the viewport first and apply + all transforms at once. Also since the viewport logic is now only + inside RenderSVGViewportContainer (instead of inside RenderSVGContainer) + we always know we have a viewport. We now use only viewportSize instead of + viewport() since RenderSVGViewportContainers can't have x/y offsets. + + We now correctly transform the PaintInfo::rect (damage rect) when applying transforms. + This allowed us to apply the transform during text paint() instead of at chunk paint + time. Previously we had to apply the transform during chunk paint time because + RenderBlock (superclass of RenderSVGBlock) would check intersection with the damageRect + before telling any of the inlines to draw. Now that we adjust the damage rect correctly + we pass the intersection check correctly! (This probably fixed some <text> redraw bugs + but since I still have a bunch of those to fix, I've not tried to write additional tests + to cover these potential fixes yet.) + + SVGRootInlineBox no longer needs to deal with transforms at chunk paint time, yay! + + * rendering/RenderPath.cpp: + (WebCore::RenderPath::repaintRectInLocalCoordinates): + (WebCore::RenderPath::paint): + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::paint): + (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): + * rendering/RenderSVGContainer.h: + (WebCore::RenderSVGContainer::applyViewportClip): + * rendering/RenderSVGImage.cpp: + (WebCore::RenderSVGImage::layout): + (WebCore::RenderSVGImage::repaintRectInLocalCoordinates): + (WebCore::RenderSVGImage::clippedOverflowRectForRepaint): + (WebCore::RenderSVGImage::computeRectForRepaint): + * rendering/RenderSVGImage.h: + * rendering/RenderSVGModelObject.cpp: + * rendering/RenderSVGModelObject.h: + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::layout): + (WebCore::RenderSVGRoot::selfWillPaint): + (WebCore::RenderSVGRoot::paint): + (WebCore::RenderSVGRoot::viewportSize): + (WebCore::RenderSVGRoot::calcViewport): + (WebCore::RenderSVGRoot::localToBorderBoxTransform): + (WebCore::RenderSVGRoot::parentOriginToBorderBox): + (WebCore::RenderSVGRoot::borderOriginToContentBox): + (WebCore::RenderSVGRoot::localToRepaintContainerTransform): + (WebCore::RenderSVGRoot::localToParentTransform): + (WebCore::RenderSVGRoot::computeRectForRepaint): + (WebCore::RenderSVGRoot::nodeAtPoint): + * rendering/RenderSVGRoot.h: + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::clippedOverflowRectForRepaint): + (WebCore::RenderSVGText::computeRectForRepaint): + (WebCore::RenderSVGText::paint): + (WebCore::RenderSVGText::repaintRectInLocalCoordinates): + * rendering/RenderSVGText.h: + (WebCore::RenderSVGText::localToParentTransform): + (WebCore::RenderSVGText::localTransform): + * rendering/RenderSVGViewportContainer.cpp: + (WebCore::RenderSVGViewportContainer::applyViewportClip): + * rendering/RenderSVGViewportContainer.h: + * rendering/SVGRenderSupport.cpp: + (WebCore::filterBoundingBoxForRenderer): + (WebCore::applyTransformToPaintInfo): + * rendering/SVGRenderSupport.h: + * rendering/SVGRootInlineBox.cpp: + (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback): + (WebCore::SVGRootInlineBox::paint): + +2009-04-28 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 25453: AX: fall back to PLACEHOLDER attr if form element is not labeled + https://bugs.webkit.org/show_bug.cgi?id=25453 + + Test: accessibility/placeholder.html + + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::title): + +2009-04-28 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 25452: AX: Don't create addition space AXStaticText element for every bold or link tag + https://bugs.webkit.org/show_bug.cgi?id=25452 + + Test: accessibility/ignore-spacer-elements.html + + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): + +2009-04-28 Mark Rowe <mrowe@apple.com> + + Reviewed by Sam Weinig. + + Work around <rdar://problem/6833240> by relying on static initialization to zero the entire struct. + This removes the need for us to explicitly initialize all of the members, which have a tendency + to change in meaning and number between versions of libxml2. + + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::): + (WebCore::sharedXHTMLEntity): + (WebCore::getXHTMLEntity): + +2009-04-28 Steve Falkenburg <sfalken@apple.com> + + Fix linker warning by specifying /NODEFAULTLIB:LIBCMT for QTMovieWin. + + Reviewed by Mark Rowe. + + * WebCore.vcproj/QTMovieWin.vcproj: + +2009-04-28 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 25449: AX: Respect the alt tag of ARIA button as AXDescription + https://bugs.webkit.org/show_bug.cgi?id=25449 + + Test: accessibility/img-aria-button-alt-tag.html + + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::accessibilityDescription): + +2009-04-28 Dan Bernstein <mitz@apple.com> + + Reviewed by John Sullivan. + + - formatting cleanup + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::calcHeight): Corrected indentation and added braces + around a multi-line "else" clause. + +2009-04-28 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Adam Roben + + <rdar://problem/6769968> media/video-size-intrinsic-scale.html fails on Windows + https://bugs.webkit.org/show_bug.cgi?id=25094 + + Display movies saved with a non-identity matrix at the correct size. + + * platform/graphics/win/QTMovieWin.cpp: + (QTMovieWinPrivate::QTMovieWinPrivate): Initialize m_widthScaleFactor and m_heightScaleFactor. + (QTMovieWinPrivate::cacheMovieScale): New, calculate difference between initial + size and natural size so naturalSize() accounts for non-identity movie matrix. + (QTMovieWinPrivate::task):Call cacheMovieScale when load state reaches + kMovieLoadStateLoaded for the first time. kMovieLoadState -> QTMovieLoadState. + (QTMovieWinPrivate::drawingComplete): kMovieLoadState -> QTMovieLoadState. + (QTMovieWinPrivate::createGWorld): Don't bother creating gworld until load state reaches + kMovieLoadStateLoaded because we do not try to draw it before that point. + (QTMovieWinPrivate::setSize): Do not change movie box before reaching kMovieLoadStateLoaded + because we need to get the movie's initial size in cacheMovieScale. + (QTMovieWin::getNaturalSize): Multiply width and height by initial scale. + +2009-04-28 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + Move timer code from JSDOMWindow to DOMWindow. clearTimeout and + clearInterval can now be autogenerated. + + * bindings/js/JSDOMWindowBase.cpp: + * bindings/js/JSDOMWindowBase.h: + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::createScheduledAction): + (WebCore::JSDOMWindow::setTimeout): + (WebCore::JSDOMWindow::setInterval): + * page/DOMWindow.cpp: + (WebCore::DOMWindow::setTimeout): + (WebCore::DOMWindow::clearTimeout): + (WebCore::DOMWindow::setInterval): + (WebCore::DOMWindow::clearInterval): + * page/DOMWindow.h: + * page/DOMWindow.idl: + +2009-04-28 Kevin Watters <kevinwatters@gmail.com> + + Reviewed by Kevin Ollivier. + + Small optimization, don't get the widget's handle twice in one method. + + https://bugs.webkit.org/show_bug.cgi?id=25446 + + * platform/wx/WidgetWx.cpp: + (WebCore::Widget::setFocus): + (WebCore::Widget::show): + (WebCore::Widget::hide): + (WebCore::Widget::frameRect): + (WebCore::Widget::setFrameRect): + (WebCore::Widget::invalidateRect): + (WebCore::Widget::paint): + +2009-04-28 Kevin Watters <kevinwatters@gmail.com> + + Reviewed by Kevin Ollivier. + + ScrollView copy and paste typo fix. + + https://bugs.webkit.org/show_bug.cgi?id=25445 + + * platform/wx/ScrollViewWx.cpp: + (WebCore::ScrollView::platformSetScrollbarModes): + +2009-04-28 John Sullivan <sullivan@apple.com> + + <rdar://problem/6820221> REGRESSION: 2-byte character names of images are displayed as %-encoded ASCII + + Reviewed by Adam Roben + + * loader/ImageDocument.cpp: + (WebCore::ImageTokenizer::finish): + decode the filename before processing it as part of the image name that's passed to the client + +2009-04-28 Maciej Stachowiak <mjs@apple.com> + + Not reviewed, build fix. + + - fix initialization order to match declaration order to fix release build + + * page/Settings.cpp: + (WebCore::Settings::Settings): + +2009-04-28 Xan Lopez <xlopez@igalia.com> + + Reviewed by Justin Garcia. + + https://bugs.webkit.org/show_bug.cgi?id=16135 + [GTK] Support caret browsing + + Based on a patch by Alp Toker. + + Implement basic support for caret browsing, active only when the + corresponding setting is enabled. + + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMouseReleaseEvent): + * page/FocusController.cpp: + (WebCore::FocusController::advanceFocus): + (WebCore::clearSelectionIfNeeded): + (WebCore::FocusController::setFocusedNode): + * page/Frame.cpp: + (WebCore::Frame::setFocusedNodeIfNeeded): + (WebCore::Frame::setSelectionFromNone): + (WebCore::Frame::respondToChangedSelection): + * page/Settings.cpp: + (WebCore::Settings::Settings): + * page/Settings.h: + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::paintCaret): + +2009-04-27 Eric Roman <eroman@chromium.org> + + Reviewed by Darin Fisher. + + Fix a compile breakage. + <https://bugs.webkit.org/show_bug.cgi?id=25384> + + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): + +2009-04-27 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6822344> Use of QTMovieCurrentSizeAttribute generates exception and will crash + + QTMovieCurrentSizeAttribute generates an exception with some versions of QTKit, so calculate a + multiplier to scale from natural size to current size when a movie is opened and use that to + return the correct value from the naturalSize() method. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.h: + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_scaleFactor. + (WebCore::MediaPlayerPrivate::naturalSize): Return naturalSize transformed by initial scale. + (WebCore::MediaPlayerPrivate::cacheMovieScale): New, calculate difference between initial + size and natural size so naturalSize() accounts for non-identity movie matrix. + (WebCore::MediaPlayerPrivate::updateStates): Call cacheMovieScale when load state reaches + QTMovieLoadStateLoaded for the first time. + +2009-04-27 Beth Dakin <bdakin@apple.com> + + Reviewed by Dave Hyatt. + + Fix for <rdar://problem/6709057> REGRESSION (4PB-TOT): http://www.winway.com/main3/support/faq.aspx selector doesn't look right or work + + The problem here is that we had a self-painting layer nested inside + a non-self-painting layer. We ended up ignoring the self-painting + layer both during painting and hit-testing. This patch corrects + that. + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::paintLayer): + (WebCore::RenderLayer::hitTestLayer): + +2009-04-27 Ada Chan <adachan@apple.com> + + If it has been set to allow any HTTPS certificates for this host, set + kCFStreamSSLAllowsExpiredCertificates to true to allow expired + certificate, and set kCFStreamSSLValidatesCertificateChain false to skip + certificate chain validation. (<rdar://problem/6382059>) + + Reviewed by John Sullivan. + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::makeFinalRequest): + +2009-04-27 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Adele Peterson + + <rdar://problem/6822225> Full page zooming of <video> element in the browser window doesn't work well + + Fix a 'size changed' notification thrash that caused standalone video elements + to continually resize after full page zooming, by using the movie's natual size (which is independent + of zooming), rather than its current size (which is not). + + Note that this regresses <https://bugs.webkit.org/show_bug.cgi?id=25029>, so we have to + disable the media/video-size-intrinsic-scale.html test. However, we have to stop using + QTMovieCurrentSizeAttribute anyway; this will be addressed, and the test re-enabled via + <rdar://problem/6822344>. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::naturalSize): + +2009-04-27 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + <rdar://problem/6642221> REGRESSION: With the Movie widget, movie trailer fails to + load if movie had been previously viewed + + Fix the Dashboard quirk for display:none plug-ins by moving the code from HTMLObjectElement + to HTMLEmebedElement. It has to be in HTMLEmbedElement because the content we care about uses <embed>. + + * html/HTMLEmbedElement.cpp: + (WebCore::HTMLEmbedElement::rendererIsNeeded): + * html/HTMLObjectElement.cpp: + (WebCore::HTMLObjectElement::rendererIsNeeded): + +2009-04-27 Sam Weinig <sam@webkit.org> + + Reviewed by Geoffrey Garen. + + Move more window event related code into DOMWindow. + + * dom/Document.cpp: + (WebCore::Document::implicitClose): + (WebCore::Document::setWindowAttributeEventListener): + (WebCore::Document::dispatchWindowEvent): + (WebCore::Document::dispatchLoadEvent): + * dom/Document.h: + * dom/Element.cpp: + * dom/Element.h: + * dom/Node.cpp: + * dom/Node.h: + * html/HTMLBodyElement.cpp: + (WebCore::HTMLBodyElement::parseMappedAttribute): + * html/HTMLFrameSetElement.cpp: + (WebCore::HTMLFrameSetElement::parseMappedAttribute): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::stopLoading): + * page/DOMWindow.cpp: + (WebCore::DOMWindow::dispatchAllPendingUnloadEvents): + (WebCore::DOMWindow::postMessageTimerFired): + (WebCore::DOMWindow::dispatchEvent): + (WebCore::DOMWindow::dispatchEventWithDocumentAsTarget): + (WebCore::DOMWindow::dispatchLoadEvent): + (WebCore::DOMWindow::dispatchUnloadEvent): + (WebCore::DOMWindow::dispatchBeforeUnloadEvent): + * page/DOMWindow.h: + * page/Frame.cpp: + (WebCore::Frame::shouldClose): + * svg/SVGSVGElement.cpp: + (WebCore::SVGSVGElement::parseMappedAttribute): + +2009-04-27 Douglas R. Davidson <ddavidso@apple.com> + + Implement the editing mechanisms and add context menu items for + <rdar://problem/6724106> WebViews need to implement text checking + + Reviewed by Justin Garcia. + + * editing/Editor.cpp: + * editing/Editor.h: + * editing/TypingCommand.cpp: + * loader/EmptyClients.h: + * page/ContextMenuController.cpp: + * page/EditorClient.h: + * page/mac/WebCoreViewFactory.h: + * platform/ContextMenu.cpp: + * platform/ContextMenuItem.h: + * platform/LocalizedStrings.h: + * platform/mac/LocalizedStringsMac.mm: + +2009-04-27 Sam Weinig <sam@webkit.org> + + Reviewed by Geoffrey Garen. + + Fix for <rdar://problem/6772944> REGRESSION (r42223): PLT 2% slower, i-Bench 3% slower + + Be slightly less eager in collecting after page close/navigation by increasing + the time before collection from 0 seconds to .5 seconds. + + 3% speedup on the PLT. + + * bindings/js/GCController.cpp: + (WebCore::GCController::garbageCollectSoon): + +2009-04-27 David Kilzer <ddkilzer@apple.com> + + Consolidate runtime application checks for Apple Mail and Safari + + Reviewed by Mark Rowe and Darin Adler. + + * WebCore.base.exp: Added exports. + * WebCore.xcodeproj/project.pbxproj: Added + RuntimeApplicationChecks.{h|mm} source files to the project. + * page/mac/EventHandlerMac.mm: + (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks): + Removed local checkedSafari and isSafari variables and switched + to use applicationIsSafari(). + * platform/mac/RuntimeApplicationChecks.h: Added. + * platform/mac/RuntimeApplicationChecks.mm: Added. + (WebCore::applicationIsAppleMail): Runtime application check for + Apple Mail. + (WebCore::applicationIsSafari): Runtime application check for + Safari. + +2009-04-27 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 25374: AX: No AXValue change sent when text is auto-inserted + https://bugs.webkit.org/show_bug.cgi?id=25374 + + First patch caused some regression tests to fail. + + * rendering/RenderTextControl.cpp: + (WebCore::RenderTextControl::setInnerTextValue): + +2009-04-16 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Based on a patch by Alp Toker. + + Cover more WebCore role -> ATK role conversions. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-04-18 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Do not call ATK setters in the getters, just return the + value. Among other things calling the setter will emit the notify + signal, which is wrong. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-04-16 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Based on a patch by Alp Toker. + + Implement AtkImage interface. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-04-27 Gustavo Noronha Silva <gns@gnome.org> + + Unreviewed debug build fix. + + * platform/gtk/gtk2drawing.c: + (moz_gtk_toggle_paint): + +2009-04-27 Dimitri Glazkov <dglazkov@chromium.org> + + Build fix. + + https://bugs.webkit.org/show_bug.cgi?id=25382 + Remove direct reference to CallFrame.h include to pacify Win build. + + * bindings/js/JSDOMBinding.h: Removed ScriptState.h include. + * bindings/js/ScriptState.h: Replaced CallFrame.h with JSDOMBinding.h + +2009-04-27 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Beth Dakin. + + Bug 25374: AX: No AXValue change sent when text is auto-inserted + https://bugs.webkit.org/show_bug.cgi?id=25374 + + When an input's text value is changed through the DOM, no AXValueChange notification is being sent. + + * rendering/RenderTextControl.cpp: + (WebCore::RenderTextControl::setInnerTextValue): + +2009-04-27 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25382 + Move scriptStateFromNode to ScriptState. + + * bindings/js/JSDOMBinding.cpp: Moved scriptStateFromNode to ScriptState. + * bindings/js/JSDOMBinding.h: Ditto. + * bindings/js/ScriptState.cpp: + (WebCore::scriptStateFromNode): Added. + * bindings/js/ScriptState.h: Ditto. + * bindings/v8/ScriptState.cpp: + (WebCore::scriptStateFromNode): Added. + * bindings/v8/ScriptState.h: Ditto. + * dom/NodeFilter.h: Removed JSDOMBinding header include. + * dom/NodeIterator.h: Ditto. + * dom/TreeWalker.h: Ditto. + +2009-04-27 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Beth Dakin. + + Bug 25428: 5 crashes in DumpRenderTree at com.apple.WebCore • -[AccessibilityObjectWrapper accessibilityAttributeValue:] + 830 + https://bugs.webkit.org/show_bug.cgi?id=25428 + + When marking children as changed in accessibility, we cannot rely on the accessibility parent chain existing. + Instead, the render chain needs to be consulted. + + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::childrenChanged): + +2009-04-27 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25399 + <rdar://problem/6633943> REGRESSION: Many crashes reported accessing Lexis/Nexis database, + beneath WebCore::Cache::evict + + The crash happened because a cached resource handle was removed from a document's cached + resources map twice recursively, so a destructor was called for a value in a deleted bucket. + The first call was from Cache::evict, and when destroying CachedResourceHandle destroyed + CachedResource, DocLoader::removeCachedResource() was called again, with HashMap being in + an inconsistent state. + + I couldn't fully reconstruct the loading sequence to make a test. + + * loader/Cache.cpp: + (WebCore::Cache::revalidateResource): Assert that the resource being revalidated is in cache + (it makes no sense to revalidate one that isn't). + (WebCore::Cache::evict): Don't remove the resource from document's map. Removing a resource + from the cache in no way implies that documents no longer use the old version. This fixes the + crash, and also fixes many cases of resource content being unavailable in Web Inspector. + + * loader/CachedResource.h: + (WebCore::CachedResource::setInCache): When bringing a revalidated resource back to cache, + reset m_isBeingRevalidated to maintain the invariant of resources being revalidated never + being in cache. This fixes another assertion I saw on LexisNexis search: in rare cases, + switchClientsToRevalidatedResource() results in the same resource being requested again, + but we were only enforcing CachedResource invariants after calling this function. + (WebCore::CachedResource::unregisterHandle): Assert that the counter doesn't underflow. + + * loader/DocLoader.cpp: (WebCore::DocLoader::removeCachedResource): Assert that the passed + resource is removed, not some other resource that happens to have the same URL (this used to + fail on LexisNexis search before this patch). + + * loader/ImageDocument.cpp: (WebCore::ImageTokenizer::write): Replaced ASSERT_NOT_REACHED + with notImplemented(). This method can be legally called via document.write(), and should + work. LexisNexis takes this code path, but apparently has a fallback for Safari, so it + doesn't affect site functionality. + + * loader/CachedResource.cpp: + (WebCore::CachedResource::clearResourceToRevalidate): Don't assert that m_resourceToRevalidate + is being revalidated - this may no longer be true, because we now reset this member in + CachedResource::setInCache(). + +2009-04-27 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + - make BidiContext a RefCounted class, starting with a refcount of 1, + and share the root BidiContexts. + + * platform/graphics/GraphicsContext.cpp: + (WebCore::GraphicsContext::drawBidiText): Use BidiContext::create(). + * platform/text/BidiContext.cpp: + (WebCore::BidiContext::create): Added. For the four "root" contexts, + returns a reference to a shared static BidiContext. + * platform/text/BidiContext.h: + (WebCore::BidiContext::BidiContext): + * platform/text/BidiResolver.h: + (WebCore::::commitExplicitEmbedding): Use BidiContext::create(). + * rendering/bidi.cpp: + (WebCore::RenderBlock::determineStartPosition): Ditto. + +2009-04-27 Jan Michael Alonzo <jmalonzo@webkit.org> + + Rubber-stamped by Gustavo Noronha. + + Build fix for r42893: change GDK_exclaim to GDK_exclam + + * platform/chromium/KeyCodeConversionGtk.cpp: + (WebCore::windowsKeyCodeForKeyEvent): + * platform/gtk/KeyEventGtk.cpp: + (WebCore::windowsKeyCodeForKeyEvent): + +2009-04-27 Fumitoshi Ukai <ukai@google.com> + + Reviewed by Xan Lopez. + + Fix wrong key code conversion. + + Missing conversion for GDK_exlaim ('!'). + Parens are opposite: GDK_parenleft is open paren '(' + and GDK_parenright is close paren ')'. + https://bugs.webkit.org/show_bug.cgi?id=25367 + + * platform/chromium/KeyCodeConversionGtk.cpp: + (WebCore::windowsKeyCodeForKeyEvent): + * platform/gtk/KeyEventGtk.cpp: + (WebCore::windowsKeyCodeForKeyEvent): + +2009-04-27 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Gustavo Noronha. + + [Gtk] gtkdrawing update + https://bugs.webkit.org/show_bug.cgi?id=25408 + + Update to the 25 Apr 2009 version of gtk2drawing.c and + gtkdrawing.h from Mozilla (http://hg.mozilla.org/mozilla-central) + + * platform/gtk/gtk2drawing.c: + (setup_widget_prototype): + (moz_gtk_get_combo_box_entry_arrow): + (ensure_toolbar_widget): + (ensure_tree_header_cell_widget): + (moz_gtk_init): + (moz_gtk_button_get_inner_border): + (moz_gtk_toggle_paint): + (moz_gtk_caret_paint): + (moz_gtk_entry_paint): + (moz_gtk_tree_header_cell_paint): + (moz_gtk_combo_box_paint): + (moz_gtk_toolbar_separator_paint): + (moz_gtk_menu_separator_paint): + (moz_gtk_get_widget_border): + (moz_gtk_get_tab_scroll_arrow_size): + (moz_gtk_get_toolbar_separator_width): + (moz_gtk_get_menu_separator_height): + (moz_gtk_widget_paint): + (moz_gtk_shutdown): + * platform/gtk/gtkdrawing.h: + +2009-04-27 Ariya Hidayat <ariya.hidayat@nokia.com> + + Reviewed by Tor Arne Vestbø. + + https://bugs.webkit.org/show_bug.cgi?id=18475 + + [Qt] Widget painting should follow the layout direction (LTR, RTL) + of the element style, not the application layout direction. + + * platform/qt/RenderThemeQt.cpp: + (WebCore::RenderThemeQt::applyTheme): + +2009-04-26 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=25412 + The Window object should be an EventTarget + + Test: fast/dom/Window/dispatchEvent.html + + * bindings/js/JSEventTarget.cpp: + (WebCore::toJS): Add DOMWindow case. + (WebCore::toEventTarget): Ditto. + + * dom/EventTarget.cpp: + (WebCore::EventTarget::toDOMWindow): Added. + * dom/EventTarget.h: + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::scriptExecutionContext): Added. Returns the document. + (WebCore::DOMWindow::dispatchEvent): Added. + * page/DOMWindow.h: + (WebCore::DOMWindow::toDOMWindow): + (WebCore::DOMWindow::refEventTarget): + (WebCore::DOMWindow::derefEventTarget): + * page/DOMWindow.idl: + +2009-04-26 Sam Weinig <sam@webkit.org> + + Reviewed by Eric Seidel. + + Remove scons-based build system. + + * WebCore.scons: Removed. + +2009-04-26 Darin Adler <darin@apple.com> + + Suggested by Darin Fisher. + + Improve the fix for bug 25355: Crash when Creating New Tab or New Window when set to open Same Page + https://bugs.webkit.org/show_bug.cgi?id=25355 + rdar://problem/6823543 + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::loadItem): Allow shouldScroll to be true even if m_currentHistoryItem is 0. + Not sure if when this case can really arise in practice, but it's good to match the original + logic more closely. + +2009-04-25 Dirk Schulze <krit@webkit.org> + + Reviewed by Oliver Hunt. + + A width or height of zero for the destination or source rect of an + image causes a not invertible pattern matrix. + This crahes newer versions of Cairo and give some graphic gliches in + Canvas. + With this patch we check if there is something to draw and return if not. + + * platform/graphics/cairo/ImageCairo.cpp: + (WebCore::BitmapImage::draw): + +2009-04-25 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + https://bugs.webkit.org/show_bug.cgi?id=25390 + + Fix point mapping and hit testing through transforms and perspective + with ENABLE_3D_RENDERING. Previously the code did the more efficient + move(), rather than getTransformFromContainer(), when the object had + no transform. However, this skipped the application of perspective + when the immediate child of the perspective element had no transform + itself. + + Test: transforms/3d/point-mapping/3d-point-mapping-3.html + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::mapLocalToContainer): + (WebCore::RenderBox::mapAbsoluteToLocalPoint): + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::createLocalTransformState): + Call shouldUseTransformFromContainer() to determine if we need to + go through the more expensive getTransformFromContainer() code + path. + + * rendering/RenderObject.h: + * rendering/RenderObject.cpp: + (WebCore::RenderObject::shouldUseTransformFromContainer): + New method that indicates whether we need use getTransformFromContainer() + when mapping points through renderers, and hit testing. + +2009-04-25 Adele Peterson <adele@apple.com> + + Reviewed by Oliver Hunt. + + Fix for <rdar://problem/6712771> REGRESSION(34681): Text is no longer underlined after delete + https://bugs.webkit.org/show_bug.cgi?id=25396 + + Test: editing/deleting/delete-br-013.html + + * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::moveParagraphs): + Only preserve an empty paragraph's style when moving paragraphs around if the selection is still + in an empty paragraph after the move occurs. This was causing the empty paragraph's style to overwrite + the previous paragraph's style during a delete of an empty paragraph. + +2009-04-25 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6808171> REGRESSION (3-4): Standalone media documents don't + properly display non-linear media + + If a media engine claims it can support the MIME type, WebCore now creates a <video> + element for document mode media files instead of an <embed> element. Because WebCore's + QuickTime backed media players do not support every kind of media the QuickTime plug-in + supports, and because it is not always possible to tell what type of media is in a file + without opening and parsing it, some types of media that used to be displayed properly + by a plug-in are no longer supported properly. To fix this, if the media engine + sees that it can not completely support a media file it now informs the media + document, which replaces the <video> element with an <embed>. + + r42301 landed support for OSX. This patch modifies those changes slighly and adds support + for Windows. + + * loader/MediaDocument.cpp: + (WebCore::MediaDocument::MediaDocument): Initialize m_replaceMediaElementTimer. + (WebCore::MediaDocument::mediaElementSawUnsupportedTracks): Don't replace the <video> + element immediately. + (WebCore::MediaDocument::replaceMediaElementTimerFired): Renamed from replaceVideoWithEmbed. + Set body margin-width and margin-height to 0 as that is what a PluginDocument uses. + * loader/MediaDocument.h: + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::loadStateChanged): Don't do anything if m_hasUnsupportedTracks. + (WebCore::MediaPlayerPrivate::rateChanged): Ditto. + (WebCore::MediaPlayerPrivate::timeChanged): Ditto. + (WebCore::MediaPlayerPrivate::didEnd): Ditto. + (WebCore::MediaPlayerPrivate::repaint): Ditto. + (WebCore::MediaPlayerPrivate::paint): Ditto. + (WebCore::MediaPlayerPrivate::sawUnsupportedTracks): Set m_hasUnsupportedTracks before callback. + + * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: + (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_totalTrackCount and m_hasUnsupportedTracks. + (WebCore::MediaPlayerPrivate::updateStates): Call sawUnsupportedTracks if the movie has unsupported + media type(s) or if it fails completely. + (WebCore::MediaPlayerPrivate::sawUnsupportedTracks): New, disable the movie object and tell the + media player client we won't play this movie correctly. + (WebCore::MediaPlayerPrivate::didEnd): Don't do anything if m_hasUnsupportedTracks. + (WebCore::MediaPlayerPrivate::setSize): Ditto. + (WebCore::MediaPlayerPrivate::setVisible): Ditto. + (WebCore::MediaPlayerPrivate::paint): Ditto. + (WebCore::MediaPlayerPrivate::movieEnded): Ditto. + (WebCore::MediaPlayerPrivate::movieLoadStateChanged): Ditto. + (WebCore::MediaPlayerPrivate::movieTimeChanged): Ditto. + (WebCore::MediaPlayerPrivate::movieNewImageAvailable): Ditto. + * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: + + * platform/graphics/win/QTMovieWin.cpp: + (QTMovieWinPrivate::task): Stop the task timer if we were disabled during the load state + change callback. + (QTMovieWinPrivate::drawingComplete): Don't do anything if disabled. + (QTMovieWin::QTMovieWin): Initialize m_disabled. + (QTMovieWin::disableUnsupportedTracks): Return total number of tracks. + (QTMovieWin::setDisabled): New, set m_disabled flag. + * platform/graphics/win/QTMovieWin.h: + +2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org> + + Reviewed by Xan Lopez. + + [GTK] Error reporting + https://bugs.webkit.org/show_bug.cgi?id=18344 + + Fix the SOUP resource handle to report SOUP_HTTP_ERROR for Soup + errors and G_IO_ERROR for gio errors. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::finishedCallback): + (WebCore::ResourceHandle::startHttp): + (WebCore::ResourceHandle::start): + (WebCore::readCallback): + (WebCore::openCallback): + (WebCore::queryInfoCallback): + (WebCore::ResourceHandle::startGio): + +2009-04-25 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Mark Rowe. + + Only set the new URL once for the request. Doing it a second time + after the call to willSendRequest was causing crashes when + redirected requests got cancelled. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::restartedCallback): + +2009-04-24 Kevin Ollivier <kevino@theolliviers.com> + + wx build fix. Adding ScriptEventListener.cpp. + + * WebCoreSources.bkl: + +2009-04-24 Sergio GarcÃa-Cuevas <sergio_gcg@telefonica.net> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=17267 + [GTK] Primary selection/clipboard support + + Copy the link location to the primary selection as well as the + clipboard selection when using the "copy link selection" context + menu entry. + + * platform/gtk/PasteboardGtk.cpp: + (WebCore::Pasteboard::writeURL): + * platform/gtk/PasteboardHelper.h: + +2009-04-24 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=25383 + Changing SVG size via JS does not update CSS width/height + + Add an ugly hack to fix CSS width/height updates from JS. + + We can't easily call setAttribute when width/height changes + as that would cause infinite recursion (as we'd try to set + the animation storage from the attributes) + + For now, when we get notification that JS changed width/height + we copy what parseMappedAttribute does and update the CSS values as well. + + A better fix for this would be: + https://bugs.webkit.org/show_bug.cgi?id=25383 + + * svg/SVGSVGElement.cpp: + (WebCore::updateCSSForAttribute): + (WebCore::SVGSVGElement::svgAttributeChanged): + +2009-04-24 Kevin McCullough <kmccullough@apple.com> + + Reviewed by Dan Bernstein. + + We should not show the deletion UI for blockquotes in mail but they do + show now that we only check for one visible border. + + * editing/DeleteButtonController.cpp: + (WebCore::isDeletableElement): + +2009-04-24 Dan Bernstein <mitz@apple.com> + + - address Hyatt's review comments on the last patch + + * rendering/RenderLayer.cpp: + (WebCore::performOverlapTests): + (WebCore::RenderLayer::paintLayer): + +2009-04-24 Dan Bernstein <mitz@apple.com> + + Reviewed by Dave Hyatt. + + - fix https://bugs.webkit.org/show_bug.cgi?id=5909 + <rdar://problem/5863349> overlapping element leaves trail when + scrolling iframe + + * WebCore.xcodeproj/project.pbxproj: Added OverlapTestRequestClient.h. + + * page/FrameView.cpp: + (WebCore::FrameView::reset): Initialize m_isOverlapped. + (WebCore::FrameView::useSlowRepaints): Also check m_isOverlapped. + (WebCore::FrameView::removeSlowRepaintObject): Use useSlowRepaints() + so overlapping is taken into account. + (WebCore::FrameView::setIsOverlapped): Added. Sets m_isOverlapped and + enables or disables copy-on-scroll accordingly. + + * page/FrameView.h: + Added setIsOverlapped() and m_isOverlapped. + + * rendering/OverlapTestRequestClient.h: Added. During foreground painting, + an OverlapTestRequestClient can make a request to test if any subsequently- + painted layers overlap a rect. The test result is delivered to the + requestClient via setOverlapTestResult(). + (WebCore::OverlapTestRequestClient::~OverlapTestRequestClient): + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::paint): Pass an OverlapTestRequestMap to + paintLayer(). When done painting, inform any remaining requestClients that + they are not overlapped. + + (WebCore::RenderLayer::paintLayer): Take an OverlapTestRequestMap and + pass it down to child and reflection layers. Inform requestClients if this + layer overlaps their requested rects. + + * rendering/RenderLayer.h: + + * rendering/RenderObject.h: + (WebCore::RenderObject::PaintInfo::PaintInfo): Added an + OverlapTestRequestMap member. + + * rendering/RenderReplica.cpp: + (WebCore::RenderReplica::paint): For now, pass a 0 OverlapTestRequestMap + to paintLayer(). + + * rendering/RenderWidget.cpp: + (WebCore::RenderWidget::paint): For FrameViews, request an overlap test + with the frame. + (WebCore::RenderWidget::setOverlapTestResult): Call + FrameView::setIsOverlapped() with the result of the overlap test. + + * rendering/RenderWidget.h: Made RenderWidget an OverlapTestRequestClient. + +2009-04-24 David Hyatt <hyatt@apple.com> + + Reviewed by Simon Fraser, Dan Bernstein. + + Speed up the PLT by devirtualizing the height() function on InlineBox. virtualizing it in order to make the height() computation dynamic caused + a ~0.5% slowdown. This patch does the following to get the speed back: + + (a) Devirtualizes isText and forces inline box creators to set the bit as needed. This actually resulted in simplified code, since ListMarkerBox could + then be removed. + (b) Reduces the height() call count. In some cases the code was repeatedly calling height(), which used to be fine when the function was just an inline + member variable access. The call sites have been patched to cut down on extra height() calls now that it is more expensive. + (c) Devirtualize height() except on SVG boxes. For all non-SVG, the height() function on InlineBox handles the computation. For SVG boxes, a new bit has + been set on InlineBoxes (isSVG()) that indicates that the virtual svgBoxHeight() function should be called to retrieve the height instead. + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * WebCoreSources.bkl: + * rendering/InlineBox.cpp: + (WebCore::InlineBox::height): + * rendering/InlineBox.h: + (WebCore::InlineBox::InlineBox): + (WebCore::InlineBox::isSVG): + (WebCore::InlineBox::setIsSVG): + (WebCore::InlineBox::isText): + (WebCore::InlineBox::setIsText): + (WebCore::InlineBox::svgBoxHeight): + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::placeBoxesVertically): + (WebCore::InlineFlowBox::paintBoxDecorations): + (WebCore::InlineFlowBox::paintMask): + * rendering/InlineFlowBox.h: + * rendering/InlineTextBox.cpp: + * rendering/InlineTextBox.h: + * rendering/ListMarkerBox.cpp: Removed. + * rendering/ListMarkerBox.h: Removed. + * rendering/RenderListMarker.cpp: + (WebCore::RenderListMarker::createInlineBox): + * rendering/RenderSVGInline.cpp: + (WebCore::RenderSVGInline::createFlowBox): + * rendering/RenderSVGInlineText.cpp: + (WebCore::RenderSVGInlineText::createTextBox): + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::createRootBox): + * rendering/RenderText.cpp: + (WebCore::RenderText::createInlineTextBox): + * rendering/RootInlineBox.cpp: + * rendering/RootInlineBox.h: + * rendering/SVGInlineFlowBox.h: + (WebCore::SVGInlineFlowBox::svgBoxHeight): + * rendering/SVGInlineTextBox.h: + (WebCore::SVGInlineTextBox::svgBoxHeight): + * rendering/SVGRootInlineBox.h: + (WebCore::SVGRootInlineBox::svgBoxHeight): + +2009-04-24 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25370 + Introduce ScriptEventListener to refactor away direct references to + JSLazyEventListener in WebCore code. + + * GNUmakefile.am: Added ScriptEventListener to project. + * WebCore.pro: Ditto. + * WebCore.vcproj/WebCore.vcproj: Ditto. + * WebCore.xcodeproj/project.pbxproj: Ditto. + * bindings/js/JSDOMGlobalObject.cpp: Removed unused JSLazyEventListener include. + * bindings/js/JSLazyEventListener.cpp: Moved createAttributeEventListener helpers + to ScriptEventListener. + * bindings/js/JSLazyEventListener.h: Ditto. + * bindings/js/ScriptController.cpp: Removed unused JSLazyEventListener include. + * bindings/js/ScriptEventListener.cpp: Added. + * bindings/js/ScriptEventListener.h: Added. + * bindings/v8/ScriptEventListener.cpp: Added. + * bindings/v8/ScriptEventListener.h: Added. + * dom/Document.cpp: Renamed JSLazyEventListener include to ScriptEventListener. + * html/HTMLBodyElement.cpp: Ditto. + * html/HTMLButtonElement.cpp: Ditto. + * html/HTMLElement.cpp: Ditto. + * html/HTMLFormElement.cpp: Ditto. + * html/HTMLFrameElementBase.cpp: Ditto. + * html/HTMLFrameSetElement.cpp: Ditto. + * html/HTMLImageElement.cpp: Ditto. + * html/HTMLInputElement.cpp: Ditto. + * html/HTMLObjectElement.cpp: Ditto. + * html/HTMLScriptElement.cpp: Ditto. + * html/HTMLSelectElement.cpp: Ditto. + * html/HTMLTextAreaElement.cpp: Ditto. + * svg/SVGElement.cpp: Ditto. + * svg/SVGSVGElement.cpp: Ditto. + +2009-04-24 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + Bug 25355: Crash when Creating New Tab or New Window when set to open Same Page + https://bugs.webkit.org/show_bug.cgi?id=25355 + rdar://problem/6823543 + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::loadItem): Added a null check. + +2009-04-24 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Fix RenderSVGImage to dump with full bounds and style information. + https://bugs.webkit.org/show_bug.cgi?id=25377 + + No functional changes, we're just now including more info in render tree dumps. + + * rendering/RenderObject.h: + (WebCore::RenderObject::isSVGImage): + * rendering/RenderSVGImage.h: + (WebCore::RenderSVGImage::isSVGImage): + * rendering/RenderTreeAsText.cpp: + (WebCore::write): + * rendering/SVGRenderTreeAsText.cpp: + (WebCore::operator<<): + (WebCore::write): + * rendering/SVGRenderTreeAsText.h: + +2009-04-24 David Levin <levin@chromium.org> + + Reviewed by NOBODY (chromium build fix). + + Rename "isInline" => "isAttribute" in v8 bindings (jsc was done in r42699). + + * bindings/v8/V8AbstractEventListener.cpp: + (WebCore::V8AbstractEventListener::V8AbstractEventListener): + (WebCore::V8AbstractEventListener::invokeEventHandler): + * bindings/v8/V8AbstractEventListener.h: + * bindings/v8/V8EventListenerList.cpp: + (WebCore::V8EventListenerList::add): + (WebCore::V8EventListenerList::remove): + (WebCore::V8EventListenerList::clear): + * bindings/v8/V8LazyEventListener.h: + (WebCore::V8LazyEventListener::virtualisAttribute): + * bindings/v8/custom/V8CustomEventListener.cpp: + (WebCore::V8EventListener::V8EventListener): + * bindings/v8/custom/V8CustomEventListener.h: + (WebCore::V8EventListener::create): + (WebCore::V8EventListener::virtualisAttribute): + +2009-04-24 Nate Chapin <japhet@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25343 + Fix Chromium/Skia bug where -webkit-box-shadow with 0,0 offset + ignores blur. + + * WebCore\platform\graphics\skia\GraphicsContextSkia.cpp + (WebCore::GraphicsContext::setPlatformShadow): Add check against + blur before clearing looper. + +2009-04-24 Eric Roman <eroman@chromium.org> + + Reviewed by Darin Adler. + + Initialize TextIterator::m_textLength to 0. + + This assures that TextIterator::length() will return 0 for cases when TextIterator's constructor returns early (because there is nothing to iterate over in the range). + + <https://bugs.webkit.org/show_bug.cgi?id=25335> + + Test: editing/selection/doubleclick-whitespace-img-crash.html + + * editing/TextIterator.cpp: + (WebCore::TextIterator::TextIterator): + +2009-04-24 Fumitoshi Ukai <ukai@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25329 + Add indexed access method in v8 binding of ClientRectList. + + * bindings/v8/custom/V8ClientRectListCustom.cpp: Added. + +2009-04-24 Fumitoshi Ukai <ukai@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25257 + Use null for unspecified event listener attributes of XMLHttpRequest + and XMLHttpRequestUpload in v8 binding. + + cf. http://www.whatwg.org/specs/web-apps/current-work/#event-handler-attributes + An event handler attribute, unless otherwise specified, can either + have the value null or be set to a Function object. + Initially, an event handler attribute must be set to null. + + Test: fast/xmlhttprequest/xmlhttprequest-default-attributes.html + + * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: + (WebCore::ACCESSOR_GETTER): Changed to use v8::Null(). + * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp: + (WebCore::ACCESSOR_GETTER): Ditto. + +2009-04-24 Darin Adler <darin@apple.com> + + Reviewed by Adam Roben. + + <rdar://problem/6663836> CrashTracer: crashes in Safari at com.apple.WebCore • WebCore::reportException + 1513 + + * bindings/js/JSDOMBinding.cpp: + (WebCore::reportException): Added a null check. + +2009-04-24 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + https://bugs.webkit.org/show_bug.cgi?id=23219 + + Add support for transtions and animations of background-position, -webkit-background-size, + -webkit-mask-position and -webkit-mask-size. + + Tests: transitions/background-transitions.html + transitions/mask-transitions.html + + * page/animation/AnimationBase.cpp: + (WebCore::blendFunc): + Add a blend func for LengthSize. + + (WebCore::ensurePropertyMap): + Add wrappers for the new properties. + + (WebCore::addShorthandProperties): + Add a shorthand property for CSSPropertyBackgroundPosition to map to + CSSPropertyBackgroundPositionX and CSSPropertyBackgroundPositionY, + add CSSPropertyWebkitMask for CSSPropertyWebkitMaskPosition, and add + CSSPropertyWebkitMaskPosition for CSSPropertyWebkitMaskPositionX and + CSSPropertyWebkitMaskPositionY. + + * rendering/style/RenderStyle.h: + (WebCore::InheritedFlags::setBackgroundXPosition): + (WebCore::InheritedFlags::setBackgroundYPosition): + (WebCore::InheritedFlags::setBackgroundSize): + (WebCore::InheritedFlags::setMaskXPosition): + (WebCore::InheritedFlags::setMaskYPosition): + (WebCore::InheritedFlags::setMaskSize): + Add setters for the properties that can be animated now. + +2009-04-24 Adele Peterson <adele@apple.com> + + Reviewed by Darin Adler. + + Fix for <rdar://problem/5089327> Newline gets stripped when pasting whole lines in certain markup + + Test: editing/pasteboard/paste-blockquote-after-blockquote.html + + When we have matching quote levels, its ok to merge the starts of the inserted and existing blocks more frequently. + But we should only merge here if the selection start was inside a mail blockquote. This prevents against removing a + blockquote from newly pasted quoted content that was pasted into an unquoted position. If that unquoted position happens + to be right after another blockquote, we don't want to merge and risk stripping a valid block (and newline) from the pasted content. + + * editing/ReplaceSelectionCommand.cpp: + (WebCore::ReplaceSelectionCommand::shouldMergeStart): Also added an early return to always return false when we're already moving paragraphs. + (WebCore::ReplaceSelectionCommand::doApply): Removed redundant check for when we're moving paragraphs. + * editing/ReplaceSelectionCommand.h: + +2009-04-23 Francisco Tolmasky <francisco@280north.com> + + BUG 24604: WebKit profiler reports incorrect total times + <https://bugs.webkit.org/show_bug.cgi?id=24604> + + Reviewed by Timothy Hatcher and Kevin McCullough. + + Made it so that most of the profiler functions now match the behavior of Shark. Most notably, in the + heavy view, child nodes now represent the statistics of the root node. Each root node of heavy view + displays flattened statistics for a particular function that ran during the profile, and each child + of these root nodes represents a callpath that lead to it. Thus, the statistics for each of these child + nodes should show how much of the root nodes values came from it. For example, if you had the following to + stacks take place during the profile: + + A ->calls 1 times-> B ->calls 2 times-> C + D ->calls 4 times-> C + + The tree for the C root node would look like this: + + C -> B -> A + -> D + + The number of calls values would look like this: + + C (6) -> B (2) -> A(2) + -> D (4) + + What this means is that "2 of the total 6 C calls came from B", "2 of the total C calls came from A", and + "4 of the total C calls came from D". Notice that the "A ->calls 2 time->" is completely ignored. This becomes + particularly tricky during recursive calls, because each child note can represent multiple possible paths. This + is the reason that we would get things like 40000% previously with recursion. + + This is also the way gprof works, and as close as we can get to Shark's behavior (Shark is not instrumented so it + can't know exactly how many calls came from where, etc). + + * English.lproj/localizedStrings.js: Added "Average" for average times in the profile. + * inspector/JavaScriptProfile.cpp: + (WebCore::ProfileClass): + * inspector/JavaScriptProfileNode.cpp: + (WebCore::getParent): + (WebCore::getHead): + (WebCore::getCallUID): + (WebCore::ProfileNodeClass): + * inspector/front-end/BottomUpProfileDataGridTree.js: Added. + (WebInspector.BottomUpProfileDataGridTree): + (WebInspector.BottomUpProfileDataGridTree.prototype.focus): + (WebInspector.BottomUpProfileDataGridNode): + (WebInspector.BottomUpProfileDataGridNode.prototype._takePropertiesFromProfileDataGridNode): + (WebInspector.BottomUpProfileDataGridNode.prototype._keepOnlyChild): + (WebInspector.BottomUpProfileDataGridNode.prototype._exclude): + (WebInspector.BottomUpProfileDataGridNode.prototype._merge): + (WebInspector.BottomUpProfileDataGridNode.prototype._populate): + * inspector/front-end/DataGrid.js: + (WebInspector.DataGrid.prototype.insertChild): + (WebInspector.DataGrid.prototype.removeChild): + (WebInspector.DataGrid.prototype.removeChildren): + (WebInspector.DataGridNode.prototype.set hasChildren): + (WebInspector.DataGridNode.prototype.get hasChildren): + * inspector/front-end/ProfileDataGridTree.js: Added. + (WebInspector.ProfileDataGridNode): + (WebInspector.ProfileDataGridNode.prototype.get data.formatMilliseconds): + (WebInspector.ProfileDataGridNode.prototype.get data): + (WebInspector.ProfileDataGridNode.prototype.createCell): + (WebInspector.ProfileDataGridNode.prototype.select): + (WebInspector.ProfileDataGridNode.prototype.deselect): + (WebInspector.ProfileDataGridNode.prototype.expand): + (WebInspector.ProfileDataGridNode.prototype.insertChild): + (WebInspector.ProfileDataGridNode.prototype.removeChild): + (WebInspector.ProfileDataGridNode.prototype.removeChildren): + (WebInspector.ProfileDataGridNode.prototype.findChild): + (WebInspector.ProfileDataGridNode.prototype.get averageTime): + (WebInspector.ProfileDataGridNode.prototype.get averagePercent): + (WebInspector.ProfileDataGridNode.prototype.get selfPercent): + (WebInspector.ProfileDataGridNode.prototype.get totalPercent): + (WebInspector.ProfileDataGridNode.prototype._save): + (WebInspector.ProfileDataGridNode.prototype._restore): + (WebInspector.ProfileDataGridNode.prototype._merge): + (WebInspector.ProfileDataGridTree): + (WebInspector.ProfileDataGridTree.prototype.get expanded): + (WebInspector.ProfileDataGridTree.prototype.appendChild): + (WebInspector.ProfileDataGridTree.prototype.insertChild): + (WebInspector.ProfileDataGridTree.prototype.removeChildren): + (WebInspector.ProfileDataGridTree.prototype.findChild.WebInspector.ProfileDataGridNode.prototype.findChild.sort.WebInspector.ProfileDataGridNode.prototype.sort._save): + (WebInspector.ProfileDataGridTree.propertyComparator.comparator): + (WebInspector.ProfileDataGridTree.propertyComparator.else.comparator): + (WebInspector.ProfileDataGridTree.propertyComparator): + * inspector/front-end/ProfileView.js: + (WebInspector.ProfileView): + (WebInspector.ProfileView.prototype.set profile): + (WebInspector.ProfileView.prototype.get bottomUpProfileDataGridTree): + (WebInspector.ProfileView.prototype.get topDownProfileDataGridTree): + (WebInspector.ProfileView.prototype.get currentTree): + (WebInspector.ProfileView.prototype.set currentTree): + (WebInspector.ProfileView.prototype.get topDownTree): + (WebInspector.ProfileView.prototype.get bottomUpTree): + (WebInspector.ProfileView.prototype.refresh): + (WebInspector.ProfileView.prototype.refreshVisibleData): + (WebInspector.ProfileView.prototype.refreshShowAsPercents): + (WebInspector.ProfileView.prototype.performSearch.matchesQuery): + (WebInspector.ProfileView.prototype.performSearch): + (WebInspector.ProfileView.prototype._changeView): + (WebInspector.ProfileView.prototype._focusClicked): + (WebInspector.ProfileView.prototype._excludeClicked): + (WebInspector.ProfileView.prototype._resetClicked): + (WebInspector.ProfileView.prototype._sortProfile): + * inspector/front-end/ProfilesPanel.js: + (WebInspector.ProfilesPanel.prototype.showProfile): + (WebInspector.ProfilesPanel.prototype.showView): + (WebInspector.ProfilesPanel.prototype.searchMatchFound): + * inspector/front-end/TopDownProfileDataGridTree.js: Added. + (WebInspector.TopDownProfileDataGridNode): + (WebInspector.TopDownProfileDataGridNode.prototype._populate): + (WebInspector.TopDownProfileDataGridNode.prototype._exclude): + (WebInspector.TopDownProfileDataGridTree): + (WebInspector.TopDownProfileDataGridTree.prototype.focus): + (WebInspector.TopDownProfileDataGridTree.prototype.exclude): + * inspector/front-end/WebKit.qrc: + * inspector/front-end/inspector.css: + * inspector/front-end/inspector.html: + +2009-04-23 Eric Seidel <eric@webkit.org> + + Reviewed by Sam Weinig. + + Use static functions (and a couple templates) + to further reduce the amount of copy/paste code in SVGRenderTreeAsText + + No test changes, only code cleanup. + + * rendering/SVGRenderTreeAsText.cpp: + (WebCore::writeNameValuePair): + (WebCore::writeNameAndQuotedValue): + (WebCore::writeIfNotEmpty): + (WebCore::writeIfNotDefault): + (WebCore::writeStyle): + (WebCore::writePositionAndStyle): + (WebCore::operator<<): + +2009-04-23 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + SVGRenderTreeAsText cleanup/code sharing. + + No test changes, only code cleanup. + + * rendering/RenderText.cpp: + (WebCore::RenderText::firstRunOrigin): + * rendering/RenderText.h: + * rendering/SVGRenderTreeAsText.cpp: + (WebCore::writeStandardPrefix): + (WebCore::writeChildren): + (WebCore::write): + (WebCore::writeRenderResources): + +2009-04-23 Beth Dakin <bdakin@apple.com> + + Reviewed by Darin Adler. + + WebCore part of fix for <rdar://problem/6333461> REGRESSION + (r36864-r36869): Dragging stocks widget scrollbar drags the whole + widget + + * platform/Scrollbar.h: + (WebCore::Scrollbar::isScrollbar): + * platform/Widget.h: + (WebCore::Widget::isScrollbar): + +2009-04-23 Kevin McCullough <kmccullough@apple.com> + + Reviewed by Adam Roben. + + <rdar://problem/6808109> "Deletion UI" is not available for many + portions of HTML content + + This patch makes the deletion UI show up in some new situations: + 1) If a block's background color is different from its parent's + 2) If a block has a background image. + 3) If a block has a single visible border. + However the block must now not only be at least a minimum width and + height, but also exceed a minimum area. In practice this has led to + much better element selection. + + * editing/DeleteButtonController.cpp: + (WebCore::isDeletableElement): + +2009-04-23 Kevin Ollivier <kevino@theolliviers.com> + + wx build fix. Adding XMLTokenizerScope.cpp to the build. + + * WebCoreSources.bkl: + +2009-04-23 Adele Peterson <adele@apple.com> + + Reviewed by Darin Adler. + + Fix for <rdar://problem/6788905> REGRESSION (41928?): hang in Position::upstream + https://bugs.webkit.org/show_bug.cgi?id=25312 + + I was unable to reproduce the problem, but I'm pretty sure this will fix it. + + * rendering/RenderObject.cpp: (WebCore::RenderObject::createVisiblePosition): + Since VisiblePosition doesn't ensure the offset is good, we shouldn't pass max int as an offset. + +2009-04-23 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25313 + Missing scroll bars in GMail. + + Test: fast/overflow/overflow-y-scroll.html + + * platform/ScrollView.cpp: + (WebCore::ScrollView::updateScrollbars): Added check for the ScrollbarAlwaysOn + scroll mode. + +2009-04-23 Dan Bernstein <mitz@apple.com> + + Reviewed by Justin Garcia. + + - fix <rdar://problem/6081309> Mail crash when pressing down arrow in + some messages in WebCore::canHaveChildrenForEditing + + Test: editing/selection/extend-by-line-anonymous-content-crash.html + + * editing/visible_units.cpp: + (WebCore::previousLinePosition): Null-check node. If p is not an + editable position, then closestLeafChildForXPos() may have returned a + non-editable box, and in particular one belonging to anonymous content. + If node is 0, fall back on RenderObject::positionForPoint, which + finds the closest position in non-anonymous content. + (WebCore::nextLinePosition): Ditto. + * rendering/RenderObject.cpp: + (WebCore::RenderObject::createVisiblePosition): Fixed a typo. + +2009-04-23 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Adele Peterson. + + <rdar://problem/6791439> REGRESSION: Get an error page instead of login page navigating back in gmail + + Test: http/tests/history/back-to-post.php + + * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest): + Apply a new cache policy if it changed after the platform request was first created. + While at it, also made sure to update timeout. + +2009-04-23 Zan Dobersek <zandobersek@gmail.com> + + Reviewed by Gustavo Noronha. + + When creating a new drawable object, collect system's + information about the best depth it can provide and use it + in a new colormap that the new drawable requires. + + * platform/graphics/gtk/ImageGtk.cpp: + (WebCore::BitmapImage::getGdkPixbuf): + +2009-04-23 Zan Dobersek <zandobersek@gmail.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=15654 + GdkPixbuf support for ImageCairo + + Add support for converting a Cairo surface to a GdkPixbuf. + + * platform/graphics/BitmapImage.h: + * platform/graphics/Image.h: + (WebCore::Image::getGdkPixbuf): + * platform/graphics/gtk/ImageGtk.cpp: + (WebCore::BitmapImage::getGdkPixbuf): + +2009-04-23 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + Reviewed by Simon Hausmann. + + Make windowed plugins (on X11, Qt) behave nicer with wheel scrolling. + + Basically, what we want is to send wheel events to the plugin *only* + when it has focus, or else send it to the parent frame. + + This is a work around, and basically what we do, is to steal the + wheel events from the plugin, modify the window ID, and put the + event back into the Qt event loop. + + * plugins/qt/PluginContainerQt.cpp: + (PluginClientWrapper::PluginClientWrapper): + (PluginClientWrapper::~PluginClientWrapper): + (PluginClientWrapper::x11Event): + (PluginContainerQt::PluginContainerQt): + (PluginContainerQt::~PluginContainerQt): + (PluginContainerQt::on_clientClosed): + (PluginContainerQt::on_clientIsEmbedded): + (PluginContainerQt::redirectWheelEventsToParent): + (PluginContainerQt::x11Event): + (PluginContainerQt::focusInEvent): + * plugins/qt/PluginContainerQt.h: + +2009-04-22 Brady Eidson <beidson@apple.com> + + Reviewed by Maciej Stachowiak + + <rdar://problem/6786961> - "Are you sure you want to resubmit this form?" nag displays twice. + + For most loads, we were consulting the navigation policy delegate twice. Once from FrameLoader before + the load started and once from MainResourceLoader in its willSendRequest callback. + + In the past we tried removing MainResourceLoader's call altogether. This caused a regression where urls + that redirect to a url handled by an external application would no longer work in Safari. It probably + also broke other WebKit apps in subtle ways. + + Changing MainResourceLoader to make the check only on redirects fixes both bugs. We now only call the + policy delegate once for most standard loads, but we do correctly call it a second time for redirects. + + Tests: http/tests/misc/policy-delegate-called-twice.html + http/tests/misc/redirect-to-external-url.html + + * loader/MainResourceLoader.cpp: + (WebCore::MainResourceLoader::willSendRequest): Call the navigation policy delegate only for redirects. + +2009-04-22 Sam Weinig <sam@webkit.org> + + Reviewed by Mark Rowe. + + Fix for <rdar://problem/6800695> + + Add a hack to only allow navigating (via a link from a http page) + to feed: urls (same for feeds: and feedsearch:) that map to http: + or https: via their nested protocol. This includes both feed://example.com + and feed:http://example.com. + + * loader/FrameLoader.cpp: + (WebCore::isFeedWithNestedProtocolInHTTPFamily): + (WebCore::FrameLoader::loadFrameRequest): + +2009-04-22 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Autogenerate the XMLHttpRequest constructor getter/setter for the + WorkerContext and remove the now no longer needed JSWorkerContextBase.lut.h + file. + + * DerivedSources.make: Remove JSWorkerContextBase.lut.h + * WebCore.xcodeproj/project.pbxproj: Ditto. + + * bindings/js/JSWorkerContextBase.cpp: + * bindings/js/JSWorkerContextBase.h: Remove code to support hand written + code for XMLHttpRequest constructor lookup and shadowing. + + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::customGetOwnPropertySlot): Remove JSC prefixes. + (WebCore::JSWorkerContext::xmlHttpRequest): Added. Custom implementation of + cached constructor lookup. + * workers/WorkerContext.idl: Make the XMLHttpRequestConstructor accessor not + V8 specific. + +2009-04-22 Darin Adler <darin@apple.com> + + * page/Navigator.idl: Touch this file to fix build since Geolocation + configuration was recently turned off. + +2009-04-22 Justin Garcia <justin.garcia@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25322 + Can't delete empty paragraph after a block image + + Empty paragraph removal would have been handled by mergeParagraphs, but we stopped short + because of some code that avoided problems that would arise from Positions that would go + bad during deletion. + + We have several checks that prevent us from using bad Positions, this one in particular + was added to avoid bad Positions that result from text removal. So, I removed the check + and started correctly updating m_downstreamEnd during text removal so that it doesn't go + bad. m_upstreamStart doesn't need to be updated during text removal, since only text + after it will ever be removed. + + * editing/DeleteSelectionCommand.cpp: + (WebCore::DeleteSelectionCommand::deleteTextFromNode): + (WebCore::DeleteSelectionCommand::handleGeneralDelete): + (WebCore::DeleteSelectionCommand::mergeParagraphs): + +2009-04-22 Oliver Hunt <oliver@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6757346> SAP: Prevent default on mouseDown does not stop iframe from capturing subsequent mouse moves + + Make mouseUp target the correct frame when the original + mousedown made the drag non-capturing. + + * page/mac/EventHandlerMac.mm: + (WebCore::EventHandler::passSubframeEventToSubframe): + +2009-04-22 Oliver Hunt <oliver@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6757346> SAP: Prevent default on mouseDown does not stop iframe from capturing subsequent mouse moves + + This is the first step of allowing drag events to match the behaviour + of mouse move events when the default action of the initial mouse down + is prevented. Remaining issue is that the final mouse up event still + targets the original root frame. + + Test: fast/events/mouse-drag-from-frame-to-other-frame.html + + * page/mac/EventHandlerMac.mm: + (WebCore::EventHandler::passSubframeEventToSubframe): + +2009-04-22 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Adele Peterson + + <rdar://problem/6702882> QT movie's video fails to be displayed after switching between tabs + <rdar://problem/6754957> Resizing Web browser window and hitting play will cause video blocks and artifacting + + When in a media document, MediaPlayerPrivateQTKit uses a QTMovieView which may get + layer backing under some circumstances. However, drawing the view via + displayRectIgnoringOpacity:inContext: bypasses any layer setup that AppKit normally performs. + So when in the media document, we draw via displayRectIgnoringOpacity:. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::paint): + +2009-04-22 Timothy Hatcher <timothy@apple.com> + + Fix a crash in Mail when forwarding a specific HTML email. + Caused by the fix for <rdar://problem/6512520> (r42096). + Unable to create a test case that works outside of Mail. + + <rdar://problem/6796069> + + Reviewed by Ada Chan. + + * editing/markup.cpp: + (WebCore::createMarkup): Null check pastEnd before trying to + call Range::compareBoundaryPoints. + +2009-04-22 Sam Weinig <sam@webkit.org> + + Rubber-stamped by Darin Adler. + + Fix for <rdar://problem/6816957> + Turn off Geolocation by default + + * Configurations/FeatureDefines.xcconfig: + +2009-04-22 Eric Seidel <eric@webkit.org> + + Rubber-stamped by David Hyatt. + + Change RenderSVGImage to dump as RenderSVGImage instead of RenderImage + + * rendering/RenderSVGImage.h: + (WebCore::RenderSVGImage::renderName): + +2009-04-21 Timothy Hatcher <timothy@apple.com> + + Fix a crash on Gmail when they remove a "before unload" event listener when + it was never added to the pending map in the first place. + + <rdar://problem/6814144> + + Reviewed by Darin Adler. + + * page/DOMWindow.cpp: + (WebCore::allowsPendingBeforeUnloadListeners): Renamed from shouldAddPendingBeforeUnloadListener. + (WebCore::DOMWindow::addEventListener): Call allowsPendingBeforeUnloadListeners now. + (WebCore::DOMWindow::removeEventListener): Call allowsPendingBeforeUnloadListeners before + removing the before unload listener. + (WebCore::DOMWindow::clearAttributeEventListener): Ditto. + +2009-04-22 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + Reviewed by Ariya Hidayat. + + Made windowed plugins move/resize synchronized with the painting, so + that windowed plugins are not moved before the rest of the parent + frame during scrolling. + + * plugins/qt/PluginContainerQt.cpp: + (PluginContainerQt::PluginContainerQt): + (PluginContainerQt::requestGeometry): + (PluginContainerQt::adjustGeometry): + * plugins/qt/PluginContainerQt.h: + * plugins/qt/PluginViewQt.cpp: + (WebCore::PluginView::updatePluginWidget): + (WebCore::PluginView::paint): + +2009-04-22 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Ariya Hidayat. + + Fix various bugs in the X11 Qt plugin focus handling. + + Notify the focus controller on activation/deactivation of the plugin and + set focus on the plugin's element when it receives the window system + focus. + + * WebCore.pro: Added PluginContainerQt to the Qt build. + * plugins/PluginView.cpp: + (WebCore::PluginView::focusPluginElement): New helper function, moved from PluginViewWin. + * plugins/PluginView.h: + (WebCore::PluginView::parentFrame): Added parent frame accessor. + * plugins/qt/PluginContainerQt.cpp: Added. + (PluginContainerQt::PluginContainerQt): + (PluginContainerQt::focusInEvent): Set the focus controller active on focus in events. + (PluginContainerQt::focusOutEvent): Deactivate the focus controller when loosing the focus. + * plugins/qt/PluginContainerQt.h: Added. + * plugins/qt/PluginViewQt.cpp: + (WebCore::PluginView::init): Allocate a PluginContainerQt instead of QX11EmbedContainer. + * plugins/win/PluginViewWin.cpp: + (WebCore::PluginView::handleMouseEvent): Moved the code to set focus on the plugin element + to PluginView::focusPluginElement. + +2009-04-22 Tamas Szirbucz <szirbucz.tamas@stud.u-szeged.hu> + + Reviewed by Ariya Hidayat. + + https://bugs.webkit.org/show_bug.cgi?id=25023 + Delete reply in QNetworkReplyHandler::abort() to avoid leak. + + * platform/network/qt/QNetworkReplyHandler.cpp: + (WebCore::QNetworkReplyHandler::abort): + +2009-04-21 Jon Honeycutt <jhoneycutt@apple.com> + + Allow the UI delegate to control cursor-setting. + + Reviewed by Ada Chan. + + * page/Chrome.cpp: + (WebCore::Chrome::setCursor): + Pass the call to the client. + + * page/Chrome.h: + + * page/ChromeClient.h: + (WebCore::ChromeClient::setCursor): + Stubbed; returns false. + + * platform/Cursor.h: + Define PlatformCursorHandle for each platform. + + * platform/win/WidgetWin.cpp: + Reordered some includes. Added an include of Page.h. + (WebCore::Widget::setCursor): + Fixed a typo in the comment about ignoreNextSetCursor. Get the Page, and + call its Chrome's setCursor() method with the passed cursor. Fall back + to SetCursor() if the Page is not available. + + * plugins/win/PluginViewWin.cpp: + (WebCore::PluginView::handleMouseEvent): + Remove an unused variable. Cleaned up some whitespace. + +2009-04-21 John Abd-El-Malek <jam@google.com> + + Reviewed by Dimitri Glazkov. + + Add a method to purge the Chromium plugin list cache. + https://bugs.webkit.org/show_bug.cgi?id=25318 + + * plugins/chromium/PluginDataChromium.cpp: + (WebCore::resetChromiumPluginCache): + +2009-04-21 Mark Rowe <mrowe@apple.com> + + Reviewed by Darin Adler. + + Fix <https://bugs.webkit.org/show_bug.cgi?id=25164> / <rdar://problem/6786319>. + + We need to ensure that XMLTokenizer sets the current DocLoader before calling in to + any libxml2 methods that may trigger a load. The presence of a DocLoader indicates + that the load was originated by WebCore's use of libxml2 and that we should enforce + the same-origin policy on it. XMLTokenizer::initializeParserContext, + XMLTokenizer::doWrite and XMLTokenizer::doEnd were three methods that were not setting + the current DocLoader when they should have. + + The XMLTokenizerScope class is introduced to simplify the pattern of saving, setting and + restoring the current DocLoader and libxml2 error handlers. The DocLoader and error handlers + are saved and set when the scope is allocated, and restored to their previous values when + the scope is exited. + + Test: http/tests/security/xss-DENIED-xml-external-entity.xhtml + + * GNUmakefile.am: + * WebCore.pro: + * WebCore.scons: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * dom/XMLTokenizer.cpp: + * dom/XMLTokenizer.h: + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::matchFunc): + (WebCore::shouldAllowExternalLoad): + (WebCore::openFunc): + (WebCore::XMLTokenizer::doWrite): + (WebCore::XMLTokenizer::initializeParserContext): + (WebCore::XMLTokenizer::doEnd): + (WebCore::xmlDocPtrForString): + * dom/XMLTokenizerScope.cpp: + (WebCore::XMLTokenizerScope::XMLTokenizerScope): + (WebCore::XMLTokenizerScope::~XMLTokenizerScope): + * dom/XMLTokenizerScope.h: + * xml/XSLStyleSheet.cpp: + (WebCore::XSLStyleSheet::parseString): + * xml/XSLTProcessor.cpp: + +2009-04-21 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + Fix for <rdar://problem/5874009> + Add port 3659 (apple-sasl / PasswordServer) to the list of blocked ports. + + * platform/network/ResourceHandle.cpp: + (WebCore::portAllowed): + +2009-04-21 Justin Garcia <justin.garcia@apple.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=25320 + Crash when changing block styles in a root that contains no visible content (but contains nodes with renderers) + + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): If the enclosing block is the + root editable element and it contains no visible content, create a new block but don't try and move + content into it, since there's nothing for moveParagraphs to move. + + +2009-04-21 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + Bug 25162: REGRESSION (r41176-r41242): Drag-selection above/below the line does not select to beginning/end + https://bugs.webkit.org/show_bug.cgi?id=25162 + rdar://problem/6764354 + + * page/Settings.cpp: + (WebCore::Settings::Settings): Initialize editing behavior to Mac-style for PLATFORM(MAC). + Later we may want to change this default to encompass other versions running on Mac. + + * page/Settings.h: Added EditingBehavior, setEditingBehavior, editingBehavior, and + m_editingBehavior. Also moved m_maximumDecodedImageSize out of the middle of all + the bit fields. + + * platform/graphics/IntPoint.h: Added a constructor to turn an IntSize into an IntPoint. + I'm not sure the distinction here is serving us well at the moment. When converting from + global to local coordinates you want to do IntPoint - IntPoint and have the result be + another IntPoint, not an IntSize. And so on. + + * rendering/RenderBlock.cpp: + (WebCore::positionForPointRespectingEditingBoundaries): Changed to use pointers more and + separate coordinates less. + (WebCore::RenderBlock::positionForPointWithInlineChildren): Turned into a member function. + Added separate cases to support the Mac and Windows behavior. + (WebCore::RenderBlock::positionForPoint): Updated for the change above. Also moved the + computation of pointInContents closer to the place it's used. + + * rendering/RenderBlock.h: Updated for the new private member function. + +2009-04-17 Timothy Hatcher <timothy@apple.com> + + Change pending unload and beforeunload counts to store the listeners + in a single data structure that can be quickly iterated for dispatch. + + <rdar://problem/6383352&6383379&6383940> + + Reviewed by Darin Adler. + + * WebCore.base.exp: Change what symbols are exported. + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::stopLoading): Remove count updating code + and move an if inside a block already checking m_frame->document(). + * page/Chrome.cpp: Remove disableSuddenTermination/enableSuddenTermination. + * page/Chrome.h: Ditto. + * page/ChromeClient.h: Ditto. + * page/DOMWindow.cpp: + (WebCore::pendingUnloadEventListenerMap): Create a static map. + (WebCore::pendingBeforeUnloadEventListenerMap): Ditto. + (WebCore::addPendingEventListener): Add the event listener to the map. + (WebCore::removePendingEventListener): Remove the event listener from the map. + (WebCore::removePendingEventListeners): Remove all listeners for the window. + (WebCore::dispatchWindowEventToListeners): Dispatch the event to the given listeners. + (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents): Send the beforeunload event. + (WebCore::DOMWindow::pendingUnloadEventListeners): Return a count of pending listeners. + (WebCore::DOMWindow::dispatchAllPendingUnloadEvents): Send the unload event. + (WebCore::DOMWindow::~DOMWindow): Remove the window from both event listener maps. + (WebCore::DOMWindow::addEventListener): Call addPendingEventListener when needed. + (WebCore::DOMWindow::removeEventListener): Call removePendingEventListener when needed. + (WebCore::DOMWindow::removeAllEventListeners): Call removePendingEventListeners. + (WebCore::DOMWindow::removeInlineEventListenerForType): Call removePendingEventListener when needed. + * page/DOMWindow.h: + (WebCore::DOMWindow::frame): Changed to be const. + * page/EventHandler.cpp: + (WebCore::EventHandler::EventHandler): Remove count tracking code. + * page/EventHandler.h: Ditto. + * page/Page.cpp: + (WebCore::Page::Page): Ditto. + * page/Page.h: Ditto. + +2009-04-21 Justin Garcia <justin.garcia@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=19644 + Text copied with Select All pastes with a indent but shouldn't + <rdar://problem/6102483> + Pasting the content of an HTML message in Mail causes addition nested <div> elements to be added + + To improve selectall/copy/paste fidelity of certain pages, we began wrapping copied content with + a div that held properties and attributes from the fully selected body. To fix the above issues, + only do this if if the body has certain properties or attributes. We'll begin adding to this list as + necessary. For now it's just background colors and images. Tested copy/paste of nytimes, wired, + arstechnica, and several others. + + Massive nesting can still happen, it will just be much less common. + + * editing/markup.cpp: + (WebCore::createMarkup): + +2009-04-21 Peter Kasting <pkasting@google.com> + + Reviewed by David Hyatt. + + https://bugs.webkit.org/show_bug.cgi?id=25250 + Allow platforms to snap the scroll thumb back to the drag origin + during a drag. Implement functions for Safari/Win and Chromium/Win + to do this snapping at distances approximating the native ones. + + * platform/Scrollbar.cpp: + (WebCore::Scrollbar::Scrollbar): + (WebCore::Scrollbar::setValue): + (WebCore::Scrollbar::scroll): + (WebCore::Scrollbar::moveThumb): + (WebCore::Scrollbar::setCurrentPos): + (WebCore::Scrollbar::mouseMoved): + (WebCore::Scrollbar::mouseDown): + * platform/Scrollbar.h: + * platform/ScrollbarTheme.h: + (WebCore::ScrollbarTheme::shouldSnapBackToDragOrigin): + * platform/chromium/ScrollbarThemeChromium.h: + * platform/chromium/ScrollbarThemeChromiumLinux.cpp: + (WebCore::ScrollbarThemeChromium::shouldSnapBackToDragOrigin): + * platform/chromium/ScrollbarThemeChromiumWin.cpp: + (WebCore::ScrollbarThemeChromium::shouldSnapBackToDragOrigin): + * platform/win/ScrollbarThemeWin.cpp: + (WebCore::ScrollbarThemeWin::shouldCenterOnThumb): + (WebCore::ScrollbarThemeWin::shouldSnapBackToDragOrigin): + * platform/win/ScrollbarThemeWin.h: + +2009-04-21 Adam Roben <aroben@apple.com> + + Windows build fix + + * bindings/js/JSLazyEventListener.cpp: + (WebCore::eventParameterName): Remove unreachable code when SVG is + enabled. + +2009-04-21 Kevin Ollivier <kevino@theolliviers.com> + + !ENABLE(SVG) build fix. + + * bindings/js/JSLazyEventListener.cpp: + (WebCore::eventParameterName): + +2009-04-21 Dave Moore <davemoore@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25309 + Better use AtomicStrings when calling from the V8 + bindings into WebCore code. + + * bindings/v8/custom/V8DOMWindowCustom.cpp: + * bindings/v8/custom/V8HTMLCollectionCustom.cpp: + * bindings/v8/custom/V8HTMLFormElementCustom.cpp: + * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp: + +2009-04-21 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 25304: AX: Safari not identifying a secure text field + https://bugs.webkit.org/show_bug.cgi?id=25304 + + Secure text fields need to be able to return AXTitleUIElements. + + Test: accessibility/secure-textfield-title-ui.html + + * page/mac/AccessibilityObjectWrapper.mm: + (-[AccessibilityObjectWrapper accessibilityAttributeNames]): + +2009-04-21 Dan Bernstein <mitz@apple.com> + + - fix the Tiger build + + * page/mac/EventHandlerMac.mm: + (method_setImplementation): + +2009-04-21 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=25271 + + Fix the build with disabled DOM storage or disabled database support. + + * bindings/js/ScriptObjectQuarantine.cpp: + * bindings/js/ScriptObjectQuarantine.h: + +2009-04-21 Holger Hans Peter Freyther <zecke@selfish.org> + + Unreviewed build fix. + + Compile fix for r42633. const qualifier does not work + on a static method. + + * dom/Document.h: + (WebCore::Document::isSVGDocument): + +2009-04-21 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler and John Sullivan. + + - fix <rdar://problem/5914146> Crash at -[NSScrollView scrollWheel:] + + -[NSScrollView scrollWheel:] runs a nested event-tracking run loop + in a mode that allows WebCore timers to fire and NSURLConnection + callbacks to be dispatched, which can release the NSScrollView and + cause it to be deallocated (one example is a DOM timer callback that + removes a subframe from the document). This leads to a crash in + -scrollView:. + + The fix is to replace the implementation of -[NSScrollView scrollWheel:] + with one that optionally retains the receiver for the duration of the + call. + + * page/mac/EventHandlerMac.mm: + (WebCore::nsScrollViewScrollWheelShouldRetainSelf): Added. + (WebCore::setNSScrollViewScrollWheelShouldRetainSelf): Added. Replaces + the implementation of -[NSScrollView scrollWheel:] with the + self-retaining one, and sets a static boolean that tells it whether to + retain the receiver around the call to the original implementation. + (WebCore::selfRetainingNSScrollViewScrollWheel): Added. If + setNSScrollViewScrollWheelShouldRetainSelf(true) was called and this + function is executing on the main thread, it retains the NSScrollView, + invokes the original -[NSScrollView scrollWheel:], then releases the + view. Otherwise it just calls through to the original implementation. + (WebCore::EventHandler::passWheelEventToWidget): Added calls to + setNSScrollViewScrollWheelShouldRetainSelf() around the call to + -scrollWheel:. + +2009-04-21 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Mark Rowe. + + Tiger crash fix: Put VM tags in their own header file, and fixed up the + #ifdefs so they're not used on Tiger. + + * ForwardingHeaders/wtf/VMTags.h: Copied from WebCore/ForwardingHeaders/wtf/HashTraits.h. + +2009-04-21 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Based on a patch by Alp Toker. + + Implement AtkComponent interface. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + (core): + +2009-04-21 Xan Lopez <xlopez@igalia.com> + + Reviewed by Gustavo Noronha. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Only implement AtkAction interface if we actually have an action. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-04-20 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25290 + REGRESSION(r41732): Crash when constructing XMLHttpRequest in a detached document + + Test: fast/dom/xmlhttprequest-constructor-in-detached-document.html + + * bindings/js/JSAudioConstructor.cpp: + (WebCore::JSAudioConstructor::JSAudioConstructor): + * bindings/js/JSAudioConstructor.h: + * bindings/js/JSDOMGlobalObject.h: + (WebCore::getDOMConstructor): + * bindings/js/JSImageConstructor.cpp: + (WebCore::JSImageConstructor::JSImageConstructor): + * bindings/js/JSImageConstructor.h: + * bindings/js/JSMessageChannelConstructor.cpp: + (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor): + * bindings/js/JSMessageChannelConstructor.h: + * bindings/js/JSOptionConstructor.cpp: + (WebCore::JSOptionConstructor::JSOptionConstructor): + * bindings/js/JSOptionConstructor.h: + * bindings/js/JSXMLHttpRequestConstructor.cpp: + (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor): + * bindings/js/JSXMLHttpRequestConstructor.h: + Avoid accessing JSDOMGlobalObject via ScriptExecutionContext, since it may not + work during frame teardown. + +2009-04-20 Geoffrey Garen <ggaren@apple.com> + + Rubber stamped by Darin Adler and Sam Weinig. + + Renamed "*InlineEventListener*" => "*AttributeEventListener*", and + "isInline" => "isAttribute". + + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::createJSAttributeEventListener): + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::JSEventListener): + (WebCore::JSEventListener::~JSEventListener): + (WebCore::JSEventListener::handleEvent): + (WebCore::JSEventListener::virtualisAttribute): + * bindings/js/JSEventListener.h: + (WebCore::JSEventListener::create): + (WebCore::JSEventListener::isAttribute): + * bindings/js/JSLazyEventListener.cpp: + (WebCore::createAttributeEventListener): + * bindings/js/JSLazyEventListener.h: + * bindings/scripts/CodeGeneratorJS.pm: + * dom/Element.cpp: + (WebCore::Element::setWindowAttributeEventListener): + * dom/Element.h: + * dom/EventListener.h: + (WebCore::EventListener::isAttribute): + (WebCore::EventListener::virtualisAttribute): + * dom/Node.cpp: + (WebCore::Node::clearAttributeEventListener): + (WebCore::Node::setAttributeEventListener): + (WebCore::Node::getAttributeEventListener): + (WebCore::Node::onabort): + (WebCore::Node::setOnabort): + (WebCore::Node::onblur): + (WebCore::Node::setOnblur): + (WebCore::Node::onchange): + (WebCore::Node::setOnchange): + (WebCore::Node::onclick): + (WebCore::Node::setOnclick): + (WebCore::Node::oncontextmenu): + (WebCore::Node::setOncontextmenu): + (WebCore::Node::ondblclick): + (WebCore::Node::setOndblclick): + (WebCore::Node::onerror): + (WebCore::Node::setOnerror): + (WebCore::Node::onfocus): + (WebCore::Node::setOnfocus): + (WebCore::Node::oninput): + (WebCore::Node::setOninput): + (WebCore::Node::onkeydown): + (WebCore::Node::setOnkeydown): + (WebCore::Node::onkeypress): + (WebCore::Node::setOnkeypress): + (WebCore::Node::onkeyup): + (WebCore::Node::setOnkeyup): + (WebCore::Node::onload): + (WebCore::Node::setOnload): + (WebCore::Node::onmousedown): + (WebCore::Node::setOnmousedown): + (WebCore::Node::onmousemove): + (WebCore::Node::setOnmousemove): + (WebCore::Node::onmouseout): + (WebCore::Node::setOnmouseout): + (WebCore::Node::onmouseover): + (WebCore::Node::setOnmouseover): + (WebCore::Node::onmouseup): + (WebCore::Node::setOnmouseup): + (WebCore::Node::onmousewheel): + (WebCore::Node::setOnmousewheel): + (WebCore::Node::onbeforecut): + (WebCore::Node::setOnbeforecut): + (WebCore::Node::oncut): + (WebCore::Node::setOncut): + (WebCore::Node::onbeforecopy): + (WebCore::Node::setOnbeforecopy): + (WebCore::Node::oncopy): + (WebCore::Node::setOncopy): + (WebCore::Node::onbeforepaste): + (WebCore::Node::setOnbeforepaste): + (WebCore::Node::onpaste): + (WebCore::Node::setOnpaste): + (WebCore::Node::ondragenter): + (WebCore::Node::setOndragenter): + (WebCore::Node::ondragover): + (WebCore::Node::setOndragover): + (WebCore::Node::ondragleave): + (WebCore::Node::setOndragleave): + (WebCore::Node::ondrop): + (WebCore::Node::setOndrop): + (WebCore::Node::ondragstart): + (WebCore::Node::setOndragstart): + (WebCore::Node::ondrag): + (WebCore::Node::setOndrag): + (WebCore::Node::ondragend): + (WebCore::Node::setOndragend): + (WebCore::Node::onreset): + (WebCore::Node::setOnreset): + (WebCore::Node::onresize): + (WebCore::Node::setOnresize): + (WebCore::Node::onscroll): + (WebCore::Node::setOnscroll): + (WebCore::Node::onsearch): + (WebCore::Node::setOnsearch): + (WebCore::Node::onselect): + (WebCore::Node::setOnselect): + (WebCore::Node::onselectstart): + (WebCore::Node::setOnselectstart): + (WebCore::Node::onsubmit): + (WebCore::Node::setOnsubmit): + (WebCore::Node::onunload): + (WebCore::Node::setOnunload): + * dom/Node.h: + * editing/ReplaceSelectionCommand.cpp: + (WebCore::ReplacementFragment::ReplacementFragment): + * html/HTMLBodyElement.cpp: + (WebCore::HTMLBodyElement::parseMappedAttribute): + * html/HTMLButtonElement.cpp: + (WebCore::HTMLButtonElement::parseMappedAttribute): + * html/HTMLElement.cpp: + (WebCore::HTMLElement::parseMappedAttribute): + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::parseMappedAttribute): + * html/HTMLFrameElementBase.cpp: + (WebCore::HTMLFrameElementBase::parseMappedAttribute): + * html/HTMLFrameSetElement.cpp: + (WebCore::HTMLFrameSetElement::parseMappedAttribute): + * html/HTMLImageElement.cpp: + (WebCore::HTMLImageElement::parseMappedAttribute): + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::parseMappedAttribute): + * html/HTMLObjectElement.cpp: + (WebCore::HTMLObjectElement::parseMappedAttribute): + * html/HTMLScriptElement.cpp: + (WebCore::HTMLScriptElement::parseMappedAttribute): + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::parseMappedAttribute): + * html/HTMLTextAreaElement.cpp: + (WebCore::HTMLTextAreaElement::parseMappedAttribute): + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::mouseButtonListener): + * page/DOMWindow.cpp: + (WebCore::DOMWindow::setAttributeEventListener): + (WebCore::DOMWindow::clearAttributeEventListener): + (WebCore::DOMWindow::getAttributeEventListener): + (WebCore::DOMWindow::onabort): + (WebCore::DOMWindow::setOnabort): + (WebCore::DOMWindow::onblur): + (WebCore::DOMWindow::setOnblur): + (WebCore::DOMWindow::onchange): + (WebCore::DOMWindow::setOnchange): + (WebCore::DOMWindow::onclick): + (WebCore::DOMWindow::setOnclick): + (WebCore::DOMWindow::ondblclick): + (WebCore::DOMWindow::setOndblclick): + (WebCore::DOMWindow::onerror): + (WebCore::DOMWindow::setOnerror): + (WebCore::DOMWindow::onfocus): + (WebCore::DOMWindow::setOnfocus): + (WebCore::DOMWindow::onkeydown): + (WebCore::DOMWindow::setOnkeydown): + (WebCore::DOMWindow::onkeypress): + (WebCore::DOMWindow::setOnkeypress): + (WebCore::DOMWindow::onkeyup): + (WebCore::DOMWindow::setOnkeyup): + (WebCore::DOMWindow::onload): + (WebCore::DOMWindow::setOnload): + (WebCore::DOMWindow::onmousedown): + (WebCore::DOMWindow::setOnmousedown): + (WebCore::DOMWindow::onmousemove): + (WebCore::DOMWindow::setOnmousemove): + (WebCore::DOMWindow::onmouseout): + (WebCore::DOMWindow::setOnmouseout): + (WebCore::DOMWindow::onmouseover): + (WebCore::DOMWindow::setOnmouseover): + (WebCore::DOMWindow::onmouseup): + (WebCore::DOMWindow::setOnmouseup): + (WebCore::DOMWindow::onmousewheel): + (WebCore::DOMWindow::setOnmousewheel): + (WebCore::DOMWindow::onreset): + (WebCore::DOMWindow::setOnreset): + (WebCore::DOMWindow::onresize): + (WebCore::DOMWindow::setOnresize): + (WebCore::DOMWindow::onscroll): + (WebCore::DOMWindow::setOnscroll): + (WebCore::DOMWindow::onsearch): + (WebCore::DOMWindow::setOnsearch): + (WebCore::DOMWindow::onselect): + (WebCore::DOMWindow::setOnselect): + (WebCore::DOMWindow::onsubmit): + (WebCore::DOMWindow::setOnsubmit): + (WebCore::DOMWindow::onunload): + (WebCore::DOMWindow::setOnunload): + (WebCore::DOMWindow::onbeforeunload): + (WebCore::DOMWindow::setOnbeforeunload): + (WebCore::DOMWindow::onwebkitanimationstart): + (WebCore::DOMWindow::setOnwebkitanimationstart): + (WebCore::DOMWindow::onwebkitanimationiteration): + (WebCore::DOMWindow::setOnwebkitanimationiteration): + (WebCore::DOMWindow::onwebkitanimationend): + (WebCore::DOMWindow::setOnwebkitanimationend): + (WebCore::DOMWindow::onwebkittransitionend): + (WebCore::DOMWindow::setOnwebkittransitionend): + * page/DOMWindow.h: + * svg/SVGElement.cpp: + (WebCore::SVGElement::parseMappedAttribute): + * svg/SVGElementInstance.cpp: + (WebCore::SVGElementInstance::onabort): + (WebCore::SVGElementInstance::setOnabort): + (WebCore::SVGElementInstance::onblur): + (WebCore::SVGElementInstance::setOnblur): + (WebCore::SVGElementInstance::onchange): + (WebCore::SVGElementInstance::setOnchange): + (WebCore::SVGElementInstance::onclick): + (WebCore::SVGElementInstance::setOnclick): + (WebCore::SVGElementInstance::oncontextmenu): + (WebCore::SVGElementInstance::setOncontextmenu): + (WebCore::SVGElementInstance::ondblclick): + (WebCore::SVGElementInstance::setOndblclick): + (WebCore::SVGElementInstance::onerror): + (WebCore::SVGElementInstance::setOnerror): + (WebCore::SVGElementInstance::onfocus): + (WebCore::SVGElementInstance::setOnfocus): + (WebCore::SVGElementInstance::oninput): + (WebCore::SVGElementInstance::setOninput): + (WebCore::SVGElementInstance::onkeydown): + (WebCore::SVGElementInstance::setOnkeydown): + (WebCore::SVGElementInstance::onkeypress): + (WebCore::SVGElementInstance::setOnkeypress): + (WebCore::SVGElementInstance::onkeyup): + (WebCore::SVGElementInstance::setOnkeyup): + (WebCore::SVGElementInstance::onload): + (WebCore::SVGElementInstance::setOnload): + (WebCore::SVGElementInstance::onmousedown): + (WebCore::SVGElementInstance::setOnmousedown): + (WebCore::SVGElementInstance::onmousemove): + (WebCore::SVGElementInstance::setOnmousemove): + (WebCore::SVGElementInstance::onmouseout): + (WebCore::SVGElementInstance::setOnmouseout): + (WebCore::SVGElementInstance::onmouseover): + (WebCore::SVGElementInstance::setOnmouseover): + (WebCore::SVGElementInstance::onmouseup): + (WebCore::SVGElementInstance::setOnmouseup): + (WebCore::SVGElementInstance::onmousewheel): + (WebCore::SVGElementInstance::setOnmousewheel): + (WebCore::SVGElementInstance::onbeforecut): + (WebCore::SVGElementInstance::setOnbeforecut): + (WebCore::SVGElementInstance::oncut): + (WebCore::SVGElementInstance::setOncut): + (WebCore::SVGElementInstance::onbeforecopy): + (WebCore::SVGElementInstance::setOnbeforecopy): + (WebCore::SVGElementInstance::oncopy): + (WebCore::SVGElementInstance::setOncopy): + (WebCore::SVGElementInstance::onbeforepaste): + (WebCore::SVGElementInstance::setOnbeforepaste): + (WebCore::SVGElementInstance::onpaste): + (WebCore::SVGElementInstance::setOnpaste): + (WebCore::SVGElementInstance::ondragenter): + (WebCore::SVGElementInstance::setOndragenter): + (WebCore::SVGElementInstance::ondragover): + (WebCore::SVGElementInstance::setOndragover): + (WebCore::SVGElementInstance::ondragleave): + (WebCore::SVGElementInstance::setOndragleave): + (WebCore::SVGElementInstance::ondrop): + (WebCore::SVGElementInstance::setOndrop): + (WebCore::SVGElementInstance::ondragstart): + (WebCore::SVGElementInstance::setOndragstart): + (WebCore::SVGElementInstance::ondrag): + (WebCore::SVGElementInstance::setOndrag): + (WebCore::SVGElementInstance::ondragend): + (WebCore::SVGElementInstance::setOndragend): + (WebCore::SVGElementInstance::onreset): + (WebCore::SVGElementInstance::setOnreset): + (WebCore::SVGElementInstance::onresize): + (WebCore::SVGElementInstance::setOnresize): + (WebCore::SVGElementInstance::onscroll): + (WebCore::SVGElementInstance::setOnscroll): + (WebCore::SVGElementInstance::onsearch): + (WebCore::SVGElementInstance::setOnsearch): + (WebCore::SVGElementInstance::onselect): + (WebCore::SVGElementInstance::setOnselect): + (WebCore::SVGElementInstance::onselectstart): + (WebCore::SVGElementInstance::setOnselectstart): + (WebCore::SVGElementInstance::onsubmit): + (WebCore::SVGElementInstance::setOnsubmit): + (WebCore::SVGElementInstance::onunload): + (WebCore::SVGElementInstance::setOnunload): + * svg/SVGSVGElement.cpp: + (WebCore::SVGSVGElement::parseMappedAttribute): + +2009-04-20 Geoffrey Garen <ggaren@apple.com> + + Approved by Mark Rowe, Cameron Zwarich, Oliver Hunt, and Ojan Vafai. + + Used svn merge to roll out revisions 42678, 42690, 42694, 42697 because + they broke the Tiger and Windows buildbots. + + * css/html4.css: + * css/themeWin.css: + * platform/graphics/SimpleFontData.cpp: + * platform/graphics/SimpleFontData.h: + * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: + * platform/graphics/chromium/SimpleFontDataLinux.cpp: + * platform/graphics/gtk/SimpleFontDataGtk.cpp: + * platform/graphics/gtk/SimpleFontDataPango.cpp: + * platform/graphics/mac/SimpleFontDataMac.mm: + * platform/graphics/qt/SimpleFontDataQt.cpp: + * platform/graphics/win/SimpleFontDataCGWin.cpp: + * platform/graphics/win/SimpleFontDataCairoWin.cpp: + * platform/graphics/win/SimpleFontDataWin.cpp: + * platform/graphics/wx/SimpleFontDataWx.cpp: + * rendering/RenderTextControl.cpp: + * rendering/RenderTextControlMultiLine.cpp: + * rendering/RenderTextControlSingleLine.cpp: + +2009-04-20 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Adam Roben. + + One last loose end, discovered using COLLECT_ON_EVERY_ALLOCATION, for + https://bugs.webkit.org/show_bug.cgi?id=21260 + Unbounded memory growth when churning elements with anonymous event handler functions + + * bindings/js/JSSVGElementInstanceCustom.cpp: + (WebCore::JSSVGElementInstance::mark): Don't ASSERT that an ElementInstance's + correspondingElement has a JS wrapper. If a GC falls exactly between the + allocation of the ElementInstance wrapper and the correspondingElement + wrapper, the correspondingElement won't have a wrapper at the time we + mark the ElementInstance's wrapper. + +2009-04-20 Brady Eidson <beidson@apple.com> + + Rubberstamped by Mark Rowe + + Clean builds are broken on case-sensitive filesystems. Let's fix, shall we? + + * platform/graphics/SimpleFontData.cpp: Remove "String.h" include. Ojan probably intended to include + "PlatformString.h" which was unnecessary because it is pulled in through other headers. This wasn't a + build failure on case-insensitive file systems because those systems would find the system <string.h>, averting + the warning. + +2009-04-20 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Darin Adler. + + Last patch for https://bugs.webkit.org/show_bug.cgi?id=21260 + Unbounded memory growth when churning elements with anonymous event handler functions + + Converted "lazy" event listeners to be unprotected, just like all the others. + + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::JSEventListener): + (WebCore::JSEventListener::~JSEventListener): + (WebCore::JSEventListener::jsFunction): + (WebCore::JSEventListener::markJSFunction): + (WebCore::JSEventListener::handleEvent): + (WebCore::JSEventListener::virtualIsInline): + * bindings/js/JSEventListener.h: + (WebCore::JSEventListener::isInline): Merged JSAbstractEventListener + into JSEventListener. Now that the only difference between JSEventListener + and JSLazyEventListener is that JSLazyEventListener compiles lazily, + there's no need for an abstract base class. + + * bindings/js/JSLazyEventListener.cpp: Converted JSLazyEventListener to + inherit from JSEventListener and match its un-GC-protected behavior. + (WebCore::JSLazyEventListener::JSLazyEventListener): ditto + (WebCore::JSLazyEventListener::parseCode): ditto + (WebCore::createInlineEventListener): When creating a lazy event listener, + ensure that the related node has a JS wrapper to mark the listener. Since + the parser makes these listeners, it's possible that no JS reference has + been made to the node yet. + * bindings/js/JSLazyEventListener.h: ditto + + * dom/EventListener.h: + (WebCore::EventListener::clearJSFunction): Removed an usused function. + +2009-04-20 Justin Garcia <justin.garcia@apple.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=25299 + Don't bound caret to root line box if it is still inside its containing block + + Can't yet write tests for behavior of non-standard caret widths. + + * rendering/RenderText.cpp: + (WebCore::RenderText::localCaretRect): + +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. + +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. + +2009-04-10 Ojan Vafai <ojan@chromium.org> + + Reviewed by Dan Bernstein. + + 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): + +2009-04-17 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + 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): + +2009-04-20 Simon Fraser <simon.fraser@apple.com> + + 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): + +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: + +2009-04-20 Eric Roman <eroman@chromium.org> + + 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): + +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): + +2009-04-19 Dan Bernstein <mitz@apple.com> + + - maybe fix release builds + + * dom/ScriptElement.cpp: + (WebCore::ScriptElementData::notifyFinished): + +2009-04-19 Dan Bernstein <mitz@apple.com> + + - not fix release builds + + * dom/Document.cpp: + (WebCore::Document::executeScriptSoonTimerFired): + +2009-04-19 Dan Bernstein <mitz@apple.com> + + 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: + +2009-04-19 Oliver Hunt <oliver@apple.com> + + Reviewed by Antti Koivisto and Darin Adler. + + <rdar://problem/6127705> Excessive memory consumption on image load failure + + 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. + + * loader/CachedImage.cpp: + (WebCore::CachedImage::error): + +2009-04-19 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + Add hooks 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. + +2009-04-19 David Kilzer <ddkilzer@apple.com> + + Make FEATURE_DEFINES completely dynamic + + 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. + + * Configurations/FeatureDefines.xcconfig: Extract a variable + from FEATURE_DEFINES for each feature setting. + +2009-04-18 Geoffrey Garen <ggaren@apple.com> + + 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: + +2009-04-18 Dan Bernstein <mitz@apple.com> + + - try to fix the Windows build + + * editing/VisiblePosition.cpp: + (WebCore::VisiblePosition::characterAfter): + +2009-04-18 Dan Bernstein <mitz@apple.com> + + - revert the previous change, which was to a file that the Windows + port does not even use + + * icu/unicode/utf16.h: + +2009-04-18 Dan Bernstein <mitz@apple.com> + + Reviewed by Geoffrey Garen. + + - try to fix the Windows build + + * icu/unicode/utf16.h: + +2009-04-18 Simon Fraser <simon.fraser@apple.com> + + 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). + +2009-04-18 Geoffrey Garen <ggaren@apple.com> + + 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. + +2009-04-18 Jian Li <jianli@chromium.org> + + 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. + +2009-04-18 Jian Li <jianli@chromium.org> + + 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): + +2009-04-18 Drew Wilson <amw@apple.com> + + <rdar://problem/6781407> VisiblePosition.characterAfter should return UChar32 + + Reviewed by Dan Bernstein. + + 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: + +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 + +2009-04-18 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Mark Rowe. + + <rdar://problem/6781295> video.buffered and video.seekable are not + the same. video.buffered should return only what is buffered and + not what is seekable + + * WebCore.base.exp: Added wkQTMovieMaxTimeSeekable. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::maxTimeSeekable): Return wkQTMovieMaxTimeSeekable. + + * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeSeekable. + * platform/mac/WebCoreSystemInterface.mm: Ditto. + +2009-04-18 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Adele Peterson. + + <rdar://problem/6747241> work around QTKit no longer reaching + QTMovieLoadStateComplete + + * WebCore.base.exp: Export wkQTMovieMaxTimeLoadedChangeNotification. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::createQTMovie): observe QTMovieMaxTimeLoadedChangeNotification. + (WebCore::MediaPlayerPrivate::updateStates): compare duuration() with maxTimeLoaded() instead of + using QTMovieLoadStateComplete to determine if a movie are fully loaded. + + * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeLoadedChangeNotification. + * platform/mac/WebCoreSystemInterface.mm: Ditto. + +2009-04-18 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> + + Reviewed by George Staikos. + + Make WML work again, most regressions test were failing. + + * dom/Document.cpp: Be sure to create WML elements in WML namespace. Otherwhise hasTagName() comparisions fail. + (WebCore::Document::createElement): + * wml/WMLCardElement.cpp: Add ASSERT(hasTagName(cardTag)) to catch errors like this in future. + (WebCore::WMLCardElement::WMLCardElement): + * wml/WMLTagNames.in: Wrap comment in #if 0/#endif blocks, to silence the generation script. + +2009-04-17 Justin Garcia <justin.garcia@apple.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=25277 + If there is no line wrapping, a caret can leave its containing block but it shouldn't leave its root line box + + Also added code to handle a caret wider than one pixel. + + Added fast/inline/25277.html and fast/inline/25277-2.html + + * rendering/RenderText.cpp: + (WebCore::RenderText::localCaretRect): Distribute a caret's width to either side of the offset, + so that a caret between two characters doesn't hang over one character more than the other. + If there is no wrapping, the caret can leave its containing block, but not its root line box. + +2009-04-17 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Oliver Hunt. + + More fix for https://bugs.webkit.org/show_bug.cgi?id=21260 + Unbounded memory growth when churning elements with anonymous event handler functions + + Some refactoring of "inline" event listeners. + + Renames: + dispatchEventForType => dispatchEvent + setWindowInlineEventListenerForTypeAndAttribute => setWindowInlineEventListener + removeInlineEventListenerForType => clearInlineEventListener + setInlineEventListenerForType => setInlineEventListener + inlineEventListenerForType => getInlineEventListener + + * bindings/js/JSLazyEventListener.cpp: + (WebCore::eventParameterName): + (WebCore::JSLazyEventListener::JSLazyEventListener): + (WebCore::createInlineEventListener): + * bindings/js/JSLazyEventListener.h: Added two helper functions for + creating "inline" event listeners. These replace Document::createEventListener, + and abstract the creation of JS event listeners for DOM attributes out + of the DOM. Removed legacy JSProtectedEventListener constructor code for + adding the event listener's function to a map, since lazy event listeners + don't have functions at construction time. + + * dom/Document.cpp: + (WebCore::Document::setFocusedNode): + * dom/Document.h: + (WebCore::Document::isSVGDocument): + * dom/Element.cpp: + (WebCore::Element::setWindowInlineEventListener): + * dom/Element.h: Updated for renames. Nixed Document::createEventListener, + mentioned above. Moved setWindowInlineEventListenerForTypeAndAttribute + to Element, for simplicity. + + * dom/InputElement.cpp: + (WebCore::InputElement::setValueFromRenderer): + * dom/Node.cpp: + (WebCore::Node::dispatchFocusEvent): + (WebCore::Node::dispatchBlurEvent): + (WebCore::Node::dispatchEvent): + (WebCore::Node::clearInlineEventListener): + (WebCore::Node::setInlineEventListener): + (WebCore::Node::getInlineEventListener): + (WebCore::Node::onabort): + (WebCore::Node::setOnabort): + (WebCore::Node::etc.): + * dom/Node.h: Updated for renames. + + * editing/ReplaceSelectionCommand.cpp: + (WebCore::ReplacementFragment::ReplacementFragment): Updated for renames. + + Updated these files for renames, and to use the new createInlineEventListener + helper function: + + * html/HTMLBodyElement.cpp: + (WebCore::HTMLBodyElement::parseMappedAttribute): + * html/HTMLButtonElement.cpp: + (WebCore::HTMLButtonElement::parseMappedAttribute): + * html/HTMLElement.cpp: + (WebCore::HTMLElement::parseMappedAttribute): + * html/HTMLFormControlElement.cpp: + (WebCore::HTMLFormControlElement::onChange): + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::prepareSubmit): + (WebCore::HTMLFormElement::reset): + (WebCore::HTMLFormElement::parseMappedAttribute): + * html/HTMLFrameElementBase.cpp: + (WebCore::HTMLFrameElementBase::parseMappedAttribute): + * html/HTMLFrameSetElement.cpp: + (WebCore::HTMLFrameSetElement::parseMappedAttribute): + * html/HTMLImageElement.cpp: + (WebCore::HTMLImageElement::parseMappedAttribute): + * html/HTMLImageLoader.cpp: + (WebCore::HTMLImageLoader::dispatchLoadEvent): + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::parseMappedAttribute): + (WebCore::HTMLInputElement::onSearch): + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::loadInternal): + * html/HTMLObjectElement.cpp: + (WebCore::HTMLObjectElement::parseMappedAttribute): + * html/HTMLScriptElement.cpp: + (WebCore::HTMLScriptElement::parseMappedAttribute): + (WebCore::HTMLScriptElement::dispatchLoadEvent): + (WebCore::HTMLScriptElement::dispatchErrorEvent): + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::parseMappedAttribute): + * html/HTMLTextAreaElement.cpp: + (WebCore::HTMLTextAreaElement::parseMappedAttribute): + * html/HTMLTokenizer.cpp: + (WebCore::HTMLTokenizer::notifyFinished): + * page/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::mouseButtonListener): + * page/DOMWindow.cpp: + * page/DOMWindow.h: + (WebCore::DOMWindow::eventListeners): + * page/EventHandler.cpp: + (WebCore::EventHandler::canMouseDownStartSelect): + (WebCore::EventHandler::canMouseDragExtendSelect): + (WebCore::EventHandler::sendScrollEvent): + * page/Page.cpp: + (WebCore::networkStateChanged): + * rendering/RenderListBox.cpp: + (WebCore::RenderListBox::valueChanged): + * rendering/RenderTextControl.cpp: + (WebCore::RenderTextControl::selectionChanged): + * svg/SVGElement.cpp: + (WebCore::SVGElement::parseMappedAttribute): + * svg/SVGElementInstance.cpp: + * svg/SVGImageLoader.cpp: + (WebCore::SVGImageLoader::dispatchLoadEvent): + * svg/SVGSVGElement.cpp: + (WebCore::SVGSVGElement::parseMappedAttribute): + * svg/SVGScriptElement.cpp: + (WebCore::SVGScriptElement::dispatchErrorEvent): + * wml/WMLInputElement.cpp: + (WebCore::WMLInputElement::defaultEventHandler): + +2009-04-17 David Kilzer <ddkilzer@apple.com> + + Simplify FEATURE_DEFINES definition + + Reviewed by Darin Adler. + + This moves FEATURE_DEFINES and its related ENABLE_FEATURE_NAME + variables to their own FeatureDefines.xcconfig file. It also + extracts a new ENABLE_GEOLOCATION variable so that + FEATURE_DEFINES only needs to be defined once. + + * Configurations/FeatureDefines.xcconfig: Added. + * Configurations/WebCore.xcconfig: Removed definition of + ENABLE_SVG_DOM_OBJC_BINDINGS and FEATURE_DEFINES. Added include + of FeatureDefines.xcconfig. + * WebCore.xcodeproj/project.pbxproj: Added + FeatureDefines.xcconfig file. + * bindings/scripts/CodeGeneratorObjC.pm: When creating a list of + command-line macro definitions, split on one-or-more spaces + instead of a single space since the FEATURE_DEFINES macro may + now contain more than one space between macros if some macros + aren't defined. + +2009-04-17 Brady Eidson <beidson@apple.com> + + Reviewed by Mark Rowe + + <rdar://problem/6786999> Tiger WebKit shouldn't try to POST on back/forward without nagging. + + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::willLoadFromCache): + +2009-04-17 Darin Adler <darin@apple.com> + + Reviewed by Timothy Hatcher. + + Added sudden termination functions that can be called without involving + the page or client. + + * GNUmakefile.am: Added SuddenTermination.h. + * WebCore.vcproj/WebCore.vcproj: Ditto. + * WebCore.xcodeproj/project.pbxproj: Ditto. Also added SuddenTermination.mm. + + * platform/SuddenTermination.h: Added. + * platform/mac/SuddenTermination.mm: Added. + +2009-04-17 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Move more code into RenderSVGModelObject + + needsLayer() already returns false from RenderSVGModelObject + lineHeight and baselinePosition are from days of RenderPath having RenderBox parents. + + I also added comments to explain how focus rings work (now that I understand) + I got rid of two more uses of m_absoluteBounds (nearly dead!) + + * rendering/RenderPath.cpp: + * rendering/RenderPath.h: + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::paint): + (WebCore::RenderSVGContainer::addFocusRingRects): + * rendering/RenderSVGContainer.h: + * rendering/RenderSVGModelObject.cpp: + (WebCore::RenderSVGModelObject::absoluteRects): + (WebCore::RenderSVGModelObject::absoluteQuads): + * rendering/RenderSVGModelObject.h: + +2009-04-16 Peter Kasting <pkasting@google.com> + + Reviewed by Adele Peterson. + + https://bugs.webkit.org/show_bug.cgi?id=25238 + Invalidate the hovered scrollbar part when resetting the pressed part, + since once there is no pressed part we can draw a hovered state. + + * platform/Scrollbar.cpp: + (WebCore::Scrollbar::setHoveredPart): + (WebCore::Scrollbar::setPressedPart): + +2009-04-16 Darin Fisher <darin@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25223 + REGRESSION: Back button after form submission to the same URL fails to navigate. + + Test: http/tests/navigation/post-goback-same-url.html + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::loadItem): Check if the page we are leaving has + FormData. + +2009-04-17 Nikolas Zimmermann <nikolas.zimmerman@torchmobile.com> + + Not reviewed. Fix WML enabled builds. + + * rendering/RenderTableRow.cpp: Remove dead code, which is no longer necessary. + (WebCore::RenderTableRow::addChild): + * wml/WMLInputElement.cpp: Apply same fix HTMLInputElement received. Covert RenderObject's to RenderTextControl where needed. + (WebCore::WMLInputElement::defaultEventHandler): + +2009-04-17 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=24849 + + Add support for the media element 'played' attribute. + This involves support of "normalized TimeRanges" as described by + the spec. + + Test: media/video-played.html + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::HTMLMediaElement): Renamed + m_currentTimeDuringSeek->m_lastSeekTime. Added m_playing and m_playedTimeRanges. + (WebCore::HTMLMediaElement::loadInternal): Reset m_playing, m_lastSeekTime, and + m_playedTimeRanges + (WebCore::HTMLMediaElement::seek): Set current time to m_playedTimeRanges + (WebCore::HTMLMediaElement::currentTime): m_currentTimeDuringSeek -> m_lastSeekTime + (WebCore::HTMLMediaElement::played): Returns m_playedTimeRanges. + (WebCore::HTMLMediaElement::updatePlayState): Add the new played time ranges when pausing. + Set the m_playing flag. + * html/HTMLMediaElement.h: + + * html/TimeRanges.cpp: + (TimeRanges::add): Merge range(s) if overlap. + * html/TimeRanges.h: Add various helpers (below). + (WebCore::TimeRanges::Range::isPointInRange): Added. + (WebCore::TimeRanges::Range::isOverlappingRange): Ditto. + (WebCore::TimeRanges::Range::unionWithOverlappingRange): Ditto. + (WebCore::TimeRanges::Range::isBeforeRange): Ditto. + +2009-04-17 Darin Adler <darin@apple.com> + + Reviewed by Antti Koivisto. + + Bug 25210: don't use ObjC methods to wrap/unwrap DOM objects with ObjC + https://bugs.webkit.org/show_bug.cgi?id=25210 + + * WebCore.base.exp: Export the core and kit function overloads that are used + in WebKit. Also resorted this file. + + * WebCore.xcodeproj/project.pbxproj: Re-added DOMHTMLCanvasElement.h to fix + a strange problem with the file type. + + * bindings/objc/DOM.mm: Removed the many extraneous includes. Added new includes + so we can use and implement the new core and kit functions. Import DOMInternal.h + first so it can do its public/private magic. + (-[DOMNode _rootObject]): Changed to use early-return style. + (kitClass): Added. Tells the wrapper generator what kind of node class to create + to wrap DOM nodes. This has the code that used to be in the _wrapNode method. + (kit): Added. Takes an EventTarget and makes the appropriate type of wrapper, + dpending on whether it's a Node or an SVGElementInstance. This replace methods + that used to be on both of those classes. + (-[DOMNode boundingBox]): Changed to use early return, and the core function. + (-[DOMNode lineBoxRects]): Ditto. + (-[DOMNode renderedImage]): Ditto. + (-[DOMRange boundingBox]): Ditto. + (-[DOMRange lineBoxRects]): Ditto. + (-[DOMElement image]): Ditto. + (-[DOMElement _font]): Ditto. + (-[DOMElement _imageTIFFRepresentation]): Ditto. + (-[DOMElement _getURLAttribute:]): Ditto. + (-[DOMElement isFocused]): Ditto. + (kit): Hand-wrote the version of this for NodeFilter, since it's a protocol, + not a class in the binding. + (core): Ditto. + (-[DOMNodeFilter acceptNode:]): Use core. + + * bindings/objc/DOMAbstractView.mm: + (-[DOMAbstractView document]): Use kit. + (-[DOMAbstractView _disconnectFrame]): Call removeDOMWrapper, which is no longer + in the WebCore namespace, since it's headed for WebKit in the future. + (core): Hand-wrote the version of this for DOMAbstractView.mm, since we store + a pointer to the Frame, not the DMWindow. + (kit): Ditto. + + * bindings/objc/DOMCSS.mm: + (kitClass): Added. Tells the wrapper generator what kind of node class to create + to wrap CSS objects. This has the code that used to be in the _wrapStyleSheet, + _wrapCSSRule, and _wrapCSSValue methods. + + * bindings/objc/DOMEvents.mm: + (kitClass): Added. Tells the wrapper generator what kind of node class to create + to wrap event objects. This has the code that used to be in the _wrapEvent methods. + + * bindings/objc/DOMHTML.mm: + (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]): Use kit and core. + (-[DOMHTMLDocument createDocumentFragmentWithText:]): Ditto. + (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]): Ditto. + (-[DOMHTMLInputElement _rectOnScreen]): Ditto. + (-[DOMHTMLInputElement _replaceCharactersInRange:withString:selectingFromIndex:]): Ditto. + (-[DOMHTMLInputElement _selectedRange]): Ditto. + (-[DOMHTMLInputElement _setAutofilled:]): Ditto. + (-[DOMHTMLSelectElement _activateItemAtIndex:]): Ditto. + (-[DOMHTMLInputElement _isEdited]): Ditto. + (-[DOMHTMLTextAreaElement _isEdited]): Ditto. + (kitClass): Added. Gives HTMLOptionCollection objects an appropriate wrapper. + + * bindings/objc/DOMInternal.h: Removed most of the imports. There's no reason + to have this header include all the other internal DOM headers. Removed unneeded + interfaces, including the redeclaration of _init in DOMObject, since it's already + inherited from WebScriptObject. Moved all the functions out of the WebCore + namespace since this code is destined for WebKit, which doesn't use a namespace. + Added kit and core functions for the two classes that live in this header. + + * bindings/objc/DOMInternal.mm: + (-[WebScriptObject _initializeScriptDOMNodeImp]): Use core. + + * bindings/objc/DOMObject.h: Made the _internal field be private instead of + protected. This also allows the "#define private public" trick to be used to + make the field accessible inside the bindings code. + + * bindings/objc/DOMObject.mm: + (-[DOMObject dealloc]): Updated for namespace change. + (-[DOMObject sheet]): Use core and kit functions. + + * bindings/objc/DOMRGBColor.mm: + (-[DOMRGBColor dealloc]): Updated for namespace change. + (-[DOMRGBColor red]): Use kit function. + (-[DOMRGBColor green]): Ditto. + (-[DOMRGBColor blue]): Ditto. + (-[DOMRGBColor alpha]): Ditto. + (core): Added. Replaces the _RGBColor method. + (kit): Added. Replaces the _wrapRGBColor method. + + * bindings/objc/DOMSVGPathSegInternal.mm: + (kitClass): Added. Replaces the _wrapSVGPathSeg method. + + * bindings/objc/DOMUtility.mm: + (JSC::createDOMWrapper): Use kit function. + (createDOMWrapper): Ditto. + + * bindings/objc/DOMXPath.mm: + (core): Added. Replaces the _xpathNSResolver method. + (kit): Added. Replaces the _wrapXPathNSResolver method. + + * bindings/objc/ObjCEventListener.mm: + (WebCore::ObjCEventListener::find): Changed to use early return. + (WebCore::ObjCEventListener::handleEvent): Use kit function. + + * bindings/objc/ObjCNodeFilterCondition.mm: + (WebCore::ObjCNodeFilterCondition::acceptNode): Use kit function. + + * bindings/objc/WebScriptObject.mm: + (+[WebScriptObject scriptObjectForJSObject:originRootObject:rootObject:]): + Updated for namespace change. + + * bindings/scripts/CodeGeneratorObjC.pm: Changed spelling of "license" + to U.S. spelling. Removed GetObjCTypeMaker, GetObjCTypeGetterName, + GetInternalTypeGetterSignature, and GetInternalTypeMakerSignature. + Changed includes to conform to new scheme. Generate core and kit + functions instead of methods and calls to those functions. Added a new + attribute, Polymorphic, to indicate classes that have derived subclasses. + Removed the old ObjCCustomInternalImpl attribute. + + * css/CSSRule.idl: Use Polymorphic attribute, so core and kit functions + will be generated, with kit calling kitClass. This requires less hand- + written code than the old ObjCCustomInternalImpl. + * css/CSSValue.idl: Ditto. + * css/StyleSheet.idl: Ditto. + * dom/Event.idl: Ditto. + * dom/Node.idl: Ditto. + * html/HTMLCollection.idl: Ditto. + * svg/SVGPathSeg.idl: Ditto. + + * editing/TextAffinity.h: Moved kit and core functions out of the + WebCore namespace since this code is destined for WebKit, which + doesn't use a namespace + + * platform/mac/ClipboardMac.mm: + (WebCore::ClipboardMac::declareAndWriteDragImage): Use kit function. + + * platform/mac/DragDataMac.mm: + (WebCore::DragData::asFragment): Use core function. + + * platform/mac/PasteboardMac.mm: + (WebCore::Pasteboard::writeSelection): Use kit function. + + * svg/SVGElementInstance.idl: Removed now-unneeded ObjCCustomInternalImpl + function. This can be generated in a standard way now. + * svg/SVGViewSpec.idl: Ditto. + +2009-04-17 Brady Eidson <beidson@apple.com> + + Reviewed by Maciej Stachowiak + + <rdar://problem/5753299> "Private Browsing" doesn't affect HTML 5 Database storage + + If the Page is in private browsing mode when a statement is queued up, flag that + statement as read-only. + + It would be better to set the read-only flag on the database thread when it actually + executes, but that would either require making Settings access a lock-protected operation + or involve a synchronous callback to the WebCore thread, neither of which seem worth it. + If it becomes an issue in practice, we can revisit this later. + + Test: storage/private-browsing-readonly.html + + * storage/Database.cpp: + (WebCore::Database::setAuthorizerReadOnly): + * storage/Database.h: + + * storage/DatabaseAuthorizer.cpp: For all action types that would alter the database, + deny when in read-only mode. + (WebCore::DatabaseAuthorizer::reset): + (WebCore::DatabaseAuthorizer::createTable): + (WebCore::DatabaseAuthorizer::dropTable): + (WebCore::DatabaseAuthorizer::allowAlterTable): + (WebCore::DatabaseAuthorizer::createIndex): + (WebCore::DatabaseAuthorizer::dropIndex): + (WebCore::DatabaseAuthorizer::createTrigger): + (WebCore::DatabaseAuthorizer::dropTrigger): + (WebCore::DatabaseAuthorizer::createVTable): + (WebCore::DatabaseAuthorizer::dropVTable): + (WebCore::DatabaseAuthorizer::allowDelete): + (WebCore::DatabaseAuthorizer::allowInsert): + (WebCore::DatabaseAuthorizer::allowUpdate): + (WebCore::DatabaseAuthorizer::setReadOnly): + * storage/DatabaseAuthorizer.h: + + * storage/SQLStatement.cpp: + (WebCore::SQLStatement::create): Add a m_readOnly flag. + (WebCore::SQLStatement::SQLStatement): Ditto. + (WebCore::SQLStatement::execute): If m_readOnly is set, tell the authorizer to change + to read-only mode. + * storage/SQLStatement.h: + + * storage/SQLTransaction.cpp: + (WebCore::SQLTransaction::executeSQL): Flag the statement as read-only if the Page is + currently in private browsing mode. + +2009-04-17 Eric Seidel <eric@webkit.org> + + Reviewed by Antti Koivisto. + + Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint + https://bugs.webkit.org/show_bug.cgi?id=25268 + + Lots of minus lines. Now we're sharing more sane code + (which will respect -webkit-transforms! and scroll offsets correctly) + + Which means this fixes: + https://bugs.webkit.org/show_bug.cgi?id=20769 and + https://bugs.webkit.org/show_bug.cgi?id=21968 too! + + We're no longer expanding the paint rect "for anti-aliasing", since + I can't find a case where that's required. If it is, repaintRectInLocalCoordinates() + should be fixed to handle those cases instead of here. + + This fixes svg/custom/scroll-hit-test (now that we respect scroll offsets when repainting) + as well as improves our focus ring drawing seen in svg/custom/focus-ring + focus rings are now closer to transformed content by a couple pixels (they were needlessly outset by the antialiasing hack) + Also, it fixes the dumped rects for markers, causing a progression in svg/custom/marker-overflow-clip + + * rendering/RenderPath.cpp: + (WebCore::RenderPath::repaintRectInLocalCoordinates): + (WebCore::RenderPath::setPath): + * rendering/RenderPath.h: + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): + * rendering/RenderSVGContainer.h: + * rendering/RenderSVGModelObject.cpp: + (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint): + (WebCore::RenderSVGModelObject::computeRectForRepaint): + * rendering/RenderSVGModelObject.h: + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::computeRectForRepaint): + * rendering/RenderSVGRoot.h: + +2009-04-17 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + Bug 25259: AX: VoiceOver cmd-cntl-space does not follow the google.com->more link + https://bugs.webkit.org/show_bug.cgi?id=25259 + + When a node becomes visible or hidden, accessibility needs to be told to update. + + Test: accessibility/visible-elements.html + + * rendering/RenderObject.cpp: + (WebCore::RenderObject::styleWillChange): + +2009-04-17 Kevin Ollivier <kevino@theolliviers.com> + + wx build fix, added missing header. + + * platform/graphics/wx/TransformationMatrixWx.cpp: + +2009-04-17 Simon Hausmann <simon.hausmann@nokia.com> + + Unreviewed build fix. + + Fix the build with enabled SVG filters + + * rendering/RenderSVGModelObject.cpp: Include SVGResourceFilter.h. + +2009-04-16 Eric Roman <eroman@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25196 + Add a missing V8DOMMap include. + + * bindings/v8/WorkerScriptController.cpp: Included V8DOMMap.h. + +2009-04-16 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25260 + Finish V8 custom bindings for InspectorController. + + * bindings/v8/custom/V8InspectorControllerCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL): Added. + +2009-04-16 Kevin Watters <kevinwatters@gmail.com> + + Reviewed by Kevin Ollivier. + + Switch to wxGraphicsBitmap when using wxGraphicsContext so that we're not doing + unnecessary conversions internally when drawing bitmaps. + + https://bugs.webkit.org/show_bug.cgi?id=25248 + + * platform/graphics/ImageSource.h: + * platform/graphics/wx/ImageSourceWx.cpp: + (WebCore::ImageSource::createFrameAtIndex): + * platform/graphics/wx/ImageWx.cpp: + (WebCore::BitmapImage::draw): + (WebCore::BitmapImage::drawPattern): + +2009-04-16 Justin Garcia <justin.garcia@apple.com> + + Reviewed by Dan Bernstein. + + Performing a block style change in an editable root that contains only a br adds a newline + https://bugs.webkit.org/show_bug.cgi?id=25256 + + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Fix a bad check for an root + block that didn't handle a root that contained a placeholder. + +2009-04-16 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Fix computeContainerBoundingBox to respect viewport translations + https://bugs.webkit.org/show_bug.cgi?id=25254 + + Previously computeContainerBoundingBox was just adding the viewportTranslation. + Which, although it has a confusing name, only contains the scale and translation + for the viewBox/preserveAspectRatio adjustment. It does not contain the + translation for the x/y offset of the viewport. + localToParentTransform() does contain this offset, so we use that instead + of the previous hacky code. + + * rendering/RenderSVGContainer.h: + * rendering/RenderSVGViewportContainer.h: + * rendering/SVGRenderSupport.cpp: + (WebCore::computeContainerBoundingBox): + +2009-04-16 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Add a localToParentTransform() method which includes the + full transform between local and parent local coordinates. + https://bugs.webkit.org/show_bug.cgi?id=25226 + + Moved m_localTransform up into RenderSVGTransformableContainer + and added a comment to RenderSVGViewportContainer to make it more + clear that it does not have a localTransform(). + + This patch reveals two more failed design decisions: + 1. Use of RenderBox::absoluteTransform() to mean "absoluteTransform() + including only my localTransform()" callers are probably using it + incorrectly anyway and are just masking bugs in the confused code. + 2. computeContainerBoundingBox does not include viewport translations in + its computed bounding box, so bounding boxes will be off for parents of + inner <svg> elements. I'll fix this an updated the results in a separate change. + + No functional changes, thus no tests. + + * rendering/RenderObject.cpp: + (WebCore::RenderObject::localToParentTransform): + (WebCore::RenderObject::absoluteTransform): + * rendering/RenderObject.h: + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::layout): + * rendering/RenderSVGContainer.h: + (WebCore::RenderSVGContainer::viewportTransform): + * rendering/RenderSVGHiddenContainer.cpp: + * rendering/RenderSVGHiddenContainer.h: + (WebCore::RenderSVGHiddenContainer::absoluteTransform): + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::localToParentTransform): + (WebCore::RenderSVGRoot::absoluteTransform): + * rendering/RenderSVGRoot.h: + * rendering/RenderSVGTransformableContainer.cpp: + (WebCore::RenderSVGTransformableContainer::localToParentTransform): + (WebCore::RenderSVGTransformableContainer::localTransform): + * rendering/RenderSVGTransformableContainer.h: + * rendering/RenderSVGViewportContainer.cpp: + (WebCore::RenderSVGViewportContainer::localToParentTransform): + (WebCore::RenderSVGViewportContainer::absoluteTransform): + * rendering/RenderSVGViewportContainer.h: + * rendering/SVGRenderSupport.cpp: + (WebCore::computeContainerBoundingBox): + +2009-04-16 Adam Langley <agl@google.com> + + Reviewed by Darin Fisher. + + Fix Chromium's rendering of <option> elements inside of <optgroups>. + + https://bugs.webkit.org/show_bug.cgi?id=25244 + + Test (will included as a manual test by https://bugs.webkit.org/show_bug.cgi?id=24900): + + <select> + <optgroup label="Should be bold"> + <option>Should not be bold</option> + </optgroup> + </select> + + * css/themeWin.css: adding comments + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupListBox::getRowFont): use menuStyle() rather than the item's style + +2009-04-16 Eric Roman <eroman@chromium.org> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=25218 + + Make DOMWindow::inlineEventListenerForType not have the "inline" + keyword. As this method gets used outside of DOMWindow. + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::inlineEventListenerForType): + +2009-04-16 Greg Bolsinga <bolsinga@apple.com> + + Reviewed by Antti Koivisto. + + Fix <rdar://problem/6766969> + + When deferred repaints are enabled and being reset and there is a active + timer, stop the timer and do the deferred repaints immediately. + + * page/FrameView.cpp: + (WebCore::FrameView::resetDeferredRepaintDelay): + +2009-04-16 Xan Lopez <xlopez@igalia.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=25241 + Remove superfluous NotImplemented.h includes. + + * html/CanvasRenderingContext2D.cpp: + * html/CanvasStyle.cpp: + * page/AccessibilityRenderObject.cpp: + * platform/chromium/ScrollbarThemeChromiumLinux.cpp: + * platform/graphics/GraphicsContext.cpp: + * platform/graphics/cairo/ImageBufferCairo.cpp: + * platform/graphics/cairo/PathCairo.cpp: + * platform/graphics/chromium/SimpleFontDataLinux.cpp: + * platform/graphics/gtk/FontGtk.cpp: + * platform/graphics/gtk/IconGtk.cpp: + * platform/graphics/qt/IconQt.cpp: + * platform/graphics/qt/ImageQt.cpp: + * platform/graphics/qt/ImageSourceQt.cpp: + * platform/graphics/skia/ImageBufferSkia.cpp: + * platform/graphics/skia/ImageSkia.cpp: + * platform/graphics/win/ColorSafari.cpp: + * platform/graphics/win/FontWin.cpp: + * platform/graphics/win/GraphicsContextCGWin.cpp: + * platform/graphics/win/GraphicsContextCairoWin.cpp: + * platform/graphics/win/SimpleFontDataCairoWin.cpp: + * platform/graphics/wx/ImageWx.cpp: + * platform/graphics/wx/TransformationMatrixWx.cpp: + * platform/gtk/PlatformScreenGtk.cpp: + * platform/gtk/PopupMenuGtk.cpp: + * platform/gtk/ScrollViewGtk.cpp: + * platform/gtk/ScrollbarGtk.cpp: + * platform/network/cf/ResourceHandleCFNet.cpp: + * platform/posix/FileSystemPOSIX.cpp: + * platform/qt/DragDataQt.cpp: + * platform/qt/FileSystemQt.cpp: + * platform/qt/Localizations.cpp: + * platform/qt/PopupMenuQt.cpp: + * platform/win/EditorWin.cpp: + * platform/win/PasteboardWin.cpp: + * platform/wx/KeyboardEventWx.cpp: + * platform/wx/PopupMenuWx.cpp: + * platform/wx/SharedTimerWx.cpp: + * plugins/gtk/PluginViewGtk.cpp: + * plugins/mac/PluginPackageMac.cpp: + * plugins/qt/PluginPackageQt.cpp: + * plugins/win/PluginViewWin.cpp: + * rendering/RenderThemeChromiumLinux.cpp: + * svg/graphics/SVGImage.cpp: + +2009-04-16 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Sam Weinig. + + More fix for https://bugs.webkit.org/show_bug.cgi?id=21260 + Unbounded memory growth when churning elements with anonymous event handler functions + + Some cleanup in event handling code. + + * bindings/js/JSDOMGlobalObject.cpp: + * bindings/js/JSDOMGlobalObject.h: Removed findJSProtectedEventListener + and findJSProtectedEventListener because they are now unused. + + * bindings/js/JSEventListener.cpp: + * bindings/js/JSEventListener.h: + (WebCore::JSEventListener::clearGlobalObject): + * bindings/js/JSLazyEventListener.cpp: + (WebCore::JSLazyEventListener::JSLazyEventListener): + (WebCore::JSLazyEventListener::~JSLazyEventListener): + (WebCore::JSLazyEventListener::globalObject): + * bindings/js/JSLazyEventListener.h: + (WebCore::JSLazyEventListener::clearGlobalObject): Nixed JSProtectedEventListener, + and merged it with JSLazyEventListener, the only remaining event listener + that still GC-protects its function and global object. + + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::ScriptController): + * bindings/js/ScriptController.h: + (WebCore::ScriptController::setEventHandlerLineNumber): + (WebCore::ScriptController::eventHandlerLineNumber): Renamed handlerLineno => + handlerLineNumber, because anything less would be uncivilized. Removed + createInlineEventListener because it mostly did irrelevent work, so it + just got in the way of understanding how event handler creation works. + + * dom/Document.cpp: + (WebCore::Document::createEventListener): + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::XMLTokenizer::startElementNs): + * html/HTMLTokenizer.cpp: + (WebCore::HTMLTokenizer::processToken): Ditto. + +2009-04-16 Beth Dakin <bdakin@apple.com> + + Reviewed by Dave Hyatt. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=20765 Website + crashes on load due to messy HTML in search form + -and corresponding- + <rdar://problem/6210633> + + Before this patch, <form>s were allowed to sit inside tables + without being wrapped by anonymous table parts. There was also a + concept that such a form could be "demoted" and would not be + allowed to have any children. This patch has the HTML parser mark + form elements that have been demoted as such, and then the demoted + forms are not given renderers. I also removed the code that allowed + forms to sit in tables without anonymous table sections. So now any + forms that do manage to get a renderer inside a table will also be + wrapped with appropriate table parts. + + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::HTMLFormElement): + (WebCore::HTMLFormElement::rendererIsNeeded): + * html/HTMLFormElement.h: + (WebCore::HTMLFormElement::setDemoted): + (WebCore::HTMLFormElement::isDemoted): + * html/HTMLParser.cpp: + (WebCore::HTMLParser::insertNode): + * rendering/RenderTable.cpp: + (WebCore::RenderTable::addChild): + * rendering/RenderTableRow.cpp: + (WebCore::RenderTableRow::addChild): + * rendering/RenderTableSection.cpp: + (WebCore::RenderTableSection::addChild): + +2009-04-16 Xiaomei Ji <xji@chromium.org> + + Reviewed by Simon Fraser. + + Fix https://bugs.webkit.org/show_bug.cgi?id=24527 + caret does not paint the first time you focus on a 0px right padding RTL div + + Test: fast/forms/caret-rtl.html + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::localCaretRect): When calculating x-axis if + alignment is alignRight, we need to subtract the caretWidth so that the + caret at IntRect(x, y, caretWidth, height) is inside the block. + +2009-04-16 Justin Garcia <justin.garcia@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=25228 + SelectionController::absoluteCaretBounds returns an inflated caret (the caret repaint rect) + + Return the bounds of the transformed caret, not the transformed repaint rect for the caret (which is inflated). + + * editing/SelectionController.cpp: + (WebCore::SelectionController::localCaretRect): + (WebCore::SelectionController::absoluteBoundsForLocalRect): + (WebCore::SelectionController::caretRepaintRect): + (WebCore::SelectionController::recomputeCaretRect): + * editing/SelectionController.h: + +2009-04-16 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=25187 + Bug 25187: <video> may not be rendered upon certain racy conditions + + Always create the video renderer when the load state reaches QTMovieLoadStateLoaded and + the element is visible, not just when the movie has just been opened. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::updateStates): Make sure we do not make false + assumption on the state changes order. Create the renderer if none is present, + when movie is loaded instead. + +2009-04-16 Eric Seidel <eric@webkit.org> + + Reviewed by Geoffrey Garen. + + Add filterBoundingBox() to RenderSVGModelObject to share a tiny bit of code + + RenderSVGModelObject has much more interesting code it can share, + but I'm just trying to get the commits out of my local branch and into + the repository in any order I can. :) This one was small. + + This will be used by the unified RenderSVGModelObject + clippedOverflowRectForRepaint patch coming soon. + + * rendering/RenderPath.cpp: + (WebCore::RenderPath::clippedOverflowRectForRepaint): + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::clippedOverflowRectForRepaint): + * rendering/RenderSVGModelObject.cpp: + (WebCore::RenderSVGModelObject::filterBoundingBox): + * rendering/RenderSVGModelObject.h: + +2009-04-16 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Eric Seidel and Adam Roben. + + More fix for https://bugs.webkit.org/show_bug.cgi?id=21260 + Unbounded memory growth when churning elements with anonymous event handler functions + + Simplified some EventHandler creation code. + + Removed a pile of code whose sole purpose was to allow SVG event handlers + to supply a parameter named "evt" instead of the normal "event", and + replaced it with a single parameter to JSLazyEventListener's constructor + specifying the parameter name to use. + + * bindings/js/JSDOMWindowBase.h: + * bindings/js/JSLazyEventListener.cpp: + (WebCore::JSLazyEventListener::JSLazyEventListener): + (WebCore::JSLazyEventListener::parseCode): + * bindings/js/JSLazyEventListener.h: + (WebCore::JSLazyEventListener::create): + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::createInlineEventListener): + * bindings/js/ScriptController.h: + * dom/Document.cpp: + (WebCore::Document::createEventListener): + +2009-04-15 Eric Seidel <eric@webkit.org> + + Reviewed by David Hyatt. + + Split out objectBoundingBox and repaintRectInLocalCoordinates from relativeBBox + in preparation for simplifying (and fixing) repaint logic in the SVG rendering tree. + https://bugs.webkit.org/show_bug.cgi?id=25224 + + objectBoundingBox() matches the SVG 1.1 concept of a "bounding box" + + repaintRectInLocalCoordinates() should return the a rect covering all painted content. + However, repaintRectInLocalCoordinates() still only returns the "stroke bounding box" + in this patch. In a future patch, repaintRectInLocalCoordinates will be fixed to return + a rect covering all painted content. In order to avoid changing several hundred layout test results, I've left + the behavior as-is for now. The returned rect is used by various repaintRectInLocalCoordinates + implementations and sometimes adjusted to include all painted content, but not always, and + the places where the adjustments are made are sometimes wrong. Again, will be fixed in + an upcoming patch. + + This patch discovered a bug in Font::drawTextUsingSVGFont, which is probably causing + bounding-box relative gradients on SVGFont glyphs to not paint correctly. + I chose not to try and fix the bug in this patch and instead left a FIXME. + + This patch also discovered that at least tspan.getBBox() is broken. This + along with the foreignObject.getBBox() change will be tested (and fixed) in a + later patch. https://bugs.webkit.org/show_bug.cgi?id=25225 + + No change in behavior (besides the above mentioned foreignObject.getBBox()), thus no tests. + + * rendering/RenderForeignObject.cpp: + (WebCore::RenderForeignObject::objectBoundingBox): this is a behavior improvement for getBBox() test case coming in a later patch + (WebCore::RenderForeignObject::repaintRectInLocalCoordinates): only really used for layout test results, might some day be used for repaint. + * rendering/RenderForeignObject.h: + * rendering/RenderObject.cpp: + (WebCore::RenderObject::objectBoundingBox): new methods, ASSERT if used but not implemented. + (WebCore::RenderObject::repaintRectInLocalCoordinates): + * rendering/RenderObject.h: + * rendering/RenderPath.cpp: + (WebCore::RenderPath::objectBoundingBox): + (WebCore::RenderPath::repaintRectInLocalCoordinates): + (WebCore::RenderPath::clippedOverflowRectForRepaint): + (WebCore::RenderPath::lineHeight): + (WebCore::RenderPath::baselinePosition): + (WebCore::RenderPath::paint): + (WebCore::RenderPath::addFocusRingRects): + * rendering/RenderPath.h: + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::paint): + (WebCore::RenderSVGContainer::objectBoundingBox): + (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): + * rendering/RenderSVGContainer.h: + * rendering/RenderSVGGradientStop.h: + (WebCore::RenderSVGGradientStop::objectBoundingBox): + (WebCore::RenderSVGGradientStop::repaintRectInLocalCoordinates): + * rendering/RenderSVGHiddenContainer.cpp: + (WebCore::RenderSVGHiddenContainer::objectBoundingBox): + (WebCore::RenderSVGHiddenContainer::repaintRectInLocalCoordinates): + * rendering/RenderSVGHiddenContainer.h: + * rendering/RenderSVGImage.cpp: + (WebCore::RenderSVGImage::objectBoundingBox): + (WebCore::RenderSVGImage::repaintRectInLocalCoordinates): + (WebCore::RenderSVGImage::calculateAbsoluteBounds): + (WebCore::RenderSVGImage::addFocusRingRects): + * rendering/RenderSVGImage.h: + * rendering/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::paint): + (WebCore::RenderSVGRoot::objectBoundingBox): + (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates): + * rendering/RenderSVGRoot.h: + * rendering/RenderSVGTSpan.h: + (WebCore::RenderSVGTSpan::objectBoundingBox): + (WebCore::RenderSVGTSpan::repaintRectInLocalCoordinates): + * rendering/RenderSVGText.cpp: + (WebCore::RenderSVGText::clippedOverflowRectForRepaint): + (WebCore::RenderSVGText::absoluteRects): + (WebCore::RenderSVGText::absoluteQuads): + (WebCore::RenderSVGText::objectBoundingBox): + (WebCore::RenderSVGText::repaintRectInLocalCoordinates): + * rendering/RenderSVGText.h: + * rendering/RenderSVGViewportContainer.cpp: + (WebCore::RenderSVGViewportContainer::viewportTransform): + * rendering/SVGRenderSupport.cpp: + (WebCore::computeContainerBoundingBox): + * rendering/SVGRenderSupport.h: + * rendering/SVGRenderTreeAsText.cpp: + (WebCore::operator<<): + * svg/SVGFont.cpp: + (WebCore::Font::drawTextUsingSVGFont): + * svg/SVGLocatable.cpp: + (WebCore::SVGLocatable::getBBox): + * svg/SVGPatternElement.cpp: + (WebCore::SVGPatternElement::buildPattern): + * svg/graphics/SVGPaintServerGradient.cpp: + (WebCore::createMaskAndSwapContextForTextGradient): + (WebCore::clipToTextMask): + (WebCore::SVGPaintServerGradient::setup): + * svg/graphics/SVGPaintServerPattern.cpp: + (WebCore::SVGPaintServerPattern::setup): + +2009-04-16 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + - fix <rdar://problem/6032139> Table cell widths calculated + incorrectly on table that uses table-layout:fixed, colspans, and a mix + of percentage and pixel widths + + Test: fast/table/fixed-granular-cols.html + + The incorrect widths resulted from incorrect handling of the case where + the <col> elements are more granular than the table cells. + + * rendering/FixedTableLayout.cpp: + (WebCore::FixedTableLayout::calcWidthArray): When processing <col> + elements, append effective columns or split existing effective columns + as needed. + +2009-04-16 Alexey Proskuryakov <ap@webkit.org> + + <rdar://problem/6795285> Infinite recursion in ResourceHandle::receivedRequestToContinueWithoutCredential + + Rolled out <http://trac.webkit.org/projects/webkit/changeset/42536> - the two instances of + authentication challenge are different, after all. Added a FIXME comment about a possible + future improvement. + + * platform/network/ResourceHandle.cpp: + (WebCore::ResourceHandle::clearAuthentication): + * platform/network/ResourceHandleInternal.h: + (WebCore::ResourceHandleInternal::ResourceHandleInternal): + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): + (WebCore::ResourceHandle::receivedCredential): + (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): + (WebCore::ResourceHandle::receivedCancellation): + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): + (WebCore::ResourceHandle::didCancelAuthenticationChallenge): + (WebCore::ResourceHandle::receivedCredential): + (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): + (WebCore::ResourceHandle::receivedCancellation): + +2009-04-15 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Sam Weinig. + + More fix for https://bugs.webkit.org/show_bug.cgi?id=21260 + Unbounded memory growth when churning elements with anonymous event handler functions + + Also fixed <rdar://problem/6792909> WebInspector crashes when reloading + a page with breakpoints set + + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::clearJSFunctionInline): + (WebCore::JSEventListener::markJSFunction): + * bindings/js/JSEventListener.h: Actually clear our function and global + object pointers when our client instructs us to. (Oops!) Also, mark + our global object while we still intend to use it. + + * bindings/js/JSSVGElementInstanceCustom.cpp: + (WebCore::JSSVGElementInstance::mark): + (WebCore::toJS): + * bindings/scripts/CodeGeneratorJS.pm: + * svg/SVGElementInstance.idl: For every SVGElementInstance wrapper, ensure + that the corresponding element also has a wrapper, to keep its event + listeners alive. + +2009-04-15 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25201 + Add ScriptFunctionCall/ScriptObject for V8. + + * bindings/v8/ScriptFunctionCall.cpp: Added. + * bindings/v8/ScriptFunctionCall.h: Added. + * bindings/v8/ScriptObject.cpp: Added. + * bindings/v8/ScriptObject.h: Added. + * bindings/v8/ScriptObjectQuarantine.cpp: Added. + * bindings/v8/ScriptObjectQuarantine.h: Added. + * bindings/v8/ScriptScope.cpp: Added. + * bindings/v8/ScriptScope.h: Added. + * bindings/v8/ScriptState.h: + (WebCore::ScriptState::ScriptState): Added new constructors. + (WebCore::ScriptState::frame): Added Frame ptr accessor. + * bindings/v8/ScriptString.h: + (WebCore::ScriptString::ScriptString): Added default constructor. + * bindings/v8/ScriptValue.h: + (WebCore::ScriptValue::isEqual): Added. + +2009-04-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed build fix. Add RenderSVGModelObject.* to GTK+'s build. + + * GNUmakefile.am: + +2009-04-15 Steve Falkenburg <sfalken@apple.com> + + <rdar://problem/6785760> WebCore should use a maximum of 6 connections per host, not 4 + + Reviewed by Adam Roben. + + * platform/network/ResourceRequestBase.cpp: + * platform/network/cf/ResourceRequestCFNet.cpp: + (WebCore::initializeMaximumHTTPConnectionCountPerHost): + +2009-04-15 Sam Weinig <sam@webkit.org> + + Reviewed by Mark Rowe. + + Add special casing to bindings generator so that custom functions + starting with xml or xslt conform to WebKit style guidelines. + + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::xmlHttpRequest): + (WebCore::JSDOMWindow::xsltProcessor): + * bindings/scripts/CodeGenerator.pm: + +2009-04-15 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Add minimal RenderSVGModelObject and make RenderPath and RenderSVGContainer use it. + https://bugs.webkit.org/show_bug.cgi?id=25221 + + RenderSVGModelObject is the base rendering class for things which live + in the SVG rendering tree. Not all SVG renders are RenderSVGModelObjects yet. + + More patches coming. This is just adding the class, future patches + will pull more logic out of RenderPath and RenderSVGContainer into RenderSVGModelObject. + + * WebCore.pro: + * WebCore.scons: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * rendering/RenderPath.cpp: + (WebCore::RenderPath::RenderPath): + * rendering/RenderPath.h: + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::RenderSVGContainer): + * rendering/RenderSVGContainer.h: + * rendering/RenderSVGModelObject.cpp: Added. + (WebCore::RenderSVGModelObject::RenderSVGModelObject): + * rendering/RenderSVGModelObject.h: Added. + (WebCore::RenderSVGModelObject::requiresLayer): + * rendering/RenderTreeAsText.cpp: + * rendering/SVGRenderTreeAsText.cpp: + +2009-04-15 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Remove more dead code from RenderSVGHiddenContainer. + + lineHeight and baselinePosition used to be on RenderSVGContainer + (of which this is a subclass) because RenderSVGContainer used + to be a RenderBox and always the renderer for <svg> + Now <svg> uses RenderSVGRoot when needing a RenderBox (inside HTML) + and RenderSVGViewportContainer (when inside SVG content) + so there is no need for RenderSVGHiddenContainer to have these HTML-specific methods. + + * rendering/RenderSVGHiddenContainer.cpp: + * rendering/RenderSVGHiddenContainer.h: + +2009-04-15 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Remove unneeded (broken) code from SVG renderers + https://bugs.webkit.org/show_bug.cgi?id=25214 + + Mostly due to my historical confusions about the render tree + and some methods not being removed after classes were split. + + RenderSVGRoot is an RenderBox and should just use all the + standard RenderBox methods for inspector and repaint rects. + + RenderSVGContainer is *not* a RenderBox (any more) and thus + doesn't need lineHeight or width/height or calcBounds. + + RenderSVGViewportContainer had some broken code which tried + to see if the click was inside the container at all, but it + was using width/height metrics based off of the containing + block (from calcWidth) which is wrong (since its real + width/height are from its containing viewport not containing block). + + * rendering/RenderSVGContainer.cpp: + (WebCore::RenderSVGContainer::RenderSVGContainer): + (WebCore::RenderSVGContainer::layout): + * rendering/RenderSVGContainer.h: + * rendering/RenderSVGRoot.cpp: + * rendering/RenderSVGRoot.h: + * rendering/RenderSVGViewportContainer.cpp: + (WebCore::RenderSVGViewportContainer::layout): + (WebCore::RenderSVGViewportContainer::nodeAtPoint): + +2009-04-15 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser and Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=25217 + Simplify nearestViewportElement and farthestViewportElement using isViewportElement and a for loop + Add ASSERT(element) to all these functions since they should never be passed a null element. + + * svg/SVGLocatable.cpp: + (WebCore::isViewportElement): + (WebCore::SVGLocatable::nearestViewportElement): + (WebCore::SVGLocatable::farthestViewportElement): + (WebCore::SVGLocatable::getBBox): + (WebCore::SVGLocatable::getCTM): + (WebCore::SVGLocatable::getScreenCTM): + +2009-04-15 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Remove support for the ObjCIvar extended attribute from the Objective-C + bindings generator. It is not used anymore. + + * bindings/scripts/CodeGeneratorObjC.pm: + +2009-04-15 Justin Garcia <justin.garcia@apple.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=25204 + Create a fast path for ReplaceSelectionCommand that merges text nodes + + During simple pastes, where we're just pasting a text node into a run of text, we would split the current + text and insert the new node in between. This is slow and we hit this bug: + + https://bugs.webkit.org/show_bug.cgi?id=6148 + + in the layout and rendering code where adjacent text nodes don't shape correctly in Arabic. + + This change creates a fast path for ReplaceSelectionCommand that inserts text directly into the + text node that holds the selection (very similar to the fast path we wrote for InsertTextCommand). + + * editing/ReplaceSelectionCommand.cpp: + (WebCore::ReplaceSelectionCommand::doApply): + (WebCore::ReplaceSelectionCommand::performTrivialReplace): + * editing/ReplaceSelectionCommand.h: + * editing/TextIterator.cpp: + +2009-04-15 Adam Langley <agl@google.com> + + Reviewed by Darin Fisher. + + Move VDMX parsing into the Chromium Linux port. + + https://bugs.webkit.org/show_bug.cgi?id=25116 + + VDMX tables are optional tables in TrueType fonts which contain the + exact pixel height of a given font at a given pel size. In order to + match Windows font metrics we have to use these numbers. + + Previously, the parsing was performed in Skia. As part of the merge + with upstream Skia, an interface for getting table data from a font + has been added to Skia and we're moving the parsing into WebKit. + + This does not change any layout tests. + + * platform/graphics/chromium/FontPlatformDataLinux.cpp: + (WebCore::FontPlatformData::uniqueID): + * platform/graphics/chromium/FontPlatformDataLinux.h: + * platform/graphics/chromium/FontTrueTypeLinux.cpp: Added. + * platform/graphics/chromium/FontTrueTypeLinux.h: Added. + * platform/graphics/chromium/SimpleFontDataLinux.cpp: + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::platformWidthForGlyph): + +2009-04-15 Stephen White <senorblanco@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25180 + + Restore stroked outlines to PlatformContextSkia::drawRect(). + These were removed inadvertently in r41805, aka + https://bugs.webkit.org/show_bug.cgi?id=24662. + SkRect is { left, top, right, bottom }, not { left, top, width, height }. + + * platform/graphics/skia/PlatformContextSkia.cpp: + (PlatformContextSkia::drawRect): + +2009-04-15 Dan Bernstein <mitz@apple.com> + + Reviewed by Dave Hyatt. + + - fix <rdar://problem/6777374> Generated content with display: run-in + causes a crash + + Test: fast/runin/generated.html + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::handleRunInChild): Check if the run-in block is + generated, and if so, make the RenderInline anonymous instead of passing + a 0 node to the RenderInline constructor. If the run-in itself is + generated, do move :before and :after children from the block into the + inline, as they will not be regenerated. Changed nested ifs into early + returns. + +2009-04-15 Eric Roman <eroman@chromium.org> + + Reviewed by Geoffrey Garen. + + https://bugs.webkit.org/show_bug.cgi?id=25192 + + Expose DOMWindow::removeInlineEventListenerForType and + DOMWindow::inlineEventListenerForType as public. + + * page/DOMWindow.h: + +2009-04-14 Eric Roman <eroman@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25198 + + Wrap RegisteredEventListener's markEventListeners and invalidateEventListeners + in a USE(JSC), since it doesn't compile with V8 bindings. + + * dom/RegisteredEventListener.h: + +2009-04-15 Eric Roman <eroman@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25194 + + Fix a caller of Settings::javaScriptCanOpenWindowsAutomatically() to + use the new name. + + * bindings/v8/custom/V8DOMWindowCustom.cpp: + +2009-04-14 Alexey Proskuryakov <ap@webkit.org> + + Rubber-stamped by Darin Adler. + + Don't keep platform objects for authentication challenge in ResourceHandleInternal. + We already have a copy in AuthenticationChallenge object. + + * platform/network/ResourceHandle.cpp: + (WebCore::ResourceHandle::clearAuthentication): + * platform/network/ResourceHandleInternal.h: + (WebCore::ResourceHandleInternal::ResourceHandleInternal): + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): + (WebCore::ResourceHandle::receivedCredential): + (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): + (WebCore::ResourceHandle::receivedCancellation): + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): + (WebCore::ResourceHandle::didCancelAuthenticationChallenge): + (WebCore::ResourceHandle::receivedCredential): + (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): + (WebCore::ResourceHandle::receivedCancellation): + +2009-04-14 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Sam Weinig. + + Nixed some now-defunct autogeneration code. + + * bindings/scripts/CodeGeneratorJS.pm: + +2009-04-14 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Alexey Proskuryakov. + + Fix <rdar://problem/6755724> <audio> and <video> elements can reference local + file:/// URLs from remote in Safari + + Tests: http/tests/security/local-video-poster-from-remote.html + http/tests/security/local-video-source-from-remote.html + http/tests/security/local-video-src-from-remote.html + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::loadResource): Don't pass url to media engine unless loader->canLoad() + says it is OK. + +2009-04-14 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Part of <rdar://problem/6150868> + Fix incorrect handling of content that needs to go into the head element + once the head element has been removed. + + Test: fast/parser/head-content-after-head-removal.html + + * html/HTMLParser.cpp: + (WebCore::HTMLParser::HTMLParser): Remove unneeded initializer of m_head. + (WebCore::HTMLParser::handleError): Update since m_head is now a RefPtr. + (WebCore::HTMLParser::createHead): Ditto. + * html/HTMLParser.h: Make m_head a RefPtr. + +2009-04-14 Geoffrey Garen <ggaren@apple.com> + + Used svn merge -r42529:42528 to roll out my last patch because it broke + the build. + + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject): + (WebCore::JSDOMGlobalObject::findJSProtectedEventListener): + (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener): + (WebCore::JSDOMGlobalObject::jsProtectedEventListeners): + (WebCore::JSDOMGlobalObject::jsProtectedInlineEventListeners): + * bindings/js/JSDOMGlobalObject.h: + +2009-04-14 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Sam Weinig. + + Nixed some now-dead code related to protected event listeners. + + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject): + * bindings/js/JSDOMGlobalObject.h: + +2009-04-14 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Sam Weinig. + + More fix for https://bugs.webkit.org/show_bug.cgi?id=21260 + Unbounded memory growth when churning elements with anonymous event handler functions + + Stop using protected event listeners on SVGElementInstance. + + * bindings/js/JSSVGElementInstanceCustom.cpp: + (WebCore::JSSVGElementInstance::mark): Mark our event listeners, since + they're not protected anymore. + + (WebCore::JSSVGElementInstance::addEventListener): + (WebCore::JSSVGElementInstance::removeEventListener): Make unprotected + event listeners, since we mark them now. + + * bindings/scripts/CodeGeneratorJS.pm: Autogenerate event listener + invalidation for SVGElementInstance. + + * svg/SVGElementInstance.h: + (WebCore::SVGElementInstance::eventListeners): Added an accessor, for + the sake of autogenerated code. + + * svg/SVGElementInstance.idl: Removed the ProtectedEventListener attribute + from event listener properties. Added a CustomMarkFunction attribute, + since we need to mark our event listeners. + +2009-04-14 Steve Falkenburg <sfalken@apple.com> + + Windows build fix. + + * WebCore.vcproj/WebCore.vcproj: + +2009-04-14 Steve Falkenburg <sfalken@apple.com> + + Add header guards to WebCore forwarding headers. + + Speeds up WebCore debug build on Windows by 12% on my system, + since Visual Studio appears to not optimize for standard header + guards in included files. + + Rubber stamped by Ada Chan. + + * ForwardingHeaders/debugger/Debugger.h: + * ForwardingHeaders/debugger/DebuggerActivation.h: + * ForwardingHeaders/debugger/DebuggerCallFrame.h: + * ForwardingHeaders/interpreter/CallFrame.h: + * ForwardingHeaders/interpreter/Interpreter.h: + * ForwardingHeaders/masm/X86Assembler.h: + * ForwardingHeaders/parser/Parser.h: + * ForwardingHeaders/parser/SourceCode.h: + * ForwardingHeaders/parser/SourceProvider.h: + * ForwardingHeaders/pcre/pcre.h: + * ForwardingHeaders/profiler/Profile.h: + * ForwardingHeaders/profiler/ProfileNode.h: + * ForwardingHeaders/profiler/Profiler.h: + * ForwardingHeaders/runtime/ArgList.h: + * ForwardingHeaders/runtime/ArrayPrototype.h: + * ForwardingHeaders/runtime/BooleanObject.h: + * ForwardingHeaders/runtime/CallData.h: + * ForwardingHeaders/runtime/Collector.h: + * ForwardingHeaders/runtime/CollectorHeapIterator.h: + * ForwardingHeaders/runtime/Completion.h: + * ForwardingHeaders/runtime/ConstructData.h: + * ForwardingHeaders/runtime/DateInstance.h: + * ForwardingHeaders/runtime/Error.h: + * ForwardingHeaders/runtime/FunctionConstructor.h: + * ForwardingHeaders/runtime/FunctionPrototype.h: + * ForwardingHeaders/runtime/Identifier.h: + * ForwardingHeaders/runtime/InitializeThreading.h: + * ForwardingHeaders/runtime/InternalFunction.h: + * ForwardingHeaders/runtime/JSArray.h: + * ForwardingHeaders/runtime/JSByteArray.h: + * ForwardingHeaders/runtime/JSFunction.h: + * ForwardingHeaders/runtime/JSGlobalData.h: + * ForwardingHeaders/runtime/JSGlobalObject.h: + * ForwardingHeaders/runtime/JSLock.h: + * ForwardingHeaders/runtime/JSNumberCell.h: + * ForwardingHeaders/runtime/JSObject.h: + * ForwardingHeaders/runtime/JSString.h: + * ForwardingHeaders/runtime/JSValue.h: + * ForwardingHeaders/runtime/Lookup.h: + * ForwardingHeaders/runtime/ObjectPrototype.h: + * ForwardingHeaders/runtime/Operations.h: + * ForwardingHeaders/runtime/PropertyMap.h: + * ForwardingHeaders/runtime/PropertyNameArray.h: + * ForwardingHeaders/runtime/Protect.h: + * ForwardingHeaders/runtime/PrototypeFunction.h: + * ForwardingHeaders/runtime/StringObject.h: + * ForwardingHeaders/runtime/StringObjectThatMasqueradesAsUndefined.h: + * ForwardingHeaders/runtime/StringPrototype.h: + * ForwardingHeaders/runtime/Structure.h: + * ForwardingHeaders/runtime/SymbolTable.h: + * ForwardingHeaders/runtime/UString.h: + * ForwardingHeaders/wrec/WREC.h: + * ForwardingHeaders/wtf/ASCIICType.h: + * ForwardingHeaders/wtf/AlwaysInline.h: + * ForwardingHeaders/wtf/Assertions.h: + * ForwardingHeaders/wtf/ByteArray.h: + * ForwardingHeaders/wtf/CurrentTime.h: + * ForwardingHeaders/wtf/Deque.h: + * ForwardingHeaders/wtf/DisallowCType.h: + * ForwardingHeaders/wtf/FastMalloc.h: + * ForwardingHeaders/wtf/Forward.h: + * ForwardingHeaders/wtf/GetPtr.h: + * ForwardingHeaders/wtf/HashCountedSet.h: + * ForwardingHeaders/wtf/HashFunctions.h: + * ForwardingHeaders/wtf/HashMap.h: + * ForwardingHeaders/wtf/HashSet.h: + * ForwardingHeaders/wtf/HashTable.h: + * ForwardingHeaders/wtf/HashTraits.h: + * ForwardingHeaders/wtf/ListHashSet.h: + * ForwardingHeaders/wtf/ListRefPtr.h: + * ForwardingHeaders/wtf/Locker.h: + * ForwardingHeaders/wtf/MainThread.h: + * ForwardingHeaders/wtf/MathExtras.h: + * ForwardingHeaders/wtf/MessageQueue.h: + * ForwardingHeaders/wtf/Noncopyable.h: + * ForwardingHeaders/wtf/NotFound.h: + * ForwardingHeaders/wtf/OwnArrayPtr.h: + * ForwardingHeaders/wtf/OwnPtr.h: + * ForwardingHeaders/wtf/PassRefPtr.h: + * ForwardingHeaders/wtf/Platform.h: + * ForwardingHeaders/wtf/PtrAndFlags.h: + * ForwardingHeaders/wtf/RandomNumber.h: + * ForwardingHeaders/wtf/RefCounted.h: + * ForwardingHeaders/wtf/RefCountedLeakCounter.h: + * ForwardingHeaders/wtf/RefPtr.h: + * ForwardingHeaders/wtf/RetainPtr.h: + * ForwardingHeaders/wtf/StdLibExtras.h: + * ForwardingHeaders/wtf/StringExtras.h: + * ForwardingHeaders/wtf/ThreadSpecific.h: + * ForwardingHeaders/wtf/Threading.h: + * ForwardingHeaders/wtf/TypeTraits.h: + * ForwardingHeaders/wtf/UnusedParam.h: + * ForwardingHeaders/wtf/Vector.h: + * ForwardingHeaders/wtf/VectorTraits.h: + * ForwardingHeaders/wtf/dtoa.h: + * ForwardingHeaders/wtf/unicode/Collator.h: + * ForwardingHeaders/wtf/unicode/UTF8.h: + * ForwardingHeaders/wtf/unicode/Unicode.h: + * ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h: + +2009-04-14 Sam Weinig <sam@webkit.org> + + Reviewed by Adele Peterson. + + Use a template function to generalize the way we create non-caching + JS function getters. + + * bindings/js/JSDOMWindowCustom.cpp: + * bindings/js/JSDOMWindowCustom.h: + (WebCore::nonCachingStaticFunctionGetter): + (WebCore::JSDOMWindow::customGetOwnPropertySlot): + +2009-04-14 Benjamin C Meyer <benjamin.meyer@torchmobile.com> + + Reviewed by George Staikos. + + https://bugs.webkit.org/show_bug.cgi?id=25099 + + When creating a QNetworkRequest make sure to populate the + CacheLoadControlAttribute with the value set by the ResourceRequest::cachePolicy() so that the cache will be used as WebKit expects. + + * WebKit/qt/tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::requestCache): + + * platform/network/qt/ResourceRequestQt.cpp: + (WebCore::ResourceRequest::toNetworkRequest): + +2009-04-14 Timothy Hatcher <timothy@apple.com> + + Fix a world leak caused by opening the Web Inspector. This was + a regression caused by the InspectorController becoming refcounted. + + <rdar://problem/6782944> + + Reviewed by Darin Adler. + + * bindings/js/ScriptObject.cpp: + (WebCore::ScriptGlobalObject::get): Renamed to better match the + other functions. + (WebCore::ScriptGlobalObject::remove): Added. Deletes the property. + * bindings/js/ScriptObject.h: + * inspector/InspectorController.cpp: + (WebCore::InspectorController::~InspectorController): Do less work + at destruction time since the object lifetime is tied to JS GC. + Assert that inspectedPageDestroyed cleared everything needed. + (WebCore::InspectorController::inspectedPageDestroyed): Do most + of the work that ~InspectorController was doing. + (WebCore::InspectorController::scriptObjectReady): Renamed getObject. + +2009-04-14 Antony Sargent <asargent@chromium.org> + + Reviewed by Dimitri Glazkov. + + This is some cleanup motivated by the crash in http://crbug.com/9775 , which + happens because of calling window.open inside a window.onload handler. + + These changes are just part of the fix, along with some asserts to help prevent + breakage on future changes. + + https://bugs.webkit.org/show_bug.cgi?id=25132 + + * bindings/v8/V8EventListenerList.cpp: + (WebCore::V8EventListenerList::add): + (WebCore::V8EventListenerList::remove): + (WebCore::V8EventListenerList::clear): + * bindings/v8/V8EventListenerList.h: + (WebCore::V8EventListenerList::size): + +2009-04-14 Evan Martin <evan@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25142 + Fix a race that can occur between flex and the perl script that parses + its output. + + * css/maketokenizer: Consume all input. + +2009-04-14 Rohit Rao <rohitrao@google.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=25184 + Do not change the text color for selected text in Mac Chromium. + + * rendering/RenderThemeChromiumMac.h: + (WebCore::RenderThemeChromiumMac::supportsSelectionForegroundColors): + Now returns false, matching the behavior of Safari on Mac. + +2009-04-14 Justin Garcia <justin.garcia@apple.com> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25172 + Extra partial layout during the first keypress in an empty block + + Determining if a placeholder needs to be removed requires the creation of a VisiblePosition + which was triggering layout before we were finished modifying the DOM for the insert operation. + + Find out if we need to remove a placeholder near the start of the operation, and if we do remember + where it's located. Then, later, remove it along with all of the other DOM operations we perform. + + Renamed lineBreakExistsAtPosition to lineBreakExistsAtVisiblePosition and added a lineBreakExistsAtPosition + that takes in a Position. In InsertTextCommand, we can use the latter, since we normalize manually. + + removePlaceholderAt now takes in a Position that it assumes has already been checked for a placeholder. + + No test added as this only effects performance. + + * editing/BreakBlockquoteCommand.cpp: + (WebCore::BreakBlockquoteCommand::doApply): + * editing/CompositeEditCommand.cpp: + (WebCore::CompositeEditCommand::removePlaceholderAt): + (WebCore::CompositeEditCommand::moveParagraphs): + (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph): + (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary): + * editing/CompositeEditCommand.h: + * editing/DeleteSelectionCommand.cpp: + (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): + (WebCore::DeleteSelectionCommand::doApply): + * editing/FormatBlockCommand.cpp: + (WebCore::FormatBlockCommand::doApply): + * editing/InsertLineBreakCommand.cpp: + (WebCore::InsertLineBreakCommand::doApply): + * editing/InsertParagraphSeparatorCommand.cpp: + (WebCore::InsertParagraphSeparatorCommand::doApply): + * editing/InsertTextCommand.cpp: + (WebCore::InsertTextCommand::input): + * editing/htmlediting.cpp: + (WebCore::lineBreakExistsAtVisiblePosition): + (WebCore::lineBreakExistsAtPosition): + * editing/htmlediting.h: + +2009-04-14 Adam Roben <aroben@apple.com> + + Remove support for profile-guided optimization on Windows + + Rubber-stamped by Steve Falkenburg. + + * WebCore.vcproj/WebCore.vcproj: Removed the Release_PGO + configuration. + +2009-04-14 Dmitry Titov <dimich@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25163 + Upstream fix for releasing v8 objects on worker thread termination in Chromium. + + * bindings/v8/V8DOMMap.cpp: + (WebCore::domDataList): Now uses Vector instead of HashMap. + (WebCore::domDataListMutex): + (WebCore::ThreadSpecificDOMData::ThreadSpecificDOMData): remove usage of currentThread(); + (WebCore::ThreadSpecificDOMData::~ThreadSpecificDOMData): ditto. + (WebCore::NonMainThreadSpecificDOMData::~NonMainThreadSpecificDOMData): moved call to removeAllDOMObjectsInCurrentThread() to ~WorkerScriptController. + (WebCore::handleWeakObjectInOwningThread): + (WebCore::derefDelayedObjects): + (WebCore::removeAllDOMObjectsInCurrentThread): not static anymore. + * bindings/v8/V8DOMMap.h: + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::WorkerContextExecutionProxy::dispose): removed code that avoided dual-dereference of WorkerContext. + (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): this ref() is countered in removeAllDOMObjectsInCurrentThread(), when the WorkerContext is removed from the v8 map. + * bindings/v8/WorkerScriptController.cpp: + (WebCore::WorkerScriptController::~WorkerScriptController): + +2009-04-14 Adam Roben <aroben@apple.com> + + Fix Bug 25183: Split up WebCore.vcproj's settings into vsprops files + + <https://bugs.webkit.org/show_bug.cgi?id=25183> + + WebCore.vcproj now uses a set of .vsprops files to store most of its + settings. + + Reviewed by Darin Adler. + + * WebCore.vcproj/WebCore.vcproj: Moved settings from here into the new + .vsprops files. + + * WebCore.vcproj/WebCoreCFNetwork.vsprops: Added. Contains settings + for ports that build against CFNetwork. + * WebCore.vcproj/WebCoreCG.vsprops: Added. Contains settings for ports + that build against CoreGraphics. + * WebCore.vcproj/WebCoreCURL.vsprops: Added. Contains settings for + ports that build against libcurl. + * WebCore.vcproj/WebCoreCairo.vsprops: Added. Contains settings for + ports that build against Cairo. + * WebCore.vcproj/WebCoreCommon.vsprops: Added. Contains settings + shared by all ports. + * WebCore.vcproj/WebCoreMediaQT.vsprops: Added. Contains settings for + ports that use QTMovieWin to implement the MediaPlayerPrivate + interface. + * WebCore.vcproj/WebCorePthreads.vsprops: Added. Contains settings for + ports that build against pthreads. + +2009-04-14 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + http/tests/xmlhttprequest/basic-auth.html fails on Tiger. + + Turns out that NSURLCredentialPersistenceNone doesn't work on Tiger, so we have to use + session persistence. + + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Route the credential through + receivedCredential(), ensuring that the Tiger-specific need to use session credentials + is honored. + (WebCore::ResourceHandle::receivedCredential): On Tiger, change PersistenceNone to + PersistenceForSession, because the former doesn't work. + +2009-04-14 Adele Peterson <adele@apple.com> + + Reviewed by Darin Adler. + + Fix for <rdar://problem/6703873> Triple-click quoted line and type Return creates an extra quoted blank line + + Test: editing/inserting/6703873.html + + * editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply): + If the startNode's original parent is now empty, we can remove it. Its already been cloned and copied with the startNode, + so we only need to keep it around if it actually holds some original content, otherwise it will look like an extra empty + container in the document. + +2009-04-14 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Add a proper implementation of AtkText::get_text and + AtkText::get_character_count, which takes into account non + TextControl text. With this the 'Text' field in Accerciser's + Interface Viewer is filled correctly. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-04-14 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Remove some dead code and g_return_if_fail from static functions. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-04-14 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Also implement text interface for StaticTextRole, which covers + most of the text in web pages. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-04-14 Alexey Proskuryakov <ap@webkit.org> + + Another Windows build fix. + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::WebCoreSynchronousLoader::load): + +2009-04-14 Alexey Proskuryakov <ap@webkit.org> + + Windows build fix. + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::WebCoreSynchronousLoader::willSendRequest): + (WebCore::WebCoreSynchronousLoader::didReceiveChallenge): + +2009-04-13 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Sam Weinig. + + <rdar://problem/6698851> Implement XMLHttpRequest withCredentials attribute + + * WebCore.xcodeproj/project.pbxproj: Made ThreadableLoader.h private, as enum definitions + from it are now used in otehr private headers. + + * xml/XMLHttpRequest.h: + * xml/XMLHttpRequest.idl: + Added withCredentials attribute. When it is false (default), neither credentials nor cookies + are sent with cross origin requests, When it is true, those are sent, but the server needs + to allow handling results via Access-Control-Allow-Credentials header. It was always possible + to send a cross-site request with credentials via IFRAME or IMG, so this just adds a way to + read results, as long as the server reports that it's allowed. + Having the default set to false ensures that requests won't fail unexpectedly because of + stored credentials and cookies for other resources in the target protection space. + + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::loadRequestSynchronously): Allow stored credentials for same origin + requests, and for cross origin ones that have withCredentials attribute set. Such code already + existed for cookies (but it's simpler, because we could just set a ResourceRequest flag). + (WebCore::XMLHttpRequest::loadRequestAsynchronously): Ditto. + + * platform/network/ResourceHandle.h: Added willSendRequest() - just like for other callbacks, + is is easier to have code in the class. Also, loadResourceSynchronously() now takes a + StoredCredentials option, matching async case. + + * platform/network/ResourceHandleClient.h: + (WebCore::ResourceHandleClient::receivedCredential): Removed. This method could never be + called, and no client used it. + (WebCore::ResourceHandleClient::receivedRequestToContinueWithoutCredential): Ditto. + + * platform/network/ResourceHandleInternal.h: + (WebCore::ResourceHandleInternal::ResourceHandleInternal): Split username and password out + of request URL. We want to always get a callback for credentials to manage them in WebCore, + so network back-end shouldn't see them too early. + + * platform/network/ResourceRequestBase.cpp: + (WebCore::ResourceRequestBase::removeCredentials): + * platform/network/ResourceRequestBase.h: + Added a removeCredentials() method that removes login and password parts from request URL. + + * platform/network/mac/ResourceHandleMac.mm: + (WebCoreCredentialStorage): Added a simple storage class for per-session credentials. + (WebCore::ResourceHandle::loadResourceSynchronously): Pass allowStoredCredentials through. + (WebCore::ResourceHandle::willSendRequest): On a redirect, credentials should be replaced. + (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Try credentials from the URL + and per-session credentials. Code was partially moved from Obj-C callback. + (WebCore::ResourceHandle::receivedCredential): Intercept per-session credentials and store + them in WebCore storage. + (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): Don't + store the redirected URL - we only needed credentials, which are now stored separately. + (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]): Removed + code that was setting credentials from URL. First, the code is now in ResourceHandle, and + also, it wasn't actually needed in Leopard release before this patch, see <rdar://problem/5298142>. + (-[WebCoreSynchronousLoader dealloc]): Release credentials. Note that unlike ResourceHandle, + this class still needs to track URL for checking whether a redirect is allowed. This is + not a great solution, and we should unify client code to use the same checks in sync and + async cases. + (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): Just like in + async case, put credentials aside to ensure that network back-end asks for them. + (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Use credentials + from URL, or from WebCore storage. + (-[WebCoreSynchronousLoader connectionShouldUseCredentialStorage:]): Don't use stored + credentials when not allowed to. + (+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]): + Put credentials aside to ensure that network back-end asks for them. + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::WebCoreCredentialStorage::set): + (WebCore::WebCoreCredentialStorage::get): + (WebCore::willSendRequest): + (WebCore::ResourceHandle::start): + (WebCore::ResourceHandle::willSendRequest): + (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): + (WebCore::ResourceHandle::receivedCredential): + (WebCore::ResourceHandle::loadResourceSynchronously): + (WebCore::WebCoreSynchronousLoader::willSendRequest): + (WebCore::WebCoreSynchronousLoader::didReceiveChallenge): + (WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage): + (WebCore::WebCoreSynchronousLoader::load): + Same changes as in Mac case. + + * platform/network/curl/ResourceHandleCurl.cpp: + (WebCore::ResourceHandle::loadResourceSynchronously): + * platform/network/qt/ResourceHandleQt.cpp: + (WebCore::ResourceHandle::loadResourceSynchronously): + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::ResourceHandle::loadResourceSynchronously): + Trying not to break the build. + + * dom/XMLTokenizerLibxml2.cpp: (WebCore::openFunc): + * xml/XSLTProcessor.cpp: (WebCore::docLoaderFunc): + Unconditionally allow stored credentials for these, as they only support same origin loads. + + * workers/WorkerContext.cpp: (WebCore::WorkerContext::importScripts): + WorkerContext.importScripts() can be cross-origin, but sending credentials with it is no worse + than sending them with <script src=...>, so this is also unconditionally allowed. + + * loader/DocumentThreadableLoader.cpp: + (WebCore::DocumentThreadableLoader::loadResourceSynchronously): Pass through storedCredentials. + (WebCore::DocumentThreadableLoader::create): Ditto. + (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Save storedCredentials and + sameOrigin flags foruse in callbacks. + (WebCore::DocumentThreadableLoader::willSendRequest): Assert that loaders aren't all confused. + (WebCore::DocumentThreadableLoader::didSendData): Ditto. + (WebCore::DocumentThreadableLoader::didReceiveResponse): Ditto. + (WebCore::DocumentThreadableLoader::didReceiveData): Ditto. + (WebCore::DocumentThreadableLoader::didFinishLoading): Ditto. + (WebCore::DocumentThreadableLoader::didFail): Ditto. + (WebCore::DocumentThreadableLoader::getShouldUseCredentialStorage): Don't use credential + storage if that's not allowed by the code that invoked DocumentThreadableLoader. + (WebCore::DocumentThreadableLoader::didReceiveAuthenticationChallenge): Simulate a failure + and cancel the request if we are about to ask the user for credentials for a cross-origin + request, which is forbidden by CORS (and would have been very confusing if allowed). + (WebCore::DocumentThreadableLoader::receivedCancellation): Assert that loaders aren't all confused. + + * loader/DocumentThreadableLoader.h: Updated for the new flags (storedCredentials and + sameOrigin) that affect the loader. Eventually, we need to move all CORS logic from XHR here. + + * loader/ThreadableLoader.h: (StoredCredentials): Added another flag that affects loader + behavior. We should combine all of these into a structure, and use it for sync requests, too. + + * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously): + * loader/FrameLoader.h: + * loader/ThreadableLoader.cpp: + (WebCore::ThreadableLoader::create): + (WebCore::ThreadableLoader::loadResourceSynchronously): + * loader/WorkerThreadableLoader.cpp: + (WebCore::WorkerThreadableLoader::WorkerThreadableLoader): + (WebCore::WorkerThreadableLoader::loadResourceSynchronously): + (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): + (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader): + * loader/WorkerThreadableLoader.h: + (WebCore::WorkerThreadableLoader::create): + Pass through storedCredentials. + +2009-04-13 David Hyatt <hyatt@apple.com> + + Reviewed by Cameron Zwarich. + + Remove an outdated comment in ScrollView.h + + * platform/ScrollView.h: + +2009-04-13 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Mark Rowe. + + https://bugs.webkit.org/show_bug.cgi?id=25177 + + QTTrack's -media method always return NULL in 64-bit QTKit, so + MediaPlayerPrivate::disableUnsupportedTracks should use + QTTrackMediaTypeAttribute to get a track's type. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): + +2009-04-13 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Cameron Zwarich. + + More fix for https://bugs.webkit.org/show_bug.cgi?id=21260 + Unbounded memory growth when churning elements with anonymous event handler functions + + Stop using protected event listeners on the window object. + + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::mark): Mark our event listeners, since they're + no longer protected. + + (WebCore::JSDOMWindow::addEventListener): + (WebCore::JSDOMWindow::removeEventListener): Create unprotected event + listeners, since we mark them now. + + * bindings/js/JSEventListener.h: Made some functions public so + DOMWindow could call them. + + * bindings/js/JSNodeCustom.cpp: Moved markEventListeners to a header, + so it could be shared. + + * bindings/scripts/CodeGeneratorJS.pm: Generate event listener marking + and invalidating code for the DOMWindow. + + * dom/RegisteredEventListener.h: + (WebCore::markEventListeners): + (WebCore::invalidateEventListeners): Added helper functions. + + * page/DOMWindow.idl: Make the window's event listener attributes not + protected. + +2009-04-13 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Mark Rowe. + + https://bugs.webkit.org/show_bug.cgi?id=25155 + + OS X standalone media documents should not switch from <video> to <embed> when + QTKit load state is QTMovieLoadStateLoading as that happens frequently when a loading + with a slow network connection or when a movie is not saved fast-start. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::updateStates): Don't open movie with plug-in when QTKit's + loadstate is QTMovieLoadStateLoading, wait until it drops below QTMovieLoadStateError. + +2009-04-13 Dmitry Titov <dimich@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=24453 + REGRESSION: If setTimeout is called on a iframe's window, the DOM changes to + the main document that timer callback makes are not flushed. + + * bindings/js/ScheduledAction.cpp: + (WebCore::ScheduledAction::execute): + Use Document::updateStyleForAllDocuments() instead of document->updateStyleIfNeeded() + since timers may affect documents other then their own. + +2009-04-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by David Hyatt. + + Check document for nullity to avoid crashing on GTK+, when + creating the WebView. + + * page/FrameView.cpp: + (WebCore::FrameView::needsLayout): + +2009-04-13 Ada Chan <adachan@apple.com> + + Forgot to capitalize the "US". + + * platform/text/win/TextBreakIteratorInternalICUWin.cpp: + (WebCore::currentTextBreakLocaleID): + +2009-04-13 Ada Chan <adachan@apple.com> + + <rdar://problem/6564956> URL field double-click selects entire domain, rather than single word or entire URL + Revert back to the old word breaking behavior by using en_US_POSIX locale. + + Reviewed by Steve Falkenburg. + + * platform/text/win/TextBreakIteratorInternalICUWin.cpp: + (WebCore::currentTextBreakLocaleID): + +2009-04-13 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + * platform/cf/BinaryPropertyList.cpp: Added comment. + * platform/cf/BinaryPropertyList.h: Fixed mistakes in comments. + +2009-04-13 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + Bug 25158: hit testing doesn't work right in some cases involving anonymous blocks + https://bugs.webkit.org/show_bug.cgi?id=25158 + rdar://problem/6769693 + + Test: editing/selection/click-after-nested-block.html + + * rendering/RenderBlock.cpp: + (WebCore::isChildHitTestCandidate): Added. Helper so the two loops in positionForPoint + can share code. + (WebCore::RenderBlock::positionForPoint): Removed unneeded special case for first + child box. Changed special case for last child box to propertly handle the various + types of child box that are not hit test candidates (the same ones already handled + by the hit test loop below), adding in a loop so we find the last candidate. + +2009-04-13 David Hyatt <hyatt@apple.com> + + Reviewed by Sam Weinig. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=25125. Rework scrolling so that a layout happens first when + it's already needed so that the code doesn't end up making bad decisions based off invalid document sizes. + + * WebCore.base.exp: + * page/FrameView.h: + (WebCore::FrameView::visibleContentsResized): + * platform/ScrollView.cpp: + (WebCore::ScrollView::ScrollView): + (WebCore::ScrollView::updateScrollbars): + * platform/ScrollView.h: + +2009-04-13 Adam Roben <aroben@apple.com> + + Add SharedBuffer::wrapCFData + + This is the CF-equivalent of wrapNSData. + + Reviewed by Brady Eidson. + + * platform/SharedBuffer.h: + * platform/cf/SharedBufferCF.cpp: + (WebCore::SharedBuffer::wrapCFData): + +2009-04-13 Dan Bernstein <mitz@apple.com> + + - build fix + + * page/EventHandler.cpp: + (WebCore::documentPointForWindowPoint): + +2009-04-13 Antti Koivisto <antti@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6740294> Increase the connection count per host + + Try to use six connections per host if possible. + + * WebCore.base.exp: + * loader/loader.cpp: + (WebCore::Loader::Loader): + * platform/mac/WebCoreSystemInterface.h: + * platform/mac/WebCoreSystemInterface.mm: + * platform/network/ResourceRequestBase.cpp: + (WebCore::initMaximumHTTPConnectionCountPerHost): + * platform/network/ResourceRequestBase.h: + * platform/network/mac/ResourceRequestMac.mm: + (WebCore::initMaximumHTTPConnectionCountPerHost): + +2009-04-13 Justin Garcia <justin.garcia@apple.com> + + Reviewed by Adele Peterson. + + https://bugs.webkit.org/show_bug.cgi?id=25153 + Can't place the caret into text field that scrolls the window on focus + + We refetch the target node in the shadow node case, and when we do so the window coordinate for the mouse event may + be invalid because of scrolling that the focus handler did. Cache the document point (that we derived from the window + coordinate) and use that any time we refetch. + + * page/EventHandler.cpp: + (WebCore::documentPointForWindowPoint): + (WebCore::EventHandler::handleMousePressEvent): + (WebCore::EventHandler::prepareMouseEvent): + +2009-04-13 Sam Weinig <sam@webkit.org> + + Reviewed by Geoffrey Garen. + + Rename JavaScriptCanOpenWindowsAutomatically to javaScriptCanOpenWindowsAutomatically + to conform to our style guidelines. + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::allowPopUp): + * page/Settings.h: + (WebCore::Settings::javaScriptCanOpenWindowsAutomatically): + +2009-04-13 Geoffrey Garen <ggaren@apple.com> + + Mac build fix: Made another header private. + + * WebCore.xcodeproj/project.pbxproj: + +2009-04-13 Jian Li <jianli@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25121 + Upstream changes to handle error messages from V8 when running worker script. + + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::reportFatalErrorInV8): + (WebCore::handleConsoleMessage): + (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy): + (WebCore::WorkerContextExecutionProxy::dispose): + (WebCore::WorkerContextExecutionProxy::initV8IfNeeded): + (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): + (WebCore::WorkerContextExecutionProxy::evaluate): + * bindings/v8/WorkerContextExecutionProxy.h: + +2009-04-13 Geoffrey Garen <ggaren@apple.com> + + Build fix: Made setInlineEventListenerForType not inline, since Document + calls it now. Made RegisteredEventListener.h a private header on Mac, + so WebKit can use it. + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::setInlineEventListenerForType): + +2009-04-13 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + - fix <rdar://problem/6404439> REGRESSION: Overlapping text and other + layout issues in View Sample feature of MYOB FIrstEdge v3 + + * page/Navigator.cpp: + (WebCore::shouldHideFourDot): Added "tdqm_loader.js" to the list of + JavaScript files this quirk applies to. + +2009-04-13 Sam Weinig <sam@webkit.org> + + Reviewed by Oliver Hunt. + + Move open and showModalDialog functions out of JSDOMWindowBase + and into JSDOMWindow by partially generating them. + + This slightly changes the behavior of getting window.showModalDialog + when the embedding app does not support it to return undefined regardless + of shadowing. This should not be an issue in a practice, but will be addressed + when we add a generic way to handle runtime specialization of property + access. + + * DerivedSources.make: Remove JSDOMWindowBase.lut.h + * WebCore.xcodeproj/project.pbxproj: Ditto. + * bindings/js/JSDOMWindowBase.cpp: + (WebCore::): + (WebCore::JSDOMWindowBase::getOwnPropertySlot): Move canShowModalDialog check from + here to JSDOMWindow::customGetOwnPropertySlot. + (WebCore::JSDOMWindowBase::put): Remove dead code. + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::createWindow): + (WebCore::JSDOMWindow::open): + (WebCore::JSDOMWindow::showModalDialog): + * bindings/js/JSDOMWindowCustom.h: + (WebCore::JSDOMWindow::customGetOwnPropertySlot): + * page/DOMWindow.cpp: + (WebCore::DOMWindow::parseModalDialogFeatures): Move from JSDOMWindowBase. + (WebCore::DOMWindow::allowPopUp): Ditto. + (WebCore::DOMWindow::canShowModalDialog): Ditto. + (WebCore::DOMWindow::canShowModalDialogNow): Ditto. + * page/DOMWindow.h: + * page/DOMWindow.idl: + +2009-04-13 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Sam Weinig. + + Moved storage for window event listeners into the window object. + + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::addEventListener): + (WebCore::JSDOMWindow::removeEventListener): Add / remove window event + listeners to / from the window object. + + * dom/Document.cpp: + (WebCore::Document::removeAllEventListeners): + (WebCore::Document::clear): + (WebCore::Document::setWindowInlineEventListenerForTypeAndAttribute): Moved + a bunch of code to the DOMWindow class, and left behind a few calls through + to DOMWindow, to support legacy clients. (Eventually, these will go away, too.) + + * dom/Document.h: ditto. + + * dom/Node.cpp: + (WebCore::Node::dispatchGenericEvent): + (WebCore::Node::dispatchWindowEvent): Dipatch window events on the window + object, not the document. + + * dom/Node.h: + * dom/RegisteredEventListener.h: Moved RegisteredEventListenerVector + declaration, since it's required in more places now. + + * history/CachedFrame.cpp: + (WebCore::CachedFrame::clear): Updated for rename. Also, remove event + listeners before detaching and clearing the document's window pointer, + since the the document needs its window pointer in order to tell the window + to clear its event listeners. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::stopLoading): + (WebCore::FrameLoader::canCachePageContainingThisFrame): + (WebCore::FrameLoader::logCanCacheFrameDecision): Updated for rename, and + movement of window event listeners into the window. + + * loader/ImageDocument.cpp: + (WebCore::ImageDocument::createDocumentStructure): Updated for movement + of window event listeners into the window. + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::handleEvent): + (WebCore::DOMWindow::addEventListener): + (WebCore::DOMWindow::removeEventListener): + (WebCore::DOMWindow::removeAllEventListeners): + (WebCore::DOMWindow::hasEventListener): + (WebCore::DOMWindow::setInlineEventListenerForType): + (WebCore::DOMWindow::removeInlineEventListenerForType): + (WebCore::DOMWindow::inlineEventListenerForType): + (WebCore::DOMWindow::addPendingFrameUnloadEventCount): + (WebCore::DOMWindow::removePendingFrameUnloadEventCount): + (WebCore::DOMWindow::addPendingFrameBeforeUnloadEventCount): + (WebCore::DOMWindow::removePendingFrameBeforeUnloadEventCount): + * page/DOMWindow.h: Moved a bunch of code to the DOMWindow class, from the Document. + + * page/Frame.cpp: + (WebCore::Frame::shouldClose): Updated for movement of window event listeners into the window. + +2009-04-13 Greg Bolsinga <bolsinga@apple.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=25149 + + The Geolocation timer needs to start after the UA has granted permission. + + * bindings/js/JSGeolocationCustom.cpp: Use PassRefPtr<PositionOptions> + (WebCore::JSGeolocation::getCurrentPosition): + (WebCore::JSGeolocation::watchPosition): + * page/Geolocation.cpp: Add a RefPtr<PositionOptions> so it can be used + later when the timer is started. Change PositionOptions* to PassRefPtr<PositionOptions> + where needed. + (WebCore::Geolocation::GeoNotifier::GeoNotifier): + (WebCore::Geolocation::GeoNotifier::startTimer): + (WebCore::Geolocation::getCurrentPosition): + (WebCore::Geolocation::watchPosition): + (WebCore::Geolocation::setIsAllowed): Start the timer is the UA allows + (WebCore::Geolocation::startTimer): + (WebCore::Geolocation::startTimersForOneShots): + (WebCore::Geolocation::startTimersForWatchers): + (WebCore::Geolocation::startTimers): + * page/Geolocation.h: + (WebCore::Geolocation::GeoNotifier::create): + +2009-04-13 Pamela Greene <pam@chromium.org> + + Reviewed by Darin Fisher. + + Fix Chromium (V8) build by renaming methods to match changes + in http://trac.webkit.org/changeset/42377. + + https://bugs.webkit.org/show_bug.cgi?id=25141 + + * bindings/v8/ScheduledAction.cpp: + (WebCore::ScheduledAction::execute): updateRendering() -> updateStyleIfNeeded() + * bindings/v8/V8AbstractEventListener.cpp: + (WebCore::V8AbstractEventListener::handleEvent): updateDocumentsRendering() -> updateStyleForAllDocuments() + +2009-04-13 Darin Fisher <darin@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=25136 + CRASH in DocumentLoader::removeSubresourceLoader due to null m_frame + + Test: fast/frames/frame-unload-crash.html + + * loader/DocumentLoader.cpp: + (WebCore::DocumentLoader::updateLoading): Added null check of m_frame. + +2009-04-13 Sam Weinig <sam@webkit.org> + + Reviewed by Tim Hatcher. + + Put the MessagePort constructor back in ENABLE_CHANNEL_MESSAGING. + + * page/DOMWindow.idl: + +2009-04-13 Greg Bolsinga <bolsinga@apple.com> + + Fix GTK build break. + + * platform/gtk/GeolocationServiceGtk.cpp: + (WebCore::GeolocationServiceGtk::updatePosition): + +2009-04-13 David Hyatt <hyatt@apple.com> + + Reviewed by Darin Adler and Dan Bernstein. + + Assertion in updateStyleForAllDocuments. Make sure to unscheduleStyleRecalc when an object goes into + the page cache. Disallow scheduling of style recalcs on a document that is already in the page cache. + Schedule a style recalc if needed when an object comes out of the page cache. + + * dom/Document.cpp: + (WebCore::Document::scheduleStyleRecalc): + (WebCore::Document::setInPageCache): + +2009-04-13 Timothy Hatcher <timothy@apple.com> + + Correctly sort (program) scripts in the Scripts panel popup menu. + + Reviewed by Ada Chan. + + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Refactor the code + and sort "(program)" options by the sourceID to maintain some order. + * inspector/front-end/utilities.js: + (indexOfObjectInListSortedByFunction): Fix a bug where identical objects would cause + an incorrect return value that confuses insertionIndexForObjectInListSortedByFunction. + Just set 'first' and break so the correct result will be returned. + +2009-04-13 Greg Bolsinga <bolsinga@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=24770 + + Add custom code for Coordinates that returns null when required by the + Geolocation spec. + + http://dev.w3.org/geo/api/spec-source.html#coordinates + + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/JSCoordinatesCustom.cpp: Added. + (WebCore::JSCoordinates::altitude): returns null if the value cannot be provided. + (WebCore::JSCoordinates::altitudeAccuracy): Ditto + (WebCore::JSCoordinates::heading): Ditto + (WebCore::JSCoordinates::speed): Ditto + * page/Coordinates.h: + (WebCore::Coordinates::create): Add 'canProvide' parameters and values + (WebCore::Coordinates::canProvideAltitude): + (WebCore::Coordinates::canProvideAltitudeAccuracy): + (WebCore::Coordinates::canProvideHeading): + (WebCore::Coordinates::canProvideSpeed): + (WebCore::Coordinates::Coordinates): + * page/Coordinates.idl: specify custom getters + * platform/mac/GeolocationServiceMac.mm: Set the values correctly if they cannot be provided. + (-[WebCoreCoreLocationObserver locationManager:didUpdateToLocation:fromLocation:]): + +2009-04-13 Adele Peterson <adele@apple.com> + + Reviewed by Darin Adler. + + Fix for <rdar://problem/5510537> Typing return at start of block quote yields empty quoted line + + Test: editing/inserting/5510537.html + + * editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply): If the break insertion position + is at the beginning of the topmost quote, then just insert the <br> before the blockquote. Otherwise, if the break + insertion position is at the beginning of any quote, adjust the position so the break comes before the current quote level + so we don't end up with an empty line in that quote in addition to the new line we're adding with the <br>. + +2009-04-11 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + Fix problem when encoding history files with duplicate integer arrays near the end of the file. + This results in an assertion failure, and if assertions are turned off, corrupted output. + + When writing an integer array it's important not to add an object reference to the + aggregate buffer. The writing of the array does not depend on the aggregate buffer. But, + more importantly, it's possible this instance integer array is a duplicate and won't be + written out. If so, there's no guarantee there's enough space in the aggregate buffer to + store the object references (the references will be ignored). In some cases the aggregate + buffer can then overrun the data being written; normally this is prevented by the fact that + the data being written will include a copy of the aggregate buffer. + + Also removed a bit of unneeded dead code to handle the integer -1. + + * platform/cf/BinaryPropertyList.cpp: + (WebCore::BinaryPropertyListPlan::BinaryPropertyListPlan): Removed unneeded + m_integerNegativeOneObjectReference, since property lists support only non-negative integers. + (WebCore::BinaryPropertyListPlan::writeInteger): Removed support for + m_integerNegativeOneObjectReference. + (WebCore::BinaryPropertyListPlan::integerObjectReference): Ditto. + (WebCore::BinaryPropertyListSerializer::writeIntegerWithoutAddingAggregateObjectReference): + Added. Factored out most of writeInteger, for use in writeIntegerArray, without calling + addAggregateObjectReference. + (WebCore::BinaryPropertyListSerializer::writeInteger): Changed to call the new + writeIntegerWithoutAddingAggregateObjectReference function. + (WebCore::BinaryPropertyListSerializer::writeIntegerArray): Call the new + writeIntegerWithoutAddingAggregateObjectReference function and therefore remove the + code to save and restore m_currentAggregateBufferByte, which is no longer needed. + +2009-04-13 Holger Hans Peter Freyther <zecke@selfish.org> + + Unreviewed Qt build fix. + + * platform/graphics/qt/FontQt.cpp: + (WebCore::Font::floatWidthForComplexText): + +2009-04-12 Sam Weinig <sam@webkit.org> + + Reviewed by Mark Rowe. + + Move the event and crypto attributes and the captureEvents and releaseEvents + functions out of JSDOMWindowBase by partially generating them. + + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::currentEvent): Make const. + * bindings/js/JSDOMGlobalObject.h: + * bindings/js/JSDOMWindowBase.cpp: + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::crypto): Not implemented. + (WebCore::JSDOMWindow::event): + (WebCore::JSDOMWindow::captureEvents): Not implemented. + (WebCore::JSDOMWindow::releaseEvents): Ditto. + * page/DOMWindow.idl: + +2009-04-12 Sam Weinig <sam@webkit.org> + + Reviewed by Mark Rowe. + + Move more attributes out of JSDOMWindowBase by + partially generating them. + + - Expose the MessagePort constructor. + + * bindings/js/JSDOMGlobalObject.h: + (WebCore::getDOMConstructor): + * bindings/js/JSDOMWindowBase.cpp: + (setJSDOMWindowBaseEvent): + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::image): + (WebCore::JSDOMWindow::option): + (WebCore::JSDOMWindow::audio): + (WebCore::JSDOMWindow::webKitPoint): + (WebCore::JSDOMWindow::webKitCSSMatrix): + (WebCore::JSDOMWindow::xMLHttpRequest): + (WebCore::JSDOMWindow::xSLTProcessor): + (WebCore::JSDOMWindow::messageChannel): + (WebCore::JSDOMWindow::worker): + * page/DOMWindow.idl: + +2009-04-12 Timothy Hatcher <timothy@apple.com> + + A resource's filename is not correct after a redirect in the Inspector. + + Reviewed by Dan Bernstein. + + * inspector/InspectorResource.cpp: + (WebCore::InspectorResource::updateScriptObject): Fix a typo in the + lastPathComponent property name. + +2009-04-12 Adele Peterson <adele@apple.com> + + Reviewed by Darin Adler. + + Test: editing/inserting/6609479-1.html + + Follow-up to <rdar://problem/6609479>. + + Before my last change, a Mail blockquote would've been broken up earlier, and you would've been guaranteed that the inserted content + was at the start of a paragraph. Now we need to check for that explicitly, and only merge the start of the inserted content if it is + at the start of a paragraph. + + * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::shouldMergeStart): + +2009-04-11 Adele Peterson <adele@apple.com> + + Reviewed by Dan Bernstein. + + Fix for <rdar://problem/6609479> Pressing return inside a table cell that's inside quoted content will split the table + + Test: editing/inserting/6609479.html + + Don't break a blockquote if pasting or inserting into a table. + + * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): + * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent): + +2009-04-11 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + - fix <rdar://problem/6643103> Unscaled values from body.scrollHeight + + Test: fast/css/zoom-body-scroll.html + + Adjust scroll{Left,Top,Width,Height} values for zoom in getters and + setters. + + * html/HTMLBodyElement.cpp: + (WebCore::adjustForZoom): + (WebCore::HTMLBodyElement::scrollLeft): + (WebCore::HTMLBodyElement::setScrollLeft): + (WebCore::HTMLBodyElement::scrollTop): + (WebCore::HTMLBodyElement::setScrollTop): + (WebCore::HTMLBodyElement::scrollHeight): + (WebCore::HTMLBodyElement::scrollWidth): + +2009-04-10 Timothy Hatcher <timothy@apple.com> + + Allow page navigation and reload while stopped at a breakpoint. + + <rdar://problem/6781108> Having a breakpoint active prevents page reload + + Reviewed by Darin Adler. + + * inspector/InspectorController.cpp: + (WebCore::InspectorController::didContinue): Call the resumedScript function. + * inspector/InspectorController.h: Added didContinue. + * inspector/JavaScriptDebugListener.h: Ditto. + * inspector/JavaScriptDebugServer.cpp: + (WebCore::JavaScriptDebugServer::pauseIfNeeded): Call didContinue on the listeners. + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype.debuggerResumed): Update the interface and state. + * inspector/front-end/inspector.js: + (WebInspector.resumedScript): Call ScriptsPanel.debuggerResumed. + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Call resumeDebugger. + +2009-04-10 Sam Weinig <sam@webkit.org> + + Reviewed by Adele Peterson. + + Remove unused include for JSLock. + + * page/mac/FrameMac.mm: + +2009-04-10 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Add back the keepAlive timer for after the script execution to + protect the callers of evaluate, as was part of the original intent + of timer. + + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::evaluate): + * page/mac/FrameMac.mm: + +2009-04-10 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser. + + Fixed https://bugs.webkit.org/show_bug.cgi?id=25137 + + If we reload, the animation controller sticks around and has + a stale animation time. So the needed delay is computed wrong. + I added a reset of the animation timer on load. + + I did not do a test case because this only happens on reload so I + couldn't make an automated test. I tried using an iframe and using + reload() but that doesn't tickle the bug. + + * dom/Document.cpp: + (WebCore::Document::implicitOpen): + +2009-04-10 Grace Kloba <klobag@gmail.com> + + Reviewed by Darin Adler. + + Move WORKERS header files inside ENABLE(WORKERS). + So if WORKERS is not enabled and the generated files are not generated, the build is still working. + + * bindings/js/JSDOMGlobalObject.cpp: + * bindings/js/JSMessageChannelConstructor.cpp: + * bindings/js/ScheduledAction.cpp: + +2009-04-10 Darin Adler <darin@apple.com> + + Reviewed by Brady Eidson. + + <rdar://problem/6773515> crash in push_heap inside WebCore when printing + + The crash was due to manipulating a timer on a different thread than the one it was created on. + This adds some diagnostics so we'll catch that kind of mistake immediately. + + * platform/Timer.cpp: + (WebCore::TimerBase::TimerBase): Store the thread identifier in debug versions. + (WebCore::TimerBase::start): Assert it's the same thread the timer was created on. + (WebCore::TimerBase::stop): Ditto. + (WebCore::TimerBase::isActive): Ditto. + (WebCore::TimerBase::setNextFireTime): Ditto. + + * platform/Timer.h: Added the thread identifier data member. + +2009-04-10 Chris Marrin <cmarrin@apple.com> + + Reviewed by Dan Bernstein + + https://bugs.webkit.org/show_bug.cgi?id=25108 + + If you remove a class with a transition while that transition is running + the animation timer will continue to fire after the transition is finished. + This has no visual indication, but it does drain the processor. And in some + cases it might even cause a glitch in future animations. Unfortunately there + is no way to test this without putting in printfs. + + This happens because the animation logic is never traversed after a transition + is removed, so we never get a chance to cleanup. So I added cleanup in the logic + that fires the dispatch of the last style change when the animation finishes. + + Test: transitions/remove-transition-style.html + + * page/animation/AnimationController.cpp: + (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired): + * page/animation/CompositeAnimation.cpp: + (WebCore::CompositeAnimation::updateTransitions): + (WebCore::CompositeAnimation::animate): + (WebCore::CompositeAnimation::cleanupFinishedAnimations): + * page/animation/CompositeAnimation.h: + +2009-04-10 Sam Weinig <sam@webkit.org> + + Reviewed by Geoffrey Garen. + + Fix for <rdar://problem/6648858> + CrashTracer: [REGRESSION(Safari 4)] 60 crashes in Safari at com.apple.WebCore • WebCore::ScriptController::evaluate + 241 + + The Frame (and therefore ScriptController) were being destroyed + during JavaScript execution causing the JSDOMWindowShell to become + null. + + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::evaluate): Use a RefPtr to protect the Frame + instead of the keep-alive timer, since a nested event loop used from with-in + JavaScript execution could cause the timer to fire before returning. + +2009-04-10 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Timothy Hatcher. + + https://bugs.webkit.org/show_bug.cgi?id=25133 + Fix an error in InspectorController's bindings, clean up a few header + includes, make empty object construction in ScriptObject less ambiguous. + + * bindings/js/JSInspectorControllerCustom.cpp: + (WebCore::JSInspectorController::setSetting): Send correct argument from + the bindings. + * bindings/js/ScriptObject.cpp: + (WebCore::ScriptObject::createNew): Added. + * bindings/js/ScriptObject.h: Removed constructor, added decl for createNew. + * inspector/ConsoleMessage.cpp: Remove unused header. + * inspector/ConsoleMessage.h: Ditto. + * inspector/InspectorResource.cpp: + (WebCore::createHeadersObject): Changed to use ScriptObject::createNew. + +2009-04-10 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser. + + Fixed https://bugs.webkit.org/show_bug.cgi?id=25134 + + This both fixes a bug where I was not sending in the right time + to continue the animation and was not recomputing current time + when coming out of suspend. + + * page/animation/AnimationBase.cpp: + (WebCore::AnimationBase::updateStateMachine): + * page/animation/AnimationController.cpp: + (WebCore::AnimationControllerPrivate::suspendAnimations): + (WebCore::AnimationControllerPrivate::resumeAnimations): + +2009-04-10 Adam Roben <aroben@apple.com> + + Give Windows's <select> popup menus drop shadows + + Rubber-stamped by Steve Falkenburg. + + No test possible. + + * platform/win/PopupMenuWin.cpp: + (WebCore::registerPopup): Use the CS_DROPSHADOW window class style. + +2009-04-10 Timothy Hatcher <timothy@apple.com> + + Fix a bug in the Web Inspector where it would show scripts + from previous pages when toggling the debugger off and back on. + + https://bugs.webkit.org/show_bug.cgi?id=25095 + rdar://problem/6769970 + + Reviewed by John Sullivan. + + * bindings/js/ScriptCachedFrameData.cpp: + (WebCore::ScriptCachedFrameData::ScriptCachedFrameData): Null out the + debugger for the scriptController. This balances the attachDebugger + that was already in ScriptCachedFrameData::restore. + (WebCore::ScriptCachedFrameData::restore): Clean up an if statement. + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::clearWindowShell): Clear the debugger from + the current window before setting the new window. + * inspector/JavaScriptDebugServer.cpp: + (WebCore::JavaScriptDebugServer::recompileAllJSFunctions): Only accumulate + source providers for code associated this as the debugger. + +2009-04-10 Pierre d'Herbemont <pdherbemont@apple.com> + + Reviewed by Adele Peterson. + + <rdar://problem/6646998> Avoid starting QTKitServer if possible + When possible avoid asking QTKit for the MIME types that require QTKitServer + when running 64-bit. + + * WebCore.base.exp: Added new entry point. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::addFileTypesToCache): Add an NSArray of types to the cache. + (WebCore::mimeCommonTypesCache): Add all "common" QTKit types to the cache. + (WebCore::mimeModernTypesCache): Add only "modern" QTKit types to the cache (this list does + not start QTKitServer if it is not already running). + (WebCore::MediaPlayerPrivate::getSupportedTypes): Refactored. + (WebCore::MediaPlayerPrivate::supportsType): Look in list of "modern" types first to avoid + starting QTKitServer if possible. + + * platform/mac/WebCoreSystemInterface.h: Add wkQTIncludeOnlyModernMediaFileTypes. + * platform/mac/WebCoreSystemInterface.mm: Ditto. + +2009-04-10 Adam Roben <aroben@apple.com> + + Turn on window animations for <select> popup menus + + We turned these off back when <select> popup menus were partially + transparent. Now that they're opaque, there's no reason not to + animate them. + + Reviewed by Steve Falkenburg. + + No test possible. + + * platform/win/PopupMenuWin.cpp: + (WebCore::PopupMenu::show): Remove the #ifdef that was disabling the + window animation. + +2009-04-10 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + - fix a regression from r42379 which made zero-width characters affect + line height + + Test: fixes fast/text/wide-zero-width-space.html + + * platform/graphics/mac/FontMacATSUI.mm: + (WebCore::overrideLayoutOperation): Add to the fallback font list set + here, and only if the glyph is not zero-width... + (WebCore::ATSULayoutParameters::initialize): ...instead of doing it + here. This matches WidthIterator's behavior. + +2009-04-10 Darin Fisher <darin@chromium.org> + + Fixing build bustage caused by warnings being treated as errors. + 1- A local variable was only be used inside a debug assertion, which + caused grief for the release build. + 2- Missing initializer for member 'DocumentMarker::activeMatch' + + * dom/Document.cpp: + (WebCore::Document::addMarker): + (WebCore::Document::setMarkersActive): + +2009-04-10 Finnur Thorarinsson <finnur.webkit@gmail.com> + + Reviewed by John Sullivan. + + Fixing: https://bugs.webkit.org/show_bug.cgi?id=25117 + (TextMatches don't have a concept of active match) + + For the ports that use the DocumentMarker as highlighting for FindInPage it is + useful to have a flag that specifies which marker is active, so it can be drawn + in a different color. + + This allows me to remove the hack to use the SelectionController to highlight + the active match (in the ChromiumWin port). + + * dom/Document.cpp: + (WebCore::Document::setMarkersActive): + * dom/Document.h: + * dom/DocumentMarker.h: + * rendering/InlineTextBox.cpp: + (WebCore::InlineTextBox::paintTextMatchMarker): + * rendering/RenderTheme.cpp: + (WebCore::RenderTheme::platformActiveTextSearchHighlightColor): + (WebCore::RenderTheme::platformInactiveTextSearchHighlightColor): + * rendering/RenderTheme.h: + * rendering/RenderThemeChromiumWin.cpp: + (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor): + (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor): + (WebCore::RenderThemeChromiumWin::platformActiveTextSearchHighlightColor): + (WebCore::RenderThemeChromiumWin::platformInactiveTextSearchHighlightColor): + * rendering/RenderThemeChromiumWin.h: + +2009-04-10 Pamela Greene <pam@chromium.org> + + Reviewed by Dimitri Glazkov. + + Build fix for Chromium. + https://bugs.webkit.org/show_bug.cgi?id=12440 + + * page/chromium/FrameChromium.cpp: + (WebCore::computePageRectsForFrame): change docWidth() to overflowWidth() + +2009-04-09 David Hyatt <hyatt@apple.com> + + Reviewed by Oliver Hunt + + Add a timer for style recalc (similar to the one used for scheduling layouts). For now in order + to reduce the risk of regressions, I have left in all the synchronous machinery for updating style + following DOM events and JavaScript timeouts. Eventually these calls will be removed. + + Where the timer will really kick in and be useful is for clients that do style changes from + Objective-C DOM bindings or that execute JavaScript to manipulate style from the JavaScriptCore C API. + + * dom/ContainerNode.cpp: + (WebCore::ContainerNode::insertBefore): + (WebCore::ContainerNode::replaceChild): + (WebCore::ContainerNode::removeChild): + (WebCore::ContainerNode::appendChild): + * dom/Document.cpp: + (WebCore::Document::Document): + (WebCore::Document::~Document): + (WebCore::Document::scheduleStyleRecalc): + (WebCore::Document::unscheduleStyleRecalc): + (WebCore::Document::styleRecalcTimerFired): + (WebCore::Document::updateStyleForAllDocuments): + (WebCore::Document::detach): + * dom/Document.h: + * dom/Node.cpp: + (WebCore::Node::setNeedsStyleRecalc): + (WebCore::Node::lazyAttach): + +2009-04-09 Oliver Hunt <oliver@apple.com> + + Reviewed by Gavin Barraclough. + + <rdar://problem/6586787> JS debugger does not work in 64-bit + + Don't truncate the source id in JSCallFrame + + * inspector/JavaScriptCallFrame.h: + +2009-04-09 Adam Roben <aroben@apple.com> + + Start compiling HistoryPropertyList on Windows + + Reviewed by Darin Adler. + + * WebCore.vcproj/WebCore.vcproj: Added HistoryPropertyList and its + dependencies to the project. Copy headers from history/cf to + $WebKitOutputDir. + * history/cf/HistoryPropertyList.cpp: Added StringExtras.h so that + this file will compile on Windows. + +2009-04-09 Dan Bernstein <mitz@apple.com> + + Reviewed by Dave Hyatt. + + - fix <rdar://problem/6166612> Text boxes' metrics should be based on + the actual fonts used in them, not just the primary font + + Covered by many existing layout tests + + * platform/graphics/Font.cpp: + (WebCore::Font::floatWidth): Added a fallbackFonts parameter. If the + platform supports collecting fallback fonts in its complex font path + and fallbackFonts is not null, all fallback fonts used for the text run + will be added to it. + + * platform/graphics/Font.h: + (WebCore::Font::width): Ditto. + + * platform/graphics/FontFastPath.cpp: + (WebCore::Font::glyphDataForCharacter): Removed an unnecessary namespace + qualifier. + (WebCore::Font::floatWidthForSimpleText): Added a fallbackFonts + parameter, which is passed down to WidthIterator. + + * platform/graphics/WidthIterator.cpp: + (WebCore::WidthIterator::WidthIterator): Added a fallbackFonts parameter + and used it to initialize the m_fallbackFonts member. + (WebCore::WidthIterator::advance): Track the fonts being used and add + any fallback fonts to the m_fallbackFonts set. Make sure to only add + non-small-caps fonts. + + * platform/graphics/WidthIterator.h: + + * platform/graphics/chromium/FontChromiumWin.cpp: + (WebCore::Font::canReturnFallbackFontsForComplexText): Added an + implementation that returns false, meaning this platform's + implementation of floatWidthForComplexText() does not populate the + fallbackFonts set. + (WebCore::Font::floatWidthForComplexText): Updated for the new + prototype. + + * platform/graphics/chromium/FontLinux.cpp: Ditto. + + * platform/graphics/gtk/FontGtk.cpp: Ditto. + + * platform/graphics/mac/CoreTextController.cpp: + (WebCore::CoreTextController::CoreTextController): Added a fallbackFonts + parameter and used it to initialize the m_fallbackFonts member. + (WebCore::CoreTextController::collectCoreTextRunsForCharacters): Add + fallback fonts to m_fallbackFonts. + + * platform/graphics/mac/CoreTextController.h: + + * platform/graphics/mac/FontMac.mm: + (WebCore::Font::canReturnFallbackFontsForComplexText): Added an + implementation that returns true, indicating that the Mac + implementations of floatWidthForComplexText() populate the fallbackFonts + set. + * platform/graphics/mac/FontMacATSUI.mm: + (WebCore::ATSULayoutParameters::ATSULayoutParameters): Added a + fallbackFonts parameter and used it to initialize the m_fallbackFonts + member. + (WebCore::ATSULayoutParameters::initialize): Add fallback fonts to + m_fallbackFonts. + (WebCore::Font::floatWidthForComplexText): Added a fallbackFonts + parameter, which is passed down to ATSULayoutParameters. + + * platform/graphics/mac/FontMacCoreText.cpp: + (WebCore::Font::floatWidthForComplexText): Added a fallbackFonts + parameter, which is passed down to CoreTextController. + + * platform/graphics/win/FontWin.cpp: + (WebCore::Font::canReturnFallbackFontsForComplexText): Added an + implementation that returns true, indicating that the + UniscribeController-based implementations of floatWidthForComplexText() + populate the fallbackFonts set. + (WebCore::Font::floatWidthForComplexText): Added a fallbackFonts + parameter, which is passed down to UniscribeController. + + * platform/graphics/win/UniscribeController.cpp: + (WebCore::UniscribeController::UniscribeController): Added a + fallbackfonts parameter and used it to initialize m_fallbackFonts. + (WebCore::UniscribeController::advance): Add fallback fonts to + m_fallbackFonts. + + * platform/graphics/win/UniscribeController.h: + + * platform/graphics/wx/FontWx.cpp: + (WebCore::Font::canReturnFallbackFontsForComplexText): Added an + implementation that returns false, meaning this platform's + implementation of floatWidthForComplexText() does not populate the + fallbackFonts set. + (WebCore::Font::floatWidthForComplexText): Updated for the new + prototype. + + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::computeLogicalBoxHeights): For an InlineTextBox + with multiple fonts, compute a common baseline and line height by + considering all fonts' ascents and descents (and line spacing, if + applicable). + + * rendering/InlineTextBox.cpp: + (WebCore::InlineTextBox::setFallbackFonts): Added. Temporarily stores + the set of fallback fonts in a vector. + (WebCore::InlineTextBox::takeFallbackFonts): Added. Returns the fallback + fonts previously stored and removes them from storage. + + * rendering/InlineTextBox.h: + + * rendering/RenderText.cpp: + (WebCore::RenderText::RenderText): Initialized the + m_knownNotToUseFallbackFonts to false. + (WebCore::RenderText::styleDidChange): Reset + m_knownNotToUseFallbackFonts to false if the style difference is such that + affects layout. + (WebCore::RenderText::widthFromCache): Added a fallbackFonts parameter, + which is passed down to Font::width(). + (WebCore::RenderText::trimmedPrefWidths): Updated for the change to + widthFromCache(). + (WebCore::RenderText::calcPrefWidths): Made this call a private version + of calcPrefWidths() that takes a fallbackFonts parameter and set the + m_knownNotToUseFallbackFonts to true if the set comes back empty. + The private version passes the fallbackFonts set to widthFromCache(). + (WebCore::RenderText::setText): Reset m_knownNotToUseFallbackFonts to + false. + (WebCore::RenderText::createFallbackFontMetricsBox): Added. + (WebCore::RenderText::width): Added a fallbackFonts parameter, which is + passed down to calcPrefWidths(), widthFromCache() and Font::width(). + Set m_knownNotToUseFallbackFonts to true when appropriate. + + * rendering/RenderText.h: + + * rendering/bidi.cpp: + (WebCore::RenderBlock::constructLine): Added an assertion and a continue + statement to remove one level of indentation. + (WebCore::RenderBlock::computeHorizontalPositionsForLine): Temporarily + store the set of fallback fonts in the InlineTextBox. + (WebCore::RenderBlock::computeVerticalPositionsForLine): Added an + assertion. + +2009-04-09 David Hyatt <hyatt@apple.com> + + Reviewed by Adam Roben + + Rename all of the changed()/setChanged()/setDocumentChanged() methods to mention style recalc + explicitly instead. + + * bindings/js/JSCustomPositionCallback.cpp: + (WebCore::JSCustomPositionCallback::handleEvent): + * bindings/js/JSCustomPositionErrorCallback.cpp: + (WebCore::JSCustomPositionErrorCallback::handleEvent): + * bindings/js/JSCustomSQLStatementCallback.cpp: + (WebCore::JSCustomSQLStatementCallback::handleEvent): + * bindings/js/JSCustomSQLStatementErrorCallback.cpp: + (WebCore::JSCustomSQLStatementErrorCallback::handleEvent): + * bindings/js/JSCustomSQLTransactionCallback.cpp: + (WebCore::JSCustomSQLTransactionCallback::handleEvent): + * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: + (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent): + * bindings/js/JSCustomVoidCallback.cpp: + (WebCore::JSCustomVoidCallback::handleEvent): + * bindings/js/JSCustomXPathNSResolver.cpp: + (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): + * bindings/js/JSEventListener.cpp: + (WebCore::JSAbstractEventListener::handleEvent): + * bindings/js/ScheduledAction.cpp: + (WebCore::ScheduledAction::execute): + * bindings/js/ScriptControllerMac.mm: + (WebCore::updateStyleIfNeededForBindings): + (WebCore::ScriptController::initJavaJSBindings): + * css/CSSMutableStyleDeclaration.cpp: + (WebCore::CSSMutableStyleDeclaration::removeProperty): + (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc): + (WebCore::CSSMutableStyleDeclaration::setProperty): + (WebCore::CSSMutableStyleDeclaration::setStringProperty): + (WebCore::CSSMutableStyleDeclaration::setImageProperty): + (WebCore::CSSMutableStyleDeclaration::parseDeclaration): + (WebCore::CSSMutableStyleDeclaration::addParsedProperties): + (WebCore::CSSMutableStyleDeclaration::setCssText): + (WebCore::CSSMutableStyleDeclaration::merge): + (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet): + * css/CSSMutableStyleDeclaration.h: + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::SelectorChecker::allVisitedStateChanged): + (WebCore::CSSStyleSelector::SelectorChecker::visitedStateChanged): + * css/CSSVariablesDeclaration.cpp: + (WebCore::CSSVariablesDeclaration::removeVariable): + (WebCore::CSSVariablesDeclaration::setVariable): + (WebCore::CSSVariablesDeclaration::setNeedsStyleRecalc): + * css/CSSVariablesDeclaration.h: + * dom/ContainerNode.cpp: + (WebCore::ContainerNode::insertBefore): + (WebCore::ContainerNode::replaceChild): + (WebCore::ContainerNode::removeChild): + (WebCore::ContainerNode::appendChild): + (WebCore::ContainerNode::detach): + (WebCore::ContainerNode::setFocus): + (WebCore::ContainerNode::setActive): + (WebCore::ContainerNode::setHovered): + * dom/Document.cpp: + (WebCore::Document::Document): + (WebCore::Document::~Document): + (WebCore::Document::scheduleStyleRecalc): + (WebCore::Document::unscheduleStyleRecalc): + (WebCore::Document::recalcStyle): + (WebCore::Document::updateStyleIfNeeded): + (WebCore::Document::updateStyleForAllDocuments): + (WebCore::Document::updateLayout): + (WebCore::Document::implicitClose): + (WebCore::Document::prepareMouseEvent): + (WebCore::Document::setFocusedNode): + (WebCore::Document::setCSSTarget): + * dom/Document.h: + * dom/Element.cpp: + (WebCore::Element::recalcStyle): + (WebCore::checkForSiblingStyleChanges): + * dom/InputElement.cpp: + (WebCore::InputElement::parseMaxLengthAttribute): + * dom/MouseRelatedEvent.cpp: + (WebCore::MouseRelatedEvent::receivedTarget): + * dom/Node.cpp: + (WebCore::Node::Node): + (WebCore::Node::setNeedsStyleRecalc): + (WebCore::Node::lazyAttach): + (WebCore::Node::dispatchGenericEvent): + * dom/Node.h: + (WebCore::Node::needsStyleRecalc): + (WebCore::Node::childNeedsStyleRecalc): + (WebCore::Node::setChildNeedsStyleRecalc): + * dom/OptionElement.cpp: + (WebCore::OptionElement::setSelectedState): + * dom/ScriptElement.cpp: + (WebCore::ScriptElementData::evaluateScript): + * dom/StyledElement.cpp: + (WebCore::StyledElement::attributeChanged): + (WebCore::StyledElement::classAttributeChanged): + (WebCore::StyledElement::parseMappedAttribute): + * dom/Text.cpp: + (WebCore::Text::recalcStyle): + * dom/XMLTokenizer.cpp: + (WebCore::XMLTokenizer::insertErrorMessageBlock): + * editing/DeleteButtonController.cpp: + (WebCore::DeleteButtonController::enable): + * editing/Editor.cpp: + (WebCore::Editor::setBaseWritingDirection): + * editing/SelectionController.cpp: + (WebCore::SelectionController::nodeWillBeRemoved): + (WebCore::SelectionController::layout): + (WebCore::SelectionController::focusedOrActiveStateChanged): + * html/HTMLAnchorElement.cpp: + (WebCore::HTMLAnchorElement::parseMappedAttribute): + * html/HTMLElement.cpp: + (WebCore::HTMLElement::setInnerText): + (WebCore::HTMLElement::isContentEditable): + (WebCore::HTMLElement::isContentRichlyEditable): + (WebCore::HTMLElement::contentEditable): + * html/HTMLEmbedElement.cpp: + (WebCore::HTMLEmbedElement::updateWidget): + * html/HTMLFormControlElement.cpp: + (WebCore::HTMLFormControlElement::parseMappedAttribute): + * html/HTMLFrameSetElement.cpp: + (WebCore::HTMLFrameSetElement::parseMappedAttribute): + (WebCore::HTMLFrameSetElement::recalcStyle): + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::parseMappedAttribute): + (WebCore::HTMLInputElement::setChecked): + (WebCore::HTMLInputElement::setIndeterminate): + (WebCore::HTMLInputElement::setValue): + (WebCore::HTMLInputElement::setAutofilled): + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::finishParsingChildren): + * html/HTMLObjectElement.cpp: + (WebCore::HTMLObjectElement::updateWidget): + (WebCore::HTMLObjectElement::finishParsingChildren): + (WebCore::HTMLObjectElement::childrenChanged): + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::recalcStyle): + (WebCore::HTMLSelectElement::restoreState): + (WebCore::HTMLSelectElement::setRecalcListItems): + (WebCore::HTMLSelectElement::reset): + (WebCore::HTMLSelectElement::typeAheadFind): + * html/HTMLTableElement.cpp: + (WebCore::setTableCellsChanged): + (WebCore::HTMLTableElement::parseMappedAttribute): + * html/HTMLTextAreaElement.cpp: + (WebCore::HTMLTextAreaElement::setValue): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::stopLoading): + (WebCore::FrameLoader::executeScript): + (WebCore::FrameLoader::gotoAnchor): + * page/DOMWindow.cpp: + (WebCore::DOMWindow::alert): + (WebCore::DOMWindow::confirm): + (WebCore::DOMWindow::prompt): + * page/EventHandler.cpp: + (WebCore::EventHandler::hoverTimerFired): + * page/FrameView.cpp: + (WebCore::FrameView::layout): + (WebCore::FrameView::needsLayout): + * page/animation/AnimationBase.cpp: + (WebCore::AnimationBase::setNeedsStyleRecalc): + (WebCore::AnimationBase::updateStateMachine): + * page/animation/AnimationBase.h: + * page/animation/AnimationController.cpp: + (WebCore::AnimationControllerPrivate::AnimationControllerPrivate): + (WebCore::AnimationControllerPrivate::clear): + (WebCore::AnimationControllerPrivate::updateAnimationTimer): + (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired): + (WebCore::AnimationControllerPrivate::startupdateStyleIfNeededDispatcher): + (WebCore::AnimationControllerPrivate::addEventToDispatch): + (WebCore::AnimationControllerPrivate::addNodeChangeToDispatch): + (WebCore::AnimationControllerPrivate::animationTimerFired): + (WebCore::AnimationControllerPrivate::pauseAnimationAtTime): + (WebCore::AnimationControllerPrivate::pauseTransitionAtTime): + (WebCore::AnimationControllerPrivate::addToStartTimeResponseWaitList): + (WebCore::AnimationController::cancelAnimations): + * page/animation/AnimationControllerPrivate.h: + * page/animation/ImplicitAnimation.cpp: + (WebCore::ImplicitAnimation::sendTransitionEvent): + * page/animation/KeyframeAnimation.cpp: + (WebCore::KeyframeAnimation::endAnimation): + (WebCore::KeyframeAnimation::sendAnimationEvent): + * rendering/RenderObject.cpp: + (WebCore::RenderObject::updateDragState): + * rendering/RenderView.cpp: + (WebCore::RenderView::selectionBounds): + * svg/SVGAElement.cpp: + (WebCore::SVGAElement::svgAttributeChanged): + * svg/SVGAnimationElement.cpp: + (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue): + * svg/SVGCursorElement.cpp: + (WebCore::SVGCursorElement::svgAttributeChanged): + * svg/SVGElementInstance.cpp: + (WebCore::SVGElementInstance::setNeedsUpdate): + * svg/SVGForeignObjectElement.cpp: + (WebCore::addCSSPropertyAndNotifyAttributeMap): + * svg/SVGStopElement.cpp: + (WebCore::SVGStopElement::parseMappedAttribute): + * svg/SVGStyledElement.cpp: + (WebCore::SVGStyledElement::parseMappedAttribute): + * svg/SVGUseElement.cpp: + (WebCore::SVGUseElement::svgAttributeChanged): + (WebCore::SVGUseElement::childrenChanged): + (WebCore::SVGUseElement::recalcStyle): + * svg/animation/SMILTimeContainer.cpp: + (WebCore::SMILTimeContainer::updateAnimations): + * wml/WMLAElement.cpp: + (WebCore::WMLAElement::parseMappedAttribute): + * wml/WMLInputElement.cpp: + (WebCore::WMLInputElement::setValue): + (WebCore::WMLInputElement::parseMappedAttribute): + * wml/WMLNoopElement.cpp: + (WebCore::WMLNoopElement::insertedIntoDocument): + +2009-04-09 Brett Wilson <brettw@chromium.org> + + Reviewed by Darin Fisher. + + When there is a shadow set but it specifies "no shadow", clear the + shadow shader. This will prevent Chromium from thinking there's a + shadow and using the Skia codepath rather than Windows. + + * platform/graphics/skia/GraphicsContextSkia.cpp: + (WebCore::GraphicsContext::setPlatformShadow): + +2009-04-09 Eric Seidel <eric@webkit.org> + + Reviewed by Simon Fraser. + + Crash when accessing svg.viewport on a detached SVGSVGElement + https://bugs.webkit.org/show_bug.cgi?id=25105 + + * svg/SVGSVGElement.cpp: + (WebCore::SVGSVGElement::isOutermostSVG): return "true" that we are the "outermost" SVG element if we have no parent. (The spec is unclear as to what behavior we should have in this case, and I doubt anyone cares for now). + +2009-04-09 Jian Li <jianli@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25084 + Upstream changes to V8 bindings for XHR so that it can work under either DOMWindow or WorkerContext. + + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::WorkerContextExecutionProxy::dispose): + (WebCore::WorkerContextExecutionProxy::retrieve): + (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): + (WebCore::WorkerContextExecutionProxy::findOrCreateEventListenerHelper): + (WebCore::WorkerContextExecutionProxy::FindOrCreateEventListener): + (WebCore::WorkerContextExecutionProxy::findOrCreateObjectEventListener): + * bindings/v8/WorkerContextExecutionProxy.h: + * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: + (WebCore::CALLBACK_FUNC_DECL): + * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: + (WebCore::getEventListener): + (WebCore::ACCESSOR_SETTER): + (WebCore::CALLBACK_FUNC_DECL): + +2009-04-09 Darin Adler <darin@apple.com> + + Reviewed by Anders Carlsson and Sam Weinig. + + Part of <rdar://problem/5438063> Saving history containing 100,000 entries causes pauses of 2s while browsing + + Longer term solution is to change the design so Safari doesn't read and write all of history. + This patch is step one: Do the serializing, which is done on the main thread, much faster. + + * WebCore.base.exp: Added new entry points. + * WebCore.xcodeproj/project.pbxproj: Added new source files. + + * history/cf: Added. + + * history/cf/HistoryPropertyList.cpp: Added. + * history/cf/HistoryPropertyList.h: Added. Code to write history files. In the future we'll also + have code for reading here too. + + * platform/cf/BinaryPropertyList.cpp: Added. + * platform/cf/BinaryPropertyList.h: Added. Code to write binary property list files. + +2009-04-09 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Antti Koivisto + + https://bugs.webkit.org/show_bug.cgi?id=25122 + + If deferred repainting is active, we need to ensure that there are no repaints + pending at the end of layoutIfNeededRecursive, which is called just before + painting via -viewWillDraw. + + * page/FrameView.cpp: + (WebCore::FrameView::layoutIfNeededRecursive): + +2009-04-09 John Grabowski <jrg@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25117 + Fix Mac Chromium form controls. + + * rendering/RenderThemeChromiumMac.mm: + When rendering native controls in Mac Chromium, use a clean NSGraphicsContext. + Properly save and restore native graphics context. + (WebCore::RenderThemeChromiumMac::paintCheckbox): + (WebCore::RenderThemeChromiumMac::paintRadio): + (WebCore::RenderThemeChromiumMac::paintMenuList): + (WebCore::RenderThemeChromiumMac::paintSearchFieldCancelButton): + (WebCore::RenderThemeChromiumMac::paintSearchFieldResultsDecoration): + (WebCore::RenderThemeChromiumMac::paintSearchFieldResultsButton): + +2009-04-09 Drew Wilson <atwilson@google.com> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=25030 + Refactor MessagePort code to enable Chrome to use a MessagePortProxy object + instead of a real MessagePort for the entangledPort, since it could + theoretically live in a separate process. + + The goal of this refactoring is to remove all assumptions that the object + representing the entangled port is actually of type MessagePort. All + operations that were previously directly modifying private MessagePort member + variables in the entangled port (i.e. entangle(), postMessage()) have been changed + to invoke functions in the MessagePortProxy interface instead which will allow + the Chrome bindings to proxy these calls to another process. + + No new layout tests, as this is just a refactoring with no bug fixes + or new functionality. + + * GNUmakefile.am: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/JSMessagePortCustom.cpp: + (WebCore::JSMessagePort::mark): + * dom/MessagePort.cpp: + (WebCore::MessagePort::clone): + (WebCore::MessagePort::postMessage): + (WebCore::MessagePort::deliverMessage): + (WebCore::MessagePort::startConversation): + (WebCore::MessagePort::close): + (WebCore::MessagePort::entangle): + (WebCore::MessagePort::unentangle): + * dom/MessagePort.h: + (WebCore::MessagePort::entangledPort): + * dom/MessagePortProxy.h: Added. + (WebCore::MessagePortProxy::~MessagePortProxy): + +2009-04-08 Sam Weinig <sam@webkit.org> + + Reviewed by Geoffrey "Big Boy" Garen. + + Fix for <rdar://problem/5745677> Possible to stop load during an unload event + Also fixes https://bugs.webkit.org/show_bug.cgi?id=20605 + + Tests: fast/events/stop-load-in-unload-handler-using-document-write.html + fast/events/stop-load-in-unload-handler-using-window-stop.html + + Don't allow calling methods that would stop the new load inside the unload + event. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::FrameLoader): + (WebCore::FrameLoader::stopLoading): + (WebCore::FrameLoader::stopAllLoaders): + * loader/FrameLoader.h: + +2009-04-09 David Kilzer <ddkilzer@apple.com> + + Reinstating <rdar://problem/6718589> Option to turn off SVG DOM Objective-C bindings + + Rolled r42345 back in. The build failure was caused by an + internal script which had not been updated the same way that + build-webkit was updated. + + * Configurations/WebCore.xcconfig: + * DerivedSources.make: + * bindings/objc/DOM.mm: + (WebCore::createElementClassMap): + (+[DOMNode _wrapNode:WebCore::]): + * bindings/objc/DOMCSS.mm: + (+[DOMCSSValue _wrapCSSValue:WebCore::]): + * bindings/objc/DOMEvents.mm: + (+[DOMEvent _wrapEvent:WebCore::]): + * bindings/objc/DOMInternal.h: + * bindings/objc/ExceptionHandlers.mm: + (WebCore::raiseDOMException): + * html/HTMLEmbedElement.idl: + * html/HTMLFrameElement.idl: + * html/HTMLIFrameElement.idl: + * html/HTMLObjectElement.idl: + +2009-04-09 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + https://bugs.webkit.org/show_bug.cgi?id=25109 + + Eliminate CompositeAnimationPrivate, which was a needless level + of abstraction. Remove the methods like addToStyleAvailableWaitList() + that simply turn around and call the animation controller. + + Rename animationControllerPriv() to animationController(). + Rename willNeedService() to timeToNextService(). + + * page/animation/AnimationBase.cpp: + (WebCore::AnimationBase::~AnimationBase): + (WebCore::AnimationBase::updateStateMachine): + (WebCore::AnimationBase::timeToNextService): + (WebCore::AnimationBase::beginAnimationUpdateTime): + * page/animation/AnimationBase.h: + * page/animation/AnimationController.cpp: + (WebCore::AnimationControllerPrivate::updateAnimationTimer): + * page/animation/CompositeAnimation.cpp: + (WebCore::CompositeAnimation::~CompositeAnimation): + (WebCore::CompositeAnimation::clearRenderer): + (WebCore::CompositeAnimation::updateTransitions): + (WebCore::CompositeAnimation::updateKeyframeAnimations): + (WebCore::CompositeAnimation::animate): + (WebCore::CompositeAnimation::getAnimatedStyle): + (WebCore::CompositeAnimation::setAnimating): + (WebCore::CompositeAnimation::timeToNextService): + (WebCore::CompositeAnimation::getAnimationForProperty): + (WebCore::CompositeAnimation::cleanupFinishedAnimations): + (WebCore::CompositeAnimation::suspendAnimations): + (WebCore::CompositeAnimation::resumeAnimations): + (WebCore::CompositeAnimation::overrideImplicitAnimations): + (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations): + (WebCore::CompositeAnimation::isAnimatingProperty): + (WebCore::CompositeAnimation::pauseAnimationAtTime): + (WebCore::CompositeAnimation::pauseTransitionAtTime): + (WebCore::CompositeAnimation::numberOfActiveAnimations): + * page/animation/CompositeAnimation.h: + (WebCore::CompositeAnimation::animationController): + (WebCore::CompositeAnimation::isSuspended): + (WebCore::CompositeAnimation::hasAnimations): + (WebCore::CompositeAnimation::CompositeAnimation): + * page/animation/ImplicitAnimation.cpp: + (WebCore::ImplicitAnimation::sendTransitionEvent): + (WebCore::ImplicitAnimation::timeToNextService): + * page/animation/ImplicitAnimation.h: + * page/animation/KeyframeAnimation.cpp: + (WebCore::KeyframeAnimation::sendAnimationEvent): + (WebCore::KeyframeAnimation::timeToNextService): + * page/animation/KeyframeAnimation.h: + +2009-04-09 Alexey Proskuryakov <ap@webkit.org> + + Reverting <rdar://problem/6718589> Option to turn off SVG DOM Objective-C bindings. + It broke Mac build, and I don't know how to fix it. + + * Configurations/WebCore.xcconfig: + * DerivedSources.make: + * bindings/objc/DOM.mm: + (WebCore::createElementClassMap): + (+[DOMNode _wrapNode:WebCore::]): + * bindings/objc/DOMCSS.mm: + (+[DOMCSSValue _wrapCSSValue:WebCore::]): + * bindings/objc/DOMEvents.mm: + (+[DOMEvent _wrapEvent:WebCore::]): + * bindings/objc/DOMInternal.h: + * bindings/objc/ExceptionHandlers.mm: + (WebCore::raiseDOMException): + * html/HTMLEmbedElement.idl: + * html/HTMLFrameElement.idl: + * html/HTMLIFrameElement.idl: + * html/HTMLObjectElement.idl: + +2009-04-09 Xan Lopez <xlopez@igalia.com> + + Unreviewed build fix. + + RenderView::docWidth() was made private by r42334. That commit + changes its usage for overflowWidth(), so do that here too. + + * page/PrintContext.cpp: + (WebCore::PrintContext::computePageRects): + +2009-04-09 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Based on a patch by Alp Toker. + + Implement AtkObject::ref_state_set. Still quite a few states not + implemented. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-04-09 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Based on a patch by Alp Toker. + + Move fallback object creation to its own function, as it will be + used in several places. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + (fallbackObject): + +2009-04-09 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Based on a patch by Alp Toker. + + Move AccessibilityObject methods to their file. + + * page/gtk/AccessibilityObjectAtk.cpp: + (WebCore::AccessibilityObject::wrapper): + (WebCore::AccessibilityObject::setWrapper): + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-04-09 Xan Lopez <xlopez@igalia.com> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=21546 + [GTK] ATK accessibility enhancements + + Rework accessibility type generation code, based on Mozilla a11y + implementation. + + Have one base a11y type, and generate derived types that implement + only the necessary interfaces at runtime, based on the specific + object we are wrapping. This allows to save a lot of code while + covering all possible cases. + + * page/gtk/AccessibilityObjectWrapperAtk.cpp: + +2009-04-09 Eric Seidel <eric@webkit.org> + + Reviewed by Oliver Hunt. + + Fix document.implementation.createDocument(null, "a:b") not to crash! + https://bugs.webkit.org/show_bug.cgi?id=25096 + + Test: fast/dom/DOMImplementation/createDocument-namespace-err.html + + * dom/ContainerNode.cpp: + (WebCore::ContainerNode::addChild): add ASSERT() to give a better crash next time + * dom/DOMImplementation.cpp: + (WebCore::DOMImplementation::createDocument): check the exception code before using the result + +2009-04-08 Adam Roben <aroben@apple.com> + + Make <select>s in application chrome documents match the Vista system + dialog look + + Reviewed by Dave Hyatt. + + * rendering/RenderThemeWin.cpp: + (WebCore::documentIsInApplicationChromeMode): Added this simple helper + function. + (WebCore::RenderThemeWin::getThemeData): In application chrome mode, + the drop down button never uses any look but the "normal" look. + (WebCore::RenderThemeWin::paintMenuList): In application chrome mode, + use the "readonly" style to match system dialogs. + +2009-04-08 Adam Roben <aroben@apple.com> + + Fix <rdar://6592515> Crash closing tab with Top Sites or Cover Flow + showing after clicking "Go Back" in phishing alert + + RenderButton's m_timer is not stopped when its Document enters the + page cache. When the WebView was torn down, the timer would fire after + the Frame's Page had been destroyed, leading to a crash. This patch + just makes the timer do nothing when it fires. Making the timer not + fire when in the page cache is covered by bug 25110. + + Reviewed by Dave Hyatt. + + No test possible. + + * rendering/RenderButton.cpp: + (WebCore::RenderButton::timerFired): Do nothing when we're in the page + cache. + +2009-04-09 David Hyatt <hyatt@apple.com> + + Reviewed by Adam Roben + + Fix bugs where we would mistakenly turn off blitting for iframes if an external paint + caused the checks to be triggered too early in the loading process of the frame. + + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintFillLayerExtended): + +2009-04-08 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Cameron Zwarich + + https://bugs.webkit.org/show_bug.cgi?id=25106 + + Fix signature of virtual function on AnimationBase so that it matches + those in the derived classes, by removing unused parameter. + + * page/animation/AnimationBase.h: + (WebCore::AnimationBase::endAnimation): + +2009-04-08 David Kilzer <ddkilzer@apple.com> + + <rdar://problem/6718589> Option to turn off SVG DOM Objective-C bindings + + Reviewed by Darin Adler and Maciej Stachowiak. + + Introduce the ENABLE_SVG_DOM_OBJC_BINDINGS feature define so + that SVG DOM Objective-C bindings may be optionally disabled. + + * Configurations/WebCore.xcconfig: Added + ENABLE_SVG_DOM_OBJC_BINDINGS variable and use it in + FEATURE_DEFINES and EXCLUDED_SOURCE_FILE_NAMES. When SVG DOM + Objective-C bindings are disabled, two generated header files no + longer exist and none of the generated DOMSVG*.mm files should + be compiled. + * DerivedSources.make: All of the WebCore.SVG*.exp files contain + SVG DOM Objective-C bindings classes, so exclude them unless + ENABLE_SVG_DOM_OBJC_BINDINGS is set. + * bindings/objc/DOM.mm: Switched from using ENABLE(SVG) to using + ENABLE(SVG_DOM_OBJC_BINDINGS). + (WebCore::createElementClassMap): + (+[DOMNode _wrapNode:WebCore::]): + * bindings/objc/DOMCSS.mm: Ditto. + (+[DOMCSSValue _wrapCSSValue:WebCore::]): + * bindings/objc/DOMEvents.mm: Ditto. + (+[DOMEvent _wrapEvent:WebCore::]): + * bindings/objc/DOMInternal.h: Ditto. + * bindings/objc/ExceptionHandlers.mm: Added use of + ENABLE(SVG_DOM_OBJC_BINDINGS). + (WebCore::raiseDOMException): + * html/HTMLEmbedElement.idl: Excluded -getSVGDocument method + in generated Objective-C DOM classes if SVG DOM Objective-C + bindings are disabled. + * html/HTMLFrameElement.idl: Ditto. + * html/HTMLIFrameElement.idl: Ditto. + * html/HTMLObjectElement.idl: Ditto. + +2009-04-08 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + - limit the workaround for <rdar://problem/5781372> to Mac OS X versions + that need it + + * platform/mac/WebFontCache.mm: + (fixUpWeight): Changed this function to be a no-op post-Leopard. + +2009-04-08 Dan Bernstein <mitz@apple.com> + + Reviewed by Dave Hyatt. + + - fix <rdar://problem/6771547> Appending to a RenderText causes all its + lines to be dirtied + + Test: fast/repaint/text-append-dirty-lines.html + + * rendering/RenderText.cpp: + (WebCore::RenderText::setTextWithOffset): If no text boxes intersected + with or came after the new text, dirty the last root box, since the new + text may begin there. Having at least one dirty line prevents the + incorrect dirtying of all lines later during layoutInlineChildren(). + +2009-04-08 Darin Fisher <darin@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=25100 + + Fixes a Chromium-specific crash in WebCore::ImageBuffer::context that + occurs when rendering semi-transparent RTL text. + + Test: fast/text/complex-text-opacity.html + + * platform/graphics/chromium/FontChromiumWin.cpp: Handle RTL when computing text bounds. + (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::estimateTextBounds): + +2009-04-08 David Hyatt <hyatt@apple.com> + + Reviewed by Beth Dakin + + Fix a porting error in my previous patch. A != was supposed to be an ==. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::updateScrollbars): + +2009-04-08 David Hyatt <hyatt@apple.com> + + Reviewed by Adam Roben and Darin Adler + + Fix for https://bugs.webkit.org/show_bug.cgi?id=12440, repaints inconsistent for + fixed positioned elements. + + Rewrite the updateScrollers method to be more correct in its results. + + Test: fast/block/positioning/fixed-positioning-scrollbar-bug.html + + * dom/Document.cpp: + (WebCore::Document::recalcStyle): + (WebCore::Document::implicitClose): + * page/FrameView.cpp: + (WebCore::FrameView::createScrollbar): + (WebCore::FrameView::layout): + (WebCore::FrameView::adjustPageHeight): + * page/FrameView.h: + * page/win/FrameWin.cpp: + (WebCore::computePageRectsForFrame): + * platform/ScrollView.cpp: + (WebCore::ScrollView::ScrollView): + (WebCore::ScrollView::updateScrollbars): + * platform/ScrollView.h: + * rendering/RenderView.cpp: + (WebCore::RenderView::layout): + (WebCore::RenderView::docHeight): + (WebCore::RenderView::docWidth): + * rendering/RenderView.h: + +2009-04-08 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Fix for <rdar://problem/6226200> Implement Microsoft's X-FRAME-OPTIONS anti-framing defense + + Tests: http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html + http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html + http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html + http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html + http/tests/security/XFrameOptions/x-frame-options-deny.html + http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow.html + http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny.html + + * dom/Document.cpp: + (WebCore::Document::processHttpEquiv): Stop the current load and redirect to about:blank + if an X-FRAME-OPTIONS <meta> tag http-equiq dictates we should. + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions): Add logic to parse + the X-FRAME-OPTIONS parameter. + * loader/FrameLoader.h: + * loader/MainResourceLoader.cpp: + (WebCore::MainResourceLoader::didReceiveResponse): Stop the current load if framed and + a X-FRAME-OPTIONS header and its parameter dictate that we should. + +2009-04-08 Adam Roben <aroben@apple.com> + + Fix http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect.html on Windows + + Reviewed by Sam Weinig. + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::ResourceHandle::loadResourceSynchronously): Mimic the + ResourceHandleMac code by propagating the CFError's error code for + kCFErrorDomainCFNetwork errors to the ResourceResponse. + +2009-04-08 Anders Carlsson <andersca@apple.com> + + Try to fix the PPC build. + + * plugins/npfunctions.h: + +2009-04-08 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + <rdar://problem/5908616> tokenizer resizer should handle edge cases consistently + + * html/HTMLTokenizer.cpp: + (WebCore::HTMLTokenizer::enlargeBuffer): Handle edge cases the same way as a failed fastMalloc. + (WebCore::HTMLTokenizer::enlargeScriptBuffer): Ditto. + +2009-04-08 David Hyatt <hyatt@apple.com> + + Reviewed by Darin Adler + + Make sure that cloneNode works with SVG attributes that require synchronization. This fixes + issues with <use> element shadow tree cloning where the clones can end up not obtaining the + correct attribute values. + + A subsequent patch of mine will expose this problem and cause it to be covered by existing + layout tests, so no test is required at this time for this problem. + + * dom/Element.cpp: + (WebCore::Element::cloneElementWithoutChildren): + +2009-04-08 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Timothy Hatcher. + + https://bugs.webkit.org/show_bug.cgi?id=25093 + REGRESSION: some scripts are showing in the Inspector with only "true" + as the source. + + * inspector/InspectorController.cpp: + (WebCore::InspectorController::didParseSource): Fixed conversion issue. + (WebCore::InspectorController::failedToParseSource): Ditto. + +2009-04-08 Adam Barth <abarth@webkit.org> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=24904 + + Verify the MIME type of stylesheets (in standards mode) by looking + at the Content-Type header directly. This bypasses any content + sniffing that might be confusing the issue. + + Test: http/tests/mime/standard-mode-loads-stylesheet-without-content-type-header.html + + * loader/CachedCSSStyleSheet.cpp: + (WebCore::CachedCSSStyleSheet::canUseSheet): + +2009-04-08 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=25041 + <rdar://problem/6697754> + Bug 25041: HTMLMediaElement: OSX autoplay broken by r41907 + + OSX media player should set readyState to HAVE_ENOUGH_DATA when the movie's load state + reaches QTMovieLoadStatePlaythroughOK, not when the entire file has been downloaded, + so autoplay can begin when it should. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::updateStates): Set readState to + HAVE_ENOUGH_DATA when QTMovie load state reaches QTMovieLoadStatePlaythroughOK. + (WebCore::MediaPlayerPrivate::paint): Add braces missed in r42203. + +2009-04-08 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by David Kilzer. Based on a patch by Grace Kloba. + + https://bugs.webkit.org/show_bug.cgi?id=24656 + cacheControlContainsNoCache() in ResourceResponseBase.h is wrong + + * platform/network/ResourceResponseBase.cpp: + (WebCore::ResourceResponseBase::parseCacheControlDirectives): Removed misused code for + parsing directive values, fixing parsing of directives that we care about. + + * platform/network/ResourceResponseBase.h: + (WebCore::ResourceResponseBase::cacheControlContainsNoCache): Fixed a copy/paste mistake, + m_cacheControlContainsMustRevalidate was returned instead of m_cacheControlContainsNoCache. + +2009-04-08 Adam Roben <aroben@apple.com> + + Make text fields match the system look on Vista + + Reviewed by Dave Hyatt. + + * rendering/RenderThemeWin.cpp: + (WebCore::RenderThemeWin::getThemeData): Use the new-to-Vista + EP_EDITBORDER_NOSCROLL part for text fields. + +2009-04-07 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=24957 + REGRESSION: Google calendar widget no longer shows upcoming events + + Test: http/tests/xmlhttprequest/authorization-header.html + + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData): Removed Authorization from + the list of forbidden headers. + +2009-04-07 miggilin <mr.diggilin@gmail.com> + + Reviewed by Kevin Ollivier. + + Remove no longer needed debug warning and Windows-specific codepaths + (as we now use the Safari/Win port's timer there) + + https://bugs.webkit.org/show_bug.cgi?id=25070 + + * platform/wx/SharedTimerWx.cpp: + (WebCore::setSharedTimerFireTime): + + +2009-04-07 Adam Roben <aroben@apple.com> + + Fix many <video> regression tests on Windows + + Reviewed by Dave Hyatt. + + * platform/graphics/win/QTMovieWin.cpp: + (QTMovieWin::getNaturalSize): Call GetMovieNaturalBoundsRect, which + returns the movie's natural bounds (duh), rather than GetMovieBox, + which returns the movie's current displayed size/position. + +2009-04-07 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler and Sam Weinig + + <rdar://problem/5968249> "Private Browsing" doesn't affect HTML 5 LocalStorage + + The expected behavior for persistent storage when private browsing mode is undefined by the spec. + For now we're going with a "read-only when in private browsing" policy until we can get feedback + and/or get the behavior specified in the spec. + + Note that I purposefully made the change to restrict SessionStorage to read-only, also, with the + understanding that the spec allows for SessionStorage to persist across relaunches, even though + our implementation currently doesn't do this. + + * dom/DOMCoreException.idl: Add some new ExceptionCodes defined in HTML5, one of which is needed + for LocalStorage changes (QUOTA_EXCEEDED_ERR) + * dom/ExceptionCode.cpp: + * dom/ExceptionCode.h: + + * storage/StorageArea.cpp: + (WebCore::StorageArea::internalSetItem): If private browsing is enabled, throw the QUOTA_EXCEEDED_ERR + exception as the spec allows. + (WebCore::StorageArea::internalRemoveItem): If private browsing is enabled, silently fail to remove + the item. + (WebCore::StorageArea::internalClear): If private browsing is enabled, silently fail to clear the area. + +2009-04-07 Dean Jackson <dino@apple.com> + + Reviewed by Simon Fraser. + + <rdar://problem/6148255> + + Standalone media documents can not always handle everything + using a <video> element. In these cases switch to an <embed> + element that uses the QuickTime plugin, in the hope that it + will have more luck. Typical media types that trigger this + are streamed media and QTVR. + + Equivalent Windows fix to come once reviewed. Note also that + this area of code needs a cleanup: + https://bugs.webkit.org/show_bug.cgi?id=25085 + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::mediaPlayerSawUnsupportedTracks): + * html/HTMLMediaElement.h: + * loader/MediaDocument.cpp: + (WebCore::MediaDocument::mediaElementSawUnsupportedTracks): + (WebCore::MediaDocument::replaceVideoWithEmbed): + * loader/MediaDocument.h: + - removes the <video> element and puts in an <embed> + * platform/graphics/MediaPlayer.h: + (WebCore::MediaPlayerClient::mediaPlayerSawUnsupportedTracks): + - new internal method for flagging a problem + * platform/graphics/mac/MediaPlayerPrivateQTKit.h: + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): + (WebCore::MediaPlayerPrivate::updateStates): + - looks for the types of content we don't handle + (WebCore::MediaPlayerPrivate::rateChanged): + (WebCore::MediaPlayerPrivate::sizeChanged): + (WebCore::MediaPlayerPrivate::timeChanged): + (WebCore::MediaPlayerPrivate::didEnd): + (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): + (WebCore::MediaPlayerPrivate::sawUnsupportedTracks): + - inform the MediaClient that we have a potential problem + +2009-04-07 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + - fix <rdar://problem/6767428> Resurrect + +[WebFontCache fontWithFamily:traits:size:] for clients that call it + directly + + WebFontCache is a class in the WebCore framework and is not WebKit API, + but apparently (perhaps mistakenly) some clients call this private + interface. + + This change resurrects the interface and gives it reasonable behavior + (however, note that WebCore will not call the old interface, so hacks that + override it will have no effect on WebKit clients). + + * platform/mac/WebFontCache.h: + * platform/mac/WebFontCache.mm: + (+[WebFontCache fontWithFamily:traits:size:]): Added. Call through to + +fontWithFamily:traits:weight:size:. + +2009-04-07 David Hyatt <hyatt@apple.com> + + Reviewed by Adam Roben + + Fix ScrollView's algorithm that determines whether or not to show scrollbars. There was a bug + with the method mainly because RenderView will size itself to the viewport's size, making it + impossible to really know the document's "true" size. + + In order to solve this problem ScrollView now has a minimumContentsSize method. This method + returns the document size excluding the RenderView from the calculation. This width/height + is now cached on RenderView in m_docWidth/m_docHeight member variables. + + * WebCore.base.exp: + * page/FrameView.cpp: + (WebCore::FrameView::adjustPageHeight): + (WebCore::FrameView::minimumContentsSize): + * page/FrameView.h: + * platform/ScrollView.cpp: + (WebCore::ScrollView::updateScrollbars): + * platform/ScrollView.h: + (WebCore::ScrollView::minimumContentsSize): + * rendering/RenderView.cpp: + (WebCore::RenderView::layout): + (WebCore::RenderView::calcDocHeight): + (WebCore::RenderView::calcDocWidth): + * rendering/RenderView.h: + (WebCore::RenderView::docWidth): + (WebCore::RenderView::docHeight): + +2009-04-07 Dimitri Glazkov <dglazkov@chromium.org> + + Build fix, not reviewed. + + * WebCore.xcodeproj/project.pbxproj: Made ScriptObject.h private. + +2009-04-07 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Timothy Hatcher. + + https://bugs.webkit.org/show_bug.cgi?id=25063 + Refactor InspectorController to use ScriptObject/State. + + * GNUmakefile.am: Added ScriptState.cpp. + * WebCore.pro: Ditto. + * WebCore.vcproj/WebCore.vcproj: Ditto. + * WebCore.xcodeproj/project.pbxproj: Ditto. + * WebCoreSources.bkl: Ditto. + * bindings/js/JSInspectorControllerCustom.cpp: + (WebCore::JSInspectorController::addSourceToFrame): Fixed argument index typo. + * bindings/js/ScriptFunctionCall.cpp: + (WebCore::ScriptFunctionCall::call): Added reportExceptions parameter. + (WebCore::ScriptFunctionCall::construct): Ditto. + * bindings/js/ScriptFunctionCall.h: Ditto. + * bindings/js/ScriptObject.cpp: + (WebCore::handleException): Added exception-reporting heloper. + (WebCore::ScriptObject::set): Changed to use handleException. + (WebCore::ScriptGlobalObject::set): Ditto, + * bindings/js/ScriptObject.cpp: Added ScriptGlobalObject. + (WebCore::ScriptGlobalObject::set): Added. + (WebCore::ScriptGlobalObject::getObject): Added. + * bindings/js/ScriptObject.h: Added ScriptGlobalObject decls. + (WebCore::ScriptGlobalObject::ScriptGlobalObject): Added. + * bindings/js/ScriptState.cpp: Added. + * bindings/js/ScriptState.h: Added scriptStateFromPage decl. + * inspector/ConsoleMessage.cpp: + (WebCore::ConsoleMessage::addToConsole): Changed to not report exceptions + to avoid re-entrancy. + * inspector/InspectorController.cpp: Refactored to use ScriptState/Object. + * inspector/InspectorController.h: Ditto. + +2009-04-07 Adam Langley <agl@google.com> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25083 + + Skia was previously calculating the leading value incorrectly, leading + us to add fHeight to get the height of a line of text. Now that Skia + is calculating fLeading correctly, we can remove fHeight. + + This doesn't affect any layout tests. + + * platform/graphics/chromium/SimpleFontDataLinux.cpp: + (WebCore::SimpleFontData::platformInit): + +2009-04-07 Brian Weinstein <bweinstein@gmail.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=24851 + + This fix removes the status code from the status message in a ResourceResponse, which allows a few more tests in http to pass. + + * platform/network/cf/ResourceResponseCFNet.cpp: + (WebCore::ResourceResponse::platformLazyInit): + +2009-04-07 Adam Langley <agl@google.com> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25081 + + Skia is changing from reporting the XRange to reporting the XMin and + XMax. Obviously these are equivalent, but other users of the metrics + need the two numbers to be separate. + + This doesn't affect any layout tests. + + * platform/graphics/chromium/SimpleFontDataLinux.cpp: + (WebCore::SimpleFontData::platformInit): + +2009-04-07 Adam Roben <aroben@apple.com> + + Make the look of <select>s match the system look on Vista + + Reviewed by Dave Hyatt. + + * rendering/RenderThemeWin.cpp: Added new constants. + (WebCore::RenderThemeWin::getThemeData): On Vista, use the + CP_DROPDOWNBUTTONRIGHT part for drop down buttons. + (WebCore::RenderThemeWin::paintMenuList): On Vista, use the CP_BORDER + part to draw the border of <select>s. + (WebCore::RenderThemeWin::paintMenuListButton): On Vista, outset the + drop down button to make its border coincide with the <select>'s + border. + +2009-04-07 Adam Roben <aroben@apple.com> + + Move isRunningOnVistaOrLater to a shared location + + Rubber-stamped in advance by Dave Hyatt. + + * WebCore.vcproj/WebCore.vcproj: Added SystemInfo.{cpp,h}, and let VS + have its way with the rest of the file. + * platform/win/ScrollbarThemeWin.cpp: Moved isRunningOnVistaOrLater + from here... + * platform/win/SystemInfo.cpp: Added. + (WebCore::isRunningOnVistaOrLater): ...to here. + * platform/win/SystemInfo.h: Added. + +2009-04-07 Paul Godavari <paul@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=24692 + Enable PopupMenuChromium to handle HTML select popups using native + cocoa controls on the Mac, all other platforms are unchanged. + + We also split out the storage container for the popup menu items + so that ChromeClientChromium can access them for forwarding to + the embedding host (Chromium.app or test_shell). + + * page/chromium/ChromeClientChromium.h: + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupListBox::items): + (WebCore::PopupContainer::PopupContainer): + (WebCore::PopupContainer::~PopupContainer): + (WebCore::PopupContainer::showPopup): + (WebCore::PopupContainer::showExternal): + (WebCore::PopupContainer::menuItemHeight): + (WebCore::popupData): + (WebCore::PopupListBox::pointToRowIndex): + (WebCore::PopupListBox::getRowBounds): + (WebCore::PopupListBox::isSelectableItem): + (WebCore::PopupListBox::updateFromElement): + (WebCore::PopupListBox::layout): + (WebCore::PopupListBox::clear): + (WebCore::PopupMenu::show): + * platform/chromium/PopupMenuChromium.h: + (WebCore::PopupItem::): + (WebCore::PopupItem::PopupItem): + +2009-04-07 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Oliver Hunt. + + Added some double-checking to event handler marking. Now, when the + wrapper that's responsible for marking an event handler's JavaScript + function gets collected, it clears the event handler's JavaScript function + so we won't dereference it after it's collected. + + In theory, we would never dereference a JavaScript event handler after + its node's wrapper was collected anyway, but it's nice to be safe. + + * bindings/js/JSDOMApplicationCacheCustom.cpp: + (WebCore::JSDOMApplicationCache::mark): + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::JSEventListener): + (WebCore::JSEventListener::jsFunction): + (WebCore::JSEventListener::invalidateJSFunction): + (WebCore::JSEventListener::markJSFunction): + * bindings/js/JSEventListener.h: + * bindings/js/JSMessagePortCustom.cpp: + (WebCore::JSMessagePort::mark): + * bindings/js/JSNodeCustom.cpp: + (WebCore::markEventListeners): + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::mark): + * bindings/js/JSWorkerCustom.cpp: + (WebCore::JSWorker::mark): + * bindings/js/JSXMLHttpRequestCustom.cpp: + (WebCore::JSXMLHttpRequest::mark): + * bindings/js/JSXMLHttpRequestUploadCustom.cpp: + (WebCore::JSXMLHttpRequestUpload::mark): + * bindings/scripts/CodeGeneratorJS.pm: + * dom/EventListener.h: + (WebCore::EventListener::invalidateJSFunction): + (WebCore::EventListener::markJSFunction): + (WebCore::markIfNotNull): + +2009-04-07 David Levin <levin@chromium.org> + + Build fix. + + r44280 undid the change in r42268 that made CookieJar.h private. + This redoes the change. + + * WebCore.xcodeproj/project.pbxproj: + +2009-04-07 Jian Li <jianli@chromium.org> + + Reviewed by Darin Fisher. + + Upstream changes to WorkerContextExecutionProxy for enabling V8 preemption. + https://bugs.webkit.org/show_bug.cgi?id=25034 + + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::WorkerContextExecutionProxy::evaluate): + +2009-04-07 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + - fix <rdar://problem/6764359> Thai word selection misbehaves for the + last sentence in the document + + Test: editing/selection/thai-word-at-document-end.html + + * editing/visible_units.cpp: + - Added a BoundarySearchContextAvailability enum used to indicate + whether the caller to a boundary search function may be able to provide + additional text in the search direction and call again. + - Added a named type for the boundary search function signature. Changed + the signature to take a context availability parameter and a boolean + out parameter indicating whether more context is needed to perform + the search. + (WebCore::previousBoundary): If the beginning of the range was reached + but the last search wanted more context, perform the search again, this + time indicating that there is no earlier text. + (WebCore::nextBoundary): Similarly, in the other direction. + (WebCore::startWordBoundary): Check whether more context may be available + and ask for more context if needed. + (WebCore::endWordBoundary): Ditto. + (WebCore::previousWordPositionBoundary): Ditto. + (WebCore::nextWordPositionBoundary): Ditto. + (WebCore::startSentenceBoundary): Updated signature. + (WebCore::endSentenceBoundary): Ditto. + (WebCore::previousSentencePositionBoundary): Ditto. + (WebCore::nextSentencePositionBoundary): Ditto. + +2009-04-07 Geoffrey Garen <ggaren@apple.com> + + Rubber stamped by Sam Weinig. + + A little renaming: + + function => jsFunction + listener => jsFunction + + * bindings/js/JSEventListener.cpp: + (WebCore::JSAbstractEventListener::handleEvent): + (WebCore::JSEventListener::JSEventListener): + (WebCore::JSEventListener::~JSEventListener): + (WebCore::JSEventListener::jsFunction): + (WebCore::JSEventListener::mark): + (WebCore::JSProtectedEventListener::JSProtectedEventListener): + (WebCore::JSProtectedEventListener::~JSProtectedEventListener): + (WebCore::JSProtectedEventListener::jsFunction): + * bindings/js/JSEventListener.h: + (WebCore::JSProtectedEventListener::create): + * bindings/js/JSLazyEventListener.cpp: + (WebCore::JSLazyEventListener::jsFunction): + (WebCore::JSLazyEventListener::parseCode): + * dom/EventListener.h: + (WebCore::EventListener::jsFunction): + +2009-04-07 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler + + While working on <rdar://problem/5968249>, noticed some glaring problems with LocalStorage. + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::localStorage): Return the cached m_localStorage object if it exists to + avoid creating multiple representations for the same underlying StorageArea. + * page/DOMWindow.h: + (WebCore::DOMWindow::optionalLocalStorage): Return m_localStorage, not m_sessionStorage. + +2009-04-07 Darin Adler <darin@apple.com> + + Roll out incorrect build fix. + + * WebCore.NPAPI.exp: Reverted. + +2009-04-07 Darin Adler <darin@apple.com> + + Another build fix. + + * WebCore.NPAPI.exp: Added new functions. + +2009-04-07 Anders Carlsson <andersca@apple.com> + + Another build fix. + + * plugins/npfunctions.h: + +2009-04-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Unreviewed build fix. Fix non-Mac builds. + + * bridge/npapi.h: + +2009-04-07 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein + + https://bugs.webkit.org/show_bug.cgi?id=25082 + + Clean up repaint logic when RenderLayers become and stop being composited. + + * rendering/RenderLayer.h: + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::rendererContentChanged): + (WebCore::RenderLayer::repaintIncludingNonCompositingDescendants): + New compositing-only method that repaints a layer and all its non-composited descendants. + Takes a repaintContainer for performance; all the repaints necessarily share the same + repaintContainer. + + * rendering/RenderLayerCompositor.h: + * rendering/RenderLayerCompositor.cpp: + (WebCore::RenderLayerCompositor::updateLayerCompositingState): + Rather than use calculateCompositedBounds() to compute the repaint rect (which gave + the wrong answer when the composited layer tree was in flux), use the new + repaintOnCompositingChange() method. + + (WebCore::RenderLayerCompositor::repaintOnCompositingChange): + Call repaintIncludingNonCompositingDescendants(), and if necessary make sure + that the view/layer drawing synchronization happens. + + (WebCore::RenderLayerCompositor::computeCompositingRequirements): + Do a repaintOnCompositingChange() when a layer is going to be composited. This is + a good place because we haven't started to change the compositing tree. + + (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): + After we've finished updating all the descendant layers, we can do a repaint for + layers that ceased compositing. + +2009-04-07 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dave Hyatt + + https://bugs.webkit.org/show_bug.cgi?id=25069 + + Clean up the accelerated compositing code that determines the format of + the GraphicsLayer hierarchy, being more explicit about which parts have + to happen before and after descendant layers have been updated. Also remove + some unhelpful caching of state. + + * dom/Document.cpp: + (WebCore::Document::recalcStyle): + Only call updateCompositingLayers() if we know we're not going to be + doing a layout soon. + + * platform/graphics/mac/GraphicsLayerCA.mm: + (WebCore::GraphicsLayerCA::setDrawsContent): + Toggling drawsContent from false to true should do a setNeedsDisplay(). + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::styleChanged): + updateLayerCompositingState() no longer updates the layer geometry, so + do that here if we're not going to rebuild layers anyway. + Also, updateLayerCompositingState() no longer does a setContentsNeedDisplay, + so do that if the style change indicates that a repaint is required. + + * rendering/RenderLayerBacking.h: + * rendering/RenderLayerBacking.cpp: + (WebCore::RenderLayerBacking::RenderLayerBacking): + (WebCore::RenderLayerBacking::updateAfterLayout): + The 'drawing optimizations' logic has been rolled into updateGraphicsLayerConfiguration() + and updateGraphicsLayerGeometry(). + + (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): + Group that code that decides what GraphicsLayers are needed into this method, + which deals with clipping layers and 'direct compositing': images that can be + rendered via the compositor. + + (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): + Call setDrawsContent() if updateGraphicsLayerConfiguration() didn't already + figure it out for image layers. + + (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): + Remove the m_simpleCompositingLayerStatusDirty cache indicator, since we just + computed it every time anyway. + + * rendering/RenderLayerCompositor.h: + * rendering/RenderLayerCompositor.cpp: + (WebCore::RenderLayerCompositor::updateLayerCompositingState): + updateGraphicsLayers() was renamed to updateGraphicsLayerConfiguration(), + which calls clippedByAncestor() etc. itself rather than having everything passed in. + Repaints are taken care of by styleChanged() and setDrawsContent(). + + (WebCore::RenderLayerCompositor::calculateCompositedBounds): + !layer->isComposited() && layer->transform() is a synonym for paintsWithTransform(). + + (WebCore::RenderLayerCompositor::setCompositingParent): + No need to call updateGraphicsLayerGeometry() here, because we're going to + rebuild layers anyway. + + (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): + Add comments, and test layerBacking instead of layer->isComposited(). + +2009-04-07 Anders Carlsson <andersca@apple.com> + + Fix build. + + * WebCore.base.exp: + +2009-04-07 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + <rdar://problem/6667001> NPAPI: need NPN_Get/SetValueForURL() and NPN_GetAuthenticationInfo() + + * WebCore.base.exp: + Add symbols needed by WebKit. + + * WebCore.xcodeproj/project.pbxproj: + Make CookieJar a private header. + + * bridge/npapi.h: + Add function definitions. + + * plugins/npfunctions.h: + Fix the NPN_SetValueForURLProcPtr signature. + +2009-04-07 Adam Roben <aroben@apple.com> + + Fix <rdar://6520933> REGRESSION (3.2.1-ToT): Scroll bar disappears in + WebView and Bookmarks view after switching theme or turning on High + Contrast mode + + Reviewed by Dave Hyatt. + + * platform/win/ScrollbarThemeWin.cpp: + (WebCore::ScrollbarThemeWin::themeChanged): Null out scrollbarTheme + after closing it so that we'll re-open the theme next time we paint. + +2009-04-07 Adam Roben <aroben@apple.com> + + Small cleanup/correctness fix in ScrollbarThemeWin + + Reviewed by Dave Hyatt. + + * platform/win/ScrollbarThemeWin.cpp: Removed the now-unused + haveTheme boolean. + (WebCore::checkAndInitScrollbarTheme): Check IsThemeActive() before + calling OpenThemeData. This seems to be what MSDN recommends. + (WebCore::ScrollbarThemeWin::themeChanged): Null-check scrollbarTheme + before closing it, rather than indirectly null-checking it via + checking haveTheme. + +2009-04-07 Dan Bernstein <mitz@apple.com> + + Reviewed by John Sullivan. + + - when -webkit-line-break: after-white-space is specified but the text + does not auto-wrap, do not shrink the trailing space to fit in the + available width + + Test: fast/text/whitespace/nowrap-line-break-after-white-space.html + + - when shrinking such trailing space, do not shrink below zero + + Covered by existing tests + + * rendering/bidi.cpp: + (WebCore::RenderBlock::computeHorizontalPositionsForLine): + (WebCore::RenderBlock::layoutInlineChildren): + +2009-04-07 Eric Seidel <eric@webkit.org> + + Reviewed by Darin Adler. + + Move RangeBoundaryPoint off of Position, per Darin's suggestion + https://bugs.webkit.org/show_bug.cgi?id=24966 + + Rename setToChild to setToBeforeChild (since that's what the method does) + + * dom/Position.h: + (WebCore::Position::offsetInContainerNode): + * dom/Range.cpp: + (WebCore::Range::insertNode): + (WebCore::Range::selectNodeContents): + (WebCore::boundaryNodeWillBeRemoved): + * dom/Range.h: + (WebCore::Range::startPosition): + (WebCore::Range::endPosition): + * dom/RangeBoundaryPoint.h: + (WebCore::RangeBoundaryPoint::RangeBoundaryPoint): + (WebCore::RangeBoundaryPoint::container): + (WebCore::RangeBoundaryPoint::childBefore): + (WebCore::RangeBoundaryPoint::position): + (WebCore::RangeBoundaryPoint::offset): + (WebCore::RangeBoundaryPoint::clear): + (WebCore::RangeBoundaryPoint::set): + (WebCore::RangeBoundaryPoint::setOffset): + (WebCore::RangeBoundaryPoint::setToBeforeChild): + (WebCore::RangeBoundaryPoint::setToStartOfNode): + (WebCore::RangeBoundaryPoint::setToEndOfNode): + (WebCore::RangeBoundaryPoint::childBeforeWillBeRemoved): + (WebCore::RangeBoundaryPoint::invalidateOffset): + +2009-04-07 Eric Seidel <eric@webkit.org> + + Reviewed by Darin Adler. + + Add containerNode(), computeOffsetInContainerNode(), + computeNodeBeforePosition() and computeNodeAfterPosition(). + https://bugs.webkit.org/show_bug.cgi?id=24763 + + These functions will replace uses of rangeCompliantPosition() + in future patches. + + No changes in behavior, thus no tests. + + * dom/Position.cpp: + (WebCore::Position::containerNode): + (WebCore::Position::computeOffsetInContainerNode): + (WebCore::Position::computeNodeBeforePosition): + (WebCore::Position::computeNodeAfterPosition): + (WebCore::Position::anchorType): + * dom/Position.h: + (WebCore::Position::): + +2009-04-06 Sam Weinig <sam@webkit.org> + + Reviewed by Mark Rowe. + + Bottleneck dispatching mutation events in a new dispatchMutationEvent + function. + + * dom/CharacterData.cpp: + (WebCore::CharacterData::dispatchModifiedEvent): + * dom/ContainerNode.cpp: + (WebCore::dispatchChildInsertionEvents): + (WebCore::dispatchChildRemovalEvents): + * dom/Node.cpp: + (WebCore::Node::dispatchSubtreeModifiedEvent): + (WebCore::Node::dispatchMutationEvent): + * dom/Node.h: + +2009-04-06 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25059 + Remove references to dominantScript, getGenericFontForScript. + + * platform/graphics/chromium/FontCacheChromiumWin.cpp: Removed references + to getGenericFontForScript. + (WebCore::FontCache::getLastResortFallbackFont): Removed calls to dominantScript. + * platform/graphics/chromium/FontCacheLinux.cpp: Ditto. + * rendering/RenderThemeChromiumLinux.cpp: + (WebCore::defaultGUIFont): Removed Document* arg. + (WebCore::RenderThemeChromiumLinux::systemFont): Ditto. + * rendering/RenderThemeChromiumLinux.h: Ditto. + * rendering/RenderThemeChromiumMac.h: Ditto. + * rendering/RenderThemeChromiumMac.mm: Ditto. + (WebCore::RenderThemeChromiumMac::systemFont): Ditto. + * rendering/RenderThemeChromiumWin.cpp: + (WebCore::defaultGUIFont): Ditto. + (WebCore::RenderThemeChromiumWin::systemFont): Ditto. + * rendering/RenderThemeChromiumWin.h: Ditto. + +2009-04-06 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Darin Adler. + + Fixed https://bugs.webkit.org/show_bug.cgi?id=21260 + Unbounded memory growth when churning elements with anonymous event handler functions + + The problem was that a protected event listener's scope chain would end + up with a reference to the Node protecting it, causing a cycle. The + solution is to stop protecting event listeners and rely on marking instead. + + This patch converts most Node event listeners to use marking instead of + GC protection. + + * bindings/js/JSDOMBinding.cpp: + (WebCore::isObservableThroughDOM): + (WebCore::markDOMNodesForDocument): Refactored the test for whether a Node + needs marking, and added a case for marking the node in order to mark its + event listeners. + + * bindings/js/JSNodeCustom.cpp: + (WebCore::markEventListeners): + (WebCore::JSNode::addEventListener): + (WebCore::JSNode::removeEventListener): + (WebCore::JSNode::mark): Added code to mark a Node's event listeners when + marking the Node. Changed code using protected event listeners to use event + listeners. + + * dom/Node.idl: Changed code using protected event listeners to use event + listeners. + +2009-04-06 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Remove unchecked bool return values for some dispatch event functions. + + * dom/Node.cpp: + (WebCore::Node::dispatchSubtreeModifiedEvent): + (WebCore::Node::dispatchUIEvent): + (WebCore::Node::dispatchWebKitAnimationEvent): + (WebCore::Node::dispatchWebKitTransitionEvent): + (WebCore::Node::dispatchProgressEvent): + * dom/Node.h: + +2009-04-06 Darin Fisher <darin@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25058 + Fix chromium build bustage caused by r42216 + + * bindings/scripts/CodeGeneratorJS.pm: + * page/DOMWindow.idl: + +2009-04-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Rubber-stamped by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=20575 + No localization in WebKitGtk + + * platform/gtk/FileChooserGtk.cpp: Remove usage of glib/gi18n.h, + since there are not translatable strings. + * platform/gtk/LocalizedStringsGtk.cpp: Use the glib i18n header + that is specific for libraries. + +2009-04-06 Mike Belshe <mike@belshe.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=24978 + Use custom implementations of a few Node methods so that + we don't over-aggressively create JS wrappers here. + + * bindings/v8/custom/V8NodeCustom.cpp: Added custom implementations. + * dom/Node.idl: Removed JSC-specifier, making impl custom for V8 as well. + +2009-04-06 Dave Moore <davemoore@google.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=25031 + Make the V8 element collections check for named properties *before* + checking if there are any elements with the same name. Otherwise + it is both incorrect and slow. + + Test: fast/dom/HTMLSelectElement/length-not-overridden.html + + Both of these interceptors were attempting to find an element in the + collection that had a name or id of the property name before checking + for a JS property with that name. + * bindings/v8/V8Collection.h: + (WebCore::collectionNamedPropertyGetter): + (WebCore::nodeCollectionNamedPropertyGetter): + +2009-04-06 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + https://bugs.webkit.org/show_bug.cgi?id=25052 + + Pull the call to updateGraphicsLayerGeometry() out of updateGraphicsLayers(), + because we need to call it at the end of rebuildCompositingLayerTree() once + we've determined which descendant layers are composited, otherwise + calculateCompositedBounds() can give the wrong answer. + + Now that updateLayerCompositingState() doesn't end up calling updateGraphicsLayerGeometry(), + call that explicitly from styleChanged(), if we know a layer update is not pending, + and similarly from updateAfterLayout(). + + Test: compositing/overflow/overflow-positioning.html + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::styleChanged): + * rendering/RenderLayerBacking.cpp: + (WebCore::RenderLayerBacking::updateAfterLayout): + (WebCore::RenderLayerBacking::updateGraphicsLayers): + (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): + * rendering/RenderLayerCompositor.cpp: + (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): + +2009-04-06 Mike Belshe <mike@belshe.com> + + Reviewed by Alexey Proskuryakov. + + Add accessors to AtomicString which take String/const char* arguments + so that we don't accidentally thrash the AtomicString table. + + https://bugs.webkit.org/show_bug.cgi?id=24979 + + * platform/text/AtomicString.h: + +2009-04-03 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Simon Hausmann. + + Make col and row work in WebCore/manual-tests/cursor.html. The issue + was spotted in the WebKit inspector. + + * platform/gtk/CursorGtk.cpp: + (WebCore::columnResizeCursor): + (WebCore::rowResizeCursor): + +2009-04-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Don't show and hide the platformPluginWidget, as it's our QWebView + + * plugins/mac/PluginViewMac.cpp: + (WebCore::PluginView::show): + (WebCore::PluginView::hide): + (WebCore::PluginView::setParentVisible): + +2009-04-06 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + Add new files to the Qt build. + Export helper function from the Qt JSC binding, needed in WebKit/qt. + + * WebCore.pro: Add new files. + * bridge/qt/qt_runtime.h: Declare convertQVariantToValue. + +2009-04-06 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + Changed ScriptFunctionCall's last argument from a const char* as the function name to a String. + + Internally the function name is stored as a WebCore::String and the Qt port wants to use this + constructor programmatically where the function name is also a WebCore::String. + + * bindings/js/ScriptFunctionCall.cpp: + (WebCore::ScriptFunctionCall::ScriptFunctionCall): + * bindings/js/ScriptFunctionCall.h: + +2009-04-06 Mike Belshe <mike@belshe.com> + + Reviewed by Eric Seidel. + + HTMLCanvasElement crash when ImageBuffer creation fails. + https://bugs.webkit.org/show_bug.cgi?id=23212 + + Check for NULL before using the ImageBuffer as we might + be low on memory and creation may have failed. + + Test case creation blocked by: + https://bugs.webkit.org/show_bug.cgi?id=25055 + + * html/HTMLCanvasElement.cpp: + (WebCore::HTMLCanvasElement::createImageBuffer): + +2009-04-05 Geoffrey Garen <ggaren@apple.com> + + [Originally] Reviewed by Sam Weinig. + + Rolled back in r42214 with crashes fixed. + + [Removed irrelevant ExecState* parameter from event handler registration code.] + + [No change in behavior.] + + * bindings/js/JSDOMApplicationCacheCustom.cpp: + (WebCore::JSDOMApplicationCache::addEventListener): + (WebCore::JSDOMApplicationCache::removeEventListener): + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener): + (WebCore::JSDOMGlobalObject::findJSEventListener): + (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener): + * bindings/js/JSDOMGlobalObject.h: + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::addEventListener): + * bindings/js/JSMessagePortCustom.cpp: + (WebCore::JSMessagePort::addEventListener): + (WebCore::JSMessagePort::removeEventListener): + * bindings/js/JSNodeCustom.cpp: + (WebCore::JSNode::addEventListener): + * bindings/js/JSSVGElementInstanceCustom.cpp: + (WebCore::JSSVGElementInstance::addEventListener): + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::addEventListener): + (WebCore::JSWorkerContext::removeEventListener): + * bindings/js/JSWorkerCustom.cpp: + (WebCore::JSWorker::addEventListener): + (WebCore::JSWorker::removeEventListener): + * bindings/js/JSXMLHttpRequestCustom.cpp: + (WebCore::JSXMLHttpRequest::addEventListener): + (WebCore::JSXMLHttpRequest::removeEventListener): + * bindings/js/JSXMLHttpRequestUploadCustom.cpp: + (WebCore::JSXMLHttpRequestUpload::addEventListener): + (WebCore::JSXMLHttpRequestUpload::removeEventListener): + * bindings/scripts/CodeGeneratorJS.pm: + +2009-04-05 Erik L. Bunce <elbunce@xendom.com> + + Reviewed by Simon Hausmann. + + https://bugs.webkit.org/show_bug.cgi?id=25050 + + Fix an assert failure when dropping an 'empty' text/uri-list on a QWebView. + + * platform/qt/DragDataQt.cpp: + (WebCore::DragData::asURL): + +2009-04-05 Simon Hausmann <hausmann@webkit.org> + + Fix the Qt build. + + * bridge/qt/qt_runtime.h: + (JSC::Bindings::QtRuntimeMethod::createPrototype): Take the JSGlobalObject + as second argument. + +2009-04-04 Kevin Ollivier <kevino@theolliviers.com> + + Build fixes for wxMac/Tiger. + + * platform/wx/wxcode/mac/carbon/fontprops.cpp: + (wxFontProperties::wxFontProperties): + * rendering/break_lines.cpp: + (WebCore::nextBreakablePosition): + * webcore-wx.bkl: + +2009-04-04 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Cameron Zwarich + + https://bugs.webkit.org/show_bug.cgi?id=24648 + + Ensure that mapPoint(const IntPoint&) calls the FloatPoint + version to avoid infinite recursion. + + No test because mapPoint(const IntPoint&) isn't ever called + on Mac, so I can't reproduce. + + * platform/graphics/transforms/TransformationMatrix.h: + (WebCore::TransformationMatrix::mapPoint): + +2009-04-04 Dan Bernstein <mitz@apple.com> + + Reviewed by Mark Rowe. + + - fix <rdar://problem/6757862> REGRESSION: Cannot use the mouse to place + the insertion point inside a Thai character + + Test: fast/text/international/thai-offsetForPosition-inside-character.html + + * platform/graphics/mac/CoreTextController.cpp: + (WebCore::CoreTextController::offsetForPosition): Changed to use + cursorMovementIterator instead of characterBreakIterator, allowing this + function to return a valid cursor position even if it is not at + a character boundary. + +2009-04-04 Dan Bernstein <mitz@apple.com> + + Reviewed by Mark Rowe. + + - fix an assertion failure when clicking at the beginning of a + glyph cluster at the beginning of a text run + + Test: fast/text/offsetForPosition-cluster-at-zero.html + + * platform/graphics/mac/CoreTextController.cpp: + (WebCore::CoreTextController::offsetForPosition): Corrected the bound + check on firstGlyphBeforeCluster, letting it be 0 or -1, but not less + than -1. + +2009-04-03 Brian Weinstein <bweinstein@gmail.com> + + Allows 16 HTML/CSS standard colors to be shown as swatch backgrounds + when the names are given. + + https://bugs.webkit.org/show_bug.cgi?id=25044 + + Reviewed by Timothy Hatcher. + + * inspector/front-end/StylesSidebarPane.js: + (WebInspector.StylePropertyTreeElement.prototype.updateTitle): + +2009-04-03 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + <rdar://problem/6330929> + https://bugs.webkit.org/show_bug.cgi?id=21456 + + Don't update the document pointer for all inactive windows on navigations. + This change causes us to differ slightly from Firefox when accessing the + document from within a closure tied to a navigated context, but as all + browsers differ on this edge case, I don't foresee compatibility issues. + + Test: http/tests/security/cross-frame-access-document-direct.html + + * bindings/js/JSDOMWindowBase.cpp: + (WebCore::JSDOMWindowBase::~JSDOMWindowBase): + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::clearWindowShell): + (WebCore::ScriptController::initScript): + (WebCore::ScriptController::updateDocument): + * bindings/js/ScriptController.h: + +2009-04-03 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser. + + Test: transitions/bad-transition-shorthand-crash.html + + Fixed https://bugs.webkit.org/show_bug.cgi?id=24787. + + We were starting transitions with 0 duration and delay, which is + useless. With accelerated compositing on, this went through a code + path that tried to use m_toStyle, which never got set because the + transitions was short circuited before it had a chance to. So I + both protect against using that null pointer and avoid starting + the transition in the first place. + + * page/animation/CompositeAnimation.cpp: + (WebCore::CompositeAnimationPrivate::updateTransitions): + * page/animation/ImplicitAnimation.cpp: + (WebCore::ImplicitAnimation::blendPropertyValueInStyle): + +2009-04-03 Timothy Hatcher <timothy@apple.com> + + Fixes a bug where you could not type any more in the Web Inspector's + search field after the first match is selected in the Resources panel. + + https://bugs.webkit.org/show_bug.cgi?id=23982 + rdar://problem/6592367 + + Reviewed by Darin Adler. + + * inspector/front-end/SourceView.js: + (WebInspector.SourceView.prototype._jumpToSearchResult): Use the + window object of the frame to set the selection, not the main window. + +2009-04-03 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=22081 + <rdar://problem/6346030> + Don't allow overriding the return value of window.location. + + Tests: fast/dom/Window/Location/location-override-toString-on-proto-using-defineGetter.html + fast/dom/Window/Location/location-override-toString-on-proto-using-with.html + fast/dom/Window/Location/location-override-toString-on-proto.html + fast/dom/Window/Location/location-override-toString-using-defineGetter.html + fast/dom/Window/Location/location-override-toString-using-with.html + fast/dom/Window/Location/location-override-toString.html + fast/dom/Window/Location/location-override-valueOf-on-proto-using-defineGetter.html + fast/dom/Window/Location/location-override-valueOf-on-proto-using-with.html + fast/dom/Window/Location/location-override-valueOf-on-proto.html + fast/dom/Window/Location/location-override-valueOf-using-defineGetter.html + fast/dom/Window/Location/location-override-valueOf-using-with.html + fast/dom/Window/Location/location-override-valueOf.html + fast/dom/Window/Location/window-override-location-using-defineGetter.html + fast/dom/Window/Location/window-override-window-using-defineGetter.html + fast/dom/Window/Location/window-shadow-location-using-js-object-with-toString.html + fast/dom/Window/Location/window-shadow-location-using-string.html + fast/dom/Window/Location/window-shadow-window-using-js-object-with-location-field.html + + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::defineGetter): + * bindings/js/JSLocationCustom.cpp: + (WebCore::JSLocation::customPut): + (WebCore::JSLocation::defineGetter): + (WebCore::JSLocationPrototype::customPut): + (WebCore::JSLocationPrototype::defineGetter): + * bindings/scripts/CodeGeneratorJS.pm: + * page/Location.idl: + +2009-04-03 Geoffrey Garen <ggaren@apple.com> + + Rolled out r42214 since it seems to have caused crashes on the buildbot. + + * bindings/js/JSDOMApplicationCacheCustom.cpp: + (WebCore::JSDOMApplicationCache::addEventListener): + (WebCore::JSDOMApplicationCache::removeEventListener): + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener): + (WebCore::JSDOMGlobalObject::findJSEventListener): + (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener): + * bindings/js/JSDOMGlobalObject.h: + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::addEventListener): + * bindings/js/JSMessagePortCustom.cpp: + (WebCore::JSMessagePort::addEventListener): + (WebCore::JSMessagePort::removeEventListener): + * bindings/js/JSNodeCustom.cpp: + (WebCore::JSNode::addEventListener): + (WebCore::JSNode::removeEventListener): + * bindings/js/JSSVGElementInstanceCustom.cpp: + (WebCore::JSSVGElementInstance::addEventListener): + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::addEventListener): + (WebCore::JSWorkerContext::removeEventListener): + * bindings/js/JSWorkerCustom.cpp: + (WebCore::JSWorker::addEventListener): + (WebCore::JSWorker::removeEventListener): + * bindings/js/JSXMLHttpRequestCustom.cpp: + (WebCore::JSXMLHttpRequest::addEventListener): + (WebCore::JSXMLHttpRequest::removeEventListener): + * bindings/js/JSXMLHttpRequestUploadCustom.cpp: + (WebCore::JSXMLHttpRequestUpload::addEventListener): + (WebCore::JSXMLHttpRequestUpload::removeEventListener): + * bindings/scripts/CodeGeneratorJS.pm: + +2009-04-03 Sam Weinig <sam@webkit.org> + + Reviewed by Oliver Hunt. + + Fix for <rdar://problem/6476356> + https://bugs.webkit.org/show_bug.cgi?id=23148 + + - Use the window object the Location and History objects are directly associated with + instead of the lexical global object to pick the object prototype to serve as the + base of the their respective prototype chains. + - Re-factor as necessary to allow passing the correct global object to the createPrototype + functions. + + Tests: http/tests/security/cross-frame-access-history-prototype.html + http/tests/security/cross-frame-access-location-prototype.html + + * bindings/js/JSAudioConstructor.cpp: + (WebCore::JSAudioConstructor::JSAudioConstructor): + * bindings/js/JSDOMBinding.cpp: + (WebCore::getCachedDOMStructure): + (WebCore::cacheDOMStructure): + * bindings/js/JSDOMBinding.h: + (WebCore::getDOMStructure): + (WebCore::getDOMPrototype): + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::history): + (WebCore::JSDOMWindow::location): + * bindings/js/JSDocumentCustom.cpp: + (WebCore::JSDocument::location): + * bindings/js/JSImageConstructor.cpp: + (WebCore::JSImageConstructor::JSImageConstructor): + * bindings/js/JSMessageChannelConstructor.cpp: + (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor): + * bindings/js/JSNamedNodesCollection.h: + (WebCore::JSNamedNodesCollection::createPrototype): + * bindings/js/JSOptionConstructor.cpp: + (WebCore::JSOptionConstructor::JSOptionConstructor): + * bindings/js/JSRGBColor.h: + (WebCore::JSRGBColor::createPrototype): + * bindings/js/JSWebKitCSSMatrixConstructor.cpp: + (WebCore::JSWebKitCSSMatrixConstructor::JSWebKitCSSMatrixConstructor): + * bindings/js/JSWebKitPointConstructor.cpp: + (WebCore::JSWebKitPointConstructor::JSWebKitPointConstructor): + * bindings/js/JSWorkerConstructor.cpp: + (WebCore::JSWorkerConstructor::JSWorkerConstructor): + * bindings/js/JSXMLHttpRequestConstructor.cpp: + (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor): + * bindings/js/JSXSLTProcessorConstructor.cpp: + (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor): + * bindings/scripts/CodeGeneratorJS.pm: + * bridge/objc/objc_runtime.h: + (JSC::Bindings::ObjcFallbackObjectImp::createPrototype): + * bridge/runtime_array.h: + (JSC::RuntimeArray::createPrototype): + * bridge/runtime_method.h: + (JSC::RuntimeMethod::createPrototype): + * bridge/runtime_object.h: + (JSC::RuntimeObjectImp::createPrototype): + * page/DOMWindow.idl: + +2009-04-03 Jian Li <jianli@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=25009 + Upstream changes to WorkerContextExecutionProxy for V8 bindings in order to use V8EventListenerList as container. + + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy): + (WebCore::WorkerContextExecutionProxy::dispose): + (WebCore::WorkerContextExecutionProxy::FindOrCreateEventListener): + (WebCore::WorkerContextExecutionProxy::RemoveEventListener): + * bindings/v8/WorkerContextExecutionProxy.h: + +2009-04-03 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Sam Weinig. + + Removed irrelevant ExecState* parameter from event handler registration code. + + No change in behavior. + + * bindings/js/JSDOMApplicationCacheCustom.cpp: + (WebCore::JSDOMApplicationCache::addEventListener): + (WebCore::JSDOMApplicationCache::removeEventListener): + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener): + (WebCore::JSDOMGlobalObject::findJSEventListener): + (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener): + * bindings/js/JSDOMGlobalObject.h: + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::addEventListener): + * bindings/js/JSMessagePortCustom.cpp: + (WebCore::JSMessagePort::addEventListener): + (WebCore::JSMessagePort::removeEventListener): + * bindings/js/JSNodeCustom.cpp: + (WebCore::JSNode::addEventListener): + (WebCore::JSNode::removeEventListener): + * bindings/js/JSSVGElementInstanceCustom.cpp: + (WebCore::JSSVGElementInstance::addEventListener): + * bindings/js/JSWorkerContextCustom.cpp: + (WebCore::JSWorkerContext::addEventListener): + (WebCore::JSWorkerContext::removeEventListener): + * bindings/js/JSWorkerCustom.cpp: + (WebCore::JSWorker::addEventListener): + (WebCore::JSWorker::removeEventListener): + * bindings/js/JSXMLHttpRequestCustom.cpp: + (WebCore::JSXMLHttpRequest::addEventListener): + (WebCore::JSXMLHttpRequest::removeEventListener): + * bindings/js/JSXMLHttpRequestUploadCustom.cpp: + (WebCore::JSXMLHttpRequestUpload::addEventListener): + (WebCore::JSXMLHttpRequestUpload::removeEventListener): + * bindings/scripts/CodeGeneratorJS.pm: + +2009-04-03 Dan Bernstein <mitz@apple.com> + + Reviewed by Simon Fraser. + + - fix <rdar://problem/6634771> Under full-page zoom, cannot scroll + MobileMe contact list + + Test: fast/css/zoom-in-length-round-trip.html + + * dom/Element.cpp: + (WebCore::adjustForLocalZoom): For zoom factors greater than 1, ensure + that the returned value is equal to the original unscaled value. + (WebCore::adjustForAbsoluteZoom): Ditto. + +2009-04-03 Chris Marrin <cmarrin@apple.com> + + Reviewed by David Hyatt. + + Fixed https://bugs.webkit.org/show_bug.cgi?id=24941 + + This fix essentially does a -viewWillDraw call for layout. It adds + a CFRunLoopObserver which performs layout just before drawing on the + Mac platform. This makes sure layout is complete before rendering and + avoids a flash. + + * page/ChromeClient.h: + (WebCore::ChromeClient::scheduleViewUpdate): + * rendering/RenderLayerCompositor.cpp: + (WebCore::RenderLayerCompositor::setCompositingLayersNeedUpdate): + (WebCore::RenderLayerCompositor::scheduleViewUpdate): + * rendering/RenderLayerCompositor.h: + +2009-04-02 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein + + https://bugs.webkit.org/show_bug.cgi?id=24648 + + Optimize mapPoint(), mapRect() and mapQuad() for identity matrix and translations. + + * platform/graphics/transforms/TransformationMatrix.cpp: + (WebCore::TransformationMatrix::mapPoint): + (WebCore::TransformationMatrix::mapRect): + (WebCore::TransformationMatrix::mapQuad): + * platform/graphics/transforms/TransformationMatrix.h: + (WebCore::TransformationMatrix::mapPoint): + +2009-04-02 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein + + https://bugs.webkit.org/show_bug.cgi?id=25018 + + Add containsPoint() and containsQuad() methods to FloatQuad. + + * platform/graphics/FloatQuad.cpp: + (WebCore::dot): + (WebCore::isPointInTriangle): + (WebCore::FloatQuad::containsPoint): + (WebCore::FloatQuad::containsQuad): + * platform/graphics/FloatQuad.h: + +2009-04-03 Kevin Decker <kdecker@apple.com> + + Reviewed by Darin. + + * loader/ProgressTracker.cpp: Included DocumentLoader.h + (WebCore::ProgressTracker::incrementProgress): Limit the 50%-clamp rule to + documents that use WebCore's layout system. + +2009-04-03 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=25029 + <rdar://problem/6336092> REGRESSION: movie does not resize correctly + + Test: media/video-size-intrinsic-scale.html + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivate::naturalSize): Use QTMovieCurrentSizeAttribute instead + of QTMovieNaturalSizeAttribute so we return the correct size for movies saved + with a non-default matrix. + (WebCore::MediaPlayerPrivate::setSize): Don't resize the QTMovieView + because [QTMovieView setFrame] also resizes the movie itself, and as + the renderer calls setSize immediately when a movie reports a size change + (QTMovieSizeDidChangeNotification) we can get into a feedback loop + observing the size change and resetting the size, and this can cause + QuickTime to miss correctly setting a movie's size when the media size + changes after opening (as happens with an rtsp movie once the server sends + the track sizes). Instead, remember the size passed to paint() and + resize the view when it changes. + (WebCore::MediaPlayerPrivate::paint): Resize the view when passed a new size. + + * platform/graphics/win/QTMovieWin.cpp: + (QTMovieWin::getNaturalSize): Use GetMovieBox instead of GetMovieNaturalBoundsRect + so we return the correct size for movies saved with non-default matrix. + +2009-04-03 Darin Fisher <darin@chromium.org> + + Reviewed by Darin Adler. + + Restore FrameLoader::policyDocumentLoader to fix the Chromium build. + https://bugs.webkit.org/show_bug.cgi?id=25028 + + * loader/FrameLoader.h: + (WebCore::FrameLoader::policyDocumentLoader): + +2009-04-02 Michael Nordman <michaeln@google.com> + + Reviewed by Alexey Proskuryakov. + + Use long long, not int64, when working in webcore (sorry). + https://bugs.webkit.org/show_bug.cgi?id=25011 + + No change in functionality, so no tests. + + * platform/network/chromium/ResourceResponse.h: + (WebCore::ResourceResponse::getAppCacheID): + (WebCore::ResourceResponse::setAppCacheID): + +2009-04-03 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + Remove pre-processor checks for GTK+ >= 2.10, since we now require + at least that version. + + * platform/graphics/gtk/FontPlatformDataGtk.cpp: + (WebCore::FontPlatformData::FontPlatformData): + * platform/gtk/ContextMenuItemGtk.cpp: + (WebCore::gtkStockIDFromContextMenuAction): + * platform/gtk/KeyEventGtk.cpp: + (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): + * platform/gtk/LocalizedStringsGtk.cpp: + (WebCore::contextMenuItemTagSelectAll): + * platform/gtk/MouseEventGtk.cpp: + (WebCore::PlatformMouseEvent::PlatformMouseEvent): + * platform/gtk/PasteboardGtk.cpp: + (WebCore::Pasteboard::writeSelection): + (WebCore::Pasteboard::documentFragment): + * platform/gtk/WheelEventGtk.cpp: + (WebCore::PlatformWheelEvent::PlatformWheelEvent): + +2009-04-02 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein + + https://bugs.webkit.org/show_bug.cgi?id=25021 + + Fix repainting an element with a reflection and transform after layout. + Telling the reflection to repaint directly is wrong, because, with + LayoutState enabled, it only takes the reflection's transform into account, + not that of the element. We can fix this, and keep the benefits of LayoutState, + by computing the reflected repaint rect, and repainting that using the original + renderer. + + Test: fast/repaint/reflection-repaint-test.html + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::layoutBlock): + +2009-04-02 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein + + https://bugs.webkit.org/show_bug.cgi?id=23307 + + When repainting during layout (when LayoutState is enabled), we need + to apply the transform to the dirty rect, before applying x(), y() and + the offset storted in the LayoutState. + + Also bypass LayoutState in mapLocalToContainer() if we have a repaintContainer, + since LayoutState is always root-relative. + + Test: fast/repaint/transform-layout-repaint.html + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::mapLocalToContainer): + (WebCore::RenderBox::computeRectForRepaint): + +2009-04-02 Mark Rowe <mrowe@apple.com> + + Fix the Mac build after r42191. + + * WebCore.base.exp: + +2009-04-02 Mark Rowe <mrowe@apple.com> + + Fix Windows build after r42190. + + * page/EventHandler.cpp: + (WebCore::EventHandler::keyEvent): Update to use the new name of the constant. + +2009-04-02 Darin Adler <darin@apple.com> + + Reviewed by Brady Eidson. + + <rdar://problem/6625840> Previous Page isn't loaded after hitting back button at http://www.breakingnews.ie/ + + Test: http/tests/navigation/onload-navigation-iframe-2.html + + * html/HTMLFrameElement.cpp: + (WebCore::HTMLFrameElement::HTMLFrameElement): Removed unneeded createdByParser flag. + * html/HTMLFrameElement.h: Ditto. + * html/HTMLFrameElementBase.cpp: + (WebCore::HTMLFrameElementBase::HTMLFrameElementBase): Ditto. + * html/HTMLFrameElementBase.h: Ditto. + * html/HTMLFrameOwnerElement.cpp: + (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement): Ditto. + * html/HTMLFrameOwnerElement.h: Ditto. + * html/HTMLIFrameElement.cpp: + (WebCore::HTMLIFrameElement::HTMLIFrameElement): Ditto. + * html/HTMLIFrameElement.h: Ditto. + * html/HTMLPlugInElement.cpp: + (WebCore::HTMLPlugInElement::HTMLPlugInElement): Ditto. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::submitForm): Removed unneeded check of the createdByParser flag. + The original change that introduced this, http://trac.webkit.org/changeset/25410, does + not make it clear why this check was needed. And it seems it is not needed. + +2009-04-02 Adele Peterson <adele@apple.com> + + Reviewed by Darin Adler. + + Add a way to get a list of focusable nodes. + + * dom/Document.cpp: + (WebCore::Document::setFocusedNode): + (WebCore::Document::getFocusableNodes): + * dom/Document.h: + +2009-04-02 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + <rdar://problem/6654255> crash due to null FrameView in EventHandler + + Lots of code was added to EventHandler that used view() and page() without + null checking, but both of those can become null due to the frame lifetime. + + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMousePressEventSingleClick): + (WebCore::EventHandler::eventMayStartDrag): + (WebCore::EventHandler::handleAutoscroll): + (WebCore::EventHandler::autoscrollTimerFired): + (WebCore::EventHandler::setPanScrollCursor): + (WebCore::EventHandler::allowDHTMLDrag): + (WebCore::EventHandler::hitTestResultAtPoint): + (WebCore::EventHandler::stopAutoscrollTimer): + (WebCore::EventHandler::selectCursor): + (WebCore::EventHandler::handleMousePressEvent): + (WebCore::EventHandler::handleMouseMoveEvent): + (WebCore::EventHandler::dispatchDragEvent): + (WebCore::EventHandler::prepareMouseEvent): + (WebCore::EventHandler::dispatchMouseEvent): + (WebCore::EventHandler::handleWheelEvent): + (WebCore::EventHandler::hoverTimerFired): + (WebCore::EventHandler::keyEvent): + (WebCore::EventHandler::dragHysteresisExceeded): + (WebCore::EventHandler::shouldDragAutoNode): + (WebCore::EventHandler::handleDrag): + (WebCore::EventHandler::handleTextInputEvent): + (WebCore::EventHandler::addPendingFrameUnloadEventCount): + (WebCore::EventHandler::removePendingFrameUnloadEventCount): + (WebCore::EventHandler::clearPendingFrameUnloadEventCount): + (WebCore::EventHandler::addPendingFrameBeforeUnloadEventCount): + (WebCore::EventHandler::removePendingFrameBeforeUnloadEventCount): + (WebCore::EventHandler::clearPendingFrameBeforeUnloadEventCount): + Added null checks for view() and page(). Made minor code cleanups. + +2009-04-02 David Hyatt <hyatt@apple.com> + + Reviewed by Oliver Hunt. + + Fix regression in <object> layout test. Make sure that even though a 404 image loads, that <object> + still considers it an error for the purposes of firing onerror. + + * html/HTMLImageLoader.cpp: + (WebCore::HTMLImageLoader::dispatchLoadEvent): + +2009-04-02 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Timothy Hatcher. + + https://bugs.webkit.org/show_bug.cgi?id=25010 + Refactor InspectorController to replace all JS function invocations with + ScriptFunctionCall. + + * bindings/js/ScriptFunctionCall.cpp: + (WebCore::ScriptFunctionCall::appendArgument): Added int, UString, + and JSValuePtr methods. + (WebCore::ScriptFunctionCall::call): Added simplified, exception-eating + method. + * bindings/js/ScriptFunctionCall.h: Decls for above. + * bindings/js/ScriptObjectQuarantine.cpp: Added helper for Node and DOMWindow. + (WebCore::getQuarantinedScriptObject): + * bindings/js/ScriptObjectQuarantine.h: Decls for above. + * inspector/InspectorController.cpp: + (WebCore::callSimpleFunction): Made into a static. + (WebCore::InspectorController::focusNode): Refactored to use ScriptFunctionCall. + (WebCore::InspectorController::toggleRecordButton): Ditto. + (WebCore::InspectorController::startGroup): Ditto. + (WebCore::InspectorController::setAttachedWindow): Ditto. + (WebCore::InspectorController::inspectedWindowScriptObjectCleared): Ditto. + (WebCore::InspectorController::addScriptProfile): Ditto. + (WebCore::InspectorController::didParseSource): Ditto. + (WebCore::InspectorController::failedToParseSource): Ditto. + (WebCore::InspectorController::didPause): Ditto. + * inspector/InspectorController.h: Removed callFunction and callSimpleFunction + decls. + +2009-04-02 Jian Li <jianli@chromium.org> + + Reviewed by Darin Fisher. + + Upstream changes to V8WorkerContextEventListener for V8 bindings. + https://bugs.webkit.org/show_bug.cgi?id=25007 + + * bindings/v8/V8ObjectEventListener.h: + * bindings/v8/V8WorkerContextEventListener.cpp: + +2009-04-02 Jian Li <jianli@chromium.org> + + Reviewed by Darin Fisher. + + Upstream V8WorkerContextObjectEventListener for V8 bindings. + https://bugs.webkit.org/show_bug.cgi?id=25005 + + * bindings/v8/V8WorkerContextObjectEventListener.cpp: Added. + * bindings/v8/V8WorkerContextObjectEventListener.h: Added. + +2009-04-02 Jian Li <jianli@chromium.org> + + Reviewed by Darin Fisher. + + Upstream V8EventListenerList for V8 bindings. + https://bugs.webkit.org/show_bug.cgi?id=25004 + + * bindings/v8/V8EventListenerList.cpp: Added. + * bindings/v8/V8EventListenerList.h: Added. + +2009-04-02 Michael Nordman <michaeln@google.com> + + Reviewed by Darin Fisher. + + Chromium's ResourceRequest and ResourceResponse structs need some new data members. + https://bugs.webkit.org/show_bug.cgi?id=24897 + + These fields are needed to facilitate Chromium's implementation of the HTML5 + ApplicationCache feature. We need to know what frame (or context) is doing the + requesting, and from what cache the resulting resource was retrieved. + + No change in functionality, so no tests. + + * platform/network/chromium/ResourceRequest.h: + (WebCore::ResourceRequest::ResourceRequest): + (WebCore::ResourceRequest::appCacheContextID): + (WebCore::ResourceRequest::setAppCacheContextID): + * platform/network/chromium/ResourceResponse.h: + (WebCore::ResourceResponse::ResourceResponse): + (WebCore::ResourceResponse::getAppCacheID): + (WebCore::ResourceResponse::setAppCacheID): + +2009-04-02 David Hyatt <hyatt@apple.com> + + Reviewed by Darin Adler + + Fix for https://bugs.webkit.org/show_bug.cgi?id=24643. + + Make sure images just ignore HTTP error codes and keep loading anyway. Only <object> checks http error codes and falls back. Everyone + else just ignores it and displays the image anyway. + + Added http/tests/misc/image-error.html + + * html/HTMLImageLoader.cpp: + (WebCore::HTMLImageLoader::notifyFinished): + * loader/CachedImage.cpp: + (WebCore::CachedImage::CachedImage): + * loader/CachedImage.h: + (WebCore::CachedImage::httpStatusCodeError): + (WebCore::CachedImage::httpStatusCodeErrorOccurred): + * loader/CachedResource.h: + (WebCore::CachedResource::httpStatusCodeError): + * loader/loader.cpp: + (WebCore::Loader::Host::didReceiveData): + +2009-04-02 Jian Li <jianli@chromium.org> + + Reviewed by Dimitri Glazkov. + + Add XHR constructor in WorkerContext.idl for V8 bindings. + https://bugs.webkit.org/show_bug.cgi?id=24962 + + * workers/WorkerContext.idl: + +2009-04-02 Ben Murdoch <benm@google.com> + + Fix Bug 19743: Release build fails on 32-bit Windows + + <https://bugs.webkit.org/show_bug.cgi?id=19743> + + Combines all the HTML element cpp files into one to help reduce the + size of WebCore.lib so we can build in release mode on 32bit Windows. + + Reviewed by Adam Roben. + + * WebCore.vcproj/WebCore.vcproj: Excluded all the separate + HTML*Element.cpp files from the build. Added HTMLElementsAllInOne.cpp + to the build. + * html/HTMLElementsAllInOne.cpp: Added. + +2009-04-02 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Darin Adler + + https://bugs.webkit.org/show_bug.cgi?id=24999 + + Optimize hit testing with transforms. + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::mapLocalToContainer): + (WebCore::RenderBox::mapAbsoluteToLocalPoint): + getTransformFromContainer() change to return the matrix by reference. + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::update3DTransformedDescendantStatus): + The method failed to set m_3DTransformedDescendantStatusDirty to false, + so did the work every time. + + (WebCore::RenderLayer::createLocalTransformState): + Only call the expensive getTransformFromContainer() if there is a transform, + otherwise we just have a translation. + + * rendering/RenderObject.cpp: + (WebCore::RenderObject::getTransformFromContainer): + * rendering/RenderObject.h: + Change transformFromContainer() to getTransformFromContainer(), and return + the matrix by reference to reduce copying. + New enum values for arguments for readability. + + * rendering/TransformState.cpp: + (WebCore::TransformState::move): + (WebCore::TransformState::applyTransform): + (WebCore::HitTestingTransformState::translate): + New method that adds a translation to the accumulated matrix, optionally + without flattening. Cheaper than applyTransform(). + + (WebCore::HitTestingTransformState::applyTransform): + (WebCore::HitTestingTransformState::flatten): + (WebCore::HitTestingTransformState::flattenWithTransform): + Add flattenWithTransform(), which is a helper that allows us to + avoid doing the inverse() twice. + + * rendering/TransformState.h: + (WebCore::TransformState::): + (WebCore::TransformState::move): + (WebCore::HitTestingTransformState::): + New method on HitTestingTransformState that adds a translation to the + accumulated matrix, optionally without flattening. Cheaper than applyTransform(). + New enum values for arguments for readability. + +2009-04-02 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein + + https://bugs.webkit.org/show_bug.cgi?id=24648 + + Optimize common code paths in TransformationMatrix. + + * platform/graphics/transforms/TransformationMatrix.cpp: + (WebCore::TransformationMatrix::translate): + (WebCore::TransformationMatrix::translate3d): + Optimize to avoid matrix copy. + + (WebCore::TransformationMatrix::isInvertible): + Test for identity and translation matrices before computing + the determinant. + + (WebCore::TransformationMatrix::inverse): + Optimize for identity matrix and translations. + + * platform/graphics/transforms/TransformationMatrix.h: + (WebCore::TransformationMatrix::isIdentityOrTranslation): + Utility method. + +2009-04-02 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=24930 + [Gtk] ISO files content is displayed inside the webview instead of being downloaded + + Also sniff content of types declared as text/plain. This is + justified by the fact that it is common to have Apache HTTP + servers configured to send text/plain as Content-Type by default. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::gotHeadersCallback): + +2009-04-02 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Alexey Proskuryakov. + + Protect the handle when notifying the client that the response was + received also in gotChunkCallback, or we crash in didReceiveData + when the load is cancelled in didReceiveResponse. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::gotChunkCallback): + +2009-04-02 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Alexey Proskuryakov. + + https://bugs.webkit.org/show_bug.cgi?id=25001 + Crash when content type parameters have no value + + Handle the case where a Content-Type header parameter has no + value (i.e. no = character), to work-around a bug in libsoup. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::fillResponseFromMessage): + +2009-04-02 Yael Aharon <yael.aharon@nokia.com> + + Reviewed by Simon Hausmann. + + https://bugs.webkit.org/show_bug.cgi?id=24490 + + Enable web workers in Qt. + + * WebCore.pro: + +2009-04-01 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. Based on work of Julien Chaffraix. + + https://bugs.webkit.org/show_bug.cgi?id=22475 + REGRESSION: Async XMLHttpRequest never finishes on nonexistent files anymore + + https://bugs.webkit.org/show_bug.cgi?id=24886 + XHR requests opened when offline never return + + Tests: fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html + http/tests/xmlhttprequest/state-after-network-error.html + + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::callReadyStateChangeListener): Only dispatch load event if this + wasn't an error. + (WebCore::XMLHttpRequest::abort): Fixed formatting. + (WebCore::XMLHttpRequest::genericError): Change state to DONE and dispatch readystatechange. + The comment saying that this doesn't match Firefox was added in r33559 without explanation + or tests, and I don't think that it's accurate. Also, Firefox and Safari 3 both change state + to HEADERS_RECEIVED before DONE on error - this doesn't match the spec, and I doubt + that any code depends on this, so I went with the spec here. + +2009-04-01 Steve Falkenburg <sfalken@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=24997 + Race conditions in icon database threading code + + m_syncThreadRunning set was mistakenly eliminated in r27717. + This reintroduces it. + + Reviewed by Oliver Hunt. + + * loader/icon/IconDatabase.cpp: + (WebCore::IconDatabase::open): Set m_syncThreadRunning. + +2009-04-01 Antti Koivisto <antti@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6748609> Use ActiveDOMObject to suspend marquees + + Make marquees ActiveDOMObjects, get rid of the special suspension code. + + * html/HTMLMarqueeElement.cpp: + (WebCore::HTMLMarqueeElement::HTMLMarqueeElement): + (WebCore::HTMLMarqueeElement::canSuspend): + (WebCore::HTMLMarqueeElement::suspend): + (WebCore::HTMLMarqueeElement::resume): + * html/HTMLMarqueeElement.h: + * page/Frame.cpp: + (WebCore::Frame::clearTimers): + * rendering/RenderLayer.cpp: + * rendering/RenderLayer.h: + (WebCore::RenderLayer::marquee): + +2009-04-01 Dean Jackson <dino@apple.com> + + Reviewed by Darin Adler + + Make constant values static in previous commit, as suggested + by Darin. + + * rendering/RenderVideo.cpp: + +2009-04-01 Dean Jackson <dino@apple.com> + + Reviewed by Simon Fraser + + https://bugs.webkit.org/show_bug.cgi?id=24993 + + Standalone media should have a smaller instrinsic + height. + + * rendering/RenderVideo.cpp: + (WebCore::RenderVideo::RenderVideo): + +2009-04-01 Darin Adler <darin@apple.com> + + Reviewed by Geoff Garen. + + Bug 22378: Crash submitting a form when parsing an XHTML document + https://bugs.webkit.org/show_bug.cgi?id=22378 + rdar://problem/6388377 + + Tests: fast/loader/submit-form-while-parsing-1.xhtml + fast/loader/submit-form-while-parsing-2.html + + * WebCore.base.exp: Updated. + + * history/HistoryItem.cpp: + (WebCore::HistoryItem::HistoryItem): Renamed m_subItems to m_children. + Used uncheckedAppend because we reserveInitialCapacity. + (WebCore::HistoryItem::addChildItem): Renamed m_subItems to m_children. + Added an assertion that this is only used to add items that don't have + duplicate frame names. + (WebCore::HistoryItem::setChildItem): Added. Replaces an existing item + if any, preserving the isTargetItem flag. + (WebCore::HistoryItem::childItemWithTarget): Renamed from childItemWithName + for consistency with the other functions here that all call the frame name the + "target". Also updated for rename of m_subItems to m_children. + (WebCore::HistoryItem::findTargetItem): Renamed from recurseToFindTargetItem. + Removed unneeded size check. + (WebCore::HistoryItem::targetItem): Changed to always return the top item + if no item has the isTargetItem flag set. The old version would instead return + 0 in some cases, but return the top item if it had no children. + (WebCore::HistoryItem::children): Renamed m_subItems to m_children. + (WebCore::HistoryItem::hasChildren): Ditto. + (WebCore::HistoryItem::showTreeWithIndent): Ditto. + + * history/HistoryItem.h: Name changes. + + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::submit): Create and pass a FormState instead of + attaching "recorded form values" and "form about to be submitted" to the frame + loader. Parameter work fine for this; there's no need to store state on the + FrameLoader. + + * loader/FormState.cpp: + (WebCore::FormState::FormState): Adopt a vector instead of copying a hash map. + (WebCore::FormState::create): Ditto. + * loader/FormState.h: Update to use a vector that we adopt instead of hash map + that we copy for auto-fill text field values. + + * loader/FrameLoader.cpp: + (WebCore::ScheduledRedirection::ScheduledRedirection): Added a new case for + form submissions and turned the "wasDuringLoad" state into a separate boolean + instead of using a special redirection type to track it. + (WebCore::FrameLoader::createWindow): Updated for name and argument change of + loadFrameRequest. + (WebCore::FrameLoader::urlSelected): Ditto. + (WebCore::FrameLoader::submitForm): Removed the "deferred form submission" + machinery, replacing it with the "scheduled redirection" mechanism, shared + with other kinds of redirection and navigation. Moved frame targeting here + so we can schedule the redirection on the right frame. Moved the multiple + form submission protection here. Moved the code to implement the rule that + m_navigationDuringLoad was used for here too. + (WebCore::FrameLoader::didOpenURL): Use the new wasDuringLoad flag instead + of the locationChangeDuringLoad type to detect location change during a load. + (WebCore::FrameLoader::executeScript): Removed call to now-obsolete function, + submitFormAgain. + (WebCore::FrameLoader::scheduleLocationChange): Moved the code to stop loading + out of this function into scheduleRedirection, so it can be shared with the + new scheduleFormSubmission function. + (WebCore::FrameLoader::scheduleFormSubmission): Added. Almost the same as + scheduleLocationChange, but with the arguments for a form submission. + (WebCore::FrameLoader::scheduleRefresh): Updated for the change to the + duringLoad flag. + (WebCore::FrameLoader::isLocationChange): Added case for formSubmission + and removed case for locationChangeDuringLoad. + (WebCore::FrameLoader::redirectionTimerFired): Ditto. Also removed unneeded + completeURL call and just use KURL constructor to match the other cases. + (WebCore::FrameLoader::provisionalLoadStarted): Removed the code to set up + the m_navigationDuringLoad, which is no longer needed. The new version of + this is in the submitForm function and sets the lockHistory boolean. + (WebCore::FrameLoader::scheduleRedirection): Moved the code to stop a load + in here that used to be in scheduleLocationChange. + (WebCore::FrameLoader::startRedirectionTimer): Added case for formSubmission + and removed case for locationChangeDuringLoad. + (WebCore::FrameLoader::stopRedirectionTimer): Ditto. + (WebCore::FrameLoader::completed): Removed call to now-obsolete function, + submitFormAgain. + (WebCore::FrameLoader::loadFrameRequest): Renamed from + loadFrameRequestWithFormAndValues. Replaced form element and form values + argument with a single FormState argument. Changed frame targeting code + to use the source frame in the case of a form submission to better match + the actual target frame. + (WebCore::FrameLoader::loadURL): Don't search for existing frames in the + form submission case since we already did that in the submitForm function. + (WebCore::FrameLoader::clientRedirected): Changed to work with the + m_isExecutingJavaScriptFormAction data member directly instead of taking + it as a function parameter. + (WebCore::FrameLoader::loadPostRequest): Don't search for existing frames + in the form submission case since we already did that in the submitForm + function. + (WebCore::FrameLoader::addBackForwardItemClippedAtTarget): Moved comment + in here that was misplaced elsewhere in the file. + (WebCore::FrameLoader::findFrameForNavigation): Changed to use the early + return idiom. + (WebCore::FrameLoader::recursiveGoToItem): Updated for HistoryItem changes. + (WebCore::FrameLoader::childFramesMatchItem): Ditto. + (WebCore::FrameLoader::updateHistoryForStandardLoad): Removed the + m_navigationDuringLoad logic; that's now handled by setting lockHistory + to true in the submitForm function. + (WebCore::FrameLoader::updateHistoryForRedirectWithLockedBackForwardList): + Use the new setChildItem function so we don't get multiple items for the + same frame name in the history item tree in the back/forward list. + + * loader/FrameLoader.h: Renamed loadFrameRequestWithFormAndValues to + loadFrameRequest and made it take a form state object instead of the + form element and form values. Removed the unused functions + loadEmptyDocumentSynchronously, provisionalDocumentLoader, + notifyIconChnaged, and updateBaseURLForEmptyDocument. Changed the + submitForm function to take a form state argument. Eliminated the + clearRecordedFormValues, setFormAboutToBeSubmitted, and recordFormValue + functions, which are replaced by the form state arguments to submitForm + and loadFrameRequest. Removed the isJavaScriptFormAction argument from + the clientRedirected function; instead it looks at a data member directly. + Eliminated the submitFormAgain and overload of the submitForm function; + these are now subsumed into the remaining submitForm function and the + scheduleFormSubmission function. Removed unused and obsolete data + members m_navigationDuringLoad, m_deferredFormSubmission, + m_formAboutToBeSubmitted and m_formValuesAboutToBeSubmitted. + + * page/ContextMenuController.cpp: + (WebCore::ContextMenuController::contextMenuItemSelected): + Updated for name and argument change of loadFrameRequest. + + * page/Frame.cpp: + (WebCore::Frame::~Frame): Removed call to the now-unneeded + clearRecordedFormValues function. + +2009-04-01 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, fixing previous commit. + + https://bugs.webkit.org/show_bug.cgi?id=24994 + Revert V8DOMMap.cpp change which accidentally snuck into the previous + commit. + + * bindings/v8/V8DOMMap.cpp: Revert change in previous commit. + +2009-04-01 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Fisher. + + https://bugs.webkit.org/show_bug.cgi?id=24994 + Fix miscellaneous merge/upstreaming divergencies in Chromium port. + + * bindings/v8/V8Collection.h: Added an include. + * platform/KURLGoogle.cpp: + (WebCore::KURL::baseAsString): Added to match KURL.cpp. + * platform/chromium/ClipboardChromium.cpp: Added an include. + +2009-04-01 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Timothy Hatcher. + + https://bugs.webkit.org/show_bug.cgi?id=24989 + Refactor InspectorResource to use ScriptObject/FunctionCall. + + * bindings/js/JSInspectorControllerCustom.cpp: + (WebCore::JSInspectorController::addResourceSourceToFrame): Tweaked to use + a more appropriate type conversion. + (WebCore::JSInspectorController::getResourceDocumentNode): Tweaked to + accommodate for InspectorResource refactoring. + * bindings/js/ScriptFunctionCall.cpp: + (WebCore::ScriptFunctionCall::appendArgument): Added long long type to match + existing jsNumber call signature. + * bindings/js/ScriptFunctionCall.h: Declaration for above. + * bindings/js/ScriptObject.cpp: + (WebCore::createEmptyObject): Added. + (WebCore::ScriptObject::ScriptObject): + (WebCore::ScriptObject::set): Added a bunch of property setters. + * bindings/js/ScriptObject.h: Declarations for above. + * inspector/InspectorController.cpp: Moved all InspectorResource-managing code + to InspectorResource.cpp + (WebCore::InspectorController::populateScriptObjects): Changed to use + refactored InspectorResource. + (WebCore::InspectorController::resetScriptObjects): Ditto. + (WebCore::InspectorController::pruneResources): Ditto. + (WebCore::InspectorController::didCommitLoad): Ditto. + (WebCore::InspectorController::addResource): Ditto. + (WebCore::InspectorController::removeResource): Ditto. + (WebCore::InspectorController::didLoadResourceFromMemoryCache): Ditto. + (WebCore::InspectorController::identifierForInitialRequest): Ditto. + (WebCore::InspectorController::willSendRequest): Ditto. + (WebCore::InspectorController::didReceiveResponse): Ditto. + (WebCore::InspectorController::didReceiveContentLength): Ditto. + (WebCore::InspectorController::didFinishLoading): Ditto. + (WebCore::InspectorController::didFailLoading): Ditto, + (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest): Ditto. + (WebCore::InspectorController::scriptImported): Ditto. + * inspector/InspectorController.h: Removed InspectorResource-managing code decls + and tweaked some signatures to use ScriptString and long long for identifier. + * inspector/InspectorController.idl: Changed to use long long for identifier. + * inspector/InspectorResource.cpp: Refactored to use ScriptObject/FunctionCall. + (WebCore::InspectorResource::InspectorResource): Ditto. + (WebCore::InspectorResource::~InspectorResource): Ditto. + (WebCore::InspectorResource::createCached): Added. + (WebCore::InspectorResource::updateRequest): Added. + (WebCore::InspectorResource::updateResponse): Added. + (WebCore::createHeadersObject): Added. + (WebCore::InspectorResource::createScriptObject): Added. + (WebCore::InspectorResource::updateScriptObject): Added. + (WebCore::InspectorResource::releaseScriptObject): Added. + (WebCore::InspectorResource::type): Tweaked to use ScriptString. + (WebCore::InspectorResource::setXMLHttpResponseText): Added. + (WebCore::InspectorResource::sourceString): Tweaked to use ScriptString. + (WebCore::InspectorResource::startTiming): Added. + (WebCore::InspectorResource::markResponseReceivedTime): Added. + (WebCore::InspectorResource::endTiming): Added. + (WebCore::InspectorResource::markFailed): Added. + (WebCore::InspectorResource::addLength): Added. + * inspector/InspectorResource.h: Added decls for newly refactored-in methods. + (WebCore::InspectorResource::create): Added. + (WebCore::InspectorResource::isSameLoader): Added. + (WebCore::InspectorResource::markMainResource): Added. + (WebCore::InspectorResource::identifier): Added. + (WebCore::InspectorResource::requestURL): Added. + (WebCore::InspectorResource::frame): Added. + (WebCore::InspectorResource::mimeType): Added. + (WebCore::InspectorResource::Changes::Changes): Added new class to track + resource changes. + (WebCore::InspectorResource::Changes::hasChange): Added. + (WebCore::InspectorResource::Changes::set): Added. + (WebCore::InspectorResource::Changes::clear): Added. + (WebCore::InspectorResource::Changes::setAll): Added. + (WebCore::InspectorResource::Changes::clearAll): Added. + +2009-04-01 Tony Chang <tony@chromium.org> + + Reviewed by Darin Fisher. + + Ensure the right click doesn't deselect text under it. This was + happening in the Chromium and GTK+ ports because they don't select + the text under the cursor on right click. + + This was regressed in r41715, https://bugs.webkit.org/show_bug.cgi?id=19737 + + https://bugs.webkit.org/show_bug.cgi?id=24946 + + Test: fast/events/context-no-deselect.html + + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMouseReleaseEvent): + +2009-04-01 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dave Hyatt + + https://bugs.webkit.org/show_bug.cgi?id=24991 + + Need to use toRenderBoxModelObject(), not toRenderBox(), to test for layer() + when getting the transform. + + * rendering/RenderObject.cpp: + (WebCore::RenderObject::transformFromContainer): + +2009-03-31 Darin Adler <darin@apple.com> + + Rolled out that last change until I can investigate the regression test failures it seems + to have caused. + + * dom/PositionIterator.cpp: + (WebCore::PositionIterator::decrement): + * dom/PositionIterator.h: + (WebCore::PositionIterator::PositionIterator): + +2009-03-31 Darin Adler <darin@apple.com> + + Reviewed by Eric Seidel. + + Bug 24621: PositionIterator doesn't iterate "after last child" positions when going backwards + https://bugs.webkit.org/show_bug.cgi?id=24621 + + * dom/PositionIterator.cpp: + (WebCore::PositionIterator::decrement): Make sure that when the parent has no children, we + don't ever use Position::uncheckedPreviousOffset. This is consistent with the forward + iterator, but also should never arise because of the fix below. + * dom/PositionIterator.h: + (WebCore::PositionIterator::PositionIterator): Fixed so m_offset will always be 0 when + the passed-in node has no children. Like the change above, this is consistent with the rest + of the class, although in the long run I think it's a bit strange to treat a <p> element + with no children differently than a <p> element with children. + +2009-03-31 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=24965 + Bug 24965: HTMLMediaElement: network state changes can be missed + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::setNetworkState): Always update m_networkState when the + state changes, even when no event needs to be fired. + +2009-03-31 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=24964 + Bug 24964: HTMLMediaElement: 'waiting' event may fire twice + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::setReadyState): Only fire 'waiting' event once when ready state + drops below HAVE_FUTURE_DATA. + +2009-03-31 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=24846 + Bug 24846: HTMLMediaElement should implement 'autobuffer' attribute + + Add 'autobuffer' attrubute to media element. 'autobuffer' is a hint that + the author recommends downloading the entire resource optimistically, so the + attribute is made available to the media engine to use if it is able. + + Test: media/video-dom-autobuffer.html + + * html/HTMLAttributeNames.in: Add autobuffer. + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::parseMappedAttribute): New. + (WebCore::HTMLMediaElement::autobuffer): Ditto. + (WebCore::HTMLMediaElement::setAutobuffer): Ditto. + + * html/HTMLMediaElement.h: Declare autobuffer and setAutobuffer. + + * html/HTMLMediaElement.idl: Add autobuffer. + + * platform/graphics/MediaPlayer.cpp: + (WebCore::MediaPlayer::MediaPlayer): Initialize m_autobuffer. + (WebCore::MediaPlayer::autobuffer): New. + (WebCore::MediaPlayer::setAutobuffer): Ditto. + * platform/graphics/MediaPlayer.h: Declare m_autobuffer, autobuffer and setAutobuffer + + * platform/graphics/MediaPlayerPrivate.h: + (WebCore::MediaPlayerPrivateInterface::setAutobuffer): Declare setAutobuffer. + +2009-03-31 Craig Schlenter <craig.schlenter@gmail.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=24550 + Check return value of vasprintf. This should keep gcc 4.3.3 + happy rather than have it complain about attribute warn_unused_result. + + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::XMLTokenizer::error): + +2009-03-31 Dean Jackson <dino@apple.com> + + Style guide violation! + + * loader/MediaDocument.cpp: + (WebCore::MediaDocument::defaultEventHandler): + +2009-03-31 Dean Jackson <dino@apple.com> + + Fix Tiger build. + + * loader/MediaDocument.cpp: + (WebCore::MediaDocument::defaultEventHandler): + +2009-03-31 Jian Li <jianli@chromium.org> + + Reviewed by Darin Fisher. + + Upstream V8DOMMap for v8 bindings. + https://bugs.webkit.org/show_bug.cgi?id=24951 + + * bindings/v8/V8DOMMap.cpp: Added. + * bindings/v8/V8DOMMap.h: Added. + +2009-03-31 Dean Jackson <dino@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=24955 + + Spacebar didn't play/pause in standalone MediaDocument + + * loader/MediaDocument.cpp: + (WebCore::MediaDocument::defaultEventHandler): + +2009-03-31 Alpha Lam <hclam@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=24901 + Added the following methods to MediaPlayerPrivate for Chromium port. + void sizeChanged(); + void rateChanged(); + void durationChanged(); + + The above changes are to reflect changes in MediaPlayer.cpp. + More details can be found in the original changeset. + http://trac.webkit.org/changeset/41907 + + * platform/graphics/chromium/MediaPlayerPrivateChromium.h: + +2009-03-31 Rafael Weinstein <rafaelw@chromium.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=24947 + + Special-case drawing text-shadow on win32, to let GDI draw in cases + when both fill & shadow color are opaque and the shadow has no blur. + + * platform/graphics/chromium/FontChromiumWin.cpp: + (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs): + (WebCore::Font::drawComplexText): + * platform/graphics/skia/SkiaFontWin.cpp: + (WebCore::windowsCanHandleDrawTextShadow): + (WebCore::windowsCanHandleTextDrawing): + * platform/graphics/skia/SkiaFontWin.h: + +2009-03-31 Jeremy Moskovich <jeremy@chromium.org> + + Reviewed by Darin Fisher. + + r42055 removed some functions in FrameLoader used by Chrome, + this CL backs out some of those changes to unbreak the Chrome build. + + https://bugs.webkit.org/show_bug.cgi?id=24949 + + * WebCore.base.exp: + * loader/FrameLoader.cpp: + * loader/FrameLoader.h: + +2009-03-31 Jeremy Moskovich <jeremy@chromium.org> + + Reviewed by Darin Adler. + + Build fixes for Chromium. + + https://bugs.webkit.org/show_bug.cgi?id=24945 + + * dom/Document.h: + * platform/chromium/ClipboardChromium.cpp: + (WebCore::imageToMarkup): + +2009-03-31 Simon Hausmann <simon.hausmann@nokia.com> + + Fix the Qt build. + + * dom/XMLTokenizerQt.cpp: + (WebCore::XMLTokenizer::XMLTokenizer): Use NamedNodeMap instead of NamedAttrMap. + +2009-03-30 Steve Falkenburg <sfalken@apple.com> + + Don't create CFDataRef with a fixed size. + Fixes synchronous XMLHTTPRequests on Windows. + + Reviewed by Ada Chan. + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::WebCoreSynchronousLoader::didReceiveData): + +2009-03-30 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + Bug 24594: PolicyDelegate NavigationAction is WebNavigationTypeOther instead of WebNavigationTypeReload + https://bugs.webkit.org/show_bug.cgi?id=24594 + rdar://problem/6682110 + + Test: fast/loader/reload-policy-delegate.html + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::loadWithDocumentLoader): Set the triggering action here where we know it's + the policy loader and can use m_policyLoadType rather than letting it get set inside + checkNavigationPolicy. + +2009-03-30 Timothy Hatcher <timothy@apple.com> + + <rdar://problem/5838871> CrashTracer: 1483 crashes Quicklooking + in Finder (painting without up to date layout) + + Reviewed by Dan Bernstein. + + * page/FrameView.cpp: + (WebCore::FrameView::paintContents): Add an early return when + painting is attempted when layout is needed. + +2009-03-30 Greg Bolsinga <bolsinga@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=24938 + + Sort alphabetically. + + * css/CSSComputedStyleDeclaration.cpp: + (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): + +2009-03-30 Greg Bolsinga <bolsinga@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=24938 + + Build fixes for building --3d-rendering and --no-svg + + * rendering/RenderLayerBacking.cpp: + +2009-03-30 Greg Bolsinga <bolsinga@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=24938 + + Build fixes when building --no-svg + + * css/CSSComputedStyleDeclaration.cpp: + (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add missing CSS properties + * css/CSSCursorImageValue.cpp: + (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Handle unused param + * css/CSSParser.cpp: + (WebCore::CSSParser::parseValue): Add missing CSS properties + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::applyProperty): Add missing CSS properties + * dom/Node.cpp: + (WebCore::updateSVGElementInstancesAfterEventListenerChange): Handle unused param + * platform/graphics/Font.cpp: + (WebCore::Font::floatWidth): Handle unused param + * platform/graphics/SimpleFontData.cpp: + (WebCore::SimpleFontData::SimpleFontData): Handle unused param + +2009-03-30 Darin Adler <darin@apple.com> + + Reviewed by Adam Roben. + + Bug 24916: REGRESSION: NavigationAction policy dispatch broken + https://bugs.webkit.org/show_bug.cgi?id=24916 + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::loadURL): Rearrange the code so that the "event" PassRefPtr + is not used twice. This also optimizes the case where a frame name is specified, + but it's the name of the frame being loaded. Also called release in all the final + uses of FormState. + +2009-03-30 Darin Adler <darin@apple.com> + + Reviewed by Adam Roben. + + Bug 24937: NamedNodeMap and NamedAttrMap should not be separate classes + https://bugs.webkit.org/show_bug.cgi?id=24937 + + Also should fix the Windows COM bindings build. + + * bindings/scripts/CodeGeneratorJS.pm: Removed special case for NamedNodeMap. + * bindings/scripts/CodeGeneratorObjC.pm: Ditto. + + * dom/NamedAttrMap.h: Renamed class from NamedAttrMap to + NamedNodeMap and removed NamedNodeMap base class. Made the NamedNodeMap + functions all public and non-virtual. Removed virtualLength. + + * dom/NamedNodeMap.h: Replaced file with just an include + of NamedAttrMap.h. As a follow up we will rename the NamedAttrMap + files and remove this file. + + * bindings/js/JSNamedNodesCollection.cpp: Renamed from NamedAttrMap to NamedNodeMap. + * dom/Attr.h: Ditto. + * dom/Attribute.h: Ditto. + * dom/Document.cpp: + (WebCore::Document::importNode): Ditto. + * dom/Element.cpp: + (WebCore::Element::attributes): Ditto. + (WebCore::Element::setAttributeMap): Ditto. + (WebCore::Element::createAttributeMap): Ditto. + (WebCore::Element::insertedIntoDocument): Ditto. + (WebCore::Element::removedFromDocument): Ditto. + (WebCore::Element::openTagStartToString): Ditto. + (WebCore::Element::removeAttributeNode): Ditto. + (WebCore::Element::getAttributeNode): Ditto. + (WebCore::Element::getAttributeNodeNS): Ditto. + (WebCore::Element::hasAttribute): Ditto. + (WebCore::Element::hasAttributeNS): Ditto. + (WebCore::Element::normalizeAttributes): Ditto. + * dom/Element.h: Ditto. + * dom/NamedAttrMap.cpp: + (WebCore::NamedNodeMap::detachAttributesFromElement): Ditto. + (WebCore::NamedNodeMap::~NamedNodeMap): Ditto. + (WebCore::NamedNodeMap::isMappedAttributeMap): Ditto. + (WebCore::NamedNodeMap::getNamedItem): Ditto. + (WebCore::NamedNodeMap::getNamedItemNS): Ditto. + (WebCore::NamedNodeMap::removeNamedItem): Ditto. + (WebCore::NamedNodeMap::removeNamedItemNS): Ditto. + (WebCore::NamedNodeMap::setNamedItem): Ditto. + (WebCore::NamedNodeMap::item): Ditto. + (WebCore::NamedNodeMap::getAttributeItem): Ditto. + (WebCore::NamedNodeMap::clearAttributes): Ditto. + (WebCore::NamedNodeMap::detachFromElement): Ditto. + (WebCore::NamedNodeMap::setAttributes): Ditto. + (WebCore::NamedNodeMap::addAttribute): Ditto. + (WebCore::NamedNodeMap::removeAttribute): Ditto. + (WebCore::NamedNodeMap::mapsEquivalent): Ditto. + * dom/NamedMappedAttrMap.cpp: + (WebCore::NamedMappedAttrMap::clearAttributes): Ditto. + * dom/NamedMappedAttrMap.h: + (WebCore::NamedMappedAttrMap::NamedMappedAttrMap): Ditto. + * dom/Node.cpp: + (WebCore::Node::dumpStatistics): Ditto. + (WebCore::Node::isEqualNode): Ditto. + (WebCore::Node::isDefaultNamespace): Ditto. + (WebCore::Node::lookupNamespaceURI): Ditto. + (WebCore::Node::lookupNamespacePrefix): Ditto. + (WebCore::Node::compareDocumentPosition): Ditto. + * dom/Node.h: Ditto. + * dom/XMLTokenizerLibxml2.cpp: + (WebCore::XMLTokenizer::XMLTokenizer): Ditto. + * editing/ApplyStyleCommand.cpp: + (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan): Ditto. + (WebCore::isEmptyFontTag): Ditto. + (WebCore::areIdenticalElements): Ditto. + * editing/markup.cpp: + (WebCore::appendStartMarkup): Ditto. + (WebCore::completeURLs): Ditto. + * html/HTMLParser.cpp: + (WebCore::HTMLParser::handleError): Ditto. + * rendering/RenderPartObject.cpp: + (WebCore::RenderPartObject::updateWidget): Ditto. + * svg/SVGAnimatedProperty.h: + (WebCore::synchronizeProperty): Ditto. + * xml/XPathFunctions.cpp: + (WebCore::XPath::FunLang::evaluate): Ditto. + * xml/XPathStep.cpp: + (WebCore::XPath::Step::nodesInAxis): Ditto. + +2009-03-30 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Holger Freyther. + + https://bugs.webkit.org/show_bug.cgi?id=24750 + [GTK] requests download instead of displaying page + + Use soup facilities to append parameters to the content type, to + make that more robust; + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::fillResponseFromMessage): + +2009-03-30 David Kilzer <ddkilzer@apple.com> + + <rdar://problem/6735683> Move SECTORDER_FLAGS from Xcode project to WebCore.xcconfig + + Reviewed by Timothy Hatcher, Mark Rowe and Darin Adler. + + * Configurations/Base.xcconfig: Moved Production definition of + SECTORDER_FLAGS to here from Xcode project file. + * Configurations/DebugRelease.xcconfig: Override SECTORDER_FLAGS + in Base.xcconfig to the empty string since it is not used for + Debug and Release configurations. + * WebCore.xcodeproj/project.pbxproj: Removed SECTORDER_FLAGS. + +2009-03-30 Adam Roben <aroben@apple.com> + + Windows build fix after recent Node.idl changes + + * bindings/scripts/CodeGeneratorCOM.pm: Touched this to force sources + of classes that derive from Node to rebuild. + +2009-03-30 Adam Roben <aroben@apple.com> + + Windows build fix + + * svg/graphics/SVGImage.cpp: Added a missing #include. + +2009-03-30 Mads Ager <ager@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=24879 + Add frame accessor to Screen, Console, and BarInfo objects. Add type + accessor to BarInfo objects. + + In the V8 JavaScript bindings, we need access to the frame and + type for already created Screen, Console, and BarInfo objects in + order to keep their wrappers alive across GCs. + + * page/BarInfo.cpp: + (WebCore::BarInfo::frame): Added. + (WebCore::BarInfo::type): Added. + * page/BarInfo.h: + * page/Console.cpp: + (WebCore::Console::frame): Added. + * page/Console.h: + * page/Screen.cpp: + (WebCore::Screen::frame): Added. + * page/Screen.h: + +2009-03-29 Darin Adler <darin@apple.com> + + Requested by Antti Koivisto. + + * loader/DocumentLoader.cpp: + (WebCore::DocumentLoader::subresource): Tweaked code to be a little clearer and added + a better comment. + +2009-03-29 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + Bug 23445: Copying certain hidden text causes a crash + https://bugs.webkit.org/show_bug.cgi?id=23445 + rdar://problem/6512520 + + Test: editing/pasteboard/copy-display-none.html + + * editing/markup.cpp: + (WebCore::createMarkup): Added a check for the case where adjusting the start node moves + the start of the selection past the end of the range entirely. If we try to iterate we'll + never hit the end of the range and will probably crash iterating the rest of the document. + +2009-03-29 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + Bug 24672: ASSERTION FAILURE: !m_purgeableData in WebCore::CachedResource::data() saving a WebArchive + https://bugs.webkit.org/show_bug.cgi?id=24672 + rdar://problem/6574263 + + I couldn't create a test case for this. In fact, the case in the bug doesn't exist any more, + but there is an Apple-internal website I was able to use to reproduce and fix. + + * loader/CachedResource.h: Made makePurgeable public. + * loader/DocumentLoader.cpp: + (WebCore::DocumentLoader::subresource): Call makePurgeable to make the resource non-purgeable + so we can get its data if it hasn't yet been purged. + +2009-03-29 Darin Adler <darin@apple.com> + + Fix build again. + + * loader/EmptyClients.h: Fix typo in name of FormState.h. + +2009-03-29 Darin Adler <darin@apple.com> + + Try to fix the release build. + + * history/CachedPage.cpp: Make include unconditional, not debug-only. + +2009-03-29 Greg Bolsinga <bolsinga@apple.com> + + Undo that last build fix, since it turned out the file wasn't deleted. + + * WebCore.xcodeproj/project.pbxproj: + +2009-03-29 Greg Bolsinga <bolsinga@apple.com> + + Fix build break by removing references to deleted header files. + + * WebCore.xcodeproj/project.pbxproj: + +2009-03-29 Darin Adler <darin@apple.com> + + Try to fix the Windows build. + + * loader/EmptyClients.h: Added include of FormState.h. + * loader/MainResourceLoader.cpp: Ditto. + +2009-03-29 Dmitry Titov <dimich@chromium.org> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=24926 + Fix Chromium build break. + + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::CALLBACK_FUNC_DECL(DOMWindowShowModalDialog)): renamed 'features' into 'windowFeatures'. + +2009-03-29 Darin Adler <darin@apple.com> + + Another attempt to fix the Qt build. + + * WebCore.pro: Added CheckedRadioButtons.cpp. + +2009-03-29 Darin Adler <darin@apple.com> + + Reviewed by Cameron Zwarich. + + Bug 24921: remove include of HTMLFormElement.h from Document.h + https://bugs.webkit.org/show_bug.cgi?id=24921 + + * GNUmakefile.am: Added CheckedRadioButtons source files. + * WebCore.scons: Ditto. + * WebCore.vcproj/WebCore.vcproj: Ditto. + * WebCore.xcodeproj/project.pbxproj: Ditto. + * WebCoreSources.bkl: Ditto. + + * bindings/objc/PublicDOMInterfaces.h: Changed type of parentElement to Element. + + * dom/CheckedRadioButtons.cpp: Copied from WebCore/html/HTMLFormElement.cpp. + Removed all the code except for CheckedRadioButtons, and moved that out to be + a namespace-level class instead of a member of HTMLFormElement. + + * dom/CheckedRadioButtons.h: Copied from WebCore/html/HTMLFormElement.h. + Removed all the code except for CheckedRadioButtons, and moved that out to be + a namespace-level class instead of a member of HTMLFormElement. + + * dom/Document.h: Removed unneeded includes, including HTMLFormElement.h. + Added include of CheckedRadioButtons.h. Changed uses of CheckedRadioButtons + class to use a namespace-level class instead of a member of HTMLFormElement. + + * dom/Node.idl: Changed the type of parentElement from Node to Element for + two reasons. 1) Node was incorrect, since parentElement returns an Element. + 2) The bindings won't compile any more unless they know parentElement's + return value is an Element due to include changes. + + * html/HTMLFormElement.cpp: Moved definitions of the functions in the + CheckedRadioButtons class to the new CheckedRadioButtons.cpp. + + * html/HTMLFormElement.h: Moved definition of the CheckedRadioButtons + class to the new CheckedRadioButtons.h. + + * html/HTMLInputElement.cpp: + (WebCore::checkedRadioButtons): Changed use of CheckedRadioButtons + class to use a namespace-level class instead of a member of HTMLFormElement. + + * page/Chrome.cpp: + (WebCore::Chrome::createWindow): Tweaked formatting. + + * css/CSSGrammar.y: Added newly-needed include. + * dom/Range.cpp: Ditto. + * editing/BreakBlockquoteCommand.cpp: Ditto. + * editing/CompositeEditCommand.cpp: Ditto. + * editing/InsertLineBreakCommand.cpp: Ditto. + * editing/ModifySelectionListLevel.cpp: Ditto. + * editing/RemoveFormatCommand.cpp: Ditto. + * editing/TextIterator.cpp: Ditto. + * editing/VisiblePosition.cpp: Ditto. + * loader/DocLoader.cpp: Ditto. + * page/AccessibilityRenderObject.cpp: Ditto. + * page/Page.cpp: Ditto. + * rendering/RenderBlock.cpp: Ditto. + * rendering/RenderLayer.cpp: Ditto. + * rendering/RenderObject.h: Ditto. + * storage/LocalStorageArea.cpp: Ditto. + * storage/SessionStorageArea.cpp: Ditto. + +2009-03-29 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/6015407> attr parsing should allow only identifiers + + Test: fast/css/attr-parsing.html + + * css/CSSParser.cpp: + (WebCore::CSSParser::parseContent): Allow only CSS_IDENT, and filter out + identifiers that start with "-". + * css/CSSPrimitiveValue.cpp: + (WebCore::CSSPrimitiveValue::cssText): Added a case for CSS_ATTR so the test + case works. This has the pleasant side effect of fixing a bug too. + +2009-03-29 Alexey Proskuryakov <ap@webkit.org> + + <rdar://problem/6492712> Cross-origin redirects are not handled correctly. + + Forgot to save the file after applying changes for review comments. + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::willSendRequest): + (WebCore::didReceiveResponse): + (WebCore::didReceiveData): + (WebCore::didSendBodyData): + (WebCore::didFinishLoading): + (WebCore::didFail): + (WebCore::willCacheResponse): + (WebCore::didReceiveChallenge): + (WebCore::WebCoreSynchronousLoader::willSendRequest): + (WebCore::WebCoreSynchronousLoader::didReceiveResponse): + (WebCore::WebCoreSynchronousLoader::didReceiveData): + (WebCore::WebCoreSynchronousLoader::didFinishLoading): + (WebCore::WebCoreSynchronousLoader::didFail): + (WebCore::WebCoreSynchronousLoader::didReceiveChallenge): + +2009-03-28 Alexey Proskuryakov <ap@webkit.org> + + Reviewed by Darin Adler. + + <rdar://problem/6492712> Cross-origin redirects are not handled correctly. + + Test: http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html + + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): + (WebCore::ResourceHandle::loadResourceSynchronously): + (WebCore::WebCoreSynchronousLoader::willSendRequest): + (WebCore::WebCoreSynchronousLoader::didReceiveResponse): + (WebCore::WebCoreSynchronousLoader::didReceiveData): + (WebCore::WebCoreSynchronousLoader::didFinishLoading): + (WebCore::WebCoreSynchronousLoader::didFail): + (WebCore::WebCoreSynchronousLoader::didReceiveChallenge): + (WebCore::WebCoreSynchronousLoader::load): + Match Mac behavior more closely - we shouldn't rely on underlying library handling of + synchronous requests. + + * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::willSendRequest): + -[NSURLConnection cancel] doesn't fully cancel the connection if called from willSendRequest + delegate method for a redirect. + + * platform/network/mac/ResourceHandleMac.mm: + (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): + Match async behavior more closely. + +2009-03-28 Darin Adler <darin@apple.com> + + Reviewed by Mark Rowe. + + Bug 24914: empty-string assertion crash when running storage tests + https://bugs.webkit.org/show_bug.cgi?id=24914 + + * storage/Database.cpp: + (WebCore::Database::performOpenAndVerify): Don't store empty version strings + in the map, since empty strings are per-thread. + +2009-03-28 Dmitry Titov <dimich@chromium.org> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=24910 + Fixes for Chromium build. + + * bindings/v8/V8LazyEventListener.h: renamed IsInline() into virtualIsInline() + * bindings/v8/custom/V8CustomEventListener.h: ditto. + * dom/EventListener.h: used #if USE(JSC) to fix the build on non-JSC platform. + +2009-03-28 Dimitri Glazkov <dglazkov@chromium.org> + + Not reviewed, correcting landing error. + + https://bugs.webkit.org/show_bug.cgi?id=24812 + Custom bindings should be in v8/custom, not v8. + + * bindings/v8/V8HTMLDocumentCustom.cpp: Removed. + * bindings/v8/custom/V8HTMLDocumentCustom.cpp: Moved from parent dir. + +2009-03-28 Mike Belshe <mike@belshe.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=24616 + Add V8 custom bindings for DOMWindow. + + * bindings/v8/custom/V8DOMWindowCustom.cpp: Added. + +2009-03-28 Mike Belshe <mike@belshe.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=24812 + Add V8 custom bindings for HTMLDocument. + + * bindings/v8/V8HTMLDocumentCustom.cpp: Added. + +2009-03-27 Mark Rowe <mrowe@apple.com> + + Reviewed by Sam Weinig. + + Fix two SVG test failures in 64-bit. + + getSubStringLength's arguments were declared as unsigned in the IDL and as signed long in the implementation. + This led to a value of -1 in JavaScript being converted to MAX_UINT in the bindings. In 32-bit this was + identical to -1 when interpeted as signed long, but in 64-bit it was still equal to MAX_UINT. + + The solution for this is to use the IsIndex attribute on arguments that the SVG spec declares as "unsigned long" + but requires an exception be thrown when a negative value is passed. This results in the JS bindings handling the + check for a negative value and lets the implementation treat the arguments purely as unsigned values. + + * svg/SVGTextContentElement.cpp: + (WebCore::SVGTextContentElement::getNumberOfChars): + (WebCore::SVGTextContentElement::getSubStringLength): + (WebCore::SVGTextContentElement::getStartPositionOfChar): + (WebCore::SVGTextContentElement::getEndPositionOfChar): + (WebCore::SVGTextContentElement::getExtentOfChar): + (WebCore::SVGTextContentElement::getRotationOfChar): + (WebCore::SVGTextContentElement::getCharNumAtPosition): + (WebCore::SVGTextContentElement::selectSubString): + * svg/SVGTextContentElement.h: + * svg/SVGTextContentElement.idl: + +2009-03-27 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + Get mailto code out of FrameLoader. + + * html/HTMLFormElement.cpp: + (WebCore::transferMailtoPostFormDataToURL): Added. Factored out the mailto + logic so HTMLFormElement::submit isn't full of ugly bits. This includes the + part of the logic that involves transformeing the URL that was previously + inside FrameLoader. + (WebCore::HTMLFormElement::submit): Call transferMailtoPostFormDataToURL and + also release the data for slightly less refcount churn. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::submitForm): Removed all the special casing for mailto, + since HTMLFormElement now properly prepares both the URL and the form data. + +2009-03-27 Dan Bernstein <mitz@apple.com> + + Reviewed by Mark Rowe. + + - fix <rdar://problem/6724514> A bit of OpenTypeUtilities cleanup + + * platform/graphics/chromium/FontCustomPlatformData.cpp: + (WebCore::EOTStream::EOTStream): Changed to use EOTHeader. + (WebCore::createFontCustomPlatformData): Ditto. + * platform/graphics/opentype/OpenTypeUtilities.cpp: + (WebCore::EOTHeader::EOTHeader): Added. Initializes the buffer size to + the size of an EOTPrefix. + (WebCore::EOTHeader::updateEOTSize): Added. Updates the size field in + the prefix. + (WebCore::EOTHeader::appendBigEndianString): Changed the static + appendBigEndianStringToEOTHeader() into this member function. + (WebCore::EOTHeader::appendPaddingShort): Added. + (WebCore::getEOTHeader): Changed to use EOTHeader. + * platform/graphics/opentype/OpenTypeUtilities.h: + (WebCore::EOTHeader::size): + (WebCore::EOTHeader::data): + (WebCore::EOTHeader::prefix): + * platform/graphics/win/FontCustomPlatformData.cpp: + (WebCore::EOTStream::EOTStream): Changed to use EOTHeader. + (WebCore::createFontCustomPlatformData): Ditto. + +2009-03-27 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + To prepare for work on a form loading fix, remove some unused functions, + consolidate some functions, and make many more functions private in + FrameLoader. + + * WebCore.base.exp: Remove some unused entry points, update another. + + * dom/Document.cpp: + (WebCore::Document::detach): Clear m_frame directly instead of using + clearFramePointer. + * dom/Document.h: Ditto. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::urlSelected): Consolidate the two functions + of this name into a single function. Also changed the event argument + to be PassRefPtr<Event>. + (WebCore::FrameLoader::submitForm): Changed the event argument to + be PassRefPtr<Event>. + (WebCore::FrameLoader::scheduleLocationChange): Call completeURL + explicitly so we can remove the version of changeLocation that does + completeURL for us. + (WebCore::FrameLoader::redirectionTimerFired): Ditto. + (WebCore::FrameLoader::loadURLIntoChildFrame): Set m_provisionalHistoryItem + directly so we don't need a setProvisionalHistoryItem function. + (WebCore::FrameLoader::canCachePageContainingThisFrame): Get at + m_quickRedirectComing directly so we don't need a isQuickRedirectComing + function. + (WebCore::FrameLoader::logCanCacheFrameDecision): Ditto. + (WebCore::FrameLoader::loadFrameRequestWithFormAndValues): Changed the + event argument to be PassRefPtr<Event>. + (WebCore::FrameLoader::loadURL): Move the logic of the continueLoadWithData + function here because this is the only caller. If we want to make the + resulting function smaller we should refactor some other way. Also + streamlined the user-chosen encoding logic, but did not change what it does. + (WebCore::FrameLoader::finishedLoadingDocument): Changed the event argument + to be PassRefPtr<Event>. + (WebCore::FrameLoader::loadPostRequest): Ditto. + (WebCore::FrameLoader::receivedMainResourceError): Moved the logic from + the didNotOpenURL function here, since this was the only caller. + + * loader/FrameLoader.h: Removed include of FormState.h and used a forward + declaration instead. Removed unneeded forward declation of Element. + Moved many functions into the private section, and removed some other + unused or uneeded functions. + +2009-03-27 Xiaomei Ji <xji@chromium.org> + + Reviewed by Dan Bernstein. + + Fix https://bugs.webkit.org/show_bug.cgi?id=24303 + Using keyboard select RTL text, Highlights goes to opposite direction from Firefox and IE. + + Test: editing/selection/extend-selection.html + + * editing/SelectionController.cpp: + (WebCore::SelectionController::directionOfEnclosingBlock): Added + (WebCore::SelectionController::modifyExtendingRight): Added. Currenctly + implemented for character and word granularity, all other granularities + are treated as "forward". + (WebCore::SelectionController::modifyExtendingForward): Renamed + modifyExtendingRightForward() to this. + (WebCore::SelectionController::modifyExtendingLeft): Added. Currenctly + implemented for character and word granularity, all other granularities + are treated as "backward". + (WebCore::SelectionController::modifyExtendingBackward): Renamed + modifyExtendingLeftBackward() to this. + (WebCore::SelectionController::modify): Change to call either the + left/right or backward/forward methods depending on the 'dir' argument + for extends. + * editing/SelectionController.h: + +2009-03-27 John Abd-El-Malek <jam@google.com> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=24836 + Fix navigator.plugins.refresh(false) in Chromium. + + * plugins/chromium/PluginDataChromium.cpp: + (WebCore::PluginData::refresh): + +2009-03-27 Timothy Hatcher <timothy@apple.com> + + Make scrollLeft, scrollTop, scrollWidth, and scrollHeight + virtual to fix the broken layout tests from my last commit. + + Reviewed by Mark Rowe. + + * dom/Element.cpp: + (WebCore::Element::scrollLeft): + (WebCore::Element::scrollTop): + (WebCore::Element::scrollWidth): + (WebCore::Element::scrollHeight): + * dom/Element.h: + * html/HTMLBodyElement.h: + +2009-03-27 Mark Rowe <mrowe@apple.com> + + Reviewed by Sam Weinig. + + Fix <https://bugs.webkit.org/show_bug.cgi?id=24876>. + Bug 24876: fast/forms/select-max-length.html times out in debug builds due to HTMLSelectElement::setLength being O(N^2) + + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::setLength): Repeatedly calling remove to remove elements causes us to recalculate the list + items after each node is removed, leading to O(N^2) behaviour. By inlining the batch removal in to setLength we can avoid + this gratuitous recalcuation. + +2009-03-27 Dirk Schulze <krit@webkit.org> + + Reviewed by Eric Seidel. + + We don't support images for GtkCursors yet. We need a placeholder to avoid crashes. + I took crosshair to have a common behavior with firefox. + + [GTK] SVG - Crash on setting the cursor icon + https://bugs.webkit.org/show_bug.cgi?id=24565 + + * platform/gtk/CursorGtk.cpp: + (WebCore::Cursor::Cursor): + +2009-03-27 Timothy Hatcher <timothy@apple.com> + + Remove redundant attributes and functions from IDL files that have the + same attributes and functions defined in the super class. + + Reviewed by Simon Fraser. + + * WebCore.xcodeproj/project.pbxproj: Remove DOMHTMLBodyElementPrivate.h. + * bindings/objc/PublicDOMInterfaces.h: Remove focus and blur from DOMHTMLElement. + * html/HTMLBodyElement.idl: Remove scrollLeft, scrollTop, scrollWidth + and scrollHeight. + * html/HTMLElement.idl: Remove blur and focus. + +2009-03-27 Adam Roben <aroben@apple.com> + + Don't include substitute data URLs in global history redirect chains + + <rdar://6690169> + + Reviewed by Darin Adler. + + This might be testable if: + - support were added to DRT for providing substitute data on failed + loads + - support were added to DRT for dumping redirect chains + + I tried doing the above and was still unable to make a test. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::updateHistoryForStandardLoad): + (WebCore::FrameLoader::updateHistoryForRedirectWithLockedBackForwardList): + Call updateGlobalHistoryRedirectLinks only if the load succeeded + (i.e., there is no unreachableURL). Previous the FrameLoaderClient + implementations were unconditionally calling + updateGlobalHistoryRedirectLinks from within updateGlobalHistory. + +2009-03-27 Peter Kasting <pkasting@google.com> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=24861 + Chromium port did not render decorations for <input type="search">. + This copies RenderThemeWin.*. + + * css/themeChromiumWin.css: Removed. + * rendering/RenderThemeChromiumLinux.cpp: + (WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet): + (WebCore::RenderThemeChromiumLinux::adjustSearchFieldCancelButtonStyle): + (WebCore::RenderThemeChromiumLinux::paintSearchFieldCancelButton): + (WebCore::RenderThemeChromiumLinux::adjustSearchFieldDecorationStyle): + (WebCore::RenderThemeChromiumLinux::adjustSearchFieldResultsDecorationStyle): + (WebCore::RenderThemeChromiumLinux::paintSearchFieldResultsDecoration): + (WebCore::RenderThemeChromiumLinux::adjustSearchFieldResultsButtonStyle): + (WebCore::RenderThemeChromiumLinux::paintSearchFieldResultsButton): + * rendering/RenderThemeChromiumLinux.h: + (WebCore::RenderThemeChromiumLinux::paintSearchField): + * rendering/RenderThemeChromiumWin.cpp: + (WebCore::): + (WebCore::RenderThemeChromiumWin::extraDefaultStyleSheet): + (WebCore::RenderThemeChromiumWin::adjustSearchFieldCancelButtonStyle): + (WebCore::RenderThemeChromiumWin::paintSearchFieldCancelButton): + (WebCore::RenderThemeChromiumWin::adjustSearchFieldDecorationStyle): + (WebCore::RenderThemeChromiumWin::adjustSearchFieldResultsDecorationStyle): + (WebCore::RenderThemeChromiumWin::paintSearchFieldResultsDecoration): + (WebCore::RenderThemeChromiumWin::adjustSearchFieldResultsButtonStyle): + (WebCore::RenderThemeChromiumWin::paintSearchFieldResultsButton): + * rendering/RenderThemeChromiumWin.h: + (WebCore::RenderThemeChromiumWin::paintSearchField): + +2009-03-27 David Hyatt <hyatt@apple.com> + + Reviewed by Simon Fraser + + If an object has a self-painting layer, don't count it as part of a block's visual overflow. + This fix has only been made for block-level children. The inline-level case is still broken + (and covered by an existing bug). + + Added fast/block/positioning/negative-rel-position.html + + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::placeBoxesVertically): + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::layoutBlockChildren): + (WebCore::RenderBlock::lowestPosition): + (WebCore::RenderBlock::rightmostPosition): + (WebCore::RenderBlock::leftmostPosition): + +2009-03-27 Anders Carlsson <andersca@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/6642221> + REGRESSION: With the Movie widget, movie trailer fails to load if movie had been previously viewed + + Add a dashboard specific workaround so that we always create renderers for object elements, even if display:none is set. + + I've filed <rdar://problem/6731022> against the Movies widget. + + * html/HTMLObjectElement.cpp: + (WebCore::HTMLObjectElement::rendererIsNeeded): + +2009-03-25 Timothy Hatcher <timothy@apple.com> + + Expose new DOM methods as public Objective-C API. + + <rdar://problem/5837350> Expose new DOM classes and methods + as public API (match the additions to the JavaScript DOM) + + Reviewed by Mark Rowe and Darin Adler. + + * WebCore.xcodeproj/project.pbxproj: + * bindings/objc/DOMHTML.h: + * bindings/objc/DOMPrivate.h: + * bindings/objc/PublicDOMInterfaces.h: + +2009-03-27 Zack Rusin <zack@kde.org> + + Reviewed by Simon Hausmann. + + https://bugs.webkit.org/show_bug.cgi?id=24280 + + Fix propagation of fill rules when rendering paths in the Qt build. + + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::toQtFillRule): + (WebCore::GraphicsContext::fillPath): + (WebCore::GraphicsContext::strokePath): + +2009-03-27 Zack Rusin <zack@kde.org> + + Reviewed by Tor Arne Vestbø. + + https://bugs.webkit.org/show_bug.cgi?id=24275 + + Fix text field theming in the Qt build with the KDE 4 Oxygen + style by adjusting the size vertically and horizontally to + set padding on the element equal to the width of the style painted border. + + * platform/qt/RenderThemeQt.cpp: + (WebCore::RenderThemeQt::RenderThemeQt): + (WebCore::RenderThemeQt::computeSizeBasedOnStyle): + (WebCore::RenderThemeQt::adjustTextFieldStyle): + (WebCore::RenderThemeQt::paintTextField): + * platform/qt/RenderThemeQt.h: + +2009-03-27 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Simon Hausmann. + + https://bugs.webkit.org/show_bug.cgi?id=24852 + Build fix for GNU mode RVCT compilation + + * html/PreloadScanner.cpp: + +2009-03-27 Erik L. Bunce <elbunce@xendom.com> + + Reviewed by Simon Hausmann. + + https://bugs.webkit.org/show_bug.cgi?id=24868 + + Make text of the writing direction items more user friendly. + + * platform/qt/Localizations.cpp: + (WebCore::contextMenuItemTagLeftToRight): + (WebCore::contextMenuItemTagRightToLeft): + +2009-03-27 Erik L. Bunce <elbunce@xendom.com> + + Reviewed by Simon Hausmann. + + https://bugs.webkit.org/show_bug.cgi?id=24274 + + Fixed the Qt 4.4 Mac build with netscape plugins enabled. + + * plugins/mac/PluginViewMac.cpp: + +2009-03-26 Mark Rowe <mrowe@apple.com> + + Try and fix the Qt build. + + * platform/text/TextEncodingDetectorNone.cpp: + (WebCore::detectTextEncoding): + +2009-03-26 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + https://bugs.webkit.org/show_bug.cgi?id=24874 + 24874: HTMLMediaElement: 'duration' defaults to NaN, deal with it + + The 'duration' attribute is NaN when no media is available, so the + media element should take care when comparing with duration(). + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Don't compare with duration when + it is NaN. + (WebCore::HTMLMediaElement::endedPlayback): Ditto. + +2009-03-26 Mark Rowe <mrowe@apple.com> + + Fix the build. + + * platform/text/TextEncodingDetectorICU.cpp: + * platform/text/TextEncodingDetectorNone.cpp: + 2009-03-26 Jungshik Shin <jshin@chromium.org> Reviewed by Cameron Zwarich. @@ -4840,7 +29333,7 @@ * html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::createRenderer): * loader/FrameLoader.cpp: - (WebCore::FrameLoader::loadItem): + (WebCore::FrameLoader::createJavaAppletWidget): 2009-03-10 Justin Garcia <justin.garcia@apple.com> |