2010-08-18 Andreas Kling Reviewed by Darin Adler. CanvasStyle method naming cleanup https://bugs.webkit.org/show_bug.cgi?id=44184 Renamed the various create() overloads to reflect what they're constructing the CanvasStyle from. The unused CanvasStyle::create(grayLevel) and accompanying constructor were removed. Also renamed the isEquivalentColor overloads to isEquivalent{RGBA,CMYKA} * bindings/js/JSCanvasRenderingContext2DCustom.cpp: (WebCore::toHTMLCanvasStyle): * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: (WebCore::toCanvasStyle): * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::State::State): (WebCore::CanvasRenderingContext2D::setStrokeColor): (WebCore::CanvasRenderingContext2D::setFillColor): * html/canvas/CanvasStyle.cpp: (WebCore::CanvasStyle::createFromString): (WebCore::CanvasStyle::createFromStringWithOverrideAlpha): (WebCore::CanvasStyle::createFromGradient): (WebCore::CanvasStyle::createFromPattern): (WebCore::CanvasStyle::isEquivalentRGBA): (WebCore::CanvasStyle::isEquivalentCMYKA): * html/canvas/CanvasStyle.h: (WebCore::CanvasStyle::createFromRGBA): (WebCore::CanvasStyle::createFromGrayLevelWithAlpha): (WebCore::CanvasStyle::createFromRGBAChannels): (WebCore::CanvasStyle::createFromCMYKAChannels): 2010-08-18 Girish Ramakrishnan Reviewed by Kenneth Rohde Christiansen. [Qt] Implement Maemo5 local rendering NPAPI extension. See https://wiki.mozilla.org/Plugins:NokiaMaemoImageSurface for details. With the local rendering extension, Flash will paint into a 16-bit surface. For wmode=transparent, Flash expects the surface to contain the contents beneath it. As it is tricky to implement the content propagation across all graphics systems, transparent Flash is not supported. We just fill the surface with white and wmode=transparent behaves the same as wmode=opaque with a white background. https://bugs.webkit.org/show_bug.cgi?id=44043 * WebCore.pro: * plugins/PluginView.cpp: (WebCore::PluginView::setValue): (WebCore::PluginView::PluginView): * plugins/PluginView.h: * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::updatePluginWidget): (WebCore::PluginView::paintUsingImageSurfaceExtension): (WebCore::PluginView::paint): (WebCore::PluginView::platformGetValueStatic): 2010-08-18 Sheriff Bot Unreviewed, rolling out r65603. http://trac.webkit.org/changeset/65603 https://bugs.webkit.org/show_bug.cgi?id=44179 4 tests crash on Qt bot (Requested by Ossy on #webkit). * WebCore.pro: * page/Geolocation.cpp: (WebCore::Geolocation::handlePendingPermissionNotifiers): 2010-08-18 Ryuan Choi Unreviewed. Attempted build fix for EFL [EFL]REGRESSION(65530) need to fix build break https://bugs.webkit.org/show_bug.cgi?id=44154 * CMakeListsEfl.txt: 2010-08-18 Ilya Tikhonovsky Unreviewed qt build fix. * WebCore.pri: 2010-08-17 Ilya Tikhonovsky Reviewed by Yury Semikhatsky. Web Inspector: replace hand written InspectorBackendStub.js with generated one. New command-line flag was added to combine-javascript-resources. It specifies the location of generated scripts. https://bugs.webkit.org/show_bug.cgi?id=43791 * GNUmakefile.am: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * combine-javascript-resources: * inspector/CodeGeneratorInspector.pm: * inspector/front-end/InspectorBackendStub.js: Removed. * inspector/front-end/WebKit.qrc: 2010-08-18 Andrey Kosyakov Reviewed by Pavel Feldman. Web Inspector: extension panels do not occupy entire panel client area. https://bugs.webkit.org/show_bug.cgi?id=44167 * inspector/front-end/ExtensionServer.js: (WebInspector.ExtensionServer.prototype._onCreatePanel): (WebInspector.ExtensionServer.prototype._createClientIframe): 2010-08-18 Dirk Schulze Reviewed by Nikolas Zimmermann. Use SVGPathParser logic to traverse states of a Path https://bugs.webkit.org/show_bug.cgi?id=44009 Move the getPathSegAtLength logic from SVGPathSegList into a new SVGPathConsumer class: SVGPathTraversalStateBuilder. This allows us to get a SVGPathSeg at a given length for SVGPathByteStreams and SVGPathSegLists. It is also possible to use unaltered SVG path data, instead of just normalized path data. This is the final preparation to provide normalized and unaltered SVGPathSegLists on SVGPathElement. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * svg/SVGAllInOne.cpp: * svg/SVGPathBuilder.h: (WebCore::SVGPathBuilder::nextPathSegment): (WebCore::SVGPathBuilder::quitEarlier): * svg/SVGPathByteStreamBuilder.h: (WebCore::SVGPathByteStreamBuilder::nextPathSegment): (WebCore::SVGPathByteStreamBuilder::quitEarlier): * svg/SVGPathConsumer.h: * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::getPathSegAtLength): * svg/SVGPathElement.h: * svg/SVGPathElement.idl: * svg/SVGPathParser.cpp: (WebCore::SVGPathParser::parsePathDataFromSource): * svg/SVGPathParserFactory.cpp: (WebCore::globalSVGPathTraversalStateBuilder): (WebCore::SVGPathParserFactory::getSVGPathSegAtLengthFromSVGPathSegList): * svg/SVGPathParserFactory.h: * svg/SVGPathSegList.cpp: * svg/SVGPathSegList.h: * svg/SVGPathSegListBuilder.h: (WebCore::SVGPathSegListBuilder::nextPathSegment): (WebCore::SVGPathSegListBuilder::quitEarlier): * svg/SVGPathStringBuilder.h: (WebCore::SVGPathStringBuilder::nextPathSegment): (WebCore::SVGPathStringBuilder::quitEarlier): * svg/SVGPathTraversalStateBuilder.cpp: Added. New Consumer for SVGPathParser. (WebCore::SVGPathTraversalStateBuilder::SVGPathTraversalStateBuilder): (WebCore::SVGPathTraversalStateBuilder::moveTo): (WebCore::SVGPathTraversalStateBuilder::lineTo): (WebCore::SVGPathTraversalStateBuilder::curveToCubic): (WebCore::SVGPathTraversalStateBuilder::closePath): (WebCore::SVGPathTraversalStateBuilder::setDesiredLength): (WebCore::SVGPathTraversalStateBuilder::quitEarlier): (WebCore::SVGPathTraversalStateBuilder::nextPathSegment): (WebCore::SVGPathTraversalStateBuilder::pathSegmentIndex): * svg/SVGPathTraversalStateBuilder.h: Added. (WebCore::SVGPathTraversalStateBuilder::setCurrentTraversalState): (WebCore::SVGPathTraversalStateBuilder::cleanup): (WebCore::SVGPathTraversalStateBuilder::lineToHorizontal): (WebCore::SVGPathTraversalStateBuilder::lineToVertical): (WebCore::SVGPathTraversalStateBuilder::curveToCubicSmooth): (WebCore::SVGPathTraversalStateBuilder::curveToQuadratic): (WebCore::SVGPathTraversalStateBuilder::curveToQuadraticSmooth): (WebCore::SVGPathTraversalStateBuilder::arcTo): 2010-08-18 Mahesh Kulkarni Reviewed by Steve Block. [Qt] Request for permission before starting Geolocation service https://bugs.webkit.org/show_bug.cgi?id=42027 Handles starting location acquisition when request is granted for ports using "!CLIENT_BASED_GEOLOCATION and PREEMPT_GEOLOCATION_PERMISSION" policy Only Qt port as of today uses the above combination. Enable PREEMPT_GEOLOCATION_PERMISSION for qt port. Below tests cover these changes on platform using PREEMPT_GEOLOCATION_PERMISSION - fast/dom/Geolocation/delayed-permission-allowed.html - fast/dom/Geolocation/delayed-permission-denied.html - fast/dom/Geolocation/delayed-permission-allowed-for-multiple-requests.html - fast/dom/Geolocation/delayed-permission-denied-for-multiple-requests.html * WebCore.pro: * page/Geolocation.cpp: (WebCore::Geolocation::handlePendingPermissionNotifiers): 2010-08-18 Sheriff Bot Unreviewed, rolling out r65595. http://trac.webkit.org/changeset/65595 https://bugs.webkit.org/show_bug.cgi?id=44161 qt build failed (Requested by loislo on #webkit). * GNUmakefile.am: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/copyInspectorFiles.cmd: * WebCore.xcodeproj/project.pbxproj: * combine-javascript-resources: * inspector/CodeGeneratorInspector.pm: * inspector/front-end/InspectorBackendStub.js: Added. (WebInspector.InspectorBackendStub): (WebInspector.InspectorBackendStub.prototype._registerDelegate): (WebInspector.InspectorBackendStub.prototype.sendMessageToBackend): * inspector/front-end/InspectorBackendStub.qrc: Removed. * inspector/front-end/WebKit.qrc: 2010-08-18 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: make objectId of string type instead of object. https://bugs.webkit.org/show_bug.cgi?id=44160 * WebCore.xcodeproj/project.pbxproj: * inspector/front-end/InjectedScript.js: (injectedScriptConstructor.): * inspector/front-end/InjectedScriptAccess.js: (get InjectedScriptAccess.getForObjectId): * inspector/front-end/RemoteObject.js: (WebInspector.RemoteObject.prototype.getProperties): (WebInspector.RemoteObject.prototype.setPropertyValue): (WebInspector.RemoteObject.prototype.pushNodeToFrontend): 2010-08-17 Ilya Tikhonovsky Reviewed by Yury Semikhatsky. Web Inspector: replace hand written InspectorBackendStub.js by generated one. New command-line flag was added to combine-javascript-resources. It specifies the location of generated scripts. https://bugs.webkit.org/show_bug.cgi?id=43791 * GNUmakefile.am: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * combine-javascript-resources: * inspector/CodeGeneratorInspector.pm: * inspector/front-end/InspectorBackendStub.js: Removed. * inspector/front-end/WebKit.qrc: 2010-08-18 Shinichiro Hamaji Reviewed by Dimitri Glazkov. Printer font is different from screen font https://bugs.webkit.org/show_bug.cgi?id=43340 Not testable because PNG output in layoutTestController.setPrinting for chromium isn't implemented yet. * platform/graphics/FontDescription.h: Use screen font even for printing on Mac Chromium (WebCore::FontDescription::setUsePrinterFont): 2010-08-18 Renata Hodovan Reviewed by Dirk Schulze. Fix displaying problem of feTurbulence. https://bugs.webkit.org/show_bug.cgi?id=44111 Change the order of calculating turbulenceFunctionResult and clamping it. Furthermore remove the unnecessary rounding of m_seed. Add a new test for checking the change of seed's value. Test: svg/W3C-SVG-1.1/filters-turb-02-f.svg * svg/graphics/filters/SVGFETurbulence.cpp: (WebCore::FETurbulence::initPaint): (WebCore::FETurbulence::calculateTurbulenceValueForPoint): (WebCore::FETurbulence::apply): 2010-08-17 Gavin Barraclough Reviewed by Sam Weinig. Bug 44146 - Remove toDouble/toUInt32 methods from UString. These methods all implement JavaScript language specific behaviour, and as such are not suited to being on a generic string object. They are also inefficient and incorrectly used, refactor & cleanup. Uses of these methods really divide out into two cases. ToNumber: Uses of toDouble from JSString and from parseFloat are implementing ecma's ToNumber conversion from strings (see ecma-262 9.3.1), so UString::toDouble should largely just be moved out to a global jsToNumber function. ToNumber is capable of recognizing either decimal or hexadecimal numbers, but parseFloat should only recognize decimal values. This is currently handled by testing for hexadecimal before calling toDouble, which should unnecessary - instead we can just split out the two parts to the grammar into separate functions. Also, strtod recognizes a set of literals (nan, inf, and infinity - all with any capitalization) - which are not defined by any of the specs we are implementing. To handle this we need to perform additional work in toDouble to convert the unsupported cases of infinities back to NaNs. Instead we should simply remove support for this literals from strtod. This should provide a more desirable behaviour for all clients of strtod. Indexed properties: Uses of the toStrictUInt32 methods are were all converting property names to indices, and all uses of toUInt32 were incorrect; in all cases we should have been calling toUInt32. This error results in some incorrect behaviour in the DOM (accessing property "0 " of a NodeList should fail; it currently does not). Move this method onto Identifier (our canonical property name), and make it always perform a strict conversion. Add a layout test to check NodeList does convert indexed property names correctly. Test: fast/dom/NodeList/nodelist-item-with-index.html * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::getOwnPropertySlot): (WebCore::JSDOMWindow::getOwnPropertyDescriptor): * bindings/js/JSHTMLAllCollectionCustom.cpp: (WebCore::callHTMLAllCollection): (WebCore::JSHTMLAllCollection::item): * bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::callHTMLCollection): (WebCore::JSHTMLCollection::item): * bindings/js/JSNodeListCustom.cpp: (WebCore::callNodeList): * bindings/scripts/CodeGeneratorJS.pm: * bridge/runtime_array.cpp: (JSC::RuntimeArray::getOwnPropertySlot): (JSC::RuntimeArray::getOwnPropertyDescriptor): (JSC::RuntimeArray::put): 2010-08-18 Adam Barth Reviewed by Adele Peterson. Null dereference in DOMSelection::deleteFromDocument https://bugs.webkit.org/show_bug.cgi?id=44153 deleteFromDocument checks selection->isNone() before calling selection->selection().toNormalizedRange(), but toNormalizedRange() notes that it needs to updateLayout(), which can make the selection isNone() again. In that case, we crash on a NULL pointer in deleteFromDocument. I don't know how to trigger that situation in a test, but cross_fuzz was able to hit it, so we should fix it. * page/DOMSelection.cpp: (WebCore::DOMSelection::deleteFromDocument): 2010-08-17 Girish Ramakrishnan Reviewed by Antonio Gomes. [Qt] On Maemo5, there is no libgdk-x11-2.0.so symlink. Look for libgdk-x11-2.0.so.0 instead on X11 and Maemo5. https://bugs.webkit.org/show_bug.cgi?id=44043 * plugins/qt/PluginViewQt.cpp: (WebCore::getPluginDisplay): 2010-08-17 Ariya Hidayat Reviewed by Antonio Gomes. [Qt] Remove unused ContextShadowParameter class in GraphicsContextQt https://bugs.webkit.org/show_bug.cgi?id=44142 The class is not needed anymore after r65425. We know have dedicated ContextShadow in its own file. * platform/graphics/qt/GraphicsContextQt.cpp: 2010-08-17 Jesus Sanchez-Palencia Reviewed by Darin Adler. Add NetworkingContext to avoid layer violations https://bugs.webkit.org/show_bug.cgi?id=42292 Preparation: Just add the files to the build system. * GNUmakefile.am: Added new files. * WebCore.gypi: Ditto. * WebCore.pro: Ditto. * WebCore.vcproj/WebCore.vcproj: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * loader/FrameNetworkingContext.h: Added. * platform/network/NetworkingContext.h: Added. Placeholders with tentative code that might be changed when landing the rest of it. 2010-08-17 Mihai Parparita Reviewed by Darin Fisher. Back button after Google search result click broken https://bugs.webkit.org/show_bug.cgi?id=44086 Test: fast/history/redirect-via-iframe.html isLoadingInAPISense doesn't quite map to onload (it also returns true if frames are loading, even after the parent frame has fired its onload handler). Instead, add a flag for the onload event being fired, and use that. * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::DocumentLoader): * loader/DocumentLoader.h: (WebCore::DocumentLoader::handledOnloadEvents): (WebCore::DocumentLoader::wasOnloadHandled): * loader/FrameLoader.cpp: (WebCore::FrameLoader::handledOnloadEvents): * loader/RedirectScheduler.cpp: (WebCore::RedirectScheduler::mustLockBackForwardList): 2010-08-17 Steve Block Reviewed by Jeremy Orlow. Geolocation clearWatch() needs to protect against invalid IDs https://bugs.webkit.org/show_bug.cgi?id=44096 If the ID passed to clearWatch() is invalid, we early-out. Test: fast/dom/Geolocation/clear-watch-invalid-id-crash.html * page/Geolocation.cpp: (WebCore::Geolocation::Watchers::set): (WebCore::Geolocation::Watchers::remove): (WebCore::Geolocation::watchPosition): (WebCore::Geolocation::clearWatch): 2010-08-17 Stephen White Reviewed by David Levin. Allow non-Skia ports to compile with ENABLE(ACCELERATED_2D_CANVAS). https://bugs.webkit.org/show_bug.cgi?id=44130 No tests; if it compiles, it's good. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): Fix a warning (treated as error). * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::setGraphicsContext3D): (WebCore::GraphicsContext::syncSoftwareCanvas): * platform/graphics/GraphicsContext.h: Make setGraphicsContext3D() and syncSoftwareCanvas() stubbed out, but still present in non-Skia ports. This allows Chrome Mac to compile with ENABLE(ACCELERATED_2D_CANVAS) (although it isn't hooked up yet, it should at least compile). 2010-08-17 Brady Eidson Reviewed by Sam Weinig. Navigating back/forward during a modal dialog causes a crash when the modal dialog is dismissed. and https://bugs.webkit.org/show_bug.cgi?id=44131 No new tests. (Especially since DRT doesn't spin inner run loops at all, it would be a significant effort to give it the ability to perform the back/forward navigation in the background to reproduce this bug) Manual tests in place of layout tests: * manual-tests/back-forward-during-alert-1.html: Added. * manual-tests/back-forward-during-alert-2.html: Added. * page/Page.cpp: (WebCore::Page::goToItem): 2010-08-17 Ojan Vafai Reviewed by Tony Chang. selectionStart clobbered if textarea isn't focused https://bugs.webkit.org/show_bug.cgi?id=43814 If a text control is blurred, setting selectionStart/end should use the cached selection value, which is currently stored on the form control element. Test: fast/forms/text-control-select-blurred.html * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setSelectionStart): (WebCore::RenderTextControl::setSelectionEnd): 2010-08-17 Dmitry Titov Reviewed by David Levin. MessagePort.close() crashes if the owning context was destroyed. https://bugs.webkit.org/show_bug.cgi?id=43140 Test: fast/events/message-port-context-destroyed.html * dom/MessagePort.cpp: (WebCore::MessagePort::postMessage): (WebCore::MessagePort::start): (WebCore::MessagePort::close): (WebCore::MessagePort::contextDestroyed): Use isEntangled() method to gate various operations on MessagePort. This method also takes into account m_closed bit. * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::stopActiveDOMObjects): (WebCore::ScriptExecutionContext::closeMessagePorts): * dom/ScriptExecutionContext.h: Add closeMessagePorts() method that closes message ports at the same moments when other ActiveDOMObjects are stopped. 2010-08-17 Fady Samuel Reviewed by David Hyatt. Updated table cell hit testing and painting to use binary search instead of linear scan. Improved Table Hit Testing and Painting Performance https://bugs.webkit.org/show_bug.cgi?id=43933 Tests: fast/table/simple_paint.html tables/hittesting/filltable-emptycells.html tables/hittesting/filltable-levels.html tables/hittesting/filltable-outline.html tables/hittesting/filltable-rtl.html tables/hittesting/filltable-stress.html * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::paintObject): Dirty rect determined using binary search. (WebCore::RenderTableSection::nodeAtPoint): Cell hit determined using binary search 2010-08-17 Abhishek Arya Reviewed by Dave Hyatt. Only destroy empty anonymous block when it is columns or column span block in RenderBlock::removeChild. https://bugs.webkit.org/show_bug.cgi?id=44035 Test: fast/block/basic/empty-anonymous-block-remove-crash.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::removeChild): 2010-08-17 Darin Fisher Reviewed by Darin Adler. [Chromium] REGRESSION: Incorrect repaint on scrolling with position:fixed elements https://bugs.webkit.org/show_bug.cgi?id=42949 This is a partial revert of http://trac.webkit.org/changeset/63907 * page/FrameView.cpp: (WebCore::FrameView::scrollPositionChangedViaPlatformWidget): (WebCore::FrameView::scrollPositionChanged): * platform/ScrollView.cpp: (WebCore::ScrollView::valueChanged): 2010-08-17 Sheriff Bot Unreviewed, rolling out r65528. http://trac.webkit.org/changeset/65528 https://bugs.webkit.org/show_bug.cgi?id=44123 "Broke a bunch of canvas tests on Chrome win/linux." (Requested by senorblanco on #webkit). * platform/graphics/skia/BitmapImageSingleFrameSkia.h: (WebCore::BitmapImageSingleFrameSkia::BitmapImageSingleFrameSkia): * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::drawsUsingCopy): (WebCore::ImageBuffer::copyImage): (WebCore::ImageBuffer::draw): (WebCore::ImageBuffer::drawPattern): * platform/graphics/skia/ImageSkia.cpp: (WebCore::BitmapImageSingleFrameSkia::create): * platform/graphics/skia/NativeImageSkia.cpp: * platform/graphics/skia/NativeImageSkia.h: 2010-08-17 Martin Robinson Reviewed by David Hyatt. [Cairo] Remove unnecessary full-surface copies from ImageCairo and GraphicsContextCairo https://bugs.webkit.org/show_bug.cgi?id=44076 No new tests as functionality has not changed. * GNUmakefile.am: Added GRefPtrCairo to the sources list. * platform/graphics/cairo/GRefPtrCairo.cpp: Added. (WTF::refGPtr): Added specializations for cairo_t and cairo_surface_t. (WTF::derefGPtr): * platform/graphics/cairo/GRefPtrCairo.h: Added. * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::createPlatformShadow): Access the image surface directly from the ImageBuffer instead of wrapping it in an Image. * platform/graphics/cairo/ImageCairo.cpp: (WebCore::Image::drawPattern): Create the temporary surface using cairo primitives instead of through the platform-independent WebCore code. 2010-08-17 Martin Robinson [GTK] Clean up WebCore/platform/graphics/gtk/ImageGtk.cpp https://bugs.webkit.org/show_bug.cgi?id=44069 No new tests as functionality has not changed. * GNUmakefile.am: Add WEBKITGTK_API_VERSION_STRING definition, which allows WebCore to use this as well. * platform/graphics/gtk/ImageGtk.cpp: (getWebKitDataDirectory): Added this helper. (WebCore::Image::loadPlatformResource): Use GOwnPtr for gchar pointers and use the new getWebKitDataDirectory helper. * platform/gtk/GOwnPtrGtk.cpp: Move the GtkIconInfo template specialization to this file. (WTF::GtkIconInfo): Added this forward declaration. * platform/gtk/GOwnPtrGtk.h: Declaration for new template specialization. 2010-08-17 Stephen White Reviewed by Darin Fisher. [CHROMIUM] Eliminate a memcpy() from the canvas.drawImage(canvas, ...) path. This is the Skia followup to Dave Hyatt's patch in r65449. https://bugs.webkit.org/show_bug.cgi?id=44115 Covered by canvas layout tests. * platform/graphics/skia/BitmapImageSingleFrameSkia.h: Add a "copyPixels" argument to the create() static to indicate if the caller wants the pixels to be copied or ref'ed. * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::drawsUsingCopy): We don't use the always-copy path anymore, so return false. (WebCore::ImageBuffer::copyImage): Shouldn't get here anymore, so ASSERT_NOT_REACHED. (WebCore::ImageBuffer::draw): (WebCore::ImageBuffer::drawPattern): Create a temporary BitampImageSingleFrameSkia wrapped around the canvas's bitmap, and draw with it immediately. If drawing to our own canvas, copy the pixels, otherwise just shallow copy. * platform/graphics/skia/ImageSkia.cpp: (WebCore::BitmapImageSingleFrameSkia::BitmapImageSingleFrameSkia): Make the constructor take an SkBitmap to be wrapped. (WebCore::BitmapImageSingleFrameSkia::create): Implement the "copyPixels" flag: if true, do a deep copy, otherwise do a shallow copy. * platform/graphics/skia/NativeImageSkia.cpp: (WebCore::NativeImageSkia::NativeImageSkia): * platform/graphics/skia/NativeImageSkia.h: Implement a new constructor that shallow-copies the given SkBitmap. 2010-08-17 Jian Li Reviewed by Darin Fisher. Move BlobRegistry interface and implementation to platform/network https://bugs.webkit.org/show_bug.cgi?id=44116 Also move BlobData and BlobStorageData since they're part of BlobRegistry implementation. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * platform/network/BlobData.cpp: Renamed from WebCore/platform/BlobData.cpp. * platform/network/BlobData.h: Renamed from WebCore/platform/BlobData.h. * platform/network/BlobRegistry.h: Renamed from WebCore/platform/BlobRegistry.h. * platform/network/BlobRegistryImpl.cpp: Renamed from WebCore/html/BlobRegistryImpl.cpp. * platform/network/BlobRegistryImpl.h: Renamed from WebCore/html/BlobRegistryImpl.h. * platform/network/BlobStorageData.h: Renamed from WebCore/html/BlobStorageData.h. 2010-08-17 Andreas Kling Reviewed by Ariya Hidayat. [Qt] Path: Fast approximation of stroke bounding rects https://bugs.webkit.org/show_bug.cgi?id=44014 In canvas's stroke(), use QPainterPath::controlPointRect() to calculate a slightly larger bounding rect in a fraction of the time. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::stroke): 2010-08-17 Girish Ramakrishnan Reviewed by Kenneth Rohde Christiansen. Set PluginQuirkRequiresDefaultScreenDepth for all Flash versions and not just Flash 10. https://bugs.webkit.org/show_bug.cgi?id=44043 * plugins/PluginPackage.cpp: (WebCore::PluginPackage::determineQuirks): 2010-08-17 Jian Li Reviewed by David Levin. Change FileStream implementation to prepare for blob resource handling. https://bugs.webkit.org/show_bug.cgi?id=43985 Change FileStream to support synchronous usage only. All the asychronous logics are moved to FileStreamProxy. Update the existing FileReader code to adapt to this change. * html/FileReader.cpp: Account for FileStreamProxy changes. (WebCore::FileReader::didStart): (WebCore::FileReader::didGetSize): (WebCore::FileReader::didOpen): (WebCore::FileReader::didRead): * html/FileReader.h: * html/FileStream.cpp: Remove m_client and make all calls synchronous only. (WebCore::FileStream::FileStream): (WebCore::FileStream::start): (WebCore::FileStream::stop): (WebCore::FileStream::getSize): (WebCore::FileStream::openForRead): (WebCore::FileStream::openForWrite): (WebCore::FileStream::close): (WebCore::FileStream::read): (WebCore::FileStream::write): (WebCore::FileStream::truncate): * html/FileStream.h: Add getSize() and make all calls synchronous by adding return values. (WebCore::FileStream::create): * html/FileStreamClient.h: Account for FileStreamProxy changes. (WebCore::FileStreamClient::didRead): (WebCore::FileStreamClient::didTruncate): (WebCore::FileStreamClient::didOpen): * html/FileStreamProxy.cpp: All the logics to handle asynchronous calls are wrapped here. (WebCore::FileStreamProxy::FileStreamProxy): (WebCore::FileStreamProxy::create): (WebCore::FileStreamProxy::fileThread): (WebCore::didStart): (WebCore::FileStreamProxy::startOnFileThread): (WebCore::FileStreamProxy::stop): (WebCore::derefProxyOnContext): (WebCore::FileStreamProxy::stopOnFileThread): (WebCore::didGetSize): (WebCore::FileStreamProxy::getSize): (WebCore::FileStreamProxy::getSizeOnFileThread): (WebCore::didOpen): (WebCore::FileStreamProxy::openForRead): (WebCore::FileStreamProxy::openForReadOnFileThread): (WebCore::FileStreamProxy::openForWrite): (WebCore::FileStreamProxy::openForWriteOnFileThread): (WebCore::FileStreamProxy::close): (WebCore::FileStreamProxy::closeOnFileThread): (WebCore::didRead): (WebCore::FileStreamProxy::read): (WebCore::FileStreamProxy::readOnFileThread): (WebCore::didWrite): (WebCore::FileStreamProxy::write): (WebCore::FileStreamProxy::writeOnFileThread): (WebCore::didTruncate): (WebCore::FileStreamProxy::truncate): (WebCore::FileStreamProxy::truncateOnFileThread): * html/FileStreamProxy.h: * html/FileThreadTask.h: Change all methods to return void since return value is not needed now. 2010-08-17 Dimitri Glazkov Returned WebCore.xcodeproj to default settings after http://trac.webkit.org/changeset/65468/trunk/WebCore/WebCore.xcodeproj/project.pbxproj. * WebCore.xcodeproj/project.pbxproj: Removed developmentRegion = English line. 2010-08-17 Dimitri Glazkov Reviewed by Eric Seidel. Eliminate extra traversal of the tree when determining ability to lazy-attach a Node. https://bugs.webkit.org/show_bug.cgi?id=43749 Land the actual change that I intended to land in http://trac.webkit.org/changeset/65508. Neither SVG nor inputs/counters shadow DOM are traveling down this path (they home-bake their attachment), so the check for shadow tree existence isn't needed. Gives a small, but consistent win in Dromaeo's DOM Modification test. * dom/Node.h: (WebCore::Node::canLazyAttach): Changed to always return true. 2010-08-17 Tor Arne Vestbø Reviewed by Eric Carlson. Restore intrinsic size of video elements after loading poster The element might already have the instrinsic size of the video, in which case we don't want to override it witht that of the image. * rendering/RenderVideo.cpp: call updateIntrinsicSize() to restore size 2010-08-17 Mahesh Kulkarni Reviewed by Steve Block. Geolocation preemptive permissions policy is buggy https://bugs.webkit.org/show_bug.cgi?id=42811 While waiting for permission, m_startRequestPermissionNotifier was used to consider only one pending request. This patch implements a set m_pendingForPermissionNotifiers to maintain set of pending requests. When user grants/denies permission all listeners will be notified. Also fixed issue with hasZeroTimeout() where startTimerIfNeeded() has to start irrespective of permission state Tests: fast/dom/Geolocation/delayed-permission-allowed-for-multiple-requests.html fast/dom/Geolocation/delayed-permission-denied-for-multiple-requests.html * WebCore.pro: * page/Geolocation.cpp: (WebCore::Geolocation::startRequest): (WebCore::Geolocation::setIsAllowed): (WebCore::Geolocation::startUpdating): (WebCore::Geolocation::handlePendingPermissionNotifiers): * page/Geolocation.h: 2010-08-11 Jeremy Orlow Beginnings of IndexedDB persistance + IDBDatabase.description fleshed out https://bugs.webkit.org/show_bug.cgi?id=43744 The beginnings of a SQLite backend for IndexedDB. Right now, only persists meta-data for the database. The rest is coming in future patches. Adds a manual test to verify persistance. Test: storage/indexeddb/database-description.html + a manual test * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * manual-tests/indexed-database.html: Added. * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::databaseIdentifier): * platform/FileSystem.cpp: Added. (WebCore::): (WebCore::shouldEscapeUChar): (WebCore::encodeForFileName): * platform/FileSystem.h: * storage/IDBDatabase.cpp: (WebCore::IDBDatabase::IDBDatabase): * storage/IDBDatabase.h: (WebCore::IDBDatabase::description): * storage/IDBDatabaseBackendImpl.cpp: (WebCore::extractMetaData): (WebCore::setMetaData): (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl): (WebCore::IDBDatabaseBackendImpl::setDescription): * storage/IDBDatabaseBackendImpl.h: (WebCore::IDBDatabaseBackendImpl::create): * storage/IDBFactory.h: * storage/IDBFactory.idl: * storage/IDBFactoryBackendImpl.cpp: (WebCore::IDBFactoryBackendImpl::IDBFactoryBackendImpl): (WebCore::IDBFactoryBackendImpl::~IDBFactoryBackendImpl): (WebCore::openSQLiteDatabase): (WebCore::createTables): (WebCore::IDBFactoryBackendImpl::open): * storage/IDBFactoryBackendImpl.h: (WebCore::IDBFactoryBackendImpl::create): 2010-08-17 Dimitri Glazkov Reviewed by Eric Seidel. Eliminate extra traversal of the tree when determining ability to lazy-attach a Node. https://bugs.webkit.org/show_bug.cgi?id=43749 Neither SVG nor inputs/counters shadow DOM are traveling down this path (they home-bake their attachment), so the check for shadow tree existence isn't needed. Gives a small, but consisten win in Dromaeo's DOM Modification test. * dom/Node.cpp: Removed canLazyAttach declaration. * dom/Node.h: (WebCore::Node::canLazyAttach): Changed to always return true. 2010-08-17 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: [CRASH] Console formatting crashes after cross-domain navigation. https://bugs.webkit.org/show_bug.cgi?id=44103 * bindings/js/JSInjectedScriptHostCustom.cpp: (WebCore::InjectedScriptHost::injectedScriptFor): * bindings/v8/custom/V8InjectedScriptHostCustom.cpp: (WebCore::InjectedScriptHost::injectedScriptFor): * inspector/ConsoleMessage.cpp: (WebCore::ConsoleMessage::addToFrontend): 2010-08-17 Yury Semikhatsky Reviewed by Pavel Feldman. Web Inspector: upstream Chromium debugger step tests https://bugs.webkit.org/show_bug.cgi?id=44106 Tests: inspector/debugger-step-in.html inspector/debugger-step-out.html inspector/debugger-step-over.html * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::returnEvent): check that debugger is still attached after continue to ensure that current call frame is not 0. 2010-08-17 Ademar de Souza Reis Jr Reviewed by David Levin. Trivial fix removing the self-inclusion of a couple of header files. Self inclusion in Document.h and RenderTheme.h https://bugs.webkit.org/show_bug.cgi?id=44065 * dom/Document.h: * rendering/RenderTheme.h: 2010-08-17 No'am Rosenthal Reviewed by Ariya Hidayat. [Qt] Move the accelerated compositing build flag to the right place https://bugs.webkit.org/show_bug.cgi?id=43882 No new tests: build fix. * WebCore.pro: 2010-08-17 Sheriff Bot Unreviewed, rolling out r65500. http://trac.webkit.org/changeset/65500 https://bugs.webkit.org/show_bug.cgi?id=44108 Qt bots failed to compile. (Requested by loislo on #webkit). * GNUmakefile.am: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/copyInspectorFiles.cmd: * WebCore.xcodeproj/project.pbxproj: * combine-javascript-resources: * inspector/CodeGeneratorInspector.pm: * inspector/front-end/InspectorBackendStub.js: Added. (WebInspector.InspectorBackendStub): (WebInspector.InspectorBackendStub.prototype._registerDelegate): (WebInspector.InspectorBackendStub.prototype.sendMessageToBackend): * inspector/front-end/InspectorBackendStub.qrc: Removed. * inspector/front-end/WebKit.qrc: 2010-08-17 Ilya Tikhonovsky Reviewed by Yury Semikhatsky. Web Inspector: replace hand written InspectorBackendStub.js by generated one. New command-line flag was added to combine-javascript-resources. It specifies the location of generated scripts. https://bugs.webkit.org/show_bug.cgi?id=43791 * GNUmakefile.am: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * combine-javascript-resources: * inspector/CodeGeneratorInspector.pm: * inspector/front-end/InspectorBackendStub.js: Removed. * inspector/front-end/WebKit.qrc: 2010-08-17 Pavel Feldman Reviewed by Pavel Feldman. Web Inspector: get rid of node and scoped object-specific ids. https://bugs.webkit.org/show_bug.cgi?id=44097 * inspector/front-end/ConsoleView.js: * inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeElement.prototype._createTooltipForNode): * inspector/front-end/EventListenersSidebarPane.js: * inspector/front-end/InjectedScript.js: (injectedScriptConstructor.): (injectedScriptConstructor): * inspector/front-end/InjectedScriptAccess.js: (InjectedScriptAccess): (InjectedScriptAccess.getForNode): (InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName): (InjectedScriptAccess._installHandler): * inspector/front-end/PropertiesSidebarPane.js: (WebInspector.PropertiesSidebarPane.prototype.update): * inspector/front-end/RemoteObject.js: (WebInspector.RemoteObjectId): (WebInspector.RemoteObject.resolveNode): * inspector/front-end/ScriptsPanel.js: 2010-08-17 Xan Lopez Reviewed by Gustavo Noronha. [GTK] Fix wrapping of core Events in the bindings https://bugs.webkit.org/show_bug.cgi?id=44095 Return the proper GObject type instead of hardcoding WebKitDOMEvent for all Event types. * bindings/gobject/GObjectEventListener.cpp: (WebCore::GObjectEventListener::handleEvent): * bindings/gobject/WebKitDOMBinding.cpp: (WebKit::kit): 2010-08-17 Xan Lopez Reviewed by Gustavo Noronha. Revert supposed build-fix which was in fact reverting a previous build fix which was correct (oh dear). * GNUmakefile.am: 2010-08-17 Tor Arne Vestbø Reviewed by Antonio Gomes. [Qt] Add media element support for preload=none * platform/graphics/qt/MediaPlayerPrivateQt.cpp: * platform/graphics/qt/MediaPlayerPrivateQt.h: 2010-08-17 Tor Arne Vestbø Reviewed by Antonio Gomes. [Qt] Pre-roll media when loading media elements This ensures we get correct size-hints from QtMultimedia, as well as the media states Buffering and Buffered instead of Loading and Loaded, which we use to transition into MediaPlayer::HaveEnoughData. * platform/graphics/qt/MediaPlayerPrivateQt.cpp: * platform/graphics/qt/MediaPlayerPrivateQt.h: 2010-08-16 Tor Arne Vestbø Reviewed by Kenneth Rohde Christiansen. [Qt] Fix missing default controls for stand-alone media elements https://bugs.webkit.org/show_bug.cgi?id=35427 * css/mediaControlsQt.css: 2010-08-17 Ariya Hidayat Reviewed by Kenneth Rohde Christiansen. [Qt] Reduce the size of the shadow buffer to the clip region https://bugs.webkit.org/show_bug.cgi?id=44091 Instead of allocating the buffer image (for the blur support) as big as the rectangle which casts the shadow, we limit the size to the current clip region. * platform/graphics/qt/ContextShadow.cpp: (WebCore::ContextShadow::drawShadowRect): 2010-08-17 Philippe Normand Reviewed by Martin Robinson. [GStreamer] media/invalid-media-url-crash.html fails https://bugs.webkit.org/show_bug.cgi?id=42960 Implemented two ResourceHandleClient callbacks that need to notify downstream GStreamer elements of errors while accessing the resource. * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: (StreamingClient::wasBlocked): (StreamingClient::cannotShowURL): 2010-08-16 Gavin Barraclough Rubber stamped by Sam Weinig Remove unnecessary includes from UString.h, add new includes as necessary. * dom/ScriptExecutionContext.h: * loader/appcache/ApplicationCache.cpp: 2010-08-16 Andreas Kling Reviewed by Darin Adler. CSS: Add fast-path for rgba() color parsing https://bugs.webkit.org/show_bug.cgi?id=42965 Test: fast/canvas/rgba-parsing.html * css/CSSParser.cpp: (WebCore::CSSParser::parseColor): Extended with support for rgba(). (WebCore::parseAlphaValue): Added, parses an alpha value using WTF::strtod() (if necessary) and clamps between 0 and 1. (WebCore::isTenthAlpha): 2010-08-16 Kinuko Yasuda Reviewed by Dumitru Daniliuc. Add idl and mock classes for FileSystem API's {File,Directory}Entry and related interfaces https://bugs.webkit.org/show_bug.cgi?id=43993 Adding DirectoryEntry, DirectoryReader, EntriesCallback and FileEntry as defined in HTML5 FileSystem API. http://dev.w3.org/2009/dap/file-system/file-dir-sys.html Also adding Makefile entries for idl and mock classes added in changeset 64414 (except for Android platforms). Tests will be added when we add underlying implementation. * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * storage/DOMFileSystem.cpp: (WebCore::DOMFileSystem::root): * storage/DOMFileSystem.h: * storage/DOMFileSystem.idl: * storage/DirectoryEntry.cpp: Added. * storage/DirectoryEntry.h: Added. * storage/DirectoryEntry.idl: Added. * storage/DirectoryReader.cpp: Added. * storage/DirectoryReader.h: Added. * storage/DirectoryReader.idl: Added. * storage/EntriesCallback.h: Added. * storage/EntriesCallback.idl: Added. * storage/EntryArray.cpp: Added. * storage/EntryArray.h: Added. * storage/EntryArray.idl: Added. * storage/Entry.cpp: (WebCore::Entry::Entry): (WebCore::Entry::getMetadata): (WebCore::Entry::moveTo): (WebCore::Entry::copyTo): (WebCore::Entry::remove): (WebCore::Entry::getParent): * storage/Entry.h: (WebCore::Entry::isFile): (WebCore::Entry::isDirectory): * storage/Entry.idl: * storage/FileEntry.cpp: Added. * storage/FileEntry.h: Added. * storage/FileEntry.idl: Added. 2010-08-16 Andreas Kling Reviewed by Ariya Hidayat. [Qt] Path::closeSubpath() should only close the last subpath if it has >1 point https://bugs.webkit.org/show_bug.cgi?id=44061 Spec link: http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-closepath Test: fast/canvas/canvas-closePath-single-point.html * platform/graphics/Path.h: Add a Qt-only member to track the last subpath. * platform/graphics/qt/PathQt.cpp: (WebCore::Path::closeSubpath): Only close the last subpath if it has more than 1 point. Otherwise behave as moveTo(first point in last subpath) (WebCore::Path::Path): (WebCore::Path::operator=): (WebCore::Path::moveTo): (WebCore::Path::transform): 2010-08-16 Nate Chapin Unreviewed, Chromium mac build fix (with help from jamesr). * platform/chromium/ScrollbarThemeChromiumMac.mm: (WebCore::ScrollbarThemeChromiumMac::paint): 2010-08-16 Gavin Barraclough Reviewed by Sam Weinig Bug 44080 - String find/reverseFind methods need tidying up These methods have a couple of problems with their interface, and implementation. These methods take and int index, and return an int - however this is problematic since on 64-bit string indices may have a full 32-bit range. This spills out into surrounding code, which unsafely casts string indices from unsigned to int. Code checking the result of these methods check for a mix of "== -1", "< 0", and "== notFound". Clean this up by changing these methods to take an unsigned starting index, and return a size_t. with a failed match indicated by notFound. reverseFind also has a special meaning for the starting index argument, in that a negative index is interpreted as an offset back from the end of the string. Remove this functionality, in the (1!) case where it is used we should just calculate the offset by subtracting from the string's length. The implementation has a few problems too. The code is not in webkit style, in using assorted abbreviations in variable names, and implementations of similar find methods with differing argument types were unnecessarily inconsistent. When find is passed const char* data the string would be handled as latin1 (zero extended to UTF-16) for all characters but the first; this is sign extended. Case-insensitive find is broken for unicode strings; the hashing optimization is not unicode safe, and could result in false negatives. Unify UString find methods to match String. * css/CSSSelector.cpp: (WebCore::CSSSelector::RareData::parseNth): * css/CSSStyleDeclaration.cpp: (WebCore::CSSStyleDeclaration::setProperty): * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): * dom/Document.cpp: (WebCore::Document::getImageMap): * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::inputText): * editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::input): * editing/TextIterator.cpp: (WebCore::TextIterator::handleTextBox): * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText): * editing/markup.cpp: (WebCore::fillContainerFromString): (WebCore::createFragmentFromText): * html/File.cpp: (WebCore::File::Init): * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::setHost): * html/HTMLEmbedElement.cpp: (WebCore::HTMLEmbedElement::parseMappedAttribute): * html/HTMLFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::isPlaceholderEmpty): * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::parseMappedAttribute): * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::performSearch): * loader/CrossOriginPreflightResultCache.cpp: (WebCore::parseAccessControlAllowList): * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::substituteMIMETypeFromPluginDatabase): * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::parseHeader): (WebCore::parseHeaders): * loader/icon/IconFetcher.cpp: (WebCore::parseIconLink): * page/DOMWindow.cpp: (WebCore::DOMWindow::parseModalDialogFeatures): * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::createFromDatabaseIdentifier): * page/UserContentURLPattern.cpp: (WebCore::UserContentURLPattern::parse): * page/XSSAuditor.cpp: (WebCore::XSSAuditor::findInRequest): * platform/ContentType.cpp: (WebCore::ContentType::parameter): (WebCore::ContentType::type): * platform/KURL.cpp: (WebCore::KURL::lastPathComponent): (WebCore::KURL::setProtocol): (WebCore::decodeURLEscapeSequences): (WebCore::substituteBackslashes): (WebCore::mimeTypeFromDataURL): * platform/Length.cpp: (WebCore::newCoordsArray): (WebCore::newLengthArray): * platform/LinkHash.cpp: (WebCore::findSlashDotDotSlash): (WebCore::findSlashSlash): (WebCore::findSlashDotSlash): (WebCore::cleanPath): * platform/MIMETypeRegistry.cpp: (WebCore::MIMETypeRegistry::getMIMETypeForPath): * platform/SchemeRegistry.cpp: (WebCore::SchemeRegistry::shouldTreatURLAsLocal): * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::load): * platform/mac/DragImageMac.mm: (WebCore::createDragImageIconForCachedImage): * platform/network/CredentialStorage.cpp: (WebCore::protectionSpaceMapKeyFromURL): (WebCore::findDefaultProtectionSpaceForURL): * platform/network/HTTPParsers.cpp: (WebCore::skipWhiteSpace): (WebCore::skipToken): (WebCore::parseHTTPRefresh): (WebCore::filenameFromHTTPContentDisposition): (WebCore::findCharsetInMediaType): (WebCore::parseXSSProtectionHeader): (WebCore::extractReasonPhraseFromHTTPStatusLine): * platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::isAttachment): (WebCore::parseCacheHeader): * rendering/RenderEmbeddedObject.cpp: (WebCore::RenderEmbeddedObject::updateWidget): * storage/Entry.cpp: (WebCore::Entry::Entry): * svg/SVGFont.cpp: (WebCore::isCompatibleGlyph): * svg/SVGURIReference.cpp: (WebCore::SVGURIReference::getTarget): * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::parseClockValue): (WebCore::SVGSMILElement::parseCondition): * xml/XPathFunctions.cpp: (WebCore::XPath::FunSubstringBefore::evaluate): (WebCore::XPath::FunSubstringAfter::evaluate): (WebCore::XPath::FunTranslate::evaluate): (WebCore::XPath::FunLang::evaluate): * xml/XPathParser.cpp: (WebCore::XPath::Parser::expandQName): 2010-08-16 Ryosuke Niwa Reviewed by Tony Chang. REGRESSION(r65208): editing/pasteboard/smart-paste-003.html and smart-paste-004.html crash on Windows Chromium https://bugs.webkit.org/show_bug.cgi?id=44070 The crash was caused by start or end node being removed in pushDownInlineStyleAroundNode. It made start and end orphaned, and caused s.node() to be detached from the document. Fixed the crash by using nodes passed to pushDownInlineStyleAroundNode for start and end if the original start and end are orphaned because pushDownInlineStyleAroundNode won't prune targetNode. Test: editing/pasteboard/smart-paste-003-trailing-whitespace.html * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::removeInlineStyle): 2010-08-16 James Robinson Compile fix. Remove ANGLEWebKitBridge classes from Chromium build. They are unused. * WebCore.gypi: 2010-08-16 Vincent Scheib Reviewed by Dimitri Glazkov. Canvas2D does not support images larger than system's GPU max texture size https://bugs.webkit.org/show_bug.cgi?id=43864 A new class "TilingData" has been created that provides logic for splitting a large image into a series of smaller tiles. GLES2Texture and CLES2Canvas are modified to use the TilingData to split images on texture upload and render one logical image as many smaller images. TilingData is tested via unit tests in WebKit/chromium/tests/TilingDataTest.cpp * WebCore.gypi: * platform/graphics/chromium/GLES2Canvas.cpp: (WebCore::GLES2Canvas::drawTexturedRect): (WebCore::GLES2Canvas::drawTexturedRectTile): * platform/graphics/chromium/GLES2Canvas.h: * platform/graphics/chromium/GLES2Texture.cpp: (WebCore::GLES2Texture::GLES2Texture): (WebCore::GLES2Texture::~GLES2Texture): (WebCore::GLES2Texture::create): (WebCore::copySubRect): (WebCore::GLES2Texture::load): (WebCore::GLES2Texture::bindTile): * platform/graphics/chromium/GLES2Texture.h: (WebCore::GLES2Texture::tiles): * platform/graphics/chromium/TilingData.cpp: Added. (WebCore::computeNumTiles): (WebCore::TilingData::TilingData): (WebCore::TilingData::tileXIndexFromSrcCoord): (WebCore::TilingData::tileYIndexFromSrcCoord): (WebCore::TilingData::tileBounds): (WebCore::TilingData::tileBoundsWithBorder): (WebCore::TilingData::tileBoundsNormalized): (WebCore::TilingData::tilePositionX): (WebCore::TilingData::tilePositionY): (WebCore::TilingData::tileSizeX): (WebCore::TilingData::tileSizeY): (WebCore::TilingData::overlappedTileIndices): (WebCore::TilingData::intersectDrawQuad): * platform/graphics/chromium/TilingData.h: Added. (WebCore::TilingData::maxTextureSize): (WebCore::TilingData::totalSizeX): (WebCore::TilingData::totalSizeY): (WebCore::TilingData::numTiles): (WebCore::TilingData::numTilesX): (WebCore::TilingData::numTilesY): (WebCore::TilingData::tileIndex): (WebCore::TilingData::tileXIndex): (WebCore::TilingData::tileYIndex): (WebCore::TilingData::TilingData): (WebCore::TilingData::assertTile): * platform/graphics/skia/ImageSkia.cpp: (WebCore::BitmapImage::draw): * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::uploadSoftwareToHardware): 2010-08-16 David Hyatt Reviewed by Anders Carlsson. https://bugs.webkit.org/show_bug.cgi?id=43507, stop ImageBuffer from copying its data when rendering after canvas changes happen. This patch renames ImageBuffer::image() to ImageBuffer::copyImage(). The new method always returns a new copy that is a current snapshot of the ImageBuffer. To draw an ImageBuffer, you now use new GraphicsContext calls: drawImageBuffer. Platforms can then optimize these calls to draw efficiently without having to copy the bits of the ImageBuffer into an Image. * WebCore.xcodeproj/project.pbxproj: * css/CSSCanvasValue.cpp: (WebCore::CSSCanvasValue::image): * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::willDraw): (WebCore::HTMLCanvasElement::reset): (WebCore::HTMLCanvasElement::paint): (WebCore::HTMLCanvasElement::setSurfaceSize): (WebCore::HTMLCanvasElement::copiedImage): (WebCore::HTMLCanvasElement::clearCopiedImage): * html/HTMLCanvasElement.h: * html/canvas/CanvasPattern.cpp: (WebCore::CanvasPattern::CanvasPattern): * html/canvas/CanvasPattern.h: (WebCore::CanvasPattern::create): * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage): (WebCore::CanvasRenderingContext2D::createPattern): (WebCore::CanvasRenderingContext2D::drawTextInternal): * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas): (WebCore::WebGLRenderingContext::reshape): (WebCore::WebGLRenderingContext::texImage2D): (WebCore::WebGLRenderingContext::texSubImage2D): * html/canvas/WebGLRenderingContext.h: (WebCore::WebGLRenderingContext::paintsIntoCanvasBuffer): * platform/graphics/GeneratedImage.cpp: (WebCore::GeneratedImage::drawPattern): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawImageBuffer): (WebCore::GraphicsContext::clipToImageBuffer): * platform/graphics/GraphicsContext.h: * platform/graphics/GraphicsContext3D.h: (WebCore::GraphicsContext3D::paintsIntoCanvasBuffer): * platform/graphics/Image.h: * platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::width): (WebCore::ImageBuffer::height): * platform/graphics/Pattern.cpp: (WebCore::Pattern::Pattern): * platform/graphics/Pattern.h: (WebCore::Pattern::create): * platform/graphics/cairo/GraphicsContextCairo.cpp: * platform/graphics/cairo/ImageBufferCairo.cpp: (WebCore::ImageBuffer::drawsUsingCopy): (WebCore::ImageBuffer::copyImage): (WebCore::ImageBuffer::clip): (WebCore::ImageBuffer::draw): (WebCore::ImageBuffer::drawPattern): * platform/graphics/cg/GraphicsContextCG.cpp: * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::ImageBuffer): (WebCore::ImageBuffer::drawsUsingCopy): (WebCore::ImageBuffer::copyImage): (WebCore::ImageBuffer::draw): (WebCore::ImageBuffer::drawPattern): (WebCore::ImageBuffer::clip): * platform/graphics/cg/ImageBufferData.h: * platform/graphics/filters/FEColorMatrix.cpp: (WebCore::FEColorMatrix::apply): * platform/graphics/filters/FEComposite.cpp: (WebCore::FEComposite::apply): * platform/graphics/filters/SourceAlpha.cpp: (WebCore::SourceAlpha::apply): * platform/graphics/filters/SourceGraphic.cpp: (WebCore::SourceGraphic::apply): * platform/graphics/mac/GraphicsContext3DMac.mm: * platform/graphics/qt/GraphicsContext3DQt.cpp: * platform/graphics/qt/GraphicsContextQt.cpp: * platform/graphics/qt/ImageBufferData.h: * platform/graphics/qt/ImageBufferQt.cpp: (WebCore::ImageBufferData::ImageBufferData): (WebCore::ImageBuffer::drawsUsingCopy): (WebCore::ImageBuffer::copyImage): (WebCore::ImageBuffer::draw): (WebCore::ImageBuffer::drawPattern): (WebCore::ImageBuffer::clip): * platform/graphics/skia/GraphicsContextSkia.cpp: * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::drawsUsingCopy): (WebCore::ImageBuffer::copyImage): (WebCore::ImageBuffer::clip): (WebCore::): * platform/graphics/wx/GraphicsContextWx.cpp: * platform/graphics/wx/ImageBufferWx.cpp: (WebCore::ImageBuffer::drawsUsingCopy): (WebCore::ImageBuffer::copyImage): (WebCore::ImageBuffer::clip): (WebCore::ImageBuffer::draw): (WebCore::ImageBuffer::drawPattern): * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::paint): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintFillLayerExtended): * rendering/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::applyClippingToContext): * rendering/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::postApplyResource): * rendering/RenderSVGResourceGradient.cpp: (WebCore::clipToTextMask): * rendering/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::applyResource): * rendering/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::buildPattern): * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintProgressBar): * svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::build): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::nativeImageForCurrentFrame): * svg/graphics/SVGImage.h: * svg/graphics/filters/SVGFEMerge.cpp: (WebCore::FEMerge::apply): * svg/graphics/filters/SVGFEOffset.cpp: (WebCore::FEOffset::apply): * svg/graphics/filters/SVGFETile.cpp: (WebCore::FETile::apply): 2010-08-16 Paul Sawaya Reviewed by Chris Marrin. Added shader validation via ANGLE https://bugs.webkit.org/show_bug.cgi?id=42405 Added validation to WebGL via ANGLE * Configurations/WebCore.xcconfig: * WebCore.gypi: * WebCore.xcodeproj/project.pbxproj: * platform/graphics/ANGLEWebKitBridge.cpp: Added. (WebCore::ANGLEWebKitBridge::ANGLEWebKitBridge): (WebCore::ANGLEWebKitBridge::~ANGLEWebKitBridge): (WebCore::ANGLEWebKitBridge::validateShaderSource): * platform/graphics/ANGLEWebKitBridge.h: Added. (WebCore::): (WebCore::ANGLEWebKitBridge::setResources): * platform/graphics/GraphicsContext3D.h: (WebCore::GraphicsContext3D::): * platform/graphics/mac/GraphicsContext3DMac.mm: (WebCore::GraphicsContext3D::GraphicsContext3D): (WebCore::GraphicsContext3D::compileShader): (WebCore::GraphicsContext3D::shaderSource): (WebCore::GraphicsContext3D::getShaderiv): (WebCore::GraphicsContext3D::getShaderInfoLog): (WebCore::GraphicsContext3D::getShaderSource): 2010-08-16 Kevin Ollivier [wx] Build fix, do not build WebCore as a convenience library as this leads to errors in the Win build w/export symbols and causes problems with DOM bindings debugging in gdb. * wscript: Removed. 2010-08-16 Ilya Tikhonovsky Reviewed by Adam Roben. Current implementation of WebCore post-build step on windows platform is error prone. It would be better to extract the script into external file. https://bugs.webkit.org/show_bug.cgi?id=44058 * WebCore.vcproj/WebCore.vcproj: * WebCore.vcproj/copyForwardingHeaders.cmd: Added. * WebCore.vcproj/copyInspectorFiles.cmd: Added. 2010-08-16 Kevin Ollivier [wx] Fix typo in previous build fix. * platform/graphics/WOFFFileFormat.cpp: 2010-08-16 Alex Milowski Reviewed by David Levin. Added the configuration of the MathML related files. * WebCore.gyp/WebCore.gyp: * WebCore.gypi: 2010-08-16 Pavel Feldman Not reviewed: fix Leopard Release inspector tests. * inspector/front-end/inspector.js: 2010-08-16 Marcus Bulach Reviewed by Jeremy Orlow. Implements IDBKeyPath extractor. https://bugs.webkit.org/show_bug.cgi?id=43276 Unit-test IDBKeyPathExtractorTest.cpp. LayoutTests will arrive as IndexedDB infrastructure is fleshed out. * bindings/v8/IDBBindingUtilities.cpp: (WebCore::getValueFrom): (WebCore::createIDBKeyFromSerializedValueAndKeyPath): * bindings/v8/IDBBindingUtilities.h: 2010-08-13 Gustavo Noronha Silva Reviewed by Kenneth Rohde Christiansen and Martin Robinson. [GTK] GTK+ drawing idle starved https://bugs.webkit.org/show_bug.cgi?id=43994 Tune down the priority of the shared timers to guarantee GTK+ has an opportunity to redraw. * platform/gtk/SharedTimerGtk.cpp: (WebCore::setSharedTimerFireTime): 2010-08-16 Leandro Pereira [EFL] Build fix after r65366. EFL port does not support automated tests yet. * CMakeLists.txt: Use if (VAR) instead of if (${VAR}) to check if they're empty. 2010-08-16 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: Make InjectedScript proto-based. https://bugs.webkit.org/show_bug.cgi?id=44028 * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): (injectedScriptConstructor.): 2010-08-16 Csaba Osztrogonác Reviewed by Adam Roben. Fix warning in WebCore/plugins/win/PluginPackageWin.cpp https://bugs.webkit.org/show_bug.cgi?id=43920 * plugins/win/PluginPackageWin.cpp: (WebCore::PluginPackage::fetchInfo): 2010-08-16 Pavel Feldman Not reviewed. Touch inspector file to force frontend deployment. * inspector/InspectorController.cpp: 2010-08-16 Kevin Ollivier [wx] Build fix for non-Win ports on Windows. * platform/graphics/WOFFFileFormat.cpp: 2010-08-16 Adam Langley Reviewed by Tony Chang. [chromium] Improve spacing support for complex text on Linux https://bugs.webkit.org/show_bug.cgi?id=39014 Previously, our complex text support ignored word-spacing, justification and letter-spacing. This fixes the first two issues and allows us to render Scribd's HTML5 documents much better. Test: fast/text/atsui-spacing-features.html * platform/graphics/chromium/FontLinux.cpp: (WebCore::TextRunWalker::TextRunWalker): (WebCore::TextRunWalker::setWordSpacingAdjustment): (WebCore::TextRunWalker::setLetterSpacingAdjustment): (WebCore::TextRunWalker::setPadding): (WebCore::TextRunWalker::setGlyphXPositions): (WebCore::TextRunWalker::isCodepointSpace): (WebCore::Font::drawComplexText): (WebCore::Font::floatWidthForComplexText): (WebCore::Font::offsetForPositionForComplexText): (WebCore::Font::selectionRectForComplexText): 2010-08-16 Csaba Osztrogonác Reviewed by Kenneth Rohde Christiansen. Fix warnings: unknown conversion type character 'l' in format https://bugs.webkit.org/show_bug.cgi?id=43359 * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::performURLImport): Replace %zu with %lu, because Windows doesn't understand z modifier. (WebCore::IconDatabase::pruneUnretainedIcons): Use %I64i intsead of %lli on Windows. * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp: (WebCore::MediaPlayerPrivate::totalTimeChanged): Use %I64d intsead of %lld on Windows. * platform/sql/SQLiteDatabase.cpp: (WebCore::SQLiteDatabase::setMaximumSize): Use %I64i intsead of %lli on Windows. * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::setQuota): Use %I64u intsead of %llu on Windows. 2010-08-16 Csaba Osztrogonác Reviewed by Kenneth Rohde Christiansen. Fix warnings: unknown conversion type character 'l' in format https://bugs.webkit.org/show_bug.cgi?id=43359 * loader/FTPDirectoryParser.cpp: Use %I64u format specifier instead of %llu on Windows. (WebCore::parseOneFTPLine): 2010-08-16 Ariya Hidayat Reviewed by Kenneth Rohde Christiansen. [Qt] Shadow blur for rectangle fill https://bugs.webkit.org/show_bug.cgi?id=44025 The blur implementation follows the approximation of Gaussian blur with three successive box blurs, working on the alpha channel only. (see http://www.w3.org/TR/SVG/filters.html#feGaussianBlur). * WebCore.pro: Refer to ContexShadow.* files. * platform/graphics/qt/ContextShadow.cpp: Added. (WebCore::ContextShadow::ContextShadow): (WebCore::ContextShadow::clear): (WebCore::blurHorizontal): Box blurs in horizontal direction, working on QImage (in-place). (WebCore::shadowBlur): Main blur function which just calls the above blurHorizontal function twice, once with transposed image (equivalent as it would have done vertical box blurs). (WebCore::ContextShadow::drawShadowRect): * platform/graphics/qt/ContextShadow.h: Added. (WebCore::ContextShadow::): * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContextPlatformPrivate::hasShadow): (WebCore::GraphicsContext::restorePlatformState): (WebCore::GraphicsContext::fillRect): Use ContextShadow for the shadow. (WebCore::GraphicsContext::setPlatformShadow): 2010-08-16 Andras Becsi Rubber-stamped by Gustavo Noronha Silva. [GTK] Build fix for MathML code generation. No new tests needed. * GNUmakefile.am: 2010-08-16 Sheriff Bot Unreviewed, rolling out r65414. http://trac.webkit.org/changeset/65414 https://bugs.webkit.org/show_bug.cgi?id=44055 GTL & QT tests failing. (Requested by pfeldman on #webkit). * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): (injectedScriptConstructor.): 2010-08-16 Ariya Hidayat Reviewed by Antonio Gomes. [Qt] Save and restore shadow state in GraphicsContextQt https://bugs.webkit.org/show_bug.cgi?id=44031 This is needed after r65362. Use a new class ContextShadowParameter to track and keep the shadow state. We use this rather than using GraphicsContextState to allow possible optimizations (right now only to determine the shadow type, but in future it might cover things like cached scratch image, persistent shader, etc). * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::ContextShadowParameter::): (WebCore::ContextShadowParameter::ContextShadowParameter): (WebCore::ContextShadowParameter::clear): (WebCore::GraphicsContextPlatformPrivate::hasShadow): (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): (WebCore::GraphicsContext::savePlatformState): (WebCore::GraphicsContext::restorePlatformState): (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::setPlatformShadow): (WebCore::GraphicsContext::clearPlatformShadow): 2010-07-28 Marcus Bulach Reviewed by Adam Barth. Implement IDBKeyPath parser. https://bugs.webkit.org/show_bug.cgi?id=42976 IDBKeyPath is an internal class, exposed only for unit tests for now. It'll allow indexed database implementation to traverse a given key path and obtain the corresponding properties from a SerializedScriptValue. * WebCore.gypi: * storage/IDBKeyPath.cpp: Added. (WebCore::IDBKeyPath::create): (WebCore::IDBKeyPath::IDBKeyPath): (WebCore::IDBKeyPath::~IDBKeyPath): (WebCore::IDBKeyPath::hasNext): (WebCore::IDBKeyPath::next): (WebCore::IDBKeyPath::identifier): (WebCore::IDBKeyPath::hasIndex): (WebCore::IDBKeyPath::indexValue): (WebCore::IDBKeyPath::parserError): (WebCore::IDBKeyPath::parse): (WebCore::IDBKeyPath::Lexer::lex): (WebCore::isSafeIdentifierStartCharacter): (WebCore::isSafeIdentifierCharacter): (WebCore::IDBKeyPath::Lexer::lexIdentifier): (WebCore::IDBKeyPath::Lexer::lexNumber): * storage/IDBKeyPath.h: Added. (WebCore::IDBKeyPath::Token::Token): (WebCore::IDBKeyPath::): (WebCore::IDBKeyPath::Lexer::Lexer): (WebCore::IDBKeyPath::Lexer::next): (WebCore::IDBKeyPath::Lexer::currentToken): 2010-08-13 Steve Block Reviewed by Alexey Proskuryakov. Geolocation requests in progress when the frame is disconnected should invoke the error callback https://bugs.webkit.org/show_bug.cgi?id=43974 If requests are ongoing when the Frame is disconnected, we abort them with a fatal error. To do this, when Geolocation::disconnectFrame() is called we call cancelAllRequests() to set a fatal error on all ongoing requests. Once the requests have made their error callbacks, they are deleted. Note that we check at callback time that the script execution context for the callback is still valid, so it's safe to attempt these callbacks even after the Geolocation object's Frame has gone. This requires a change to allow multiple calls to GeoNotifier::setFatalError(). For repeated calls, we do not replace the existing error. This ensures that when permission has been denied and the frame is then disconnected, the error callback reports the permission error, as required by the spec. Tests: fast/dom/Geolocation/disconnected-frame.html fast/dom/Geolocation/disconnected-frame-permission-denied.html * page/Geolocation.cpp: (WebCore::Geolocation::GeoNotifier::setFatalError): (WebCore::Geolocation::disconnectFrame): (WebCore::Geolocation::startRequest): (WebCore::Geolocation::cancelAllRequests): * page/Geolocation.h: 2010-08-16 Pavel Feldman Reviewed by Joseph Pecoraro. Web Inspector: upstream frontend-side WebSocket transport. https://bugs.webkit.org/show_bug.cgi?id=43970 Chromium already has an alternate WebSocket-based communication channel with the backend. Upstreaming it in this change. We will agree on the URI of the remote service as the protocol matures. * inspector/front-end/inspector.js: (.WebInspector.socket.onmessage): (.WebInspector.socket.onerror): (.WebInspector.socket.onopen): (WebInspector.loaded): (WebInspector.doLoadedDone): (WebInspector_syncDispatch): 2010-08-16 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: Make InjectedScript proto-based. https://bugs.webkit.org/show_bug.cgi?id=44028 * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): (injectedScriptConstructor.): * inspector/front-end/inspector.js: (WebInspector.loaded): 2010-08-16 Pavel Feldman Reviewed by Joseph Pecoraro. Web Inspector: [REGRESSION] console's clear command does not work. https://bugs.webkit.org/show_bug.cgi?id=44027 Test: inspector/console-command-clear.html * inspector/Inspector.idl: * inspector/InspectorBackend.cpp: * inspector/InspectorBackend.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::clearConsoleMessages): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.requestClearMessages): * inspector/front-end/inspector.js: (WebInspector.consoleMessagesCleared): 2010-08-16 Jeremy Orlow Ugh, the #if ENABLE() was supposed to be added to Settings not GroupSettings. * page/GroupSettings.cpp: (WebCore::GroupSettings::GroupSettings): (WebCore::GroupSettings::setLocalStorageQuotaBytes): * page/GroupSettings.h: * page/Settings.cpp: (WebCore::Settings::Settings): * page/Settings.h: 2010-08-16 Jeremy Orlow Last build fix? * page/PageGroup.cpp: (WebCore::PageGroup::PageGroup): 2010-08-16 Jeremy Orlow Ugh...another build fix. * page/GroupSettings.cpp: (WebCore::GroupSettings::GroupSettings): * page/GroupSettings.h: 2010-08-16 Jeremy Orlow Build fix. * GNUmakefile.am: 2010-08-16 Jeremy Orlow Build fix. * page/PageGroup.cpp: (WebCore::PageGroup::localStorage): 2010-08-13 Jeremy Orlow Some settings are linked to the PageGroup not the Page. Create a new class for those. https://bugs.webkit.org/show_bug.cgi?id=43794 Since persistient storage is shared between pages, there's no way to modify some settings related to it on a per page basis. As such, it's not technically correct for these settings to be on the Page's settings. Create a new class called GroupSettings, move group-wide local storage setting there (the other we can't), and add a new setting for IndexedDB's path (which is prompting this change). No behavior has changed, so no tests. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/GroupSettings.cpp: Added. (WebCore::GroupSettings::GroupSettings): (WebCore::GroupSettings::setLocalStorageQuotaBytes): (WebCore::GroupSettings::setLocalStorageDatabasePath): (WebCore::GroupSettings::setIndexedDBDatabasePath): * page/GroupSettings.h: Added. (WebCore::GroupSettings::create): (WebCore::GroupSettings::localStorageQuotaBytes): (WebCore::GroupSettings::localStorageDatabasePath): (WebCore::GroupSettings::indexedDBDatabasePath): * page/PageGroup.cpp: (WebCore::PageGroup::PageGroup): (WebCore::PageGroup::localStorage): * page/PageGroup.h: (WebCore::PageGroup::groupSettings): * page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setSessionStorageQuota): * page/Settings.h: 2010-08-16 Adam Barth Reviewed by Alexey Proskuryakov. HTML5 fragment parsing doesn't load iframes https://bugs.webkit.org/show_bug.cgi?id=44038 Previously, this code assumed that every source iframe was actually attached to a render tree. It tried to "keep the iframe alive" as it moved documents. However, if the iframe wasn't attached to begin with, it was never "alive," so trying to keep a dead iframe alive lead to a ... zombie iframe. Test: fast/frames/adopt-from-created-document.html * dom/Document.cpp: (WebCore::Document::adoptNode): 2010-08-13 MORITA Hajime Reviewed by Tony Chang. https://bugs.webkit.org/show_bug.cgi?id=43778 Dropping should fire textInput event This change: - added TextEvent::m_isDrop to distinguish drop-initiated events. - added to dispatch TextEvent from DragController before making a side effect and cancel the side effect if the event prevents default Tests: editing/pasteboard/drop-text-events-sideeffect.html editing/pasteboard/drop-text-events.html * dom/TextEvent.cpp: (WebCore::TextEvent::createForDrop): Added. (WebCore::TextEvent::TextEvent): * dom/TextEvent.h: (WebCore::TextEvent::isDrop): Added. * editing/Editor.cpp: (WebCore::Editor::handleTextEvent): (WebCore::Editor::findEventTargetFrom): Extracted from findEventTargetFromSelection(). (WebCore::Editor::findEventTargetFromSelection): * editing/Editor.h: * page/DragController.cpp: (WebCore::DragController::dispatchTextInputEventFor): Added. (WebCore::DragController::concludeEditDrag): Added an event dispatch path. * page/DragController.h: 2010-08-15 Ariya Hidayat Unreviewed, rolling out r65393. http://trac.webkit.org/changeset/65393 https://bugs.webkit.org/show_bug.cgi?id=44031 Breaks some canvas tests. * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContextPlatformPrivate::): (WebCore::GraphicsContextPlatformPrivate::hasShadow): (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): (WebCore::GraphicsContext::savePlatformState): (WebCore::GraphicsContext::restorePlatformState): (WebCore::GraphicsContext::strokeArc): (WebCore::GraphicsContext::drawConvexPolygon): (WebCore::GraphicsContext::fillPath): (WebCore::GraphicsContext::strokePath): (WebCore::GraphicsContext::fillRect): (WebCore::GraphicsContext::fillRoundedRect): (WebCore::GraphicsContext::setPlatformShadow): (WebCore::GraphicsContext::clearPlatformShadow): 2010-08-15 Ariya Hidayat Reviewed by Antonio Gomes. [Qt] Save and restore shadow state in GraphicsContextQt https://bugs.webkit.org/show_bug.cgi?id=44031 This is needed after r65362. Use a new class ContextShadowParameter to track and keep the shadow state. We use this rather than using GraphicsContextState to allow possible optimizations (right now only to determine the shadow type, but in future it might cover things like cached scratch image, persistent shader, etc). * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::ContextShadowParameter::): (WebCore::ContextShadowParameter::ContextShadowParameter): (WebCore::ContextShadowParameter::clear): (WebCore::GraphicsContextPlatformPrivate::hasShadow): (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): (WebCore::GraphicsContext::savePlatformState): (WebCore::GraphicsContext::restorePlatformState): (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::setPlatformShadow): (WebCore::GraphicsContext::clearPlatformShadow): 2010-08-15 Ariya Hidayat Reviewed by Antonio Gomes. [Qt] Border should not cast shadows https://bugs.webkit.org/show_bug.cgi?id=44015 Shadows should be not casted except for brush fill (which is not what drawLine and drawRect are supposed to do). * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::drawRect): Remove shadow painting, (WebCore::GraphicsContext::drawLine): ditto. 2010-08-15 Ryuan Choi Reviewed by Antonio Gomes. [EFL] Build error on r65378 https://bugs.webkit.org/show_bug.cgi?id=44019 Change build script for HTMLEntityNames.json instead of HTMLEntityNames.gperf * CMakeLists.txt: 2010-08-15 Kevin Ollivier [wx] Build fix, add missing header. * platform/graphics/WOFFFileFormat.cpp: 2010-08-15 Kevin Ollivier [wx] Build fix, don't build PluginDataNone.cpp even on GTK as PluginDataWx.cpp compiles. * wscript: 2010-08-15 Adam Barth Reviewed by Eric Seidel. document.write() doesn't flush plain text https://bugs.webkit.org/show_bug.cgi?id=8961 Originally I thought we should buffer the character tokens until we've reached the end of the input stream, but that's not how the spec handles things (it emits the character tokens one-by-one). Tests: fast/tokenizer/flush-characters-in-document-write-evil.html fast/tokenizer/flush-characters-in-document-write.html * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::emitEndOfFile): (WebCore::HTMLTokenizer::nextToken): (WebCore::HTMLTokenizer::haveBufferedCharacterToken): - Renamed this function now that it's simplier. * html/HTMLTokenizer.h: 2010-08-15 Adam Barth Reviewed by Eric Seidel. Don't try to replace a non-existent document after executing JavaScript URLs https://bugs.webkit.org/show_bug.cgi?id=44024 Synchronous JavaScript execution is evil. Previously, the frame was deleted after executing the JavaScript URL, so we'd get confused when we tried to replace its document. Test: fast/frames/javascript-url-for-deleted-frame.html * bindings/ScriptControllerBase.cpp: (WebCore::ScriptController::executeIfJavaScriptURL): 2010-08-14 Sheriff Bot Unreviewed, rolling out r65374. http://trac.webkit.org/changeset/65374 https://bugs.webkit.org/show_bug.cgi?id=44018 broke a myriad of svg tests (Requested by kling on #webkit). * platform/graphics/qt/PathQt.cpp: (WebCore::Path::strokeBoundingRect): 2010-08-14 Eric Seidel Reviewed by Adam Barth. XSLTProcessor.transformToFragment should not pass contextElement to html/xml document parsers https://bugs.webkit.org/show_bug.cgi?id=44017 This fixes two tests which otherwise would fail when the HTML5 TreeBuilder is enabled for fragment parsing. This revealed a bug in HTMLTreeBuilder() which I fixed as well. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): * xml/XSLTProcessor.cpp: (WebCore::createFragmentFromSource): 2010-08-14 Andreas Kling Reviewed by Ariya Hidayat. [Qt] Path: Fast approximation of stroke bounding rects https://bugs.webkit.org/show_bug.cgi?id=44014 * platform/graphics/qt/PathQt.cpp: (WebCore::Path::strokeBoundingRect): Use QPainterPath::controlPointRect() to calculate a slightly larger bounding rect in a fraction of the time. 2010-08-14 Eric Seidel Reviewed by Adam Barth. Move innerHTML off of Range::createContextualFragment https://bugs.webkit.org/show_bug.cgi?id=44011 This makes all the editing tests stop failing under the HTML5 TreeBuilder. In a previous patch Adam disabled some of the (wrong) code in createContextualFragment when in html5 treebuilder mode. The problem is that the editing code depends on createContextualFragment (as well as the Range DOM API), so we have to leave this code in until we can figure out if it's right or wrong behavior for the Range API. This patch moves innerHTML/outerHTML off of using createContextualFragment and instead calls DocumentFragment::parseHTML directly (which is much simpler). I expect Adam and I will end up turning on the HTML5 TreeBuilder in the next couple days, and most of the if branches I added here will go away for good. I renamed Element::createContextualFragment to deprecatedCreateContextualFragment, to indicate that it's a dead API. The editing code should move off of it and consider using DocumentFragment::parseHTML instead. * dom/Element.cpp: (WebCore::Element::deprecatedCreateContextualFragment): * dom/Element.h: * dom/Range.cpp: (WebCore::Range::createContextualFragment): * editing/markup.cpp: (WebCore::createFragmentFromMarkup): * html/HTMLElement.cpp: (WebCore::useLegacyTreeBuilder): (WebCore::HTMLElement::deprecatedCreateContextualFragment): (WebCore::HTMLElement::setInnerHTML): (WebCore::HTMLElement::setOuterHTML): * html/HTMLElement.h: 2010-08-14 Tasuku Suzuki Reviewed by Antonio Gomes. [Qt] Fix compilation with QT_NO_LINEEDIT https://bugs.webkit.org/show_bug.cgi?id=38324 * bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertValueToQVariant): (JSC::Bindings::convertQVariantToValue): 2010-08-14 Rob Buis Reviewed by Dirk Schulze. IE SVG empty path test fails https://bugs.webkit.org/show_bug.cgi?id=44008 Change createLine to allow creating zero-length lines. This makes it possible to have markers and line-caps applied to zero-length lines. Test: svg/custom/marker-empty-path.svg * platform/graphics/Path.cpp: (WebCore::Path::createLine): 2010-08-14 Patrick Gansterer Reviewed by Kenneth Rohde Christiansen. [CMake] Move SQL files into a IF (ENABLE_DATABASE) section https://bugs.webkit.org/show_bug.cgi?id=43979 * CMakeLists.txt: 2010-08-14 Matthew Delaney Reviewed by Kenneth Rohde Christiansen. Canvas is not reset when setting canvas.width https://bugs.webkit.org/show_bug.cgi?id=43341 * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::reset): Moved the call to hasCreatedImageBuffer up *before* the call to setSurface since setSurface sets hasCreatedImageBuffer to false every time. 2010-08-14 Patrick Gansterer Reviewed by Kenneth Rohde Christiansen. [CMake] Set target properties only if available https://bugs.webkit.org/show_bug.cgi?id=43978 * CMakeLists.txt: 2010-08-14 Dirk Schulze Unreviewed sort of Xcode project file. * WebCore.xcodeproj/project.pbxproj: 2010-08-14 Ariya Hidayat Reviewed by Simon Hausmann and Kenneth Rohde Christiansen. [Qt] Refactor shadow state handling in GraphicsContextQt https://bugs.webkit.org/show_bug.cgi?id=44006 * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContextPlatformPrivate::): Added shadow states as member variables. (WebCore::GraphicsContextPlatformPrivate::hasShadow): Convenient function to check whether there is shadow or not. (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): (WebCore::GraphicsContext::drawRect): Use shadow states instead of calling getShadow. (WebCore::GraphicsContext::drawLine): ditto. (WebCore::GraphicsContext::strokeArc): ditto. (WebCore::GraphicsContext::drawConvexPolygon): ditto. (WebCore::GraphicsContext::fillPath): ditto. (WebCore::GraphicsContext::strokePath): ditto. (WebCore::GraphicsContext::fillRect): Removes the use of helper function drawBorderlessRectShadow as the code already becomes a lot simpler. (WebCore::GraphicsContext::fillRoundedRect): Removes the use of helper function drawFilledShadowPath as the code already becomes a lot simpler. (WebCore::GraphicsContext::setPlatformShadow): Store shadow states and find out the shadow type (complexity) for future use. (WebCore::GraphicsContext::clearPlatformShadow): Reset shadow states. 2010-08-13 Adam Barth Reviewed by Eric Seidel. Rename some concepts in HTML entity search to be more self-documenting https://bugs.webkit.org/show_bug.cgi?id=44004 Start and end are now first and last, which lets us use some better names for the statics in HTMLEntityTable. * html/HTMLEntityParser.cpp: (WebCore::consumeHTMLEntity): * html/HTMLEntitySearch.cpp: (WebCore::HTMLEntitySearch::HTMLEntitySearch): (WebCore::HTMLEntitySearch::findFirst): (WebCore::HTMLEntitySearch::findLast): (WebCore::HTMLEntitySearch::advance): * html/HTMLEntitySearch.h: (WebCore::HTMLEntitySearch::isEntityPrefix): (WebCore::HTMLEntitySearch::mostRecentMatch): (WebCore::HTMLEntitySearch::fail): * html/HTMLEntityTable.h: 2010-08-13 Adam Barth Fix ASSERT in XML entity parsing. You can't advance the entity search if you've already discovered that your string is not an entity. * html/HTMLEntityParser.cpp: (WebCore::decodeNamedEntity): 2010-08-13 Eric Seidel Unreviewed. Attempt at fixing Chromium build. Add support for MathML entities https://bugs.webkit.org/show_bug.cgi?id=43949 * WebCore.gyp/WebCore.gyp: - I have no clue if this is right or not. 2010-08-13 Eric Seidel Unreviewed. Attempted build fix for Windows. Add support for MathML entities https://bugs.webkit.org/show_bug.cgi?id=43949 * DerivedSources.cpp: - Add HTMLEntityTable.cpp 2010-08-09 Adam Barth Reviewed by Eric Seidel. Add support for MathML entities https://bugs.webkit.org/show_bug.cgi?id=43949 Implementing the HTML5 entity parsing algorithm require refactoring how we search for entity names. Instead of using a perfect hash, we now use a sorted list. As we advance through the input, we walk down a binary search of the table looking for an entity. Using this data structure lets us keep track of whether the current string is a prefix of an existing entity, which we need for the algorithm. In a future patch, I plan to add some indices to the table, which should let us narrow down the range of interesting entries more quickly. The one nasty piece of the algorithm is if we walk too far down the input and we need to back up to a previous match. In this patch, we accomplish this by rewinding the input and consuming a known number of characters to resync the source. * WebCore.xcodeproj/project.pbxproj: * html/HTMLEntityParser.cpp: (WebCore::consumeHTMLEntity): * html/HTMLEntitySearch.cpp: Added. (WebCore::): (WebCore::HTMLEntitySearch::HTMLEntitySearch): (WebCore::HTMLEntitySearch::compare): (WebCore::HTMLEntitySearch::findStart): (WebCore::HTMLEntitySearch::findEnd): (WebCore::HTMLEntitySearch::advance): * html/HTMLEntitySearch.h: Added. (WebCore::HTMLEntitySearch::isEntityPrefix): (WebCore::HTMLEntitySearch::currentValue): (WebCore::HTMLEntitySearch::lastMatch): (WebCore::HTMLEntitySearch::): (WebCore::HTMLEntitySearch::fail): * html/HTMLEntityTable.h: Added. (WebCore::HTMLEntityTableEntry::lastCharacter): 2010-08-13 Tony Gentilcore Reviewed by Eric Seidel. Refactor HTMLScriptRunner to allow deferred scripts to share code https://bugs.webkit.org/show_bug.cgi?id=43736 No new tests because no functional change * html/HTMLScriptRunner.cpp: (WebCore::HTMLScriptRunner::sourceFromPendingScript): Make const to enforce the idea that it doesn't change m_parsingBlockingScript. (WebCore::HTMLScriptRunner::executeParsingBlockingScript): Rename to make it clear this deals with the parsing blocking script and refactor to use executePendingScriptAndDispatchEvent. (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent): Factored out of executePendingScript, this can be used for executing any external script. (WebCore::HTMLScriptRunner::executeScript): This can be used for executing any inline or external script. ASSERTs moved to the two calling points. (WebCore::HTMLScriptRunner::executeParsingBlockingScripts): Moved method. (WebCore::HTMLScriptRunner::requestParsingBlockingScript): Factored out requestPendingScript. (WebCore::HTMLScriptRunner::requestPendingScript): Factored out from reqeustParsingBlockingScript. (WebCore::HTMLScriptRunner::runScript): * html/HTMLScriptRunner.h: 2010-08-13 Gavin Barraclough Windows build fix. * WebCore.xcodeproj/project.pbxproj: * platform/win/SharedBufferWin.cpp: 2010-08-13 Gavin Barraclough Rubber stamped by Sam Weinig. Switch String::/UString::ascii() to return a CString. * WebCore.xcodeproj/project.pbxproj: * bridge/c/c_class.cpp: (JSC::Bindings::CClass::methodsNamed): (JSC::Bindings::CClass::fieldNamed): * bridge/jni/jsc/JNIBridgeJSC.cpp: (JavaField::valueFromInstance): (JavaField::setValueToInstance): * bridge/jni/jsc/JavaInstanceJSC.cpp: (JavaInstance::invokeMethod): * bridge/objc/objc_class.mm: (JSC::Bindings::ObjcClass::methodsNamed): (JSC::Bindings::ObjcClass::fieldNamed): * bridge/objc/objc_instance.mm: (ObjcInstance::setValueOfUndefinedField): (ObjcInstance::getValueOfUndefinedField): * loader/icon/IconRecord.cpp: * platform/sql/SQLiteDatabase.cpp: * platform/sql/SQLiteStatement.cpp: * storage/SQLStatement.cpp: 2010-08-13 Mihai Parparita Reviewed by Dimitri Glazkov. Session history should skip over JS redirects https://bugs.webkit.org/show_bug.cgi?id=42861 Lock the back/forward list for location changes and form submits that happen before the onload event fires that are not the result of user gestures. Made form submission (at the ScheduledFormSubmission level) more similar to ScheduledURLNavigation by having it call clientRedirected too, fixing a long-standing FIXME. Test: fast/history/gesture-before-onload-location-href.html, fast/history/gesture-before-onload-form-submit.html and updated expectations for http/tests/history tests that used to fail. * loader/FormSubmission.cpp: (WebCore::FormSubmission::requestURL): (WebCore::FormSubmission::populateFrameLoadRequest): * loader/FormSubmission.h: * loader/RedirectScheduler.cpp: (WebCore::ScheduledFormSubmission::ScheduledFormSubmission): (WebCore::ScheduledFormSubmission::fire): (WebCore::ScheduledFormSubmission::didStartTimer): (WebCore::ScheduledFormSubmission::didStopTimer): (WebCore::RedirectScheduler::scheduleRedirect): (WebCore::RedirectScheduler::mustLockBackForwardList): (WebCore::RedirectScheduler::scheduleLocationChange): (WebCore::RedirectScheduler::scheduleFormSubmission): * loader/RedirectScheduler.h: 2010-08-13 Leandro Pereira [EFL] Unreviewed build fix. These changes were supposed to be landed on r65319, but due to some svn-apply/commit-queue bug it wasn't fully applied. A bug was filed by Patrick Gansterer (author of the changes in this commit): https://bugs.webkit.org/show_bug.cgi?id=43981 * CMakeLists.txt: Update calls to GENERATE_GPERF and GENERATE_GRAMMAR macros. 2010-08-13 Chris Fleizach AX: isNativeCheckbox does not work as advertised https://bugs.webkit.org/show_bug.cgi?id=43872 Re-adding this patch after it was erroneously rolled out. Test: platform/mac/accessibility/native-vs-nonnative-checkboxes.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isInputImage): (WebCore::AccessibilityRenderObject::isNativeCheckboxOrRadio): * dom/InputElement.h: * html/HTMLInputElement.h: (WebCore::HTMLInputElement::isCheckbox): 2010-08-13 Sheriff Bot Unreviewed, rolling out r65331. http://trac.webkit.org/changeset/65331 https://bugs.webkit.org/show_bug.cgi?id=43980 This patch breaks some shadow tests on Qt Linux release (Requested by ariya on #webkit). * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): (WebCore::GraphicsContext::drawRect): (WebCore::GraphicsContext::drawLine): (WebCore::GraphicsContext::strokeArc): (WebCore::GraphicsContext::drawConvexPolygon): (WebCore::drawFilledShadowPath): (WebCore::GraphicsContext::fillPath): (WebCore::GraphicsContext::strokePath): (WebCore::drawBorderlessRectShadow): (WebCore::GraphicsContext::fillRect): (WebCore::GraphicsContext::fillRoundedRect): (WebCore::GraphicsContext::setPlatformShadow): (WebCore::GraphicsContext::clearPlatformShadow): 2010-08-13 Kinuko Yasuda Reviewed by David Levin. Update run-bindings-tests expectations https://bugs.webkit.org/show_bug.cgi?id=43944 The results have become out of sync after changeset 64552 and 65269. Test: WebKitTools/Scripts/run-bindings-tests * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: (webkit_dom_test_callback_callback_with_class1param): (webkit_dom_test_callback_callback_with_class2param): (webkit_dom_test_callback_callback_with_non_bool_return_type): * bindings/scripts/test/GObject/WebKitDOMTestCallback.h: * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_void_method_with_args): (webkit_dom_test_obj_int_method_with_args): (webkit_dom_test_obj_obj_method): (webkit_dom_test_obj_obj_method_with_args): (webkit_dom_test_obj_method_that_requires_all_args): (webkit_dom_test_obj_method_that_requires_all_args_and_throws): (webkit_dom_test_obj_serialized_value): (webkit_dom_test_obj_idb_key): (webkit_dom_test_obj_with_dynamic_frame_and_user_gesture): (webkit_dom_test_obj_with_dynamic_frame_and_user_gesture_asad): (webkit_dom_test_obj_with_script_state_obj): (webkit_dom_test_obj_with_script_state_obj_exception): (webkit_dom_test_obj_get_read_only_string_attr): (webkit_dom_test_obj_get_read_only_test_obj_attr): (webkit_dom_test_obj_get_string_attr): (webkit_dom_test_obj_set_string_attr): (webkit_dom_test_obj_get_test_obj_attr): (webkit_dom_test_obj_set_test_obj_attr): (webkit_dom_test_obj_get_xml_obj_attr): (webkit_dom_test_obj_set_xml_obj_attr): (webkit_dom_test_obj_get_reflected_string_attr): (webkit_dom_test_obj_set_reflected_string_attr): (webkit_dom_test_obj_get_reflected_url_attr): (webkit_dom_test_obj_set_reflected_url_attr): (webkit_dom_test_obj_get_reflected_non_empty_url_attr): (webkit_dom_test_obj_set_reflected_non_empty_url_attr): (webkit_dom_test_obj_get_reflected_custom_url_attr): (webkit_dom_test_obj_set_reflected_custom_url_attr): (webkit_dom_test_obj_get_reflected_custom_non_empty_url_attr): (webkit_dom_test_obj_set_reflected_custom_non_empty_url_attr): (webkit_dom_test_obj_get_string_attr_with_getter_exception): (webkit_dom_test_obj_set_string_attr_with_getter_exception): (webkit_dom_test_obj_get_string_attr_with_setter_exception): (webkit_dom_test_obj_set_string_attr_with_setter_exception): (webkit_dom_test_obj_get_script_string_attr): (webkit_dom_test_obj_get_hash): (webkit_dom_test_obj_class_init): * bindings/scripts/test/GObject/WebKitDOMTestObj.h: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::jsTestObjPrototypeFunctionOverloadedMethod): 2010-08-13 Ariya Hidayat Reviewed by Simon Hausmann. [Qt] Canvas and CSS: blur option in shadow not working https://bugs.webkit.org/show_bug.cgi?id=34479 Patch 1: Refactor shadow states handling. * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContextPlatformPrivate::): Added shadow states as member variables. (WebCore::GraphicsContextPlatformPrivate::hasShadow): Convenient function to check whether there is shadow or not. (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): (WebCore::GraphicsContext::drawRect): Use shadow states instead of calling getShadow. (WebCore::GraphicsContext::drawLine): ditto. (WebCore::GraphicsContext::strokeArc): ditto. (WebCore::GraphicsContext::drawConvexPolygon): ditto. (WebCore::GraphicsContext::fillPath): ditto. (WebCore::GraphicsContext::strokePath): ditto. (WebCore::GraphicsContext::fillRect): Removes the use of helper function drawBorderlessRectShadow as the code already becomes a lot simpler. (WebCore::GraphicsContext::fillRoundedRect): Removes the use of helper function drawFilledShadowPath as the code already becomes a lot simpler. (WebCore::GraphicsContext::setPlatformShadow): Store shadow states and find out the shadow type (complexity) for future use. (WebCore::GraphicsContext::clearPlatformShadow): Reset shadow states. 2010-08-11 Zhenyao Mo Reviewed by Dimitri Glazkov. Regression in linking of programs https://bugs.webkit.org/show_bug.cgi?id=43820 Shaders and programs shouldn't be deleted until their attachments are removed, therefore, we need to track the attach/detach/useProgram. * html/canvas/WebGLObject.cpp: Track the object attachment count and whether it should really be deleted. (WebCore::WebGLObject::WebGLObject): (WebCore::WebGLObject::setObject): (WebCore::WebGLObject::deleteObject): * html/canvas/WebGLObject.h: Track the object attachment count and whether it should really be deleted. (WebCore::WebGLObject::onAttached): (WebCore::WebGLObject::onDetached): (WebCore::WebGLObject::getAttachmentCount): * html/canvas/WebGLProgram.cpp: Track the attached shaders. (WebCore::WebGLProgram::WebGLProgram): (WebCore::WebGLProgram::deleteObjectImpl): (WebCore::WebGLProgram::getAttachedShader): (WebCore::WebGLProgram::attachShader): (WebCore::WebGLProgram::detachShader): * html/canvas/WebGLProgram.h: Track the attached shaders. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::attachShader): Track the attachment of a shader to a program. (WebCore::WebGLRenderingContext::deleteProgram): Detach shaders. (WebCore::WebGLRenderingContext::detachShader): Track the attachment of a shader to a program. (WebCore::WebGLRenderingContext::validateWebGLObject): Also check if object == 0. (WebCore::WebGLRenderingContext::linkProgram): Using the cached attached shaders instead of query from driver. (WebCore::WebGLRenderingContext::useProgram): Track the attachment of a program to the current rendering pipeline. 2010-08-13 Steve Block Reviewed by Alexey Proskuryakov. Geolocation activity started after frame has been disconnected can cause crash https://bugs.webkit.org/show_bug.cgi?id=39879 New requests started after the Frame has been disconnected are ignored. We do not invoke the error callback as this would allow buggy or malicious pages to hose the CPU. Such a page could hold a reference to a Geolocation object from a since closed Page and register new requests from the error callback to create an infinite loop. Tests: fast/dom/Geolocation/disconnected-frame-already.html * page/Geolocation.cpp: 2010-08-13 Satish Sampath Reviewed by Jeremy Orlow. Support for multiple speech enabled elements in same page. https://bugs.webkit.org/show_bug.cgi?id=43922 * page/SpeechInput.cpp: Generates request ids as necessary when each speech enabled input element gets created/destroyed and multiplexes the listener callbacks to the appropriate input element based on the request id. (WebCore::SpeechInput::SpeechInput): (WebCore::SpeechInput::~SpeechInput): (WebCore::SpeechInput::registerListener): (WebCore::SpeechInput::unregisterListener): (WebCore::SpeechInput::didCompleteRecording): (WebCore::SpeechInput::didCompleteRecognition): (WebCore::SpeechInput::setRecognitionResult): (WebCore::SpeechInput::startRecognition): (WebCore::SpeechInput::stopRecording): (WebCore::SpeechInput::cancelRecognition): * page/SpeechInput.h: * page/SpeechInputClient.h: Now requires a one time set for the WebCore::SpeechInputListener and takes in a 'requestId' for all calls. * page/SpeechInputListener.h: Now returns the above mentioned requestId in all the listener callbacks for identifying which input element the event goes to. * platform/mock/SpeechInputClientMock.cpp: (WebCore::SpeechInputClientMock::SpeechInputClientMock): (WebCore::SpeechInputClientMock::setListener): (WebCore::SpeechInputClientMock::startRecognition): (WebCore::SpeechInputClientMock::stopRecording): (WebCore::SpeechInputClientMock::cancelRecognition): (WebCore::SpeechInputClientMock::timerFired): * platform/mock/SpeechInputClientMock.h: * rendering/TextControlInnerElements.cpp: (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement): (WebCore::InputFieldSpeechButtonElement::~InputFieldSpeechButtonElement): (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): (WebCore::InputFieldSpeechButtonElement::speechInput): (WebCore::InputFieldSpeechButtonElement::didCompleteRecording): (WebCore::InputFieldSpeechButtonElement::didCompleteRecognition): (WebCore::InputFieldSpeechButtonElement::setRecognitionResult): * rendering/TextControlInnerElements.h: 2010-08-13 Eric Carlson Reviewed by David Kilzer. HTMLMediaElement::prepareForLoad should cancel current plug-in proxy media player https://bugs.webkit.org/show_bug.cgi?id=43923 * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::prepareForLoad): Tell mediaPlayer to cancel the current load if it already exists. 2010-08-12 Stephen White Reviewed by David Levin. [CHROMIUM] Use the BGRA format for canvas 2D accel upload and readbacks. https://bugs.webkit.org/show_bug.cgi?id=43804 Use the BGRA format from GraphicsContext3D, if supported. Also keep a texture around for uploads, rather than re-creating it each time. Covered by many layout tests (once we're running them). * platform/graphics/chromium/GLES2Texture.cpp: (WebCore::convertFormat): Move convertFormat() ahead of texture creation, so we can check for BGRA support. (WebCore::GLES2Texture::create): Use convertFormat() to determine the correct format and types to use; use the returned format also for internalFormat, since GLES2 insists they match. * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::setGraphicsContext3D): Clear the upload texture when a new context is set. (WebCore::PlatformContextSkia::uploadSoftwareToHardware): Use m_uploadTexture instead of creating a new one each time. (WebCore::PlatformContextSkia::readbackHardwareToSoftware): When the context supports it, use the BGRA format for readbacks instead of swizzling. * platform/graphics/skia/PlatformContextSkia.h: Add m_uploadTexture for consecutive uploads. 2010-08-13 Simon Hausmann Reviewed by Ariya Hidayat. [Qt] Clean up mobile feature useage https://bugs.webkit.org/show_bug.cgi?id=43968 * WebCore.pro: Replaced use of Nokia specific platform scopes with concrete feature names. 2010-08-13 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: rename InspectorValue::push and set to push{Value|Object|Array} and set{...}. https://bugs.webkit.org/show_bug.cgi?id=43966 * bindings/js/ScriptProfile.cpp: (WebCore::buildInspectorObjectFor): * bindings/js/ScriptValue.cpp: (WebCore::jsToInspectorValue): * bindings/v8/ScriptCallStack.cpp: (WebCore::ScriptCallStack::stackTrace): * bindings/v8/ScriptProfile.cpp: (WebCore::buildInspectorObjectFor): * bindings/v8/ScriptValue.cpp: (WebCore::v8ToInspectorValue): * inspector/CodeGeneratorInspector.pm: * inspector/ConsoleMessage.cpp: (WebCore::ConsoleMessage::addToFrontend): * inspector/Inspector.idl: * inspector/InspectorApplicationCacheAgent.cpp: (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache): (WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources): * inspector/InspectorController.cpp: (WebCore::InspectorController::buildArrayForCookies): (WebCore::InspectorController::getDOMStorageEntries): (WebCore::InspectorController::getProfileHeaders): (WebCore::InspectorController::getProfile): * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::getEventListenersForNode): (WebCore::InspectorDOMAgent::buildObjectForNode): (WebCore::InspectorDOMAgent::buildArrayForContainerChildren): (WebCore::InspectorDOMAgent::getStyles): (WebCore::InspectorDOMAgent::getAllStyles): (WebCore::InspectorDOMAgent::getRuleRanges): (WebCore::InspectorDOMAgent::buildObjectForAttributeStyles): (WebCore::InspectorDOMAgent::buildArrayForCSSRules): (WebCore::InspectorDOMAgent::buildArrayForPseudoElements): (WebCore::InspectorDOMAgent::buildObjectForStyle): (WebCore::InspectorDOMAgent::populateObjectWithStyleProperties): (WebCore::InspectorDOMAgent::buildArrayForDisabledStyleProperties): (WebCore::InspectorDOMAgent::buildObjectForStyleSheet): (WebCore::InspectorDOMAgent::buildObjectForRule): * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::saveBreakpoints): * inspector/InspectorResource.cpp: (WebCore::InspectorResource::updateScriptObject): * inspector/InspectorStorageAgent.cpp: (WebCore::): (WebCore::InspectorStorageAgent::executeSQL): * inspector/InspectorTimelineAgent.cpp: (WebCore::InspectorTimelineAgent::pushGCEventRecords): (WebCore::InspectorTimelineAgent::didInstallTimer): (WebCore::InspectorTimelineAgent::didRemoveTimer): (WebCore::InspectorTimelineAgent::didScheduleResourceRequest): (WebCore::InspectorTimelineAgent::willSendResourceRequest): (WebCore::InspectorTimelineAgent::didFinishLoadingResource): (WebCore::InspectorTimelineAgent::didMarkTimeline): (WebCore::InspectorTimelineAgent::addRecordToTimeline): (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord): * inspector/InspectorValues.cpp: (WebCore::): (WebCore::InspectorValue::asValue): (WebCore::InspectorValue::asObject): (WebCore::InspectorValue::asArray): (WebCore::InspectorObject::asObject): (WebCore::InspectorArray::asArray): * inspector/InspectorValues.h: (WebCore::InspectorObject::setBool): (WebCore::InspectorObject::setNumber): (WebCore::InspectorObject::setString): (WebCore::InspectorObject::setValue): (WebCore::InspectorObject::setObject): (WebCore::InspectorObject::setArray): (WebCore::InspectorArray::pushValue): (WebCore::InspectorArray::pushObject): (WebCore::InspectorArray::pushArray): * inspector/ScriptBreakpoint.cpp: (WebCore::ScriptBreakpoint::inspectorObjectFromSourceBreakpoints): * inspector/TimelineRecordFactory.cpp: (WebCore::TimelineRecordFactory::createGenericRecord): 2010-08-13 Sheriff Bot Unreviewed, rolling out r65204. http://trac.webkit.org/changeset/65204 https://bugs.webkit.org/show_bug.cgi?id=43965 Caused a lot of test crashes in Chromium (Requested by yutak on #webkit). * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isInputImage): (WebCore::AccessibilityRenderObject::isNativeCheckboxOrRadio): * dom/InputElement.h: * html/HTMLInputElement.h: 2010-08-13 Anton Muhin Reviewed by Nate Chapin. Reapplying http://trac.webkit.org/changeset/65284 after fixed include. [v8] Create callbacks for named access of elements from document object on fly. https://bugs.webkit.org/show_bug.cgi?id=43725 That should speed up access to methods on document as there is no need to consult with interceptor before invoking the method. This reapplies http://trac.webkit.org/changeset/60670 reverted with http://trac.webkit.org/changeset/63845. The main difference is in treatment of removed named elements: we don't remove an accessor any more, but leave it. Therefore any accessor should be able to treat the case when there is no expando property. * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::namedItemAdded): (WebCore::ScriptController::namedItemRemoved): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::checkDocumentWrapper): (WebCore::V8DOMWindowShell::updateDocumentWrapperCache): (WebCore::getter): (WebCore::V8DOMWindowShell::namedItemAdded): (WebCore::V8DOMWindowShell::namedItemRemoved): * bindings/v8/V8DOMWindowShell.h: * bindings/v8/V8DOMWrapper.cpp: (WebCore::V8DOMWrapper::instantiateV8Object): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::V8HTMLDocument::WrapInShadowObject): (WebCore::V8HTMLDocument::GetNamedProperty): (WebCore::V8HTMLDocument::allAccessorSetter): (WebCore::toV8): * html/HTMLDocument.cpp: (WebCore::HTMLDocument::removeItemFromMap): 2010-08-13 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: remove openInInspectorWindow and evaluateAndStringify from InjectedScript. https://bugs.webkit.org/show_bug.cgi?id=43854 * inspector/Inspector.idl: * inspector/InspectorController.cpp: (WebCore::InspectorController::openInInspectedWindow): * inspector/InspectorController.h: * inspector/front-end/ExtensionServer.js: (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage.callback): (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage): * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): * inspector/front-end/InjectedScriptAccess.js: * inspector/front-end/InspectorBackendStub.js: (WebInspector.InspectorBackendStub): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick): 2010-08-13 Fumitoshi Ukai Reviewed by Alexey Proskuryakov. flaky websocket/tests/frame-length-overflow.html https://bugs.webkit.org/show_bug.cgi?id=43902 Add m_shouldDiscardReceivedData flag to indicate it will no longer receive data from network. * websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::WebSocketChannel): (WebCore::WebSocketChannel::didReceiveData): (WebCore::WebSocketChannel::didFail): (WebCore::WebSocketChannel::processBuffer): - when frame length overflows, we couldn't process data any more. clear buffer and mark m_shouldDiscardReceivedData true to make sure it doesn't process the same buffer again. * websockets/WebSocketChannel.h: 2010-08-13 Dirk Schulze Reviewed by Nikolas Zimmermann. Use SVGPathByteStream to animate SVGPath https://bugs.webkit.org/show_bug.cgi?id=43929 Use SVGPathByteStream to perform animations of Paths. SVGPathBlender blends the starting point to the end point according to the current progress value. Cleanup SVGPathSegList, by removing the unnecessary legacy blending code. No new tests because no functional changes. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * svg/SVGAllInOne.cpp: * svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::SVGAnimateElement): (WebCore::SVGAnimateElement::calculateAnimatedValue): (WebCore::SVGAnimateElement::calculateFromAndToValues): (WebCore::SVGAnimateElement::resetToBaseValue): (WebCore::SVGAnimateElement::applyResultsToTarget): * svg/SVGAnimateElement.h: * svg/SVGPathBlender.cpp: Added. (WebCore::SVGPathBlender::SVGPathBlender): (WebCore::SVGPathBlender::~SVGPathBlender): (WebCore::SVGPathBlender::blendAnimatedFloat): (WebCore::SVGPathBlender::blendAnimatedFloatPoint): (WebCore::SVGPathBlender::blendMoveToSegment): (WebCore::SVGPathBlender::blendLineToSegment): (WebCore::SVGPathBlender::blendLineToHorizontalSegment): (WebCore::SVGPathBlender::blendLineToVerticalSegment): (WebCore::SVGPathBlender::blendCurveToCubicSegment): (WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment): (WebCore::SVGPathBlender::blendCurveToQuadraticSegment): (WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment): (WebCore::SVGPathBlender::blendArcToSegment): (WebCore::SVGPathBlender::blendAnimatedPath): (WebCore::SVGPathBlender::cleanup): * svg/SVGPathBlender.h: Added. * svg/SVGPathParserFactory.cpp: (WebCore::globalSVGPathBlender): (WebCore::SVGPathParserFactory::buildAnimatedSVGPathByteStream): * svg/SVGPathParserFactory.h: * svg/SVGPathSegList.cpp: (WebCore::SVGPathSegList::getPathSegAtLength): * svg/SVGPathSegList.h: (WebCore::SVGPathSegList::create): * svg/SVGPointList.cpp: (WebCore::adjustAnimatedValue): 2010-08-12 Nikolas Zimmermann Reviewed by Dirk Schulze. Window size changes + resources on absolute sized content leads to pixelation https://bugs.webkit.org/show_bug.cgi?id=43921 Avoid pixelation when using resources on absolute sized objects. Be sure to invalidate the used resources if window size changes. Otherwhise masks etc. will be scaled up and pixelate. As nice side-effect, this fixes run-webkit-tests --singly svg/W3C-SVG-1.1, which used to produce wrong results for the gradient tests, as the window size change from 800x600 for 480x360 (svg/W3C-SVG-1.1 specific DRT quirk) didn't invalidate the resources. Renamed invalidateClient -> removeClientFromCache and invalidateClients -> removeAllClientsFromCache. Add a boolean "markForInvalidation" parameter, that controls wheter the clients should be marked for repaint/boundaries invalidation/layout or wheter we only want to notify the parents that the resource changed, to avoid doing unncessary work in SVGRenderSupport::layoutChildren. Test: svg/custom/absolute-sized-content-with-resources.xhtml * rendering/RenderSVGGradientStop.cpp: (WebCore::RenderSVGGradientStop::styleDidChange): Don't do anything for StyleDifferenceEqual. * rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::imageChanged): * rendering/RenderSVGResource.cpp: (WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation): * rendering/RenderSVGResource.h: * rendering/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::removeAllClientsFromCache): (WebCore::RenderSVGResourceClipper::removeClientFromCache): * rendering/RenderSVGResourceClipper.h: * rendering/RenderSVGResourceContainer.cpp: (WebCore::RenderSVGResourceContainer::layout): (WebCore::RenderSVGResourceContainer::idChanged): (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): (WebCore::RenderSVGResourceContainer::markClientForInvalidation): * rendering/RenderSVGResourceContainer.h: (WebCore::RenderSVGResourceContainer::): * rendering/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::removeAllClientsFromCache): (WebCore::RenderSVGResourceFilter::removeClientFromCache): (WebCore::RenderSVGResourceFilter::postApplyResource): * rendering/RenderSVGResourceFilter.h: * rendering/RenderSVGResourceGradient.cpp: (WebCore::RenderSVGResourceGradient::removeAllClientsFromCache): (WebCore::RenderSVGResourceGradient::removeClientFromCache): (WebCore::RenderSVGResourceGradient::applyResource): * rendering/RenderSVGResourceGradient.h: * rendering/RenderSVGResourceMarker.cpp: (WebCore::RenderSVGResourceMarker::layout): (WebCore::RenderSVGResourceMarker::removeAllClientsFromCache): (WebCore::RenderSVGResourceMarker::removeClientFromCache): * rendering/RenderSVGResourceMarker.h: * rendering/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::removeAllClientsFromCache): (WebCore::RenderSVGResourceMasker::removeClientFromCache): * rendering/RenderSVGResourceMasker.h: * rendering/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::removeAllClientsFromCache): (WebCore::RenderSVGResourcePattern::removeClientFromCache): (WebCore::RenderSVGResourcePattern::applyResource): * rendering/RenderSVGResourcePattern.h: * rendering/RenderSVGResourceSolidColor.h: (WebCore::RenderSVGResourceSolidColor::removeAllClientsFromCache): (WebCore::RenderSVGResourceSolidColor::removeClientFromCache): * rendering/SVGRenderSupport.cpp: (WebCore::invalidateResourcesOfChildren): Add new helper funtion recursively invalidating resources of a sub render tree. (WebCore::SVGRenderSupport::layoutChildren): Keep track of all objects that didn't need layout, as we still have to invalidate their resources, if window size changes. * rendering/SVGResources.cpp: (WebCore::SVGResources::removeClientFromCache): (WebCore::SVGResources::resourceDestroyed): * rendering/SVGResources.h: * rendering/SVGResourcesCache.cpp: (WebCore::SVGResourcesCache::clientLayoutChanged): 2010-08-13 Pavel Feldman Reviewed by Yury Semikhatsky. Chromium DevTools: [CRASH] Autocomplete on arrays causes crashes. https://bugs.webkit.org/show_bug.cgi?id=43955 * bindings/v8/ScriptValue.cpp: (WebCore::v8ToInspectorValue): 2010-08-13 Gavin Barraclough Reviewed by Sam Weinig Unify UString::UTF8String() & String::utf8() methods, remove UString::cost() & make atArrayIndex a free function. * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::getOwnPropertySlot): (WebCore::JSDOMWindow::getOwnPropertyDescriptor): * bridge/NP_jsobject.cpp: (_NPN_Enumerate): * bridge/c/c_utility.cpp: (JSC::Bindings::convertValueToNPVariant): * bridge/jni/JNIBridge.cpp: (JavaParameter::JavaParameter): (JavaMethod::JavaMethod): (JavaMethod::signature): (JavaMethod::methodID): * bridge/jni/JNIBridge.h: (JSC::Bindings::JavaString::utf8): (JSC::Bindings::JavaParameter::type): (JSC::Bindings::JavaMethod::returnType): * bridge/jni/jni_jsobject.mm: (JavaJSObject::call): (JavaJSObject::eval): (JavaJSObject::getMember): (JavaJSObject::setMember): (JavaJSObject::removeMember): (JavaJSObject::convertJObjectToValue): * bridge/jni/jsc/JNIBridgeJSC.cpp: (JavaField::JavaField): (JavaField::valueFromInstance): (JavaField::setValueToInstance): * bridge/jni/jsc/JNIBridgeJSC.h: (JSC::Bindings::JavaField::type): * bridge/jni/jsc/JavaInstanceJSC.cpp: (JavaInstance::invokeMethod): * bridge/jni/jsc/JavaStringJSC.h: (JSC::Bindings::JavaStringImpl::utf8): * bridge/runtime_array.cpp: (JSC::RuntimeArray::getOwnPropertySlot): (JSC::RuntimeArray::getOwnPropertyDescriptor): (JSC::RuntimeArray::put): 2010-08-12 Yury Semikhatsky Reviewed by Pavel Feldman. Web Inspector: allow interrupting long running JS to execute inspector command https://bugs.webkit.org/show_bug.cgi?id=43900 * bindings/v8/ScriptDebugServer.cpp: (WebCore::): (WebCore::ScriptDebugServer::pause): (WebCore::ScriptDebugServer::interruptAndRun): (WebCore::ScriptDebugServer::runPendingTasks): (WebCore::ScriptDebugServer::handleV8DebugEvent): * bindings/v8/ScriptDebugServer.h: (WebCore::ScriptDebugServer::Task::~Task): 2010-08-12 Sheriff Bot Unreviewed, rolling out r65295. http://trac.webkit.org/changeset/65295 https://bugs.webkit.org/show_bug.cgi?id=43950 It broke 4 sputnik tests (Requested by Ossy on #webkit). * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::getOwnPropertySlot): (WebCore::JSDOMWindow::getOwnPropertyDescriptor): * bridge/NP_jsobject.cpp: (_NPN_Enumerate): * bridge/c/c_utility.cpp: (JSC::Bindings::convertValueToNPVariant): * bridge/jni/JNIBridge.cpp: (JavaParameter::JavaParameter): (JavaMethod::JavaMethod): (JavaMethod::signature): (JavaMethod::methodID): * bridge/jni/JNIBridge.h: (JSC::Bindings::JavaString::UTF8String): (JSC::Bindings::JavaParameter::type): (JSC::Bindings::JavaMethod::returnType): * bridge/jni/jni_jsobject.mm: (JavaJSObject::call): (JavaJSObject::eval): (JavaJSObject::getMember): (JavaJSObject::setMember): (JavaJSObject::removeMember): (JavaJSObject::convertJObjectToValue): * bridge/jni/jsc/JNIBridgeJSC.cpp: (JavaField::JavaField): (JavaField::valueFromInstance): (JavaField::setValueToInstance): * bridge/jni/jsc/JNIBridgeJSC.h: (JSC::Bindings::JavaField::type): * bridge/jni/jsc/JavaInstanceJSC.cpp: (JavaInstance::invokeMethod): * bridge/jni/jsc/JavaStringJSC.h: (JSC::Bindings::JavaStringImpl::UTF8String): * bridge/runtime_array.cpp: (JSC::RuntimeArray::getOwnPropertySlot): (JSC::RuntimeArray::getOwnPropertyDescriptor): (JSC::RuntimeArray::put): 2010-08-12 Pavel Feldman Not reviewed. Fixed typo in inspector js. Follow up to r65300. * inspector/front-end/inspector.js: (WebInspector.log.isLogAvailable): 2010-08-12 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: Make getPrototypes return objects, not names. https://bugs.webkit.org/show_bug.cgi?id=43934 * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): (injectedScriptConstructor.): * inspector/front-end/PropertiesSidebarPane.js: (WebInspector.PropertiesSidebarPane.prototype.update.callback): * inspector/front-end/inspector.js: (WebInspector.log): 2010-08-12 James Robinson Unreviewed, rolling out r65284 and r65288. Broke chromium compile. https://bugs.webkit.org/show_bug.cgi?id=43725 http://trac.webkit.org/changeset/65284 http://trac.webkit.org/changeset/65288 * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::namedItemAdded): (WebCore::ScriptController::namedItemRemoved): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::V8DOMWindowShell::updateDocumentWrapperCache): * bindings/v8/V8DOMWindowShell.h: * bindings/v8/V8DOMWrapper.cpp: (WebCore::V8DOMWrapper::instantiateV8Object): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::V8HTMLDocument::namedPropertyDeleter): (WebCore::V8HTMLDocument::namedPropertyGetter): (WebCore::V8HTMLDocument::indexedPropertyGetter): (WebCore::V8HTMLDocument::allAccessorSetter): (WebCore::toV8): * html/HTMLDocument.cpp: (WebCore::HTMLDocument::removeItemFromMap): 2010-08-12 Gavin Barraclough Reviewed by Sam Weinig Unify UString::UTF8String() & String::utf8() methods, remove UString::cost() & make atArrayIndex a free function. * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::getOwnPropertySlot): (WebCore::JSDOMWindow::getOwnPropertyDescriptor): * bridge/NP_jsobject.cpp: (_NPN_Enumerate): * bridge/c/c_utility.cpp: (JSC::Bindings::convertValueToNPVariant): * bridge/jni/JNIBridge.cpp: (JavaParameter::JavaParameter): (JavaMethod::JavaMethod): (JavaMethod::signature): (JavaMethod::methodID): * bridge/jni/JNIBridge.h: (JSC::Bindings::JavaString::utf8): (JSC::Bindings::JavaParameter::type): (JSC::Bindings::JavaMethod::returnType): * bridge/jni/jni_jsobject.mm: (JavaJSObject::call): (JavaJSObject::eval): (JavaJSObject::getMember): (JavaJSObject::setMember): (JavaJSObject::removeMember): (JavaJSObject::convertJObjectToValue): * bridge/jni/jsc/JNIBridgeJSC.cpp: (JavaField::JavaField): (JavaField::valueFromInstance): (JavaField::setValueToInstance): * bridge/jni/jsc/JNIBridgeJSC.h: (JSC::Bindings::JavaField::type): * bridge/jni/jsc/JavaInstanceJSC.cpp: (JavaInstance::invokeMethod): * bridge/jni/jsc/JavaStringJSC.h: (JSC::Bindings::JavaStringImpl::utf8): * bridge/runtime_array.cpp: (JSC::RuntimeArray::getOwnPropertySlot): (JSC::RuntimeArray::getOwnPropertyDescriptor): (JSC::RuntimeArray::put): 2010-08-12 Gavin Barraclough Speculative build fix for chromium bindings (someone added the old include style!). * bindings/v8/V8DOMWindowShell.h: 2010-08-12 MORITA Hajime Reviewed by Tony Chang. [Refactoring] TextEvent class has to many flags https://bugs.webkit.org/show_bug.cgi?id=43893 Turned TextEvent::m_isLineBreak, TextEvent::m_isBacktab, TextEvent::m_isPaste into single TextEvent::m_inputType enumeration. No functional change. No new tests. * dom/TextEvent.cpp: (WebCore::TextEvent::selectInputType): (WebCore::TextEvent::create): (WebCore::TextEvent::createForPlainTextPaste): (WebCore::TextEvent::createForFragmentPaste): (WebCore::TextEvent::TextEvent): * dom/TextEvent.h: (WebCore::TextEvent::): (WebCore::TextEvent::isLineBreak): (WebCore::TextEvent::isBackTab): (WebCore::TextEvent::isPaste): * page/EventHandler.cpp: (WebCore::EventHandler::handleTextInputEvent): 2010-08-12 Kenneth Russell Reviewed by David Levin. Delete obsolete CanvasNumberArray https://bugs.webkit.org/show_bug.cgi?id=38619 Deleted unreferenced code. Built WebKit and Chromium to test. * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * Android.jscbindings.mk: * Android.mk: * bindings/js/JSCanvasNumberArrayCustom.cpp: Removed. * html/canvas/CanvasNumberArray.cpp: Removed. * html/canvas/CanvasNumberArray.h: Removed. * html/canvas/CanvasNumberArray.idl: Removed. 2010-08-12 Anton Muhin Reviewed by Nate Chapin. [v8] Create callbacks for named access of elements from document object on fly. https://bugs.webkit.org/show_bug.cgi?id=43725 That should speed up access to methods on document as there is no need to consult with interceptor before invoking the method. This reapplies http://trac.webkit.org/changeset/60670 reverted with http://trac.webkit.org/changeset/63845. The main difference is in treatment of removed named elements: we don't remove an accessor any more, but leave it. Therefore any accessor should be able to treat the case when there is no expando property. * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::namedItemAdded): (WebCore::ScriptController::namedItemRemoved): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::checkDocumentWrapper): (WebCore::V8DOMWindowShell::updateDocumentWrapperCache): (WebCore::getter): (WebCore::V8DOMWindowShell::namedItemAdded): (WebCore::V8DOMWindowShell::namedItemRemoved): * bindings/v8/V8DOMWindowShell.h: * bindings/v8/V8DOMWrapper.cpp: (WebCore::V8DOMWrapper::instantiateV8Object): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::V8HTMLDocument::WrapInShadowObject): (WebCore::V8HTMLDocument::GetNamedProperty): (WebCore::V8HTMLDocument::allAccessorSetter): (WebCore::toV8): * html/HTMLDocument.cpp: (WebCore::HTMLDocument::removeItemFromMap): 2010-08-12 Dimitri Glazkov Reviewed by Adam Barth. Ensure that parser doesn't attach children that have been removed by JavaScript event handlers. https://bugs.webkit.org/show_bug.cgi?id=43813 This patch re-fixes bug 40742 in a way that keeps allowing HTMLLinkElement to lazy-attach. * html/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::attach): Added parent check. * html/HTMLLinkElement.cpp: Basically undoes changes introduced by r61424. * html/HTMLLinkElement.h: Ditto. 2010-08-12 Justin Schuh Reviewed by Dumitru Daniliuc. Clear PluginData's page pointer on page refresh https://bugs.webkit.org/show_bug.cgi?id=43888 Test: plugins/access-after-page-destroyed.html * page/Page.cpp: (WebCore::Page::refreshPlugins): 2010-08-12 Zhenyao Mo Reviewed by Dimitri Glazkov. getParameter(STENCIL_VALUE_MASK) (and others) returns the wrong value https://bugs.webkit.org/show_bug.cgi?id=31842 * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getUnsignedLongParameter): Casting from int to unsigned long correctly. 2010-08-12 Pavel Feldman Reviewed by Joseph Pecoraro. Web Inspector: mimic FireBug's array detection. https://bugs.webkit.org/show_bug.cgi?id=30974 * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): 2010-08-12 Zhenyao Mo Reviewed by Dimitri Glazkov. regression in generateMipmap https://bugs.webkit.org/show_bug.cgi?id=43873 * html/canvas/WebGLTexture.cpp: (WebCore::WebGLTexture::generateMipmapLevelInfo): should set m_needToUseBlackTexture to false if generateMipmapLevelInfo runs through successfully. 2010-08-12 Ariya Hidayat Reviewed by David Hyatt. [Qt] Split TransparencyLayer into its own header file. https://bugs.webkit.org/show_bug.cgi?id=43935 * WebCore.pro: Include TransparencyLayer.h. * platform/graphics/qt/GraphicsContextQt.cpp: * platform/graphics/qt/TransparencyLayer.h: Added. (WebCore::TransparencyLayer::TransparencyLayer): (WebCore::TransparencyLayer::operator=): 2010-08-12 François Sausset Reviewed by Beth Dakin. Horizontal padding should be 0 on mrow elements. https://bugs.webkit.org/show_bug.cgi?id=43908 Updated tests in /mathml * css/mathml.css: (mrow, mfenced): (mfenced): 2010-08-12 Aaron Boodman Reviewed by David Hyatt. Make the cascade level of "user" styles configurable https://bugs.webkit.org/show_bug.cgi?id=43457 * WebCore.exp.in: * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::CSSStyleSelector): * dom/Document.cpp: (WebCore::Document::pageGroupUserSheets): * page/PageGroup.cpp: (WebCore::PageGroup::addUserStyleSheetToWorld): * page/PageGroup.h: * page/UserStyleSheet.h: (WebCore::UserStyleSheet::): (WebCore::UserStyleSheet::UserStyleSheet): (WebCore::UserStyleSheet::level): 2010-08-12 Jian Li Fix qt build break. * html/ThreadableBlobRegistry.cpp: (WebCore::postTaskToMainThread): 2010-08-12 Jian Li Reviewed by David Levin. Add ThreadableBlobRegistry to support calling BlobRegistry methods in main thread. https://bugs.webkit.org/show_bug.cgi?id=43874 * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::~ScriptExecutionContext): (WebCore::ScriptExecutionContext::addBlob): (WebCore::ScriptExecutionContext::removeBlob): (WebCore::ScriptExecutionContext::createPublicBlobURL): (WebCore::ScriptExecutionContext::revokePublicBlobURL): * dom/ScriptExecutionContext.h: * html/Blob.cpp: (WebCore::Blob::Blob): (WebCore::Blob::~Blob): (WebCore::Blob::contextDestroyed): * html/Blob.h: * html/BlobRegistryImpl.cpp: (WebCore::BlobRegistryImpl::registerBlobURL): (WebCore::BlobRegistryImpl::unregisterBlobURL): (WebCore::BlobRegistryImpl::getBlobDataFromURL): * html/ThreadableBlobRegistry.cpp: Added. * html/ThreadableBlobRegistry.h: Added. 2010-08-12 Csaba Osztrogonác Reviewed by Darin Adler. generate-bindings.pl should generate warning free code https://bugs.webkit.org/show_bug.cgi?id=43353 * bindings/scripts/CodeGeneratorJS.pm: Suggested parentheses added around && within || 2010-08-11 Ryosuke Niwa Reviewed by Kent Tamura. merge MarkupAccumulator and MarkupAccumulatorWrapper https://bugs.webkit.org/show_bug.cgi?id=43834 Removed MarkupAccumulator and added serializeNodesWithNamespaces to use MarkupAccumulatorWrapper in both versions of createMarkup. Accumulation of nodes done manually in serializeNodes is now done by MarkupAccumulatorWrapper as done in the original MarkupAccumulator. No new tests added since this is a cleanup. * editing/markup.cpp: (WebCore::MarkupAccumulatorWrapper::MarkupAccumulatorWrapper): Takes vector of nodes and set it to m_nodes. (WebCore::MarkupAccumulatorWrapper::insertOpenTag): Adds node to m_nodes. (WebCore::MarkupAccumulatorWrapper::wrapWithNode): Adds node to m_nodes. (WebCore::serializeNodes): Adding node to nodes is moved into MarkupAccumulatorWrapper. (WebCore::createMarkup): Instantiates MarkupAccumulatorWrapper. (WebCore::serializeNodesWithNamespaces): Renamed from MarkupAccumulator::appendMarkup. 2010-08-12 Dirk Schulze Unreviewed sort of Xcode project file. * WebCore.xcodeproj/project.pbxproj: 2010-08-12 Ben Murdoch Reviewed by Pavel Feldman. InspectorController.h missing InspectorObject forward declaration https://bugs.webkit.org/show_bug.cgi?id=43913 Build fix so no new tests. * inspector/InspectorController.h: Adds the necessary forward declaration. 2010-08-12 Hui Huang Reviewed by Eric Seidel. m_windowRect is not updated because parent of PluginView is not set when updatePluginWidget is called. plugin gets wrong window size on setwindow. https://bugs.webkit.org/show_bug.cgi?id=43635 * plugins/symbian/PluginViewSymbian.cpp: (WebCore::PluginView::setParent): 2010-08-12 Pavel Feldman Not reviewed, re-apply r65241 and 65243. Web Inspector: brush up object proxies, introduce remote object model. https://bugs.webkit.org/show_bug.cgi?id=43847 * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/AuditRules.js: (WebInspector.AuditRules.CssInHeadRule.prototype.doRun): (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.doEvalInWindow): (WebInspector.ConsoleView.prototype._enterKeyPressed.printResult): (WebInspector.ConsoleView.prototype._enterKeyPressed): (WebInspector.ConsoleView.prototype._format): (WebInspector.ConsoleView.prototype._formatarray): (WebInspector.ConsoleView.prototype._formatAsArrayEntry): (WebInspector.ConsoleMessage.prototype._format): (WebInspector.ConsoleCommandResult): * inspector/front-end/DOMAgent.js: (WebInspector.DOMNode): * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype.performSearch): * inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeElement.prototype._createTooltipForNode): * inspector/front-end/EventListenersSidebarPane.js: (): * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): (injectedScriptConstructor.): * inspector/front-end/ObjectPropertiesSection.js: (WebInspector.ObjectPropertiesSection.prototype.update): (WebInspector.ObjectPropertiesSection.prototype.updateProperties): (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate): (WebInspector.ObjectPropertyTreeElement.prototype.update): (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression): * inspector/front-end/ObjectProxy.js: Removed. * inspector/front-end/PropertiesSidebarPane.js: (WebInspector.PropertiesSidebarPane.prototype.update.callback): * inspector/front-end/RemoteObject.js: Added. (WebInspector.RemoteObjectId): (WebInspector.RemoteObject): (WebInspector.RemoteObject.fromPrimitiveValue): (WebInspector.RemoteObject.fromNode): (WebInspector.RemoteObject.fromPayload): (WebInspector.RemoteObject.type): (WebInspector.RemoteObject.prototype.get objectId): (WebInspector.RemoteObject.prototype.get type): (WebInspector.RemoteObject.prototype.get description): (WebInspector.RemoteObject.prototype.get hasChildren): (WebInspector.RemoteObject.prototype.isError): (WebInspector.RemoteObject.prototype.getPropertyValueDescriptions): (WebInspector.RemoteObject.prototype.getOwnProperties): (WebInspector.RemoteObject.prototype.getProperties.remoteObjectBinder): (WebInspector.RemoteObjectProperty): * inspector/front-end/ScopeChainSidebarPane.js: (WebInspector.ScopeChainSidebarPane.prototype.update): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame.updatingCallbackWrapper): (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame): (WebInspector.ScriptsPanel.prototype.doEvalInCallFrame): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._showPopup.evaluateCallback): (WebInspector.SourceFrame.prototype._showPopup): (WebInspector.SourceFrame.prototype._evalSelectionInCallFrame): * inspector/front-end/WatchExpressionsSidebarPane.js: (WebInspector.WatchExpressionsSection.prototype.update): (WebInspector.WatchExpressionTreeElement.prototype.update): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector.log.logMessage): (WebInspector.log): * inspector/front-end/utilities.js: (): 2010-08-11 Stephen White Reviewed by David Levin. Add support for BGRA pixel format to GraphicsContext3D. https://bugs.webkit.org/show_bug.cgi?id=43858 Although this has been standard in desktop GL since 1.2, it's an extension in GL ES 2.0, so a query function is provided to check for support. Since they differ on semantics (GL ES 2.0 requires TexImage2D()'s format and internalFormat to match, while desktop GL will not accept BGRA as an internalFormat), the stub implementation returns false until these quirks have been implemented and tested on each port. * platform/graphics/GraphicsContext3D.cpp: (WebCore::GraphicsContext3D::supportsBGRA): Add implementation for non-chromium platforms which returns false. * platform/graphics/GraphicsContext3D.h: (WebCore::GraphicsContext3D::): Add query function (supportsBGRA()) and the BGRA_EXT token. 2010-08-12 Pavel Feldman Not reviewed. Rolling out r65241 and 65243 for breaking inspector tests. 2010-08-12 Pavel Feldman Not reviewed. Adding the file missing in r65241. * inspector/front-end/RemoteObject.js: Added. (WebInspector.RemoteObjectId): (WebInspector.RemoteObject): (WebInspector.RemoteObject.fromPrimitiveValue): (WebInspector.RemoteObject.fromNode): (WebInspector.RemoteObject.fromPayload): (WebInspector.RemoteObject.type): (WebInspector.RemoteObject.prototype.get objectId): (WebInspector.RemoteObject.prototype.get type): (WebInspector.RemoteObject.prototype.get description): (WebInspector.RemoteObject.prototype.get hasChildren): (WebInspector.RemoteObject.prototype.isError): (WebInspector.RemoteObject.prototype.getPropertyValueDescriptions): (WebInspector.RemoteObject.prototype.getOwnProperties): (WebInspector.RemoteObject.prototype.getProperties.remoteObjectBinder): (WebInspector.RemoteObjectProperty): 2010-08-12 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: brush up object proxies, introduce remote object model. https://bugs.webkit.org/show_bug.cgi?id=43847 * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/AuditRules.js: (WebInspector.AuditRules.CssInHeadRule.prototype.doRun): (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.doEvalInWindow): (WebInspector.ConsoleView.prototype._enterKeyPressed.printResult): (WebInspector.ConsoleView.prototype._enterKeyPressed): (WebInspector.ConsoleView.prototype._format): (WebInspector.ConsoleView.prototype._formatnode): (WebInspector.ConsoleView.prototype._formatarray): (WebInspector.ConsoleView.prototype._formatAsArrayEntry): (WebInspector.ConsoleMessage.prototype._format): (WebInspector.ConsoleCommandResult): * inspector/front-end/DOMAgent.js: (WebInspector.DOMNode): * inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeElement.prototype._createTooltipForNode): * inspector/front-end/EventListenersSidebarPane.js: * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): (injectedScriptConstructor.): * inspector/front-end/ObjectPropertiesSection.js: (WebInspector.ObjectPropertiesSection.prototype.update): (WebInspector.ObjectPropertiesSection.prototype.updateProperties): (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate): (WebInspector.ObjectPropertyTreeElement.prototype.update): (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression): * inspector/front-end/ObjectProxy.js: Removed. * inspector/front-end/PropertiesSidebarPane.js: (WebInspector.PropertiesSidebarPane.prototype.update.callback): * inspector/front-end/RemoteObject.js: Added. (WebInspector.RemoteObjectId): (WebInspector.RemoteObject): (WebInspector.RemoteObject.fromPrimitiveValue): (WebInspector.RemoteObject.fromErrorMessage): (WebInspector.RemoteObject.fromNode): (WebInspector.RemoteObject.fromPayload): (WebInspector.RemoteObject.type): (WebInspector.RemoteObject.prototype.get objectId): (WebInspector.RemoteObject.prototype.get type): (WebInspector.RemoteObject.prototype.get description): (WebInspector.RemoteObject.prototype.get hasChildren): (WebInspector.RemoteObject.prototype.isError): (WebInspector.RemoteObject.prototype.getPropertyValueDescriptions): (WebInspector.RemoteObject.prototype.getOwnProperties): (WebInspector.RemoteObject.prototype.getProperties.remoteObjectBinder): (WebInspector.RemoteObjectProperty): * inspector/front-end/ScopeChainSidebarPane.js: (WebInspector.ScopeChainSidebarPane.prototype.update): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame.updatingCallbackWrapper): (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame): (WebInspector.ScriptsPanel.prototype.doEvalInCallFrame): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._showPopup.evaluateCallback): (WebInspector.SourceFrame.prototype._showPopup): (WebInspector.SourceFrame.prototype._evalSelectionInCallFrame): * inspector/front-end/WatchExpressionsSidebarPane.js: (WebInspector.WatchExpressionsSection.prototype.update): (WebInspector.WatchExpressionTreeElement.prototype.update): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector.log.logMessage): (WebInspector.log): * inspector/front-end/utilities.js: 2010-08-12 Ben Murdoch Reviewed by Steve Block. V8 code generator does not add V8BindingMacros.h include in all places it is needed https://bugs.webkit.org/show_bug.cgi?id=43907 Adds the V8BindingMacros.h header before using the STRING_TO_V8PARAMETER_EXCEPTION_BLOCK macro. Build fix so no new tests. * bindings/scripts/CodeGeneratorV8.pm: include the header at the right time. 2010-08-12 Jeremy Orlow Revert for now https://bugs.webkit.org/show_bug.cgi?id=43794 * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.exp.in: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/GroupSettings.cpp: Removed. * page/GroupSettings.h: Removed. * page/PageGroup.cpp: (WebCore::PageGroup::PageGroup): (WebCore::PageGroup::localStorage): * page/PageGroup.h: * page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setLocalStorageQuota): (WebCore::Settings::setLocalStorageDatabasePath): * page/Settings.h: (WebCore::Settings::localStorageQuota): (WebCore::Settings::localStorageDatabasePath): 2010-08-12 Nikolas Zimmermann Not reviewed. Follow up to Jeremys fix, just remove the context parameter, it's not needed anymore. * rendering/RenderSVGResourceGradient.cpp: (WebCore::createMaskAndSwapContextForTextGradient): * rendering/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::applyResource): * rendering/SVGImageBufferTools.cpp: (WebCore::SVGImageBufferTools::createImageBuffer): * rendering/SVGImageBufferTools.h: 2010-08-12 Jeremy Orlow Build fix. * rendering/SVGImageBufferTools.cpp: (WebCore::SVGImageBufferTools::createImageBuffer): 2010-08-12 Nikolas Zimmermann Reviewed by Dirk Schulze. SVG masking performance very slow https://bugs.webkit.org/show_bug.cgi?id=43622 Create ImageBuffers only as large as the final rendered size on screen. Only gradient on text on CG handled this correctly so far. Refactored the code into a new SVGImageBufferTools class, and use the code from RenderSVGResourceMasker -> makes the IE9 demo SVG dice usable. Clippers, Patterns and Filters remain to be converted. Test: svg/zoom/page/zoom-mask-with-percentages.svg * Android.mk: Add SVGImageBufferTools.* to build. * CMakeLists.txt: Ditto. * GNUmakefile.am: Ditto. * WebCore.gypi: Ditto. * WebCore.pro: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * rendering/RenderSVGAllInOne.cpp: Ditto. * rendering/RenderSVGResourceGradient.cpp: Refactored CG gradient specific "create image buffer in absolute coordinates" code into SVGImageBufferTools class. (WebCore::createMaskAndSwapContextForTextGradient): (WebCore::clipToTextMask): (WebCore::RenderSVGResourceGradient::applyResource): * rendering/RenderSVGResourceMasker.cpp: Use new SVGImageBufferTools class, to avoid pixelation when zooming and to create image buffers as big as the final rendered size on screen, not more. (WebCore::RenderSVGResourceMasker::invalidateClients): (WebCore::RenderSVGResourceMasker::applyResource): (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage): (WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect): (WebCore::RenderSVGResourceMasker::resourceBoundingBox): * rendering/RenderSVGResourceMasker.h: * rendering/SVGImageBufferTools.cpp: Added. (WebCore::SVGImageBufferTools::absoluteTransformFromContext): (WebCore::SVGImageBufferTools::createImageBuffer): (WebCore::SVGImageBufferTools::clipToImageBuffer): * rendering/SVGImageBufferTools.h: Added. (WebCore::SVGImageBufferTools::SVGImageBufferTools): (WebCore::SVGImageBufferTools::~SVGImageBufferTools): 2010-08-10 Jeremy Orlow Reviewed by Adam Barth. Some settings are linked to the PageGroup not the Page. Create a new class for those. https://bugs.webkit.org/show_bug.cgi?id=43794 Since persistient storage is shared between pages, there's no way to modify some settings related to it on a per page basis. As such, it's not technically correct for these settings to be on the Page's settings. Create a new class called GroupSettings, move the 2 group-wide local storage settings there, and add a new setting for IndexedDB's path (which is prompting this change). No behavior has changed, so no tests. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.exp.in: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/PageGroup.cpp: (WebCore::PageGroup::PageGroup): (WebCore::PageGroup::localStorage): * page/PageGroup.h: (WebCore::PageGroup::groupSettings): * page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setSessionStorageQuota): * page/Settings.h: 2010-08-12 Benjamin Poulain Reviewed by Simon Hausmann. [Qt] Decode images directly to QPixmap https://bugs.webkit.org/show_bug.cgi?id=40797 Use the new API of Qt 4.7 to decode data from the image reader directly to QPixmap. This allow us to use JDCT_IFAST when decoding jpeg images to pixmap, and to decode animated GIF images, while still using in-place conversion of color space. * platform/graphics/qt/ImageDecoderQt.cpp: (WebCore::ImageDecoderQt::setData): (WebCore::ImageDecoderQt::internalHandleCurrentImage): 2010-07-14 Marcus Bulach Reviewed by darin@apple.com. Removes DontCheckEnums from some IDLs and fixes the corresponding enums. https://bugs.webkit.org/show_bug.cgi?id=42278 This is a follow-up to https://bugs.webkit.org/show_bug.cgi?id=42250: it fixes some IDL/.h and enables generating compile-time checks for enums. Tests: idls should generate valid code. * dom/Node.h: (WebCore::Node::): * dom/Node.idl: * dom/OverflowEvent.h: (WebCore::OverflowEvent::): * dom/OverflowEvent.idl: * html/FileReader.cpp: (WebCore::FileReader::readyState): * html/FileReader.h: (WebCore::FileReader::): * html/FileReader.idl: 2010-08-12 Alejandro G. Castro Reviewed by David Levin. The #if clause enabling a feature should avoid the all includes of the feature https://bugs.webkit.org/show_bug.cgi?id=43866 Modified the position of the guard to avoid including all the headers if the feature controlling the guard is not enabled. * dom/make_names.pl: 2010-08-12 Sheriff Bot Unreviewed, rolling out r65221. http://trac.webkit.org/changeset/65221 https://bugs.webkit.org/show_bug.cgi?id=43896 Broke snow leopard build. (Requested by dave_levin on #webkit). * platform/graphics/GraphicsContext3D.cpp: * platform/graphics/GraphicsContext3D.h: (WebCore::GraphicsContext3D::): 2010-08-11 Stephen White Reviewed by David Levin. Add support for BGRA pixel format to GraphicsContext3D. https://bugs.webkit.org/show_bug.cgi?id=43858 Although this has been standard in desktop GL since 1.2, it's an extension in GL ES 2.0, so a query function is provided to check for support. Since they differ on semantics (GL ES 2.0 requires TexImage2D()'s format and internalFormat to match, while desktop GL will not accept BGRA as an internalFormat), the stub implementation returns false until these quirks have been implemented and tested on each port. * platform/graphics/GraphicsContext3D.cpp: (WebCore::GraphicsContext3D::supportsBGRA): Add implementation for non-chromium platforms which returns false. * platform/graphics/GraphicsContext3D.h: (WebCore::GraphicsContext3D::): Add query function (supportsBGRA()) and the BGRA_EXT token. 2010-08-11 Satish Sampath Reviewed by Kent Tamura. Handle clicks and recognition events for the speech input button https://bugs.webkit.org/show_bug.cgi?id=43857 * rendering/RenderInputSpeech.cpp: (WebCore::RenderInputSpeech::paintInputFieldSpeechButton): Selects the image based on current state. * rendering/TextControlInnerElements.cpp: (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement): (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): (WebCore::InputFieldSpeechButtonElement::set_state): Switch to a new state and update the UI. (WebCore::InputFieldSpeechButtonElement::didCompleteRecording): (WebCore::InputFieldSpeechButtonElement::didCompleteRecognition): * rendering/TextControlInnerElements.h: (WebCore::InputFieldSpeechButtonElement::): (WebCore::InputFieldSpeechButtonElement::state): 2010-08-11 Fumitoshi Ukai Reviewed by Alexey Proskuryakov. REGRESSION(65135): format specifier warnings https://bugs.webkit.org/show_bug.cgi?id=43876 * websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::appendToBuffer): cast size_t to unsigned long for %lu. (WebCore::WebSocketChannel::processBuffer): cast size_t to unsigned long for %lu. 2010-08-11 Kevin Ollivier [wx] Build fix, don't generate WebDOMEventTarget.h/.cpp as we use the ones in bindings/cpp. * DerivedSources.make: 2010-08-11 Tony Gentilcore Reviewed by Adam Barth. Make PendingScript copyable so that it can be stored in containers https://bugs.webkit.org/show_bug.cgi?id=43875 This will be useful for storing PendingScripts in a Vector or Deque for async and defer scripts. No new tests because no functional changes. * dom/PendingScript.h: (WebCore::PendingScript::PendingScript): (WebCore::PendingScript::operator=): 2010-08-11 Victoria Kirst Reviewed by David Levin. Fixing a regression in the UI for Mac default audio/video controls. https://bugs.webkit.org/show_bug.cgi?id=43750 * rendering/RenderThemeChromiumMac.h: * rendering/RenderThemeChromiumMac.mm: (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderContainer): (WebCore::RenderThemeChromiumMac::paintMediaSliderThumb): (WebCore::RenderThemeChromiumMac::volumeSliderOffsetFromMuteButton): 2010-08-11 Adam Barth Reviewed by Eric Seidel. HTML TreeBuilder hits ASSERT in fragment case with insertAdjacentHTML and colgroup https://bugs.webkit.org/show_bug.cgi?id=43758 This patch conditionalizes some LegacyHTMLTreeBuilder-specific code in HTMLElement::createContextualFragment that interferes with the new HTMLTreeBuilder. Doing that exposes the above ASSERT, which I've fixed in this patch too. Fixing that ASSERT involved a small refactoring in ExternalCharacterTokenBuffer. * html/HTMLElement.cpp: (WebCore::HTMLElement::createContextualFragment): * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipLeadingWhitespace): (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeadingWhitespace): (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeadingNonWhitespace): (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipLeading): (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading): (WebCore::HTMLTreeBuilder::processCharacterBuffer): 2010-08-11 Adam Barth Reviewed by Eric Seidel. Conditionalize wrong fragment parsing code to pass more HTML5lib tests https://bugs.webkit.org/show_bug.cgi?id=43877 This code exists to support the LegacyHTMLTreeBuilder. Unfortunately, it causes problems for the new HTMLTreeBuilder (which is more self-contained). * dom/Element.cpp: (WebCore::Element::createContextualFragment): 2010-08-11 Ryosuke Niwa Reviewed by Tony Chang. Can't unbold text in div in font-weight span https://bugs.webkit.org/show_bug.cgi?id=26871 The bug was caused by removeInlineStyle not being able to include styled inline nodes around the start. Solved this problem by pushing down all inline styles instead of just text-decorations. This approach allows removeInlineStyle to remove styled ancestors properly and generates compact markups. Test: editing/style/push-down-inline-styles.html * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::removeCSSStyle): No longer removes attributes or node when mode == RemoveNone. (WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle): Calls shouldRemoveInlineStyleFromElement to determine the highest ancestor whose style needs to be pushed down. (WebCore::ApplyStyleCommand::extractInlineStyleToPushDown): Renamed from extractTextDecorationStyle. Extracts all inline CSS properties specified instead of just text decorations. (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Renamed from applyTextDecorationStyle. Applies inline styles using addInlineStyleIfNeeded or adds inline CSS values. (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode): Renamed from pushDownTextDecorationStyleAroundNode. (WebCore::ApplyStyleCommand::removeInlineStyle): Calls pushDownTextDecorationStyleAroundNode. * editing/ApplyStyleCommand.h: * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::mergeParagraphs): Prevents moveParagraph from preserving the style of an empty paragraph when merged with the previous paragraph because we don't use that style anyways. 2010-08-11 Julien Chaffraix Reviewed by Ariya Hidayat. Remove dead code in CSSStyleSelector. https://bugs.webkit.org/show_bug.cgi?id=43805 * css/CSSStyleSelector.cpp: Remove some debugging code that was compiled out. 2010-08-11 Chris Fleizach Reviewed by Beth Dakin. AX: isNativeCheckbox does not work as advertised https://bugs.webkit.org/show_bug.cgi?id=43872 Test: platform/mac/accessibility/native-vs-nonnative-checkboxes.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isInputImage): Only say it's an input image if its role has not been overriden (WebCore::AccessibilityRenderObject::isNativeCheckboxOrRadio): * dom/InputElement.h: Add methods to query if it's a checkbox or radio button type element. * html/HTMLInputElement.h: (WebCore::HTMLInputElement::isCheckbox): 2010-08-11 Kenneth Russell Reviewed by David Levin. Remove obsolete WebGLArray type names https://bugs.webkit.org/show_bug.cgi?id=43885 Deleted aliases to obsolete WebGLArray type names. Updated affected layout tests, synchronizing them with the versions in the Khronos repository where appropriate. Ran all layout tests. * bindings/js/JSDOMWindowCustom.cpp: * page/DOMWindow.idl: 2010-08-11 Steve Block Reviewed by David Levin. [chromium] Geolocation breaks the compile if ENABLE_GEOLOCATION is set to 0 https://bugs.webkit.org/show_bug.cgi?id=43753 This change guards the entire contents of the V8 custom bindings files with ENABLE(GEOLOCATION) to match JSC. No new tests, build fix only. * bindings/v8/custom/V8CustomPositionCallback.cpp: * bindings/v8/custom/V8CustomPositionErrorCallback.cpp: * bindings/v8/custom/V8GeolocationCustom.cpp: 2010-08-11 Kwang Yul Seo Reviewed by David Levin. Include in GraphicsContextSkia.cpp https://bugs.webkit.org/show_bug.cgi?id=43843 wtf/UnusedParam.h must be included because UNUSED_PARAM macro is used. * platform/graphics/skia/GraphicsContextSkia.cpp: 2010-08-11 Nico Weber Reviewed by David Levin. [chromium/mac]: Fix colors in compositing mode https://bugs.webkit.org/show_bug.cgi?id=43823 The textures are drawn by opengl, which doesn't do any color space correction -- it assumes everything is in the device color space already. Hence, when drawing into the memory that will be uploaded as opengl texture, use the device color space. * platform/graphics/chromium/ImageLayerChromium.cpp: (WebCore::ImageLayerChromium::updateTextureContents): * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::updateTextureContents): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::setRootLayerCanvasSize): 2010-08-11 Kenneth Russell Reviewed by Dimitri Glazkov. Remove obsolete texImage2D and texSubImage2D entry points https://bugs.webkit.org/show_bug.cgi?id=40320 No new tests; covered by existing WebGL tests. * html/canvas/WebGLRenderingContext.cpp: * html/canvas/WebGLRenderingContext.h: * html/canvas/WebGLRenderingContext.idl: 2010-08-11 Gavin Barraclough Windows build fix. * platform/win/BString.cpp: (WebCore::BString::BString): 2010-08-11 Gavin Barraclough Qt build fix II. * WebCore.xcodeproj/project.pbxproj: * bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertValueToQVariant): 2010-08-11 Gavin Barraclough Qt build fix. * WebCore.xcodeproj/project.pbxproj: * bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertValueToQVariant): 2010-08-11 Steve Block Reviewed by Jeremy Orlow. Need EmptyDeviceOrientationClient and EmptyDeviceMotionClient for use with SVGImage https://bugs.webkit.org/show_bug.cgi?id=43848 Tested by existing DeviceOrientation tests. * loader/EmptyClients.h: (WebCore::EmptyDeviceMotionClient::setController): (WebCore::EmptyDeviceMotionClient::startUpdating): (WebCore::EmptyDeviceMotionClient::stopUpdating): (WebCore::EmptyDeviceMotionClient::currentDeviceMotion): (WebCore::EmptyDeviceOrientationClient::setController): (WebCore::EmptyDeviceOrientationClient::startUpdating): (WebCore::EmptyDeviceOrientationClient::stopUpdating): (WebCore::EmptyDeviceOrientationClient::lastOrientation): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::dataChanged): 2010-08-11 Rob Buis Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=42042 An empty value for xml:lang isn't considered Revert last line change of my patch ; it happens to behave correctly and same as before, but makes the use case of empty values unneededly slower. No new tests. (No change in behavior) * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): 2010-08-11 Kevin Ollivier [wx, WebDOM] Build fix. Fix callback params and WebCore::String -> WTF::String fixes. * bindings/cpp/WebDOMCustomVoidCallback.cpp: Added. (WebDOMCustomVoidCallback::WebDOMCustomVoidCallback): (WebDOMCustomVoidCallback::~WebDOMCustomVoidCallback): (WebDOMCustomVoidCallback::handleEvent): (toWebCore): * bindings/cpp/WebDOMCustomVoidCallback.h: Added. (WebDOMCustomVoidCallback::create): * bindings/cpp/WebDOMHTMLDocumentCustom.cpp: (documentWrite): * bindings/cpp/WebDOMString.cpp: (WebDOMString::equals): * bindings/scripts/CodeGeneratorCPP.pm: * bindings/scripts/test/CPP/WebDOMTestCallback.cpp: (WebDOMTestCallback::callbackWithClass1Param): (WebDOMTestCallback::callbackWithClass2Param): (WebDOMTestCallback::callbackWithNonBoolReturnType): * bindings/scripts/test/CPP/WebDOMTestObj.cpp: * bindings/scripts/test/V8/V8TestInterface.h: * bindings/scripts/test/V8/V8TestObj.h: * wscript: 2010-08-11 Gavin Barraclough Rubber stamps by Darin Adler & Sam Weinig. Bug 43867 - Some UString cleanup Change JSC::UString data(), size(), and from(), to characters(), length(), and number() to match WTF::String. Move string concatenation methods to a new header to simplify down UString.h. Remove is8Bit(). * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::hasCSSPropertyNamePrefix): (WebCore::cssPropertyName): * bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::setPort): * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::dispatchDidParseSource): * bindings/js/ScriptString.h: (WebCore::ScriptString::size): * bindings/js/ScriptValue.cpp: (WebCore::jsToInspectorValue): * bindings/objc/WebScriptObject.mm: (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]): * bridge/jni/jni_jsobject.mm: (JavaJSObject::convertValueToJObject): * bridge/jni/jsc/JNIUtilityPrivate.cpp: (JSC::Bindings::convertArrayInstanceToJavaArray): (JSC::Bindings::convertValueToJValue): * bridge/objc/objc_runtime.mm: (JSC::Bindings::callObjCFallbackObject): 2010-08-10 David Hyatt Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=43806, add ability to paginate screen content. Add a new boolean to Document to indicate that content should be paginated. This is checked when doing page breaks and in a couple of other cases. * dom/Document.cpp: (WebCore::Document::Document): * dom/Document.h: (WebCore::Document::paginatedForScreen): (WebCore::Document::setPaginatedForScreen): (WebCore::Document::paginated): * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintChildren): (WebCore::RenderBlock::calcColumnWidth): * rendering/RenderBox.cpp: (WebCore::RenderBox::calcHeight): * rendering/RenderView.cpp: (WebCore::RenderView::paint): 2010-08-11 Adam Barth Windows build fix. Turns out we need to unconditionally include HTMLEntityNames.cpp now that LegacyHTMLDocumentParser doesn't exist. * html/HTMLEntityParser.cpp: 2010-08-11 Eric Carlson Reviewed by Darin Adler. Inserting a element should immediately set networkState to NETWORK_NO_SOURCE. https://bugs.webkit.org/show_bug.cgi?id=42897 A element inserted as a child of a media element with a networkState of NETWORK_EMPTY should cause the networkState to immediately change to NETWORK_NO_SOURCE. * WebCore.xcodeproj/project.pbxproj: * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): Remove unused variable m_processingLoad. (WebCore::HTMLMediaElement::prepareForLoad): Set m_networkState to NETWORK_NO_SOURCE. (WebCore::HTMLMediaElement::loadInternal): Remove unused variable m_processingLoad. (WebCore::HTMLMediaElement::selectMediaResource): No need to change m_networkState, it was done in prepareForLoad. * html/HTMLMediaElement.h: * html/HTMLSourceElement.cpp: (WebCore::HTMLSourceElement::insertedIntoTree): Renamed from insertedIntoDocument because we want to do this setup whether or not the parent media element is in the document. * html/HTMLSourceElement.h: 2010-08-11 Adam Barth Rubber-stamped by Eric Seidel. Delete LegacyHTMLDocumentParser and LegacyPreloadScanner https://bugs.webkit.org/show_bug.cgi?id=43836 These classes are bit-rotting disturbingly quickly. We removed the last dependencies on these classes and so we can remove them. We might need to preserve some of their particular quirks to handle some legacy applications, but our current thinking is to do that with individual settings that affect the new parser. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/Document.cpp: * dom/DocumentFragment.cpp: (WebCore::DocumentFragment::parseHTML): * dom/DocumentParser.h: * dom/XMLDocumentParserLibxml2.cpp: * dom/XMLDocumentParserQt.cpp: * html/HTMLConstructionSite.cpp: * html/HTMLDocument.cpp: (WebCore::HTMLDocument::createParser): * html/HTMLEntityParser.cpp: (WebCore::decodeNamedEntity): * html/HTMLEntityParser.h: * html/HTMLFormControlElement.cpp: * html/HTMLTreeBuilder.cpp: * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createParser): * html/LegacyHTMLDocumentParser.cpp: Removed. * html/LegacyHTMLDocumentParser.h: Removed. * html/LegacyHTMLTreeBuilder.cpp: * html/LegacyPreloadScanner.cpp: Removed. * html/LegacyPreloadScanner.h: Removed. * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser): (WebCore::FTPDirectoryDocumentParser::appendEntry): (WebCore::FTPDirectoryDocumentParser::createTDForFilename): (WebCore::processFilesizeString): (WebCore::wasLastDayOfMonth): (WebCore::processFileDateString): (WebCore::FTPDirectoryDocumentParser::parseAndAppendOneLine): (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): (WebCore::FTPDirectoryDocumentParser::createBasicDocument): (WebCore::FTPDirectoryDocumentParser::append): (WebCore::FTPDirectoryDocumentParser::finish): * page/XSSAuditor.cpp: (WebCore::XSSAuditor::decodeHTMLEntities): * page/XSSAuditor.h: * platform/text/SegmentedString.cpp: (WebCore::SegmentedString::prepend): 2010-08-11 Chris Jerdonek Reviewed by Adam Barth. Refactored FrameLoader::createWindow() out of the FrameLoader class since FrameLoader should not be responsible for creating windows. https://bugs.webkit.org/show_bug.cgi?id=39156 No new functionality, so no new tests. * bindings/generic/BindingDOMWindow.h: (WebCore::::createWindow): - Updated the call to FrameLoader's createWindow(). * bindings/js/JSDOMWindowCustom.cpp: (WebCore::createWindow): - Updated the call to FrameLoader's createWindow(). * loader/FrameLoader.cpp: (WebCore::createWindowFromFrameLoader): - Made FrameLoader::createWindow() non-member, non-friend and changed it to accept Frame* parameters instead of FrameLoader*. * loader/FrameLoader.h: - Updated the header file to reflect the above change to FrameLoader.cpp. 2010-08-11 Ilya Tikhonovsky Reviewed by Pavel Feldman. WebInspector: small refactoring for CodeGeneratorInspector. all "notify" methods are generating in InspectorFrontend the other methods are generating in InspectorBackend. https://bugs.webkit.org/show_bug.cgi?id=43849 * inspector/CodeGeneratorInspector.pm: 2010-08-11 Gustavo Noronha Silva Reviewed by Xan Lopez. [GTK] Misc improvements to the scrolling code https://bugs.webkit.org/show_bug.cgi?id=41926 Refactor code that uses deprecated ways of dealing with the adjustments to use the GtkVersioning infrastructure. * GNUmakefile.am: * platform/gtk/GtkVersioning.cpp: Added. * platform/gtk/GtkVersioning.h: * platform/gtk/ScrollViewGtk.cpp: * platform/gtk/ScrollbarGtk.cpp: (ScrollbarGtk::detachAdjustment): (ScrollbarGtk::updateThumbPosition): (ScrollbarGtk::updateThumbProportion): 2010-08-11 Nate Chapin Chromium mac build fix (variables weren't being initialized). * platform/graphics/filters/FEGaussianBlur.cpp: (WebCore::FEGaussianBlur::apply): Initalize dxLeft, dxRight, dyLeft, dyRight. 2010-08-11 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: apply correct fix to storage panel status bar buttons. https://bugs.webkit.org/show_bug.cgi?id=43846 * inspector/front-end/DatabaseTableView.js: (WebInspector.DatabaseTableView.prototype.get statusBarItems): * inspector/front-end/StoragePanel.js: (WebInspector.StoragePanel.prototype._genericViewSetup): 2010-08-11 Kevin Ollivier Reviewed by Adam Barth. Override operator= for C++ DOM binding classes with private structs and update C++ DOM bindings test results. https://bugs.webkit.org/show_bug.cgi?id=43735 * bindings/cpp/WebDOMEventTarget.cpp: (WebDOMEventTarget::operator=): * bindings/cpp/WebDOMEventTarget.h: * bindings/scripts/CodeGeneratorCPP.pm: * bindings/scripts/test/CPP/WebDOMTestCallback.cpp: (WebDOMTestCallback::operator=): * bindings/scripts/test/CPP/WebDOMTestCallback.h: * bindings/scripts/test/CPP/WebDOMTestInterface.cpp: (WebDOMTestInterface::operator=): * bindings/scripts/test/CPP/WebDOMTestInterface.h: * bindings/scripts/test/CPP/WebDOMTestObj.cpp: (WebDOMTestObj::operator=): * bindings/scripts/test/CPP/WebDOMTestObj.h: 2010-08-11 Julie Parent Reviewed by Justin Garcia. Crash in replaceSelectionCommand with RTL text. https://bugs.webkit.org/show_bug.cgi?id=41485 For text with mixed directionality, sort the text boxes before computing gaps, since that code assumes the boxes are in order. Test: editing/execCommand/insert-image-on-top-of-directional-text.html * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::deleteInsignificantText): Sort boxes like we do in TextIterator before computing gaps. * editing/TextIterator.cpp: (WebCore::TextIterator::handleTextNode): Use new compareByStart rather than compareBoxStart. No functional change. * rendering/InlineTextBox.h: (WebCore::InlineTextBox::compareByStart): Moved compareBoxStart from TextIterator here so it can be used in multiple places. 2010-08-11 Fumitoshi Ukai Unreviewed build fix of Leopard Intel Debug (Build) * websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::processBuffer): use %lu, instead of %ul 2010-08-11 Alejandro G. Castro Reviewed by Dirk Schulze. Fixes to the gaussian blur algorithm https://bugs.webkit.org/show_bug.cgi?id=41605 Added the recomendations of SVG regarding the kernel size calculation for the approximation of the gaussian blur. http://www.w3.org/TR/SVG/filters.html#feGaussianBlurElement. Modified also some variable names to clarify algorithm, reviewed the situation where both standard deviations are 0. * platform/graphics/filters/FEGaussianBlur.cpp: (WebCore::FEGaussianBlur::FEGaussianBlur): (WebCore::FEGaussianBlur::stdDeviationX): (WebCore::FEGaussianBlur::setStdDeviationX): (WebCore::FEGaussianBlur::stdDeviationY): (WebCore::FEGaussianBlur::setStdDeviationY): (WebCore::boxBlur): (WebCore::FEGaussianBlur::kernelPosition): Added the SVG kernel position recomendation. (WebCore::FEGaussianBlur::apply): (WebCore::FEGaussianBlur::externalRepresentation): * platform/graphics/filters/FEGaussianBlur.h: 2010-08-11 Kristian Monsen Reviewed by Steve Block. Compile fix for Android, added include for Reviewed by Alexey Proskuryakov. Fix length calculation to be more robust. https://bugs.webkit.org/show_bug.cgi?id=43777 Test: websocket/tests/frame-length-overflow.html * websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::appendToBuffer): len is size_t. - add sanity check for integer wraps. (WebCore::WebSocketChannel::skipBuffer): len is size_t. (WebCore::WebSocketChannel::processBuffer): length is size_t. - add sanity check for integer wraps. * websockets/WebSocketChannel.h: change m_bufferSize and len to size_t. 2010-08-10 Eric Seidel Reviewed by Adam Barth. Fix three ASSERTs hit with the HTML5 TreeBuilder in fragment mode https://bugs.webkit.org/show_bug.cgi?id=43762 In fixing the insertAdjacentHTML I had to make small changes to the error logic, which ended up bringing us closer to HTML5. Test: fast/dom/HTMLElement/insertAdjacentHTML-errors.html * html/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::attach): - This ASSERT was just wrong, the child should not be attached in the case the parent is not attached. * html/HTMLElement.cpp: (WebCore::contextElementForInsertion): - This is part of HTML5, needed to know what to call the HTML or XML parsers with. The previous code always passed "this" which is wrong in the case of beforeBegin or afterEnd insertion. (WebCore::HTMLElement::insertAdjacentHTML): - Use the right contextElement now that we know how to compute it. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processEndTagForInCell): - This ASSERT is direct from the spec, but it's wrong, so I've filed a spec bug. 2010-08-11 Adam Barth Attempt to fix Windows build. * platform/win/COMPtr.h: (WTF::): 2010-08-11 Adam Barth Reviewed by Eric Seidel. Port view-source to new parser https://bugs.webkit.org/show_bug.cgi?id=43746 This patch switches the view-source mode for frames over to using the new HTML parsing infrastructure. This patch is an architectural change to how we parser view source documents. Previously, the LegacyHTMLDocumentParser would output a "guide string" that consided of the inter-attribute whitespace and various "control" characters. The HTMLViewSourceDocument would then interpret this guide string to approximately reconstruct the source of the original document and colorize various syntatic constructs. Unfortunately, that approach is inherently low-fidelity. It's not really feasible to reconstruct the input document from the token stream. The old view source mode also had a number of hacks in the old parser (e.g., to turn of decoding of HTML entities). Instead of trying to reconstruct the original document from the token stream, we use the segmentation information given by the tokens to colorize the input document itself. Each token now caries information about where in the input stream it came from and where various subcomponents (e.g., attribute names and values) are located. This approach is higher fidelity because we use this segmentation information to colorize the original input instead of attempting to reconstruct the original input. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/HTMLDocumentParser.cpp: * html/HTMLToken.h: (WebCore::HTMLToken::clear): (WebCore::HTMLToken::startIndex): (WebCore::HTMLToken::length): (WebCore::HTMLToken::end): * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createParser): (WebCore::HTMLViewSourceDocument::addSource): (WebCore::HTMLViewSourceDocument::processDoctypeToken): (WebCore::HTMLViewSourceDocument::processTagToken): (WebCore::HTMLViewSourceDocument::processCommentToken): (WebCore::HTMLViewSourceDocument::processCharacterToken): (WebCore::HTMLViewSourceDocument::addRange): * html/HTMLViewSourceDocument.h: * html/HTMLViewSourceParser.cpp: Added. (WebCore::HTMLViewSourceParser::~HTMLViewSourceParser): (WebCore::HTMLViewSourceParser::insert): (WebCore::HTMLViewSourceParser::pumpTokenizer): (WebCore::HTMLViewSourceParser::append): (WebCore::HTMLViewSourceParser::sourceForToken): (WebCore::HTMLViewSourceParser::updateTokenizerState): (WebCore::HTMLViewSourceParser::finish): (WebCore::HTMLViewSourceParser::finishWasCalled): * html/HTMLViewSourceParser.h: Added. (WebCore::HTMLViewSourceParser::HTMLViewSourceParser): (WebCore::HTMLViewSourceParser::document): * html/LegacyHTMLDocumentParser.cpp: (WebCore::LegacyHTMLDocumentParser::processToken): (WebCore::LegacyHTMLDocumentParser::processDoctypeToken): 2010-08-11 Yoshiki Hayashi Reviewed by Shinichiro Hamaji. Make form controls, textarea, legend and datagrid treat width: auto as specified in stretching vertical flexbox. Otherwise it's treated as intrinsic as before. https://bugs.webkit.org/show_bug.cgi?id=17918 Test: fast/flexbox/vertical-box-form-controls.html * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle): * rendering/RenderBox.cpp: (WebCore::RenderBox::sizesToIntrinsicWidth): 2010-08-10 Darin Adler Reviewed by Sam Weinig. Add leakRef and clear to all RefPtr variants https://bugs.webkit.org/show_bug.cgi?id=42389 * platform/win/COMPtr.h: Changed all uses of "template <...>" to instead do "template<...>". Defined many of the inlined functions outside the class definition, to avoid style checker warnings about multiple statements on a single line and for slightly better clarity of the class definition itself. Renamed releaseRef to leakRef. Added a releaseRef that calls leakRef so we don't have to rename all callers at once. Added a clear function. Changed the hash table code so it doesn't need to call releaseRef, and so it uses the hash table deleted value hooks already present within the class. 2010-08-10 Ariya Hidayat [Qt] Fix build warning: remove reference to html/BlobRegistryImp.h * WebCore.pro: 2010-08-10 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=43803 Only the last Korean character can be shown if font style is enabled while typing (43803) Test: platform/mac/editing/input/bold-node.html * editing/Editor.cpp: (WebCore::Editor::setComposition): It is not clear to me what the "baseNode == extentNode" check is about in this function , but let's try to make it more likely that it passes. 2010-08-10 Hayato Ito Reviewed by Kent Tamura. Make CSSSelector::specificity() non-recursive. https://bugs.webkit.org/show_bug.cgi?id=43784 This change is one of the required changes to fix the following master bug: https://bugs.webkit.org/show_bug.cgi?id=42806 No functional change, thus no tests. * css/CSSSelector.cpp: (WebCore::CSSSelector::specificity): (WebCore::CSSSelector::specificityForOneSelector): (WebCore::CSSSelector::specificityForPage): * css/CSSSelector.h: 2010-08-10 Matthew Delaney Reviewed by Darin Adler. 2d.path.clip.empty.html test is failing https://bugs.webkit.org/show_bug.cgi?id=43161 * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::clip): Catching the empty path case from being sent directly to CGContextClip - which would ignore it. Instead, using CGContextClip with a CGRectZero to achieve the desired behavior of reducing the clipping region to nothing. 2010-08-10 Gyuyoung Kim Reviewed by Antonio Gomes. [EFL] Add video files to enable video in WebKit EFL https://bugs.webkit.org/show_bug.cgi?id=43790 Add files regarding html5 video to CMakeList.txt for WebKit Efl. But, this patch is not run html5 video on WebKit EFL yet. * CMakeLists.txt: Add files related to html5video. * platform/efl/LocalizedStringsEfl.cpp: Add functions for html5 video. (WebCore::localizedMediaControlElementString): (WebCore::localizedMediaControlElementHelpText): (WebCore::localizedMediaTimeDescription): * platform/graphics/MediaPlayer.cpp: (WebCore::installedMediaEngines): Disable MediaPlayerPrivate::r egisterMediaEngine for WebKit EFL. 2010-08-10 Patrick Gansterer Reviewed by Nikolas Zimmermann. Add a toRenderSVGImage function https://bugs.webkit.org/show_bug.cgi?id=43789 Add a function for casting to RenderSVGImage and use it. * rendering/RenderSVGImage.h: (WebCore::toRenderSVGImage): * rendering/RenderTreeAsText.cpp: (WebCore::write): * rendering/SVGRenderTreeAsText.cpp: (WebCore::writeSVGImage): * rendering/SVGRenderTreeAsText.h: * svg/SVGImageElement.cpp: (WebCore::SVGImageElement::attach): 2010-08-10 Adam Barth Reviewed by Eric Seidel. Clients of HTMLTokenizer should be able to see where characters went in the token https://bugs.webkit.org/show_bug.cgi?id=43766 When viewing the source of a document, we want to colorize different parts of the input depending on how they were tokenized. In this patch, we expose the internal segmentation of a token by recording the start and end offsets for each attribute name and each attribute value. * html/HTMLToken.h: (WebCore::HTMLToken::addNewAttribute): (WebCore::HTMLToken::beginAttributeName): (WebCore::HTMLToken::endAttributeName): (WebCore::HTMLToken::beginAttributeValue): (WebCore::HTMLToken::endAttributeValue): (WebCore::HTMLToken::appendToAttributeName): (WebCore::HTMLToken::appendToAttributeValue): (WebCore::AtomicHTMLToken::AtomicHTMLToken): * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::nextToken): 2010-08-10 Dumitru Daniliuc Reviewed by David Levin. Do not post a sync task to the DB thread if it's terminating. https://bugs.webkit.org/show_bug.cgi?id=43676 * bindings/generic/ActiveDOMCallback.cpp: The context can sometimes be NULL. Check if it's NULL instead of asserting that it's not. (WebCore::ActiveDOMCallback::ActiveDOMCallback): * dom/ActiveDOMObject.cpp: (WebCore::ActiveDOMObject::ActiveDOMObject): * storage/Database.cpp: Do not post a sync task to the DB thread if the DB thread is terminating. Also, when a task is destroyed, ASSERT that it was completed, or that it had no synchronizer. (WebCore::Database::openAndVerifyVersion): (WebCore::Database::markAsDeletedAndClose): (WebCore::Database::tableNames): * storage/DatabaseTask.cpp: (WebCore::DatabaseTaskSynchronizer::DatabaseTaskSynchronizer): (WebCore::DatabaseTask::~DatabaseTask): (WebCore::DatabaseTask::performTask): * storage/DatabaseTask.h: (WebCore::DatabaseTaskSynchronizer::hasCheckedForTermination): (WebCore::DatabaseTaskSynchronizer::setHasCheckedForTermination): (WebCore::DatabaseTask::hasSynchronizer): (WebCore::DatabaseTask::hasCheckedForTermination): * storage/DatabaseThread.cpp: (WebCore::DatabaseThread::terminationRequested): (WebCore::DatabaseThread::scheduleTask): (WebCore::DatabaseThread::scheduleImmediateTask): * storage/DatabaseThread.h: 2010-08-10 Gavin Barraclough Qt build fix. * bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertValueToQVariant): 2010-08-10 Jian Li Fix more build break. * bindings/v8/SerializedScriptValue.cpp: (WebCore::ZigZag::Reader::readBlob): (WebCore::ZigZag::Reader::readFile): * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::~ScriptExecutionContext): (WebCore::ScriptExecutionContext::revokeBlobURL): * dom/ScriptExecutionContext.h: * html/Blob.cpp: (WebCore::Blob::slice): 2010-08-10 Gavin Barraclough Rubber stamped by Sam Weinig Bug 43817 - Remove UString::Rep UString::Rep has for a long time been replaced by UStringImpl (Rep remaining as a typedef). UStringImpl has since been removed too (unified with StringImpl). Remove Rep, rename rep() to impl() and m_rep to m_impl. Also add impl() method to Identifier, and rename its UString member from _ustring to m_string. * bindings/js/JSDOMBinding.cpp: (WebCore::findAtomicString): * bindings/js/JSDOMBinding.h: (WebCore::ustringToString): (WebCore::identifierToString): (WebCore::ustringToAtomicString): (WebCore::identifierToAtomicString): * bindings/js/SerializedScriptValue.h: (WebCore::SerializedScriptValueData::SerializedScriptValueData): * bridge/IdentifierRep.cpp: (WebCore::IdentifierRep::get): * bridge/c/c_class.cpp: (JSC::Bindings::CClass::methodsNamed): (JSC::Bindings::CClass::fieldNamed): * bridge/jni/jsc/JavaClassJSC.cpp: (JavaClass::JavaClass): (JavaClass::methodsNamed): (JavaClass::fieldNamed): * bridge/jni/jsc/JavaStringJSC.h: (JSC::Bindings::JavaStringImpl::~JavaStringImpl): (JSC::Bindings::JavaStringImpl::init): (JSC::Bindings::JavaStringImpl::UTF8String): (JSC::Bindings::JavaStringImpl::uchars): (JSC::Bindings::JavaStringImpl::length): (JSC::Bindings::JavaStringImpl::uString): * bridge/jsc/BridgeJSC.h: 2010-08-10 Jian Li Fix qt build break. * html/BlobRegistryImpl.cpp: * html/BlobRegistryImpl.h: * html/BlobURL.cpp: * html/BlobURL.h: * platform/BlobRegistry.h: 2010-08-10 Jian Li Reviewed by David Levin. Add the support to register the blob data. https://bugs.webkit.org/show_bug.cgi?id=43600 This is the first step towards adding Blob URL support. The blob has an internal URL (used by FileReader) and public URLs (used by Blob.url). The URL and its associated data are managed by BlobRegistry interface. This patch does not remove the usage of BlobItem. It will be removed when all the blob data support is hooked up and the new tests will be added then. * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/SerializedScriptValue.cpp: (WebCore::SerializedBlob::create): (WebCore::SerializedBlob::url): (WebCore::SerializedBlob::type): (WebCore::SerializedBlob::size): (WebCore::SerializedBlob::SerializedBlob): (WebCore::SerializedFile::create): (WebCore::SerializedFile::path): (WebCore::SerializedFile::url): (WebCore::SerializedFile::type): (WebCore::SerializedFile::SerializedFile): (WebCore::SerializedFileList::item): (WebCore::SerializedFileList::SerializedFileList): (WebCore::SerializedScriptValueData::SerializedScriptValueData): (WebCore::SharedSerializedData::asBlob): (WebCore::SharedSerializedData::asFile): (WebCore::SerializingTreeWalker::convertIfTerminal): (WebCore::DeserializingTreeWalker::convertIfTerminal): (WebCore::TeardownTreeWalker::convertIfTerminal): * bindings/js/SerializedScriptValue.h: (WebCore::SerializedScriptValueData::): (WebCore::SerializedScriptValueData::asString): (WebCore::SerializedScriptValueData::asBlob): (WebCore::SerializedScriptValueData::asFile): * bindings/v8/SerializedScriptValue.cpp: (WebCore::ZigZag::Writer::writeBlob): (WebCore::ZigZag::Writer::writeFile): (WebCore::ZigZag::Writer::writeFileList): (WebCore::ZigZag::Writer::doWriteUintHelper): (WebCore::ZigZag::Writer::doWriteUint32): (WebCore::ZigZag::Writer::doWriteUint64): (WebCore::ZigZag::Serializer::writeBlob): (WebCore::ZigZag::Serializer::writeFile): (WebCore::ZigZag::Reader::readBlob): (WebCore::ZigZag::Reader::readFile): (WebCore::ZigZag::Reader::readFileList): (WebCore::ZigZag::Reader::doReadUintHelper): (WebCore::ZigZag::Reader::doReadUint32): (WebCore::ZigZag::Reader::doReadUint64): * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::~ScriptExecutionContext): (WebCore::ScriptExecutionContext::trackBlobURL): (WebCore::ScriptExecutionContext::revokeBlobURL): * dom/ScriptExecutionContext.h: * html/Blob.cpp: (WebCore::Blob::Blob): (WebCore::Blob::~Blob): (WebCore::Blob::createPublicURL): * html/Blob.h: (WebCore::Blob::create): (WebCore::Blob::url): * html/BlobRegistryImpl.cpp: Added. * html/BlobRegistryImpl.h: Added. * html/BlobStorageData.h: Added. * html/BlobURL.cpp: Added. * html/BlobURL.h: Added. * html/File.cpp: (WebCore::File::File): * html/File.h: (WebCore::File::create): * platform/BlobData.cpp: Added. * platform/BlobData.h: Added. * platform/BlobRegistry.h: Added. 2010-08-10 Adam Barth Reviewed by Eric Seidel. SegmentedString should keep track of how many characters it consumes https://bugs.webkit.org/show_bug.cgi?id=43765 The easiest way to keep track of how many characters we've consumed would be to increment a counter every time we advance, but that's too slow. Instead, we keep track lazily and update our summary durning the slow case of advance (which is sufficiently rare). There's some subtly to how this works w.r.t. "unconsuming" characters by pushing them back on the front of the segmented string. This isn't really a "right answer" here because the notion of unconsuming input isn't present in the API. This patch makes some assumptions about how clients of this class use its API. In a future patch, we might want to rename some of the method names to make this more explicit. * platform/text/SegmentedString.cpp: (WebCore::SegmentedString::operator=): (WebCore::SegmentedString::append): (WebCore::SegmentedString::prepend): (WebCore::SegmentedString::advanceSubstring): * platform/text/SegmentedString.h: (WebCore::SegmentedSubstring::numberOfCharactersConsumed): (WebCore::SegmentedString::SegmentedString): (WebCore::SegmentedString::numberOfCharactersConsumed): 2010-08-10 Gavin Barraclough Rubber stamped by Sam Weinig. Bug 43816 - Remove UStringImpl The class was actually removed a long time ago, replaced by StringImpl. UStringImpl is just a typedef onto StringImpl. Remove this. * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSDOMBinding.cpp: (WebCore::findAtomicString): 2010-08-09 Stephen White Reviewed by David Levin. Prefer the medium-quality (bilinear) image resampling for 2D canvas on Chromium. https://bugs.webkit.org/show_bug.cgi?id=43646 This is what the accelerated path is going to do, so do it in the software path as well. * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::createImageBuffer): * platform/graphics/GraphicsContext.h: 2010-08-10 Chris Fleizach Reviewed by Dave Hyatt. Removing an element from an anonymous block causes crash https://bugs.webkit.org/show_bug.cgi?id=42309 There was a case where a continuation was added as a child, but if you asked that child who is your parent, it would return the wrong answer. The specific scenario was when a sibling of an element who was the start of a continuation was present. Retrieving the parent object had then follow the sibling chain and then follow the originating continuation chain. Test: accessibility/removed-anonymous-block-child-causes-crash.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::nextSibling): Fix erroneous comment (WebCore::nextContinuation): (WebCore::AccessibilityRenderObject::renderParentObject): Handle unhandled continuation case. (WebCore::AccessibilityRenderObject::addChildren): ASSERT that the parentObject() is the same when adding a new child. 2010-08-10 Abhishek Arya Reviewed by David Hyatt. Take checks for ruby base existence out of the ASSERTs. https://bugs.webkit.org/show_bug.cgi?id=43795 Test: fast/ruby/ruby-remove-no-base.html * rendering/RenderRubyRun.cpp: (WebCore::RenderRubyRun::addChild): (WebCore::RenderRubyRun::removeChild): 2010-08-06 Zhenyao Mo Reviewed by Dimitri Glazkov. texture functions should gen INVALID_OPERATION if no texture is bound https://bugs.webkit.org/show_bug.cgi?id=42907 * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::copyTexImage2D): Check if a texture is bound to target. (WebCore::WebGLRenderingContext::copyTexSubImage2D): Ditto. (WebCore::WebGLRenderingContext::generateMipmap): Ditto. (WebCore::WebGLRenderingContext::getTexParameter): Ditto. (WebCore::WebGLRenderingContext::texImage2DBase): Ditto. (WebCore::WebGLRenderingContext::texParameter): Ditto. (WebCore::WebGLRenderingContext::texSubImage2DBase): Ditto. (WebCore::WebGLRenderingContext::validateTextureBinding): Check if target is valid and if a texture is bound to it. * html/canvas/WebGLRenderingContext.h: Declare validateTextureBinding(). 2010-08-10 Patrick Gansterer Reviewed by Sam Weinig. [WINCE] Implement Path::currentPoint() https://bugs.webkit.org/show_bug.cgi?id=42927 * platform/graphics/wince/PathWince.cpp: (WebCore::Path::currentPoint): 2010-08-10 Ariya Hidayat [Qt] Warning fix, remove reference to platform/text/StringImpl.h * WebCore.pro: 2010-08-10 Alice Liu Chromium build fix attempt. not reviewed * platform/text/TextBoundaries.cpp: use correct stringimplh include 2010-08-10 Jian Li Chromium build fix. * platform/graphics/chromium/FontPlatformDataChromiumWin.h: * platform/graphics/chromium/FontPlatformDataLinux.cpp: 2010-08-10 Johnny Ding Reviewed by Adam Barth. Change the ScriptController::processingUserGesture to static method and use dynamic(JSC binding)/entered(V8 binding) frame to check the user gesture. https://bugs.webkit.org/show_bug.cgi?id=42827. Test: fast/events/popup-blocked-from-iframe-script.html * WebCore.order: * bindings/js/JSDOMBinding.cpp: (WebCore::processingUserGesture): * bindings/js/JSDOMBinding.h: * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::setLocation): (WebCore::createWindow): (WebCore::domWindowAllowPopUp): (WebCore::JSDOMWindow::open): (WebCore::JSDOMWindow::showModalDialog): * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::setLocation): * bindings/js/JSLocationCustom.cpp: (WebCore::navigateIfAllowed): (WebCore::JSLocation::reload): * bindings/js/ScriptController.cpp: (WebCore::ScriptController::processingUserGesture): * bindings/js/ScriptController.h: * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture): (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD): * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::processingUserGesture): (WebCore::ScriptController::anyPageIsProcessingUserGesture): * bindings/v8/ScriptController.h: * bindings/v8/specialization/V8BindingState.cpp: (WebCore::::processingUserGesture): * loader/FrameLoader.cpp: (WebCore::FrameLoader::isProcessingUserGesture): 2010-08-10 Gavin Barraclough Chromium build fix * platform/graphics/chromium/FontPlatformDataLinux.h: 2010-08-10 Gavin Barraclough Rubber stamped by Sam Weinig. Bug 43786 - Move AtomicStringHash from WebCore to WTF Also remove deprecated string headers from WebCore/platform/text. * ForwardingHeaders/wtf/text/AtomicStringHash.h: Added. * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: * bindings/cpp/WebDOMHTMLCollectionCustom.cpp: * bindings/js/JSCSSStyleDeclarationCustom.cpp: * bindings/js/JSClipboardCustom.cpp: * bindings/js/JSDOMApplicationCacheCustom.cpp: * bindings/js/JSDOMMimeTypeArrayCustom.cpp: * bindings/js/JSDOMPluginArrayCustom.cpp: * bindings/js/JSDOMPluginCustom.cpp: * bindings/js/JSDOMStringMapCustom.cpp: * bindings/js/JSDOMWindowCustom.cpp: * bindings/js/JSDataGridColumnListCustom.cpp: * bindings/js/JSHTMLAllCollectionCustom.cpp: * bindings/js/JSHTMLCollectionCustom.cpp: * bindings/js/JSMessagePortCustom.cpp: * bindings/js/JSNodeListCustom.cpp: * bindings/scripts/CodeGeneratorCPP.pm: * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/CodeGeneratorV8.pm: * bindings/scripts/test/CPP/WebDOMTestCallback.cpp: * bindings/scripts/test/CPP/WebDOMTestObj.cpp: * bindings/scripts/test/V8/V8TestInterface.h: * bindings/scripts/test/V8/V8TestObj.h: * bindings/v8/ScriptDebugServer.h: * bindings/v8/V8Binding.cpp: * bindings/v8/V8Binding.h: * bridge/jni/v8/JavaClassV8.h: * css/CSSFontFaceSource.h: * css/CSSFontSelector.cpp: * css/CSSFontSelector.h: * css/CSSNamespace.h: * css/CSSParser.cpp: * css/CSSParser.h: * css/CSSParserValues.h: * css/CSSStyleSelector.h: * css/CSSVariablesDeclaration.h: * css/MediaFeatureNames.h: * css/MediaQueryExp.h: * css/WebKitCSSKeyframesRule.h: * dom/CustomEvent.h: * dom/Document.cpp: * dom/Event.cpp: * dom/Event.h: * dom/EventNames.h: * dom/EventTarget.h: * dom/InputElement.h: * dom/MessagePort.cpp: * dom/MessagePort.h: * dom/NameNodeList.h: * dom/NodeRareData.h: * dom/QualifiedName.h: * dom/ScriptElement.cpp: * dom/SpaceSplitString.h: * dom/TagNodeList.h: * dom/XMLDocumentParser.h: * editing/EditorCommand.cpp: * history/mac/HistoryItemMac.mm: * html/BlobBuilder.cpp: * html/DataGridColumn.h: * html/DataGridColumnList.cpp: * html/HTMLDocument.h: * html/HTMLInputElement.cpp: * html/HTMLTokenizer.cpp: * html/HTMLTokenizer.h: * html/LegacyPreloadScanner.cpp: * html/LegacyPreloadScanner.h: * inspector/InspectorCSSStore.h: * inspector/InspectorController.h: * inspector/InspectorDOMAgent.cpp: * inspector/InspectorDOMAgent.h: * inspector/InspectorDebuggerAgent.h: * inspector/InspectorValues.h: * loader/Cache.h: * loader/CrossOriginAccessControl.cpp: * loader/CrossOriginPreflightResultCache.h: * loader/DocLoader.h: * loader/ImageLoader.h: * loader/appcache/ApplicationCache.h: * loader/appcache/ApplicationCacheStorage.h: * loader/appcache/DOMApplicationCache.h: * loader/icon/IconDatabase.h: * loader/icon/IconRecord.h: * loader/loader.h: * notifications/Notification.h: * page/FrameTree.h: * page/Page.cpp: * page/PageGroup.h: * page/SecurityOrigin.h: * page/Settings.h: * page/WindowFeatures.cpp: * page/animation/AnimationBase.h: * page/animation/AnimationControllerPrivate.h: * page/animation/CompositeAnimation.h: * platform/Cookie.h: * platform/KURL.cpp: * platform/KURLGoogle.cpp: * platform/KURLHash.h: * platform/Length.cpp: * platform/LinkHash.cpp: * platform/LinkHash.h: * platform/MIMETypeRegistry.cpp: * platform/MIMETypeRegistry.h: * platform/SchemeRegistry.h: * platform/ThreadGlobalData.cpp: * platform/ThreadGlobalData.h: * platform/cf/BinaryPropertyList.cpp: * platform/chromium/SearchPopupMenuChromium.cpp: * platform/efl/ClipboardEfl.cpp: * platform/efl/CookieJarEfl.cpp: * platform/efl/PlatformKeyboardEventEfl.cpp: * platform/graphics/FontCache.cpp: * platform/graphics/FontFamily.h: * platform/graphics/MediaPlayer.h: * platform/graphics/cg/ImageSourceCGWin.cpp: * platform/graphics/chromium/FontCacheChromiumWin.cpp: * platform/graphics/chromium/FontCacheLinux.cpp: * platform/graphics/chromium/FontUtilsChromiumWin.cpp: * platform/graphics/chromium/LayerChromium.h: * platform/graphics/filters/Filter.h: * platform/graphics/mac/FontPlatformData.h: * platform/graphics/mac/GraphicsLayerCA.h: * platform/graphics/qt/FontCacheQt.cpp: * platform/graphics/win/FontCacheWin.cpp: * platform/graphics/win/FontPlatformDataCGWin.cpp: * platform/graphics/win/FontPlatformDataCairoWin.cpp: * platform/graphics/win/FontPlatformDataWin.cpp: * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: * platform/graphics/win/WKCACFLayer.h: * platform/graphics/wince/FontPlatformData.cpp: * platform/graphics/wx/FontPlatformData.h: * platform/gtk/ClipboardGtk.cpp: * platform/gtk/DataObjectGtk.h: * platform/haiku/ClipboardHaiku.cpp: * platform/haiku/CookieJarHaiku.cpp: * platform/haiku/SearchPopupMenuHaiku.cpp: * platform/mac/SearchPopupMenuMac.mm: * platform/mac/ThreadCheck.mm: * platform/network/CredentialStorage.cpp: * platform/network/HTTPHeaderMap.h: * platform/network/cf/DNSCFNet.cpp: * platform/network/curl/CookieJarCurl.cpp: * platform/qt/ClipboardQt.cpp: * platform/text/AtomicString.h: Removed. * platform/text/AtomicStringHash.h: Removed. * platform/text/AtomicStringImpl.h: Removed. * platform/text/AtomicStringKeyedMRUCache.h: * platform/text/StringBuilder.cpp: * platform/text/StringHash.h: Removed. * platform/text/StringImpl.h: Removed. * platform/text/TextCodecLatin1.cpp: * platform/text/TextCodecUTF16.cpp: * platform/text/TextCodecUserDefined.cpp: * platform/text/cf/HyphenationCF.cpp: * platform/text/cf/StringImplCF.cpp: * platform/text/mac/HyphenationMac.mm: * platform/text/mac/StringImplMac.mm: * platform/text/transcoder/FontTranscoder.h: * platform/text/wince/TextCodecWinCE.cpp: * platform/win/BString.cpp: * platform/win/ClipboardWin.cpp: * platform/win/SearchPopupMenuWin.cpp: * platform/wince/SearchPopupMenuWince.cpp: * platform/wx/ClipboardWx.cpp: * plugins/DOMMimeTypeArray.cpp: * plugins/DOMPlugin.cpp: * plugins/DOMPluginArray.cpp: * plugins/PluginDatabase.h: * plugins/PluginPackage.h: * plugins/PluginStream.h: * rendering/RenderApplet.h: * rendering/RenderText.cpp: * rendering/style/BindingURI.h: * rendering/style/ContentData.cpp: * rendering/style/CounterContent.h: * rendering/style/CounterDirectives.h: * rendering/style/KeyframeList.h: * rendering/style/StyleRareInheritedData.h: * storage/AbstractDatabase.cpp: * storage/DatabaseAuthorizer.h: * storage/DatabaseTracker.h: * storage/IDBDatabaseBackendImpl.h: * storage/IDBFactoryBackendImpl.h: * storage/IDBObjectStoreBackendImpl.h: * storage/OriginQuotaManager.h: * storage/OriginUsageRecord.h: * storage/SQLTransactionCoordinator.h: * storage/StorageAreaSync.h: * storage/StorageMap.h: * storage/StorageNamespaceImpl.cpp: * storage/chromium/QuotaTracker.h: * svg/SVGAltGlyphElement.h: * svg/SVGDocumentExtensions.cpp: * svg/SVGDocumentExtensions.h: * svg/SVGFitToViewBox.cpp: * svg/SVGLangSpace.h: * svg/animation/SMILTimeContainer.h: * svg/graphics/filters/SVGFilterBuilder.h: * websockets/WebSocket.h: * websockets/WebSocketChannel.cpp: * websockets/WebSocketHandshake.cpp: * websockets/WebSocketHandshakeResponse.cpp: * wml/WMLPageState.h: * workers/AbstractWorker.h: * workers/DefaultSharedWorkerRepository.h: * workers/Worker.h: * workers/WorkerContext.h: * xml/XMLHttpRequest.h: * xml/XMLHttpRequestUpload.cpp: * xml/XMLHttpRequestUpload.h: * xml/XPathExpressionNode.h: * xml/XPathNamespace.h: * xml/XPathParser.cpp: * xml/XSLTProcessor.h: 2010-08-10 Pavel Feldman Not reviewed. Adding changes that escaped from r65072. Web Inspector: move database processing to native layer. https://bugs.webkit.org/show_bug.cgi?id=43788 * inspector/front-end/InspectorBackendStub.js: (WebInspector.InspectorBackendStub): * inspector/front-end/StoragePanel.js: (WebInspector.StoragePanel.prototype._genericViewSetup): 2010-08-10 Gustavo Noronha Silva Reviewed by Xan Lopez. [GTK] Inputs of type 'search' have weird looking checkboxes instead of search/clear icons https://bugs.webkit.org/show_bug.cgi?id=43760 Draw appropriate GTK+ stock images for search/clear icons in search entries. * platform/gtk/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::paintSearchFieldResultsButton): (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration): (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): 2010-08-10 Pavel Feldman Not reviewed. Qt build fix, follow up for r65072. * inspector/InspectorController.cpp: (WebCore::InspectorController::releaseFrontendLifetimeAgents): 2010-08-10 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: move database processing to native layer. https://bugs.webkit.org/show_bug.cgi?id=43788 * English.lproj/localizedStrings.js: * WebCore.gypi: * bindings/js/JSInjectedScriptHostCustom.cpp: * bindings/v8/custom/V8InjectedScriptHostCustom.cpp: * inspector/CodeGeneratorInspector.pm: * inspector/InjectedScript.cpp: (WebCore::InjectedScript::dispatch): * inspector/InjectedScript.h: * inspector/InjectedScriptHost.cpp: * inspector/InjectedScriptHost.h: * inspector/InjectedScriptHost.idl: * inspector/Inspector.idl: * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::dispatchOnInjectedScript): (WebCore::InspectorBackend::executeSQL): * inspector/InspectorBackend.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::releaseFrontendLifetimeAgents): * inspector/InspectorController.h: * inspector/InspectorDebuggerAgent.h: * inspector/InspectorStorageAgent.cpp: Added. (WebCore::): (WebCore::InspectorStorageAgent::InspectorStorageAgent): (WebCore::InspectorStorageAgent::~InspectorStorageAgent): (WebCore::InspectorStorageAgent::executeSQL): (WebCore::InspectorStorageAgent::clearFrontend): * inspector/InspectorStorageAgent.h: Added. (WebCore::InspectorStorageAgent::create): (WebCore::InspectorStorageAgent::frontend): * inspector/front-end/Database.js: (WebInspector.Database.prototype.executeSql): (WebInspector.sqlTransactionSucceeded): (WebInspector.sqlTransactionFailed): * inspector/front-end/DatabaseQueryView.js: (WebInspector.DatabaseQueryView.prototype._queryFinished): (WebInspector.DatabaseQueryView.prototype._queryError): * inspector/front-end/DatabaseTableView.js: (WebInspector.DatabaseTableView.prototype._queryFinished): * inspector/front-end/InjectedScript.js: * inspector/front-end/InjectedScriptAccess.js: (InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName): (InjectedScriptAccess._installHandler): * inspector/front-end/StoragePanel.js: (WebInspector.StoragePanel.prototype.dataGridForResult): 2010-08-10 Steve Block Reviewed by Jeremy Orlow. [V8] DeviceMotionEvent can not be used from JavaScript https://bugs.webkit.org/show_bug.cgi?id=43785 This is tested by the existing tests fast/dom/DeviceMotion/create-event.html and fast/dom/DeviceMotion/optional-event-properties.html. * bindings/v8/custom/V8EventCustom.cpp: (WebCore::toV8): 2010-08-10 Balazs Kelemen Reviewed by Antonio Gomes. [Qt] Build WebKit2 into a static lib https://bugs.webkit.org/show_bug.cgi?id=43621 Just build changes so no new tests. * WebCore.pri: Moved feature detection logic into features.pri since we need this in WebKit2.pro as well. * WebCore.pro: Moved the specification of the WebKit2 build to WebKit2.pro. Link against the static lib. * features.pri: Added. 2010-08-10 Yury Semikhatsky Reviewed by Pavel Feldman. Web Inspector, Chromium: reloading of inspected page hits assert in InspectorController::enableDebuggerFromFrontend() https://bugs.webkit.org/show_bug.cgi?id=43780 * inspector/CodeGeneratorInspector.pm: * inspector/InspectorController.cpp: (WebCore::InspectorController::enableDebuggerFromFrontend): * inspector/InspectorController.h: (WebCore::InspectorController::hasFrontend): * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::create): (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent): (WebCore::InspectorDebuggerAgent::setPauseOnExceptionsState): (WebCore::InspectorDebuggerAgent::didParseSource): (WebCore::InspectorDebuggerAgent::failedToParseSource): (WebCore::InspectorDebuggerAgent::didPause): (WebCore::InspectorDebuggerAgent::didContinue): * inspector/InspectorDebuggerAgent.h: 2010-08-10 Tor Arne Vestbø Reviewed by Simon Hausmann. Make sure NPAPI plugins get an initial setNPWindow on Mac https://bugs.webkit.org/show_bug.cgi?id=43782 * plugins/mac/PluginViewMac.mm: 2010-08-10 Dirk Schulze Reviewed by Nikolas Zimmermann. Use SVGPathParser to create SVG paths and to perform path animations https://bugs.webkit.org/show_bug.cgi?id=43696 Removed toString() functions in all SVGPathSeg* objects as well as toPath() in SVGPathSegList. These hacks were used to create a SVG path data string or a platform path from a SVGPathSegList. Use the new SVGPathParser instead. Doesn't affect any tests. * svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::applyResultsToTarget): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::toPathData): * svg/SVGPathParserFactory.cpp: (WebCore::SVGPathParserFactory::buildPathFromSVGPathSegList): (WebCore::SVGPathParserFactory::buildStringFromByteStream): (WebCore::SVGPathParserFactory::buildStringFromSVGPathSegList): * svg/SVGPathParserFactory.h: * svg/SVGPathSeg.cpp: * svg/SVGPathSeg.h: * svg/SVGPathSegArc.cpp: * svg/SVGPathSegArc.h: * svg/SVGPathSegClosePath.h: (WebCore::SVGPathSegClosePath::pathSegTypeAsLetter): * svg/SVGPathSegCurvetoCubic.h: * svg/SVGPathSegCurvetoCubicSmooth.h: * svg/SVGPathSegCurvetoQuadratic.h: * svg/SVGPathSegLinetoHorizontal.h: * svg/SVGPathSegLinetoVertical.h: * svg/SVGPathSegList.cpp: (WebCore::SVGPathSegList::getPathSegAtLength): * svg/SVGPathSegList.h: 2010-08-10 Sheriff Bot Unreviewed, rolling out r65056. http://trac.webkit.org/changeset/65056 https://bugs.webkit.org/show_bug.cgi?id=43773 "Clearly I missed something. I'm too tired to try and fix now. Will re-land in the morning." (Requested by eseidel on #webkit). * html/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::attach): * html/HTMLElement.cpp: (WebCore::HTMLElement::insertAdjacentHTML): * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processEndTagForInCell): 2010-08-10 Yoshiki Hayashi Reviewed by Kent Tamura. Iterate over :first-letter so that it will be included in innerText. https://bugs.webkit.org/show_bug.cgi?id=39863 Test: fast/dom/inner-text-first-letter.html * editing/TextIterator.cpp: (WebCore::TextIterator::TextIterator): (WebCore::TextIterator::advance): (WebCore::TextIterator::handleTextNode): (WebCore::TextIterator::handleTextBox): (WebCore::TextIterator::emitText): * editing/TextIterator.h: 2010-08-10 Kent Tamura Reviewed by Darin Adler. Fix crashes by SelectionController::modify(). https://bugs.webkit.org/show_bug.cgi?id=43032 Test: editing/selection/selection-modify-crash.html * editing/visible_units.cpp: (WebCore::endOfDocument): Add NULL-check for document()->documentElement(). 2010-08-10 Dirk Schulze Reviewed by Nikolas Zimmermann. Add missing SVGPathSegList source for SVGPathParser https://bugs.webkit.org/show_bug.cgi?id=43691 Added SVGPathSegListSource to parse normalized or unaltered SVGPathSegLists and transform them to either a SVG path string, or a SVGPathByteStream. This will be needed to synchronize all SVGPathSegLists and the SVG path string of the 'd' attribute. Refactored SVGPathSource code, to read concrete path segments instead of type/flag/coordinates from the data sources. This is a further abstraction and seperates the reading of content from the parsing and interpreting. Doesn't affect any tests. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * svg/SVGAllInOne.cpp: * svg/SVGPathByteStreamSource.cpp: (WebCore::SVGPathByteStreamSource::parseSVGSegmentType): (WebCore::SVGPathByteStreamSource::nextCommand): (WebCore::SVGPathByteStreamSource::parseMoveToSegment): (WebCore::SVGPathByteStreamSource::parseLineToSegment): (WebCore::SVGPathByteStreamSource::parseLineToHorizontalSegment): (WebCore::SVGPathByteStreamSource::parseLineToVerticalSegment): (WebCore::SVGPathByteStreamSource::parseCurveToCubicSegment): (WebCore::SVGPathByteStreamSource::parseCurveToCubicSmoothSegment): (WebCore::SVGPathByteStreamSource::parseCurveToQuadraticSegment): (WebCore::SVGPathByteStreamSource::parseCurveToQuadraticSmoothSegment): (WebCore::SVGPathByteStreamSource::parseArcToSegment): * svg/SVGPathByteStreamSource.h: (WebCore::SVGPathByteStreamSource::moveToNextToken): * svg/SVGPathParser.cpp: (WebCore::SVGPathParser::parseMoveToSegment): (WebCore::SVGPathParser::parseLineToSegment): (WebCore::SVGPathParser::parseLineToHorizontalSegment): (WebCore::SVGPathParser::parseLineToVerticalSegment): (WebCore::SVGPathParser::parseCurveToCubicSegment): (WebCore::SVGPathParser::parseCurveToCubicSmoothSegment): (WebCore::SVGPathParser::parseCurveToQuadraticSegment): (WebCore::SVGPathParser::parseCurveToQuadraticSmoothSegment): (WebCore::SVGPathParser::parseArcToSegment): * svg/SVGPathSegListSource.cpp: Added. (WebCore::SVGPathSegListSource::SVGPathSegListSource): (WebCore::SVGPathSegListSource::~SVGPathSegListSource): (WebCore::SVGPathSegListSource::hasMoreData): (WebCore::SVGPathSegListSource::parseSVGSegmentType): (WebCore::SVGPathSegListSource::nextCommand): (WebCore::SVGPathSegListSource::parseMoveToSegment): (WebCore::SVGPathSegListSource::parseLineToSegment): (WebCore::SVGPathSegListSource::parseLineToHorizontalSegment): (WebCore::SVGPathSegListSource::parseLineToVerticalSegment): (WebCore::SVGPathSegListSource::parseCurveToCubicSegment): (WebCore::SVGPathSegListSource::parseCurveToCubicSmoothSegment): (WebCore::SVGPathSegListSource::parseCurveToQuadraticSegment): (WebCore::SVGPathSegListSource::parseCurveToQuadraticSmoothSegment): (WebCore::SVGPathSegListSource::parseArcToSegment): * svg/SVGPathSegListSource.h: Added. (WebCore::SVGPathSegListSource::create): (WebCore::SVGPathSegListSource::moveToNextToken): * svg/SVGPathSource.h: * svg/SVGPathStringSource.cpp: (WebCore::SVGPathStringSource::parseMoveToSegment): (WebCore::SVGPathStringSource::parseLineToSegment): (WebCore::SVGPathStringSource::parseLineToHorizontalSegment): (WebCore::SVGPathStringSource::parseLineToVerticalSegment): (WebCore::SVGPathStringSource::parseCurveToCubicSegment): (WebCore::SVGPathStringSource::parseCurveToCubicSmoothSegment): (WebCore::SVGPathStringSource::parseCurveToQuadraticSegment): (WebCore::SVGPathStringSource::parseCurveToQuadraticSmoothSegment): (WebCore::SVGPathStringSource::parseArcToSegment): * svg/SVGPathStringSource.h: 2010-08-09 Ilya Tikhonovsky Reviewed by Yury Semikhatsky. Web Inspector: small refactoring for CodeGeneratorInspector. A number of push calls were replaced by embedded text. Just for improve code readability. https://bugs.webkit.org/show_bug.cgi?id=43770 * inspector/CodeGeneratorInspector.pm: 2010-08-09 Eric Seidel Reviewed by Adam Barth. Fix three ASSERTs hit with the HTML5 TreeBuilder in fragment mode https://bugs.webkit.org/show_bug.cgi?id=43762 In fixing the insertAdjacentHTML I had to make small changes to the error logic, which ended up bringing us closer to HTML5. Test: fast/dom/HTMLElement/insertAdjacentHTML-errors.html * html/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::attach): - This ASSERT was just wrong, the child should not be attached in the case the parent is not attached. * html/HTMLElement.cpp: (WebCore::contextElementForInsertion): - This is part of HTML5, needed to know what to call the HTML or XML parsers with. The previous code always passed "this" which is wrong in the case of beforeBegin or afterEnd insertion. (WebCore::HTMLElement::insertAdjacentHTML): - Use the right contextElement now that we know how to compute it. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processEndTagForInCell): - This ASSERT is direct from the spec, but it's wrong, so I've filed a spec bug. 2010-08-09 Yury Semikhatsky Reviewed by Pavel Feldman. Web Inspector: remove InspectorFrontend class and use RemoteInspectorFrontend instead. https://bugs.webkit.org/show_bug.cgi?id=43726 * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::close): (WebCore::InspectorController::disconnectFrontend): * inspector/InspectorController.h: * inspector/InspectorFrontend.cpp: Removed. * inspector/InspectorFrontend.h: Removed. 2010-08-09 Ilya Tikhonovsky Reviewed by Pavel Feldman. Web Inspector: Remove obsolete JS wrappers for did* methods. https://bugs.webkit.org/show_bug.cgi?id=43738 * inspector/CodeGeneratorInspector.pm: * inspector/Inspector.idl: * inspector/front-end/BreakpointManager.js: * inspector/front-end/Callback.js: * inspector/front-end/ConsoleView.js: * inspector/front-end/DOMAgent.js: * inspector/front-end/DOMStorage.js: * inspector/front-end/Database.js: * inspector/front-end/InjectedScriptAccess.js: * inspector/front-end/ProfilesPanel.js: * inspector/front-end/ResourcesPanel.js: * inspector/front-end/ScriptView.js: * inspector/front-end/ScriptsPanel.js: * inspector/front-end/inspector.js: (WebInspector.reportProtocolError): 2010-08-09 Gavin Barraclough Qt build fix attempt VIII. * dom/QualifiedName.cpp: (WebCore::QualifiedName::toString): * dom/XMLDocumentParserQt.cpp: (WebCore::handleElementNamespaces): 2010-08-09 Gavin Barraclough Qt build fix attempt VII. * dom/QualifiedName.cpp: (WebCore::QualifiedName::toString): * dom/XMLDocumentParserQt.cpp: (WebCore::handleElementNamespaces): 2010-08-09 Gavin Barraclough Qt build fix attempt VI. * dom/QualifiedName.cpp: (WebCore::QualifiedName::toString): * dom/XMLDocumentParserQt.cpp: (WebCore::handleElementNamespaces): 2010-08-09 Gavin Barraclough Qt build fix attempt V. * dom/QualifiedName.cpp: (WebCore::QualifiedName::toString): * dom/XMLDocumentParserQt.cpp: (WebCore::handleElementNamespaces): 2010-08-09 Gavin Barraclough Qt build fix attempt IV. * css/CSSSelector.cpp: (WebCore::CSSSelector::selectorText): * dom/QualifiedName.cpp: (WebCore::QualifiedName::toString): * dom/XMLDocumentParserQt.cpp: (WebCore::handleElementNamespaces): 2010-08-09 Gavin Barraclough Speculative chromium build fix. * platform/graphics/chromium/FontCacheChromiumWin.cpp: (WebCore::charactersAreAllASCII): 2010-08-09 Gavin Barraclough Qt build fix III. * css/CSSSelector.cpp: 2010-08-09 Adam Barth Reviewed by Eric Seidel. Remove error-prone external SegementedSubstring contructor https://bugs.webkit.org/show_bug.cgi?id=43752 There's a lot of code that assumes that SegmentedString takes ownership of its substrings. For example, when the HTML parser pauses and resumes asynchronously, it could explode if SegmentedString didn't own its substrings. Prior to this patch, there was a constructor that let SegmentedSubstring use an external string buffer. It turns out it was only used in a handful of places, but I'd rather pay the memcpy of these small strings than risk having them used after free. * bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::documentWrite): * html/LegacyHTMLDocumentParser.cpp: (WebCore::LegacyHTMLDocumentParser::parseNonHTMLText): (WebCore::LegacyHTMLDocumentParser::scriptHandler): (WebCore::LegacyHTMLDocumentParser::parseComment): * platform/text/SegmentedString.h: (WebCore::SegmentedString::SegmentedString): 2010-08-09 Gavin Barraclough Speculative Qt build fix. * css/CSSSelector.cpp: 2010-08-09 Gavin Barraclough Speculative gtk build fix. * plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::handlePostReadFile): 2010-08-06 Gavin Barraclough Rubber stamped by Sam Weinig Bug 43594 - Add string forwards to Forward.h This allows us to remove forward declarations for these classes from WebCore/WebKit (a step in moving these class from WebCore:: to WTF::). * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.h: * accessibility/AccessibilityARIAGrid.h: * accessibility/AccessibilityListBoxOption.h: * accessibility/AccessibilityObject.h: * accessibility/AccessibilityRenderObject.h: * accessibility/AccessibilityTable.h: * bindings/cpp/WebDOMCString.h: * bindings/cpp/WebDOMString.h: * bindings/gobject/ConvertToUTF8String.h: * bindings/js/DOMWrapperWorld.h: * bindings/js/JSDOMBinding.h: * bindings/js/JSDOMWindowBase.h: * bindings/js/JSMessagePortCustom.h: * bindings/js/JavaScriptCallFrame.h: * bindings/js/ScriptController.h: * bindings/js/ScriptProfile.h: * bindings/js/ScriptSourceProvider.h: * bindings/js/ScriptString.h: * bindings/js/WorkerScriptController.h: * bindings/objc/DOMImplementationFront.h: * bindings/v8/ScheduledAction.h: * bindings/v8/ScriptController.h: * bindings/v8/V8DOMWindowShell.h: * bindings/v8/V8Proxy.h: * bindings/v8/V8Utilities.h: * bindings/v8/custom/V8CustomXPathNSResolver.h: * bridge/c/c_utility.h: * css/CSSFontSelector.h: * css/CSSHelper.h: * css/CSSOMUtils.h: * css/CSSPrimitiveValue.h: * css/MediaList.h: * css/StyleBase.h: * css/StyleSheetList.h: * css/WebKitCSSKeyframesRule.h: * dom/CheckedRadioButtons.h: * dom/DOMImplementation.h: * dom/DocumentMarker.h: * dom/DynamicNodeList.h: * dom/EventTarget.h: * dom/MessagePort.h: * dom/MessagePortChannel.h: * dom/NameNodeList.h: * dom/Node.h: * dom/NodeList.h: * dom/OptionGroupElement.h: * dom/ScriptExecutionContext.h: * dom/SelectElement.h: * dom/ViewportArguments.h: * dom/make_names.pl: * editing/HTMLInterchange.h: * editing/htmlediting.h: * editing/markup.h: * html/CollectionCache.h: * html/DOMFormData.h: * html/DataGridColumnList.h: * html/DateComponents.h: * html/FileStream.h: * html/FileStreamProxy.h: * html/FormDataList.h: (WebCore::FormDataList::appendData): * html/HTMLCollection.h: * html/HTMLElementStack.h: * html/HTMLFormattingElementList.h: * html/HTMLParserQuirks.h: * html/HTMLQuoteElement.h: * html/HTMLScriptRunnerHost.h: * html/StepRange.h: * html/canvas/CanvasGradient.h: * html/canvas/CanvasNumberArray.h: * html/canvas/CanvasPattern.h: * inspector/InjectedScript.h: * inspector/InspectorCSSStore.h: * inspector/InspectorClient.h: * inspector/InspectorFrontendClient.h: * inspector/InspectorValues.h: * inspector/ScriptDebugListener.h: * loader/CachedResourceClient.h: * loader/CrossOriginAccessControl.h: * loader/DocumentThreadableLoader.h: * loader/FrameLoaderClient.h: * loader/RedirectScheduler.h: * loader/SubframeLoader.h: * loader/appcache/DOMApplicationCache.h: * loader/archive/ArchiveFactory.h: * loader/icon/IconDatabaseClient.h: * notifications/NotificationPresenter.h: * page/Chrome.h: * page/ChromeClient.h: * page/Console.h: * page/ContextMenuClient.h: * page/DOMSelection.h: * page/EditorClient.h: * page/EventHandler.h: * page/FrameView.h: * page/GeolocationPositionCache.h: * page/History.h: * page/Location.h: * page/Navigator.h: * page/NavigatorBase.h: * page/PluginHalterClient.h: * page/PrintContext.h: * page/SpeechInput.h: * page/SpeechInputListener.h: * page/animation/AnimationController.h: * platform/CookieJar.h: * platform/CrossThreadCopier.h: * platform/DragImage.h: * platform/FileSystem.h: * platform/Language.h: * platform/Length.h: * platform/LinkHash.h: * platform/LocalizationStrategy.h: * platform/LocalizedStrings.h: * platform/Logging.h: * platform/Pasteboard.h: * platform/PopupMenuClient.h: * platform/SearchPopupMenu.h: * platform/Widget.h: * platform/cf/BinaryPropertyList.h: * platform/chromium/ChromiumBridge.h: * platform/chromium/ClipboardUtilitiesChromium.h: * platform/cocoa/KeyEventCocoa.h: * platform/graphics/Color.h: * platform/graphics/FontCache.h: * platform/graphics/FontData.h: * platform/graphics/FontSelector.h: * platform/graphics/GraphicsTypes.h: * platform/graphics/Icon.h: * platform/graphics/ImageBuffer.h: * platform/graphics/ImageSource.h: * platform/graphics/MediaPlayer.h: * platform/graphics/MediaPlayerPrivate.h: * platform/graphics/Path.h: * platform/graphics/StringTruncator.h: * platform/graphics/cairo/FontCustomPlatformData.h: * platform/graphics/cairo/FontPlatformData.h: * platform/graphics/cg/FontPlatformData.h: * platform/graphics/cg/ImageSourceCG.h: * platform/graphics/chromium/FontCustomPlatformData.h: * platform/graphics/chromium/FontPlatformDataChromiumWin.h: * platform/graphics/chromium/FontPlatformDataLinux.h: * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: * platform/graphics/haiku/FontCustomPlatformData.h: * platform/graphics/mac/FontCustomPlatformData.h: * platform/graphics/mac/FontPlatformData.h: * platform/graphics/qt/FontCustomPlatformData.h: * platform/graphics/qt/FontPlatformData.h: * platform/graphics/win/FontCustomPlatformData.h: * platform/graphics/win/FontCustomPlatformDataCairo.h: * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h: * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: * platform/graphics/wince/FontPlatformData.h: * platform/graphics/wince/MediaPlayerPrivateWince.h: * platform/graphics/wince/MediaPlayerProxy.h: * platform/graphics/wx/FontCustomPlatformData.h: * platform/graphics/wx/FontPlatformData.h: * platform/mac/PasteboardHelper.h: * platform/network/DNS.h: * platform/network/FormData.h: * platform/network/FormDataBuilder.h: * platform/network/HTTPParsers.h: * platform/text/Hyphenation.h: * platform/text/LineEnding.h: * platform/text/TextCodec.h: * platform/text/TextEncoding.h: * platform/text/TextStream.h: * platform/win/BString.h: * platform/win/ClipboardUtilitiesWin.h: * platform/win/WCDataObject.h: * platform/win/WebCoreTextRenderer.h: * plugins/DOMMimeType.h: * plugins/DOMMimeTypeArray.h: * plugins/DOMPlugin.h: * plugins/DOMPluginArray.h: * rendering/CounterNode.h: * rendering/HitTestResult.h: * rendering/RenderObjectChildList.h: * rendering/RenderText.h: * rendering/RenderTreeAsText.h: * rendering/TextControlInnerElements.h: * rendering/style/ContentData.h: * rendering/style/RenderStyle.h: * storage/DatabaseAuthorizer.h: * storage/DatabaseTrackerClient.h: * storage/SQLTransaction.h: * storage/SQLTransactionSync.h: * storage/Storage.h: * storage/chromium/DatabaseObserver.h: * svg/SVGAnimatedTemplate.h: * svg/SVGDocumentExtensions.h: * svg/SVGGlyphElement.h: * svg/SVGHKernElement.h: * svg/SVGNumberList.h: * svg/SVGPointList.h: * svg/SVGPreserveAspectRatio.h: * svg/SVGStylable.h: * svg/SVGTests.h: * svg/SVGTransformList.h: * svg/SVGTransformable.h: * svg/SVGVKernElement.h: * websockets/ThreadableWebSocketChannel.h: * websockets/ThreadableWebSocketChannelClientWrapper.h: * websockets/WebSocket.h: * websockets/WebSocketChannel.h: * websockets/WebSocketHandshakeResponse.h: * wml/WMLErrorHandling.h: * wml/WMLPageState.h: * wml/WMLVariables.h: * workers/DefaultSharedWorkerRepository.h: * workers/SharedWorkerRepository.h: * workers/Worker.h: * workers/WorkerContextProxy.h: * workers/WorkerLoaderProxy.h: * workers/WorkerLocation.h: * workers/WorkerMessagingProxy.h: * workers/WorkerReportingProxy.h: * workers/WorkerThread.h: * xml/DOMParser.h: * xml/XMLHttpRequestUpload.h: * xml/XPathEvaluator.h: * xml/XPathExpression.h: * xml/XPathNSResolver.h: * xml/XPathResult.h: * xml/XPathUtil.h: 2010-08-09 Nat Duca Reviewed by Dimitri Glazkov. [chromium] Blue line visible at the right hand side of the window with accelerated compositor https://bugs.webkit.org/show_bug.cgi?id=43748 Correct the ortho projection matrix for the root layer, which was too large by 0.5px in both width and height. For even view sizes, this would cause the viewport to appear 1 pixel too small. Fixing this requires removal of several 0.5 correction factors that were previously added to compensate for the too-large viewport. Finally, compute the translation for the root layer quad using floating point rather than integer arithmetic. This avoids us losing a key half-pixel of translation when the width of the window is odd. To test, size window to even/odd dimensions. No blue line should be visible. * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawLayers): 2010-08-09 Ryosuke Niwa Reviewed by Justin Garcia. fontColorChangesComputedStyle, fontSizeChangesComputedStyle, and fontFaceChangesComputedStyle should be removed https://bugs.webkit.org/show_bug.cgi?id=43465 Removed fontColorChangesComputedStyle, fontSizeChangesComputedStyle, and fontFaceChangesComputedStyle because StyleChange's applyFontColor, applyFontFace, and applyFontSize all return false if there was no difference between the new font color, font size, font face and that of the computed style. Also added a work-around for the bug 28282 in getPropertiesNotInComputedStyle with a test so that the above change will not add a redundant font or span element. Test: editing/style/fore-color-by-name.html * editing/ApplyStyleCommand.cpp: (WebCore::getRGBAFontColor): Added. (WebCore::StyleChange::extractTextStyles): Calls getRGBAFontColor. (WebCore::getPropertiesNotInComputedStyle): Removes color property manually by checking the RGBA values. (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): See above. 2010-08-09 Kenneth Russell Reviewed by David Levin. Fix compilation of VideoLayerChromium on Mac OS X with compositor https://bugs.webkit.org/show_bug.cgi?id=43757 No new tests; build fix only (associated functionality not implemented yet). * platform/graphics/chromium/VideoLayerChromium.cpp: (WebCore::VideoLayerChromium::VideoLayerChromium): (WebCore::VideoLayerChromium::updateTextureContents): (WebCore::VideoLayerChromium::createTextureRect): (WebCore::VideoLayerChromium::updateTextureRect): * platform/graphics/chromium/VideoLayerChromium.h: 2010-08-09 Ariya Hidayat Reviewed by Kenneth Rohde Christiansen. [Qt] Need to implement GraphicsContextQt::clipConvexPolygon() https://bugs.webkit.org/show_bug.cgi?id=41310 Based on the prototype code by Simon Hausmann. * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::clipConvexPolygon): * rendering/RenderObject.h: 2010-08-09 Chris Fleizach Reviewed by David Kilzer. AX: Placeholder value for text fields not exposed like it should be https://bugs.webkit.org/show_bug.cgi?id=43598 * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::placeholderValue): * accessibility/AccessibilityObject.h: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::title): * accessibility/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper accessibilityAttributeNames]): (-[AccessibilityObjectWrapper accessibilityAttributeValue:]): 2010-08-09 Ryosuke Niwa Reviewed by Justin Garcia. Undo fails in RemoveCSSPropertyCommand when the corresponding style attribute is removed https://bugs.webkit.org/show_bug.cgi?id=43639 The bug was caused when RemoveCSSPropertyCommand is called with CSSMutableStyleDeclaration of some styled element, and the style attribute of the element is removed subsequently. When the attribute removal is undone, new instance of CSSMutableStyleDeclaration is created and RemoveCSSPropertyCommand's m_style became detached from the element. Modified RemoveCSSPropertyCommand to store the styled element directly instead of its CSSMutableStyleDeclaration. Test: editing/undo/remove-css-property-and-remove-style.html * WebCore.order: * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::removeCSSStyle): Calls removeCSSProperty. (WebCore::ApplyStyleCommand::extractTextDecorationStyle): Calls removeCSSProperty. * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::removeCSSProperty): Takes StyledElement instead of CSSMutableStyleDeclaration. * editing/CompositeEditCommand.h: * editing/RemoveCSSPropertyCommand.cpp: (WebCore::RemoveCSSPropertyCommand::RemoveCSSPropertyCommand): Takes StyledElement instead of CSSMutableStyleDeclaration. (WebCore::RemoveCSSPropertyCommand::doApply): See above. (WebCore::RemoveCSSPropertyCommand::doUnapply): See above. * editing/RemoveCSSPropertyCommand.h: (WebCore::RemoveCSSPropertyCommand::create): See above. 2010-08-09 Ryosuke Niwa Reviewed by Tony Chang. Use getIdentifierValue to obtain direction and unicode-bidi properties in ApplyStyleCommand https://bugs.webkit.org/show_bug.cgi?id=43699 Deployed getIdentifierValue in various parts of ApplyStyleCommand where direction and unicode-bidi properties were obtained manually. No new tests since this is a cleanup. * editing/ApplyStyleCommand.cpp: (WebCore::getIdentifierValue): Takes CSSStyleDeclaration instead of CSSMutableStyleDeclaration. (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi): Calls getIdentifierValue. (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock): Calls getIdentifierValue. (WebCore::ApplyStyleCommand::applyInlineStyle): Calls getIdentifierValue. * editing/ApplyStyleCommand.h: 2010-08-09 Adam Barth Reviewed by Eric Seidel. Remove trailing whitespace in HTMLViewSourceDocument.cpp https://bugs.webkit.org/show_bug.cgi?id=43741 No behavior change. The whitespace was distracting me while porting this class to the new parser. * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createContainingTable): (WebCore::HTMLViewSourceDocument::addViewSourceToken): (WebCore::HTMLViewSourceDocument::addLine): (WebCore::HTMLViewSourceDocument::addText): (WebCore::HTMLViewSourceDocument::addLink): 2010-08-09 Eric Seidel Reviewed by Adam Barth. Use the HTML5 TreeBuilder for Fragment Parsing https://bugs.webkit.org/show_bug.cgi?id=43586 The bulk of this change is just a transcription of the HTML5 spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#fragment-case DocumentParser() now sets the right tokenizer state before handling fragments. Since default code path uses the HTML5 tokenizer with the legacy tree builder, this fixes 2 tokenizer-state tests for the html5lib. This fixes 2 more tree-builder tests when the html5 treebuilder is enabled too. * dom/DocumentFragment.cpp: (WebCore::DocumentFragment::parseHTML): - HTML5 implementation of fragment parsing requires the context element (parent) pointer. The legacy implementation handles all parsing branches which require the context element outside of the parser itself, which likely produces "wrong" results. We'll remove those branches when we turn on the HMTL5 fragment parser. (WebCore::DocumentFragment::parseXML): - Rename "parent" to "contextElement" to match the HTML path (and the HTML5 spec). * dom/DocumentFragment.h: * dom/Element.cpp: (WebCore::Element::createContextualFragment): - Pass the contextElement (this). * html/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::setForm): - Needed by for the fragment case. (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody): - I'm not sure this method should exist, it only has one caller. but for now, I've moved the fragment case FIXME out to the one caller and implemented it. * html/HTMLConstructionSite.h: * html/HTMLDocumentParser.cpp: (WebCore::HTMLNames::tokenizerStateForContextElement): - Part of the fragment case handling for the HTML5 parser. (WebCore::HTMLDocumentParser::HTMLDocumentParser): - Set the Tokenizer state based on the contextElement. (WebCore::HTMLDocumentParser::parseDocumentFragment): - Take a contextElement argument. * html/HTMLDocumentParser.h: * html/HTMLElement.cpp: (WebCore::HTMLElement::setInnerHTML): - Added a FIXME before the branches the old parser used to avoid ever needing to pass a context element when parsing HTML fragments. (WebCore::HTMLElement::insertAdjacentHTML): - Pass the context element. * html/HTMLTokenizer.h: * html/HTMLTreeBuilder.cpp: - I added a new helper class FragmentParsingContext to simplify the two HTMLTreeBuilder constructors and hide the existence of m_dummyDocumentForFragmentParse. - I also removed m_isParsingFragment and replaced it with an isParsingFragment() function. (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext): (WebCore::HTMLTreeBuilder::FragmentParsingContext::document): (WebCore::HTMLTreeBuilder::FragmentParsingContext::~FragmentParsingContext): (WebCore::HTMLTreeBuilder::passTokenToLegacyParser): (WebCore::HTMLTreeBuilder::processStartTagForInBody): - I had to implement two notImplemented() states in order to get most of the layout tests to pass when using the HTML5 parser fragment case. (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup): (WebCore::HTMLTreeBuilder::processStartTagForInTable): (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately): (WebCore::HTMLTreeBuilder::processEndTagForInTableBody): (WebCore::HTMLTreeBuilder::processEndTagForInRow): (WebCore::HTMLTreeBuilder::processEndTagForInCell): (WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption): (WebCore::HTMLTreeBuilder::processTrEndTagForInRow): (WebCore::HTMLTreeBuilder::processTableEndTagForInTable): (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::processCharacterBuffer): (WebCore::HTMLTreeBuilder::processEndOfFile): (WebCore::HTMLTreeBuilder::finished): - The HTML5 parsing algorithm fragment case uses a dummy document to handle all the parsing and then moves all the children from the dummy document over into a DocumentFragment when the parse is done. We could avoid this adopt step by making the TreeBuilder a bit more complicated, but I'm not sure that's necessary (yet). * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::isParsingFragment): (WebCore::HTMLTreeBuilder::FragmentParsingContext::fragment): (WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElement): (WebCore::HTMLTreeBuilder::FragmentParsingContext::scriptingPermission): * xml/XSLTProcessor.cpp: (WebCore::createFragmentFromSource): 2010-08-09 Dumitru Daniliuc Reviewed by Adam Barth. Auto-generate most HTML5 DB bindings. https://bugs.webkit.org/show_bug.cgi?id=43382 * Android.jscbindings.mk: Remove {JS|V8}Database{Sync}Custom.cpp and the custom implementations of openDatabase{Sync}(). * Android.v8bindings.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSBindingsAllInOne.cpp: * bindings/js/JSDOMWindowCustom.cpp: * bindings/js/JSDatabaseCustom.cpp: Removed. * bindings/js/JSDatabaseSyncCustom.cpp: Removed. * bindings/js/JSWorkerContextCustom.cpp: * bindings/v8/custom/V8DOMWindowCustom.cpp: * bindings/v8/custom/V8DatabaseCustom.cpp: Removed. * bindings/v8/custom/V8DatabaseSyncCustom.cpp: Removed. * bindings/v8/custom/V8WorkerContextCustom.cpp: * bindings/scripts/CodeGeneratorGObject.pm: Change the code generators to check that each value can be converted to the respective argument type. * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/CodeGeneratorV8.pm: * bindings/scripts/test/JS/JSTestCallback.cpp: (WebCore::JSTestCallback::~JSTestCallback): * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs): (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs): (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs): (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgs): (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows): (WebCore::jsTestObjPrototypeFunctionSerializedValue): (WebCore::jsTestObjPrototypeFunctionIdbKey): (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException): (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg): (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg): (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture): (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD): (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg): (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg): (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs): (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg): (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg): (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4): * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjInternal::voidMethodWithArgsCallback): (WebCore::TestObjInternal::intMethodWithArgsCallback): (WebCore::TestObjInternal::objMethodWithArgsCallback): (WebCore::TestObjInternal::methodThatRequiresAllArgsCallback): (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback): (WebCore::TestObjInternal::idbKeyCallback): (WebCore::TestObjInternal::customArgsAndExceptionCallback): (WebCore::TestObjInternal::withDynamicFrameAndArgCallback): (WebCore::TestObjInternal::withDynamicFrameAndOptionalArgCallback): (WebCore::TestObjInternal::withDynamicFrameAndUserGestureCallback): (WebCore::TestObjInternal::withDynamicFrameAndUserGestureASADCallback): (WebCore::TestObjInternal::methodWithOptionalArgCallback): (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback): (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback): (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback): (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback): (WebCore::TestObjInternal::overloadedMethod1Callback): (WebCore::TestObjInternal::overloadedMethod2Callback): (WebCore::TestObjInternal::overloadedMethod3Callback): (WebCore::TestObjInternal::overloadedMethod4Callback): (WebCore::): (WebCore::ConfigureV8TestObjTemplate): * bindings/v8/custom/V8BindingMacros.h: * bindings/v8/V8Binding.h: Minor changes required to support the auto-generated bindings. (WebCore::V8Parameter::V8Parameter): * bindings/v8/custom/V8SQLTransactionCustom.cpp: (WebCore::V8SQLTransaction::executeSqlCallback): * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp: (WebCore::V8SQLTransactionSync::executeSqlCallback): * page/DOMWindow.idl: * storage/Database.cpp: (WebCore::Database::transaction): (WebCore::Database::readTransaction): (WebCore::Database::runTransaction): * storage/Database.h: * storage/Database.idl: * storage/DatabaseSync.cpp: (WebCore::DatabaseSync::transaction): (WebCore::DatabaseSync::readTransaction): (WebCore::DatabaseSync::runTransaction): * storage/DatabaseSync.h: * storage/DatabaseSync.idl: * workers/WorkerContext.idl: 2010-08-09 Adam Barth Reviewed by Eric Seidel. Move HTMLViewSourceDocument from legacyParserAddChild to parserAddChild https://bugs.webkit.org/show_bug.cgi?id=43740 This removes the DTD checks, which aren't needed for view source documents. * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createContainingTable): (WebCore::HTMLViewSourceDocument::addSpanWithClassName): (WebCore::HTMLViewSourceDocument::addLine): (WebCore::HTMLViewSourceDocument::addText): (WebCore::HTMLViewSourceDocument::addLink): 2010-08-09 Dan Bernstein Reviewed by Simon Fraser. Fixed an uninitialized member variable in the Color(CGColorRef) constructor. * platform/graphics/cg/ColorCG.cpp: (WebCore::Color::Color): Initialize m_valid to true if the color is not 0. 2010-08-09 James Robinson Chromium compile fix, unreviewed. * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::~PlatformContextSkia): (WebCore::PlatformContextSkia::setGraphicsContext3D): 2010-08-09 James Robinson Reviewed by Dimitri Glazkov. [chromium] Add a PrepareTextureCallback to the chromium canvas layer compositor to upload mixed-mode results before compositing https://bugs.webkit.org/show_bug.cgi?id=43656 When compositing an accelerated canvas that is using both hardware and software drawing, we need a callback before compositing the layer to make sure that we upload any software drawn results to the texture. This will go away as soon as implement all draw calls in hardware. To test, run any canvas demo that runs in mixed mode and verifies that the software results always show up. * platform/graphics/chromium/CanvasLayerChromium.cpp: (WebCore::CanvasLayerChromium::updateTextureContents): * platform/graphics/chromium/CanvasLayerChromium.h: (WebCore::CanvasLayerChromium::setPrepareTextureCallback): * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PrepareTextureCallbackImpl::create): (WebCore::PrepareTextureCallbackImpl::willPrepareTexture): (WebCore::PrepareTextureCallbackImpl::PrepareTextureCallbackImpl): (WebCore::PlatformContextSkia::setGraphicsContext3D): 2010-08-09 Zhenyao Mo Reviewed by David Levin. sizeInBytes should be removed https://bugs.webkit.org/show_bug.cgi?id=43693 * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::sizeInBytes): Don't generate GL errors. Generate them in the callers instead. (WebCore::WebGLRenderingContext::vertexAttribPointer): Generate GL error if sizeInBytes fails. * html/canvas/WebGLRenderingContext.h: Make sizeInBytes private helper. * html/canvas/WebGLRenderingContext.idl: Remove sizeInBytes. 2010-08-09 Eric Carlson Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=43702