2010-01-29 Mark Rowe Fix the Mac build. Disable ENABLE_INDEXED_DATABASE since it is "completely non-functional". As the comment in FeatureDefines.xcconfig notes, the list of feature defines needs to be kept in sync across the various files. The default values also need to be kept in sync between these files and build-webkit. * Configurations/FeatureDefines.xcconfig: 2010-01-29 Steve Falkenburg Reviewed by Darin Adler. Timeout for client-based Geolocation shouldn't start until user gives consent https://bugs.webkit.org/show_bug.cgi?id=34352 * page/Geolocation.cpp: (WebCore::Geolocation::startRequest): Don't start timer if we're blocked on user consent. (WebCore::Geolocation::setIsAllowed): Start timer after user gives consent. 2010-01-29 Jakob Petsovits Reviewed by Nikolas Zimmermann. [OpenVG] Implement more graphics primitives https://bugs.webkit.org/show_bug.cgi?id=34339 Adds lines, arcs, ellipses, polygons and rounded rectangles to PainterOpenVG and GraphicsContext. Rounded rects support by Eli Fidler . * platform/graphics/openvg/GraphicsContextOpenVG.cpp: (WebCore::GraphicsContext::drawLine): (WebCore::GraphicsContext::drawEllipse): (WebCore::GraphicsContext::strokeArc): (WebCore::GraphicsContext::drawConvexPolygon): (WebCore::GraphicsContext::fillRect): (WebCore::GraphicsContext::fillRoundedRect): (WebCore::GraphicsContext::drawFocusRing): (WebCore::GraphicsContext::drawLineForText): (WebCore::GraphicsContext::clearRect): (WebCore::GraphicsContext::strokeRect): * platform/graphics/openvg/PainterOpenVG.cpp: (WebCore::PainterOpenVG::drawRect): (WebCore::PainterOpenVG::drawRoundedRect): (WebCore::PainterOpenVG::drawLine): (WebCore::PainterOpenVG::drawArc): (WebCore::PainterOpenVG::drawEllipse): (WebCore::PainterOpenVG::drawPolygon): * platform/graphics/openvg/PainterOpenVG.h: 2010-01-29 Jeremy Orlow Reviewed by Dimitri Glazkov. A first step towards the Indexed Database API https://bugs.webkit.org/show_bug.cgi?id=34342 Flesh out the first part of Indexed Database API. Currently only compiles with v8 + chromium for now. Completely non-functional, but it seems best to do this in chunks. No tests because nothing works yet. * Configurations/FeatureDefines.xcconfig: * WebCore.gypi: * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/DOMObjectsInclude.h: * bindings/v8/DerivedSourcesAllInOne.cpp: * bindings/v8/RuntimeEnabledFeatures.cpp: * bindings/v8/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setIndexedDatabaseEnabled): (WebCore::RuntimeEnabledFeatures::indexedDatabaseEnabled): * bindings/v8/V8Index.cpp: * bindings/v8/V8Index.h: * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::V8DOMWindow::IndexedDBEnabled): * bindings/v8/custom/V8IDBRequestCustom.cpp: Added. (WebCore::V8IDBRequest::resultAccessorGetter): * bindings/v8/custom/V8IndexedDatabaseRequestCustom.cpp: Added. (WebCore::V8IndexedDatabaseRequest::openCallback): * dom/EventNames.h: * page/DOMWindow.cpp: (WebCore::DOMWindow::indexedDB): * page/DOMWindow.h: * page/DOMWindow.idl: * storage/IDBDatabaseError.h: Added. (WebCore::IDBDatabaseError::create): (WebCore::IDBDatabaseError::~IDBDatabaseError): (WebCore::IDBDatabaseError::code): (WebCore::IDBDatabaseError::setCode): (WebCore::IDBDatabaseError::message): (WebCore::IDBDatabaseError::setMessage): (WebCore::IDBDatabaseError::IDBDatabaseError): * storage/IDBDatabaseError.idl: Added. * storage/IDBDatabaseException.h: Added. (WebCore::IDBDatabaseException::create): (WebCore::IDBDatabaseException::~IDBDatabaseException): (WebCore::IDBDatabaseException::code): (WebCore::IDBDatabaseException::setCode): (WebCore::IDBDatabaseException::message): (WebCore::IDBDatabaseException::setMessage): (WebCore::IDBDatabaseException::IDBDatabaseException): * storage/IDBDatabaseException.idl: Added. * storage/IDBRequest.cpp: Added. (WebCore::IDBRequest::IDBRequest): (WebCore::IDBRequest::~IDBRequest): (WebCore::IDBRequest::abort): (WebCore::IDBRequest::eventTargetData): (WebCore::IDBRequest::ensureEventTargetData): * storage/IDBRequest.h: Added. (WebCore::IDBRequest::create): (WebCore::IDBRequest::readyState): (WebCore::IDBRequest::error): (WebCore::IDBRequest::result): (WebCore::IDBRequest::scriptExecutionContext): (WebCore::IDBRequest::toIDBRequest): (WebCore::IDBRequest::refEventTarget): (WebCore::IDBRequest::derefEventTarget): * storage/IDBRequest.idl: Added. * storage/IndexedDatabaseRequest.cpp: Added. (WebCore::IndexedDatabaseRequest::IndexedDatabaseRequest): (WebCore::IndexedDatabaseRequest::~IndexedDatabaseRequest): (WebCore::IndexedDatabaseRequest::open): * storage/IndexedDatabaseRequest.h: Added. (WebCore::IndexedDatabaseRequest::create): (WebCore::IndexedDatabaseRequest::request): * storage/IndexedDatabaseRequest.idl: Added. 2010-01-29 Brian Weinstein Reviewed by Adam Roben. Drag and Drop: Windows uses "stop" sign as cursor when dragging https://bugs.webkit.org/show_bug.cgi?id=34305 Add a FIXME for the code that needs to be changed to support full custom cursors. * page/EventHandler.cpp: (WebCore::EventHandler::handleDrag): 2010-01-29 Victor Wang Reviewed by darin@apple.com. Fix the issue that both main frome and iframe are focused if window.onblur calls window.focus. https://bugs.webkit.org/show_bug.cgi?id=31692 The problem is caused by the focused frame in FocusController is messed up if window.onblur calls window.focus: When user clicks iframe to switch focus from main frame to iframe, FocusController::setFocusedFrame fires onblur event, which calls window.focus and then calls setFocusedFrame again to switch back. This messes up the old focused frame and new focused frame and leaves the FocusController confused. As a result, controlls in both main frame and iframe look like get focused. To fix it, add a flag to FocusController and do no switch the focused frame when FocusController is in the middle of changing the focused frame. Test: fast/events/change-frame-focus.html * page/FocusController.cpp: (WebCore::FocusController::FocusController): (WebCore::FocusController::setFocusedFrame): * page/FocusController.h: (WebCore::FocusController::focusedFrame): (WebCore::FocusController::isActive): (WebCore::FocusController::isFocused): 2010-01-29 Alexey Proskuryakov Reviewed by Dan Bernstein. REGRESSION (TOT): Adobe CS4: Installer alerts are displayed as blank windows We probably shouldn't be deferring loads below modal dialogs and alerts, because that's not what being modal means. But making such a change for general Web content would require fixes in other parts of code, which I'm not ready to implement right now, so making it application specific. * page/Page.cpp: (WebCore::Page::setDefersLoading): Do nothing if load deferring is not enabled in page settings. * WebCore.base.exp: * page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setLoadDeferringEnabled): * page/Settings.h: (WebCore::Settings::loadDeferringEnabled): Add the ability for client to disable page deferring (still enabled by default). * platform/mac/RuntimeApplicationChecks.h: * platform/mac/RuntimeApplicationChecks.mm: (WebCore::applicationIsAdobeInstaller): Added a bundle ID test for Adobe installer. 2010-01-29 Steve Falkenburg Build fix. * page/Geolocation.cpp: (WebCore::Geolocation::startUpdating): 2010-01-29 Steve Falkenburg Reviewed by Darin Adler. Client-based Geolocation starts updating before getting consent from the user https://bugs.webkit.org/show_bug.cgi?id=34343 * page/Geolocation.cpp: (WebCore::Geolocation::startRequest): Pass notifier instead of options to startUpdating. (WebCore::Geolocation::setIsAllowed): Add the observer or notify of error for deferred startUpdating. (WebCore::Geolocation::startUpdating): Pass notifier instead of options, since we may need to call it if we fail to get user consent. Defer adding the observer if we don't yet have user consent, since this could kick off server-based wifi Geolocation requests. * page/Geolocation.h: 2010-01-28 Jon Honeycutt MSAA: Crash when posting a notification for a detached object https://bugs.webkit.org/show_bug.cgi?id=34309 Reviewed by Darin Adler. Test: platform/win/accessibility/detached-object-notification-crash.html * accessibility/AccessibilityRenderObject.cpp: (AccessibilityRenderObject::document): Null check m_renderer. This is the bug fix; the other changes in the patch are for the test. * accessibility/win/AXObjectCacheWin.cpp: (WebCore::AXObjectCache::postPlatformNotification): Map AXValueChanged to EVENT_OBJECT_VALUECHANGED, so we'll post a notification when AXValueChanged is posted. Receiving an event of this type tells us that the test passed. 2010-01-29 Darin Fisher Okayed by Oliver Hunt. Rollout r53949, r53951 and r54013 due to a Chromium regression that it causes. Somehow this code change is triggering an endless repaint loop. https://bugs.webkit.org/show_bug.cgi?id=33808 * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawTiledImage): * platform/graphics/GraphicsContext.h: * platform/graphics/transforms/TransformationMatrix.h: (WebCore::TransformationMatrix::isIdentityOrTranslation): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::~RenderBoxModelObject): (WebCore::RenderBoxModelObject::paintFillLayerExtended): * rendering/RenderBoxModelObject.h: 2010-01-29 Tony Chang Reviewed by Darin Adler. Add gdb helper methods for Ranges like we have for VisibleSelections. https://bugs.webkit.org/show_bug.cgi?id=34308 No new tests, these are only for debugging. * dom/Position.cpp: (WebCore::Position::showTreeForThis): * dom/Range.cpp: (showTree): * dom/Range.h: 2010-01-29 Drew Wilson Reviewed by Adam Barth. V8 implementation of MessageEvent.initMessageEvent() does not set source correctly. https://bugs.webkit.org/show_bug.cgi?id=34292 Test: fast/events/init-events.html will pass in Chrome now. * bindings/v8/custom/V8MessageEventCustom.cpp: (WebCore::V8MessageEvent::initMessageEventCallback): Now properly extracts the reference to the DOMWindow object from the passed-in window parameter. 2010-01-29 Ben Murdoch Reviewed by Dimitri Glazkov. [Android] Android needs functionality in the ChromeClient to be informed when touch events are and are not needed by the webpage. https://bugs.webkit.org/show_bug.cgi?id=34215 Add a function on the ChromeClient that WebCore can use to inform the platform when it needs touch events. This way the platform can optimise by not forwarding the events if they are not required. No new tests as the only implementation is specific to Android. * dom/Document.cpp: (WebCore::Document::detach): Check if this is the top level document and if so, stop forwarding touch events. (WebCore::Document::addListenerTypeIfNeeded): Inform the ChromeClient it should start forwarding touch events and guard touch event code properly. * history/CachedFrame.cpp: (WebCore::CachedFrameBase::restore): If the document uses touch events, inform the ChromeClient to start forwarding them. (WebCore::CachedFrame::CachedFrame): If the document uses touch events, inform the ChromeClient to stop forwarding them, as the document is being put into the page cache. * loader/EmptyClients.h: (WebCore::EmptyChromeClient::needTouchEvents): Add an empty implementation. * page/ChromeClient.h: Add the needTouchEvents() function. 2010-01-29 Alexander Pavlov Reviewed by Pavel Feldman. Fix toolbar gradient to match the window's titlebar on Snow Leopard https://bugs.webkit.org/show_bug.cgi?id=34320 * inspector/front-end/inspector.css: 2010-01-29 Alexander Pavlov Reviewed by Pavel Feldman. Fix MacOS X version detection MacOS X version can have 2 or 3 segments. https://bugs.webkit.org/show_bug.cgi?id=34322 * inspector/front-end/inspector.js: (WebInspector._detectPlatform): 2010-01-29 Jakob Petsovits Reviewed by Nikolas Zimmermann. [OpenVG] Implement a basic GraphicsContext on top of a new PainterOpenVG class https://bugs.webkit.org/show_bug.cgi?id=33405 PainterOpenVG provides painter state management that works on a single (EGL) context, and apart from painter state implements a single drawing operation (for now), drawRect(). It is a generic painter class that cooperates with SurfaceOpenVG to enable robust surface/context switching (given that EGL doesn't notify us if somebody switches the surface/context behind our backs), and provides painting operations close to OpenVG's way of working that GraphicsContext, Path, Image, Font and other WebKit platform classes can use to draw on. Initial code for state management and OpenVG scissoring by Eli Fidler . VGRect/VGMatrix and the bulk of the transformations code by Adam Treat . Preliminary drawFocusRing() implementation by Yong Li . * platform/graphics/FloatRect.h: * platform/graphics/GraphicsContext.cpp: * platform/graphics/GraphicsContext.h: * platform/graphics/openvg/GraphicsContextOpenVG.cpp: Added. (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): (WebCore::GraphicsContext::GraphicsContext): (WebCore::GraphicsContext::~GraphicsContext): (WebCore::GraphicsContext::platformContext): (WebCore::GraphicsContext::getCTM): (WebCore::GraphicsContext::savePlatformState): (WebCore::GraphicsContext::restorePlatformState): (WebCore::GraphicsContext::drawRect): (WebCore::GraphicsContext::drawLine): (WebCore::GraphicsContext::drawEllipse): (WebCore::GraphicsContext::strokeArc): (WebCore::GraphicsContext::drawConvexPolygon): (WebCore::GraphicsContext::fillPath): (WebCore::GraphicsContext::strokePath): (WebCore::GraphicsContext::fillRect): (WebCore::GraphicsContext::fillRoundedRect): (WebCore::GraphicsContext::beginPath): (WebCore::GraphicsContext::addPath): (WebCore::GraphicsContext::clip): (WebCore::GraphicsContext::clipPath): (WebCore::GraphicsContext::drawFocusRing): (WebCore::GraphicsContext::drawLineForText): (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): (WebCore::GraphicsContext::roundToDevicePixels): (WebCore::GraphicsContext::setPlatformShadow): (WebCore::GraphicsContext::clearPlatformShadow): (WebCore::GraphicsContext::beginTransparencyLayer): (WebCore::GraphicsContext::endTransparencyLayer): (WebCore::GraphicsContext::clearRect): (WebCore::GraphicsContext::strokeRect): (WebCore::GraphicsContext::setLineCap): (WebCore::GraphicsContext::setLineDash): (WebCore::GraphicsContext::setLineJoin): (WebCore::GraphicsContext::setMiterLimit): (WebCore::GraphicsContext::setAlpha): (WebCore::GraphicsContext::setCompositeOperation): (WebCore::GraphicsContext::canvasClip): (WebCore::GraphicsContext::clipOut): (WebCore::GraphicsContext::scale): (WebCore::GraphicsContext::rotate): (WebCore::GraphicsContext::translate): (WebCore::GraphicsContext::origin): (WebCore::GraphicsContext::clipOutEllipseInRect): (WebCore::GraphicsContext::clipToImageBuffer): (WebCore::GraphicsContext::addInnerRoundedRectClip): (WebCore::GraphicsContext::concatCTM): (WebCore::GraphicsContext::setURLForRect): (WebCore::GraphicsContext::setPlatformStrokeColor): (WebCore::GraphicsContext::setPlatformStrokeStyle): (WebCore::GraphicsContext::setPlatformStrokeThickness): (WebCore::GraphicsContext::setPlatformFillColor): (WebCore::GraphicsContext::setPlatformShouldAntialias): (WebCore::GraphicsContext::setImageInterpolationQuality): (WebCore::GraphicsContext::imageInterpolationQuality): * platform/graphics/openvg/PainterOpenVG.cpp: Added. (WebCore::isNonRotatedAffineTransformation): (WebCore::toVGCapStyle): (WebCore::toVGJoinStyle): (WebCore::toVGFillRule): (WebCore::colorToVGColor): (WebCore::setVGSolidColor): (WebCore::PlatformPainterState::PlatformPainterState): (WebCore::PlatformPainterState::copyPaintState): (WebCore::PlatformPainterState::applyState): (WebCore::PlatformPainterState::applyBlending): (WebCore::PlatformPainterState::applyTransformationMatrix): (WebCore::PlatformPainterState::applyScissorRect): (WebCore::PlatformPainterState::applyStrokeStyle): (WebCore::PlatformPainterState::strokeDisabled): (WebCore::PlatformPainterState::fillDisabled): (WebCore::PainterOpenVG::PainterOpenVG): (WebCore::PainterOpenVG::~PainterOpenVG): (WebCore::PainterOpenVG::begin): (WebCore::PainterOpenVG::end): (WebCore::PainterOpenVG::destroyPainterStates): (WebCore::PainterOpenVG::applyState): (WebCore::PainterOpenVG::blitToSurface): (WebCore::PainterOpenVG::transformationMatrix): (WebCore::PainterOpenVG::concatTransformationMatrix): (WebCore::PainterOpenVG::setTransformationMatrix): (WebCore::PainterOpenVG::compositeOperation): (WebCore::PainterOpenVG::setCompositeOperation): (WebCore::PainterOpenVG::opacity): (WebCore::PainterOpenVG::setOpacity): (WebCore::PainterOpenVG::strokeThickness): (WebCore::PainterOpenVG::setStrokeThickness): (WebCore::PainterOpenVG::strokeStyle): (WebCore::PainterOpenVG::setStrokeStyle): (WebCore::PainterOpenVG::setLineDash): (WebCore::PainterOpenVG::setLineCap): (WebCore::PainterOpenVG::setLineJoin): (WebCore::PainterOpenVG::setMiterLimit): (WebCore::PainterOpenVG::strokeColor): (WebCore::PainterOpenVG::setStrokeColor): (WebCore::PainterOpenVG::fillColor): (WebCore::PainterOpenVG::setFillColor): (WebCore::PainterOpenVG::antialiasingEnabled): (WebCore::PainterOpenVG::setAntialiasingEnabled): (WebCore::PainterOpenVG::scale): (WebCore::PainterOpenVG::rotate): (WebCore::PainterOpenVG::translate): (WebCore::PainterOpenVG::intersectScissorRect): (WebCore::PainterOpenVG::intersectClipRect): (WebCore::PainterOpenVG::drawRect): (WebCore::PainterOpenVG::save): (WebCore::PainterOpenVG::restore): * platform/graphics/openvg/PainterOpenVG.h: Added. (WebCore::PainterOpenVG::): (WebCore::PainterOpenVG::surface): * platform/graphics/openvg/SurfaceOpenVG.cpp: (WebCore::SurfaceOpenVG::SurfaceOpenVG): (WebCore::SurfaceOpenVG::~SurfaceOpenVG): (WebCore::SurfaceOpenVG::makeCurrent): (WebCore::SurfaceOpenVG::makeCompatibleCurrent): (WebCore::SurfaceOpenVG::setActivePainter): (WebCore::SurfaceOpenVG::activePainter): * platform/graphics/openvg/SurfaceOpenVG.h: (WebCore::SurfaceOpenVG::): * platform/graphics/openvg/VGUtils.cpp: Added. (WebCore::VGMatrix::VGMatrix): (WebCore::VGMatrix::operator TransformationMatrix): (WebCore::TransformationMatrix::operator VGMatrix): (WebCore::VGRect::VGRect): (WebCore::VGRect::operator FloatRect): (WebCore::FloatRect::operator VGRect): * platform/graphics/openvg/VGUtils.h: (WebCore::VGMatrix::toVGfloat): (WebCore::VGRect::toVGfloat): * platform/graphics/transforms/TransformationMatrix.h: 2010-01-29 Philippe Normand Reviewed by Gustavo Noronha Silva. [Gtk] Vimeo HTML5 player doesn't work https://bugs.webkit.org/show_bug.cgi?id=34327 Send Referer when requesting media over HTTP. Test: http/tests/media/video-referer.html * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: (WebCore::mediaPlayerPrivateSourceChangedCallback): 2010-01-29 Oswald Buddenhagen Reviewed by Simon Hausmann. [Qt] Speed up the WebCore::String -> QString conversion Use QString(const QChar *, int len) constructor instead of QString::fromUtf16 to avoid BOM checks and byteswapping. * bridge/qt/qt_class.cpp: (JSC::Bindings::QtClass::fieldNamed): * bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertValueToQVariant): 2010-01-29 Alexander Pavlov Reviewed by Timothy Hatcher. Web Inspector: Source view displays text using wrong fonts https://bugs.webkit.org/show_bug.cgi?id=34269 * inspector/front-end/TextEditor.js: (WebInspector.TextEditor): (WebInspector.TextEditor.prototype._initFont): * inspector/front-end/inspector.js: 2010-01-29 Philippe Normand Reviewed by Gustavo Noronha Silva. [Gtk] Apple trailers don't play anymore https://bugs.webkit.org/show_bug.cgi?id=34316 Fake QuickTime when accessing movie trailers. * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: (WebCore::mediaPlayerPrivateSourceChangedCallback): 2010-01-29 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: migrate to tokenizer-based highlighting in the Elements panel. https://bugs.webkit.org/show_bug.cgi?id=34273 * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/CSSSourceSyntaxHighlighter.js: Removed. * inspector/front-end/DOMSyntaxHighlighter.js: Added. (WebInspector.DOMSyntaxHighlighter): (WebInspector.DOMSyntaxHighlighter.prototype.createSpan): (WebInspector.DOMSyntaxHighlighter.prototype.syntaxHighlightNode): * inspector/front-end/ElementsTreeOutline.js: * inspector/front-end/JavaScriptSourceSyntaxHighlighter.js: Removed. * inspector/front-end/SourceCSSTokenizer.js: (WebInspector.SourceCSSTokenizer): (WebInspector.SourceCSSTokenizer.prototype.nextToken): * inspector/front-end/SourceCSSTokenizer.re2js: * inspector/front-end/SourceHTMLTokenizer.js: (WebInspector.SourceHTMLTokenizer): (WebInspector.SourceHTMLTokenizer.prototype.nextToken): * inspector/front-end/SourceHTMLTokenizer.re2js: * inspector/front-end/SourceJavaScriptTokenizer.js: (WebInspector.SourceJavaScriptTokenizer): (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken): * inspector/front-end/SourceJavaScriptTokenizer.re2js: * inspector/front-end/SourceSyntaxHighlighter.js: Removed. * inspector/front-end/SourceTokenizer.js: Added. (WebInspector.SourceTokenizer): (WebInspector.SourceTokenizer.prototype.set line): (WebInspector.SourceTokenizer.prototype.set condition): (WebInspector.SourceTokenizer.prototype.get condition): (WebInspector.SourceTokenizer.prototype.hasCondition): (WebInspector.SourceTokenizer.prototype.getLexCondition): (WebInspector.SourceTokenizer.prototype.setLexCondition): (WebInspector.SourceTokenizer.prototype._charAt): (WebInspector.SourceTokenizer.Registry): (WebInspector.SourceTokenizer.Registry.getInstance): (WebInspector.SourceTokenizer.Registry.prototype.getTokenizer): * inspector/front-end/TextEditorHighlighter.js: (WebInspector.TextEditorHighlighter): (WebInspector.TextEditorHighlighter.prototype.set mimeType): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: 2010-01-29 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: No need to render background sources when performing search. https://bugs.webkit.org/show_bug.cgi?id=34263 * inspector/front-end/ScriptView.js: (WebInspector.ScriptView): (WebInspector.ScriptView.prototype.show): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame): (WebInspector.SourceFrame.prototype.set visible): (WebInspector.SourceFrame.prototype.set executionLine): (WebInspector.SourceFrame.prototype.revealLine): (WebInspector.SourceFrame.prototype.clearMessages): (WebInspector.SourceFrame.prototype.sizeToFitContentHeight): (WebInspector.SourceFrame.prototype.setContent): (WebInspector.SourceFrame.prototype._createEditorIfNeeded): (WebInspector.SourceFrame.prototype.setSelection): (WebInspector.SourceFrame.prototype.clearSelection): (WebInspector.SourceFrame.prototype._contextMenu.addConditionalBreakpoint): (WebInspector.SourceFrame.prototype._contextMenu): (WebInspector.SourceFrame.prototype._toggleBreakpoint): (WebInspector.SourceFrame.prototype.resize): (WebInspector.BreakpointLineNumberDecorator): * inspector/front-end/SourceView.js: (WebInspector.SourceView): (WebInspector.SourceView.prototype.show): (WebInspector.SourceView.prototype.hide): (WebInspector.SourceView.prototype.resize): * inspector/front-end/TextEditor.js: (WebInspector.TextEditor): * inspector/front-end/TextEditorHighlighter.js: (WebInspector.TextEditorHighlighter): * inspector/front-end/TextEditorModel.js: (WebInspector.TextEditorModel): (WebInspector.TextEditorModel.prototype.set changeListener): (WebInspector.TextEditorModel.prototype.setText): 2010-01-29 Yury Semikhatsky Reviewed by Adam Barth. Remove ScriptState::frame which is only used for reporting exceptions in some cases in a way that diverges from the regular exception reporting in v8 bindings. Cache ScriptState directly on v8::Context instead of providing implementations specific for isolated worlds and ScriptController. https://bugs.webkit.org/show_bug.cgi?id=34266 * bindings/js/ScriptController.cpp: * bindings/js/ScriptController.h: * bindings/js/ScriptState.cpp: (WebCore::mainWorldScriptState): * bindings/js/ScriptState.h: * bindings/v8/ScriptCallStack.cpp: (WebCore::ScriptCallStack::ScriptCallStack): * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::evaluate): (WebCore::ScriptController::clearWindowShell): * bindings/v8/ScriptController.h: * bindings/v8/ScriptScope.cpp: (WebCore::ScriptScope::ScriptScope): (WebCore::ScriptScope::success): * bindings/v8/ScriptScope.h: * bindings/v8/ScriptState.cpp: (WebCore::ScriptState::ScriptState): (WebCore::ScriptState::forContext): (WebCore::ScriptState::current): (WebCore::ScriptState::weakReferenceCallback): (WebCore::mainWorldScriptState): (WebCore::scriptStateFromPage): * bindings/v8/ScriptState.h: (WebCore::ScriptState::ScriptState): (WebCore::EmptyScriptState::EmptyScriptState): (WebCore::EmptyScriptState::~EmptyScriptState): * bindings/v8/V8HiddenPropertyName.h: * bindings/v8/V8IsolatedContext.cpp: * bindings/v8/V8IsolatedContext.h: * bindings/v8/V8Utilities.cpp: (WebCore::getScriptExecutionContext): (WebCore::reportException): * bindings/v8/custom/V8NodeIteratorCustom.cpp: (WebCore::V8NodeIterator::nextNodeCallback): (WebCore::V8NodeIterator::previousNodeCallback): * bindings/v8/custom/V8TreeWalkerCustom.cpp: (WebCore::V8TreeWalker::parentNodeCallback): (WebCore::V8TreeWalker::firstChildCallback): (WebCore::V8TreeWalker::lastChildCallback): (WebCore::V8TreeWalker::nextNodeCallback): (WebCore::V8TreeWalker::previousNodeCallback): (WebCore::V8TreeWalker::nextSiblingCallback): (WebCore::V8TreeWalker::previousSiblingCallback): * inspector/InspectorController.cpp: (WebCore::InspectorController::injectedScriptForNodeId): 2010-01-29 Darin Fisher Reviewed by Adam Barth. Add FrameLoaderClient::allowImages method to allow the client to overrule image loading policy on a per frame basis. https://bugs.webkit.org/show_bug.cgi?id=34225 For completeness, this patch also adds Settings::areImagesEnabled. This is different from loadsImagesAutomatically as is explained in Settings.h. * loader/DocLoader.cpp: (WebCore::DocLoader::requestImage): * loader/FrameLoaderClient.h: (WebCore::FrameLoaderClient::allowImages): * loader/ImageDocument.cpp: (WebCore::ImageTokenizer::writeRawData): * page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setImagesEnabled): * page/Settings.h: (WebCore::Settings::areImagesEnabled): 2010-01-28 Nicholas Young Reviewed by Eric Carlson. Prefer provided video element width/height properties to hard coded defaults for intrinsic size when natural video size is unavailable. https://bugs.webkit.org/show_bug.cgi?id=34302 No new tests needed. * rendering/RenderVideo.cpp: Attempt to use width/height properties (WebCore::RenderVideo::RenderVideo): * rendering/RenderVideo.h: More appropriate constructor signature 2010-01-28 Oliver Hunt Reviewed by Gavin Barraclough. MessageEvent.data should not be repeated deserialised https://bugs.webkit.org/show_bug.cgi?id=34311 Cache the result of deserialising the event data * bindings/scripts/CodeGeneratorJS.pm: * dom/MessageEvent.idl: 2010-01-28 Hayato Ito Reviewed by Darin Adler. Change CSS 'page-break-inside' property from inherited one to non-inherited one because CSS specification defines so. Note: Currently, the 'page-break-inside' property is used only when parsing the CSS. That property is not used when rendering. https://bugs.webkit.org/show_bug.cgi?id=34195 * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::NonInheritedFlags::operator==): (WebCore::InheritedFlags::setBitDefaults): (WebCore::InheritedFlags::pageBreakInside): (WebCore::InheritedFlags::setPageBreakInside): * rendering/style/StyleInheritedData.cpp: (WebCore::StyleInheritedData::StyleInheritedData): (WebCore::StyleInheritedData::operator==): * rendering/style/StyleInheritedData.h: 2010-01-28 Michael Nordman Reviewed by Alexey Proskuryakov. ApplicationCache events should be deferred until after Document onload has fired. https://bugs.webkit.org/show_bug.cgi?id=29690 Test: http/tests/appcache/deferred-events.html * loader/FrameLoader.cpp: (WebCore::FrameLoader::handledOnloadEvents): Tells the ApplicationCacheHost to stop deferring events. * loader/appcache/ApplicationCacheHost.cpp: (WebCore::ApplicationCacheHost::ApplicationCacheHost): Initialize m_isDeferringEvents to true. (WebCore::ApplicationCacheHost::notifyDOMApplicationCache): Depending, defer or raise the event. (WebCore::ApplicationCacheHost::stopDeferringEvents): Raise any deferred events and reset the flag. * loader/appcache/ApplicationCacheHost.h: Declare new data members and method. 2010-01-28 Kavita Kanetkar Reviewed by Dimitri Glazkov. [V8] Generate header declaration for custom constructor callbacks https://bugs.webkit.org/show_bug.cgi?id=33680 Added handling of 'CanBeConstructed' and 'OmitConstructor' and a new extended attribute CustomConstructor'. Deleted implementation .cpp files for corresponding 'CanBeConstructed' extended attributes. These are now generated via CodeGeneratorV8.pm Treating 'OmitConstructor' and 'CustomConstructor' to be the same in CodeGeneratorJS.pm Cleaned idls that had 'CustomConstructor' and 'OmitConstructor' together, and same with CustomConstructor and CanBeConstructed. * Android.v8bindings.mk: * WebCore.gypi: Removed deps for classes being generated. * bindings/scripts/CodeGeneratorJS.pm: OmitConstructor and CustomConstructor have the same behavior in generator. * bindings/scripts/CodeGeneratorV8.pm: Generating the callbacks for constructors. * bindings/v8/V8DOMWrapper.cpp: Removed manual calls to SetCallHandler() for constructor callbacks. (WebCore::V8DOMWrapper::getTemplate): * bindings/v8/custom/V8CustomBinding.h: Removed manual declarations of constructor callbacks. * bindings/v8/custom/V8DOMParserConstructor.cpp: * bindings/v8/custom/V8EventSourceConstructor.cpp: (WebCore::V8EventSource::constructorCallback): * bindings/v8/custom/V8MessageChannelConstructor.cpp: (WebCore::V8MessageChannel::constructorCallback): * bindings/v8/custom/V8SharedWorkerCustom.cpp: (WebCore::V8SharedWorker::constructorCallback): * bindings/v8/custom/V8WebGLArrayBufferCustom.cpp: (WebCore::V8WebGLArrayBuffer::constructorCallback): * bindings/v8/custom/V8WebGLByteArrayCustom.cpp: (WebCore::V8WebGLByteArray::constructorCallback): * bindings/v8/custom/V8WebGLFloatArrayCustom.cpp: (WebCore::V8WebGLFloatArray::constructorCallback): * bindings/v8/custom/V8WebGLIntArrayCustom.cpp: (WebCore::V8WebGLIntArray::constructorCallback): * bindings/v8/custom/V8WebGLShortArrayCustom.cpp: (WebCore::V8WebGLShortArray::constructorCallback): * bindings/v8/custom/V8WebGLUnsignedByteArrayCustom.cpp: (WebCore::V8WebGLUnsignedByteArray::constructorCallback): * bindings/v8/custom/V8WebGLUnsignedIntArrayCustom.cpp: (WebCore::V8WebGLUnsignedIntArray::constructorCallback): * bindings/v8/custom/V8WebGLUnsignedShortArrayCustom.cpp: (WebCore::V8WebGLUnsignedShortArray::constructorCallback): * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp: (WebCore::V8WebKitCSSMatrix::constructorCallback): * bindings/v8/custom/V8WebKitPointConstructor.cpp: (WebCore::V8WebKitPoint::constructorCallback): * bindings/v8/custom/V8WebSocketCustom.cpp: (WebCore::V8WebSocket::constructorCallback): * bindings/v8/custom/V8WorkerCustom.cpp: (WebCore::V8Worker::constructorCallback): * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: (WebCore::V8XMLHttpRequest::constructorCallback): * bindings/v8/custom/V8XMLSerializerConstructor.cpp: * bindings/v8/custom/V8XPathEvaluatorConstructor.cpp: Deleted the file. Implementation now being generated. * bindings/v8/custom/V8XSLTProcessorCustom.cpp: Deleted the file. Implementation now being generated. (WebCore::V8XSLTProcessor::constructorCallback): Deleted the file. Implementation now being generated. * css/WebKitCSSMatrix.idl: Added CustomConstructor attribute. * dom/MessageChannel.idl: Added CustomConstructor attribute. * html/canvas/WebGLArrayBuffer.idl: Added CustomConstructor attribute. * html/canvas/WebGLByteArray.idl: Added CustomConstructor attribute. * html/canvas/WebGLFloatArray.idl: Added CustomConstructor attribute. * html/canvas/WebGLIntArray.idl: Added CustomConstructor attribute. * html/canvas/WebGLShortArray.idl: Added CustomConstructor attribute. * html/canvas/WebGLUnsignedByteArray.idl: Added CustomConstructor attribute. * html/canvas/WebGLUnsignedIntArray.idl: Added CustomConstructor attribute. 2010-01-28 Steve Block Reviewed by David Levin. Add stub for AXObjectCache::contentChanged when HAVE(ACCESSIBILITY) is not defined https://bugs.webkit.org/show_bug.cgi?id=34271 No new tests, build fix only. * accessibility/AXObjectCache.cpp: Modified. Added HAVE(ACCESSIBILITY) guards around contentChanged * accessibility/AXObjectCache.h: Modified. (WebCore::AXObjectCache::contentChanged): Added stub 2010-01-28 Steve Block Reviewed by David Levin. Use long long rather than int64 in V8Binding.h https://bugs.webkit.org/show_bug.cgi?id=34270 No new tests, build fix only. * bindings/v8/V8Binding.h: Modified. (WebCore::toInt64): Returns long long 2010-01-28 Avi Drissman Reviewed by David Levin. Unused variable in ThemeMac (followup to change 49103). https://bugs.webkit.org/show_bug.cgi?id=34274 Covered by existing tests. * platform/mac/ThemeMac.mm: (WebCore::setupButtonCell): 2010-01-28 Enrica Casucci Reviewed by Maciej Stachowiak. Huge plain text pastes are slow https://bugs.webkit.org/show_bug.cgi?id=34237 No new tests. It is a performance improvement. The performance of the plain text paste is now linear. We treat as a special case, a fragment that has been created from plain text. Finding VisiblePositions and applying style is greatly simplified, given the nature of the fragment. * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): * editing/markup.cpp: (WebCore::isPlainTextMarkup): * editing/markup.h: 2010-01-28 Jeremy Orlow Reviewed by Adam Barth. Initialize DOM Storage's quota's current length parameter when we clone it. https://bugs.webkit.org/show_bug.cgi?id=34294 * storage/StorageMap.cpp: (WebCore::StorageMap::copy): 2010-01-28 Brent Fulgham Unreviewed build fix after r53411 on WinCairo. * platform/image-decoders/gif/GIFImageDecoder.cpp: (WebCore::GIFImageDecoder::frameCount): 2010-01-28 Nayan Kumar K Reviewed by Laszlo Gombos. Fix for compilation error in WML enabled build introduced because of the changeset 53514. https://bugs.webkit.org/show_bug.cgi?id=34254 * wml/WMLDocument.cpp: (WebCore::WMLDocument::WMLDocument): 2010-01-28 Alex Milowski Reviewed by Eric Seidel. Update to CSS to remove unnecessary line-height settings * css/mathml.css: 2010-01-28 Steve Block Reviewed by David Levin. Add missing includes for HashMap/HashSet https://bugs.webkit.org/show_bug.cgi?id=34276 No new tests, build fix only. * platform/KURL.cpp: Modified. Include HashMap.h * platform/network/CredentialStorage.cpp: Modified. Include HashMap.h and HashSet.h * platform/network/ProtectionSpaceHash.h: Modified. Include HashTraits.h 2010-01-28 Sebastian Dröge Reviewed by Gustavo Noronha. Pass cookies to the GStreamer HTTP source https://bugs.webkit.org/show_bug.cgi?id=34003 Test: http/tests/media/video-cookie.html * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: (WebCore::mediaPlayerPrivateSourceChangedCallback): When using an appropiate GStreamer HTTP source element, pass the cookies for the media URI to it. This fixes playback of the YouTube HTML5 videos. 2010-01-28 Csaba Osztrogonác [Qt] Unreviewed buildfix after r54022. * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtRuntimeObjectImp::createStructure): * bridge/qt/qt_pixmapruntime.cpp: (JSC::Bindings::QtPixmapRuntimeObjectImp::createStructure): * bridge/qt/qt_runtime.h: (JSC::Bindings::QtRuntimeMethod::createStructure): 2010-01-28 Adam Roben Fix an assertion beneath SerializedScriptValue::deserialize on 32-bit builds (e.g., on Windows) Passing a JSValue to toRef on 32-bit builds can perform an allocation, so we need to make sure we hold a JSLock when that occurs. Reviewed by Oliver Hunt. * bindings/js/SerializedScriptValue.cpp: (WebCore::SerializedScriptValueData::serialize): (WebCore::SerializedScriptValueData::deserialize): Moved JSLocks from here... (WebCore::SerializedScriptValue::create): (WebCore::SerializedScriptValue::deserialize): ...to this higher level, from which toRef can be called. 2010-01-28 Oliver Hunt Reviewed by Gavin Barraclough. DOM Objects shouldn't all require custom mark functions https://bugs.webkit.org/show_bug.cgi?id=34291 Make DOMObjectWithGlobalPointer use an anonymous slot to store the global object reference. * bindings/js/JSDOMBinding.h: (WebCore::DOMObjectWithGlobalPointer::globalObject): (WebCore::DOMObjectWithGlobalPointer::scriptExecutionContext): (WebCore::DOMObjectWithGlobalPointer::DOMObjectWithGlobalPointer): 2010-01-28 Oliver Hunt Reviewed by Gavin Barraclough. Simplify anonymous slot implementation https://bugs.webkit.org/show_bug.cgi?id=34282 Update the WebCore JS DOM bindings to correctly pass and propagate the anonymous slot count information. * bindings/js/JSDOMBinding.h: (WebCore::DOMObjectWithGlobalPointer::createStructure): (WebCore::DOMConstructorObject::createStructure): * bindings/js/JSDOMWindowShell.h: (WebCore::JSDOMWindowShell::createStructure): * bindings/scripts/CodeGeneratorJS.pm: * bridge/objc/objc_runtime.h: (JSC::Bindings::ObjcFallbackObjectImp::createStructure): * bridge/runtime_array.h: (JSC::RuntimeArray::createStructure): * bridge/runtime_method.h: (JSC::RuntimeMethod::createStructure): * bridge/runtime_object.h: (JSC::RuntimeObjectImp::createStructure): 2010-01-27 Evan Martin Reviewed by David Levin. [chromium] hebrew vowel marks incorrectly positioned https://bugs.webkit.org/show_bug.cgi?id=34234 Fix glyph metrics computation such that the glyph offsets are correct, so we can now make use of them. Test: fast/text/international/hebrew-vowels.html * platform/graphics/chromium/FontLinux.cpp: (WebCore::TextRunWalker::createGlyphArrays): initialize per-glyph offset table. (WebCore::TextRunWalker::setGlyphXPositions): use per-glyph offsets. * platform/graphics/chromium/HarfbuzzSkia.cpp: (WebCore::getGlyphMetrics): fix metrics computation such that per-glyph offsets are computed correctly. 2010-01-28 Laszlo Gombos Unreviewed build fix. [Qt] Build fix if websockets support is turned off after r53947. * WebCore.pro: 2010-01-28 Dimitri Glazkov No review, rolling out r54012. http://trac.webkit.org/changeset/54012 https://bugs.webkit.org/show_bug.cgi?id=34266 Introduced 33 crashes in V8 traversal/ tests. * bindings/js/ScriptController.cpp: (WebCore::ScriptController::mainWorldScriptState): * bindings/js/ScriptController.h: * bindings/js/ScriptState.cpp: * bindings/js/ScriptState.h: * bindings/v8/ScriptCallStack.cpp: (WebCore::ScriptCallStack::ScriptCallStack): * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::mainWorldScriptState): (WebCore::ScriptController::currentScriptState): (WebCore::ScriptController::clearWindowShell): * bindings/v8/ScriptController.h: * bindings/v8/ScriptScope.cpp: (WebCore::ScriptScope::ScriptScope): (WebCore::ScriptScope::success): * bindings/v8/ScriptScope.h: * bindings/v8/ScriptState.cpp: (WebCore::ScriptState::ScriptState): (WebCore::scriptStateFromPage): * bindings/v8/ScriptState.h: (WebCore::ScriptState::ScriptState): (WebCore::ScriptState::frame): * bindings/v8/V8HiddenPropertyName.h: * bindings/v8/V8IsolatedContext.cpp: (WebCore::V8IsolatedContext::scriptState): * bindings/v8/V8IsolatedContext.h: * bindings/v8/V8Utilities.cpp: (WebCore::getScriptExecutionContext): (WebCore::reportException): * bindings/v8/custom/V8NodeIteratorCustom.cpp: (WebCore::V8NodeIterator::nextNodeCallback): (WebCore::V8NodeIterator::previousNodeCallback): * bindings/v8/custom/V8TreeWalkerCustom.cpp: (WebCore::V8TreeWalker::parentNodeCallback): (WebCore::V8TreeWalker::firstChildCallback): (WebCore::V8TreeWalker::lastChildCallback): (WebCore::V8TreeWalker::nextNodeCallback): (WebCore::V8TreeWalker::previousNodeCallback): (WebCore::V8TreeWalker::nextSiblingCallback): (WebCore::V8TreeWalker::previousSiblingCallback): * inspector/InspectorController.cpp: (WebCore::InspectorController::injectedScriptForNodeId): 2010-01-28 Steve Block Reviewed by Adam Barth. Fix missing forward-declarations and includes in V8 bindings https://bugs.webkit.org/show_bug.cgi?id=34272 No new tests, build fix only. * bindings/v8/ScriptController.h: Modified. Forward-declare NPObject * bindings/v8/V8DOMWindowShell.cpp: Modified. Include CString.h and PlatformBridge.h * bindings/v8/V8DOMWrapper.h: Modified. Forward-declare V8Proxy 2010-01-28 Yury Semikhatsky Reviewed by Adam Barth. Remove ScriptState::frame which is only used for reporting exceptions in some cases in a way that diverges from the regular exception reporting in v8 bindings. Cache ScriptState directly on v8::Context instead of providing implementations specific for isolated worlds and ScriptController. https://bugs.webkit.org/show_bug.cgi?id=34266 * bindings/js/ScriptController.cpp: * bindings/js/ScriptController.h: * bindings/js/ScriptState.cpp: (WebCore::mainWorldScriptState): * bindings/js/ScriptState.h: * bindings/v8/ScriptCallStack.cpp: (WebCore::ScriptCallStack::ScriptCallStack): * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::clearWindowShell): * bindings/v8/ScriptController.h: * bindings/v8/ScriptScope.cpp: (WebCore::ScriptScope::ScriptScope): (WebCore::ScriptScope::success): * bindings/v8/ScriptScope.h: * bindings/v8/ScriptState.cpp: (WebCore::ScriptState::ScriptState): (WebCore::ScriptState::forContext): (WebCore::ScriptState::current): (WebCore::ScriptState::empty): (WebCore::ScriptState::weakReferenceCallback): (WebCore::mainWorldScriptState): (WebCore::scriptStateFromPage): * bindings/v8/ScriptState.h: * bindings/v8/V8HiddenPropertyName.h: * bindings/v8/V8IsolatedContext.cpp: * bindings/v8/V8IsolatedContext.h: * bindings/v8/V8Utilities.cpp: (WebCore::getScriptExecutionContext): (WebCore::reportException): * bindings/v8/custom/V8NodeIteratorCustom.cpp: (WebCore::V8NodeIterator::nextNodeCallback): (WebCore::V8NodeIterator::previousNodeCallback): * bindings/v8/custom/V8TreeWalkerCustom.cpp: (WebCore::V8TreeWalker::parentNodeCallback): (WebCore::V8TreeWalker::firstChildCallback): (WebCore::V8TreeWalker::lastChildCallback): (WebCore::V8TreeWalker::nextNodeCallback): (WebCore::V8TreeWalker::previousNodeCallback): (WebCore::V8TreeWalker::nextSiblingCallback): (WebCore::V8TreeWalker::previousSiblingCallback): * inspector/InspectorController.cpp: (WebCore::InspectorController::injectedScriptForNodeId): 2010-01-28 Adam Barth Reviewed by David Levin. Remove XSSAuditor false positive for Google Translate https://bugs.webkit.org/show_bug.cgi?id=34242 Google translate takes a base URL as a parameter, causing a false positive in the XSS filter. This patch removes the false positive by allowing direct injections into the href property of the base tag. Test: http/tests/security/xssAuditor/base-href-direct.html * page/XSSAuditor.cpp: (WebCore::XSSAuditor::canSetBaseElementURL): 2010-01-28 Nikolas Zimmermann Reviewed by Dirk Schulze. Save additional memory in SVG*Element classes, by introducing SVGElementRareData https://bugs.webkit.org/show_bug.cgi?id=34268 Introduce SVGElementRareData, to remove the need to store any members in SVGElement/SVGStyledElement. This saves some additional MB for the svg-node-count-vs-scroll.xhtml testcase. SVGElementRareData works just like NodeRareData. Unlike ElementRareData, we're not inheriting from NodeRareData in SVG, as we don't need all the rare data stored there, unlike Element. * GNUmakefile.am: Add SVGElementRareData.h to build. * WebCore.gypi: Ditto. * WebCore.pro: Ditto. * WebCore.vcproj/WebCore.vcproj: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * dom/Node.cpp: Use Nodes bitfield to keep track wheter a SVGElement has a SVGElementRareData object associated. (WebCore::Node::Node): * dom/Node.h: Add m_hasRareSVGData flag, merged with the existing bitfield, 10 bits remaining now. (WebCore::Node::hasRareSVGData): * svg/SVGAnimateMotionElement.cpp: SVGElement::instancesForElement() now returns a const-reference to the HashMap instead of copying. (WebCore::SVGAnimateMotionElement::applyResultsToTarget): * svg/SVGAnimateTransformElement.cpp: Ditto. (WebCore::SVGAnimateTransformElement::applyResultsToTarget): * svg/SVGAnimationElement.cpp: Ditto. (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue): * svg/SVGElement.cpp: Move the element instances HashSet and two cursor-related pointers into SVGElementRareData. (WebCore::SVGElement::SVGElement): (WebCore::SVGElement::~SVGElement): (WebCore::SVGElement::rareSVGData): Modelled just like Node::rareData(). (WebCore::SVGElement::ensureRareSVGData): Dito. (WebCore::SVGElement::accessDocumentSVGExtensions): (WebCore::SVGElement::mapInstanceToElement): Route call through SVGElementRareData. (WebCore::SVGElement::removeInstanceMapping): Ditto. (WebCore::SVGElement::instancesForElement): Ditto. (WebCore::SVGElement::setCursorElement): Ditto. (WebCore::SVGElement::setCursorImageValue): Ditto. * svg/SVGElement.h: * svg/SVGElementInstance.cpp: Ditto. (WebCore::SVGElementInstance::invalidateAllInstancesOfElement): * svg/SVGElementRareData.h: Added. Based on NodeRareData - works exactly the same. (WebCore::SVGElementRareData::SVGElementRareData): (WebCore::SVGElementRareData::rareDataMap): (WebCore::SVGElementRareData::rareDataFromMap): (WebCore::SVGElementRareData::elementInstances): (WebCore::SVGElementRareData::instanceUpdatesBlocked): (WebCore::SVGElementRareData::setInstanceUpdatesBlocked): (WebCore::SVGElementRareData::cursorElement): (WebCore::SVGElementRareData::setCursorElement): (WebCore::SVGElementRareData::cursorImageValue): (WebCore::SVGElementRareData::setCursorImageValue): * svg/SVGStyledElement.cpp: Move m_instancesUpdatesBlocked into SVGElementRareData. (WebCore::SVGStyledElement::SVGStyledElement): (WebCore::SVGStyledElement::instanceUpdatesBlocked): (WebCore::SVGStyledElement::setInstanceUpdatesBlocked): * svg/SVGStyledElement.h: * svg/SVGUseElement.cpp: Adapt to element instances changes, now passed as const-reference. (WebCore::dumpInstanceTree): 2010-01-28 Aaron Boodman Reviewed by Darin Adler. Expand the NotificationPresenter::checkPermission() interface to send the full URL of the requesting context, as well as a pointer to the document if that context was a document. https://bugs.webkit.org/show_bug.cgi?id=34238 * notifications/Notification.cpp: (WebCore::Notification::Notification): * notifications/NotificationCenter.cpp: (WebCore::NotificationCenter::NotificationCenter): (WebCore::NotificationCenter::checkPermission): Pass the full URL and document from the requesting context when calling NotificationPresenter::checkPermission(). * notifications/NotificationPresenter.h: (WebCore::NotificationPresenter::): Expand interface. 2010-01-28 Simon Fraser Reviewed by Dan Bernstein. Video can overlap position:fixed element when scrolling https://bugs.webkit.org/show_bug.cgi?id=32180 When the scroll position changes, and we're using overlap to decide what gets composited, then we need to re-evaluate what gets compositing when scrolling in case fixed postion elements overlap composited elements (e.g. video). Test: compositing/geometry/video-fixed-scrolling.html * page/FrameView.cpp: (WebCore::FrameView::updateCompositingLayers): (WebCore::FrameView::scrollPositionChanged): Annotate the calls to updateCompositingLayers() with the type of change that occurred. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded): Ditto. * rendering/RenderLayerCompositor.h: * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateCompositingLayers): For scroll changes, check for hierarchy update if m_compositingConsultsOverlap is true, and do a geometry update. For other changes, always check for hierarchy updates. 2010-01-27 Dave Hyatt Reviewed by Darin Adler. Fix for user stylesheet bugs where they get parsed using the wrong compatibility mode. This was a regression caused from Safari 3 -> 4 by the Acid3 fixes to create a real DOCTYPE in the DOM. This patch makes style selector creation lazy, so that the selector isn't built unless someone asks for it. In order to avoid creating the style selector before the compatibility mode has been determined, document style is now created without having a dependence on an instantiated style selector. The creation of the style is now done as a static method on CSSStyleSelector called styleForDocument, and a couple of font-related functions have been made static as well so that they can be used by this method. m_styleSelector on Document is now an OwnPtr. Added userscripts/mixed-case-stylesheet.html * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::styleForDocument): (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::checkForGenericFamilyChange): (WebCore::CSSStyleSelector::setFontSize): (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): (WebCore::CSSStyleSelector::fontSizeForKeyword): * css/CSSStyleSelector.h: * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::~Document): (WebCore::Document::recalcStyle): (WebCore::Document::createStyleSelector): (WebCore::Document::attach): (WebCore::Document::setVisuallyOrdered): (WebCore::Document::recalcStyleSelector): * dom/Document.h: (WebCore::Document::styleSelector): (WebCore::Document::visuallyOrdered): * html/HTMLDocument.cpp: (WebCore::HTMLDocument::determineParseMode): * loader/PlaceholderDocument.cpp: (WebCore::PlaceholderDocument::attach): 2010-01-28 Kent Tamura Reviewed by Darin Adler. Rename ISODateTime.{cpp,h} to DateComponents.{cpp,h} https://bugs.webkit.org/show_bug.cgi?id=34245 No functional changes. * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/DateComponents.cpp: Copied from WebCore/html/ISODateTime.cpp. (WebCore::DateComponents::maxWeekNumberInYear): (WebCore::DateComponents::parseYear): (WebCore::DateComponents::addDay): (WebCore::DateComponents::addMinute): (WebCore::DateComponents::parseTimeZone): (WebCore::DateComponents::parseMonth): (WebCore::DateComponents::parseDate): (WebCore::DateComponents::parseWeek): (WebCore::DateComponents::parseTime): (WebCore::DateComponents::parseDateTimeLocal): (WebCore::DateComponents::parseDateTime): (WebCore::DateComponents::setMillisecondsSinceMidnightInternal): (WebCore::DateComponents::setMillisecondsSinceEpochForDateInternal): (WebCore::DateComponents::setMillisecondsSinceEpochForDate): (WebCore::DateComponents::setMillisecondsSinceEpochForDateTime): (WebCore::DateComponents::setMillisecondsSinceEpochForDateTimeLocal): (WebCore::DateComponents::setMillisecondsSinceEpochForMonth): (WebCore::DateComponents::setMillisecondsSinceMidnight): (WebCore::DateComponents::setMillisecondsSinceEpochForWeek): (WebCore::DateComponents::millisecondsSinceEpochForTime): (WebCore::DateComponents::millisecondsSinceEpoch): (WebCore::DateComponents::toStringForTime): (WebCore::DateComponents::toString): * html/DateComponents.h: Copied from WebCore/html/ISODateTime.h. (WebCore::DateComponents::DateComponents): * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseToDouble): (WebCore::HTMLInputElement::valueAsDate): (WebCore::HTMLInputElement::setValueAsDate): (WebCore::HTMLInputElement::setValueAsNumber): (WebCore::HTMLInputElement::formStringToDateComponents): * html/HTMLInputElement.h: * html/ISODateTime.cpp: Removed. * html/ISODateTime.h: Removed. * html/ValidityState.cpp: (WebCore::ValidityState::typeMismatch): 2010-01-28 Alexander Pavlov Reviewed by Pavel Feldman. Use platform-specific monospace fonts in the Web Inspector Move the OS version detection code into the frontend, add custom CSS monospace styles for known platforms. https://bugs.webkit.org/show_bug.cgi?id=34040 * inspector/InspectorFrontendHost.cpp: (WebCore::InspectorFrontendHost::platform): * inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.BreakpointsSidebarPane.prototype._appendBreakpointElement): * inspector/front-end/DatabaseQueryView.js: (WebInspector.DatabaseQueryView): * inspector/front-end/InspectorBackendStub.js: (.WebInspector.InspectorBackendStub.prototype.releaseWrapperObjectGroup): (.WebInspector.InspectorBackendStub.prototype.setInjectedScriptSource): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._createConditionElement): * inspector/front-end/inspector.css: * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector.URLRegExp.i.get platform): (WebInspector._detectPlatform): 2010-01-28 Mikhail Naganov Reviewed by Timothy Hatcher. Simplify views logic in Profiler panel, and fix the problem described in the issue. Remove image from Welcome view. Preserve border on status bar-like buttons in Welcome view on window deactivation. https://bugs.webkit.org/show_bug.cgi?id=34201 * inspector/front-end/ProfilesPanel.js: (WebInspector.ProfilesPanel.prototype.show): (WebInspector.ProfilesPanel.prototype.reset): (WebInspector.ProfilesPanel.prototype.addProfileHeader): (WebInspector.ProfilesPanel.prototype.showView): (WebInspector.ProfilesPanel.prototype._updateInterface): * inspector/front-end/WelcomeView.js: (WebInspector.WelcomeView): * inspector/front-end/inspector.css: 2010-01-18 Holger Hans Peter Freyther Reviewed by Eric Seidel. [Qt] Speed up KURL to QUrl conversion https://bugs.webkit.org/show_bug.cgi?id=33873 The WebCore::String::utf8 method will use the generic WebCore::TextCodec and then call the encode method on it. In QtWebKit this class is implemented around the QTextCodec class. Instead of going the generic codec way we treat the WebCore::String as a QString (no copying) and then use the built-in QString::toUtf8 to do the conversion. * platform/qt/KURLQt.cpp: (WebCore::KURL::operator QUrl): 2010-01-28 Ben Murdoch Reviewed by Simon Hausmann. [Android] [Qt] Touch event page co-ordinates are incorrect when touch is received in an iframe. https://bugs.webkit.org/show_bug.cgi?id=34162 The pageX/pageY co-ordinates of a touch event should be relative to the containing frame, not the main frame. This change implements that and also updates the existing touch-inside-iframe test to also examine the page co-ordinates. * dom/Touch.cpp: (WebCore::Touch::Touch): Remove dead code. * dom/Touch.h: Remove dead code. * page/EventHandler.cpp: (WebCore::EventHandler::handleTouchEvent): Rename framePoint to pagePoint, as it seems a clearer name. Also adjust the pagePoint to be relative to the touch target element's containing frame rather than the main frame. * platform/PlatformTouchEvent.h: Rename Android specific constructor parameter to better reflect it's contents. * platform/PlatformTouchPoint.h: Ditto. * platform/android/PlatformTouchEventAndroid.cpp: Ditto. * platform/android/PlatformTouchPointAndroid.cpp: Ditto. 2010-01-28 Yury Semikhatsky Reviewed by Pavel Feldman. Simplify isActivation method. https://bugs.webkit.org/show_bug.cgi?id=34161 Test: WebCore/manual-tests/inspector/debugger-scopes-inspection.html * bindings/js/JSInjectedScriptHostCustom.cpp: (WebCore::JSInjectedScriptHost::isActivation): 2010-01-27 Kent Tamura Reviewed by Darin Adler. rangeOverflow/rangeUnderflow support for type=date https://bugs.webkit.org/show_bug.cgi?id=34209 Add DATE type support to rangeUnderflow(), rangeOverflow(), minimum(), and maximum() of HTMLInputElement. In order to unify parsing code for value, min, and max strings, introduce parseToDouble() function and it is called by valueAsDate() and valueAsNumber() too. Tests: fast/forms/ValidityState-rangeOverflow-date.html fast/forms/ValidityState-rangeUnderflow-date.html * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::rangeUnderflow): Support DATE type, and use parseToDouble(). (WebCore::HTMLInputElement::rangeOverflow): ditto. (WebCore::HTMLInputElement::minimum): ditto. (WebCore::HTMLInputElement::maximum): ditto. (WebCore::HTMLInputElement::doubleValueFor): Added. (WebCore::HTMLInputElement::valueAsDate): Use parseToDouble(). (WebCore::HTMLInputElement::valueAsNumber): Use parseToDouble(). * html/HTMLInputElement.h: Declare parseToDouble(). 2010-01-27 Darin Fisher Fix chromium build bustage (take 2). * bindings/scripts/CodeGeneratorV8.pm: Really treat V8CustomGetter like CustomGetter in all cases. 2010-01-27 Darin Fisher Fix chromium build bustage. * bindings/scripts/CodeGeneratorV8.pm: Treat V8CustomGetter like CustomGetter in all cases. 2010-01-27 Oliver Hunt Reviewed by Maciej Stachowiak. MessageEvent.data should deserialize in the context of the MessageEvent's global object https://bugs.webkit.org/show_bug.cgi?id=34227 Make ScriptValue deserialisation support the provision of a specific global object to use when creating new objects. This then allows us to make MessageEvent.data and PopStateEvent.state deserialize in the correct context. Test: fast/dom/Window/window-postmessage-clone-frames.html * bindings/js/JSPopStateEventCustom.cpp: Remove custom implementation of state getter * bindings/js/SerializedScriptValue.cpp: (WebCore::DeserializingTreeWalker::DeserializingTreeWalker): (WebCore::DeserializingTreeWalker::createOutputArray): (WebCore::DeserializingTreeWalker::createOutputObject): (WebCore::DeserializingTreeWalker::convertIfTerminal): (WebCore::SerializedScriptValueData::deserialize): (WebCore::SerializedScriptValue::deserialize): * bindings/js/SerializedScriptValue.h: (WebCore::SerializedScriptValue::deserialize): * bindings/scripts/CodeGeneratorJS.pm: Update bindings generation to pass the correct global object, and to treat "any" as synonymous with SerializedValue. * dom/PopStateEvent.idl: 2010-01-27 Nicholas Young Reviewed by Eric Carlson. Make media controls fade in/out transition duration configurable on a theme level. https://bugs.webkit.org/show_bug.cgi?id=34196 No new tests needed (I hope). * rendering/RenderMedia.cpp: (WebCore::RenderMedia::RenderMedia): Removed constant from contructor - the initial value is meaningless. (WebCore::RenderMedia::updateControlVisibility): Get fade in/out duration from theme. * rendering/RenderTheme.h: (WebCore::RenderTheme::mediaControlsFadeInDuration): New virtual method. (WebCore::RenderTheme::mediaControlsFadeOutDuration): New virtual method. 2010-01-27 John Abd-El-Malek Reviewed by Dimitri Glazkov. Tests that when a page removes an iframe that sleeps in its unload handler and terminates its JS execution, the outer page's JS continues running. https://bugs.webkit.org/show_bug.cgi?id=34226 Tests: fast/dom/Window/slow-unload-handler-only-frame-is-stopped.html fast/dom/Window/slow-unload-handler.html * bindings/v8/DateExtension.cpp: (WebCore::DateExtension::OnSleepDetected): 2010-01-27 Kent Tamura Reviewed by Darin Adler. Add valueAsNumber support for type=datetime-local. https://bugs.webkit.org/show_bug.cgi?id=34200 Implement necessary methods of ISODateTime, and call them from HTMLInputElement. Test: fast/forms/input-valueasnumber-datetimelocal.html * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::valueAsNumber): (WebCore::HTMLInputElement::setValueAsNumber): * html/ISODateTime.cpp: (WebCore::ISODateTime::setMillisecondsSinceEpochForDateTimeLocal): Implemented. Just call setMillisecondsSinceEpochForDateTime(). (WebCore::ISODateTime::millisecondsSinceEpochForTime): Accept to be called for m_type=DateTimeLocal. (WebCore::ISODateTime::toString): Add DateTimeLocal support. * html/ISODateTime.h: Declare new methods. 2010-01-27 Steve Falkenburg Windows Debug_All build fix. * platform/graphics/win/WKCACFLayer.cpp: * platform/graphics/win/WKCACFLayerRenderer.cpp: 2010-01-27 Evan Martin Reviewed by David Levin. [chromium] complex text draws newlines as bells https://bugs.webkit.org/show_bug.cgi?id=34186 Revert r45496 -- once we've got a glyph array, it is too late to normalize because we could have had multiple codepoints combine into one glyph. The Uniscribe code it mentions it's duplicating uses the log cluster map to fix this. Instead, we just normalize the input text if it contains any non-ascii-space whitespace. This fixes fast/text/international/hindi-whitespace, which currently has an incorrect baseline containing a square box glyph. * platform/graphics/chromium/FontLinux.cpp: (WebCore::TextRunWalker::getTextRun): (WebCore::TextRunWalker::getNormalizedTextRun): * platform/graphics/chromium/HarfbuzzSkia.cpp: (WebCore::stringToGlyphs): 2010-01-27 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=34150 WebKit needs a mechanism to catch stale HashMap entries * css/CSSStyleSelector.cpp: (WebCore::CSSRuleSet::getIDRules): (WebCore::CSSRuleSet::getClassRules): (WebCore::CSSRuleSet::getTagRules): (WebCore::CSSStyleSelector::keyframeStylesForAnimation): * dom/CheckedRadioButtons.cpp: (WebCore::CheckedRadioButtons::checkedButtonForGroup): (WebCore::CheckedRadioButtons::removeButton): * editing/markup.cpp: (WebCore::shouldAddNamespaceAttr): (WebCore::appendNamespace): (WebCore::appendStartMarkup): * html/HTMLCollection.cpp: (WebCore::HTMLCollection::namedItems): (WebCore::HTMLCollection::nextNamedItem): * html/HTMLFormCollection.cpp: (WebCore::HTMLFormCollection::formCollectionInfo): * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::collectionInfo): * loader/loader.cpp: (WebCore::Loader::load): (WebCore::Loader::servePendingRequests): (WebCore::Loader::nonCacheRequestInFlight): (WebCore::Loader::nonCacheRequestComplete): (WebCore::Loader::cancelRequests): * page/animation/CompositeAnimation.cpp: (WebCore::CompositeAnimation::clearRenderer): (WebCore::CompositeAnimation::updateKeyframeAnimations): (WebCore::CompositeAnimation::animate): (WebCore::CompositeAnimation::getAnimatedStyle): (WebCore::CompositeAnimation::setAnimating): (WebCore::CompositeAnimation::timeToNextService): (WebCore::CompositeAnimation::getAnimationForProperty): (WebCore::CompositeAnimation::suspendAnimations): (WebCore::CompositeAnimation::resumeAnimations): (WebCore::CompositeAnimation::isAnimatingProperty): (WebCore::CompositeAnimation::pauseAnimationAtTime): (WebCore::CompositeAnimation::numberOfActiveAnimations): Added checkConsistency checks before lookups in HashMaps with AtomicStringImpl* keys. * dom/Document.cpp: (WebCore::Document::removedLastRef): Clear m_elementsById map, because removeAllChildren() doesn't always update it correctly when called during docuemnt destruction. (WebCore::Document::getElementById): Added checkConsistency(). (WebCore::Document::removeElementById): Ditto. (WebCore::Document::removeImageMap): Ditto. (WebCore::Document::getImageMap): Ditto. (WebCore::Document::nameCollectionInfo): Ditto. * dom/Document.h: (WebCore::Document::collectionInfo): Ditto. * html/CollectionCache.cpp: (WebCore::CollectionCache::checkConsistency): * html/CollectionCache.h: Added a checkConsistency() method that checks both HashMaps in the cache. * platform/TreeShared.h: (WebCore::TreeShared::~TreeShared): Assert that m_refCount is null. Since Nodes can be destroyed with operator delete (as done in ContainerNodeAlgorithms), this is important to check. (WebCore::TreeShared::deref): Assert that m_refCount isn't already negative. 2010-01-27 Brian Tarricone Reviewed by Gustavo Noronha Silva. [gtk] Add support for windowless NPAPI plugins Much of this is a translation of how the Qt backend does this, modified for Gtk. https://bugs.webkit.org/show_bug.cgi?id=18831 No new tests; there is already a windowless test in the tree. * plugins/PluginView.cpp: (WebCore::PluginView::handleEvent): (WebCore::PluginView::PluginView): * plugins/PluginView.h: * plugins/gtk/PluginViewGtk.cpp: (WebCore::getRootWindow): (WebCore::PluginView::updatePluginWidget): (WebCore::PluginView::paint): (WebCore::PluginView::handleKeyboardEvent): (WebCore::inputEventState): (WebCore::PluginView::initXEvent): (WebCore::setXButtonEventSpecificFields): (WebCore::setXMotionEventSpecificFields): (WebCore::setXCrossingEventSpecificFields): (WebCore::PluginView::handleMouseEvent): (WebCore::PluginView::handleFocusInEvent): (WebCore::PluginView::handleFocusOutEvent): (WebCore::PluginView::setNPWindowRect): (WebCore::PluginView::setNPWindowIfNeeded): (WebCore::PluginView::getValueStatic): (WebCore::PluginView::invalidateRect): (WebCore::getPluginDisplay): (WebCore::plug_removed_cb): (WebCore::getVisualAndColormap): (WebCore::PluginView::platformStart): (WebCore::PluginView::platformDestroy): 2010-01-27 Anton Muhin Reviewed by David Levin. [v8] minor cosmetic fix in V8 bindings codegenerator https://bugs.webkit.org/show_bug.cgi?id=34224 * bindings/scripts/CodeGeneratorV8.pm: 2010-01-27 Darin Fisher Fix Chromium build bustage. * rendering/RenderBoxModelObject.cpp: Add wtf/CurrentTime.h include. 2010-01-26 Darin Fisher Reviewed by Brady Eidson and David Levin. Chains of history items representing same-document navigation need to always remember that association https://bugs.webkit.org/show_bug.cgi?id=33224 Replace HistoryItem's Document pointer with a DocumentSequenceNumber. During session history traversal, if the current HistoryItem and the target HistoryItem have the same DocumentSequenceNumber, then it means that the current Document should remain. NOTE: To support Chromium's serialization of HistoryItems, I generate DocumentSequenceNumbers that are unique across application launches. DocumentSequenceNumbers are generated using a counter initialized with the time of day. Test: fast/loader/stateobjects/document-destroyed-navigate-back.html * dom/Document.cpp: (WebCore::Document::detach): * dom/Document.h: * history/BackForwardList.cpp: (WebCore::BackForwardList::pushStateItem): * history/BackForwardListChromium.cpp: (WebCore::BackForwardList::pushStateItem): * history/HistoryItem.cpp: (WebCore::generateDocumentSequenceNumber): (WebCore::HistoryItem::HistoryItem): (WebCore::HistoryItem::~HistoryItem): (WebCore::HistoryItem::setStateObject): * history/HistoryItem.h: (WebCore::HistoryItem::setDocumentSequenceNumber): (WebCore::HistoryItem::documentSequenceNumber): * loader/FrameLoader.cpp: (WebCore::FrameLoader::navigateWithinDocument): (WebCore::FrameLoader::loadItem): * loader/HistoryController.cpp: (WebCore::HistoryController::updateBackForwardListForFragmentScroll): (WebCore::HistoryController::pushState): (WebCore::HistoryController::replaceState): * loader/RedirectScheduler.cpp: (WebCore::RedirectScheduler::scheduleHistoryNavigation): * page/History.cpp: (WebCore::History::stateObjectAdded): * page/Page.cpp: (WebCore::Page::goToItem): 2010-01-27 Oliver Hunt Reviewed by Simon Fraser. Animated scaling of background-image is too slow https://bugs.webkit.org/show_bug.cgi?id=33808 Implement a version of the RenderImage animated scaling optimisation for background images. Due to the possibility of arbitrary transforms being applied to containing elements we explicitly check the current CTM of the context for scaling or rotation. * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawTiledImage): * platform/graphics/GraphicsContext.h: * platform/graphics/transforms/TransformationMatrix.h: (WebCore::TransformationMatrix::isIdentityOrTranslation): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelScaleData::RenderBoxModelScaleData): (WebCore::RenderBoxModelScaleData::~RenderBoxModelScaleData): (WebCore::RenderBoxModelScaleData::size): (WebCore::RenderBoxModelScaleData::time): (WebCore::RenderBoxModelScaleData::useLowQualityScale): (WebCore::RenderBoxModelScaleData::hiqhQualityRepaintTimer): (WebCore::RenderBoxModelScaleData::setSize): (WebCore::RenderBoxModelScaleData::setTime): (WebCore::RenderBoxModelScaleData::setUseLowQualityScale): (WebCore::RenderBoxModelScaleObserver::boxModelObjectDestroyed): (WebCore::RenderBoxModelScaleObserver::highQualityRepaintTimerFired): (WebCore::RenderBoxModelScaleObserver::shouldPaintBackgroundAtLowQuality): (WebCore::RenderBoxModelObject::highQualityRepaintTimerFired): (WebCore::RenderBoxModelObject::~RenderBoxModelObject): (WebCore::RenderBoxModelObject::paintFillLayerExtended): * rendering/RenderBoxModelObject.h: 2010-01-27 Yael Aharon Reviewed by Laszlo Gombos. [Qt] Enable websockets support in QtWebKit https://bugs.webkit.org/show_bug.cgi?id=34180 Connected between SocketStreamHandle and QTcpSocket/QSslSocket to enable support for websockets. Proxy authentication is not yet supported. SSL certificate errors are ignored while this is under development. * WebCore.pro: * platform/network/qt/SocketStreamHandle.h: * platform/network/qt/SocketStreamHandlePrivate.h: Added. * platform/network/qt/SocketStreamHandleQt.cpp: (WebCore::SocketStreamHandlePrivate::SocketStreamHandlePrivate): (WebCore::SocketStreamHandlePrivate::~SocketStreamHandlePrivate): (WebCore::SocketStreamHandlePrivate::socketConnected): (WebCore::SocketStreamHandlePrivate::socketReadyRead): (WebCore::SocketStreamHandlePrivate::send): (WebCore::SocketStreamHandlePrivate::close): (WebCore::SocketStreamHandlePrivate::socketSentdata): (WebCore::SocketStreamHandlePrivate::socketClosed): (WebCore::SocketStreamHandlePrivate::socketError): (WebCore::SocketStreamHandlePrivate::socketClosedCallback): (WebCore::SocketStreamHandlePrivate::socketErrorCallback): (WebCore::SocketStreamHandlePrivate::socketSslErrors): (WebCore::SocketStreamHandle::SocketStreamHandle): (WebCore::SocketStreamHandle::~SocketStreamHandle): (WebCore::SocketStreamHandle::platformSend): (WebCore::SocketStreamHandle::platformClose): 2010-01-27 Mads Ager Reviewed by Dimitri Glazkov. [V8] Support getting integer-named properties using indexing notation on document object https://bugs.webkit.org/show_bug.cgi?id=34211 Add indexed property getter to HTMLDocument to support getting elements with integer names using indexing notation on document. Test: fast/dom/HTMLDocument/get-iframe-with-integer-name.html * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::V8HTMLDocument::indexedPropertyGetter): 2010-01-27 Yury Semikhatsky Reviewed by Oliver Hunt. Instead of relying on Object.prototype.toString result use JSObject::isActivationObject to check if a scope node is a JSActivation. Object.prototype.toString for JSActivation will call JSActivation::toThisObject whose result depends on the current call stack. https://bugs.webkit.org/show_bug.cgi?id=34161 Test: WebCore/manual-tests/inspector/debugger-scopes-inspection.html * bindings/js/JSInjectedScriptHostCustom.cpp: (WebCore::JSInjectedScriptHost::isActivation): * inspector/InjectedScriptHost.idl: * inspector/front-end/InjectedScript.js: (injectedScriptConstructor.): * manual-tests/inspector/debugger-scopes-inspection.html: Added. 2010-01-27 Anton Muhin Review by Adam Barth. Implement Node map in intrusive way for better speed. https://bugs.webkit.org/show_bug.cgi?id=33957 * bindings/v8/DOMData.h: (WebCore::DOMData::removeObjectsFromWrapperMap): * bindings/v8/DOMDataStore.cpp: (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::get): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::set): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::removeIfPresent): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::contains): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::visit): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::clear): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::allocateTableEntry): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::freeTableEntry): * bindings/v8/DOMDataStore.h: (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::clearEntry): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::clearEntries): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::visitEntries): (WebCore::DOMDataStore::IntrusiveDOMWrapperMap::TableChunk::TableChunk): (WebCore::DOMDataStore::domNodeMap): * bindings/v8/StaticDOMDataStore.cpp: (WebCore::StaticDOMDataStore::StaticDOMDataStore): * bindings/v8/StaticDOMDataStore.h: * bindings/v8/V8DOMMap.cpp: (WebCore::getDOMNodeMap): * bindings/v8/V8DOMMap.h: (WebCore::AbstractWeakReferenceMap::AbstractWeakReferenceMap): (WebCore::AbstractWeakReferenceMap::weakReferenceCallback): (WebCore::WeakReferenceMap::WeakReferenceMap): (WebCore::WeakReferenceMap::set): (WebCore::WeakReferenceMap::visit): * bindings/v8/V8DOMWrapper.cpp: (WebCore::V8DOMWrapper::convertDocumentToV8Object): (WebCore::getWrapper): (WebCore::V8DOMWrapper::convertNodeToV8Object): (WebCore::V8DOMWrapper::convertNewNodeToV8Object): * bindings/v8/V8DOMWrapper.h: 2010-01-27 Kinuko Yasuda Reviewed by Eric Seidel. Add key event mappings for numpad keys for Gtk and Chromium/Gtk. http://bugs.webkit.org/show_bug.cgi?id=28247 Test: fast/events/keydown-numpad-keys.html * platform/chromium/KeyCodeConversionGtk.cpp: (WebCore::windowsKeyCodeForKeyEvent): * platform/gtk/KeyEventGtk.cpp: (WebCore::windowsKeyCodeForKeyEvent): 2010-01-27 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: migrate from SourceFrame to SourceFrame2. https://bugs.webkit.org/show_bug.cgi?id=34171 * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * bindings/js/JSInspectorFrontendHostCustom.cpp: * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp: * inspector/InspectorFrontendHost.cpp: * inspector/InspectorFrontendHost.h: * inspector/InspectorFrontendHost.idl: * inspector/front-end/InspectorBackendStub.js: * inspector/front-end/InspectorFrontendHostStub.js: * inspector/front-end/ResourceView.js: (WebInspector.ResourceView.prototype._innerSelectContentTab): * inspector/front-end/ResourcesPanel.js: (WebInspector.getResourceContent): * inspector/front-end/ScriptView.js: (WebInspector.ScriptView): (WebInspector.ScriptView.prototype.setupSourceFrameIfNeeded): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._sidebarResizeDrag): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame): (WebInspector.SourceFrame.prototype.set executionLine): (WebInspector.SourceFrame.prototype.revealLine): (WebInspector.SourceFrame.prototype.addBreakpoint): (WebInspector.SourceFrame.prototype.removeBreakpoint): (WebInspector.SourceFrame.prototype.addMessage): (WebInspector.SourceFrame.prototype.clearMessages): (WebInspector.SourceFrame.prototype.sizeToFitContentHeight): (WebInspector.SourceFrame.prototype.setContent): (WebInspector.SourceFrame.prototype.findSearchMatches): (WebInspector.SourceFrame.prototype._collectRegexMatches): (WebInspector.SourceFrame.prototype.setSelection): (WebInspector.SourceFrame.prototype._incrementMessageRepeatCount): (WebInspector.SourceFrame.prototype._addExistingMessagesToSource): (WebInspector.SourceFrame.prototype._addMessageToSource): (WebInspector.SourceFrame.prototype._addExistingBreakpointsToSource): (WebInspector.SourceFrame.prototype._addBreakpointToSource): (WebInspector.SourceFrame.prototype._removeBreakpointFromSource): (WebInspector.SourceFrame.prototype._contextMenu.addConditionalBreakpoint): (WebInspector.SourceFrame.prototype._contextMenu): (WebInspector.SourceFrame.prototype._toggleBreakpoint): (WebInspector.SourceFrame.prototype._editBreakpointCondition.committed): (WebInspector.SourceFrame.prototype._editBreakpointCondition.dismissed): (WebInspector.SourceFrame.prototype._editBreakpointCondition): (WebInspector.SourceFrame.prototype._showBreakpointConditionPopup): (WebInspector.SourceFrame.prototype._createConditionElement): (WebInspector.SourceFrame.prototype._keyDown): (WebInspector.SourceFrame.prototype._evalSelectionInCallFrame): (WebInspector.SourceFrame.prototype._breakpointChanged): (WebInspector.SourceFrame.prototype.resize): (WebInspector.BreakpointLineNumberDecorator): (WebInspector.BreakpointLineNumberDecorator.prototype.decorate): (WebInspector.BreakpointLineNumberDecorator.prototype._paintBreakpoint): (WebInspector.BreakpointLineNumberDecorator.prototype._paintProgramCounter): (WebInspector.BreakpointLineNumberDecorator.prototype.mouseDown): (WebInspector.BreakpointLineNumberDecorator.prototype.contextMenu): (WebInspector.ExecutionLineDecorator): (WebInspector.ExecutionLineDecorator.prototype.decorate): * inspector/front-end/SourceFrame2.js: Removed. * inspector/front-end/SourceView.js: (WebInspector.SourceView): (WebInspector.SourceView.prototype.show): (WebInspector.SourceView.prototype.resize): (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): (WebInspector.SourceView.prototype._contentLoaded): (WebInspector.SourceView.prototype.performSearch.findSearchMatches): (WebInspector.SourceView.prototype.performSearch): (WebInspector.SourceView.prototype._jumpToSearchResult): (WebInspector.SourceView.prototype._sourceFrameSetupFinished): * inspector/front-end/TextEditor.js: (WebInspector.TextEditor.prototype._mouseDown): (WebInspector.TextEditor.prototype._copy.delayCopy): (WebInspector.TextEditor.prototype._copy): (WebInspector.TextEditor.prototype._cut): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: 2010-01-27 Dominik Röttsches Reviewed by Xan Lopez. [Gtk] For removing ICU, implement IDN support by means of libidn https://bugs.webkit.org/show_bug.cgi?id=31470 In order to avoid a new dependency, IDN support now based on GLib for the GLib unicode backend. * platform/KURL.cpp: (WebCore::appendEncodedHostname): 2010-01-27 Simon Hausmann Reviewed by Kenneth Rohde Christiansen. [Qt] For package builds use the .def files on Symbian * WebCore.pro: 2010-01-27 Alexander Pavlov Reviewed by Timothy Hatcher. Avoid watch expressions duplication https://bugs.webkit.org/show_bug.cgi?id=33996 * inspector/front-end/WatchExpressionsSidebarPane.js: (WebInspector.WatchExpressionsSidebarPane.prototype._settingsLoaded): 2010-01-27 Marcus Bulach Reviewed by Dimitri Glazkov. Adds EventSource bindings for V8 https://bugs.webkit.org/show_bug.cgi?id=33695 No new tests (existing layout tests for EventSource should pass). * Android.v8bindings.mk: * WebCore.gypi: * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/DOMObjectsInclude.h: * bindings/v8/DerivedSourcesAllInOne.cpp: * bindings/v8/V8DOMWrapper.cpp: * bindings/v8/V8DOMWrapper.h: * bindings/v8/V8Index.cpp: * bindings/v8/V8Index.h: * bindings/v8/WorkerContextExecutionProxy.cpp: * bindings/v8/custom/V8CustomBinding.h: * bindings/v8/custom/V8EventSourceConstructor.cpp: Added. * bindings/v8/custom/V8EventSourceCustom.cpp: Added. 2010-01-27 Kent Hansen Reviewed by Simon Hausmann. [Qt] Meta-methods can't be introspected using ES5 API https://bugs.webkit.org/show_bug.cgi?id=34087 Add getOwnPropertyDescriptor() and getOwnPropertyNames() reimplementations. Tests are in WebKit/qt/tests/qwebframe * bridge/qt/qt_runtime.cpp: (JSC::Bindings::QtRuntimeMetaMethod::getOwnPropertyDescriptor): (JSC::Bindings::QtRuntimeMetaMethod::getOwnPropertyNames): (JSC::Bindings::QtRuntimeConnectionMethod::getOwnPropertyDescriptor): (JSC::Bindings::QtRuntimeConnectionMethod::getOwnPropertyNames): * bridge/qt/qt_runtime.h: 2010-01-27 Tony Chang Reviewed by Eric Seidel. Fix a crash when trying to indent a block element that was contained in a list. This was happening because enclosingBlock() in htmlediting.cpp can return the current the same Node when a block element (like an
or a ) is passed in. This causes the indent command to think that it is not in a list item. Work around this by checking to see if enclosingBlock returned the same Node. https://bugs.webkit.org/show_bug.cgi?id=32390 Test: editing/execCommand/indent-block-in-list.html * editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::tryIndentingAsListItem): 2010-01-27 Jocelyn Turcotte Reviewed by Tor Arne Vestbø. [Qt] Add the "d" suffix to QtWebKit's dll on Windows. * WebCore.pro: 2010-01-27 Matt Perry Reviewed by Eric Seidel. Fix a bug where dispatchDocumentElementAvailable was fired for fragment parsing on XML documents. https://bugs.webkit.org/show_bug.cgi?id=33920 Tests: userscripts/script-not-run-for-fragments.html userscripts/script-run-at-start.html * dom/XMLTokenizerLibxml2.cpp: (WebCore::XMLTokenizer::startElementNs): 2010-01-27 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: Improve SourceHTMLTokenizer so that it treats script tag well. https://bugs.webkit.org/show_bug.cgi?id=34177 * inspector/front-end/SourceHTMLTokenizer.js: (WebInspector.SourceHTMLTokenizer): (WebInspector.SourceHTMLTokenizer.prototype._isAttribute): (WebInspector.SourceHTMLTokenizer.prototype._isAttributeValue): (WebInspector.SourceHTMLTokenizer.prototype._setAttributeValue): (WebInspector.SourceHTMLTokenizer.prototype._setAttribute): (WebInspector.SourceHTMLTokenizer.prototype._stringToken): (WebInspector.SourceHTMLTokenizer.prototype.nextToken): * inspector/front-end/SourceHTMLTokenizer.re2js: 2010-01-26 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: nuke quarantine wrappers. https://bugs.webkit.org/show_bug.cgi?id=34203 * Android.jscbindings.mk: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * bindings/js/JSBindingsAllInOne.cpp: * bindings/js/JSInspectedObjectWrapper.cpp: Removed. * bindings/js/JSInspectedObjectWrapper.h: Removed. * bindings/js/JSInspectorCallbackWrapper.cpp: Removed. * bindings/js/JSInspectorCallbackWrapper.h: Removed. * bindings/js/JSQuarantinedObjectWrapper.cpp: Removed. * bindings/js/JSQuarantinedObjectWrapper.h: Removed. 2010-01-27 Alexey Proskuryakov Revert r53899 (HashMap key checks) and subsequent build fixes, because they make SVG tests crash in release builds. * css/CSSStyleSelector.cpp: (WebCore::CSSRuleSet::getIDRules): (WebCore::CSSRuleSet::getClassRules): (WebCore::CSSRuleSet::getTagRules): (WebCore::CSSStyleSelector::keyframeStylesForAnimation): * dom/CheckedRadioButtons.cpp: (WebCore::CheckedRadioButtons::checkedButtonForGroup): (WebCore::CheckedRadioButtons::removeButton): * dom/ContainerNodeAlgorithms.h: (WebCore::removeAllChildrenInContainer): * dom/Document.cpp: (WebCore::Document::getElementById): (WebCore::Document::removeElementById): (WebCore::Document::removeImageMap): (WebCore::Document::getImageMap): (WebCore::Document::nameCollectionInfo): * dom/Document.h: (WebCore::Document::collectionInfo): * editing/markup.cpp: (WebCore::shouldAddNamespaceAttr): (WebCore::appendNamespace): (WebCore::appendStartMarkup): * html/CollectionCache.cpp: * html/CollectionCache.h: * html/HTMLCollection.cpp: (WebCore::HTMLCollection::namedItems): (WebCore::HTMLCollection::nextNamedItem): * html/HTMLFormCollection.cpp: (WebCore::HTMLFormCollection::formCollectionInfo): * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::collectionInfo): * loader/loader.cpp: (WebCore::Loader::load): (WebCore::Loader::servePendingRequests): (WebCore::Loader::nonCacheRequestInFlight): (WebCore::Loader::nonCacheRequestComplete): (WebCore::Loader::cancelRequests): * page/animation/CompositeAnimation.cpp: (WebCore::CompositeAnimation::clearRenderer): (WebCore::CompositeAnimation::updateKeyframeAnimations): (WebCore::CompositeAnimation::animate): (WebCore::CompositeAnimation::getAnimatedStyle): (WebCore::CompositeAnimation::setAnimating): (WebCore::CompositeAnimation::timeToNextService): (WebCore::CompositeAnimation::getAnimationForProperty): (WebCore::CompositeAnimation::suspendAnimations): (WebCore::CompositeAnimation::resumeAnimations): (WebCore::CompositeAnimation::isAnimatingProperty): (WebCore::CompositeAnimation::pauseAnimationAtTime): (WebCore::CompositeAnimation::numberOfActiveAnimations): * platform/TreeShared.h: (WebCore::TreeShared::~TreeShared): (WebCore::TreeShared::deref): 2010-01-25 Philippe Normand Reviewed by Eric Seidel. autobuffer value not forwarded media element to MediaPlayer https://bugs.webkit.org/show_bug.cgi?id=33889 * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::loadResource): Forward autobuffer value to MediaPlayer instance. * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::load): Forward autobuffer and preservesPitch values to newly created platform media player instance. 2010-01-25 Philippe Normand Reviewed by Eric Seidel. [Gtk] media/video-reverse-play-duration.html fails on and off on Gtk buildbots https://bugs.webkit.org/show_bug.cgi?id=34086 Cache media duration and fix didEnd() in case of reverse playback. When EOS was reached but in case of reverse playback the position is not always 0. So to not confuse the HTMLMediaElement we synchronize position and duration values. * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): (WebCore::MediaPlayerPrivate::duration): (WebCore::MediaPlayerPrivate::updateStates): (WebCore::MediaPlayerPrivate::didEnd): (WebCore::MediaPlayerPrivate::durationChanged): * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h: 2010-01-27 Alexey Proskuryakov * WebCore.xcodeproj/project.pbxproj: Actually land the change to add ContainerNodeAlgorithms.h (it's "svn resolved", not "svn revert"!). 2010-01-26 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=34150 WebKit needs a mechanism to catch stale HashMap entries * WebCore.xcodeproj/project.pbxproj: Added ContainerNodeAlgorithms.h to the project to make it easier to search for. * css/CSSStyleSelector.cpp: (WebCore::CSSRuleSet::getIDRules): (WebCore::CSSRuleSet::getClassRules): (WebCore::CSSRuleSet::getTagRules): (WebCore::CSSStyleSelector::keyframeStylesForAnimation): * dom/CheckedRadioButtons.cpp: (WebCore::CheckedRadioButtons::checkedButtonForGroup): (WebCore::CheckedRadioButtons::removeButton): * dom/Document.cpp: (WebCore::Document::getElementById): (WebCore::Document::removeElementById): (WebCore::Document::removeImageMap): (WebCore::Document::getImageMap): (WebCore::Document::nameCollectionInfo): * dom/Document.h: (WebCore::Document::collectionInfo): * editing/markup.cpp: (WebCore::shouldAddNamespaceAttr): (WebCore::appendNamespace): (WebCore::appendStartMarkup): * html/HTMLCollection.cpp: (WebCore::HTMLCollection::namedItems): (WebCore::HTMLCollection::nextNamedItem): * html/HTMLFormCollection.cpp: (WebCore::HTMLFormCollection::formCollectionInfo): * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::collectionInfo): * loader/loader.cpp: (WebCore::Loader::load): (WebCore::Loader::servePendingRequests): (WebCore::Loader::nonCacheRequestInFlight): (WebCore::Loader::nonCacheRequestComplete): (WebCore::Loader::cancelRequests): * page/animation/CompositeAnimation.cpp: (WebCore::CompositeAnimation::clearRenderer): (WebCore::CompositeAnimation::updateKeyframeAnimations): (WebCore::CompositeAnimation::animate): (WebCore::CompositeAnimation::getAnimatedStyle): (WebCore::CompositeAnimation::setAnimating): (WebCore::CompositeAnimation::timeToNextService): (WebCore::CompositeAnimation::getAnimationForProperty): (WebCore::CompositeAnimation::suspendAnimations): (WebCore::CompositeAnimation::resumeAnimations): (WebCore::CompositeAnimation::isAnimatingProperty): (WebCore::CompositeAnimation::pauseAnimationAtTime): (WebCore::CompositeAnimation::numberOfActiveAnimations): Added checkConsistency checks before lookups in HashMaps with AtomicStringImpl* keys. * dom/ContainerNodeAlgorithms.h: (WebCore::removeAllChildrenInContainer): Be sure to notify about removed child nodes that can be deleted immediately. * html/CollectionCache.cpp: (WebCore::CollectionCache::checkConsistency): * html/CollectionCache.h: Added a checkConsistency() method that checks both HashMaps in the cache. * platform/TreeShared.h: (WebCore::TreeShared::~TreeShared): Assert that m_refCount is null. Since Nodes can be destroyed with operator delete (as done in ContainerNodeAlgorithms), this is important to check. (WebCore::TreeShared::deref): Assert that m_refCount isn't already negative. 2010-01-26 Daniel Bates Reviewed by Tor Arne Vestbø. https://bugs.webkit.org/show_bug.cgi?id=29564 [Qt] Fixes an issue where the height of