Index: Source/WebCore/ChangeLog |
=================================================================== |
--- Source/WebCore/ChangeLog (revision 88498) |
+++ Source/WebCore/ChangeLog (working copy) |
@@ -1,3 +1,755 @@ |
+2011-06-09 James Robinson <jamesr@chromium.org> |
+ |
+ Reviewed by Kenneth Russell. |
+ |
+ [chromium] Scissor rect not set for clipping layers set offscreen |
+ https://bugs.webkit.org/show_bug.cgi?id=62339 |
+ |
+ We set a scissorRect on each layer, but only layers with masksToBounds and their descendants should actually set |
+ a scissor. Layers that didn't need to scissor had empty scissorRects. Unfortunately layers with masksToBounds |
+ and their descendants that are scrolled offscreen also end up with an empty clipped scissor rect. |
+ |
+ This patch sets an explicit bit on each layer that should scissor and then checks that bit instead of checking |
+ for an empty scissor rect at draw time. RenderSurfaceChromiums have different requirements for |
+ setScissorToRect, so the old behavior is still available with a flag. This can probably be cleaned up more. |
+ |
+ Test: platform/chromium/compositing/scissor-out-of-viewport.html |
+ |
+ * platform/graphics/chromium/LayerRendererChromium.cpp: |
+ (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces): |
+ (WebCore::LayerRendererChromium::drawLayer): |
+ (WebCore::LayerRendererChromium::setScissorToRect): |
+ * platform/graphics/chromium/LayerRendererChromium.h: |
+ * platform/graphics/chromium/RenderSurfaceChromium.cpp: |
+ (WebCore::RenderSurfaceChromium::draw): |
+ * platform/graphics/chromium/cc/CCLayerImpl.cpp: |
+ (WebCore::CCLayerImpl::CCLayerImpl): |
+ * platform/graphics/chromium/cc/CCLayerImpl.h: |
+ (WebCore::CCLayerImpl::setUsesLayerScissor): |
+ (WebCore::CCLayerImpl::usesLayerScissor): |
+ |
+2011-06-09 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r88468. |
+ http://trac.webkit.org/changeset/88468 |
+ https://bugs.webkit.org/show_bug.cgi?id=62408 |
+ |
+ It broke build if !ENABLE(FULLSCREEN_API) (Requested by Ossy |
+ on #webkit). |
+ |
+ * dom/Element.cpp: |
+ (WebCore::adjustForLocalZoom): |
+ * dom/Element.h: |
+ * html/HTMLMediaElement.cpp: |
+ * html/HTMLMediaElement.h: |
+ |
+2011-06-09 Kenneth Russell <kbr@google.com> |
+ |
+ Reviewed by Adam Barth. |
+ |
+ Disallow use of cross-domain media (images, video) in WebGL |
+ https://bugs.webkit.org/show_bug.cgi?id=62257 |
+ |
+ Updated WebGL implementation to track recent spec updates in this area. |
+ |
+ Tests: http/tests/security/webgl-remote-read-remote-image-allowed-with-credentials.html |
+ http/tests/security/webgl-remote-read-remote-image-allowed.html |
+ http/tests/security/webgl-remote-read-remote-image-blocked-no-crossorigin.html |
+ |
+ * html/canvas/CanvasRenderingContext.cpp: |
+ (WebCore::CanvasRenderingContext::wouldTaintOrigin): |
+ (WebCore::CanvasRenderingContext::checkOrigin): |
+ * html/canvas/CanvasRenderingContext.h: |
+ (WebCore::CanvasRenderingContext::checkOrigin): |
+ * html/canvas/WebGLRenderingContext.cpp: |
+ (WebCore::WebGLRenderingContext::readPixels): |
+ (WebCore::WebGLRenderingContext::texImage2D): |
+ (WebCore::WebGLRenderingContext::videoFrameToImage): |
+ (WebCore::WebGLRenderingContext::texSubImage2D): |
+ * html/canvas/WebGLRenderingContext.h: |
+ |
+2011-06-09 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ Add an ASSERT to HTMLTreeBuilder |
+ https://bugs.webkit.org/show_bug.cgi?id=62403 |
+ |
+ This ASSERT was useful in investigating a re-entrancy bug. We should |
+ keep it. |
+ |
+ * html/parser/HTMLTreeBuilder.cpp: |
+ (WebCore::HTMLTreeBuilder::processEndOfFile): |
+ |
+2011-06-09 Dan Bernstein <mitz@apple.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Fix a regression from r88478. |
+ |
+ * platform/graphics/mac/ComplexTextControllerCoreText.cpp: |
+ (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Add the runs |
+ in reverse order in the RTL case here, since the whole vector is reversed by collectComplexTextRuns() |
+ afterwards. |
+ |
+2011-06-09 Julien Chaffraix <jchaffraix@codeaurora.org> |
+ |
+ Reviewed by Antti Koivisto. |
+ |
+ REGRESSION(84329): Stylesheets on some pages do not load |
+ https://bugs.webkit.org/show_bug.cgi?id=61400 |
+ |
+ Test: fast/css/link-disabled-attr.html |
+ |
+ Fixed r84329: the change did not take into account the fact |
+ that HTMLLinkElement did already contain the disabled information |
+ and the 2 information were not linked as they should have! |
+ |
+ The new logic pushes the information to the stylesheet as this |
+ is what the spec mandates and what FF is doing. Also it keeps |
+ one bit of information (that JS enabled the stylesheet) as it |
+ is needed for the recalcStyleSelector logic. |
+ |
+ * dom/Document.cpp: |
+ (WebCore::Document::recalcStyleSelector): s/isDisabled/disabled. |
+ |
+ * html/HTMLLinkElement.cpp: |
+ (WebCore::HTMLLinkElement::HTMLLinkElement): Removed m_disabledState, |
+ replaced by m_isEnabledViaScript. |
+ (WebCore::HTMLLinkElement::setDisabled): Updated the logic after |
+ m_disabledState removal. It also matches the spec by forwarding |
+ the disabled state to our stylesheet if we have one. |
+ (WebCore::HTMLLinkElement::parseMappedAttribute): Removed harmful |
+ handling of the disabledAttr. |
+ (WebCore::HTMLLinkElement::process): Updated after m_disabledState removal. |
+ * html/HTMLLinkElement.h: |
+ (WebCore::HTMLLinkElement::isEnabledViaScript): Ditto. |
+ (WebCore::HTMLLinkElement::isAlternate): Ditto. |
+ |
+2011-06-09 Dan Bernstein <mitz@apple.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Simplify ComplexTextController::collectComplexTextRuns() |
+ https://bugs.webkit.org/show_bug.cgi?id=62387 |
+ |
+ No new test, since functionality is unchanged. |
+ |
+ * platform/graphics/mac/ComplexTextController.cpp: |
+ (WebCore::ComplexTextController::collectComplexTextRuns): Always iterate characters in logical order, |
+ then reverse the run vector for RTL. |
+ |
+2011-06-09 Dimitri Glazkov <dglazkov@chromium.org> |
+ |
+ Reviewed by Kent Tamura. |
+ |
+ Fold isShadowBoundary into isShadowRoot. |
+ https://bugs.webkit.org/show_bug.cgi?id=62317 |
+ |
+ Since there are no longer cases where Node::isShadowBoundary() != Node::isShadowRoot, we can remove this function. |
+ |
+ In one case where isShadowBoundary was also tested to find ShadowContentElemnt, added a new isContentElement function. |
+ |
+ Refactoring, covered by existing tests. |
+ |
+ * css/CSSStyleSelector.cpp: |
+ (WebCore::isAtShadowBoundary): Changed to use isShadowRoot. |
+ * dom/Element.cpp: |
+ (WebCore::Element::isSpellCheckingEnabled): Ditto. |
+ * dom/Node.cpp: |
+ (WebCore::Node::nonBoundaryShadowTreeRootNode): Ditto. |
+ (WebCore::Node::nonShadowBoundaryParentNode): Ditto. |
+ * dom/Node.h: |
+ (WebCore::Node::isContentElement): Added. |
+ * dom/NodeRenderingContext.cpp: |
+ (WebCore::NodeRenderingContext::NodeRenderingContext): Changed to use isShadowRoot. |
+ * dom/Position.cpp: |
+ (WebCore::Position::Position): Ditto. |
+ * dom/ShadowContentElement.h: |
+ (WebCore::ShadowContentElement::isContentElement): Added. |
+ * dom/ShadowRoot.cpp: |
+ (WebCore::ShadowRoot::hasContentElement): Changed to use isContentElement. |
+ * editing/CompositeEditCommand.cpp: |
+ (WebCore::CompositeEditCommand::insertNodeAfter): Changed to use isShadowRoot. |
+ * editing/htmlediting.cpp: |
+ (WebCore::visiblePositionBeforeNode): Ditto. |
+ (WebCore::visiblePositionAfterNode): Ditto. |
+ * page/DragController.cpp: |
+ (WebCore::asFileInput): Ditto. |
+ * rendering/RenderTreeAsText.cpp: |
+ (WebCore::nodePosition): Ditto. |
+ |
+2011-06-09 Simon Fraser <simon.fraser@apple.com> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ Crashes in RenderLayerBacking::paintingGoesToWindow |
+ https://bugs.webkit.org/show_bug.cgi?id=61159 |
+ |
+ Speculative fix for unreproducible crash that can occur when RenderObject::repaintUsingContainer() |
+ finds a repaintContainer that is not the RenderView, but that is also not |
+ composited (for unknown reasons), by checking to see if the layer is |
+ compositing before using backing(). An assertion remains to try to catch |
+ this in debug builds. |
+ |
+ * rendering/RenderLayer.cpp: |
+ (WebCore::RenderLayer::setBackingNeedsRepaintInRect): |
+ |
+2011-06-09 Julien Chaffraix <jchaffraix@webkit.org> |
+ |
+ Reviewed by Darin Adler. |
+ |
+ WebCore::WebKitCSSKeyframesRuleInternal::nameAttrSetter() - crash |
+ https://bugs.webkit.org/show_bug.cgi?id=62384 |
+ |
+ Test: fast/css/webkit-keyframes-crash.html |
+ |
+ * css/WebKitCSSKeyframesRule.cpp: |
+ (WebCore::WebKitCSSKeyframesRule::setName): stylesheet() is never garanteed |
+ to return a non-null pointer. Thus null-check here like the rest of the code. |
+ |
+2011-06-09 Julien Chaffraix <jchaffraix@codeaurora.org> |
+ |
+ Reviewed by David Hyatt. |
+ |
+ chrome.dll!WebCore::RenderStyle::fontMetrics ReadAV@NULL (two crashes) |
+ https://bugs.webkit.org/show_bug.cgi?id=57756 |
+ |
+ Tests: fast/css/fontMetric-border-radius-null-crash.html |
+ fast/css/fontMetric-webkit-border-end-width-null-crash.html |
+ |
+ * css/CSSStyleSelector.cpp: |
+ (WebCore::CSSStyleSelector::styleForElement): Added a call to Font::update |
+ so that our FontFallbackList is allocated if we ever need it when applying our |
+ style rules. |
+ |
+2011-06-09 Cary Clark <caryclark@google.com> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ Create local CG context for Mac UI elements when Skia is renderer |
+ https://bugs.webkit.org/show_bug.cgi?id=62213 |
+ |
+ When building Mac Chrome using Skia as the WebKit renderer, |
+ add state to LocalCurrentGraphicsContext to convert the SkCanvas |
+ context passed by WebKit into the CGContext needed by UI |
+ rendering. |
+ |
+ No new tests. The define typo in question is |
+ not yet enabled, so this change has no functional |
+ impact. |
+ |
+ * platform/mac/LocalCurrentGraphicsContext.h: |
+ Add SkiaBitLocker to create and release the converted CGContext. |
+ Add ContextContainer, a class for Skia to create and release |
+ the converted CGContext. If Skia is not used, the class has no effect. |
+ |
+ * platform/mac/LocalCurrentGraphicsContext.mm: |
+ (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext): |
+ When building with Skia, create the CGContext before passing it on. |
+ |
+ (WebCore::LocalCurrentGraphicsContext::cgContext): |
+ Get the CGContext from the SkiaBitLocker, or the saved context, |
+ as appropriate. |
+ |
+ * rendering/RenderThemeMac.mm: |
+ Get the CGContext from Skia conversion or native, as appropriate. |
+ Use the LocalCurrentGraphicsContext if there is one. Otherwise, |
+ add a ContextContainer to house the SkCanvas to CGContext conversion. |
+ |
+ (WebCore::RenderThemeMac::paintCapsLockIndicator): |
+ (WebCore::RenderThemeMac::paintProgressBar): |
+ (WebCore::RenderThemeMac::paintMenuListButtonGradients): |
+ (WebCore::RenderThemeMac::paintSliderTrack): |
+ (WebCore::RenderThemeMac::paintMediaFullscreenButton): |
+ (WebCore::RenderThemeMac::paintMediaMuteButton): |
+ (WebCore::RenderThemeMac::paintMediaPlayButton): |
+ (WebCore::RenderThemeMac::paintMediaSeekBackButton): |
+ (WebCore::RenderThemeMac::paintMediaSeekForwardButton): |
+ (WebCore::RenderThemeMac::paintMediaSliderTrack): |
+ (WebCore::RenderThemeMac::paintMediaSliderThumb): |
+ (WebCore::RenderThemeMac::paintMediaRewindButton): |
+ (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton): |
+ (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton): |
+ (WebCore::RenderThemeMac::paintMediaControlsBackground): |
+ (WebCore::RenderThemeMac::paintMediaCurrentTime): |
+ (WebCore::RenderThemeMac::paintMediaTimeRemaining): |
+ (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer): |
+ (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack): |
+ (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb): |
+ |
+2011-06-02 Jer Noble <jer.noble@apple.com> |
+ |
+ Reviewed by Maciej Stachowiak. |
+ |
+ REGRESSION: Page layout messed up after exiting full screen after video ends at jerryseinfeld.com |
+ https://bugs.webkit.org/show_bug.cgi?id=61911 |
+ <rdar://problem/9523017> |
+ |
+ Test: fullscreen/full-screen-video-offset.html |
+ |
+ When the video element is taken full-screen in the new element full-screen API, return the |
+ offset width and height of the placeholder renderer which is filling in for the full-screen |
+ element. To do so, override offsetWidth, Height, Left, and Top from Element. These are |
+ non-virtual functions, so make them virtual. |
+ |
+ * dom/Element.cpp: |
+ (WebCore::Element::adjustForLocalZoom): Made into a class-static function. |
+ * dom/Element.h: Made offset functions virtual. |
+ * html/HTMLMediaElement.cpp: |
+ (WebCore::elementPlaceholder): Added; utility function. |
+ (WebCore::HTMLMediaElement::offsetLeft): Added; virtual override of the |
+ Element function. Will be called directly via javascript. |
+ (WebCore::HTMLMediaElement::offsetTop): Ditto. |
+ (WebCore::HTMLMediaElement::offsetWidth): Ditto. |
+ (WebCore::HTMLMediaElement::offsetHeight): Ditto. |
+ * html/HTMLMediaElement.h: |
+ |
+2011-06-09 Dave Tapuska <dtapuska@rim.com> |
+ |
+ Reviewed by Daniel Bates. |
+ |
+ PingLoader destructor could dereference 0 if the Resource |
+ Handle creation failed. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=62304 |
+ |
+ * loader/PingLoader.cpp: |
+ (WebCore::PingLoader::~PingLoader): |
+ |
+2011-06-08 Abhishek Arya <inferno@chromium.org> |
+ |
+ Reviewed by Ryosuke Niwa. |
+ |
+ Make indexForVisiblePosition and isSelectableElement static. |
+ https://bugs.webkit.org/show_bug.cgi?id=62329 |
+ |
+ This protects us when converting frame->selection->start() or end() |
+ to VisiblePosition which blows away the RenderTextControl from |
+ underneath (due to layout update). |
+ |
+ Test: fast/forms/text-control-selection-crash.html |
+ |
+ * accessibility/AccessibilityRenderObject.cpp: |
+ (WebCore::AccessibilityRenderObject::indexForVisiblePosition): |
+ * rendering/RenderTextControl.cpp: |
+ (WebCore::RenderTextControl::selectionStart): |
+ (WebCore::RenderTextControl::selectionEnd): |
+ (WebCore::RenderTextControl::isSelectableElement): |
+ (WebCore::RenderTextControl::indexForVisiblePosition): |
+ * rendering/RenderTextControl.h: |
+ |
+2011-06-09 Ben Murdoch <benm@google.com> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Build break in ScriptProfile.cpp and inspector disabled. |
+ https://bugs.webkit.org/show_bug.cgi?id=62373 |
+ |
+ No new tests - build fix only. |
+ |
+ * bindings/v8/ScriptProfile.cpp: Add necessary guards. |
+ * bindings/v8/ScriptProfile.h: ditto. |
+ |
+2011-06-09 Vsevolod Vlasov <vsevik@chromium.org> |
+ |
+ Reviewed by Yury Semikhatsky. |
+ |
+ Web Inspector: Network panel preview tab does not reattach SourceFrame when switching between preview and response tabs. |
+ https://bugs.webkit.org/show_bug.cgi?id=62298 |
+ |
+ * inspector/front-end/ResourcePreviewView.js: |
+ (WebInspector.ResourcePreviewView.prototype._ensureInnerViewShown.callback): |
+ (WebInspector.ResourcePreviewView.prototype._ensureInnerViewShown): |
+ |
+2011-06-09 Csaba Osztrogonác <ossy@webkit.org> |
+ |
+ [Qt][Mac] Speculative buildfix after r88286. |
+ |
+ * platform/graphics/IntPoint.h: |
+ |
+2011-06-09 Mike Lawther <mikelawther@chromium.org> |
+ |
+ Reviewed by Kent Tamura. |
+ |
+ Parsing issue with -webkit-calc |
+ https://bugs.webkit.org/show_bug.cgi?id=62276 |
+ |
+ Set the CSSParserString for the calc functions. |
+ |
+ Test: css3/calc/regression-62276.html |
+ |
+ * css/CSSParser.cpp: |
+ (WebCore::CSSParser::lex): |
+ |
+2011-06-09 Robert Hogan <robert@webkit.org> |
+ |
+ Reviewed by Andreas Kling. |
+ |
+ Teach Qt about window.internals |
+ https://bugs.webkit.org/show_bug.cgi?id=61074 |
+ |
+ A weakness of the Qt DRT setup is that things like JSContextRef are abstracted |
+ away from the QtWebKit API so we need DumpRenderTreeSupportQt to access WebCore internals. |
+ Since the window.internals object requires JSContextRef we need to implement it in DumpRenderTreeSupportQt |
+ where we can access it. DumpRenderTreeSupportQt cannot be compiled outside Qt's WebCore and as it |
+ is our only possible route into the WebCoreTestSupport class neither can the new window.internals plumbing. |
+ Likewise we can't put the accessor in WebCoreTestSupport because it would then need to know about QWebFrame |
+ and others. The only alternative seems like a compile time guard which we would have to teach the bots about. |
+ |
+ * CodeGenerators.pri: |
+ * WebCore.pri: |
+ * WebCore.pro: |
+ |
+2011-06-08 Mikołaj Małecki <m.malecki@samsung.com> |
+ |
+ Reviewed by Pavel Feldman. |
+ |
+ Web Inspector: Crash by buffer overrun crash when serializing inspector object tree. |
+ https://bugs.webkit.org/show_bug.cgi?id=52791 |
+ |
+ No new tests. The problem can be reproduced by trying to create InspectorValue |
+ from 1.0e-100 and call ->toJSONString() on this. |
+ |
+ * inspector/InspectorValues.cpp: |
+ (WebCore::InspectorBasicValue::writeJSON): |
+ Added checking the predicted buffer size and choosing exponential format, or |
+ eventually "NaN" if the buffer is too small for decimal format. |
+ |
+2011-06-09 Sheriff Bot <webkit.review.bot@gmail.com> |
+ |
+ Unreviewed, rolling out r88387. |
+ http://trac.webkit.org/changeset/88387 |
+ https://bugs.webkit.org/show_bug.cgi?id=62368 |
+ |
+ New tests introduced in 88387 fail on Leopard,GTK,Qt bots |
+ (Requested by Ossy on #webkit). |
+ |
+ * html/canvas/CanvasRenderingContext.cpp: |
+ (WebCore::CanvasRenderingContext::checkOrigin): |
+ * html/canvas/CanvasRenderingContext.h: |
+ * html/canvas/WebGLRenderingContext.cpp: |
+ (WebCore::WebGLRenderingContext::readPixels): |
+ (WebCore::WebGLRenderingContext::texImage2D): |
+ (WebCore::WebGLRenderingContext::videoFrameToImage): |
+ (WebCore::WebGLRenderingContext::texSubImage2D): |
+ * html/canvas/WebGLRenderingContext.h: |
+ |
+2011-06-09 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ Running script from attach can remove elements from the stack of open elements |
+ https://bugs.webkit.org/show_bug.cgi?id=62160 |
+ |
+ When the tree build runs script synchronously, that script can remove |
+ arbitrary elements from the stack of open elements. We need to hold a |
+ reference to |parent| in attach instead of rely upon the reference in |
+ the stack of open elements. |
+ |
+ Test: fast/parser/document-write-onload-clear.html |
+ |
+ * html/parser/HTMLConstructionSite.cpp: |
+ (WebCore::HTMLConstructionSite::attach): |
+ |
+2011-06-08 Luke Macpherson <macpherson@chromium.org> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ Make CSSPrimitiveValue support cast to EVerticalAlign. |
+ https://bugs.webkit.org/show_bug.cgi?id=62356 |
+ |
+ No new tests / refactoring only. |
+ |
+ * css/CSSPrimitiveValueMappings.h: |
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): |
+ (WebCore::CSSPrimitiveValue::operator EVerticalAlign): |
+ * css/CSSStyleSelector.cpp: |
+ (WebCore::CSSStyleSelector::applyProperty): |
+ |
+2011-06-08 Justin Novosad <junov@chromium.org> |
+ |
+ Reviewed by James Robinson. |
+ |
+ [Chromium] Crash when closing a tab with accelerated 2d canvas |
+ https://bugs.webkit.org/show_bug.cgi?id=62324 |
+ Upon graphics context destruction, it is important to signal skia |
+ to abandon all of its resource handles. This prevents a crash caused |
+ by skia attempting to release resources that were in the destroyed |
+ graphics context. |
+ |
+ * platform/graphics/gpu/SharedGraphicsContext3D.cpp: |
+ (WebCore::SharedGraphicsContext3D::~SharedGraphicsContext3D): |
+ |
+2011-06-08 James Robinson <jamesr@chromium.org> |
+ |
+ Reviewed by Darin Fisher. |
+ |
+ REGRESSION(88260): 10-50% performance regression across many page cyclers |
+ https://bugs.webkit.org/show_bug.cgi?id=62349 |
+ |
+ r88260 fixed a font cache resource leak and lowered the inactive font cache threshold. The latter caused a |
+ significant performance regression across many chromium page cyclers, for example |
+ http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/moz/report.html?history=50&rev=88279. |
+ |
+ This restores the previous inactive font size thresholds to their previous values, but retains the font cleanup |
+ logic. |
+ |
+ * platform/graphics/FontCache.cpp: |
+ |
+2011-06-08 Hayato Ito <hayato@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ A forward/backward tab traversal now visits focusable elements in a shadow root. |
+ https://bugs.webkit.org/show_bug.cgi?id=61410 |
+ |
+ Test: fast/dom/shadow/tab-order-iframe-and-shadow.html |
+ |
+ Like a iframe element, a shadow host becomes a scope of |
+ tabindex. That means all descendant elements in a shadow root are |
+ skipped if the host node of the shadow root is not focusable. |
+ |
+ The patch doesn't affect HTMLInputElement and HTMLTextAreaElement, |
+ which uses a shadow root and do extra works in their focus() |
+ method. |
+ |
+ A shadow root's <content> is not considered in this patch. |
+ That will be addressed in a following patch. |
+ |
+ * page/FocusController.cpp: |
+ (WebCore::shadowRoot): |
+ (WebCore::isTreeScopeOwner): |
+ (WebCore::FocusController::deepFocusableNode): |
+ (WebCore::FocusController::advanceFocusInDocumentOrder): |
+ (WebCore::FocusController::findFocusableNodeAcrossTreeScope): |
+ (WebCore::FocusController::findFocusableNode): |
+ (WebCore::FocusController::nextFocusableNode): |
+ (WebCore::FocusController::previousFocusableNode): |
+ (WebCore::FocusController::ownerOfTreeScope): |
+ * page/FocusController.h: |
+ |
+2011-06-08 Hayato Ito <hayato@chromium.org> |
+ |
+ Reviewed by Hajime Morita. |
+ |
+ Makes sure that document.activeElement won't be an element in shadow root. |
+ |
+ https://bugs.webkit.org/show_bug.cgi?id=61413 |
+ |
+ Test: fast/dom/shadow/activeelement-should-be-shadowhost.html |
+ |
+ * html/HTMLDocument.cpp: |
+ (WebCore::focusedFrameOwnerElement): |
+ (WebCore::HTMLDocument::activeElement): |
+ |
+2011-06-08 Kent Tamura <tkent@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Allow drawing a slider thumb for any nodes. |
+ https://bugs.webkit.org/show_bug.cgi?id=62196 |
+ |
+ RenderObject::node() should provide various information which is |
+ necessary for rendering. We don't need to refer the parent renderer. |
+ |
+ * dom/Node.cpp: |
+ (WebCore::Node::focusDe1egate): Added. |
+ * dom/Node.h: Added a declaration. |
+ * html/shadow/MediaControlElements.cpp: |
+ (WebCore::toParentMediaElement): |
+ Added an overload of toParentMediaElement() with Node* parameter. |
+ * html/shadow/MediaControlElements.h: |
+ (WebCore::toParentMediaElement): ditto. |
+ * html/shadow/SliderThumbElement.cpp: |
+ (WebCore::SliderThumbElement::isEnabledFormControl): |
+ Returns the status of the host node. |
+ (WebCore::SliderThumbElement::isReadOnlyFormControl): ditto. |
+ (WebCore::SliderThumbElement::focusDe1egate): |
+ Returns the host node so that RenderTheme::isFocused() returns true. |
+ (WebCore::SliderThumbElement::detach): Style nit. |
+ (WebCore::SliderThumbElement::hostInput): |
+ Make it const because it is called by const functions. |
+ * html/shadow/SliderThumbElement.h: |
+ - Remove inDragMode() |
+ - Update declarations |
+ * platform/qt/RenderThemeQt.cpp: |
+ (WebCore::RenderThemeQt::paintMediaSliderThumb): |
+ Use Node::shadowAncestorNode() instead of RenderObject::parent() to |
+ support deeper thumb nodes. |
+ * rendering/RenderMediaControlsChromium.cpp: |
+ (WebCore::paintMediaSliderThumb): ditto. |
+ (WebCore::paintMediaVolumeSliderThumb): Remove isSlider() check. |
+ * rendering/RenderSlider.cpp: |
+ (WebCore::RenderSlider::inDragMode): |
+ SliderThumbElement::inDragMode() was removed, and Node::active() has |
+ the same information. |
+ * rendering/RenderTheme.cpp: |
+ (WebCore::RenderTheme::paint): Remove isSlider() checks. |
+ (WebCore::RenderTheme::isFocused): Apply Node::focusDelegate(). |
+ * rendering/RenderThemeChromiumLinux.cpp: |
+ (WebCore::RenderThemeChromiumLinux::paintSliderThumb): |
+ isPressed() is enough. |
+ * rendering/RenderThemeChromiumWin.cpp: |
+ isEnabled(), isFocused(), and isPressed() are enough. |
+ (WebCore::RenderThemeChromiumWin::determineSliderThumbState): |
+ (WebCore::RenderThemeChromiumWin::determineClassicState): |
+ * rendering/RenderThemeMac.mm: |
+ (WebCore::RenderThemeMac::paintSliderThumb): |
+ - Remove isSlider() check. |
+ - Passing 'o' to udpateFooState functions is enough. |
+ - isPressed() is enough. |
+ * rendering/RenderThemeSafari.cpp: |
+ (WebCore::RenderThemeSafari::paintSliderThumb): |
+ We don't need special handling anymore. |
+ * rendering/RenderThemeWin.cpp: |
+ (WebCore::RenderThemeWin::determineSliderThumbState): |
+ isEnabled(), isFocused(), and isPressed() are enough. |
+ |
+2011-06-08 Adam Barth <abarth@webkit.org> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ constructTreeFromToken can re-enter parser, causing ASSERTs |
+ https://bugs.webkit.org/show_bug.cgi?id=62160 |
+ |
+ This patch clears the HTMLToken before constructing the tree from the |
+ token, putting the HTMLDocumentParser in a good state to be re-entered. |
+ |
+ Tests: fast/parser/document-write-onload-nesting.html |
+ fast/parser/document-write-onload-ordering.html |
+ |
+ * html/parser/HTMLDocumentParser.cpp: |
+ (WebCore::HTMLDocumentParser::pumpTokenizer): |
+ * html/parser/HTMLToken.h: |
+ (WebCore::HTMLToken::isUninitialized): |
+ * html/parser/HTMLTreeBuilder.cpp: |
+ (WebCore::HTMLTreeBuilder::constructTreeFromToken): |
+ |
+2011-06-08 Kent Tamura <tkent@chromium.org> |
+ |
+ Fix Qt build for r88405. |
+ https://bugs.webkit.org/show_bug.cgi?id=62208 |
+ |
+ * platform/qt/RenderThemeQt.h: |
+ |
+2011-06-08 Kent Tamura <tkent@chromium.org> |
+ |
+ Reviewed by Dimitri Glazkov. |
+ |
+ Change the argument of RenderTheme::adjustSliderThumbSize(): RenderObject* -> RenderStyle* |
+ https://bugs.webkit.org/show_bug.cgi?id=62208 |
+ |
+ Change the argument type of RenderTheme::adjustSliderThumbSize() and |
+ RenderMediaControls::adjustMediaSliderThumbSize() from RenderObject* to RenderStyle*. |
+ |
+ Also, each of adjustSliderThumbStyle() overrides calls RenderTheme:: |
+ adjustSliderThumbStyle() for future changes. |
+ |
+ No new tests. This is a refactoring and should not change any behavior. |
+ |
+ * html/shadow/SliderThumbElement.cpp: |
+ (WebCore::RenderSliderThumb::layout): Passing RenderStyle* and remove a FIXME comment. |
+ * platform/efl/RenderThemeEfl.cpp: |
+ (WebCore::RenderThemeEfl::adjustSliderThumbStyle): Calls RenderTheme::adjustSliderThumbStyle(). |
+ * platform/gtk/RenderThemeGtk.cpp: |
+ (WebCore::RenderThemeGtk::adjustSliderThumbStyle): ditto. |
+ (WebCore::RenderThemeGtk::adjustMediaSliderThumbSize): |
+ * platform/gtk/RenderThemeGtk.h: |
+ * platform/gtk/RenderThemeGtk2.cpp: |
+ (WebCore::RenderThemeGtk::adjustSliderThumbSize): |
+ * platform/gtk/RenderThemeGtk3.cpp: |
+ (WebCore::RenderThemeGtk::adjustSliderThumbSize): |
+ * platform/qt/RenderThemeQt.cpp: |
+ (WebCore::RenderThemeQt::adjustSliderThumbStyle): ditto. |
+ (WebCore::RenderThemeQt::adjustSliderThumbSize): |
+ * rendering/RenderMediaControls.cpp: |
+ (WebCore::RenderMediaControls::adjustMediaSliderThumbSize): |
+ * rendering/RenderMediaControls.h: |
+ * rendering/RenderMediaControlsChromium.cpp: |
+ (WebCore::RenderMediaControlsChromium::adjustMediaSliderThumbSize): |
+ * rendering/RenderMediaControlsChromium.h: |
+ * rendering/RenderSlider.cpp: |
+ (WebCore::RenderSlider::layout): Passing RenderStyle* and remove a FIXME comment. |
+ * rendering/RenderTheme.cpp: |
+ (WebCore::RenderTheme::adjustSliderThumbStyle): Add a comment. |
+ (WebCore::RenderTheme::adjustSliderThumbSize): |
+ * rendering/RenderTheme.h: |
+ * rendering/RenderThemeChromiumLinux.cpp: |
+ (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize): |
+ * rendering/RenderThemeChromiumLinux.h: |
+ * rendering/RenderThemeChromiumMac.h: |
+ * rendering/RenderThemeChromiumMac.mm: |
+ (WebCore::RenderThemeChromiumMac::adjustMediaSliderThumbSize): |
+ * rendering/RenderThemeChromiumSkia.cpp: |
+ (WebCore::RenderThemeChromiumSkia::adjustSliderThumbSize): |
+ * rendering/RenderThemeChromiumSkia.h: |
+ * rendering/RenderThemeChromiumWin.cpp: |
+ (WebCore::RenderThemeChromiumWin::adjustSliderThumbSize): |
+ * rendering/RenderThemeChromiumWin.h: |
+ * rendering/RenderThemeMac.h: |
+ * rendering/RenderThemeMac.mm: |
+ (WebCore::RenderThemeMac::adjustSliderThumbStyle): Calls RenderTheme::adjustSliderThumbStyle(). |
+ (WebCore::RenderThemeMac::adjustSliderThumbSize): |
+ (WebCore::RenderThemeMac::adjustMediaSliderThumbSize): |
+ * rendering/RenderThemeSafari.cpp: |
+ (WebCore::RenderThemeSafari::adjustSliderThumbStyle): Calls RenderTheme::adjustSliderThumbStyle(). |
+ (WebCore::RenderThemeSafari::adjustSliderThumbSize): |
+ * rendering/RenderThemeSafari.h: |
+ * rendering/RenderThemeWin.cpp: |
+ (WebCore::RenderThemeWin::adjustSliderThumbSize): |
+ * rendering/RenderThemeWin.h: |
+ * rendering/RenderThemeWinCE.cpp: |
+ (WebCore::RenderThemeWinCE::adjustSliderThumbSize): |
+ * rendering/RenderThemeWinCE.h: |
+ |
+2011-06-08 Brian Salomon <bsalomon@google.com> |
+ |
+ Reviewed by James Robinson. |
+ |
+ Avoid always binding FBO 0 implicitly when deleting FBO in DrawingBuffer code because it invalidates Ganesh's cache of the current FBO. |
+ https://bugs.webkit.org/show_bug.cgi?id=62318 |
+ |
+ Chromium-only crash |
+ Failures takes multiple seconds to occur, relying on JS garbage-collection to occur |
+ http://www.hotbazooka.com/privatejoe-large |
+ |
+ * platform/graphics/gpu/DrawingBuffer.cpp: |
+ (WebCore::DrawingBuffer::clear): |
+ |
+2011-06-08 Emil A Eklund <eae@chromium.org> |
+ |
+ Reviewed by Eric Seidel. |
+ |
+ RenderEmbeddedObject::getReplacementTextGeometry |
+ https://bugs.webkit.org/show_bug.cgi?id=62313 |
+ |
+ Replace the last use of tx, ty with IntPoint. |
+ |
+ Covered by existing tests. |
+ |
+ * platform/graphics/FloatRect.h: |
+ (WebCore::FloatRect::move): |
+ (WebCore::FloatRect::moveBy): |
+ * rendering/RenderEmbeddedObject.cpp: |
+ (WebCore::RenderEmbeddedObject::paintReplaced): |
+ (WebCore::RenderEmbeddedObject::getReplacementTextGeometry): |
+ (WebCore::RenderEmbeddedObject::isInMissingPluginIndicator): |
+ * rendering/RenderEmbeddedObject.h: |
+ |
+2011-06-08 Tim Horton <timothy_horton@apple.com> |
+ |
+ Reviewed by Ryosuke Niwa. |
+ |
+ Use correct CFURLStorageSessionRef definition on Leopard, as |
+ we created an inconsistency in const-ness between |
+ WebCoreSystemInterface.h and these two files in the case |
+ of Leopard only. |
+ https://bugs.webkit.org/show_bug.cgi?id=62223 |
+ |
+ * platform/network/ResourceHandle.h: |
+ * platform/network/cf/ResourceRequest.h: |
+ |
2011-06-08 Sailesh Agrawal <sail@chromium.org> |
Reviewed by Mihai Parparita. |