ChangeLog-2010-01-29 [plain text]
2010-01-29 Mark Rowe <mrowe@apple.com>
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 <sfalken@apple.com>
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 <jpetsovits@rim.com>
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 <efidler@rim.com>.
* 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 <jorlow@chromium.org>
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 <bweinstein@apple.com>
Reviewed by Adam Roben.
Drag and Drop: Windows uses "stop" sign as cursor when dragging
https://bugs.webkit.org/show_bug.cgi?id=34305
<rdar://problem/7589672>
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 <victorw@chromium.org>
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 <ap@apple.com>
Reviewed by Dan Bernstein.
<rdar://problem/7441982> 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 <sfalken@apple.com>
Build fix.
* page/Geolocation.cpp:
(WebCore::Geolocation::startUpdating):
2010-01-29 Steve Falkenburg <sfalken@apple.com>
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 <jhoneycutt@apple.com>
MSAA: Crash when posting a notification for a detached object
https://bugs.webkit.org/show_bug.cgi?id=34309
<rdar://problem/7409759>
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 <darin@chromium.org>
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 <tony@chromium.org>
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 <atwilson@chromium.org>
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 <benm@google.com>
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 <apavlov@chromium.org>
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 <apavlov@chromium.org>
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 <jpetsovits@rim.com>
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 <efidler@rim.com>. VGRect/VGMatrix and the bulk
of the transformations code by Adam Treat <atreat@rim.com>.
Preliminary drawFocusRing() implementation by Yong Li <yoli@rim.com>.
* 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 <pnormand@igalia.com>
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 <oswald.buddenhagen@nokia.com>
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 <apavlov@chromium.org>
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 <pnormand@igalia.com>
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 <pfeldman@chromium.org>
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 <pfeldman@chromium.org>
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 <yurys@chromium.org>
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 <darin@chromium.org>
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 <nicholas.young@nokia.com>
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 <oliver@apple.com>
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 <hayato@chromium.org>
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 <michaeln@google.com>
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 <kkanetkar@chromium.org>
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 <steveblock@google.com>
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 <steveblock@google.com>
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 <avi@chromium.org>
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 <enrica@apple.com>
Reviewed by Maciej Stachowiak.
Huge plain text pastes are slow
<rdar://problem/5195056>
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 <jorlow@chromium.org>
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 <bfulgham@webkit.org>
Unreviewed build fix after r53411 on WinCairo.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::frameCount):
2010-01-28 Nayan Kumar K <nayankk@gmail.com>
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 <alex@milowski.com>
Reviewed by Eric Seidel.
Update to CSS to remove unnecessary line-height settings
* css/mathml.css:
2010-01-28 Steve Block <steveblock@google.com>
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 <sebastian.droege@collabora.co.uk>
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 <ossy@webkit.org>
[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 <aroben@apple.com>
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 <oliver@apple.com>
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 <oliver@apple.com>
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 <evan@chromium.org>
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 <laszlo.1.gombos@nokia.com>
Unreviewed build fix.
[Qt] Build fix if websockets support is turned off after r53947.
* WebCore.pro:
2010-01-28 Dimitri Glazkov <dglazkov@chromium.org>
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 <steveblock@google.com>
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 <yurys@chromium.org>
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 <abarth@webkit.org>
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 <nzimmermann@rim.com>
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 <aa@chromium.org>
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 <simon.fraser@apple.com>
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 <hyatt@apple.com>
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 <tkent@chromium.org>
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 <apavlov@chromium.org>
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 <mnaganov@chromium.org>
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 <zecke@selfish.org>
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 <benm@google.com>
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 <yurys@chromium.org>
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 <tkent@chromium.org>
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 <darin@chromium.org>
Fix chromium build bustage (take 2).
* bindings/scripts/CodeGeneratorV8.pm: Really treat V8CustomGetter like CustomGetter in all cases.
2010-01-27 Darin Fisher <darin@chromium.org>
Fix chromium build bustage.
* bindings/scripts/CodeGeneratorV8.pm: Treat V8CustomGetter like CustomGetter in all cases.
2010-01-27 Oliver Hunt <oliver@apple.com>
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 <nicholas.young@nokia.com>
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 <jam@chromium.org>
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 <tkent@chromium.org>
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 <sfalken@apple.com>
Windows Debug_All build fix.
* platform/graphics/win/WKCACFLayer.cpp:
* platform/graphics/win/WKCACFLayerRenderer.cpp:
2010-01-27 Evan Martin <evan@chromium.org>
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 <ap@apple.com>
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 <brian@kakai.com>
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 <antonm@chromium.org>
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 <darin@chromium.org>
Fix Chromium build bustage.
* rendering/RenderBoxModelObject.cpp: Add wtf/CurrentTime.h include.
2010-01-26 Darin Fisher <darin@chromium.org>
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 <oliver@apple.com>
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 <yael.aharon@nokia.com>
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 <ager@chromium.org>
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 <yurys@chromium.org>
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 <antonm@google.com>
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 <kinuko@chromium.org>
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 <pfeldman@chromium.org>
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 <dominik.roettsches@access-company.com>
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 <simon.hausmann@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] For package builds use the .def files on Symbian
* WebCore.pro:
2010-01-27 Alexander Pavlov <apavlov@chromium.org>
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 <bulach@chromium.org>
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 <kent.hansen@nokia.com>
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 <tony@chromium.org>
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 <hr> or a <table>) 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 <jocelyn.turcotte@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Add the "d" suffix to QtWebKit's dll on Windows.
* WebCore.pro:
2010-01-27 Matt Perry <mpcomplete@chromium.org>
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 <pfeldman@chromium.org>
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 <pfeldman@chromium.org>
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 <ap@apple.com>
Revert r53899 (HashMap<AtomicStringImpl*, Value> 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 <pnormand@igalia.com>
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 <pnormand@igalia.com>
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 <ap@apple.com>
* WebCore.xcodeproj/project.pbxproj: Actually land the change to add ContainerNodeAlgorithms.h
(it's "svn resolved", not "svn revert"!).
2010-01-26 Alexey Proskuryakov <ap@apple.com>
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 <dbates@webkit.org>
Reviewed by Tor Arne Vestbø.
https://bugs.webkit.org/show_bug.cgi?id=29564
[Qt] Fixes an issue where the height of <button>- and
<input type="button">- elements are fixed to the height of the
button label font plus padding. That is, the CSS height property
is being ignored.
Instead, we should honor the user-specified height, if appropriate
for the platform and context. Notice, the Mac ports do not honor the
height for <input type="button"> elements unless a border and/or
background is also specified.
Test: fast/css/button-height.html
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::adjustButtonStyle):
2010-01-26 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Timothy Hatcher.
Enable the Audits panel via a shortcut (Cmd/Ctrl+Alt+A)
https://bugs.webkit.org/show_bug.cgi?id=34158
* inspector/front-end/inspector.js:
(WebInspector.documentKeyDown):
2010-01-26 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
HTMLInputElement::valueAsNumber support except type=datetime-local.
https://bugs.webkit.org/show_bug.cgi?id=32696
Tests: fast/forms/input-valueasnumber-date.html
fast/forms/input-valueasnumber-datetime.html
fast/forms/input-valueasnumber-month.html
fast/forms/input-valueasnumber-number.html
fast/forms/input-valueasnumber-range.html
fast/forms/input-valueasnumber-time.html
fast/forms/input-valueasnumber-unsupported.html
fast/forms/input-valueasnumber-week.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::valueAsNumber):
According to the specification, we should return NaN for invalid values.
(WebCore::HTMLInputElement::setValueAsNumber):
According to the specification, throws NOT_SUPPORTED_ERR for Infinitiy or NaN,
and throws INVALID_STATE_ERR for unsupported types.
(WebCore::HTMLInputElement::formStringToDouble):
According to the step 14 of Real Number in the specification, we
should round -0 to 0.
* html/HTMLInputElement.h: Declare valueAsNumber() and setValueAsNumber().
* html/HTMLInputElement.idl: Add valueAsNumber.
2010-01-26 Dave Hyatt <hyatt@apple.com>
Reviewed by Oliver Hunt.
Make sure there is a lock on serialize in SerializedScriptValueData, since type errors can be created when
exceptions are thrown.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValueData::serialize):
2010-01-26 Kent Tamura <tkent@chromium.org>
Reviewed by Eric Seidel.
Add Date type support for Objective-C binding.
https://bugs.webkit.org/show_bug.cgi?id=32810
The Date type in IDLs is mapped to NSTimeInterval in Objective-C.
* bindings/objc/DOMInternal.h: Add kit() and core() for NSTimeInterval.
* bindings/scripts/CodeGenerator.pm: Make Date a primitive type.
* bindings/scripts/CodeGeneratorJS.pm: Move some code for the CodeGeenrator.pm change.
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm: Move some code for the CodeGeenrator.pm change.
* html/HTMLInputElement.idl: Remove Objective-C exclusion for valueAsDate.
2010-01-26 Dmitry Titov <dimich@chromium.org>
Not reviewed, attempt to fix Tiger build.
* rendering/RenderTreeAsText.cpp:
(WebCore::write): Use UNUSED_PARAM macros to prevent compiler warning on targets without accelerated compositing.
2010-01-26 Roland Steiner <rolandsteiner@chromium.org>
Reviewed by Darin Adler.
Incorrect boolean expression in isMailBlockquote() (WebCore/htmlediting.cpp)
https://bugs.webkit.org/show_bug.cgi?id=34156
No new tests (minor code change).
* editing/htmlediting.cpp:
(WebCore::isMailBlockquote):
2010-01-26 Peter Kasting <pkasting@google.com>
Reviewed by David Levin.
Handle broken images more correctly in the open-source image decoders.
https://bugs.webkit.org/show_bug.cgi?id=33747
No tests since Safari doesn't use these decoders and there's already a
broken-image test in the tree.
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::createFrameAtIndex): No need to check isSizeAvailable() since size() is now always safe.
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageDecoder::size): Don't assert that the bitmap is valid; we don't need a complete successful decode to be able to give info about the size.
* platform/image-decoders/qt/RGBA32BufferQt.cpp:
(WebCore::RGBA32Buffer::setSize): Don't set the frame to complete on failure, since it's not complete, but empty, and callers can better handle empty frames.
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
(WebCore::RGBA32Buffer::setSize): Don't set the frame to complete on failure, since it's not complete, but empty, and callers can better handle empty frames.
2010-01-26 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Synchronize Qt/Gtk build systems with Mac/Win, should fix Qt compilation. Gtk results still pending.
* GNUmakefile.am:
* WebCore.pro:
2010-01-26 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Attempt to fix V8 - change SetterMethod function signatures, just like it has been done for JSSVGPODTypeWrapper.
* bindings/v8/V8SVGPODTypeWrapper.h:
2010-01-26 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Revert Base.xcconfig changes, was not meant to be committed.
* Configurations/Base.xcconfig:
2010-01-26 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Oliver Hunt.
SVG consumes way too much memory to store animated properties in the DOM
https://bugs.webkit.org/show_bug.cgi?id=34188
Shrink WebCore library size to 75% (measured in debug builds) and reduce SVG memory usage to <25%.
Adding Oliver testcase as manual-tests/svg-node-count-vs-scroll.xhtml, which creates an arbitary number of
rects (50.000 <rect> elements added to the DOM by default) - memory usage down to 111M from 503M (RPRVT).
The SVG DOM side is almost fine, still some optimizations possible, that will be implemented soon - next
target is the SVG render tree, there are plenty of possibilities to reduce memory usage there.
Redesign the way we store animated properties in the individual SVG*Element files. Short story: In order
to support SVG DOM through the bindings (e.g. JS) we need to associate SVGAnimatedProperty objects with
the SVGElement object that created it - we used to store this pointer directly in the SVGAnimatedProperty.
This means, every SVGAnimatedProperty stored in a SVGRectElement, stored a pointer to the SVGRectElement, resulting
in excessive memory usage. This is now properly implemented, without wasting tons of memory. Unfortunately this
requires touching all SVG*Element files.
Detailed list of changes:
- Remove template bloat by not specializing class templates for each attributeName/tagName combination. Instead
SVGAnimatedProperty is a non-specialized template class now, only depending on the AnimatedType (ie. SVGLength for SVGAnimatedLength)
-> This heavily reduces the generated code, thus shrinking WebCore size. I hope we can build windows again without SVGAllInOne.cpp
- Remove "exportStrings" / "exportString" handling from make_names.pl - SVG defined string literals for each QualifiedName,
in order to use template specialization based on "const char*" parameters. All that bloat is gone, so there's no need for it anymore.
- Redesign SVGAnimatedProperty so it does not need any back-pointers to the SVGElement that created it
- Don't actually store the XML DOM attribute name associated with a SVG DOM property in SVGAnimatedProperty, move the associatedAttributeName()
function inside the macro declaration and just return the passed macro parameter DOMAttribute there, storing is inefficient and useless.
- Remove SynchronizablePropertyController, which was living in SVGElement as member variable, keeping a HashMap<AttributeName, SVGAnimatedProperty>.
It was needed before to lookup a SVGAnimatedProperty for a XML DOM attribute, in order to synchronize SVG <-> XML dom properties/attributes.
Instead just add a "synchronizeProperty(const QualifiedName&)" method to all SVG*Element classes. As each SVG*Element class knows about its
animated properties it can just ask them to synchronize themselves - no need for any dynamic lookups anymore.
- Remove SynchronizableTypeWrapper which added more complexity for the sake of SVG <-> XML DOM synchronization, all replaced by synchronizeProperty.
- Pass around any POD objects as const references, instead of copying them for no reason.
- Clean up SVGAnimatedProperty, splitting up into SVGAnimatedProperty/PropertySynchronizer/PropertyTraits.
- Remove baseValue/setBaseValue code from SVGDocumentExtensions, not needed anymore.
... and tons of changes to all SVG*Element classes, adapting to the new way of handling animated properties.
* GNUmakefile.am: Remove Synchronizable* from build, add new SVGAnimatedPropertySynchronizer/Traits files
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSSVGPODTypeWrapper.h: Change synchronization callback signatures, as we pass around const-references now.
* dom/Element.cpp: Let updateAnimatedSVGAttribute take a QualifiedName instead of pure Strings.
(WebCore::Element::getAttribute):
(WebCore::Element::hasAttributes):
* dom/Element.h:
(WebCore::Element::updateAnimatedSVGAttribute):
(WebCore::Element::attributes):
* dom/make_names.pl: Remove SVG specific "exportString" / "exportStrings" functionality, see above.
* html/HTMLAttributeNames.in: Remove "exportString" tag from "className" attribute.
* manual-tests/svg-node-count-vs-scroll.xhtml: Added. Can be used to verify memory consumption with a lot of DOM objects.
* mathml/mathattrs.in: MathML doesn't need "exportStrings" - remove it.
* mathml/mathtags.in: Ditto.
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::SVGAElement):
(WebCore::SVGAElement::synchronizeProperty):
* svg/SVGAElement.h:
* svg/SVGAllInOne.cpp: Remove SynchronizablePropertyController.cpp
* svg/SVGAltGlyphElement.cpp:
(WebCore::SVGAltGlyphElement::SVGAltGlyphElement):
(WebCore::SVGAltGlyphElement::synchronizeProperty):
* svg/SVGAltGlyphElement.h:
* svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::applyResultsToTarget):
* svg/SVGAnimatedProperty.h: Rewritten, see above for details.
(WebCore::SVGAnimatedPropertyTearOff::create):
(WebCore::SVGAnimatedPropertyTearOff::setBaseVal):
(WebCore::SVGAnimatedPropertyTearOff::setAnimVal):
(WebCore::SVGAnimatedPropertyTearOff::baseVal):
(WebCore::SVGAnimatedPropertyTearOff::animVal):
(WebCore::SVGAnimatedPropertyTearOff::associatedAttributeName):
(WebCore::SVGAnimatedPropertyTearOff::SVGAnimatedPropertyTearOff):
(WebCore::SVGAnimatedPropertyTearOff::~SVGAnimatedPropertyTearOff):
(WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
(WebCore::SVGAnimatedProperty::SVGAnimatedProperty):
(WebCore::SVGAnimatedProperty::value):
(WebCore::SVGAnimatedProperty::baseValue):
(WebCore::SVGAnimatedProperty::setValue):
(WebCore::SVGAnimatedProperty::setBaseValue):
(WebCore::SVGAnimatedProperty::shouldSynchronize):
(WebCore::SVGAnimatedProperty::setShouldSynchronize):
* svg/SVGAnimatedPropertySynchronizer.h: Added.
(WebCore::):
* svg/SVGAnimatedPropertyTraits.h: Added.
(WebCore::):
* svg/SVGAnimatedTemplate.h: Move SVGAnimatedPropertyTraits into its own file.
(WebCore::SVGAnimatedTemplate::forgetWrapper):
(WebCore::lookupOrCreateWrapper):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::SVGAnimationElement):
(WebCore::SVGAnimationElement::synchronizeProperty):
* svg/SVGAnimationElement.h:
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::SVGCircleElement):
(WebCore::SVGCircleElement::synchronizeProperty):
* svg/SVGCircleElement.h:
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::SVGClipPathElement):
(WebCore::SVGClipPathElement::synchronizeProperty):
* svg/SVGClipPathElement.h:
* svg/SVGComponentTransferFunctionElement.cpp:
(WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
(WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute):
(WebCore::SVGComponentTransferFunctionElement::synchronizeProperty):
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::SVGCursorElement):
(WebCore::SVGCursorElement::synchronizeProperty):
* svg/SVGCursorElement.h:
* svg/SVGDefsElement.cpp:
(WebCore::SVGDefsElement::SVGDefsElement):
(WebCore::SVGDefsElement::synchronizeProperty):
* svg/SVGDefsElement.h:
* svg/SVGDocumentExtensions.h:
* svg/SVGElement.cpp: Adapt to synchronization changes: use synchronizeProperty() call, instead of SynchronizablePropertyController.
(WebCore::SVGElement::updateAnimatedSVGAttribute):
* svg/SVGElement.h: Don't store SynchronizablePropertyController anymore, it's gone.
(WebCore::SVGElement::synchronizeProperty):
(WebCore::SVGElement::setSynchronizedSVGAttributes):
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::SVGEllipseElement):
(WebCore::SVGEllipseElement::synchronizeProperty):
* svg/SVGEllipseElement.h:
* svg/SVGExternalResourcesRequired.cpp:
* svg/SVGExternalResourcesRequired.h:
* svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::SVGFEBlendElement):
(WebCore::SVGFEBlendElement::synchronizeProperty):
* svg/SVGFEBlendElement.h:
* svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
(WebCore::SVGFEColorMatrixElement::synchronizeProperty):
* svg/SVGFEColorMatrixElement.h:
* svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement):
(WebCore::SVGFEComponentTransferElement::synchronizeProperty):
* svg/SVGFEComponentTransferElement.h:
* svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::SVGFECompositeElement):
(WebCore::SVGFECompositeElement::parseMappedAttribute):
(WebCore::SVGFECompositeElement::synchronizeProperty):
* svg/SVGFECompositeElement.h:
* svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
(WebCore::SVGFEDiffuseLightingElement::synchronizeProperty):
* svg/SVGFEDiffuseLightingElement.h:
* svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
(WebCore::SVGFEDisplacementMapElement::synchronizeProperty):
* svg/SVGFEDisplacementMapElement.h:
* svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
(WebCore::SVGFEGaussianBlurElement::synchronizeProperty):
* svg/SVGFEGaussianBlurElement.h:
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::SVGFEImageElement):
(WebCore::SVGFEImageElement::synchronizeProperty):
* svg/SVGFEImageElement.h:
* svg/SVGFELightElement.cpp:
(WebCore::SVGFELightElement::SVGFELightElement):
(WebCore::SVGFELightElement::synchronizeProperty):
* svg/SVGFELightElement.h:
* svg/SVGFEMergeNodeElement.cpp:
(WebCore::SVGFEMergeNodeElement::SVGFEMergeNodeElement):
(WebCore::SVGFEMergeNodeElement::synchronizeProperty):
* svg/SVGFEMergeNodeElement.h:
* svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::SVGFEMorphologyElement):
(WebCore::SVGFEMorphologyElement::synchronizeProperty):
* svg/SVGFEMorphologyElement.h:
* svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
(WebCore::SVGFEOffsetElement::synchronizeProperty):
* svg/SVGFEOffsetElement.h:
* svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
(WebCore::SVGFESpecularLightingElement::synchronizeProperty):
* svg/SVGFESpecularLightingElement.h:
* svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::SVGFETileElement):
(WebCore::SVGFETileElement::synchronizeProperty):
* svg/SVGFETileElement.h:
* svg/SVGFETurbulenceElement.cpp:
(WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
(WebCore::SVGFETurbulenceElement::synchronizeProperty):
* svg/SVGFETurbulenceElement.h:
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::SVGFilterElement):
(WebCore::SVGFilterElement::synchronizeProperty):
* svg/SVGFilterElement.h:
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
(WebCore::SVGFilterPrimitiveStandardAttributes::synchronizeProperty):
* svg/SVGFilterPrimitiveStandardAttributes.h:
* svg/SVGFitToViewBox.cpp:
* svg/SVGFitToViewBox.h:
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::SVGFontElement):
(WebCore::SVGFontElement::synchronizeProperty):
* svg/SVGFontElement.h:
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
(WebCore::SVGForeignObjectElement::synchronizeProperty):
* svg/SVGForeignObjectElement.h:
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::SVGGElement):
(WebCore::SVGGElement::synchronizeProperty):
* svg/SVGGElement.h:
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::SVGGradientElement):
(WebCore::SVGGradientElement::synchronizeProperty):
* svg/SVGGradientElement.h:
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::SVGImageElement):
(WebCore::SVGImageElement::synchronizeProperty):
* svg/SVGImageElement.h:
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::SVGLineElement):
(WebCore::SVGLineElement::synchronizeProperty):
* svg/SVGLineElement.h:
* svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
(WebCore::SVGLinearGradientElement::synchronizeProperty):
* svg/SVGLinearGradientElement.h:
* svg/SVGList.h: Adapt to const-reference changes.
(WebCore::SVGPODListItem::setValue):
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::SVGMPathElement):
(WebCore::SVGMPathElement::synchronizeProperty):
* svg/SVGMPathElement.h:
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::SVGMarkerElement):
(WebCore::SVGMarkerElement::synchronizeProperty):
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::SVGMaskElement):
(WebCore::SVGMaskElement::synchronizeProperty):
* svg/SVGMaskElement.h:
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::SVGPathElement):
(WebCore::SVGPathElement::synchronizeProperty):
* svg/SVGPathElement.h:
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::SVGPatternElement):
(WebCore::SVGPatternElement::synchronizeProperty):
* svg/SVGPatternElement.h:
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::SVGPolyElement):
(WebCore::SVGPolyElement::svgAttributeChanged):
(WebCore::SVGPolyElement::synchronizeProperty):
* svg/SVGPolyElement.h:
* svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
(WebCore::SVGRadialGradientElement::synchronizeProperty):
* svg/SVGRadialGradientElement.h:
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::SVGRectElement):
(WebCore::SVGRectElement::synchronizeProperty):
* svg/SVGRectElement.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::SVGSVGElement):
(WebCore::SVGSVGElement::synchronizeProperty):
* svg/SVGSVGElement.h:
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::SVGScriptElement):
(WebCore::SVGScriptElement::synchronizeProperty):
* svg/SVGScriptElement.h:
* svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::SVGStopElement):
(WebCore::SVGStopElement::synchronizeProperty):
* svg/SVGStopElement.h:
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::SVGStyledElement):
(WebCore::SVGStyledElement::parseMappedAttribute):
(WebCore::SVGStyledElement::synchronizeProperty):
* svg/SVGStyledElement.h:
* svg/SVGStyledTransformableElement.cpp:
(WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
(WebCore::SVGStyledTransformableElement::synchronizeProperty):
* svg/SVGStyledTransformableElement.h:
* svg/SVGSwitchElement.cpp:
(WebCore::SVGSwitchElement::SVGSwitchElement):
(WebCore::SVGSwitchElement::synchronizeProperty):
* svg/SVGSwitchElement.h:
* svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::SVGSymbolElement):
(WebCore::SVGSymbolElement::synchronizeProperty):
* svg/SVGSymbolElement.h:
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::SVGTRefElement):
(WebCore::SVGTRefElement::synchronizeProperty):
* svg/SVGTRefElement.h:
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::SVGTextContentElement):
(WebCore::SVGTextContentElement::synchronizeProperty):
* svg/SVGTextContentElement.h:
* svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::SVGTextElement):
(WebCore::SVGTextElement::synchronizeProperty):
* svg/SVGTextElement.h:
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::SVGTextPathElement):
(WebCore::SVGTextPathElement::synchronizeProperty):
* svg/SVGTextPathElement.h:
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
(WebCore::SVGTextPositioningElement::synchronizeProperty):
* svg/SVGTextPositioningElement.h:
* svg/SVGURIReference.cpp:
* svg/SVGURIReference.h:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::SVGUseElement):
(WebCore::SVGUseElement::synchronizeProperty):
* svg/SVGUseElement.h:
* svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::SVGViewElement):
(WebCore::SVGViewElement::synchronizeProperty):
* svg/SVGViewElement.h:
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::SVGViewSpec):
* svg/SVGViewSpec.h:
(WebCore::SVGViewSpec::contextElement):
* svg/SynchronizablePropertyController.cpp: Removed.
* svg/SynchronizablePropertyController.h: Removed.
* svg/SynchronizableTypeWrapper.h: Removed.
* svg/svgattrs.in: Remove "exportStrings" tag.
* svg/svgtags.in: Ditto.
* svg/xlinkattrs.in:
2010-01-26 Adele Peterson <adele@apple.com>
Reviewed by Darin Adler.
Fix for <rdar://problem/7169464> REGRESSION (r47444): PLT is 1% slower due to implementation of :valid and :invalid CSS selectors
https://bugs.webkit.org/show_bug.cgi?id=34029
If we never hit the valid or invalid selectors for a particular document,
then we'll skip the validity checks when deciding about style sharing.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::canShareStyleWithElement):
(WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
* dom/Document.cpp: (WebCore::Document::Document):
* dom/Document.h:
(WebCore::Document::considerValidity):
(WebCore::Document::setConsiderValidity):
2010-01-26 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Simon Fraser.
Revert 53797 as it seems to be causing crashes.
https://bugs.webkit.org/show_bug.cgi?id=34153
* page/FrameView.cpp:
(WebCore::FrameView::useSlowRepaints):
(WebCore::FrameView::useSlowRepaintsIfNotOverlapped):
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollContents):
* platform/ScrollView.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
(WebCore::RenderObject::destroy):
2010-01-26 Dmitry Titov <dimich@chromium.org>
Reviewed by Steve Falkenburg.
DumpRenderTree silently crashes at the end of the run because geolocationControllerClient pointer is 0.
https://bugs.webkit.org/show_bug.cgi?id=34191
* page/GeolocationController.cpp:
(WebCore::GeolocationController::~GeolocationController): Add check for m_client being 0.
(WebCore::GeolocationController::addObserver): Ditto.
(WebCore::GeolocationController::removeObserver): Ditto.
(WebCore::GeolocationController::lastPosition): Ditto.
2010-01-26 Simon Fraser <simon.fraser@apple.com>
Reviewed by Adele Peterson.
Enhance externalRepresentation() to make it more useful for layer debugging
https://bugs.webkit.org/show_bug.cgi?id=34143
Enhance externalRepresentation() to output additional information about layers when certain flags are passed.
The new flags allow you to show all layers (not just those that would paint), to the structure of the z-order
and normal flow lists, and to show which layers are composited.
* WebCore.base.exp: The signature of externalRepresentation() changed.
* platform/text/TextStream.h: Add operator<<(void*)
* platform/text/TextStream.cpp: Implement operator<<(void*)
* rendering/RenderLayer.h:
* rendering/RenderLayer.cpp:
(showLayerTree): New method outside the WebCore namespace, for ease of calling from gdb.
* rendering/RenderTreeAsText.h: New behavior flags for externalRepresentation().
* rendering/RenderTreeAsText.cpp:
(WebCore::write): Output compositing information if requested. Also clean up some -1/1 magic
numbers with an enum.
(WebCore::writeLayers): If requested, show layer nesting via the z-order and normal flow lists.
(WebCore::externalRepresentation): New arguments
2010-01-26 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
Fixed an off-by-one error.
* rendering/break_lines.cpp:
(WebCore::shouldBreakAfter):
2010-01-26 Dmitry Titov <dimich@chromium.org>
Reviewed by David Levin.
Avoid reloading iframe on re-parenting between documents.
https://bugs.webkit.org/show_bug.cgi?id=32848
Achieved by setting a flag on iframe element when it is a target of document.adoptNode(node) operation.
The flag prevents unload/load cycle and is reset once element is attached to a new document.
If iframe is adopted but not actually inserted into the tree, it gets unloaded by async timer
once JS yields, to avoid having active content in non-attached iframe.
Test: fast/frames/iframe-reparenting.html
* dom/Document.cpp:
(WebCore::Document::adoptNode): If the adopted node is iframe, set a remainsAliveOnRemovalFromTree on it.
* html/HTMLFrameElementBase.h:
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
(WebCore::HTMLFrameElementBase::attach): Skip actual loading of the frame if it has remainsAliveOnRemovalFromTree flag. Reset the flag.
(WebCore::HTMLFrameElementBase::willRemove): Skip unloading the frame if it has remainsAliveOnRemovalFromTree flag set.
(WebCore::HTMLFrameElementBase::setRemainsAliveOnRemovalFromTree): Set the flag, start the async timer to check if the frame was actually attached.
(WebCore::HTMLFrameElementBase::checkAttachedTimerFired):
* html/HTMLFrameOwnerElement.h:
(WebCore::HTMLFrameOwnerElement::willRemove): Move from private to protected, since it is conditionally called in HTMLFrameElementBase::willRemove now.
2010-01-26 Adam Roben <aroben@apple.com>
No review, rolling out r53861.
http://trac.webkit.org/changeset/53861
https://bugs.webkit.org/show_bug.cgi?id=33224
Caused 2 regression tests to fail.
* dom/Document.cpp:
(WebCore::Document::detach):
(WebCore::Document::registerHistoryItem):
(WebCore::Document::unregisterHistoryItem):
* dom/Document.h:
* history/BackForwardList.cpp:
(WebCore::BackForwardList::pushStateItem):
* history/BackForwardListChromium.cpp:
(WebCore::BackForwardList::pushStateItem):
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::~HistoryItem):
(WebCore::HistoryItem::setStateObject):
(WebCore::HistoryItem::setDocument):
(WebCore::HistoryItem::documentDetached):
* history/HistoryItem.h:
(WebCore::HistoryItem::document):
* 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-26 Dan Bernstein <mitz@apple.com>
Reviewed by Beth Dakin.
<rdar://problem/7576663> Crash caused by anonymous list item
https://bugs.webkit.org/show_bug.cgi?id=34183
Test: fast/lists/anonymous-items.html
enclosingList() and previousListItem() were DOM-based, but in order to work with anonymous
list items, they need to work with rthe render tree.
* rendering/RenderListItem.cpp:
(WebCore::isList): Factored out.
(WebCore::enclosingList): Added this variant that takes a RenderObject.
(WebCore::previousListItem): Changed to travers the render tree.
(WebCore::RenderListItem::calcValue): Use the RenderObject version of enclosingList()
(WebCore::RenderListItem::setExplicitValue): Added an assertion.
(WebCore::RenderListItem::clearExplicitValue): Ditto.
2010-01-26 Brian Weinstein <bweinstein@apple.com>
Reviewed by Jon Honeycutt.
Crash in WebKit!WebCore::RenderMenuList::itemStyle
https://bugs.webkit.org/show_bug.cgi?id=34182
<rdar://7087757>
Added bounds checks in RenderMenuList to make sure we are
not making an out of bounds check in a vector once an option
element has been deleted. If we are out of bounds, we fall back to
a default value and return early, and in the case of itemStyle, we use a
previous option's style, if it is available.
* manual-tests/select-delete-item.html: Added.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::itemText): If out of bounds check, return early.
(WebCore::RenderMenuList::itemToolTip): Ditto.
(WebCore::RenderMenuList::itemIsEnabled): Ditto.
(WebCore::RenderMenuList::itemStyle): If out of bounds check, try using the 0th index
option style, then fall back to the select's style if that option doesn't exist.
(WebCore::RenderMenuList::itemBackgroundColor): If out of bounds check, return early.
(WebCore::RenderMenuList::itemIsSeparator): Ditto.
(WebCore::RenderMenuList::itemIsLabel): Ditto.
(WebCore::RenderMenuList::itemIsSelected): Ditto.
2010-01-25 Gavin Barraclough <barraclough@apple.com>
Reviewed by Anders Carlsson.
Some methods in JSC JNI bridge need more error checking of results from JNI.
https://bugs.webkit.org/show_bug.cgi?id=34149
In JNIUtility.h, callJNIMethodV<jobject> might return null (from CallObjectMethodV, via
JNICaller<jobject>::callV) if an exception is thrown. All clients of callJNIMethodV<jobject>
that are calling methods on the returned object should null check first.
* bridge/jni/JNIBridge.cpp:
(JavaField::JavaField):
(JavaMethod::JavaMethod):
* bridge/jni/JNIUtility.h:
(JSC::Bindings::):
* bridge/jni/jni_jsobject.mm:
(JavaJSObject::convertJObjectToValue):
* bridge/jni/jsc/JavaClassJSC.cpp:
(JavaClass::JavaClass):
* bridge/jni/jsc/JavaInstanceJSC.cpp:
(JavaInstance::stringValue):
2010-01-26 Steve Falkenburg <sfalken@apple.com>
Reviewed by Oliver Hunt.
Windows build references non-existent include paths
https://bugs.webkit.org/show_bug.cgi?id=34175
* WebCore.vcproj/QTMovieWin.vcproj:
* WebCore.vcproj/WebCoreCommon.vsprops:
2010-01-26 Darin Fisher <darin@chromium.org>
Reviewed by Brady Eidson.
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-26 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
Add ability for image maps to be focused via tabbing
https://bugs.webkit.org/show_bug.cgi?id=17513
Test: fast/events/tab-imagemap.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedImageMapUIElement):
(WebCore::AXObjectCache::focusedUIElementForPage):
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityImageMapLink.h:
(WebCore::AccessibilityImageMapLink::areaElement):
(WebCore::AccessibilityImageMapLink::mapElement):
(WebCore::AccessibilityImageMapLink::isImageMapLink):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isImageMapLink):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::getPath):
(WebCore::HTMLAreaElement::getRect):
(WebCore::HTMLAreaElement::imageElement):
(WebCore::HTMLAreaElement::isKeyboardFocusable):
(WebCore::HTMLAreaElement::isFocusable):
(WebCore::HTMLAreaElement::dispatchBlurEvent):
(WebCore::HTMLAreaElement::updateFocusAppearance):
(WebCore::HTMLAreaElement::supportsFocus):
* html/HTMLAreaElement.h:
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::imageElement):
* html/HTMLMapElement.h:
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* platform/graphics/haiku/GraphicsContextHaiku.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::drawFocusRingToContext):
(WebCore::GraphicsContext::drawFocusRing):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* platform/graphics/wince/GraphicsContextWince.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paint):
(WebCore::RenderImage::paintFocusRings):
(WebCore::RenderImage::imageMap):
* rendering/RenderImage.h:
* rendering/RenderReplaced.h:
2010-01-26 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: add support for breakpoints, messages and search into the SourceFrame2.
https://bugs.webkit.org/show_bug.cgi?id=34165
* inspector/front-end/SourceFrame2.js:
(WebInspector.SourceFrame2):
(WebInspector.SourceFrame2.prototype.get executionLine):
(WebInspector.SourceFrame2.prototype.set executionLine):
(WebInspector.SourceFrame2.prototype.revealLine):
(WebInspector.SourceFrame2.prototype.addBreakpoint):
(WebInspector.SourceFrame2.prototype.removeBreakpoint):
(WebInspector.SourceFrame2.prototype.sizeToFitContentHeight):
(WebInspector.SourceFrame2.prototype.setContent):
(WebInspector.SourceFrame2.prototype.findSearchMatches):
(WebInspector.SourceFrame2.prototype.setSelection):
(WebInspector.SourceFrame2.prototype._addMessageToSource):
(WebInspector.SourceFrame2.prototype._addExistingBreakpointsToSource):
(WebInspector.SourceFrame2.prototype._addBreakpointToSource):
(WebInspector.SourceFrame2.prototype._removeBreakpointFromSource):
(WebInspector.SourceFrame2.prototype._contextMenu.addConditionalBreakpoint):
(WebInspector.SourceFrame2.prototype._contextMenu):
(WebInspector.SourceFrame2.prototype._toggleBreakpoint):
(WebInspector.SourceFrame2.prototype._editBreakpointCondition.committed):
(WebInspector.SourceFrame2.prototype._editBreakpointCondition.dismissed):
(WebInspector.SourceFrame2.prototype._editBreakpointCondition):
(WebInspector.SourceFrame2.prototype._showBreakpointConditionPopup):
(WebInspector.SourceFrame2.prototype._createConditionElement):
(WebInspector.SourceFrame2.prototype._keyDown):
(WebInspector.SourceFrame2.prototype._evalSelectionInCallFrame):
(WebInspector.SourceFrame2.prototype._breakpointChanged):
(WebInspector.SourceFrame2.prototype.resize):
(WebInspector.BreakpointLineNumberDecorator.prototype.decorate):
(WebInspector.BreakpointLineNumberDecorator.prototype._paintBreakpoint):
(WebInspector.BreakpointLineNumberDecorator.prototype.mouseDown):
(WebInspector.BreakpointLineNumberDecorator.prototype.contextMenu):
(WebInspector.ExecutionLineDecorator.prototype.decorate):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.set mimeType):
(WebInspector.TextEditor.prototype.set readOnly):
(WebInspector.TextEditor.prototype.setDivDecoration):
(WebInspector.TextEditor.prototype.reveal):
(WebInspector.TextEditor.prototype.packAndRepaintAll):
(WebInspector.TextEditor.prototype._updateSize):
(WebInspector.TextEditor.prototype.updateCanvasSize):
(WebInspector.TextEditor.prototype.repaintAll):
(WebInspector.TextEditor.prototype._paintLinesContinuation):
(WebInspector.TextEditor.prototype._repaintOnScroll):
(WebInspector.TextEditor.prototype._mouseDown):
(WebInspector.TextEditor.prototype._contextMenu):
(WebInspector.TextEditor.prototype._caretForMouseEvent):
(WebInspector.TextEditor.prototype._columnForOffset):
(WebInspector.TextEditor.prototype._handleNavigationKey):
(WebInspector.TextEditor.prototype._positionDivDecoration):
(WebInspector.TextEditor.prototype._replaceSelectionWith):
(WebInspector.TextEditor.prototype.setCoalescingUpdate):
(WebInspector.TextEditor.prototype._handleUndo):
(WebInspector.TextEditor.prototype._handleRedo):
(WebInspector.TextEditor.prototype._changeFont):
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter):
(WebInspector.TextEditorHighlighter.prototype.set mimeType):
* inspector/front-end/inspector.css:
* inspector/front-end/textEditor.css:
2010-01-26 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: add methods for getting resource content from within frontend.
https://bugs.webkit.org/show_bug.cgi?id=34163
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::getResourceContent):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::didGetResourceContent):
* inspector/InspectorFrontend.h:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub.prototype.getResourceContent):
* inspector/front-end/InspectorFrontendHostStub.js:
2010-01-26 Pavel Feldman <pfeldman@chromium.org>
Not reviewed: added null check into the timeline agent getter.
* inspector/InspectorTimelineAgent.h:
(WebCore::InspectorTimelineAgent::retrieve):
2010-01-26 Steve Block <steveblock@google.com>
Reviewed by Adam Barth.
Moves JSC-specific classes from bridge/jni/JNIBridge to bridge/jni/jsc/JNIBridgeJSC
https://bugs.webkit.org/show_bug.cgi?id=33958
This allows bridge/jni/JNIBridge to be used with both JSC and V8.
A later change will add the V8 equivalent of these JSC-specific classes.
No new tests, refactoring only.
* Android.jscbindings.mk: Modified. Added JNIBridgeJSC.cpp
* GNUmakefile.am: Modified. Added JNIBridgeJSC.h
* WebCore.xcodeproj/project.pbxproj: Modified. Added JNIBridgeJSC.[cpp|h]
* bridge/jni/JNIBridge.cpp: Modified. Moved JavaField and JavaArray to JNIBridgeJSC.cpp
(appendClassName): Modfied. Guard calls to JSLock
(JavaMethod::signature): Modfied. Guard calls to JSLock
* bridge/jni/JNIBridge.h: Modified. Moved JavaField and JavaArray to JNIBridgeJSC.h
* bridge/jni/jsc/JNIBridgeJSC.cpp: Copied from WebCore/bridge/jni/JNIBridge.cpp.
* bridge/jni/jsc/JNIBridgeJSC.h: Copied from WebCore/bridge/jni/JNIBridge.h.
* bridge/jni/jsc/JNIUtilityPrivate.cpp: Modified. Include JNIBridgeJSC.h
* bridge/jni/jsc/JavaClassJSC.h: Modified. Include JNIBridgeJSC.h
* bridge/jni/jsc/JavaInstanceJSC.cpp: Modified. Include JNIBridgeJSC.h
2010-01-26 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Unreviewed build fix.
[Qt] Fix Windows build when sqlite is not available.
* WebCore.pri:
* WebCore.pro:
2010-01-26 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Simon Hausmann.
[Qt] JavaScript prompt is currently broken.
https://bugs.webkit.org/show_bug.cgi?id=30914
Remove the manual test case in favor of an automated
test case in WebKit/qt/tests/qwebpage.
* manual-tests/qt/java-script-prompt.html: Removed.
2010-01-26 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Implement HTML and CSS highlighters.
https://bugs.webkit.org/show_bug.cgi?id=34144
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/JavaScriptTokenizer.js: Removed.
* inspector/front-end/JavaScriptTokenizer.re2js: Removed.
* inspector/front-end/SourceCSSTokenizer.js: Added.
(WebInspector.SourceCSSTokenizer):
(WebInspector.SourceCSSTokenizer.prototype._stringToken):
(WebInspector.SourceCSSTokenizer.prototype._isPropertyValue):
(WebInspector.SourceCSSTokenizer.prototype.nextToken):
* inspector/front-end/SourceCSSTokenizer.re2js: Added.
* inspector/front-end/SourceHTMLTokenizer.js: Added.
(WebInspector.SourceHTMLTokenizer):
(WebInspector.SourceHTMLTokenizer.prototype._stringToken):
(WebInspector.SourceHTMLTokenizer.prototype.nextToken):
* inspector/front-end/SourceHTMLTokenizer.re2js: Added.
* inspector/front-end/SourceJavaScriptTokenizer.js: Added.
(WebInspector.SourceJavaScriptTokenizer):
(WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
* inspector/front-end/SourceJavaScriptTokenizer.re2js: Added.
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter):
(WebInspector.TextEditorHighlighter.prototype._highlightLines):
(WebInspector.TextEditorHighlighter.Tokenizer):
(WebInspector.TextEditorHighlighter.Tokenizer.prototype.set line):
(WebInspector.TextEditorHighlighter.Tokenizer.prototype.set condition):
(WebInspector.TextEditorHighlighter.Tokenizer.prototype.get condition):
(WebInspector.TextEditorHighlighter.Tokenizer.prototype.hasCondition):
(WebInspector.TextEditorHighlighter.Tokenizer.prototype.getLexCondition):
(WebInspector.TextEditorHighlighter.Tokenizer.prototype.setLexCondition):
(WebInspector.TextEditorHighlighter.Tokenizer.prototype._charAt):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2010-01-26 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Holger Freyther.
REGRESSION(r53835): Fix editing/pasteboard/paste-noscript-xhtml.xhtml
https://bugs.webkit.org/show_bug.cgi?id=34157
Pass the FragmentScriptingPermission correctly through to the DOM
and disallow scripting elements in parseEndElement(), similar to
the libxml tokenizer change in r53835.
* dom/XMLTokenizerQt.cpp:
(WebCore::handleElementNamespaces):
(WebCore::handleElementAttributes):
(WebCore::XMLTokenizer::parseStartElement):
(WebCore::XMLTokenizer::parseEndElement):
2010-01-26 Garret Kelly <gdk@chromium.org>
Reviewed by Eric Seidel.
Add missing declaration for the feMorphology SVG element.
https://bugs.webkit.org/show_bug.cgi?id=34151
* bindings/v8/V8DOMWrapper.cpp:
2010-01-26 Andras Becsi <abecsi@inf.u-szeged.hu>
Unreviewed build fix.
[Qt] Build fix after API changes in r53835.
No new tests needed.
* dom/XMLTokenizerQt.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
(WebCore::parseXMLDocumentFragment):
2010-01-22 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Adler.
Make storage events match the spec.
https://bugs.webkit.org/show_bug.cgi?id=30546
This meat of the patch I just posted is very simple. It's just making events
asynchronous, not posting them to the frame that generated them, passing a null
for the key when issuing a clear storage event, and making the events
non-cancelable/non-bubbleable...all of which are clearly stated in the spec.
The asynchronous and not posting to the frame that generated them forced me to
re-write all the layout tests that dealt with storage events. There's a lot of
code there, but I tried to be fairly careful to ensure that test coverage did
not shrink in any area.
Tests: storage/domstorage/events/basic-body-attribute.html
storage/domstorage/events/basic-setattribute.html
storage/domstorage/events/basic.html
storage/domstorage/events/case-sensitive.html
storage/domstorage/events/documentURI.html
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::enqueueStorageEvent):
(WebCore::Document::storageEventTimerFired):
* dom/Document.h:
* storage/StorageEvent.cpp:
(WebCore::StorageEvent::StorageEvent):
* storage/StorageEvent.idl:
* storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatch):
2010-01-25 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7573493> Error with line break inside ?» pair of characters.
https://bugs.webkit.org/show_bug.cgi?id=17475
Test: fast/text/line-break-after-question-mark.html
Instead of unconditionally allowing lines to break after a question mark, which was intended
to mimic Internet Explorer, apply the Unicode line breaking behavior after a question mark,
with one exception in the ASCII range to match IE, namely not allowing a line break between
a question mark and a vertical line.
* rendering/break_lines.cpp:
(WebCore::shouldBreakAfter): Added a next character parameter. Changed to consult a table
for the question mark case in order to keep it fast and not require a text break iterator in
the ASCII case.
(WebCore::nextBreakablePosition): Pass the next character to shouldBreakAfter.
2010-01-25 Peter Kasting <pkasting@google.com>
Reviewed by Dan Bernstein.
Mac scrollbar thumbs were drawn with the wrong size.
https://bugs.webkit.org/show_bug.cgi?id=34049
* platform/chromium/ScrollbarThemeChromiumMac.mm:
(WebCore::ScrollbarThemeChromiumMac::paint):
* platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarThemeMac::paint):
2010-01-25 Enrica Casucci <enrica@apple.com>
Reviewed by Darin Adler.
Cleanup unwanted tags after pasting.
https://bugs.webkit.org/show_bug.cgi?id=34148
Test: editing/pasteboard/paste-noscript-xhtml.xhtml
* dom/Element.cpp:
(WebCore::Element::setAttributeNS):
* dom/Element.h:
* dom/XMLTokenizer.h:
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
(WebCore::handleElementNamespaces):
(WebCore::handleElementAttributes):
(WebCore::XMLTokenizer::startElementNs):
(WebCore::XMLTokenizer::endElementNs):
(WebCore::parseXMLDocumentFragment):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::createContextualFragment):
2010-01-25 Steve Falkenburg <sfalken@apple.com>
Reviewed by Simon Fraser.
A WebGeolocationControllerClient is leaked for every WebView
https://bugs.webkit.org/show_bug.cgi?id=34145
* page/GeolocationController.cpp:
(WebCore::GeolocationController::~GeolocationController):
* page/GeolocationControllerClient.h:
2010-01-25 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser.
Fixed bug in positioning of scroll layer within the
parent root layer.
https://bugs.webkit.org/show_bug.cgi?id=33847
* platform/graphics/win/WKCACFLayerRenderer.cpp:
(WebCore::WKCACFLayerRenderer::setScrollFrame):
(WebCore::WKCACFLayerRenderer::createRenderer):
2010-01-25 Alexey Proskuryakov <ap@apple.com>
Rubber-stamped by Geoffrey Garen.
https://bugs.webkit.org/show_bug.cgi?id=34076
An image remains accessible via form.property syntax after being removed from document.
Fix crashing regression tests (tables/mozilla/bugs/bug4527.html et al.)
* html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::insertedIntoTree): Remove incorrect
assertions added in the previous patch - it's mot true that m_for is always a parent; table
parsing can reparent the image element, but m_form still needs to be set.
2010-01-25 Alexey Proskuryakov <ap@apple.com>
Reviewed by Geoffrey Garen.
https://bugs.webkit.org/show_bug.cgi?id=34076
An image remains accessible via form.property syntax after being removed from document.
Tests: fast/forms/removed-image-as-property.html
fast/forms/reparented-image-as-property.html
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::~HTMLImageElement): This is called during GC - not a good time
to make observable changes to DOM.
(WebCore::HTMLImageElement::insertedIntoTree): This is the right place to do any work that
depends on connectedness to some ancestor. We still allow for m_form to be set via constructor,
which happens during parsing.
(WebCore::HTMLImageElement::removedFromTree): Ditto.
* html/HTMLImageElement.h: Added removedFromTree/insertedIntoTree, moved removedFromDocument
and insertedIntoDocument to private section, as they shouldn't be called directly.
2010-01-25 Daniel Bates <dbates@webkit.org>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=34073
Fixes misspelled words in comments.
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::addChildren):
(WebCore::AccessibilityListBox::doAccessibilityHitTest):
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper detach]):
(AXAttributeStringSetElement):
* bindings/js/JSDOMBinding.cpp:
(WebCore::completeURL):
* bindings/js/JSDOMWindowBase.cpp:
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
* bindings/js/JSSVGPODTypeWrapper.h:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
* bridge/NP_jsobject.cpp:
(_NPN_SetException):
* bridge/jni/jsc/JavaInstanceJSC.cpp:
(JavaInstance::invokeMethod):
(JObjectWrapper::JObjectWrapper):
* bridge/objc/objc_instance.mm:
(ObjcInstance::setValueOfUndefinedField):
(ObjcInstance::getValueOfUndefinedField):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::CSSStyleSelector):
(WebCore::CSSStyleSelector::sortMatchedRules):
(WebCore::CSSStyleSelector::applyDeclarations):
(WebCore::CSSStyleSelector::applyProperty):
* dom/Document.cpp:
(WebCore::Document::updateLayoutIgnorePendingStylesheets):
(WebCore::Document::detach):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::updateFocusAppearance):
* dom/Element.h:
* dom/MessagePortChannel.h:
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::receivedTarget):
* dom/Node.cpp:
(WebCore::Node::isFocusable):
(WebCore::Node::shadowAncestorNode):
* dom/Node.h:
* dom/Position.cpp:
(WebCore::Position::upstream):
* dom/Position.h:
* dom/Range.cpp:
(WebCore::Range::processContents):
* dom/StyledElement.cpp:
(WebCore::StyledElement::addCSSColor):
* editing/ApplyStyleCommand.cpp:
(WebCore::StyleChange::reconcileTextDecorationProperties):
(WebCore::StyleChange::extractTextStyles):
(WebCore::prepareEditingStyleToApplyAt):
* editing/DeleteButtonController.cpp:
(WebCore::isDeletableElement):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::initializeStartEnd):
* editing/Editor.cpp:
(WebCore::Editor::learnSpelling):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleMessage.prototype._format):
* loader/Cache.cpp:
(WebCore::Cache::pruneLiveResources):
(WebCore::Cache::pruneDeadResources):
* loader/Cache.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::makePurgeable):
* loader/CachedResource.h:
* loader/CachedResourceHandle.h:
* loader/DocumentLoader.h:
* loader/FTPDirectoryParser.cpp:
(WebCore::parseOneFTPLine):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didExplicitOpen):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didCancel):
* loader/WorkerThreadableLoader.h:
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::spaceNeeded):
* notifications/NotificationPresenter.h:
(WebCore::NotificationPresenter::):
* page/animation/AnimationController.cpp:
(WebCore::AnimationController::updateAnimations):
* platform/LinkHash.cpp:
(WebCore::cleanPath):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::calculateDrawingMode):
* platform/graphics/cg/PatternCG.cpp:
(WebCore::Pattern::createPlatformPattern):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::offsetForPosition):
* platform/graphics/mac/GraphicsLayerCA.h:
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::doSeek):
(WebCore::MediaPlayerPrivate::setClosedCaptionsVisible):
(WebCore::MediaPlayerPrivate::hasAvailableVideoFrame):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writePlainText):
(WebCore::Pasteboard::writeURL):
* platform/text/TextCodecICU.cpp:
(WebCore::TextCodecICU::registerExtendedEncodingNames):
* platform/text/TextEncodingDetectorICU.cpp:
(WebCore::detectTextEncoding):
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::calcEffectiveWidth):
(WebCore::AutoTableLayout::layout):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcAbsoluteHorizontalValues):
(WebCore::RenderBox::calcAbsoluteVerticalValues):
(WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
(WebCore::RenderBox::calcAbsoluteVerticalReplaced):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollByRecursively):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::hitTestLayer):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroy):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::setInnerTextValue):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::stateChanged):
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::mapLocalToContainer):
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::buildTextChunks):
* rendering/TransformState.cpp:
(WebCore::TransformState::flattenWithTransform):
* wml/WMLInputElement.cpp:
(WebCore::WMLInputElement::dispatchBlurEvent):
(WebCore::WMLInputElement::suggestedValue):
2010-01-25 Geoffrey Garen <ggaren@apple.com>
Suggested by Darin Adler.
Fixed a spelling error, tightened up some grammar.
* bindings/js/JSDOMBinding.cpp:
(WebCore::forgetDOMObject):
(WebCore::forgetDOMNode):
2010-01-25 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Timothy Hatcher.
Instead of adding inspector methods to the inspected global objects
use private implementation visible from inspector code only.
https://bugs.webkit.org/show_bug.cgi?id=34089
Test: inspector/inspected-objects-not-overriden.html
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
2010-01-25 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: don't show headers/content tabs in scripts view.
https://bugs.webkit.org/show_bug.cgi?id=34083
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView):
(WebInspector.ResourceView.prototype.set headersVisible):
(WebInspector.ResourceView.prototype._selectContentTab):
(WebInspector.ResourceView.prototype._innerSelectContentTab):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.show):
(WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
(WebInspector.ResourcesPanel.prototype.showResource):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.show):
(WebInspector.ScriptsPanel.prototype._showScriptOrResource):
* inspector/front-end/inspector.css:
2010-01-25 Simon Hausmann <hausmann@webkit.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Reduce the size of the library when compiling for Maemo5
https://bugs.webkit.org/show_bug.cgi?id=34050
Exclude the Web Inspector's qrc file in the Maemo5 build, just
like we do for the Symbian build. Saves about ~900k.
* WebCore.pro:
2010-01-25 Simon Hausmann <hausmann@webkit.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] In the StyledPainter determine the style from the Render and Scrollbar theme instead of from the paint device
https://bugs.webkit.org/show_bug.cgi?id=34054
Getting the style from the painter's paint device is a hack that breaks when
the paint device's style is different than the style that is used when
calculating the metries earlier when there is no painter available.
This change moves us closer to always using the same style.
* platform/qt/RenderThemeQt.cpp:
(WebCore::StylePainter::StylePainter):
(WebCore::StylePainter::init):
(WebCore::RenderThemeQt::paintButton):
(WebCore::RenderThemeQt::paintTextField):
(WebCore::RenderThemeQt::paintMenuList):
(WebCore::RenderThemeQt::paintMenuListButton):
(WebCore::RenderThemeQt::paintSliderTrack):
(WebCore::RenderThemeQt::paintMediaMuteButton):
(WebCore::RenderThemeQt::paintMediaPlayButton):
(WebCore::RenderThemeQt::paintMediaSliderTrack):
(WebCore::RenderThemeQt::paintMediaSliderThumb):
* platform/qt/RenderThemeQt.h:
* platform/qt/ScrollbarThemeQt.cpp:
(WebCore::ScrollbarThemeQt::paint):
(WebCore::ScrollbarThemeQt::hitTest):
(WebCore::ScrollbarThemeQt::shouldCenterOnThumb):
(WebCore::ScrollbarThemeQt::scrollbarThickness):
(WebCore::ScrollbarThemeQt::thumbLength):
(WebCore::ScrollbarThemeQt::trackPosition):
(WebCore::ScrollbarThemeQt::trackLength):
(WebCore::ScrollbarThemeQt::paintScrollCorner):
(WebCore::ScrollbarThemeQt::style):
* platform/qt/ScrollbarThemeQt.h:
2010-01-25 Simon Hausmann <hausmann@webkit.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] In RenderThemeQt determine the QStyle from the page client instead of the page's view
https://bugs.webkit.org/show_bug.cgi?id=34053
* platform/qt/QWebPageClient.h: Add function to return the style.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::qStyle): Determine the style from the page client instead of the page's view.
2010-01-25 Simon Hausmann <hausmann@webkit.org>
Reviewed by Kenneth Christiansen.
[Qt] Clean up code to determine palette from page client in RenderThemeQt
https://bugs.webkit.org/show_bug.cgi?id=34052
Use the RenderTheme's associated page instead of going through the
render tree and the document.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::setPaletteFromPageClientIfExists):
(WebCore::RenderThemeQt::initializeCommonQStyleOptions):
* platform/qt/RenderThemeQt.h:
2010-01-25 Janne Koskinen <janne.p.koskinen@digia.com>
Reviewed by Simon Hausmann.
[Qt] Phone backup support for QtWebkit for Symbian devices.
https://bugs.webkit.org/show_bug.cgi?id=34077
* WebCore.pro:
2010-01-25 Benjamin Poulain <benjamin.poulain@nokia.com>
Reviewed by Antti Koivisto.
Do not render the full frame when there is some elements with fixed positioning
https://bugs.webkit.org/show_bug.cgi?id=33150
Do not render the full frame when there is some elements with fixed positioning
https://bugs.webkit.org/show_bug.cgi?id=33150
* page/FrameView.cpp:
(WebCore::FrameView::useSlowRepaints):
(WebCore::FrameView::useSlowRepaintsIfNotOverlapped):
(WebCore::FrameView::registerFixedPositionedObject):
(WebCore::FrameView::unregisterFixedPositionedObject):
(WebCore::FrameView::scrollContentsFastPath):
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollContents):
(WebCore::ScrollView::scrollContentsFastPath):
* platform/ScrollView.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
(WebCore::RenderObject::destroy):
2010-01-24 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Add support for addMessage/clearMessages to SourceFrame2.
https://bugs.webkit.org/show_bug.cgi?id=33904
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/SourceFrame2.js:
(WebInspector.SourceFrame2):
(WebInspector.SourceFrame2.prototype.addMessage):
(WebInspector.SourceFrame2.prototype.clearMessages):
(WebInspector.SourceFrame2.prototype._incrementMessageRepeatCount):
(WebInspector.SourceFrame2.prototype._addExistingMessagesToSource):
(WebInspector.SourceFrame2.prototype._addMessageToSource):
(WebInspector.SourceFrame2.prototype.resize):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.setDivDecoration):
(WebInspector.TextEditor.prototype._lineHeight):
(WebInspector.TextEditor.prototype._highlightChanged):
(WebInspector.TextEditor.prototype.packAndRepaintAll):
(WebInspector.TextEditor.prototype._updateSize):
(WebInspector.TextEditor.prototype._repaintAll):
(WebInspector.TextEditor.prototype._paint):
(WebInspector.TextEditor.prototype._paintLinesContinuation):
(WebInspector.TextEditor.prototype._mouseOut):
(WebInspector.TextEditor.prototype._updateDivDecorations):
(WebInspector.TextEditor.prototype._positionDivDecoration):
(WebInspector.TextEditor.prototype._paintSelection):
(WebInspector.TextEditor.prototype._replaceSelectionWith):
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter.prototype.updateHighlight):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.css:
* inspector/front-end/inspector.html:
* inspector/front-end/textEditor.css: Added.
2010-01-24 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Replace split pane with tabbed pane in resource
contents view.
https://bugs.webkit.org/show_bug.cgi?id=32453
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView):
(WebInspector.ResourceView.prototype.attach):
(WebInspector.ResourceView.prototype.show):
(WebInspector.ResourceView.prototype._selectTab):
(WebInspector.ResourceView.prototype._selectHeadersTab):
(WebInspector.ResourceView.prototype._selectContentTab):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.show):
(WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
(WebInspector.ResourcesPanel.prototype.showResource):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.show):
(WebInspector.ScriptsPanel.prototype._showScriptOrResource):
* inspector/front-end/Settings.js:
(WebInspector.Settings.prototype._load):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._loaded):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView):
* inspector/front-end/inspector.css:
2010-01-24 Eric Carlson <eric.carlson@apple.com>
Reviewed by Dan Bernstein.
Media element duration changes to zero after playing in reverse
https://bugs.webkit.org/show_bug.cgi?id=34041
Test: media/video-reverse-play-duration.html
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::didEnd): QTKit's ended notification fires at time zero when
playing in reverse, so don't reset duration in that case.
2010-01-24 Maciej Stachowiak <mjs@apple.com>
Reviewed by Dan Bernstein.
Content with heavily nested residual style is so slow, it seems like a hang
https://bugs.webkit.org/show_bug.cgi?id=34059
<rdar://problem/7292906>
Test cast: fast/parser/residual-style-hang.html
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
Limit the number of iterations of the main loop to 5.
The reason this limit is necessary is that otherwise, N misnested open tags followed
by N misnested close tags will cause O(N^2) of work due to cloning and attaching subtrees;
at a fixed limit, the cost is at worst O(N).
The code that was in the loop originally ran exactly once - the loop was added in
r21472 to fix <https://bugs.webkit.org/show_bug.cgi?id=13603>. I have verified that
with the iteration limit, the bug is still fixed, both with the original test case
and with the layout tests tht were added.
2010-01-24 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
HTMLInputElement::valueAsDate setter support for type=week.
https://bugs.webkit.org/show_bug.cgi?id=33986
Introduce ISODateTime::setMillisecondsSinceEpochForWeek() and add
Week type support to ISODateTime::toString().
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::valueAsDate): Avoid default:.
(WebCore::HTMLInputElement::setValueAsDate):
Add WEEK type handling and avoid default:.
* html/ISODateTime.cpp:
(WebCore::offsetTo1stWeekStart):
(WebCore::ISODateTime::setMillisecondsSinceEpochForWeek):
(WebCore::ISODateTime::millisecondsSinceEpoch):
(WebCore::ISODateTime::toString):
Add Week type support and avoid default:.
* html/ISODateTime.h:
2010-01-24 Oliver Hunt <oliver@apple.com>
Reviewed by Darin Adler.
Object Serialization assumes deserialization will always occur in the context of a webpage
https://bugs.webkit.org/show_bug.cgi?id=34056
rdar://7573833
Added ClassInfo to JSDOMGlobalObject and make the window and worker class info
inherit from it. With this in place we're able to determine whether a given
global object is a DOMGlobalObject, and then use that information to avoid
attempting to deserialize types that require the presence of the DOM.
No test as all global objects in webkit inherit from JSDOMGlobalObject.
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::):
* bindings/js/JSDOMGlobalObject.h:
(WebCore::JSDOMGlobalObject::classInfo):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::):
* bindings/js/JSWorkerContextBase.cpp:
(WebCore::):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::DeserializingTreeWalker::DeserializingTreeWalker):
(WebCore::DeserializingTreeWalker::convertIfTerminal):
2010-01-24 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=34047
<rdar://problem/7573699>
Media element "endedPlayback" logic doesn't match spec
Test: media/video-timeupdate-reverse-play.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::ended): The 'ended' attribute should only be true when playback
rate is positive.
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Always schedule a 'timeupdate' event when
the media engine signals a time discontinuity, scheduleTimeupdateEvent will only queue an event
if one hasn't already been posted for the current movie time.
(WebCore::HTMLMediaElement::endedPlayback): Update to match the spec logic.
2010-01-23 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
Video that loads inside reflection doesn't get reflected
https://bugs.webkit.org/show_bug.cgi?id=34046
ensureCloneLayers() made an incorrect assumption that if a clone of the primaryLayer
exists already, then the structural layer and content layer can just be returned.
However, this doesn't account for the situation where a content layer may have
been create after the clone tree was last updated.
Fix by always creating the structural and clone layers on demand.
Test: compositing/reflections/load-video-in-reflection.html
* platform/graphics/mac/GraphicsLayerCA.h: Added utility method, findOrMakeClone().
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::findOrMakeClone): Utility that efficiently finds
or creates a layer in a LayerMap.
(WebCore::GraphicsLayerCA::ensureCloneLayers): Always look for or clone the
structural and content layers, rather than relying on whether there's a primary
layer clone already.
2010-01-23 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej Stachowiak.
Implement support for FileList cloning in postMessage
https://bugs.webkit.org/show_bug.cgi?id=34048
Support passing FileList through postMessage APIs. Basically
mechanical task in line with other terminals in the object
graph.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedFileList::create):
(WebCore::SerializedFileList::length):
(WebCore::SerializedFileList::item):
(WebCore::SerializedFileList::SerializedFileList):
(WebCore::SerializedScriptValueData::SerializedScriptValueData):
(WebCore::SharedSerializedData::asFileList):
(WebCore::SerializingTreeWalker::convertIfTerminal):
(WebCore::DeserializingTreeWalker::convertIfTerminal):
(WebCore::TeardownTreeWalker::convertIfTerminal):
Rearrange these functions to not use 'default:' handling
so that the compiler will actually tell us when we're
not handling cases.
* bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValueData::):
(WebCore::SerializedScriptValueData::asFileList):
2010-01-23 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Inject inspector script directly into the inspected context. All the
communication between the script and the frontend is serialized into
JSON strings. It allows to get rid of object quarantines in Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=32554
Test: inspector/console-log-before-inspector-open.html
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::databaseForId):
(WebCore::JSInjectedScriptHost::currentCallFrame):
(WebCore::JSInjectedScriptHost::nodeForId):
(WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
(WebCore::JSInjectedScriptHost::selectDatabase):
(WebCore::JSInjectedScriptHost::selectDOMStorage):
* bindings/js/ScriptCallStack.h:
(WebCore::ScriptCallStack::globalState):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::mainWorldScriptState):
* bindings/js/ScriptController.h:
* bindings/js/ScriptObject.h:
(WebCore::ScriptObject::scriptState):
* bindings/js/ScriptValue.cpp:
* bindings/js/ScriptValue.h:
* bindings/v8/ScriptCallStack.h:
(WebCore::ScriptCallStack::globalState):
* bindings/v8/ScriptObject.h:
(WebCore::ScriptObject::scriptState):
* bindings/v8/ScriptValue.h:
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
(WebCore::ConsoleMessage::addToConsole):
(WebCore::ConsoleMessage::isEqual):
* inspector/ConsoleMessage.h:
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::releaseWrapperObjectGroup):
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::setInjectedScriptSource):
(WebCore::InspectorBackend::dispatchOnInjectedScript):
(WebCore::InspectorBackend::releaseWrapperObjectGroup):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::clearConsoleMessages):
(WebCore::InspectorController::inspectedWindowScriptObjectCleared):
(WebCore::InspectorController::windowScriptObjectAvailable):
(WebCore::InspectorController::scriptObjectReady):
(WebCore::InspectorController::setFrontendProxyObject):
(WebCore::InspectorController::close):
(WebCore::InspectorController::resetScriptObjects):
(WebCore::InspectorController::didPause):
(WebCore::InspectorController::injectedScriptForNodeId):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::addConsoleMessage):
(WebCore::InspectorFrontend::pausedScript):
* inspector/InspectorFrontend.h:
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel.prototype._reloadResources):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.requestClearMessages):
(WebInspector.ConsoleView.prototype.doEvalInWindow):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode):
(WebInspector.CSSStyleDeclaration):
(WebInspector.CSSStyleDeclaration.parseRule):
* inspector/front-end/Database.js:
(WebInspector.Database.prototype.executeSql):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged.InjectedScriptAccess.get addInspectedNode):
(WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
(WebInspector.ElementsPanel.prototype.setDocument):
(WebInspector.ElementsPanel.prototype.searchCanceled):
(WebInspector.ElementsPanel.prototype.performSearch):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
* inspector/front-end/EventListenersSidebarPane.js:
():
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
(injectedScriptConstructor.):
* inspector/front-end/InjectedScriptAccess.js:
(InjectedScriptAccess):
(InjectedScriptAccess.getDefault):
(get InjectedScriptAccess):
(InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName):
(InjectedScriptAccess._installHandler):
* inspector/front-end/MetricsSidebarPane.js:
(WebInspector.MetricsSidebarPane):
(WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
* inspector/front-end/ObjectPropertiesSection.js:
* inspector/front-end/ObjectProxy.js:
(WebInspector.ObjectProxy):
* inspector/front-end/PropertiesSidebarPane.js:
(WebInspector.PropertiesSidebarPane.prototype.update.callback):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
* inspector/front-end/ScriptsPanel.js:
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype.update):
* inspector/front-end/inspector.js:
(WebInspector.loaded):
(WebInspector.pausedScript):
(WebInspector.addConsoleMessage):
(WebInspector.log.logMessage):
(WebInspector.log):
2010-01-22 Alex Milowski <alex@milowski.com>
Reviewed by David Hyatt.
Added support for RenderMathMLBlock base object and isRenderMathMLBlock()
method on RenderObject.
Added support for text elements and updated tag and attribute names
Also, updated the stylesheet added files to the project
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* css/mathml.css:
* mathml/MathMLInlineContainerElement.cpp:
(WebCore::MathMLInlineContainerElement::createRenderer):
* mathml/MathMLTextElement.cpp: Added.
(WebCore::MathMLTextElement::MathMLTextElement):
(WebCore::MathMLTextElement::create):
(WebCore::MathMLTextElement::createRenderer):
* mathml/MathMLTextElement.h: Added.
* mathml/RenderMathMLBlock.cpp: Added.
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
(WebCore::RenderMathMLBlock::styleDidChange):
(WebCore::RenderMathMLBlock::isChildAllowed):
(WebCore::RenderMathMLBlock::makeBlockStyle):
(WebCore::RenderMathMLBlock::nonOperatorHeight):
(WebCore::RenderMathMLBlock::stretchToHeight):
* mathml/RenderMathMLBlock.h: Added.
(WebCore::RenderMathMLBlock::isRenderMathMLBlock):
(WebCore::RenderMathMLBlock::isRenderMathMLOperator):
(WebCore::RenderMathMLBlock::isRenderMathMLRow):
(WebCore::RenderMathMLBlock::isRenderMathMLMath):
(WebCore::RenderMathMLBlock::hasBase):
(WebCore::toRenderMathMLBlock):
* mathml/mathattrs.in: Added.
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderMathMLBlock):
2010-01-22 James Robinson <jamesr@chromium.org>
Reviewed by Alexey Proskuryakov.
Ensures that the 'selected' attribute of an <option> is correct
https://bugs.webkit.org/show_bug.cgi?id=32641
Adds a check in OptionElement::selected() that checks if list items need to be recalculated and does so if needed,
so the attribute is up to date more often. Also gets rid of most of the recalcStyle() side effects.
Our behavior now matches Firefox 3.5 and IE8 after the </select> is parsed.
Tests: fast/forms/HTMLOptionElement_selected2.html
fast/forms/HTMLOptionElement_selected3.html
* dom/SelectElement.cpp:
(WebCore::SelectElement::setOptionsChangedOnRenderer):
(WebCore::SelectElement::setRecalcListItems):
(WebCore::SelectElement::recalcListItems):
(WebCore::SelectElement::restoreFormControlState):
(WebCore::SelectElement::reset):
(WebCore::SelectElement::typeAheadFind):
* dom/SelectElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::selected):
(WebCore::HTMLOptionElement::insertedIntoTree):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcStyle):
(WebCore::HTMLSelectElement::recalcListItemsIfNeeded):
* html/HTMLSelectElement.h:
* wml/WMLSelectElement.cpp:
(WebCore::WMLSelectElement::recalcStyle):
2010-01-22 Chris Rogers <crogers@google.com>
Reviewed by Eric Seidel.
Need to handle WebGLUnsignedByteArray as method argument for V8 binding
https://bugs.webkit.org/show_bug.cgi?id=33929
V8 code generator does not have associated tests
* bindings/scripts/CodeGeneratorV8.pm:
2010-01-22 Elliot Glaysher <erg@chromium.org>
Reviewed by David Levin.
Chromium: theme selection colors to match gtk theme
Add functions to RenderThemeChromiumLinux to change the selection color
according to the current GTK+ theme.
Since the change is to the Chromium WebKit API layer, testing is done
in Chromium's test shell (see Chromium side of this patch:
http://codereview.chromium.org/554004)
https://bugs.webkit.org/show_bug.cgi?id=33921
* rendering/RenderThemeChromiumLinux.cpp:
(WebCore::RenderThemeChromiumLinux::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumLinux::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumLinux::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumLinux::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumLinux::setSelectionColors):
* rendering/RenderThemeChromiumLinux.h: Adds static members.
2010-01-22 Kevin Watters <kevinwatters@gmail.com>
Reviewed by Kevin Ollivier.
[wx] Remove the Bakefile build system, which is no longer being used.
https://bugs.webkit.org/show_bug.cgi?id=34022
* WebCoreSources.bkl: Removed.
* webcore-base.bkl: Removed.
* webcore-wx.bkl: Removed.
2010-01-22 Peter Kasting <pkasting@google.com>
Reviewed by Darin Adler.
Remove unnecessary copy of zlib.
https://bugs.webkit.org/show_bug.cgi?id=34028
* platform/image-decoders/zlib: Removed.
* platform/image-decoders/zlib/adler32.c: Removed.
* platform/image-decoders/zlib/compress.c: Removed.
* platform/image-decoders/zlib/crc32.c: Removed.
* platform/image-decoders/zlib/crc32.h: Removed.
* platform/image-decoders/zlib/deflate.c: Removed.
* platform/image-decoders/zlib/deflate.h: Removed.
* platform/image-decoders/zlib/gzio.c: Removed.
* platform/image-decoders/zlib/infback.c: Removed.
* platform/image-decoders/zlib/inffast.c: Removed.
* platform/image-decoders/zlib/inffast.h: Removed.
* platform/image-decoders/zlib/inffixed.h: Removed.
* platform/image-decoders/zlib/inflate.c: Removed.
* platform/image-decoders/zlib/inflate.h: Removed.
* platform/image-decoders/zlib/inftrees.c: Removed.
* platform/image-decoders/zlib/inftrees.h: Removed.
* platform/image-decoders/zlib/mozzconf.h: Removed.
* platform/image-decoders/zlib/trees.c: Removed.
* platform/image-decoders/zlib/trees.h: Removed.
* platform/image-decoders/zlib/uncompr.c: Removed.
* platform/image-decoders/zlib/zconf.h: Removed.
* platform/image-decoders/zlib/zlib.h: Removed.
* platform/image-decoders/zlib/zutil.c: Removed.
* platform/image-decoders/zlib/zutil.h: Removed.
2010-01-22 Steve Falkenburg <sfalken@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=34025
Enable client-based Geolocation abstraction for Mac, Windows AppleWebKit targets.
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
2010-01-22 Simon Fraser <simon.fraser@apple.com>
Reviewed by Eric Carlson.
Race condition in video setup can force videos into software mode
https://bugs.webkit.org/show_bug.cgi?id=34034
We used to call setUpVideoRendering() unconditionally from
acceleratedRenderingStateChanged(); this could happen before the movie had any
data, and thus force the movie into software rendering mode.
Fix by returning early from setUpVideoRendering() if isReadyForRendering() returns false,
which also allows us to remove some other checks for being ready to render.
Timing dependent, hard to make a test for.
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::setContentsToMedia): Optimize to do an early return
if passing in the same layer that is already being used.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::setUpVideoRendering): Return without doing anything
if not ready to render.
(WebCore::MediaPlayerPrivate::updateStates): No need to call isReadyForRendering()
any more, since setUpVideoRendering() does that.
(WebCore::MediaPlayerPrivate::setVisible): No need to check the ready state; this
is equivalent to the check inside of setUpVideoRendering().
2010-01-22 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
REGRESSION (r53110): Find My iPhone message dialog is offset from original position once it gets focus
https://bugs.webkit.org/show_bug.cgi?id=33821
Fix an issue with the geometry of fixed position, composited layers inside other
composited layers. If we called convertToLayerCoords() on a fixed layer with an ancestor
layer which is not the root, then we assumed that the fixed layer had a positioning root.
However, this is not always the case, since the fixed layer may have a compositing ancestor
which is not a fixed container.
Test: compositing/geometry/fixed-in-composited.html
* rendering/RenderLayer.cpp:
(WebCore::isFixedPositionedContainer): Utility function to test whether a layer acts
as a fixed position container.
(WebCore::RenderLayer::convertToLayerCoords): When called on a fixed position layer
for an ancestor layer that is not the root, compute the correct offsets by looking for
the fixed position container, and computing offsets relative to that. If the ancestorLayer
is the fixed position container, fall through to the existing code that is shared
with absolutely positioned layers.
2010-01-22 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
webkitConvertPointFromNodeToPage doesn't take into account most recent transform style
https://bugs.webkit.org/show_bug.cgi?id=34023
Be sure to call updateLayoutIgnorePendingStylesheets() before doing point mapping,
to apply any style changes since the last layout.
Test: fast/dom/Window/webkitConvertPointUpdateLayout.html
* page/DOMWindow.cpp:
(WebCore::DOMWindow::webkitConvertPointFromNodeToPage): Call updateLayoutIgnorePendingStylesheets().
(WebCore::DOMWindow::webkitConvertPointFromPageToNode): Ditto.
2010-01-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adam Roben.
Use stale cache data when going back and forward but not using WebCore’s page cache
https://bugs.webkit.org/show_bug.cgi?id=33993
<rdar://problem/7383392>
No tests since this is a performance change.
* loader/CachePolicy.h:
(WebCore::): Add CachePolicyAllowStale.
* loader/DocLoader.cpp:
(WebCore::DocLoader::checkForReload): Never reload in the case of
CachePolicyAllowStale.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::subresourceCachePolicy): Return CachePolicyAllowStale
if the main resource is being loaded to allow stale data.
(WebCore::FrameLoader::addExtraFieldsToRequest): Use ReturnCacheDataElseLoad
on back/forward loads - needed when going back of forward to a page with frames.
2010-01-22 Kelly Norton <knorton@google.com>
Reviewed by Pavel Feldman.
Web Inspector: JavaScript Error in DOMAgent.js:375 (_attributesUpdated)
https://bugs.webkit.org/show_bug.cgi?id=33915
Errors were caused by the fact that Element::attributes calls Element::setAttribute to
synchronized the styleAttr. The fix is to simply check the synchronizing style attribute
flag.
* dom/Element.cpp:
(WebCore::Element::setAttribute): Checked for case where styleAttr is being synchronized.
2010-01-22 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
Update r53711 for GraphicsLayer method rename.
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::createLayerForMovie): Rename from change setContentsToVideo.
2010-01-22 Jian Li <jianli@chromium.org>
Reviewed by Darin Adler.
Add BlobConstructor to DOMWindow.
https://bugs.webkit.org/show_bug.cgi?id=33982
* page/DOMWindow.idl:
2010-01-22 Brian Weinstein <bweinstein@apple.com>
Rubber-stamped by Adam Roben.
Commit files that were supposed to be part of r53696, but weren't
landed.
* English.lproj/localizedStrings.js:
* manual-tests/debugger-caught-uncaught-exceptions.html: Added.
2010-01-22 Peter Kasting <pkasting@google.com>
Reviewed by David Hyatt.
When scrolling by page, hold back 1/8th of the visible size instead of
40 px.
https://bugs.webkit.org/show_bug.cgi?id=32595
* editing/EditorCommand.cpp:
(WebCore::verticalScrollDistance):
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::wheelEvent):
* platform/Scrollbar.h:
* platform/wx/ScrollViewWx.cpp:
(WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
2010-01-22 Peter Kasting <pkasting@google.com>
Not reviewed, backout.
Back out r52673, which caused several regressions.
https://bugs.webkit.org/show_bug.cgi?id=32533
* platform/PopupMenuClient.h:
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupContainer::hidePopup):
(WebCore::PopupListBox::handleKeyEvent):
(WebCore::PopupListBox::abandon):
(WebCore::PopupListBox::acceptIndex):
(WebCore::PopupListBox::selectIndex):
(WebCore::PopupListBox::clearSelection):
(WebCore::PopupListBox::hidePopup):
* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenu::menuUnmapped):
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenu::show):
* platform/qt/QtAbstractWebPopup.cpp:
(WebCore::QtAbstractWebPopup::popupDidHide):
* platform/qt/QtAbstractWebPopup.h:
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::hide):
* platform/wx/PopupMenuWx.cpp:
(WebCore::PopupMenu::OnMenuItemSelected):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::popupDidHide):
* rendering/RenderMenuList.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::popupDidHide):
* rendering/RenderTextControlSingleLine.h:
2010-01-22 Dan Bernstein <mitz@apple.com>
Rubber-stamped by Darin Adler.
Revert r53693 because it broke scrolling of pages with fixed elements on
Mac OS X.
* page/FrameView.cpp:
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollContents):
* platform/ScrollView.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
(WebCore::RenderObject::destroy):
2010-01-22 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=34008
Assertion failure in KURL::setProtocol when running DOM Fuzzer
Test: fast/dom/Window/invalid-protocol.html
* bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::setProtocol): Raise an exception
if KURL::setProtocol fails.
* html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::setProtocol): Move argument
tweaking logic into KURL. This way, the ':' trick applies to both JSLocation and
HTMLAnchorElement, matching IE (but not Firefox). IE behavior is more permissive, and even
more logical in my opinion.
* loader/FrameLoader.cpp: (WebCore::FrameLoader::iconURL): Assert that setting protocol
succeeded.
* platform/KURL.cpp: (WebCore::KURL::setProtocol): Remove everything past ':', if present.
Return false if the protocol to set is not valid.
(WebCore::isValidProtocol): Made this work correctly for empty strings.
* platform/KURL.h: isValidProtocol() is now static in KURL.cpp, it's only used in setProtocol().
* platform/KURLGoogle.cpp:
(WebCore::KURL::setProtocol): Always return true. This should hopefully prevent Chromium build
breakage, alhough tests will likely fail.
(WebCore::isValidProtocol): Removed, as this isn't used at the moment.
* websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::httpURLForAuthenticationAndCookies):
Assert that setting protocol succeeded.
2010-01-22 Eric Carlson <eric.carlson@apple.com>
Reviewed by Adam Roben.
<rdar://problem/7373568>
https://bugs.webkit.org/show_bug.cgi?id=34007
Implement hardware acceleration of video compositing on Windows
Internally we still have QuickTime render to a bitmap, but frames are then composited
with the page using an accelerated renderer.
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_newFrameAvailable.
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): Call tearDownVideoRendering.
(WebCore::MediaPlayerPrivate::cancelLoad): Call tearDownVideoRendering.
(WebCore::MediaPlayerPrivate::updateStates): Call setUpVideoRendering once the movie
is ready to draw.
(WebCore::MediaPlayerPrivate::isReadyForRendering): New, utility function returns true
only when movie is ready to render.
(WebCore::MediaPlayerPrivate::setSize): Remember the size as we need it when rendering
in accelerated mode.
(WebCore::MediaPlayerPrivate::setVisible): Call setUpVideoRendering when made visible.
(WebCore::MediaPlayerPrivate::paint): Do nothing when rendering to a layer. Move frame
rate drawing code to paintCompleted.
(WebCore::MediaPlayerPrivate::paintCompleted): New, clear m_newFrameAvailable and, when
built with DRAW_FRAME_RATE, draw framerate.
(WebCore::MediaPlayerPrivate::movieNewImageAvailable): Set m_newFrameAvailable, trigger
repaint differently when drawing to a layer.
(WebCore::MediaPlayerPrivate::currentRenderingMode): New, return the current rendering mode.
(WebCore::MediaPlayerPrivate::preferredRenderingMode): New, return preferred rendering mode
(render to a layer whenever possible).
(WebCore::MediaPlayerPrivate::setUpVideoRendering): New, tear down current rendering mode
and set up new mode when necessary.
(WebCore::MediaPlayerPrivate::tearDownVideoRendering): New, noop unless rendering to a layer.
(WebCore::MediaPlayerPrivate::hasSetUpVideoRendering): New.
(WebCore::MediaPlayerPrivate::paintContents): New, callback from compositing layer when it
is time to draw the current frame.
(WebCore::MediaPlayerPrivate::createLayerForMovie): New, allocate a layer for the movie.
(WebCore::MediaPlayerPrivate::destroyLayerForMovie): New, delete movie layer.
(WebCore::MediaPlayerPrivate::supportsAcceleratedRendering): New, return true unless the
movie is not ready to render.
(WebCore::MediaPlayerPrivate::acceleratedRenderingStateChanged): New, deal with change in
accelerated rendering state.
(WebCore::MediaPlayerPrivate::notifySyncRequired): New, callback from compositing layer
when it wants to schedule a redraw.
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
(WebCore::MediaPlayerPrivate::notifyAnimationStarted):
(WebCore::MediaPlayerPrivate::showDebugBorders):
(WebCore::MediaPlayerPrivate::showRepaintCounter):
* platform/graphics/win/QTMovieWin.cpp:
(QTMovieWin::getCurrentFrameInfo):
New, return information about the offscreen render buffer.
(QTMovieWin::initializeQuickTime):
* platform/graphics/win/QTMovieWin.h:
2010-01-21 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
The Chromium WebKit API needs to expose storage event related data
https://bugs.webkit.org/show_bug.cgi?id=33985
This change is not visible to layoutTests/web pages.
* storage/StorageArea.h:
* storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::setItem): return the old value
(WebCore::StorageAreaImpl::removeItem): return the old value
(WebCore::StorageAreaImpl::clear): return whether there was anything to clear
* storage/StorageAreaImpl.h:
2010-01-22 Adele Peterson <adele@apple.com>
Reviewed by Dan Bernstein.
An element that doesn't validate and an invalid element shouldn't share style
https://bugs.webkit.org/show_bug.cgi?id=34010
Test: fast/css/pseudo-invalid-novalidate-001.html
* css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::canShareStyleWithElement):
Separate the check for willValidate from the check for isValidFormControlElement.
* html/HTMLFormControlElement.h: The validity method doesn't need to be virtual.
2010-01-22 Steve Falkenburg <sfalken@apple.com>
Reviewed by Dan Bernstein.
Crash in fast/dom/Window/window-properties if Geolocation enabled
https://bugs.webkit.org/show_bug.cgi?id=34013
Add null check to fix Geolocation crash in fast/dom/Window/window-properties.
* page/Geolocation.cpp:
(WebCore::createGeoposition):
2010-01-22 Kent Hansen <kent.hansen@nokia.com>
Reviewed by Darin Adler.
Object.getOwnPropertyDescriptor(window) returns descriptors for properties in the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=33948
Even though prototype properties are proxied by JSDOMWindow::getOwnPropertySlot(),
that proxying should not be performed by JSDOMWindow::getOwnPropertyDescriptor().
This makes getOwnPropertyDescriptor() consistent with getOwnPropertyNames().
Test: fast/dom/Window/window-property-descriptors.html
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertyDescriptor):
2010-01-22 Girish Ramakrishnan <girish@forwardbias.in>
Reviewed by Simon Hausmann.
[Qt] Save the QWebPageClient instead of the ownerWidget in QtAbstractWebPopup
The QWebPageClient is required for the QtFallbackWebPopup. QtFallbackWebPopup will
need it to create a QGraphicsProxyWidget (in a future commit) for the
QGraphicsWebView's web popup.
* platform/qt/PopupMenuQt.cpp:
(WebCore::PopupMenu::show):
* platform/qt/QtAbstractWebPopup.cpp:
(WebCore::QtAbstractWebPopup::QtAbstractWebPopup):
(WebCore::QtAbstractWebPopup::popupDidHide):
(WebCore::QtAbstractWebPopup::valueChanged):
(WebCore::QtAbstractWebPopup::itemType):
* platform/qt/QtAbstractWebPopup.h:
(WebCore::QtAbstractWebPopup::itemText):
(WebCore::QtAbstractWebPopup::itemToolTip):
(WebCore::QtAbstractWebPopup::itemIsEnabled):
(WebCore::QtAbstractWebPopup::itemCount):
(WebCore::QtAbstractWebPopup::pageClient):
(WebCore::QtAbstractWebPopup::font):
2010-01-22 Simon Hausmann <simon.hausmann@nokia.com>
Unreviewed Qt "build" fix.
* WebCore.pro: Fix warning about missing header file that isn't present anymore.
2010-01-22 Sebastian Dröge <sebastian.droege@collabora.co.uk>
Reviewed by Gustavo Noronha Silva.
Update copy of the source whenever playbin2's source property
changes.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mediaPlayerPrivateSourceChangedCallback):
(WebCore::MediaPlayerPrivate::updateStates):
(WebCore::MediaPlayerPrivate::createGSTPlayBin):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
Connect to the notify::source signal and update the source
element pointer from there. This makes sure that we never
store a pointer to an old source element.
2010-01-22 Brian Weinstein <bweinstein@apple.com>
Reviewed by Timothy Hatcher.
Web Inspector: Caught exceptions still pause the debugger.
<https://bugs.webkit.org/show_bug.cgi?id=28622>.
Turn the pauseOnExceptions variable from a bool to an int, because we now have
3 states, in an enum: DontPauseOnExceptions, PauseOnAllExceptions, and
PauseOnUncaughtExceptions. The status button for pausing on exceptions is now
a tri-state button, which cycles from Don't pause (no background) to Pause on All
(blue background) to Pause on Uncaught (purple background).
Also added the ability for a status button to have more than 2 states, and added
style rules for a CSS three state button.
Added a manual test, manual-tests/debugger-caught-uncaught-exceptions.html, that
generates caught and uncaught exceptions.
* English.lproj/localizedStrings.js: Added updated Action / Click to Action text.
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::pauseOnExceptions): Changed from a bool to an int.
(WebCore::InspectorBackend::setPauseOnExceptions): Ditto.
* inspector/InspectorBackend.h: Ditto.
* inspector/InspectorBackend.idl: Ditto.
* inspector/JavaScriptDebugServer.cpp:
(WebCore::JavaScriptDebugServer::JavaScriptDebugServer): Changed from bool to PauseOnExceptionsState.
(WebCore::JavaScriptDebugServer::setPauseOnExceptions): Ditto.
(WebCore::JavaScriptDebugServer::exception): Updated logic to see if we are breaking
on uncaught exceptions, and check if we have a handler.
* inspector/JavaScriptDebugServer.h:
(WebCore::JavaScriptDebugServer::): Changed from bool to PauseOnExceptionsState.
(WebCore::JavaScriptDebugServer::pauseOnExceptions): Ditto.
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub.prototype.pauseOnExceptionsState): Changed from returning false to returning 0 (stub function).
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton): Updated to new text/new cycling of variables.
(WebInspector.ScriptsPanel.prototype._togglePauseOnExceptions): Updated to new text/new cycling of variables.
* inspector/front-end/StatusBarButton.js:
(WebInspector.StatusBarButton): Added the option for a different number of states.
(WebInspector.StatusBarButton.prototype.set toggled): Added rules to toggle on/off with multiple states.
* inspector/front-end/inspector.css: Added rules for toggled-1 and toggled-2.
* manual-tests/debugger-caught-uncaught-exceptions.html: Added.
2010-01-22 Ben Murdoch <benm@google.com>
Reviewed by Eric Seidel.
[Android] Android platform specific PlatformTouchEvent and PlatformTouchPoint implementations are not upstream.
https://bugs.webkit.org/show_bug.cgi?id=33719
Add the Android specific files and update the Android makefile.
No new tests as this is all Android-specific code.
* Android.mk: Add Touch event related files to the makefile.
* platform/PlatformTouchEvent.h: Add Android constructor.
* platform/PlatformTouchPoint.h: Ditto.
* platform/android/PlatformTouchEventAndroid.cpp: Added.
(WebCore::PlatformTouchEvent::PlatformTouchEvent): Android implementation.
* platform/android/PlatformTouchPointAndroid.cpp: Added.
(WebCore::PlatformTouchPoint::PlatformTouchPoint): Android implementation.
2010-01-22 Benjamin Poulain <benjamin.poulain@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Do not render the full frame when there is some elements with fixed positioning
https://bugs.webkit.org/show_bug.cgi?id=33150
The RenderObjects with fixed position register to the view
to be taken into account while scrolling.
The scrolling code update specifically those elements after blitting the pixels.
* page/FrameView.cpp:
(WebCore::FrameView::registerFixedPositionedObject):
(WebCore::FrameView::unregisterFixedPositionedObject):
(WebCore::FrameView::scrollContentsFastPath):
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollContents):
(WebCore::ScrollView::scrollContentsFastPath):
* platform/ScrollView.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
(WebCore::RenderObject::destroy):
2010-01-22 Anton Muhin <antonm@chromium.org>
Reviewed by Eric Seidel.
Adding ScriptWrappable into WebCore.
This allows to associate custom information when Node
gets wrapped into JavaScript wrapper.
[v8, dom] Add a pointer field to C++ Node class
https://bugs.webkit.org/show_bug.cgi?id=32430
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptWrappable.h: Added.
(WebCore::ScriptWrappable::ScriptWrappable):
* bindings/v8/ScriptWrappable.h: Added.
(WebCore::ScriptWrappable::ScriptWrappable):
(WebCore::ScriptWrappable::wrapper):
(WebCore::ScriptWrappable::setWrapper):
(WebCore::ScriptWrappable::clearWrapper):
* dom/Node.h:
2010-01-22 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Add stub implementation of dispatchOnInjectedScript method so that
Chromium source can compile against it and the main fix for the bug
28622 can be landed without breaking Chromium build.
https://bugs.webkit.org/show_bug.cgi?id=28622
* inspector/InspectorBackend.h:
(WebCore::InspectorBackend::dispatchOnInjectedScript):
2010-01-22 Kwang Yul Seo <skyul@company100.net>
Reviewed by Dmitry Titov.
ENABLE(DATABASE) guard is missing in ScriptExecutionContext::~ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=33990
Add missing ENABLE(DATABASE) guard.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
2010-01-22 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=33590
* bindings/scripts/generate-bindings.pl:
2010-01-22 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=33590
Rename FEATURE_DEFINES_JAVASCRIPT to FEATURE_DEFINES and remove
the hardcoded LANGUAGE_JAVASCRIPT=1, in preparation for its use by
the GObject DOM bindings.
* GNUmakefile.am:
2010-01-22 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7568696> Zoom applied to embedded SVG incorrectly
https://bugs.webkit.org/show_bug.cgi?id=33988
Test: svg/custom/text-zoom.xhtml
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::SVGSVGElement): Initialize m_scale.
(WebCore::SVGSVGElement::currentScale): If this is the document element,
return the frame’s zoom factor. Otherwise, return m_scale.
(WebCore::SVGSVGElement::setCurrentScale): If this is the document element,
set the frame’s zoom factor. Otherwise, set m_scale and mark for layout.
* svg/SVGSVGElement.h: Added m_scale member.
2010-01-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
[chromium] Add allowPlugins callback to allow per-site enabling of plugins
https://bugs.webkit.org/show_bug.cgi?id=33974
Add a callback into the FrameLoaderClient to let the embedder enable or
disable plugins on a per-site basis.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::requestObject):
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::allowPlugins):
2010-01-21 Tony Chang <tony@chromium.org>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=25501
Remove empty font tags when applying a style to a content editable
region.
Test: editing/execCommand/change-font.html
* editing/ApplyStyleCommand.cpp:
(WebCore::isEmptyFontTag):
2010-01-21 Joe Mason <jmason@rim.com>
Reviewed by Darin Adler.
Promote pow argument to double to resolve ambiguous overload (compile fix for RVCT 4.0)
https://bugs.webkit.org/show_bug.cgi?id=33952
* platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::gamma):
2010-01-21 Andrei Popescu <andreip@google.com>
Reviewed by David Levin.
[Android] bindings/v8/ScriptController.cpp needs to include
PlatformBridge.h instead of ChromiumBridge.h so that it can
be used on both Chromium and Android.
https://bugs.webkit.org/show_bug.cgi?id=33673
Add "static NPObject* pluginScriptableObject(Widget*);" method
to PlatformBridge.h
Include PlatformBridge.h from ScriptController.cpp.
No new tests, just platform code.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::createScriptInstanceForWidget):
* platform/android/PlatformBridge.h:
2010-01-21 Brady Eidson <beidson@apple.com>
Reviewed by Maciej Stachowiak.
history.back() for same-document history traversals isn't synchronous as the specification states.
<rdar://problem/7535011> and https://bugs.webkit.org/show_bug.cgi?id=33538
In resolving https://bugs.webkit.org/show_bug.cgi?id=25570, all history.back()/forward()/go() navigations
were made asynchronous. That doesn't agree with the HTML5 spec and might have been overreaching for fixing
that particular bug. In working with the new history state APIs I noticed some things that should've been
possible were not possible because of this change.
The change in loading behavior is well covered via modifications to previous tests.
* loader/RedirectScheduler.cpp:
(WebCore::RedirectScheduler::scheduleHistoryNavigation): Determine beforehand if the traversal is
a same-document navigation. If it is, perform the load directly instead of scheduling it.
2010-01-21 Jakub Wieczorek <faw217@gmail.com>
Reviewed by Tor Arne Vestbø.
[Qt] Don't allow Phonon's invisible video widget to keep the app running.
https://bugs.webkit.org/show_bug.cgi?id=33842
The change made in r38223 should not be limited to Qt < 4.5 only.
* platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
2010-01-21 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
HTMLInputElement::valueAsDate setter support for type=datetime.
https://bugs.webkit.org/show_bug.cgi?id=33939
Introduce ISODateTime::setMillisecondsSinceEpochForDateTime() and add
DateTime type support to ISODateTime::toString().
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValueAsDate):
* html/ISODateTime.cpp:
(WebCore::ISODateTime::setMillisecondsSinceEpochForDate):
Set Invalid to m_type.
(WebCore::ISODateTime::setMillisecondsSinceEpochForDateTime):
(WebCore::ISODateTime::setMillisecondsSinceEpochForMonth):
Set Invalid to m_type.
(WebCore::ISODateTime::setMillisecondsSinceMidnight):
Set Invalid to m_type.
(WebCore::ISODateTime::toString):
Support DateTime type. This always produces UTC representation.
* html/ISODateTime.h:
2010-01-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed <rdar://problem/7562574> ASSERT in WebCore::removeWrapper() at the
end of run-webkit-tests
This was an ASSERT-only bug, introduced by isolated worlds, which
created the novelty of a wrapper that might outlive its wrapper cache.
When a wrapper outlived its wrapper cache, both the wrapper's destructor
and the wrapper cache's destructor would claim to have uncached the wrapper,
causing an ASSERT to fire.
The solution is to distinguish between operations that logically add and
remove cache entries, and operations that delete whole caches. We track
when a cache entry is logically added, and when it's logically removed,
independent of whether the actual cache still exists.
* bindings/js/JSDOMBinding.cpp:
(WebCore::willCacheWrapper):
(WebCore::didUncacheWrapper): New names for these functions to help
explain what they track.
(WebCore::DOMWrapperWorld::~DOMWrapperWorld): Don't claim to uncache
all the wrappers in the world; we're deleting the cache, not managing its
entries.
(WebCore::cacheDOMObjectWrapper):
(WebCore::forgetDOMObject):
(WebCore::forgetDOMNode):
(WebCore::cacheDOMNodeWrapper):
(WebCore::forgetAllDOMNodesForDocument):
(WebCore::forgetWorldOfDOMNodesForDocument):
(WebCore::takeWrappers):
(WebCore::updateDOMNodeDocument): Updated for renames.
2010-01-21 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Sam Weinig.
SVG JS bindings "context" pointer needs to move onto binding impls
https://bugs.webkit.org/show_bug.cgi?id=27243
Rewrite SVG DOM JSC bindings to use a global DOMObject <-> SVGElement context map, similar to V8's approach.
This allows us to remove DOMObjectWithSVGContext and make all SVG JS objects use DOMObjectWithGlobalPointer.
We're fitting again in JS_CELL_SIZE, and there's no need to special case SVG anymore.
Not adding a new test, as we have yet to identify how to test that we're passing around correct global objects.
For now this is just a code cleanup which lets me continue making progress in that area of the code.
* GNUmakefile.am: Add new DOMObjectWithSVGContext.h to build.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/DOMObjectWithSVGContext.h: Removed.
* bindings/js/JSDOMBinding.cpp:
(WebCore::setDOMException): Add comment, that passing 0 context is intentional.
* bindings/js/JSDOMBinding.h:
(WebCore::createDOMObjectWrapper): Add to JSSVGContextCache, when creating wrappers.
(WebCore::getDOMObjectWrapper): Add assertion guarding the JSSVGContextCache is in-sync with the passed context.
* bindings/js/JSSVGContextCache.h: Added. Maps DOMObjects to SVGElements - just like V8 approachs to this problem.
(WebCore::JSSVGContextCache::wrapperMap):
(WebCore::JSSVGContextCache::addWrapper):
(WebCore::JSSVGContextCache::forgetWrapper):
(WebCore::JSSVGContextCache::propagateSVGDOMChange):
(WebCore::JSSVGContextCache::svgContextForDOMObject):
* bindings/js/JSSVGLengthCustom.cpp: Retrieve context from cache, instead of taking it from the JS* class.
(WebCore::JSSVGLength::value):
(WebCore::JSSVGLength::convertToSpecifiedUnits):
* bindings/js/JSSVGMatrixCustom.cpp Ditto.:
(WebCore::JSSVGMatrix::multiply):
(WebCore::JSSVGMatrix::inverse):
(WebCore::JSSVGMatrix::rotateFromVector):
* bindings/js/JSSVGPODListCustom.h: Ditto.
(WebCore::JSSVGPODListCustom::finishGetter):
(WebCore::JSSVGPODListCustom::finishSetter):
(WebCore::JSSVGPODListCustom::finishSetterReadOnlyResult):
(WebCore::JSSVGPODListCustom::clear):
(WebCore::JSSVGPODListCustom::initialize):
* bindings/js/JSSVGPODTypeWrapper.h: Ditto.
(WebCore::JSSVGDynamicPODTypeWrapper::commitChange):
(WebCore::JSSVGStaticPODTypeWrapper::commitChange):
(WebCore::JSSVGStaticPODTypeWrapperWithPODTypeParent::commitChange):
(WebCore::JSSVGStaticPODTypeWrapperWithParent::commitChange):
(WebCore::JSSVGPODTypeWrapperCreatorForList::create):
(WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
* bindings/js/JSSVGPathSegCustom.cpp: Ditto.
(WebCore::toJS):
* bindings/js/JSSVGPathSegListCustom.cpp: Ditto.
(WebCore::JSSVGPathSegList::clear):
(WebCore::JSSVGPathSegList::initialize):
(WebCore::JSSVGPathSegList::getItem):
(WebCore::JSSVGPathSegList::insertItemBefore):
(WebCore::JSSVGPathSegList::replaceItem):
(WebCore::JSSVGPathSegList::removeItem):
(WebCore::JSSVGPathSegList::appendItem):
* bindings/scripts/CodeGeneratorJS.pm:
* svg/SVGAngle.h: Remove unneeded associatedAttributeName() method.
* svg/SVGPreserveAspectRatio.h: Ditto.
* svg/SVGTransform.h: Ditto.
2010-01-21 Kevin Ollivier <kevino@theolliviers.com>
Build fix, add missing header.
* dom/ScriptExecutionContext.cpp:
2010-01-21 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
-webkit-mask-box-image draws a box while loading
https://bugs.webkit.org/show_bug.cgi?id=33979
<rdar://problem/7378662>
Don't render masked elements until the mask images are fully loaded.
Test: http/tests/misc/slow-loading-mask.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintMaskImages): Check that all mask images (both the single mask-box-image,
and the possibly multiple mask-image) are fully loaded before allowing the masked content to render.
If they are not fully loaded, use a fully transparent transparency layer.
* rendering/style/FillLayer.h:
* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::imagesAreLoaded): New utility function that returns true if the image
in every FillLayer is loaded.
2010-01-21 Darin Adler <darin@apple.com>
Reviewed by Mark Rowe.
REGRESSION (r52795): New message created in response to mailto: URL has random character in message body
rdar://problem/7565902
This regression affects the Mac OS X Mail application.
I was not able to find a simple way to create a regression test.
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::SharedBuffer): Initialize m_size to 0 as in the other constructors.
2010-01-21 Enrica Casucci <enrica@apple.com>
Reviewed by Darin Adler.
Script tags are copied and pasted, making cross-domain attacks possible.
https://bugs.webkit.org/show_bug.cgi?id=33970
Tests: editing/pasteboard/paste-noscript-svg.html
editing/pasteboard/paste-visible-script.html
We remove the content and the attributes of every script tag before
pasting into the destination.
* dom/Element.cpp:
(WebCore::Element::setAttributeMap): Now we are removing xlink:href
if it contains javascript protocol.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::parseToken): We strip all the script tag attributes
we are parsing to create a fragment to paste.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::HTMLTokenizer):
(WebCore::HTMLTokenizer::scriptHandler): Removes the script text after it was parsed.
* html/HTMLTokenizer.h:
2010-01-21 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
<use> with % lengths does not update on window resize
https://bugs.webkit.org/show_bug.cgi?id=14639
appendChild broken for symbol-use
https://bugs.webkit.org/show_bug.cgi?id=24802
Test: svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml
svg/custom/svg/custom/relative-sized-use-on-symbol.xhtml
Fix reaction on window size changes for relative sized elements within <symbol> elements.
Don't evaluate SVGUseElement width/height attributes in order to propagate them to the shadow tree,
instead just propagate the attribute values itself so "100%" remains "100%" instead of being evaluated
to an absolute pixel value in the parent <svg> user-space.
Needs another fix in SVGStyledElement::childrenChanged(), which is a regression from my last <use>
patch, that hasn't been detected, as the use-dynamic-append.svg testcase was broken.
The combination of all the last <use> patches finally fixes the peepo.co.uk website, which was broken by several bugs for years.
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::childrenChanged): Need to mark shadow trees needing recalcs, even when parsing.
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::svgAttributeChanged): Don't reclone for width/height attribute changes, just propagate them down the render tree
(WebCore::updateContainerSize): Added helper function, updating the width/height attributes in the shadow tree.
(WebCore::SVGUseElement::updateContainerSizes):
(WebCore::SVGUseElement::buildShadowAndInstanceTree): Update container width/height after shadow tree creation, instead of doing it inbetween.
(WebCore::SVGUseElement::buildShadowTree): Don't alter width/height attributes here anymore.
(WebCore::SVGUseElement::expandUseElementsInShadowTree): Ditto.
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree): Ditto.
* svg/SVGUseElement.h:
2010-01-21 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=33972
Assertion failure in FrameLoader::checkLoadComplete()
I couldn't make a test for this, after trying rather hard. I'm not too worried, because such
a test has to depend on details of current implementation so intimately that it would become
ineffective very quickly anyway.
* loader/FrameLoader.cpp: (WebCore::FrameLoader::stopAllLoaders): Stop the check timer, we
don't need it after aborting load.
2010-01-21 Csaba Osztrogonác <ossy@webkit.org>
Reviewed by Dave Hyatt.
Buildfix for r53646.
* bindings/js/SerializedScriptValue.cpp: path of JSLock.h fixed.
2010-01-21 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed buildfix after r53644.
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::scroll): missing HAVE(ACCESSIBILITY) guard added.
2010-01-21 Darin Fisher <darin@chromium.org>
Reviewed by David Levin.
Unnecessary call to HistoryItem::targetItem in HistoryController::pushState
https://bugs.webkit.org/show_bug.cgi?id=33969
* loader/HistoryController.cpp:
(WebCore::HistoryController::pushState): Remove unnecessary code.
2010-01-21 Dmitry Titov <dimich@chromium.org>
Not reviewed, Chromium build fix. Add AccessibilityScrollbar.h and .cpp to WebCore.gypi
* WebCore.gypi:
2010-01-21 Albert J. Wong <ajwong@chromium.org>
[chromium] Unreviewed build fix.
Fix possible use of initialized variable warning in release mode.
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::ZigZag::Deserializer::doDeserialize):
2010-01-21 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Unreviewed buildfix after r53644.
* WebCore.pro: accessibility/AccessibilityScrollbar.cpp and accessibility/AccessibilityScrollbar.h added.
2010-01-21 Dave Hyatt <hyatt@apple.com>
Reviewed by Oliver Hunt.
Make sure to do a JSLock before deserialization of script values, since they can heap allocate.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValueData::deserialize):
2010-01-21 Beth Dakin <bdakin@apple.com>
Reviewed by Oliver Hunt.
Fix for https://bugs.webkit.org/show_bug.cgi?id=33923 REGRESSION
(Safari 4): AXValueChanged no longer sent for text area scrollbars
-and corresponding-
<rdar://problem/6942686>
New class AccessibilityScrollbar inherits directly from
AccessibilityObject.
* accessibility/AccessibilityScrollbar.cpp: Added.
(WebCore::AccessibilityScrollbar::AccessibilityScrollbar):
(WebCore::AccessibilityScrollbar::create):
(WebCore::AccessibilityScrollbar::valueForRange):
* accessibility/AccessibilityScrollbar.h: Added.
(WebCore::AccessibilityScrollbar::setScrollbar):
(WebCore::AccessibilityScrollbar::roleValue):
(WebCore::AccessibilityScrollbar::accessibilityIsIgnored):
(WebCore::AccessibilityScrollbar::size):
(WebCore::AccessibilityScrollbar::elementRect):
(WebCore::AccessibilityScrollbar::parentObject):
AXObjectCache::getOrCreate() now has a case for ScrollBarRole,
which will create a new AccessibilityScrollbar. I also added a new
version of postNotification() that does not require a renderer. The
old postNotification() calls the new one.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::postNotification):
* accessibility/AXObjectCache.h:
When AX is enabled, getOrCreate an AccessibilityScrollbar and send
a notification.
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::scroll):
Fix project files.
* GNUmakefile.am:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
2010-01-21 Eric Uhrhane <ericu@chromium.org>
Reviewed by Dmitry Titov.
Add changes missing from r53595, without which Chromium has no database.
https://bugs.webkit.org/show_bug.cgi?id=33966
No new tests - fixes database layout tests in Chromium.
* bindings/v8/RuntimeEnabledFeatures.cpp:
* bindings/v8/RuntimeEnabledFeatures.h:
2010-01-21 Jakob Petsovits <jpetsovits@rim.com>
Reviewed by Adam Treat.
Don't call vgGetError()/eglGetError() repeatedly
https://bugs.webkit.org/show_bug.cgi?id=33959
For vgGetError(), I missed the part of the spec where
it says that calling that function clears the error
and subsequent calls will return VG_NO_ERROR again.
For eglGetError(), the specification doesn't mention
that kind of behavior, and interpretations seem to
differ between EGL implementations (even within
Khronos: the OpenVG reference implementation doesn't
reset the error code - and even mentions the difference
to vgGetError() in a comment - whereas the online
OpenGL ES API document explicitly specifies clearing
the error code).
It thus makes sense not to call either of the two
error functions more than once for checking a single
EGL/OpenVG call. This patch adapts assertions to
accommodate for this behavior, and also needs to
change surface creation methods as they previously
relied on multiple calls of eglGetError().
* platform/graphics/openvg/EGLDisplayOpenVG.cpp:
(WebCore::EGLDisplayOpenVG::sharedPlatformSurface):
(WebCore::EGLDisplayOpenVG::createPbufferSurface):
* platform/graphics/openvg/EGLDisplayOpenVG.h:
* platform/graphics/openvg/EGLUtils.h:
* platform/graphics/openvg/SurfaceOpenVG.cpp:
(WebCore::SurfaceOpenVG::SurfaceOpenVG):
* platform/graphics/openvg/SurfaceOpenVG.h:
* platform/graphics/openvg/VGUtils.h:
2010-01-20 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt.
Hit testing on composited plugins is broken
https://bugs.webkit.org/show_bug.cgi?id=33927
<rdar://problem/7559069>
RenderWidget::paint()'s strategy of moving widgets at paint time, using tx and ty, was flawed
because tx,ty are not always root-relative, especially when painting into compositing layers.
This would move widgets to the wrong location, which caused hit testing issues.
Widgets are usually positioned by layout. The one time this was not true was scrolling fixed-position
elements, so we now reposition widgets after scrolling too.
There was a related problem, which was that widgets expect the graphics context to be set up for
root-relative painting. To fix this, adjust the CTM and the paintRect when the widget's frameRect
is in a different coordinate system to the painting offset.
Test: plugins/mouse-events-fixedpos.html
* page/FrameView.cpp:
(WebCore::FrameView::scrollPositionChanged): Update widget positions, to handle widgets in fixed position
elements, but only if we're not already inside of layout.
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::translate): Add a translate() convenience method that takes a FloatSize.
* platform/graphics/IntSize.h:
(WebCore::IntSize::isZero): Add a convenience method for testing for a zero size.
* platform/mac/WidgetMac.mm:
(WebCore::Widget::paint): Adjust a comment.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint): Detect when the widget's frame is in a different coordinate system
to painting, and adjust the CTM and paintRect in that case.
2010-01-21 Andrei Popescu <andreip@google.com>
Reviewed by David Levin.
[Android] bindings/v8/NPV8Object.cpp does not compile on Android
https://bugs.webkit.org/show_bug.cgi?id=33608
Use the standard WebKit header in bridge/npruntime.h.
Include PlatformBridge.h instead of ChroimiumBridge.h.
Add popupsAllowed() method to PlatformBridge.h on Android.
Add ARRAYSIZE_UNSAFE to PlatformBridge.h on Android.
No new tests, fixing the build.
* bindings/v8/NPV8Object.cpp:
(_NPN_Evaluate):
* bindings/v8/NPV8Object.h:
* platform/android/PlatformBridge.h:
2010-01-21 Andrei Popescu <andreip@google.com>
Reviewed by David Levin.
Add PlatformBridge.h header and a typedef to give ChromiumBridge a new name: PlatformBridge.
https://bugs.webkit.org/show_bug.cgi?id=33917
No new tests needed, this is just to allow other methods to call ChromiumBridge
using the new 'PlatformBridge' name.
* platform/chromium/PlatformBridge.h: Added.
2010-01-21 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Unreviewed buildfix after r53625.
Cleanup MediaPlayer and MediaPlayerPrivateInterface to remove dead methods
https://bugs.webkit.org/show_bug.cgi?id=30106
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::paintMediaSliderTrack):
2010-01-21 Andrei Popescu <andreip@google.com>
Reviewed by David Levin.
[Android] bindings/v8/V8DOMWrapper.h[cpp] are missing guards for XPATH and XSLT features
https://bugs.webkit.org/show_bug.cgi?id=33944
Inside V8DOMWrapper.h[cpp], the code for XPATH and XSLT features is not guarded
by the appropriate #if ENABLE(feature) macros. Add the missing guards.
V8DOMWrapper.cpp includes ChromiumBridge.h for no reason. Remove the include.
No new tests needed, functionality not changed.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate):
* bindings/v8/V8DOMWrapper.h:
2010-01-21 Eric Carlson <eric.carlson@apple.com>
Reviewed by Darin Adler.
Intermittent crash when media element is adopted by another document
https://bugs.webkit.org/show_bug.cgi?id=33919
rdar://problem/7557527
Test: media/adopt-node-crash.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::willMoveToNewOwnerDocument): Unregister for
document callbacks.
(WebCore::HTMLMediaElement::didMoveToNewOwnerDocument): Register for
document callbacks.
* html/HTMLMediaElement.h:
2010-01-21 Adam Roben <aroben@apple.com>
More Windows build fixing
* WebCore.vcproj/WebCore.vcproj: Copy bridge/jsc in the post-build
event of all configurations, not just Debug.
2010-01-21 Thiago Macieira <thiago.macieira@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Fix incorrect dependency to QtXmlPatterns in generated include/QtWebKit/QtWebKit header
The generated file includes QtXmlPatterns/QtXmlPatterns, which is neither used/required by
the public QtWebKit API nor will it be available if Qt is configured with -no-xmlpatterns.
* WebCore.pro: Trick syncqt to believe that xmlpatterns is not a dependency, so that it's not
included in the generated file. It'll still be used and linked to with this trick.
2010-01-21 Steve Block <steveblock@google.com>
Unreviewed build fix.
Copy BridgeJSC.h to generated headers on Windows
No new tests, build fix only.
* WebCore.vcproj/WebCore.vcproj:
2010-01-21 Eric Carlson <eric.carlson@apple.com>
Reviewed by Darin Adler.
Cleanup MediaPlayer and MediaPlayerPrivateInterface to remove dead methods
https://bugs.webkit.org/show_bug.cgi?id=30106
No new tests, only dead code was removed.
* platform/graphics/MediaPlayer.cpp:
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
* platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
* platform/graphics/qt/MediaPlayerPrivatePhonon.h:
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::currentTime):
(WebCore::MediaPlayerPrivate::doSeek):
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
* platform/graphics/wince/MediaPlayerPrivateWince.h:
2010-01-21 Iain Campbell <iain.campbell@accenture.com>
Reviewed by Simon Hausmann.
[Qt] Simplify the qmake code for freezing QtWebKit on Symbian.
* WebCore.pro:
2010-01-21 Steve Block <steveblock@google.com>
Unreviewed speculative build fix for Windows.
Adds missing include path for JSCBridge.h on Windows, added in http://trac.webkit.org/changeset/53620
No new tests, build fix only.
* WebCore.vcproj/WebCoreCommon.vsprops:
2010-01-21 Steve Block <steveblock@google.com>
Unreviewed build fix.
Adds missing include path for JSCBridge.h, added in http://trac.webkit.org/changeset/53620
No new tests, build fix only.
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
2010-01-21 Steve Block <steveblock@google.com>
Reviewed by David Levin.
Move bridge interfaces Field, Class, Instance and Array from Bridge to BridgeJSC
https://bugs.webkit.org/show_bug.cgi?id=33589
These interfaces use JSC-specific types, so are moved out of Bridge.h to allow the file to
be used with both JSC and V8.
No new tests, refactoring only.
* Android.jscbindings.mk: Modified. Removed Bridge.cpp and added BridgeJSC.cpp
* GNUmakefile.am: Modified. Removed Bridge.cpp and added BridgeJSC.[cpp|h]
* WebCore.pro: Modified. Removed Bridge.cpp and added BridgeJSC.[cpp|h]
* WebCore.xcodeproj/project.pbxproj: Modified. Removed Bridge.cpp and added BridgeJSC.[cpp|h]
* WebCoreSources.bkl: Modified. Removed Bridge.cpp and added BridgeJSC.cpp
* bridge/Bridge.cpp: Removed.
* bridge/Bridge.h: Modfied. Moved Field, Class, Instance and Array interfaces to BridgeJSC.h
* bridge/jsc: Added.
* bridge/jsc/BridgeJSC.cpp: Copied from WebCore/bridge/Bridge.cpp.
* bridge/jsc/BridgeJSC.h: Copied from WebCore/bridge/Bridge.h.
2010-01-21 Steve Block <steveblock@google.com>
Reviewed by David Levin.
Fixes style in WebCore/bridge/jni/JNIBridge
https://bugs.webkit.org/show_bug.cgi?id=33914
No new tests, style fixes only.
* bridge/jni/JNIBridge.cpp:
* bridge/jni/JNIBridge.h:
2010-01-13 Philippe Normand <pnormand@igalia.com>
Reviewed by Oliver Hunt.
[GTK] handle media redirections
https://bugs.webkit.org/show_bug.cgi?id=33539
Media redirections support.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mediaPlayerPrivateMessageCallback):
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::mediaLocationChanged):
(WebCore::MediaPlayerPrivate::loadNextLocation):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
(WebCore::MediaPlayerPrivate::pipelineReset):
2010-01-21 No'am Rosenthal <noam.rosenthal@nokia.com>
Reviewed by Antti Koivisto.
[Qt] Implement GraphicsLayer for accelerated layer compositing
https://bugs.webkit.org/show_bug.cgi?id=33514
No new tests: tests in LayoutTests/compositing are now relevant for
QtWebkit!
* WebCore.pro: added accelerated-compositing related files
* platform/graphics/GraphicsLayer.h: define Qt-specific implementation of GraphicsLayer
* platform/graphics/qt/GraphicsLayerQt.cpp: Added.
(WebCore::GraphicsLayerQtImpl::): Implementation of GraphicsLayer with
a QGraphicsItem
(WebCore::GraphicsLayerQtImpl::ContentData::ContentData): save
pixmap/color info for directly composited content
(WebCore::GraphicsLayerQtImpl::State::State): save info for syncing
(WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl): ctor
(WebCore::GraphicsLayerQtImpl::~GraphicsLayerQtImpl): dtor
(WebCore::GraphicsLayerQtImpl::setBaseTransform): set Qt
transformation in the way WebCore wants it
(WebCore::GraphicsLayerQtImpl::opaqueArea): calculate opaque area
based on info we have
(WebCore::GraphicsLayerQtImpl::boundingRect): reimp QGraphicsItem
(WebCore::GraphicsLayerQtImpl::paint): reimp QGraphicsItem
(WebCore::GraphicsLayerQtImpl::drawContents): draw HTML/Pixmap/Color
(WebCore::GraphicsLayerQtImpl::notifyChange): let WebCore know
something has changed
(WebCore::GraphicsLayerQtImpl::flushChanges): Make the changes appear
on screen by setting them to QGraphicsItems
(WebCore::GraphicsLayerQtImpl::notifyAnimationStarted): let WebCore
know the QAnimation started
(WebCore::GraphicsLayerQt::GraphicsLayerQt): ctor
(WebCore::GraphicsLayerQt::~GraphicsLayerQt): dtor
(WebCore::GraphicsLayer::create): hook for WebCore to know we're
implementing compositing
(WebCore::GraphicsLayer::compositingCoordinatesOrientation): hook for
WebCore to know we use a top-down system
(WebCore::GraphicsLayerQt::setNeedsDisplay): update the display
(WebCore::GraphicsLayerQt::setNeedsDisplayInRect): udpate part of the
display
(WebCore::GraphicsLayerQt::setName): reimp
(WebCore::GraphicsLayerQt::setParent): reimp
(WebCore::GraphicsLayerQt::setChildren): reimp
(WebCore::GraphicsLayerQt::addChild): reimp
(WebCore::GraphicsLayerQt::addChildAtIndex): reimp
(WebCore::GraphicsLayerQt::addChildAbove): reimp
(WebCore::GraphicsLayerQt::addChildBelow): reimp
(WebCore::GraphicsLayerQt::replaceChild): reimp
(WebCore::GraphicsLayerQt::removeFromParent): reimp
(WebCore::GraphicsLayerQt::setMaskLayer): reimp
(WebCore::GraphicsLayerQt::setPosition): reimp
(WebCore::GraphicsLayerQt::setAnchorPoint): reimp
(WebCore::GraphicsLayerQt::setSize): reimp
(WebCore::GraphicsLayerQt::setTransform): reimp
(WebCore::GraphicsLayerQt::setChildrenTransform): reimp
(WebCore::GraphicsLayerQt::setPreserves3D): reimp
(WebCore::GraphicsLayerQt::setMasksToBounds): reimp
(WebCore::GraphicsLayerQt::setDrawsContent): reimp
(WebCore::GraphicsLayerQt::setBackgroundColor): reimp
(WebCore::GraphicsLayerQt::clearBackgroundColor): reimp
(WebCore::GraphicsLayerQt::setContentsOpaque): reimp
(WebCore::GraphicsLayerQt::setBackfaceVisibility): reimp
(WebCore::GraphicsLayerQt::setOpacity): reimp
(WebCore::GraphicsLayerQt::setContentsRect): reimp
(WebCore::GraphicsLayerQt::setContentsToImage): reimp
(WebCore::GraphicsLayerQt::setContentsBackgroundColor): reimp
(WebCore::GraphicsLayerQt::setGeometryOrientation): reimp
(WebCore::GraphicsLayerQt::setContentsOrientation): reimp
(WebCore::GraphicsLayerQt::distributeOpacity): reimp
(WebCore::GraphicsLayerQt::accumulatedOpacity): reimp
(WebCore::GraphicsLayerQt::syncCompositingState): reimp
(WebCore::GraphicsLayerQt::nativeLayer): reimp (QGraphicsItem*)
(WebCore::GraphicsLayerQt::platformLayer): reimp (QGraphicsItem*)
(WebCore::solveEpsilon): copy from AnimationBase.cpp
(WebCore::solveCubicBezierFunction): copy from AniamtionBase.cpp
(WebCore::applyTimingFunction): use WebCore's timing and not Qt's
(WebCore::webkitAnimationToQtAnimationValue): safely figure out
animation values
(WebCore::AnimationQtBase::AnimationQtBase): base class for Qt-based
Webcore-initiated animations
(WebCore::AnimationQtBase::updateState): notify when an animation
starts
(WebCore::AnimationQtBase::duration): reimp QAbstractAnimation
(WebCore::AnimationQt:::AnimationQtBase):
(WebCore::AnimationQt::updateCurrentTime): realize keyframes from
progress
(WebCore::TransformAnimationQt::TransformAnimationQt): ctor
(WebCore::TransformAnimationQt::~TransformAnimationQt): dtor
(WebCore::TransformAnimationQt::applyFrame): set the actual QTransform
based on WebCore TransformOperations
(WebCore::TransformAnimationQt::updateState): change cache mode
(WebCore::OpacityAnimationQt::OpacityAnimationQt):
(WebCore::OpacityAnimationQt::applyFrame): change item's opacity
(WebCore::OpacityAnimationQt::updateState):
(WebCore::GraphicsLayerQt::addAnimation): convert WebCore Animation to
Qt Animation
(WebCore::GraphicsLayerQt::removeAnimationsForProperty):
(WebCore::GraphicsLayerQt::removeAnimationsForKeyframes):
(WebCore::GraphicsLayerQt::pauseAnimation):
(WebCore::GraphicsLayerQt::suspendAnimations):
(WebCore::GraphicsLayerQt::resumeAnimations):
* platform/graphics/qt/GraphicsLayerQt.h: Added.
* platform/qt/QWebPageClient.h: virtual functions for QGraphicsWebView
compositing
(QWebPageClient::setRootGraphicsLayer): let QGraphicsWebView know that
compositing has started/ended
(QWebPageClient::markForSync): let QGraphicsWebView know the
compositing layers need to sync, either soon or with the next update
2010-01-21 No'am Rosenthal <noam.rosenthal@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Adding QPixmap/QImage support for the Qt hybrid layer
Allows accesing QPixmap and QImage based arguments from Qt signals,
slots and properties
This is done by an intermediate object that can be turned into
web-based objects by calling either toHTMLImageElement() or
toDataURL()
https://bugs.webkit.org/show_bug.cgi?id=32461
Tests are in WebKit/qt/tests/hybridPixmap
* WebCore.pro:
* bridge/qt/qt_pixmapruntime.cpp: Added.
(JSC::Bindings::QtPixmapWidthField::name): "width"
(JSC::Bindings::QtPixmapWidthField::valueFromInstance): width of
pixmap
(JSC::Bindings::QtPixmapWidthField::setValueToInstance): nothing
(JSC::Bindings::QtPixmapHeightField::name): "height"
(JSC::Bindings::QtPixmapHeightField::valueFromInstance): height of
pixmap
(JSC::Bindings::QtPixmapHeightField::setValueToInstance): nothing
(JSC::Bindings::QtPixmapRuntimeMethod::numParameters): 0
(JSC::Bindings::QtPixmapCreateElementMethod::name): toHTMLImageElement
(JSC::Bindings::QtPixmapCreateElementMethod::invoke): creates an HTML
element from the QPixmap
(JSC::Bindings::QtPixmapToDataUrlMethod::name): "toDataURL"
(JSC::Bindings::QtPixmapToDataUrlMethod::invoke): encodes the image to
a base64 data url
(JSC::Bindings::QtPixmapToStringMethod::name): "toString"
(JSC::Bindings::QtPixmapToStringMethod::invoke): [Qt Native Pixmap
w,h]
(JSC::Bindings::QtPixmapRuntimeObjectImp::createStructure):
runtime-object broilerplate
(JSC::Bindings::QtPixmapRuntimeObjectImp::classInfo): ditto
(JSC::Bindings::QtPixmapRuntimeObjectImp::QtPixmapRuntimeObjectImp):
ditto
(JSC::Bindings::): ditto
(JSC::Bindings::QtPixmapClass::QtPixmapClass): class for the
intermediate pixmap-holder
(JSC::Bindings::QtPixmapInstance::getClass): ditto
(JSC::Bindings::QtPixmapInstance::invokeMethod): ditto
(JSC::Bindings::QtPixmapClass::methodsNamed): toHTMLImageElement,
toDataURL
(JSC::Bindings::QtPixmapClass::fieldNamed): width, height
(JSC::Bindings::QtPixmapInstance::getPropertyNames):
toHTMLImageElement, toDataURL, width, height
(JSC::Bindings::QtPixmapInstance::defaultValue): nothing
(JSC::Bindings::QtPixmapInstance::valueOf): toString
(JSC::Bindings::data): holds a QVariant of type QImage/QPixmap
(JSC::Bindings::QtPixmapInstance::width): width of the image/pixmap
(JSC::Bindings::QtPixmapInstance::height): height of the image/pixmap
(JSC::Bindings::QtPixmapInstance::toPixmap): converts to a QPixmap
(JSC::Bindings::QtPixmapInstance::toImage): converts to a QImage
(JSC::Bindings::QtPixmapInstance::variantFromObject): makes sure this
is the right type of object, and creates a QVariant
(JSC::Bindings::QtPixmapInstance::createRuntimeObject): creates a new
intermediate pixmap holder from a QVariant
(JSC::Bindings::QtPixmapInstance::canHandle): returns true if a
QPixmap/QImage is required
* bridge/qt/qt_pixmapruntime.h: Added.
* bridge/qt/qt_runtime.cpp: hooks for the bridge
(JSC::Bindings::convertValueToQVariant): handle QPixmap/QImage if the
object is the intermediate pixmap holder or an HTMLImageElement
(JSC::Bindings::convertQVariantToValue): creates the intermediate
object from a QVariant of type QImage/QPixmap
2010-01-21 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Custom select popups.
https://bugs.webkit.org/show_bug.cgi?id=33418
Optimization of the WebCore support to combobox popup delegate.
* platform/qt/PopupMenuQt.cpp:
(WebCore::PopupMenu::show):
* platform/qt/QtAbstractWebPopup.cpp:
(WebCore::QtAbstractWebPopup::QtAbstractWebPopup):
(WebCore::QtAbstractWebPopup::itemType):
* platform/qt/QtAbstractWebPopup.h:
(WebCore::QtAbstractWebPopup::):
(WebCore::QtAbstractWebPopup::itemText):
(WebCore::QtAbstractWebPopup::itemToolTip):
(WebCore::QtAbstractWebPopup::itemIsEnabled):
(WebCore::QtAbstractWebPopup::itemCount):
(WebCore::QtAbstractWebPopup::view):
(WebCore::QtAbstractWebPopup::geometry):
(WebCore::QtAbstractWebPopup::currentIndex):
(WebCore::QtAbstractWebPopup::font):
2010-01-20 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
Stylesheet href property shows redirected URL unlike other browsers
https://bugs.webkit.org/show_bug.cgi?id=33683
Teach StyleSheet the difference between original and final URLs in
redirect chains. Unfortunately, StyleSheet needs to know both of these
URLs. The original URL is needed for the href property and the final
URL is needed as the baseURL.
This change required touching a lot of lines of code because we need to
plumb this information to the StyleSheet object. I audited all
existing clients of href() and setHref() to see whether they wanted the
original or final URLs. I then updated the clients (except the JS
bindings themselves) to use the correct accessor.
Test: http/tests/security/stylesheet-href-redirect.html
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::setCSSStyleSheet):
(WebCore::CSSImportRule::insertedIntoParent):
* css/CSSImportRule.h:
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::CSSStyleSheet):
* css/CSSStyleSheet.h:
(WebCore::CSSStyleSheet::create):
(WebCore::CSSStyleSheet::createInline): Added a new constructor to deal
with "inline" style sheets that don't have a distinct original and
final URL.
* css/StyleBase.cpp:
(WebCore::StyleBase::baseURL): This code wants to use the final URL,
not the original URL. Updated it to grab the baseURL directly.
* css/StyleSheet.cpp:
(WebCore::StyleSheet::StyleSheet):
* css/StyleSheet.h:
(WebCore::StyleSheet::href):
(WebCore::StyleSheet::setBaseURL): This function really just updates
the base URL of the style sheet, so I made it more explicit.
(WebCore::StyleSheet::putativeBaseURL): We need an accessor for the
base URL, but baseURL is already taken.
* dom/Document.cpp:
(WebCore::Document::updateBaseURL):
(WebCore::Document::pageUserSheet):
(WebCore::Document::pageGroupUserSheets):
(WebCore::Document::elementSheet):
(WebCore::Document::mappedElementSheet):
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::checkStyleSheet):
(WebCore::ProcessingInstruction::setCSSStyleSheet):
(WebCore::ProcessingInstruction::setXSLStyleSheet):
* dom/ProcessingInstruction.h:
* dom/StyleElement.cpp:
(WebCore::StyleElement::createSheet):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setCSSStyleSheet):
* html/HTMLLinkElement.h:
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::didAddClient):
(WebCore::CachedCSSStyleSheet::checkNotify): This code now passes both
the original and final URL into setCSSStyleSheet so that the style
sheet can have both.
* loader/CachedResourceClient.h:
(WebCore::CachedResourceClient::setCSSStyleSheet):
(WebCore::CachedResourceClient::setXSLStyleSheet):
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::didAddClient):
(WebCore::CachedXSLStyleSheet::checkNotify): I don't have any direct
evidence that we need to change the XSLStyleSheet behavior, which is
why I wasn't able to add a test for the behavior. However, the objects
are parallel enough that it seemed like the right thing to do.
* xml/XSLImportRule.cpp:
(WebCore::XSLImportRule::setXSLStyleSheet):
(WebCore::XSLImportRule::loadSheet):
* xml/XSLImportRule.h:
* xml/XSLStyleSheet.h:
(WebCore::XSLStyleSheet::create):
(WebCore::XSLStyleSheet::createEmbedded):
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::XSLStyleSheet):
(WebCore::XSLStyleSheet::parseString):
(WebCore::XSLStyleSheet::loadChildSheets):
* xml/XSLStyleSheetQt.cpp:
(WebCore::XSLStyleSheet::XSLStyleSheet):
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::xsltStylesheetPointer):
* xml/XSLTProcessorQt.cpp:
(WebCore::XSLTProcessor::transformToString):
2010-01-20 Kwang Yul Seo <skyul@company100.net>
Reviewed by Alexey Proskuryakov.
Use xmlStrdup instead of strdup for consistency in Libxml2.
https://bugs.webkit.org/show_bug.cgi?id=33935
Remove the direct use of strdup.
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::PendingCallbacks::appendErrorCallback):
(WebCore::PendingCallbacks::):
(WebCore::XMLTokenizer::error):
2010-01-20 Oliver Hunt <oliver@apple.com>
Reviewed by Dan Bernstein.
Insufficient repaint issues with html embedded in foreignObject
https://bugs.webkit.org/show_bug.cgi?id=16318
Final part of fix -- now we render the selection rect of list
markers in a transformed context.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::localSelectionRect):
(WebCore::RenderListMarker::paint):
* rendering/RenderListMarker.h:
2010-01-20 Daniel Bates <dbates@webkit.org>
No review, rolling out 53591.
http://trac.webkit.org/changeset/53591
https://bugs.webkit.org/show_bug.cgi?id=29564
Rolling out the change committed in change set 53591
<http://trac.webkit.org/changeset/53591> because it caused
a regression of test /fast/replaced/table-percent-height.html
on the Qt bot.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::adjustButtonStyle):
2010-01-20 Stephen White <senorblanco@chromium.org>
Reviewed by David Levin.
Disable the "seatbelt" coordinate validation functions in the
Skia graphics layer. We believe all the underlying bugs have
been fixed, but just in case we're being overly optimistic, this
leaves in the code for an easy revert.
https://bugs.webkit.org/show_bug.cgi?id=33908
Exercised by many layout tests.
* platform/graphics/skia/GraphicsContextSkia.cpp:
2010-01-20 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
HTMLInputElement::valueAsDate setter support for type=date.
https://bugs.webkit.org/show_bug.cgi?id=33911
Introduce ISODateTime::setMillisecondsSinceEpochForDate() and add Date
type support to ISODateTime::toString().
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValueAsDate):
* html/ISODateTime.cpp:
(WebCore::ISODateTime::setMillisecondsSinceEpochForDate):
(WebCore::ISODateTime::toString):
* html/ISODateTime.h:
2010-01-20 Ben Murdoch <benm@google.com>
Reviewed by Simon Hausmann.
Touch Events are not sent to iframes
https://bugs.webkit.org/show_bug.cgi?id=33894
Fix the touch event handler so it does not bail out early if the main frame document does not have any touch listeners registered, as there may be embedded iframes that have registered for touch events.
Test: fast/events/touch/touch-inside-iframe.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent): Instead of looking at the document of the main frame to see if touch event listeners are registered, look at the document of the target element to account for iframes.
2010-01-20 Michael Nordman <michaeln@google.com>
Reviewed by Alexey Proskuryakov.
Remove an assertion that is not valid in some detached iframes cases.
https://bugs.webkit.org/show_bug.cgi?id=33827
Test: http/tests/appcache/detached-iframe.html
* loader/appcache/DOMApplicationCache.cpp:
(WebCore::DOMApplicationCache::DOMApplicationCache):
2010-01-20 Eric Uhrhane <ericu@chromium.org>
Reviewed by Dmitry Titov.
Refactoring and plumbing to get the HTML5 SQL Database API accessible to
web workers. No new functionality is exposed yet; this just gets the
infrastructure in place. It touches a lot of files in small ways; here
are the main changes:
1) Database members and methods move from Document up to
ScriptExecutionContext. Each of Document and WorkerContext must
implement a few virtual methods where the Database code requires
differentiation.
2) Worker thread shutdown got changed a bunch to handle Database cleanup
and thread synchronization issues. Database cleanup tasks need to post
some cleanup tasks to the JavaScript thread. However, since database
cleanup may happen due to the destruction of the WorkerThread, I added a
handshake [involving WorkerThreadShutdownStartTask,
WorkerThreadShutdownFinishTask, and a DatabaseTaskSynchronizer] between
the Database thread and WorkerThread that cleans up all the Database
stuff before the WorkerThread's runLoop can exit.
3) The runtime enabler for the Database moved to a static variable
accessible through Database::isAvailable, following the model used by
WebSocket.
4) Worker threads don't run their JavaScript on the Main thread, so
Database code that differentiated between the Main thread and the
Database thread now need to deal with a third possibility.
5) Most of the other changes have to do with having a
ScriptExecutionContext pointer instead of a Document pointer when
dealing with a Database. In many cases it's just a string replacement,
but in some it required the creation of a new virtual function [e.g.
databaseExceededQuota, isDatabaseReadOnly]
https://bugs.webkit.org/show_bug.cgi?id=22725
No new tests; in a future patch I'll add JSC and V8 bindings and new
layout tests to exercise them.
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::OpenDatabaseEnabled):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::isDatabaseReadOnly):
(WebCore::Document::databaseExceededQuota):
(WebCore::Document::isContextThread):
* dom/Document.h:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::ScriptExecutionContext):
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::databaseThread):
(WebCore::ScriptExecutionContext::addOpenDatabase):
(WebCore::ScriptExecutionContext::removeOpenDatabase):
(WebCore::ScriptExecutionContext::stopDatabases):
* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::setHasOpenDatabases):
(WebCore::ScriptExecutionContext::hasOpenDatabases):
(WebCore::ScriptExecutionContext::Task::isCleanupTask):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
* storage/Database.cpp:
(WebCore::Database::setIsAvailable):
(WebCore::Database::isAvailable):
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::DerefContextTask::create):
(WebCore::DerefContextTask::performTask):
(WebCore::DerefContextTask::isCleanupTask):
(WebCore::Database::~Database):
(WebCore::Database::openAndVerifyVersion):
(WebCore::Database::markAsDeletedAndClose):
(WebCore::ContextRemoveOpenDatabaseTask::create):
(WebCore::ContextRemoveOpenDatabaseTask::performTask):
(WebCore::ContextRemoveOpenDatabaseTask::isCleanupTask):
(WebCore::ContextRemoveOpenDatabaseTask::ContextRemoveOpenDatabaseTask):
(WebCore::Database::close):
(WebCore::Database::performOpenAndVerify):
(WebCore::Database::scheduleTransaction):
(WebCore::Database::scheduleTransactionStep):
(WebCore::DeliverPendingCallbackTask::create):
(WebCore::DeliverPendingCallbackTask::performTask):
(WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask):
(WebCore::Database::scheduleTransactionCallback):
(WebCore::Database::transactionClient):
(WebCore::Database::transactionCoordinator):
(WebCore::Database::tableNames):
(WebCore::Database::securityOrigin):
* storage/Database.h:
(WebCore::Database::scriptExecutionContext):
* storage/DatabaseTask.h:
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::DatabaseThread):
(WebCore::DatabaseThread::~DatabaseThread):
(WebCore::DatabaseThread::requestTermination):
(WebCore::DatabaseThread::databaseThread):
(WebCore::DatabaseThread::unscheduleDatabaseTasks):
* storage/DatabaseThread.h:
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
* storage/DatabaseTracker.h:
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::executeSQL):
* storage/SQLTransactionClient.cpp:
(WebCore::SQLTransactionClient::didCommitTransaction):
(WebCore::SQLTransactionClient::didExecuteStatement):
(WebCore::SQLTransactionClient::didExceedQuota):
* storage/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::TrackerRemoveOpenDatabaseTask::create):
(WebCore::TrackerRemoveOpenDatabaseTask::performTask):
(WebCore::TrackerRemoveOpenDatabaseTask::TrackerRemoveOpenDatabaseTask):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
* storage/chromium/SQLTransactionClientChromium.cpp:
(WebCore::NotifyDatabaseChangedTask::create):
(WebCore::NotifyDatabaseChangedTask::performTask):
(WebCore::NotifyDatabaseChangedTask::NotifyDatabaseChangedTask):
(WebCore::SQLTransactionClient::didCommitTransaction):
(WebCore::SQLTransactionClient::didExecuteStatement):
(WebCore::SQLTransactionClient::didExceedQuota):
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::openDatabase):
(WebCore::WorkerContext::isContextThread):
* workers/WorkerContext.h:
(WebCore::WorkerContext::clearScript):
(WebCore::WorkerContext::thread):
(WebCore::WorkerContext::isDatabaseReadOnly):
(WebCore::WorkerContext::databaseExceededQuota):
* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::runInMode):
(WebCore::WorkerRunLoop::Task::performTask):
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::workerThread):
(WebCore::WorkerThreadShutdownFinishTask::create):
(WebCore::WorkerThreadShutdownFinishTask::performTask):
(WebCore::WorkerThreadShutdownFinishTask::isCleanupTask):
(WebCore::WorkerThreadShutdownStartTask::create):
(WebCore::WorkerThreadShutdownStartTask::performTask):
(WebCore::WorkerThreadShutdownStartTask::isCleanupTask):
(WebCore::WorkerThread::stop):
2010-01-20 Fumitoshi Ukai <ukai@chromium.org>
Reviewed by Alexey Proskuryakov.
WebSocket: Request-URI should not be empty when no tralling slash in host
https://bugs.webkit.org/show_bug.cgi?id=33689
Test: websocket/tests/url-no-trailing-slash.html
* websockets/WebSocketHandshake.cpp:
(WebCore::resourceName):
2010-01-20 Daniel Bates <dbates@webkit.org>
Reviewed by Tor Arne Vestbø.
https://bugs.webkit.org/show_bug.cgi?id=29564
[Qt] Fixes an issue where the height of <button>- and
<input type="button">- elements are fixed to the height of the
button label font plus padding. That is, the CSS height property
is being ignored.
Instead, we should honor the user-specified height, if appropriate
for the platform and context. Notice, the Mac ports do not honor the
height for <input type="button"> elements unless a border and/or
background is also specified.
Test: fast/css/button-height.html
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::RenderThemeQt):
(WebCore::RenderThemeQt::adjustButtonStyle):
2010-01-20 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig.
Assertion failure calling history.pushState within popstate event handler.
https://bugs.webkit.org/show_bug.cgi?id=33830
Test: fast/loader/stateobjects/pushstate-within-popstate-handler-assert.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::navigateWithinDocument): Remove the ASSERT and invalid part of the comment.
2010-01-20 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Oliver Hunt.
Crash on dispatching SVG mouse events
https://bugs.webkit.org/show_bug.cgi?id=33841
Return early SVGUseElement::instanceForShadowTreeElement if m_targetElementInstance is zero.
This only happens if the SVGUseElement has just been removed from the document and EventHandler
tries to dispatch a mouseout event to the corresponding SVGElementInstance. This is not testable
using DRT unfortunately, so we have to add another manual testcase for that.
Tests: manual-tests/use-crash-on-mouse-hover.svg
* manual-tests/svg-crash-hovering-use.svg: Added.
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::instanceForShadowTreeElement): Add ASSERT(!inDocument()) when returning 0 here if m_targetElementInstance is 0.
2010-01-20 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
Timeline reset button doesn't clean timeline if the panel is scrolled down.
The overview pane also stay dirty after reset.
https://bugs.webkit.org/show_bug.cgi?id=33829
* inspector/front-end/TimelineGrid.js:
(WebInspector.TimelineGrid.prototype.updateDividers):
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane.prototype.reset):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype.reset):
(WebInspector.TimelinePanel.prototype._refreshRecords):
2010-01-20 Alexey Proskuryakov <ap@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=33930
Crash in JSDOMWindowBase::crossDomainAccessErrorMessage when accessing a detached sandboxed frame
Test: http/tests/security/detached-sandboxed-frame-access.html
* bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
Changed the way we discover the url to match what the actual check does. Both old and new
code correctly fetch the URL of the current window displayed in frame, but going via
DOMWindowShell avoids crashing on null DOMWindow::m_frame pointer.
2010-01-20 Vitaly Repeshko <vitalyr@chromium.org>
Reviewed by Pavel Feldman.
[V8] Support SerializedScriptValue.
https://bugs.webkit.org/show_bug.cgi?id=32920
http://crbug.com/30620
Initial implementation of SerializedScriptValue which is used to
to create a serialized representation of JavaScript objects. This
representation is needed for structured clones and worker messages.
* WebCore.gypi: Added SerializedScriptValue.cpp.
* bindings/scripts/CodeGeneratorV8.pm: Removed conversion to string before using SerializedScriptValue.
* bindings/v8/SerializedScriptValue.cpp: Added.
(WebCore::):
(WebCore::ZigZag::encode):
(WebCore::ZigZag::decode):
(WebCore::Writer::Writer):
(WebCore::Writer::writeUndefined):
(WebCore::Writer::writeNull):
(WebCore::Writer::writeTrue):
(WebCore::Writer::writeFalse):
(WebCore::Writer::writeString):
(WebCore::Writer::writeInt32):
(WebCore::Writer::writeNumber):
(WebCore::Writer::endComposite):
(WebCore::Writer::data):
(WebCore::Writer::doWriteUint32):
(WebCore::Writer::append):
(WebCore::Writer::ensureSpace):
(WebCore::Writer::fillHole):
(WebCore::Writer::charAt):
(WebCore::Serializer::Serializer):
(WebCore::Serializer::serialize):
(WebCore::Serializer::StateBase::~StateBase):
(WebCore::Serializer::StateBase::nextState):
(WebCore::Serializer::StateBase::setNextState):
(WebCore::Serializer::StateBase::composite):
(WebCore::Serializer::StateBase::StateBase):
(WebCore::Serializer::State::composite):
(WebCore::Serializer::State::tag):
(WebCore::Serializer::State::State):
(WebCore::Serializer::StackCleaner::StackCleaner):
(WebCore::Serializer::StackCleaner::~StackCleaner):
(WebCore::Serializer::ArrayState::ArrayState):
(WebCore::Serializer::ArrayState::done):
(WebCore::Serializer::ArrayState::advance):
(WebCore::Serializer::ObjectState::ObjectState):
(WebCore::Serializer::ObjectState::done):
(WebCore::Serializer::ObjectState::advance):
(WebCore::Serializer::ObjectState::nextProperty):
(WebCore::Serializer::doSerialize):
(WebCore::Serializer::push):
(WebCore::Serializer::top):
(WebCore::Serializer::pop):
(WebCore::Serializer::checkComposite):
(WebCore::Reader::Reader):
(WebCore::Reader::isEof):
(WebCore::Reader::read):
(WebCore::Reader::readTag):
(WebCore::Reader::readString):
(WebCore::Reader::readInt32):
(WebCore::Reader::readNumber):
(WebCore::Reader::doReadUint32):
(WebCore::Deserializer::Deserializer):
(WebCore::Deserializer::deserialize):
(WebCore::Deserializer::doDeserialize):
(WebCore::Deserializer::push):
(WebCore::Deserializer::pop):
(WebCore::Deserializer::stackDepth):
(WebCore::Deserializer::element):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::deserialize):
* bindings/v8/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::createFromWire):
(WebCore::SerializedScriptValue::release):
(WebCore::SerializedScriptValue::toWireString):
Updated uses of SerializedScriptValue:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::postMessageCallback):
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
(WebCore::V8DedicatedWorkerContext::postMessageCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallback):
(WebCore::V8History::replaceStateCallback):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::initMessageEventCallback):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::V8MessagePort::postMessageCallback):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::V8Worker::postMessageCallback):
2010-01-20 Steve Falkenburg <sfalken@apple.com>
Reviewed by Sam Weinig.
Fix crash in geolocation when observers change during iteration.
* page/GeolocationController.cpp:
(WebCore::GeolocationController::positionChanged): Copy observers to vector while iterating.
(WebCore::GeolocationController::errorOccurred): Copy observers to vector while iterating.
2010-01-19 Oliver Hunt <oliver@apple.com>
Reviewed by Dan Bernstein.
Insufficient repaint issues with html embedded in foreignObject
https://bugs.webkit.org/show_bug.cgi?id=16318
Partial fix for selection repaint in foreignObject, basically we
just need to make sure foreignObject correctly applies the svg
transform to the selection rect.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintSelection):
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::mapLocalToContainer):
* rendering/RenderForeignObject.h:
2010-01-20 Gavin Barraclough <barraclough@apple.com>
Reviewed by NOBODY.
<rdar://problem/7557695> REGRESSION(r53445-r53449): Many new memory leaks (33867)
Revert r53447, since this caused leaks.
* WebCore.base.exp:
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::operator new):
(WebCore::StringImpl::operator delete):
(WebCore::StringImpl::StringImpl):
(WebCore::StringImpl::~StringImpl):
(WebCore::StringImpl::create):
(WebCore::StringImpl::createWithTerminatingNullCharacter):
(WebCore::StringImpl::crossThreadString):
(WebCore::StringImpl::sharedBuffer):
* platform/text/StringImpl.h:
(WebCore::StringImpl::hasTerminatingNullCharacter):
(WebCore::StringImpl::inTable):
(WebCore::StringImpl::setInTable):
(WebCore::StringImpl::):
* storage/OriginUsageRecord.cpp:
(WebCore::OriginUsageRecord::addDatabase):
(WebCore::OriginUsageRecord::markDatabase):
2010-01-20 Jian Li <jianli@chromium.org>
Reviewed by Dmitry Titov.
Implement File and Blob interfaces as defined in File API spec.
https://bugs.webkit.org/show_bug.cgi?id=32912
* Android.derived.jscbindings.mk:
* Android.derived.v8bindings.mk:
* Android.mk:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::send):
* bindings/objc/DOMHTML.h:
* bindings/objc/PublicDOMInterfaces.h:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/DOMObjectsInclude.h:
* bindings/v8/DerivedSourcesAllInOne.cpp:
* bindings/v8/V8Binding.h:
(WebCore::toInt64):
* bindings/v8/V8Index.cpp:
* bindings/v8/V8Index.h:
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::sendCallback):
* html/File.cpp:
(WebCore::File::File):
* html/File.h:
(WebCore::File::create):
(WebCore::File::name):
(WebCore::File::fileName):
(WebCore::File::fileSize):
* html/File.idl:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
* xml/XMLHttpRequest.h:
2010-01-20 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
WAI-ARIA popup buttons spoken as simply 'button'
https://bugs.webkit.org/show_bug.cgi?id=33922
Test: platform/mac/accessibility/aria-popup.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::actionElement):
(WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
* html/HTMLAttributeNames.in:
2010-01-19 David Levin <levin@chromium.org>
Reviewed by Oliver Hunt.
CrossThreadCopier needs to support ThreadSafeShared better.
https://bugs.webkit.org/show_bug.cgi?id=33698
Now the copier is able to handle types that derive from ThreadSafeShared.
No change functionality so no new tests.
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::cancel): Remove unnecessary cast.
(WebCore::WorkerThreadableLoader::MainThreadBridge::clearClientWrapper): Ditto.
* loader/WorkerThreadableLoader.h:
Change to use the derived class instead of the ThreadSafeShared version.
* platform/CrossThreadCopier.cpp:
Add the new template parameter throughout the classes and adjust the class that
handles ThreadSafeShared to allow for derived types.
* platform/CrossThreadCopier.h:
Add another template parameter to be able to detect classes that derive
from ThreadSafeShared.
* websockets/WorkerThreadableWebSocketChannel.cpp:
Removed unnecessary casts and changed a type to use the derived class instead of
the ThreadSafeShared version.
(WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
(WebCore::workerContextDidSend):
(WebCore::workerContextDidGetBufferedAmount):
(WebCore::workerContextDidConnect):
(WebCore::workerContextDidReceiveMessage):
(WebCore::workerContextDidClose):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::setWebSocketChannel):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadCreateWebSocketChannel):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::clearClientWrapper):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::setMethodNotCompleted):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):
* websockets/WorkerThreadableWebSocketChannel.h:
(WebCore::WorkerThreadableWebSocketChannel::Peer::create): Changed a type to use the
derived class instead of the ThreadSafeShared version.
2010-01-20 Jon Honeycutt <jhoneycutt@apple.com>
<rdar://problem/7086565> Crash in WebCore::PlugInView::dispatchNPEvent
Reviewed by Sam Weinig.
* plugins/PluginView.cpp:
(WebCore::PluginView::handleEvent):
Ref the PluginView to protect it from deletion while calling into the
plug-in.
2010-01-20 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: accSelect() is not implemented
https://bugs.webkit.org/show_bug.cgi?id=33918
<rdar://problem/7436861>
Reviewed by Darin Adler.
Test: platform/win/accessibility/selection-and-focus.html
* accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::setSelected):
Return early if the object is not selectable.
2010-01-20 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Fix chromium build, introduced a copy&paste error.
* bindings/v8/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
2010-01-20 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/6579204> Exception thrown when opening a <select> pop-up that
uses a web font
https://bugs.webkit.org/show_bug.cgi?id=23911
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenu::populate): Use the (bold) system font if an NSFont cannot
be obtained.
2010-01-19 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Alexey Proskuryakov.
svg/custom/use-instanceRoot-event-bubbling.xhtml is flakey
https://bugs.webkit.org/show_bug.cgi?id=33835
mouseEvent fires mutiple times in svg/custom/use-instanceRoot-as-event-target.xhtml
https://bugs.webkit.org/show_bug.cgi?id=32519
Test: svg/custom/use-instanceRoot-event-listener-liveness.xhtml
Stabilize <use> scripting support - use tests are reliable now (tested using --repeach-each 50 --random -p)
Do not reclone trees anymore because of event listener changes, instead keep correspondingElement & shadowTreeElement
synchronized for each SVGElementInstance - any mutations on any event listeners are live, and take immediate effect,
w/o having to rely on a reclone - this was the root of several race conditions making the <use> tests flakey.
Fix SVGUseElement::instanceRoot() to force shadow tree creation, even if it was not attached so far - we can't wait
for finishedParsing() to be called which would recalculate the document style and attach the shadow tree as result.
This is now matching Operas behaviour.
Optimize createAttributeEventListener() to not create event listeners if the supplied Attribute isNull() - otherwhise
DOM calls like removeAttribute("onclick") cause a temporary JSEventListener to be created, added to the event listener
cache and removed afterwards.
* bindings/js/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener): Return early if the supplied attribute is null as discussed with Geoffrey.
* bindings/v8/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener): Ditto.
* dom/Node.cpp: Synchronize event listeners with all element instances, instead of marking the use elements to reclone.
(WebCore::instancesForSVGElement):
(WebCore::tryAddEventListener):
(WebCore::Node::addEventListener): When adding a listener, get a list of element instances and add it their as well.
(WebCore::tryRemoveEventListener):
(WebCore::Node::removeEventListener): Ditto for removals, but with special logic for listeners created from markup (see comments)
* svg/SVGElementInstance.cpp: Cleaned up, removing unncessary checks of correspondingElement() - there is an ASSERT in the ctor.
(WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
(WebCore::SVGElementInstance::scriptExecutionContext):
(WebCore::SVGElementInstance::addEventListener):
(WebCore::SVGElementInstance::removeEventListener):
(WebCore::SVGElementInstance::removeAllEventListeners):
(WebCore::SVGElementInstance::eventTargetData):
(WebCore::SVGElementInstance::ensureEventTargetData):
* svg/SVGUseElement.cpp: Call document()->updateLayoutIgnorePendingStylesheets() to force shadow tree creation, just like CSSStyleDecl works.
(WebCore::SVGUseElement::instanceRoot):
2010-01-20 Dmitry Titov <dimich@chromium.org>
Reviewed by Darin Adler.
Move local utility class DocumentWeakReference entirely from Document.h into Document.cpp
since it is only used there. It is a followup for http://trac.webkit.org/changeset/53345.
No new tests since no change in functionality.
* dom/Document.cpp: Move definitions of the methods into declaration of the class, remove 'inline'.
* dom/Document.h: Replace DocumentWeakReference declaration with a forward declaration.
2010-01-20 Oliver Hunt <oliver@apple.com>
No review, rolling out r53561.
http://trac.webkit.org/changeset/53561
https://bugs.webkit.org/show_bug.cgi?id=16318
broke selection repaint for transformed text in html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintSelection):
* rendering/RenderForeignObject.cpp:
* rendering/RenderForeignObject.h:
2010-01-19 Oliver Hunt <oliver@apple.com>
Reviewed by Beth Dakin.
Insufficient repaint issues with html embedded in foreignObject
https://bugs.webkit.org/show_bug.cgi?id=16318
Partial fix for selection repaint in foreignObject, basically we
just need to make sure foreignObject correctly applies the svg
transform to the selection rect.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintSelection):
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::mapLocalToContainer):
* rendering/RenderForeignObject.h:
2010-01-20 Kevin Ollivier <kevino@theolliviers.com>
Build fix for !ENABLE(SVG).
* rendering/TrailingFloatsRootInlineBox.h:
(WebCore::TrailingFloatsRootInlineBox::TrailingFloatsRootInlineBox):
2010-01-20 David Levin <levin@chromium.org>
No review, rolling out r53552.
http://trac.webkit.org/changeset/53552
https://bugs.webkit.org/show_bug.cgi?id=32554
Caused lots of fast/profile test failures.
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::databaseForId):
(WebCore::JSInjectedScriptHost::inspectedWindow):
(WebCore::JSInjectedScriptHost::wrapCallback):
(WebCore::JSInjectedScriptHost::currentCallFrame):
(WebCore::JSInjectedScriptHost::nodeForId):
(WebCore::JSInjectedScriptHost::wrapObject):
(WebCore::JSInjectedScriptHost::unwrapObject):
(WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
(WebCore::JSInjectedScriptHost::selectDatabase):
(WebCore::JSInjectedScriptHost::selectDOMStorage):
* bindings/js/ScriptCallStack.h:
(WebCore::ScriptCallStack::state):
* bindings/js/ScriptController.cpp:
* bindings/js/ScriptController.h:
* bindings/js/ScriptObject.h:
* bindings/js/ScriptValue.cpp:
(WebCore::ScriptValue::quarantineValue):
* bindings/js/ScriptValue.h:
* bindings/v8/ScriptObject.h:
* bindings/v8/ScriptValue.h:
(WebCore::ScriptValue::quarantineValue):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::inspectedWindowCallback):
(WebCore::V8InjectedScriptHost::wrapCallbackCallback):
(WebCore::V8InjectedScriptHost::wrapObjectCallback):
(WebCore::V8InjectedScriptHost::unwrapObjectCallback):
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
(WebCore::ConsoleMessage::addToConsole):
(WebCore::ConsoleMessage::isEqual):
* inspector/ConsoleMessage.h:
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::wrapObject):
(WebCore::InjectedScriptHost::unwrapObject):
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::dispatchOnInjectedScript):
(WebCore::InspectorBackend::releaseWrapperObjectGroup):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::clearConsoleMessages):
(WebCore::InspectorController::inspectedWindowScriptObjectCleared):
(WebCore::InspectorController::windowScriptObjectAvailable):
(WebCore::InspectorController::scriptObjectReady):
(WebCore::InspectorController::setFrontendProxyObject):
(WebCore::InspectorController::close):
(WebCore::InspectorController::resetScriptObjects):
(WebCore::InspectorController::didPause):
(WebCore::InspectorController::wrapObject):
(WebCore::InspectorController::unwrapObject):
(WebCore::InspectorController::releaseWrapperObjectGroup):
(WebCore::InspectorController::resetInjectedScript):
(WebCore::InspectorController::deleteCookie):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::addConsoleMessage):
(WebCore::InspectorFrontend::pausedScript):
* inspector/InspectorFrontend.h:
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel.prototype._reloadResources):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.requestClearMessages):
(WebInspector.ConsoleView.prototype.completions):
(WebInspector.ConsoleView.prototype.doEvalInWindow):
(WebInspector.ConsoleView.prototype._formatnode):
(WebInspector.ConsoleView.prototype._formatarray):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode):
(WebInspector.CSSStyleDeclaration):
(WebInspector.CSSStyleDeclaration.parseRule):
* inspector/front-end/Database.js:
(WebInspector.Database.prototype.executeSql):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
(WebInspector.ElementsPanel.prototype.setDocument):
(WebInspector.ElementsPanel.prototype.searchCanceled):
(WebInspector.ElementsPanel.prototype.performSearch):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
* inspector/front-end/EventListenersSidebarPane.js:
():
* inspector/front-end/InjectedScript.js:
(InjectedScript.dispatch):
(InjectedScript.toggleStyleEnabled):
(InjectedScript._serializeRule):
(InjectedScript._serializeStyle):
(InjectedScript.getProperties):
(InjectedScript.setPropertyValue):
(InjectedScript._evaluateAndWrap):
(InjectedScript.getCallFrames):
(InjectedScript._inspectObject):
(InjectedScript._ensureCommandLineAPIInstalled):
(InjectedScript._resolveObject):
(InjectedScript._window):
(InjectedScript._objectForId):
(InjectedScript.createProxyObject):
(InjectedScript.executeSql):
(InjectedScript.executeSql.errorCallback):
(InjectedScript.executeSql.queryTransaction):
(Object.type):
(String.prototype.escapeCharacters):
* inspector/front-end/InjectedScriptAccess.js:
(InjectedScriptAccess._installHandler.InjectedScriptAccess.methodName):
(InjectedScriptAccess._installHandler):
* inspector/front-end/MetricsSidebarPane.js:
(WebInspector.MetricsSidebarPane):
(WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
(WebInspector.MetricsSidebarPane.prototype.update):
(WebInspector.MetricsSidebarPane.prototype.editingCommitted):
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertiesSection.prototype.update):
(WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
(WebInspector.ObjectPropertyTreeElement.prototype.applyExpression):
* inspector/front-end/ObjectProxy.js:
(WebInspector.ObjectProxy):
(WebInspector.ObjectProxy.getPropertiesAsync):
* inspector/front-end/PropertiesSidebarPane.js:
(WebInspector.PropertiesSidebarPane.prototype.update.callback):
(WebInspector.PropertiesSidebarPane.prototype.update):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.doEvalInCallFrame):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype.update):
(WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
(WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype.update):
* inspector/front-end/inspector.js:
(WebInspector.loaded):
(WebInspector.pausedScript):
(WebInspector.addConsoleMessage):
(WebInspector.log.logMessage):
(WebInspector.log):
2010-01-20 Steve Block <steveblock@google.com>
Reviewed by David Levin.
Renames jni_runtime.[cpp|h] to JNIBridge.[cpp|h]
https://bugs.webkit.org/show_bug.cgi?id=33899
No new tests, refactoring only.
* Android.jscbindings.mk: Modified. Removes jni_runtime.cpp and adds JNIBridge.cpp
* GNUmakefile.am: Modified. Removes jni_runtime.h and adds JNIBridge.h
* WebCore.xcodeproj/project.pbxproj: Modified. Removes jni_runtime.[cpp|h] and adds JNIBridge.[cpp|h]
* bridge/jni/JNIBridge.cpp: Copied from WebCore/bridge/jni/jni_runtime.cpp.
* bridge/jni/JNIBridge.h: Copied from WebCore/bridge/jni/jni_runtime.h.
* bridge/jni/jni_jsobject.mm: Modified. Updated to include JNIBridge.h
* bridge/jni/jni_runtime.cpp: Removed.
* bridge/jni/jni_runtime.h: Removed.
* bridge/jni/jsc/JNIUtilityPrivate.cpp: Modified. Updated to include JNIBridge.h
* bridge/jni/jsc/JavaClassJSC.cpp: Modified. Removed superfluous include
* bridge/jni/jsc/JavaClassJSC.h: Modified. Updated to include JNIBridge.h
* bridge/jni/jsc/JavaInstanceJSC.cpp: Modified. Updated to include JNIBridge.h
2010-01-20 Alexey Proskuryakov <ap@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=33913
Crash under Media::matchMedium in detached frame
Also took the opportunity to fix JS bindings for the Media object.
Test: fast/media/lifetime.html
* css/Media.h:
(WebCore::Media::create): Take and store a Frame pointer, like other similar objects do.
(WebCore::Media::disconnectFrame): Zero out the frame pointer (this is called from
DOMWindow::clear()).
* css/Media.cpp:
(WebCore::Media::Media): Updated to storing Frame pointer.
(WebCore::Media::type): Ditto.
(WebCore::Media::matchMedium): Removed null check for document element - every document has
one. Also, every Frame has a document, so we only need to check for m_frame being zero.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::markChildren):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::clear):
(WebCore::DOMWindow::media):
* page/DOMWindow.h:
(WebCore::DOMWindow::optionalMedia):
Make sure there's only one Media object per window, and keep its wrapper alive.
2010-01-20 Steve Falkenburg <sfalken@apple.com>
Reviewed by Darin Adler and Adam Roben.
Feature defines are difficult to maintain on Windows builds
https://bugs.webkit.org/show_bug.cgi?id=33883
FeatureDefines.vsprops are now maintained in a way similar to
Configurations/FeatureDefines.xcconfig, with the added advantage
of having a single FeatureDefines file across all projects.
* Configurations/FeatureDefines.xcconfig: Add comments about keeping feature definitions in sync.
* WebCore.vcproj/MigrateIDLAndScripts: Remove reference to file that no longer exists.
* WebCore.vcproj/QTMovieWin.vcproj: Add FeatureDefines.vsprops inherited property sheet.
* WebCore.vcproj/WebCore.vcproj: Add FeatureDefines.vsprops inherited property sheet.
* WebCore.vcproj/WebCoreCommon.vsprops: Remove ENABLE_ preprocessor definitions.
* WebCore.vcproj/WebCoreGenerated.vcproj: Added Cairo configuration for selecting proper features.
* WebCore.vcproj/WebCoreMediaQT.vsprops: Remove ENABLE_VIDEO. This is picked up from FeatureDefines.vsprops.
* WebCore.vcproj/build-generated-files.sh: Pick up features from FeatureDefines.vsprops or FeatureDefinesCairo.vsprops.
2010-01-20 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Inject inspector script directly into the inspected context. All the
communication between the script and the frontend is serialized into
JSON strings. It allows to get rid of object quarantines in Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=32554
Test: inspector/console-log-before-inspector-open.html
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::databaseForId):
(WebCore::JSInjectedScriptHost::currentCallFrame):
(WebCore::JSInjectedScriptHost::nodeForId):
(WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
(WebCore::JSInjectedScriptHost::selectDatabase):
(WebCore::JSInjectedScriptHost::selectDOMStorage):
* bindings/js/ScriptCallStack.h:
(WebCore::ScriptCallStack::state):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::mainWorldScriptState):
* bindings/js/ScriptController.h:
* bindings/js/ScriptObject.h:
(WebCore::ScriptObject::scriptState):
* bindings/js/ScriptValue.cpp:
* bindings/js/ScriptValue.h:
* bindings/v8/ScriptObject.h:
(WebCore::ScriptObject::scriptState):
* bindings/v8/ScriptValue.h:
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
(WebCore::ConsoleMessage::addToConsole):
(WebCore::ConsoleMessage::isEqual):
* inspector/ConsoleMessage.h:
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::releaseWrapperObjectGroup):
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::setInjectedScriptSource):
(WebCore::InspectorBackend::dispatchOnInjectedScript):
(WebCore::InspectorBackend::releaseWrapperObjectGroup):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::clearConsoleMessages):
(WebCore::InspectorController::inspectedWindowScriptObjectCleared):
(WebCore::InspectorController::windowScriptObjectAvailable):
(WebCore::InspectorController::scriptObjectReady):
(WebCore::InspectorController::setFrontendProxyObject):
(WebCore::InspectorController::close):
(WebCore::InspectorController::resetScriptObjects):
(WebCore::InspectorController::didPause):
(WebCore::InspectorController::injectedScriptForNodeId):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::addConsoleMessage):
(WebCore::InspectorFrontend::pausedScript):
* inspector/InspectorFrontend.h:
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel.prototype._reloadResources):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.requestClearMessages):
(WebInspector.ConsoleView.prototype.doEvalInWindow):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode):
(WebInspector.CSSStyleDeclaration):
(WebInspector.CSSStyleDeclaration.parseRule):
* inspector/front-end/Database.js:
(WebInspector.Database.prototype.executeSql):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged.InjectedScriptAccess.get addInspectedNode):
(WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
(WebInspector.ElementsPanel.prototype.setDocument):
(WebInspector.ElementsPanel.prototype.searchCanceled):
(WebInspector.ElementsPanel.prototype.performSearch):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
* inspector/front-end/EventListenersSidebarPane.js:
():
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
(injectedScriptConstructor.):
* inspector/front-end/InjectedScriptAccess.js:
(InjectedScriptAccess):
(InjectedScriptAccess.getDefault):
(get InjectedScriptAccess):
(InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName):
(InjectedScriptAccess._installHandler):
* inspector/front-end/MetricsSidebarPane.js:
(WebInspector.MetricsSidebarPane):
(WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
* inspector/front-end/ObjectPropertiesSection.js:
* inspector/front-end/ObjectProxy.js:
(WebInspector.ObjectProxy):
* inspector/front-end/PropertiesSidebarPane.js:
(WebInspector.PropertiesSidebarPane.prototype.update.callback):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
* inspector/front-end/ScriptsPanel.js:
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype.update):
* inspector/front-end/inspector.js:
(WebInspector.loaded):
(WebInspector.pausedScript):
(WebInspector.addConsoleMessage):
(WebInspector.log.logMessage):
(WebInspector.log):
2010-01-20 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
HTMLInputElement::valueAsDate setter support for type=time.
https://bugs.webkit.org/show_bug.cgi?id=33825
Introduce ISODateTime::setMillisecondsSinceMidnight() and add a
SecondFormat parameter to ISODateTime::toString(). The main code
logic for type=time is implemented in
setMillisecondsSinceMidnightInternal() and toStringForTime()
because the logic is going to be used for other types.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValueAsDate):
* html/ISODateTime.cpp:
(WebCore::positiveFmod):
(WebCore::ISODateTime::setMillisecondsSinceMidnightInternal):
(WebCore::ISODateTime::setMillisecondsSinceMidnight):
(WebCore::ISODateTime::toStringForTime):
(WebCore::ISODateTime::toString):
* html/ISODateTime.h:
(WebCore::ISODateTime::):
2010-01-20 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Unreviewed buildfix for r53547.
* WebCore.pri:
2010-01-20 Ben Murdoch <benm@google.com>
Reviewed by Simon Hausmann.
The touchcancel event is not supported.
https://bugs.webkit.org/show_bug.cgi?id=33598
This change adds support for the touchcancel event in WebCore and adds a test.
Test: fast/events/touch/send-oncancel-event.html
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::processingUserGestureEvent): Considers touchcancel with the other touch events when working out if the event is a user gesture.
* dom/Document.cpp:
(WebCore::Document::addListenerTypeIfNeeded): Adds a check to consider ontouchcancel a touch event listener.
* dom/Document.h: Add the touchcancel attribute event listener.
* dom/Document.idl: ditto.
* dom/Element.h: ditto.
* dom/Element.idl: ditto.
* dom/EventNames.h: Adds touchcancel as an event name.
* html/HTMLAttributeNames.in:Adds touchcancel as an HTML attribute name.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseMappedAttribute): Parses the ontouchcancel attribute.
* page/DOMWindow.h: Adds the touchcancel attribute event listener.
* page/DOMWindow.idl: ditto.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent): Add code to detect and dispatch touchcancel events.
* platform/PlatformTouchEvent.h:
(WebCore::): Add TouchCancel as a touch event type.
* platform/PlatformTouchPoint.h:
(WebCore::PlatformTouchPoint::): Add TouchCanceled as a touch point state.
2010-01-20 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Make extraCompilers for generated sources depend on their scripts
* DerivedSources.pro:
* WebCore.pri:
2010-01-20 Kent Tamura <tkent@chromium.org>
Reviewed by Adam Barth.
[Chromium][V8] Fix null pointer dereference in V8Proxy::retrieve().
https://bugs.webkit.org/show_bug.cgi?id=33886
This is equivalent to r53433, and fix a crash by
LayoutTests/http/tests/appcache/destroyed-iframe.html.
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::retrieve): Check if context is null.
2010-01-20 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Timothy Hatcher.
Optimize resize event handling for hidden views
https://bugs.webkit.org/show_bug.cgi?id=33803
* inspector/front-end/AbstractTimelinePanel.js:
(WebInspector.AbstractTimelinePanel.prototype.resize):
(WebInspector.AbstractTimelinePanel.prototype.updateMainViewWidth):
* inspector/front-end/AuditsPanel.js:
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.updateSidebarWidth):
(WebInspector.Panel.prototype.resize):
* inspector/front-end/PanelEnablerView.js:
(WebInspector.PanelEnablerView):
(WebInspector.PanelEnablerView.prototype.show):
(WebInspector.PanelEnablerView.prototype.resize):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype.show):
(WebInspector.ProfilesPanel.prototype.addProfileHeader):
(WebInspector.ProfilesPanel.prototype.showProfile):
(WebInspector.ProfilesPanel.prototype.showView):
(WebInspector.ProfilesPanel.prototype.closeVisibleView):
(WebInspector.ProfilesPanel.prototype._updateInterface):
(WebInspector.ProfilesPanel.prototype.updateMainViewWidth):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.show):
(WebInspector.ResourcesPanel.prototype.get visibleView):
(WebInspector.ResourcesPanel.prototype.updateMainViewWidth):
* inspector/front-end/Settings.js:
* inspector/front-end/StoragePanel.js:
(WebInspector.StoragePanel.prototype.updateMainViewWidth):
* inspector/front-end/WelcomeView.js:
(WebInspector.WelcomeView):
(WebInspector.WelcomeView.prototype.show):
(WebInspector.WelcomeView.prototype.resize):
* inspector/front-end/inspector.css:
* inspector/front-end/inspector.js:
(WebInspector.windowResize):
2010-01-20 Steve Block <steveblock@google.com>
Reviewed by David Levin.
Fixes style in WebCore/bridge/Bridge
https://bugs.webkit.org/show_bug.cgi?id=33839
No new tests, style fixes only.
* bridge/Bridge.cpp: Modified.
* bridge/Bridge.h: Modified.
* bridge/c/c_instance.cpp: Modified.
(JSC::Bindings::CInstance::invokeMethod): Modified. Use renamed m_rootObject member
(JSC::Bindings::CInstance::invokeDefaultMethod): Modified. Use renamed m_rootObject member
(JSC::Bindings::CInstance::invokeConstruct): Modified. Use renamed m_rootObject member
* bridge/jni/jni_runtime.cpp: Modified.
(JavaArray::JavaArray): Modified. Use renamed m_rootObject member
(JavaArray::rootObject): Modified. Use renamed m_rootObject member
* bridge/objc/objc_instance.mm: Modified.
(ObjcInstance::invokeMethod): Modified. Use renamed m_rootObject member
(ObjcInstance::invokeDefaultMethod): Modified. Use renamed m_rootObject member
(ObjcInstance::getValueOfUndefinedField): Modified. Use renamed m_rootObject member
* bridge/objc/objc_runtime.mm: Modified.
(JSC::Bindings::ObjcArray::valueAt): Modified. Use renamed m_rootObject member
* bridge/qt/qt_runtime.cpp: Modified.
(JSC::Bindings::::rootObject): Modified. Use renamed m_rootObject member
2010-01-20 Daniel Bates <dbates@webkit.org>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=33885
Fixes style errors exposed by the style bot in the patch
for bug #33770. Moreover, fixes all style errors reported
by check-webkit-style.
No functionality was changed. So, no new tests.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::dataFunctionf):
(WebCore::dataFunctioni):
(WebCore::dataFunctionMatrix):
2010-01-19 Steve Block <steveblock@google.com>
Reviewed by David Levin.
Fixes style in WebCore/bridge/JNIUtility
https://bugs.webkit.org/show_bug.cgi?id=33870
No new tests, style fixes only.
* bridge/jni/JNIUtility.cpp:
* bridge/jni/JNIUtility.h:
2010-01-20 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
On Linux link QtWebKit with -no-undefined to catch build breakages due to missing
files in the .pro file, resulting in unresolved symbols.
* WebCore.pro:
2010-01-20 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Make it possible to link with -no-undefined.
* WebCore.pro: Add missing explicit dependency to libXrender due to the
use of XRenderFindVisualFormat in the X11 plugin code.
2010-01-20 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
Add missing files to the build.
* WebCore.pro:
2010-01-20 Shinichiro Hamaji <hamaji@chromium.org>
Reviewed by Darin Fisher.
[Chromium] computePageRectsForFrame seems to be unnecessary
https://bugs.webkit.org/show_bug.cgi?id=33881
* WebCore.gypi: Removed FrameChromium.h
* page/chromium/FrameChromium.cpp: Removed computePageRectsForFrame.
* page/chromium/FrameChromium.h: Removed.
2010-01-20 Roland Steiner <rolandsteiner@chromium.org>
Reviewed by Dan Bernstein.
Bug 33266 - WebCore::InlineFlowBox::determineSpacingForFlowBoxes ReadAV@NULL (43c64e8abbda6766e5f5edbd254c2d57)
(https://bugs.webkit.org/show_bug.cgi?id=33266)
Ruby did not handle malformed cases correctly when the ruby base was in
block flow. Changed the code to handle all possible cases.
Also, added some simplification methods to RenderBlock.
Tests: fast/ruby/ruby-illegal-1.html
fast/ruby/ruby-illegal-2.html
fast/ruby/ruby-illegal-3.html
fast/ruby/ruby-illegal-4.html
fast/ruby/ruby-illegal-5.html
fast/ruby/ruby-illegal-6.html
fast/ruby/ruby-illegal-7.html
fast/ruby/ruby-illegal-combined.html
fast/ruby/rubyDOM-insert-rt-block-1.html
fast/ruby/rubyDOM-insert-rt-block-2.html
fast/ruby/rubyDOM-insert-rt-block-3.html
fast/ruby/rubyDOM-remove-rt-block-1.html
fast/ruby/rubyDOM-remove-rt-block-2.html
fast/ruby/rubyDOM-remove-rt-block-3.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::moveAllChildrenTo): useful for anonymous block manipulation
(WebCore::RenderBlock::removeChild): making use of moveAllChildrenTo
* rendering/RenderBlock.h:
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::hasOnlyWrappedInlineChildren):
(WebCore::RenderRubyBase::moveChildren):
(WebCore::RenderRubyBase::moveInlineChildren):
(WebCore::RenderRubyBase::moveBlockChildren):
(WebCore::RenderRubyBase::mergeBlockChildren):
* rendering/RenderRubyBase.h:
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::addChild):
(WebCore::RenderRubyRun::removeChild):
2010-01-19 Dan Bernstein <mitz@apple.com>
Build fix after r53514
* WebCore.base.exp: Removed threadGlobalData(), which was inlined in r53514.
2010-01-19 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Avoid calling NSEqualRects() on the garbage rect obtained
by calling -frame on a null view.
* platform/mac/WidgetMac.mm:
(WebCore::Widget::setFrameRect):
2010-01-19 Maciej Stachowiak <mjs@apple.com>
Unreviewed build fix.
Remove currentWorld from the exports file again, since it is now inline.
* WebCore.base.exp:
2010-01-19 Brian Weinstein <bweinstein@apple.com>
Reviewed by Tim Hatcher.
Part of <http://webkit.org/b/28622>.
Caught exceptions still pause the debugger.
Update JavaScriptDebugServer::exception to take a hasHandler parameter,
so later we can differentiate between a caught and an uncaught exception.
This just adds a new parameter, no behavior is changed.
No change in functionality, so no tests.
* inspector/JavaScriptDebugServer.cpp:
(WebCore::JavaScriptDebugServer::exception):
* inspector/JavaScriptDebugServer.h:
2010-01-18 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adam Barth.
Inline functions that are hot in DOM manipulation
https://bugs.webkit.org/show_bug.cgi?id=33820
(3% speedup on Dromaeo DOM Core tests)
* bindings/js/JSDOMBinding.h:
(WebCore::currentWorld): Inlined.
(WebCore::jsString): Inlined String& overload and split off slow case.
* bindings/js/JSDOMBinding.cpp:
(WebCore::jsStringSlowCase): Slow case for the above.
* dom/Document.h:
(WebCore::Document::isHTMLDocument): Use a bit and an inline method
instead of a virtual method, since this is so hot and size of Document
is not a prime concern.
(WebCore::Document::create): Adapt for above.
(WebCore::Document::createXHTML): ditto
* dom/Document.cpp:
(WebCore::Document::Document): ditto
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::HTMLDocument): ditto
* html/HTMLDocument.h: ditto
* loader/PlaceholderDocument.h:
(WebCore::PlaceholderDocument::PlaceholderDocument): ditto
* svg/SVGDocument.cpp:
(WebCore::SVGDocument::SVGDocument): ditto
* dom/Element.h:
(WebCore::Element::attributes): Inlined.
(WebCore::Element::updateId): Inlined.
* dom/Element.cpp: (Remove inlined methods.)
* dom/NamedAttrMap.h:
(WebCore::NamedNodeMap::getAttributeItem): Inlined and split off slow case.
* dom/NamedAttrMap.cpp:
(WebCore::NamedNodeMap::getAttributeItemSlowCase): Slow case for the above.
* inspector/InspectorController.cpp:
* inspector/InspectorController.h:
(WebCore::InspectorController::didInsertDOMNode): Inlined so the fast case
early exit doesn't incur a function call.
(WebCore::InspectorController::didRemoveDOMNode): ditto
(WebCore::InspectorController::didModifyDOMAttr): ditto
* platform/ThreadGlobalData.h:
(WebCore::threadGlobalData): Inlined.
* platform/ThreadGlobalData.cpp: (Removed inline methods).
* platform/Timer.h:
(WebCore::TimerBase::isActive): Inlined.
* platform/Timer.cpp: (Removed inline methods).
* WebCore.xcodeproj/project.pbxproj: Install new heares.
* WebCore.base.exp: Add appropriate exports.
2010-01-19 Jon Honeycutt <jhoneycutt@apple.com>
Chromium build fix.
* accessibility/chromium/AccessibilityObjectChromium.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Call correct function.
2010-01-17 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: The child <option> elements of a non-multiple <select> are not
exposed
https://bugs.webkit.org/show_bug.cgi?id=33773
<rdar://problem/7550556>
Reviewed by Alice Liu.
This exposes the child <option> elements in a format similar to
Firefox's: the <select> element has one child, a hidden list object,
and this list has as its children the <option> elements.
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Add new files to project.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
If the element is a RenderMenuList, create an AccessibilityMenuList.
(WebCore::AXObjectCache::getOrCreate):
Add new types to create by role value.
* accessibility/AccessibilityMenuList.cpp: Added.
(WebCore::AccessibilityMenuList::AccessibilityMenuList):
Call the base class constructor. Assert that the RenderObject passed
is a RenderMenuList.
(WebCore::AccessibilityMenuList::press):
Show or hide the popup menu.
(WebCore::AccessibilityMenuList::addChildren):
Create an AccessibilityMenuListPopup. If the platform ignores its
accessibility, remove it from the object cache and return early.
Otherwise, set its parent object to this object, add it to our list of
children, and tell it to add its children.
(WebCore::AccessibilityMenuList::childrenChanged):
Tell our child hidden list that its children changed.
(WebCore::AccessibilityMenuList::isCollapsed):
Return whether the popup menu is visible.
* accessibility/AccessibilityMenuList.h: Added.
(WebCore::AccessibilityMenuList::create):
Adopt and return a new RenderMenuList.
(WebCore::AccessibilityMenuList::isMenuList):
(WebCore::AccessibilityMenuList::roleValue):
(WebCore::AccessibilityMenuList::accessibilityIsIgnored):
(WebCore::AccessibilityMenuList::canSetFocusAttribute):
* accessibility/AccessibilityMenuListOption.cpp: Added.
(WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption):
Initialize the pointer to our parent popup menu.
(WebCore::AccessibilityMenuListOption::setElement):
Assert that the element is an <option> element.
(WebCore::AccessibilityMenuListOption::actionElement):
Return our element.
(WebCore::AccessibilityMenuListOption::parentObject):
Return our parent popup menu.
(WebCore::AccessibilityMenuListOption::isEnabled):
Return true if the element itself is enabled.
(WebCore::AccessibilityMenuListOption::isVisible):
Return true if the popup is visible, or return true if the popup is
collapsed but the element is selected.
(WebCore::AccessibilityMenuListOption::isOffScreen):
Return true if the object is invisible.
(WebCore::AccessibilityMenuListOption::isSelected):
(WebCore::AccessibilityMenuListOption::setSelected):
(WebCore::AccessibilityMenuListOption::nameForMSAA):
Return the <option> element's text.
(WebCore::AccessibilityMenuListOption::canSetSelectedAttribute):
Return true if enabled.
(WebCore::AccessibilityMenuListOption::elementRect):
Return the AccessibilityMenuList's rect.
* accessibility/AccessibilityMenuListOption.h: Added.
(WebCore::AccessibilityMenuListOption::create):
Adopt and return a new AccessibilityMenuListOption.
(WebCore::AccessibilityMenuListOption::setParent):
(WebCore::AccessibilityMenuListOption::isMenuListOption):
(WebCore::AccessibilityMenuListOption::roleValue):
(WebCore::AccessibilityMenuListOption::canHaveChildren):
(WebCore::AccessibilityMenuListOption::size):
* accessibility/AccessibilityMenuListPopup.cpp: Added.
(WebCore::AccessibilityMenuListPopup::AccessibilityMenuListPopup):
Initialize the pointer to our parent list.
(WebCore::AccessibilityMenuListPopup::isVisible):
Return false; we're never considered visible.
(WebCore::AccessibilityMenuListPopup::isOffScreen):
Return true if the popup is collapsed.
(WebCore::AccessibilityMenuListPopup::parentObject):
Return our parent AccessibilityMenuList.
(WebCore::AccessibilityMenuListPopup::isEnabled):
Return true if our parent is enabled.
(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
If the element is an <option> element, create a list item for it, and
set the object's element to this element.
(WebCore::AccessibilityMenuListPopup::press):
Call our parent's press() function to show or hide the popup menu.
(WebCore::AccessibilityMenuListPopup::addChildren):
Walk the select element's children, and create list items for them. Add
them to our list of children.
(WebCore::AccessibilityMenuListPopup::childrenChanged):
If any of our children have been detached from the document, remove
them from the AXObjectCache and from our child list.
(WebCore::AccessibilityMenuListPopup::setMenuList):
* accessibility/AccessibilityMenuListPopup.h: Added.
(WebCore::AccessibilityMenuListPopup::create):
Adopt and return an AccessibilityMenuListPopup.
(WebCore::AccessibilityMenuListPopup::isMenuListPopup):
(WebCore::AccessibilityMenuListPopup::elementRect):
(WebCore::AccessibilityMenuListPopup::size):
(WebCore::AccessibilityMenuListPopup::roleValue):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::actionVerb):
Add the menuListAction and menuListPopupAction verbs.
* accessibility/AccessibilityObject.h:
(WebCore::):
Add new roles.
(WebCore::AccessibilityObject::isMenuList):
Stubbed.
(WebCore::AccessibilityObject::isMenuListHiddenList):
Stubbed.
(WebCore::AccessibilityObject::isMenuListOption):
Stubbed.
(WebCore::AccessibilityObject::isVisible):
Stubbed.
* accessibility/chromium/AccessibilityObjectChromium.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Ignore the new object type.
* accessibility/gtk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Ditto.
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Ditto.
* accessibility/qt/AccessibilityObjectQt.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Ditto.
* accessibility/win/AccessibilityObjectWin.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Allow the new object types.
* accessibility/wx/AccessibilityObjectWx.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Ignore the new object type.
* accessibility/win/AccessibilityObjectWin.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
If the object is an AccessibilityMenuListHiddenList or
AccessibilityMenuListOption, include it.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::disabled):
Call ownElementDisabled().
* html/HTMLOptionElement.h:
(WebCore::HTMLOptionElement::ownElementDisabled):
Return the base class implementation of disabled, which returns
whether this <option> itself is disabled.
* platform/LocalizedStrings.h:
Declare new localized string functions.
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::AXMenuListPopupActionVerb):
Stubbed.
(WebCore::AXMenuListActionVerb):
Stubbed.
* platform/haiku/LocalizedStringsHaiku.cpp:
(WebCore::AXMenuListPopupActionVerb):
Stubbed.
(WebCore::AXMenuListActionVerb):
Stubbed.
* platform/mac/LocalizedStringsMac.mm:
(WebCore::AXMenuListPopupActionVerb):
Call the view factory's method.
(WebCore::AXMenuListActionVerb):
Ditto.
* platform/qt/Localizations.cpp:
(WebCore::AXMenuListPopupActionVerb):
Stubbed.
(WebCore::AXMenuListActionVerb):
Stubbed.
* platform/wx/LocalizedStringsWx.cpp:
(WebCore::AXMenuListPopupActionVerb):
Stubbed.
(WebCore::AXMenuListActionVerb):
Stubbed.
2010-01-19 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Support reflections on WebGL
https://bugs.webkit.org/show_bug.cgi?id=33754
Support reflections of WebGL content, by ensuring that when the Canvas3DLayer containing the
WebGL content gets displayed, we correctly copy its content to the clone layers.
Test: compositing/webgl/webgl-reflection.html
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::didDisplay): Give the didDisplay() client method a parameter
which is the layer that displayed.
* platform/graphics/mac/Canvas3DLayer.mm:
(-[Canvas3DLayer display]): Override -[CALayer display], and call the client didDisplay().
* platform/graphics/mac/GraphicsLayerCA.h: didDisplay() takes a PlatformLayer parameter.
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::~GraphicsLayerCA): We need to clear the layer owner on the content
layer, since we're setting it for WebGL layers now.
(WebCore::GraphicsLayerCA::didDisplay): Handle didDisplay() calls for the content layer,
as well as the main layer now, getting the correct layer to copy contents from, and using
the correct clone map.
(WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D): Set the layer owner for WebGL
layers, because we need the didDisplay() callback.
* platform/graphics/mac/WebLayer.mm:
(-[WebLayer display]): didDisplay() takes a layer argument.
* platform/graphics/mac/WebTiledLayer.mm:
(-[WebTiledLayer display]): ditto.
2010-01-19 Mark Rowe <mrowe@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/7555330> <http://webkit.org/b/33770> dataFunctionMatrix leaks the array allocated by toArray
Rework toArray to extract elements in to a vector rather than handing out raw pointers. This prevents
callers from forgetting to free the memory, and gives them the option of using stack buffers for
sufficiently small allocations.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::texSubImage2D):
(WebCore::toVector):
(WebCore::dataFunctionf):
(WebCore::dataFunctioni):
(WebCore::dataFunctionMatrix):
2010-01-19 Carol Szabo <carol.szabo@nokia.com>
Reviewed by Darin Adler.
Another crazy counters bug
https://bugs.webkit.org/show_bug.cgi?id=11031
This patch actually provides for counter updating when the style
of a renderer changes.
Tests: fast/css/counters/counter-increment-002.html
fast/css/counters/counter-reset-000.html
fast/css/counters/counter-reset-002.html
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::rendererStyleChanged):
This function is added to update the counter hierarchy in
response to changes to the style of a renderer.
* rendering/RenderCounter.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleDidChange):
For changes that may include the counter directives added a
call to RenderCounter::rendererStyleChanged.
2010-01-19 Gustavo Noronha Silva <gns@gnome.org>
Unreviewed. Build fixes for make distcheck - missing files.
* GNUmakefile.am:
2010-01-19 Alexey Proskuryakov <ap@apple.com>
Reviewed by Oliver Hunt.
https://bugs.webkit.org/show_bug.cgi?id=33850
Attr.childNodes does not get updated after DOM mutations
Test: fast/dom/Attr/child-nodes-cache.html
* dom/Node.cpp: (WebCore::Node::notifyLocalNodeListsAttributeChanged): If the node is an
attribute, then changing it shouldn't take the shortcut that only resets a subset of caches.
2010-01-19 John Sullivan <sullivan@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=33854
Would like a variant of WebHTMLRepresentation's searchForLabelsBeforeElement that returns
more info about where the result was found
Reviewed by Darin Adler.
No new tests. This just adds a couple of out parameters for the benefit of WebKit clients.
* WebCore.base.exp:
Updated mangled signature for export.
* page/Frame.cpp:
(WebCore::Frame::searchForLabelsAboveCell):
Now fills in an out parameter with the number of characters from the start of the cell.
(WebCore::Frame::searchForLabelsBeforeElement):
Now fills in an out parameter with the distance as a number of characters, and another
with a bool for whether the result was in a table cell above the current cell (otherwise
it was found in the text before this element and after the previous element or start of form).
* page/Frame.h:
Updated signatures.
* page/mac/FrameMac.mm:
(WebCore::Frame::searchForNSLabelsAboveCell):
Same as above. This is a parallel copy of the function using Mac-specific data structures.
(WebCore::Frame::searchForLabelsBeforeElement):
Ditto
2010-01-19 Jakob Petsovits <jpetsovits@rim.com>
Reviewed by Nikolas Zimmermann.
[OpenVG] Add (EGL) surface/context management
https://bugs.webkit.org/show_bug.cgi?id=33403
The foundations for a new OpenVG port.
OpenVG is not tied to EGL per se, EGL just happens to be
the only usable backend for OpenVG state and painting
at the time of writing.
The purpose of the SurfaceOpenVG class is to provide
an EGL-independent interface for OpenVG-specific code.
The EGLDisplayOpenVG class takes care of keeping track
of EGL displays, surfaces and contexts. It also makes
sure that all created contexts are interoperable, and
that different surfaces use a single context if possible.
* platform/graphics/openvg/EGLDisplayOpenVG.cpp: Added.
(WebCore::displayManagers):
(WebCore::EGLDisplayOpenVG::currentSurface):
(WebCore::EGLDisplayOpenVG::registerPlatformSurface):
(WebCore::EGLDisplayOpenVG::unregisterPlatformSurface):
(WebCore::EGLDisplayOpenVG::setCurrentDisplay):
(WebCore::EGLDisplayOpenVG::current):
(WebCore::EGLDisplayOpenVG::forDisplay):
(WebCore::EGLDisplayOpenVG::EGLDisplayOpenVG):
(WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
(WebCore::EGLDisplayOpenVG::setDefaultPbufferConfig):
(WebCore::EGLDisplayOpenVG::defaultPbufferConfig):
(WebCore::EGLDisplayOpenVG::setDefaultWindowConfig):
(WebCore::EGLDisplayOpenVG::defaultWindowConfig):
(WebCore::EGLDisplayOpenVG::sharedPlatformSurface):
(WebCore::EGLDisplayOpenVG::createPbufferSurface):
(WebCore::EGLDisplayOpenVG::surfaceForWindow):
(WebCore::EGLDisplayOpenVG::surfacesCompatible):
(WebCore::EGLDisplayOpenVG::destroySurface):
(WebCore::EGLDisplayOpenVG::contextForSurface):
* platform/graphics/openvg/EGLDisplayOpenVG.h: Added.
(WebCore::EGLDisplayOpenVG::display):
* platform/graphics/openvg/EGLUtils.h: Added.
(toEGLErrorConstant):
* platform/graphics/openvg/SurfaceOpenVG.cpp: Added.
(WebCore::SurfaceOpenVG::currentSurface):
(WebCore::SurfaceOpenVG::SurfaceOpenVG):
(WebCore::SurfaceOpenVG::~SurfaceOpenVG):
(WebCore::SurfaceOpenVG::isValid):
(WebCore::SurfaceOpenVG::width):
(WebCore::SurfaceOpenVG::height):
(WebCore::SurfaceOpenVG::sharedSurface):
(WebCore::SurfaceOpenVG::makeCurrent):
(WebCore::SurfaceOpenVG::makeCompatibleCurrent):
(WebCore::SurfaceOpenVG::flush):
* platform/graphics/openvg/SurfaceOpenVG.h: Added.
(WebCore::SurfaceOpenVG::eglDisplay):
(WebCore::SurfaceOpenVG::eglSurface):
(WebCore::SurfaceOpenVG::eglContext):
* platform/graphics/openvg/VGUtils.h: Added.
(toVGErrorConstant):
2010-01-19 Steve Block <steveblock@google.com>
Reviewed by David Levin.
Renames jni_utility and jni_utility_private to JNIUtility and JNIUtilityPrivate
https://bugs.webkit.org/show_bug.cgi?id=33843
No new tests, refactoring only.
* Android.jscbindings.mk:
* Android.v8bindings.mk:
* GNUmakefile.am:
* WebCore.xcodeproj/project.pbxproj:
* bridge/jni/JNIUtility.cpp: Copied from WebCore/bridge/jni/jni_utility.cpp.
* bridge/jni/JNIUtility.h: Copied from WebCore/bridge/jni/jni_utility.h.
* bridge/jni/jni_jsobject.mm:
* bridge/jni/jni_objc.mm:
* bridge/jni/jni_runtime.cpp:
* bridge/jni/jni_runtime.h:
* bridge/jni/jni_utility.cpp: Removed.
* bridge/jni/jni_utility.h: Removed.
* bridge/jni/jsc/JNIUtilityPrivate.cpp: Copied from WebCore/bridge/jni/jsc/jni_utility_private.cpp.
(JSC::Bindings::convertValueToJValue):
* bridge/jni/jsc/JNIUtilityPrivate.h: Copied from WebCore/bridge/jni/jsc/jni_utility_private.h.
* bridge/jni/jsc/JavaClassJSC.cpp:
* bridge/jni/jsc/JavaInstanceJSC.cpp:
* bridge/jni/jsc/JavaStringJSC.h:
* bridge/jni/jsc/jni_utility_private.cpp: Removed.
* bridge/jni/jsc/jni_utility_private.h: Removed.
* platform/android/GeolocationServiceBridge.cpp:
* platform/android/GeolocationServiceBridge.h:
* platform/android/TemporaryLinkStubs.cpp:
2010-01-19 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Occasional crash when interacting with page with reflected WebGL
https://bugs.webkit.org/show_bug.cgi?id=33863
If updateCompositingLayers() was called with an updateRoot that was a reflection layer,
then we would determine that the layer does not require compositing, and tear down its
backing (without clearing replicaLayer() on the source layer's GraphicsLayer).
Fix by changing requiresCompositingLayer() on a reflection layer to always give the
same answer for a reflection and its original.
Also add various belt-and-brances code and null checks to ensure that if we ever end up
with a non-composited reflection layer, we won't crash.
No new tests, because the crash depends on timing issues that are hard to reproduce in a test.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::replicaLayer): Make this public so we can use it in an assertion.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking): Clear the source layer's replica layer
pointer if tearing down backing store of a reflection.
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Null-check reflection->backing().
(WebCore::RenderLayerCompositor::updateLayerTreeGeometry): Null-check reflection->backing().
(WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): reflection->backing().
(WebCore::RenderLayerCompositor::requiresCompositingLayer): If being called for a reflection layer,
use the source layer to answer the question.
2010-01-19 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Some composited reflections incorrectly positioned
https://bugs.webkit.org/show_bug.cgi?id=33856
When setting the position of the replicated layer inside the reflection, we need to take
into account the bounds of the original layer, and the replica layer to get the
reflection in the right place.
Tests: compositing/reflections/nested-reflection-transformed2.html
compositing/reflections/reflection-positioning2.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2010-01-19 Enrica Casucci <enrica@apple.com>
Reviewed by Simon Fraser.
REGRESSION: Infinite recursion in Position::getInlineBoxAndOffset()
https://bugs.webkit.org/show_bug.cgi?id=33864
<rdar://problem/7552959>
Regression has been introduced by changeset 53085.
The original fix had to be limited to editable content.
Test: editing/selection/selection-applet.html
* dom/Position.cpp:
(WebCore::Position::getInlineBoxAndOffset):
2010-01-19 Kristian Amlie <kristian.amlie@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] Fix qmake warning with qmake in Qt for Symbian
https://bugs.webkit.org/show_bug.cgi?id=33786
* WebCore.pro: Use QMAKE_LFLAGS instead of MMP_RULES.
2010-01-19 Daniel Bates <dbates@rim.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=33851
Fixes an issue in the Apple Mac port where ScrollView::platformVisibleContentRect
returns the rectangle of the document within the content view of
the scroll view (i.e. the rectangle not including scrollbars) when
the parameter includeScrollbars == true
Currently, this behavior contradicts both the comment in ScrollView.h
for method visibleContentRect as well as the behavior in
ScrollView::visibleContentRect() for a platform-independent scroll view.
Instead, it should return the rectangle whose dimensions include
the scrollbars.
Also, removes some extra whitespace at the end of the lines.
No tests included because we cannot test this using either DRT
or a manual test.
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformVisibleContentRect): If includeScrollbars == true
then return the rectangle whose dimensions are that of
the frame (i.e. -[NSScrollView frame]).
2010-01-19 Steve Block <steveblock@google.com>
Reviewed by David Levin.
Fixes style in WebCore/bridge/jni/jsc/JavaClassJSC
https://bugs.webkit.org/show_bug.cgi?id=33819
No new tests, style fixes only.
* bridge/jni/jsc/JavaClassJSC.cpp: Modified.
* bridge/jni/jsc/JavaClassJSC.h: Modified.
2010-01-19 Jaime Yap <jaimeyap@google.com>
Reviewed by Pavel Feldman.
Refactors the TimelineRecordFactory and InspectorTimelineAgent to support reporting data
when closing a record. Also includes grabbing the start and end line number for parse HTML
records as a reference use case for the above refactor
Tests updated:
inspector/timeline-parse-html-expected.txt
inspector/timeline-layout-expected.txt
inspector/timeline-recalculate-styles-expected.txt
https://bugs.webkit.org/show_bug.cgi?id=33853
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::write):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willDispatchEvent):
(WebCore::InspectorTimelineAgent::willLayout):
(WebCore::InspectorTimelineAgent::willRecalculateStyle):
(WebCore::InspectorTimelineAgent::willPaint):
(WebCore::InspectorTimelineAgent::willWriteHTML):
(WebCore::InspectorTimelineAgent::didWriteHTML):
(WebCore::InspectorTimelineAgent::didInstallTimer):
(WebCore::InspectorTimelineAgent::didRemoveTimer):
(WebCore::InspectorTimelineAgent::willFireTimer):
(WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
(WebCore::InspectorTimelineAgent::willLoadXHR):
(WebCore::InspectorTimelineAgent::willEvaluateScript):
(WebCore::InspectorTimelineAgent::willSendResourceRequest):
(WebCore::InspectorTimelineAgent::didReceiveResourceResponse):
(WebCore::InspectorTimelineAgent::didFinishLoadingResource):
(WebCore::InspectorTimelineAgent::didMarkTimeline):
(WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):
* inspector/InspectorTimelineAgent.h:
(WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createEventDispatchData):
(WebCore::TimelineRecordFactory::createGenericTimerData):
(WebCore::TimelineRecordFactory::createTimerInstallData):
(WebCore::TimelineRecordFactory::createXHRReadyStateChangeData):
(WebCore::TimelineRecordFactory::createXHRLoadData):
(WebCore::TimelineRecordFactory::createEvaluateScriptData):
(WebCore::TimelineRecordFactory::createMarkTimelineData):
(WebCore::TimelineRecordFactory::createResourceSendRequestData):
(WebCore::TimelineRecordFactory::createResourceReceiveResponseData):
(WebCore::TimelineRecordFactory::createResourceFinishData):
(WebCore::TimelineRecordFactory::createPaintData):
(WebCore::TimelineRecordFactory::createParseHTMLData):
* inspector/TimelineRecordFactory.h:
2010-01-19 Joanmarie Diggs <joanmarie.diggs@gmail.com>
Reviewed by Xan Lopez.
https://bugs.webkit.org/show_bug.cgi?id=30883
[Gtk] Implement AtkText for HTML elements which contain text
Moves the text assembling functionality from getPangoLayoutForAtk to
textForObject, which webkit_accessible_text_get_text now falls back on
when it comes up empty.
Adds a check in textForObject so that we don't double-add newlines
when we have a BR.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(textForObject):
(getPangoLayoutForAtk):
(webkit_accessible_text_get_text):
2010-01-19 Eric Carlson <eric.carlson@apple.com>
Reviewed by Adam Roben.
error events don't fire if no <source> elements passed to media engine
https://bugs.webkit.org/show_bug.cgi?id=33855
Test: media/video-source-error-no-candidate.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::selectMediaResource): Only bail early if
there is no 'src' attribute and no <source> child elements at all.
2010-01-19 Daniel Bates <dbates@webkit.org>
Reviewed by Adam Roben.
https://bugs.webkit.org/show_bug.cgi?id=33822
REGRESSION(r53273): Fixes redefinition of XFORM error when building
WebKit using Qt Windows with the MinGW compiler.
Note, MinGW has a slightly different declaration of the struct XFORM
from that in the Microsoft SDK. So, we need to substitute an alternative
typedef for XFORM when compiling with MinGW.
No functionality was changed. So, no new tests.
* platform/graphics/transforms/TransformationMatrix.h:
2010-01-19 Stephen White <senorblanco@chromium.org>
Reviewed by Dimitri Glazkov.
Fix for crash on large TransparencyWin allocation. The fix is
to leave m_layerValid false when the allocPixels of
OwnedBuffers::m_referenceBitmap fails. Then TransparencyWin won't
attempt to use it.
Will be covered by a new unit test in Chromium's test_shell_tests (when
this is rolled into Chromium).
https://bugs.webkit.org/show_bug.cgi?id=33844
* platform/graphics/chromium/TransparencyWin.cpp:
(WebCore::TransparencyWin::initializeNewContext):
Early return when m_referenceBitmap or its pixels is NULL, leaving
m_layerValid false.
2010-01-19 Eric Carlson <eric.carlson@apple.com>
Reviewed by Adam Roben.
video.networkState remains NETWORK_LOADING indefinitely when no <source> element was able to be loaded
https://bugs.webkit.org/show_bug.cgi?id=33744
Test: media/video-source-none-supported.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadNextSourceChild): Call waitForSourceChange if
there are no valid source elements.
(WebCore::HTMLMediaElement::waitForSourceChange): New, set networkState to NETWORK_NO_SOURCE.
(WebCore::HTMLMediaElement::setNetworkState): Call waitForSourceChange if the movie
hasn't reached HAVE_METADATA and there are no more <source> elements to try.
* html/HTMLMediaElement.h: Declare waitForSourceChange.
2010-01-19 Daniel Bates <dbates@rim.com>
Reviewed by Adam Treat.
https://bugs.webkit.org/show_bug.cgi?id=33408
Implements an optimization to ignore fixed background images
(i.e. background-attachment: fixed) when a page does not contain
any fixed position elements so as to allow fast repaints (via bit
blit) when scrolling a page.
Currently, if a page has elements that specify either a fixed
background or a fixed position then we perform a slow repaint
(i.e disable blitting) so as to avoid rendering artifacts.
However, on low-powered/mobile devices slow repaints can cause
noticeable delays when scrolling a page with a fixed background
image. By sacrificing support for fixed background images when
there are no fixed elements on the page and with come care, we
don't need to force slow repaints and can avoid rendering artifacts.
Hence, on such devices we can improve the responsiveness of
scrolling a page with a fixed background image.
Note, this optimization is only enabled if the WebKit is built
with FAST_MOBILE_SCROLLING enabled.
Tests: fast/fast-mobile-scrolling/fixed-position-element.html
fast/fast-mobile-scrolling/no-fixed-position-elements.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
Disable fixed background attachment if we can blit on scroll.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
2010-01-19 Dave Hyatt <hyatt@apple.com>
Build bustage fix. Land modified WebCore.base.exp file that includes export of currentWorld().
* WebCore.base.exp:
2010-01-19 Brady Eidson <beidson@apple.com>
Reviewed by Alexey Proskuryakov.
Crash in Page::backForwardList when using History object from a detached window
<rdar://problem/7556252> and https://bugs.webkit.org/show_bug.cgi?id=33828
Test: fast/loader/stateobjects/state-api-on-detached-frame-crash.html
* page/History.cpp:
(WebCore::History::stateObjectAdded): Do an early return when detached. The spec
doesn't really cover expected behavior and we already do something similar in
other places, such as in History::length().
2010-01-19 Yury Semikhatsky <yurys@chromium.org>
Reviewed by NOBODY (build fix).
Revert r53467. Browser crashes on opening inspector if there
are messages in console.
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::databaseForId):
(WebCore::JSInjectedScriptHost::inspectedWindow):
(WebCore::JSInjectedScriptHost::wrapCallback):
(WebCore::JSInjectedScriptHost::currentCallFrame):
(WebCore::JSInjectedScriptHost::nodeForId):
(WebCore::JSInjectedScriptHost::wrapObject):
(WebCore::JSInjectedScriptHost::unwrapObject):
(WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
(WebCore::JSInjectedScriptHost::selectDatabase):
(WebCore::JSInjectedScriptHost::selectDOMStorage):
* bindings/js/ScriptController.cpp:
* bindings/js/ScriptController.h:
* bindings/js/ScriptObject.h:
* bindings/js/ScriptValue.cpp:
(WebCore::ScriptValue::quarantineValue):
* bindings/js/ScriptValue.h:
* bindings/v8/ScriptObject.h:
* bindings/v8/ScriptValue.h:
(WebCore::ScriptValue::quarantineValue):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::inspectedWindowCallback):
(WebCore::V8InjectedScriptHost::wrapCallbackCallback):
(WebCore::V8InjectedScriptHost::wrapObjectCallback):
(WebCore::V8InjectedScriptHost::unwrapObjectCallback):
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
(WebCore::ConsoleMessage::addToConsole):
(WebCore::ConsoleMessage::isEqual):
* inspector/ConsoleMessage.h:
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::wrapObject):
(WebCore::InjectedScriptHost::unwrapObject):
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::dispatchOnInjectedScript):
(WebCore::InspectorBackend::releaseWrapperObjectGroup):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::clearConsoleMessages):
(WebCore::InspectorController::inspectedWindowScriptObjectCleared):
(WebCore::InspectorController::windowScriptObjectAvailable):
(WebCore::InspectorController::scriptObjectReady):
(WebCore::InspectorController::setFrontendProxyObject):
(WebCore::InspectorController::close):
(WebCore::InspectorController::resetScriptObjects):
(WebCore::InspectorController::didPause):
(WebCore::InspectorController::wrapObject):
(WebCore::InspectorController::unwrapObject):
(WebCore::InspectorController::releaseWrapperObjectGroup):
(WebCore::InspectorController::resetInjectedScript):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::addConsoleMessage):
(WebCore::InspectorFrontend::pausedScript):
* inspector/InspectorFrontend.h:
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel.prototype._reloadResources):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.requestClearMessages):
(WebInspector.ConsoleView.prototype.completions):
(WebInspector.ConsoleView.prototype.doEvalInWindow):
(WebInspector.ConsoleView.prototype._formatnode):
(WebInspector.ConsoleView.prototype._formatarray):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode):
(WebInspector.CSSStyleDeclaration):
(WebInspector.CSSStyleDeclaration.parseRule):
* inspector/front-end/Database.js:
(WebInspector.Database.prototype.executeSql):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
(WebInspector.ElementsPanel.prototype.setDocument):
(WebInspector.ElementsPanel.prototype.searchCanceled):
(WebInspector.ElementsPanel.prototype.performSearch):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
* inspector/front-end/EventListenersSidebarPane.js:
():
* inspector/front-end/InjectedScript.js:
(InjectedScript.dispatch):
(InjectedScript.toggleStyleEnabled):
(InjectedScript._serializeRule):
(InjectedScript._serializeStyle):
(InjectedScript.getProperties):
(InjectedScript.setPropertyValue):
(InjectedScript._evaluateAndWrap):
(InjectedScript.getCallFrames):
(InjectedScript._inspectObject):
(InjectedScript._ensureCommandLineAPIInstalled):
(InjectedScript._resolveObject):
(InjectedScript._window):
(InjectedScript._objectForId):
(InjectedScript.createProxyObject):
(InjectedScript.executeSql):
(InjectedScript.executeSql.errorCallback):
(InjectedScript.executeSql.queryTransaction):
(Object.type):
(String.prototype.escapeCharacters):
* inspector/front-end/InjectedScriptAccess.js:
(InjectedScriptAccess._installHandler.InjectedScriptAccess.methodName):
(InjectedScriptAccess._installHandler):
* inspector/front-end/MetricsSidebarPane.js:
(WebInspector.MetricsSidebarPane):
(WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
(WebInspector.MetricsSidebarPane.prototype.update):
(WebInspector.MetricsSidebarPane.prototype.editingCommitted):
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertiesSection.prototype.update):
(WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
(WebInspector.ObjectPropertyTreeElement.prototype.applyExpression):
* inspector/front-end/ObjectProxy.js:
(WebInspector.ObjectProxy):
(WebInspector.ObjectProxy.getPropertiesAsync):
* inspector/front-end/PropertiesSidebarPane.js:
(WebInspector.PropertiesSidebarPane.prototype.update.callback):
(WebInspector.PropertiesSidebarPane.prototype.update):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.doEvalInCallFrame):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype.update):
(WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
(WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype.update):
* inspector/front-end/inspector.js:
(WebInspector.loaded):
(WebInspector.pausedScript):
(WebInspector.addConsoleMessage):
(WebInspector.log.logMessage):
(WebInspector.log):
2010-01-19 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Inject inspector script directly into the inspected context. All the
communication between the script and the frontend is serialized into
JSON strings. It allows to get rid of object quarantines in Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=32554
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::databaseForId):
(WebCore::JSInjectedScriptHost::currentCallFrame):
(WebCore::JSInjectedScriptHost::nodeForId):
(WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
(WebCore::JSInjectedScriptHost::selectDatabase):
(WebCore::JSInjectedScriptHost::selectDOMStorage):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::mainWorldScriptState):
* bindings/js/ScriptController.h:
* bindings/js/ScriptObject.h:
(WebCore::ScriptObject::scriptState):
* bindings/js/ScriptValue.cpp:
* bindings/js/ScriptValue.h:
* bindings/v8/ScriptObject.h:
(WebCore::ScriptObject::scriptState):
* bindings/v8/ScriptValue.h:
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
(WebCore::ConsoleMessage::addToConsole):
(WebCore::ConsoleMessage::isEqual):
* inspector/ConsoleMessage.h:
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::releaseWrapperObjectGroup):
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::setInjectedScriptSource):
(WebCore::InspectorBackend::dispatchOnInjectedScript):
(WebCore::InspectorBackend::releaseWrapperObjectGroup):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::clearConsoleMessages):
(WebCore::InspectorController::inspectedWindowScriptObjectCleared):
(WebCore::InspectorController::windowScriptObjectAvailable):
(WebCore::InspectorController::scriptObjectReady):
(WebCore::InspectorController::setFrontendProxyObject):
(WebCore::InspectorController::close):
(WebCore::InspectorController::resetScriptObjects):
(WebCore::InspectorController::didPause):
(WebCore::InspectorController::injectedScriptForNodeId):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::addConsoleMessage):
(WebCore::InspectorFrontend::pausedScript):
* inspector/InspectorFrontend.h:
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel.prototype._reloadResources):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.requestClearMessages):
(WebInspector.ConsoleView.prototype.doEvalInWindow):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode):
(WebInspector.CSSStyleDeclaration):
(WebInspector.CSSStyleDeclaration.parseRule):
* inspector/front-end/Database.js:
(WebInspector.Database.prototype.executeSql):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged.InjectedScriptAccess.get addInspectedNode):
(WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
(WebInspector.ElementsPanel.prototype.setDocument):
(WebInspector.ElementsPanel.prototype.searchCanceled):
(WebInspector.ElementsPanel.prototype.performSearch):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
* inspector/front-end/EventListenersSidebarPane.js:
():
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
(injectedScriptConstructor.):
* inspector/front-end/InjectedScriptAccess.js:
(InjectedScriptAccess):
(InjectedScriptAccess.getDefault):
(get InjectedScriptAccess):
(InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName):
(InjectedScriptAccess._installHandler):
* inspector/front-end/MetricsSidebarPane.js:
(WebInspector.MetricsSidebarPane):
(WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
* inspector/front-end/ObjectPropertiesSection.js:
* inspector/front-end/ObjectProxy.js:
(WebInspector.ObjectProxy):
* inspector/front-end/PropertiesSidebarPane.js:
(WebInspector.PropertiesSidebarPane.prototype.update.callback):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
* inspector/front-end/ScriptsPanel.js:
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype.update):
* inspector/front-end/inspector.js:
(WebInspector.loaded):
(WebInspector.pausedScript):
(WebInspector.addConsoleMessage):
(WebInspector.log.logMessage):
(WebInspector.log):
2010-01-19 Steve Block <steveblock@google.com>
Unreviewed build fix.
Fixes Windows build due to http://trac.webkit.org/changeset/53464
Updates WebCore.vcproj to reflect renaming of runtime.[cpp|h] to Bridge.[cpp|h]
No new tests, build fix only.
* WebCore.vcproj/WebCore.vcproj:
2010-01-19 Steve Block <steveblock@google.com>
Reviewed by Adam Barth.
Renames WebCore/bridge/runtime.[cpp|h] to WebCore/bridge/Bridge.[cpp|h]
https://bugs.webkit.org/show_bug.cgi?id=33801
runtime.[cpp|h] contains general interface classes for use in the bridge,
so Bridge is a more appropriate name than runtime.
No new tests, renaming only.
* Android.jscbindings.mk:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/JSPluginElementFunctions.cpp:
* bindings/js/ScriptControllerGtk.cpp:
* bindings/js/ScriptControllerHaiku.cpp:
* bindings/js/ScriptControllerMac.mm:
* bindings/js/ScriptControllerQt.cpp:
* bindings/js/ScriptControllerWin.cpp:
* bindings/js/ScriptControllerWx.cpp:
* bindings/js/ScriptInstance.h:
* bindings/objc/WebScriptObject.mm:
* bridge/Bridge.cpp: Copied from WebCore/bridge/runtime.cpp.
* bridge/Bridge.h: Copied from WebCore/bridge/runtime.h.
* bridge/c/c_class.h:
* bridge/c/c_instance.h:
* bridge/c/c_runtime.h:
* bridge/jni/jni_instance.h:
* bridge/objc/objc_runtime.h:
* bridge/qt/qt_class.h:
* bridge/qt/qt_instance.h:
* bridge/qt/qt_runtime.cpp:
* bridge/qt/qt_runtime.h:
* bridge/runtime.cpp: Removed.
* bridge/runtime.h: Removed.
* bridge/runtime_array.h:
* bridge/runtime_method.h:
* bridge/runtime_object.h:
* bridge/runtime_root.cpp:
* bridge/testbindings.cpp:
* bridge/testbindings.mm:
* bridge/testqtbindings.cpp:
* page/win/FrameWin.cpp:
* platform/graphics/wince/MediaPlayerProxy.cpp:
* plugins/PluginView.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
* plugins/qt/PluginViewQt.cpp:
* plugins/symbian/PluginViewSymbian.cpp:
* plugins/win/PluginViewWin.cpp:
2010-01-19 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/
https://bugs.webkit.org/show_bug.cgi?id=33826
Test: fast/workers/worker-gc2.html
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::~WorkerScriptController): Removed some
ASSERTs that have moved to JavaScriptCore.
2010-01-19 Gavin Barraclough <barraclough@apple.com>
Reviewed by NOBODY (build fix).
Reverting r53455, breaks 2 javascriptcore tests.
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::~WorkerScriptController):
2010-01-18 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/
https://bugs.webkit.org/show_bug.cgi?id=33826
Test: fast/workers/worker-gc2.html
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::~WorkerScriptController): Removed some
ASSERTs that have moved to JavaScriptCore.
2010-01-18 Daniel Bates <dbates@webkit.org>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=33089
Implements all of the alphabetic CSS3 list-style-types as per
section 4.4 of the CSS3 Lists module <http://www.w3.org/TR/css3-lists/#alphabetic>.
Test: fast/lists/w3-css3-list-styles-alphabetic.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Updated comment to include
added list-style-types.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added new list style types,
alphabetized enums, and removed indent to conform to the WebKit Code Style Guidelines.
* css/CSSValueKeywords.in:
* inspector/front-end/CSSSourceSyntaxHighlighter.js:
(WebInspector.CSSSourceSyntaxHighlighter): Added new list style types
and alphabetized array valueKeywords.
* platform/text/CharacterNames.h: Added constant ethiopicPrefaceColon.
* rendering/RenderListMarker.cpp:
(WebCore::toAlphabetic):
(WebCore::listMarkerSuffix): Added.
(WebCore::listMarkerText):
(WebCore::RenderListMarker::paint): Modified to call WebCore::listMarkerSuffix.
(WebCore::RenderListMarker::calcPrefWidths): Ditto.
(WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
* rendering/style/RenderStyle.h:
(WebCore::):
* rendering/style/RenderStyleConstants.h:
(WebCore::):
2010-01-18 Daniel Bates <dbates@webkit.org>
Unreviewed, fix misspelling of the word maximum in comment.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::maximum):
2010-01-18 Dan Bernstein <mitz@apple.com>
Rubber-stamped by Sam Weinig.
<rdar://problem/7476957> REGRESSION (r49567): Business widget list does not line up: too tall due to line height rounding change
Reverted r49567.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
* rendering/RenderBR.cpp:
(WebCore::RenderBR::lineHeight):
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::computedLineHeight):
2010-01-18 Steve Block <steveblock@google.com>
Reviewed by Adam Barth.
Moves JSC-specific implementation of JavaString to a private implementation class.
https://bugs.webkit.org/show_bug.cgi?id=33558
Also modifies JavaField::name and JavaMethod::name to return const JavaString&, rather than UString::Rep*,
which is JSC-specific. This allows this code to be used with both JSC and V8, as required by Android.
No new tests, refactoring only.
* WebCore.xcodeproj/project.pbxproj: Modified. Added JavaStringJSC.h
* bridge/jni/jni_class.cpp: Modified.
(JavaClass::JavaClass): Modified. Updates call sites of JavaField::name and JavaMethod::name.
* bridge/jni/jni_runtime.h: Modified.
(JSC::Bindings::JavaString::JavaString): Modified. Pass through to implementation.
(JSC::Bindings::JavaString::UTF8String): Modified. Pass through to implementation.
(JSC::Bindings::JavaString::uchars): Modified. Pass through to implementation.
(JSC::Bindings::JavaString::length): Modified. Pass through to implementation.
(JSC::Bindings::JavaString::operator UString): Modified. Pass through to implementation.
(JSC::Bindings::JavaField::name): Modified. Pass through to implementation.
(JSC::Bindings::JavaMethod::name): Modified. Pass through to implementation.
* bridge/jni/jsc/JavaStringJSC.h: Added.
(JSC::Bindings::JavaStringImpl::~JavaStringImpl):
(JSC::Bindings::JavaStringImpl::init):
(JSC::Bindings::JavaStringImpl::UTF8String):
(JSC::Bindings::JavaStringImpl::uchars):
(JSC::Bindings::JavaStringImpl::length):
(JSC::Bindings::JavaStringImpl::uString):
2010-01-18 Yuzo Fujishima <yuzo@google.com>
Reviewed by Darin Adler.
Skip an error after invalid blocks in a CSS expression.
https://bugs.webkit.org/show_bug.cgi?id=33650
* css/CSSGrammar.y:
2010-01-15 Gavin Barraclough <barraclough@apple.com>
Reviewed by Darin Adler & Oliver Hunt.
https://bugs.webkit.org/show_bug.cgi?id=33731
Remove uses of PtrAndFlags from WebCore::StringImpl.
These break the OS X Leaks tool. Move the management of null-terminated copies
out from StringImpl to String, and use a bit stolen from the refCount to hold the
'InTable' flag.
* platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::openDatabase):
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::prepare):
* platform/sql/SQLiteStatement.h:
* platform/text/PlatformString.h:
* platform/text/String.cpp:
(WebCore::String::copyWithNullTermination):
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::StringImpl):
(WebCore::StringImpl::~StringImpl):
(WebCore::StringImpl::create):
(WebCore::StringImpl::crossThreadString):
(WebCore::StringImpl::sharedBuffer):
* platform/text/StringImpl.h:
(WebCore::StringImpl::inTable):
(WebCore::StringImpl::setInTable):
2010-01-18 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Rewrite SVG <use> support in a modern-fashion
https://bugs.webkit.org/show_bug.cgi?id=33776
Tests: svg/custom/relative-sized-deep-shadow-tree-content.xhtml
svg/custom/relative-sized-shadow-tree-content.xhtml
Fixes: svg/W3C-SVG-1.1/animate-elem-30-t.svg (animated circle sometimes takes wrong path)
Rewrite <use> support in less intrusive way. Try hard to avoid recloning where possible, and do it lazily.
Introduce RenderSVGShadowTreeRootContainer as special renderer for SVGUseElement, that now manages the
render tree, instead of SVGUseElement manually hacking around it's own renderer from the DOM side.
Instead of recloning the whole shadow tree for every attribute change (DOM setAttribute / SVG DOM changes / CSS changes / childrenChanged()...)
just notify the RenderSVGShadowTreeRootContainer that it's supposed to reclone the tree upon the next updateFromElement() call.
updateFromElement() is fired from SVGUseElement::attach() / recalcStyle(), as it's done for HTMLFormControlElement/HTMLMediaElement, thus
lazily recloning the shadow tree if necessary.
Animations for <use> elements was a real performance bottlenck as the tree got recloned on every attribute change. Reclones are _completly_
avoided for animations now - the SVGAnim*Element classes already updated the instances of an element manually, though that resulted in a reclone
nontheless, and thus killing performance. <use> elements can only be recloned through mutations of the elements that they reference to.
For example referencing a <rect> element from a <use> element and scripting the <rect> element (setAttribute, or child tree mutations etc.).
We reclone instead of trying to synchronize trees - as it's currenty implemented - because it's very hard to do it right.
Any DOM / SVG DOM / CSS change on the <use> element don't reclone the tree anymore, this is a huge speed benefit.
x/y attribute changes are correctly handled in the render tree now (by an additional local transformation), now percentual values work
as expected, and resize on window changes - affecting lots of testcases.
The <use> implementation is much safer now, not doing any mutations synchronously from svgAttributeChanged etc.
Remove hack to force garbage collection on SVGElementInstance destruction - can't reproduce it anymore.
* Android.mk: Add new files to build.
* GNUmakefile.am: Ditto.
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* rendering/RenderSVGShadowTreeRootContainer.cpp: Added. This is the rendered now created by SVGUseElement.
(WebCore::RenderSVGShadowTreeRootContainer::RenderSVGShadowTreeRootContainer):
(WebCore::RenderSVGShadowTreeRootContainer::~RenderSVGShadowTreeRootContainer):
(WebCore::RenderSVGShadowTreeRootContainer::updateStyle): Used form SVGUseElement to request style recalculations for the shadow tree renderers
(WebCore::RenderSVGShadowTreeRootContainer::updateFromElement): Used from SVGUseElement attach/recalcStyle to eventually request shadow tree updates.
(WebCore::RenderSVGShadowTreeRootContainer::styleDidChange): Used to propage style updates across shadow tree boundaries.
* rendering/RenderSVGShadowTreeRootContainer.h: Added.
(WebCore::RenderSVGShadowTreeRootContainer::markShadowTreeForRecreation): Marks the shadow tree for a reclone, next time updateFromElement is used.
* rendering/RenderSVGTransformableContainer.cpp:
(WebCore::RenderSVGTransformableContainer::calculateLocalTransform): Take containerTranslation() into account, supplied by RenderSVGSDhadowTreeContainer.
* rendering/SVGShadowTreeElements.cpp: Added. This is the root element of the SVG shadow tree residing as (hidden) child of SVGUseElement (DOM wise).
(WebCore::SVGShadowTreeContainerElement::SVGShadowTreeContainerElement):
(WebCore::SVGShadowTreeContainerElement::~SVGShadowTreeContainerElement):
(WebCore::SVGShadowTreeContainerElement::containerTranslation): Used from calculateLocalTransform() to take x/y translation into account for shadow tree container elements.
(WebCore::SVGShadowTreeRootElement::SVGShadowTreeRootElement):
(WebCore::SVGShadowTreeRootElement::~SVGShadowTreeRootElement):
(WebCore::SVGShadowTreeRootElement::attachElement): Used by RenderSVGShadowTreeRootContainer, instead of attach(), as we're a shadow tree root node.
* rendering/SVGShadowTreeElements.h: Added. This is the root element of each SVG shadow sub-tree (whenever a <use> element is expanded in the shadow tree).
(WebCore::SVGShadowTreeContainerElement::isShadowTreeContainerElement): Return true here.
(WebCore::SVGShadowTreeContainerElement::setContainerOffset): Used from SVGUseElement to propagate x/y translation values set on <use> elements in the shadow tree.
(WebCore::SVGShadowTreeRootElement::isShadowNode): Identify us as shadow node.
(WebCore::SVGShadowTreeRootElement::shadowParentNode): Ditto. Return actual shadow parent node (== corresponding use element).
* svg/SVGElement.cpp: Shrink size of all SVG*Elements, by removing the m_shadowParent parent. SVGShadowTreeRootElement is the new base class for shadow tree.
(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::eventParentNode): Call virtual shadowParentNode() method, instead of accessing m_shadowParent.
* svg/SVGElement.h: Remove isShadowNode() / shadowParentNode() / setShadowParentNode().
* svg/SVGElementInstance.cpp: Remove the hack, calling garbage collection before destruction. Can't reproduce this anymore, let's see what the bots say.
(WebCore::SVGElementInstance::SVGElementInstance): Remove now unnecessary m_needsUpdate flag.
(WebCore::SVGElementInstance::invalidateAllInstancesOfElement): Don't invalidate if instance updates are blocked (see SVGStyledElement changes)
* svg/SVGElementInstance.h: Remove m_needsUpdate, and forgetWrapper() method.
* svg/SVGGElement.h:
(WebCore::SVGGElement::isShadowTreeContainerElement): Add new virtual method here returning false by default, SVGShadowTreeContainerElement will override it.
* svg/SVGStyledElement.cpp: Remove gElementsWithInstanceUpdatesBlocked HashSet tracking the state of instancesUpdatesBlocked() per SVGStyledElement - make it a member variable.
* svg/SVGStyledElement.h: Add inline getter/setters around m_instanceUpdatesBlocked.
(WebCore::SVGStyledElement::instanceUpdatesBlocked):
(WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
* svg/SVGUseElement.cpp: Full rewrite of <use> support, a detailed discussion would blow the ChangeLog - see short version above.
(WebCore::SVGUseElement::SVGUseElement):
(WebCore::SVGUseElement::instanceRoot):
(WebCore::SVGUseElement::insertedIntoDocument):
(WebCore::SVGUseElement::removedFromDocument):
(WebCore::SVGUseElement::svgAttributeChanged):
(WebCore::updateContainerOffset):
(WebCore::SVGUseElement::updateContainerOffsets):
(WebCore::SVGUseElement::recalcStyle):
(WebCore::dumpInstanceTree):
(WebCore::SVGUseElement::buildPendingResource):
(WebCore::SVGUseElement::buildShadowAndInstanceTree):
(WebCore::SVGUseElement::createRenderer):
(WebCore::updateFromElementCallback):
(WebCore::SVGUseElement::attach):
(WebCore::SVGUseElement::detach):
(WebCore::SVGUseElement::toClipPath):
(WebCore::SVGUseElement::buildInstanceTree):
(WebCore::SVGUseElement::handleDeepUseReferencing):
(WebCore::SVGUseElement::buildShadowTree):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
(WebCore::SVGUseElement::instanceForShadowTreeElement):
(WebCore::SVGUseElement::invalidateShadowTree):
(WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
* svg/SVGUseElement.h:
(WebCore::SVGUseElement::isPendingResource):
2010-01-18 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
HTMLInputElement::valueAsDate setter support for type=month.
https://bugs.webkit.org/show_bug.cgi?id=33021
Introduce ISODateTime::setMillisecondsSinceEpochForMonth() and
toString() for the Month type, and HTMLInputElement::setValueAsDate()
calls them.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValueAsDate):
* html/ISODateTime.cpp:
(WebCore::beforeGregorianStartDate):
(WebCore::ISODateTime::addDay): Use beforeGregorianStartDate().
(WebCore::ISODateTime::parseMonth): Use beforeGregorianStartDate().
(WebCore::ISODateTime::setMillisecondsSinceEpochForDateInternal):
(WebCore::ISODateTime::setMillisecondsSinceEpochForMonth):
(WebCore::ISODateTime::toString): Implement only for the Month type.
* html/ISODateTime.h:
2010-01-18 Enrica Casucci <enrica@apple.com>
Reviewed by Darin Adler.
Script attributes are copied and pasted, making cross-domain attacks possible (30019)
<rdar://problem/6008809>
https://bugs.webkit.org/show_bug.cgi?id=30019
When we create the document fragment from a markup string,
either to perform a paste operation or a drag and drop, we
want to remove all the event handlers and any attribute that contain
a value that leads to code execution.
The HTMLParser class is now aware of the needs of stripping these attributes.
I've modified the call to createMarkupString for every platform.
Test: editing/pasteboard/paste-noscript.html
* WebCore.base.exp:
* dom/Element.cpp:
(WebCore::isEventHandlerAttribute):
(WebCore::Element::setAttributeMap):
* dom/Element.h:
* dom/MappedAttributeEntry.h:
(WebCore::):
* editing/markup.cpp:
(WebCore::createFragmentFromMarkup):
* editing/markup.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::createContextualFragment):
* html/HTMLElement.h:
* html/HTMLParser.cpp:
(WebCore::HTMLParser::HTMLParser):
(WebCore::HTMLParser::parseToken):
* html/HTMLParser.h:
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::HTMLTokenizer):
(WebCore::parseHTMLDocumentFragment):
* html/HTMLTokenizer.h:
* platform/chromium/DragDataChromium.cpp:
(WebCore::DragData::asFragment):
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::documentFragment):
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::asFragment):
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::fragmentFromCF_HTML):
(WebCore::fragmentFromHTML):
2010-01-18 Steve Falkenburg <sfalken@apple.com>
Reviewed by Sam Weinig.
<https://bugs.webkit.org/show_bug.cgi?id=33816>
Crashes in Geolocation code due to refcounting, observer balance issues.
Hold a ref to the GeoNotifier while dispatching a callback. The code was
copying a data member to avoid accessing a freed this ptr, but was still
using the this ptr.
Geolocation::removeObserver calls are not always balanced with addObserver.
Instead of asserting and continuing, don't try to remove non-existant
observers.
* page/Geolocation.cpp:
(WebCore::Geolocation::GeoNotifier::timerFired): Protect notifier.
* page/GeolocationController.cpp:
(WebCore::GeolocationController::removeObserver): Change ASSERT into an if with early return.
2010-01-18 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=33815
Crash when using DOMTimer from a detached frame
Test: fast/dom/Window/timer-null-script-execution-context.html
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setTimeout):
(WebCore::JSDOMWindow::setInterval):
* page/DOMWindow.h:
* page/DOMWindow.idl:
Make setTimer and setInterval raise an exception. It is not specified in HTML5, but both
IE and Firefox do raise an exception in this situation, although different ones.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::setTimeout): Raise INVALID_ACCESS_ERR if script execution context is
null (meaning that the window is detached).
(WebCore::DOMWindow::setInterval): Ditto.
(WebCore::DOMWindow::clearTimeout): Silently return early if there is no script execution
context.
(WebCore::DOMWindow::clearInterval): Ditto.
Raise INVALID_ACCESS_ERR if script execution context is null (meaning .
2010-01-18 Steve Block <steveblock@google.com>
Reviewed by Adam Barth.
Moves JSC-specific version of JavaClass from bridge/jni/jni_class to bridge/jni/jsc/JavaClassJSC
https://bugs.webkit.org/show_bug.cgi?id=33561
No new tests, refactoring only.
* Android.jscbindings.mk: Modified. Removed jni_class.cpp and added JavaClassJSC.cpp
* GNUmakefile.am: Modified. Removed jni_class.h and added JavaClassJSC.h
* WebCore.xcodeproj/project.pbxproj: Modified. Removed jni_class.[cpp|h] and added JavaClassJSC.[cpp|h]
* bridge/jni/jni_class.cpp: Removed.
* bridge/jni/jni_class.h: Removed.
* bridge/jni/jsc/JavaClassJSC.cpp: Copied from WebCore/bridge/jni/jni_class.cpp.
* bridge/jni/jsc/JavaClassJSC.h: Copied from WebCore/bridge/jni/jni_class.h.
* bridge/jni/jsc/JavaInstanceJSC.cpp: Modified. Includes JavaClassJSC.h
2010-01-18 Steve Block <steveblock@google.com>
Reviewed by Adam Barth.
Fix style in WebCore/bridge/jni/jsc/JavaInstanceJSC.[cpp|h]
https://bugs.webkit.org/show_bug.cgi?id=33792
No new tests, style fixes only.
* bridge/jni/jni_runtime.cpp: Modified.
(JavaField::dispatchValueFromInstance): Modified. Updated to use renamed JavaInstance::m_instance
(JavaField::dispatchSetValueToInstance): Modified. Updated to use renamed JavaInstance::m_instance
(JavaArray::JavaArray): Modified. Updated to use renamed JavaInstance::m_instance
* bridge/jni/jni_runtime.h: Modified.
(JSC::Bindings::JavaArray::javaArray): Modified. Updated to use renamed JavaInstance::m_instance
* bridge/jni/jsc/JavaInstanceJSC.cpp: Modified. Fixed style
* bridge/jni/jsc/JavaInstanceJSC.h: Modified. Fixed style
2010-01-18 Chris Marrin <cmarrin@apple.com>
Reviewed by Oliver Hunt.
https://bugs.webkit.org/show_bug.cgi?id=30073
Moved reshape to HTMLCanvasElement::reset and have it always
set the size to the canvas width and height attrs.
This is not testable with LayoutTests, so I instead added logic
to the demo at:
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/webkit/SpinningBox.html
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::reset):
(WebCore::HTMLCanvasElement::paint):
2010-01-18 Alexey Proskuryakov <ap@apple.com>
Reviewed by Geoffrey Garen.
https://bugs.webkit.org/show_bug.cgi?id=33813
<rdar://problem/7545104> Crash when using DOMApplicationCache from a destroyed frame
Test: http/tests/appcache/destroyed-frame.html
* loader/appcache/DOMApplicationCache.cpp:
(WebCore::DOMApplicationCache::scriptExecutionContext): Return null when there is no frame.
2010-01-18 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
REGRESSION (r53420): incomplete repaint of bottom of bugs.webkit.org comment field
https://bugs.webkit.org/show_bug.cgi?id=33809
Test: fast/repaint/trailing-floats-root-line-box-overflow.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutInlineChildren): Copy bottom overflow from the last
root box to the trailing floats box, which is becoming the last root box. This is
needed because painting code assumes that the last line in a block is the one with the
lowest overflow bottom.
2010-01-18 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Unreviewed trivial buildfix. (r53429)
* WebCore.pri: missing XMLNS_NAMES added.
2010-01-18 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Removed unnecessary use of scriptExecutionContext() when creating a JS event listener.
https://bugs.webkit.org/show_bug.cgi?id=33811
This change simplifies a bunch of code, and also reduces
the number of places that use the difficult-to-understand and possibly
crashy-null scriptExecutionContext() idiom.
* bindings/js/JSDOMGlobalObject.cpp:
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSEventListener.h:
(WebCore::createJSAttributeEventListener):
* bindings/scripts/CodeGeneratorJS.pm:
2010-01-18 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=33787
Add constants for more XML strings
No change in functionality, so no tests.
* WebCore/xml/xmlnsattrs.in: Added a new file for xmlns namespace and attribute -
XMLNames.{h,cpp} are auto-generated, and I dodn't see a reasonable way to extend it.
* platform/text/AtomicString.cpp: (WebCore::AtomicString::init):
* platform/text/AtomicString.h:
Added atomic strings for "xml" and "xmlns".
* page/Frame.cpp: (WebCore::Frame::Frame): Call XMLNSNames::init().
* dom/Attr.cpp: (WebCore::Attr::setPrefix):
* dom/Document.cpp:
(WebCore::Document::hasPrefixNamespaceMismatch):
(WebCore::Document::createAttributeNS):
* dom/Node.cpp:
(WebCore::Node::checkSetPrefix):
(WebCore::Node::isDefaultNamespace):
(WebCore::Node::lookupNamespaceURI):
(WebCore::Node::lookupNamespacePrefix):
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
(WebCore::handleElementNamespaces):
* editing/markup.cpp:
(WebCore::shouldAddNamespaceAttr):
(WebCore::appendNamespace):
* xml/XPathStep.cpp:
(WebCore::XPath::nodeMatchesBasicTest):
(WebCore::XPath::Step::nodesInAxis):
Use the new constants.
* Android.derived.mk:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
Added the new files to projects.
2010-01-18 Anders Carlsson <andersca@apple.com>
Fix !ENABLE(3D_CANVAS) build.
* rendering/RenderLayerBacking.cpp:
(WebCore::is3DCanvas):
2010-01-18 Timothy Hatcher <timothy@apple.com>
Adjust the scroll position when doing a full page zoom, so the content
stays in relatively the same position.
<rdar://problem/6150099> Zooming should keep the page content in the same place
Reviewed by Oliver Hunt.
* page/Frame.cpp:
(WebCore::Frame::setZoomFactor): Apply the zoom percent difference to
the scroll position, only when doing a full page zoom.
2010-01-18 Adam Roben <aroben@apple.com>
Add SecurityOrigin::{set,is}DomainRelaxationForbiddenForURLScheme and
respect it
WebCore part of fixing <http://webkit.org/b/33806>
<rdar://problem/7552837> Would like API to disallow setting of
document.domain for pages with certain URL schemes
Test: http/tests/security/setDomainRelaxationForbiddenForURLScheme.html
Reviewed by Sam Weinig.
* WebCore.base.exp: Export
SecurityOrigin::setDomainRelaxationForbiddenForURLScheme.
* dom/Document.cpp:
(WebCore::Document::setDomain): If domain relaxation is forbidden for
our security origin's scheme, throw an exception and don't allow
the domain to be set.
* page/SecurityOrigin.cpp:
(WebCore::schemesForbiddenFromDomainRelaxation): Added. Returns a
global set of schemes.
(WebCore::SecurityOrigin::setDomainRelaxationForbiddenForURLScheme):
Add or remove the scheme to schemesForbiddenFromDomainRelaxation, as
appropriate.
(WebCore::SecurityOrigin::isDomainRelaxationForbiddenForURLScheme):
Returns true if the scheme is in schemesForbiddenFromDomainRelaxation.
* page/SecurityOrigin.h: Added
{set,is}DomainRelaxationForbiddenForURLScheme.
2010-01-18 Dan Bernstein <mitz@apple.com>
Address review comments on the last change
* rendering/TrailingFloatsRootInlineBox.h:
(WebCore::TrailingFloatsRootInlineBox::TrailingFloatsRootInlineBox):
2010-01-18 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/6892207> REGRESSION (Safari 4): Menus at sciencedirect.com push the main article context down the page
<rdar://problem/7546035> Second right floated image misplacment
https://bugs.webkit.org/show_bug.cgi?id=33245
Test: fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2.html
When the last line of a block contains a line break and there are floats
after the line break, it is incorrect to put those floats in the last line’s
floats vector (along with floats from before the break). Instead, create
an additional line box (a TrailingFloatsRootInlineBox) and put those floats
in its floats vector.
* WebCore.vcproj/WebCore.vcproj: Added TrailingFloatsRootInlineBox.h
* WebCore.xcodeproj/project.pbxproj: Ditto.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::markLinesDirtyInVerticalRange): Added an optional
parameter, which is the highest line to dirty.
* rendering/RenderBlock.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutInlineChildren): Create a TrailingFloatsRootInlineBox
for the floats occurring after the line break on the last line.
(WebCore::RenderBlock::determineStartPosition): Prevent dirtying of lines
above the first dirty line.
* rendering/TrailingFloatsRootInlineBox.h: Added.
(WebCore::TrailingFloatsRootInlineBox::TrailingFloatsRootInlineBox): Call
setHasVirtualHeight().
(WebCore::TrailingFloatsRootInlineBox::virtualHeight): Return 0.
2010-01-18 Gavin Barraclough <barraclough@apple.com>
Reviewed by NOBODY (build fix).
Eeeep! reverting r53416 & r53417, more to be done to fix windows.
* WebCore.base.exp:
* platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::openDatabase):
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::prepare):
* platform/sql/SQLiteStatement.h:
* platform/sql/chromium/SQLiteFileSystemChromium.cpp:
(WebCore::SQLiteFileSystem::openDatabase):
* platform/text/PlatformString.h:
* platform/text/String.cpp:
(WebCore::String::charactersWithNullTermination):
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::operator new):
(WebCore::StringImpl::operator delete):
(WebCore::StringImpl::StringImpl):
(WebCore::StringImpl::~StringImpl):
(WebCore::StringImpl::create):
(WebCore::StringImpl::createWithTerminatingNullCharacter):
(WebCore::StringImpl::crossThreadString):
(WebCore::StringImpl::sharedBuffer):
* platform/text/StringImpl.h:
(WebCore::StringImpl::hasTerminatingNullCharacter):
(WebCore::StringImpl::inTable):
(WebCore::StringImpl::setInTable):
(WebCore::StringImpl::):
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::createGlobalData):
* storage/OriginUsageRecord.cpp:
(WebCore::OriginUsageRecord::addDatabase):
(WebCore::OriginUsageRecord::markDatabase):
2010-01-18 Gavin Barraclough <barraclough@apple.com>
Reviewed by NOBODY (windows build fix).
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::createGlobalData):
2010-01-15 Gavin Barraclough <barraclough@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=33731
Remove uses of PtrAndFlags from WebCore::StringImpl.
These break the OS X Leaks tool. Move the management of null-terminated copies
out from StringImpl to String, and use a bit stolen from the refCount to hold the
'InTable' flag.
* platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::openDatabase):
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::prepare):
* platform/sql/SQLiteStatement.h:
* platform/text/PlatformString.h:
* platform/text/String.cpp:
(WebCore::String::copyWithNullTermination):
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::StringImpl):
(WebCore::StringImpl::~StringImpl):
(WebCore::StringImpl::create):
(WebCore::StringImpl::crossThreadString):
(WebCore::StringImpl::sharedBuffer):
* platform/text/StringImpl.h:
(WebCore::StringImpl::inTable):
(WebCore::StringImpl::setInTable):
2010-01-18 Chris Marrin <cmarrin@apple.com>
Reviewed by Darin Adler.
Made root compositing layer scroll rather than scroll parent.
https://bugs.webkit.org/show_bug.cgi?id=32279
There's some general cleanup here so the frames, bounds and
positions of all the associated layers are correct.
I also changed API of setScrollFrame to use an IntRect.
* platform/graphics/win/WKCACFLayerRenderer.cpp:
(WebCore::WKCACFLayerRenderer::WKCACFLayerRenderer):
(WebCore::WKCACFLayerRenderer::setScrollFrame):
(WebCore::WKCACFLayerRenderer::setRootChildLayer):
(WebCore::WKCACFLayerRenderer::createRenderer):
(WebCore::WKCACFLayerRenderer::resize):
* platform/graphics/win/WKCACFLayerRenderer.h:
2010-01-18 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: Timeline panel scrolling speed can be 2 times faster.
https://bugs.webkit.org/show_bug.cgi?id=33794
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._scheduleRefresh):
(WebInspector.TimelinePanel.prototype._refreshRecords):
(WebInspector.TimelineCalculator):
(WebInspector.TimelineCalculator.prototype.calculateWindow):
(WebInspector.TimelineCalculator.prototype.reset):
(WebInspector.TimelineCalculator.prototype.updateBoundaries):
(WebInspector.TimelineRecordGraphRow.prototype.update):
2010-01-18 Steve Block <steveblock@google.com>
Reviewed by Adam Barth.
Moves JSC-specific version of JavaInstance from bridge/jni/jni_instance to bridge/jni/jsc/JavaInstanceJSC
https://bugs.webkit.org/show_bug.cgi?id=33672
No new tests, refactoring only.
* Android.jscbindings.mk: Modified. Removed jni_instance.cpp and added JavaInstanceJSC.cpp
* GNUmakefile.am: Modified. Removed jni_instance.h and added JavaInstanceJSC.h
* WebCore.xcodeproj/project.pbxproj: Modified. Removed jni_instance.[cpp|h] and added JavaInstanceJSC.[cpp|h]
* bindings/js/ScriptControllerMac.mm: Modified. Includes JavaInstanceJSC.h
* bridge/jni/jni_instance.cpp: Removed.
* bridge/jni/jni_instance.h: Removed.
* bridge/jni/jni_runtime.h: Modified. Includes JavaInstanceJSC.h
* bridge/jni/jsc/JavaInstanceJSC.cpp: Copied from WebCore/bridge/jni/jni_instance.cpp.
* bridge/jni/jsc/JavaInstanceJSC.h: Copied from WebCore/bridge/jni/jni_instance.h.
2010-01-18 Peter Kasting <pkasting@google.com>
Reviewed by Adam Barth.
Simplify image decoders slightly by using OwnPtr instead of raw pointers
and eliminating a basically-useless wrapper class in the GIF decoder.
https://bugs.webkit.org/show_bug.cgi?id=28751
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::ImageDecoderQt):
(WebCore::ImageDecoderQt::~ImageDecoderQt):
(WebCore::ImageDecoderQt::setData):
(WebCore::ImageDecoderQt::internalReadImage):
(WebCore::ImageDecoderQt::failRead):
* platform/graphics/qt/ImageDecoderQt.h:
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::GIFImageDecoder):
(WebCore::GIFImageDecoder::~GIFImageDecoder):
(WebCore::GIFImageDecoder::setData):
(WebCore::GIFImageDecoder::frameCount):
(WebCore::GIFImageDecoder::repetitionCount):
(WebCore::GIFImageDecoder::decode):
(WebCore::GIFImageDecoder::decodingHalted):
(WebCore::GIFImageDecoder::initFrameBuffer):
(WebCore::GIFImageDecoder::haveDecodedRow):
(WebCore::GIFImageDecoder::gifComplete):
* platform/image-decoders/gif/GIFImageDecoder.h:
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageDecoder::JPEGImageDecoder):
(WebCore::JPEGImageDecoder::~JPEGImageDecoder):
(WebCore::JPEGImageDecoder::setData):
(WebCore::JPEGImageDecoder::decode):
* platform/image-decoders/jpeg/JPEGImageDecoder.h:
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::PNGImageDecoder):
(WebCore::PNGImageDecoder::~PNGImageDecoder):
(WebCore::PNGImageDecoder::setData):
(WebCore::PNGImageDecoder::decode):
(WebCore::PNGImageDecoder::headerAvailable):
(WebCore::PNGImageDecoder::rowAvailable):
* platform/image-decoders/png/PNGImageDecoder.h:
2010-01-18 Daniel Cheng <dcheng@google.com>
Reviewed by Adam Roben.
DataTransfer interface broken on Windows--types member is always
undefined, and getData() does not work.
https://bugs.webkit.org/show_bug.cgi?id=30527
* platform/win/ClipboardWin.cpp:
(WebCore::addMimeTypesForFormat): pass FORMATETC as a const ref.
(WebCore::ClipboardWin::types): fix calls to IEnumFORMATETC.
(WebCore::ClipboardWin::hasData): fix calls to IEnumFORMATETC.
2010-01-18 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Timothy Hatcher.
Don't show Profiles welcome screen on panel switch,
if a profile view is shown.
https://bugs.webkit.org/show_bug.cgi?id=33799
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype.show):
2010-01-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Force qmake to generate a single makefile for DerivedSources.pro
* DerivedSources.pro:
2010-01-18 Jonathan Dixon <joth@chromium.org>
Reviewed by Adam Barth.
Add support for enabling navigator.geolocation at runtime in the V8 bindings.
Adds the [EnabledAtRuntime] modifier to the navigator IDL.
https://bugs.webkit.org/show_bug.cgi?id=33467
* WebCore.gypi:
* bindings/v8/RuntimeEnabledFeatures.cpp:
* bindings/v8/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setGeolocationEnabled):
(WebCore::RuntimeEnabledFeatures::geolocationEnabled):
* bindings/v8/custom/V8NavigatorCustom.cpp: Added.
(WebCore::V8Navigator::GeolocationEnabled):
* page/Navigator.cpp:
(WebCore::Navigator::geolocation):
* page/Navigator.idl:
2010-01-18 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Improve Resources panel performance for lots of resources
DOM properties are extracted into const's, comparisons are faster.
https://bugs.webkit.org/show_bug.cgi?id=33790
* inspector/front-end/AbstractTimelinePanel.js:
(WebInspector.AbstractTimelinePanel.prototype._updateDividersLabelBarPosition):
* inspector/front-end/Resource.js:
(WebInspector.Resource.CompareByStartTime):
(WebInspector.Resource.CompareByResponseReceivedTime):
(WebInspector.Resource.CompareByEndTime):
(WebInspector.Resource.CompareByDuration):
(WebInspector.Resource.CompareByLatency):
(WebInspector.Resource.CompareBySize):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourceGraph.prototype.refreshLabelPositions):
2010-01-18 Daniel Bates <dbates@rim.com>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=33726
Following up on changes made with respect to bug #33498, we should
fix the the style errors found by the style bot.
Moreover, this fixes all the style errors found by check-webkit-style
except the use of an underline in the variable name _niflags. We should
fix this in a second run through for all the other variables names that
contain an underline because there are many.
No functionality was changed. So, no new tests.
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::create):
(WebCore::SVGRenderStyle::copy):
(WebCore::SVGRenderStyle::operator!=):
(WebCore::SVGRenderStyle::hasStroke):
(WebCore::SVGRenderStyle::hasFill):
(WebCore::SVGRenderStyle::InheritedFlags::operator==):
(WebCore::SVGRenderStyle::InheritedFlags::operator!=):
(WebCore::SVGRenderStyle::NonInheritedFlags::operator==):
(WebCore::SVGRenderStyle::NonInheritedFlags::operator!=):
(WebCore::SVGRenderStyle::NonInheritedFlags::):
(WebCore::SVGRenderStyle::):
(WebCore::SVGRenderStyle::setBitDefaults):
2010-01-18 Andrei Popescu <andreip@google.com>
Reviewed by Adam Barth.
[Android] DOMWrapperMap::Visitor needs virtual destructor
https://bugs.webkit.org/show_bug.cgi?id=33675
Add protected virtual dtor to DOMWrapperMap::Visitor. See bug for further discussion.
No new tests needed, functionality not changed.
* bindings/v8/V8DOMMap.h:
(WebCore::DOMWrapperMap::Visitor::~Visitor): Added.
2010-01-18 Simon Hausmann <simon.hausmann@nokia.com>
Unreviewed Symbian build fix.
If we don't link with def files, then we have to pass EXPORTUNFROZEN,
so that the build system still creates the .dso files in
release/armv5/lib and we can actually link against the created QtWebKit
dlls.
Thanks Iain for the help!
* WebCore.pro:
2010-01-17 Srinidhi Shreedhara <srinidhi.shreedhara@nokia.com>
Reviewed by Simon Hausmann.
[Qt] [Symbian] SetWindow call in npapi plugin does not happen when the cooridnates are negative
https://bugs.webkit.org/show_bug.cgi?id=33573
* plugins/symbian/PluginViewSymbian.cpp:
(WebCore::PluginView::setNPWindowIfNeeded): Remove tests for negative
coordinates for early return.
2010-01-17 Oliver Hunt <oliver@apple.com>
Reviewed by Dan Bernstein.
REGRESSION (r52449): SVG mask wrongly clipped when not at origin for recent nightly build
https://bugs.webkit.org/show_bug.cgi?id=33782
Test: svg/custom/transformedMaskFails.svg
When computing the bounds for elements in a mask, we iterate through
all of our children requesting their repaint bounds using
repaintRectInLocalCoordinates(), but we were not converting that
rect into our own coordinate system, thus leading to an incorrect
repaint rect. This patch simply adds the missing localToParent
transform.
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::drawMaskerContent):
2010-01-17 Maciej Stachowiak <mjs@apple.com>
Reviewed by Dan Bernstein.
Avoid slow access to AX objects on attribute access when AX is off
https://bugs.webkit.org/show_bug.cgi?id=33779
~4% Dromaeo attributes test speedup
* dom/Element.cpp:
(WebCore::Element::updateAfterAttributeChanged): Don't do expensive lookup of
AX object cache unless accessibility is on and an AX-related attribute is
changed.
2010-01-17 Kevin Watters <kevinwatters@gmail.com>
Reviewed by Kevin Ollivier.
[wx] On Win and GTK, we need to manually apply the transforms when falling back
to GDI / GDK drawing, but this is not needed on Mac since we always use CG there.
https://bugs.webkit.org/show_bug.cgi?id=33730
* platform/wx/RenderThemeWx.cpp:
(WebCore::RenderThemeWx::paintButton):
2010-01-17 Martin Robinson <martin.james.robinson@gmail.com>
Reviewed by Gustavo Noronha Silva.
[GTK] GtkWebKit incompatible with rgba colormaps
https://bugs.webkit.org/show_bug.cgi?id=20736
Fix GTK theme rendering onto drawables with RGBA colormaps. Now
each type of colormap has its own collection of GtkWidgets.
This fix does not introduce any functionality changes, so does not
includes new tests.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::RenderThemeGtk):
(WebCore::RenderThemeGtk::~RenderThemeGtk):
(WebCore::RenderThemeGtk::partsForDrawable):
(WebCore::adjustMozillaStyle):
(WebCore::setMozillaState):
(WebCore::paintMozillaGtkWidget):
(WebCore::setToggleSize):
(WebCore::RenderThemeGtk::setCheckboxSize):
(WebCore::RenderThemeGtk::paintCheckbox):
(WebCore::RenderThemeGtk::setRadioSize):
(WebCore::RenderThemeGtk::paintRadio):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::RenderThemeGtk::adjustMenuListStyle):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::adjustTextFieldStyle):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
(WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
* platform/gtk/RenderThemeGtk.h:
* platform/gtk/gtk2drawing.c:
(moz_gtk_use_theme_parts):
(ensure_window_widget):
(setup_widget_prototype):
(ensure_button_widget):
(ensure_hpaned_widget):
(ensure_vpaned_widget):
(ensure_toggle_button_widget):
(ensure_button_arrow_widget):
(ensure_checkbox_widget):
(ensure_radiobutton_widget):
(ensure_scrollbar_widget):
(ensure_spin_widget):
(ensure_scale_widget):
(ensure_entry_widget):
(moz_gtk_get_combo_box_inner_button):
(moz_gtk_get_combo_box_button_inner_widgets):
(ensure_combo_box_widgets):
(moz_gtk_get_combo_box_entry_inner_widgets):
(moz_gtk_get_combo_box_entry_arrow):
(ensure_combo_box_entry_widgets):
(ensure_handlebox_widget):
(ensure_toolbar_widget):
(ensure_toolbar_separator_widget):
(ensure_tooltip_widget):
(ensure_tab_widget):
(ensure_progress_widget):
(ensure_statusbar_widget):
(ensure_frame_widget):
(ensure_menu_bar_widget):
(ensure_menu_bar_item_widget):
(ensure_menu_popup_widget):
(ensure_menu_item_widget):
(ensure_image_menu_item_widget):
(ensure_menu_separator_widget):
(ensure_check_menu_item_widget):
(ensure_tree_view_widget):
(ensure_tree_header_cell_widget):
(ensure_expander_widget):
(ensure_scrolled_window_widget):
(moz_gtk_checkbox_get_metrics):
(moz_gtk_radio_get_metrics):
(moz_gtk_splitter_get_metrics):
(moz_gtk_toggle_paint):
(moz_gtk_scrollbar_button_paint):
(moz_gtk_scrollbar_trough_paint):
(moz_gtk_scrollbar_thumb_paint):
(moz_gtk_spin_paint):
(moz_gtk_spin_updown_paint):
(moz_gtk_scale_paint):
(moz_gtk_scale_thumb_paint):
(moz_gtk_gripper_paint):
(moz_gtk_hpaned_paint):
(moz_gtk_vpaned_paint):
(moz_gtk_caret_paint):
(moz_gtk_treeview_paint):
(moz_gtk_tree_header_cell_paint):
(moz_gtk_tree_header_sort_arrow_paint):
(moz_gtk_treeview_expander_paint):
(moz_gtk_expander_paint):
(moz_gtk_combo_box_paint):
(moz_gtk_downarrow_paint):
(moz_gtk_combo_box_entry_button_paint):
(moz_gtk_container_paint):
(moz_gtk_toggle_label_paint):
(moz_gtk_toolbar_paint):
(moz_gtk_toolbar_separator_paint):
(moz_gtk_tooltip_paint):
(moz_gtk_resizer_paint):
(moz_gtk_frame_paint):
(moz_gtk_progressbar_paint):
(moz_gtk_progress_chunk_paint):
(moz_gtk_get_tab_thickness):
(moz_gtk_tab_paint):
(moz_gtk_tabpanels_paint):
(moz_gtk_tab_scroll_arrow_paint):
(moz_gtk_menu_bar_paint):
(moz_gtk_menu_popup_paint):
(moz_gtk_menu_separator_paint):
(moz_gtk_menu_item_paint):
(moz_gtk_menu_arrow_paint):
(moz_gtk_check_menu_item_paint):
(moz_gtk_window_paint):
(moz_gtk_get_widget_border):
(moz_gtk_get_combo_box_entry_button_size):
(moz_gtk_get_tab_scroll_arrow_size):
(moz_gtk_get_downarrow_size):
(moz_gtk_get_toolbar_separator_width):
(moz_gtk_get_expander_size):
(moz_gtk_get_treeview_expander_size):
(moz_gtk_get_menu_separator_height):
(moz_gtk_get_scalethumb_metrics):
(moz_gtk_get_scrollbar_metrics):
(moz_gtk_images_in_menus):
(moz_gtk_widget_paint):
(moz_gtk_get_scrollbar_widget):
(moz_gtk_shutdown):
(moz_gtk_destroy_theme_parts_widgets):
* platform/gtk/gtkdrawing.h:
2010-01-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver Hunt.
Cache JS string values made from DOM strings (Dromaeo speedup)
https://bugs.webkit.org/show_bug.cgi?id=33768
<rdar://problem/7353576>
Added a new cache for JSString values that are created from Strings or AtomicStrings
in the DOM. It's common for the same string to be retrieved from the DOM repeatedly,
and it is wasteful to make a new JS-level string value every time.
The string cache is per-world, and thus thread-safe and not a
vector for accidental information exchange.
~30% speedup on Dromaeo Attributes test, also substantially helps other Dromaeo DOM tests.
* bindings/js/JSDOMBinding.cpp:
(WebCore::jsStringCache): Helper function to get the string cache for the current world.
(WebCore::jsString): Some new overloads including the caching version.
(WebCore::stringWrapperDestroyed): Finalizer callback - remove from relevant caches.
* bindings/js/JSDOMBinding.h:
(WebCore::jsString): Prototype new overloads (and define a few inline).
* bindings/js/JSJavaScriptCallFrameCustom.cpp:
(WebCore::JSJavaScriptCallFrame::type): Explicitly make a UString.
* bindings/js/ScriptFunctionCall.cpp:
(WebCore::ScriptFunctionCall::appendArgument): Ditto.
* WebCore.base.exp: Add new JSString overloads that WebCore gets to see.
2010-01-16 Oliver Hunt <oliver@apple.com>
Reviewed by Nikolas Zimmermann.
SVG Markers are getting culled incorrectly
https://bugs.webkit.org/show_bug.cgi?id=33767
Use applyTransformToPaintInfo to transform the paintInfo, otherwise
the paint rect is not updated leading to incorrect culling.
* svg/graphics/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::draw):
2010-01-15 John Sullivan <sullivan@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=33751 and <rdar://problem/7538330>
Zip code field is misidentified as street address because id attribute isn't checked.
Reviewed by Darin Adler
No new tests. I believe this code is used only by Safari AutoFill, but in any case
it does not affect page rendering or anything else at the WebCore/WebKit level.
* page/Frame.cpp:
(WebCore::matchLabelsAgainstString):
New function, split out from matchLabelsAgainstElement.
(WebCore::Frame::matchLabelsAgainstElement):
Now calls matchLabelsAgainstString for the id attribute if no match is found for the name attribute.
* page/mac/FrameMac.mm:
(WebCore::matchLabelsAgainstString):
Same as above. This is a parallel copy of the function using Mac-specific data structures.
(WebCore::Frame::matchLabelsAgainstElement):
Ditto.
2010-01-16 Timothy Hatcher <timothy@apple.com>
Use String.trim() instead of a regex in the Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=33765
Reviewed by George Staikos.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.performSearch): Use .trim().
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.prototype.applyExpression): Ditto.
* inspector/front-end/ProfileView.js:
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._evalSelectionInCallFrame): Ditto.
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertyTreeElement.prototype): Ditto.
* inspector/front-end/utilities.js:
(String.prototype.trimLeadingWhitespace): Removed.
(String.prototype.trimTrailingWhitespace): Removed.
(String.prototype.trimWhitespace): Removed.
2010-01-16 Oliver Hunt <oliver@apple.com>
Reviewed by Nikolas Zimmermann.
Copying TransformationMatrix consumed a lot of cpu time while scroll with cursor over content
https://bugs.webkit.org/show_bug.cgi?id=33766
Make localToParentTransform return by reference to avid copy overhead.
This is a little gnarly in places as it means we need to be able to
return temporary values in a few implementations, so we have to add
class fields to hold them, heppily the classes that these effect are
sufficiently uncommon for this to be okay.
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::localToParentTransform):
* rendering/RenderForeignObject.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::localTransform):
(WebCore::RenderObject::localToParentTransform):
* rendering/RenderObject.h:
* rendering/RenderPath.cpp:
(WebCore::RenderPath::localToParentTransform):
(WebCore::RenderPath::nodeAtFloatPoint):
* rendering/RenderPath.h:
* rendering/RenderSVGImage.h:
(WebCore::RenderSVGImage::localToParentTransform):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::localToParentTransform):
* rendering/RenderSVGRoot.h:
* rendering/RenderSVGText.h:
(WebCore::RenderSVGText::localToParentTransform):
* rendering/RenderSVGTransformableContainer.cpp:
(WebCore::RenderSVGTransformableContainer::localToParentTransform):
* rendering/RenderSVGTransformableContainer.h:
* rendering/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::localToParentTransform):
* rendering/RenderSVGViewportContainer.h:
2010-01-16 Darin Adler <darin@apple.com>
Reviewed by Oliver Hunt and Alexey Proskuryakov.
ValidityState can hold a stale pointer to control
https://bugs.webkit.org/show_bug.cgi?id=33729
rdar://problem/7545114
Test: fast/forms/ValidityState-removed-control.html
* html/HTMLFormControlElement.h: Use OwnPtr instead of
RefPtr to point to the ValidityState object.
* html/ValidityState.cpp: Use a constant instead of a
macro for the email validation regular expression.
(WebCore::ValidityState::validationMessage): Use
m_control instead of control function; we don't need
a function for this. Also marked const.
(WebCore::ValidityState::typeMismatch): Ditto.
Fixed some minor style problems.
(WebCore::ValidityState::rangeUnderflow): Ditto.
(WebCore::ValidityState::rangeOverflow): Ditto.
(WebCore::ValidityState::stepMismatch): Ditto.
(WebCore::ValidityState::valid): Ditto.
(WebCore::ValidityState::isValidEmailAddress):
Changed local variable names for clarity. Got rid of
an unneeded global variable.
* html/ValidityState.h: Removed RefCounted as a base
class, deriving from Noncopyable instead. Changed
creation to use PassOwnPtr instead of PassRefPtr.
Eliminated unneeded control function. Added ref and
deref functions that forward the reference counting
to the control. Moved constructor here and made it
inline.
2010-01-15 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=33752
Assertion failure when getting a href attribute with prefix
This was due to a temporary change made in 2005 (r9639) - checks in checkSetPrefix were
disabled during introduction of QualifiedName, but never re-enabled.
Tests: fast/dom/bad-href-attribute.html
fast/dom/node-prefix-setter-namespace-exception.html
* dom/Attr.cpp: (WebCore::Attr::setPrefix):
* dom/Element.cpp: (WebCore::Element::setPrefix):
* dom/Node.cpp: (WebCore::Node::checkSetPrefix):
Re-enabled the checks. Also, changed the prefix setter to treat "" as null, matching Firefox
(DOM 3 Core spec says this behavior is implementation defined).
2010-01-16 Brady Eidson <beidson@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7536748> and https://bugs.webkit.org/show_bug.cgi?id=33571
History traversals to a new document do not get the popstate event
State objects now live-on in their HistoryItem indefinitely.
This means any back/forward navigation might result in a popstate event, not just to
pre-existing documents as was previously the case.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::documentDetached): State objects are held beyond Document lifetime.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::begin): If there is a pending state object for this Frame load, pass it
on to the Document after the Document is created.
(WebCore::FrameLoader::transitionToCommitted): If the current history item has a state object,
set it as the FrameLoad's pending state object.
* loader/FrameLoader.h:
* page/Page.cpp:
(WebCore::Page::goToItem): Remove a now-invalid ASSERT.
2010-01-15 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein and Adele Peterson.
Support reflections on composited layers
https://bugs.webkit.org/show_bug.cgi?id=31885
Implement reflections (via -webkit-box-reflect:) on compositing layers.
We add to the GraphicsLayer the notion of having a replica, and being a replicated layer.
The replica layer is not parented in the tree, but referenced by another layer.
RenderLayerBacking sets this up when it finds RenderLayers for reflections.
GraphicsLayerCA implements rendering of replica layers by cloning CA layers,
and copying their properties, including animations and contents. Deep reflections
are supported by a hash of clone layers on each GraphicsLayerCA, indexed by
the path down the tree to each replica instance.
When GraphicsLayerCA properties are changed, in most cases the clones must also
be updated.
Tests: compositing/masks/direct-image-mask.html
compositing/reflections/animation-inside-reflection.html
compositing/reflections/compositing-change-inside-reflection.html
compositing/reflections/deeply-nested-reflections.html
compositing/reflections/masked-reflection-on-composited.html
compositing/reflections/nested-reflection-anchor-point.html
compositing/reflections/nested-reflection-animated.html
compositing/reflections/nested-reflection-mask-change.html
compositing/reflections/nested-reflection-on-overflow.html
compositing/reflections/nested-reflection-opacity.html
compositing/reflections/nested-reflection-size-change.html
compositing/reflections/nested-reflection-transformed.html
compositing/reflections/nested-reflection-transition.html
compositing/reflections/nested-reflection.html
compositing/reflections/reflection-opacity.html
compositing/reflections/reflection-ordering.html
compositing/reflections/reflection-positioning.html
compositing/reflections/transform-inside-reflection.html
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::isReplicated): Returns true when this layer has a replicated layer.
(WebCore::GraphicsLayer::replicatedLayerPosition):
(WebCore::GraphicsLayer::setReplicatedLayerPosition): The position of the replica layer must be
special-cased; we cannot just copy the position of the original.
(WebCore::GraphicsLayer::didDisplay): Method that indicates that the contents of the layer changed,
which gives us a chance to update clone layers.
(WebCore::GraphicsLayer::replicaLayer): reference to the replica layer.
(WebCore::GraphicsLayer::replicatedLayer): reference to the layer that this (replica) layer is replicating.
(WebCore::GraphicsLayer::setReplicatedLayer):
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
(WebCore::GraphicsLayer::setReplicatedByLayer): Hook up a replica with its replicated layer.
(WebCore::GraphicsLayer::dumpProperties):
* platform/graphics/mac/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::primaryLayer): Returns a CALayer, since structural layers may not be WebLayers.
(WebCore::GraphicsLayerCA::isReplicatedRootClone): Given a cloneID (string representation of the path to a clone
down the tree, which is a bitstring of 1 (replica), or 0 (non-replica)), returns true if this ID represents the
root of a replica tree.
(WebCore::GraphicsLayerCA::primaryLayerClones): Returns a pointer to the hash map of clones of the primary layers.
(WebCore::GraphicsLayerCA::ReplicaState::ReplicaState): Small struct used to track original/clone branching
down the tree during recursion, to build cloneID paths.
(WebCore::GraphicsLayerCA::hasCloneLayers): returns true if this layer has clone layers.
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::~GraphicsLayerCA): remove the clone layers.
(WebCore::GraphicsLayerCA::setChildren): call noteSublayersChanged() since we may have to update replicas too.
(WebCore::GraphicsLayerCA::addChild): ditto
(WebCore::GraphicsLayerCA::addChildAtIndex): ditto
(WebCore::GraphicsLayerCA::addChildBelow): ditto
(WebCore::GraphicsLayerCA::addChildAbove): ditto
(WebCore::GraphicsLayerCA::replaceChild): ditto
(WebCore::GraphicsLayerCA::removeFromParent): ditto
(WebCore::GraphicsLayerCA::setMaskLayer): call propagateLayerChangeToReplicas()
(WebCore::GraphicsLayerCA::setReplicatedLayer): note replica changed.
(WebCore::GraphicsLayerCA::setReplicatedByLayer): ditto
(WebCore::GraphicsLayerCA::moveOrCopyAllAnimationsForProperty): Enhanced to allow moving or copying animations.
(WebCore::GraphicsLayerCA::moveOrCopyAnimationsForProperty): Ditto.
(WebCore::GraphicsLayerCA::setContentsToImage): call noteSublayersChanged()
(WebCore::GraphicsLayerCA::setContentsToVideo): call noteSublayersChanged()
(WebCore::GraphicsLayerCA::didDisplay): here is our chance to copy updated contents to clone layers.
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): pre-order commit, for things that need to be
committed before we recurse on children.
(WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers): post-order commit, for things that need to be
committed after we recurse on children, like clones.
(WebCore::GraphicsLayerCA::updateLayerNames): New method to match the other 'update' methods.
(WebCore::GraphicsLayerCA::updateSublayerList): Insert replica layers into the hierarchy.
(WebCore::GraphicsLayerCA::updateLayerPosition): update clones.
(WebCore::GraphicsLayerCA::updateLayerSize): ditto
(WebCore::GraphicsLayerCA::updateAnchorPoint): ditto
(WebCore::GraphicsLayerCA::updateTransform): ditto
(WebCore::GraphicsLayerCA::updateChildrenTransform): ditto
(WebCore::GraphicsLayerCA::updateMasksToBounds): ditto
(WebCore::GraphicsLayerCA::updateContentsOpaque): ditto
(WebCore::GraphicsLayerCA::updateBackfaceVisibility): ditto
(WebCore::GraphicsLayerCA::updateStructuralLayer): call ensureStructuralLayer()
(WebCore::moveAnimation): utility to move a CAAnimation from one layer to another.
(WebCore::GraphicsLayerCA::ensureStructuralLayer): refactored code which creates enclosing CALayers for reflection
flattening, or CATransformLayers for preserve-3d.
(WebCore::GraphicsLayerCA::structuralLayerPurpose): indicates why we need a structural layer.
(WebCore::GraphicsLayerCA::updateLayerDrawsContent): update clones
(WebCore::GraphicsLayerCA::updateContentsImage): ditto
(WebCore::GraphicsLayerCA::updateContentsRect): ditto
(WebCore::GraphicsLayerCA::updateMaskLayer): ditto
(WebCore::GraphicsLayerCA::updateReplicatedLayers): This is where we ask for the tree of layers for the replica
and its children, and attach them as sublayers.
(WebCore::GraphicsLayerCA::ReplicaState::cloneID): Build a bitstring from the array of original/clone values; this
string serves to identify clones in the hash map.
(WebCore::GraphicsLayerCA::replicatedLayerRoot): Request the tree of clone layers, set its position and transform,
and return it.
(WebCore::GraphicsLayerCA::setAnimationOnLayer): update clones
(WebCore::GraphicsLayerCA::removeAnimationFromLayer): ditto
(WebCore::GraphicsLayerCA::pauseAnimationOnLayer): ditto
(WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D): udpate sublayers.
(WebCore::GraphicsLayerCA::suspendAnimations): update clones.
(WebCore::GraphicsLayerCA::resumeAnimations): ditto
(WebCore::GraphicsLayerCA::animatedLayerClones): return the hash map for clones of the appropriate layer for the given property.
(WebCore::GraphicsLayerCA::ensureCloneLayers): create and return clones for the CALayers for this layer.
(WebCore::GraphicsLayerCA::removeCloneLayers): clear out the clone layers.
(WebCore::GraphicsLayerCA::positionForCloneRootLayer): the root of a clonal subtree needs its position and transform to be special-cased,
since it doesn't just copy those properties from the original.
(WebCore::GraphicsLayerCA::propagateLayerChangeToReplicas): push the change flags onto the replica.
(WebCore::GraphicsLayerCA::fetchCloneLayers): recurse down sublayers, creating clones of the CALayers along the way, and returning
the root of the clone tree.
(WebCore::copyAnimation): utility to copy an animation from one layer to another. Animations can be shared between layers.
(WebCore::GraphicsLayerCA::cloneLayer): utility to clone a CALayer, copying those properties which GraphicsLayerCA makes use of
(WebCore::GraphicsLayerCA::setOpacityInternal): push opacity changes to clones.
(WebCore::GraphicsLayerCA::updateOpacityOnLayer): ditto
(WebCore::GraphicsLayerCA::noteSublayersChanged): set the ChildrenChanged flag, and proprate changes to the replica, if any.
* platform/graphics/mac/WebLayer.mm:
(-[WebLayer display]): override -display so we know when to update the contents of clone layers
* platform/graphics/mac/WebTiledLayer.mm:
(-[WebTiledLayer display]): ditto.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::isReflection): New method that returns true if the renderer is a replica.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer): initialize m_isReflection
(WebCore::RenderLayer::updateReflectionStyle): call setIsReflection
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createGraphicsLayer): Put a name on the reflection layer.
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Hook up the GraphicsLayers for the reflection.
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Reflection overrides preserve-3d (you have to flatten to reflect).
Also hook up updating the reflection layer geometry, and the relica position.
(WebCore::RenderLayerBacking::paintIntoLayer): We no longer paint the reflection in software.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements): Hook reflection layers into the compositing logic.
(WebCore::RenderLayerCompositor::canAccelerateVideoRendering): No longer have to push video into software if it's reflected.
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Update the bounds of the reflection layer.
(WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): ditto
(WebCore::RenderLayerCompositor::requiresCompositingWhenDescendantsAreCompositing): a compositing descendant forces
a reflection ancestor to composite now.
(WebCore::RenderLayerBacking::containsPaintedContent): Reflection layers don't paint anything.
(WebCore::RenderLayerBacking::isDirectlyCompositedImage): No need to fall out of direct compositing mode
for masks or reflections any more.
(WebCore::RenderLayerBacking::paintIntoLayer): No need to paint the reflection manually now.
* rendering/RenderObject.h:
(WebCore::RenderObject::isReplica):
* rendering/RenderReplica.h:
(WebCore::RenderReplica::isReplica):
New method used to determine if a render is a replica.
2010-01-15 Carol Szabo <carol.szabo@nokia.com>
Reviewed by Darin Adler.
CSS2.1 Counters not updated when new elements are inserted in the DOM.
https://bugs.webkit.org/show_bug.cgi?id=32884
Test: fast/css/counters/adding-nodes.html
* rendering/CounterNode.cpp:
(WebCore::CounterNode::insertAfter):
Modified to handle the addition of nodes with children. Needed when formerly
root nodes become descendants of a new node.
* rendering/RenderCounter.cpp:
(WebCore::makeCounterNode):
Changed to handle the case when root counter nodes lose their root
status as a result of a new root counter node creation.
(WebCore::destroyCounterNodeWithoutMapRemoval):
Refactored more code into destroyCounterNodeChildren and renamed the
function according to its new action.
(WebCore::RenderCounter::destroyCounterNodes):
Simplified to share more code with the new destroyCounterNode.
(WebCore::RenderCounter::destroyCounterNode):
Added to allow for selective counterNode destruction.
(WebCore::RenderCounter::rendererSubtreeAttached):
Added to refresh counter values in response to DOM changes.
For renderers with no attached counters the execution time of this
function cannot be discerned in comparison with the time needed to
add a node or change the style of a node.
(WebCore::updateCounters):
Helper function for rendererSubtreeAttached. Updates the counters
attached to a Renderer in response to the renderer or its ancestors
being attached to the renderer tree.
* rendering/RenderCounter.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::addChild):
Changed to update counter values if needed.
2010-01-15 Alejandro G. Castro <alex@igalia.com>
Reviewed by Xan Lopez.
Original patch by David Ronis <david.ronis@mcgill.ca>
Upgrade 1.1.17->1.1.18 fails: GTK_WIDGET_TOPLEVEL' was not declared in this scope
https://bugs.webkit.org/show_bug.cgi?id=33486
Deprecated symbols replaced for gtk+ versions over 2.18.
* platform/gtk/PlatformScreenGtk.cpp:
(WebCore::getVisual):
(WebCore::screenRect):
2010-01-15 Oliver Hunt <oliver@apple.com>
Reviewed by Sam Weinig.
Bad DOM performance in large SVG files
https://bugs.webkit.org/show_bug.cgi?id=30055
Improve the performance of the early culling check by avoiding save/restore
of graphics state in culled case.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
2010-01-15 Eric Seidel <eric@webkit.org>
No review, rolling out r53344.
http://trac.webkit.org/changeset/53344
https://bugs.webkit.org/show_bug.cgi?id=32920
Broke the Chromium Mac builder.
* WebCore.gypi:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/SerializedScriptValue.cpp: Removed.
* bindings/v8/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::release):
(WebCore::SerializedScriptValue::toString):
(WebCore::SerializedScriptValue::SerializedScriptValue):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::postMessageCallback):
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
(WebCore::V8DedicatedWorkerContext::postMessageCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallback):
(WebCore::V8History::replaceStateCallback):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::initMessageEventCallback):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::V8MessagePort::postMessageCallback):
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::initPopStateEventCallback):
(WebCore::V8PopStateEvent::stateAccessorGetter):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::V8Worker::postMessageCallback):
2010-01-15 Darin Fisher <darin@chromium.org>
Reviewed by Brady Eidson.
history.length does not return number of elements in history list
https://bugs.webkit.org/show_bug.cgi?id=24472
Test: fast/history/history-length.html
* page/Page.cpp:
(WebCore::Page::getHistoryLength):
2010-01-15 Dmitry Titov <dimich@chromium.org>
Reviewed by Darin Adler.
Need to ensure that Document::postTask does not provide the Task with a dangling pointer to destroyed Document
https://bugs.webkit.org/show_bug.cgi?id=31633
Don't see a way to add test for it, we don't have a way to reproduce the issue currently.
* dom/Document.cpp:
(WebCore::DocumentWeakReference::DocumentWeakReference):
(WebCore::DocumentWeakReference::document):
(WebCore::DocumentWeakReference::clear):
(WebCore::Document::Document): Create a weak reference to this Document.
(WebCore::Document::~Document): Clear the weak pointer, preventing further execution of tasks.
(WebCore::PerformTaskContext::PerformTaskContext):
(WebCore::performTask): Check if the documentWeakReference is cleared by Document destructor - in this case do not run the task.
(WebCore::Document::postTask):
* dom/Document.h:
(WebCore::DocumentWeakReference::create):
2010-01-15 Vitaly Repeshko <vitalyr@chromium.org>
Reviewed by David Levin.
[V8] Support SerializedScriptValue.
https://bugs.webkit.org/show_bug.cgi?id=32920
http://crbug.com/30620
Initial implementation of SerializedScriptValue which is used to
to create a serialized representation of JavaScript objects. This
representation is needed for structured clones and worker messages.
* WebCore.gypi: Added SerializedScriptValue.cpp.
* bindings/scripts/CodeGeneratorV8.pm: Removed conversion to string before using SerializedScriptValue.
* bindings/v8/SerializedScriptValue.cpp: Added.
(WebCore::):
(WebCore::ZigZag::encode):
(WebCore::ZigZag::decode):
(WebCore::Writer::Writer):
(WebCore::Writer::writeUndefined):
(WebCore::Writer::writeNull):
(WebCore::Writer::writeTrue):
(WebCore::Writer::writeFalse):
(WebCore::Writer::writeString):
(WebCore::Writer::writeInt32):
(WebCore::Writer::writeNumber):
(WebCore::Writer::endComposite):
(WebCore::Writer::data):
(WebCore::Writer::doWriteUint32):
(WebCore::Writer::append):
(WebCore::Writer::ensureSpace):
(WebCore::Writer::fillHole):
(WebCore::Writer::charAt):
(WebCore::Serializer::Serializer):
(WebCore::Serializer::serialize):
(WebCore::Serializer::StateBase::~StateBase):
(WebCore::Serializer::StateBase::nextState):
(WebCore::Serializer::StateBase::setNextState):
(WebCore::Serializer::StateBase::composite):
(WebCore::Serializer::StateBase::StateBase):
(WebCore::Serializer::State::composite):
(WebCore::Serializer::State::tag):
(WebCore::Serializer::State::State):
(WebCore::Serializer::StackCleaner::StackCleaner):
(WebCore::Serializer::StackCleaner::~StackCleaner):
(WebCore::Serializer::ArrayState::ArrayState):
(WebCore::Serializer::ArrayState::done):
(WebCore::Serializer::ArrayState::advance):
(WebCore::Serializer::ObjectState::ObjectState):
(WebCore::Serializer::ObjectState::done):
(WebCore::Serializer::ObjectState::advance):
(WebCore::Serializer::ObjectState::nextProperty):
(WebCore::Serializer::doSerialize):
(WebCore::Serializer::push):
(WebCore::Serializer::top):
(WebCore::Serializer::pop):
(WebCore::Serializer::checkComposite):
(WebCore::Reader::Reader):
(WebCore::Reader::isEof):
(WebCore::Reader::read):
(WebCore::Reader::readTag):
(WebCore::Reader::readString):
(WebCore::Reader::readInt32):
(WebCore::Reader::readNumber):
(WebCore::Reader::doReadUint32):
(WebCore::Deserializer::Deserializer):
(WebCore::Deserializer::deserialize):
(WebCore::Deserializer::doDeserialize):
(WebCore::Deserializer::push):
(WebCore::Deserializer::pop):
(WebCore::Deserializer::stackDepth):
(WebCore::Deserializer::element):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::deserialize):
* bindings/v8/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::createFromWire):
(WebCore::SerializedScriptValue::release):
(WebCore::SerializedScriptValue::toWireString):
Updated uses of SerializedScriptValue:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::postMessageCallback):
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
(WebCore::V8DedicatedWorkerContext::postMessageCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallback):
(WebCore::V8History::replaceStateCallback):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::initMessageEventCallback):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::V8MessagePort::postMessageCallback):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::V8Worker::postMessageCallback):
2010-01-15 Oliver Hunt <oliver@apple.com>
Reviewed by Dirk Schulze.
Bad DOM performance in large SVG files
https://bugs.webkit.org/show_bug.cgi?id=30055
Add an early return when we go to paint a RenderPath that
isn't in the current clip.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::draw):
2010-01-15 Steve Block <steveblock@google.com>
Reviewed by Eric Seidel.
Make Geolocation::suspend/resume public.
https://bugs.webkit.org/show_bug.cgi?id=33679
These were made private in Bug 32499, but are required by Android to be public.
No new tests, build fix only.
* page/Geolocation.cpp: Modified
(WebCore::Geolocation::suspend): Added back in
(WebCore::Geolocation::resume): Added back in
* page/Geolocation.h: Modified. Make suspend and resume public
2010-01-15 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Set pointer cursor when over a breakpoint in the BreakpointsSidebarPane
https://bugs.webkit.org/show_bug.cgi?id=33713
* inspector/front-end/inspector.css:
2010-01-15 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
[V8] Generate more of the custom behaviors that the v8 bindings attach to v8 FunctionTemplates.
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/V8Binding.cpp:
(WebCore::getToStringName):
(WebCore::constructorToString):
(WebCore::getToStringTemplate):
* bindings/v8/V8Binding.h:
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::createNewContext):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate):
2010-01-15 Dimitri Glazkov <dglazkov@chromium.org>
No review, rolling out r53331.
http://trac.webkit.org/changeset/53331
https://bugs.webkit.org/show_bug.cgi?id=30055
Broke fast/borders/svg-as-border-image-3.html. Don't give up,
Oliver! You are really, really close.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
2010-01-15 Oliver Hunt <oliver@apple.com>
Reviewed by Nikolas Zimmermann.
Bad DOM performance in large SVG files
https://bugs.webkit.org/show_bug.cgi?id=30055
Add an early return when we go to paint a RenderPath that
isn't in the current clip.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
2010-01-15 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Antti Koivisto.
Use OS(MAC_OS_X) instead of PLATFORM(MAC) when determining navigator.platform
https://bugs.webkit.org/show_bug.cgi?id=33711
* page/NavigatorBase.cpp:
2010-01-14 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez.
[Gtk] Compiler warning: comparisons like 'X<=Y<=Z' do not have their mathematical meaning
https://bugs.webkit.org/show_bug.cgi?id=33575
Patch from Magnus Boman <captain.magnus@gmail.com>
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mimeTypeCache): fix compiler warnings.
2010-01-14 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Timothy Hatcher.
Add welcome screen to Profiles pane to provide some instructions for novices.
https://bugs.webkit.org/show_bug.cgi?id=19268
* English.lproj/localizedStrings.js:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/ProfileView.js:
(WebInspector.CPUProfileType.prototype.get welcomeMessage):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileType.prototype.get welcomeMessage):
(WebInspector.ProfilesPanel):
(WebInspector.ProfilesPanel.prototype.show):
(WebInspector.ProfilesPanel.prototype.registerProfileType):
(WebInspector.ProfilesPanel.prototype._addWelcomeMessage.messageButtonClicked):
(WebInspector.ProfilesPanel.prototype._addWelcomeMessage):
(WebInspector.ProfilesPanel.prototype.showProfile):
(WebInspector.ProfilesPanel.prototype.closeVisibleView):
(WebInspector.ProfilesPanel.prototype._updateInterface):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/WelcomeView.js: Added.
(WebInspector.WelcomeView):
(WebInspector.WelcomeView.prototype._windowResized):
(WebInspector.WelcomeView.prototype.addMessage):
* inspector/front-end/inspector.css:
* inspector/front-end/inspector.html:
2010-01-13 Girish Ramakrishnan <girish@forwardbias.in>
Reviewed by Simon Hausmann.
[Qt/Win] Flash in QGraphicsWebView does not process hover correctly.
https://bugs.webkit.org/show_bug.cgi?id=33591
Mouse hover does not work as expected with the flash in some sites.
- http://www.bbc.co.uk/ Hover over the map
- http://www.barbie.com/ Hover over the menu items (Games, Videos)
The problem appears to be that Flash queries NPNVnetscapeWindow on every
mouse hover. I do not how flash uses this value but returning 0 when flash
is in windowless mode solves the problem (When using QGraphicsWebView we
inject wmode opaque, thereby putting the plugin in windowless mode).
* plugins/win/PluginViewWin.cpp:
(windowHandleForPageClient):
2010-01-15 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Darin Adler.
Allow custom memory allocation control for Peer class
https://bugs.webkit.org/show_bug.cgi?id=33670
Inherits the following class from Noncopyable because it is
instantiated by 'new' and no need to be copyable:
class name - instantiated at: WebCore/'location'
class Peer - websockets/WebSocketChannelClient.h:38
* websockets/WorkerThreadableWebSocketChannel.h:
2010-01-15 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Oliver Hunt.
[Qt] Allow custom memory allocation control for GraphicsContextPlatformPrivate class
https://bugs.webkit.org/show_bug.cgi?id=33669
Inherits the following class from Noncopyable because it is
instantiated by 'new' and no need to be copyable:
class name - instantiated at: WebCore/'location'
class GraphicsContextPlatformPrivate - platform/graphics/qt/GraphicsContextQt.cpp:254
* platform/graphics/qt/GraphicsContextQt.cpp:
2010-01-14 Darin Fisher <darin@chromium.org>
Reviewed by Brady Eidson.
history.pushState should clear the entire forward history
https://bugs.webkit.org/show_bug.cgi?id=33160
Test: fast/loader/stateobjects/pushstate-clears-forward-history.html
* history/BackForwardList.cpp:
(WebCore::BackForwardList::addItem):
(WebCore::BackForwardList::pushStateItem):
* history/BackForwardList.h:
2010-01-14 Gavin Barraclough <barraclough@apple.com>
Rubber stamped by Sam Weinig.
Make naming & behaviour of UString[Impl] methods more consistent.
https://bugs.webkit.org/show_bug.cgi?id=33702
WebCore change reflecting UString method name change computedHash() -> existingHash().
* platform/text/AtomicString.cpp:
(WebCore::AtomicString::add):
(WebCore::AtomicString::find):
2010-01-14 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/6020083> -webkit-gradient slows down scrolling when page has horizontal scrollbar
https://bugs.webkit.org/show_bug.cgi?id=19650
* platform/graphics/GeneratedImage.cpp:
(WebCore::GeneratedImage::drawPattern): Added call to adjustParametersForTiledDrawing(),
letting the generator substitute the parameters with visually-equivalent values that
are more efficient.
* platform/graphics/Generator.h:
(WebCore::Generator::adjustParametersForTiledDrawing): Added a base class implementation
that does nothing.
* platform/graphics/Gradient.cpp:
(WebCore::Gradient::adjustParametersForTiledDrawing): Added. If the gradient is a horizontal
or vertical linear gradient, changes to use a 1-pixel tall (or wide) tile.
* platform/graphics/Gradient.h:
2010-01-14 Norbert Leser <norbert.leser@nokia.com>
Reviewed by Laszlo Gombos.
Platform Symbian specific:
Added time-based optimization (-Otime) and increased optimization level to -O3,
conditionally for RVCT compiler (for ARM), for increasing performance
(primarily affecting JavaScript execution).
Default settings are -Ospace and -O2.
No new tests needed because no new funtionality is introduced,
only potential regression on existing tests needs to be evaluated.
* WebCore.pro:
2010-01-14 Jungshik Shin <jshin@chromium.org>
Unreviewed, attempted build fix on chromium.
Fix a Chromium build failure due to an unused variable in V8 binding.(part 2)
* bindings/v8/V8Collection.h:
(WebCore::getNamedPropertyOfCollection):
2010-01-14 Jungshik Shin <jshin@chromium.org>
Unreviewed, attempted build fix on chromium.
Fix a Chromium build failure due to an unused variable in V8 binding.
* bindings/v8/V8Collection.h:
(WebCore::getIndexedPropertyOfCollection):
2010-01-14 Peter Kasting <pkasting@google.com>
Unreviewed, attempted build fix.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::haveDecodedRow):
2010-01-14 Peter Kasting <pkasting@google.com>
Reviewed by Adam Barth.
Simplify image decoders by making downsampling functions available at
all times, allowing much duplicated logic to be collapsed.
https://bugs.webkit.org/show_bug.cgi?id=28751
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::setData):
* platform/image-decoders/ImageDecoder.cpp:
(WebCore::ImageDecoder::prepareScaleDataIfNecessary):
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageDecoder::ImageDecoder):
(WebCore::ImageDecoder::scaledSize):
(WebCore::ImageDecoder::setMaxNumPixels):
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::sizeNowAvailable):
(WebCore::GIFImageDecoder::initFrameBuffer):
(WebCore::GIFImageDecoder::haveDecodedRow):
(WebCore::GIFImageDecoder::frameComplete):
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageDecoder::setSize):
(WebCore::JPEGImageDecoder::outputScanlines):
* platform/image-decoders/jpeg/JPEGImageDecoder.h:
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::headerAvailable):
(WebCore::PNGImageDecoder::rowAvailable):
2010-01-14 Jian Li <jianli@chromium.org>
Reviewed by Eric Seidel.
[chromium] Remove obsolete CF related files from gyp build.
https://bugs.webkit.org/show_bug.cgi?id=33002
* WebCore.gypi:
2010-01-14 Peter Kasting <pkasting@google.com>
Reviewed by Adam Barth.
Decoding images to scaled output buffers resulted in garbage for
no-alpha PNGs and CMYK JPEGs.
https://bugs.webkit.org/show_bug.cgi?id=33624
No layout test since I don't have access to a platform that scales the
output buffers.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::convertCMYKToRGBA):
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::rowAvailable):
2010-01-14 Brian Weinstein <bweinstein@apple.com>
Rubber-stamped by Oliver Hunt.
Fix an assertion that was causing test crashes. Filed a bug
about the weirdness that causes this assertion (inconsistencies
between DragOperationMove and DragOperationGeneric).
* dom/Clipboard.cpp:
(WebCore::dragOpFromIEOp):
(WebCore::Clipboard::setDestinationOperation):
2010-01-14 Beth Dakin <bdakin@apple.com>
Reviewed by Sam Weinig.
Fix for https://bugs.webkit.org/show_bug.cgi?id=33498 REGRESSION:
svg/css/circle-in-mask-with-shadow.svg failing pixel tests
-and corresponding-
<rdar://problem/7544176>
This change makes repaintRectInLocalCoordinates return a rect that
is -webkit-svg-shadow-aware.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::repaintRectInLocalCoordinates):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::repaintRectInLocalCoordinates):
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::prepareToRenderSVGContent):
* rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::inflateForShadow):
* rendering/style/SVGRenderStyle.h:
2010-01-14 Brian Weinstein <bweinstein@apple.com>
Reviewed by Adam Roben.
Drag and Drop source/destination code needs cleanup.
<https://bugs.webkit.org/show_bug.cgi?id=33691>.
Cleaned up some Drag and Drop code that deals with getting
source and destination operations, and added some ASSERTS to make
sure we don't get in bad states.
* dom/Clipboard.cpp:
(WebCore::Clipboard::sourceOperation): Make this return the operation itself.
(WebCore::Clipboard::destinationOperation): Ditto.
(WebCore::Clipboard::setSourceOperation): Add an assert to make sure we're valud.
(WebCore::Clipboard::setDestinationOperation): Ditto.
* dom/Clipboard.h:
* page/DragController.cpp:
(WebCore::DragController::tryDHTMLDrag):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
2010-01-14 Timothy Hatcher <timothy@apple.com>
Make the Web Inspector's JavaScript debugger work with isolated worlds.
Console evaluation is not performed in the correct world yet, tracked
by bug http://webkit.org/b/33692.
http://webkit.org/b/33690
Reviewed by Adam Roben.
* bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::restore): Attach the debugger to
any window shell, not just for the debugger world.
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::clearWindowShell): Detach the debugger, and
reattach to all window shells, not just for the debugger world.
(WebCore::ScriptController::initScript): Attach the debugger to
any window shell, not just for the debugger world.
(WebCore::ScriptController::attachDebugger): Changed to loop through
all the window shells and call the new overloaded attachDebugger.
(WebCore::ScriptController::attachDebugger): Added. An overload that
takes a window shell to attach the debugger to. Has most of the
logic from the original attachDebugger.
* bindings/js/ScriptController.h: Added the new attachDebugger.
2010-01-14 Adam Roben <aroben@apple.com>
Make Cache::requestResource return 0 if the resource's load fails
immediately
Fixes <rdar://problem/7543406> <http://webkit.org/b/33687>
window.onload never fires if page contains a <script src=foo> whose
load is cancelled by resource load delegate returning null from
willSendRequest
Test: fast/loader/onload-willSendRequest-null-for-script.html
Reviewed by Dave Hyatt.
* loader/Cache.cpp:
(WebCore::Cache::requestResource): Moved code to handle immediate load
failure out of the "cache is disabled" block so that it will run even
when the cache is enabled.
2010-01-14 Stephen White <senorblanco@chromium.org>
Reviewed by mitz@webkit.org.
Fix for crash with gradient on table cell. Pass the correct
background object down to
RenderBoxModelObject::paintFillLayerExtended(). This also allowed a
rework of the fix to bug 18445 by passing the correct RenderObject
from RenderBox::paintRootBoxDecorations() down to
RenderBoxModelObject::paintFillLayerExtended().
https://bugs.webkit.org/show_bug.cgi?id=28426
Covered by new layout test: LayoutTests/fast/gradients/crash-on-tr.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintFillLayers):
(WebCore::RenderBox::paintFillLayer):
* rendering/RenderBox.h:
Plumb through the correct background RenderObject.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
Use the passed-in background RenderObject (if present) when painting background images. Remove the previous fix for bug 18445.
* rendering/RenderBoxModelObject.h:
Plumb through the correct background RenderObject.
* rendering/RenderTableCell.cpp:
Pass in the correct backgroundObject to paintFillLayers().
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
2010-01-14 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Standardize the rest of the v8 bindings on toNative() wherever possible.
https://bugs.webkit.org/show_bug.cgi?id=33677
* bindings/v8/NPV8Object.cpp:
(v8ObjectToNPObject): Special case for converting NPObjects, since there aren't genereated bindings for them.
* bindings/v8/NPV8Object.h:
* bindings/v8/ScriptController.cpp:
* bindings/v8/V8Collection.cpp:
* bindings/v8/V8Collection.h:
(WebCore::toNativeCollection): Special case for converting V8Collections, since there aren't genereated bindings for them.
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8DOMWrapper.h:
* bindings/v8/V8NPObject.cpp:
* bindings/v8/V8Proxy.cpp:
* bindings/v8/V8SVGPODTypeWrapper.h:
* bindings/v8/WorkerContextExecutionProxy.cpp:
2010-01-14 Evan Stade <estade@chromium.org>
Reviewed by Eric Seidel.
Chromium Linux: don't stretch checkboxes
https://bugs.webkit.org/show_bug.cgi?id=28631
Make the default size for checkboxes/radio buttons also the maximum
size.
Based on patch by Adam Langley.
Test: fast/css/non-standard-checkbox-size.html
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::center):
(WebCore::RenderThemeChromiumSkia::paintCheckbox):
(WebCore::RenderThemeChromiumSkia::setCheckboxSize):
(WebCore::RenderThemeChromiumSkia::paintRadio):
2010-01-14 Brian Weinstein <bweinstein@apple.com>
Reviewed by Adam Roben.
Follow up to <https://bugs.webkit.org/show_bug.cgi?id=33635>.
Now that dropEffect and effectAllowed are guaranteed to not be
null, change null checks into asserts to make sure we are returning
a proper DragOperation value.
* dom/Clipboard.cpp:
(WebCore::Clipboard::sourceOperation): Change null check to assert.
(WebCore::Clipboard::destinationOperation): Ditto.
2010-01-14 Brian Weinstein <bweinstein@apple.com>
Reviewed by Oliver Hunt.
[DnD] effectAllowed and dropEffect can be set to bogus values.
Fixes <https://bugs.webkit.org/show_bug.cgi?id=33635>.
Test to make aure dropEffect and effectAllowed are being set to valid values
when they are being set (list of valid values given by HTML5 specification).
Also, drive by change to initialize dropEffect to none (as described in spec).
Test: fast/events/bogus-dropEffect-effectAllowed.html
* dom/Clipboard.cpp:
(WebCore::Clipboard::Clipboard): Initialize m_dropEffect to "none".
(WebCore::Clipboard::setDropEffect): Check if dropEffect is being set to a valid value.
(WebCore::Clipboard::setEffectAllowed): Check if effectAllowed is being set to a valid value.
2010-01-14 Kent Hansen <kent.hansen@nokia.com>
Reviewed by Darin Adler.
Infinite recursion in RuntimeObjectImp::getOwnPropertyNames()
https://bugs.webkit.org/show_bug.cgi?id=33371
RuntimeObjectImp should not reimplement getPropertyNames();
move the implementation to getOwnPropertyNames().
* bridge/runtime_object.cpp:
(JSC::RuntimeObjectImp::getOwnPropertyNames):
* bridge/runtime_object.h:
2010-01-14 Kwang Yul Seo <skyul@company100.net>
Reviewed by Alexey Proskuryakov.
Add ENABLE(XSLT) guard to TransformSourceLibxslt.cpp
https://bugs.webkit.org/show_bug.cgi?id=33665
TransformSource is available only when ENABLE(XSLT) guard is true.
* dom/TransformSourceLibxslt.cpp:
2010-01-14 Adam Roben <aroben@apple.com>
Treat all synchronous loads equally in FrameLoader::loadSubframe
Only loads of the empty URL or about:blank were being treated as
synchronous loads. But other loads can be synchronous (e.g., when we
receive a null ResourceRequest from requestFromDelegate or when a
policy decision of "ignore" is made). We now treat those loads the
same way we treated empty URLs and about:blank.
Fixes <rdar://problem/7533333> <http://webkit.org/b/33533>
window.onload never fires if page contains an <iframe> with a bad
scheme or whose load is cancelled by returning null from resource load
delegate's willSendRequest
Tests: fast/loader/onload-bad-scheme-for-frame.html
fast/loader/onload-policy-ignore-for-frame.html
fast/loader/onload-willSendRequest-null-for-frame.html
Reviewed by Brady Eidson.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadSubframe):
- Detect synchronous loads by checking the subframe's loader's
state, rather than by checking its URL
- Removed unnecessary call to completed(), since checkCompleted()
will call completed() if needed (the call to completed() was added
first and wasn't removed when the call to checkCompleted() was
added in r8316)
- Added more comments about the strange thing this function does
with the subframe's loader
2010-01-14 Diego Gonzalez <diego.gonzalez@openbossa.org>
Reviewed by Kenneth Christiansen.
[Qt] Missing fileSystemPath() method in Qt KURL implementation
https://bugs.webkit.org/show_bug.cgi?id=33614
No new tests.
* platform/qt/KURLQt.cpp:
(WebCore::KURL::fileSystemPath):
2010-01-13 Alexey Proskuryakov <ap@apple.com>
Reviewed by Brady Eidson.
https://bugs.webkit.org/show_bug.cgi?id=33652
REGRESSION: Frames stop appearing after browsing for a while
<rdar://problem/7308312> REGRESSION: iBench gets slower after several runs
I do not know how not creating renderers for frames could make iBench slower, but it did.
Test: fast/frames/cached-frame-counter.html
* history/CachedFrame.cpp:
(WebCore::CachedFrame::CachedFrame): A frame that's cached is moved away from Page,
so decrement frame count here.
(WebCore::CachedFrame::open): Increase frame count when a frame is restored.
* history/CachedFrame.h: Remove unneeded forward declarations.
* history/CachedPage.h: Ditto.
* history/CachedPage.cpp: (WebCore::CachedPage::restore): Assert that page frame count is
zero prior to restoring a page from b/f cache.
* page/Page.cpp: (WebCore::Page::checkFrameCountConsistency): A debug-only method to
check that frame count stored in Page matches the number of frames in frame tree.
* page/Page.h:
(WebCore::Page::decrementFrameCount): Assert that frame count is positive.
(WebCore::Page::frameCount): Call checkFrameCountConsistency().
2010-01-14 Steve Falkenburg <sfalken@apple.com>
Windows build fixes.
Add forward declarations and additional includes of windows.h.
* platform/Cursor.h: Add forward declaration of HCURSOR. Move destructor implementation into cpp.
* platform/graphics/transforms/TransformationMatrix.h: Add forward declaration of XFORM. Remove windows.h include.
* platform/graphics/win/TransformationMatrixWin.cpp: Add include of windows.h.
* platform/win/CursorWin.cpp: Moved destructor of SharedCursor here.
(WebCore::SharedCursor::~SharedCursor): Moved here.
* platform/win/EventLoopWin.cpp: Add include of windows.h.
* platform/win/SystemInfo.cpp: Add include of windows.h.
2010-01-14 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Switch the custom V8 bindings to use class toNative() functions.
Refactoring, so no new tests.
* bindings/v8/custom/V8AbstractWorkerCustom.cpp:
* bindings/v8/custom/V8AttrCustom.cpp:
* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
* bindings/v8/custom/V8ClipboardCustom.cpp:
* bindings/v8/custom/V8CoordinatesCustom.cpp:
* bindings/v8/custom/V8DOMApplicationCacheCustom.cpp:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* bindings/v8/custom/V8DataGridColumnListCustom.cpp:
* bindings/v8/custom/V8DatabaseCustom.cpp:
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
* bindings/v8/custom/V8DocumentCustom.cpp:
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
* bindings/v8/custom/V8ElementCustom.cpp:
* bindings/v8/custom/V8EventCustom.cpp:
* bindings/v8/custom/V8GeolocationCustom.cpp:
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
* bindings/v8/custom/V8HTMLFormElementCustom.cpp:
* bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
* bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
* bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
* bindings/v8/custom/V8HTMLInputElementCustom.cpp:
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
* bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
* bindings/v8/custom/V8HistoryCustom.cpp:
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
* bindings/v8/custom/V8LocationCustom.cpp:
* bindings/v8/custom/V8MessageEventCustom.cpp:
* bindings/v8/custom/V8MessagePortCustom.cpp:
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
* bindings/v8/custom/V8NodeCustom.cpp:
* bindings/v8/custom/V8NodeIteratorCustom.cpp:
* bindings/v8/custom/V8NodeListCustom.cpp:
* bindings/v8/custom/V8NotificationCenterCustom.cpp:
* bindings/v8/custom/V8PopStateEventCustom.cpp:
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
* bindings/v8/custom/V8SVGElementInstanceCustom.cpp:
* bindings/v8/custom/V8SVGLengthCustom.cpp:
* bindings/v8/custom/V8SVGMatrixCustom.cpp:
* bindings/v8/custom/V8StorageCustom.cpp:
* bindings/v8/custom/V8StyleSheetListCustom.cpp:
* bindings/v8/custom/V8TreeWalkerCustom.cpp:
* bindings/v8/custom/V8WebGLArrayCustom.h:
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
* bindings/v8/custom/V8WebSocketCustom.cpp:
* bindings/v8/custom/V8WorkerContextCustom.cpp:
* bindings/v8/custom/V8WorkerCustom.cpp:
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
* bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
* bindings/v8/custom/V8XSLTProcessorCustom.cpp:
2010-01-14 Martin Robinson <martin.james.robinson@gmail.com>
Reviewed by Xan Lopez.
[GTK] Enable DOM clipboard and drag-and-drop access
https://bugs.webkit.org/show_bug.cgi?id=30623
Add DataObjectGtk, a container for pasteboard and drag-and-drop data.
No new tests, because functionality has not changed.
* GNUmakefile.am:
* platform/gtk/DataObjectGtk.cpp: Added.
(WebCore::DataObjectGtk::text):
(WebCore::DataObjectGtk::markup):
(WebCore::DataObjectGtk::setText):
(WebCore::DataObjectGtk::setMarkup):
(WebCore::DataObjectGtk::files):
(WebCore::DataObjectGtk::url):
(WebCore::DataObjectGtk::urlLabel):
(WebCore::DataObjectGtk::hasURL):
(WebCore::DataObjectGtk::clear):
(WebCore::DataObjectGtk::forClipboard):
* platform/gtk/DataObjectGtk.h: Added.
(WebCore::DataObjectGtk::create):
(WebCore::DataObjectGtk::uriList):
(WebCore::DataObjectGtk::image):
(WebCore::DataObjectGtk::setRange):
(WebCore::DataObjectGtk::setURIList):
(WebCore::DataObjectGtk::setImage):
(WebCore::DataObjectGtk::setDragContext):
(WebCore::DataObjectGtk::hasText):
(WebCore::DataObjectGtk::hasMarkup):
(WebCore::DataObjectGtk::hasURIList):
(WebCore::DataObjectGtk::hasImage):
(WebCore::DataObjectGtk::dragContext):
2010-01-14 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: Scrolling of Timeline Page was broken by fix for bug 33470.
https://bugs.webkit.org/show_bug.cgi?id=33666
* inspector/front-end/inspector.css:
2010-01-14 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
[Qt] Unreviewed fix of builds with the --no-svg switch.
* WebCore.pri:
2010-01-14 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
[Qt] Unreviewed build fix on Windows.
* platform/graphics/transforms/TransformationMatrix.h:
2010-01-14 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Enable scrolling optimization for pages with embedded widgets
https://bugs.webkit.org/show_bug.cgi?id=33373
Added a basic manual test for scrolling of embedded QWidgets.
* manual-tests/qt/qtplugin-scrolling.html: Added.
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollContents):
(WebCore::ScrollView::setParent):
* platform/ScrollView.h:
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::platformInit):
(WebCore::ScrollView::platformAddChild):
(WebCore::ScrollView::platformRemoveChild):
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::updatePluginWidget):
(WebCore::PluginView::invalidateRect):
2009-12-09 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez.
[GStreamer] Check return values of gst_element_set_state()
https://bugs.webkit.org/show_bug.cgi?id=30000
Check for state change failure when going from READY/NULL to
PAUSED or PLAYING. Also refactored the common code of play() and
pause() to a new private method of the player.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivate::changePipelineState):
(WebCore::MediaPlayerPrivate::play):
(WebCore::MediaPlayerPrivate::pause):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
2010-01-14 Eric Seidel <eric@webkit.org>
No review, rolling out r53248.
http://trac.webkit.org/changeset/53248
https://bugs.webkit.org/show_bug.cgi?id=32641
Caused 2 tests to crash on various bots:
fast/dom/HTMLSelectElement/listbox-select-reset.html and
fast/forms/listbox-typeahead-scroll.html
* dom/SelectElement.cpp:
(WebCore::SelectElement::recalcStyle):
(WebCore::SelectElement::setRecalcListItems):
(WebCore::SelectElement::recalcListItems):
(WebCore::SelectElement::restoreFormControlState):
(WebCore::SelectElement::reset):
(WebCore::SelectElement::typeAheadFind):
* dom/SelectElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::selected):
(WebCore::HTMLOptionElement::insertedIntoTree):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcStyle):
* html/HTMLSelectElement.h:
* wml/WMLSelectElement.cpp:
(WebCore::WMLSelectElement::recalcStyle):
2010-01-14 Ben Murdoch <benm@google.com>
Reviewed by Darin Adler.
[Android] [Qt] The document.createEvent API does not support touch events.
https://bugs.webkit.org/show_bug.cgi?id=33605
Test: fast/events/touch/create-touch-event.html
* dom/Document.cpp:
(WebCore::Document::createEvent): add creation of a TouchEvent when the "TouchEvent" argument is supplied.
2010-01-14 James Robinson <jamesr@chromium.org>
Reviewed by Alexey Proskuryakov.
Ensures that the 'selected' attribute of an <option> is correct
https://bugs.webkit.org/show_bug.cgi?id=32641
Adds a check in OptionElement::selected() that checks if list items need to be recalculated and does so if needed,
so the attribute is up to date more often. Also gets rid of most of the recalcStyle() side effects.
Our behavior now matches Firefox 3.5 and IE8 after the </select> is parsed.
Tests: fast/forms/HTMLOptionElement_selected2.html
fast/forms/HTMLOptionElement_selected3.html
* dom/SelectElement.cpp:
(WebCore::SelectElement::setOptionsChangedOnRenderer):
(WebCore::SelectElement::setRecalcListItems):
(WebCore::SelectElement::recalcListItems):
(WebCore::SelectElement::restoreFormControlState):
(WebCore::SelectElement::reset):
(WebCore::SelectElement::typeAheadFind):
* dom/SelectElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::selected):
(WebCore::HTMLOptionElement::insertedIntoTree):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcStyle):
(WebCore::HTMLSelectElement::recalcListItemsIfNeeded):
* html/HTMLSelectElement.h:
* wml/WMLSelectElement.cpp:
(WebCore::WMLSelectElement::recalcStyle):
2010-01-14 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Oliver Hunt.
[Qt] Allow custom memory allocation control for TransparencyLayer class
https://bugs.webkit.org/show_bug.cgi?id=33585
Inherits the following class from FastAllocBase because it is
instantiated by 'new':
class name - instantiated at: WebCore/'location'
class TransparencyLayer - platform/graphics/qt/GraphicsContextQt.cpp:906
* platform/graphics/qt/GraphicsContextQt.cpp:
2010-01-14 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Oliver Hunt.
[Qt] Allow custom memory allocation control for FontPlatformDataPrivate class
https://bugs.webkit.org/show_bug.cgi?id=33583
Inherits the following class from Noncopyable because it is
instantiated by 'new' and no need to be copyable:
class name - instantiated at: WebCore/'location'
class FontPlatformDataPrivate - platform/graphics/qt/FontPlatformData.h:70
* platform/graphics/qt/FontPlatformData.h:
2010-01-12 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez.
[GTK] un-needed seeks
https://bugs.webkit.org/show_bug.cgi?id=33532
Avoid un-needed seeks. Don't seek at current playback position and
don't update the rate if it is already set to target value.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::seek):
(WebCore::MediaPlayerPrivate::setRate):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
2010-01-14 Eric Seidel <eric@webkit.org>
No review. Tiger build fix after http://trac.webkit.org/changeset/53238.
Need to implement WebGLContextAttributes
https://bugs.webkit.org/show_bug.cgi?id=31169
Fix a build break when ENABLE(3D_CANVAS) is disabled.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext): UNUSED_PARAM(attrs) when 3D_CANVAS is disabled.
2010-01-13 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: use hidden text area for clipboard in order to
workaround windows setData bug.
https://bugs.webkit.org/show_bug.cgi?id=33633
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype._copy):
* inspector/front-end/inspector.css:
2010-01-13 Mads Ager <ager@chromium.org>
Reviewed by Dimitri Glazkov.
[V8] Slow named property lookup on DOMWindow because of missing fast case
https://bugs.webkit.org/show_bug.cgi?id=33584
Add fast case checks to V8 named property getter on DOMWindow
objects. If the property is not in the DOM there is no reason to
search the DOM for all occurrences.
Covered by layout tests.
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::namedPropertyGetter):
2010-01-13 Gavin Barraclough <barraclough@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/7403736> REGRESSION (r49963,r49965): 8% Dromaeo Core DOM test regression
Adding isolated worlds support to the JSC bindings introduced a regression due to
additional map lookups. Add a mechanism to quickly detect that a lookup is for the
'normal' world, and add fast paths to a couple of methods to check the normal world
first.
* bindings/js/JSDOMBinding.cpp:
(WebCore::Document::getWrapperCache):
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
(WebCore::forgetDOMObject):
* bindings/js/JSDOMBinding.h:
(WebCore::DOMWrapperWorld::isNormal):
(WebCore::WebCoreJSClientData::WebCoreJSClientData):
* bindings/js/ScriptController.cpp:
(WebCore::IsolatedWorld::IsolatedWorld):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::createWrapperCache):
* dom/Document.h:
2010-01-13 Kenneth Russell <kbr@google.com>
Reviewed by Oliver Hunt.
Need to implement WebGLContextAttributes
https://bugs.webkit.org/show_bug.cgi?id=31169
Added the WebGLContextAttributes class and custom JavaScript
bindings to accept a native object as the second argument to
getContext("experimental-webgl") per the WebGL specification.
Added GraphicsContext3D::Attributes struct to isolate DOM and
graphics layers. Added getContextAttributes() to
WebGLRenderingContext. Added test case ensuring that context
attributes can be passed down and returned. Tested in Safari and
Chromium. The attributes will be hooked up to the creation of the
OpenGL context in bug 33416.
Test: fast/canvas/webgl/context-attributes.html
* DerivedSources.make:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/IDLParser.pm:
* bindings/v8/DOMData.cpp:
* bindings/v8/DerivedSourcesAllInOne.cpp:
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8Index.cpp:
* bindings/v8/V8Index.h:
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
* html/HTMLCanvasElement.h:
* html/HTMLCanvasElement.idl:
* html/canvas/CanvasContextAttributes.cpp: Added.
(WebCore::CanvasContextAttributes::CanvasContextAttributes):
(WebCore::CanvasContextAttributes::~CanvasContextAttributes):
* html/canvas/CanvasContextAttributes.h: Added.
* html/canvas/WebGLContextAttributes.cpp: Added.
(WebCore::WebGLContextAttributes::create):
(WebCore::WebGLContextAttributes::WebGLContextAttributes):
(WebCore::WebGLContextAttributes::~WebGLContextAttributes):
(WebCore::WebGLContextAttributes::alpha):
(WebCore::WebGLContextAttributes::setAlpha):
(WebCore::WebGLContextAttributes::depth):
(WebCore::WebGLContextAttributes::setDepth):
(WebCore::WebGLContextAttributes::stencil):
(WebCore::WebGLContextAttributes::setStencil):
(WebCore::WebGLContextAttributes::antialias):
(WebCore::WebGLContextAttributes::setAntialias):
(WebCore::WebGLContextAttributes::premultipliedAlpha):
(WebCore::WebGLContextAttributes::setPremultipliedAlpha):
(WebCore::WebGLContextAttributes::attributes):
* html/canvas/WebGLContextAttributes.h: Added.
* html/canvas/WebGLContextAttributes.idl: Added.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::create):
(WebCore::WebGLRenderingContext::getContextAttributes):
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContext.idl:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/mac/GraphicsContext3DMac.cpp:
(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::getContextAttributes):
2010-01-13 Simon Fraser <simon.fraser@apple.com>
Fix Windows build.
* platform/graphics/cg/GraphicsContextCG.cpp:
2010-01-13 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
Transition followed by animation fails to run the animation sometimes
https://bugs.webkit.org/show_bug.cgi?id=33563
If a transition was closely followed by an animation, it was possible for the cleanup
after the end of the transition to kill the animation.
Fix this by including the keyframes name (or empty string for transitions) in the labels
used to identify CAAnimations on layers.
No test because this was a subtle timing issue that is hard to reproduce in a layout test.
* platform/graphics/mac/GraphicsLayerCA.h: Some new methods and signature changes.
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::animationIdentifier): Pass the keyframes name, since this is included in the identifier string now.
(WebCore::moveAllAnimationsForProperty): Pass the keyframes name.
(WebCore::GraphicsLayerCA::moveAnimationsForProperty): Try to move both transition- and animation-related
CAAnimations, using the list of running animations to get the keyframe names for the latter.
(WebCore::GraphicsLayerCA::ensureStructuralLayer): moveAnimation renamed to moveAnimationsForProperty
and takes the keyframes name.
(WebCore::GraphicsLayerCA::updateLayerAnimations): Pass keyframes name down (or "" for transitions).
(WebCore::GraphicsLayerCA::setAnimationOnLayer): Pass keyframes name down.
(WebCore::GraphicsLayerCA::removeAnimationFromLayer): Pass keyframes name down.
(WebCore::GraphicsLayerCA::pauseAnimationOnLayer): Pass keyframes name down.
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Pass keyframes name down.
2010-01-13 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Fix shadow drawing to do the correct computations using the base coordinate space
https://bugs.webkit.org/show_bug.cgi?id=33629
Shadows draw using the CGContext base CTM, so we need to convert the shadow offet
and size from user CTM into into base CTM coordinates, via the matix obtained from wkGetUserToBaseCTM().
Test: compositing/shadows/shadow-drawing.html
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
2010-01-13 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Oliver Hunt.
SVGClipPathElement shouldn't resolve style manually
https://bugs.webkit.org/show_bug.cgi?id=33647
Build renderers for SVGClipPathElement, so we can query the style from the renderer
instead of re-resolving style on every clip path resource invalidation.
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::createRenderer):
(WebCore::SVGClipPathElement::canvasResource):
* svg/SVGClipPathElement.h:
(WebCore::SVGClipPathElement::isValid):
2010-01-13 Kelly Norton <knorton@google.com>
Reviewed by Timothy Hatcher.
Web Inspector does not update the DOM tree when attributes change.
https://bugs.webkit.org/show_bug.cgi?id=20162
* dom/Element.cpp: Moves callbacks to InspectorController directly into setAttribute
and removeAttribute and removes the existing call sites. This makes it possible to
see attribute modifications.
(WebCore::Element::setAttribute):
(WebCore::Element::dispatchAttrRemovalEvent):
(WebCore::Element::dispatchAttrAdditionEvent):
(WebCore::Element::removeAttribute):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode.prototype._setAttributesPayload): Clear existing attributes.
(WebInspector.DOMAgent.prototype._didApplyDomChange): Updated call site and fixed style.
(WebInspector.DOMAgent.prototype._attributesUpdated): Added.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._attributesUpdated): Added.
(WebInspector.ElementsPanel.prototype.updateModifiedNodes): Updated call site.
* inspector/front-end/ElementsTreeOutline.js: Renamed _updateTitle to updateTitle.
(WebInspector.ElementsTreeElement.prototype.onattach): Updated updateTitle call site.
(WebInspector.ElementsTreeElement.prototype._textNodeEditingCommitted): Ditto.
(WebInspector.ElementsTreeElement.prototype._editingCancelled): Ditto.
2010-01-13 Carol Szabo <carol.szabo@nokia.com>
Reviewed by Darin Adler.
CounterNode::nextInPreOrderAfterChildren(stayWithin) does not stay within.
https://bugs.webkit.org/show_bug.cgi?id=33625
No new tests because the fix should affect strictly performance.
* rendering/CounterNode.cpp:
(WebCore::CounterNode::nextInPreOrderAfterChildren):
2010-01-13 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Oliver Hunt.
Window size changes are not propagated down the render tree
https://bugs.webkit.org/show_bug.cgi?id=33643
Test: svg/custom/relative-sized-content.xhtml
* rendering/RenderSVGContainer.cpp: Fix incorrect markParents=true usage, leading to unnecessary relayouts.
(WebCore::RenderSVGContainer::layout): Use new layoutChildren() method.
(WebCore::RenderSVGContainer::paint): Fix indention.
* rendering/RenderSVGHiddenContainer.cpp: Fix incorrect markParents=true usage.
(WebCore::RenderSVGHiddenContainer::layout): Use new layoutChildren() helper.
* rendering/RenderSVGRoot.cpp: Refactor existing code to layout children in SVGRenderSupport::layoutChildren.
(WebCore::RenderSVGRoot::layout): Make children relayouting depend on width/height changes, if the outermost svg uses relative viewport sizes.
* rendering/SVGRenderSupport.cpp: Add central place handling child layout, skips relayouting non-relative sized children as benefit.
(WebCore::SVGRenderBase::layoutChildren): This methods contains the actual changes.
* rendering/SVGRenderSupport.h:
* svg/SVGGElement.h: Remove dead code.
* svg/SVGSVGElement.h: Make hasRelativeValues() public to remove the need for friendship declarations.
* svg/SVGStyledElement.h: Change default return value for hasRelativeValues() to false, as it was intended.
(WebCore::SVGStyledElement::hasRelativeValues): Make it public, to be usable from SVGRenderSupport.
* svg/SVGSymbolElement.h: Remove dead code.
* svg/SVGUseElement.cpp: Implement hasRelativeValues() - it was simply missing here.
(WebCore::SVGUseElement::hasRelativeValues):
* svg/SVGUseElement.h:
2010-01-13 Fumitoshi Ukai <ukai@chromium.org>
Reviewed by David Levin.
Fix websocket/tests/worker/worker-simple.html crash on Leopard Intel Debug (Tests) builder
https://bugs.webkit.org/show_bug.cgi?id=33581
unref m_workerContext when websocket is disconnected, so that avoid
keeping reference to workerContext longer than worker thread runs.
* websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):
2010-01-12 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: selected, selectable, extended selectable, and multiple
selectable states are not reported
https://bugs.webkit.org/show_bug.cgi?id=33574
<rdar://problem/7536826>
Reviewed by Darin Adler.
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isMultiSelectable):
Use the correct function name - the function name overriden by
and used in AccessiblityRenderObject.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):
Update for function rename.
(webkit_accessible_selection_select_all_selection):
Ditto.
2010-01-13 Darin Adler <darin@apple.com>
Reviewed by Dan Bernstein.
Move more of the selection and caret painting code from Frame to SelectionController.
https://bugs.webkit.org/show_bug.cgi?id=33619
Helpful preparation step for a bug fix I am working on.
* editing/SelectionController.cpp:
(WebCore::SelectionController::SelectionController): Initialize new data members.
Note that m_caretVisible starts as true for the drag caret controller to match the
old behavior for painting.
(WebCore::SelectionController::setSelection): Changed to call selectionLayoutChanged
in its new name and location.
(WebCore::SelectionController::paintCaret): Added checks that were formerly done
at the Frame level. Tweaked formatting and changed to use early return as well.
(WebCore::SelectionController::focusedOrActiveStateChanged): Updated for call
moved into this class.
(WebCore::SelectionController::updateAppearance): Moved the
Frame::selectionLayoutChanged function here. Had to rename it because the word
"layout" is usedfor other purposes in this function.
(WebCore::SelectionController::setCaretVisible): Moved here from Frame.
(WebCore::SelectionController::clearCaretRectIfNeeded): Ditto.
(WebCore::SelectionController::caretBlinkTimerFired): Ditto.
* editing/SelectionController.h: Added new functions. Moved conditional function
out of class definition for clarity. Removed unneeded == and != operators.
Removed unneeded use of bit fields.
* page/Frame.cpp: Moved functions to SelectionController.
(WebCore::Frame::Frame): Removed initialization of moved data members.
* page/Frame.h: Removed things moved to SelectionController as well as unneeded
forward declaration of Timer class template.
* page/FrameView.cpp:
(WebCore::FrameView::layout): Updated for new location of function.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret): Ditto.
2010-01-13 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7532544>
Expose new method on WebKitSystemInterface, WKGetUserToBaseCTM(), which will
be used for a shadow drawing fix.
* WebCore.base.exp:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2010-01-13 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Fix shadow drawing to do the correct computations using the base coordinate space
https://bugs.webkit.org/show_bug.cgi?id=33629
Step 1: do some renames in setPlatformShadow():
size -> offset
width -> xOffset
height -> yOffset
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
2010-01-13 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Move getSessionStorageNamespace from WebKitClient to WebViewClient
https://bugs.webkit.org/show_bug.cgi?id=33492
* page/Page.cpp:
(WebCore::Page::sessionStorage):
* storage/StorageNamespace.cpp:
(WebCore::StorageNamespace::sessionStorageNamespace):
* storage/StorageNamespace.h:
(WebCore::StorageNamespace::~StorageNamespace):
2010-01-13 Dirk Schulze <krit@webkit.org>
Reviewed by Beth Dakin.
Repaint bug dragging a star shape with a dash stroke
https://bugs.webkit.org/show_bug.cgi?id=33406
Calculation of repaint rects for RenderPath objects was wrong. We must take the
union of strokeBoundingBox and objectBoundingBox, since the strokeBoundingBox
must not contain the objectBoundingBox. This is mainly visible on dash-arrays for
strokes.
Test: svg/custom/js-repaint-rect-on-path-with-stroke.svg
* rendering/RenderPath.cpp:
(WebCore::RenderPath::strokeBoundingBox):
2010-01-13 Kevin Ollivier <kevino@theolliviers.com>
[wx] Build fix. Make the XFORM operator work on wx port.
* platform/graphics/transforms/TransformationMatrix.h:
* wscript:
2010-01-13 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Introduce SourceFrame2 with basic breakpoint / execution line
rendering capabilities.
Contains a drive-by naming fix (lineNumberOffset and lineNumberToOffset were
too close to each other, but were unrelated).
https://bugs.webkit.org/show_bug.cgi?id=33618
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/SourceFrame2.js: Added.
(WebInspector.SourceFrame2):
(WebInspector.SourceFrame2.prototype.set text):
(WebInspector.SourceFrame2.prototype.get executionLine):
(WebInspector.SourceFrame2.prototype.set executionLine):
(WebInspector.SourceFrame2.prototype.revealLine):
(WebInspector.SourceFrame2.prototype._toggleBreakpoint):
(WebInspector.SourceFrame2.prototype.resize):
(WebInspector.BreakpointLineNumberDecorator):
(WebInspector.BreakpointLineNumberDecorator.prototype.decorate):
(WebInspector.BreakpointLineNumberDecorator.prototype._paintBreakpoint):
(WebInspector.BreakpointLineNumberDecorator.prototype._paintProgramCounter):
(WebInspector.BreakpointLineNumberDecorator.prototype.mouseDown):
(WebInspector.ExecutionLineDecorator):
(WebInspector.ExecutionLineDecorator.prototype.decorate):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.get textModel):
(WebInspector.TextEditor.prototype.set readOnly):
(WebInspector.TextEditor.prototype.set lineNumberDecorator):
(WebInspector.TextEditor.prototype.set lineDecorator):
(WebInspector.TextEditor.prototype.selectionRange):
(WebInspector.TextEditor.prototype._offsetToLine):
(WebInspector.TextEditor.prototype._lineToOffset):
(WebInspector.TextEditor.prototype.reveal):
(WebInspector.TextEditor.prototype._textChanged):
(WebInspector.TextEditor.prototype._updateSize):
(WebInspector.TextEditor.prototype.updateCanvasSize):
(WebInspector.TextEditor.prototype._repaintAll):
(WebInspector.TextEditor.prototype._paintLines):
(WebInspector.TextEditor.prototype._paintLinesContinuation):
(WebInspector.TextEditor.prototype.paintLineNumbers):
(WebInspector.TextEditor.prototype._paintCurrentLine):
(WebInspector.TextEditor.prototype._mouseDown):
(WebInspector.TextEditor.prototype._caretForMouseEvent):
(WebInspector.TextEditor.prototype._keyDown):
(WebInspector.TextEditor.prototype._handleNavigationKey):
(WebInspector.TextEditor.prototype._textInput):
(WebInspector.TextEditor.prototype._updateCursor):
(WebInspector.TextEditor.prototype._paintSelection):
(WebInspector.TextEditor.prototype._initFont):
2010-01-13 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Generate a function in the V8 bindings to convert v8 objects
to native WebCore objects.
* bindings/scripts/CodeGeneratorV8.pm: Generate and use toNative().
* bindings/v8/V8Binding.cpp: Remove manually defined conversion helprs.
(WebCore::getElementStringAttr):
(WebCore::setElementStringAttr):
* bindings/v8/V8Binding.h: Remove manually defined conversion helprs.
* bindings/v8/V8SVGPODTypeWrapper.h: Still need a manually defined coversion helper for SVGPODTypes.
(WebCore::V8SVGPODTypeWrapper::toNative):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
(WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
(WebCore::V8WebGLRenderingContext::getUniformCallback):
2010-01-13 Brian Weinstein <bweinstein@apple.com>
Reviewed by Adam Roben.
REGRESSION (r49268): DHTML drag not allowed unless event.dataTransfer.effectAllowed
is set (differs from HTML5).
Fixes <https://bugs.webkit.org/show_bug.cgi?id=33607> and <rdar://7507114>.
If no effectAllowed is set in the dragStart operation, we should default to
uninitialized instead of none, so the user doesn't have to manually set the
effectAllowed to enable drag and drop.
* dom/Clipboard.cpp:
(WebCore::Clipboard::Clipboard):
2010-01-13 Dave Hyatt <hyatt@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=32495
font-size:small with background-color causes text to get clipped. Make sure to only paint within the lineTop/lineBottom of
a line for quirky inline flow boxes that didn't contribute to the overall height of the line.
Added fast/backgrounds/quirks-mode-line-boxes-backgrounds.html
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeVerticalOverflow):
(WebCore::InlineFlowBox::paintBoxDecorations):
(WebCore::InlineFlowBox::paintMask):
2010-01-13 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Darin Adler.
Refactoring DatabaseAuthorizer to use a CaseFoldingHash function
for the set of whitelisted sqlite functions, and fixing some
indenting issues.
https://bugs.webkit.org/show_bug.cgi?id=33612
* storage/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::allowFunction):
* storage/DatabaseAuthorizer.h:
2010-01-13 Carol Szabo <carol.szabo@nokia.com>
Reviewed by Darin Adler.
RenderObject::nextInPreOrderAfterChildren(RenderObject* stayWithin) does not stay within
https://bugs.webkit.org/show_bug.cgi?id=33600
No new tests as this fix affects mainly performance.
No test has been found yet that could evidence the bug in the layout
of a page, but the fix to bug 32884 exposes this bug on some pages
such as http://www.w3.org/Style/CSS/Test/CSS2.1/current/html4/counters-scope-implied-001.htm
* rendering/RenderObject.cpp:
(WebCore::RenderObject::nextInPreOrderAfterChildren):
2010-01-13 Jeremy Orlow <jorlow@chromium.org>
No reviewer. More or less a build fix. My 53180 broke some
stuff on the Chromium port so I'm reverting.
* page/Page.cpp:
(WebCore::Page::sessionStorage):
* storage/StorageNamespace.cpp:
(WebCore::StorageNamespace::sessionStorageNamespace):
* storage/StorageNamespace.h:
(WebCore::StorageNamespace::~StorageNamespace):
2010-01-13 Steve Block <steveblock@google.com>
Update appendClassName in jni_runtime.cpp to use WebCore::StringBuilder, rather than JSC::StringBuilder.
https://bugs.webkit.org/show_bug.cgi?id=33586
Avoiding the JSC version of StringBuilder allows this file to be used with both JSC and V8 on Android.
No new tests, refactoring only.
* bridge/jni/jni_runtime.cpp: Modified.
(JavaMethod::signature): Modified. Use WebCore::StringBuilder.
2010-01-13 Kent Hansen <kent.hansen@nokia.com>
Reviewed by Timothy Hatcher.
Some objects in the global scope are not completed
https://bugs.webkit.org/show_bug.cgi?id=19119
Use Object.getOwnPropertyNames instead of for-in to provide completions, since
Object.getOwnPropertyNames reports both enumerable and non-enumerable properties.
* inspector/front-end/InjectedScript.js:
(InjectedScript._getPropertyNames):
(InjectedScript.getCompletions):
2010-01-13 Ben Murdoch <benm@google.com>
Reviewed by Simon Hausmann.
[Android] [Qt] The JSC ScriptController does not consider Touch Events user gestures.
https://bugs.webkit.org/show_bug.cgi?id=33597
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::processingUserGestureEvent): Add the touch event types (touchstart, touchmove and touchend) to the set of events that are considered user gestures.
2010-01-13 Simon Hausmann <simon.hausmann@nokia.com>
Rubber-stamped by Tor Arne Vestbø.
[Qt] REGRESSION(53187) Touchevent related tests fail
https://bugs.webkit.org/show_bug.cgi?id=33602
Pass the ENABLE_TOUCH_EVENTS to the IDL generators.
* WebCore.pri:
2010-01-13 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: Timeline panel scrolling speed can be increased.
https://bugs.webkit.org/show_bug.cgi?id=33579
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel):
(WebInspector.TimelinePanel.prototype._scheduleRefresh):
(WebInspector.TimelinePanel.prototype._refresh):
(WebInspector.TimelinePanel.prototype._refreshRecords):
2010-01-13 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Split the build process in two different .pro files.
This allows qmake to be run once all source files are available.
* DerivedSources.pro: Added.
* WebCore.pri: Added. Contains common logic between source generation and compilation.
* WebCore.pro: Moved source generation to DerivedSources.pro.
2010-01-13 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Scrolling editor to the 20Kth line is not smooth.
https://bugs.webkit.org/show_bug.cgi?id=33587
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype._textChanged):
(WebInspector.TextEditor.prototype._highlightChanged):
(WebInspector.TextEditor.prototype._paintLinesContinuation):
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter):
(WebInspector.TextEditorHighlighter.prototype.highlight):
(WebInspector.TextEditorHighlighter.prototype._highlightInChunks):
(WebInspector.TextEditorHighlighter.prototype.updateHighlight):
(WebInspector.TextEditorHighlighter.prototype._highlightLines):
(WebInspector.TextEditorHighlighter.prototype._lex):
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorModel.prototype._setLine):
(WebInspector.TextEditorModel.prototype.setAttribute):
(WebInspector.TextEditorModel.prototype.getAttribute):
(WebInspector.TextEditorModel.prototype.removeAttribute):
2010-01-13 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Fix the build on Windows.
PluginViewWin.cpp requires the conversion operator from TransformationMatrix to XFORM.
* WebCore.pro: Build TransformationMatrixWin.cpp.
* platform/graphics/transforms/TransformationMatrix.h: Enable the conversion operator to XFORM.
2010-01-13 Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed by Simon Hausmann.
[Qt/Symbian] Added missing vendor information to qtwebkit.sis
This information is necessary to Symbian sign the package.
http://bugreports.qt.nokia.com/browse/QTBUG-7290
* WebCore.pro:
2010-01-11 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Move getSessionStorageNamespace from WebKitClient to WebViewClient
https://bugs.webkit.org/show_bug.cgi?id=33492
* page/Page.cpp:
(WebCore::Page::sessionStorage):
* storage/StorageNamespace.cpp:
(WebCore::StorageNamespace::sessionStorageNamespace):
* storage/StorageNamespace.h:
(WebCore::StorageNamespace::~StorageNamespace):
2010-01-12 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Adam Barth.
Adding a list of whitelisted sqlite functions that users are
allowed to use.
https://bugs.webkit.org/show_bug.cgi?id=33549
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::authorizerFunction):
* storage/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
(WebCore::DatabaseAuthorizer::addWhitelistedFunctions):
(WebCore::DatabaseAuthorizer::allowFunction):
* storage/DatabaseAuthorizer.h:
2010-01-12 Fumitoshi Ukai <ukai@chromium.org>
Reviewed by Simon Hausmann.
[Qt][WebSocket] SocketStreamHandleSoup.cpp is misnamed
https://bugs.webkit.org/show_bug.cgi?id=33077
* WebCore.pro:
* platform/network/qt/SocketStreamHandleQt.cpp: Copied from WebCore/platform/network/qt/SocketStreamHandleSoup.cpp.
* platform/network/qt/SocketStreamHandleSoup.cpp: Removed.
2010-01-12 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
position:fixed and transform on same element breaks fixed behavior
https://bugs.webkit.org/show_bug.cgi?id=31283
Fix interactions of transforms and fixed positioning, namely that fixed position
elements with a transformed ancestor are positioned relative to that ancestor,
and an element with both a transform and fixed position respects that positioning.
Test: transforms/2d/transform-fixed-container.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::mapLocalToContainer):
(WebCore::RenderBox::mapAbsoluteToLocalPoint):
Transforms should not unconditionally stop the propagation of the 'fixed' flag to ancestors,
but only if the transformed element is not itself fixed.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::convertToLayerCoords):
Fix this method to behave correctly for fixed position layers whose container is not
the root, but some other (probably transformed) ancestor. In that case, we can fall into
the "position: absolute" code path.
2010-01-12 Tony Chang <tony@chromium.org>
Reviewed by Adam Barth.
Fix an assert being triggered by how the Chromium port sets the
replacing flag for error pages. This was caused by r53143.
Covered by existing Chromium UI tests.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
2010-01-12 Kent Hansen <kent.hansen@nokia.com>
Reviewed by Geoffrey Garen.
[ES5] Implement Object.getOwnPropertyNames
https://bugs.webkit.org/show_bug.cgi?id=32242
Add new argument to reimplementations of getPropertyNames()
and getOwnPropertyNames(), and update the JS bindings generator.
Test: fast/js/Object-getOwnPropertyNames.html
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::getPropertyNames):
(WebCore::JSDOMWindowShell::getOwnPropertyNames):
* bindings/js/JSDOMWindowShell.h:
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::getOwnPropertyNames):
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::getOwnPropertyNames):
* bindings/js/JSQuarantinedObjectWrapper.cpp:
(WebCore::JSQuarantinedObjectWrapper::getPropertyNames):
(WebCore::JSQuarantinedObjectWrapper::getOwnPropertyNames):
* bindings/js/JSQuarantinedObjectWrapper.h:
* bindings/js/JSStorageCustom.cpp:
(WebCore::JSStorage::getOwnPropertyNames):
* bindings/scripts/CodeGeneratorJS.pm:
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::getOwnPropertyNames):
* bridge/runtime_array.h:
* bridge/runtime_object.cpp:
(JSC::RuntimeObjectImp::getPropertyNames):
(JSC::RuntimeObjectImp::getOwnPropertyNames):
* bridge/runtime_object.h:
2010-01-12 Brian Weinstein <bweinstein@apple.com>
Reviewed by Dave Hyatt.
Safari shows an unneeded horizontal scrollbar on many websites.
Fixes <rdar://6321041> and <http://webkit.org/b/33555>.
If a div has no children, and its height or width are 0, we can ignore
it in our calculation of lowest, rightmost, and leftmost positions. This
calculation was causing horizontal scrollbars to be drawn when they weren't needed.
Test: fast/block/positioning/absolute-positioning-no-scrollbar.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::lowestPosition): Added check for no children and width or height 0.
(WebCore::RenderBlock::rightmostPosition): Ditto.
(WebCore::RenderBlock::leftmostPosition): Ditto.
2010-01-12 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Timothy Hatcher.
Optimize WebInspector.TimelineGrid.prototype.updateDividers()
DOM element property access and modification are slow and should be done as lazily as possible.
https://bugs.webkit.org/show_bug.cgi?id=33536
* inspector/front-end/TimelineGrid.js:
(WebInspector.TimelineGrid.prototype.updateDividers):
(WebInspector.TimelineGrid.prototype._setDividerAndBarLeft):
2010-01-12 Beth Dakin <bdakin@apple.com>
Reviewed by Sam Weinig.
Fix for https://bugs.webkit.org/show_bug.cgi?id=33550 REGRESSION: -
webkit-svg-shadow with opacity still over-clipped
We need to call inflateForShadow() on the repaintRect before we
clip for opacity or we will over-clip.
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::prepareToRenderSVGContent):
2010-01-12 Steve Falkenburg <sfalken@apple.com>
Reviewed by Sam Weinig.
Update all-in-one derived sources for Geolocation.
* DerivedSources.cpp: Add JSCoordinates.cpp, JSGeolocation.cpp, JSGeoposition.cpp, JSPositionError.cpp
2010-01-12 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Remove static const ints from V8CustomBinding.h
https://bugs.webkit.org/show_bug.cgi?id=33547
* bindings/scripts/CodeGeneratorV8.pm: Generate and use custom
internal field indices from lists of custom internal fields.
* bindings/v8/NPV8Object.cpp:
* bindings/v8/NPV8Object.h:
* bindings/v8/V8Binding.cpp:
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/V8DOMWindowShell.h:
* bindings/v8/V8DOMWrapper.cpp: Remove a bunch of now unnecessary
manually calls to setInternalFieldCount().
* bindings/v8/V8DOMWrapper.h:
* bindings/v8/V8Index.h:
* bindings/v8/V8IsolatedContext.cpp:
* bindings/v8/V8IsolatedContext.h:
* bindings/v8/V8NPObject.cpp:
* bindings/v8/custom/V8AbstractWorkerCustom.cpp:
* bindings/v8/custom/V8CustomBinding.h: Remove the static const ints.
* bindings/v8/custom/V8DOMApplicationCacheCustom.cpp:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* bindings/v8/custom/V8DocumentCustom.cpp:
* bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
* bindings/v8/custom/V8HTMLOptionElementConstructor.cpp:
* bindings/v8/custom/V8MessageChannelConstructor.cpp:
* bindings/v8/custom/V8MessagePortCustom.cpp:
* bindings/v8/custom/V8NodeCustom.cpp:
* bindings/v8/custom/V8NotificationCenterCustom.cpp:
* bindings/v8/custom/V8SVGElementInstanceCustom.cpp:
* bindings/v8/custom/V8WebSocketCustom.cpp:
* bindings/v8/custom/V8WorkerContextCustom.cpp:
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
* bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
2010-01-12 Darin Fisher <darin@chromium.org>
Fixing chromium build bustage.
* bindings/v8/custom/V8PopStateEventCustom.cpp: Add V8Proxy.h include.
2010-01-12 Darin Fisher <darin@chromium.org>
Reviewed by Dimitri Glazkov.
Add V8 bindings for PopStateEvent.
https://bugs.webkit.org/show_bug.cgi?id=33546
This is covered by existing tests for PopStateEvent.
* WebCore.gypi:
* bindings/v8/DOMObjectsInclude.h:
* bindings/v8/DerivedSourcesAllInOne.cpp:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::convertEventToV8Object):
* bindings/v8/V8Index.cpp:
* bindings/v8/V8Index.h:
* bindings/v8/custom/V8PopStateEventCustom.cpp: Added.
(WebCore::V8PopStateEvent::initPopStateEventCallback):
(WebCore::V8PopStateEvent::stateAccessorGetter):
2010-01-12 Kelly Norton <knorton@google.com>
Reviewed by Timothy Hatcher.
Adds source length to ParseHTMLRecords in the inspector timeline.
https://bugs.webkit.org/show_bug.cgi?id=33548
Test: inspector/timeline-parse-html.html
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::write):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willWriteHTML):
* inspector/InspectorTimelineAgent.h:
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createParseHTMLRecord):
* inspector/TimelineRecordFactory.h:
2010-01-12 Jungshik Shin <jshin@chromium.org>
Reviewed by Darin Adler
https://bugs.webkit.org/show_bug.cgi?id=31597
Make ICU's text breakiterator and string search use Chrome's UI
language instead of 'en-US' or the OS UI language.
As long as the webkit layout tests are run in en-US locale, there'd be
no visible change.
* platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp:
(UILanguage):
(WebCore::currentSearchLocaleID):
(WebCore::currentTextBreakLocaleID):
2010-01-12 Beth Dakin <bdakin@apple.com>
Rubber-stamped by Dave Hyatt.
This patch changes the name of -webkit-shadow to -webkit-svg-shadow
to avoid giving a custom property an overly-general name.
<rdar://problem/7534590>
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseShadow):
* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* css/SVGCSSPropertyNames.in:
* css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
2010-01-12 Peter Kasting <pkasting@google.com>
Not reviewed, build fix.
* WebCore.vcproj/WebCore.vcproj:
2010-01-12 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Add a null check in case of an event handler with invalid syntax.
Should make fast/js/invalid-syntax--for-function.html not crash in
Chromium's test shell.
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::callListenerFunction): Check the listener object before using it.
2010-01-12 Peter Kasting <pkasting@google.com>
Reviewed by Dimitri Glazkov.
Remove XBM support from the open-source image decoders.
https://bugs.webkit.org/show_bug.cgi?id=27823
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCoreSources.bkl:
* platform/image-decoders/ImageDecoder.cpp:
(WebCore::ImageDecoder::create):
* platform/image-decoders/xbm: Removed.
* platform/image-decoders/xbm/XBMImageDecoder.cpp: Removed.
* platform/image-decoders/xbm/XBMImageDecoder.h: Removed.
2010-01-12 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=33540
Make it possible to build in debug mode with assertions disabled
* dom/Element.cpp: (WebCore::Element::getURLAttribute):
* dom/SelectElement.cpp: (WebCore::SelectElementData::checkListItems):
* editing/TextIterator.cpp:
* loader/Cache.cpp: (WebCore::Cache::removeFromLRUList):
* rendering/RenderArena.cpp: (WebCore::RenderArena::free):
2010-01-12 Eric Carlson <eric.carlson@apple.com>
Reviewed by Darin Adler and Simon Fraser.
rdar://problem/5684062
https://bugs.webkit.org/show_bug.cgi?id=23094
Flash of white when switching from poster image to video playback
https://bugs.webkit.org/show_bug.cgi?id=23140
<video> poster should scale like a video frame
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState): Only call updatePosterImage from one place
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::HTMLVideoElement): m_shouldShowPosterImage -> m_shouldDisplayPoster.
(WebCore::HTMLVideoElement::createRenderer): Always create a RenderVideo.
(WebCore::HTMLVideoElement::attach): Call updatePosterImage before checking to see if we
should display the poster image. renderer() is never a RenderImage, don't need to check.
m_shouldShowPosterImage -> m_shouldDisplayPoster.
(WebCore::HTMLVideoElement::detach): m_shouldShowPosterImage -> m_shouldDisplayPoster.
(WebCore::HTMLVideoElement::parseMappedAttribute): Cache poster attribute when it is set since
it is checked frequently. m_shouldShowPosterImage -> m_shouldDisplayPoster.
(WebCore::HTMLVideoElement::updatePosterImage): Don't bother looking at the network state,
display the poster as long as the attribute is valid and the media engine says it hasn't
rendered a video frame. m_shouldShowPosterImage -> m_shouldDisplayPoster.
(WebCore::HTMLVideoElement::hasAvailableVideoFrame): New, ask the media engine if a video frame
is available to render.
* html/HTMLVideoElement.h:
(WebCore::HTMLVideoElement::poster):
(WebCore::HTMLVideoElement::shouldDisplayPoster):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateRenderer): Call setCachedImage for render video too.
* manual-tests/video-player.html: Remove bit-rot from manual test so it works again.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::hasAvailableVideoFrame): New, ask the media engine if a video frame
is available to render.
* platform/graphics/MediaPlayer.h: Prototype for hasAvailableVideoFrame.
* platform/graphics/MediaPlayerPrivate.h: Ditto.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h: Declare hasAvailableVideoFrame, declare
all bool variables to aid packing.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_videoFrameHasDrawn. Cleanup
floating point initializers to match coding guidelines.
(WebCore::MediaPlayerPrivate::load): Initialize m_videoFrameHasDrawn.
(WebCore::MediaPlayerPrivate::hasAvailableVideoFrame): New.
(WebCore::MediaPlayerPrivate::repaint): Set m_videoFrameHasDrawn.
(WebCore::RenderImage::paintReplaced): Split part out into paint method.
(WebCore::RenderImage::paint): New.
* rendering/RenderImage.h: Declare paint. Make isWidthSpecified and isHeightSpecified protected
instead of private so RenderVideo can use them.
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::RenderMedia): Inherit from RenderImage, not RenderReplaced
(WebCore::RenderMedia::destroy): Ditto.
(WebCore::RenderMedia::styleDidChange): Ditto.
(WebCore::RenderMedia::layout): Ditto.
(WebCore::RenderMedia::lowestPosition): Ditto.
(WebCore::RenderMedia::rightmostPosition): Ditto.
(WebCore::RenderMedia::leftmostPosition): Ditto.
* rendering/RenderMedia.h: Declare isImage and isRenderImage.
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::intrinsicSizeChanged): New, call RenderVideo::intrinsicSizeChanged
when displaying a poster so it is sized correctly.
(WebCore::RenderVideo::imageChanged): Override so we can cache the image's intrisic size and
use it when we also know the movie's intrinsic size but still need to draw the poster.
(WebCore::RenderVideo::videoBox): Use the poster's intrinsic size when drawing the poster,
use the movie's intrinsic size when drawing frames.
(WebCore::RenderVideo::paintReplaced): Call RenderImage::paint when drawing the poster.
(WebCore::RenderVideo::videoElement): New.
(WebCore::RenderVideo::updatePlayer):
* rendering/RenderVideo.h:
(WebCore::RenderVideo::minimumReplacedHeight): Added.
2010-01-12 Tony Chang <tony@chromium.org>
Reviewed by Maciej Stachowiak.
Fix a crash in Chromium when receiving multipart/x-mixed-replace data.
If we stop a multipart load after ResourceLoader::didReceiveResponse
but before ResourceLoader::didReceiveData, we have a NULL document
loader because it has been moved back to the provisional state. New
loads that happen after this will dereference the NULL document
loader.
Work around this by moving the provisional document loader back as
the document loader when the request is stopped.
https://bugs.webkit.org/show_bug.cgi?id=31446
Test: http/tests/multipart/multipart-wait-before-boundary.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
2010-01-12 Enrica Casucci <enrica@apple.com>
Reviewed by Darin Adler.
WebKit returns incorrect match count when first string match is on an element with user-select-none style
https://bugs.webkit.org/show_bug.cgi?id=33508
<rdar://problem/7482143>
If we use VisiblePosition to calculate the start of the new search range,
we skip all the nodes with user-select-none style, producing an incorrect
match count.
No new tests: there are no API's available to Javascript to verify the
number of matches found.
* page/Frame.cpp:
(WebCore::Frame::markAllMatchesForText): Changed to use the end of the previous
result range as the start of the new search range.
2010-01-12 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Timothy Hatcher.
Changed ".sidebar" style to allow v-scroll to appear in
"Profiles" panel sidebar.
https://bugs.webkit.org/show_bug.cgi?id=33470
No new tests -- no code changed.
* inspector/front-end/inspector.css:
2010-01-12 Adam Roben <aroben@apple.com>
Windows accelerated compositing build fix after r53110
* plugins/PluginWidget.h:
(WebCore::PluginWidget::platformLayer): Define platformLayer() for
non-Mac platforms that have accelerated compositing turned on. It
would probably be better to make PluginWidget not be used at all on
non-Mac platforms, but this fix is much simpler.
2010-01-12 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Support injection of inspector scripts into the inspected context.
https://bugs.webkit.org/show_bug.cgi?id=33523
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::WeakReferenceCallback):
(WebCore::createInjectedScriptHostV8Wrapper):
(WebCore::createInjectedScript):
(WebCore::InjectedScriptHost::injectedScriptFor):
2010-01-12 Ben Murdoch <benm@google.com>
Reviewed by Darin Adler.
Form Reset : Press Back Button and Reset , TextareaElemnt is not set to Default Value
https://bugs.webkit.org/show_bug.cgi?id=31539
Added manual test: manual-tests/textarea-reset-default-value.html.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::restoreFormControlState): set the value, rather than default value of a text area when restoring its state. This allows resetting a form with a textarea to work correctly after its state has been restored.
* manual-tests/resources/textarea-form-back-on-submit.html: Added.
* manual-tests/textarea-reset-default-value.html: Added.
2010-01-12 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Holger Freyther.
[Qt] WebCore::Path allocates QPainterPath unnecessarily on the heap
https://bugs.webkit.org/show_bug.cgi?id=33466
WebCore::Path is a pointer to a PlatformPath. In case of Qt that's a
QPainterPath, which itself is a pointer to the elements (QVector).
That creates unecessary allocations in PathQt.cpp.
Replaced the "PlatformPath* m_path;" with a PlatformPathPtr, which
is a plain QPainterPath.
* platform/graphics/Path.h:
(WebCore::Path::platformPath):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::drawFilledShadowPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::addPath):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipOut):
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::~Path):
(WebCore::Path::operator=):
(WebCore::Path::contains):
(WebCore::Path::strokeContains):
(WebCore::Path::translate):
(WebCore::Path::boundingRect):
(WebCore::Path::strokeBoundingRect):
(WebCore::Path::moveTo):
(WebCore::Path::addLineTo):
(WebCore::Path::addQuadCurveTo):
(WebCore::Path::addBezierCurveTo):
(WebCore::Path::addArcTo):
(WebCore::Path::closeSubpath):
(WebCore::Path::addArc):
(WebCore::Path::addRect):
(WebCore::Path::addEllipse):
(WebCore::Path::clear):
(WebCore::Path::isEmpty):
(WebCore::Path::debugString):
(WebCore::Path::apply):
(WebCore::Path::transform):
2010-01-12 Jakub Wieczorek <faw217@gmail.com>
Reviewed by Adam Barth.
[Qt] XSL stylesheets can load documents from a different origin
https://bugs.webkit.org/show_bug.cgi?id=33423
* xml/XSLTProcessorQt.cpp:
(WebCore::XSLTUriResolver::XSLTUriResolver):
(WebCore::XSLTUriResolver::resolve):
(WebCore::XSLTProcessor::transformToString):
2010-01-12 Joanmarie Diggs <joanmarie.diggs@gmail.com>
Reviewed by Gustavo Noronha Silva.
https://bugs.webkit.org/show_bug.cgi?id=30883
[Gtk] Implement AtkText for HTML elements which contain text
Tweak/correction: Eliminate a needless variable.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(webkit_accessible_text_get_caret_offset):
2010-01-12 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Geoffrey Garen.
Allow creating injected script for the inspected script state. The InjectedScript is
cached on the inspected ExecState global object and will be garbage collected when the
object is collected. Each InjectedScript object is assigned unique id.
https://bugs.webkit.org/show_bug.cgi?id=33469
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::markChildren):
(WebCore::JSDOMGlobalObject::setInjectedScript):
(WebCore::JSDOMGlobalObject::injectedScript):
* bindings/js/JSDOMGlobalObject.h: InjectedScript is cached on the global object as a
field that is not visible from the inspected code. This InjectedScript should be alive as long as
the global object is alive and should be accessible from Web Inspector's native code.
(WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::createInjectedScript): Creates injected script using the lexical global object of the
inspected ScriptState. Reference to the object is stored on the global DOM object.
(WebCore::InjectedScriptHost::injectedScriptFor):
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::InjectedScriptHost):
(WebCore::InjectedScriptHost::injectedScriptForId):
(WebCore::InjectedScriptHost::discardInjectedScripts): This method is expected to be called when the
the InjectedScript are no longer needed. In particular, this should be called before frame navigation.
* inspector/InjectedScriptHost.h:
(WebCore::InjectedScriptHost::setInjectedScriptSource): This allows to provide injected script source.
The source may be loaded in a platform specific way.
2010-01-11 Darin Adler <darin@apple.com>
Reviewed by Dan Bernstein.
Fix handling of unusual kana sequences in search
https://bugs.webkit.org/show_bug.cgi?id=33506
* editing/TextIterator.cpp:
(WebCore::composedVoicedSoundMark): Removed unnnecessary case for a
non-kana-letter character. This function only works for kana letters.
(WebCore::SearchBuffer::isBadMatch): Fixed voiced sound mark code to
properly handle cases where one character has a shorter list of
combining voiced sound marks than the other.
2010-01-11 Victor Wang <victorw@chromium.org>
Reviewed by Dimitri Glazkov.
Clear m_acceptedIndexOnAbandon flag when user accepts the selected index.
https://bugs.webkit.org/show_bug.cgi?id=33499
TEST: manual-tests/chromium/onchange-reload-popup.html
It should be covered by the above test. The current
test shell does not support sending keyboard events to popup
list so use manual test for it.
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupListBox::acceptIndex):
2010-01-11 Gustavo Noronha Silva <gns@gnome.org>
Reviewed by Eric Seidel.
[GTK] Debug bots crashing in plugins/iframe-shims.html
https://bugs.webkit.org/show_bug.cgi?id=33472
Call computeOffsetInContainerNode() instead of
offsetInContainerNode(), since we are not sure this is always
parent-anchored.
plugins/iframe-shims.html no longer ASSERTS
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(objectAndOffsetUnignored):
2010-01-11 Simon Fraser <simon.fraser@apple.com>
Reviewed by Kevin Decker.
https://bugs.webkit.org/show_bug.cgi?id=33455
Allows plugins to participate in accelerated compositing
For plugins using the CoreAnimation rendering mode, host their CALayers in the
accelerated compositing layer tree.
This requires making normal flow RenderLayers for RenderEmbeddedObjects when they represent
a plugin using this mode.
* WebCore.base.exp: Export Node::setNeedsStyleRecalc() for use by WebKit.
* WebCore.xcodeproj/project.pbxproj: Re-order files for sorting.
* rendering/RenderEmbeddedObject.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::requiresLayer): Make a layer if the plugin is using
accelerated compositing mode.
(WebCore::RenderEmbeddedObject::allowsAcceleratedCompositing): Asks whether the plugin has
a layer, via PluginWidget.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly):
(WebCore::RenderLayer::isSelfPaintingLayer):
RenderEmbeddedObjects should be normal flow layers, and self-painting layers.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
Parent the plugin's layer in the GraphicsLayer when updating the layer configuration.
* rendering/RenderLayerCompositor.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingLayer):
(WebCore::RenderLayerCompositor::requiresCompositingForPlugin):
RenderEmbeddedObjects that allow accelerated compositing trip accelerated compositing mode
for the page.
2010-01-11 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Fixed an uninitialized PluginView member (m_mode) which wasn't
set when constructed with a null PluginPackage*
https://bugs.webkit.org/show_bug.cgi?id=33468
* plugins/PluginView.cpp:
(WebCore::PluginView::PluginView):
2010-01-11 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVG radialGradient example radial-gradient-with-outstanding-focalPoint.svg fails
https://bugs.webkit.org/show_bug.cgi?id=32201
This patch moves every focalPoint that lies outside the circle defined by the radial
gradients central point and its radius to stay inside this circle, as demanded by the
SVG 1.1 specification.
We use r * 0.99 as maximum radius for the aforementioned circle, when determining where
the focalPoint is lying, to achieve compatibility with Firefox.
* svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::buildGradient):
2010-01-11 Alexey Proskuryakov <ap@apple.com>
Reviewed by Oliver Hunt.
https://bugs.webkit.org/show_bug.cgi?id=33493
Log redirect details to Network channel
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
Log response code and Location header field value. Also, removed a redundant null check.
2010-01-11 Beth Dakin <bdakin@apple.com>
Reviewed by Oliver Hunt.
Fix for https://bugs.webkit.org/show_bug.cgi?id=33491 REGRESSION:
Many SVG -webkit-shadow tests are currently failing (in the pixel
tests)
-and-
<rdar://problem/7501200>
The real fix here is to call inflateForShadow() on the repaintRect
in prepareToRenderSVGContent(). But in order to do that, I had to
move inflateForShadow() to a different class since functions in
SVGRenderBase cannot call each other. inflateForShadow() now exists
in SVGRenderStyle which I think makes some sense because a similar
function that returns a box shadow's extent exists on RenderStyle.
Now call inflateForShadow() through the SVGRenderStyle.
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::computeRectForRepaint):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::computeRectForRepaint):
* rendering/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::computeRectForRepaint):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeRectForRepaint):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::computeRectForRepaint):
No longer implement inflateForShadow() here.
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::prepareToRenderSVGContent): Call new
inflateForShadow() through the SVGRenderStyle
* rendering/SVGRenderSupport.h:
Implementation of inflateForShadow() now lives here.
* rendering/style/SVGRenderStyle.cpp:
(WebCore::getSVGShadowExtent):
(WebCore::SVGRenderStyle::inflateForShadow):
* rendering/style/SVGRenderStyle.h:
2010-01-11 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Rewrite relative URLs in the ElementsTreeOutline to make them navigable
Targets for "src" and "href" attribute values in the Elements outline tree
are rewritten to full URLs whenever possible.
https://bugs.webkit.org/show_bug.cgi?id=33024
Test: inspector/elements-panel-rewrite-href.html
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype._rewriteAttrHref):
(WebInspector.ElementsTreeElement.prototype._nodeTitleInfo):
* inspector/front-end/inspector.js:
2010-01-11 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Attempt to fix windows builds, by removing the no-longer existant JSSVGPointListCustom.cpp from JSBindingsAllInOne.cpp.
* bindings/js/JSBindingsAllInOne.cpp:
2010-01-11 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Adam Roben & Dirk Schulze.
svg <text> fails to update when setting x/y
https://bugs.webkit.org/show_bug.cgi?id=22384
Introduce JSSVGPODListCustom, refactoring the existing custom code for SVG POD type lists.
(Currently SVGTransformList/SVGPointList was handled correctly, and SVGLengthList/SVGNumberList not)
Remove the need for custom JSSVG*List.cpp implementations, but instead tweak CodeGeneratorJS.pm,
to call into the new JSSVGPODListCustom methods. Fixes dynamic updates of the SVGTextElement
'rotate' & 'x'/'y' SVG DOM properties.
Tests: svg/custom/text-xy-updates-SVGList.xhtml
svg/dynamic-updates/SVGTextElement-svgdom-rotate-prop.html
* Android.jscbindings.mk: Remove old files from build, add the new header.
* GNUmakefile.am: Ditto.
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSSVGPODListCustom.h: Copied from bindings/js/JSSVGTransformListCustom.cpp. Refactored code to be sharable between all JSSVG*List classes.
(WebCore::JSSVGPODListCustom::finishGetter):
(WebCore::JSSVGPODListCustom::finishSetter):
(WebCore::JSSVGPODListCustom::finishSetterReadOnlyResult):
(WebCore::JSSVGPODListCustom::clear):
(WebCore::JSSVGPODListCustom::initialize):
(WebCore::JSSVGPODListCustom::getItem):
(WebCore::JSSVGPODListCustom::insertItemBefore):
(WebCore::JSSVGPODListCustom::replaceItem):
(WebCore::JSSVGPODListCustom::removeItem):
(WebCore::JSSVGPODListCustom::appendItem):
* bindings/js/JSSVGPointListCustom.cpp: Removed.
* bindings/js/JSSVGTransformListCustom.cpp: Removed.
* bindings/scripts/CodeGeneratorJS.pm: Forward any SVGList call on POD list types to the new JSSVGPODListCustom.
* svg/SVGNumberList.cpp: Make SVGNumberList a SVGPODList, instead of a SVGList, to make dynamic updates work.
(WebCore::SVGNumberList::SVGNumberList):
* svg/SVGNumberList.h:
* svg/SVGPointList.idl: Remove JSCCustom markers everywhere.
* svg/SVGTransformList.idl: Ditto.
2010-01-08 Enrica Casucci <enrica@apple.com>
Reviewed by Darin Adler.
Cannot focus on an empty editable span in a non editable div.
https://bugs.webkit.org/show_bug.cgi?id=33411
<rdar://problem/5982901>
We now allow to set the focus inside an empty inline element if it is the only
editable element inside non-editable content.
* dom/Position.cpp:
(WebCore::Position::isCandidate): Extended to allow positions in inline elements when
at the border between editable and non editable content.
(WebCore::Position::getInlineBoxAndOffset): Modified to be able to calculate the caret
position inside an empty inline.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs): When merging, we don't always find a break
element, since now an editable inline is a VisiblePosition if it is at editability boundary.
* editing/VisibleSelection.h: Updated comment on the use of Position member variables
instead of VisiblePosition.
* page/Frame.cpp:
(WebCore::Frame::selectionLayoutChanged): Changed to avoid multiple calls to upstream and
downstream on the same position.
2010-01-06 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Nikolas Zimmermann.
[V8] IsRefPtrType() in CodeGeneratorV8.pm increases maintenance burden.
https://bugs.webkit.org/show_bug.cgi?id=32994
Refactoring, covered by existings tests.
* bindings/scripts/CodeGeneratorV8.pm: Reversed testing for ref-counted objects,
since there's a much smaller (and more stable) set of non-ref-counted ones.
2010-01-06 Kelly Norton <knorton@google.com>
Reviewed by Pavel Feldman.
Fixes the fact that timeline panel results are skewed by the use of DOM mutation events.
https://bugs.webkit.org/show_bug.cgi?id=32846
Instead of using DOM mutation events in InspectorDOMAgent, InspectorController is now called
directly when the DOM is mutated.
* dom/ContainerNode.cpp: Calls InspectorController directly when child nodes are added/removed.
(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):
* dom/Element.cpp: Calls InspectorController directly when attributes are added/removed.
(WebCore::Element::dispatchAttrRemovalEvent):
(WebCore::Element::dispatchAttrAdditionEvent):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didInsertDOMNode):
(WebCore::InspectorController::didRemoveDOMNode):
(WebCore::InspectorController::didModifyDOMAttr):
* inspector/InspectorController.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::startListening):
(WebCore::InspectorDOMAgent::stopListening):
(WebCore::InspectorDOMAgent::handleEvent):
(WebCore::InspectorDOMAgent::didInsertDOMNode):
(WebCore::InspectorDOMAgent::didRemoveDOMNode):
(WebCore::InspectorDOMAgent::didModifyDOMAttr):
* inspector/InspectorDOMAgent.h:
2010-01-10 Darin Adler <darin@apple.com>
Reviewed by Alexey Proskuryakov.
REGRESSION: Japanese text search ignores small vs. large and voicing mark differences
https://bugs.webkit.org/show_bug.cgi?id=30437
rdar://problem/7214058
Test: fast/text/find-kana.html
* editing/TextIterator.cpp:
(WebCore::isKanaLetter): Added.
(WebCore::isSmallKanaLetter): Added.
(WebCore::composedVoicedSoundMark): Added.
(WebCore::isCombiningVoicedSoundMark): Added.
(WebCore::containsKanaLetters): Added.
(WebCore::normalizeCharacters): Added.
(WebCore::SearchBuffer::SearchBuffer): Initialize the data members
m_targetRequiresKanaWorkaround and m_normalizedTarget.
(WebCore::SearchBuffer::isBadMatch): Added. Checks for matches that
ICU's default collation considers correct, but we consider incorrect.
(WebCore::SearchBuffer::search): Added code to call isBadMatch and
move to the next match with usearch_next if the result is true.
2010-01-11 Joanmarie Diggs <joanmarie.diggs@gmail.com>
Reviewed by Xan Lopez.
https://bugs.webkit.org/show_bug.cgi?id=30883
[Gtk] Implement AtkText for HTML elements which contain text
* accessibility/gtk/AccessibilityObjectWrapperAtk.h
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(objectAndOffsetUnignored):
(webkit_accessible_text_get_caret_offset):
* editing/gtk/SelectionControllerGtk.cpp:
(SelectionController::notifyAccessibilityForSelectionChange)
Adjust the caret offset and object with focus to reflect the
unignored parent of the static text object which contains the
caret. This is necessary because the static text objects are
no longer being exposed to ATs.
2010-01-11 Kim Grönholm <kim.gronholm@nomovok.com>
Reviewed by Antti Koivisto.
Touchevent coordinates are incorrect after page zoom and page scroll
https://bugs.webkit.org/show_bug.cgi?id=32899
Test: fast/events/touch-coords-in-zoom-and-scroll.html
* dom/Touch.cpp:
(WebCore::contentsX):
(WebCore::contentsY):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
2010-01-11 Tony Chang <tony@chromium.org>
Reviewed by Eric Seidel.
Have "Paste and Match Style" fire the dom paste event.
https://bugs.webkit.org/show_bug.cgi?id=30639
Test: editing/execCommand/paste-and-match-style-event.html
* editing/Editor.cpp:
(WebCore::Editor::pasteAsPlainText):
2010-01-10 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Build fix).
Rollout renderpath culling as it once again breaks pixel tests.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
(WebCore::RenderPath::nodeAtFloatPoint):
2010-01-10 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
Allows plugins to participate in accelerated compositing
https://bugs.webkit.org/show_bug.cgi?id=33455
Part 1: rename setContentsToVideo() on GraphicsLayer to setContentsToMedia()
to make it more general. Rename associated enums and methods similarly.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setContentsToMedia):
* platform/graphics/mac/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::):
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::setContentsToMedia):
(WebCore::GraphicsLayerCA::commitLayerChanges):
(WebCore::GraphicsLayerCA::updateContentsMediaLayer):
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::createQTMovieLayer):
(WebCore::MediaPlayerPrivate::acceleratedRenderingStateChanged):
2010-01-10 Oliver Hunt <oliver@apple.com>
Reviewed by Nikolas Zimmerman.
Bad DOM performance in large SVG files
https://bugs.webkit.org/show_bug.cgi?id=30055
Cull RenderPaths before passing on to the underlying graphics system.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
(WebCore::RenderPath::nodeAtFloatPoint):
2010-01-10 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
Add defensive initialization of iframe sandbox flags
https://bugs.webkit.org/show_bug.cgi?id=32368
We now initialize the SecurityOrigin's sandbox state directly duing
construction. This lets us properly set the isUnique bit.
Tests: http/tests/security/sandboxed-iframe-origin-add.html
http/tests/security/sandboxed-iframe-origin-remove.html
* WebCore.base.exp:
* dom/Document.cpp:
(WebCore::Document::initSecurityContext):
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::create):
(WebCore::SecurityOrigin::setSandboxFlags):
* page/SecurityOrigin.h:
2010-01-10 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Inspect Element selects the wrong element.
Drive-by fix that focuses dom tree upon settting focuesDOMNode.
https://bugs.webkit.org/show_bug.cgi?id=33449
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.setDocument.selectLastSelectedNode):
(WebInspector.ElementsPanel.prototype.setDocument):
* inspector/front-end/treeoutline.js:
(TreeElement.prototype.select):
2010-01-10 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Introduce support for flexible line height in the text editor.
https://bugs.webkit.org/show_bug.cgi?id=33431
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype._offsetToLineNumber):
(WebInspector.TextEditor.prototype._lineNumberToOffset):
(WebInspector.TextEditor.prototype._lineHeight):
(WebInspector.TextEditor.prototype.reveal):
(WebInspector.TextEditor.prototype._textChanged):
(WebInspector.TextEditor.prototype._selectionChanged):
(WebInspector.TextEditor.prototype._updateSize):
(WebInspector.TextEditor.prototype._paintLines):
(WebInspector.TextEditor.prototype._paintLinesContinuation):
(WebInspector.TextEditor.prototype._paintLineNumbers):
(WebInspector.TextEditor.prototype._paintCurrentLine):
(WebInspector.TextEditor.prototype._scroll):
(WebInspector.TextEditor.prototype._repaintOnScroll):
(WebInspector.TextEditor.prototype._caretForMouseEvent):
(WebInspector.TextEditor.prototype._handleNavigationKey):
(WebInspector.TextEditor.prototype._updateCursor):
(WebInspector.TextEditor.prototype._invalidateHighlight):
(WebInspector.TextEditor.prototype._paintSelection):
(WebInspector.TextEditor.prototype._initFont):
(WebInspector.TextCursor.prototype.setTextLineHeight):
2010-01-10 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Do not repaint line numbers while editing within line.
https://bugs.webkit.org/show_bug.cgi?id=33427
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype._textChanged):
(WebInspector.TextEditor.prototype._selectionChanged):
(WebInspector.TextEditor.prototype._repaintAll):
(WebInspector.TextEditor.prototype._paintLines):
(WebInspector.TextEditor.prototype._paintLinesContinuation):
(WebInspector.TextEditor.prototype._paintLineNumbers):
(WebInspector.TextEditor.prototype._updateCursor):
(WebInspector.TextEditor.prototype._copy):
2010-01-10 Adam Barth <abarth@webkit.org>
Unreviewed whitespace fixes.
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::setSandboxFlags):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::updateSandboxFlags):
* loader/FrameLoader.h:
2010-01-09 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
Unify origin sandbox flag with m_noAccess in SecurityOrigin
https://bugs.webkit.org/show_bug.cgi?id=32372
It turns out the SandboxOrigin bit is slightly different than the
unique origin concept because the sandbox bit is inherited by iframes.
These concepts are separate in the spec, so I think it's ok to keep
them separate in the implementation as well.
No new tests because there is no behavior change.
* dom/Document.cpp:
(WebCore::Document::cookie):
(WebCore::Document::setCookie):
* loader/CrossOriginAccessControl.cpp:
(WebCore::passesAccessControlCheck):
* page/SecurityOrigin.cpp:
(WebCore::schemesWithUniqueOrigins):
(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::canAccess):
(WebCore::SecurityOrigin::canRequest):
(WebCore::SecurityOrigin::taintsCanvas):
(WebCore::SecurityOrigin::setSandboxFlags):
(WebCore::SecurityOrigin::toString):
(WebCore::SecurityOrigin::registerURLSchemeAsNoAccess):
(WebCore::SecurityOrigin::shouldTreatURLSchemeAsNoAccess):
* page/SecurityOrigin.h:
(WebCore::SecurityOrigin::canAccessDatabase):
(WebCore::SecurityOrigin::canAccessStorage):
(WebCore::SecurityOrigin::canAccessCookies):
(WebCore::SecurityOrigin::isUnique):
2010-01-09 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
ScriptController::isEnabled needs to be renamed
https://bugs.webkit.org/show_bug.cgi?id=32063
Rename ScriptController::isEnabled to
ScriptController::canExecuteScripts to reflect what the method actually
means. This is a trivial change, but it involved touching a lot of
call sites.
* WebCore.PluginHostProcess.exp:
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::canExecuteScripts):
(WebCore::ScriptController::executeScript):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::parseCode):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::bindingRootObject):
(WebCore::ScriptController::windowScriptNPObject):
(WebCore::ScriptController::jsObjectForPluginElement):
(WebCore::ScriptController::executeScriptInWorld):
* bindings/js/ScriptController.h:
* bindings/js/ScriptControllerMac.mm:
(WebCore::ScriptController::windowScriptObject):
* bindings/js/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
* bindings/js/ScriptState.cpp:
(WebCore::scriptStateFromNode):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::windowScriptNPObject):
(WebCore::ScriptController::createScriptObjectForPluginElement):
* bindings/v8/ScriptController.h:
* bindings/v8/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::retrieve):
* dom/ScriptElement.cpp:
(WebCore::ScriptElementData::evaluateScript):
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::XMLTokenizer::startElementNs):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::controls):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseTag):
(WebCore::HTMLTokenizer::processToken):
* inspector/InspectorController.cpp:
(WebCore::canPassNodeToJavaScript):
* inspector/JavaScriptDebugServer.cpp:
(WebCore::JavaScriptDebugServer::setJavaScriptPaused):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::isProcessingUserGesture):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::dispatchDidClearWindowObjectsInAllWorlds):
(WebCore::FrameLoader::dispatchDidClearWindowObjectInWorld):
2010-01-09 Evan Martin <evan@chromium.org>
Reviewed by Eric Seidel.
Inspector font for errors is ugly on non-OSX platforms
https://bugs.webkit.org/show_bug.cgi?id=33340
* css/view-source.css: Add a fallback to sans-serif on a CSS
selector that previously only listed Lucida Grande.
2010-01-09 Dan Bernstein <mitz@apple.com>
Reviewed by Nikolas Zimmermann.
<rdar://problem/7525778> Font fallback kills SVG kerning
https://bugs.webkit.org/show_bug.cgi?id=33400
Test: platform/mac/fast/text/sticky-typesetting-features.html
Cache font attributes separately for different typesetting features.
* platform/graphics/SimpleFontData.h: Replaced single-element caches
with maps.
* platform/graphics/mac/ComplexTextControllerATSUI.cpp:
(WebCore::disableLigatures): Added an ATSUStyle parameter.
(WebCore::initializeATSUStyle): Look up the ATSUStyle in the map and
initialize if necessary. Return the ATSUStyle.
(WebCore::ComplexTextController::collectComplexTextRunsForCharactersATSUI):
Use the ATSUStyle returned from initializeATSUStyle().
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::platformDestroy): Destroy the ATSUStyles in the
map.
(WebCore::SimpleFontData::getCFStringAttributes): Look up the attributes
dictionary in the map and initialize if necessary.
2010-01-08 Adam Barth <abarth@webkit.org>
Unreviewed. Fix namespace indent for SecurityOrigin.h.
* page/SecurityOrigin.h:
(WebCore::SecurityOrigin::domainWasSetInDOM):
(WebCore::SecurityOrigin::protocol):
(WebCore::SecurityOrigin::host):
(WebCore::SecurityOrigin::domain):
(WebCore::SecurityOrigin::port):
(WebCore::SecurityOrigin::canLoadLocalResources):
(WebCore::SecurityOrigin::setSandboxFlags):
(WebCore::SecurityOrigin::isSandboxed):
(WebCore::SecurityOrigin::canAccessDatabase):
(WebCore::SecurityOrigin::canAccessStorage):
(WebCore::SecurityOrigin::):
2010-01-08 Adam Barth <abarth@webkit.org>
Reviewed by Dmitry Titov.
bindings/v8/DOMData is missing a virtual destructor
https://bugs.webkit.org/show_bug.cgi?id=33390
DOMData is the base class for ChildThreadDOMData and MainThreadDOMData classes
but it does not have a virtual destructor. While this isn't currently causing
any leaks, since there are no instances of ChildThreadDOMData or
MainThreadDOMData that are manipulated via a DOMData pointer, the ARM GCC
compiler generates the following compilation error:
"/WebCore/bindings/v8/DOMData.h:45: error: 'class WebCore::DOMData' has virtual
functions and accessible non-virtual destructor"
We therefore need to add a virtual destructor to DOMData.
* bindings/v8/DOMData.cpp:
(WebCore::DOMData::~DOMData):
* bindings/v8/DOMData.h:
2010-01-08 Daniel Bates <dbates@webkit.org>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=33417
Cleans up style errors exposed by the patch for bug #33198.
No functionality was changed. So, no new tests.
* platform/graphics/SimpleFontData.h:
* plugins/PluginPackage.cpp:
2010-01-08 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
WebGL canvas paints background color twice
https://bugs.webkit.org/show_bug.cgi?id=33361
Clean up some logic around "directly composited" content: some images, video, and WebGL.
We previously set the GraphicsLayer background color to the CSS background color
in some cases where the box has no other decorations. However, the content
layer's bounds do not correspond with the background box in many cases,
and we could end up both painting the background color, and setting it on the layer.
Simplify this logic to never use layer background colors, and thus skip allocating
backing store only when the element has no visible box decorations.
Tests: compositing/images/direct-image-background-color.html
compositing/reflections/simple-composited-reflections.html
compositing/video/video-background-color.html
compositing/webgl/webgl-background-color.html
compositing/webgl/webgl-blending.html
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::is3DCanvas): Utility to determine if a RenderObject is a canvas with WebGL
(WebCore::RenderLayerBacking::RenderLayerBacking): Remove m_hasDirectlyCompositedContent.
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): canUseDirectCompositing()
is renamed to isDirectlyCompositedImage() and only applies to images now.
No longer set layer background color.
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Just use hasPaintedContent()
as the argument to setDrawsContent().
(WebCore::hasBoxDecorationsOrBackground): Renamed.
(WebCore::RenderLayerBacking::hasNonCompositingContent):
(WebCore::hasBoxDecorationsOrBackgroundImage): Renamed from hasBoxDecorations().
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Moved test for
hasOverflowControls() into hasNonCompositingContent() and removed the FIXME comment.
(WebCore::RenderLayerBacking::containsPaintedContent): New method that decides
if the layer (and its non-composited children) has any content that must be painted into backing store.
(WebCore::RenderLayerBacking::isDirectlyCompositedImage): Renamed from canUseDirectCompositing()
and reduced to only apply to images.
(WebCore::RenderLayerBacking::rendererContentChanged): 3D canvas no longer falls under the
canUseDirectCompositing() scope.
2010-01-08 Steve Block <steveblock@google.com>
Reviewed by Darin Adler.
Use member initialization syntax instead of assignment for member variables of Document used
for determining minimum layout delay.
https://bugs.webkit.org/show_bug.cgi?id=33316
No new tests, style change only.
* dom/Document.cpp: Modified.
(WebCore::Document::Document): Modified. Use initializer list for m_startTime, m_overMinimumLayoutThreshold and m_extraLayoutDelay.
2010-01-08 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Passing array that is too large to set method of WebGLArrays does not throw an exception
https://bugs.webkit.org/show_bug.cgi?id=33352
Added needed range checks to JSC and V8 custom bindings. Expanded
preexisting test suite for WebGLArrays and updated its expected
results. Tested in WebKit and Chromium.
Test: fast/canvas/webgl/array-set-out-of-bounds.html
* bindings/js/JSWebGLArrayHelper.h:
(WebCore::setWebGLArrayFromArray):
* bindings/v8/custom/V8WebGLArrayCustom.h:
(WebCore::setWebGLArrayFromArray):
2010-01-08 Alexey Proskuryakov <ap@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=32962
HTML tags are wrongfully parsed when setting innerHTML of a SCRIPT element
Also fixed the same for STYLE elements.
Tests: fast/dom/css-innerHTML.html
fast/dom/script-innerHTML-x.xhtml
fast/dom/script-innerHTML.html
* html/HTMLElement.cpp: (WebCore::HTMLElement::setInnerHTML): Don't parse JS or CSS as HTML,
matching Firefox.
2010-01-08 Beth Dakin <bdakin@apple.com>
Reviewed by Oliver Hunt.
Fix for https://bugs.webkit.org/show_bug.cgi?id=32757 Repaint bug
with -webkit-shadow on svg shapes
-and-
<rdar://problem/7389149>
Inflate the repaintRect for the shadow using its extent.
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::computeRectForRepaint):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::computeRectForRepaint):
* rendering/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::computeRectForRepaint):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
(WebCore::RenderSVGRoot::computeRectForRepaint):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::computeRectForRepaint):
* rendering/SVGRenderSupport.cpp:
(WebCore::getSVGShadowExtent):
(WebCore::SVGRenderBase::inflateForShadow):
* rendering/SVGRenderSupport.h:
2010-01-08 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
WebGLArray subclasses do the wrong conversion in indexSetter
https://bugs.webkit.org/show_bug.cgi?id=33350
Test: fast/canvas/webgl/array-setters.html
* bindings/js/JSWebGLFloatArrayCustom.cpp:
(WebCore::JSWebGLFloatArray::indexSetter):
* bindings/js/JSWebGLUnsignedIntArrayCustom.cpp:
(WebCore::JSWebGLUnsignedIntArray::indexSetter):
2010-01-08 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Delegation client
https://bugs.webkit.org/show_bug.cgi?id=32826
Factory related code removed from QtAbstractWebPopup. Popups are now created
by ChromeClientQt.
Popup content information struct added to class QtAbstractWebPopup.
PopupMenuClient is now hidden from higher layers.
QtAbstractWebPopup now receives content information and font as parameters
of method populate.
QtFallbackWebPopup moved to WebKit/qt/WebCoreSupport.
* WebCore.pro:
* platform/qt/PopupMenuQt.cpp:
(WebCore::PopupMenu::PopupMenu):
(WebCore::getItems):
(WebCore::PopupMenu::show):
* platform/qt/QtAbstractWebPopup.cpp:
(WebCore::QtAbstractWebPopup::QtAbstractWebPopup):
(WebCore::QtAbstractWebPopup::popupDidHide):
(WebCore::QtAbstractWebPopup::valueChanged):
* platform/qt/QtAbstractWebPopup.h:
(WebCore::QtAbstractWebPopup::Item::):
* platform/qt/QtFallbackWebPopup.cpp: Removed.
* platform/qt/QtFallbackWebPopup.h: Removed.
2010-01-08 Yuzo Fujishima <yuzo@google.com>
Reviewed by Darin Adler.
Skip invalid blocks in CSS property declarations.
https://bugs.webkit.org/show_bug.cgi?id=31231
https://bugs.webkit.org/show_bug.cgi?id=26619
This patch makes the CSS parser skip property declarations containing invalid blocks.
Test: fast/css/parsing-error-recovery.html
* css/CSSGrammar.y:
2010-01-08 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
AX: CSS content not returned correctly in AX
https://bugs.webkit.org/show_bug.cgi?id=33308
Test: platform/mac/accessibility/css-content-attribute.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement):
2010-01-08 Chris Marrin <cmarrin@apple.com>
Reviewed by Adam Roben.
Implement full-screen video for Windows
https://bugs.webkit.org/show_bug.cgi?id=31318
This is mostly support logic for taking video
into and out of full-screen. It also contains the
QTMovieWin piece which adds support for the actual
full-screen window itself. Events from the window
are sent to the FullscreenVideosController for handling.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::addData):
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
(WebCore::MediaPlayerPrivate::supportsFullscreen):
(WebCore::MediaPlayerPrivate::platformMedia):
* platform/graphics/win/QTMovieWin.cpp:
(QTMovieWinPrivate::QTMovieWinPrivate):
(QTMovieWin::initializeQuickTime):
(QTMovieWin::_handleMessages):
(QTMovieWin::enterFullscreen):
(QTMovieWin::exitFullscreen):
* platform/graphics/win/QTMovieWin.h:
2010-01-08 Matt Perry <mpcomplete@chromium.org>
Reviewed by Adam Barth.
Fix a regression that removed a call to
FrameLoaderClient::didDestroyScriptContextForFrame.
https://bugs.webkit.org/show_bug.cgi?id=33347
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::disposeContextHandles):
2010-01-08 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Adam Roben.
WebKit plugins are not rendered during printing.
https://bugs.webkit.org/show_bug.cgi?id=33022.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::paintWindowedPluginIntoContext): Tell
cairo printing surface to flush so that blank regions do
not write over the plugin's paint operations.
* rendering/RenderLayer.cpp: Build fix.
(WebCore::RenderLayer::beginTransparencyLayers): Correct
method signature missing for ColorSpace.
2010-01-08 Chris Fleizach <cfleizach@apple.com>
Reviewed by Eric Seidel.
REGRESSION(52819?): AXLoadComplete and AXLayoutComplete causes 4 tests fail on Snow Leopard Debug bot
https://bugs.webkit.org/show_bug.cgi?id=33300
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilitySetPostedNotificationCallback:withContext:]):
(-[AccessibilityObjectWrapper accessibilityPostedNotification:]):
2010-01-08 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Regex-based syntax highlighting is slow.
https://bugs.webkit.org/show_bug.cgi?id=33330
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/JavaScriptHighlighterScheme.js: Removed.
* inspector/front-end/JavaScriptTokenizer.js: Added.
(WebInspector.JavaScriptTokenizer):
(WebInspector.JavaScriptTokenizer.prototype.set line):
(WebInspector.JavaScriptTokenizer.prototype.getCondition):
(WebInspector.JavaScriptTokenizer.prototype.setCondition):
(WebInspector.JavaScriptTokenizer.prototype._charAt):
(WebInspector.JavaScriptTokenizer.prototype.nextToken):
* inspector/front-end/JavaScriptTokenizer.re2js: Added.
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter):
(WebInspector.TextEditorHighlighter.prototype.highlight):
(WebInspector.TextEditorHighlighter.prototype._lex):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2010-01-07 Mike Belshe <mbelshe@chromium.org>
Reviewed by Darin Adler.
Fix Spdy casing to match style guide.
https://bugs.webkit.org/show_bug.cgi?id=33326
* platform/network/chromium/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::wasFetchedViaSPDY):
(WebCore::ResourceResponse::setWasFetchedViaSPDY):
2010-01-07 Daniel Bates <dbates@rim.com>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=32987
Added ENABLE_XHTMLMP flag. Disabled by default.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* config.h:
2010-01-07 Stephanie Lewis <slewis@apple.com>
Rolled out http://trac.webkit.org/changeset/52778 due to rolling
out http://trac.webkit.org/changeset/52756
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* editing/SelectionController.cpp:
(WebCore::SelectionController::layout):
(WebCore::SelectionController::recomputeCaretRect):
(WebCore::SelectionController::invalidateCaretRect):
(WebCore::SelectionController::paintCaret):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::attach):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::attach):
* page/Frame.cpp:
(WebCore::Frame::revealSelection):
2010-01-07 Stephanie Lewis <slewis@apple.com>
Rollout http://trac.webkit.org/changeset/52756 due to a large performance regression.
* dom/Document.cpp:
(WebCore::Document::updateLayout):
* editing/SelectionController.cpp:
(WebCore::SelectionController::SelectionController):
(WebCore::SelectionController::setSelection):
* editing/SelectionController.h:
* page/Frame.cpp:
(WebCore::Frame::setCaretVisible):
(WebCore::Frame::selectionLayoutChanged):
(WebCore::Frame::caretBlinkTimerFired):
(WebCore::Frame::selectionBounds):
* page/FrameView.cpp:
(WebCore::FrameView::needsLayout):
2010-01-07 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fix a crash seen on the buildbots.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::JSDOMWindowBase): Don't disable specific
function tracking here; it's too late, as some specific functions
may already have been tracked in the base class constructor.
2010-01-07 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
SVGTextElement & friends need to implement svgAttributeChanged
https://bugs.webkit.org/show_bug.cgi?id=33284
Implement svgAttributeChanged() for SVGTextElement & SVGTRefElement. As <text> element contain children,
childrenChanged() has to be implemented as well for SVGTextElement.
Simplify SVGTransformable::parseTransformAttribute() code, clearing lists in the beginning
and on error case, after parsing - previously the calling site had to take care of that.
Tests: svg/dynamic-updates/SVGTRefElement-dom-href-attr.html
svg/dynamic-updates/SVGTextElement-dom-transform-attr.html
svg/dynamic-updates/SVGTextElement-svgdom-transform-prop.html
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::parseMappedAttribute):
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::parseMappedAttribute):
* svg/SVGStyledTransformableElement.cpp:
(WebCore::SVGStyledTransformableElement::parseMappedAttribute):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::svgAttributeChanged):
* svg/SVGTRefElement.h:
* svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::parseMappedAttribute):
(WebCore::SVGTextElement::svgAttributeChanged):
(WebCore::SVGTextElement::childrenChanged):
* svg/SVGTextElement.h:
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::svgAttributeChanged):
* svg/SVGTextPositioningElement.h:
* svg/SVGTransformable.cpp:
(WebCore::SVGTransformable::parseTransformAttribute):
* svg/SVGTransformable.h:
2010-01-07 Brian Weinstein <bweinstein@apple.com>
Reviewed by Adele Peterson.
Padding in popup menu gets lost with styled <select> in Windows.
Fixes <rdar://7285538>, and <http://webkit.org/b/33235>.
[Win] Support padding-right on selects when webkit-appearance is off. Added a test
case for narrow selects with -webkit-appearance: none, and padding left and right to
show that both types of padding are honored.
* manual-tests/select-webkit-appearance-off-narrow-select.html: Added.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::calculatePositionAndSize): Use clientPaddingRight instead of a hardcoded constant.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::clientPaddingRight): If webkit-appearance is off, use padding-right instead of
the hardcoded constant.
2010-01-07 Alexey Proskuryakov <ap@apple.com>
Reviewed by Geoffrey Garen.
https://bugs.webkit.org/show_bug.cgi?id=33057
REGRESSION(r49365): typeof(xhr.responseText) != "string" in Windows
<rdar://problem/7296920> REGRESSION: WebKit fails to start PeaceKeeper benchmark
* config.h: Define JS_EXPORTCLASS. I'm not sure why this isn't done in JSC globally for all
possible clients, but keeping the current design for now.
2010-01-07 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Jon Honeycutt.
Account for scale and current context position (as well as page
position) in the device context world transform passed to
plugins. This is especially important for print surface DPI.
http://bugs.webkit.org/show_bug.cgi?id=32909.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::paintWindowedPluginIntoContext): Revise
world context handling to include scaling and translation
already set for the CTM.
2010-01-07 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Generate V8 bindings header declarations for named and indexed accessors.
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
* bindings/v8/custom/V8CustomBinding.h:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
* bindings/v8/custom/V8HTMLFormElementCustom.cpp:
* bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
* bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
* bindings/v8/custom/V8NodeListCustom.cpp:
* bindings/v8/custom/V8StorageCustom.cpp:
* bindings/v8/custom/V8StyleSheetListCustom.cpp:
* bindings/v8/custom/V8WebGLByteArrayCustom.cpp:
* bindings/v8/custom/V8WebGLFloatArrayCustom.cpp:
* bindings/v8/custom/V8WebGLIntArrayCustom.cpp:
* bindings/v8/custom/V8WebGLShortArrayCustom.cpp:
* bindings/v8/custom/V8WebGLUnsignedByteArrayCustom.cpp:
* bindings/v8/custom/V8WebGLUnsignedIntArrayCustom.cpp:
* bindings/v8/custom/V8WebGLUnsignedShortArrayCustom.cpp:
2010-01-07 Geoffrey Garen <ggaren@apple.com>
Better build fix: use 'this->structure()', since 'structure' is a
PassRefPtr, and therefore null.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::JSDOMWindowBase):
2010-01-07 Geoffrey Garen <ggaren@apple.com>
Build fix: avoid a name conflict by using the local 'structure' instead
of the member 'structure()'.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::JSDOMWindowBase):
2010-01-07 Simon Fraser <simon.fraser@apple.com>
Build fix.
Add RenderEmbeddedObject.h/cpp to all the build systems.
* Android.mk:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCoreSources.bkl:
2010-01-07 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Safari memory usage skyrockets using new Google AdWords interface
https://bugs.webkit.org/show_bug.cgi?id=33343
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::JSDOMWindowBase): Disabled specific function
tracking for the window object, since there's no way to do direct
method calls on the window object; they all go through the window shell.
2010-01-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Kevin Decker, Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=33338
Create a renderer for <object> and <embed>
Add RenderEmbeddedObject, which derives from RenderPartObject, and is created for <object> and <embed>.
Instances of RenderPartObject are now only allocated for iframes.
Move object/embed-related code from RenderPartObject to RenderEmbeddedObject.
* WebCore.xcodeproj/project.pbxproj:
Add RenderEmbeddedObject.h/cpp
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::createRenderer): Create a RenderEmbeddedObject.
(WebCore::HTMLEmbedElement::updateWidget): Use toRenderEmbeddedObject()
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::createRenderer): Make a RenderEmbeddedObject for the plugin-proxy case.
(WebCore::HTMLMediaElement::finishParsingChildren): Use toRenderEmbeddedObject() in the plugin-proxy code.
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::createRenderer): Make a RenderEmbeddedObject
(WebCore::HTMLObjectElement::updateWidget): Use toRenderEmbeddedObject()
* page/FrameView.h:
* page/FrameView.cpp:
(WebCore::FrameView::addWidgetToUpdate):
(WebCore::FrameView::removeWidgetToUpdate):
(WebCore::FrameView::updateWidgets):
Objects in the m_widgetUpdateSet are only ever RenderEmbeddedObjects.
* rendering/RenderEmbeddedObject.cpp: Added.
* rendering/RenderEmbeddedObject.h: Added.
Most of the code moved from RenderPartObject.
* rendering/RenderObject.h:
(WebCore::RenderObject::isEmbeddedObject): New method.
* rendering/RenderPart.cpp:
(WebCore::RenderPart::RenderPart): Initialize m_hasFallbackContent here, rather than in the derived classes.
* rendering/RenderPart.h: Comments.
* rendering/RenderPartObject.h:
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::RenderPartObject): Clean up, code moved to base class, and removed object/embed-specific code.
(WebCore::RenderPartObject::layout): Removed object/embed-specific code.
2010-01-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=33338
Create a renderer for <object> and <embed>
First part of this change: renderPartObject->updateWidget() is a no-op for iframe elements,
so we don't need to call it here, and can thus remove the attach() override entirely.
* html/HTMLIFrameElement.cpp:
* html/HTMLIFrameElement.h:
2009-01-07 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Migrate to canvas-based text viewer / editor that scales.
https://bugs.webkit.org/show_bug.cgi?id=33001
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/JavaScriptHighlighterScheme.js: Added.
(WebInspector.JavaScriptHighlighterScheme):
* inspector/front-end/KeyboardShortcut.js:
* inspector/front-end/TextEditor.js: Added.
(WebInspector.TextEditor):
(WebInspector.TextSelectionModel):
(WebInspector.TextCursor):
* inspector/front-end/TextEditorHighlighter.js: Added.
(WebInspector.TextEditorHighlighter):
(WebInspector.TextEditorHighlighter.prototype.highlight):
(WebInspector.TextEditorHighlighter.prototype._lex):
* inspector/front-end/TextEditorModel.js: Added.
(WebInspector.TextRange):
(WebInspector.TextRange.prototype.clone):
(WebInspector.TextEditorModel):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.css:
* inspector/front-end/inspector.html:
2010-01-07 Christian Sejersen <christian.webkit@gmail.com>
Reviewed by Darin Adler.
document.title does not replace or remove space characters
https://bugs.webkit.org/show_bug.cgi?id=27032
Test: fast/dom/Document/document-title-get.html
* dom/Document.cpp:
(WebCore::Document::Document):
Initialization of m_rawTitle
(WebCore::canonicalizedTitle):
Moved from DocumentLoader.cpp with minor edits
(WebCore::Document::updateTitle):
Ensures the title is canonicalized
(WebCore::Document::setTitle):
Uses m_rawTitle instaed of m_title
(WebCore::Document::removeTitle):
Uses m_rawTitle instead of m_title
* dom/Document.h:
Added m_rawTitle that stores the passed in title, m_title now stores the
canonicalized title
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setTitle):
The title passed in is now canonicalized in Document.cpp
2010-01-07 Yuzo Fujishima <yuzo@google.com>
Reviewed by Darin Adler.
Allow leading/trailing space for CSS nth-*() and lang().
https://bugs.webkit.org/show_bug.cgi?id=17248
For pseudo-classes :nth-*() and :lang(), space must be allowed after '(' and before ')'.
See the bug comments for why we don't allow space at other places.
* css/CSSGrammar.y:
2010-01-07 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
AX: contentEditable DIVs are not AX accessible
https://bugs.webkit.org/show_bug.cgi?id=33325
Test: accessibility/contenteditable-hidden-div.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::canSetValueAttribute):
2010-01-07 Adam Barth <abarth@webkit.org>
Unreviewed. Resolve merge conflict.
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::setContextDebugId):
2010-01-07 Adam Barth <abarth@webkit.org>
No review, rolling out r52847.
http://trac.webkit.org/changeset/52847
https://bugs.webkit.org/show_bug.cgi?id=33232
Might have caused a perf regression. I'm rolling this out to see if it
heals the perf bot.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::~ScriptController):
(WebCore::ScriptController::updateSecurityOrigin):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::haveInterpreter):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::updateDocument):
* bindings/v8/ScriptController.h:
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/V8DOMWindowShell.h:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
(WebCore::V8DOMWrapper::convertDocumentToV8Object):
(WebCore::V8DOMWrapper::convertNewNodeToV8Object):
* bindings/v8/V8IsolatedContext.cpp:
(WebCore::V8IsolatedContext::V8IsolatedContext):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::V8Proxy):
(WebCore::V8Proxy::~V8Proxy):
(WebCore::V8Proxy::handleOutOfMemory):
(WebCore::V8Proxy::evaluateInIsolatedWorld):
(WebCore::V8Proxy::setInjectedScriptContextDebugId):
(WebCore::V8Proxy::clearForClose):
(WebCore::V8Proxy::clearForNavigation):
(WebCore::V8Proxy::context):
(WebCore::V8Proxy::mainWorldContext):
(WebCore::V8Proxy::currentContext):
(WebCore::V8Proxy::setContextDebugId):
* bindings/v8/V8Proxy.h:
(WebCore::V8Proxy::windowShell):
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::adjustedContext):
2010-01-07 Dan Bernstein <mitz@apple.com>
Build fix
* WebCore.xcodeproj/project.pbxproj: Made TypesettingFeatures.h private.
2010-01-07 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
Added Font::typesettingFeatures() and deployed it
No change in funcitonality
* WebCore.xcodeproj/project.pbxproj: Added TypesettingFeatures.h.
* platform/graphics/Font.h:
(WebCore::Font::typesettingFeatures): Added. Determines the typesetting
features from the text redndering mode.
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::canUseGlyphCache): Use typesettingFeatures().
* platform/graphics/SimpleFontData.h:
* platform/graphics/TypesettingFeatures.h: Added.
* platform/graphics/mac/ComplexTextControllerATSUI.cpp:
(WebCore::disableLigatures): Take TypesettingFeatures instead of
TextRenderingMode.
(WebCore::initializeATSUStyle): Ditto.
(WebCore::ComplexTextController::collectComplexTextRunsForCharactersATSUI):
Use typesettingFeatures().
* platform/graphics/mac/ComplexTextControllerCoreText.cpp:
(WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
Ditto.
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::getCFStringAttributes): Take
TypesettingFeatures instead of TextRenderingMode.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::findNextLineBreak): Use TypesettingFeatures().
2010-01-07 Dimitri Glazkov <dglazkov@chromium.org>
No review, rolling out r52900.
http://trac.webkit.org/changeset/52900
https://bugs.webkit.org/show_bug.cgi?id=30055
Broke over 30 SVG pixel tests.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
2010-01-07 Simon Hausmann <simon.hausmann@nokia.com>
Rubber-stamped by Kenneth Rohde Christiansen.
[Qt] The library version number of the first package release is 4.7.0.
* WebCore.pro:
2010-01-07 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Allow the application to override online/offline network status
https://bugs.webkit.org/show_bug.cgi?id=32684
Added API to NetworkStateNotifier for forcing network status.
* platform/network/NetworkStateNotifier.h:
* platform/network/qt/NetworkStateNotifierPrivate.h:
* platform/network/qt/NetworkStateNotifierQt.cpp:
(WebCore::NetworkStateNotifierPrivate::NetworkStateNotifierPrivate):
(WebCore::NetworkStateNotifierPrivate::onlineStateChanged):
(WebCore::NetworkStateNotifierPrivate::networkAccessPermissionChanged):
(WebCore::NetworkStateNotifier::updateState):
(WebCore::NetworkStateNotifier::NetworkStateNotifier):
(WebCore::NetworkStateNotifier::setNetworkAccessAllowed):
2010-01-07 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Fix linkage against Qt mobility API bearer management module
Use the documented .pro file syntax to link against the correct
library and (more importantly) get the include paths correct.
* WebCore.pro:
2010-01-07 Eric Carlson <eric.carlson@apple.com>
Reviewed by Maciej Stachowiak.
https://bugs.webkit.org/show_bug.cgi?id=33272
'abort' event still fired as a progress event
rdar://6710625
Test media/video-error-abort.html doesn't work
Test: http/tests/media/video-error-abort.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::scheduleEvent): Incorporate code from enqueueEvent.
(WebCore::HTMLMediaElement::loadInternal): Fix 'abort' event firing logic missed
in https://bugs.webkit.org/show_bug.cgi?id=30513. Change order of initialization
to match spec wording.
* html/HTMLMediaElement.h: Remove enqueueEvent prototype.
2010-01-07 Kim Grönholm <kim.gronholm@nomovok.com>
Reviewed by Antti Koivisto.
Wrong state and TouchLists in TouchEvents
https://bugs.webkit.org/show_bug.cgi?id=32878
Touch events changed to match the API and semantics of iPhone and
Android. Each new touch point press dispatches a touchstart event with
the pressed touch point(s) in the changedTouches list, and a release
dispatches a touchend event with the released touch point(s) in
changedTouches. Moved points dispatch a touchmove event, with the moved
points in changedTouches. Old behaviour emitted only one touchstart when
the first point was pressed and one touchend when the last point was
released, and any events in between were touchmoves. New presses or
releases could only be detected by comparing the lists touches and
changedTouches.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
* page/EventHandler.h:
2010-01-07 Kent Tamura <tkent@chromium.org>
Reviewed by Maciej Stachowiak.
Remove COM code generation stuff.
https://bugs.webkit.org/show_bug.cgi?id=32854
Remove the followings:
- CodeGeenratorCOM.pm, COM code generator,
- "#if !defined(LANGUAGE_COM) || !LANGUAGE_COM" in IDL files, and
- UUID attributes in IDL files.
* bindings/scripts/CodeGeneratorCOM.pm: Removed.
* css/CSSCharsetRule.idl:
* css/CSSFontFaceRule.idl:
* css/CSSImportRule.idl:
* css/CSSMediaRule.idl:
* css/CSSPageRule.idl:
* css/CSSPrimitiveValue.idl:
* css/CSSRule.idl:
* css/CSSRuleList.idl:
* css/CSSStyleDeclaration.idl:
* css/CSSStyleRule.idl:
* css/CSSStyleSheet.idl:
* css/CSSUnknownRule.idl:
* css/CSSValue.idl:
* css/CSSValueList.idl:
* css/Counter.idl:
* css/MediaList.idl:
* css/RGBColor.idl:
* css/Rect.idl:
* css/StyleSheet.idl:
* css/StyleSheetList.idl:
* css/WebKitCSSKeyframeRule.idl:
* css/WebKitCSSKeyframesRule.idl:
* css/WebKitCSSTransformValue.idl:
* dom/Attr.idl:
* dom/CDATASection.idl:
* dom/CharacterData.idl:
* dom/Comment.idl:
* dom/DOMImplementation.idl:
* dom/Document.idl:
* dom/DocumentFragment.idl:
* dom/DocumentType.idl:
* dom/Element.idl:
* dom/Entity.idl:
* dom/EntityReference.idl:
* dom/Event.idl:
* dom/EventListener.idl:
* dom/EventTarget.idl:
* dom/NamedNodeMap.idl:
* dom/Node.idl:
* dom/NodeList.idl:
* dom/Notation.idl:
* dom/ProcessingInstruction.idl:
* dom/Text.idl:
* html/HTMLAnchorElement.idl:
* html/HTMLAppletElement.idl:
* html/HTMLAreaElement.idl:
* html/HTMLBRElement.idl:
* html/HTMLBaseElement.idl:
* html/HTMLBaseFontElement.idl:
* html/HTMLBlockquoteElement.idl:
* html/HTMLBodyElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLCanvasElement.idl:
* html/HTMLCollection.idl:
* html/HTMLDListElement.idl:
* html/HTMLDirectoryElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLDocument.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFieldSetElement.idl:
* html/HTMLFontElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLFrameSetElement.idl:
* html/HTMLHRElement.idl:
* html/HTMLHeadElement.idl:
* html/HTMLHeadingElement.idl:
* html/HTMLHtmlElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLIsIndexElement.idl:
* html/HTMLLIElement.idl:
* html/HTMLLabelElement.idl:
* html/HTMLLegendElement.idl:
* html/HTMLLinkElement.idl:
* html/HTMLMapElement.idl:
* html/HTMLMarqueeElement.idl:
* html/HTMLMenuElement.idl:
* html/HTMLMetaElement.idl:
* html/HTMLModElement.idl:
* html/HTMLOListElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptGroupElement.idl:
* html/HTMLOptionElement.idl:
* html/HTMLOptionsCollection.idl:
* html/HTMLParagraphElement.idl:
* html/HTMLParamElement.idl:
* html/HTMLPreElement.idl:
* html/HTMLQuoteElement.idl:
* html/HTMLScriptElement.idl:
* html/HTMLSelectElement.idl:
* html/HTMLStyleElement.idl:
* html/HTMLTableCaptionElement.idl:
* html/HTMLTableCellElement.idl:
* html/HTMLTableColElement.idl:
* html/HTMLTableElement.idl:
* html/HTMLTableRowElement.idl:
* html/HTMLTableSectionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLTitleElement.idl:
* html/HTMLUListElement.idl:
2010-01-07 Steve Block <steveblock@google.com>
Reviewed by Darin Adler.
Adds the ability to increase the delay used when scheduling layout.
https://bugs.webkit.org/show_bug.cgi?id=32875
No new tests possible.
* dom/Document.cpp: Modified.
(WebCore::Document::Document): Modified. Initializes extra layout delay to zero.
(WebCore::Document::minimumLayoutDelay): Modified. Adds extra layout delay when calculating minimum layout delay.
* dom/Document.h: Modified.
(WebCore::Document::setExtraLayoutDelay): Added. Sets the extra layout delay.
2010-01-07 Kent Tamura <tkent@chromium.org>
Reviewed by Eric Seidel.
Some IDL files lack "," separators for extended attributes.
https://bugs.webkit.org/show_bug.cgi?id=33190
To find such mistakes, IDLParser.pm rejects whitespace characters in
extended attribute names.
* bindings/scripts/IDLParser.pm:
parseExtendedAttributes rejects whitespace in a name.
* css/WebKitCSSTransformValue.idl: Add missing ",".
* dom/EventTarget.idl: ditto.
2010-01-07 Kent Tamura <tkent@chromium.org>
Reviewed by Adam Barth.
Fix an issue that CodeGeneratorV8.pm doesnt handle HasIndexGetter of
WebKitCSSTransformValue.idl correctly.
https://bugs.webkit.org/show_bug.cgi?id=33193
CodeGeneratorV8.pm doesn't handle inheritance very well and it
tried to refer v8WebKitCSSTransformValueIndexedPropertyGetter(),
which does not exist. Because WebKitCSSTransformValue inherits
CSSValueList and CSSValueList already has HadIndexGetter, we don't
need to do anything for WebKitCSSTransformValue about HasIndexGetter.
* bindings/scripts/CodeGeneratorV8.pm:
Reset $hasGetter for WebKitCSSTransformValue.
2010-01-07 Anton Muhin <antonm@chromium.org>
Reviewed by Adam Barth.
Do not return strings whose handles are in near death state (that means
they might be GCed) or just empty.
https://bugs.webkit.org/show_bug.cgi?id=31180
* bindings/v8/V8Binding.cpp:
(WebCore::v8ExternalString):
2010-01-06 MORITA Hajime <morrita@gmail.com>
Reviewed by Nikolas Zimmermann.
SVG background color on selected text goes wrong when text has
gradient stroke.
https://bugs.webkit.org/show_bug.cgi?id=33069
Introduced SVGTextPaintSubphase like as PaintPhase on html painting,
and paint background and foreground in separate subphase.
Test: svg/text/selection-background-color.xhtml
* rendering/SVGCharacterLayoutInfo.h:
(WebCore::SVGTextChunkWalker::SVGTextChunkWalker):
Added m_setupBackgroundCallback, m_setupForegroundCallback
(WebCore::SVGTextChunkWalker::setupBackground):
(WebCore::SVGTextChunkWalker::setupForeground):
Added.
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paintCharacters):
pass SVGTextPaintInfo instead of SVGPaintServer
* rendering/SVGInlineTextBox.h:
(WebCore::SVGTextPaintSubphase):
(WebCore::SVGTextPaintInfo::SVGTextPaintInfo):
Added.
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::walkTextChunks):
Invoke setupBackground() and setupForeground()
(WebCore::SVGRootInlineBoxPaintWalker::chunkSetupBackgroundCallback):
(WebCore::SVGRootInlineBoxPaintWalker::chunkSetupForegroundCallback):
(WebCore::SVGRootInlineBoxPaintWalker::activePaintServer):
Added.
(WebCore::SVGRootInlineBoxPaintWalker::chunkSetupFillCallback):
(WebCore::SVGRootInlineBoxPaintWalker::chunkSetupStrokeCallback):
(WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
(WebCore::SVGRootInlineBox::paint):
2010-01-06 Kinuko Yasuda <kinuko@chromium.org>
Reviewed by Eric Seidel.
Make windowsKeyCodeForKeyEvent() return correct key code for
numeric-pad arrow keys.
https://bugs.webkit.org/show_bug.cgi?id=33250
Test: fast/events/keydown-numpad-keys.html
* platform/qt/PlatformKeyboardEventQt.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
2009-10-18 Patrick Gansterer <paroga@paroga.com>
Reviewed by Dirk Schulze.
Improve DOM performance in large SVG files.
Check the dirty area before painting a path, which prevents unnecessary
clipping and changes to the GraphicsContext.
https://bugs.webkit.org/show_bug.cgi?id=30055
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
2010-01-06 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
Use a static HashMap for HTMLElement::tagPriority().
https://bugs.webkit.org/show_bug.cgi?id=33269
The prior code compares AtomicStringImpl pointers 18 times at
worst. This change avoids it.
No new tests because this is just a refactoring.
* html/HTMLElement.cpp:
(WebCore::Empty1IntHashTraits): A HashTraits to return 1 as the empty value.
(WebCore::initializeTagPriorityMap): Initialization of a static HashMap.
(WebCore::HTMLElement::tagPriority): Use the static HashMap created by initializeTagPriorityMap().
* html/HTMLElement.h:
(WebCore::HTMLElement::HTMLElement): Add an assertion about non-null localName().
2010-01-06 Mike Belshe <mike@belshe.com>
Add a flag to the ResourceResponse for tracking if a request was
fetched via SPDY. This is plumbed through so that we can inform
a webpage via JavaScript if it was fecthed via the experimental
SPDY protocol.
https://bugs.webkit.org/show_bug.cgi?id=33186
* platform/network/chromium/ResourceResponse.h:
(WebCore::ResourceResponse::wasFetchedViaSpdy):
(WebCore::ResourceResponse::setWasFetchedViaSpdy):
2010-01-06 Jakub Wieczorek <faw217@gmail.com>
Reviewed by Adam Treat.
[Qt] RenderTheme: Missing support for native sliders
https://bugs.webkit.org/show_bug.cgi?id=33122
Implement painting of native slider controls in RenderTheme
and unskip a couple of layout tests that are passing after
this change.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::paintSliderTrack):
(WebCore::RenderThemeQt::adjustSliderTrackStyle):
(WebCore::RenderThemeQt::paintSliderThumb):
(WebCore::RenderThemeQt::adjustSliderThumbStyle):
(WebCore::RenderThemeQt::supportsFocus):
(WebCore::RenderThemeQt::adjustSliderThumbSize):
* platform/qt/RenderThemeQt.h:
2010-01-06 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
Reviewed by Darin Adler.
Adjust incorrect comments after r40534.
* bindings/js/JSDOMBinding.cpp:
(WebCore::markActiveObjectsForContext):
2010-01-06 Fumitoshi Ukai <ukai@chromium.org>
Unreviewed build fix for chromium.
Add "bool V8WorkerContext::WebSocketEnabled()"
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::V8WorkerContext::WebSocketEnabled):
2010-01-06 Fumitoshi Ukai <ukai@chromium.org>
Unreviewed build fix.
remove wrong assertion
* websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):
2010-01-06 Fumitoshi Ukai <ukai@chromium.org>
Reviewed by David Levin.
Add WebSocket feature in Worker
https://bugs.webkit.org/show_bug.cgi?id=32214
Introduce ThreadableWebSocketChannel interface and add
WorkerThreadableWebSocketChannel for Worker.
WorkerThreadableWebSocketChannel uses WebSocketChannel in the
main thread, which is managed by Peer and communicated via Bridge.
Test: websocket/tests/workers/worker-simple.html
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSWebSocketConstructor.h:
* bindings/js/JSWorkerContextCustom.cpp:
(WebCore::JSWorkerContext::webSocket):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::convertEventTargetToV8Object):
* bindings/v8/custom/V8WebSocketCustom.cpp:
(WebCore::V8Custom::v8WebSocketConstructorCallback):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
* platform/CrossThreadCopier.cpp:
(WebCore::::copy):
* platform/CrossThreadCopier.h:
(WebCore::):
* websockets/ThreadableWebSocketChannel.cpp: Added.
* websockets/ThreadableWebSocketChannel.h: Added.
* websockets/ThreadableWebSocketChannelClientWrapper.h: Added.
* websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
(WebCore::WebSocket::didReceiveMessage):
* websockets/WebSocket.h:
* websockets/WebSocketChannel.h:
(WebCore::WebSocketChannel::refThreadableWebSocketChannel):
(WebCore::WebSocketChannel::derefThreadableWebSocketChannel):
* websockets/WebSocketChannelClient.h:
* websockets/WebSocketHandshake.h:
* websockets/WorkerThreadableWebSocketChannel.cpp: Added.
* websockets/WorkerThreadableWebSocketChannel.h: Added.
* workers/WorkerContext.idl:
2010-01-06 Adam Bergkvist <adam.bergkvist@ericsson.com>
Reviewed by Darin Adler.
Modified EventSource event-stream parser to support a single CR as line ending.
https://bugs.webkit.org/show_bug.cgi?id=33207
* page/EventSource.cpp:
(WebCore::EventSource::EventSource):
(WebCore::EventSource::parseEventStream):
* page/EventSource.h:
2010-01-06 Joanmarie Diggs <joanmarie.diggs@gmail.com>
Reviewed by Xan Lopez.
https://bugs.webkit.org/show_bug.cgi?id=30883
[Gtk] Implement AtkText for HTML elements which contain text
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(getInterfaceMaskFromObject):
(getPangoLayoutForAtk):
(webkit_accessible_text_get_text):
* accessibility/gtk/AccessibilityObjectAtk.cpp:
(AccessibilityObject::accessibilityPlatformIncludesObject):
2010-01-06 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/7488126> With text-rendering: optimizelegibility, sometimes lines run too long
https://bugs.webkit.org/show_bug.cgi?id=32794
Test: platform/mac/fast/text/line-breaking-with-kerning.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::findNextLineBreak): When kerning is enabled, include
the trailing space when measuring a word, then subtract its width. This
accounts for kerning between the last glyph of the word and the following space.
2010-01-06 Kevin Decker <kdecker@apple.com>
Reviewed by Simon Fraser
Second step of:
<rdar://problem/6398111> Integrate hardware layers with out-of-process plug-ins layer hosting mechanism
* Plugins/Hosted/WebHostedNetscapePluginView.h: Expose the CALayer of the plugin by adding -pluginLayer method.
* Plugins/Hosted/WebHostedNetscapePluginView.mm:
(-[WebHostedNetscapePluginView pluginLayer]): Added.
* Plugins/WebNetscapePluginView.h: Expose the CALayer of the plugin by adding -pluginLayer method.
* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView pluginLayer]): Added.
2010-01-06 Adam Barth <abarth@webkit.org>
No review, rolling out r52877.
http://trac.webkit.org/changeset/52877
https://bugs.webkit.org/show_bug.cgi?id=33243
I screwed up landing this patch and only partially applied the patch I
was trying to land.
* bindings/ScriptControllerBase.cpp:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeScriptInWorld):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::~ScriptController):
(WebCore::ScriptController::updateSecurityOrigin):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::haveInterpreter):
(WebCore::ScriptController::mainWorldWindowShell):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::clearForClose):
(WebCore::ScriptController::destroyWindowShell):
(WebCore::ScriptController::updateDocument):
* bindings/v8/ScriptController.h:
(WebCore::ScriptController::proxy):
(WebCore::ScriptController::windowShell):
(WebCore::ScriptController::existingWindowShell):
(WebCore::ScriptController::evaluateInWorld):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::create):
(WebCore::V8DOMWindowShell::V8DOMWindowShell):
(WebCore::V8DOMWindowShell::initContextIfNeeded):
2010-01-06 Eric Seidel <eric@webkit.org>
Unreviewed. Rolling back in a change I should not have rolled out.
The original commit http://trac.webkit.org/changeset/52862
was rolled out again in http://trac.webkit.org/changeset/52871
but I now believe that rollout to be in error.
My sincerest apologies for the churn.
Fix the bug in previous commit: we shouldn't finish
decoding if "sizeOnly" is true.
https://bugs.webkit.org/show_bug.cgi?id=33258
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageReader::decode):
2010-01-06 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
[v8] Let ScriptController have more than one windowShell
https://bugs.webkit.org/show_bug.cgi?id=33243
This patch lets ScriptController have more than one windowShell. We're
currently only using one of them (for the main world), but this patch
lets us use other ones for isolated worlds soon.
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeScriptInWorld):
* bindings/js/ScriptController.cpp:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::createWorld):
(WebCore::ScriptController::initScript):
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::~ScriptController):
(WebCore::ScriptController::updateSecurityOrigin):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::mainWorldWindowShell):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::clearForClose):
(WebCore::ScriptController::destroyWindowShell):
(WebCore::ScriptController::updateDocument):
* bindings/v8/ScriptController.h:
(WebCore::ScriptController::windowShell):
(WebCore::ScriptController::existingWindowShell):
(WebCore::ScriptController::globalObject):
(WebCore::ScriptController::proxy):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::create):
(WebCore::V8DOMWindowShell::V8DOMWindowShell):
(WebCore::V8DOMWindowShell::initContextIfNeeded):
* bindings/v8/V8DOMWindowShell.h:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
(WebCore::V8DOMWrapper::convertNewNodeToV8Object):
2010-01-06 Mark Rowe <mrowe@apple.com>
Fix the Mac build.
* WebCore.base.exp: Export symbols WebKit would like to use.
* plugins/PluginWidget.h:
(WebCore::PluginWidget::PluginWidget): Redeclare a constructor.
2010-01-06 Kevin Decker <kdecker@apple.com>
Reviewed by Eric Carlson.
First step toward:
<rdar://problem/6398111> Integrate hardware layers with out-of-process plug-ins layer hosting mechanism
Small refactoring moving the PluginWidget class from WebKit to WebCore.
* WebCore.xcodeproj/project.pbxproj: Added new source files and a "mac" group; exposes PluginWidget.h as a "Private" role
* platform/Widget.h: Added isPluginWidget().
(WebCore::Widget::isPluginWidget):
* plugins/PluginWidget.h: Added.
(WebCore::PluginWidget::isPluginWidget): Added as an interim solution until Mac plug-ins inheirt from PluginView.
* plugins/mac/PluginWidgetMac.mm: Added.
(WebCore::PluginWidget::invalidateRect): Added. Extracted from the old WebKit/FrameLoaderClientMac version of PluginWidget
2010-01-06 Eric Seidel <eric@webkit.org>
No review, rolling out r52862.
http://trac.webkit.org/changeset/52862
https://bugs.webkit.org/show_bug.cgi?id=33258
Caused svg/W3C-SVG-1.1/linking-a-01-b.svg to crash on the
Leopard Release builder.
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageReader::decode):
2010-01-06 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Revert the part of my last commit touching Base.xcconfig, was not meant to be commited.
* Configurations/Base.xcconfig:
2010-01-05 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Generate header declarations for V8 binding security checks
and delete V8CustomBinding.cpp
* Android.v8bindings.mk: Removed V8CustomBinding.cpp.
* WebCore.gypi: Removed V8CustomBinding.cpp.
* bindings/scripts/CodeGeneratorV8.pm: Generate security check declarations.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::getTargetFrame): Moved from V8CustomBinding.cpp.
(WebCore::reportUnsafeJavaScriptAccess):
(WebCore::V8DOMWindowShell::createNewContext):
(WebCore::V8DOMWindowShell::setLocation): Moved from V8CustomBinding.cpp.
* bindings/v8/V8DOMWindowShell.h:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::downcastSVGPathSeg): Moved from V8CustomBinding.cpp.
(WebCore::V8DOMWrapper::convertSVGObjectWithContextToV8Object):
(WebCore::V8DOMWrapper::getTemplate):
* bindings/v8/custom/V8CustomBinding.cpp: Removed.
* bindings/v8/custom/V8CustomBinding.h:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::locationAccessorSetter):
(WebCore::V8DOMWindow::namedSecurityCheck):
(WebCore::V8DOMWindow::indexedSecurityCheck):
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
(WebCore::V8Document::locationAccessorSetter):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::indexedSecurityCheck):
(WebCore::V8History::namedSecurityCheck):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::indexedSecurityCheck):
(WebCore::V8Location::namedSecurityCheck):
2010-01-06 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Marker code is buggy: referencePoint translation is off
https://bugs.webkit.org/show_bug.cgi?id=33012
Rewrite marker code, as it had many issues:
- Correct refX/refY handling (covered by new marker-referencePoint.svg test)
- Calculate marker bounds on layout time, instead of paint time, to deliver correct repaint rects
- Cleanup RenderPath code, which was cluttered by marker stuff (outlay in SVGMarkerLayoutInfo)
- Fix SVGResource assuming that there is only one resource per resource type per element. Markers
can have three different resources of the same type (three markers, start/mid/end markers)
Filed bug 33115 (PathElementAddQuadCurveToPoint not handled for <marker>), which was just a TODO in the code before.
Fixes all svg/custom/marker*.svg tests, that use dynamic updates (propagation failed before).
Test: svg/custom/marker-referencePoint.svg
svg/custom/marker-opacity.svg
svg/custom/marker-strokeWidth-changes.svg
* Android.mk: Add SVGMarkerData.h / SVGMarkerLayoutInfo.(cpp,h) to build.
* GNUmakefile.am: Ditto.
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* page/FrameView.cpp: Notify RenderSVGRoot children about viewport size changes, just like it's handled for <body> in HTML.
(WebCore::FrameView::layout): This is important, as marker bounding boxes may depend on the current viewport size through relative coordinates used in <svg>.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::markerBoundingBox): Calculates and caches marker boundaries in the layout() phase.
(WebCore::RenderPath::repaintRectInLocalCoordinates): Use the cached marker bounding box during paint() time.
(WebCore::RenderPath::setPath): Clear marker boundaries upon path changes.
(WebCore::RenderPath::paint): Use SVGMarkerLayoutInfo::drawMarkers() instead of the local drawMarkersIfNeeded() function, which is gone now.
(WebCore::RenderPath::calculateMarkerBoundsIfNeeded): Utilized by markerBoundingBox() to request SVGResourceMarker objects and calculate their boundaries.
* rendering/RenderPath.h: Store SVGMarkerLayoutInfo objects, and rename m_markerBounds to m_cachedLocalMarkerBBox for consistency.
(WebCore::RenderPath::path): Inline this accessor.
* rendering/RenderSVGContainer.h: Make paint() public (to be used from SVGResourceMarker), all other methods protected (to be used from RenderSVGViewportContainer).
* rendering/RenderSVGViewportContainer.cpp: Remove useless paint() override, as the comment in the code indicated.
(WebCore::RenderSVGViewportContainer::markerBoundaries): Maps the marker contents repaintRectInLocalCoordinates() into the final coordinate system (see code).
(WebCore::RenderSVGViewportContainer::markerContentTransformation): Add marker-specific helper method, allowing to make viewportTransform() private again.
* rendering/RenderSVGViewportContainer.h: Marking viewportTransform() private, it's never meant to be used outside this renderer.
* rendering/SVGMarkerData.h: Added. Refactored from existing RenderPath code, preserving original copyrights.
(WebCore::SVGMarkerData::): Helper struct for SVGMarkerLayoutInfo.
(WebCore::SVGMarkerData::origin): Holds the final computed destination of a marker.
(WebCore::SVGMarkerData::marker): Holds a pointer to the associated SVGResourceMarker object, which we're aiming to layout.
(WebCore::SVGMarkerData::currentAngle): Calculates the current angle for a certain marker type (start/mid/end) based upon the computed inslope/outslope values.
(WebCore::SVGMarkerData::updateTypeAndMarker): Helper method.
(WebCore::SVGMarkerData::updateOutslope): Ditto.
(WebCore::SVGMarkerData::updateMarkerDataForPathElement): Does the actual inslope/outslope calculation.
(WebCore::SVGMarkerData::updateInslope): Helper method.
* rendering/SVGMarkerLayoutInfo.cpp: Added. New approach to build marker layout info, this time correct during layout() time instead of paint() time.
(WebCore::SVGMarkerLayoutInfo::SVGMarkerLayoutInfo):
(WebCore::SVGMarkerLayoutInfo::~SVGMarkerLayoutInfo):
(WebCore::processStartAndMidMarkers): Static helper method used to visit each path element in order to calculate inslopes/outslopes (-> orientation angles)
(WebCore::SVGMarkerLayoutInfo::calculateBoundaries): Build list of MarkerLayout objects, used to query boundaries, and to paint markers during drawMarkers().
(WebCore::SVGMarkerLayoutInfo::drawMarkers): Cheap method walking existing MarkerLayout vector, drawing the individual RenderSVGViewportContainer of the markers.
(WebCore::SVGMarkerLayoutInfo::addLayoutedMarker): Helper method.
* rendering/SVGMarkerLayoutInfo.h: Added.
(WebCore::MarkerLayout::MarkerLayout): Helper struct storing a pair of SVGResourceMarker* and a TranformationMatrix.
(WebCore::SVGMarkerLayoutInfo::markerData): Public helper methods returning references to private member variables, used from processStartAndMidMarkers.
(WebCore::SVGMarkerLayoutInfo::midMarker): Ditto.
(WebCore::SVGMarkerLayoutInfo::elementIndex): Ditto.
* svg/SVGMarkerElement.cpp: Adopt to name change: setRef() -> setReferencePoint(). setMarker() -> setRenderer()
(WebCore::SVGMarkerElement::~SVGMarkerElement): Remove obsolete detach() hack, fixed by SVGUseElement changes.
(WebCore::SVGMarkerElement::canvasResource): Add ASSERT(renderer()) to clarify that canvasResource() is only meant to used after renderer creation.
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::~SVGSVGElement): Remove obsolete detach() hack, fixed by SVGUseElement changes.
* svg/SVGUseElement.cpp: Rework buildPendingResource() to remove SVGSVGElement/SVGMarkerElement detach() hacks (called manually from destructors), see below.
(WebCore::SVGUseElement::buildPendingResource): Always detach() the shadow tree root element, before destructing it - this caused the regression with this patch before.
* svg/graphics/SVGResource.cpp: Instead of maintaining a global hashmap between SVGStyledElements and an array of possible SVGResources, use a HashSet of SVGResources
and directly scan the already existing list of clients for a certain SVGResource. This wrong approach has been introduced over two years
ago, making the assumption that there's only one resource type per element. Though markers can provide three resources of the same type
per element (all SVGResourceMarker objects, but in different rules: start/mid/end marker). That information is only available while painting.
(WebCore::resourceSet): Add global static HashSet<SVGResource*>.
(WebCore::SVGResource::SVGResource): Add us to the resourceSet.
(WebCore::SVGResource::~SVGResource): Remove us from resourceSet.
(WebCore::SVGResource::removeClient): Traverse all SVGResource clients and remove the passed SVGStyledElement from the client list (invoked by SVGStyledElement destructor).
(WebCore::SVGResource::addClient): Remove the offending part of the old approach, making the wrong assumption regarding resource types.
* svg/graphics/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::SVGResourceMarker):
(WebCore::SVGResourceMarker::markerTransformation): Create TransformationMatrix in the local marker content (RenderSVGViewportContainer) coordinate system, to position a marker.
(WebCore::SVGResourceMarker::draw): Simplify marker drawing a lot: used the passing TransformationMatrix (cached in SVGMarkerLayoutInfo) to draw the marker content renderer.
(WebCore::SVGResourceMarker::externalRepresentation): Adopt to refX/refY -> referencePoint changes.
* svg/graphics/SVGResourceMarker.h: Store a FloatPoint m_referecePoint instead of two refX/refY float values.
(WebCore::SVGResourceMarker::setRenderer): Renamed from setMarker().
(WebCore::SVGResourceMarker::setReferencePoint): Renamed from setRef().
(WebCore::SVGResourceMarker::referencePoint): New accessor replacing refX() / refY().
2010-01-06 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVG feImage support
https://bugs.webkit.org/show_bug.cgi?id=31905
This implements the SVG Filter effect feImage with support of fragment urls.
It also includes a bug fix for feComposite. feComposite didn't cover values
bigger than 255 correctly on composite oeprator arithmetic.
Tests: There are already many feImage tests in trunk. They just needed updated
pixel test results.
The feComposite bug is covered by svg/W3C-SVG-1.1/filters-composite-02-b.svg
and depends on feImage.
* platform/graphics/filters/FEComposite.cpp:
(WebCore::arithmetic):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paint):
* rendering/RenderSVGImage.h:
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::requestImageResource):
(WebCore::SVGFEImageElement::parseMappedAttribute):
(WebCore::SVGFEImageElement::notifyFinished):
(WebCore::SVGFEImageElement::build):
* svg/SVGFEImageElement.h:
* svg/SVGFEImageElement.idl:
* svg/SVGPreserveAspectRatio.cpp:
(WebCore::SVGPreserveAspectRatio::transformRect):
* svg/SVGPreserveAspectRatio.h:
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::FEImage):
(WebCore::FEImage::create):
(WebCore::FEImage::apply):
* svg/graphics/filters/SVGFEImage.h:
2010-01-06 Yong Li <yoli@rim.com>
Reviewed by Darin Adler.
Fix the bug in previous commit: we shouldn't finish
decoding if "sizeOnly" is true.
https://bugs.webkit.org/show_bug.cgi?id=33258
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageReader::decode):
2010-01-06 Eric Seidel <eric@webkit.org>
No review, rolling out r52855.
http://trac.webkit.org/changeset/52855
https://bugs.webkit.org/show_bug.cgi?id=33222
Caused 6 layout tests to fail on Mac
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::continueAfterContentPolicy):
* loader/ResourceLoader.cpp:
* loader/ResourceLoader.h:
2010-01-06 Yong Li <yoli@rim.com>
Reviewed by Darin Adler.
Let ReourceLoader deliver segmented data
when loading resource from a SharedBuffer object.
https://bugs.webkit.org/show_bug.cgi?id=33222
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::continueAfterContentPolicy):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didReceiveData):
* loader/ResourceLoader.h:
2010-01-06 Simon Hausmann <simon.hausmann@nokia.com>
Unreviewed trivial Qt build fix.
Prefix the phonon includes with phonon/ to avoid conflicts with the S60
audio routing API ( http://wiki.forum.nokia.com/index.php/Audio_Routing_API ).
* platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
2010-01-05 Darin Fisher <darin@chromium.org>
Reviewed by Adam Barth.
Moving v8::HandleScope up above declaration of v8::Local to fix a
Chromium startup crash.
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::setContextDebugId):
2010-01-05 Adam Barth <abarth@webkit.org>
Reviewed by Dimitri Glazkov.
[v8] Move V8DOMWindowShell to ScriptController
https://bugs.webkit.org/show_bug.cgi?id=33232
This patch moves V8DOMWindow shell to ScriptController, where the
window shells live in JSC land. The next step will be to allow for
more than one window shell per script controller.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::~ScriptController):
(WebCore::ScriptController::updateSecurityOrigin):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::haveInterpreter):
(WebCore::ScriptController::mainWorldWindowShell):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::clearForClose):
(WebCore::ScriptController::destroyWindowShell):
(WebCore::ScriptController::updateDocument):
* bindings/v8/ScriptController.h:
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::~V8DOMWindowShell):
* bindings/v8/V8DOMWindowShell.h:
(WebCore::V8DOMWindowShell::localHandleForContext):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
(WebCore::V8DOMWrapper::convertDocumentToV8Object):
(WebCore::V8DOMWrapper::convertNewNodeToV8Object):
* bindings/v8/V8IsolatedContext.cpp:
(WebCore::V8IsolatedContext::V8IsolatedContext):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::V8Proxy):
(WebCore::V8Proxy::~V8Proxy):
(WebCore::V8Proxy::handleOutOfMemory):
(WebCore::V8Proxy::evaluateInIsolatedWorld):
(WebCore::V8Proxy::setInjectedScriptContextDebugId):
(WebCore::V8Proxy::context):
(WebCore::V8Proxy::mainWorldContext):
(WebCore::V8Proxy::currentContext):
(WebCore::V8Proxy::setContextDebugId):
* bindings/v8/V8Proxy.h:
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::adjustedContext):
2010-01-05 Kent Tamura <tkent@chromium.org>
Reviewed by Maciej Stachowiak.
Implement HTML5 <header> and <footer> elements.
https://bugs.webkit.org/show_bug.cgi?id=32943
<header> and <footer> should behave the same as <nav>, <section>,
<article>, and <aside>. The HTML parser doesn't need to restrict
the nesting of header/footer elements.
Tests: fast/html/footer-element.html
fast/html/header-element.html
* css/html.css: Add header/footer as block elements.
* editing/htmlediting.cpp:
(WebCore::validBlockTag): Add headerTag and footerTag.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::tagPriority): Returns 5 for headerTag and footerTag.
(WebCore::blockTagList): Add headerTag and footerTag.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleError): Rename isHeaderTag() to isHeadingTag()
(WebCore::HTMLParser::getNode): Add headerTag and footerTag.
(WebCore::HTMLParser::isHeadingTag): Renamed from isHeaderTag().
* html/HTMLParser.h:
- Rename isHeaderTag() to isHeadingTag()
- Remove non-existing popNestedHeaderTag().
* html/HTMLTagNames.in: Add header and footer.
2010-01-05 Darin Adler <darin@apple.com>
Reviewed by Dan Bernstein.
CDATA sections are merged into Text nodes when normalize() is used
https://bugs.webkit.org/show_bug.cgi?id=33191
Test: fast/dom/Node/normalize-with-cdata.html
* dom/Node.cpp:
(WebCore::Node::normalize): Use nodeType instead of isTextNode.
2010-01-05 James Robinson <jamesr@google.com>
Reviewed by Eric Seidel.
Typing in Google Wave repaints the whole screen
https://bugs.webkit.org/show_bug.cgi?id=32295
Marks a RenderBlock without block children for layout and painting when it has no line boxes only if it has inline immediate children.
The existing logic uses the existence of line boxes as a dirty flag to indicate that line boxes need to be regenerated. This heuristic
fails when the RenderBlock does not have any in-flow children at all, causing the RenderBlock to get unnecessarily marked for layout and
painting. This is particularly bad for common scrollbar manipulation tricks like putting one positioned div inside another - this
structure caused the entire outer div's bounds to get scheduled for a paint whenever there was any mutation of any descendant.
Test: LayoutTests/fast/repaint/block-no-inline-children.html (only shows up in pixel tests)
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
2010-01-05 James Robinson <jamesr@chromium.org>
Reviewed by David Hyatt.
Cleans up line box clearing when a RenderBlock loses its last child.
https://bugs.webkit.org/show_bug.cgi?id=33228
The 'fullLayout' flag in RenderBlock::layoutInlineChildren() is pretty vague, hopefully this will be easier for the next person to figure out.
No new tests.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeChild):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
2010-01-05 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Provide the "documentURL" property for documents and frame owner elements
This is necessary to determine owner document URLs for nodes (all nodes have
the top-level document set as ownerDocument).
https://bugs.webkit.org/show_bug.cgi?id=33025
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode):
2010-01-05 Peter Kasting <pkasting@google.com>
Reviewed by Adam Barth.
Public GIF decoder should stop decoding when allocation fails
https://bugs.webkit.org/show_bug.cgi?id=33231
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::haveDecodedRow):
* platform/image-decoders/gif/GIFImageDecoder.h:
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::output_row):
(GIFImageReader::do_lzw):
(GIFImageReader::read):
* platform/image-decoders/gif/GIFImageReader.h:
2010-01-05 Yong Li <yoli@rim.com>
Reviewed by Darin Adler.
Make PNG image decoder work with segmented SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=33213
* platform/image-decoders/ImageDecoder.cpp:
(WebCore::ImageDecoder::create):
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageDecoder::ImageDecoder):
(WebCore::ImageDecoder::isAllDataReceived):
(WebCore::ImageDecoder::setData):
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageReader::PNGImageReader):
(WebCore::PNGImageReader::close):
(WebCore::PNGImageReader::currentBufferSize):
(WebCore::PNGImageReader::setComplete):
(WebCore::PNGImageReader::decode):
(WebCore::PNGImageDecoder::decode):
(WebCore::PNGImageDecoder::headerAvailable):
(WebCore::PNGImageDecoder::pngComplete):
2010-01-05 Adam Barth <abarth@webkit.org>
Rubber stamped by Dimitri Glazkov.
Fix namespace indent for ScriptController.
* bindings/v8/ScriptController.h:
(WebCore::ScriptController::proxy):
(WebCore::ScriptController::windowShell):
(WebCore::ScriptController::existingWindowShell):
(WebCore::ScriptController::xssAuditor):
(WebCore::ScriptController::setProcessingTimerCallback):
(WebCore::ScriptController::setPaused):
(WebCore::ScriptController::isPaused):
(WebCore::ScriptController::sourceURL):
(WebCore::ScriptController::evaluateInWorld):
2010-01-05 Rachel Petterson <rlp@google.com>
Reviewed by Simon Fraser.
Implement most cases of texImage2D and texSubImage2D
https://bugs.webkit.org/show_bug.cgi?id=31562
This fix is with Chris Marrin <cmarrin@apple.com>.
Also bug: https://bugs.webkit.org/show_bug.cgi?id=31493
From Chris:
This implements all cases except HTMLVideoElement. It changes
the bindings to accept all parameter forms of the call. Then
it plumbs the calls through WebGLRenderingContext down to
GraphicsContext3D for the actual implementation.
From Rachel:
This implements texImage2D for chromium. It also implements the V8
bindings for texSubImage2D and updates the V8 bindings for texImage2D.
Tests: fast/canvas/webgl/texImage2DImageDataTest.html
fast/canvas/webgl/texImageTest.html
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::texImage2D):
(WebCore::JSWebGLRenderingContext::texSubImage2D):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texSubImage2D):
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContext.idl:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/mac/GraphicsContext3DMac.cpp:
(WebCore::imageToTexture):
(WebCore::GraphicsContext3D::texImage2D):
(WebCore::GraphicsContext3D::texSubImage2D):
2010-01-04 Brian Weinstein <bweinstein@apple.com>
Reviewed by Tim Hatcher.
Part of <https://bugs.webkit.org/show_bug.cgi?id=32568>.
Web Inspector: Context Menus should be used in more places.
Add context menus to handle the interaction with breakpoints in the Source Frame. Currently
we use left click to add/disable/remove breakpoints, and left click to edit (for conditional
breakpoints), but this is hard to discover and behaves differently than Xcode.
Change the behavior to be more like Xcode, left click adds a breakpoint if there isn't one, and
removes it if there is one.
On the context menu, if there is no breakpoint there, we have Add Breakpoint, and Add Conditional
Breakpoint. If there is a breakpoint there, we add entries for Edit Breakpoint (edit
the condition), Remove Breakpoint, and Enable/Disable Breakpoint (based on the current state).
* English.lproj/localizedStrings.js: Added localized context menu entries.
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._documentContextMenu.addAndEditBreakpoint):
(WebInspector.SourceFrame.prototype._documentContextMenu): Added context menu entries and handlers.
(WebInspector.SourceFrame.prototype._documentMouseDown): Changed left click behavior (Add -> Remove).
2010-01-05 Chris Fleizach <cfleizach@apple.com>
Reviewed by Eric Seidel.
AX: need a way to get the progress of a webpage load
https://bugs.webkit.org/show_bug.cgi?id=33221
Test: platform/mac/accessibility/estimated-progress.html
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::estimatedLoadingProgress):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::estimatedLoadingProgress):
* accessibility/AccessibilityRenderObject.h:
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilityAttributeNames]):
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2010-01-05 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Drag & drop layout tests fail even when run manually
https://bugs.webkit.org/show_bug.cgi?id=33055
No new tests. Fix 3 layout tests when run manually.
fast/events/drag-and-drop.html
fast/events/drag-and-drop-dataTransfer-types-nocrash.html
fast/events/drag-and-drop-fire-drag-dragover.html
Running these tests in DRT will be fixed in 31332.
* page/qt/DragControllerQt.cpp:
(WebCore::DragController::cleanupAfterSystemDrag):
Cleanup the drag operation if it failed to complete,
Otherwise, new drag operations will not be possible.
2010-01-05 Gustavo Noronha Silva <gns@gnome.org>
Reviewed by Xan Lopez.
Based on idea and original patch by Evan Martin.
Remove libWebCore intermediate library, to improve link time.
[GTK] Build time must be reduced
https://bugs.webkit.org/show_bug.cgi?id=32921
* GNUmakefile.am:
2010-01-05 Nate Chapin <japhet@chromium.org>
Reviewed by Adam Barth.
Move allowSetting{Frame}SrcToJavascriptUrl from V8Custom to BindingSecurity and
remove the v8-specific pieces.
https://bugs.webkit.org/show_bug.cgi?id=33182
* bindings/BindingSecurity.h:
(WebCore::::allowSettingFrameSrcToJavascriptUrl): Moved from V8CustomBinding.cpp.
(WebCore::::allowSettingSrcToJavascriptURL): Moved from V8CustomBinding.cpp.
* bindings/v8/custom/V8AttrCustom.cpp:
(WebCore::V8Attr::valueAccessorSetter):
* bindings/v8/custom/V8CustomBinding.cpp:
* bindings/v8/custom/V8CustomBinding.h:
* bindings/v8/custom/V8ElementCustom.cpp:
(WebCore::V8Element::setAttributeCallback):
(WebCore::V8Element::setAttributeNodeCallback):
(WebCore::V8Element::setAttributeNSCallback):
(WebCore::V8Element::setAttributeNodeNSCallback):
* bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
(WebCore::V8HTMLFrameElement::srcAccessorSetter):
(WebCore::V8HTMLFrameElement::locationAccessorSetter):
* bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
(WebCore::V8HTMLIFrameElement::srcAccessorSetter):
2010-01-05 Adam Barth <abarth@webkit.org>
Reviewed by Dimitri Glazkov.
[V8] Separate DOMWrapperWorld from V8IsolatedWorld
https://bugs.webkit.org/show_bug.cgi?id=33087
This change separate DOMWrapperWorld and IsolatedWorld from
V8IsolatedWorld. I've also renamed V8IsolatedWorld to
V8IsolatedContext in preparation for having more than one context in a
single isolated world.
This patch moves us closer to two goals:
1) Matching the structure of the JSC implementation of isolated worlds.
2) Letting scripts running in isolated contexts see into other iframes
(which requires having more than one context in an isolated world.)
* WebCore.gypi:
* bindings/v8/DOMWrapperWorld.cpp: Added.
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
(WebCore::mainThreadNormalWorld):
* bindings/v8/DOMWrapperWorld.h: Added.
(WebCore::DOMWrapperWorld::create):
* bindings/v8/IsolatedWorld.cpp: Added.
(WebCore::IsolatedWorld::IsolatedWorld):
(WebCore::IsolatedWorld::~IsolatedWorld):
* bindings/v8/IsolatedWorld.h: Added.
(WebCore::IsolatedWorld::create):
(WebCore::IsolatedWorld::count):
(WebCore::IsolatedWorld::domDataStore):
* bindings/v8/MainThreadDOMData.cpp:
(WebCore::MainThreadDOMData::getMainThreadStore):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::currentScriptState):
* bindings/v8/ScriptState.cpp:
* bindings/v8/ScriptState.h:
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
* bindings/v8/V8IsolatedContext.cpp: Copied from WebCore/bindings/v8/V8IsolatedWorld.cpp.
(WebCore::V8IsolatedContext::contextWeakReferenceCallback):
(WebCore::V8IsolatedContext::V8IsolatedContext):
(WebCore::V8IsolatedContext::destroy):
(WebCore::V8IsolatedContext::~V8IsolatedContext):
(WebCore::V8IsolatedContext::scriptState):
* bindings/v8/V8IsolatedContext.h: Copied from WebCore/bindings/v8/V8IsolatedWorld.h.
(WebCore::V8IsolatedContext::getEntered):
(WebCore::V8IsolatedContext::world):
* bindings/v8/V8IsolatedWorld.cpp: Removed.
* bindings/v8/V8IsolatedWorld.h: Removed.
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::evaluateInIsolatedWorld):
(WebCore::V8Proxy::context):
* bindings/v8/V8Proxy.h:
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
2010-01-05 Adam Barth <abarth@webkit.org>
Reviewed by Dimitri Glazkov.
[V8] Move createWindow into generic bindings so it can be shared with JSC
https://bugs.webkit.org/show_bug.cgi?id=33201
This patch moves createWindow from V8-specific code into the generic
bindings so that is can be re-used by the JavaScriptCore bindings. I
haven't actually moved the JSC bindings over to using this yet.
Also, I organized the generic bindings a bit more as it's becoming
clearer how things are going to shape up. There are still some
question marks, but hopefully the answers will become clear as we
progress.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* bindings/generic/BindingDOMWindow.h: Added.
(WebCore::::createWindow):
* bindings/generic/BindingSecurity.h: Renamed from WebCore/bindings/BindingSecurity.h.
(WebCore::BindingSecurity::BindingSecurity):
(WebCore::::canAccessWindow):
(WebCore::::canAccessFrame):
(WebCore::::checkNodeSecurity):
* bindings/generic/BindingSecurityBase.cpp: Renamed from WebCore/bindings/BindingSecurityBase.cpp.
(WebCore::BindingSecurityBase::getDOMWindow):
(WebCore::BindingSecurityBase::getFrame):
(WebCore::BindingSecurityBase::canAccess):
* bindings/generic/BindingSecurityBase.h: Renamed from WebCore/bindings/BindingSecurityBase.h.
* bindings/generic/GenericBinding.h: Renamed from WebCore/bindings/GenericBinding.h.
(WebCore::):
* bindings/v8/V8Binding.h:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::showModalDialogCallback):
(WebCore::V8DOMWindow::openCallback):
* bindings/v8/specialization/V8BindingDOMWindow.h: Added.
(WebCore::V8BindingDOMWindow::storeDialogArgs):
* bindings/v8/specialization/V8BindingState.cpp: Renamed from WebCore/bindings/v8/V8BindingState.cpp.
(WebCore::::Only):
(WebCore::::getActiveWindow):
(WebCore::::immediatelyReportUnsafeAccessTo):
* bindings/v8/specialization/V8BindingState.h: Renamed from WebCore/bindings/v8/V8BindingState.h.
(WebCore::):
2010-01-05 Dominic Mazzoni <dmazzoni@google.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=32571
For an object with an aria role of "checkbox" or "radiobutton",
Use the "aria-checked" attribute to determine if it's checked.
Test: accessibility/aria-checkbox-checked.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isChecked):
2010-01-05 Yong Li <yoli@rim.com>
Reviewed by Adam Roben.
Fix build warnings blindly
https://bugs.webkit.org/show_bug.cgi?id=33178
* platform/SharedBuffer.cpp:
* platform/SharedBuffer.h:
(WebCore::SharedBuffer::append):
2010-01-05 Dan Bernstein <mitz@apple.com>
Build fix
* platform/SharedBuffer.cpp:
2010-01-05 Yong Li <yong.li@torchmobile.com>
Reviewed by Darin Adler.
Fix an obvious bug and build errors in previous commit (r52795)
https://bugs.webkit.org/show_bug.cgi?id=33178
* platform/SharedBuffer.h:
(WebCore::SharedBuffer::isEmpty):
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::maybeTransferPlatformData):
2010-01-04 Yong Li <yoli@rim.com>
Reviewed by Darin Adler.
Let SharedBuffer use a group of memory segments internally.
It will merge the segments into a flat consecutive buffer only when
necessary.
https://bugs.webkit.org/show_bug.cgi?id=33178
* platform/SharedBuffer.cpp:
(WebCore::allocateSegment):
(WebCore::freeSegment):
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::~SharedBuffer):
(WebCore::SharedBuffer::adoptVector):
(WebCore::SharedBuffer::size):
(WebCore::SharedBuffer::data):
(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::clear):
(WebCore::SharedBuffer::copy):
(WebCore::SharedBuffer::buffer):
(WebCore::SharedBuffer::getSomeData):
* platform/SharedBuffer.h:
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::maybeTransferPlatformData):
* platform/haiku/SharedBufferHaiku.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile):
* platform/qt/SharedBufferQt.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile):
* platform/win/SharedBufferWin.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile):
2010-01-05 Simon Hausmann <simon.hausmann@nokia.com>
Unreviewed trivial Symbian build fix
* plugins/symbian/PluginViewSymbian.cpp: Add missing HostWindow.h inclusion
2010-01-05 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Fix broken export macros in package builds.
https://bugs.webkit.org/show_bug.cgi?id=33202
Always define QT_MAKEDLL unless we're doing a static
build or we're building inside of Qt. When building
inside of Qt the correct define is pulled from qbase.pri.
* WebCore.pro:
2010-01-04 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin Fisher.
Reorganize, document and rename OS() platform macros.
https://bugs.webkit.org/show_bug.cgi?id=33198
Adapt to name changes. Also fixed a few incorrect OS checks.
* accessibility/AccessibilityObject.h:
* config.h:
* dom/SelectElement.cpp:
(WebCore::SelectElement::listBoxDefaultEventHandler):
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::platform):
* loader/CachedFont.cpp:
* loader/FTPDirectoryDocument.cpp:
* loader/FTPDirectoryParser.cpp:
* page/EventHandler.cpp:
* page/Frame.cpp:
(WebCore::Frame::setUseSecureKeyboardEntry):
* page/NavigatorBase.cpp:
(WebCore::NavigatorBase::platform):
* page/Page.h:
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
* page/chromium/DragControllerChromium.cpp:
(WebCore::DragController::isCopyKeyDown):
* page/chromium/EventHandlerChromium.cpp:
(WebCore::EventHandler::accessKeyModifiers):
* page/win/EventHandlerWin.cpp:
(WebCore::EventHandler::createDraggingClipboard):
* platform/FileSystem.h:
* platform/KeyboardCodes.h:
* platform/PurgeableBuffer.h:
* platform/chromium/ChromiumBridge.h:
* platform/chromium/ClipboardChromium.cpp:
(WebCore::ClipboardChromium::writeRange):
* platform/chromium/ClipboardUtilitiesChromium.cpp:
* platform/chromium/ClipboardUtilitiesChromium.h:
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writePlainText):
(WebCore::Pasteboard::documentFragment):
* platform/chromium/PlatformKeyboardEventChromium.cpp:
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
(WebCore::PlatformKeyboardEvent::currentCapsLockState):
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupListBox::layout):
(WebCore::PopupMenu::show):
* platform/graphics/BitmapImage.h:
(WebCore::BitmapImage::mayFillWithSolidColor):
* platform/graphics/FloatPoint.h:
* platform/graphics/FloatRect.h:
* platform/graphics/FloatSize.h:
* platform/graphics/FontCache.cpp:
(WebCore::alternateFamilyName):
* platform/graphics/FontCache.h:
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::glyphDataForCharacter):
* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::advanceAt):
(WebCore::GlyphBuffer::add):
* platform/graphics/Gradient.h:
* platform/graphics/GraphicsContext.cpp:
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/ImageSource.h:
* platform/graphics/IntRect.h:
* platform/graphics/MediaPlayer.cpp:
* platform/graphics/Path.h:
* platform/graphics/Pattern.h:
* platform/graphics/SimpleFontData.h:
* platform/graphics/cg/ColorCG.cpp:
* platform/graphics/cg/GraphicsContextCG.cpp:
* platform/graphics/chromium/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::~FontCustomPlatformData):
(WebCore::FontCustomPlatformData::fontPlatformData):
(WebCore::createFontCustomPlatformData):
* platform/graphics/chromium/FontCustomPlatformData.h:
* platform/graphics/chromium/FontPlatformData.h:
* platform/graphics/opentype/OpenTypeUtilities.cpp:
* platform/graphics/opentype/OpenTypeUtilities.h:
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::getWindowsContext):
* platform/graphics/qt/ImageQt.cpp:
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::clipToImageBuffer):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/skia/PlatformContextSkia.cpp:
(PlatformContextSkia::State::State):
(PlatformContextSkia::PlatformContextSkia):
(PlatformContextSkia::save):
(PlatformContextSkia::restore):
* platform/graphics/skia/PlatformContextSkia.h:
* platform/graphics/win/IconWin.cpp:
(WebCore::Icon::createIconForFiles):
(WebCore::Icon::paint):
* platform/graphics/wx/GraphicsContextWx.cpp:
* platform/gtk/FileSystemGtk.cpp:
(WebCore::filenameToString):
(WebCore::filenameFromString):
(WebCore::filenameForDisplay):
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
* platform/network/curl/ResourceHandleManager.cpp:
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::):
* platform/text/String.cpp:
(WebCore::String::format):
(WebCore::String::number):
* platform/text/TextEncoding.cpp:
(WebCore::TextEncoding::encode):
* platform/text/TextEncodingRegistry.cpp:
(WebCore::buildBaseTextCodecMaps):
(WebCore::extendTextCodecMaps):
* platform/text/TextStream.cpp:
* platform/text/TextStream.h:
* platform/text/qt/TextCodecQt.cpp:
(WebCore::TextCodecQt::decode):
* platform/win/PlatformMouseEventWin.cpp:
(WebCore::messageToEventType):
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
* platform/win/PlatformScreenWin.cpp:
(WebCore::deviceInfoForWidget):
(WebCore::screenIsMonochrome):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::paint):
(WebCore::PopupMenu::registerClass):
(WebCore::PopupMenu::PopupMenuWndProc):
(WebCore::PopupMenu::wndProc):
* platform/win/SystemTimeWin.cpp:
(WebCore::userIdleTime):
* platform/wx/FileSystemWx.cpp:
(WebCore::unloadModule):
* plugins/PluginDatabase.cpp:
* plugins/PluginPackage.cpp:
(WebCore::PluginPackage::compareFileVersion):
* plugins/PluginPackage.h:
* plugins/PluginView.cpp:
(WebCore::PluginView::setFrameRect):
(WebCore::PluginView::stop):
(WebCore::PluginView::PluginView):
* plugins/PluginView.h:
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::addWindowsMediaPlayerPluginDirectory):
(WebCore::addMacromediaPluginDirectories):
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackage::load):
* plugins/win/PluginViewWin.cpp:
(WebCore::registerPluginView):
(WebCore::PluginView::wndProc):
(WebCore::PluginView::updatePluginWidget):
(WebCore::PluginView::paintIntoTransformedContext):
(WebCore::PluginView::paintWindowedPluginIntoContext):
(WebCore::PluginView::paint):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setParent):
(WebCore::PluginView::setNPWindowRect):
(WebCore::PluginView::platformStart):
2010-01-04 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
Add ARIA "Live Region" support
https://bugs.webkit.org/show_bug.cgi?id=33117
Tests: platform/mac/accessibility/aria-liveregions-attributes.html
platform/mac/accessibility/aria-liveregions-notifications.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::contentChanged):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isChildOfARIALiveRegion):
(WebCore::AccessibilityObject::supportsARIALiveRegion):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::contentChanged):
(WebCore::AccessibilityObject::ariaLiveRegionStatus):
(WebCore::AccessibilityObject::ariaLiveRegionRelevant):
(WebCore::AccessibilityObject::ariaLiveRegionAtomic):
(WebCore::AccessibilityObject::ariaLiveRegionBusy):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::elementAttributeValue):
(WebCore::AccessibilityRenderObject::contentChanged):
(WebCore::AccessibilityRenderObject::childrenChanged):
(WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
(WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
(WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic):
(WebCore::AccessibilityRenderObject::ariaLiveRegionBusy):
* accessibility/AccessibilityRenderObject.h:
(WebCore::AccessibilityRenderObject::areChildrenDirty):
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/mac/AccessibilityObjectWrapper.h:
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[AccessibilityObjectWrapper accessibilitySetPostedNotificationCallback:]):
(-[AccessibilityObjectWrapper accessibilityPostedNotification:]):
* dom/Element.cpp:
(WebCore::Element::updateAfterAttributeChanged):
* html/HTMLAttributeNames.in:
* rendering/RenderText.cpp:
(WebCore::RenderText::setText):
2010-01-04 Chris Evans <cevans@chromium.org>
Reviewed by Adam Barth.
Adopt a more conservative approach for loading CSS cross-origin. When
loading CSS cross-origin, it must be start with valid CSS if the MIME
type is broken.
https://bugs.webkit.org/show_bug.cgi?id=29820
Test: http/tests/security/cross-origin-css.html
Test: http/tests/security/cross-origin-css-in-xml.xml
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setCSSStyleSheet): Enforce stricter load
requirements for cross-origin loads.
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::setCSSStyleSheet): Enforce stricter load
requirements for cross-origin loads.
* css/CSSStyleSheet.h:
* css/CSSStyleSheet.cpp:
* css/CSSParser.cpp:
* css/CSSGrammar.y:
* css/CSSParser.h:
Add ability to tell whether the CSS parse started with a syntactically
valid CSS rule.
* loader/CachedCSSStyleSheet.h:
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::sheetText): Add ability to return
whether the MIME type was acceptable for CSS.
(WebCore::CachedCSSStyleSheet::canUseSheet): If requested, return
whether the MIME type was valid or not.
* dom/ProcessingInstruction.cpp
(WebCore::ProcessingInstruction::setCSSStyleSheet): Make use of strict
mode explicit and add comment.
2010-01-04 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/6655695> REGRESSION: VoiceOver is not highlighting some web elements correctly
<rdar://problem/7397558> REGRESSION: AXImages inside of AXLink cause AXLink to have wrong bounds
Test: accessibility/dimensions-include-descendants.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::boundingBoxRect): Use absoluteFocusRingQuads()
for non-text renderers. The focus ring encompasses descendants, which is
what we want for the accessibility indicator.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::absoluteFocusRingQuads): Added.
* rendering/RenderObject.h:
2010-01-04 Ojan Vafai <ojan@ojanmacpro.sfo.corp.google.com>
Reviewed by Dan Bernstein.
Remove unnecessary division by a constant in SimpleFontDataMac.mm.
https://bugs.webkit.org/show_bug.cgi?id=33189
This was added in http://trac.webkit.org/changeset/8104 and seems like
it was just there to match the previously private function which we no
longer use.
No new tests. No change in behavior.
* platform/graphics/mac/SimpleFontDataMac.mm:
2010-01-04 Darin Adler <darin@apple.com>
Reviewed by Maciej Stachowiak.
Selection-related code needs stricter rules about how it relates to layout
https://bugs.webkit.org/show_bug.cgi?id=32882
Covered by existing tests along with the new assertions.
* dom/Document.cpp:
(WebCore::Document::recalcStyle): Make sure that m_inStyleRecalc is
already false by the time post-attach callbacks are done so that
layout triggered inside those callbacks can work properly.
* editing/SelectionController.cpp:
(WebCore::SelectionController::layout): Added code to trigger a
layout when it's needed.
(WebCore::SelectionController::recomputeCaretRect): Removed unneeded
code to do nothing when FrameView is 0. Added an assertion that layout
is not needed at the time the function is called.
(WebCore::SelectionController::invalidateCaretRect): Added code to
trigger a layout when it's needed.
(WebCore::SelectionController::paintCaret): Added an assertion that
layout is not needed at the time the function is called.
* html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus): Added. Helper function that expresses
the rule for which form control elements should auto-focus.
(WebCore::focusPostAttach): Added. Called post-attach to focus an
element if we discover it should be focused during attach.
(WebCore::HTMLFormControlElement::attach): Refactored code for
which elements need auto-focus into a separate function. Instead
of focusing right away, use the focusPostAttach function to focus
after attach is done. Also added calls to suspendPostAttachCallbacks
and resumePostAttachCallbacks so post-attach callbacks happen late
enough. Before, they could run inside the base attach function.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::attach): Added calls to
suspendPostAttachCallbacks and resumePostAttachCallbacks so
post-attach callbacks happen late enough
* page/Frame.cpp:
(WebCore::Frame::revealSelection): Added code to trigger a layout
when it's needed.
2010-01-04 Gavin Barraclough <barraclough@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=33163
Use WTF's string hashing functions from StringImpl.
* ForwardingHeaders/wtf/StringHashFunctions.h: Added.
* platform/text/StringHash.h:
* platform/text/StringImpl.h:
(WebCore::StringImpl::computeHash):
2010-01-04 Jon Honeycutt <jhoneycutt@apple.com>
Qt build fix. Unreviewed.
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::postNotification):
2010-01-04 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: <select> elements should broadcast value change events
https://bugs.webkit.org/show_bug.cgi?id=33088
<rdar://problem/7332364>
Reviewed by Darin Adler.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::postNotification):
If the post type is async, follow the old code path; otherwise, call
postPlatformNotification().
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::):
Added a new accessibility notification, AXMenuListValueChanged. Added
a new parameter to postNotification() to specify whether the post should
be synchronous or asynchronous.
* accessibility/win/AXObjectCacheWin.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
If the WebCore notification is AXMenuListValueChanged, broadcast an
EVENT_OBJECT_VALUECHANGE event.
* dom/SelectElement.cpp:
(WebCore::SelectElement::setSelectedIndex):
When the selected index of a RenderMenuList is changed, call
RenderMenuList::didSetSelectedIndex().
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::RenderMenuList):
Initialize new member
(WebCore::RenderMenuList::didSetSelectedIndex):
If the selected index has changed, post AXMenuListValueChanged to the
object synchronously.
* rendering/RenderMenuList.h:
Declare didSetSelectedIndex(), and add a member to hold the last
selected index.
2010-01-04 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Added missing null check in BarInfo code.
Test: fast/dom/Window/BarInfo-after-frame-removed.html
* page/BarInfo.cpp:
(WebCore::BarInfo::visible): Added null check. A few other
cleanups.
2010-01-04 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Jon Honeycutt.
Delete an empty and unused JavaScript file.
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/InspectorControllerStub.js: Removed.
2010-01-04 Kevin Ollivier <kevino@theolliviers.com>
[wx] Build fix, add a couple include dirs to the build.
* wscript:
2010-01-04 Dan Bernstein <mitz@apple.com>
Windows build fix
* page/FrameView.cpp:
(WebCore::FrameView::layout):
2010-01-04 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Repaint issues in text input under a scale transform
https://bugs.webkit.org/show_bug.cgi?id=32086
When doing a subtree layout we have to look up the container chain to see if there
are any properties, such as transforms or reflections, that mean that we are unable
to use layoutState.
Test: fast/repaint/subtree-layoutstate-transform.html
* page/FrameView.cpp:
(WebCore::FrameView::layout): Call canUseLayoutStateForSubtree() to determine
whether it's OK to use layoutState.
* rendering/RenderView.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::canUseLayoutStateForSubtree): New method that reports whether it's
OK to use layoutState when doing a subtree layout from the given root.
2010-01-04 Darin Adler <darin@apple.com>
Reviewed by Dan Bernstein.
Reentrancy problem with selection in some edge cases.
https://bugs.webkit.org/show_bug.cgi?id=32842
rdar://problem/7449974
Test: fast/forms/selection-layout-reentry-strange-case.html
Move the selection display update process done in the
selectionLayoutChanged function into the layout timer
instead of doing it immediately when selection changes occur.
* dom/Document.cpp:
(WebCore::Document::updateLayout): Changed this to use the
definition of needsLayout from FrameView rather than rolling
its own.
* editing/SelectionController.cpp:
(WebCore::SelectionController::SelectionController):
Initialize m_needsDisplayUpdate to false.
(WebCore::SelectionController::setSelection): Call
the new setNeedsDisplayUpdate function instead of the old
badly named Frame::selectionLayoutChanged function.
(WebCore::SelectionController::setNeedsDisplayUpdate):
Set m_needsDisplayUpdate. If it is just becoming true, then
call FrameView::scheduleRelayout.
* editing/SelectionController.h: Added setNeedsDisplayUpdate,
needsDisplayUpdate, and m_needsDisplayUpdate.
* page/Frame.cpp:
(WebCore::Frame::setCaretVisible): Call setNeedsDisplayUpdate.
(WebCore::Frame::selectionLayoutChanged): Call
setNeedsDisplayUpdate to set it to false, since this is the
function that performs "selection display update". Later I want
to rename this function. Also added a global reentrancy check
since that's the easiest way I could think of to prevent infinite
recursion in the case where recomputeCaretRect ends up triggering
a layout. As a side effect, fixed theoretical problems in
TEXT_CARET builds by improving the ifdef.
(WebCore::Frame::caretBlinkTimerFired): Loosen assertions a
bit. Later we might want to decouple caret rect from caret state
a bit more and add these assertions back.
(WebCore::Frame::selectionBounds): Call Document::updateLayout.
This function is for external clients and they do not currently
do anything to make sure layout is up to date.
* page/FrameView.cpp:
(WebCore::FrameView::needsLayout): Add a new clause, since
we need a call to layout if needsDisplayUpdate is true.
2010-01-04 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Adam Roben.
Correct debug assertion (and possible runtime errors) by
checking validity of bitmap settings used to create
the Windows Cairo contexts.
https://bugs.webkit.org/show_bug.cgi?id=33164.
* platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::createCairoContextWithHDC): Check validity of selected
OBJ_BITMAP retrieved, and only create 32-bit context when
a valid bitmap is provided.
2010-01-04 Dmitry Titov <dimich@chromium.org>
Not reviewed, revert r52745 and r52746 on behalf of Nikolas Zimmermann, as discussed on IRC.
Patch produced by 'git revert' and then reverting back ChangeLog files.
* Android.mk:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::repaintRectInLocalCoordinates):
(WebCore::RenderPath::setPath):
(WebCore::RenderPath::path):
(WebCore::RenderPath::paint):
(WebCore::):
(WebCore::DrawMarkersData::DrawMarkersData):
(WebCore::drawMarkerWithData):
(WebCore::updateMarkerDataForElement):
(WebCore::drawStartAndMidMarkers):
(WebCore::RenderPath::drawMarkersIfNeeded):
* rendering/RenderPath.h:
(WebCore::RenderPath::markerBoundingBox):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::paint):
* rendering/RenderSVGViewportContainer.h:
* rendering/SVGMarkerData.h: Removed.
* rendering/SVGMarkerLayoutInfo.cpp: Removed.
* rendering/SVGMarkerLayoutInfo.h: Removed.
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::canvasResource):
* svg/graphics/SVGResource.cpp:
(WebCore::SVGResource::SVGResource):
(WebCore::ResourceSet::ResourceSet):
(WebCore::clientMap):
(WebCore::SVGResource::~SVGResource):
(WebCore::SVGResource::removeClient):
(WebCore::SVGResource::addClient):
* svg/graphics/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::SVGResourceMarker):
(WebCore::SVGResourceMarker::setMarker):
(WebCore::SVGResourceMarker::setRef):
(WebCore::SVGResourceMarker::draw):
(WebCore::SVGResourceMarker::cachedBounds):
(WebCore::SVGResourceMarker::externalRepresentation):
* svg/graphics/SVGResourceMarker.h:
(WebCore::SVGResourceMarker::refX):
(WebCore::SVGResourceMarker::refY):
2010-01-04 Dan Bernstein <mitz@apple.com>
Reviewed by Ada Chan and Mark Rowe.
Updated copyright string
* Info.plist:
* WebCore.vcproj/QTMovieWin.rc:
2010-01-04 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX: any DIV with an aria role should not be ignored
https://bugs.webkit.org/show_bug.cgi?id=33090
Test: platform/mac/accessibility/aria-divs-not-ignored.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
2010-01-04 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Generate declarations for V8 runtime enablers.
https://bugs.webkit.org/show_bug.cgi?id=33156
* bindings/scripts/CodeGeneratorV8.pm: Generate runtime enabler declarations.
* bindings/v8/custom/V8CustomBinding.h: Remove manual declarations of runtime enablers.
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* bindings/v8/custom/V8WebSocketCustom.cpp: Remove closeCallback(), which isn't actually being used.
* bindings/v8/custom/V8WorkerContextCustom.cpp:
2010-01-04 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Forgot to add SVGMarkerData.h / SVGMarkerLayoutInfo.(cpp,h) to Chromium build.
* WebCore.gypi:
2010-01-04 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Marker code is buggy: referencePoint translation is off
https://bugs.webkit.org/show_bug.cgi?id=33012
Rewrite marker code, as it had many issues:
- Correct refX/refY handling (covered by new marker-referencePoint.svg test)
- Calculate marker bounds on layout time, instead of paint time, to deliver correct repaint rects
- Cleanup RenderPath code, which was cluttered by marker stuff (outlay in SVGMarkerLayoutInfo)
- Fix SVGResource assuming that there is only one resource per resource type per element. Markers
can have three different resources of the same type (three markers, start/mid/end markers)
Filed bug 33115 (PathElementAddQuadCurveToPoint not handled for <marker>), which was just a TODO in the code before.
Fixes all svg/custom/marker*.svg tests, that use dynamic updates (propagation failed before).
Test: svg/custom/marker-referencePoint.svg
svg/custom/marker-opacity.svg
* Android.mk: Add SVGMarkerData.h / SVGMarkerLayoutInfo.(cpp,h) to build.
* GNUmakefile.am: Ditto.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* page/FrameView.cpp: Notify RenderSVGRoot children about viewport size changes, just like it's handled for <body> in HTML.
(WebCore::FrameView::layout): This is important, as marker bounding boxes may depend on the current viewport size through relative coordinates used in <svg>.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::markerBoundingBox): Calculates and caches marker boundaries in the layout() phase.
(WebCore::RenderPath::repaintRectInLocalCoordinates): Use the cached marker bounding box during paint() time.
(WebCore::RenderPath::setPath): Clear marker boundaries upon path changes.
(WebCore::RenderPath::paint): Use SVGMarkerLayoutInfo::drawMarkers() instead of the local drawMarkersIfNeeded() function, which is gone now.
(WebCore::RenderPath::calculateMarkerBoundsIfNeeded): Utilized by markerBoundingBox() to request SVGResourceMarker objects and calculate their boundaries.
* rendering/RenderPath.h: Store SVGMarkerLayoutInfo objects, and rename m_markerBounds to m_cachedLocalMarkerBBox for consistency.
(WebCore::RenderPath::path): Inline this accessor.
* rendering/RenderSVGContainer.h: Make paint() public (to be used from SVGResourceMarker), all other methods protected (to be used from RenderSVGViewportContainer).
* rendering/RenderSVGViewportContainer.cpp: Remove useless paint() override, as the comment in the code indicated.
(WebCore::RenderSVGViewportContainer::markerBoundaries): Maps the marker contents repaintRectInLocalCoordinates() into the final coordinate system (see code).
(WebCore::RenderSVGViewportContainer::markerContentTransformation): Add marker-specific helper method, allowing to make viewportTransform() private again.
* rendering/RenderSVGViewportContainer.h: Marking viewportTransform() private, it's never meant to be used outside this renderer.
* rendering/SVGMarkerData.h: Added. Refactored from existing RenderPath code, preserving original copyrights.
(WebCore::SVGMarkerData::): Helper struct for SVGMarkerLayoutInfo.
(WebCore::SVGMarkerData::origin): Holds the final computed destination of a marker.
(WebCore::SVGMarkerData::marker): Holds a pointer to the associated SVGResourceMarker object, which we're aiming to layout.
(WebCore::SVGMarkerData::currentAngle): Calculates the current angle for a certain marker type (start/mid/end) based upon the computed inslope/outslope values.
(WebCore::SVGMarkerData::updateTypeAndMarker): Helper method.
(WebCore::SVGMarkerData::updateOutslope): Ditto.
(WebCore::SVGMarkerData::updateMarkerDataForPathElement): Does the actual inslope/outslope calculation.
(WebCore::SVGMarkerData::updateInslope): Helper method.
* rendering/SVGMarkerLayoutInfo.cpp: Added. New approach to build marker layout info, this time correct during layout() time instead of paint() time.
(WebCore::SVGMarkerLayoutInfo::SVGMarkerLayoutInfo):
(WebCore::SVGMarkerLayoutInfo::~SVGMarkerLayoutInfo):
(WebCore::processStartAndMidMarkers): Static helper method used to visit each path element in order to calculate inslopes/outslopes (-> orientation angles)
(WebCore::SVGMarkerLayoutInfo::calculateBoundaries): Build list of MarkerLayout objects, used to query boundaries, and to paint markers during drawMarkers().
(WebCore::SVGMarkerLayoutInfo::drawMarkers): Cheap method walking existing MarkerLayout vector, drawing the individual RenderSVGViewportContainer of the markers.
(WebCore::SVGMarkerLayoutInfo::addLayoutedMarker): Helper method.
* rendering/SVGMarkerLayoutInfo.h: Added.
(WebCore::MarkerLayout::MarkerLayout): Helper struct storing a pair of SVGResourceMarker* and a TranformationMatrix.
(WebCore::SVGMarkerLayoutInfo::markerData): Public helper methods returning references to private member variables, used from processStartAndMidMarkers.
(WebCore::SVGMarkerLayoutInfo::midMarker): Ditto.
(WebCore::SVGMarkerLayoutInfo::elementIndex): Ditto.
* svg/SVGMarkerElement.cpp: Adopt to name change: setRef() -> setReferencePoint(). setMarker() -> setRenderer()
(WebCore::SVGMarkerElement::canvasResource): Add ASSERT(renderer()) to clarify that canvasResource() is only meant to used after renderer creation.
* svg/graphics/SVGResource.cpp: Instead of maintaining a global hashmap between SVGStyledElements and an array of possible SVGResources, use a HashSet of SVGResources
and directly scan the already existing list of clients for a certain SVGResource. This wrong approach has been introduced over two years
ago, making the assumption that there's only one resource type per element. Though markers can provide three resources of the same type
per element (all SVGResourceMarker objects, but in different rules: start/mid/end marker). That information is only available while painting.
(WebCore::resourceSet): Add global static HashSet<SVGResource*>.
(WebCore::SVGResource::SVGResource): Add us to the resourceSet.
(WebCore::SVGResource::~SVGResource): Remove us from resourceSet.
(WebCore::SVGResource::removeClient): Traverse all SVGResource clients and remove the passed SVGStyledElement from the client list (invoked by SVGStyledElement destructor).
(WebCore::SVGResource::addClient): Remove the offending part of the old approach, making the wrong assumption regarding resource types.
* svg/graphics/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::SVGResourceMarker):
(WebCore::SVGResourceMarker::markerTransformation): Create TransformationMatrix in the local marker content (RenderSVGViewportContainer) coordinate system, to position a marker.
(WebCore::SVGResourceMarker::draw): Simplify marker drawing a lot: used the passing TransformationMatrix (cached in SVGMarkerLayoutInfo) to draw the marker content renderer.
(WebCore::SVGResourceMarker::externalRepresentation): Adopt to refX/refY -> referencePoint changes.
* svg/graphics/SVGResourceMarker.h: Store a FloatPoint m_referecePoint instead of two refX/refY float values.
(WebCore::SVGResourceMarker::setRenderer): Renamed from setMarker().
(WebCore::SVGResourceMarker::setReferencePoint): Renamed from setRef().
(WebCore::SVGResourceMarker::referencePoint): New accessor replacing refX() / refY().
2010-01-04 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Fix standalone package builds.
* WebCore.pro: Moved logic for detecting standalone builds to WebKit.pri. Set DESTDIR for package builds.
2010-01-04 Yongjun Zhang <yongjun.zhang@nokia.com>
Reviewed by Laszlo Gombos.
https://bugs.webkit.org/show_bug.cgi?id=29048
[Qt] make RenderStyle.h compile in winscw compiler.
Change compareEqual to a macro in Winscw compiler to get around "illegal operand"
error when compareEqual is defined as template.
The compiler bug is reported at:
https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=10447
* rendering/style/RenderStyle.h:
2010-01-04 Maciej Stachowiak <mjs@apple.com>
Reviewed by Simon Hausmann.
Fix some PLATFORM(*_ENDIAN) uses to CPU()
https://bugs.webkit.org/show_bug.cgi?id=33148
* platform/image-decoders/bmp/BMPImageReader.h:
(WebCore::BMPImageReader::readUint16):
(WebCore::BMPImageReader::readUint32):
(WebCore::BMPImageReader::readCurrentPixel):
2010-01-04 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adam Barth.
Reorganize, document and rename CPU() platform macros.
https://bugs.webkit.org/show_bug.cgi?id=33145
* page/NavigatorBase.cpp:
* platform/text/AtomicString.cpp:
(WebCore::equal):
* platform/text/StringHash.h:
(WebCore::StringHash::equal):
2009-12-22 Philippe Normand <pnormand@igalia.com>
Reviewed by Eric Seidel.
[GTK] G_OBJECT() cast is not necessary for signals connection and properties access
https://bugs.webkit.org/show_bug.cgi?id=32661
Reverted the SENTINEL / NULL crap :) Hopefully the style-bot won't
complain about NULL usage in g_object_{get,set} anymore.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivate::hasVideo):
(WebCore::MediaPlayerPrivate::hasAudio):
(WebCore::MediaPlayerPrivate::setVolume):
(WebCore::MediaPlayerPrivate::setRate):
(WebCore::MediaPlayerPrivate::updateStates):
(WebCore::MediaPlayerPrivate::createGSTPlayBin):
2010-01-04 Alex Milowski <alex@milowski.com>
Reviewed by Eric Seidel.
Updated license to match recommended header license.
* mathml/MathMLElement.cpp:
* mathml/MathMLElement.h:
* mathml/MathMLInlineContainerElement.cpp:
* mathml/MathMLInlineContainerElement.h:
* mathml/MathMLMathElement.cpp:
* mathml/MathMLMathElement.h:
2010-01-04 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVGResources don't invalidate if target object changes attributes
https://bugs.webkit.org/show_bug.cgi?id=33091
It's neccessary to invalidate all resources of an object, if the attributes of this
target change. Otherwise the saved resource data (like ImageBuffers) don't match
to the new object properties.
Test: svg/custom/resource-invalidate-on-target-update.svg
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::svgAttributeChanged):
(WebCore::SVGStyledElement::invalidateResources):
* svg/SVGStyledElement.h:
2010-01-03 Kenneth Russell <kbr@google.com>
Reviewed by Maciej Stachowiak.
Index validation code must always copy client data
https://bugs.webkit.org/show_bug.cgi?id=32748
Client data must always be copied during bufferData and
bufferSubData calls, because otherwise the data the GL uses to
draw may differ from that checked by the index validation code.
Test: fast/canvas/webgl/index-validation-copies-indices.html
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::WebGLBuffer):
(WebCore::WebGLBuffer::associateBufferData):
(WebCore::WebGLBuffer::associateBufferSubData):
* html/canvas/WebGLBuffer.h:
2010-01-03 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
[Chromium] Implement CookieJarChromium::cookiesEnabled
https://bugs.webkit.org/show_bug.cgi?id=33123
Call out to ChromiumBridge to find out if cookies are enabled.
* platform/chromium/ChromiumBridge.h:
* platform/network/chromium/CookieJarChromium.cpp:
(WebCore::cookiesEnabled):
2010-01-03 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
[Chromium] Remove evaluateInNewContext (it's useless)
https://bugs.webkit.org/show_bug.cgi?id=33068
This function has no clients and makes life complicated. Isolated
worlds won out over NewContext and there's not really any going back
now.
No new tests because this is all minus lines.
* bindings/v8/ScriptController.cpp:
* bindings/v8/ScriptController.h:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::convertWindowToV8Object):
* bindings/v8/V8Proxy.cpp:
* bindings/v8/V8Proxy.h:
2010-01-03 Sam Weinig <sam@webkit.org>
Rubber-stamped by Dan Bernstein.
Remove out of date commented out attributes in IDLs. We have implemented onpopstate.
* html/HTMLBodyElement.idl:
* html/HTMLFrameSetElement.idl:
* page/DOMWindow.idl:
2010-01-03 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
Mark more filter effect as alphaImage if possible
https://bugs.webkit.org/show_bug.cgi?id=33111
Mark more effects as alphaImage if the previous effect is a
alphaImage. This can reduce the calculation on the next effect
like feGaussianBlur.
Test: This changes don't affect any LayoutTests and can't be tested
somehow, since the changes are 'invisible'.
* platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::apply):
* svg/graphics/filters/SVGFEMorphology.cpp:
(WebCore::FEMorphology::apply):
* svg/graphics/filters/SVGFEOffset.cpp:
(WebCore::FEOffset::apply):
* svg/graphics/filters/SVGFETile.cpp:
(WebCore::FETile::apply):
2010-01-01 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Scrollbar of overflow:scroll div in compositing layer fails to render
https://bugs.webkit.org/show_bug.cgi?id=32439
When deciding whether a RenderLayer needs backing store, check whether it has
overflow controls that need painting.
Test: compositing/overflow/scrollbar-painting.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hasOverflowControls):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
2009-12-31 Christian Dywan <christian@twotoasts.de>
Reviewed by Gustavo Noronha Silva.
[GTK] context menu overriding API is very limited
https://bugs.webkit.org/show_bug.cgi?id=27546
Only show font menu items in rich text areas in the GTK+ port.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate):
2009-12-31 Christian Dywan <christian@twotoasts.de>
Reviewed by Gustavo Noronha Silva.
[GTK] context menu overriding API is very limited
https://bugs.webkit.org/show_bug.cgi?id=27546
Don't show spell checking menu items in text areas in the GTK+ port.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate):
2009-12-31 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7503279> REGRESSION (r47440): Incomplete repaint at macworldexpo.com
https://bugs.webkit.org/show_bug.cgi?id=33067
Test: fast/repaint/table-cell-overflow.html
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::hasVisibleOverflow): Added.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::layoutRows): Set m_hasOverflowingCell if
any cell has visible overflow, like it was before r47440.
2009-12-31 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Do not include Frame.h under WebCore/html/canvas
https://bugs.webkit.org/show_bug.cgi?id=33082
No new tests, as there is no new functionality.
* html/canvas/CanvasRenderingContext2D.cpp:
2009-12-30 Darin Fisher <darin@chromium.org>
Reviewed by David Levin.
[Chromium] Delete ResourceRequest::securityInfo
https://bugs.webkit.org/show_bug.cgi?id=26847
* platform/network/chromium/ResourceRequest.h:
2009-12-30 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Adam Barth.
Remove unused code from V8DOMWrapper.
* bindings/v8/V8DOMWrapper.cpp: Removed code that I added but it's no longer used.
* bindings/v8/V8DOMWrapper.h: Ditto.
2009-12-30 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Adam Barth.
[V8] Generate configuring undetectable collection.
https://bugs.webkit.org/show_bug.cgi?id=33063
Refactoring, covered by existing tests.
* bindings/scripts/CodeGeneratorV8.pm: Added GenerateImplementationMasqueradeAsUndefined.
* bindings/v8/DerivedSourcesAllInOne.cpp: Touched to keep IB-based builds happy.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate): Removed hand-configuring.
2009-12-30 Zelidrag Hornung <zelidrag@chromium.org>
Reviewed by Dimitri Glazkov.
Added ability for PopupMenuClient to signal when
a) selection changed, and
b) weather suggested value should be accepted when popup menu closes
No new tests since this new functionality (autocomplete suggestions)
is intentionally hidden from everything else than renderer.
* platform/PopupMenuClient.h:
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupContainer::hidePopup):
(WebCore::PopupListBox::handleKeyEvent):
(WebCore::PopupListBox::abandon):
(WebCore::PopupListBox::acceptIndex):
(WebCore::PopupListBox::selectIndex):
(WebCore::PopupListBox::clearSelection):
(WebCore::PopupListBox::hidePopup):
* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenu::menuUnmapped):
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenu::show):
* platform/qt/QtFallbackWebPopup.cpp:
(WebCore::QtFallbackWebPopup::hidePopup):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::hide):
* platform/wx/PopupMenuWx.cpp:
(WebCore::PopupMenu::OnMenuItemSelected):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::popupDidHide):
* rendering/RenderMenuList.h:
(WebCore::RenderMenuList::selectionChanged):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::popupDidHide):
* rendering/RenderTextControlSingleLine.h:
(WebCore::RenderTextControlSingleLine::selectionChanged):
2009-12-30 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Auto-generate V8 bindings header declarations for
property accessor getter/setters, and remove a couple of
unnecessarily custom bindings that weren't properly declared
custom anyway.
* Android.v8bindings.mk: Remove V8NavigatorCustom.cpp.
* WebCore.gypi: Remove V8NavigatorCustom.cpp.
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/custom/V8AttrCustom.cpp:
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
* bindings/v8/custom/V8ClipboardCustom.cpp:
* bindings/v8/custom/V8CoordinatesCustom.cpp:
* bindings/v8/custom/V8CustomBinding.cpp:
* bindings/v8/custom/V8CustomBinding.h:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* bindings/v8/custom/V8DocumentCustom.cpp:
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
* bindings/v8/custom/V8EventCustom.cpp:
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
* bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
* bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
* bindings/v8/custom/V8HTMLInputElementCustom.cpp:
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
* bindings/v8/custom/V8LocationCustom.cpp:
* bindings/v8/custom/V8MessageEventCustom.cpp:
* bindings/v8/custom/V8NavigatorCustom.cpp: Removed.
* bindings/v8/custom/V8SVGLengthCustom.cpp:
* bindings/v8/custom/V8WorkerContextCustom.cpp:
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
2009-12-30 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, build fix.
[Chromium] Touch DerivedSourcesAllInOne to avoid clobbering IB-based builds.
* bindings/v8/DerivedSourcesAllInOne.cpp: Added a line-break.
2009-12-30 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Adam Barth.
[V8] Generate configuring of call-as-function callbacks.
https://bugs.webkit.org/show_bug.cgi?id=33061
Refactoring, covered by existing tests.
* bindings/scripts/CodeGeneratorV8.pm: Added GenerateHeaderCustomCall and
GenerateImplementationCustomCall.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate): Removed all hand-configuring of call-as-function
callbacks.
* bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
(WebCore::V8HTMLAppletElement::callAsFunctionCallback): Added.
(WebCore::V8HTMLEmbedElement::callAsFunctionCallback): Added.
(WebCore::V8HTMLObjectElement::callAsFunctionCallback): Added.
* bindings/v8/custom/V8HTMLPlugInElementCustom.h: Removed.
2009-12-30 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
[v8] Move world-specific state out of V8Proxy
https://bugs.webkit.org/show_bug.cgi?id=33034
This is the first step towards unifying the V8 implementation of
isolated worlds with the JSC implementation. We need an object to
encapulate all the world-specific bindings state. Previoulsy, we used
V8Proxy for this purpose (along with a million other things), but
there's a one-to-one mapping between V8Proxy objects and Frame objects.
This patch takes the world-specific state and moves it to a new object,
affectionately called V8DOMWindowShell. This object is the moral
equivalent of JSDOMWindowShell but with more data members because life
is more complicated in V8-land.
This patch is almost entirely code motion. Future patches will clean
up this class as we use it to represent window shells in isolated
worlds as well as the main world.
* WebCore.gypi:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::updateSecurityOrigin):
(WebCore::ScriptController::haveInterpreter):
(WebCore::ScriptController::updateDocument):
* bindings/v8/V8DOMWindowShell.cpp: Added.
(WebCore::handleFatalErrorInV8):
(WebCore::reportFatalErrorInV8):
(WebCore::reportUnsafeJavaScriptAccess):
(WebCore::V8DOMWindowShell::create):
(WebCore::V8DOMWindowShell::V8DOMWindowShell):
(WebCore::V8DOMWindowShell::isContextInitialized):
(WebCore::V8DOMWindowShell::disposeContextHandles):
(WebCore::V8DOMWindowShell::destroyGlobal):
(WebCore::V8DOMWindowShell::clearForClose):
(WebCore::V8DOMWindowShell::clearForNavigation):
(WebCore::V8DOMWindowShell::initContextIfNeeded):
(WebCore::V8DOMWindowShell::createNewContext):
(WebCore::V8DOMWindowShell::installDOMWindow):
(WebCore::V8DOMWindowShell::updateDocumentWrapper):
(WebCore::V8DOMWindowShell::clearDocumentWrapper):
(WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
(WebCore::V8DOMWindowShell::clearDocumentWrapperCache):
(WebCore::V8DOMWindowShell::setSecurityToken):
(WebCore::V8DOMWindowShell::updateDocument):
(WebCore::V8DOMWindowShell::updateSecurityOrigin):
(WebCore::V8DOMWindowShell::getHiddenObjectPrototype):
(WebCore::V8DOMWindowShell::installHiddenObjectPrototype):
(WebCore::V8DOMWindowShell::createWrapperFromCacheSlowCase):
* bindings/v8/V8DOMWindowShell.h: Added.
(WebCore::V8DOMWindowShell::context):
(WebCore::V8DOMWindowShell::createWrapperFromCache):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getConstructorForContext):
(WebCore::V8DOMWrapper::instantiateV8Object):
(WebCore::V8DOMWrapper::convertDocumentToV8Object):
(WebCore::V8DOMWrapper::convertNewNodeToV8Object):
* bindings/v8/V8IsolatedWorld.cpp:
(WebCore::V8IsolatedWorld::V8IsolatedWorld):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::V8Proxy):
(WebCore::V8Proxy::~V8Proxy):
(WebCore::V8Proxy::handleOutOfMemory):
(WebCore::V8Proxy::evaluateInIsolatedWorld):
(WebCore::V8Proxy::evaluateInNewContext):
(WebCore::V8Proxy::setInjectedScriptContextDebugId):
(WebCore::V8Proxy::clearForClose):
(WebCore::V8Proxy::clearForNavigation):
(WebCore::V8Proxy::mainWorldContext):
(WebCore::V8Proxy::setContextDebugId):
* bindings/v8/V8Proxy.h:
(WebCore::V8Proxy::windowShell):
(WebCore::V8Proxy::extensions):
2009-12-30 Dirk Schulze <krit@webkit.org>
Reviewed by Eric Seidel.
SVGResourceClipper needs to invalidate content
https://bugs.webkit.org/show_bug.cgi?id=33054
Added invalidate() to SVGResourceClipper to reset clipData
and drawing area after attribute changes.
This fixes two LayoutTests.
* svg/graphics/SVGResourceClipper.cpp:
(WebCore::SVGResourceClipper::resetClipData):
(WebCore::SVGResourceClipper::invalidate):
* svg/graphics/SVGResourceClipper.h:
2009-12-30 Carol Szabo <carol.szabo@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] RenderThemeQt::applyTheme is a misnomer and is suboptimally coded.
https://bugs.webkit.org/show_bug.cgi?id=33035
This patch:
- renames RenderThemeQt::applyTheme to initializeCommonQStyleOptions,
- extracts the palette initialization code to a separate function in order to
provide for readable pointer checking and moves this code up in the function to
allow for future changes to the palette brushes needed for bug 30173,
- optimizes some of the code in the function for readability, speed and size.
- fixes some minor style issues
No new tests because code behavior is not changed.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::paintButton):
(WebCore::RenderThemeQt::paintTextField):
(WebCore::RenderThemeQt::paintMenuList):
(WebCore::RenderThemeQt::paintMenuListButton):
(WebCore::initPaletteFromPageClientIfExists):
(WebCore::RenderThemeQt::initializeCommonQStyleOptions):
* platform/qt/RenderThemeQt.h:
2009-12-30 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Simon Hausmann.
[Qt] It should be possible to disable inspector
https://bugs.webkit.org/show_bug.cgi?id=32724
This makes the r48430 available for other ports as well.
No new tests, as there is no new functionality.
* inspector/InjectedScriptHost.idl: Guard the interface with
INSPECTOR guard.
* inspector/InspectorBackend.idl: Ditto.
* inspector/InspectorFrontendHost.idl: Ditto.
2009-12-30 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Adam Barth.
[V8] Generate configuring of all indexers.
https://bugs.webkit.org/show_bug.cgi?id=33031
Refactorig, covered by existing tests.
* bindings/scripts/CodeGeneratorV8.pm: Added generation of indexers for
special cases.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate): Removed custom tempalte configuration of
indexers.
* bindings/v8/custom/V8CustomBinding.h: Added decls for Applet, Embed, and Object
elements (these will be generated, too -- later.)
* bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
(WebCore::npObjectIndexedGetter): Moved common code to a separate method.
(WebCore::npObjectIndexedSetter): Ditto.
(WebCore::INDEXED_PROPERTY_GETTER): Added custom handlers for Applet, Embed, and Object
all calling the common method.
(WebCore::INDEXED_PROPERTY_SETTER): Ditto.
2009-12-30 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Adam Barth.
[V8] Generate configuring of all named property getters/setters/enumerators.
https://bugs.webkit.org/show_bug.cgi?id=32996
Refactoring, covered by existing tests.
* bindings/scripts/CodeGeneratorV8.pm: Added generation of named property handlers
for special cases (See bug for more info).
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate): Removed custom template configuration of named
property handlers.
* bindings/v8/custom/V8CustomBinding.h: Added decls for Applet, Embed, and Object
elements (these will be generated, too -- later.)
* bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
(WebCore::npObjectNamedGetter): Moved common code to a separate method.
(WebCore::npObjectNamedSetter): Ditto.
(WebCore::NAMED_PROPERTY_GETTER): Added custom handlers for Applet, Embed, and Object
all calling the common method.
(WebCore::NAMED_PROPERTY_SETTER): Ditto.
2009-12-30 Jakub Wieczorek <faw217@gmail.com>
Reviewed by Simon Hausmann.
[Qt] Fix PluginView::handlePostReadFile().
https://bugs.webkit.org/show_bug.cgi?id=33052
The function should actually rewrite the given file to the buffer.
This change fixes http/tests/plugins/post-url-file.html, which can be unskipped
now along with other passing http/plugins tests.
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::handlePostReadFile):
2009-12-30 Holger Hans Peter Freyther <zecke@selfish.org>
Rubber stamped by Simon Hausmann.
https://bugs.webkit.org/show_bug.cgi?id=32121
[Qt] Revert "Implement ImageDecoderQt::clearFrameBufferCache()" from r52516.
The implementation appears to either run into an ASSERT
or leak memory at runtime as the m_buffer, m_reader may
already exist. The bug was reopened and we do have a plan now.
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::setData):
(WebCore::ImageDecoderQt::clearFrameBufferCache):
* platform/graphics/qt/ImageDecoderQt.h:
2009-12-30 Janne Koskinen <janne.p.koskinen@digia.com>
Reviewed by Simon Hausmann.
[Qt] Add support for Symbian def files
* WebCore.pro:
2009-12-30 Simon Hausmann <simon.hausmann@nokia.com>
Unreviewed Qt/Symbian build fix.
Don't build network state notifier support when building inside of Qt.
Otherwise the Qt build depends on an external module that itself depends
on Qt again.
* WebCore.pro:
2009-12-30 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Dimitri Glazkov.
[v8] Use current isolated world's context for ScriptCallStack.
https://bugs.webkit.org/show_bug.cgi?id=33016
* bindings/v8/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::ScriptCallStack):
* bindings/v8/ScriptCallStack.h:
(WebCore::ScriptCallStack::state):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::mainWorldScriptState):
(WebCore::ScriptController::currentScriptState):
(WebCore::ScriptController::clearWindowShell):
* bindings/v8/ScriptController.h:
* bindings/v8/V8IsolatedWorld.cpp:
(WebCore::V8IsolatedWorld::scriptState):
* bindings/v8/V8IsolatedWorld.h:
2009-12-30 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Simon Hausmann.
Turn off DataGrid support by default.
No new tests, as there is no new functionality.
* WebCore.pro:
2009-12-29 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
Detailed boundingBoxes in SVG Renderer
https://bugs.webkit.org/show_bug.cgi?id=32815
Add new bounding boxes for strokes, filters, masker and clipper in SVG.
These new bounding boxes help to fix repaintRectInLocalCoordinates.
We calculate the smallest repaint rect considering the new bounding boxes
now, filters get the correct paint area, masker clip the mask image size
to the visible area of the target.
Tests: Many tests need an update. The changes in repaintRectInLocalCoordinates
affect the LayoutTests.
* rendering/RenderForeignObject.h:
(WebCore::RenderForeignObject::strokeBoundingBox):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::toSVGRenderBase):
* rendering/RenderObject.h:
* rendering/RenderPath.cpp:
(WebCore::RenderPath::strokeBoundingBox):
(WebCore::RenderPath::repaintRectInLocalCoordinates):
(WebCore::RenderPath::setPath):
* rendering/RenderPath.h:
(WebCore::RenderPath::markerBoundingBox):
* rendering/RenderSVGBlock.h:
(WebCore::RenderSVGBlock::toSVGRenderBase):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::strokeBoundingBox):
(WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::layout):
(WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
* rendering/RenderSVGImage.h:
(WebCore::RenderSVGImage::toSVGRenderBase):
(WebCore::RenderSVGImage::strokeBoundingBox):
* rendering/RenderSVGInline.h:
(WebCore::RenderSVGInline::objectBoundingBox):
(WebCore::RenderSVGInline::repaintRectInLocalCoordinates):
* rendering/RenderSVGModelObject.h:
(WebCore::RenderSVGModelObject::toSVGRenderBase):
* rendering/RenderSVGRoot.h:
(WebCore::RenderSVGRoot::strokeBoundingBox):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::strokeBoundingBox):
(WebCore::RenderSVGText::repaintRectInLocalCoordinates):
* rendering/RenderSVGText.h:
(WebCore::RenderSVGText::toSVGRenderBase):
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::~SVGRenderBase):
(WebCore::SVGRenderBase::prepareToRenderSVGContent):
(WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
(WebCore::SVGRenderBase::clipperBoundingBoxForRenderer):
(WebCore::SVGRenderBase::maskerBoundingBoxForRenderer):
* rendering/SVGRenderSupport.h:
(WebCore::SVGRenderBase::toSVGRenderBase):
(WebCore::SVGRenderBase::strokeBoundingBox):
(WebCore::SVGRenderBase::markerBoundingBox):
* rendering/SVGRootInlineBox.h:
(WebCore::SVGRootInlineBox::toSVGRenderBase):
(WebCore::SVGRootInlineBox::objectBoundingBox):
(WebCore::SVGRootInlineBox::repaintRectInLocalCoordinates):
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::filterBoundingBox):
* svg/SVGFilterElement.h:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::maskBoundingBox):
(WebCore::SVGMaskElement::drawMaskerContent):
* svg/SVGMaskElement.h:
* svg/graphics/SVGResourceClipper.cpp:
(WebCore::SVGResourceClipper::clipperBoundingBox):
* svg/graphics/SVGResourceClipper.h:
* svg/graphics/SVGResourceFilter.cpp:
(WebCore::SVGResourceFilter::filterBoundingBox):
(WebCore::shouldProcessFilter):
(WebCore::SVGResourceFilter::prepareFilter):
* svg/graphics/SVGResourceFilter.h:
* svg/graphics/SVGResourceMasker.cpp:
(WebCore::SVGResourceMasker::maskerBoundingBox):
(WebCore::SVGResourceMasker::applyMask):
* svg/graphics/SVGResourceMasker.h:
2009-12-29 Andrei Popescu <andreip@google.com>
Reviewed by Adam Barth.
Add Android hook to NetworkStateNotifier class
so that the Java side can notify WebCore when the
network state changes.
https://bugs.webkit.org/show_bug.cgi?id=32871
No new tests required, this is platform code.
* platform/network/NetworkStateNotifier.h:
* platform/network/android/NetworkStateNotifierAndroid.cpp: Added.
(WebCore::NetworkStateNotifier::networkStateChange):
2009-12-29 Eric Seidel <eric@webkit.org>
No review, rolling out r52630.
http://trac.webkit.org/changeset/52630
Change caused layout tests failures and crashes.
* Android.mk:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderPath.cpp:
(WebCore::RenderPath::repaintRectInLocalCoordinates):
(WebCore::RenderPath::setPath):
(WebCore::RenderPath::path):
(WebCore::RenderPath::paint):
(WebCore::):
(WebCore::DrawMarkersData::DrawMarkersData):
(WebCore::drawMarkerWithData):
(WebCore::updateMarkerDataForElement):
(WebCore::drawStartAndMidMarkers):
(WebCore::RenderPath::drawMarkersIfNeeded):
* rendering/RenderPath.h:
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::paint):
* rendering/RenderSVGViewportContainer.h:
* rendering/SVGMarkerLayoutInfo.cpp: Removed.
* rendering/SVGMarkerLayoutInfo.h: Removed.
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::canvasResource):
* svg/graphics/SVGResource.cpp:
(WebCore::SVGResource::SVGResource):
(WebCore::ResourceSet::ResourceSet):
(WebCore::clientMap):
(WebCore::SVGResource::~SVGResource):
(WebCore::SVGResource::removeClient):
(WebCore::SVGResource::addClient):
* svg/graphics/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::SVGResourceMarker):
(WebCore::SVGResourceMarker::setMarker):
(WebCore::SVGResourceMarker::setRef):
(WebCore::SVGResourceMarker::draw):
(WebCore::SVGResourceMarker::cachedBounds):
(WebCore::SVGResourceMarker::externalRepresentation):
* svg/graphics/SVGResourceMarker.h:
(WebCore::SVGResourceMarker::refX):
(WebCore::SVGResourceMarker::refY):
2009-12-29 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
Move the focus ring rect array, width and offset out of GraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=33028
* platform/graphics/GraphicsContext.cpp: Removed initFocusRing(),
clearFocusRing(), focusRingBoundingRect(), addFocusRingRect(),
focusRingWidth(), focusRingOffset(), and focusRingRects().
* platform/graphics/GraphicsContext.h: Ditto. Added the focus ring rect
vector, width and offset as parameters to drawFocusRing().
* platform/graphics/GraphicsContextPrivate.h:
(WebCore::GraphicsContextState::GraphicsContextState): Cleaned up style.
(WebCore::GraphicsContextPrivate::GraphicsContextPrivate): Removed
m_focusRingRects, m_focusRingWidth and m_focusRingOffset.
* platform/graphics/IntRect.cpp:
(WebCore::unionRect): Added this helper function.
* platform/graphics/IntRect.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* platform/graphics/haiku/GraphicsContextHaiku.cpp:
(WebCore::GraphicsContext::drawFocusRing): Ditto.
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawFocusRing): Ditto.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::drawFocusRing): Ditto.
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::drawFocusRing): Ditto.
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::drawFocusRing): Ditto.
* platform/graphics/wince/GraphicsContextWince.cpp:
(WebCore::GraphicsContext::drawFocusRing): Ditto.
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::drawFocusRing): Ditto.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addFocusRingRects): Updated for new prototype.
Added empty rect checks that were previously done in
GraphicsContext::addFocusRingRect().
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::addFocusRingRects): Ditto.
* rendering/RenderBox.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addFocusRingRects): Ditto.
(WebCore::RenderInline::paintOutline): Collect focus ring rects into a
vector and pass it to drawFocusRing(). Use unionRect() instead of
focusRingBoundingRect().
* rendering/RenderInline.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintOutline): Ditto.
* rendering/RenderObject.h:
(WebCore::RenderObject::addFocusRingRects): Changed to take a
Vector<IntRect> to which the rects are added.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::addFocusRingRects): Updated for new prototype.
Added empty rect check that was previously done in
GraphicsContext::addFocusRingRect().
* rendering/RenderPath.h:
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::addFocusRingRects): Updated for new prototype.
Added empty rect check that was previously done in
GraphicsContext::addFocusRingRect().
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::addFocusRingRects): Updated for new prototype.
Added empty rect check that was previously done in
GraphicsContext::addFocusRingRect().
* rendering/RenderSVGImage.h:
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::addFocusRingRects): Updated for new prototype.
Added empty rect check that was previously done in
GraphicsContext::addFocusRingRect().
* rendering/RenderTextControl.h:
2009-12-28 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Maciej Stachowiak.
1. Changes the order in which some functions are called to match
the pre-r52536 order. Namely, when a new Database object is
created, DatabaseTracker::addOpenDatabase() is called in the
constructor, before doing anything else related to that database
(like trying to get a file handle to the database
file). Chromium's implementation depends on this ordering.
2. Changes Database::performOpenAndVerify() to close the open
handle to the database file immediately if the database version
does not match the expected one. The current behavior is to add
the Database object to a DatabaseThread collection and let the
database thread close the handle when it's destroyed.
https://bugs.webkit.org/show_bug.cgi?id=33005
All LayoutTests/storage tests pass in clean WebKit and Chromium
clients.
* storage/Database.cpp:
(WebCore::Database::openDatabase): Notify DatabaseTracker and
Document that a Database object is about to be destroyed (when a
database file cannot be opened, or its version doesn't match the
expected one).
(WebCore::Database::Database): Notify DatabaseTracker and Document
that a new Database object was created.
(WebCore::Database::performOpenAndVerify): If a database version
does not match the expected one, immediately close the open file
handle to the database file.
2009-12-29 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Marker code is buggy: referencePoint translation is off
https://bugs.webkit.org/show_bug.cgi?id=33012
Rewrite marker code, as it was buggy:
- Correct refX/refY handling (covered by new marker-referencePoint.svg test)
- Calculate marker bounds on layout time, instead of paint time, to deliver correct repaint rects
- Cleanup RenderPath code, which was cluttered by marker stuff (outlay in SVGMarkerLayoutInfo)
- Fix SVGResource assuming that there is only one resource per resource type per element. Markers
can have three different resources of the same type (three markers, start/mid/end markers)
Fixes all svg/custom/marker*.svg tests, that use dynamic updates (propagation failed before).
Test: svg/custom/marker-referencePoint.svg
* Android.mk:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderPath.cpp:
(WebCore::RenderPath::repaintRectInLocalCoordinates):
(WebCore::RenderPath::setPath):
(WebCore::RenderPath::paint):
(WebCore::RenderPath::calculateMarkerBoundsIfNeeded):
* rendering/RenderPath.h:
(WebCore::RenderPath::path):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::markerContentTransformation):
* rendering/RenderSVGViewportContainer.h:
* rendering/SVGMarkerLayoutInfo.cpp: Added.
(WebCore::SVGMarkerLayoutInfo::SVGMarkerLayoutInfo):
(WebCore::SVGMarkerLayoutInfo::~SVGMarkerLayoutInfo):
(WebCore::SVGMarkerLayoutInfo::initialize):
(WebCore::updateMarkerDataForElement):
(WebCore::recordMarkerData):
(WebCore::processStartAndMidMarkers):
(WebCore::SVGMarkerLayoutInfo::calculateBoundaries):
(WebCore::SVGMarkerLayoutInfo::drawMarkers):
* rendering/SVGMarkerLayoutInfo.h: Added.
(WebCore::MarkerData::):
(WebCore::MarkerData::MarkerData):
(WebCore::MarkerLayout::MarkerLayout):
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::canvasResource):
* svg/graphics/SVGResource.cpp:
(WebCore::resourceSet):
(WebCore::SVGResource::SVGResource):
(WebCore::SVGResource::~SVGResource):
(WebCore::SVGResource::removeClient):
(WebCore::SVGResource::addClient):
* svg/graphics/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::SVGResourceMarker):
(WebCore::SVGResourceMarker::markerBoundaries):
(WebCore::SVGResourceMarker::markerTransformation):
(WebCore::SVGResourceMarker::draw):
(WebCore::SVGResourceMarker::externalRepresentation):
* svg/graphics/SVGResourceMarker.h:
(WebCore::SVGResourceMarker::setRenderer):
(WebCore::SVGResourceMarker::setReferencePoint):
(WebCore::SVGResourceMarker::referencePoint):
2009-12-29 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Fix UI nits in the Audits panel.
https://bugs.webkit.org/show_bug.cgi?id=32932
* inspector/front-end/AuditLauncherView.js:
(WebInspector.AuditLauncherView.prototype._selectAllClicked):
(WebInspector.AuditLauncherView.prototype._createCategoryElement):
(WebInspector.AuditLauncherView.prototype._createLauncherUI.handleSelectAllClick):
(WebInspector.AuditLauncherView.prototype._createLauncherUI):
* inspector/front-end/AuditResultView.js:
(WebInspector.AuditResultView):
(WebInspector.AuditRuleResultPane):
* inspector/front-end/audits.css:
2009-12-29 Johnny Ding <jnd@chromium.org>
Reviewed by Dimitri Glazkov.
https://bugs.webkit.org/show_bug.cgi?id=32863
Make NodeList support call-as-function
Test: fast/dom/NodeList/nodelist-item-call-as-function.html
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::callAsFunctionCallback):
2009-12-29 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Typed text in table not correctly redrawn on page with compositing layers
https://bugs.webkit.org/show_bug.cgi?id=32874
Use the same test in RenderTableCell::computeRectForRepaint() that we use elsewhere
to decide when to use layoutState, which is to test for layoutStateEnabled()
and no repaint container.
Not possible to make a repaint test that exercises the problem, so no test.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::computeRectForRepaint):
2009-12-29 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Timothy Hatcher.
Discard port from cookie domain when matching cookies.
WebKit cookies do not hold the port information, so we should match only hostnames.
https://bugs.webkit.org/show_bug.cgi?id=31787
* inspector/front-end/inspector.js:
(WebInspector.updateResource):
2009-12-29 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Fix warnings in MediaPlayerPrivatePhonon.cpp
https://bugs.webkit.org/show_bug.cgi?id=33019
No new tests as there is no new functionality.
* platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
(WebCore::MediaPlayerPrivate::totalTimeChanged):
2009-12-29 Kent Tamura <tkent@chromium.org>
Reviewed by Maciej Stachowiak.
Implement HTML5 <aside> element.
https://bugs.webkit.org/show_bug.cgi?id=32943
<aside> should behave the same as <nav>, <section>, and <article>.
Test: fast/html/aside-element.html
* css/html.css: Add aside as a block element.
* editing/htmlediting.cpp:
(WebCore::validBlockTag): Add asideTag.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::tagPriority): Returns 5 for asideTag.
(WebCore::blockTagList): Add asideTag.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::getNode): Add asideTag.
* html/HTMLTagNames.in: Add aside.
2009-12-29 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Eric Seidel.
Use explicit parentheses to silence gcc 4.4 -Wparentheses warnings
https://bugs.webkit.org/show_bug.cgi?id=33003
No new tests as there is no new functionality.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::sendTransitionEvent):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::sendAnimationEvent):
* rendering/RenderSVGContainer.h:
(WebCore::toRenderSVGContainer):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setTextShadow):
* svg/graphics/SVGPaintServerGradient.cpp:
(WebCore::SVGPaintServerGradient::setup):
* svg/graphics/SVGPaintServerPattern.cpp:
(WebCore::SVGPaintServerPattern::setup):
2009-12-28 Andrei Popescu <andreip@google.com>
Reviewed by Dmitry Titov.
On Android, ResourceHandle instances make use of a pointer to a
ResourceLoaderAndroid pointer. This needs to be stored in order to later cancel
the load, if necessary. Since this pointer is an internal implementation
details of ResourceHandle on Android, it needs to be stored in the
ResourceHandleInternal class. This patch adds this pointer.
https://bugs.webkit.org/show_bug.cgi?id=32873
No new tests needed, this is platform-specific code.
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
2009-12-28 Charles Wei <charles.wei@torchmobile.com.cn>
Reviewed by Maciej Stachowiak.
Remove the macro ENABLE(XHTMLMP) for noscriptAreateErrorCheck in HTMLParser,
since with XHTMLMP enabled, it's not checking create Errors, and then contents inside
<noscript> are always parsed and rendered.
https://bugs.webkit.org/show_bug.cgi?id=32706
Tests: fast/parser/noscript-with-javascript-disabled.html
fast/parser/noscript-with-javascript-enabled.html
* html/HTMLParser.cpp:
(WebCore::HTMLParser::getNode):
2009-12-28 Kinuko Yasuda <kinuko@chromium.org>
Reviewed by Maciej Stachowiak.
Fixed isKeypadEvent behavior for Mac to correctly report keyLocation
as DOM_KEY_LOCATION_NUMPAD for numeric pad key events.
https://bugs.webkit.org/show_bug.cgi?id=28247
Test: fast/events/keydown-numpad-keys.html
* platform/mac/KeyEventMac.mm:
(WebCore::isKeypadEvent):
2009-12-28 Mike Moretti <webkit9@mordent.com>
Reviewed by Darin Adler.
Fix bug 28245 - problem with inserting a span into a long text block causing a crash because of a null string
Test: fast/dom/insert-span-into-long-text-bug-28245.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::findNextLineBreak):
2009-12-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Rubber-stamped by Xan Lopez.
Follow Apple's decision to disable HTML DataGrid by default.
* GNUmakefile.am:
2009-12-28 Gustavo Noronha Silva <gns@gnome.org>
Reviewed by Ariya Hidayat.
Fix warnings when generating files using gperf. The warnings are
currently harmless, but some changes in the build system may make
them fatal.
[GTK] Build time must be reduced
https://bugs.webkit.org/show_bug.cgi?id=32921
* GNUmakefile.am:
2009-12-28 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Adam Barth.
[Qt] Fix build break for Qt 4.4
https://bugs.webkit.org/show_bug.cgi?id=30327
No new tests, as there is no new functionality.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::clipOut): Use intersected() instead of
operator &, which was only introduced in Qt version 4.5.
* platform/qt/ScrollbarThemeQt.cpp:
(WebCore::ScrollbarThemeQt::paintScrollCorner): Pass ColorSpace
argument to fillColor() introduced in r50760
2009-12-28 Kent Tamura <tkent@chromium.org>
Reviewed by Maciej Stachowiak.
Implement HTML5 <article> element.
https://bugs.webkit.org/show_bug.cgi?id=32936
<article> should behave the same as <nav> and <section>.
Test: fast/html/article-element.html
* css/html.css: Add article as a block element.
* editing/htmlediting.cpp:
(WebCore::validBlockTag): Add articleTag.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::tagPriority): Returns 5 for articleTag.
(WebCore::blockTagList): Add articleTag.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::getNode): Add articleTag.
* html/HTMLTagNames.in: Add article.
2009-12-27 Jakub Wieczorek <faw217@gmail.com>
Reviewed by Eric Seidel.
[Qt] Support upload progress events in XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=32969
Make QNetworkReplyHandler report the upload progress to the client.
Already covered by tests:
http/tests/xmlhttprequest/upload-onload-event.html
http/tests/xmlhttprequest/upload-onloadstart-event.html
http/tests/xmlhttprequest/upload-progress-events.html
http/tests/xmlhttprequest/upload-onprogress-event.html
which have been unskipped.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::uploadProgress):
(WebCore::QNetworkReplyHandler::start):
* platform/network/qt/QNetworkReplyHandler.h:
2009-12-27 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVG: Stop rendering of objects with empty mask and filter content
https://bugs.webkit.org/show_bug.cgi?id=32968
It's not neccessary to continue rendering of an object and its' childs
if the mask clips the complete content away.
The same for filters, if the filter rendering is discontinued or either
width or height are zero.
We might also stop rendering if repaintRectInLocalCoordinates is empty.
But it needs to be fixed first.
Test: svg/custom/empty-mask.svg
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paint):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paint):
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::prepareToRenderSVGContent):
* rendering/SVGRenderSupport.h:
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::paint):
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::drawMaskerContent):
* svg/SVGMaskElement.h:
* svg/graphics/SVGResourceFilter.cpp:
(WebCore::SVGResourceFilter::prepareFilter):
(WebCore::SVGResourceFilter::applyFilter):
* svg/graphics/SVGResourceFilter.h:
* svg/graphics/SVGResourceMasker.cpp:
(WebCore::SVGResourceMasker::SVGResourceMasker):
(WebCore::SVGResourceMasker::applyMask):
* svg/graphics/SVGResourceMasker.h:
2009-12-27 Christian Dywan <christian@twotoasts.de>
Reviewed by Eric Seidel.
[GTK] Spell Check Suggestions (Do not work)
https://bugs.webkit.org/show_bug.cgi?id=30908
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::title):
(WebCore::ContextMenuItem::setTitle): Implement the 'title' member
and set the title from the native menu item.
2009-12-27 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVG Mask result wrong, if two different objects call the same mask id
https://bugs.webkit.org/show_bug.cgi?id=32787
At the moment we create one resource per maskId. Some resources (like mask)
create ImageBuffers and depends on the properties of the RenderObject,
thus we can't use it for a second object.
This patch stores multiple mask resources for one maskId and different
RenderObject can use the same maskId.
Clipper, Filter and Patterns also need to store multiple resources later.
Test: svg/custom/mask-on-multiple-objects.svg
* rendering/RenderPath.cpp:
(WebCore::RenderPath::drawMarkersIfNeeded):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::selfWillPaint):
* rendering/RenderSVGGradientStop.cpp:
(WebCore::RenderSVGGradientStop::styleDidChange):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::selfWillPaint):
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::prepareToRenderSVGContent):
(WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
* rendering/SVGRenderTreeAsText.cpp:
(WebCore::writeRenderResources):
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::canvasResource):
* svg/SVGClipPathElement.h:
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::canvasResource):
* svg/SVGFilterElement.h:
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::canvasResource):
* svg/SVGGradientElement.h:
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::canvasResource):
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::svgAttributeChanged):
(WebCore::SVGMaskElement::childrenChanged):
(WebCore::SVGMaskElement::canvasResource):
* svg/SVGMaskElement.h:
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::canvasResource):
* svg/SVGPatternElement.h:
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::invalidateResourcesInAncestorChain):
* svg/SVGStyledElement.h:
(WebCore::SVGStyledElement::canvasResource):
* svg/graphics/SVGPaintServer.cpp:
(WebCore::getPaintServerById):
(WebCore::SVGPaintServer::fillPaintServer):
(WebCore::SVGPaintServer::strokePaintServer):
* svg/graphics/SVGPaintServer.h:
* svg/graphics/SVGResource.cpp:
(WebCore::getResourceById):
* svg/graphics/SVGResource.h:
* svg/graphics/SVGResourceClipper.cpp:
(WebCore::getClipperById):
* svg/graphics/SVGResourceClipper.h:
* svg/graphics/SVGResourceFilter.cpp:
(WebCore::getFilterById):
* svg/graphics/SVGResourceFilter.h:
* svg/graphics/SVGResourceMarker.cpp:
(WebCore::getMarkerById):
* svg/graphics/SVGResourceMarker.h:
* svg/graphics/SVGResourceMasker.cpp:
(WebCore::getMaskerById):
* svg/graphics/SVGResourceMasker.h:
2009-12-27 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Cleanup RenderPath code, related to markers. Pass around
PaintInfo objects instead of GraphicsContext directly, to
avoid having to recreate a new PaintInfo object in
SVGResourceMarker::draw().
No layout test changes.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
(WebCore::DrawMarkersData::DrawMarkersData):
(WebCore::drawMarkerWithData):
(WebCore::drawStartAndMidMarkers):
(WebCore::RenderPath::drawMarkersIfNeeded):
* rendering/RenderPath.h:
* svg/graphics/SVGResourceMarker.cpp:
(WebCore::SVGResourceMarker::draw):
* svg/graphics/SVGResourceMarker.h:
2009-12-27 Patrick Gansterer <paroga@paroga.com>
Reviewed by Eric Seidel.
WinCE buildfix (added missing header)
* platform/text/wince/TextBreakIteratorWince.cpp:
2009-12-27 Patrick Gansterer <paroga@paroga.com>
Reviewed by Eric Seidel.
Buildfix after r50760 and some style fixes.
* rendering/RenderThemeWince.cpp:
(WebCore::RenderThemeWince::paintSearchFieldCancelButton):
(WebCore::RenderThemeWince::paintSliderTrack):
(WebCore::RenderThemeWince::paintSliderThumb):
(WebCore::RenderThemeWince::paintMediaMuteButton):
(WebCore::RenderThemeWince::paintMediaPlayButton):
2009-12-27 Patrick Gansterer <paroga@paroga.com>
Reviewed by Adam Barth.
WinCE buildfixes (missing headers and unsupported HWND_MESSAGE)
* platform/wince/MIMETypeRegistryWince.cpp:
* platform/wince/SearchPopupMenuWince.cpp:
* platform/wince/SharedTimerWince.cpp:
(WebCore::initializeOffScreenTimerWindow):
2009-12-26 Eric Seidel <eric@webkit.org>
No review, rolling out r52554.
http://trac.webkit.org/changeset/52554
https://bugs.webkit.org/show_bug.cgi?id=32955
The original change was covered under
https://bugs.webkit.org/show_bug.cgi?id=32913
r52554 was itself a rollout of r52536.
However it caused two layout tests to fail on Leopard:
storage/open-database-while-transaction-in-progress.html
svg/W3C-SVG-1.1/filters-conv-01-f.svg (no clue why?)
So I'm rolling out the rollout in an attempt to get the bots green.
r52554 did not explain why it was rolled out, so I do not know
what might fail for Chromium after this change. I warned the folks
in #chromium that it was coming.
* storage/Database.cpp:
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::performOpenAndVerify):
2009-12-26 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/7483622> REGRESSION (r47255): Extra Large Amount of Empty Space
https://bugs.webkit.org/show_bug.cgi?id=32690
Test: fast/block/float/clear-to-fit.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::getClearDelta): Only clear floats as needed to
fit the child on the line.
2009-12-25 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
Implement HTML5 section element.
https://bugs.webkit.org/show_bug.cgi?id=32936
<section> should behave the same as <nav>.
Test: fast/html/section-element.html
* css/html.css: Add section as a block element.
* editing/htmlediting.cpp:
(WebCore::validBlockTag): Add sectionTag.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::tagPriority): Returns 5 for sectionTag.
(WebCore::blockTagList): Add sectionTag.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::getNode): Add sectionTag.
* html/HTMLTagNames.in: Add section.
2009-12-25 Daniel Bates <dbates@webkit.org>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=32938
Cleans up XSSAuditor.
Currently, we pass various parameters through to XSSAuditor::findInRequest
that are used to determine how to decode the HTTP input parameters so that
we can perform a match against the script source. Instead, we have defined
a structure XSSAuditor::FindTask that can hold all of these parameters.
No functionality was changed. So, no new tests.
* page/XSSAuditor.cpp:
(WebCore::XSSAuditor::canEvaluate): Modified to use struct
XSSAuditor::FindTask.
(WebCore::XSSAuditor::canEvaluateJavaScriptURL): Ditto.
(WebCore::XSSAuditor::canCreateInlineEventListener): Ditto.
(WebCore::XSSAuditor::canLoadExternalScriptFromSrc): Ditto.
(WebCore::XSSAuditor::canLoadObject): Ditto.
(WebCore::XSSAuditor::canSetBaseElementURL): Ditto.
(WebCore::XSSAuditor::findInRequest): Ditto.
* page/XSSAuditor.h:
(WebCore::XSSAuditor::FindTask::FindTask): Added.
2009-12-25 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
DOMWindow is missing lots of SVG* constructor objects
https://bugs.webkit.org/show_bug.cgi?id=20430
Expose all implemented SVG 1.1 constructors.
Test: svg/custom/global-constructors.js
* bindings/v8/V8Index.cpp: Add missing includes for SVGFontFaceElement & SVGMissingGlyphElement
* bindings/v8/V8Index.h: Add misisng SVGFontFaceElement & SVGMissingGlyphElement declarations.
* page/DOMWindow.idl: Add a bunch of new SVG object ctors.
* svg/SVGAnimatedPathData.idl: Add OmitConstructor flag, as this is a SVG MI class, which is not exposable at the moment.
* svg/SVGAnimatedPoints.idl: Ditto.
2009-12-25 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
AuditsPanel for Web Inspector (hidden, no preset audits).
https://bugs.webkit.org/show_bug.cgi?id=31665
* English.lproj/localizedStrings.js:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/AuditLauncherView.js: Added.
(WebInspector.AuditLauncherView.categorySortFunction):
(WebInspector.AuditLauncherView):
(WebInspector.AuditLauncherView.prototype.updateResourceTrackingState):
(WebInspector.AuditLauncherView.prototype._setAuditRunning):
(WebInspector.AuditLauncherView.prototype._launchButtonClicked.profilingFinishedCallback):
(WebInspector.AuditLauncherView.prototype._launchButtonClicked):
(WebInspector.AuditLauncherView.prototype._selectAllClicked):
(WebInspector.AuditLauncherView.prototype._categoryClicked):
(WebInspector.AuditLauncherView.prototype._createCategoryElement):
(WebInspector.AuditLauncherView.prototype._createLauncherUI):
(WebInspector.AuditLauncherView.prototype._updateButton):
(WebInspector.AuditLauncherView.prototype.resize):
* inspector/front-end/AuditResultView.js: Added.
(WebInspector.AuditResultView.entrySortFunction):
(WebInspector.AuditResultView):
(WebInspector.AuditCategoryResultPane):
(WebInspector.AuditRuleResultPane):
(WebInspector.AuditRuleResultPane.prototype._decorateRuleResult):
(WebInspector.AuditRuleResultChildSection):
(WebInspector.AuditRuleResultChildSection.prototype.set title):
(WebInspector.AuditRuleResultChildSection.prototype.expand):
* inspector/front-end/AuditsPanel.js: Added.
(WebInspector.AuditsPanel):
(WebInspector.AuditsPanel.prototype.toolbarItemClass.get toolbarItemLabel):
(WebInspector.AuditsPanel.prototype.get statusBarItems):
(WebInspector.AuditsPanel.prototype.get mainResourceLoadTime):
(WebInspector.AuditsPanel.prototype.set mainResourceLoadTime):
(WebInspector.AuditsPanel.prototype.get mainResourceDOMContentTime):
(WebInspector.AuditsPanel.prototype.set mainResourceDOMContentTime):
(WebInspector.AuditsPanel.prototype.get categoriesById):
(WebInspector.AuditsPanel.prototype.get visibleView):
(WebInspector.AuditsPanel.prototype._constructCategories):
(WebInspector.AuditsPanel.prototype._executeAudit.ruleResultReadyCallback):
(WebInspector.AuditsPanel.prototype._executeAudit):
(WebInspector.AuditsPanel.prototype._auditFinishedCallback):
(WebInspector.AuditsPanel.prototype.initiateAudit.initiateAuditCallback):
(WebInspector.AuditsPanel.prototype.initiateAudit):
(WebInspector.AuditsPanel.prototype._reloadResources):
(WebInspector.AuditsPanel.prototype._didMainResourceLoad):
(WebInspector.AuditsPanel.prototype.showResults):
(WebInspector.AuditsPanel.prototype.showLauncherView):
(WebInspector.AuditsPanel.prototype.showView):
(WebInspector.AuditsPanel.prototype.show):
(WebInspector.AuditsPanel.prototype.attach):
(WebInspector.AuditsPanel.prototype.resize):
(WebInspector.AuditsPanel.prototype.updateMainViewWidth):
(WebInspector.AuditsPanel.prototype._updateLauncherViewControls):
(WebInspector.AuditsPanel.prototype._clearButtonClicked):
(WebInspector.AuditsPanel.prototype._closeVisibleView):
(WebInspector.AuditCategory):
(WebInspector.AuditCategory.prototype.get id):
(WebInspector.AuditCategory.prototype.get displayName):
(WebInspector.AuditCategory.prototype.get ruleCount):
(WebInspector.AuditCategory.prototype.addRule):
(WebInspector.AuditCategory.prototype.runRules):
(WebInspector.AuditRule):
(WebInspector.AuditRule.prototype.get id):
(WebInspector.AuditRule.prototype.get displayName):
(WebInspector.AuditRule.prototype.run):
(WebInspector.AuditRule.prototype.doRun):
(WebInspector.AuditRule.prototype.getValue):
(WebInspector.AuditCategoryResult):
(WebInspector.AuditCategoryResult.prototype.addEntry):
(WebInspector.AuditRuleResult):
(WebInspector.AuditRuleResult.prototype.appendChild):
(WebInspector.AuditRuleResult.prototype.set type):
(WebInspector.AuditRuleResult.prototype.get type):
(WebInspector.AuditsSidebarTreeElement):
(WebInspector.AuditsSidebarTreeElement.prototype.onattach):
(WebInspector.AuditsSidebarTreeElement.prototype.onselect):
(WebInspector.AuditsSidebarTreeElement.prototype.get selectable):
(WebInspector.AuditsSidebarTreeElement.prototype.refresh):
(WebInspector.AuditResultSidebarTreeElement):
(WebInspector.AuditResultSidebarTreeElement.prototype.onselect):
(WebInspector.AuditResultSidebarTreeElement.prototype.get selectable):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/audits.css: Added.
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector._createPanels):
(WebInspector.updateResource):
2009-12-25 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Implement Edit Inner HTML action.
https://bugs.webkit.org/show_bug.cgi?id=32924
* English.lproj/localizedStrings.js:
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::pushNodePathToFrontendCallback):
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::pushNodePathToFrontend):
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorDOMAgent.h:
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.show):
(WebInspector.ElementsPanel.prototype._updateModifiedNodesSoon):
(WebInspector.ElementsPanel.prototype.updateModifiedNodes):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
(WebInspector.ElementsTreeElement.prototype._startEditingAsHTML.commit):
(WebInspector.ElementsTreeElement.prototype._startEditingAsHTML.dispose):
(WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
():
* inspector/front-end/InjectedScript.js:
(InjectedScript.getNodePropertyValue):
(InjectedScript.setOuterHTML):
(InjectedScript.performSearch.addNodesToResults):
(InjectedScript._inspectObject):
(InjectedScript._copy):
(InjectedScript.pushNodeToFrontend):
* inspector/front-end/InjectedScriptAccess.js:
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.hiddenPanels):
(.WebInspector.InspectorFrontendHostStub.prototype.windowUnloading):
* inspector/front-end/inspector.css:
* inspector/front-end/inspector.js:
(WebInspector.startEditing.keyDownEventListener):
(WebInspector.startEditing):
2009-12-24 Dan Bernstein <mitz@apple.com>
Reviewed by Timothy Hatcher.
Web Inspector: Console should force long URLs to wrap
https://bugs.webkit.org/show_bug.cgi?id=32927
* inspector/front-end/inspector.css: Added "word-wrap: break-word;" to
the #console-messages rule.
2009-12-24 Shinichiro Hamaji <hamaji@chromium.org>
Unreviewed Chromium test fix by reverting r52536.
Do not a new Database pointer to any structure until its version has been verified
https://bugs.webkit.org/show_bug.cgi?id=32913
* storage/Database.cpp:
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::performOpenAndVerify):
2009-12-24 Jessie Berlin <jberlin@webkit.org>
Reviewed by Dan Bernstein.
Fix for WebKit bug 29968 - Selecting text with text-overflow ellipsis
should not show cut off text
https://bugs.webkit.org/show_bug.cgi?id=29968
Also fixes the issue on both Mac OS X and Windows where the highlight
would extend only partway into the ellipsis based on the size of the
characters being truncated.
Test: editing/selection/select-text-overflow-ellipsis.html
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
When the ellipsis have been selected, paints them with the color for
selected text.
(WebCore::EllipsisBox::selectionRect):
Returns the selection rect for the ellipsis text.
(WebCore::EllipsisBox::paintSelection):
Paints the selection highlight around the ellipsis text.
* rendering/EllipsisBox.h:
(WebCore::EllipsisBox::EllipsisBox):
Default the selection state of the EllipsisBox to SelectionNone.
(WebCore::EllipsisBox::setSelectionState):
Allow the selection state to be explicitly set by the InlineTextBox
that it is associated with, since the selection state depends on the
position of the selection within the truncated text.
(WebCore::EllipsisBox::selectionState):
Return the cached selection state.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionState):
If the text is truncated and the selection extends into the truncation
where there are ellipsis, set the selection state on the EllipsisBox.
(WebCore::paintTextWithShadows):
Allow for an upper bound to be specified on the maximum length of the
text to be painted.
(WebCore::InlineTextBox::paint):
Make sure the text that is drawn gets appropriately truncated. This was
not an issue before on Mac OS X because it wasn't necessary to draw the
selected text separately (the selected text had the same color as the
non-selected text).
(WebCore::InlineTextBox::paintSelection):
If the text is being truncated, let whatever is being painted in the
space after the truncated text paint its own highlight.
* rendering/InlineTextBox.h:
(WebCore::InlineTextBox::truncation):
Allow RenderText to access the truncation status.
* rendering/RenderText.cpp:
(WebCore::RenderText::selectionRectForRepaint):
Make sure that any ellipsis box that falls within the selection also
gets repainted.
2009-12-24 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: add Settings.js class that would manage
frontend settings.
This change:
- Splits preferences and settings
- Pushes settings to the frontend on load
- Stores settings on each change
- Stores showInheritedStyles as setting.
https://bugs.webkit.org/show_bug.cgi?id=32832
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::saveFrontendSettings):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::populateScriptObjects):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::populateFrontendSettings):
* inspector/InspectorFrontend.h:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
* inspector/front-end/EventListenersSidebarPane.js:
(WebInspector.EventListenersSidebarPane.prototype._settingsLoaded):
(WebInspector.EventListenersSidebarPane.prototype):
():
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub):
(.WebInspector.InspectorBackendStub.prototype.saveFrontendSettings):
(.WebInspector.InspectorBackendStub.prototype.releaseWrapperObjectGroup):
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub):
(.WebInspector.InspectorFrontendHostStub.prototype.hiddenPanels):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype._createStatusbarButtons):
(WebInspector.ResourcesPanel.prototype._settingsLoaded):
(WebInspector.ResourcesPanel.prototype._toggleLargerResources):
(WebInspector.ResourcesPanel.prototype._setLargerResources):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._showScriptOrResource):
(WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu):
* inspector/front-end/Settings.js: Added.
(WebInspector.populateFrontendSettings):
(WebInspector.Settings):
(WebInspector.Settings.prototype._load):
(WebInspector.Settings.prototype._installSetting):
(WebInspector.Settings.prototype._get):
(WebInspector.Settings.prototype._set):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._settingsLoaded):
(WebInspector.StylesSidebarPane.prototype.update):
(WebInspector.StylesSidebarPane.prototype._changeSetting):
(WebInspector.StylesSidebarPane.prototype._changeColorFormat):
(WebInspector.StylePropertiesSection.showInheritedToggleFunction):
(WebInspector.StylePropertiesSection):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSidebarPane):
(WebInspector.WatchExpressionsSidebarPane.prototype._settingsLoaded):
(WebInspector.WatchExpressionsSidebarPane.prototype.refreshExpressions):
(WebInspector.WatchExpressionsSection):
(WebInspector.WatchExpressionsSection.prototype.saveExpressions):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector.loaded):
2009-12-23 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: [REGRESSION] console's clear command does not work.
https://bugs.webkit.org/show_bug.cgi?id=32897
Test: inspector/console-clear.html
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::clearConsoleMessages):
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorBackend.cpp:
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::clearConsoleMessages):
(WebCore::InspectorController::didCommitLoad):
* inspector/InspectorController.h:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView):
(WebInspector.ConsoleView.prototype.requestClearConsoleMessages):
(WebInspector.ConsoleView.prototype.clearConsoleMessages):
(WebInspector.ConsoleView.prototype._clearButtonClicked):
* inspector/front-end/InjectedScript.js:
(InjectedScript.clearConsoleMessages):
(InjectedScript._ensureCommandLineAPIInstalled):
* inspector/front-end/InjectedScriptAccess.js:
* inspector/front-end/inspector.js:
(WebInspector.clearConsoleMessages):
(WebInspector.reset):
2009-12-23 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Console dumps strings in escaped form.
https://bugs.webkit.org/show_bug.cgi?id=32488
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleMessage.prototype._formatIndividualValue):
2009-12-23 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=32905
With Pinyin Simplified IM, a wrong character is deleted from google.com suggestion
Test: platform/mac/editing/input/selection-change-closes-typing.html
* editing/Editor.cpp: (WebCore::Editor::confirmComposition): If this function wasn't allowed
to change selection, it needs to close the current typing command - otherwise, its idea of
selection would be used for future typing.
2009-12-23 Yuta Kitamura <yutak@chromium.org>
Reviewed by Eric Seidel.
PlatformContextSkia::beginLayerClippedToImage() needs to clip outside of the image.
This method should limit the current painting window to the bounds of the given
image, but it did not. Due to this bug, unnecessary contents were rendered in
some (limited) situations.
[Skia] PlatformContextSkia::beginLayerClippedToImage does not clip outside of the image
https://bugs.webkit.org/show_bug.cgi?id=32817
No new tests, because this is a fix of an existing test which is currently failing in
Chromium.
* platform/graphics/skia/PlatformContextSkia.cpp:
(PlatformContextSkia::beginLayerClippedToImage): Add clipRect() call.
2009-12-23 Nikolas Zimmermann <nzimmermann@rim.com>
Rubber-stamped by Eric Seidel.
Remove all references to "GenerateConstructor", as this is the default behaviour now.
* css/CSSCharsetRule.idl:
* css/CSSFontFaceRule.idl:
* css/CSSImportRule.idl:
* css/CSSMediaRule.idl:
* css/CSSPageRule.idl:
* css/CSSPrimitiveValue.idl:
* css/CSSRule.idl:
* css/CSSRuleList.idl:
* css/CSSStyleDeclaration.idl:
* css/CSSStyleRule.idl:
* css/CSSStyleSheet.idl:
* css/CSSValue.idl:
* css/CSSValueList.idl:
* css/CSSVariablesDeclaration.idl:
* css/CSSVariablesRule.idl:
* css/Counter.idl:
* css/Media.idl:
* css/MediaList.idl:
* css/RGBColor.idl:
* css/Rect.idl:
* css/StyleSheet.idl:
* css/StyleSheetList.idl:
* css/WebKitCSSKeyframeRule.idl:
* css/WebKitCSSKeyframesRule.idl:
* css/WebKitCSSTransformValue.idl:
* dom/Attr.idl:
* dom/BeforeLoadEvent.idl:
* dom/CDATASection.idl:
* dom/CharacterData.idl:
* dom/ClientRect.idl:
* dom/ClientRectList.idl:
* dom/Clipboard.idl:
* dom/Comment.idl:
* dom/CompositionEvent.idl:
* dom/DOMCoreException.idl:
* dom/DOMImplementation.idl:
* dom/Document.idl:
* dom/DocumentFragment.idl:
* dom/DocumentType.idl:
* dom/Element.idl:
* dom/Entity.idl:
* dom/EntityReference.idl:
* dom/ErrorEvent.idl:
* dom/Event.idl:
* dom/EventException.idl:
* dom/KeyboardEvent.idl:
* dom/MessageEvent.idl:
* dom/MessagePort.idl:
* dom/MouseEvent.idl:
* dom/MutationEvent.idl:
* dom/NamedNodeMap.idl:
* dom/Node.idl:
* dom/NodeFilter.idl:
* dom/NodeIterator.idl:
* dom/NodeList.idl:
* dom/Notation.idl:
* dom/OverflowEvent.idl:
* dom/PageTransitionEvent.idl:
* dom/PopStateEvent.idl:
* dom/ProcessingInstruction.idl:
* dom/ProgressEvent.idl:
* dom/Range.idl:
* dom/RangeException.idl:
* dom/Text.idl:
* dom/TextEvent.idl:
* dom/Touch.idl:
* dom/TouchEvent.idl:
* dom/TouchList.idl:
* dom/TreeWalker.idl:
* dom/UIEvent.idl:
* dom/WebKitAnimationEvent.idl:
* dom/WebKitTransitionEvent.idl:
* dom/WheelEvent.idl:
* html/DataGridColumn.idl:
* html/DataGridColumnList.idl:
* html/File.idl:
* html/FileList.idl:
* html/HTMLAllCollection.idl:
* html/HTMLAnchorElement.idl:
* html/HTMLAppletElement.idl:
* html/HTMLAreaElement.idl:
* html/HTMLAudioElement.idl:
* html/HTMLBRElement.idl:
* html/HTMLBaseElement.idl:
* html/HTMLBaseFontElement.idl:
* html/HTMLBlockquoteElement.idl:
* html/HTMLBodyElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLCanvasElement.idl:
* html/HTMLCollection.idl:
* html/HTMLDListElement.idl:
* html/HTMLDataGridCellElement.idl:
* html/HTMLDataGridColElement.idl:
* html/HTMLDataGridElement.idl:
* html/HTMLDataGridRowElement.idl:
* html/HTMLDataListElement.idl:
* html/HTMLDirectoryElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLDocument.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFieldSetElement.idl:
* html/HTMLFontElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLFrameSetElement.idl:
* html/HTMLHRElement.idl:
* html/HTMLHeadElement.idl:
* html/HTMLHeadingElement.idl:
* html/HTMLHtmlElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLIsIndexElement.idl:
* html/HTMLLIElement.idl:
* html/HTMLLabelElement.idl:
* html/HTMLLegendElement.idl:
* html/HTMLLinkElement.idl:
* html/HTMLMapElement.idl:
* html/HTMLMarqueeElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLMenuElement.idl:
* html/HTMLMetaElement.idl:
* html/HTMLModElement.idl:
* html/HTMLOListElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptGroupElement.idl:
* html/HTMLOptionElement.idl:
* html/HTMLParagraphElement.idl:
* html/HTMLParamElement.idl:
* html/HTMLPreElement.idl:
* html/HTMLQuoteElement.idl:
* html/HTMLScriptElement.idl:
* html/HTMLSelectElement.idl:
* html/HTMLSourceElement.idl:
* html/HTMLStyleElement.idl:
* html/HTMLTableCaptionElement.idl:
* html/HTMLTableCellElement.idl:
* html/HTMLTableColElement.idl:
* html/HTMLTableElement.idl:
* html/HTMLTableRowElement.idl:
* html/HTMLTableSectionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLTitleElement.idl:
* html/HTMLUListElement.idl:
* html/HTMLVideoElement.idl:
* html/ImageData.idl:
* html/MediaError.idl:
* html/TextMetrics.idl:
* html/canvas/CanvasNumberArray.idl:
* html/canvas/CanvasRenderingContext.idl:
* html/canvas/CanvasRenderingContext2D.idl:
* html/canvas/WebGLRenderingContext.idl:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorBackend.idl:
* inspector/InspectorFrontendHost.idl:
* page/PositionError.idl:
* plugins/MimeType.idl:
* plugins/MimeTypeArray.idl:
* plugins/Plugin.idl:
* plugins/PluginArray.idl:
* storage/Storage.idl:
* storage/StorageEvent.idl:
* svg/SVGAngle.idl:
* svg/SVGColor.idl:
* svg/SVGComponentTransferFunctionElement.idl:
* svg/SVGException.idl:
* svg/SVGFEBlendElement.idl:
* svg/SVGFEColorMatrixElement.idl:
* svg/SVGFECompositeElement.idl:
* svg/SVGFEDisplacementMapElement.idl:
* svg/SVGFEFloodElement.idl:
* svg/SVGFEMorphologyElement.idl:
* svg/SVGFETurbulenceElement.idl:
* svg/SVGGradientElement.idl:
* svg/SVGLength.idl:
* svg/SVGMarkerElement.idl:
* svg/SVGPaint.idl:
* svg/SVGPathSeg.idl:
* svg/SVGPreserveAspectRatio.idl:
* svg/SVGRenderingIntent.idl:
* svg/SVGTextContentElement.idl:
* svg/SVGTextPathElement.idl:
* svg/SVGTransform.idl:
* svg/SVGUnitTypes.idl:
* svg/SVGZoomAndPan.idl:
* workers/AbstractWorker.idl:
* workers/WorkerLocation.idl:
* xml/DOMParser.idl:
* xml/XMLHttpRequestException.idl:
* xml/XMLHttpRequestProgressEvent.idl:
* xml/XMLHttpRequestUpload.idl:
* xml/XMLSerializer.idl:
* xml/XPathEvaluator.idl:
* xml/XPathException.idl:
* xml/XPathExpression.idl:
* xml/XPathResult.idl:
2009-12-23 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Eric Seidel.
A new database should be registered with the Document,
DatabaseTracker and DatabaseThread only after it was successfully
opened and its version was successfully verified.
Fixes a regression introduced by
http://trac.webkit.org/changeset/52530.
LayoutTests/storage/open-database-while-transaction-in-progress.html
should pass again (or rather, it should pass again when run after
open-database-set-empty-version.html).
https://bugs.webkit.org/show_bug.cgi?id=32913
* storage/Database.cpp:
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::performOpenAndVerify):
2009-12-23 David Levin <levin@chromium.org>
REGRESSION (r52494): Assertion failure in Frame::caretBlinkTimerFired() (selection()->isCaret())
https://bugs.webkit.org/show_bug.cgi?id=32903
No review but ok'ed by Darin Adler. Rolling out r52494 due to above regression.
* editing/SelectionController.cpp:
(WebCore::SelectionController::SelectionController):
(WebCore::SelectionController::setSelection):
* editing/SelectionController.h:
* page/Frame.cpp:
(WebCore::Frame::setCaretVisible):
(WebCore::Frame::selectionLayoutChanged):
* page/FrameView.cpp:
(WebCore::FrameView::needsLayout):
2009-12-23 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Eric Seidel.
Reverse JS GenerateConstructor logic
https://bugs.webkit.org/show_bug.cgi?id=32910
Make 'GenerateConstructor' the default setting for all classes, defined in IDL files. The flag is now obsolete and
can be removed from all IDL files in a follow-up patch. Add new 'OmitConstructor' flag, that allows to restore the
old default behaviour: do not generate JSFoobarConstructor class.
No change in functionality, despite the fact that we're generating a lot more constructors now, as they have to
be exposed through DOMWindow.idl -- this can be done per affected class in follow-up patches. Especially the SVG
classes have to be exposed, most of them are missing JS constructors so far.
As side effect HTMLOptionsCollection is now correctly exposing its constructor, thus fixing a test in fast/dom/wrapper-classes.html
* bindings/scripts/CodeGeneratorJS.pm:
* css/CSSUnknownRule.idl:
* css/WebKitCSSMatrix.idl:
* dom/EventListener.idl:
* dom/EventTarget.idl:
* dom/MessageChannel.idl:
* html/TimeRanges.idl:
* html/ValidityState.idl:
* html/VoidCallback.idl:
* html/canvas/CanvasGradient.idl:
* html/canvas/CanvasPattern.idl:
* html/canvas/CanvasPixelArray.idl:
* html/canvas/WebGLActiveInfo.idl:
* html/canvas/WebGLArray.idl:
* html/canvas/WebGLArrayBuffer.idl:
* html/canvas/WebGLBuffer.idl:
* html/canvas/WebGLByteArray.idl:
* html/canvas/WebGLFloatArray.idl:
* html/canvas/WebGLFramebuffer.idl:
* html/canvas/WebGLIntArray.idl:
* html/canvas/WebGLProgram.idl:
* html/canvas/WebGLRenderbuffer.idl:
* html/canvas/WebGLShader.idl:
* html/canvas/WebGLShortArray.idl:
* html/canvas/WebGLTexture.idl:
* html/canvas/WebGLUniformLocation.idl:
* html/canvas/WebGLUnsignedByteArray.idl:
* html/canvas/WebGLUnsignedIntArray.idl:
* html/canvas/WebGLUnsignedShortArray.idl:
* inspector/JavaScriptCallFrame.idl:
* loader/appcache/DOMApplicationCache.idl:
* notifications/Notification.idl:
* notifications/NotificationCenter.idl:
* page/AbstractView.idl:
* page/BarInfo.idl:
* page/Console.idl:
* page/Coordinates.idl:
* page/DOMSelection.idl:
* page/DOMWindow.idl:
* page/EventSource.idl:
* page/Geolocation.idl:
* page/Geoposition.idl:
* page/History.idl:
* page/Location.idl:
* page/Navigator.idl:
* page/Screen.idl:
* page/WebKitPoint.idl:
* page/WorkerNavigator.idl:
* storage/Database.idl:
* storage/SQLError.idl:
* storage/SQLResultSet.idl:
* storage/SQLResultSetRowList.idl:
* storage/SQLTransaction.idl:
* websockets/WebSocket.idl:
* workers/DedicatedWorkerContext.idl:
* workers/SharedWorker.idl:
* workers/SharedWorkerContext.idl:
* workers/Worker.idl:
* workers/WorkerContext.idl:
* xml/XMLHttpRequest.idl:
* xml/XPathNSResolver.idl:
* xml/XSLTProcessor.idl:
2009-12-23 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
"Refused to execute a JavaScript script" error when embedding SWF with
a URL that is also a query parameter
https://bugs.webkit.org/show_bug.cgi?id=32908
Don't block direct injections into the object src attribute unless
there's an illegal character (like < or ") in the URL. This change
lets some very unusual vulnerabilities through the filter but removes a
false positive that we've seen several times.
* page/XSSAuditor.cpp:
(WebCore::XSSAuditor::canLoadObject):
2009-12-23 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Dmitry Titov.
Remove pointers to a database that failed to open from the
DatabaseTracker and Document.
https://bugs.webkit.org/show_bug.cgi?id=32885
* storage/Database.cpp:
(WebCore::Database::openDatabase):
2009-12-23 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7487164> First line of text cannot be selected
https://bugs.webkit.org/show_bug.cgi?id=32749
Test: fast/text/remove-zero-length-run.html
* rendering/RenderText.cpp:
(WebCore::RenderText::positionLineBox): Changed code that assumed that if a box was being
removed, it was the only box in the RenderText. Instead, correctly preserve the list of
text boxes.
(WebCore::RenderText::checkConsistency): Updated for earlier rename.
2009-12-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Darin Adler.
Fix for newlines turning into missing-gyphs when using SVG fonts
https://bugs.webkit.org/show_bug.cgi?id=32710
Font::drawText() has three code paths:
- drawTextUsingSVGFont()
- drawSimpleText()
- drawComplexText()
The latter two both have logic to replace newlines and tabs, as well
as a few other control characters that are considered spaces, with
spaces, before actually drawing the text. Previously the SVG font
path did not have this kind of logic.
This change introduces two helper functions in Font to do this space
replacement, which are then used for the simple path, the SVG path,
and the Qt implementation of the complex path.
Test: svg/custom/svg-fonts-in-html-linebreaks.html
* platform/graphics/Font.cpp:
(WebCore::Font::normalizeSpaces): Helper function
* platform/graphics/Font.h:
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::glyphDataForCharacter): Use helper
* platform/graphics/qt/FontQt.cpp:
(WebCore::fromRawDataWithoutRef): Rename from "qstring"
(WebCore::Font::drawComplexText): Use helper
(WebCore::Font::floatWidthForComplexText): Use helper
(WebCore::Font::offsetForPositionForComplexText): Use helper
(WebCore::Font::selectionRectForComplexText): Use helper
* platform/text/CharacterNames.h: Add enum for 0x0020
* svg/SVGFont.cpp: Use helper to fix bug
(WebCore::SVGTextRunWalker::walk):
2009-12-23 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
HTMLInputElement::valueAsDate getter support.
https://bugs.webkit.org/show_bug.cgi?id=32876
To implement the valueAsDate getter,
- Add a method to calculate milliseconds from 1970-01-01 to ISODateTime.
- Introduce m_type field to ISODateTime.
Tests: fast/forms/input-valueasdate-date.html
fast/forms/input-valueasdate-datetime.html
fast/forms/input-valueasdate-datetimelocal.html
fast/forms/input-valueasdate-month.html
fast/forms/input-valueasdate-time.html
fast/forms/input-valueasdate-week.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::valueAsDate):
Implement it with ISODateTime::millisecondsSinceEpoch().
(WebCore::HTMLInputElement::formStringToISODateTime):
Early exit for a null String. This avoids assertion failures in ISODateTime::parse*().
* html/ISODateTime.cpp:
(WebCore::ISODateTime::parseMonth): Sets m_type.
(WebCore::ISODateTime::parseDate): ditto.
(WebCore::ISODateTime::parseWeek): ditto.
(WebCore::ISODateTime::parseTime): ditto.
(WebCore::ISODateTime::parseDateTimeLocal): ditto.
(WebCore::ISODateTime::parseDateTime): ditto.
(WebCore::ISODateTime::millisecondsSinceEpochForTime): Added.
(WebCore::ISODateTime::millisecondsSinceEpoch): Added.
* html/ISODateTime.h:
(WebCore::ISODateTime::ISODateTime):
(WebCore::ISODateTime::invalidMilliseconds):
2009-12-22 Daniel Bates <dbates@webkit.org>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=32799
Renames enums in RenderStyleConstants::EListStyleType to conform to
the WebKit Code Style Guidelines.
No functionality was changed. So, no new tests.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EListStyleType):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::styleDidChange):
* rendering/RenderListMarker.cpp:
(WebCore::listMarkerText):
(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::calcPrefWidths):
(WebCore::RenderListMarker::updateMargins):
(WebCore::RenderListMarker::getRelativeMarkerRect):
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::initialListStyleType):
* rendering/style/RenderStyleConstants.h:
(WebCore::):
2009-12-22 James Su <suzhe@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Keyboard shortcut in dropdown not working.
https://bugs.webkit.org/show_bug.cgi?id=32008
Consider PlatformKeyboardEvent::Char type event as character type
event on all platforms. It fixes the "type ahead find" feature
of the popup listbox on Linux and Mac platforms.
Merge the case-sensitive type ahead find fix from
WebCore/dom/SelectElement.cpp. See
https://bugs.webkit.org/show_bug.cgi?id=29103
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::isCharacterTypeEvent):
2009-12-22 Carol Szabo <carol.szabo@nokia.com>
Reviewed by Eric Seidel.
[Qt] The "Search" input type is not rendered correctly when styled.
https://bugs.webkit.org/show_bug.cgi?id=32417
There are no new tests because only pixel tests may be affected by
this change and those changes can only be done on the build bot.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::paintSearchField):
Since currently we paint the Search control as a QLineEdit, I have
deferred painting to WebCore, as in the case of the text input so
that the painting is consistent.
2009-12-22 Yongjun Zhang <yongjun.zhang@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
https://bugs.webkit.org/show_bug.cgi?id=32121
[Qt] implement ImageDecoderQt::clearFrameBufferCache().
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::initializeDecoder):
(WebCore::ImageDecoderQt::setData):
(WebCore::ImageDecoderQt::clearFrameBufferCache):
* platform/graphics/qt/ImageDecoderQt.h:
2009-12-22 Nayan Kumar K <nayankk@gmail.com>
Reviewed by Eric Seidel.
Fix assert failure with WML pages having 'Refresh' task in
'onenterforward' event.
https://bugs.webkit.org/show_bug.cgi?id=30989
Writing Layout test is not possible. Please refer to the discussion
in bug id #30989. A sample test case is attached in BugZilla.
* wml/WMLCardElement.cpp:
(WebCore::WMLCardElement::handleIntrinsicEventIfNeeded):
2009-12-22 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
ASSERTION FAILED: m_numNodeListCaches
https://bugs.webkit.org/show_bug.cgi?id=19526
<rdar://problem/7431572>
Test: fast/dom/NodeList/adoptNode-node-list-cache.html
* dom/Node.cpp:
(WebCore::Node::setDocument): Call removeNodeListCache on the old
document and addNodeListCache on the new one if moving a node that
has node lists.
2009-12-22 Darin Adler <darin@apple.com>
First cut at fixing Windows build.
* WebCorePrefix.cpp: Touch it.
2009-12-22 Darin Adler <darin@apple.com>
Reviewed by Mark Rowe.
Turn off datagrid by default, at least for all platforms Apple ships.
The datagrid implementation isn't ready for general web use yet.
* Configurations/FeatureDefines.xcconfig: Turn off datagrid by default.
* WebCore.vcproj/WebCoreCommon.vsprops: Ditto.
* WebCore.vcproj/build-generated-files.sh: Ditto.
* page/DOMWindow.idl: Sorted things here to touch the file to give
the Windows build a slightly better chance of success.
2009-12-22 Darin Adler <darin@apple.com>
Rubber stamped by Dan Bernstein.
* page/FrameView.h: Removed incorrect comment.
2009-12-22 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: simplify highlighter definition.
https://bugs.webkit.org/show_bug.cgi?id=32869
* inspector/front-end/CSSSourceSyntaxHighlighter.js:
(WebInspector.CSSSourceSyntaxHighlighter):
* inspector/front-end/JavaScriptSourceSyntaxHighlighter.js:
(WebInspector.JavaScriptSourceSyntaxHighlighter.):
(WebInspector.JavaScriptSourceSyntaxHighlighter):
* inspector/front-end/SourceSyntaxHighlighter.js:
(WebInspector.SourceSyntaxHighlighter.prototype.lex):
* inspector/front-end/utilities.js:
():
2009-12-21 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Reentrancy problem with selection in some edge cases.
https://bugs.webkit.org/show_bug.cgi?id=32842
rdar://problem/7449974
Test: fast/forms/selection-layout-reentry-strange-case.html
Move the selection display update process done in the
selectionLayoutChanged function into the layout timer
instead of doing it immediately when selection changes occur.
* editing/SelectionController.cpp:
(WebCore::SelectionController::SelectionController):
Initialize m_needsDisplayUpdate to false.
(WebCore::SelectionController::setSelection): Call
the new setNeedsDisplayUpdate function instead of the old
badly named Frame::selectionLayoutChanged function.
(WebCore::SelectionController::setNeedsDisplayUpdate):
Set m_needsDisplayUpdate. If it is just becoming true, then
call FrameView::scheduleRelayout.
* editing/SelectionController.h: Added setNeedsDisplayUpdate,
needsDisplayUpdate, and m_needsDisplayUpdate.
* page/Frame.cpp:
(WebCore::Frame::setCaretVisible): Call setNeedsDisplayUpdate.
(WebCore::Frame::selectionLayoutChanged): Call
setNeedsDisplayUpdate to set it to false, since this is the
function that performs "selection display update". Later I want
to rename this function.
* page/FrameView.cpp:
(WebCore::FrameView::needsLayout): Add a new clause, since
we need a call to layout if needsDisplayUpdate is true.
2009-12-22 Kwang Yul Seo <skyul@company100.net>
Reviewed by Darin Adler.
Allocate RemoteFontStream on the heap
https://bugs.webkit.org/show_bug.cgi?id=32850
RemoteFontStream is allocated on the stack, so its memory is freed
immediately when FontCustomPlatformData::createFontCustomPlatformData
returns.
SkTypeface::CreateFromStream increments the reference count, but it keeps
the pointer to the memory allocated on the stack which is not valid
anymore.
RemoteFontStream is a descendant of SkRefCount and SkRefCount::unref
invokes SkDELETE(this) internally once the reference count reaches zero.
This means that SkRefCount-ed instances must be allocated on the heap.
* platform/graphics/chromium/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
2009-12-22 Kwang Yul Seo <skyul@company100.net>
Reviewed by Darin Adler.
when condition COMPILER(RVCT) is fulfilled, we are trying to free a pointer to array allocated on the stack
https://bugs.webkit.org/show_bug.cgi?id=32861
Don't free the pointer for COMPILER(RVCT).
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::XMLTokenizer::error):
2009-12-22 Sam Weinig <sam@webkit.org>
Rubber-stamped by Dan Bernstein.
Remove no longer necessary experimental single view #ifdefs from Widget and
ScrollView.
* page/Chrome.h:
* page/mac/ChromeMac.mm:
* platform/ScrollView.cpp:
(WebCore::ScrollView::wheelEvent):
* platform/Widget.cpp:
* platform/Widget.h:
* platform/mac/ScrollViewMac.mm:
* platform/mac/WidgetMac.mm:
2009-12-21 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Do not lose original request for non-main resource redirects.
https://bugs.webkit.org/show_bug.cgi?id=32678
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::appendRedirect):
* inspector/front-end/Resource.js:
(WebInspector.Resource):
* inspector/front-end/inspector.js:
(WebInspector.updateResource):
2009-12-21 Kwang Yul Seo <skyul@company100.net>
Reviewed by Eric Seidel.
Use ASSERT instead of assert in image-decoders
https://bugs.webkit.org/show_bug.cgi?id=32852
Other decoders use WTF's ASSERT macro.
Follow this convention.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageReader::decode):
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::headerAvailable):
2009-12-21 Kwang Yul Seo <skyul@company100.net>
Reviewed by Eric Seidel.
Use vsnprintf instead of vasprintf for RVCT.
https://bugs.webkit.org/show_bug.cgi?id=32851
RVCT does not support vasprint, so use vsnprintf instead.
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::XMLTokenizer::error):
2009-12-21 Fumitoshi Ukai <ukai@chromium.org>
Reviewed by Alexey Proskuryakov.
Invalid url should raise SYNTAX_ERR exception.
https://bugs.webkit.org/show_bug.cgi?id=32700
Check url is valid in WebSocket::connect.
Also log the detailed reason of websocket failures to console.
* websockets/WebSocket.cpp:
(WebCore::encodeProtocolString):
(WebCore::WebSocket::connect):
2009-12-21 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Make sure that we check for the right thread.
* platform/mac/WebCoreObjCExtras.mm:
(WebCoreObjCScheduleDeallocateOnMainThread):
2009-12-21 Enrica Casucci <enrica@apple.com>
Reviewed by Maciej Stachowiak.
REGRESSION(4.0.4-ToT): Indent deletes non highlighted text in gmail.
<rdar://problem/7489326>
https://bugs.webkit.org/show_bug.cgi?id=32843
The fix for 7442387 did not handle the case where the end of paragraph
is not a descendant of the computed outer block.
Updated editing/execCommand/indent-with-style2.html to cover this case too.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
2009-12-21 Gavin Barraclough <barraclough@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=32831
Replace UString::Rep implementation, following introduction of ropes to JSC.
* ForwardingHeaders/runtime/UStringImpl.h: Added.
- add forwarding header.
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::ustring):
- order of arguments to UString::Rep constructor for shared strings changed.
2009-12-18 Nate Chapin <japhet@chromium.org>
Reviewed by Adam barth.
Generate V8 bindings non-constructor callback declarations
in CodeGeneratorV8.pm instead of manually declaring them in
V8CustomBinding.h.
https://bugs.webkit.org/show_bug.cgi?id=32638
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/custom/V8AbstractWorkerCustom.cpp:
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
* bindings/v8/custom/V8ClipboardCustom.cpp:
* bindings/v8/custom/V8ConsoleCustom.cpp:
* bindings/v8/custom/V8CustomBinding.h:
* bindings/v8/custom/V8DOMApplicationCacheCustom.cpp:
* bindings/v8/custom/V8DOMParserConstructor.cpp:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
* bindings/v8/custom/V8DatabaseCustom.cpp:
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
* bindings/v8/custom/V8DocumentCustom.cpp:
* bindings/v8/custom/V8GeolocationCustom.cpp:
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
* bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
* bindings/v8/custom/V8HTMLFormElementCustom.cpp:
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
* bindings/v8/custom/V8HTMLInputElementCustom.cpp:
* bindings/v8/custom/V8HTMLOptionElementConstructor.cpp:
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
* bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
* bindings/v8/custom/V8HTMLPlugInElementCustom.h: Added.
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
* bindings/v8/custom/V8HistoryCustom.cpp:
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
* bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
* bindings/v8/custom/V8LocationCustom.cpp:
* bindings/v8/custom/V8MessageChannelConstructor.cpp:
* bindings/v8/custom/V8MessageEventCustom.cpp:
* bindings/v8/custom/V8MessagePortCustom.cpp:
* bindings/v8/custom/V8NodeCustom.cpp:
* bindings/v8/custom/V8NodeFilterCustom.cpp:
* bindings/v8/custom/V8NodeIteratorCustom.cpp:
* bindings/v8/custom/V8NotificationCenterCustom.cpp:
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
* bindings/v8/custom/V8SVGElementInstanceCustom.cpp:
* bindings/v8/custom/V8SVGLengthCustom.cpp:
* bindings/v8/custom/V8SVGMatrixCustom.cpp:
* bindings/v8/custom/V8SharedWorkerCustom.cpp:
* bindings/v8/custom/V8TreeWalkerCustom.cpp:
* bindings/v8/custom/V8WebGLArrayBufferCustom.cpp:
* bindings/v8/custom/V8WebGLByteArrayCustom.cpp:
* bindings/v8/custom/V8WebGLFloatArrayCustom.cpp:
* bindings/v8/custom/V8WebGLIntArrayCustom.cpp:
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
* bindings/v8/custom/V8WebGLShortArrayCustom.cpp:
* bindings/v8/custom/V8WebGLUnsignedByteArrayCustom.cpp:
* bindings/v8/custom/V8WebGLUnsignedIntArrayCustom.cpp:
* bindings/v8/custom/V8WebGLUnsignedShortArrayCustom.cpp:
* bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp:
* bindings/v8/custom/V8WebKitPointConstructor.cpp:
* bindings/v8/custom/V8WebSocketCustom.cpp:
* bindings/v8/custom/V8WorkerContextCustom.cpp:
* bindings/v8/custom/V8WorkerCustom.cpp:
* bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
* bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
* bindings/v8/custom/V8XMLSerializerConstructor.cpp:
* bindings/v8/custom/V8XPathEvaluatorConstructor.cpp:
* bindings/v8/custom/V8XSLTProcessorCustom.cpp:
2009-12-21 Nate Chapin <japhet@chromium.org>
Rubber-stamped by Darin Adler.
Revert r52446 due to crashiness.
https://bugs.webkit.org/show_bug.cgi?id=32839
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::pageHidden):
* loader/FrameLoader.h:
(WebCore::FrameLoader::suppressOpenerInNewFrame):
* loader/Request.cpp:
(WebCore::Request::Request):
(WebCore::Request::~Request):
* loader/Request.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create):
* loader/SubresourceLoader.h:
* loader/loader.cpp:
(WebCore::Loader::load):
(WebCore::Loader::cancelRequests):
(WebCore::Loader::Host::servePendingRequests):
(WebCore::Loader::Host::cancelPendingRequests):
(WebCore::Loader::Host::cancelRequests):
2009-12-19 Kent Tamura <tkent@chromium.org>
Reviewed by Adam Barth.
Add support for V8 Date binding.
https://bugs.webkit.org/show_bug.cgi?id=32699
This implements the same behavior as the recent change of
CodeGeneratorJS.pm and JSDOMBinding.cpp.
* bindings/scripts/CodeGeneratorV8.pm:
Produce toWebCoreDate() or v8DateOrNull() for Date type.
* bindings/v8/V8Binding.cpp:
(WebCore::toWebCoreDate):
Converts a JavaScript object to a double representing Date.
(WebCore::v8DateOrNull):
Converts a double representing Date to a JavaScript Date object or null.
* bindings/v8/V8Binding.h: Declare toWebCoreDate() and v8DateOrNull().
* html/HTMLInputElement.idl: Delete V8_BINGIN exclusion for valueAsDate.
2009-12-21 Darin Adler <darin@apple.com>
Reviewed by Mark Rowe.
Renamed m_sel to m_selection. Used do-webcore-rename.
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection):
(WebCore::SelectionController::nodeWillBeRemoved):
(WebCore::SelectionController::willBeModified):
(WebCore::SelectionController::directionOfEnclosingBlock):
(WebCore::SelectionController::modifyExtendingRight):
(WebCore::SelectionController::modifyExtendingForward):
(WebCore::SelectionController::modifyMovingRight):
(WebCore::SelectionController::modifyMovingForward):
(WebCore::SelectionController::modifyExtendingLeft):
(WebCore::SelectionController::modifyExtendingBackward):
(WebCore::SelectionController::modifyMovingLeft):
(WebCore::SelectionController::modifyMovingBackward):
(WebCore::SelectionController::modify):
(WebCore::SelectionController::expandUsingGranularity):
(WebCore::SelectionController::xPosForVerticalArrowNavigation):
(WebCore::SelectionController::setBase):
(WebCore::SelectionController::setExtent):
(WebCore::SelectionController::layout):
(WebCore::SelectionController::caretRenderer):
(WebCore::SelectionController::invalidateCaretRect):
(WebCore::SelectionController::paintCaret):
(WebCore::SelectionController::debugRenderer):
(WebCore::SelectionController::contains):
(WebCore::SelectionController::selectAll):
(WebCore::SelectionController::formatForDebugger):
(WebCore::SelectionController::showTreeForThis):
* editing/SelectionController.h:
* editing/gtk/SelectionControllerGtk.cpp:
(WebCore::SelectionController::notifyAccessibilityForSelectionChange):
* editing/mac/SelectionControllerMac.mm:
(WebCore::SelectionController::notifyAccessibilityForSelectionChange):
Let the script do its thing. Made sure no tests broke.
2009-12-21 Carol Szabo <carol.szabo@nokia.com>
Reviewed by Darin Adler.
Inconsistent use of counterName and identifier in CSS counter code and loss of information about the counter type.
https://bugs.webkit.org/show_bug.cgi?id=31814
No new tests because there are no functional changes in this patch.
* rendering/CounterNode.cpp:
(WebCore::CounterNode::CounterNode):
(WebCore::CounterNode::computeCountInParent):
(WebCore::showTreeAndMark):
* rendering/RenderCounter.cpp:
(WebCore::planCounter):
(WebCore::findPlaceForCounter):
(WebCore::makeCounterNode):
(WebCore::RenderCounter::originalText):
Changed to use identifier instead of counterName and actsAsReset or hasResetType, as appropriate instead of isReset.
* rendering/CounterNode.h:
(WebCore::CounterNode::actsAsReset):
(WebCore::CounterNode::hasResetType):
2009-12-21 Dirk Schulze <krit@webkit.org>
Reviewed by Darin Adler and Nikolas Zimmermann.
Speed-up SVG Masking
https://bugs.webkit.org/show_bug.cgi?id=32738
This patch makes SVG Masking faster. The luminance calculaton of the ImageBuffer,
that is created by pixel manipulation, got optimized. The ImageBuffer and it's
luminance is created once now, not on every call of applyMask.
The size of the intermediate ImageBuffer depends on the visible area now and is
clipped by the mask rect.
The patch doesn't change functionality so no new tests needed.
The new ImageBuffer handling in Mask causes two updates of test results. The pixel
tests and LayoutTests pass, but the checksum doesn't match.
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::drawMaskerContent):
* svg/graphics/SVGResourceMasker.cpp:
(WebCore::SVGResourceMasker::applyMask):
2009-12-21 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Fix assertion failure when dragging an SVG image.
https://bugs.webkit.org/show_bug.cgi?id=32511
Test: fast/images/drag-svg-as-image.html
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::filenameExtension): Return "svg"
* svg/graphics/SVGImage.h:
2009-12-17 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez.
[GTK] G_OBJECT() cast is not necessary for signals connection and properties access
https://bugs.webkit.org/show_bug.cgi?id=32661
Removed useless calls to the G_OBJECT() macro and replaced NULL
occurences with a SENTINEL macro.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivate::hasVideo):
(WebCore::MediaPlayerPrivate::hasAudio):
(WebCore::MediaPlayerPrivate::setVolume):
(WebCore::MediaPlayerPrivate::createGSTPlayBin):
2009-12-21 Nate Chapin <japhet@chromium.org>
Reviewed by Darin Adler.
If an image load is started during an unload or beforeunload event, run it
asynchronously (and allow it to outlive its page) so navigation can continue
while the load completes.
https://bugs.webkit.org/show_bug.cgi?id=30457
Tests: http/tests/navigation/image-load-in-beforeunload-handler.html
http/tests/navigation/image-load-in-unload-handler.html
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
* loader/FrameLoader.cpp: Rename m_unloadEventBeingDispatched to m_isDispatchingUnloadEvent.
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Set m_isDispatchingBeforeUnloadEvent.
(WebCore::FrameLoader::pageHidden):
* loader/FrameLoader.h:
(WebCore::FrameLoader::isDispatchingUnloadFamilyEvent): Added.
* loader/Request.cpp:
(WebCore::Request::Request): Add OutlivePagePolicy to constructor parameters
* loader/Request.h:
(WebCore::): Add OutlivePagePolicy enum.
(WebCore::Request::shouldOutlivePage): Added.
(WebCore::Request::frame): Added.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create): Change one of the security checks to an outlive page check.
* loader/SubresourceLoader.h:
* loader/loader.cpp:
(WebCore::Loader::load): Add OutlivePagePolicy to Request constructor call,
ensure requests that should outlive page are done asynchronously.
(WebCore::Loader::cancelRequests): Remove ending ASSERT since it will now be hard to predict how
many requests might possibly outlive a cancel in every case.
(WebCore::Loader::Host::servePendingRequests): Use the correct frame in the case of a request outliving its page.
(WebCore::Loader::Host::cancelPendingRequests): Ensure we don't cancel request that should outlive their page.
(WebCore::Loader::Host::cancelRequests): Ensure we don't cancel request that should outlive their page.
2009-12-18 Adam Roben <aroben@apple.com>
Fix Windows build warnings
* WebCore.vcproj/WebCore.vcproj: Exclude SVG files from the build that
are compiled via SVGAllInOne.cpp.
2009-12-20 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Can’t copy outer html of selected node.
Also adds "Copy as HTML" context menu item.
https://bugs.webkit.org/show_bug.cgi?id=32802
* English.lproj/localizedStrings.js:
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
* inspector/front-end/inspector.js:
(WebInspector.documentCanCopy):
2009-12-20 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Eric Seidel.
Web Inspector: extract syntax highlighters into separate files.
https://bugs.webkit.org/show_bug.cgi?id=32803
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/CSSSourceSyntaxHighlighter.js: Added.
(WebInspector.CSSSourceSyntaxHighlighter):
* inspector/front-end/JavaScriptSourceSyntaxHighlighter.js: Added.
(WebInspector.JavaScriptSourceSyntaxHighlighter):
(WebInspector.JavaScriptSourceSyntaxHighlighter.):
* inspector/front-end/SourceFrame.js:
* inspector/front-end/SourceSyntaxHighlighter.js: Added.
(WebInspector.SourceSyntaxHighlighter):
(WebInspector.SourceSyntaxHighlighter.prototype.createSpan):
(WebInspector.SourceSyntaxHighlighter.prototype.process.processChunk):
(WebInspector.SourceSyntaxHighlighter.prototype.process.moveToNextLine):
(WebInspector.SourceSyntaxHighlighter.prototype.process):
(WebInspector.SourceSyntaxHighlighter.prototype.lex):
(WebInspector.SourceSyntaxHighlighter.prototype.appendNonToken):
(WebInspector.SourceSyntaxHighlighter.prototype.syntaxHighlightNode):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2009-12-18 Julien Chaffraix <jchaffraix@pleyo.com>
Reviewed by Darin Adler.
defersLoading is disabled in current libcURL.
https://bugs.webkit.org/show_bug.cgi?id=32707
Basically this change reverts r49577 that was totally wrong.
According to curlver.h, LIBCURL_VERSION_NUM is a
"6-digit (24 bits) hexadecimal number".
The check should be against 0x071200 (7.18) as it was originally the case.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::initializeHandle): Use the right check.
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::setDefersLoading): Ditto. Also removed a print
to use a LOG_ERROR instead.
2009-12-20 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
Add support for JavaScriptCore Date binding.
https://bugs.webkit.org/show_bug.cgi?id=32698
This is needed for HTMLInputElement::valueAsDate and
HTMLTimeElement::valueAsDate.
A Date instance is mapped to a double value in C++.
- If null or undefined is set to a JavaScript property, C++ setter
function receives NaN.
- If a getter C++ function returns NaN or infinity, a JavaScript
property returns null.
Test: fast/forms/input-valueasdate.html
* bindings/js/JSDOMBinding.cpp:
(WebCore::jsDateOrNull): Implement the above.
(WebCore::valueToDate): ditto.
* bindings/js/JSDOMBinding.h: Declare them.
* bindings/scripts/CodeGeneratorJS.pm: Produce jsDateOrNull() or
valueToDate() for Date type.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::valueAsDate): Temporal implementation.
(WebCore::HTMLInputElement::setValueAsDate): ditto.
* html/HTMLInputElement.h:
* html/HTMLInputElement.idl: Declare valueAsDate.
2009-12-20 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
Introduce the followings:
- ::-webkit-inner-spin-button pseudo CSS selector
- ::-webkit-outer-spin-button pseudo CSS selector
- new appearance type: inner-spin-button
- new appearance type: outer-spin-button
They're going to be used for <input type=number> UI.
https://bugs.webkit.org/show_bug.cgi?id=31821
Inner-spin-button will be used for Windows, and outer-spin-button
will be used for Mac. A spin-button will represent a pair of an
increasing button part and a decreasing button part. SpinUpState,
which is defined in ThemeTypes.h, will be used to distinguish
these two parts.
The outer-spin-button implementation will use NSStepperCell.
NSStepperCell represents the pair of the parts and we can't draw them
independently. So a spin-button also represents the pair of the parts.
This change has no tests. The following changes with tests will cover.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
* css/CSSValueKeywords.in:
* css/html.css:
* platform/ThemeTypes.h:
(WebCore::ControlState): Add SpinUpState.
(WebCore::ControlPart): Add InnerSpinButtonPart and OuterSpinButtonPart.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::adjustInnerSpinButtonStyle): Add an empty implementation.
(WebCore::RenderTheme::adjustOuterSpinButtonStyle): Add an empty implementation.
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintInnerSpinButton): Add an empty implementation.
(WebCore::RenderTheme::paintOuterSpinButton): Add an empty implementation.
* rendering/style/RenderStyleConstants.h:
(WebCore::PseudoId): Add INNER_SPIN_BUTTON and OUTER_SPIN_BUTTON.
2009-12-20 Nayan Kumar K <nayankk@gmail.com>
Reviewed by Darin Adler.
Fix for compilation errors in WML module, due to the changeset #52314.
https://bugs.webkit.org/show_bug.cgi?id=32786
No new tests, this is compilation error fix.
* wml/WMLDocument.cpp:
* wml/WMLPageState.cpp:
* wml/WMLPageState.h:
2009-12-20 Dan Bernstein <mitz@apple.com>
Reviewed by Mark Rowe.
<rdar://problem/7487689> REGRESSION (r52203): Inspector console uses
Monaco on Snow Leopard
https://bugs.webkit.org/show_bug.cgi?id=32775
* inspector/front-end/inspector.css: Use the default monospace family
and size.
2009-12-20 Martin Robinson <martin.james.robinson@gmail.com>
Reviewed by Xan Lopez.
[GTK] Remove more GTK+ and GLib headers from WebCore
https://bugs.webkit.org/show_bug.cgi?id=32795
Remove most GTK+ and GLib includes from WebCore headers.
* platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
* platform/gtk/PasteboardHelper.h:
* platform/gtk/RenderThemeGtk.cpp:
* platform/gtk/RenderThemeGtk.h:
* platform/gtk/ScrollbarGtk.cpp:
* platform/gtk/ScrollbarThemeGtk.h:
* platform/gtk/gtk2drawing.c:
* platform/gtk/gtkdrawing.h:
2009-12-20 Kevin Ollivier <kevino@theolliviers.com>
[wx] build fixes after recent changes.
* bindings/BindingSecurityBase.cpp: Removed V8 header in common code.
* platform/wx/ContextMenuWx.cpp: Added missing header.
* plugins/mac/PluginViewMac.cpp: Added missing header.
2009-12-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Reviewed by Xan Lopez.
Hopefully fix the assertion we are hitting by not forcing updating
the state of scrollbars when setting the adjustments. This was
leading to a premature layout.
fast/dom/open-and-close-by-DOM.html
fast/dom/Window/closure-access-after-navigation-window.html
fast/harness/use-page-cache.html
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::setGtkAdjustments):
2009-12-20 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Darin Adler.
Web Inspector: Constrain the number of messages the inspector shows.
https://bugs.webkit.org/show_bug.cgi?id=20919
* English.lproj/localizedStrings.js:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::addConsoleMessage):
(WebCore::InspectorController::clearConsoleMessages):
(WebCore::InspectorController::populateScriptObjects):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::updateConsoleMessageExpiredCount):
* inspector/InspectorFrontend.h:
* inspector/front-end/inspector.js:
(WebInspector.updateConsoleMessageExpiredCount):
2009-12-20 Andrei Popescu <andreip@google.com>
Reviewed by Adam Barth.
[Android] Android needs implementation of setCookies, cookies and cookiesEnabled functions.
https://bugs.webkit.org/show_bug.cgi?id=32559
Add implementation of the cookie functions.
Fix a crash caused by dereferencing a 0 MainResourceLoader pointer
in ResourceHandle::start().
No new tests, this is platform code.
* platform/android/PlatformBridge.h:
* platform/network/android/AuthenticationChallenge.h: Added.
* platform/network/android/CookieJarAndroid.cpp: Added.
(WebCore::setCookies):
(WebCore::cookies):
(WebCore::cookiesEnabled):
* platform/network/android/ResourceHandleAndroid.cpp:
(WebCore::ResourceHandle::start):
2009-12-19 Eric Seidel <eric@webkit.org>
No review, rolling out r52395.
http://trac.webkit.org/changeset/52395
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::drawMaskerContent):
* svg/SVGMaskElement.h:
* svg/graphics/SVGResourceMasker.cpp:
(WebCore::SVGResourceMasker::applyMask):
* svg/graphics/SVGResourceMasker.h:
2009-12-19 Adam Barth <abarth@webkit.org>
No review, rolling out r52399.
http://trac.webkit.org/changeset/52399
* websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
2009-12-19 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Added a missing "not".
Test: http/tests/security/xss-DENIED-window-open-javascript-url.html
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::createWindow):
2009-12-19 Fumitoshi Ukai <ukai@chromium.org>
Reviewed by Alexey Proskuryakov.
Invalid url should raise SYNTAX_ERR exception.
https://bugs.webkit.org/show_bug.cgi?id=32700
Check url is valid in WebSocket::connect.
Also log the detailed reason of websocket failures to console.
* websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
2009-12-19 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
REGRESSION: Up/down arrow keys do not step numeric CSS property values
https://bugs.webkit.org/show_bug.cgi?id=32776
* inspector/front-end/inspector.js:
(WebInspector.documentKeyDown): Call the focused element’s
handleKeyEvent method.
2009-12-19 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
Speed-up SVG Masking
https://bugs.webkit.org/show_bug.cgi?id=32738
This patch makes SVG Masking faster. At the moment we create a new ImageBuffer
and copy the complete pixel array. That is rather inefficient. This patch
uses the mask image directly.
It also bounds the direct pixel manipultation to the viewable area to minimize
the calculation of the mask.
No change in functionality. So no new test.
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::drawMaskerContent):
* svg/SVGMaskElement.h:
* svg/graphics/SVGResourceMasker.cpp:
(WebCore::SVGResourceMasker::applyMask):
* svg/graphics/SVGResourceMasker.h:
2009-12-19 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
Add tests to check filter, mask, clip, opacity and marker ordering
https://bugs.webkit.org/show_bug.cgi?id=14010
The right ordering for applying effects on objects in SVG is filters,
clipper/masker and opacity. This patch fixes the order of filter and
clipper/masker. Opacity and marker need another test.
This change is according to the SVG Specification:
http://www.w3.org/TR/SVG11/render.html#Elements
Test: svg/filters/filter-clip.svg
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::prepareToRenderSVGContent):
2009-12-19 Evan Martin <evan@chromium.org>
Reviewed by Gustavo Noronha Silva.
Revert my attempt at making --disable-geolocation work; it is
more complicated than I anticipated. (It passed on the build bots
because they build with --enable-geolocation.)
* GNUmakefile.am:
2009-12-19 MORITA Hajime <morrita@gmail.com>
Reviewed by Darin Adler.
WebCore::Range::surroundContents NULL pointer crash.
https://bugs.webkit.org/show_bug.cgi?id=31684
Test: fast/dom/Range/31684.html
* dom/Range.cpp:
(WebCore::Range::surroundContents):
throw exception when parentOfNewParent->parentNode() is NULL.
2009-12-19 Christian Dywan <christian@twotoasts.de>
Reviewed by Gustavo Noronha Silva.
Don't use an icon for all spelling guess menu items.
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::gtkStockIDFromContextMenuAction):
2009-12-19 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Unreviewed build fix. Missing \.
* GNUmakefile.am:
2009-12-19 Evan Martin <evan@chromium.org>
Reviewed by Gustavo Noronha Silva.
Make --disable-geolocation and --disable-svg work, by conditionally
building the relevant files.
* GNUmakefile.am:
2009-12-18 Peter Kasting <pkasting@google.com>
Reviewed by Simon Fraser.
Add a comment about some confusing code that otherwise would look like
it might be a bug.
https://bugs.webkit.org/show_bug.cgi?id=32534
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
2009-12-18 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Messed up the XCode file, trying to fix.
* WebCore.xcodeproj/project.pbxproj:
2009-12-18 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed, fix typos in WebCore.xcodeproj.
* WebCore.xcodeproj/project.pbxproj:
2009-12-18 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Eric Seidel.
SVGAngle / SVGPreserveAspectRatio should be POD types
https://bugs.webkit.org/show_bug.cgi?id=32758
Convert SVGAngle / SVGPreserveAspectRatio to be non-refcounted types, just
like it has been done for SVGMatrix / SVGLength before.
This patch prepares removing the special DOMObjectWithSVGContext hack.
No change in functionality, thus no new tests.
* WebCore.xcodeproj/project.pbxproj: Add SVGNames.h to the 'Copy Generated Headers' phase, and set SVGAngle/SVGPreserveAspectRatio role to 'Private', so WebKit can access it.
* bindings/scripts/CodeGenerator.pm: Recognize SVGAngle / SVGPreserveAspectRatio as new POD-types (similar to SVGLength)
* bindings/scripts/CodeGeneratorJS.pm: Ditto.
* bindings/scripts/CodeGeneratorV8.pm: Ditto.
* bindings/v8/V8Index.h: Ditto.
* rendering/RenderSVGImage.cpp: All following changes, modify SVGAngle/SVGPreserveAspectRatio access, as they are non-refcounted now.
(WebCore::RenderSVGImage::adjustRectsForAspectRatio):
(WebCore::RenderSVGImage::paint):
* rendering/RenderSVGImage.h:
* svg/SVGAngle.h:
* svg/SVGAngle.idl:
* svg/SVGAnimatedTemplate.h:
(WebCore::):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::SVGFEImageElement):
(WebCore::SVGFEImageElement::parseMappedAttribute):
* svg/SVGFitToViewBox.cpp:
(WebCore::SVGFitToViewBox::viewBoxToViewTransform):
(WebCore::SVGFitToViewBox::parseMappedAttribute):
* svg/SVGFitToViewBox.h:
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::SVGImageElement):
(WebCore::SVGImageElement::parseMappedAttribute):
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::SVGMarkerElement):
(WebCore::SVGMarkerElement::parseMappedAttribute):
(WebCore::SVGMarkerElement::setOrientToAuto):
(WebCore::SVGMarkerElement::setOrientToAngle):
(WebCore::SVGMarkerElement::canvasResource):
* svg/SVGMarkerElement.h:
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::SVGPatternElement):
* svg/SVGPreserveAspectRatio.cpp:
(WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
(WebCore::SVGPreserveAspectRatio::getCTM):
* svg/SVGPreserveAspectRatio.h:
(WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
* svg/SVGPreserveAspectRatio.idl:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::SVGSVGElement):
(WebCore::SVGSVGElement::createSVGAngle):
(WebCore::SVGSVGElement::inheritViewAttributes):
* svg/SVGSVGElement.h:
* svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::SVGSymbolElement):
* svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::SVGViewElement):
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::SVGViewSpec):
(WebCore::SVGViewSpec::setPreserveAspectRatioString):
(WebCore::SVGViewSpec::parseViewSpec):
2009-12-18 Dumitru Daniliuc <dumi@chromium.org>
Chromium build fix, no review.
* storage/chromium/DatabaseTrackerChromium.cpp:
2009-12-18 Brent Fulgham <bfulgham@webkit.org>
Build fix, no review.
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::createFontPlatformData): Correct my typo
on the CG build.
2009-12-18 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Eric Seidel.
Make DatabaseTrackerChromium::removeOpenDatabase() send and IPC on
the main thread when a database is being closed.
https://bugs.webkit.org/show_bug.cgi?id=32627
* storage/chromium/DatabaseTrackerChromium.cpp:
(WebCore::removeOpenDatabaseOnMainThread):
(WebCore::DatabaseTracker::removeOpenDatabase):
2009-12-18 Brent Fulgham <bfulgham@webkit.org>
Build fix, no review.
* page/win/FrameCairoWin.cpp: Add missing include.
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::createFontPlatformData): Conditionalize
Safari-only call.
2009-12-18 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Dmitry Titov.
Move some code related to database closing from the destructor to
the close() method. This would allow us to do things such as post
tasks to other threads when a database closes, which cannot be
done now, because we cannot increment the ref count to a database
object when we're in its destructor.
https://bugs.webkit.org/show_bug.cgi?id=32626
* storage/Database.cpp:
(WebCore::Database::~Database):
(WebCore::Database::close):
2009-12-18 Jon Honeycutt <jhoneycutt@apple.com>
REGRESSION(r52233): MSAA: Accessibility role of lists is wrong
https://bugs.webkit.org/show_bug.cgi?id=32736
Reviewed by Adam Roben.
Test: platform/win/accessibility/list-role.html
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::roleValueForMSAA):
Return roleValue(), rather than m_role, as subclasses may override it.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::roleValueForMSAA):
Fallback to roleValue(), rather than m_role, as it may be overriden.
2009-12-17 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: Accessibility role of list items is wrong
https://bugs.webkit.org/show_bug.cgi?id=32688
Reviewed by Adam Roben.
Test: platform/win/accessibility/list-item-role.html
* accessibility/AccessibilityObject.h:
(WebCore::):
Add a ListItemRole to the enum.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::msaaRoleForRenderer):
Return the role for the RenderObject, or UnknownRole if unknown.
(WebCore::AccessibilityRenderObject::roleValueForMSAA):
Call msaaRoleForRenderer() to get the role. If it is UnknownRole, fall
back to m_role.
2009-12-18 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
Crash when accessing webkitTransition property after setting webkitTransitionProperty with invalid value.
https://bugs.webkit.org/show_bug.cgi?id=31559
Fix an array bounds error when accessing the CSS value for a shorthand property that takes
a comma-separated list, after the list for one of the component properties has been set to a different length.
Test: fast/css/shorthand-mismatched-list-crash.html
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue):
2009-12-18 Simon Fraser <simon.fraser@apple.com>
Reviewed by Mark Rowe.
Remove WebCore.ClientBasedGeolocation.exp from Sources, and remove two IDL files from Resources.
* WebCore.xcodeproj/project.pbxproj:
2009-12-18 Sam Weinig <sam@webkit.org>
Fix mac Geolocation build.
* DerivedSources.make:
* WebCore.ClientBasedGeolocation.exp: Added.
* WebCore.xcodeproj/project.pbxproj:
* page/Geolocation.h:
* page/GeolocationError.h:
(WebCore::GeolocationError::GeolocationError):
* page/GeolocationPosition.h:
2009-12-18 Brian Weinstein <bweinstein@apple.com>
Reviewed by Adam Roben.
Fixes <http://webkit.org/b/32613>.
REGRESSION (r52008): Middle-clicking on a linked image starts a pan scroll,
but should follow the link instead.
The node itself isn't the only possible node that can be a link (that was the
original check), any of its ancestors could be links as well, we need to climb
up the tree to see. Created a new function (enclosingAnchorNode), that finds a
node's enclosing anchor element (if it exists), that we can share between RenderLayer
and Node, and also added tests that test pan scrolling behavior in image maps.
Tests: platform/win/fast/events/panScroll-image-no-scroll.html
platform/win/fast/events/panScroll-imageMap-href-no-scroll.html
platform/win/fast/events/panScroll-imageMap-noHref-scroll.html
* dom/Node.cpp:
(WebCore::Node::enclosingAnchorNode):
(WebCore::Node::defaultEventHandler):
* dom/Node.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTest):
2009-12-18 Benjamin Otte <otte@gnome.org>
Reviewed by Xan Lopez.
[GTK] RemoveDashboard support. It's useless.
* GNUmakefile.am:
2009-12-18 Christian Dywan <christian@twotoasts.de>
Reviewed by Xan Lopez.
[GTK] context menu overriding API is very limited
https://bugs.webkit.org/show_bug.cgi?id=27546
Omit SearchWeb from the context menu in the GTK+ port.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate):
2009-12-18 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Add export the new symbol in WebCoreSystemInterface.
* WebCore.base.exp:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2009-12-18 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Forward declare NSMutableArray when not compiling for Objective-C.
* platform/mac/WebCoreSystemInterface.h:
2009-12-18 Gavin Barraclough <barraclough@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=32720
Replace UString addition/append with use of JSC::StringBuilder.
* ForwardingHeaders/runtime/StringBuilder.h: Added.
* bindings/js/ScriptString.h:
(WebCore::ScriptString::operator+=):
* bridge/jni/jni_runtime.cpp:
(appendClassName):
(JavaMethod::signature):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::addProfileFinishedMessageToConsole):
(WebCore::InspectorController::addStartProfilingMessageToConsole):
(WebCore::InspectorController::getCurrentUserInitiatedProfileName):
2009-12-18 Kenneth Russell <kbr@google.com>
Reviewed by Darin Fisher.
Index validation for drawElements examines too many indices
https://bugs.webkit.org/show_bug.cgi?id=32692
Test: fast/canvas/webgl/bug-32692.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
2009-12-18 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Update WebKitSystemInterface for <rdar://problem/7237059>.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2009-12-18 Adam Roben <aroben@apple.com>
GTK build fix
* plugins/gtk/PluginViewGtk.cpp: Added #include.
2009-12-18 Adam Roben <aroben@apple.com>
Chromium build fix
* platform/chromium/PopupMenuChromium.cpp: Added #include.
2009-12-18 Adam Roben <aroben@apple.com>
Chromium build fix
* html/HTMLLinkElement.cpp: Added #include.
2009-12-18 Adam Roben <aroben@apple.com>
Qt build fix
* platform/qt/RenderThemeQt.cpp:
* plugins/qt/PluginDataQt.cpp:
* plugins/qt/PluginViewQt.cpp:
Added #includes.
2009-12-18 Adam Roben <aroben@apple.com>
V8 build fix
* bindings/v8/custom/V8DOMWindowCustom.cpp: Added #include.
2009-12-18 Adam Roben <aroben@apple.com>
GTK (and others?) build fix
* platform/text/StringImpl.h: Added #include.
2009-12-18 Adam Roben <aroben@apple.com>
Reduce #includes in a few high-use headers
Removed unnecessary #includes in these headers:
- Frame.h
- FrameWin.h
- Node.h
- Page.h
- StringImpl.h
The rest of the patch is all adding #includes to source files that now
require them.
Fixes <http://webkit.org/b/32718>.
Rubber-stamped by Anders Carlsson.
* dom/Node.h:
* page/Frame.h:
* page/Page.h:
* page/win/FrameWin.h:
* platform/text/StringImpl.h:
Removed unnecessary #includes.
* accessibility/win/AXObjectCacheWin.cpp:
* bindings/js/JSDOMWindowBase.cpp:
* bindings/js/JSDOMWindowCustom.cpp:
* dom/Document.cpp:
* dom/InputElement.cpp:
* dom/Node.cpp:
* dom/SelectElement.cpp:
* editing/EditorCommand.cpp:
* html/HTMLFormControlElement.cpp:
* html/HTMLFormElement.cpp:
* html/HTMLMediaElement.cpp:
* html/HTMLParser.cpp:
* html/HTMLTextAreaElement.cpp:
* html/HTMLVideoElement.cpp:
* inspector/InspectorController.cpp:
* loader/FrameLoader.cpp:
* loader/HistoryController.cpp:
* loader/appcache/ApplicationCacheGroup.cpp:
* page/Console.cpp:
* page/EventHandler.cpp:
* page/Frame.cpp:
* page/FrameView.cpp:
* page/Navigator.cpp:
* page/PageGroup.cpp:
* page/Settings.cpp:
* page/mac/EventHandlerMac.mm:
* platform/KURL.h:
* platform/ScrollbarThemeComposite.cpp:
* platform/cf/BinaryPropertyList.cpp:
* platform/graphics/mac/GraphicsLayerCA.h:
* platform/graphics/win/WKCACFLayerRenderer.cpp:
* platform/mac/PopupMenuMac.mm:
* platform/mac/WidgetMac.mm:
* platform/network/cf/DNSCFNet.cpp:
* platform/text/StringImpl.cpp:
* platform/win/FileSystemWin.cpp:
* platform/win/PlatformScreenWin.cpp:
* platform/win/PopupMenuWin.cpp:
* platform/win/WidgetWin.cpp:
* plugins/PluginView.cpp:
* plugins/win/PluginViewWin.cpp:
* rendering/InlineTextBox.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderFileUploadControl.cpp:
* rendering/RenderInline.cpp:
* rendering/RenderLayerCompositor.cpp:
* rendering/RenderObject.cpp:
* rendering/RootInlineBox.cpp:
* storage/DatabaseTracker.cpp:
* storage/DatabaseTracker.h:
* storage/SQLTransactionClient.cpp:
* svg/graphics/SVGImage.cpp:
Added now-needed #includes.
2009-12-18 Shu Chang <Chang.Shu@nokia.com>
Reviewed by Darin Adler.
Implemented isId as specified by DOM Level 3. See detailed description below.
https://bugs.webkit.org/show_bug.cgi?id=5578
Added isId property and implementation:
Tests: dom/xhtml/level3/core/attrisid01-07.xhtml
fast/dom/Element/attrisid-extra01.html
* dom/Attr.cpp:
(WebCore::Attr::isId):
* dom/Attr.h:
* dom/Attr.idl:
Replaced instances of HTMLNames::idAttr with Element::idAttributeName()
for the reason that id attribute name could be customized to a different
string other than "id". A test case is associated to each code change.
* dom/Document.cpp:
(WebCore::Document::getElementById): Test: fast/dom/Element/id-in-getelement01.html
* dom/Element.cpp: Tests: dom/xhtml/level3/core/attrisid01-07.xhtml
(WebCore::Element::setAttribute):
(WebCore::Element::setAttributeMap):
(WebCore::Element::insertedIntoDocument):
(WebCore::Element::removedFromDocument):
(WebCore::Element::formatForDebugger):
(WebCore::Element::rareIDAttributeName):
* dom/Element.h: Added function idAttributeName().
(WebCore::Element::idAttributeName):
* dom/ElementRareData.h: Added member variable to store customized id name in ElementRareData.
(WebCore::ElementRareData::ElementRareData):
* dom/NamedAttrMap.cpp: Tests: dom/xhtml/level3/core/attrisid01-07.xhtml
(WebCore::NamedNodeMap::setNamedItem):
(WebCore::NamedNodeMap::removeNamedItem):
(WebCore::NamedNodeMap::setAttributes):
* dom/Node.cpp: Removed ASSERT as it may not hold any more.
(WebCore::Node::querySelector):
* dom/SelectorNodeList.cpp: Removed ASSERT as it may not hold any more.
(WebCore::createSelectorNodeList):
* dom/StyledElement.cpp: Tests: dom/xhtml/level3/core/attrisid01-07.xhtml
(WebCore::StyledElement::parseMappedAttribute):
* editing/DeleteButtonController.cpp: Test: fast/dom/Element/id-in-deletebutton.html
(WebCore::DeleteButtonController::createDeletionUI):
* editing/EditorCommand.cpp: Test: fast/dom/Element/id-in-insert-hr.html
(WebCore::executeInsertHorizontalRule):
* html/HTMLAppletElement.cpp: Test: fast/dom/Element/id-in-applet.html
(WebCore::HTMLAppletElement::parseMappedAttribute):
(WebCore::HTMLAppletElement::createRenderer):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::checkForNameMatch): Test: fast/forms/select-namedItem.html
(WebCore::HTMLCollection::updateNameCache): Test: fast/dom/collection-namedItem-via-item.html
* html/HTMLDataGridColElement.cpp:
(WebCore::HTMLDataGridColElement::ensureColumn): Test: fast/dom/HTMLDataGridElement/DataGridColumns-dom.html
(WebCore::HTMLDataGridColElement::parseMappedAttribute): Test: fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseMappedAttribute):
* html/HTMLFormCollection.cpp: Test: fast/dom/Element/id-in-formcollection.html
(WebCore::HTMLFormCollection::getNamedFormItem):
(WebCore::HTMLFormCollection::nextNamedItem):
(WebCore::HTMLFormCollection::updateNameCache):
* html/HTMLFrameElementBase.cpp: Test: fast/dom/Element/id-in-frame.html
(WebCore::HTMLFrameElementBase::parseMappedAttribute):
(WebCore::HTMLFrameElementBase::setNameAndOpenURL):
* html/HTMLImageElement.cpp: Test: fast/dom/Element/id-in-deletebutton.html
(WebCore::HTMLImageElement::parseMappedAttribute):
* html/HTMLMapElement.cpp: Test: fast/dom/Element/id-in-map.html
(WebCore::HTMLMapElement::parseMappedAttribute):
* html/HTMLNameCollection.cpp: Test: fast/dom/Element/id-in-frameset.html
(WebCore::HTMLNameCollection::itemAfter):
* html/HTMLObjectElement.cpp: Test: fast/dom/HTMLDocument/object-by-name-or-id.html
(WebCore::HTMLObjectElement::parseMappedAttribute):
* html/HTMLParamElement.cpp: Test: fast/dom/Element/id-in-param.html
(WebCore::HTMLParamElement::parseMappedAttribute):
* loader/CachedFont.cpp: Test: svg/custom/acid3-test-77.html
(WebCore::CachedFont::getSVGFontById):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createGraphicsLayer): Debug-only code
* rendering/SVGRenderTreeAsText.cpp: Test: svg/text/text-gradient-positioning.svg
(WebCore::writeRenderResources):
* svg/SVGElement.cpp: Test: svg/custom/acid3-test-77.html
(WebCore::SVGElement::insertedIntoDocument):
* svg/SVGStyledElement.cpp: Test: svg/custom/js-update-image-and-display.svg
(WebCore::SVGStyledElement::isKnownAttribute):
* wml/WMLElement.cpp:
(WebCore::WMLElement::parseMappedAttribute):
2009-12-18 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Clean up the qmake build system to distinguish between trunk builds and package builds
https://bugs.webkit.org/show_bug.cgi?id=32716
Introduce standalone_package as config that is set when QTDIR_build is set or when
the directory for the generated files is present.
Renamed uses of QTDIR_build that apply to generic package builds to use standalone_package.
Others remain as they are specific to building inside Qt.
* WebCore.pro:
2009-12-18 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Fix the build on Symbian.
Use QFont::lastRestortFamily() instead of QFont::lastRestortFont(),
which is a missing symbol in Qt 4.6.0 on Symbian.
Functionally they should be equivalent, according to the source.
* platform/graphics/qt/FontCacheQt.cpp:
(WebCore::FontCache::getLastResortFallbackFont):
2009-12-18 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez.
[GTK] segfault during controls initialization if not GTK theme is present.
https://bugs.webkit.org/show_bug.cgi?id=32705
Create empty images for the controls if no GTK theme is set.
* platform/graphics/gtk/ImageGtk.cpp:
(WebCore::getThemeIconFileName):
(WebCore::loadImageFromFile):
2009-12-18 Alejandro G. Castro <alex@igalia.com>
Reviewed by Darin Adler.
REGRESSION (r38898): Using the up arrow in a textarea gets "stuck"
at the beginning.
https://bugs.webkit.org/show_bug.cgi?id=31920
Moving up from a position after the end of the previous lines
should use UPSTREAM affinity to render the caret in the previous
line.
Test: editing/selection/wrapped-line-caret-3.html
* rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
2009-12-17 Eric Seidel <eric@webkit.org>
Reviewed by Darin Adler.
HTMLInputElement::stepMismatch() uses ambiguous overload of pow()
https://bugs.webkit.org/show_bug.cgi?id=32675
Use the double constant 2.0 instead of static_cast<double>(2).
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::stepMismatch):
2009-12-17 Justin Schuh <jschuh@chromium.org>
Reviewed by Dan Bernstein.
Bug 32357: SVG test case crashes WebKit (invalid font URL)
https://bugs.webkit.org/show_bug.cgi?id=32357
Added check for NULL return value from DocLoader::requestFont()
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::loadFont):
2009-12-17 Shinichiro Hamaji <hamaji@chromium.org>
Reviewed by Dan Bernstein.
marquee with display:inline causes crash
https://bugs.webkit.org/show_bug.cgi?id=32374
Test: fast/inline/inline-marquee-crash.html
* html/HTMLMarqueeElement.cpp:
(WebCore::HTMLMarqueeElement::start):
(WebCore::HTMLMarqueeElement::stop):
(WebCore::HTMLMarqueeElement::suspend):
(WebCore::HTMLMarqueeElement::resume):
(WebCore::HTMLMarqueeElement::renderMarquee):
* html/HTMLMarqueeElement.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::styleChanged):
2009-12-17 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Darin Adler.
Allow custom memory allocation control for inspector's classes
https://bugs.webkit.org/show_bug.cgi?id=32660
Inherits the following classes from Noncopyable because these are
instantiated by 'new' and no need to be copyable:
class name - instantiated at: WebCore/'location'
class JavaScriptDebugServer - inspector/JavaScriptDebugServer.cpp:72
class ConsoleMessage - inspector/InspectorController.cpp:329
class InspectorController - page/Page.cpp:119
* inspector/ConsoleMessage.h:
* inspector/InspectorController.h:
* inspector/JavaScriptDebugServer.h:
2009-12-17 Steve Block <steveblock@google.com>
Reviewed by Eric Seidel.
Fixes HTMLInputElement::stepMismatch() to avoid ambiguous overload of pow().
https://bugs.webkit.org/show_bug.cgi?id=32675
Build fix only, no new tests.
* html/HTMLInputElement.cpp: Modified.
(WebCore::HTMLInputElement::stepMismatch): Cast first argument of pow to double to force 'double pow(double, int)'
2009-12-17 Marc-Antoine Ruel <maruel@chromium.org>
Reviewed by Eric Seidel.
Fix link failure on LTCG builds on Windows for chromium port.
Reenable SVGAllInOne.cpp. This required some fixups.
Namely, there was conflicts in constants between HTMLNames and
SVGNames, and conflicts between static functions names.
No new tests as functionality has not changed.
* WebCore.gyp/WebCore.gyp:
* svg/SVGAllInOne.cpp:
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::rebuildFontFace):
* svg/SVGGlyphElement.cpp:
(WebCore::SVGGlyphElement::invalidateGlyphCache):
(WebCore::SVGGlyphElement::buildGlyphIdentifier):
* svg/SVGHKernElement.cpp:
(WebCore::SVGHKernElement::insertedIntoDocument):
(WebCore::SVGHKernElement::removedFromDocument):
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::type):
(WebCore::SVGStyleElement::setType):
(WebCore::SVGStyleElement::media):
(WebCore::SVGStyleElement::setMedia):
(WebCore::SVGStyleElement::title):
(WebCore::SVGStyleElement::setTitle):
(WebCore::SVGStyleElement::parseMappedAttribute):
* svg/SVGStyledElement.cpp:
(WebCore::mapAttributeToCSSProperty):
(WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
* svg/SVGStyledElement.h:
2009-12-17 Adam Roben <aroben@apple.com>
Chromium build fix VI
* svg/animation/SMILTimeContainer.h: Added now-needed #include.
2009-12-17 Adam Roben <aroben@apple.com>
Chromium build fix V
* platform/KURLGoogle.cpp: Added now-needed #include.
2009-12-17 Adam Roben <aroben@apple.com>
Chromium build fix IV
* loader/CrossOriginPreflightResultCache.h: Added now-needed
#includes.
2009-12-17 Adam Roben <aroben@apple.com>
Chromium build fix III
* platform/graphics/Font.h: Added now-needed #include.
2009-12-17 Adam Roben <aroben@apple.com>
Chromium build fix II
* dom/EventTarget.h: Added now-needed #include.
2009-12-17 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Eric Seidel.
Allow custom memory allocation control for js bindings
https://bugs.webkit.org/show_bug.cgi?id=32655
Inherits the following classes from Noncopyable because these are instantiated
by 'new' and no need to be copyable:
class name - instantiated at: WebCore/'location'
class ScriptCachedFrameData - history/CachedFrame.cpp:117
class WebCoreJSClientData - bindings/js/JSDOMWindowBase.cpp:162
class ScheduledAction - bindings/js/ScheduledAction.cpp:58
* bindings/js/JSDOMBinding.h:
* bindings/js/ScheduledAction.h:
* bindings/js/ScriptCachedFrameData.h:
2009-12-17 Adam Roben <aroben@apple.com>
Chromium build fix
* dom/QualifiedName.h: Added now-needed #include of HashTraits.h
(which itself #includes HashFunctions.h).
2009-12-17 Pavel Feldman <pfeldman@dhcp-172-28-174-220.spb.corp.google.com>
Reviewed by Timothy Hatcher.
Web Inspector: Incorrect Doctype.
REGRESSION(4.0.4-TOT):Web Inspector: Incorrect Doctype
https://bugs.webkit.org/show_bug.cgi?id=32671
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode):
2009-12-17 Benjamin Otte <otte@gnome.org>
Reviewed by Adam Roben.
Don't include all JSC headers everywhere
https://bugs.webkit.org/show_bug.cgi?id=32663
Remove HashMap HashSet and OwnPtr includes from PlatformString.h.
Reduces code size of Gtk build by another 5%.
* platform/text/PlatformString.h:
2009-12-17 Adam Roben <aroben@apple.com>
Mac/Qt build fixes
* platform/graphics/mac/Canvas3DLayer.mm:
* platform/graphics/mac/GraphicsContext3DMac.cpp:
* platform/qt/Localizations.cpp:
Added missing #includes.
2009-12-17 Benjamin Otte <otte@gnome.org>
Reviewed by Adam Roben.
Don't include all JSC headers everywhere
https://bugs.webkit.org/show_bug.cgi?id=32663
PlatformString.h included almost all of JSC via runtime/Identifier.h.
This patch gets rid of this include by forward-declaring the required
classes instead.
This reduces the build size of the object files on a Gtk debug build
by 10%. The resulting libwebkit.so gets 5% smaller.
No new tests as it's just a build improvement.
* platform/gtk/LocalizedStringsGtk.cpp:
include math.h here (it used to be pulled by JSC)
* platform/text/PlatformString.h:
* platform/text/String.cpp:
2009-12-17 Evan Martin <evan@chromium.org>
Reviewed by Xan Lopez.
Always use all WebCore include paths in GtkWebKit.
With this patch, I can disable all optional features and still build.
* GNUmakefile.am:
2009-12-17 Yaar Schnitman <yaar@chromium.org>
Reviewed by Darin Fisher.
Added WebPageSerializer to WebKit API.
https://bugs.webkit.org/show_bug.cgi?id=31737
* platform/text/StringBuilder.cpp: Added methods to make StringBuilder even more useful for large scale string concatenation.
(WebCore::StringBuilder::clear):
(WebCore::StringBuilder::length):
* platform/text/StringBuilder.h:
2009-12-10 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez.
[GTK] Add controls for playing html5 video.
https://bugs.webkit.org/show_bug.cgi?id=26304
Media controls UI, first step. This patch was written by Zan
Dobersek. In addition I fixed the compilation errors and
re-enabled some of the media tests involving the controls UI.
* GNUmakefile.am:
* css/mediaControlsGtk.css: Added.
* platform/graphics/Image.h:
* platform/graphics/gtk/ImageGtk.cpp:
(WebCore::getThemeIconFileName):
(WebCore::loadResourceSharedBuffer):
(WebCore::loadImageFromFile):
(WebCore::Image::loadPlatformResource):
(WebCore::Image::loadPlatformThemeIcon):
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::getMediaElementFromRenderObject):
(WebCore::getIconNameForTextDirection):
(WebCore::RenderThemeGtk::initMediaStyling):
(WebCore::RenderThemeGtk::RenderThemeGtk):
(WebCore::RenderThemeGtk::~RenderThemeGtk):
(WebCore::supportsFocus):
(WebCore::RenderThemeGtk::baselinePosition):
(WebCore::paintMozWidget):
(WebCore::setToggleSize):
(WebCore::RenderThemeGtk::adjustSliderThumbSize):
(WebCore::RenderThemeGtk::gtkContainer):
(WebCore::RenderThemeGtk::platformColorsDidChange):
(WebCore::RenderThemeGtk::extraMediaControlsStyleSheet):
(WebCore::paintMediaButton):
(WebCore::RenderThemeGtk::paintMediaFullscreenButton):
(WebCore::RenderThemeGtk::paintMediaMuteButton):
(WebCore::RenderThemeGtk::paintMediaPlayButton):
(WebCore::RenderThemeGtk::paintMediaSeekBackButton):
(WebCore::RenderThemeGtk::paintMediaSeekForwardButton):
(WebCore::RenderThemeGtk::paintMediaSliderTrack):
(WebCore::RenderThemeGtk::paintMediaSliderThumb):
* platform/gtk/RenderThemeGtk.h:
2009-12-17 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] support navigator.onLine and ononline/onoffline events.
https://bugs.webkit.org/show_bug.cgi?id=32555
Hooked up Bearer Management to NetworkStateNotifier. This solution is available
only if QtMobility's Bearer Management is installed.
* WebCore.pro:
* platform/network/NetworkStateNotifier.h:
* platform/network/qt/NetworkStateNotifierPrivate.h: Added.
* platform/network/qt/NetworkStateNotifierQt.cpp: Added.
(WebCore::NetworkStateNotifierPrivate::NetworkStateNotifierPrivate):
(WebCore::NetworkStateNotifierPrivate::onlineStateChanged):
(WebCore::NetworkStateNotifierPrivate::~NetworkStateNotifierPrivate):
(WebCore::NetworkStateNotifier::updateState):
(WebCore::NetworkStateNotifier::NetworkStateNotifier):
2009-12-17 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Switch to 11px as default for source-code in WebKit.
https://bugs.webkit.org/show_bug.cgi?id=32646
* inspector/front-end/inspector.css:
2009-12-17 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Symbian build fix: Don't include QtXml/qxmlstream.h but omit the prefix, to
make sure we pick up the header file from QtCore. That is where the implementation
is compiled.
* dom/XMLTokenizer.h:
2009-12-17 Martin Robinson <martin.james.robinson@gmail.com>
Reviewed by Gustavo Noronha Silva.
[GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs
https://bugs.webkit.org/show_bug.cgi?id=21599
Add GRefPtr support for GTK types to WebCore, as JSC does not link against
GTK+. Also convert PopupMenu::m_poup from a raw pointer to a GRefPtr.
No new tests as functionality has not changed.
* GNUmakefile.am:
* platform/PopupMenu.h:
* platform/gtk/GRefPtrGtk.cpp: Added.
(WTF::refGPtr):
(WTF::derefGPtr):
* platform/gtk/GRefPtrGtk.h: Added.
* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::~PopupMenu):
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
(WebCore::PopupMenu::menuRemoveItem):
2009-12-17 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Pavel Feldman.
Advice links to source code in CPU profiler to open in debugger,
not in resources tab.
Also work around the case when resources are disabled, but scripts are present.
https://bugs.webkit.org/show_bug.cgi?id=32610
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.updateMainViewWidth):
(WebInspector.Panel.prototype.canShowSourceLineForURL):
(WebInspector.Panel.prototype.showSourceLineForURL):
* inspector/front-end/ProfileDataGridTree.js:
(WebInspector.ProfileDataGridNode.prototype.createCell):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.canShowSourceLineForURL):
(WebInspector.ResourcesPanel.prototype.showSourceLineForURL):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.scriptForURL):
(WebInspector.ScriptsPanel.prototype.canShowSourceLineForURL):
(WebInspector.ScriptsPanel.prototype.showSourceLineForURL):
(WebInspector.ScriptsPanel.prototype._showScriptOrResource):
* inspector/front-end/inspector.js:
(WebInspector.documentClick.followLink):
(WebInspector.documentClick):
(WebInspector._choosePanelToShowSourceLineForURL):
(WebInspector.canShowSourceLineForURL):
(WebInspector.showSourceLineForURL):
2009-12-15 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez.
[GTK] display FPS stats for video element
https://bugs.webkit.org/show_bug.cgi?id=32560
Display FPS statistics if WEBKIT_DEBUG environment variable
contains the Media log category. This feature requires a very
recent (>= 0.10.18) version of gst-plugins-bad.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::createGSTPlayBin):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
2009-11-11 Philippe Normand <pnormand@igalia.com>
Reviewed by Gustavo Noronha Silva.
[GStreamer] Should emit {networkState,readyState,volume,time,size,rate,duration}Changed signals
https://bugs.webkit.org/show_bug.cgi?id=30377
Emit volumeChanged and durationChanged upon notification from
GStreamer.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mediaPlayerPrivateMessageCallback):
(WebCore::mediaPlayerPrivateVolumeCallback):
(WebCore::notify_volume_idle_cb):
(WebCore::MediaPlayerPrivate::didEnd):
(WebCore::MediaPlayerPrivate::durationChanged):
(WebCore::MediaPlayerPrivate::createGSTPlayBin):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
2009-12-16 Philippe Normand <pnormand@igalia.com>
Reviewed by Gustavo Noronha Silva.
[GTK] segfault during volume notification
https://bugs.webkit.org/show_bug.cgi?id=32603
Emit volumeChanged and durationChanged upon notification from
GStreamer. Also don't reset the volume property on playbin, it is
not needed as it is 1.0 by default both on playbin and in the
MediaPlayer.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mediaPlayerPrivateMessageCallback):
(WebCore::mediaPlayerPrivateVolumeChangedCallback):
(WebCore::notifyVolumeIdleCallback):
(WebCore::doGstInit):
(WebCore::MediaPlayerPrivate::isAvailable):
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::volumeChanged):
(WebCore::MediaPlayerPrivate::didEnd):
(WebCore::MediaPlayerPrivate::durationChanged):
(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivate::createGSTPlayBin):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
2009-12-17 Evan Martin <evan@chromium.org>
Reviewed by Xan Lopez.
gtk: always use standard include paths, regardless of settings.
WebKit style is to wrap the body of a header in #if ENABLE(FOO),
so they're always safe to include whether the features are enabled or
not.
This fixes building with --disable-database and other flags.
* GNUmakefile.am:
2009-12-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Unreviewed. Build fixes for make distcheck.
* GNUmakefile.am:
2009-12-17 Philippe Normand <pnormand@igalia.com>
Rubber-stamped by Gustavo Noronha Silva.
Trivial WebKit coding style fix.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivate::paint):
2009-12-15 MORITA Hajime <morrita@gmail.com>
Reviewed by Eric Seidel.
Bug 28306: double-clicking a word inside <b> beside newline select two words
https://bugs.webkit.org/show_bug.cgi?id=28306
SimplifiedBackwardsTextIterator missed trailing whitespaces just
before folding line-break, which is used to detect word
boundaries. This fix checks strings on RenderText and expand text
range on SimplifiedBackwardsTextIterator to include trailing
whitespaces if availble.
Test: editing/selection/doubleclick-beside-cr-span.html
* editing/TextIterator.cpp:
(WebCore::collapsedSpaceLength):
(WebCore::maxOffsetIncludingCollapsedSpaces):
(WebCore::SimplifiedBackwardsTextIterator::advance):
2009-12-16 Fumitoshi Ukai <ukai@chromium.org>
Reviewed by Alexey Proskuryakov.
Fix flakiness in WebSocket handshake console message.
https://bugs.webkit.org/show_bug.cgi?id=32598
In chromium, LayoutTests/websocket/tests/handshake-error.html is
flaky, because it outputs the following console message several times:
CONSOLE MESSAGE: line 0: Unexpected response code:101
Update m_mode in WebSocketHandshake correctly: Once it finds
error in handshake message, set m_mode to Failed and don't try
reading handshake message again. If handshake message is not yet
fully received, set m_mode to Incomplete, so next didReceiveData()
will try to check handshake message again.
* websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::didReceiveData):
* websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::readServerHandshake):
2009-12-16 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: Accessibility role of text nodes is wrong
https://bugs.webkit.org/show_bug.cgi?id=32631
<rdar://problem/7369084>
Reviewed by Alice Liu.
Test: platform/win/accessibility/text-role.html
* accessibility/AccessibilityObject.h:
(WebCore::):
Add a new role to the enum.
(WebCore::AccessibilityObject::roleValueForMSAA):
Declare a function to return the accessibility role for MSAA; the base
implementation returns the old role value.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
Initialize m_roleForMSAA.
(WebCore::AccessibilityRenderObject::roleValueForMSAA):
If m_roleForMSAA has been set, return it. If the renderer is a
RenderText, set the role to EditableTextRole to match IE and Firefox.
Otherwise, set the role for MSAA to the old role value.
* accessibility/AccessibilityRenderObject.h:
Add a member to hold the role for MSAA, and declare an override of
roleValueForMSAA().
2009-12-16 Eric Seidel <eric@webkit.org>
No review, rolling out r52206.
http://trac.webkit.org/changeset/52206
https://bugs.webkit.org/show_bug.cgi?id=31187
This broke pixel tests on Mac. Presumably the code in
ImageCG is wrong here.
* platform/graphics/BitmapImage.h:
* platform/graphics/GeneratedImage.cpp:
(WebCore::GeneratedImage::drawPattern):
* platform/graphics/GeneratedImage.h:
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/haiku/ImageHaiku.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/wince/GraphicsContextWince.cpp:
(WebCore::GraphicsContext::drawBitmapPattern):
* platform/graphics/wince/ImageBufferWince.cpp:
(WebCore::):
(WebCore::BufferedImage::drawPattern):
* platform/graphics/wx/ImageWx.cpp:
(WebCore::BitmapImage::drawPattern):
(WebCore::Image::drawPattern):
2009-12-16 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=32637
[V8] Generate most named property getters.
Covered by existing tests.
* bindings/scripts/CodeGeneratorV8.pm: Added generation of SetNamedPropertyHandler call.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate): Removed now-generated SetNamedPropertyHandler callsites.
2009-12-16 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Implement combobox delegate for Qt
https://bugs.webkit.org/show_bug.cgi?id=32550
Abstract popup menu factory.
A static method from QtAbstractPopupMenu is used to create its instances. If a factory
has been suplied to class QtAbstractPopupMenu the factory will be used to create the
objects. If not an instance of QtFallbackPopupMenu will be created.
The objective is to make it easy to replace the combobox popup at WebCore layer providing
support to the combobox popup delegation API. Future patches will make it possible to
replace the combobox popup at WebKit layer.
No behavior changes.
* platform/qt/PopupMenuQt.cpp:
(WebCore::PopupMenu::PopupMenu):
* platform/qt/QtAbstractWebPopup.cpp:
(WebCore::QtAbstractWebPopup::setFactory):
(WebCore::QtAbstractWebPopup::create):
* platform/qt/QtAbstractWebPopup.h:
* platform/qt/QtFallbackWebPopup.cpp:
2009-12-16 Mark Rowe <mrowe@apple.com>
Build fix. Disable debug variants of WebKit frameworks.
* WebCore.xcodeproj/project.pbxproj:
2009-12-16 Enrica Casucci <enrica@apple.com>
Reviewed by Eric Seidel.
Right clicking in a table cell creates a selection that extends into the next cell.
<rdar://problem/5565465>
https://bugs.webkit.org/show_bug.cgi?id=32622
Avoid extending the selection to the next cell if we start from an empty cell.
Test: editing/selection/empty-cell-right-click.html
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::deleteKeyPressed): Replaced the code that check for empty table cell
with a call to the new function.
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity): Extends the
selection only if we are not starting from an empty table cell.
* editing/htmlediting.cpp:
(WebCore::isEmptyTableCell): Added a function since this check is performed now in two places.
* editing/htmlediting.h: Added isEmptyTableCell declaration.
2009-12-16 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
feMerge crahses if feMergeNodes attribute in is empty
https://bugs.webkit.org/show_bug.cgi?id=32489
SVGFEMergeElement only stored pointers to all effects of it's nodes
in a list. But it should store the RefPtr otherwise the effects get
dereferenced and WebKit crashes.
I also made a short clean-up in SVGFilterBuilder. No change in
functionality.
Test: I updated svg/custom/empty-merge.svg to cover this problem.
* svg/SVGFEMergeElement.cpp:
(WebCore::SVGFEMergeElement::build):
* svg/graphics/filters/SVGFEMerge.cpp:
(WebCore::FEMerge::FEMerge):
(WebCore::FEMerge::create):
(WebCore::FEMerge::mergeInputs):
(WebCore::FEMerge::setMergeInputs):
* svg/graphics/filters/SVGFEMerge.h:
* svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::add):
2009-12-16 Brian Weinstein <bweinstein@apple.com>
Reviewed by Timothy Hatcher.
Part of <http://webkit.org/b/32568>.
Web Inspector: Context Menus should be used in more places.
Add a context menu entry in the console to clear the console. This
is only shown when there is no user selection of text, because if
there is selection of the text, then we want to give the user the Copy +
Spell Check context menu that they are used to.
* English.lproj/localizedStrings.js: Added "Clear Console".
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._handleContextMenuEvent):
2009-12-16 Brian Weinstein <bweinstein@apple.com>
Reviewed by Pavel Feldman.
Fixes <https://bugs.webkit.org/show_bug.cgi?id=32621>.
Web Inspector: [REGRESSION (52095-52100)] Resources filter disappears when switching
from / to resources panel.
Changed style in sidebar-resizer-vertical, because if the min-height was 100%, we start
to cover the scope bar.
* inspector/front-end/inspector.css:
2009-12-16 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Adam Barth.
[V8] Switch all indexers to be generated.
https://bugs.webkit.org/show_bug.cgi?id=32569
Covered by existing tests.
* WebCore.gypi: Remove V8FileListCustom.cpp and V8ClientRecListCustom.cpp,
as they are now generated.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate): Remove customization of ClientRectList,
FileList, and DataGridColumnList templates.
* bindings/v8/custom/V8ClientRectListCustom.cpp: Removed.
* bindings/v8/custom/V8CustomBinding.h: Remove custom indexer getter decls.
* bindings/v8/custom/V8DataGridColumnListCustom.cpp: Remove indexer getter definition.
* bindings/v8/custom/V8FileListCustom.cpp: Removed.
2009-12-16 anton muhin <antonm@chromium.org>
Reviewed by Darin Adler.
[dom] make dom/Node.cpp compile if DUMP_NODE_STATISTICS is on
https://bugs.webkit.org/show_bug.cgi?id=32617
* dom/Node.cpp:
(WebCore::Node::dumpStatistics):
2009-12-16 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Darin Fisher.
[V8] There is no such thing as HTMLSelectElementCollection.
https://bugs.webkit.org/show_bug.cgi?id=32616
Refactoring, covered by existing tests.
* WebCore.gypi: Removed V8HTMLSelectElementCollectionCustom.cpp
* bindings/v8/V8Collection.h: Removed one-off template.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate): Renamed all references to HTMLSelectElementCollection
to HTMLSelectElement.
* bindings/v8/custom/V8CustomBinding.h: Renamed custom indexer decls.
* bindings/v8/custom/V8HTMLSelectElementCollectionCustom.cpp: Removed.
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp: Moved code as-is from
V8HTMLSelectElementCollectionCustom.cpp
2009-12-16 Dan Winship <danw@gnome.org>
Reviewed by Gustavo Noronha Silva.
[Gtk] Content-Encoding support
https://bugs.webkit.org/show_bug.cgi?id=25855
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::startHttp): Don't force "Accept-Encoding: identity" any
more
2009-12-16 Benjamin Otte <otte@gnome.org>
Reviewed by Darin Adler.
Get rid of the phase argument to Image::drawPattern.
https://bugs.webkit.org/show_bug.cgi?id=31187
The argument can be expressed equally well as part of the
patternTransform. All backends but the Qt one did exactly that
manually anyway.
* platform/graphics/BitmapImage.h:
* platform/graphics/GeneratedImage.cpp:
(WebCore::GeneratedImage::drawPattern):
* platform/graphics/GeneratedImage.h:
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/haiku/ImageHaiku.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/wince/GraphicsContextWince.cpp:
(WebCore::GraphicsContext::drawBitmapPattern):
* platform/graphics/wince/ImageBufferWince.cpp:
(WebCore::):
(WebCore::BufferedImage::drawPattern):
* platform/graphics/wx/ImageWx.cpp:
(WebCore::BitmapImage::drawPattern):
(WebCore::Image::drawPattern):
2009-12-16 Kenneth Russell <kbr@google.com>
Reviewed by Darin Fisher.
Performance problems with index validation code for drawElements
https://bugs.webkit.org/show_bug.cgi?id=32466
Added a cache of the maximum index for each element type to
WebGLBuffer, querying it before iterating through the indices in
the client-side copy of the buffer's data. Hoisted checks of the
size of the element array itself into validateElementArraySize to
avoid duplicating code.
The performance improvement has been measured with manual tests.
Existing layout tests cover the index validation functionality
and continue to pass as before.
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::WebGLBuffer):
(WebCore::WebGLBuffer::associateBufferData):
(WebCore::WebGLBuffer::associateBufferSubData):
(WebCore::WebGLBuffer::getCachedMaxIndex):
(WebCore::WebGLBuffer::setCachedMaxIndex):
(WebCore::WebGLBuffer::clearCachedMaxIndices):
* html/canvas/WebGLBuffer.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateElementArraySize):
(WebCore::WebGLRenderingContext::validateIndexArrayConservative):
(WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContext::validateRenderingState):
(WebCore::WebGLRenderingContext::drawElements):
* html/canvas/WebGLRenderingContext.h:
2009-12-16 Zelidrag Hornung <zelidrag@chromium.org>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=32261
Added ability to separate the autocomplete suggestion previewing from
the actual accepting of the suggested value in HTMLInputElement.
This element (it's single line text incarnation) can now
be put in suggestion mode where renderer might display the suggested
value without making it automatically exposed to JavaScript.
No new tests. This new methods are not exposed yet. It's use will be
platform specific. PopupMenu and Chromium specific changes will be
separated based on Darin Adler's comments.
* dom/InputElement.h:
(WebCore::InputElementData::suggestedValue):
(WebCore::InputElementData::setSuggestedValue):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::suggestedValue):
(WebCore::HTMLInputElement::setSuggestedValue):
(WebCore::HTMLInputElement::setValue):
(WebCore::HTMLInputElement::setValueFromRenderer):
* html/HTMLInputElement.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::updateFromElement):
* wml/WMLInputElement.cpp:
(WebCore::WMLInputElement::suggestedValue):
* wml/WMLInputElement.h:
2009-12-16 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Make Elements tree, properties section and resources
view monospace.
https://bugs.webkit.org/show_bug.cgi?id=32609
* inspector/front-end/ElementsPanel.js:
* inspector/front-end/PropertiesSection.js:
(WebInspector.PropertiesSection):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView):
* inspector/front-end/inspector.css:
2009-12-16 Dirk Schulze <krit@webkit.org>
Reviewed by Darin Adler.
sourceGraphic wrong if positive x,y is >0 and objectBB is selected on Filter
https://bugs.webkit.org/show_bug.cgi?id=32575
On SVG Filters, the rest of the source graphic gets clipped to the filter
rest. This helps us to minimize the size of intermediate ImageBuffers. If
the position moves to the right or to the bottom, we have to adjust the
GraphicContext of this intermediate ImageBuffer.
This patch fixes the adjustment of the context, according to the clipping.
Test: svg/filters/filter-source-position.svg
* svg/graphics/SVGResourceFilter.cpp:
(WebCore::SVGResourceFilter::prepareFilter):
2009-12-16 Enrica Casucci <enrica@apple.com>
Reviewed by Adele Peterson.
CrashTracer: [USER] 1 crash in Safari at com.apple.WebCore: WebCore::endsOfNodeAreVisuallyDistinctPositions + 115
<rdar://problem/7467108>
https://bugs.webkit.org/show_bug.cgi?id=32590
If the element is a button there is no need to look at the children to calculate the caret position.
Test: editing/selection/button-right-click.html
* dom/Position.cpp:
(WebCore::Position::getInlineBoxAndOffset): Avoid calling recursively this method,
when starting from a button element.
2009-12-16 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Implement combobox delegate for Qt
https://bugs.webkit.org/show_bug.cgi?id=32550
Refactoring of class QWebPopup.
Class QWebPopup has been split in QtAbstractWebPopup and QtFallbackWebPopup.
Both new classes are now in corresponding files and files QWebPopup.* have been removed.
Custom combo popup classes will inherit from QtAbstractWebPopup. It is not the public API as it is
in WebCore and will not be visible by users of QtWebKit. It will be used in implementation of
public QtWebKit combobox popup delegation API.
Class QtFallbackWebPopup inherits from QtAbstractWebPopup and implements the currently used combobox popup.
It needs to be improved to provide standard features that are missing like style or indentation.
No behavior changes.
* WebCore.pro:
* platform/PopupMenu.h:
* platform/qt/PopupMenuQt.cpp:
(WebCore::PopupMenu::PopupMenu):
* platform/qt/QWebPopup.cpp: Removed.
* platform/qt/QWebPopup.h: Removed.
* platform/qt/QtAbstractWebPopup.cpp: Added.
(WebCore::QtAbstractWebPopup::QtAbstractWebPopup):
(WebCore::QtAbstractWebPopup::~QtAbstractWebPopup):
(WebCore::QtAbstractWebPopup::client):
* platform/qt/QtAbstractWebPopup.h: Added.
* platform/qt/QtFallbackWebPopup.cpp: Added.
(WebCore::QtFallbackWebPopup::QtFallbackWebPopup):
(WebCore::QtFallbackWebPopup::show):
(WebCore::QtFallbackWebPopup::populate):
(WebCore::QtFallbackWebPopup::showPopup):
(WebCore::QtFallbackWebPopup::hidePopup):
(WebCore::QtFallbackWebPopup::activeChanged):
* platform/qt/QtFallbackWebPopup.h: Added.
(WebCore::QtFallbackWebPopup::hide):
2009-12-15 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: beautify HTTP info section.
https://bugs.webkit.org/show_bug.cgi?id=32583
* English.lproj/localizedStrings.js:
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView):
(WebInspector.ResourceView.prototype._refreshURL):
(WebInspector.ResourceView.prototype._refreshHTTPInformation):
* inspector/front-end/inspector.css:
2009-12-13 Roland Steiner <rolandsteiner@chromium.org>
Reviewed by Adam Barth.
Fix crash when encountering illegal HTML within a continuation inside <ruby>.
(https://bugs.webkit.org/show_bug.cgi?id=32316)
Avoid having the anonymous blocks utilized in the ruby renderers being
re-used as continuation blocks.
Avoid having ruby runs collected as "leftover blocks".
Test: fast/ruby/ruby-illegal.html
* rendering/RenderRuby.h:
(WebCore::RenderRubyAsInline::removeLeftoverAnonymousBlock): mustn't be called
(WebCore::RenderRubyAsInline::isRuby): made private
(WebCore::RenderRubyAsInline::renderName): made private
(WebCore::RenderRubyAsInline::createsAnonymousWrapper): return true
(WebCore::RenderRubyAsBlock::removeLeftoverAnonymousBlock): mustn't be called
(WebCore::RenderRubyAsBlock::isRuby): made private
(WebCore::RenderRubyAsBlock::renderName): made private
(WebCore::RenderRubyAsBlock::createsAnonymousWrapper): return true
* rendering/RenderRubyRun.h:
(WebCore::RenderRubyRun::removeLeftoverAnonymousBlock): avoid
(WebCore::RenderRubyRun::isRubyRun): made private
(WebCore::RenderRubyRun::renderName): made private
(WebCore::RenderRubyRun::createsAnonymousWrapper): return true
2009-12-15 Nate Chapin <japhet@chromium.org>
Reviewed by Darin Adler.
Rename skipCanLoadCheck to skipSecurityCheck in a bunch of places in WebCore/loader.
https://bugs.webkit.org/show_bug.cgi?id=32529
* loader/Cache.cpp:
(WebCore::Cache::requestUserCSSStyleSheet):
* loader/CachedImage.cpp:
(WebCore::CachedImage::load):
* loader/CachedResource.cpp:
(WebCore::CachedResource::load):
* loader/CachedResource.h:
(WebCore::CachedResource::load):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::loadRequest):
* loader/DocumentThreadableLoader.h:
* loader/FrameLoaderTypes.h:
(WebCore::):
* loader/Request.cpp:
(WebCore::Request::Request):
* loader/Request.h:
(WebCore::Request::shouldDoSecurityCheck):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create):
* loader/SubresourceLoader.h:
* loader/loader.cpp:
(WebCore::Loader::load):
(WebCore::Loader::Host::servePendingRequests):
* loader/loader.h:
2009-12-15 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7470452> Safari/Chromium crashes on complicated @font-face rule
https://bugs.webkit.org/show_bug.cgi?id=32257
Test: fast/css/font-face-unused-source-loaded.html
The loading of a font resource caused a CSSFontFace that had the resource in one of its
sources, but wasn’t using it (due to using an earlier source) to invalidate its
CSSSegmentedFontFaces. This caused FontData for the active source (the one that did not just
finish loading) to be deleted, but that went unnoticed by Font::operator==(), since the
corresponding FontFallbackLists were not in the loading state. The fix is for CSSFontFace to
ignore loads from unused sources.
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::fontLoaded): Bail out if the loaded source is not the active source.
(WebCore::CSSFontFace::getFontData): Set m_activeSource to the source that supplied the
FontData.
* css/CSSFontFace.h:
(WebCore::CSSFontFace::CSSFontFace): Initialize m_activeSource.
2009-12-15 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Cannot load flash files from a local file.
https://bugs.webkit.org/show_bug.cgi?id=32572
When loading the main resource and its mime type is application/octet-stream,
use the file extenstion to check if it is a supported plugin.
No new tests were added since any existing swf file can be used as a manual test.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::didReceiveResponse):
* loader/MainResourceLoader.h:
* plugins/PluginDatabase.h:
2009-12-15 Brian Weinstein <bweinstein@apple.com>
Reviewed by Timothy Hatcher.
Fixes <https://bugs.webkit.org/show_bug.cgi?id=18498>.
REGRESSION: Tips are not shown for resources anymore.
As discussed in the bug, Tips are not coming back, and the feature
will be moved to the audits panel. This patch is to remove the Tips
code and the resources that it needed.
* WebCore.gypi: Removed tips files.
* inspector/front-end/Images/tipBalloon.png: Removed.
* inspector/front-end/Images/tipBalloonBottom.png: Removed.
* inspector/front-end/Images/tipIcon.png: Removed.
* inspector/front-end/Images/tipIconPressed.png: Removed.
* inspector/front-end/Resource.js: Removed tips code.
(WebInspector.Resource.prototype.set finished):
* inspector/front-end/WebKit.qrc: Removed tips files.
* inspector/front-end/inspector.css: Removes tips style rules.
2009-12-15 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Display request headers for main resource
having redirects.
https://bugs.webkit.org/show_bug.cgi?id=32577
* inspector/InspectorController.cpp:
(WebCore::InspectorController::identifierForInitialRequest):
(WebCore::InspectorController::willSendRequest):
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::InspectorResource):
(WebCore::InspectorResource::appendRedirect):
(WebCore::InspectorResource::createCached):
(WebCore::InspectorResource::updateRequest):
* inspector/InspectorResource.h:
(WebCore::InspectorResource::create):
2009-12-15 Brian Weinstein <bweinstein@apple.com>
Reviewed by Timothy Hatcher.
Fixes <https://bugs.webkit.org/show_bug.cgi?id=32578>.
Web Inspector: No Need for ?="" now that we have context menus.
Remove the toggleNewAttributeButton function and callers to it, as
we don't need this behavior anymore, now that we have context menus.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype.set hovered):
(WebInspector.ElementsTreeElement.prototype.toggleNewAttributeButton):
(WebInspector.ElementsTreeElement.prototype._startEditing):
2009-12-15 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Eric Seidel.
[V8] Generate trivial named property getters.
https://bugs.webkit.org/show_bug.cgi?id=32562
Covered by existing tests.
* bindings/scripts/CodeGeneratorV8.pm: Added GenerateImplementationNamedPropertyGetter.
* bindings/v8/V8Collection.h:
(WebCore::getNamedPropertyOfCollection): Fixed a booboo by using AtomicString like we're supposed to.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate): Removed code that's now generated.
2009-12-15 Brian Weinstein <bweinstein@apple.com>
Reviewed by Timothy Hatcher.
Part of <http://webkit.org/b/32568>.
New Web Inspector: The Context Menu should be used in more places.
Add support for context menu entries for editing and deleting elements
in the datagrid. This gives support to deleting cookies, and editing and
deleting session storage and local storage.
* English.lproj/localizedStrings.js: Added "Edit" and "Add New" entries (delete was already there)
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid): Added context menu listener.
(WebInspector.DataGrid.prototype._contextMenuInDataTable):
2009-12-15 Kenneth Russell <kbr@google.com>
Reviewed by Darin Fisher.
Don't allow default framebuffer to be mutated
https://bugs.webkit.org/show_bug.cgi?id=32391
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::framebufferRenderbuffer):
(WebCore::WebGLRenderingContext::framebufferTexture2D):
* platform/graphics/mac/GraphicsContext3DMac.cpp:
(WebCore::GraphicsContext3D::bindFramebuffer):
2009-12-15 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Darin Adler.
Allow custom memory allocation control for FontPlatformDataCacheKey class
https://bugs.webkit.org/show_bug.cgi?id=32552
Inherits the following struct from FastAllocBase because it is instantiated by 'new':
struct name - instantiated at: WebCore/'location'
struct FontPlatformDataCacheKey - platform/graphics/FontCache.cpp:118
* platform/graphics/FontCache.cpp:
2009-12-15 Jian Li <jianli@chromium.org>
Reviewed by Dmitry Titov.
Bug 31090 - [Chromium] Add DownloadURL format to Chromium clipboard.
https://bugs.webkit.org/show_bug.cgi?id=31090
The proposal to whatwg can be found here:
http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-August/022118.html
* platform/chromium/ChromiumDataObject.cpp:
(WebCore::ChromiumDataObject::clear):
(WebCore::ChromiumDataObject::hasData):
(WebCore::ChromiumDataObject::ChromiumDataObject):
* platform/chromium/ChromiumDataObject.h:
* platform/chromium/ClipboardChromium.cpp:
(WebCore::):
(WebCore::clipboardTypeFromMIMEType):
(WebCore::ClipboardChromium::setData):
2009-12-15 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
WAI-ARIA: implement treegrid
https://bugs.webkit.org/show_bug.cgi?id=31299
Test: platform/mac/accessibility/aria-treegrid.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
* accessibility/AccessibilityARIAGrid.h:
(WebCore::AccessibilityARIAGrid::supportsSelectedRows):
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::isARIATreeGridRow):
(WebCore::AccessibilityARIAGridRow::disclosedRows):
(WebCore::AccessibilityARIAGridRow::disclosedByRow):
* accessibility/AccessibilityARIAGridRow.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::createARIARoleMap):
* accessibility/AccessibilityObject.h:
(WebCore::):
(WebCore::AccessibilityObject::isARIATreeGridRow):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isMultiSelectable):
(WebCore::AccessibilityRenderObject::setIsExpanded):
(WebCore::AccessibilityRenderObject::setSelectedRows):
(WebCore::AccessibilityRenderObject::ariaSelectedRows):
(WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
(WebCore::AccessibilityRenderObject::selectedChildren):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityTable.h:
(WebCore::AccessibilityTable::supportsSelectedRows):
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[AccessibilityObjectWrapper accessibilityAttributeNames]):
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
2009-12-15 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Darin Adler.
Allow custom memory allocation control for EmptyEditorClient and EmptyInspectorClient
https://bugs.webkit.org/show_bug.cgi?id=32557
Inherits the following classes from Noncopyable because these are instantiated
by 'new' and no need to be copyable:
class name - instantiated at: WebCore/'location'
class EmptyEditorClient - svg/graphics/SVGImage.cpp:230
class EmptyInspectorClient - svg/graphics/SVGImage.cpp:241
* loader/EmptyClients.h:
2009-12-15 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Darin Adler.
Allow custom memory allocation control for WebCore/inspector directory's classes
https://bugs.webkit.org/show_bug.cgi?id=32556
Inherits the following class from Noncopyable because these are instantiated
by 'new' and no need to be copyable:
class name - instantiated at: WebCore/'location'
class InspectorFrontend - inspector/InspectorController.cpp:538
class InspectorTimelineAgent - inspector/InspectorController.cpp:1097
* inspector/InspectorFrontend.h:
* inspector/InspectorTimelineAgent.h:
2009-12-15 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Darin Adler.
Allow custom memory allocation control for WebCore/platform/network directory's classes
https://bugs.webkit.org/show_bug.cgi?id=32553
Inherits the following class from Noncopyable because it is instantiated
by 'new' and no need to be copyable:
class/struct name - instantiated at: WebCore/'location'
struct CrossThreadResourceResponseData - platform/network/ResourceResponseBase.cpp:109
Inherits the following classes from FastAllocBase because these are
instantiated by 'new':
class ResourceResponseBase - (its child class) platform/network/ResourceResponseBase.cpp:90
class ResourceRequestBase - (its child class) loader/DocumentThreadableLoader.cpp:88
* platform/network/ResourceRequestBase.h:
* platform/network/ResourceResponseBase.h:
2009-12-15 Zoltan Horvath <zoltan@webkit.org>
Reviewed by Darin Adler.
Allow custom memory allocation control for AnimationControllerPrivate and FillLayerPropertyWrapperGetter
https://bugs.webkit.org/show_bug.cgi?id=32549
Inherits AnimationControllerPrivate and FillLayerPropertyWrapperGetter
classes from Noncopyable because these are instantiated by 'new' and no need to be copyable:
class/struct name - instantiated at: WebCore/'location'
AnimationControllerPrivate - page/animation/AnimationController.cpp:439
FillLayerPropertyWrapperGetter - (its child class) page/animation/AnimationBase.cpp:464
* page/animation/AnimationBase.cpp:
* page/animation/AnimationControllerPrivate.h:
2009-12-15 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Do not lose HTTP redirect information, display it
in the Resources Panel.
https://bugs.webkit.org/show_bug.cgi?id=32551
* inspector/InspectorController.cpp:
(WebCore::InspectorController::populateScriptObjects):
(WebCore::InspectorController::didCommitLoad):
(WebCore::InspectorController::didLoadResourceFromMemoryCache):
(WebCore::InspectorController::identifierForInitialRequest):
(WebCore::InspectorController::willSendRequest):
(WebCore::InspectorController::didReceiveResponse):
(WebCore::InspectorController::didReceiveContentLength):
(WebCore::InspectorController::didFinishLoading):
(WebCore::InspectorController::didFailLoading):
* inspector/InspectorFrontend.cpp:
* inspector/InspectorFrontend.h:
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::InspectorResource):
(WebCore::InspectorResource::appendRedirect):
(WebCore::InspectorResource::updateScriptObject):
(WebCore::InspectorResource::releaseScriptObject):
(WebCore::InspectorResource::type):
* inspector/InspectorResource.h:
(WebCore::InspectorResource::):
(WebCore::InspectorResource::Changes::setAll):
* inspector/front-end/inspector.js:
(WebInspector._addResource):
(WebInspector.updateResource):
2009-12-15 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Simon Hausmann.
[Qt] Followup for direct signals and slots connections in QNetworkReplyHandler
https://bugs.webkit.org/show_bug.cgi?id=32113
For Qt versions prior to 4.6.1 we will need to use QueuedConnection
for the signal and slot connection to avoid running into a bug in.
Add a comment that we want to remove one signal to forward
queued items when moving our minimum requirements.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::start):
2009-12-14 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Add manual test for JavaScript prompt corner case
https://bugs.webkit.org/show_bug.cgi?id=30914
The patch is based on the work done by Gupta Manish.
Verify behavior of the JavaScript prompt function. Currently
Qt is not behaving like other WebKit ports and Firefox in
regards to accepting the prompt but not entering a text.
* manual-tests/qt/java-script-prompt.html: Added.
2009-12-15 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Kenneth Rohde Christiansen.
Moving list populate methods from PopupMenuQt to QWebPopup.
In preparation to future implementation of a delegation API for the combobox.
* platform/PopupMenu.h:
* platform/qt/PopupMenuQt.cpp:
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
* platform/qt/QWebPopup.cpp:
(WebCore::QWebPopup::show):
(WebCore::QWebPopup::populate):
* platform/qt/QWebPopup.h:
(WebCore::QWebPopup::hide):
2009-12-15 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Extract WebInspector.Section from WebInspector.PropertiesSection.
https://bugs.webkit.org/show_bug.cgi?id=32523
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/PropertiesSection.js:
(WebInspector.PropertiesSection):
* inspector/front-end/Section.js: Added.
(WebInspector.Section):
(WebInspector.Section.prototype.get title):
(WebInspector.Section.prototype.set title):
(WebInspector.Section.prototype.get subtitle):
(WebInspector.Section.prototype.set subtitle):
(WebInspector.Section.prototype.get expanded):
(WebInspector.Section.prototype.set expanded):
(WebInspector.Section.prototype.get populated):
(WebInspector.Section.prototype.set populated):
(WebInspector.Section.prototype.expand):
(WebInspector.Section.prototype.collapse):
(WebInspector.Section.prototype.toggleExpanded):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2009-12-15 Eric Seidel <eric@webkit.org>
No review, rolling out r52140.
http://trac.webkit.org/changeset/52140
https://bugs.webkit.org/show_bug.cgi?id=31299
The commit broke the Leopard bots and unfortunately
Chris wasn't around to fix them, so I'm rolling the change
out after 3 hours so that the bots can roll green again. :)
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
* accessibility/AccessibilityARIAGrid.h:
* accessibility/AccessibilityARIAGridRow.cpp:
* accessibility/AccessibilityARIAGridRow.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::createARIARoleMap):
* accessibility/AccessibilityObject.h:
(WebCore::):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isMultiSelect):
(WebCore::AccessibilityRenderObject::setIsExpanded):
(WebCore::AccessibilityRenderObject::setSelectedRows):
(WebCore::AccessibilityRenderObject::ariaTreeSelectedRows):
(WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
(WebCore::AccessibilityRenderObject::selectedChildren):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityTable.h:
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[AccessibilityObjectWrapper accessibilityAttributeNames]):
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
2009-12-14 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Eric Seidel.
[Qt] Remove dead code from FontPlatformDataQt.cpp
https://bugs.webkit.org/show_bug.cgi?id=32540
In r51758 the code that used familyNames was removed
and we should remove the creation of the familyNames
as well.
* platform/graphics/qt/FontPlatformDataQt.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2009-12-15 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
WebCore part of <rdar://problem/7173515> Use LOGFONT support in Core
Graphics when available
When using a version of Core Graphics with LOGFONT support, this fixes
<rdar://problem/5764844> First-time launch is painfully slow due to font
plist creation
and <rdar://problem/6576281> 12px synthetic-italics Tahoma text is less
readable in Safari than in Firefox/IE due to poorly-spaced letters
* platform/graphics/win/FontCGWin.cpp:
(WebCore::Font::drawGlyphs): No longer call drawGDIGlyphs for stroked
text.
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::createGDIFont): Added a synthesizeItalic parameter. When set
to true, if italics are desired but the best match lacks italics,
creates and returns a synthetic italics font.
(WebCore::FontCache::createFontPlatformData): Ask to synthesize italics
if needed.
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Updated an
assertion, and changed to create the CGFont from the LOGFONT.
(WebCore::createFontCustomPlatformData): Changed cgFont to be a
RetainPtr. Do not create a CGFont from the font data if it can be
created from the LOGFONT in fontPlatformData().
* platform/graphics/win/FontDatabase.cpp:
(WebCore::populateFontDatabase): Avoid font database work if fonts are
not going to be looked up by name.
* platform/graphics/win/FontPlatformDataCGWin.cpp:
(WebCore::FontPlatformData::platformDataInit): Create the CGFont from
a LOGFONT based on the HFONT.
2009-12-14 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
WAI-ARIA: implement treegrid
https://bugs.webkit.org/show_bug.cgi?id=31299
Test: platform/mac/accessibility/aria-treegrid.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
* accessibility/AccessibilityARIAGrid.h:
(WebCore::AccessibilityARIAGrid::supportsSelectedRows):
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::isARIATreeGridRow):
(WebCore::AccessibilityARIAGridRow::disclosedRows):
(WebCore::AccessibilityARIAGridRow::disclosedByRow):
* accessibility/AccessibilityARIAGridRow.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::createARIARoleMap):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isARIATreeGridRow):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isMultiSelectable):
(WebCore::AccessibilityRenderObject::setIsExpanded):
(WebCore::AccessibilityRenderObject::setSelectedRows):
(WebCore::AccessibilityRenderObject::ariaSelectedRows):
(WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
(WebCore::AccessibilityRenderObject::selectedChildren):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityTable.h:
(WebCore::AccessibilityTable::supportsSelectedRows):
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[AccessibilityObjectWrapper accessibilityAttributeNames]):
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
2009-12-14 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7460655> REGRESSION (r47255): Content shifted down at software.opensuse.org
https://bugs.webkit.org/show_bug.cgi?id=32382
Test: fast/block/float/in-margin.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::getClearDelta): Floats that do not intrude into the line (because
they are in the margin) do not need to be cleared.
2009-12-14 Enrica Casucci <enrica@apple.com>
Reviewed by John Sullivan.
Pressing backspace inside a table cell erases all empty rows below it.
<rdar://problem/5565461>
https://bugs.webkit.org/show_bug.cgi?id=32526
No deletion is performed when the caret selection is on an empty table cell.
Test: editing/deleting/delete-empty-table.html
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::deleteKeyPressed): Added check for empty table cells in
case of caret selection.
2009-12-14 Andrei Popescu <andreip@google.com>
Reviewed by Darin Adler.
[Android] Android needs ResourceHandle implementation
https://bugs.webkit.org/show_bug.cgi?id=32515
Adds implementation of ResourceHandle on Android.
No new tests needed, this is platform-specific code, so existing
tests are sufficient.
* platform/network/android/ResourceHandleAndroid.cpp: Added.
(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
(WebCore::ResourceHandle::~ResourceHandle):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::bufferedData):
(WebCore::ResourceHandle::supportsBufferedData):
(WebCore::ResourceHandle::setDefersLoading):
(WebCore::ResourceHandle::willLoadFromCache):
(WebCore::ResourceHandle::loadsBlocked):
(WebCore::SyncLoader::SyncLoader):
(WebCore::SyncLoader::~SyncLoader):
(WebCore::SyncLoader::didReceiveResponse):
(WebCore::SyncLoader::didReceiveData):
(WebCore::SyncLoader::didFail):
(WebCore::ResourceHandle::loadResourceSynchronously):
* platform/network/android/ResourceLoaderAndroid.h: Added.
(WebCore::ResourceLoaderAndroid::~ResourceLoaderAndroid):
(WebCore::ResourceLoaderAndroid::ResourceLoaderAndroid):
2009-12-14 Marco Martin <notmart@gmail.com>
Reviewed by Kenneth Rohde Christiansen.
In the Scrollbar painting of the Qt theme integration,
intersects any previous clip rects with the one needed to paint the scrollbar.
This fixes the painting in QGraphicsview, when the parent of the widget that
paints the QWebPage has the QGraphicsItem::ItemClipsChildrenToShape set and
a piece of the scrollbar should be cipped away
https://bugs.webkit.org/show_bug.cgi?id=30366
No new tests.
* platform/qt/ScrollbarThemeQt.cpp:
(WebCore::ScrollbarThemeQt::paint):
2009-12-14 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Eric Seidel.
[V8] Generate bindings for trivial indexers.
https://bugs.webkit.org/show_bug.cgi?id=32455
Covered by existing tests.
* bindings/scripts/CodeGeneratorV8.pm:
Added detecting indexers and generating code for them.
* bindings/v8/V8Collection.h: Removed code that's now generated.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getTemplate): Ditto.
2009-12-14 Alexey Proskuryakov <ap@apple.com>
Reviewed by Dave Hyatt.
https://bugs.webkit.org/show_bug.cgi?id=31660
REGRESSION (r49394): Image load event fires before the document fragment is attached.
Test: fast/images/image-load-event-in-fragment.html
We cannot fire load events immediately after parsing a fragment - an element inserted via
innerHTML or equivalent should be reachable via getElementById() by the time its load event
fires.
* dom/Document.cpp: (WebCore::Document::implicitClose): Call dispatchPendingBeforeLoadEvents()
and dispatchPendingLoadEvents() individually. I'm not sure why these calls are here, just
preserving existing behavior.
* dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::write):
* html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::write):
Load events for elements that have just been parsed cannot be dispatched yet, we should give
the elements a chance to be inserted into a document first. There is no compatibility baggage
for beforeload, so it seems OK to dispatch it right away.
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvents):
(WebCore::ImageLoader::dispatchPendingLoadEvents):
* loader/ImageLoader.h:
Separated dispatchPendingEvents() into individual functions for each event kind.
2009-12-14 Jakob Petsovits <jpetsovits@rim.com>
Reviewed by Simon Fraser.
Add FloatQuad::isRectilinear() to check whether it can be represented as FloatRect.
https://bugs.webkit.org/show_bug.cgi?id=30442
This enables optimizations for distinguishing between
arbitrary FloatQuads and rectilinear ones.
* platform/graphics/FloatQuad.cpp:
(WebCore::FloatQuad::isRectilinear):
* platform/graphics/FloatQuad.h:
2009-12-14 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger Freyther.
[Qt] Add support for keyboard modifiers to TouchEvent
https://bugs.webkit.org/show_bug.cgi?id=32482
Similar to other ui events with keyboard state, get the alt, shift,
meta and ctrl modifiers straight from the platform event.
* dom/TouchEvent.cpp:
(WebCore::TouchEvent::TouchEvent):
(WebCore::TouchEvent::initTouchEvent):
* dom/TouchEvent.h:
(WebCore::TouchEvent::create):
* dom/TouchEvent.idl:
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
* platform/PlatformTouchEvent.h:
(WebCore::PlatformTouchEvent::PlatformTouchEvent):
(WebCore::PlatformTouchEvent::shiftKey):
(WebCore::PlatformTouchEvent::ctrlKey):
(WebCore::PlatformTouchEvent::altKey):
(WebCore::PlatformTouchEvent::metaKey):
* platform/qt/PlatformTouchEventQt.cpp:
(WebCore::PlatformTouchEvent::PlatformTouchEvent):
2009-12-14 Benjamin Poulain <benjamin.poulain@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] crash when clicking "Sign out" in GMail
https://bugs.webkit.org/show_bug.cgi?id=32300
When the ResourceLoader cancels the handle we have to make sure not to access
the resource handle afterwards again.
This complete r29515
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
2009-12-14 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Implement InjectedScript.evaluateOnSelf() that evaluates functions in the InjectedScript context.
https://bugs.webkit.org/show_bug.cgi?id=32517
* inspector/front-end/InjectedScript.js:
(InjectedScript.evaluateOnSelf):
* inspector/front-end/InjectedScriptAccess.js:
2009-12-14 Nayan Kumar K <nayankk@gmail.com>
Reviewed by Darin Adler.
Fix for compilation errors in WML enabled builds.
https://bugs.webkit.org/show_bug.cgi?id=32481
* wml/WMLInputElement.cpp:
(WebCore::WMLInputElement::setValue):
(WebCore::WMLInputElement::setValueForUser):
* wml/WMLInputElement.h:
2009-12-14 Andrei Popescu <andreip@google.com>
Reviewed by Darin Adler.
[Android] Android needs ResourceError, ResourceResponse and
ResourceRequest implementation.
https://bugs.webkit.org/show_bug.cgi?id=32522
Add implementation of ResourceError, ResourceResponse and ResourceRequest.
No new tests needed, the existing tests should be sufficient.
* platform/network/android/ResourceError.h: Added.
(WebCore::ResourceError::ResourceError):
* platform/network/android/ResourceRequest.h: Added.
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::setUserGesture):
(WebCore::ResourceRequest::getUserGesture):
* platform/network/android/ResourceResponse.h: Added.
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::doUpdateResourceResponse):
2009-12-14 Sam Weinig <sam@webkit.org>
Fix the build.
* page/Geolocation.cpp:
* page/Geolocation.h:
2009-12-13 Sam Weinig <sam@webkit.org>
Reviewed by Dan Bernstein.
Fix for https://bugs.webkit.org/show_bug.cgi?id=32499
Add client based Geolocation provider
Add first cut of a client based Geolocation provider. This is guarded by
ENABLE(CLIENT_BASED_GEOLOCATION) and is off by default for now. This adds a
GeolocationControllerClient interface that no-one currently implements,
but will in a subsequent patch.
* GNUmakefile.am:
* WebCore.base.exp:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* page/Geolocation.cpp:
(WebCore::createGeopositionFromGeolocationPosition):
(WebCore::createPositionErrorFromGeolocationError):
(WebCore::Geolocation::Geolocation):
(WebCore::Geolocation::~Geolocation):
(WebCore::Geolocation::disconnectFrame):
(WebCore::Geolocation::lastPosition):
(WebCore::Geolocation::startRequest):
(WebCore::Geolocation::fatalErrorOccurred):
(WebCore::Geolocation::requestTimedOut):
(WebCore::Geolocation::clearWatch):
(WebCore::Geolocation::handleError):
(WebCore::Geolocation::positionChanged):
(WebCore::Geolocation::makeSuccessCallbacks):
(WebCore::Geolocation::errorOccurred):
(WebCore::Geolocation::geolocationServicePositionChanged):
(WebCore::Geolocation::geolocationServiceErrorOccurred):
(WebCore::Geolocation::startUpdating):
(WebCore::Geolocation::stopUpdating):
* page/Geolocation.h:
* page/GeolocationController.cpp: Added.
(WebCore::GeolocationController::GeolocationController):
(WebCore::GeolocationController::~GeolocationController):
(WebCore::GeolocationController::addObserver):
(WebCore::GeolocationController::removeObserver):
(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::errorOccurred):
(WebCore::GeolocationController::lastPosition):
* page/GeolocationController.h: Added.
* page/GeolocationControllerClient.h: Added.
(WebCore::GeolocationControllerClient::~GeolocationControllerClient):
* page/GeolocationError.h: Added.
(WebCore::GeolocationError::):
(WebCore::GeolocationError::create):
(WebCore::GeolocationError::code):
(WebCore::GeolocationError::message):
* page/GeolocationPosition.h: Added.
(WebCore::GeolocationPosition::create):
(WebCore::GeolocationPosition::timestamp):
(WebCore::GeolocationPosition::latitude):
(WebCore::GeolocationPosition::longitude):
(WebCore::GeolocationPosition::accuracy):
(WebCore::GeolocationPosition::altitude):
(WebCore::GeolocationPosition::altitudeAccuracy):
(WebCore::GeolocationPosition::heading):
(WebCore::GeolocationPosition::speed):
(WebCore::GeolocationPosition::canProvideAltitude):
(WebCore::GeolocationPosition::canProvideAltitudeAccuracy):
(WebCore::GeolocationPosition::canProvideHeading):
(WebCore::GeolocationPosition::canProvideSpeed):
(WebCore::GeolocationPosition::GeolocationPosition):
* page/Geoposition.h:
(WebCore::Geoposition::create):
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::geolocationController):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
2009-12-14 Adam Langley <agl@google.com>
Reviewed by Darin Adler.
Test that an image's size is valid before reading it.
Previously, an image that failed to load (m_failed == true) would
trigger an assertion failure when WebKit tried to get its size.
https://bugs.webkit.org/show_bug.cgi?id=32176
http://code.google.com/p/chromium/issues/detail?id=28566
Test: fast/images/size-failure.html
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::createFrameAtIndex):
2009-12-14 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7458272> REGRESSION (r50470) Reproducible ASSERT in
RenderWidget::setWidgetGeometry()
Test: fast/forms/defer-updateFromElement.html
* html/HTMLFormControlElement.cpp:
(WebCore::updateFromElementCallback): Added this post-attach callback
that invokes updateFromElement().
(WebCore::HTMLFormControlElement::recalcStyle): Instead of calling
updateFromElement(), enqueue a post-attach (in this case, post-style
recalc) callback to do it. updateFromElement() can cause the selection
to change, and in turn trigger synchronous layout, so it must not be
called during style recalc.
2009-12-14 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: [regression] inspector deletes nodes when editing css.
Now all the treeoutlines are focusable, sections and their titles
are also focusable. Change contains couple of drive-by fixes such as
canceling of the attribute edit nuking attr info and maintaining proper
selection while deleting nodes.
https://bugs.webkit.org/show_bug.cgi?id=32460
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane.prototype.handleShortcut):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._promptKeyDown):
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype._keyDown):
* inspector/front-end/DatabaseQueryView.js:
(WebInspector.DatabaseQueryView):
(WebInspector.DatabaseQueryView.prototype._promptKeyDown):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
(WebInspector.ElementsPanel.prototype.get defaultFocusedElement):
(WebInspector.ElementsPanel.prototype.handleShortcut):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline):
(WebInspector.ElementsTreeOutline.prototype._keyDown):
(WebInspector.ElementsTreeElement.prototype._textNodeEditingCommitted):
(WebInspector.ElementsTreeElement.prototype._editingCancelled):
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.show):
(WebInspector.Panel.prototype.get defaultFocusedElement):
* inspector/front-end/PropertiesSection.js:
(WebInspector.PropertiesSection):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype.get defaultFocusedElement):
(WebInspector.ScriptsPanel.prototype.handleShortcut):
* inspector/front-end/SidebarPane.js:
(WebInspector.SidebarPane):
(WebInspector.SidebarPane.prototype.toggleExpanded):
(WebInspector.SidebarPane.prototype._onTitleKeyDown):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._loaded):
* inspector/front-end/TextPrompt.js:
(WebInspector.TextPrompt):
* inspector/front-end/inspector.css:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector.loaded):
(WebInspector.documentKeyDown):
(WebInspector.documentCanCopy):
(WebInspector.documentCopy):
(WebInspector._searchFieldManualFocus):
(WebInspector._searchKeyDown):
(WebInspector.startEditing.cleanUpAfterEditing):
(WebInspector.startEditing.keyDownEventListener):
(WebInspector.startEditing):
* inspector/front-end/treeoutline.js:
(TreeOutline):
(TreeOutline._removeChildAtIndex):
(TreeOutline.prototype._treeKeyDown):
(TreeElement.prototype.deselect):
* inspector/front-end/utilities.js:
():
2009-12-14 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, build fix.
[Chromium] Guard all of JSC's wrapper cache-related members on Document.
* dom/Document.cpp:
(WebCore::Document::createWrapperCache): Widened the guards to the whole method.
* dom/Document.h: Added JSC guards to wrapper cache-related members.
2009-12-14 Chris Fleizach <cfleizach@apple.com>
Reviewed by Adele Peterson.
AX: there's an infinite loop going on for some webpages - facebook.com
https://bugs.webkit.org/show_bug.cgi?id=32501
The problem is that parentObjectUnignored() cannot be called
while in accessibilityIsIgnored, because it leads to
recursiveness. Specifically, there were checks to determine
if an object was within a ARIA tree. That check should
1) be moved to all platforms, and 2) not call parentObjectUnignored().
Test: accessibility/hang-in-isignored.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isAllowedChildOfTree):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
* accessibility/AccessibilityRenderObject.h:
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
2009-12-14 Eric Carlson <eric.carlson@apple.com>
Reviewed by Dan Bernstein.
<rdar://problem/6293979> Adopt shared control drawing for <video> controls on Leopard and Windows
Use MediaControllerThemeQuickTime on Leopard.
* rendering/RenderThemeMac.mm:
(WebCore::mediaControllerTheme):
2009-12-14 Adam Roben <aroben@apple.com>
Move QuartzCore-related build settings into a vsprops file
Fixes <http://webkit.org/b/32518>
Reviewed by Dan Bernstein.
* WebCore.vcproj/WebCore.vcproj: Let VS reformat the files list, added
WebCoreQuartzCore.vsprops to the non-Cairo configurations, moved all
other QuartzCore-related build settings from here...
* WebCore.vcproj/WebCoreQuartzCore.vsprops: ...to here.
2009-12-14 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Antti Koivisto.
handling scripts can block UI
https://bugs.webkit.org/show_bug.cgi?id=27612
Break execution of external scrips to smaller chunks.
No new tests since no new functionality was introduced.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::HTMLTokenizer):
(WebCore::HTMLTokenizer::reset):
(WebCore::HTMLTokenizer::notifyFinished):
(WebCore::HTMLTokenizer::executeExternalScriptsIfReady):
(WebCore::HTMLTokenizer::executeExternalScriptsTimerFired):
(WebCore::HTMLTokenizer::continueExecutingExternalScripts):
* html/HTMLTokenizer.h:
2009-12-03 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Simon Hausmann.
[Qt] Connect QNetworkReply via direct connections.
https://bugs.webkit.org/show_bug.cgi?id=32113
In the past we have switched from auto connections to queued
connections to get some more stability. The problem with the
Queued connections is latency. Even when running simple loading
tests the time it takes to runs highly varies and by using
direct connections these tests produce a stable result.
We will have to look out for crashes coming from within the
QNetworkAccessManager due this patch and address them then.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::start):
2009-12-14 Holger Hans Peter Freyther <zecke@selfish.org>
Rubber-stamped by Simon Hausmann.
[Qt] QtWebKit should use QImageReader::setQuality(49)
https://bugs.webkit.org/show_bug.cgi?id=30740
Using QImageReader::setQuality(49) will influence the JPEG
decoder of Qt to use the JDCT_IFAST routines for decompressing. This
is showing a 5% improvement in a reduction that decodes all images
used during the page loading test. The libjpeg documentation mentions
that the IFAST routine is not as accurate as other routines but in
our tests we couldn't see a difference.
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::setData):
2009-12-13 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Changed GC from mark-sweep to mark-allocate.
* ForwardingHeaders/runtime/WeakGCMap.h: Added.
* bindings/js/GCController.cpp:
(WebCore::collect):
(WebCore::GCController::gcTimerFired):
(WebCore::GCController::garbageCollectNow): Updated for rename.
* bindings/js/JSDOMBinding.cpp:
(WebCore::removeWrappers):
(WebCore::hasCachedDOMObjectWrapperUnchecked):
(WebCore::hasCachedDOMObjectWrapper):
(WebCore::hasCachedDOMNodeWrapperUnchecked):
(WebCore::forgetDOMObject):
(WebCore::forgetDOMNode):
(WebCore::isObservableThroughDOM):
(WebCore::markDOMNodesForDocument):
(WebCore::markDOMObjectWrapper):
(WebCore::markDOMNodeWrapper):
* bindings/js/JSDOMBinding.h: Changed DOM wrapper maps to be WeakGCMaps.
Don't ASSERT that an item must be in the WeakGCMap when its destructor
runs, since it might have been overwritten in the map first.
* bindings/js/JSDocumentCustom.cpp:
(WebCore::toJS): Changed Document from a DOM object wrapper to a DOM node
wrapper, to simplify some code.
* bindings/js/JSInspectedObjectWrapper.cpp:
(WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper):
(WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper):
* bindings/js/JSInspectorCallbackWrapper.cpp: Use a WeakGCMap for these
wrappers.
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::markChildren): Updated for WeakGCMap and Document using
a DOM node wrapper instead of a DOM object wrapper.
* bindings/js/JSSVGPODTypeWrapper.h:
(WebCore::JSSVGDynamicPODTypeWrapperCache::wrapperMap):
(WebCore::JSSVGDynamicPODTypeWrapperCache::lookupOrCreateWrapper):
(WebCore::JSSVGDynamicPODTypeWrapperCache::forgetWrapper):
(WebCore::::~JSSVGDynamicPODTypeWrapper): Shined a small beam of sanity light
on this code. Use hashtable-based lookup in JSSVGPODTypeWrapper.h instead
of linear lookup through iteration, since that's what hashtables were
invented for. Make JSSVGPODTypeWrapper.h responsible for reomving itself
from the table, instead of its JS wrapper, to decouple these objects from
GC, and because these objects are refCounted, not solely owned by their
JS wrappers.
* bindings/scripts/CodeGeneratorJS.pm:
* dom/Document.h: Adopted changes above.
2009-12-13 Geoffrey Garen <ggaren@apple.com>
Windows build fix: Removed an incorrect #ifdef.
* bindings/js/GCController.cpp:
2009-12-13 Charles Reis <creis@chromium.org>
Reviewed by Adam Barth.
Refactor some security code out of V8 bindings
https://bugs.webkit.org/show_bug.cgi?id=32326
No new tests. There should be no functionality changes in this patch,
since it is only refactoring code.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* bindings/BindingSecurity.h: Added.
(WebCore::BindingSecurity::BindingSecurity):
(WebCore::::canAccessWindow):
(WebCore::::canAccessFrame):
(WebCore::::checkNodeSecurity):
* bindings/BindingSecurityBase.cpp: Added.
(WebCore::BindingSecurityBase::getDOMWindow):
(WebCore::BindingSecurityBase::getFrame):
(WebCore::BindingSecurityBase::canAccessWindow):
* bindings/BindingSecurityBase.h: Added.
* bindings/GenericBinding.h: Added.
(WebCore::):
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::isSafeScript):
* bindings/v8/V8Binding.h:
* bindings/v8/V8BindingState.cpp: Added.
(WebCore::::Only):
(WebCore::::getActiveWindow):
(WebCore::::immediatelyReportUnsafeAccessTo):
* bindings/v8/V8BindingState.h: Added.
(WebCore::):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::reportUnsafeAccessTo):
(WebCore::reportUnsafeJavaScriptAccess):
* bindings/v8/V8Proxy.h:
(WebCore::V8Proxy::):
* bindings/v8/custom/V8CustomBinding.cpp:
(WebCore::allowSettingFrameSrcToJavascriptUrl):
(WebCore::INDEXED_ACCESS_CHECK):
(WebCore::NAMED_ACCESS_CHECK):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8Custom::WindowSetTimeoutImpl):
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::V8Custom::ClearTimeoutImpl):
(WebCore::NAMED_ACCESS_CHECK):
(WebCore::INDEXED_ACCESS_CHECK):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::INDEXED_ACCESS_CHECK):
(WebCore::NAMED_ACCESS_CHECK):
2009-11-30 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Simon Hausmann.
[Qt] Implement initializeMaximumHTTPConnectionCountPerHost.
https://bugs.webkit.org/show_bug.cgi?id=31849
Qt allows to have three connections per host on Symbian, for
every other platform the limit is set to six connections per
host but the default implementation will only schedule four
connections per host.
In a manual test we seem to get the best loading speed by
going with Qt's limit and schedule two more jobs to allow Qt
to prepare them.
* platform/network/ResourceRequestBase.cpp:
* platform/network/qt/ResourceRequestQt.cpp:
(WebCore::initializeMaximumHTTPConnectionCountPerHost):
2009-12-13 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7341364> Crash at HTMLParser::popOneBlockCommon() after
handling misnested residual style tags
Test: fast/parser/residual-style-close-ref-clone.html
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Gave the
block stack a strong reference to the cloned residual style element.
2009-12-13 Adele Peterson <adele@apple.com>
Reviewed by Sam Weinig.
Reverting changes from http://trac.webkit.org/changeset/49585 to fix:
<rdar://problem/7382815> REGRESSION (4.0.4-TOT): Home photo slider is too narrow at http://www.ziprealty.com/
https://bugs.webkit.org/show_bug.cgi?id=32078
* css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::cssText):
2009-12-08 Jeremy Moskovich <jeremy@chromium.org>
Reviewed by Eric Seidel.
Add code to allow toggling ATSUI/Core Text rendering at runtime in ComplexTextController.
https://bugs.webkit.org/show_bug.cgi?id=31802
The goal here is to allow for a zero runtime hit for ports that decide to select
the API at compile time.
When both USE(ATSUI) and USE(CORE_TEXT) are true, the API is toggled
at runtime. Core Text is used for OS Versions >= 10.6.
No test since this is already covered by existing pixel tests.
* platform/graphics/SimpleFontData.h: Change #ifdef to define getNSFont() on Chrome/Mac .
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::shouldUseATSUIAPI): Cache decision about which API to use.
(WebCore::ComplexTextController::ComplexTextRun::indexAt):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Stub function to call through
to ATSUI/Core text variants.
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): The actual work for object construction
is delegate to createTextRunFromFontDataATSUI/createTextRunFromFontDataCoreText.
* platform/graphics/mac/ComplexTextController.h:
* platform/graphics/mac/ComplexTextControllerATSUI.cpp:
(WebCore::ComplexTextController::ComplexTextRun::overrideLayoutOperation): Small style fix.
(WebCore::ComplexTextController::ComplexTextRun::createTextRunFromFontDataATSUI):
(WebCore::ComplexTextController::collectComplexTextRunsForCharactersATSUI):