2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 89714. 2011-06-24 Alexey Proskuryakov <ap@apple.com> Rubber-stamped by Maciej Stachowiak. REGRESSION (r88984): Infinite recursion in DocumentLoader::detachFromFrame/stopLoading No new tests, as there is no known way to reproduce this (but we'll keep investigating, as the rollout will re-introduce the older less frequent crash). * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::detachFromFrame): Rollout the fix for bug 62764. 2011-06-14 Lucas Forschler <lforschler@apple.com> Rolled out 89080. 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88984. 2011-06-15 Sam Weinig <sam@webkit.org> Reviewed by Alexey Proskuryakov. Frequent crashes due to null frame below ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache https://bugs.webkit.org/show_bug.cgi?id=62764 This is an non-reproducible high volume crash, so no test :(. * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::detachFromFrame): Be conservative and stop loading when we detach a document loader from a frame. 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88982. 2011-06-15 Beth Dakin <bdakin@apple.com> Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=62746 Crash possible when switching scrollbar appearance preference on Mac -and corresponding- <rdar://problem/9323983> This crash happens because the current mechanism that is intended to flag ScrollAnimators as being in the page cache or not does not work correctly. Long-term the fix for this is to move the ScrollableArea HashSet to a more appropriate place. In the meantime, this patch addresses the crash by getting rid of the m_isActive bool on ScrollAnimator that was intended to represent whether or not the ScrollableArea is in the page cache. Instead, ScrollableArea implementations now have their own functions to compute whether they are in active pages. ScrollAnimator::setIsActive() needs to be kept around even though there is no bool to flip anymore because scrollbars may need to be properly updated if the appearance was switched while the document was in the page cache. No longer call FrameView::setAnimatorsAreActive() from Document::setIsInPageCache(), instead call it in Document::documentDidBecomeActive() * dom/Document.cpp: (WebCore::Document::setInPageCache): (WebCore::Document::documentDidBecomeActive): ScrollableAreas can now assess whether or not they are on active pages (ie, not in the page cache). * platform/ScrollableArea.h: (WebCore::ScrollableArea::isOnActivePage): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::isOnActivePage): * rendering/RenderLayer.h: * rendering/RenderListBox.cpp: (WebCore::RenderListBox::isOnActivePage): * rendering/RenderListBox.h: A FrameView cannot access its Document when it's in the page cache, so it usually determines whether it's in the page cache by checking if its frame points to a FrameView other than itself. * page/FrameView.cpp: (WebCore::FrameView::isOnActivePage): Make sure ScrollableAreas are on active pages before setting them as active. This will not be necessary when the HashSet become a per-web page HashSet. (WebCore::FrameView::setAnimatorsAreActive): * page/FrameView.h: ScrollAnimator no longer tracks the m_isActive bool. * platform/ScrollAnimator.cpp: (WebCore::ScrollAnimator::ScrollAnimator): * platform/ScrollAnimator.h: (WebCore::ScrollAnimator::setIsActive): setIsActive() now exclusively calls updateScrollStyle() if there is a pending need to do so. * platform/mac/ScrollAnimatorMac.h: * platform/mac/ScrollAnimatorMac.mm: (WebCore::ScrollAnimatorMac::setIsActive): Return early if the ScrollableArea is in the page cache. (WebCore::ScrollAnimatorMac::updateScrollerStyle): 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88948. 2011-06-15 Jer Noble <jer.noble@apple.com> Reviewed by Timothy Hatcher. Full-screen live streams have status text in wrong location https://bugs.webkit.org/show_bug.cgi?id=62733 Fix a misspelling in the user-agent stylesheet for full-screen mode. * css/fullscreenQuickTime.css: (video:-webkit-full-screen::-webkit-media-controls-status-display): 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88945. 2011-06-14 Jer Noble <jer.noble@apple.com> Reviewed by Eric Carlson. (AVFoundation) Apple event video appears as live stream and is not seekable https://bugs.webkit.org/show_bug.cgi?id=62694 No new tests; There are no media-player port specific tests yet. Work around a bug in apple.com live stream javascript controller library. When an AVAsset returns an indefinite time for its duration, return 0 if the asset has no tracks, and infinity otherwise. This keeps the apple.com controller from identifying the stored stream as a live stream. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): 2011-06-16 Lucas Forschler <lforschler@apple.com> Merged 88830. 2011-06-14 Chris Fleizach <cfleizach@apple.com> Reviewed by David Kilzer. VoiceOver cannot navigate the iTunes album view table https://bugs.webkit.org/show_bug.cgi?id=62335 This is a regression from https://bugs.webkit.org/show_bug.cgi?id=57463. Part of that patch made a change so that an ARIA table will only look at it's children and grandchildren for possible rows. That however, doesn't allow arbitrary hierarchies to work with ARIA, like in iTunes album view. Test: platform/mac/accessibility/aria-grid-with-strange-hierarchy.html * accessibility/AccessibilityARIAGrid.cpp: (WebCore::AccessibilityARIAGrid::addChild): (WebCore::AccessibilityARIAGrid::addChildren): * accessibility/AccessibilityARIAGrid.h: 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88833. 2011-06-14 Stephanie Lewis <slewis@apple.com> Rubber stamped by Oliver Hunt. <rdar://problem/9511169> Update order files. Build system change, no change in functionality so no new tests. * WebCore.order: 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88591. 2011-06-09 Jer Noble <jer.noble@apple.com> Reviewed by Darin Adler. REGRESSION: End of apple.com video in full-screen mode leads to unusable page. https://bugs.webkit.org/show_bug.cgi?id=62411 Test: fullscreen/full-screen-remove-ancestor-after.html The placeholder for RenderFullScreen was being created as a non-anonymous object, which led to the document's renderer being set to 0 when the placeholder was removed due to its parent being removed. Setting the placeholder to be anonymous, however, means that it will be coalesced with sibling anonymous blocks, so added the RenderFullScreenPlaceholder to the list of anonymous objects that are not considered anonymous blocks, to avoid the placeholder being so coalesced. To do so, made the placeholder object a true subclass, and add and override its destroy() function to notify the RenderFullScreen object that it has been destroyed. * rendering/RenderFullScreen.cpp: (RenderFullScreenPlaceholder::RenderFullScreenPlaceholder): Added. (RenderFullScreenPlaceholder::~RenderFullScreenPlaceholder): Added. (RenderFullScreenPlaceholder::isRenderFullScreenPlaceholder): Added. (RenderFullScreenPlaceholder::destroy): Notify the owner renderer that its placeholder has been destroyed. (RenderFullScreen::destroy): Assert that the m_placeholder ivar is 0 after destroying it. (RenderFullScreen::setPlaceholder): Added. (RenderFullScreen::createPlaceholder): Do not make the placeholder anonymous. * rendering/RenderFullScreen.h: * rendering/RenderObject.h: (WebCore::RenderObject::isRenderFullScreenPlaceholder): Added. (WebCore::RenderObject::isAnonymousBlock): Added the placeholder class to the list of objects which are not anonymous blocks. 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88685. 2011-06-13 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Dan Bernstein. REGRESSION (r81518): Crash in makeRange() when invoking the dictionary panel over a file input https://bugs.webkit.org/show_bug.cgi?id=62544 Fixed the crash by adding null pointer checks. No new tests since there's no way to open dictionary panel. * dom/Position.cpp: (WebCore::Position::parentAnchoredEquivalent): * editing/VisiblePosition.cpp: (WebCore::makeRange): * page/Frame.cpp: (WebCore::Frame::rangeForPoint): 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88654. 2011-06-11 Jer Noble <jer.noble@apple.com> Reviewed by Anders Carlsson. Avoid flashing when exiting full-screen mode. https://bugs.webkit.org/show_bug.cgi?id=62338 No new tests; covered by the existing full-screen tests. Now that we are forcing a repaint inside of setRootFullScreenLayer() instead of during the next run loop, make sure that we have disabled animation before calling setRootFullScreenLayer() so that the RenderFullScreen renderer and its contents are painted. * dom/Document.cpp: (WebCore::Document::webkitDidEnterFullScreenForElement): 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88653. 2011-06-10 Jer Noble <jer.noble@apple.com> Reviewed by Darin Adler. Flash of white on left and right edges of screen when showing fullscreen controller when movie doesn't fill the entire screen https://bugs.webkit.org/show_bug.cgi?id=62491 <rdar://problem/9584427> No new tests; should be covered by existing fullscreen pixel tests. On certain displays, when a RenderFullScreen renderer is created, it is large enough to trigger the creation of a tiled CALayer (instead of a normal CALayer). Painting in these layers necessarily happens asynchronously, so the flash is occurring because of the async painting of the RenderFullScreen renderer's background color. Since we know the RenderFullScreen does not otherwise paint its contents, we can add a special case in the RenderLayerBacking to set the GraphicsLayer contents to be the renderer's background color. Fill in support for creating a contentLayer to contain the background color inside GraphicsLayerCA. * platform/graphics/GraphicsLayer.h: (WebCore::GraphicsLayer::setContentsToBackgroundColor): Renamed from setContentsBackgroundColor to match the other setContentsTo... functions. * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::setContentsToBackgroundColor): Added. Creates a contentsLayer to host the background color. (WebCore::GraphicsLayerCA::updateLayerBackgroundColor): Removed a comment only. * platform/graphics/ca/GraphicsLayerCA.h: * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Special case the RenderFullScreen renderer to call updateBackgroundColor. (WebCore::RenderLayerBacking::updateBackgroundColor): Added. (WebCore::RenderLayerBacking::containsPaintedContent): Tell the backing that the RenderFullScreen renderer does not paint its contents. * rendering/RenderLayerBacking.h: 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88629. 2011-06-12 Jer Noble <jer.noble@apple.com> Reviewed by Darin Adler. REGRESSION (full screen video): Watch Again button is obscured after full screen playback ends at Apple trailers page https://bugs.webkit.org/show_bug.cgi?id=62507 No new tests; DRT would have to be modified to delay between receiving exitFullScreenForElement() and calling webkitWillExitFullScreenForElement() to be able to test this. If the full-screen element is removed, and webkitWillExitFullScreenForElement() is not called before fullScreenElementRemoved() returns, then ancestors of the full-screen element will not have their containsFullScreenElement property removed. To protect against this, reset the property by calling setContainsFullScreenElementRecursively() from within fullScreenElementRemoved(). * dom/Document.cpp: (WebCore::Document::fullScreenElementRemoved): Added call to setContainsFullScreenElementRecursively. 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88564. 2011-06-10 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. Null-check the layer owner again when painting layers https://bugs.webkit.org/show_bug.cgi?id=62473 Speculative fix for a crash that occurs when the layer's owner gets destroyed during painting. * platform/graphics/mac/WebLayer.mm: (drawLayerContents): 2011-06-14 Lucas Forschler <lforschler@apple.com> Merged 88528. 2011-06-09 Jer Noble <jer.noble@apple.com> Reviewed by Darin Adler. REGRESSION: Vertical scroll bar appears when taking videos into full screen at jerryseinfeld.com https://bugs.webkit.org/show_bug.cgi?id=62402 Sites are able to override the "overflow:hidden" rule for root full-screen nodes simply by adding a "html {}" rule. Make this rule !important, and also make it apply to root nodes who are merely ancestors of full-screen elements, to cover the case of a root node containing an <iframe> whose contents have gone full-screen. * css/fullscreen.css: (:root:-webkit-full-screen-document:not(:-webkit-full-screen), :root:-webkit-full-screen-ancestor): Apply the overflow rule to root elements who are full-screen ancestors, and make them !important. 2011-06-02 Lucas Forschler <lforschler@apple.com> Merged 88468. 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-02 Lucas Forschler <lforschler@apple.com> Merged 88475. 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-02 Lucas Forschler <lforschler@apple.com> Merged 88279. 2011-06-07 Jer Noble <jer.noble@apple.com> Reviewed by Eric Carlson. Video with poster attribute will not display new frames when scrubbing. https://bugs.webkit.org/show_bug.cgi?id=62036 Remove our "detection" about the end of a scrub now that there is an explicit seek completion handler available in AVFoundation. Move what we used to do upon detection in timeChanged() into seekCompleted(). * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::timeChanged): (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): 2011-06-07 Lucas Forschler <lforschler@apple.com> Merged 88261. 2011-06-07 Michael Saboff <msaboff@apple.com> Reviewed by Geoffrey Garen. Need to enable font cache purging in MemoryPressureHandler https://bugs.webkit.org/show_bug.cgi?id=62060 Improve memory usage under pressure. Added call to fontCache()->purgeInactiveFontData() in MemoryPressureHandler::respondToMemoryPressure(). Added protection to MemoryPressureHandler::install() being called multiple times. No new tests as funtionality wasn't changed. * platform/MemoryPressureHandler.cpp: (WebCore::MemoryPressureHandler::MemoryPressureHandler): * platform/MemoryPressureHandler.h: * platform/mac/MemoryPressureHandlerMac.mm: (WebCore::MemoryPressureHandler::install): (WebCore::MemoryPressureHandler::respondToMemoryPressure): 2011-06-07 Lucas Forschler <lforschler@apple.com> Merged 88269. 2011-06-07 Brian Weinstein <bweinstein@apple.com> Build fix after r88260. * platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::getFontDataForCharacters): Update to use enum instead of bool. * platform/graphics/wince/FontCacheWinCE.cpp: 2011-06-07 Lucas Forschler <lforschler@apple.com> Merged 88260. 2011-06-07 Michael Saboff <msaboff@apple.com> Reviewed by Geoffrey Garen. Need to enable font cache purging in MemoryPressureHandler https://bugs.webkit.org/show_bug.cgi?id=62060 Improve memory usage under pressure. Added call to fontCache()->purgeInactiveFontData() in MemoryPressureHandler::respondToMemoryPressure(). Added protection to MemoryPressureHandler::install() being called multiple times. No new tests as funtionality wasn't changed. * platform/MemoryPressureHandler.cpp: (WebCore::MemoryPressureHandler::MemoryPressureHandler): * platform/MemoryPressureHandler.h: * platform/mac/MemoryPressureHandlerMac.mm: (WebCore::MemoryPressureHandler::install): (WebCore::MemoryPressureHandler::respondToMemoryPressure): 2011-06-07 Michael Saboff <msaboff@apple.com> Reviewed by Geoffrey Garen. Fonts returned by FontCache::getFontDataForCharacters() are never released https://bugs.webkit.org/show_bug.cgi?id=61875 This change allows fonts allocated as system fallback fonts to be released. Previously, the reference counts for these fonts grew without bound. This is implemented as an auto release class that wraps accesses to the cache for system fallback fonts. All such accesses are via the method FontCache::getFontDataForCharacters. The new class is called FontCachePurgePreventer. When such an object exists, it protects these fonts from deletion. Most accesses to the font cache still use the reference counting implemented by FontCache::getCacheFontData() and FontCache::releaseFontData() and that operation is not affected by this change. Added local scoped instance of FontCachePurgePreventer to wrap code that directly or indirectly accesses fonts via getFontDataForCharacters. Did a few other miscellaneous bug fixes and changes to allow system fallback fonts to be pruned from the GlyphPageTree. Changed the calls to getFontData in the platform specific versions of Fontcache::getFontDataForCharacters to not increment the reference count. Moved the purge font check outside of FontCache::getCachedFontData() into a separate method, purgeInactiveFontDataIfNeeded() since almost all calls to getCachedFontData() now happen when purging is not allowed. purgeInactiveFontDataIfNeeded is invoked in enablePurging() when m_purgePreventCount is 0. No new test as the functionality has not changed. Improved font life cycle management. * WebCore.exp.in: Added FontCache::purgeInactiveFontDataIfNeeded(). * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::measureText): (WebCore::CanvasRenderingContext2D::drawTextInternal): Wrapped code accessing fallback fonts with local FontCachePurgePreventer in these methods. * page/FrameView.cpp: (WebCore::FrameView::layout): (WebCore::FrameView::paintContents): Wrapped code accessing fallback fonts with local FontCachePurgePreventer in these methods. * platform/graphics/FontCache.cpp: (WebCore::FontCache::FontCache): (WebCore::FontCache::getCachedFontData): Moved purge check to new method since it likely can't happen here. (WebCore::FontCache::releaseFontData): (WebCore::FontCache::purgeInactiveFontDataIfNeeded): (WebCore::FontCache::purgeInactiveFontData): Made purging conditional on m_purgePreventCount. Now some fonts in the cache are reference counted while other can be purged outside of code wrapped by in scope FontCachePurgePreventer objects. * platform/graphics/FontCache.h: (WebCore::FontCache::disablePurging): (WebCore::FontCache::enablePurging): (WebCore::FontCachePurgePreventer::FontCachePurgePreventer): (WebCore::FontCachePurgePreventer::~FontCachePurgePreventer): Added new simple purge prevention wrapper class and methods that it calls in FontCache actually prevent purging. The simple methods inlined to reduce overhead. * platform/graphics/FontFastPath.cpp: (WebCore::Font::glyphDataForCharacter): Update level in glyph page tree for system fallback fonts so pruning works. * platform/graphics/GlyphPage.h: (WebCore::GlyphPage::clearForFontData): New method used for pruning * platform/graphics/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::pruneFontData): Now we prune system fallback fonts. * platform/graphics/chromium/FontCacheChromiumWin.cpp: (WebCore::FontCache::getFontDataForCharacters): * platform/graphics/freetype/FontCacheFreeType.cpp: (WebCore::FontCache::getFontDataForCharacters): * platform/graphics/haiku/FontCacheHaiku.cpp: (WebCore::FontCache::getFontDataForCharacters): * platform/graphics/mac/FontCacheMac.mm: (WebCore::FontCache::getFontDataForCharacters): * platform/graphics/qt/FontCacheQt.cpp: (WebCore::FontCache::getFontDataForCharacters): * platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::getFontDataForCharacters): * platform/graphics/wince/FontCacheWinCE.cpp: * platform/graphics/wx/FontCacheWx.cpp: (WebCore::FontCache::getFontDataForCharacters): Changed the calls to getFontData() to not increment the reference count. The caller of this getFontDataForCharacters() (currently only Font::glyphDataForCharacter() in fontFastPath.cpp) and it's callers don't attempt to release the returned fonts so we use the purge protection described above. * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::selectionRect): (WebCore::InlineTextBox::offsetForPosition): (WebCore::InlineTextBox::positionForOffset): Wrapped code accessing fallback fonts with local FontCachePurgePreventer in these methods. * rendering/RenderImage.cpp: (WebCore::RenderImage::setImageSizeForAltText): Wrapped code accessing fallback fonts with local FontCachePurgePreventer in this method. * rendering/RenderListBox.cpp: (WebCore::RenderListBox::updateFromElement): (WebCore::RenderListBox::paintItemForeground): Wrapped code accessing fallback fonts with local FontCachePurgePreventer in these methods * rendering/svg/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::selectionRectForTextFragment): Wrapped code accessing fallback fonts with local FontCachePurgePreventer in this method. 2011-06-07 Lucas Forschler <lforschler@apple.com> Merged 88123. 2011-06-04 Darin Adler <darin@apple.com> Reviewed by Anders Carlsson. [Mac WebKit2] REGRESSION (r86692): Synchronous XMLHttpRequest hangs in credential shim (affects Netgear ReadyNAS admin page) https://bugs.webkit.org/show_bug.cgi?id=62094 rdar://problem/9539204 * WebCore.exp.in: Export ResourceHandle::synchronousLoadRunLoopMode. * platform/network/ResourceHandle.h: Add synchronousLoadRunLoopMode. * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::synchronousLoadRunLoopMode): Added. (WebCore::ResourceHandle::loadResourceSynchronously): Call synchronousLoadRunLoopMode. * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::synchronousLoadRunLoopMode): Added. (WebCore::ResourceHandle::loadResourceSynchronously): Call synchronousLoadRunLoopMode. 2011-06-07 Lucas Forschler <lforschler@apple.com> Merged 88121. 2011-06-04 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. WebKit2 needs to know when a scroll is happening due to the ScrollAnimator https://bugs.webkit.org/show_bug.cgi?id=62093 Add additional ChromeClient functions to indicate the beginning and end of the various ScrollAnimator animations. Change existing notification that a rubber-band has completed for the main frame to be triggered for all frames. * page/ChromeClient.h: (WebCore::ChromeClient::didStartRubberBandForFrame): (WebCore::ChromeClient::didCompleteRubberBandForFrame): (WebCore::ChromeClient::didStartAnimatedScroll): (WebCore::ChromeClient::didCompleteAnimatedScroll): * page/FrameView.cpp: (WebCore::FrameView::didStartRubberBand): (WebCore::FrameView::didCompleteRubberBand): (WebCore::FrameView::didStartAnimatedScroll): (WebCore::FrameView::didCompleteAnimatedScroll): * page/FrameView.h: * platform/ScrollableArea.h: (WebCore::ScrollableArea::didStartRubberBand): (WebCore::ScrollableArea::didStartAnimatedScroll): (WebCore::ScrollableArea::didCompleteAnimatedScroll): * platform/mac/ScrollAnimatorMac.h: * platform/mac/ScrollAnimatorMac.mm: (-[ScrollAnimationHelperDelegate _immediateScrollToPoint:]): (WebCore::ScrollAnimatorMac::scroll): (WebCore::ScrollAnimatorMac::immediateScrollToPointForScrollAnimation): (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired): 2011-06-07 Lucas Forschler <lforschler@apple.com> Merged 88104. 2011-06-04 Jeffrey Pfau <jpfau@apple.com> Reviewed by Beth Dakin. Crash in WebCore::RenderMathMLSubSup::baselinePosition() https://bugs.webkit.org/show_bug.cgi?id=57897 Simple patch adding NULL checks in each function. Test: mathml/msubsup-remove-children.xhtml * rendering/mathml/RenderMathMLSubSup.cpp: (WebCore::RenderMathMLSubSup::stretchToHeight): (WebCore::RenderMathMLSubSup::baselinePosition): 2011-06-07 Lucas Forschler <lforschler@apple.com> Merged 88080. 2011-06-03 Steve Falkenburg <sfalken@apple.com> Reviewed by Brian Weinstein. HistoryItem children persist across page loads https://bugs.webkit.org/show_bug.cgi?id=62071 <rdar://problem/9552129> Not testable since there's no way to check for the presence/absence of children for a HistoryItem. * history/HistoryItem.cpp: (WebCore::HistoryItem::reset): Call clearChildren when we're reusing a HistoryItem. 2011-06-07 Lucas Forschler <lforschler@apple.com> Merged 88034. Note: The original change applied to trunk was refactored from Node.cpp into NodeRenderingContext.cpp. The branch was taken before refactoring, thus this patch was manually applied to Node.cpp. 2011-06-01 Jer Noble <jer.noble@apple.com> Reviewed by Simon Fraser. Flash of broken page when exiting full screen at jerryseinfeld.com https://bugs.webkit.org/show_bug.cgi?id=61897 <rdar://problem/9522985> Test: fullscreen/full-screen-placeholder.html Entering full-screen mode is causing the page layout to change because the full-screen element is taken out of the normal flow. To counteract this effect, insert a placeholder block as a parent of the full-screen renderer with the same size and style as the full-screen element pre-full-screen. Only create a placeholder for block-level elements; the technique required for inline elements would be vastly more complicated. * dom/Document.cpp: (WebCore::Document::webkitWillEnterFullScreenForElement): Create a placeholder based on the size and style of the full-screen element. (WebCore::Document::setFullScreenRenderer): Persist the placeholder size and style across new renderers. * rendering/RenderFullScreen.cpp: (RenderFullScreen::RenderFullScreen): Added ivar. (RenderFullScreen::destroy): Make sure to safely destroy our placeholder. (RenderFullScreen::createPlaceholder): Added. * rendering/RenderFullScreen.h: (WebCore::RenderFullScreen::placeholder): Ivar accessor. 2011-06-07 Lucas Forschler <lforschler@apple.com> Merged 87959. 2011-06-02 Brady Eidson <beidson@apple.com> Reviewed by Oliver Hunt. <rdar://problem/9539920> and https://bugs.webkit.org/show_bug.cgi?id=61950 Repro crash loading certain webarchives after r87566. Test: webarchive/loading/javascript-url-iframe-crash.html * bindings/ScriptControllerBase.cpp: (WebCore::ScriptController::executeIfJavaScriptURL): DocumentWriter::replaceDocument can cause the DocumentLoader to be destroyed, so protect it with a Ref here. 2011-06-02 Lucas Forschler <lforschler@apple.com> Merged 87856. 2011-06-01 Chris Fleizach <cfleizach@apple.com> Reviewed by Darin Adler. Safari always crashes on http://bbc.co.uk when VoiceOver enabled https://bugs.webkit.org/show_bug.cgi?id=61886 This crash can happen on webpages that remove an element from the DOM when the element receives focus. When AppKit goes to post a notification to inform VoiceOver the focus has changed, it asks for the AXFocusedUIElement. However by posting that notification, a render tree update is performed. This causes the element to disappear, but AppKit still has a handle to it and continues to try to reference it. When the autorelease pool pops, the reference goes bad. To fix, the root element, the AccessibilityScrollView, needs to implement updateBackingStore(), otherwise this method will not be called in time. No test could be created because to cause it depends on an internal AppKit mechanism that is only triggered remotely through the accessibility runtime. * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::updateBackingStore): * accessibility/AccessibilityObject.h: * accessibility/AccessibilityRenderObject.cpp: * accessibility/AccessibilityRenderObject.h: 2011-06-02 Lucas Forschler <lforschler@apple.com> Merged 87844. 2011-06-01 Jer Noble <jer.noble@apple.com> Reviewed by Darin Adler. Page layout messed up after exiting full screen at Apple trailers page https://bugs.webkit.org/show_bug.cgi?id=61755 <rdar://problem/9525277> Test: fullscreen/full-screen-zIndex-after.html Fix the incomplete implementation of r87660. Make parameters to setContainsFullScreenElementRecursively() in webkitWillExitFullScreenForElement() match those in webkitWillEnterFullScreenForElement(), so the ancestors' flags do not become inconsistent.. * dom/Document.cpp: (WebCore::Document::webkitWillExitFullScreenForElement): 2011-06-02 Lucas Forschler <lforschler@apple.com> Merged 87768. 2011-05-31 Jer Noble <jer.noble@apple.com> Reviewed by Darin Adler. Flash of black at the end of full screen transition at apple.com product videos https://bugs.webkit.org/show_bug.cgi?id=61756 Added two new entries to the WebCore exports list. * WebCore.exp.in: 2011-06-02 Lucas Forschler <lforschler@apple.com> Merged 87704. 2011-05-30 Eric Carlson <eric.carlson@apple.com> Reviewed by Alexey Proskuryakov. Audio and video files saved to the Application Cache should preserve the original file extension https://bugs.webkit.org/show_bug.cgi?id=61750 <rdar://9524922> No new tests, it isn't possible to check the name of the file in the cache from within DRT. Changes verified manually. * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::store): Append the original file extension to the cache file name. (WebCore::ApplicationCacheStorage::writeDataToUniqueFileInDirectory): Add extension parameter. * loader/appcache/ApplicationCacheStorage.h: 2011-06-02 Lucas Forschler <lforschler@apple.com> Merged 87703. 2011-05-30 Jer Noble <jer.noble@apple.com> Reviewed by Dan Bernstein. Play/Pause button in wrong state when entering full screen on Vimeo https://bugs.webkit.org/show_bug.cgi?id=61754 Update the play/pause button inside reset(). This ensures the button is in the correct state when the controls are created after playback has already started. * html/shadow/MediaControlRootElement.cpp: (WebCore::MediaControlRootElement::reset): 2011-05-30 Mark Rowe <mrowe@apple.com> Merge r87692. 2011-05-30 Jer Noble <jer.noble@apple.com> Reviewed by Darin Adler and Simon Fraser. REGRESSION (r87622): Scrubbing a Vimeo movie when in fullscreen stops playback; no way to make it start again https://bugs.webkit.org/show_bug.cgi?id=61717 rdar://problem/9522272 May be some good way to test this later. No immediate idea about the best way. When a media element is taken into full-screen mode, stop events from propagating outside the media element's shadow DOM, EventDispatcher::determineDispatchBehavior() has been changed to take a shadow root node. In our full screen media element check, we check to see if the passed shadow root is the shadow root of the full screen media element, and if so, specify events should StayInsideShadowDOM. The end result is that inside EventDispatcher::ensureEventAncestors, an ancestor chain is built up all the way from the SliderThumb to the video element's shadow root, but no further. * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::determineDispatchBehavior): Restrict events to the shadow DOM when showing a full screen video. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): Removed code to manage full screen controls. The events telling us about activity in the shadow DOM no longer bubble out so we need to handle this inside the shadow DOM on the root element. (WebCore::HTMLMediaElement::play): Ditto. (WebCore::HTMLMediaElement::playbackProgressTimerFired): Ditto. (WebCore::HTMLMediaElement::defaultEventHandler): Ditto. (WebCore::HTMLMediaElement::enterFullscreen): Ditto. (WebCore::HTMLMediaElement::exitFullscreen): Ditto. * html/HTMLMediaElement.h: Added isPlaying function, removed things moved to the root element. * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler): Rolled out changes that tried to make special rules for events using preDispatchEventHandler and such. This rolls out both r87622 and r87655. (WebCore::MediaControlMuteButtonElement::defaultEventHandler): Ditto. (WebCore::MediaControlPanelMuteButtonElement::defaultEventHandler): Ditto. (WebCore::MediaControlPlayButtonElement::defaultEventHandler): Ditto. (WebCore::MediaControlSeekButtonElement::defaultEventHandler): Ditto. (WebCore::MediaControlRewindButtonElement::defaultEventHandler): Ditto. (WebCore::MediaControlReturnToRealtimeButtonElement::defaultEventHandler): Ditto. (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler): Ditto. (WebCore::MediaControlTimelineElement::defaultEventHandler): Ditto. (WebCore::MediaControlVolumeSliderElement::defaultEventHandler): Ditto. (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): Ditto. (WebCore::MediaControlFullscreenVolumeMinButtonElement::defaultEventHandler): Ditto. (WebCore::MediaControlFullscreenVolumeMaxButtonElement::defaultEventHandler): Ditto. * html/shadow/MediaControlElements.h: Ditto. * html/shadow/MediaControlRootElement.cpp: (WebCore::MediaControlRootElement::MediaControlRootElement): Initialize new data members. (WebCore::MediaControlRootElement::playbackStarted): Start the timer so we will consider hiding the controls later. (WebCore::MediaControlRootElement::playbackProgressed): Hide the controls if the mouse is no longer over the controls. (WebCore::MediaControlRootElement::playbackStopped): Stop the timer since we only hide automatically if we're playing. (WebCore::MediaControlRootElement::enteredFullscreen): Start the timer. (WebCore::MediaControlRootElement::exitedFullscreen): Stop the timer since we only care if we are full screen. (WebCore::MediaControlRootElement::containsRelatedTarget): Added. Helper for next function. (WebCore::MediaControlRootElement::defaultEventHandler): Do the hide/show and timer functions as the mouse is moved in and out. (WebCore::MediaControlRootElement::startHideFullscreenControlsTimer): Start the timer if needed. (WebCore::MediaControlRootElement::hideFullscreenControlsTimerFired): Hide if the conditions are met. (WebCore::MediaControlRootElement::stopHideFullscreenControlsTimer): Stop the timer. * html/shadow/MediaControlRootElement.h: Added new functions and data members. 2011-05-29 Mark Rowe <mrowe@apple.com> Merge r87657. 2011-05-29 Dan Bernstein <mitz@apple.com> Reviewed by Darin Adler. <rdar://problem/9515650> 30 second rewind button obscured in fullscreen controller when video uses custom inline controls https://bugs.webkit.org/show_bug.cgi?id=61714 * dom/Document.cpp: (WebCore::Document::webkitDidEnterFullScreenForElement): Call didBecomeFullscreenElement() on the new full screen element. (WebCore::Document::webkitWillExitFullScreenForElement): Call willStopBeingFullscreenElement() on the full screen element. * dom/Element.h: (WebCore::Element::didBecomeFullscreenElement): Added with a default implementation that does nothing. (WebCore::Element::willStopBeingFullscreenElement): Ditto. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::didBecomeFullscreenElement): Added this override, which calls MediaControls::enteredFullscreen(). (WebCore::HTMLMediaElement::willStopBeingFullscreenElement): Added this override, which calls MediaControls::exitedFullscreen(). * html/HTMLMediaElement.h: * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlFullscreenButtonElement::preDispatchEventHandler): Removed calls to enteredFullscreen() and exitedFullscreen() from here, since they are now called in response to changes to the fullscreen-ness of the element. 2011-05-29 Mark Rowe <mrowe@apple.com> Merge r87643. 2011-05-29 Darin Adler <darin@apple.com> Reviewed by Dan Bernstein. Fix assertion seen when entering full screen mode for standalone video https://bugs.webkit.org/show_bug.cgi?id=61708 We don't currently have a way to make a regression test for this. * dom/Document.cpp: (WebCore::Document::setAnimatingFullScreen): Call scheduleForcedStyleRecalc, because scheduleStyleRecalc is intended to only be called when the style system itself detects recalc is needed. 2011-05-29 Mark Rowe <mrowe@apple.com> Merge r87660. 2011-05-29 Jer Noble <jer.noble@apple.com> Reviewed by Simon Fraser. Embedded Vimeo video, when taken fullscreen, is overlapped by content from the enclosing page https://bugs.webkit.org/show_bug.cgi?id=61712 Tests: fullscreen/full-screen-iframe-zIndex.html Walk up the ancestor chain for the full-screen element, marking them as full-screen ancestors. Then, we apply a pseudo-class to those elements, which disable all their stacking-context-creating styles. Set the z-index of all full-screen elements (and the iframes which contain them) to a large value, ensuring they appear above other sibling elements. This new behavior replaces the previous "-webkit-full-screen-media-document" behavior and pesudo-class, so remove it and replace it with the new pseudo-class. * css/CSSSelector.cpp: (WebCore::nameToPseudoTypeMap): Add -webkit-full-screen-ancestor and remove -webkit-full-screen-media-document. (WebCore::CSSSelector::pseudoId): Add PseudoFullScreenAncestor and remove PseudoFullScreenMediaDocument (WebCore::CSSSelector::extractPseudoType): Ditto. * css/CSSSelector.h: Ditto. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Remove the PseudoFullScreenMediaDocument implementation and replace it with PseudoFullScreenAncestor. * css/fullscreen.css: (:-webkit-full-screen): Add a z-index property. (:-webkit-full-screen-ancestor:not(iframe)): Added. Reset the z-index to auto, and reset other stacking-context creating properties. * dom/Document.cpp: (WebCore::Document::setContainsFullScreenElementRecursively): Recurse up every element instead of just the iframe elements. (WebCore::Document::webkitWillEnterFullScreenForElement): Ditto. * dom/Element.cpp: (WebCore::Element::willRemove): Reset our parent's containsFullScreenElement property. (WebCore::Element::insertedIntoTree): Ditto. (WebCore::Element::containsFullScreenElement): Moved here from HTMLElementBase. (WebCore::Element::setContainsFullScreenElement): Ditto. * dom/Element.h: * dom/ElementRareData.h: (WebCore::ElementRareData::ElementRareData): Added ivar and initializer for m_containsFullScreenElement. * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::HTMLFrameElementBase): Removed ivar and initializer. (WebCore::HTMLFrameElementBase::setContainsFullScreenElement): Moved into Element. * html/HTMLFrameElementBase.h: * rendering/style/RenderStyleConstants.h: 2011-05-29 Mark Rowe <mrowe@apple.com> Merge r87655. 2011-05-29 Darin Adler <darin@apple.com> Reviewed by Kevin Decker. REGRESSION (r87622): In media documents, clicking the full screen button and the play button pauses the video https://bugs.webkit.org/show_bug.cgi?id=61713 We need to come up with a way to regression-test these changes. Nothing at the moment. The bug is that we removed calls to preventDefault, but we still do need to prevent default handling of this event. * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlElement::preDispatchEventHandler): Add back the preventDefault that was in here before r87622 as well as the stopPropagation that was added in r87622. (WebCore::MediaControlMuteButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlPlayButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlSeekButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlRewindButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlReturnToRealtimeButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlToggleClosedCaptionsButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlFullscreenButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlFullscreenVolumeMinButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlFullscreenVolumeMaxButtonElement::preDispatchEventHandler): Ditto. 2011-05-29 Mark Rowe <mrowe@apple.com> Merge r87661. 2011-05-29 Brian Weinstein <bweinstein@apple.com> Reviewed by Darin Adler. Controls never hide in full screen after user stops moving mouse https://bugs.webkit.org/show_bug.cgi?id=61715 <rdar://problem/9522182> When we get a mouse move event in HTMLMediaElement::defaultEventHandler, and we are in full screen, show the media controls, and then start a timer. The timer fires 3 seconds after the user's last mouse movement (timer is restarted on every mouse move), and hides the controls. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize our new timer. (WebCore::HTMLMediaElement::play): If we are in full screen mode, start our timer to hide the full screen controls. We don't want the user to have to move the mouse to hide them when they use the spacebar to play. (WebCore::HTMLMediaElement::startHideFullscreenControlsTimer): Starts a oneshot timer 3 seconds in the future if we are in full screen. (WebCore::HTMLMediaElement::hideFullscreenControlsTimerFired): Make sure that we are currently playing, and we are in full screen, and hide the controls. We don't want to hide the controls if we are paused. (WebCore::HTMLMediaElement::stopHideFullscreenControlsTimer): Stops the timer. (WebCore::HTMLMediaElement::defaultEventHandler): If we get a mouse move event and are in full screen, show the controls and start a timer to hide them. (WebCore::HTMLMediaElement::enterFullscreen): Start a timer to hide the full screen controls. The user shouldn't have the move the mouse once they enter full screen to hide the controls. (WebCore::HTMLMediaElement::exitFullscreen): Stop the timer to hide the full screen controls. * html/HTMLMediaElement.h: * html/shadow/MediaControls.h: Added pure virtual shouldHideControls() method. * html/shadow/MediaControlRootElement.cpp: (WebCore::MediaControlRootElement::playbackStopped): Stop the timer to hide the full screen controls. (WebCore::MediaControlRootElement::shouldHideControls): Added, only report that the caller should hide the controls if the panel is not hovered. * html/shadow/MediaControlRootElement.h: 2011-05-29 Mark Rowe <mrowe@apple.com> Merge r87633. 2011-05-28 Alexey Proskuryakov <ap@apple.com> Suggested by Simon Fraser. REGRESSION (r85375): Load event is sometimes lost when multiple image elements use the same URL https://bugs.webkit.org/show_bug.cgi?id=61692 <rdar://problem/9488628> * loader/ImageLoader.cpp: (WebCore::ImageLoader::notifyFinished): There was no need to use ASSERT_UNUSED here. 2011-05-29 Mark Rowe <mrowe@apple.com> Merge r87628. 2011-05-28 Alexey Proskuryakov <ap@apple.com> Reviewed by Geoff Garen. REGRESSION (r85375): Load event is sometimes lost when multiple image elements use the same URL https://bugs.webkit.org/show_bug.cgi?id=61692 <rdar://problem/9488628> Test: fast/dom/gc-image-element-2.html Manually verified that tests from bug 59604 and from bug 40926 still pass. The problem here was that HTMLImageElement::hasPendingActivity() could return false when a load (or error) event was still expected to fire. * loader/cache/CachedResource.cpp: (WebCore::CachedResource::setRequest): * loader/cache/CachedResource.h: (WebCore::CachedResource::wasCanceled): (WebCore::CachedResource::errorOccurred): Track whether the load was canceled. We want to always notify clients of load outcome, as that's the only way they could make intelligent decisions. * dom/ScriptElement.cpp: (WebCore::ScriptElement::execute): Cached resource clients now get a notifyFinished call on cancellation. Handle this case, where we don't need the execute the script, but also don't need to fire an error event. * html/HTMLImageElement.cpp: Moved hasPendingActivity() to header, since it's just a single function call now. * html/HTMLImageElement.h: (WebCore::HTMLImageElement::hasPendingActivity): There is a large window between when CachedResource::isLoading() becomes false and events are queued. ImageLoader::haveFiredLoadEvent() is a much better indication of whether we are expecting an event to fire. * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::onloadTimerFired): Again, don't do anything on cancellation. * loader/ImageLoader.cpp: (WebCore::ImageEventSender::hasPendingEvents): Made it debug-only again, and fixed to give an accurate result while looping over the list of events to dispatch. (WebCore::ImageLoader::notifyFinished): Don't do anything when cancelled. We don't want to switch to a broken image icon, or to dispatch events. (WebCore::ImageEventSender::dispatchPendingEvents): Clear the current loader from dispatching list, as the event is no longer pending when it's being dispatched. * loader/ImageLoader.h: Removed unnecessary hasPendingLoadEvent(). We don't care whether one is already pending, we only care if one is expected at some time in the future, and !haveFiredLoadEvent() is our best idea of that. * dom/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::notifyFinished): Another place to handle cancellation. 2011-05-29 Mark Rowe <mrowe@apple.com> Merge r87634. 2011-05-28 Steve Falkenburg <sfalken@apple.com> Reviewed by Dan Bernstein. Don't add sub-frames to global history when navigating via back/forward https://bugs.webkit.org/show_bug.cgi?id=61701 <rdar://problem/9521222> Instead of just checking whether the load is the first in the frame, we also need to check to make sure we're loading in the main frame. Not testable due to lack of global history infrastructure in DRT. * loader/FrameLoader.cpp: (WebCore::FrameLoader::transitionToCommitted): 2011-05-29 Mark Rowe <mrowe@apple.com> Merge r87639. 2011-05-29 Beth Dakin <bdakin@apple.com> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=61700 Need WebKit2 API to get the size of the render tree -and corresponding- <rdar://problem/9512733> New member variable on RenderArena keeps track of the current amount of memory allocated in the arena. The new client function sends this piece of data to WebKit. * page/ChromeClient.h: (WebCore::ChromeClient::setRenderTreeSize): * page/FrameView.cpp: (WebCore::FrameView::performPostLayoutTasks): * rendering/RenderArena.cpp: (WebCore::RenderArena::RenderArena): (WebCore::RenderArena::allocate): (WebCore::RenderArena::free): * rendering/RenderArena.h: (WebCore::RenderArena::totalRenderArenaSize): 2011-05-28 Mark Rowe <mrowe@apple.com> Merge r87622. 2011-05-28 Jer Noble <jer.noble@apple.com> Reviewed by Maciej Stachowiak. Mouse clicks propagate outside full-screen media controls. https://bugs.webkit.org/show_bug.cgi?id=61689 Mouse click events are propagating out of the media controls, so mouse click listeners registered on the video element are getting fired when the user clicks on media controller buttons. By default, block propagation of click events from MediaControlElements by overriding preDispatchEventHandler, and convert all instances of defaultEventHandler -> preDispatchEventHandler. Change all calls of event->setDefaultHandled() to event->stopPropagation(). * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlElement::preDispatchEventHandler): Added. Block propagation of all mouse click events. (WebCore::MediaControlVolumeSliderContainerElement::preDispatchEventHandler): Renamed from setDefaultHandled. (WebCore::MediaControlMuteButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlPanelMuteButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlPlayButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlSeekButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlRewindButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlReturnToRealtimeButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlToggleClosedCaptionsButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlTimelineElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlVolumeSliderElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlFullscreenButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlFullscreenVolumeMinButtonElement::preDispatchEventHandler): Ditto. (WebCore::MediaControlFullscreenVolumeMaxButtonElement::preDispatchEventHandler): Ditto. * html/shadow/MediaControlElements.h: 2011-05-28 Mark Rowe <mrowe@apple.com> Merge r87598. 2011-05-27 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. CG BitmapImage needs to check for valid CGImage in a couple of places https://bugs.webkit.org/show_bug.cgi?id=61684 <rdar://problem/9519348> BitmapImage::getCGImageArray() can throw an exception if frameAtIndex() returns null, which it may do if the image is corrupted or still loading. Protect against that here and in getFirstCGImageRefOfSize(). * platform/graphics/cg/ImageCG.cpp: (WebCore::BitmapImage::getFirstCGImageRefOfSize): (WebCore::BitmapImage::getCGImageArray): 2011-05-28 Mark Rowe <mrowe@apple.com> Merge r87331. 2011-05-25 Jer Noble <jer.noble@apple.com> Ureviewed; Build fix for Leopard and Snow Leopard. Move _wkQTMovieResolvedURL outside of a #if check for Leopard and SL. * WebCore.exp.in: 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87578. 2011-05-27 Anders Carlsson <andersca@apple.com> Reviewed by Sam Weinig. Always use the default localization strategy https://bugs.webkit.org/show_bug.cgi?id=61670 <rdar://problem/9516130> Always use the default localization strategy when there's no platform strategy. * platform/DefaultLocalizationStrategy.cpp: (WebCore::DefaultLocalizationStrategy::shared): * platform/DefaultLocalizationStrategy.h: * platform/LocalizedStrings.cpp: (WebCore::inputElementAltText): (WebCore::resetButtonDefaultLabel): (WebCore::searchableIndexIntroduction): (WebCore::submitButtonDefaultLabel): (WebCore::fileButtonChooseFileLabel): (WebCore::fileButtonNoFileSelectedLabel): (WebCore::defaultDetailsSummaryText): (WebCore::copyImageUnknownFileLabel): (WebCore::contextMenuItemTagOpenLinkInNewWindow): (WebCore::contextMenuItemTagDownloadLinkToDisk): (WebCore::contextMenuItemTagCopyLinkToClipboard): (WebCore::contextMenuItemTagOpenImageInNewWindow): (WebCore::contextMenuItemTagDownloadImageToDisk): (WebCore::contextMenuItemTagCopyImageToClipboard): (WebCore::contextMenuItemTagCopyImageUrlToClipboard): (WebCore::contextMenuItemTagOpenFrameInNewWindow): (WebCore::contextMenuItemTagCopy): (WebCore::contextMenuItemTagGoBack): (WebCore::contextMenuItemTagGoForward): (WebCore::contextMenuItemTagStop): (WebCore::contextMenuItemTagReload): (WebCore::contextMenuItemTagCut): (WebCore::contextMenuItemTagPaste): (WebCore::contextMenuItemTagSelectAll): (WebCore::contextMenuItemTagNoGuessesFound): (WebCore::contextMenuItemTagIgnoreSpelling): (WebCore::contextMenuItemTagLearnSpelling): (WebCore::contextMenuItemTagSearchInSpotlight): (WebCore::contextMenuItemTagSearchWeb): (WebCore::contextMenuItemTagLookUpInDictionary): (WebCore::contextMenuItemTagOpenLink): (WebCore::contextMenuItemTagIgnoreGrammar): (WebCore::contextMenuItemTagSpellingMenu): (WebCore::contextMenuItemTagShowSpellingPanel): (WebCore::contextMenuItemTagCheckSpelling): (WebCore::contextMenuItemTagCheckSpellingWhileTyping): (WebCore::contextMenuItemTagCheckGrammarWithSpelling): (WebCore::contextMenuItemTagFontMenu): (WebCore::contextMenuItemTagShowFonts): (WebCore::contextMenuItemTagBold): (WebCore::contextMenuItemTagItalic): (WebCore::contextMenuItemTagUnderline): (WebCore::contextMenuItemTagOutline): (WebCore::contextMenuItemTagStyles): (WebCore::contextMenuItemTagShowColors): (WebCore::contextMenuItemTagSpeechMenu): (WebCore::contextMenuItemTagStartSpeaking): (WebCore::contextMenuItemTagStopSpeaking): (WebCore::contextMenuItemTagWritingDirectionMenu): (WebCore::contextMenuItemTagTextDirectionMenu): (WebCore::contextMenuItemTagDefaultDirection): (WebCore::contextMenuItemTagLeftToRight): (WebCore::contextMenuItemTagRightToLeft): (WebCore::contextMenuItemTagCorrectSpellingAutomatically): (WebCore::contextMenuItemTagSubstitutionsMenu): (WebCore::contextMenuItemTagShowSubstitutions): (WebCore::contextMenuItemTagSmartCopyPaste): (WebCore::contextMenuItemTagSmartQuotes): (WebCore::contextMenuItemTagSmartDashes): (WebCore::contextMenuItemTagSmartLinks): (WebCore::contextMenuItemTagTextReplacement): (WebCore::contextMenuItemTagTransformationsMenu): (WebCore::contextMenuItemTagMakeUpperCase): (WebCore::contextMenuItemTagMakeLowerCase): (WebCore::contextMenuItemTagCapitalize): (WebCore::contextMenuItemTagChangeBack): (WebCore::contextMenuItemTagOpenVideoInNewWindow): (WebCore::contextMenuItemTagOpenAudioInNewWindow): (WebCore::contextMenuItemTagCopyVideoLinkToClipboard): (WebCore::contextMenuItemTagCopyAudioLinkToClipboard): (WebCore::contextMenuItemTagToggleMediaControls): (WebCore::contextMenuItemTagToggleMediaLoop): (WebCore::contextMenuItemTagEnterVideoFullscreen): (WebCore::contextMenuItemTagMediaPlay): (WebCore::contextMenuItemTagMediaPause): (WebCore::contextMenuItemTagMediaMute): (WebCore::contextMenuItemTagInspectElement): (WebCore::searchMenuNoRecentSearchesText): (WebCore::searchMenuRecentSearchesText): (WebCore::searchMenuClearRecentSearchesText): (WebCore::AXWebAreaText): (WebCore::AXLinkText): (WebCore::AXListMarkerText): (WebCore::AXImageMapText): (WebCore::AXHeadingText): (WebCore::AXDefinitionListTermText): (WebCore::AXDefinitionListDefinitionText): (WebCore::AXARIAContentGroupText): (WebCore::AXButtonActionVerb): (WebCore::AXRadioButtonActionVerb): (WebCore::AXTextFieldActionVerb): (WebCore::AXCheckedCheckBoxActionVerb): (WebCore::AXUncheckedCheckBoxActionVerb): (WebCore::AXLinkActionVerb): (WebCore::AXMenuListPopupActionVerb): (WebCore::AXMenuListActionVerb): (WebCore::missingPluginText): (WebCore::crashedPluginText): (WebCore::multipleFileUploadText): (WebCore::unknownFileSizeText): (WebCore::uploadFileText): (WebCore::allFilesText): (WebCore::keygenMenuItem512): (WebCore::keygenMenuItem1024): (WebCore::keygenMenuItem2048): (WebCore::keygenKeychainItemName): (WebCore::imageTitle): (WebCore::mediaElementLoadingStateText): (WebCore::mediaElementLiveBroadcastStateText): (WebCore::localizedMediaControlElementString): (WebCore::localizedMediaControlElementHelpText): (WebCore::localizedMediaTimeDescription): (WebCore::validationMessageValueMissingText): (WebCore::validationMessageValueMissingForCheckboxText): (WebCore::validationMessageValueMissingForFileText): (WebCore::validationMessageValueMissingForMultipleFileText): (WebCore::validationMessageValueMissingForRadioText): (WebCore::validationMessageValueMissingForSelectText): (WebCore::validationMessageTypeMismatchText): (WebCore::validationMessageTypeMismatchForEmailText): (WebCore::validationMessageTypeMismatchForMultipleEmailText): (WebCore::validationMessageTypeMismatchForURLText): (WebCore::validationMessagePatternMismatchText): (WebCore::validationMessageTooLongText): (WebCore::validationMessageRangeUnderflowText): (WebCore::validationMessageRangeOverflowText): (WebCore::validationMessageStepMismatchText): 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87580. 2011-05-27 Stephanie Lewis <slewis@apple.com> Unreviewed. Fix a typo in the order_file flag. * Configurations/Base.xcconfig: 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87520. 2011-05-27 Stephanie Lewis <slewis@apple.com> Rubber Stamped by Adam Roben. Update Order Files. Use -order_file flag since it can order more of the binary. * Configurations/Base.xcconfig: * WebCore.order: 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87566. 2011-05-27 Brady Eidson <beidson@apple.com> Reviewed by Darin Adler. First swipe at resolving <rdar://problem/9125145> and https://bugs.webkit.org/show_bug.cgi?id=61494 Make the Document be intelligent about returning its DocumentLoader, including the possibility that the DocumentLoader will be null. No new tests. No change in behavior. Instead of storing the DocumentLoader at construction and never changing it, always calculate it based on the FrameLoader's current DocumentLoader: * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::suggestedMIMEType): (WebCore::Document::lastModified): (WebCore::Document::initSecurityContext): (WebCore::Document::updateURLForPushOrReplaceState): (WebCore::Document::loader): * dom/Document.h: Null-check or ASSERT that the DocumentLoader exists (or both) depending on the scenario: * bindings/ScriptControllerBase.cpp: (WebCore::ScriptController::executeIfJavaScriptURL): * html/MediaDocument.cpp: (WebCore::MediaDocument::replaceMediaElementTimerFired): * html/PluginDocument.cpp: (WebCore::PluginDocumentParser::createDocumentStructure): * platform/mac/HTMLConverter.mm: (fileWrapperForElement): * WebCore.exp.in: 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87330. 2011-05-25 Michael Saboff <msaboff@apple.com> Reviewed by Sam Weinig. Cleanup of commented items from https://bugs.webkit.org/show_bug.cgi?id=61222 https://bugs.webkit.org/show_bug.cgi?id=61478 Cleanup of further comments after patch was landed. Changes include using /2 instead of >>1, adding a blank line after class include, making method names start with lower case and adding clarifying comments. No new tests as the changes are stylistic and not functional. * loader/cache/MemoryCache.cpp: (WebCore::MemoryCache::pruneLiveResourcesToPercentage): (WebCore::MemoryCache::pruneDeadResourcesToPercentage): * loader/cache/MemoryCache.h: (WebCore::MemoryCache::pruneToPercentage): * platform/mac/MemoryPressureHandlerMac.mm: (WebCore::MemoryPressureHandler::respondToMemoryPressure): 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87228. 2011-05-24 Michael Saboff <msaboff@apple.com> Reviewed by Geoffrey Garen. Improve handling in WebCore of low memory situations https://bugs.webkit.org/show_bug.cgi?id=61222 Added new class, MemoryPressureHandler, to platform to respond to low system memory events. Added Mac specific implementation that reduces the page cache, NSURL cache, WebCore cache by half their current usage and then garbage collects. This can allow Safari to continue operating in a low memory situation with minimal paging. Split up prune operations in MemoryCache to allow for pruning to a specific actual size to support this change. No tests added as the functionality of WebKit wasn't changed. * GNUmakefile.list.am: * WebCore.exp.in: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * loader/cache/MemoryCache.cpp: (WebCore::MemoryCache::pruneLiveResources): (WebCore::MemoryCache::forcePruneLiveResources): (WebCore::MemoryCache::pruneLiveResourcesToTarget): (WebCore::MemoryCache::pruneDeadResources): (WebCore::MemoryCache::forcePruneDeadResources): (WebCore::MemoryCache::pruneDeadResourcesToTarget): * loader/cache/MemoryCache.h: (WebCore::MemoryCache::forcePrune): * platform/MemoryPressureHandler.cpp: Added. (WebCore::memoryPressureHandler): (WebCore::MemoryPressureHandler::MemoryPressureHandler): (WebCore::MemoryPressureHandler::install): (WebCore::MemoryPressureHandler::respondToMemoryPressure): * platform/MemoryPressureHandler.h: Added. * platform/mac/MemoryPressureHandler.mm: Added. (WebCore::MemoryPressureHandler::install): (WebCore::MemoryPressureHandler::respondToMemoryPressure): 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87460. 2011-05-26 Stephanie Lewis <slewis@apple.com> Reviewed by Geoff Garen. https://bugs.webkit.org/show_bug.cgi?id=61345 part of <rdar://problem/8675177> Roll back in now that the Crashes are fixed. ResourceResponseBase and ResourceResponse had two different definitions for m_isNull. ResourceResponse treats m_isNull as meaning there isn't any platform ResourceResponse. ResourceResponseBase treats m_isNull as meaning no fields have been initialized. Consolidate calls into ResourceResponseBase meaning. Don't initialize ResourceResponse.m_suggestedFilename until we want to use it. Initializing it requires reading in and parsing a plist. Add new initialization state CommonAndUncommonFields to ResourceResponse. This will be for all the header fields. Move suggestedFilename initialization to AllFields so it is never initialized unless we ask for it. Add "Content-Type" to common headers since it is looked for by every CSS sheet load. No new functionality so no new tests. * platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::adopt): (WebCore::ResourceResponseBase::suggestedFilename): (WebCore::ResourceResponseBase::setSuggestedFilename): (WebCore::ResourceResponseBase::httpStatusText): (WebCore::ResourceResponseBase::setHTTPStatusText): (WebCore::ResourceResponseBase::httpHeaderField): (WebCore::ResourceResponseBase::setHTTPHeaderField): (WebCore::ResourceResponseBase::httpHeaderFields): (WebCore::ResourceResponseBase::isAttachment): (WebCore::ResourceResponseBase::setLastModifiedDate): (WebCore::ResourceResponseBase::lastModifiedDate): (WebCore::ResourceResponseBase::wasCached): (WebCore::ResourceResponseBase::connectionReused): (WebCore::ResourceResponseBase::setConnectionReused): (WebCore::ResourceResponseBase::connectionID): (WebCore::ResourceResponseBase::setConnectionID): (WebCore::ResourceResponseBase::resourceLoadTiming): (WebCore::ResourceResponseBase::setResourceLoadTiming): (WebCore::ResourceResponseBase::resourceLoadInfo): (WebCore::ResourceResponseBase::setResourceLoadInfo): * platform/network/ResourceResponseBase.h: * platform/network/cf/ResourceResponse.h: (WebCore::ResourceResponse::ResourceResponse): * platform/network/cf/ResourceResponseCFNet.cpp: (WebCore::ResourceResponse::platformLazyInit): * platform/network/mac/ResourceResponseMac.mm: 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87329. 2011-05-25 Stephanie Lewis <slewis@apple.com> Reviewed by Brady Eidson. https://bugs.webkit.org/show_bug.cgi?id=61407 part of <rdar://problem/8675177> Move Quicklook quirk down into WebCore so it can be caculated when the user starts a reload. Restructure the conditions so it only called when absolutely necessary. No change in functionality so no new tests. * loader/FrameLoader.cpp: (WebCore::FrameLoader::subresourceCachePolicy): * page/Settings.cpp: (WebCore::Settings::Settings): * page/Settings.h: * platform/network/cf/ResourceRequest.h: * platform/network/mac/ResourceRequestMac.mm: (WebCore::initQuickLookResourceCachingQuirks): (WebCore::ResourceRequest::useQuickLookResourceCachingQuirks): 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87557. 2011-05-27 Jer Noble <jer.noble@apple.com> Reviewed by Maciej Stachowiak. 30 second rewind button obscured in fullscreen controller https://bugs.webkit.org/show_bug.cgi?id=61663 If reset() is called while in full-screen mode, make sure to show and hide the correct controls for that mode. * html/shadow/MediaControlRootElement.cpp: (WebCore::MediaControlRootElement::reset): 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87414. 2011-05-25 Jer Noble <jer.noble@apple.com> Reviewed by Maciej Stachowiak. Safari Web Content crashes while entering/exiting the full screen mode of the video content https://bugs.webkit.org/show_bug.cgi?id=61498 No new tests, as DRT does not currently animate the full screen transition. To guard against m_fullScreenRenderer being called after it has been deleted, add code in RenderFullScreen which notifies the document when its full-screen renderer will be destroyed. Also, add some sanity checks when accessing the full-screen renderer's layer backing. * dom/Document.cpp: (WebCore::Document::webkitWillEnterFullScreenForElement): Guard against a missing full-screen renderer layer. (WebCore::Document::webkitWillExitFullScreenForElement): Ditto. (WebCore::Document::setFullScreenRenderer): Added ASSERT. (WebCore::Document::fullScreenRendererDestroyed): Added. (WebCore::Document::setAnimatingFullScreen): Guard against the full-screen element having been removed from the document. * dom/Document.h: * rendering/RenderFullScreen.cpp: (RenderFullScreen::destroy): Added. Tell the Document that it's full-screen renderer is about to be destroyed. * rendering/RenderFullScreen.h: 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87322. 2011-05-25 Jer Noble <jer.noble@apple.com> Reviewed by Darin Adler. REGRESSION: Fullscreen button on embedded Vimeo videos does nothing https://bugs.webkit.org/show_bug.cgi?id=61461 Tests: fullscreen/full-screen-iframe-legacy.html Allow calls from the legacy full-screen API to bypass the iframe "webkitallowfullscreen" requirement by adding a parameter to Document::webkitRequestFullScreenForElement specifying the strictness of that check. Specify this new parameter everywhere that function is called, including in the default controls' full-screen button handler. * dom/Document.cpp: (WebCore::Document::webkitRequestFullScreenForElement): * dom/Document.h: * dom/Element.cpp: (WebCore::Element::requestFullScreen): Renamed from webkitRequestFullScreen. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::enterFullscreen): * html/shadow/MediaControlElements.cpp: (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87363. 2011-05-25 Jer Noble <jer.noble@apple.com> Reviewed by Dan Bernstein. 30 second rewind button dysfunctional viewing trailers fullscreen. https://bugs.webkit.org/show_bug.cgi?id=61505 Add support for painting MediaReturnToRealtimeButton, as well as hide and show the correct default video control buttons when entering full-screen mode. * css/fullscreenQuickTime.css: (video:-webkit-full-screen::-webkit-media-controls-return-to-realtime-button): * html/shadow/MediaControlRootElement.cpp: (WebCore::MediaControlRootElement::enteredFullscreen): Show the "Back 30s" and "Return to Realtime" buttons for Live Streams in full-screen mode. (WebCore::MediaControlRootElement::exitedFullscreen): Reset the styles of all the buttons affected by enteredFullscreen(). * rendering/RenderMediaControls.cpp: (WebCore::RenderMediaControls::paintMediaControlsPart): Add support for MediaReturnToRealtimeButton. 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87328. 2011-05-24 Jer Noble <jer.noble@apple.com> Reviewed by Darin Adler. Video fails to play on Vimeo https://bugs.webkit.org/show_bug.cgi?id=61403 No new tests; Covered by media/video-canvas-source.html. Vimeo redirects their assets from player.vimeo.com to av.vimeo.com, which is rejected by AVFoundation and QTKit due to our setting a ForbidCrossSiteReference option when creating an AVAsset or QTMovie. Instead, we should just reject local->remote and remote->local and make our answer to hasSingleSecurityOrigin dynamic. When checking whether a given request has a single security origin, use a SecurityOrigin to check the host, port, and scheme. * WebCore.exp.in: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: (WebCore::MediaPlayerPrivateAVFoundation::assetURL): Added. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Exchange ForbidCrossSiteReference for ForbidRemoteReferenceToLocal and ForbidLocalReferenceToRemote (WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin): Check to see that the requested and resolved URLs have the same host and port. * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes): Exchange NoCrossSiteAttribute for NoRemoteToLocalSiteAttribute and NoLocalToRemoteSiteAttribute. (WebCore::MediaPlayerPrivateQTKit::hasSingleSecurityOrigin): Check to see that the requested and resolved URLs have the same host and port. * platform/mac/WebCoreSystemInterface.h: Added wkAVAssetResolvedURL. * platform/mac/WebCoreSystemInterface.mm: Ditto. 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87442. 2011-05-26 Jeff Miller <jeffm@apple.com> Reviewed by Steve Falkenburg. Fullscreen content is sometimes obscured by taskbar (which even covers up the "exit fullscreen" button) https://bugs.webkit.org/show_bug.cgi?id=61569 <rdar://problem/9454315> Normally, when the background fullscreen window is animated in, the Windows taskbar will be hidden, but this doesn't always work for some reason. Workaround this issue by setting the real fullscreen window to be a topmost window. * platform/graphics/win/FullScreenController.cpp: (FullScreenController::Private::fullscreenClientWndProc): Exit fullscreen when m_fullScreenWindow is deactivated. (FullScreenController::enterFullScreenRepaintCompleted): Make m_fullScreenWindow a topmost window before animating it in to ensure the taskbar is hidden. 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87335. 2011-05-25 Mark Rowe <mrowe@apple.com> Reviewed by Sam Weinig. <rdar://problem/9504058> Need some way to query user gesture state from injected bundle * WebCore.exp.in: Add an export that WebKit2 needs. 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87387. 2011-05-25 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. Always antialias borders, outlines and rules when scaling https://bugs.webkit.org/show_bug.cgi?id=61502 r84273 changed the behavior of drawLineForBoxSide() to never antialias by default. This actually disabled antialiasing in some circumstances where it used to be enabled, for example collapsed table border drawing. Fix by allowing antialiasing for collapsed table borders, column rules and span outlines when the context is scaled. Test: fast/borders/border-antialiasing.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintColumnRules): * rendering/RenderInline.cpp: (WebCore::RenderInline::paintOutline): (WebCore::RenderInline::paintOutlineForLine): * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paintCollapsedBorder): 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87524. 2011-05-27 Michael Saboff <msaboff@apple.com> Reviewed by David Hyatt. https://bugs.webkit.org/show_bug.cgi?id=61646 Duplicate Fonts Put in Font Cache on Mac Due to Duplicate CGFontRefs for Same Font Change the platformIsEqual to just compare the m_font members if either is not null. No tests added - functionality unchanged, fixing memory abandonment. * platform/graphics/cocoa/FontPlatformDataCocoa.mm: (WebCore::FontPlatformData::platformIsEqual): 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87361. 2011-05-25 James Simonsen <simonjam@chromium.org> Reviewed by Adam Barth. Add site-specific hack for zipcar.com with old versions of requirejs. https://bugs.webkit.org/show_bug.cgi?id=61321 Old versions of requirejs (< 0.15.0) try to load scripts in parallel but execute them in order. This used to work in webkit by setting a bogus script type (script/cache), then changing the type to a valid one when they wanted to execute it. This hack translates the behavior into the new API (by disabling forceAsync). * html/HTMLScriptElement.cpp: (WebCore::needsOldRequirejsQuirk): Added. (WebCore::HTMLScriptElement::insertedIntoDocument): If hack is needed, set a proper script type so script loads. If script isn't async, disable forceAsync so script executes in order. 2011-05-27 Mark Rowe <mrowe@apple.com> Merge r87244. 2011-05-24 Andy Estes <aestes@apple.com> Reviewed by Geoffrey Garen. REGRESSION (r70748): WebKit cannot play QuickTime movies on Mac OS X Wiki Server pages https://bugs.webkit.org/show_bug.cgi?id=61229 This site-specific hack maintains compatibility with Mac OS X Wiki Server, which embeds QuickTime movies using an object tag containing QuickTime's ActiveX classid. Treat this classid as valid only if OS X Server's unique 'generator' meta tag is present. Only apply this quirk if there is no fallback content, which ensures the quirk will disable itself if Wiki Server is updated to generate an alternate embed tag as fallback content. * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk): Return true if site-specific quirks are enabled, the object element has no fallback content, the classid attribute matches QuickTime's classid and the document has a 'generator' meta tag matching Mac OS X Web Services Server's unique generator string. (WebCore::HTMLObjectElement::hasValidClassId): Call shouldAllowQuickTimeClassIdQuirk() * html/HTMLObjectElement.h: 2011-05-24 Sam Weinig <sam@webkit.org> Reviewed by Beth Dakin. Can't scroll scaled page that has overflow:hidden on its root <rdar://problem/9029189> https://bugs.webkit.org/show_bug.cgi?id=61339 Test: fast/events/scroll-in-scaled-page-with-overflow-hidden.html * page/FrameView.cpp: (WebCore::FrameView::applyOverflowToViewport): Scrollbars should be enabled for the viewport when scaled, even if overflow:hidden is specified. 2011-05-24 Adam Roben <aroben@apple.com> Leopard build fix * bridge/runtime_root.cpp: Added a missing #include. 2011-05-24 Jian Li <jianli@chromium.org> Merged r87179. 2011-05-24 Adam Roben <aroben@apple.com> Invalidate RuntimeObjects when they are finalized This will cause the underlying NPObject to be released at finalization time, rather than at destruction time (which is unpredictable and could occur after the plugin has been unloaded). Test: plugins/npobject-js-wrapper-destroyed-after-plugin-unload.html Fixes <http://webkit.org/b/61317> <rdar://problem/9489829> Crash in _NPN_DeallocateObject when reloading yahoo.com webarchive in WebKit1 Reviewed by Oliver Hunt. * bridge/runtime_object.cpp: (JSC::Bindings::RuntimeObject::~RuntimeObject): Assert that we've already been invalidated. * bridge/runtime_root.cpp: (JSC::Bindings::RootObject::invalidate): (JSC::Bindings::RootObject::addRuntimeObject): Updated for m_runtimeObjects type change. (JSC::Bindings::RootObject::finalize): Added. Invalidates the RuntimeObject and removes it from the map. * bridge/runtime_root.h: Now inherits from WeakHandleOwner. Changed m_runtimeObjects from a WeakGCMap to a HashMap of JSC::Weak objects so that we will be notified when the RuntimeObjects are finalized. 2011-05-24 Lucas Forschler <lforschler@apple.com> Merged r87102. 2011-05-20 Jeremy Noble <jer.noble@apple.com> Reviewed by Darin Adler. Video looks squished when animating to full screen. https://bugs.webkit.org/show_bug.cgi?id=61220 No new tests, because DumpRenderTree does not currently "animate" the full-screen transition. There are three issues animating video content to full screen which this patch is meant to address: 1) The animation scales between the client sizes of the element before and after full-screen. Because these sizes have different aspect ratios, the video appears "squished" for part of the animation. Instead, we will animate between the content box sizes before and after full screen which, in the case of video now and object-fit content in the future, will have the same aspect ratio before and after full screen. 2) Now that we are animating the full-screen video element's content box, the black letterbox bars appear above and below the video (depending on the video's aspect ratio) as soon as the animation begins. This is extremely jarring, so set the background color to clear. The full-screen renderer's background color will serve the same purpose (providing the letterbox background) once the animation completes. 3) Now that the letterbox color is gone, the full screen controls can appear to float in thin air beneath the video (again, depending on aspect ratio) during the animation, so to avoid that effect and to make the animation consistent with the old webkitenterfullscreen() animation, we will hide the controls during the animation by adding a new CSS pseudo class -webkit-animating-full-screen-transition. Added a new css pseudo-class: -webkit-animating-full-screen. During the transition animation, this pseudo-class will be applied to the current full-screen element. Styles have been added to fullscreenQuickTime.css to hide the video element's built-in controller during the full-screen animation. To accomplish this, the ivar tracking whether the full-screen animation is taking place has been moved from the RenderFullScreen renderer, to the current full-screen Document. Because changing isAnimatingFullScreen causes style changes, make sure to call recalcStyle on the full-screen element after changing. This extra transition caused assertions in HTMLFormControlElement::updateFromElementCallback. A full-screen media control's renderer is disabled during the style recalculation when exiting full screen. This assertion was exposed by the extra recalcStyle() issued during the exit transition, and has been removed. * WebCore.exp.in: * css/CSSSelector.cpp: (WebCore::CSSSelector::pseudoId): Add support for new pseudo class -webkit-animate-full-screen-transition. (WebCore::nameToPseudoTypeMap): Ditto. (WebCore::CSSSelector::extractPseudoType): Ditto. * css/CSSSelector.h: * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Ditto. * css/fullscreen.css: (video:-webkit-full-screen): Set full screen video background color to clear. * css/fullscreenQuickTime.css: (video:-webkit-full-screen::-webkit-media-controls-panel): Set a default opacity transition. (video:-webkit-animating-full-screen::-webkit-media-controls-panel): Set the opacity to 0 and disable the transition. * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::webkitWillEnterFullScreenForElement): Call our new setAnimatingFullScreen function. (WebCore::Document::webkitDidEnterFullScreenForElement): Ditto. (WebCore::Document::webkitWillExitFullScreenForElement): Ditto. (WebCore::Document::webkitDidExitFullScreenForElement): Ditto. (WebCore::Document::isAnimatingFullScreen): Moved here from RenderFullScreen. (WebCore::Document::setAnimatingFullScreen): Ditto. * dom/Document.h: * html/HTMLFormControlElement.cpp: (WebCore::updateFromElementCallback): Use the Document's isAnimatingFullScreen function. * page/FrameView.cpp: (WebCore::isDocumentRunningFullScreenAnimation): Ditto. * rendering/RenderFullScreen.cpp: * rendering/RenderFullScreen.h: * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Ditto. (WebCore::RenderLayerCompositor::requiresCompositingForFullScreen): Ditto. * rendering/style/RenderStyleConstants.h: 2011-05-24 Lucas Forschler <lforschler@apple.com> Merged r87083. 2011-05-23 Abhishek Arya <inferno@chromium.org> Reviewed by Simon Fraser. Terminate css color parsing on integers which are not followed by a terminator. https://bugs.webkit.org/show_bug.cgi?id=61293 Test: fast/css/parse-color-int-or-percent-crash.html * css/CSSParser.cpp: (WebCore::parseColorIntOrPercentage): 2011-05-24 Lucas Forschler <lforschler@apple.com> Merged r87026. 2011-05-21 Dan Bernstein <mitz@apple.com> Reviewed by Darin Adler. <rdar://problem/9479926> REGRESSION (r82144): Icon overlaps text in Twitter message dialog https://bugs.webkit.org/show_bug.cgi?id=61241 Test: fast/block/positioning/start-ignoring-before.html * rendering/RenderBlockLineLayout.cpp: (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes): Added a boolean parameter saying whether to merge the first trailing space with the line break. (WebCore::RenderBlock::LineBreaker::nextLineBreak): When adding a midpoint behind the current character, account for trailing positioned objects that occurred after the midpoint by calling updateMidpointsForTrailingBoxes(), which adds midpoints for them. 2011-05-24 Lucas Forschler <lforschler@apple.com> Merged r87009. 2011-05-20 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. Allow ShadowBlur to do tiling when the context is scaled https://bugs.webkit.org/show_bug.cgi?id=61232 If the GraphicsContext is scaled or rotated by a multiple of 90deg, have ShadowBlur use the tiling code path, to avoid blurring large areas on pages like cracked.com when the context is scaled. * platform/graphics/ShadowBlur.cpp: (WebCore::ShadowBlur::drawRectShadow): Call preservesAxisAlignment() to decide when to not use tiling. (WebCore::ShadowBlur::drawInsetShadow): Ditto. (WebCore::ShadowBlur::drawLayerPieces): Round to device pixels when drawing tiles to avoid pixel cracks in scaled contexts. * platform/graphics/transforms/AffineTransform.h: (WebCore::AffineTransform::preservesAxisAlignment): Return true if there is the matrix contains a transform that results in axis alignment (no rotation or skew, or rotations which are multiples of 90deg). 2011-05-24 Steve Falkenburg <sfalken@apple.com> Reviewed by Adam Roben. Disable features on safari-534-branch. <rdar://problem/9261347> * Configurations/FeatureDefines.xcconfig: 2011-05-24 Lucas Forschler <lforschler@apple.com> Merged r86995. 2011-05-20 Andy Estes <aestes@apple.com> Reviewed by Darin Adler. WebView loses firstResponder status when entering full-screen mode. https://bugs.webkit.org/show_bug.cgi?id=61153 No test possible via DRT. Add a manual test instead. * manual-tests/full-screen-keypress.html: Added. 2011-05-24 Lucas Forschler <lforschler@apple.com> Merged r86992. 2011-05-20 Jeremy Noble <jer.noble@apple.com> Reviewed by Maciej Stachowiak. WebKit2: Exit full screen mode if the WebProcess crashes. https://bugs.webkit.org/show_bug.cgi?id=61151 * platform/graphics/win/FullScreenController.h: * platform/graphics/win/FullScreenController.cpp: (FullScreenController::close): Added. Close the full-screen window without animation if called. 2011-05-24 Lucas Forschler <lforschler@apple.com> Merged r87022. 2011-05-21 Jeremy Noble <jer.noble@apple.com> Reviewed by Eric Carlson. WebKit2: fix failing fullscreen/full-screen-remove* tests. https://bugs.webkit.org/show_bug.cgi?id=61027 * dom/Document.cpp: (WebCore::Document::fullScreenChangeDelayTimerFired): dispatchEvent can be synchronous, so make sure to check whether the current element is in the DOM before dispatching. 2011-05-22 Lucas Forschler <lforschler@apple.com> Merge r86956. 2011-05-20 Jer Noble <jer.noble@apple.com> Reviewed by Maciej Stachowiak. Win: non-full-screen content is briefly seen when entering full-screen mode (and vice versa) https://bugs.webkit.org/show_bug.cgi?id=61108 Instead of repainting the full- and non-full-screen windows in WebCore, delegate that responsibility to the FullScreenControllerClient. Because the repaint operation may be asynchronous, add a new method for clients to use to indicate repainting has completed. * platform/graphics/win/FullScreenController.cpp: (FullScreenController::Private::Private): Added new ivars. (FullScreenController::enterFullScreen): Split into two functions (pre-and post repaint) (FullScreenController::enterFullScreenRepaintCompleted): Ditto. (FullScreenController::exitFullScreen): Ditto. (FullScreenController::exitFullScreenRepaintCompleted): Ditto. (FullScreenController::repaintCompleted): Call the appropriated repaint completed function. * platform/graphics/win/FullScreenController.h: * platform/graphics/win/FullScreenControllerClient.h: 2011-05-22 Lucas Forschler <lforschler@apple.com> Merge r86924. 2011-05-19 Jer Noble <jer.noble@apple.com> Reviewed by Maciej Stachowiak. WebKit2: Flashing when entering and exiting full screen mode https://bugs.webkit.org/show_bug.cgi?id=56957 Guard against the parameter of setAnimating() matching the ivar value it's setting, thus avoiding tearing down the renderer's layer backing. * rendering/RenderFullScreen.cpp: (RenderFullScreen::setAnimating): 2011-05-22 Lucas Forschler <lforschler@apple.com> Merge r86904. 2011-05-18 Jeremy Noble <jer.noble@apple.com> Reviewed by Darin Adler. Poster is not shown in Safari for video element with no playable source elements. https://bugs.webkit.org/show_bug.cgi?id=61109 Test: media/video-src-invalid-poster.html In the case where no video sources are playable, update the display state and renderer, allowing the poster image to display. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::waitForSourceChange): 2011-05-19 Lucas Forschler <lforschler@apple.com Merged r86852. 2011-05-19 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Darin Adler. REGRESSION (r83322): Many crashes in Mail.app in WebCore::Node::nodeIndex https://bugs.webkit.org/show_bug.cgi?id=61012 The crash was caused by ReplaceSelectionCommand's inserting content into a middle of the paragraph being moved when the insertion position's container node is the node to split to. Fixed the crash by not changing the insertion position in such a case. Unfortunately, this fix caused markup to bloat in some tests but we'll take this regression since it's much better than crashing. Test: editing/pasteboard/paste-after-inline-style-element.html * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): 2011-05-19 Lucas Forschler <lforschler@apple.com Merged r86827. 2011-05-19 Emil A Eklund <eae@chromium.org> Reviewed by Alexey Proskuryakov. REGRESSION (r80808): Multiple <select> - Selection reset to first element from multiple selected ones https://bugs.webkit.org/show_bug.cgi?id=60986 * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::setMultiple): Don't restore selection if the multiple attribute hasn't changed. 2011-05-19 Lucas Forschler <lforschler@apple.com Merged r86785. 2011-05-18 Oliver Hunt <oliver@apple.com> Reviewed by Sam Weinig. JSGlobalObject and some others do GC allocation during initialization, which can cause heap corruption https://bugs.webkit.org/show_bug.cgi?id=61090 Rather than having Constructor objects create their structure as part of initialisation, we now pass their expected structure in as an argument. This required fixing the few custom Constructors and the code generator. * bindings/js/JSAudioConstructor.cpp: (WebCore::JSAudioConstructor::JSAudioConstructor): * bindings/js/JSAudioConstructor.h: * bindings/js/JSDOMGlobalObject.h: (WebCore::getDOMConstructor): Pass the Constructor objects structure in as an argument * bindings/js/JSImageConstructor.cpp: (WebCore::JSImageConstructor::JSImageConstructor): * bindings/js/JSImageConstructor.h: * bindings/js/JSOptionConstructor.cpp: (WebCore::JSOptionConstructor::JSOptionConstructor): * bindings/js/JSOptionConstructor.h: * bindings/scripts/CodeGeneratorJS.pm: 2011-05-19 Lucas Forschler <lforschler@apple.com Merged r86748. 2011-05-18 Abhishek Arya <inferno@chromium.org> Reviewed by Dirk Schulze. When SMIL element is getting removed, make sure to remove it from target's animation elements list. https://bugs.webkit.org/show_bug.cgi?id=60980 Test: svg/animations/smil-element-not-removed-crash.html * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::~SVGSMILElement): 2011-05-19 Lucas Forschler <lforschler@apple.com Merged r86806. 2011-05-18 Chris Fleizach <cfleizach@apple.com> Reviewed by Maciej Stachowiak. WK2: VoiceOver cannot move focus into a web area programmatically https://bugs.webkit.org/show_bug.cgi?id=60661 Accessibility code relies on the ability to bring focus to the containing widget view. In WK2, that message needs to be propagated to the UI process. * page/ChromeClient.h: (WebCore::ChromeClient::makeFirstResponder): * page/mac/ChromeMac.mm: (WebCore::Chrome::focusNSView): * platform/mac/WidgetMac.mm: (WebCore::Widget::setFocus): 2011-05-19 Lucas Forschler <lforschler@apple.com Merged r86793. 2011-05-17 Timothy Hatcher <timothy@apple.com> Update the the context menu to reflect the system search provider on Mac. <rdar://problem/9198419> Reviewed by Sam Weinig. * English.lproj/Localizable.strings: Updated. * Source/WebCore/WebCore.exp.in: Added _wkCopyDefaultSearchProviderDisplayName. * platform/DefaultLocalizationStrategy.cpp: (WebCore::DefaultLocalizationStrategy::contextMenuItemTagSearchWeb): Use wkCopyDefaultSearchProviderDisplayName to create the string. * platform/mac/WebCoreSystemInterface.h: Added wkCopyDefaultSearchProviderDisplayName. * platform/mac/WebCoreSystemInterface.mm: Ditto. 2011-05-19 Lucas Forschler <lforschler@apple.com Merged r86781. 2011-05-18 Abhishek Arya <inferno@chromium.org> Reviewed by Beth Dakin. Remove removeChild on table caption since destroy call already does that. https://bugs.webkit.org/show_bug.cgi?id=61083 Test: fast/table/table-captions-child-visible-crash.html * rendering/RenderTable.cpp: (WebCore::RenderTable::recalcCaption): 2011-05-19 Lucas Forschler <lforschler@apple.com Merged r86741. 2011-05-16 Jeremy Noble <jer.noble@apple.com> Reviewed by Darin Adler. Disable keyboard input (with exceptions) in full-screen mode. https://bugs.webkit.org/show_bug.cgi?id=60943 Tests: fullscreen/full-screen-keyboard-disabled.html fullscreen/full-screen-keyboard-enabled.html * page/EventHandler.cpp: (WebCore::EventHandler::isKeyEventAllowedInFullScreen): Added. Implements the list of allowed keyboard events in the proposed API. (WebCore::EventHandler::keyEvent): Discard events which are not allowed in full-screen mode. * page/EventHandler.h: 2011-05-19 Lucas Forschler <lforschler@apple.com Merged r86737. 2011-05-17 Jeremy Noble <jer.noble@apple.com> Reviewed by Darin Adler. Removing a full-screen element or ancestor from the DOM should trigger exiting full-screen mode. https://bugs.webkit.org/show_bug.cgi?id=60997 Tests: fullscreen/full-screen-remove-ancestor.html fullscreen/full-screen-remove-children.html fullscreen/full-screen-remove.html * dom/Document.cpp: (WebCore::Document::fullScreenChangeDelayTimerFired): If the target node was removed from the document make sure to message the documentElement() as well. (WebCore::Document::fullScreenElementRemoved): Cancel full screen mode. 2011-05-17 Cris Neckar <cdn@chromium.org> Reviewed by Adam Barth. Clear the image from ImageLoader rather than clearing the ImageLoader in HTMLObjectElement::renderFallbackContent. https://bugs.webkit.org/show_bug.cgi?id=61005 Test: http/tests/loading/nested_bad_objects.php * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::renderFallbackContent): 2011-05-17 Chris Rogers <crogers@google.com> Reviewed by Kenneth Russell. Make sure that AudioNode gets re-enabled after having been disconnected and re-connected. https://bugs.webkit.org/show_bug.cgi?id=60995 No new tests since audio API is not yet implemented. * webaudio/AudioNode.cpp: (WebCore::AudioNode::ref): 2011-05-17 Brady Eidson <beidson@apple.com> Reviewed by Darin Adler. <rdar://problem/9366728> and https://webkit.org/b/60796 Crash when code inside a ResourceLoadDelegate method calls [WebView stopLoading:] Break up ResourceLoader::didCancel() into willCancel() and didCancel(), and making them pure virtual. This change has the following benefits: - Managing ResourceLoader state can be in the base class; Subclasses no longer need to protect themselves, check these variables as often, or ASSERT them. - ResourceLoader subclasses no longer have to call the base class ::didCancel - ResourceLoader::cancel becomes more capable of handling reentrancy with the design that the cancellation is completed inside the last call. No new tests - No change in behavior for previous tests, and new test would require API usage outside the scope of DumpRenderTree. * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::ResourceLoader): (WebCore::ResourceLoader::cancel): Moved from ResourceLoader::didCancel, and does all of that same work except it interposes calls to "willCancel" and "didCancel" as required to maintain the same behavior. * loader/ResourceLoader.h: Added pure virtual didCancel() and willCancel(). Split-up into willCancel() and didCancel(), based on when the base class didCancel() used to be called: * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::willCancel): (WebCore::MainResourceLoader::didCancel): * loader/MainResourceLoader.h: Split-up into willCancel() and didCancel(), based on when the "reached terminal state" flag used to be checked: * loader/NetscapePlugInStreamLoader.cpp: (WebCore::NetscapePlugInStreamLoader::didReceiveResponse): Call the entry point cancel() instead of the old didCancel() (WebCore::NetscapePlugInStreamLoader::willCancel): (WebCore::NetscapePlugInStreamLoader::didCancel): * loader/NetscapePlugInStreamLoader.h: Split-up into willCancel() and didCancel(), based on when the "reached terminal state" flag used to be checked: * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::willCancel): (WebCore::SubresourceLoader::didCancel): * loader/SubresourceLoader.h: 2011-05-17 Nat Duca <nduca@chromium.org> Reviewed by James Robinson. [chromium] Always set layerRenderer, even on non-drawn-layers https://bugs.webkit.org/show_bug.cgi?id=60977 This is a defensive fixe for crbug.com/82799, in which a RenderLayer could not prepare itself because its owning layerImpl had no associated layerRenderer. The underlying issue is that we sometimes put renderSurfaces onto the list that won't actually render. For now, the priority is to reduce fragility so that invisible layers dont lead to crashers. We do this by being more agressive about binding CCLayerImpls to the LayerRenderer, doing it all the time rather than only when we think it will get rendered. * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::paintLayerContents): 2011-05-17 Anders Carlsson <andersca@apple.com> Fix the clang build. * rendering/RenderText.h: (WebCore::RenderText::nodeAtPoint): nodeAtPoint should take a const IntPoint reference. 2011-05-17 Erik Arvidsson <arv@chromium.org> Reviewed by Ryosuke Niwa. document.activeElement doesn't point to the focused frame https://bugs.webkit.org/show_bug.cgi?id=49509 This makes us match IE and Firefox and there is an ongoing WHATWG discussion to make the spec match this. Test: fast/dom/HTMLDocument/active-element-frames.html * html/HTMLDocument.cpp: (WebCore::HTMLDocument::activeElement): Walk up the frame tree from the focusedFrame to find the active frame if any. 2011-05-17 Emil A Eklund <eae@chromium.org> Reviewed by Eric Seidel. Change nodeAtPoint to take IntPoint instead of int x, int y https://bugs.webkit.org/show_bug.cgi?id=60663 Change nodeAtPoint to take a single const IntPoint& instead of a pair of ints for the location. Covered by existing tests. * platform/graphics/FloatPoint.h: (WebCore::flooredIntPoint): * rendering/EllipsisBox.cpp: (WebCore::EllipsisBox::nodeAtPoint): * rendering/EllipsisBox.h: * rendering/InlineBox.cpp: (WebCore::InlineBox::nodeAtPoint): * rendering/InlineBox.h: * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::nodeAtPoint): * rendering/InlineFlowBox.h: * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::nodeAtPoint): * rendering/InlineTextBox.h: * rendering/RenderBlock.cpp: (WebCore::RenderBlock::nodeAtPoint): (WebCore::RenderBlock::hitTestContents): * rendering/RenderBlock.h: * rendering/RenderBox.cpp: (WebCore::RenderBox::nodeAtPoint): * rendering/RenderBox.h: * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::nodeAtPoint): * rendering/RenderFrameSet.h: * rendering/RenderImage.cpp: (WebCore::RenderImage::nodeAtPoint): * rendering/RenderImage.h: * rendering/RenderInline.cpp: (WebCore::RenderInline::nodeAtPoint): * rendering/RenderInline.h: * rendering/RenderLineBoxList.cpp: (WebCore::RenderLineBoxList::hitTest): * rendering/RenderListBox.cpp: (WebCore::RenderListBox::nodeAtPoint): * rendering/RenderListBox.h: * rendering/RenderObject.cpp: (WebCore::RenderObject::hitTest): (WebCore::RenderObject::nodeAtPoint): * rendering/RenderObject.h: * rendering/RenderTable.cpp: (WebCore::RenderTable::nodeAtPoint): * rendering/RenderTable.h: * rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::nodeAtPoint): * rendering/RenderTableRow.h: * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::nodeAtPoint): * rendering/RenderTableSection.h: * rendering/RenderText.h: (WebCore::RenderText::nodeAtPoint): * rendering/RenderTextControlMultiLine.cpp: (WebCore::RenderTextControlMultiLine::nodeAtPoint): * rendering/RenderTextControlMultiLine.h: * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::nodeAtPoint): * rendering/RenderTextControlSingleLine.h: * rendering/RenderWidget.cpp: (WebCore::RenderWidget::nodeAtPoint): * rendering/RenderWidget.h: * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::nodeAtPoint): * rendering/RootInlineBox.h: * rendering/svg/RenderSVGForeignObject.cpp: (WebCore::RenderSVGForeignObject::nodeAtFloatPoint): (WebCore::RenderSVGForeignObject::nodeAtPoint): * rendering/svg/RenderSVGForeignObject.h: * rendering/svg/RenderSVGModelObject.cpp: (WebCore::RenderSVGModelObject::nodeAtPoint): * rendering/svg/RenderSVGModelObject.h: * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::nodeAtPoint): * rendering/svg/RenderSVGRoot.h: * rendering/svg/RenderSVGText.cpp: (WebCore::RenderSVGText::nodeAtFloatPoint): (WebCore::RenderSVGText::nodeAtPoint): * rendering/svg/RenderSVGText.h: 2011-05-17 Andrew Wilson <atwilson@chromium.org> Unreviewed, rolling out r86647. http://trac.webkit.org/changeset/86647 https://bugs.webkit.org/show_bug.cgi?id=56814 Broke tests downstream in Chromium * dom/DocumentMarker.h: (WebCore::DocumentMarker::operator==): (WebCore::DocumentMarker::operator!=): * dom/DocumentMarkerController.cpp: (WebCore::DocumentMarkerController::addMarker): (WebCore::DocumentMarkerController::copyMarkers): (WebCore::DocumentMarkerController::removeMarkers): (WebCore::DocumentMarkerController::markerContainingPoint): (WebCore::DocumentMarkerController::markersInRange): (WebCore::DocumentMarkerController::renderedRectsForMarkers): (WebCore::DocumentMarkerController::removeMarkersFromList): (WebCore::DocumentMarkerController::repaintMarkers): (WebCore::DocumentMarkerController::shiftMarkers): (WebCore::DocumentMarkerController::setMarkersActive): (WebCore::DocumentMarkerController::hasMarkers): (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange): (WebCore::DocumentMarkerController::showMarkers): * dom/DocumentMarkerController.h: * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection): * editing/Editor.cpp: (WebCore::Editor::selectionStartHasMarkerFor): * editing/SpellingCorrectionController.cpp: (WebCore::SpellingCorrectionController::respondToChangedSelection): * editing/SpellingCorrectionController.h: (WebCore::SpellingCorrectionController::shouldStartTimerFor): * rendering/HitTestResult.cpp: (WebCore::HitTestResult::spellingToolTip): (WebCore::HitTestResult::replacedString): * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): (WebCore::InlineTextBox::paintTextMatchMarker): (WebCore::InlineTextBox::computeRectForReplacementMarker): (WebCore::InlineTextBox::paintDocumentMarkers): * rendering/svg/SVGInlineFlowBox.cpp: (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer): 2011-05-17 Andrew Wilson <atwilson@chromium.org> Unreviewed, rolling out r86656. http://trac.webkit.org/changeset/86656 Broke tests downstream in Chromium * editing/SpellingCorrectionController.cpp: (WebCore::markersHaveIdenticalDescription): (WebCore::SpellingCorrectionController::recordSpellcheckerResponseForModifiedCorrection): (WebCore::SpellingCorrectionController::processMarkersOnTextToBeReplacedByResult): 2011-05-17 Yufeng Shen <miletus@chromium.org> Reviewed by Darin Fisher. Make WebKit expose extra touch information https://bugs.webkit.org/show_bug.cgi?id=59030 * dom/Document.cpp: (WebCore::Document::createTouch): * dom/Document.h: * dom/Document.idl: * dom/Touch.cpp: (WebCore::Touch::Touch): * dom/Touch.h: (WebCore::Touch::create): (WebCore::Touch::webkitRadiusX): (WebCore::Touch::webkitRadiusY): (WebCore::Touch::webkitRotationAngle): * dom/Touch.idl: * page/EventHandler.cpp: (WebCore::EventHandler::handleTouchEvent): * platform/PlatformTouchPoint.h: (WebCore::PlatformTouchPoint::radiusX): (WebCore::PlatformTouchPoint::radiusY): (WebCore::PlatformTouchPoint::rotationAngle): 2011-05-17 Eric Seidel <eric@webkit.org> Reviewed by Ryosuke Niwa. Add a LineLayoutState object to hold global state during line layout https://bugs.webkit.org/show_bug.cgi?id=60113 Like LayoutState for layout(), LineLayoutState keeps track of global information during an entire linebox tree layout pass (aka layoutInlineChildren). For now it just holds isFullLayout and the logicalRepaintTop/Bottom. It's possible we should hold the useRepaintBounds bool as well as the startLine and endLine RootInlineBox pointers. No change in behavior, thus no tests. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlock): * rendering/RenderBlock.h: * rendering/RenderBlockLineLayout.cpp: (WebCore::LineLayoutState::LineLayoutState): (WebCore::LineLayoutState::markForFullLayout): (WebCore::LineLayoutState::isFullLayout): (WebCore::LineLayoutState::setRepaintRange): (WebCore::LineLayoutState::updateRepaintRangeFromBox): (WebCore::LineLayoutState::startLine): (WebCore::LineLayoutState::endLine): (WebCore::deleteLineRange): (WebCore::RenderBlock::layoutRunsAndFloats): (WebCore::RenderBlock::layoutInlineChildren): (WebCore::RenderBlock::checkFloatsInCleanLine): (WebCore::RenderBlock::determineStartPosition): (WebCore::RenderBlock::determineEndPosition): (WebCore::RenderBlock::matchedEndLine): 2011-05-17 Andreas Kling <kling@webkit.org> Reviewed by Kenneth Rohde Christiansen. Area element doesn't update region when dynamically altered. https://bugs.webkit.org/show_bug.cgi?id=54636 Recompute the clickable region after the "shape" or "coords" attribute of an area element is changed. Test: fast/images/imagemap-dynamic-area-updates.html * html/HTMLAreaElement.cpp: (WebCore::HTMLAreaElement::parseMappedAttribute): (WebCore::HTMLAreaElement::invalidateCachedRegion): * html/HTMLAreaElement.h: 2011-05-09 Luiz Agostini <luiz.agostini@openbossa.org> Reviewed by Kenneth Rohde Christiansen. [Qt] Redirection of HTTP POST (3xx) incorrectly includes original POST data https://bugs.webkit.org/show_bug.cgi?id=60440 Makes sure that the HTTP headers Content-type and Content-length are not included in the requests that do not have any content. Tests: http/tests/navigation/post-301-response.html http/tests/navigation/post-302-response.html http/tests/navigation/post-303-response.html http/tests/navigation/post-307-response.html * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandler::sendNetworkRequest): 2011-05-17 Andreas Kling <kling@webkit.org> Reviewed by Benjamin Poulain. [Qt] GraphicsLayerQtImpl: Remove an unused variable. * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::GraphicsLayerQtImpl::paint): 2011-05-17 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: navigating from elements panel does not show source view. https://bugs.webkit.org/show_bug.cgi?id=60970 * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype.highlightLine): (WebInspector.TextEditorChunkedPanel.prototype.makeLineAChunk): 2011-05-17 Sam Magnuson <smagnuson@netflix.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Node that have both an opacity and a transform animation on them seem not to fire. https://bugs.webkit.org/show_bug.cgi?id=40841 Test: compositing/animation/busy-indicator.html * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::GraphicsLayerQtImpl::recache): (WebCore::GraphicsLayerQtImpl::flushChanges): (WebCore::GraphicsLayerQt::setContentsToImage): (WebCore::TransformAnimationQt::getAnimatedProperty): (WebCore::OpacityAnimationQt::getAnimatedProperty): (WebCore::GraphicsLayerQt::addAnimation): 2011-05-17 Grace Kloba <klobag@chromium.org> Reviewed by Kenneth Russell. GraphicsContext3DSkia needs to honor the platform Sk_x_SHIFT value instead of assuming BGRA color https://bugs.webkit.org/show_bug.cgi?id=60965 * platform/graphics/skia/GraphicsContext3DSkia.cpp: (WebCore::GraphicsContext3D::getImageData): 2011-05-17 Alexander Pavlov <apavlov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: Enter/Tab after editing a CSS property does not invoke editor on next field https://bugs.webkit.org/show_bug.cgi?id=60962 * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype.updateStyles): 2011-05-17 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r86660. http://trac.webkit.org/changeset/86660 https://bugs.webkit.org/show_bug.cgi?id=60958 broke search in console panel (Requested by podivilov on #webkit). * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.show): (WebInspector.ConsoleView.prototype.afterShow): (WebInspector.ConsoleView.prototype.hide): (WebInspector.ConsoleView.prototype.addMessage): (WebInspector.ConsoleView.prototype.clearMessages): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel): * inspector/front-end/Drawer.js: (WebInspector.Drawer.prototype.set visibleView): (WebInspector.Drawer.prototype.show.animationFinished): (WebInspector.Drawer.prototype.show): * inspector/front-end/Panel.js: (WebInspector.Panel): * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel): * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector._createPanels): 2011-05-17 Alexis Menard <alexis.menard@openbossa.org> Unreviewed warning fix introduced by r86377. * rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::paintMask): 2011-05-17 Yuta Kitamura <yutak@chromium.org> Reviewed by Kent Tamura. WebSocket: Uninline methods in ThreadableWebSocketChannelClientWrapper https://bugs.webkit.org/show_bug.cgi?id=60945 Add ThreadableWebSocketChannelClientWrapper.cpp. Uninline methods in this class and move these definitions into .cpp in order to allow further modifications in this class. No new tests, as this is just refactoring. * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * websockets/ThreadableWebSocketChannelClientWrapper.cpp: Added. (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper): (WebCore::ThreadableWebSocketChannelClientWrapper::create): (WebCore::ThreadableWebSocketChannelClientWrapper::clearSyncMethodDone): (WebCore::ThreadableWebSocketChannelClientWrapper::setSyncMethodDone): (WebCore::ThreadableWebSocketChannelClientWrapper::syncMethodDone): (WebCore::ThreadableWebSocketChannelClientWrapper::sent): (WebCore::ThreadableWebSocketChannelClientWrapper::setSent): (WebCore::ThreadableWebSocketChannelClientWrapper::bufferedAmount): (WebCore::ThreadableWebSocketChannelClientWrapper::setBufferedAmount): (WebCore::ThreadableWebSocketChannelClientWrapper::clearClient): (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect): (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage): (WebCore::ThreadableWebSocketChannelClientWrapper::didClose): (WebCore::ThreadableWebSocketChannelClientWrapper::suspend): (WebCore::ThreadableWebSocketChannelClientWrapper::resume): (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingEvents): * websockets/ThreadableWebSocketChannelClientWrapper.h: 2011-05-17 Andreas Kling <andreas.kling@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Support shadowed text in fast font path. https://bugs.webkit.org/show_bug.cgi?id=60462 * platform/graphics/Font.cpp: (WebCore::Font::drawText): Remove complex path shortcut for shadowed text. * platform/graphics/qt/FontQt.cpp: (WebCore::Font::drawGlyphs): Paint shadows for simple text. 2011-05-17 Andreas Kling <kling@webkit.org> Reviewed by Kenneth Rohde Christiansen. [Qt] Construct GraphicsLayerQtImpl::State with correct values. https://bugs.webkit.org/show_bug.cgi?id=60902 The GraphicsLayerQtImpl initial state should match the initial values of the corresponding GraphicsLayer flags. * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::GraphicsLayerQtImpl::State::State): 2011-05-12 Hans Wennborg <hans@chromium.org> Reviewed by Steve Block. IndexedDB: Index population should ignore records without key for index https://bugs.webkit.org/show_bug.cgi?id=60697 When populating a new index, records which do not have a key on the index's key path should be ignored. * storage/IDBObjectStoreBackendImpl.cpp: 2011-05-17 Young Han Lee <joybro@company100.net> Reviewed by Csaba Osztrogonác. [Texmap][Qt] Enable strict PassOwnPtr for Qt with texmap enabled. https://bugs.webkit.org/show_bug.cgi?id=60947 No new tests. Build fix. * platform/graphics/qt/TextureMapperQt.cpp: (WebCore::TextureMapper::create): * platform/graphics/qt/TextureMapperQt.h: (WebCore::TextureMapperQt::create): * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: (WebCore::GraphicsLayer::create): 2011-05-17 Alexander Pavlov <apavlov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: Increment/decrement of very big CSS numeric values results in invalid CSS https://bugs.webkit.org/show_bug.cgi?id=60890 * inspector/front-end/MetricsSidebarPane.js: (WebInspector.MetricsSidebarPane.prototype._handleKeyDown): * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylesSidebarPane.alteredFloatNumber): (WebInspector.StylePropertyTreeElement.prototype): 2011-05-17 Pavel Podivilov <podivilov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: merge ConsoleView into ConsolePanel. https://bugs.webkit.org/show_bug.cgi?id=54670 Console view in drawer looks exactly the same as console panel. Merging ConsoleView and ConsolePanel together will allow us to reuse panel's functionality (e.g. resizable sidebar) even when console is docked. * inspector/front-end/ConsoleView.js: (WebInspector.ConsolePanel.prototype.get toolbarItemLabel): (WebInspector.ConsolePanel.prototype.show): (WebInspector.ConsolePanel.prototype.hide): (WebInspector.ConsolePanel.prototype.showInDrawer): (WebInspector.ConsolePanel.prototype.afterShowInDrawer): (WebInspector.ConsolePanel.prototype.hideInDrawer): (WebInspector.ConsolePanel.prototype.addMessage): (WebInspector.ConsolePanel.prototype.clearMessages): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel): * inspector/front-end/Drawer.js: (WebInspector.Drawer.prototype.set visibleView): (WebInspector.Drawer.prototype.show.animationFinished): (WebInspector.Drawer.prototype.show): * inspector/front-end/Panel.js: (WebInspector.Panel): * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel): * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector._createPanels): 2011-05-16 Yuta Kitamura <yutak@chromium.org> Reviewed by Kent Tamura. WebSocket: WebSocketHandshake prints a carriage return to console https://bugs.webkit.org/show_bug.cgi?id=60880 * websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::readStatusLine): WebSocketHandshake should not print a carriage return to console. To fix this, we first check whether the status line ends with CRLF. After that, we can print the first (lineLength - 2) characters of the status line which do not contain a carriage return. 2011-05-16 MORITA Hajime <morrita@google.com> Unreviewed build fix for r86647, which broke SUPPORT_AUTOCORRECTION_PANEL. * editing/SpellingCorrectionController.cpp: (WebCore::markersHaveIdenticalDescription): (WebCore::SpellingCorrectionController::recordSpellcheckerResponseForModifiedCorrection): (WebCore::SpellingCorrectionController::processMarkersOnTextToBeReplacedByResult): 2011-05-16 Kent Tamura <tkent@chromium.org> Fix Leopard build. * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::stepUpFromRenderer): Use double instead of int. 2011-05-16 James Robinson <jamesr@chromium.org> Reviewed by Kenneth Russell. [chromium] Decouple LayerChromium/CCLayerImpl trees https://bugs.webkit.org/show_bug.cgi?id=58830 Makes the CCLayerImpl tree self-hosting and provides an explicit step to synchronize the LayerChromium tree to the CCLayerImpl tree. Tested by compositing/ layout tests and by unit tests in WebKit/chromium. * WebCore.gypi: * platform/graphics/chromium/CanvasLayerChromium.cpp: (WebCore::CanvasLayerChromium::createCCLayerImpl): * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::LayerChromium): (WebCore::LayerChromium::~LayerChromium): (WebCore::LayerChromium::cleanupResources): (WebCore::LayerChromium::dumpLayer): (WebCore::LayerChromium::dumpLayerProperties): (WebCore::LayerChromium::createCCLayerImpl): (WebCore::LayerChromium::ccLayerImpl): * platform/graphics/chromium/LayerChromium.h: (WebCore::LayerChromium::id): (WebCore::LayerChromium::setCCLayerImpl): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updateAndDrawLayers): (WebCore::LayerRendererChromium::updateLayers): (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces): (WebCore::LayerRendererChromium::updateCompositorResourcesRecursive): * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/PluginLayerChromium.cpp: (WebCore::PluginLayerChromium::createCCLayerImpl): * platform/graphics/chromium/TreeSynchronizer.cpp: Added. (WebCore::TreeSynchronizer::addCCLayerImplsToMapRecursive): (WebCore::TreeSynchronizer::synchronizeTreeRecursive): (WebCore::TreeSynchronizer::synchronizeTrees): * platform/graphics/chromium/TreeSynchronizer.h: * platform/graphics/chromium/VideoLayerChromium.cpp: (WebCore::VideoLayerChromium::createCCLayerImpl): * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp: (WebCore::CCCanvasLayerImpl::CCCanvasLayerImpl): * platform/graphics/chromium/cc/CCCanvasLayerImpl.h: (WebCore::CCCanvasLayerImpl::create): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::CCLayerImpl): (WebCore::CCLayerImpl::addChild): (WebCore::CCLayerImpl::removeFromParent): (WebCore::CCLayerImpl::removeAllChildren): (WebCore::CCLayerImpl::clearChildList): (WebCore::CCLayerImpl::descendantsDrawsContent): (WebCore::CCLayerImpl::drawsContent): (WebCore::CCLayerImpl::updateCompositorResources): * platform/graphics/chromium/cc/CCLayerImpl.h: (WebCore::CCLayerImpl::create): (WebCore::CCLayerImpl::parent): (WebCore::CCLayerImpl::children): (WebCore::CCLayerImpl::setMaskLayer): (WebCore::CCLayerImpl::maskLayer): (WebCore::CCLayerImpl::setReplicaLayer): (WebCore::CCLayerImpl::replicaLayer): (WebCore::CCLayerImpl::id): (WebCore::CCLayerImpl::owner): (WebCore::CCLayerImpl::setParent): * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp: (WebCore::CCPluginLayerImpl::CCPluginLayerImpl): * platform/graphics/chromium/cc/CCPluginLayerImpl.h: (WebCore::CCPluginLayerImpl::create): * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: (WebCore::CCVideoLayerImpl::CCVideoLayerImpl): * platform/graphics/chromium/cc/CCVideoLayerImpl.h: (WebCore::CCVideoLayerImpl::create): 2011-05-16 Naoki Takano <takano.naoki@gmail.com> Reviewed by Kent Tamura. HTML5 Number Spinbox displays a 0 in situations where a 0 is not between the min and max. https://bugs.webkit.org/show_bug.cgi?id=60871 Test: fast/forms/input-stepup-stepdown-from-renderer.html In number input type, if the value is not a number, including empty, the currect valued is assumed 0. But we have to handle it separately from the case when the value is actuall "0". * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::stepUpFromRenderer): Added cliping for default value. 2011-05-16 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Remove bogus ASSERT in Document::setCompatibilityMode https://bugs.webkit.org/show_bug.cgi?id=60935 The ASSERT is invalid when the parser is in the initial state and the document is non-empty, which is strange but not impossible. Test: fast/parser/append-child-followed-by-document-write.html * dom/Document.cpp: (WebCore::Document::setCompatibilityMode): 2011-05-16 MORITA Hajime <morrita@google.com> Reviewed by Tony Chang. [Refactoring] Member variables of DocumentMarker should be encapsulated. https://bugs.webkit.org/show_bug.cgi?id=56814 - Moved DocumentMarker's member variables to private and added getters for them. - Added DocumentMarker setters and constructors, which contain assertions against m_type values because description and activeMatch are used with specific type of MarkerType. - Moved chromium's WebKit::WebFrameImpl::addMarker() to DocumentMarkerController because it accesses DocumentMarker internals. - Moved a version of DMC::addMarker() to private and add alternatives that hide internals of DocumentMarker. (The internal will be renewed by upcoming change.) * dom/DocumentMarker.h: (WebCore::DocumentMarker::type): (WebCore::DocumentMarker::startOffset): (WebCore::DocumentMarker::endOffset): (WebCore::DocumentMarker::description): (WebCore::DocumentMarker::hasDescription): (WebCore::DocumentMarker::activeMatch): (WebCore::DocumentMarker::clearDescription): (WebCore::DocumentMarker::setStartOffset): (WebCore::DocumentMarker::setEndOffset): (WebCore::DocumentMarker::operator==): (WebCore::DocumentMarker::DocumentMarker): (WebCore::DocumentMarker::shiftOffsets): (WebCore::DocumentMarker::setActiveMatch): * dom/DocumentMarkerController.cpp: (WebCore::DocumentMarkerController::addMarker): (WebCore::DocumentMarkerController::addTextMatchMarker): (WebCore::DocumentMarkerController::copyMarkers): (WebCore::DocumentMarkerController::removeMarkers): (WebCore::DocumentMarkerController::markerContainingPoint): (WebCore::DocumentMarkerController::markersInRange): (WebCore::DocumentMarkerController::renderedRectsForMarkers): (WebCore::DocumentMarkerController::removeMarkersFromList): (WebCore::DocumentMarkerController::repaintMarkers): (WebCore::DocumentMarkerController::shiftMarkers): (WebCore::DocumentMarkerController::setMarkersActive): (WebCore::DocumentMarkerController::hasMarkers): (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange): (WebCore::DocumentMarkerController::showMarkers): * dom/DocumentMarkerController.h: * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection): * editing/Editor.cpp: (WebCore::Editor::selectionStartHasMarkerFor): * editing/SpellingCorrectionController.cpp: (WebCore::SpellingCorrectionController::respondToChangedSelection): * editing/SpellingCorrectionController.h: (WebCore::SpellingCorrectionController::shouldStartTimerFor): * rendering/HitTestResult.cpp: (WebCore::HitTestResult::spellingToolTip): (WebCore::HitTestResult::replacedString): * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): (WebCore::InlineTextBox::paintTextMatchMarker): (WebCore::InlineTextBox::computeRectForReplacementMarker): (WebCore::InlineTextBox::paintDocumentMarkers): * rendering/svg/SVGInlineFlowBox.cpp: (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer): 2011-05-16 Martin Robinson <mrobinson@igalia.com> Fix the Cairo build for older versions of GTK+. * platform/gtk/GtkWidgetBackingStoreX11.cpp: Include GtkVersioning.h to satisfy older versions of GTK+ 2.x. 2011-05-16 Ian Henderson <ianh@apple.com> Reviewed by Joseph Pecoraro. Page::goToItem doesn't work while loading is deferred https://bugs.webkit.org/show_bug.cgi?id=60412 If goToItem is called while loading is deferred, save the arguments and try again later instead of doing nothing. Test: loader/navigation-while-deferring-loads.html * loader/FrameLoader.cpp: (WebCore::FrameLoader::setDefersLoading): Pipe the "defersLoading" state into HistoryController. * loader/HistoryController.cpp: (WebCore::HistoryController::HistoryController): (WebCore::HistoryController::goToItem): Save the HistoryItem and FrameLoadType if loading is deferred. (WebCore::HistoryController::setDefersLoading): If we have a saved HistoryItem after resuming, try going to it. * loader/HistoryController.h: * page/Page.cpp: (WebCore::Page::goToItem): No longer bail early if loading is deferred, since HistoryController now handles this case. 2011-05-16 Andrew Wilson <atwilson@chromium.org> Unreviewed, rolling out r86625. http://trac.webkit.org/changeset/86625 https://bugs.webkit.org/show_bug.cgi?id=60719 Caused failed assertion on Chromium gpu canary bots * WebCore.gypi: * platform/chromium/TraceEvent.h: * platform/graphics/chromium/ContentLayerChromium.cpp: (WebCore::ContentLayerChromium::create): (WebCore::ContentLayerChromium::ContentLayerChromium): (WebCore::ContentLayerChromium::~ContentLayerChromium): (WebCore::ContentLayerChromium::paintContentsIfDirty): (WebCore::ContentLayerChromium::setLayerRenderer): (WebCore::ContentLayerChromium::createTilerIfNeeded): (WebCore::ContentLayerChromium::updateCompositorResources): * platform/graphics/chromium/ContentLayerChromium.h: (WebCore::ContentLayerChromium::drawsContent): * platform/graphics/chromium/ImageLayerChromium.cpp: (WebCore::ImageLayerChromium::paintContentsIfDirty): (WebCore::ImageLayerChromium::updateCompositorResources): * platform/graphics/chromium/ImageLayerChromium.h: * platform/graphics/chromium/LayerPainterChromium.h: Removed. * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::create): (WebCore::LayerRendererChromium::LayerRendererChromium): (WebCore::LayerRendererChromium::updateRootLayerContents): (WebCore::LayerRendererChromium::drawRootLayer): (WebCore::LayerRendererChromium::updateAndDrawLayers): (WebCore::LayerRendererChromium::updateLayers): * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/LayerTextureSubImage.cpp: Removed. * platform/graphics/chromium/LayerTextureSubImage.h: Removed. * platform/graphics/chromium/LayerTextureUpdater.h: Removed. * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp: Removed. * platform/graphics/chromium/LayerTextureUpdaterCanvas.h: Removed. * platform/graphics/chromium/LayerTilerChromium.cpp: (WebCore::LayerTilerChromium::create): (WebCore::LayerTilerChromium::LayerTilerChromium): (WebCore::LayerTilerChromium::setLayerRenderer): (WebCore::LayerTilerChromium::setTileSize): (WebCore::LayerTilerChromium::update): (WebCore::LayerTilerChromium::uploadCanvas): (WebCore::LayerTilerChromium::updateFromPixels): (WebCore::LayerTilerChromium::draw): * platform/graphics/chromium/LayerTilerChromium.h: (WebCore::LayerTilerChromium::Tile::Tile): * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: (WebCore::CCHeadsUpDisplay::draw): 2011-05-16 Antti Koivisto <antti@apple.com> Reviewed by Dave Kilzer. https://bugs.webkit.org/show_bug.cgi?id=60927 fastCheckSelector() does not inline correctly in all cases Use anonymous namespace instead of static qualifier to get internal linkage. Use functions as template arguments instead of classes. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::fastCheckSelector): 2011-05-16 Chris Rogers <crogers@google.com> Unreviewed build fix. Just return "nullptr" to fix compile errors https://bugs.webkit.org/show_bug.cgi?id=60932 * platform/audio/mac/AudioBusMac.mm: (WebCore::AudioBus::loadPlatformResource): * platform/audio/mac/AudioFileReaderMac.cpp: (WebCore::AudioFileReader::createBus): 2011-05-16 Emil A Eklund <eae@chromium.org> Reviewed by Eric Seidel. Replace docTop/Right/Bottom/Left/Width/Height with documentRect https://bugs.webkit.org/show_bug.cgi?id=60743 Change RenderView::documentRect to compute rect once rather than four times. Replace all uses of docTop/Right/Bottom/Left/Width/Height with documentRect to simplify the code and reduce complexity. Covered by existing tests. * WebCore.exp.in: * page/FrameView.cpp: (WebCore::FrameView::adjustViewSize): (WebCore::FrameView::forceLayoutForPagination): * page/PrintContext.cpp: (WebCore::PrintContext::computePageRects): * rendering/RenderBox.cpp: (WebCore::RenderBox::paintRootBoxFillLayers): * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateRootLayerPosition): * rendering/RenderView.cpp: (WebCore::RenderView::documentRect): * rendering/RenderView.h: 2011-05-16 Tony Chang <tony@chromium.org> Reviewed by Adam Barth. [chromium] shard V8DerivedSources into 19 files https://bugs.webkit.org/show_bug.cgi?id=60926 This reduces the clobber build time by 4s on my machine. It helps by making the slowest to compile V8DerivedSources faster (and thus more parallelizable). With 8 files, the 3 slowest are 23s, 18s and 10s. With 19 files, the 3 slowest are 16s, 10s, and 10s. * WebCore.gyp/WebCore.gyp: * storage/IDBObjectStore.h: Fix a missing include that was working because a different .cpp file before it was including the header. 2011-05-16 Chris Rogers <crogers@google.com> Unreviewed build fix. Fix web audio enabled mac port compile errors https://bugs.webkit.org/show_bug.cgi?id=60930 * platform/audio/mac/AudioBusMac.mm: (WebCore::AudioBus::loadPlatformResource): * platform/audio/mac/AudioFileReaderMac.cpp: (WebCore::AudioFileReader::createBus): 2011-05-16 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Document why RenderBlockLineLayout has its own deleteLineBoxTree implementation https://bugs.webkit.org/show_bug.cgi?id=60925 I suspect this difference is really just papering over other bugs but now that I finally understand the difference, I should at least document it for others. * rendering/RenderBlockLineLayout.cpp: (WebCore::deleteLineRange): (WebCore::RenderBlock::determineStartPosition): 2011-05-16 Alok Priyadarshi <alokp@chromium.org> Reviewed by James Robinson. [chromium] Split canvas from LayerTilerChromium https://bugs.webkit.org/show_bug.cgi?id=60719 LayerTilerChromium now just does tiling. It delegates the task of painting and updating textures to LayerTextureUpdater. Also abstracted LayerTextureSubImage to upload texture pixels. * WebCore.gypi: * platform/chromium/TraceEvent.h: * platform/graphics/chromium/ContentLayerChromium.cpp: (WebCore::ContentLayerChromium::create): (WebCore::ContentLayerChromium::ContentLayerChromium): (WebCore::ContentLayerChromium::~ContentLayerChromium): (WebCore::ContentLayerChromium::paintContentsIfDirty): (WebCore::ContentLayerChromium::cleanupResources): (WebCore::ContentLayerChromium::setLayerRenderer): (WebCore::ContentLayerChromium::createTextureUpdater): (WebCore::ContentLayerChromium::drawsContent): (WebCore::ContentLayerChromium::createTilerIfNeeded): (WebCore::ContentLayerChromium::updateCompositorResources): * platform/graphics/chromium/ContentLayerChromium.h: * platform/graphics/chromium/ImageLayerChromium.cpp: (WebCore::ImageLayerTextureUpdater::ImageLayerTextureUpdater): (WebCore::ImageLayerTextureUpdater::~ImageLayerTextureUpdater): (WebCore::ImageLayerTextureUpdater::orientation): (WebCore::ImageLayerTextureUpdater::prepareToUpdate): (WebCore::ImageLayerTextureUpdater::updateTextureRect): (WebCore::ImageLayerTextureUpdater::imageRect): (WebCore::ImageLayerChromium::paintContentsIfDirty): (WebCore::ImageLayerChromium::updateCompositorResources): (WebCore::ImageLayerChromium::createTextureUpdater): * platform/graphics/chromium/ImageLayerChromium.h: * platform/graphics/chromium/LayerPainterChromium.h: Added. * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::create): (WebCore::LayerRendererChromium::LayerRendererChromium): (WebCore::LayerRendererChromium::updateRootLayerContents): (WebCore::LayerRendererChromium::drawRootLayer): (WebCore::LayerRendererChromium::updateAndDrawLayers): (WebCore::LayerRendererChromium::updateLayers): * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/LayerTextureSubImage.cpp: Added. (WebCore::LayerTextureSubImage::LayerTextureSubImage): (WebCore::LayerTextureSubImage::~LayerTextureSubImage): (WebCore::LayerTextureSubImage::setSubImageSize): (WebCore::LayerTextureSubImage::upload): (WebCore::LayerTextureSubImage::uploadWithTexSubImage): (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage): * platform/graphics/chromium/LayerTextureSubImage.h: Added. * platform/graphics/chromium/LayerTextureUpdater.h: Added. (WebCore::LayerTextureUpdater::LayerTextureUpdater): (WebCore::LayerTextureUpdater::~LayerTextureUpdater): (WebCore::LayerTextureUpdater::context): * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp: Added. (WebCore::LayerTextureUpdaterCanvas::LayerTextureUpdaterCanvas): (WebCore::LayerTextureUpdaterCanvas::paintContents): (WebCore::LayerTextureUpdaterBitmap::LayerTextureUpdaterBitmap): (WebCore::LayerTextureUpdaterBitmap::prepareToUpdate): (WebCore::LayerTextureUpdaterBitmap::updateTextureRect): * platform/graphics/chromium/LayerTextureUpdaterCanvas.h: Added. (WebCore::LayerTextureUpdaterCanvas::~LayerTextureUpdaterCanvas): (WebCore::LayerTextureUpdaterCanvas::contentRect): (WebCore::LayerTextureUpdaterBitmap::~LayerTextureUpdaterBitmap): (WebCore::LayerTextureUpdaterBitmap::orientation): * platform/graphics/chromium/LayerTilerChromium.cpp: (WebCore::LayerTilerChromium::create): (WebCore::LayerTilerChromium::LayerTilerChromium): (WebCore::LayerTilerChromium::setTileSize): (WebCore::LayerTilerChromium::prepareToUpdate): (WebCore::LayerTilerChromium::updateRect): (WebCore::LayerTilerChromium::draw): * platform/graphics/chromium/LayerTilerChromium.h: (WebCore::LayerTilerChromium::Tile::Tile): * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: (WebCore::CCHeadsUpDisplay::draw): 2011-05-16 Andrew Wilson <atwilson@chromium.org> Unreviewed prospective build fix/workaround for chromium ARM compiler error. * platform/graphics/GraphicsLayer.cpp: (WebCore::GraphicsLayer::animationNameForTransition): 2011-05-16 Martin Robinson <mrobinson@igalia.com> Reviewed by Anders Carlsson. [GTK] [WebKit2] Provide a fast version of the backing store for X11 https://bugs.webkit.org/show_bug.cgi?id=60912 No new tests. This will be covered by WebKit2 pixel tests. * GNUmakefile.list.am: Added new GtkWidgetBackingStore source and header files. * platform/gtk/GtkWidgetBackingStore.h: Added. * platform/gtk/GtkWidgetBackingStoreCairo.cpp: Added this implementation of the backing store that uses Cairo and has the same performance characteristics as the WebKit2 implementaiton. * platform/gtk/GtkWidgetBackingStoreX11.cpp: Added this implementation of the backing store that uses X11 directly and has better performance than the Cairo version. 2011-05-16 Chris Rogers <crogers@google.com> Reviewed by senorblanco@chromium.org. Add DynamicsCompressorNode implementation https://bugs.webkit.org/show_bug.cgi?id=60682 No new tests since audio API is not yet implemented. * DerivedSources.make: * WebCore.gypi: * WebCore.xcodeproj/project.pbxproj: * platform/audio/DynamicsCompressor.cpp: Added. (WebCore::DynamicsCompressor::DynamicsCompressor): (WebCore::DynamicsCompressor::initializeParameters): (WebCore::DynamicsCompressor::parameterValue): (WebCore::DynamicsCompressor::setEmphasisStageParameters): (WebCore::DynamicsCompressor::setEmphasisParameters): (WebCore::DynamicsCompressor::process): (WebCore::DynamicsCompressor::reset): * platform/audio/DynamicsCompressor.h: Added. (WebCore::DynamicsCompressor::isStereo): (WebCore::DynamicsCompressor::sampleRate): (WebCore::DynamicsCompressor::nyquist): * platform/audio/DynamicsCompressorKernel.cpp: Added. (WebCore::saturate): (WebCore::DynamicsCompressorKernel::DynamicsCompressorKernel): (WebCore::DynamicsCompressorKernel::setPreDelayTime): (WebCore::DynamicsCompressorKernel::process): (WebCore::DynamicsCompressorKernel::reset): * platform/audio/DynamicsCompressorKernel.h: Added. (WebCore::DynamicsCompressorKernel::latencyFrames): (WebCore::DynamicsCompressorKernel::sampleRate): * platform/audio/ZeroPole.cpp: Added. (WebCore::ZeroPole::process): * platform/audio/ZeroPole.h: Added. (WebCore::ZeroPole::ZeroPole): (WebCore::ZeroPole::reset): (WebCore::ZeroPole::setZero): (WebCore::ZeroPole::setPole): (WebCore::ZeroPole::zero): (WebCore::ZeroPole::pole): * webaudio/AudioContext.cpp: (WebCore::AudioContext::createDynamicsCompressor): * webaudio/AudioContext.h: * webaudio/AudioContext.idl: * webaudio/AudioNode.h: * webaudio/DynamicsCompressorNode.cpp: Added. (WebCore::DynamicsCompressorNode::DynamicsCompressorNode): (WebCore::DynamicsCompressorNode::~DynamicsCompressorNode): (WebCore::DynamicsCompressorNode::process): (WebCore::DynamicsCompressorNode::reset): (WebCore::DynamicsCompressorNode::initialize): (WebCore::DynamicsCompressorNode::uninitialize): * webaudio/DynamicsCompressorNode.h: Added. (WebCore::DynamicsCompressorNode::create): * webaudio/DynamicsCompressorNode.idl: Added. 2011-05-16 Yuzo Fujishima <yuzo@google.com> Reviewed by Antti Koivisto. Fix for Bug 43704 - Web font is printed as blank if it is not cached https://bugs.webkit.org/show_bug.cgi?id=43704 In setting printing, we should not validate resources already cached for the document. If we do, web fonts used for screen are revalidated and possiby reloaded. Then the fonts can be shown as blank on print. This patch won't save the case where screen and print use different web fonts. Nonetheless, this is an improvement. No new tests because there seems to be no good way to test print images. * editing/Editor.cpp: (WebCore::Editor::paste): Use ResourceCacheValidationSuppressor instead of explicitly allowing/disallowing stale resources. * loader/cache/CachedResourceLoader.h: (WebCore::ResourceCacheValidationSuppressor::ResourceCacheValidationSuppressor): RAII class for allowing/disallowing stale resources. (WebCore::ResourceCacheValidationSuppressor::~ResourceCacheValidationSuppressor): * page/DragController.cpp: (WebCore::DragController::concludeEditDrag): Use ResourceCacheValidationSuppressor instead of explicitly allowing/disallowing stale resources. * page/Frame.cpp: (WebCore::Frame::setPrinting): Use ResourceCacheValidationSuppressor to allow stale resources in printing. 2011-05-16 Dan Bernstein <mitz@apple.com> Reviewed by Darin Adler. <rdar://problem/9446653> REGRESSION (r84750): Moving by word stops at apostrophe mid-word https://bugs.webkit.org/show_bug.cgi?id=60915 CFStringTokenizer’s kCFStringTokenizerUnitWord considers “Here’s” as two separate tokens. Switching to CFStringTokenizer in r84750 was an attempt to address an issue with Japanese word boundaries for searches with WebFindOptionsAtWordStarts, but it turned out to be insufficient, and in r86387 the Japanese word issue was addressed independently of text boundaries, so just revert r84750. * platform/text/mac/TextBoundaries.mm: (WebCore::findNextWordFromIndex): 2011-05-16 David Kilzer <ddkilzer@apple.com> <http://webkit.org/b/60913> C++ exceptions should not be enabled when building with llvm-gcc-4.2 <rdar://problem/9446430> Reviewed by Mark Rowe. * Configurations/Base.xcconfig: Fixed typo. 2011-05-16 Jon Lee <jonlee@apple.com> Fix for broken regression tests. Adding null pointer check * page/FrameView.cpp: (WebCore::FrameView::didAddHorizontalScrollbar): (WebCore::FrameView::willRemoveHorizontalScrollbar): 2011-05-16 Adrienne Walker <enne@google.com> Reviewed by James Robinson. [chromium] Remove unused member variables from LayerRendererChromium https://bugs.webkit.org/show_bug.cgi?id=60899 These should have been removed when tiling was enabled for root layers. * platform/graphics/chromium/LayerRendererChromium.h: 2011-05-16 Andrew Wilson <atwilson@chromium.org> Unreviewed, rolling out r86589. http://trac.webkit.org/changeset/86589 https://bugs.webkit.org/show_bug.cgi?id=54670 Broke chromium inspector tests. * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.show): (WebInspector.ConsoleView.prototype.afterShow): (WebInspector.ConsoleView.prototype.hide): (WebInspector.ConsoleView.prototype.addMessage): (WebInspector.ConsoleView.prototype.clearMessages): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel): * inspector/front-end/Drawer.js: (WebInspector.Drawer.prototype.set visibleView): (WebInspector.Drawer.prototype.show.animationFinished): (WebInspector.Drawer.prototype.show): * inspector/front-end/Panel.js: (WebInspector.Panel): * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel): * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector._createPanels): 2011-05-16 Brian Weinstein <bweinstein@apple.com> Reviewed by Enrica Casucci. REGRESSION (r86542): Dropping URL onto Desktop creates broken Internet Shortcut file. r86477 fixed this bug by using latin1 as the CString's encoding instead of ascii, but r86542 undid this change. Change it back to latin1 to fix the bug. * platform/win/ClipboardWin.cpp: (WebCore::ClipboardWin::writeURL): 2011-05-16 Jeremy Noble <jer.noble@apple.com> Unreviewed; build fix for non-SnowLeopard builds. * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Wrap definition of layerIsDescendentOf in a #if check. 2011-05-16 Pavel Podivilov <podivilov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: merge ConsoleView into ConsolePanel. https://bugs.webkit.org/show_bug.cgi?id=54670 Console view in drawer looks exactly the same as console panel. Merging ConsoleView and ConsolePanel together will allow us to reuse panel's functionality (e.g. resizable sidebar) even when console is docked. * inspector/front-end/ConsoleView.js: (WebInspector.ConsolePanel.prototype.get toolbarItemLabel): (WebInspector.ConsolePanel.prototype.show): (WebInspector.ConsolePanel.prototype.hide): (WebInspector.ConsolePanel.prototype.showInDrawer): (WebInspector.ConsolePanel.prototype.afterShowInDrawer): (WebInspector.ConsolePanel.prototype.hideInDrawer): (WebInspector.ConsolePanel.prototype.addMessage): (WebInspector.ConsolePanel.prototype.clearMessages): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel): * inspector/front-end/Drawer.js: (WebInspector.Drawer.prototype.set visibleView): (WebInspector.Drawer.prototype.show.animationFinished): (WebInspector.Drawer.prototype.show): * inspector/front-end/Panel.js: (WebInspector.Panel): * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel): * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector._createPanels): 2011-05-13 Jer Noble <jer.noble@apple.com> Reviewed by Simon Fraser. Video is blank, controller is misplaced on trailers.apple.com movie in fullscreen (with two screens) https://bugs.webkit.org/show_bug.cgi?id=60826 Listen for a WebKitLayerHostChanged notification and, if the affected layer is an ancestor layer of the qtMovieLayer, tear down the layer and recreate it the next time setVisible(true) is called. * dom/Document.cpp: (WebCore::Document::webkitDidEnterFullScreenForElement): Call setFullScreenRootLayer(0) before disabling animation on the full screen renderer. * platform/graphics/mac/MediaPlayerPrivateQTKit.h: * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivateQTKit::createQTMovie): Register an observer for the new WebKitLayerHostChanged notification. (WebCore::layerIsDescendentOf): Added. (WebCore::MediaPlayerPrivateQTKit::layerHostChanged): Added. If the changed layer is an ancestor of the movie layer, tear down rendering and re- create the next time setVisible(true) is called. (-[WebCoreMovieObserver layerHostChanged:]): Added ObjC listener wrapper. 2011-05-16 Adam Barth <abarth@webkit.org> Reviewed by Darin Adler. Remove disable-javascript-urls CSP directive https://bugs.webkit.org/show_bug.cgi?id=60874 After talking this out with various folks in the CSP working group, we decided that this syntax isn't the right way to approach this issue. If we want to address the use case of enabling JavaScript URLs separately from inline script, we'll probably just make script-src javascript: work that way. * page/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::ContentSecurityPolicy): (WebCore::ContentSecurityPolicy::allowJavaScriptURLs): (WebCore::ContentSecurityPolicy::addDirective): * page/ContentSecurityPolicy.h: 2011-05-16 Jon Lee <jonlee@apple.com> Reviewed by Simon Fraser. Can't horizontally scroll iframes and overflow because wheel events are always accepted https://bugs.webkit.org/show_bug.cgi?id=60779 * dom/Document.cpp: (WebCore::Document::Document): Initialize wheel event handler count (WebCore::Document::didAddWheelEventHandler): Increment count, and tell the main frame to recalculate the total number of wheel event handlers in all of its frames' documents (WebCore::Document::didRemoveWheelEventHandler): Reverse of previous method * dom/Document.h: (WebCore::Document::wheelEventHandlerCount): Access the count * dom/Node.cpp: (WebCore::tryAddEventListener): If the event listener is a mouse wheel event, then tell the document to increment its count (WebCore::tryRemoveEventListener): Reverse of previous method * page/ChromeClient.h: Two new methods: numWheelEventHandlersChanged: WebProcess tells UIProcess to update its cached count of total wheel event handlers, which in this case only include horizontal scrollbars and mouse wheel JS handlers shouldRubberBandInDirection: allow the UIProcess to provide some control over whether rubber banding is allowed when scrolling in a particular direction * loader/EmptyClients.h: (WebCore::EmptyChromeClient::numWheelEventHandlersChanged): Default empty impl (WebCore::EmptyChromeClient::shouldRubberBandInDirection): Default empty impl * page/EventHandler.cpp: (WebCore::EventHandler::handleWheelEvent): Remove a redundant pointer check * page/Frame.cpp: (WebCore::Frame::setDocument): When the frame's document changes, calculate that document's total wheel event handlers, and notify the UIProcess (WebCore::Frame::notifyChromeClientWheelEventHandlerCountChanged): Performs a crawl of the frame tree to aggregate the count * page/Frame.h: * platform/ScrollableArea.h: Virtualize didAddHorizontalScrollbar and willRemoveHorizontalScrollbar for overriding in RenderLayer and FrameView (WebCore::ScrollableArea::isHorizontalScrollerPinnedToMinimumPosition): Returns true if there is no scrollbar or the scroller position is in the minimum scroll position. (WebCore::ScrollableArea::isHorizontalScrollerPinnedToMaximumPosition): Converse of the above. (WebCore::ScrollableArea::shouldRubberBandInDirection): Default impl * page/FrameView.cpp: (WebCore::FrameView::didAddHorizontalScrollbar): Updates the frame's document's count (WebCore::FrameView::willRemoveHorizontalScrollbar): Updates the frame's document's count (WebCore::FrameView::shouldRubberBandInDirection): Connective glue * page/FrameView.h: Adding overriding methods from ScrollableArea * rendering/RenderLayer.cpp: Similar functionality to FrameView (WebCore::RenderLayer::didAddHorizontalScrollbar): (WebCore::RenderLayer::willRemoveHorizontalScrollbar): * rendering/RenderLayer.h: * platform/mac/ScrollAnimatorMac.h: Fix typo of "momentum" * platform/mac/ScrollAnimatorMac.mm: (WebCore::ScrollAnimatorMac::ScrollAnimatorMac): Fix typo of "momentum" (WebCore::ScrollAnimatorMac::smoothScrollWithEvent): Fix typo of "coalesced" (WebCore::ScrollAnimatorMac::beginScrollGesture): Fix typo of "coalesced" (WebCore::ScrollAnimatorMac::snapRubberBand): Fix typo of "momentum" (WebCore::ScrollAnimatorMac::handleWheelEvent): New logic for determining whether to allow rubber-banding based on the area's scroll position and the wheel event. Could prevent accepting the wheel event. Also, fix typo of "momentum" (WebCore::isScrollingLeftAndShouldNotRubberBand): Inline helper function for logic (WebCore::isScrollingRightAndShouldNotRubberBand): Inline helper function for logic 2011-05-16 Leandro Gracia Gil <leandrogracia@chromium.org> Reviewed by Tony Gentilcore. Media Stream API: add local stream requests. https://bugs.webkit.org/show_bug.cgi?id=60177 Add the code and messages for requesting the generation of local streams and getting the reply back. Tests for the Media Stream API will be provided by the bug 56587. One test is re-enabled with this patch. Test: fast/dom/MediaStream/argument-types.html * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/CallbackTask.h: Added. (WebCore::CallbackTask1::create): (WebCore::CallbackTask1::performTask): (WebCore::CallbackTask1::Scheduler::scheduleCallback): (WebCore::CallbackTask1::CallbackTask1): * page/MediaStreamClient.h: * page/MediaStreamController.cpp: (WebCore::MediaStreamController::isClientAvailable): (WebCore::MediaStreamController::unregisterFrameController): (WebCore::MediaStreamController::registerRequest): (WebCore::MediaStreamController::registerStream): (WebCore::MediaStreamController::generateStream): (WebCore::MediaStreamController::streamGenerated): (WebCore::MediaStreamController::streamGenerationFailed): * page/MediaStreamController.h: * page/MediaStreamFrameController.cpp: (WebCore::MediaStreamFrameController::GenerateStreamRequest::GenerateStreamRequest): (WebCore::MediaStreamFrameController::GenerateStreamRequest::~GenerateStreamRequest): (WebCore::MediaStreamFrameController::GenerateStreamRequest::isGenerateStreamRequest): (WebCore::MediaStreamFrameController::GenerateStreamRequest::abort): (WebCore::MediaStreamFrameController::GenerateStreamRequest::successCallback): (WebCore::MediaStreamFrameController::GenerateStreamRequest::errorCallback): (WebCore::::unregisterAll): (WebCore::::detachEmbedder): (WebCore::MediaStreamFrameController::MediaStreamFrameController): (WebCore::MediaStreamFrameController::pageController): (WebCore::MediaStreamFrameController::unregister): (WebCore::MediaStreamFrameController::enterDetachedState): (WebCore::MediaStreamFrameController::isClientAvailable): (WebCore::MediaStreamFrameController::disconnectFrame): (WebCore::MediaStreamFrameController::parseGenerateStreamOptions): (WebCore::MediaStreamFrameController::generateStream): (WebCore::MediaStreamFrameController::streamGenerated): (WebCore::MediaStreamFrameController::streamGenerationFailed): * page/MediaStreamFrameController.h: (WebCore::MediaStreamFrameController::ClientBase::ClientBase): (WebCore::MediaStreamFrameController::ClientBase::~ClientBase): (WebCore::MediaStreamFrameController::ClientBase::mediaStreamFrameController): (WebCore::MediaStreamFrameController::ClientBase::clientId): (WebCore::MediaStreamFrameController::ClientBase::isStream): (WebCore::MediaStreamFrameController::ClientBase::isGeneratedStream): (WebCore::MediaStreamFrameController::ClientBase::detachEmbedder): (WebCore::MediaStreamFrameController::ClientBase::associateFrameController): (WebCore::MediaStreamFrameController::ClientBase::unregisterClient): (WebCore::MediaStreamFrameController::StreamClient::StreamClient): (WebCore::MediaStreamFrameController::StreamClient::~StreamClient): (WebCore::MediaStreamFrameController::StreamClient::isStream): (WebCore::MediaStreamFrameController::StreamClient::unregister): (WebCore::MediaStreamFrameController::IdGenerator::IdGenerator): (WebCore::MediaStreamFrameController::IdGenerator::getNextId): (WebCore::MediaStreamFrameController::ClientMapBase::ClientMapBase): * page/Navigator.cpp: (WebCore::Navigator::webkitGetUserMedia): * page/NavigatorUserMediaErrorCallback.h: 2011-05-16 Pavel Podivilov <podivilov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: debuggerWasEnabled notification should not be send to front-end on navigation. https://bugs.webkit.org/show_bug.cgi?id=60888 * inspector/InspectorController.cpp: (WebCore::InspectorController::disableDebugger): * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::enable): (WebCore::InspectorDebuggerAgent::disable): (WebCore::InspectorDebuggerAgent::restore): (WebCore::InspectorDebuggerAgent::clearFrontend): * inspector/InspectorDebuggerAgent.h: 2011-05-16 Yury Semikhatsky <yurys@chromium.org> Unreviewed. Windows build fix. * inspector/InspectorConsoleInstrumentation.h: (WebCore::InspectorInstrumentation::consoleMarkTimeline): 2011-05-16 Yury Semikhatsky <yurys@chromium.org> Unreviewed. Build fix. * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::willStartWorkerContext): 2011-05-11 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: use InstrumentingAgents to access agents from InspectorInstrumentation https://bugs.webkit.org/show_bug.cgi?id=60624 InspectorInstrumentation retrieves inspector agents from corresponding InstrumentingAgents instance. Each agent notifies InstrumentingAgents whenever it wants to receive notifications about changes in WebCore. * inspector/InspectorAgent.cpp: (WebCore::InspectorAgent::InspectorAgent): (WebCore::InspectorAgent::inspectedPageDestroyed): * inspector/InspectorAgent.h: * inspector/InspectorConsoleInstrumentation.h: (WebCore::InspectorInstrumentation::addMessageToConsole): (WebCore::InspectorInstrumentation::consoleCount): (WebCore::InspectorInstrumentation::startConsoleTiming): (WebCore::InspectorInstrumentation::stopConsoleTiming): (WebCore::InspectorInstrumentation::consoleMarkTimeline): (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole): (WebCore::InspectorInstrumentation::addProfile): (WebCore::InspectorInstrumentation::profilerEnabled): (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName): * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): (WebCore::InspectorController::inspectedPageDestroyed): (WebCore::InspectorController::didClearWindowObjectInWorld): (WebCore::InspectorController::inspectedPage): * inspector/InspectorController.h: * inspector/InspectorDatabaseInstrumentation.h: FAST_RETURN_IF_NO_FRONTENDS macros is used for early return in common case when inspector is not opened. In this case inspector instrumentation costs one additional check of a static field. (WebCore::InspectorInstrumentation::didOpenDatabase): * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::instrumentingAgents): (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl): (WebCore::InspectorInstrumentation::inspectedPageDestroyedImpl): (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl): (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl): (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl): (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl): (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl): (WebCore::InspectorInstrumentation::didModifyDOMAttrImpl): (WebCore::InspectorInstrumentation::didInvalidateStyleAttrImpl): (WebCore::InspectorInstrumentation::mouseDidMoveOverElementImpl): (WebCore::InspectorInstrumentation::handleMousePressImpl): (WebCore::InspectorInstrumentation::characterDataModifiedImpl): (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl): (WebCore::InspectorInstrumentation::didScheduleResourceRequestImpl): (WebCore::InspectorInstrumentation::didInstallTimerImpl): (WebCore::InspectorInstrumentation::didRemoveTimerImpl): (WebCore::InspectorInstrumentation::willCallFunctionImpl): (WebCore::InspectorInstrumentation::willChangeXHRReadyStateImpl): (WebCore::InspectorInstrumentation::willDispatchEventImpl): (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl): (WebCore::InspectorInstrumentation::willEvaluateScriptImpl): (WebCore::InspectorInstrumentation::willFireTimerImpl): (WebCore::InspectorInstrumentation::willLayoutImpl): (WebCore::InspectorInstrumentation::willLoadXHRImpl): (WebCore::InspectorInstrumentation::willPaintImpl): (WebCore::InspectorInstrumentation::willRecalculateStyleImpl): (WebCore::InspectorInstrumentation::applyUserAgentOverrideImpl): (WebCore::InspectorInstrumentation::willSendRequestImpl): (WebCore::InspectorInstrumentation::continueAfterPingLoaderImpl): (WebCore::InspectorInstrumentation::markResourceAsCachedImpl): (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl): (WebCore::InspectorInstrumentation::willReceiveResourceDataImpl): (WebCore::InspectorInstrumentation::willReceiveResourceResponseImpl): (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl): (WebCore::InspectorInstrumentation::didReceiveContentLengthImpl): (WebCore::InspectorInstrumentation::didFinishLoadingImpl): (WebCore::InspectorInstrumentation::didFailLoadingImpl): (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl): (WebCore::InspectorInstrumentation::scriptImportedImpl): (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl): (WebCore::InspectorInstrumentation::loadEventFiredImpl): (WebCore::InspectorInstrumentation::frameDetachedFromParentImpl): (WebCore::InspectorInstrumentation::didCommitLoadImpl): (WebCore::InspectorInstrumentation::willWriteHTMLImpl): (WebCore::InspectorInstrumentation::addMessageToConsoleImpl): (WebCore::InspectorInstrumentation::consoleCountImpl): (WebCore::InspectorInstrumentation::startConsoleTimingImpl): (WebCore::InspectorInstrumentation::stopConsoleTimingImpl): (WebCore::InspectorInstrumentation::consoleMarkTimelineImpl): (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsoleImpl): (WebCore::InspectorInstrumentation::addProfileImpl): (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileNameImpl): (WebCore::InspectorInstrumentation::profilerEnabledImpl): (WebCore::InspectorInstrumentation::didOpenDatabaseImpl): (WebCore::InspectorInstrumentation::didUseDOMStorageImpl): (WebCore::InspectorInstrumentation::didStartWorkerContextImpl): (WebCore::InspectorInstrumentation::didCreateWorkerImpl): (WebCore::InspectorInstrumentation::didDestroyWorkerImpl): (WebCore::InspectorInstrumentation::didCreateWebSocketImpl): (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl): (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl): (WebCore::InspectorInstrumentation::didCloseWebSocketImpl): (WebCore::InspectorInstrumentation::networkStateChangedImpl): (WebCore::InspectorInstrumentation::updateApplicationCacheStatusImpl): (WebCore::InspectorInstrumentation::hasFrontend): (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded): (WebCore::InspectorInstrumentation::cancelPauseOnNativeEvent): (WebCore::InspectorInstrumentation::retrieveTimelineAgent): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::bindInstrumentingAgents): (WebCore::InspectorInstrumentation::unbindInstrumentingAgents): (WebCore::InspectorInstrumentation::didClearWindowObjectInWorld): (WebCore::InspectorInstrumentation::inspectedPageDestroyed): (WebCore::InspectorInstrumentation::willInsertDOMNode): (WebCore::InspectorInstrumentation::didInsertDOMNode): (WebCore::InspectorInstrumentation::willRemoveDOMNode): (WebCore::InspectorInstrumentation::willModifyDOMAttr): (WebCore::InspectorInstrumentation::didModifyDOMAttr): (WebCore::InspectorInstrumentation::didInvalidateStyleAttr): (WebCore::InspectorInstrumentation::mouseDidMoveOverElement): (WebCore::InspectorInstrumentation::handleMousePress): (WebCore::InspectorInstrumentation::characterDataModified): (WebCore::InspectorInstrumentation::willSendXMLHttpRequest): (WebCore::InspectorInstrumentation::didScheduleResourceRequest): (WebCore::InspectorInstrumentation::didInstallTimer): (WebCore::InspectorInstrumentation::didRemoveTimer): (WebCore::InspectorInstrumentation::willCallFunction): (WebCore::InspectorInstrumentation::willChangeXHRReadyState): (WebCore::InspectorInstrumentation::willDispatchEvent): (WebCore::InspectorInstrumentation::willDispatchEventOnWindow): (WebCore::InspectorInstrumentation::willEvaluateScript): (WebCore::InspectorInstrumentation::willFireTimer): (WebCore::InspectorInstrumentation::willLayout): (WebCore::InspectorInstrumentation::willLoadXHR): (WebCore::InspectorInstrumentation::willPaint): (WebCore::InspectorInstrumentation::willRecalculateStyle): (WebCore::InspectorInstrumentation::applyUserAgentOverride): (WebCore::InspectorInstrumentation::willSendRequest): (WebCore::InspectorInstrumentation::continueAfterPingLoader): (WebCore::InspectorInstrumentation::markResourceAsCached): (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache): (WebCore::InspectorInstrumentation::willReceiveResourceData): (WebCore::InspectorInstrumentation::willReceiveResourceResponse): (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDenied): (WebCore::InspectorInstrumentation::continueWithPolicyDownload): (WebCore::InspectorInstrumentation::continueWithPolicyIgnore): (WebCore::InspectorInstrumentation::didReceiveContentLength): (WebCore::InspectorInstrumentation::didFinishLoading): (WebCore::InspectorInstrumentation::didFailLoading): (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequest): (WebCore::InspectorInstrumentation::scriptImported): (WebCore::InspectorInstrumentation::domContentLoadedEventFired): (WebCore::InspectorInstrumentation::loadEventFired): (WebCore::InspectorInstrumentation::frameDetachedFromParent): (WebCore::InspectorInstrumentation::didCommitLoad): (WebCore::InspectorInstrumentation::willWriteHTML): (WebCore::InspectorInstrumentation::didUseDOMStorage): (WebCore::InspectorInstrumentation::willStartWorkerContext): (WebCore::InspectorInstrumentation::didStartWorkerContext): (WebCore::InspectorInstrumentation::didCreateWorker): (WebCore::InspectorInstrumentation::didDestroyWorker): (WebCore::InspectorInstrumentation::didCreateWebSocket): (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest): (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse): (WebCore::InspectorInstrumentation::didCloseWebSocket): (WebCore::InspectorInstrumentation::networkStateChanged): (WebCore::InspectorInstrumentation::updateApplicationCacheStatus): (WebCore::InspectorInstrumentation::hasFrontend): (WebCore::InspectorInstrumentation::instrumentingAgentsForContext): (WebCore::InspectorInstrumentation::instrumentingAgentsForPage): (WebCore::InspectorInstrumentation::instrumentingAgentsForFrame): (WebCore::InspectorInstrumentation::instrumentingAgentsWithFrontendForFrame): (WebCore::InspectorInstrumentation::instrumentingAgentsWithFrontendForPage): (WebCore::InspectorInstrumentation::instrumentingAgentsWithFrontendForContext): (WebCore::InspectorInstrumentation::instrumentingAgentsWithFrontendForDocument): 2011-05-16 Vsevolod Vlasov <vsevik@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Move Resources Panel search to backend https://bugs.webkit.org/show_bug.cgi?id=59596 * inspector/Inspector.json: * inspector/InspectorPageAgent.cpp: (WebCore::decodeMainResource): (WebCore::InspectorPageAgent::resourceContent): (WebCore::cachedResourcesForFrame): (WebCore::InspectorPageAgent::getCookies): (WebCore::InspectorPageAgent::deleteCookie): (WebCore::createSearchRegexSource): (WebCore::countRegularExpressionMatches): (WebCore::buildObjectForSearchMatch): (WebCore::InspectorPageAgent::searchInResources): (WebCore::InspectorPageAgent::domContentEventFired): (WebCore::InspectorPageAgent::loadEventFired): (WebCore::InspectorPageAgent::frameNavigated): (WebCore::InspectorPageAgent::frameDetached): (WebCore::InspectorPageAgent::buildObjectForFrameTree): * inspector/InspectorPageAgent.h: * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._showResourceView): (WebInspector.ResourcesPanel.prototype.performSearch.searchInEditedResource): (WebInspector.ResourcesPanel.prototype.performSearch.callback): (WebInspector.ResourcesPanel.prototype.performSearch): (WebInspector.ResourcesPanel.prototype._ensureViewSearchPerformed): (WebInspector.ResourcesPanel.prototype._showSearchResult.callback): (WebInspector.ResourcesPanel.prototype._showSearchResult): (WebInspector.ResourcesPanel.prototype._resetSearchResults): (WebInspector.ResourcesPanel.prototype.searchCanceled): (WebInspector.ResourcesPanel.prototype.jumpToNextSearchResult): (WebInspector.ResourcesPanel.prototype.jumpToPreviousSearchResult): (WebInspector.FrameTreeElement.prototype.resourceByURL): (WebInspector.FrameResourceTreeElement.prototype._resetSearchResults): (WebInspector.FrameResourceTreeElement.prototype.get searchMatchesCount): (WebInspector.FrameResourceTreeElement.prototype.searchMatchesFound): (WebInspector.ResourcesSearchController): (WebInspector.ResourcesSearchController.prototype.nextSearchResult): (WebInspector.ResourcesSearchController.prototype.previousSearchResult): (WebInspector.ResourcesSearchController.prototype._searchResult): (WebInspector.SearchResultsTreeElementsTraverser): (WebInspector.SearchResultsTreeElementsTraverser.prototype.first): (WebInspector.SearchResultsTreeElementsTraverser.prototype.last): (WebInspector.SearchResultsTreeElementsTraverser.prototype.next): (WebInspector.SearchResultsTreeElementsTraverser.prototype.previous): (WebInspector.SearchResultsTreeElementsTraverser.prototype._traverseNext): (WebInspector.SearchResultsTreeElementsTraverser.prototype._elementHasSearchResults): (WebInspector.SearchResultsTreeElementsTraverser.prototype._traversePrevious): (WebInspector.SearchResultsTreeElementsTraverser.prototype._lastTreeElement): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.createSearchRegex): (WebInspector.SourceFrame.prototype.performSearch.doFindSearchMatches): (WebInspector.SourceFrame.prototype.performSearch): (WebInspector.SourceFrame.prototype.hasSearchResults): (WebInspector.SourceFrame.prototype.jumpToFirstSearchResult): (WebInspector.SourceFrame.prototype.jumpToLastSearchResult): (WebInspector.SourceFrame.prototype.jumpToNextSearchResult): (WebInspector.SourceFrame.prototype.jumpToPreviousSearchResult): (WebInspector.SourceFrame.prototype.jumpToSearchResult): (WebInspector.SourceFrame.prototype._collectRegexMatches): * inspector/front-end/utilities.js: (): 2011-05-16 Andreas Kling <kling@webkit.org> Reviewed by Darin Adler. CSS: Fast path for 'px' lengths should be case-insensitive. https://bugs.webkit.org/show_bug.cgi?id=60703 No new tests, this is an optimization that avoids creating a full CSSParser to parse the value. * css/CSSParser.cpp: (WebCore::parseSimpleLengthValue): 2011-05-16 Naiem Shaik <naiem.shaik@gmail.com> Reviewed by Adam Barth. This is for fixing build break in webgl due to https://bugs.webkit.org/show_bug.cgi?id=59861 The bug raised for fixing this is https://bugs.webkit.org/show_bug.cgi?id=60867 No new tests. This does not change any functionality. * platform/graphics/gtk/GraphicsContext3DGtk.cpp: (WebCore::GraphicsContext3D::create): * platform/graphics/gtk/GraphicsContext3DInternal.cpp: (WebCore::GraphicsContext3DInternal::create): * platform/graphics/gtk/GraphicsContext3DInternal.h: 2011-05-16 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: parse edited attributes by means of InspectorDOMAgent. https://bugs.webkit.org/show_bug.cgi?id=60807 This change moves attribute parsing from the front-end to the backend. * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::setAttribute): * inspector/front-end/DOMAgent.js: (WebInspector.DOMNode.prototype.setAttribute): * inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted.moveToNextAttributeIfNeeded): (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted): 2011-05-16 Nikolas Zimmermann <nzimmermann@rim.com> Not reviewed. Switch from Vector<UChar> to StringBuilder in dom/ https://bugs.webkit.org/show_bug.cgi?id=57843 Incorporate comment from Darin/Andreas. * dom/DatasetDOMStringMap.cpp: (WebCore::convertAttributeNameToPropertyName): Use 'character' local, instead of charaters[i]. (WebCore::convertPropertyNameToAttributeName): Ditto. 2011-05-16 Alexander Pavlov <apavlov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Fix SourceJavaScriptTokenizer keyword parsing https://bugs.webkit.org/show_bug.cgi?id=60773 * inspector/front-end/SourceJavaScriptTokenizer.js: (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken): * inspector/front-end/SourceJavaScriptTokenizer.re2js: 2011-05-16 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Darin Adler. Switch from Vector<UChar> to StringBuilder in dom/ https://bugs.webkit.org/show_bug.cgi?id=57843 * dom/DatasetDOMStringMap.cpp: (WebCore::convertAttributeNameToPropertyName): (WebCore::convertPropertyNameToAttributeName): * dom/Range.cpp: (WebCore::Range::toString): * dom/ScriptElement.cpp: (WebCore::ScriptElement::scriptContent): 2011-05-05 Pavel Podivilov <podivilov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: move double click handling from TextEditor to SourceFrame. https://bugs.webkit.org/show_bug.cgi?id=60271 It is SourceFrame's responsibility to check if content is editable and to configure TextEditor component (e.g. set editable range) when user tries to initiate editing. * inspector/front-end/ResourceView.js: (WebInspector.ResourceSourceFrame.prototype.doubleClick): (WebInspector.RevisionSourceFrame.prototype.doubleClick): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype.beforeTextChanged): (WebInspector.SourceFrame.prototype.afterTextChanged): (WebInspector.SourceFrame.prototype.doubleClick): (WebInspector.SourceFrame.prototype.commitEditing.didEditContent): (WebInspector.SourceFrame.prototype.commitEditing): (WebInspector.SourceFrame.prototype.cancelEditing): (WebInspector.SourceFrame.prototype._setReadOnly): * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype.set readOnly): (WebInspector.TextViewer.prototype._enterInternalTextChangeMode): (WebInspector.TextViewer.prototype._exitInternalTextChangeMode): (WebInspector.TextViewer.prototype._doubleClick): (WebInspector.TextViewer.prototype._commitEditing): (WebInspector.TextViewer.prototype._cancelEditing): (WebInspector.TextViewerDelegate.prototype.doubleClick): (WebInspector.TextViewerDelegate.prototype.beforeTextChanged): (WebInspector.TextViewerDelegate.prototype.afterTextChanged): 2011-05-15 Robert Hogan <robert@webkit.org> Reviewed by Yury Semikhatsky. [Qt] Fix crash in inspector/console/console-long-eval-crash.html https://bugs.webkit.org/show_bug.cgi?id=60858 The client may be gone when sendMessageToBackend() is called. * inspector/InspectorFrontendHost.cpp: (WebCore::InspectorFrontendHost::sendMessageToBackend): 2011-05-16 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. Replace direct StringConcatenate usage, by using operator+ (again) https://bugs.webkit.org/show_bug.cgi?id=60700 Remove makeString() usage everywhere, instead directly use operator+. * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition): * bindings/js/JSDOMWindowBase.cpp: * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::setBreakpoint): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::reportUnsafeAccessTo): * css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::borderSpacingValue): * dom/ExceptionBase.cpp: (WebCore::ExceptionBase::ExceptionBase): * dom/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::handleError): * html/FTPDirectoryDocument.cpp: (WebCore::processFileDateString): * inspector/CodeGeneratorInspector.pm: * inspector/InspectorConsoleAgent.cpp: (WebCore::InspectorConsoleAgent::count): (WebCore::InspectorConsoleAgent::didReceiveResponse): * inspector/InspectorDOMAgent.cpp: * inspector/InspectorDOMDebuggerAgent.cpp: (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded): * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::setBreakpointByUrl): (WebCore::InspectorDebuggerAgent::setBreakpoint): * loader/FrameLoader.cpp: (WebCore::FrameLoader::checkIfDisplayInsecureContent): (WebCore::FrameLoader::checkIfRunInsecureContent): (WebCore::FrameLoader::shouldAllowNavigation): * loader/archive/cf/LegacyWebArchive.cpp: (WebCore::LegacyWebArchive::createFromSelection): * loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::printAccessDeniedMessage): * page/ContentSecurityPolicy.cpp: (WebCore::CSPDirective::CSPDirective): (WebCore::ContentSecurityPolicy::checkSourceAndReportViolation): * page/DOMWindow.cpp: (WebCore::DOMWindow::postMessageTimerFired): (WebCore::DOMWindow::crossDomainAccessErrorMessage): * page/PageSerializer.cpp: (WebCore::SerializerMarkupAccumulator::SerializerMarkupAccumulator): (WebCore::SerializerMarkupAccumulator::appendElement): (WebCore::PageSerializer::urlForBlankFrame): * page/PrintContext.cpp: (WebCore::PrintContext::pageProperty): (WebCore::PrintContext::pageSizeAndMarginsInPixels): * platform/efl/PlatformKeyboardEventEfl.cpp: (WebCore::createKeyMap): (WebCore::createWindowsKeyMap): * platform/efl/RenderThemeEfl.cpp: (WebCore::RenderThemeEfl::formatMediaControlsCurrentTime): * platform/graphics/GraphicsLayer.cpp: (WebCore::GraphicsLayer::animationNameForTransition): * platform/graphics/brew/ImageBrew.cpp: (WebCore::Image::loadPlatformResource): * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::animationIdentifier): * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::CGImageToDataURL): * platform/graphics/gtk/ImageBufferGtk.cpp: (WebCore::ImageBuffer::toDataURL): * platform/graphics/haiku/ImageBufferHaiku.cpp: (WebCore::ImageBuffer::toDataURL): * platform/graphics/qt/ImageBufferQt.cpp: (WebCore::ImageBuffer::toDataURL): * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageToDataURL): * platform/network/CredentialStorage.cpp: (WebCore::originStringFromURL): * platform/network/cf/SocketStreamHandleCFNet.cpp: (WebCore::SocketStreamHandle::reportErrorToClient): * platform/sql/SQLiteDatabase.cpp: (WebCore::SQLiteDatabase::setSynchronous): * platform/text/wince/TextCodecWinCE.cpp: (WebCore::LanguageManager::LanguageManager): * platform/win/ClipboardUtilitiesWin.cpp: * platform/win/ClipboardWin.cpp: (WebCore::ClipboardWin::writeURL): * platform/win/FileSystemWin.cpp: (WebCore::listDirectory): * platform/win/LanguageWin.cpp: (WebCore::platformDefaultLanguage): * platform/win/PathWalker.cpp: (WebCore::PathWalker::PathWalker): * platform/win/SystemInfo.cpp: (WebCore::osVersionForUAString): (WebCore::windowsVersionForUAString): * plugins/PluginStream.cpp: (WebCore::PluginStream::startStream): * svg/SVGAngle.cpp: (WebCore::SVGAngle::valueAsString): * svg/SVGLength.cpp: (WebCore::SVGLength::valueAsString): * svg/SVGPaint.cpp: (WebCore::SVGPaint::cssText): * svg/SVGPointList.cpp: (WebCore::SVGPointList::valueAsString): * svg/SVGPreserveAspectRatio.cpp: (WebCore::SVGPreserveAspectRatio::valueAsString): * svg/SVGTransform.cpp: (WebCore::SVGTransform::valueAsString): * svg/SVGTransformList.cpp: * svg/SVGUseElement.cpp: (WebCore::dumpInstanceTree): * websockets/WebSocket.cpp: (WebCore::WebSocket::connect): * websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::didFail): (WebCore::WebSocketChannel::appendToBuffer): * websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::readServerHandshake): 2011-05-12 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: inspector console should be searchable https://bugs.webkit.org/show_bug.cgi?id=60711 Search now works for Console panel. It shows number of matching console entries and allows to jump to the next matching console entry. Also the matches count is dynamically updated when new messages are added to the console. ResourceTreeModel and DebuggerPresentationModel now listen to console events instead of being called directly from ConsoleView. * inspector/front-end/ConsolePanel.js: (WebInspector.ConsolePanel): (WebInspector.ConsolePanel.prototype.show): (WebInspector.ConsolePanel.prototype.hide): (WebInspector.ConsolePanel.prototype.searchCanceled): (WebInspector.ConsolePanel.prototype.performSearch): (WebInspector.ConsolePanel.prototype.jumpToNextSearchResult): (WebInspector.ConsolePanel.prototype.jumpToPreviousSearchResult): (WebInspector.ConsolePanel.prototype._clearCurrentSearchResultHighlight): (WebInspector.ConsolePanel.prototype._jumpToSearchResult): (WebInspector.ConsolePanel.prototype._consoleMessageAdded): (WebInspector.ConsolePanel.prototype._consoleCleared): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.addMessage): (WebInspector.ConsoleView.prototype.clearMessages): (WebInspector.ConsoleMessage.prototype.clearHighlight): (WebInspector.ConsoleMessage.prototype.highlightSearchResults): (WebInspector.ConsoleMessage.prototype.matchesRegex): (WebInspector.ConsoleMessage.prototype.toMessageElement): (WebInspector.ConsoleCommand.prototype.clearHighlight): (WebInspector.ConsoleCommand.prototype.highlightSearchResults): (WebInspector.ConsoleCommand.prototype.matchesRegex): (WebInspector.ConsoleCommand.prototype.toMessageElement): (WebInspector.ConsoleCommand.prototype._formatCommand): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel): (WebInspector.DebuggerPresentationModel.prototype.setFormatSourceFiles): (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded): (WebInspector.DebuggerPresentationModel.prototype._consoleCleared): * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel): (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel): (WebInspector.ScriptsPanel.prototype._consoleMessagesCleared): * inspector/front-end/utilities.js: (): 2011-05-16 Adam Barth <abarth@webkit.org> [Qt] QtPlatformPlugin create methods should use PassOwnPtr https://bugs.webkit.org/show_bug.cgi?id=60873 * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::platformStart): 2011-05-15 Adam Barth <abarth@webkit.org> Attempt to fix Qt build. (Strict PassOwnPtr fix.) * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::GraphicsLayerQt::GraphicsLayerQt): (WebCore::GraphicsLayer::create): 2011-05-15 Adam Barth <abarth@webkit.org> Attempt to fix Qt build. (Strict PassOwnPtr fix.) * platform/text/qt/TextCodecQt.cpp: (WebCore::newTextCodecQt): 2011-05-15 Adam Barth <abarth@webkit.org> Attempt to fix Qt build. (Strict PassOwnPtr fix.) * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyWrapper::release): (WebCore::QNetworkReplyWrapper::receiveMetaData): (WebCore::QNetworkReplyWrapper::receiveSniffedMIMEType): (WebCore::QNetworkReplyHandler::release): (WebCore::QNetworkReplyHandler::finish): (WebCore::QNetworkReplyHandler::redirect): (WebCore::QNetworkReplyHandler::start): 2011-05-15 Adam Barth <abarth@webkit.org> Attempt to fix Qt build. (Strict PassOwnPtr fix.) * dom/XMLDocumentParserQt.cpp: (WebCore::XMLDocumentParser::doEnd): 2011-05-15 Kenichi Ishibashi <bashi@chromium.org> Reviewed by Kent Tamura. <output>, <meter> and <progress> elements with display:block can be focused if you try to tab to it https://bugs.webkit.org/show_bug.cgi?id=60602 HTMLFormControlElement::isFocusable() returns true when the element is visible as a block element. However, for output, meter, and progress elements, the function should not return true unless they have tabindex attributes. Override supportsFocus() of these elements to apply the result of Node::supportsFocus() because it takes care of whether the element has tabindex or not. Test: fast/forms/focus-with-display-block.html * html/HTMLFormControlElement.h: Made supportsFocus() protected. * html/HTMLMeterElement.cpp: (WebCore::HTMLMeterElement::supportsFocus): Added. * html/HTMLMeterElement.h: * html/HTMLOutputElement.cpp: (WebCore::HTMLOutputElement::supportsFocus): Added. * html/HTMLOutputElement.h: * html/HTMLProgressElement.cpp: (WebCore::HTMLProgressElement::supportsFocus): Added. * html/HTMLProgressElement.h: 2011-05-15 Jon Lee <jonlee@apple.com> Reviewed by Dan Bernstein. Missing migration from Editor::TextCheckingOptions to TextCheckingType in SpellingCorrectionController.cpp https://bugs.webkit.org/show_bug.cgi?id=60870 * editing/SpellingCorrectionController.cpp: (WebCore::SpellingCorrectionController::correctionPanelTimerFired): Migrating to using TextCheckingType 2011-05-15 Geoffrey Garen <ggaren@apple.com> Reviewed by Gavin Barraclough. https://bugs.webkit.org/show_bug.cgi?id=59699 Global object is recreated on teardown, for no good reason (Another partial fix for <rdar://problem/9417875> REGRESSION: SunSpider ~7% slower in browser than on command line (was 17%)) I'm basically rolling out http://trac.webkit.org/changeset/49786 because (a) it created this performance problem and (b) a more complete fix, which obsoletes http://trac.webkit.org/changeset/49786, was committed in http://trac.webkit.org/changeset/53439. Tested with the file attached to https://bugs.webkit.org/show_bug.cgi?id=29832. * page/Frame.cpp: (WebCore::Frame::~Frame): Don't create a new window every time we destroy a frame. 2011-05-12 MORITA Hajime <morrita@google.com> ShadowContentElement should affect the order of renderer children https://bugs.webkit.org/show_bug.cgi?id=59157 Introduced ShadowContentSelector to collect and forward content children for each ShadowContentElement. ShadowRoot collects child nodes of its host (we call these children "content children"), and the descendant ShadowContentElement pulls that these content children and put it under its child during ShadowContentElement::attach(). Content children no longer create its renderer during its normal attach() phase (called "light" phase). And they create it during attach() as a content children instead (called "forwarded phase"). These phases are detected by NodeRendererFactory and represented as NodeRendererFactory::AttachPhase value AttachContentLight and AttachContentForwarded. Tests: fast/html/details-add-details-child-1.html fast/html/details-add-details-child-2.html fast/html/details-nested-1.html fast/html/details-nested-2.html * dom/Element.cpp: (WebCore::Element::attach): (WebCore::Element::childrenChanged): * dom/Node.cpp: (WebCore::NodeRendererFactory::NodeRendererFactory): (WebCore::NodeRendererFactory::shouldCreateRenderer): (WebCore::NodeRendererFactory::nextRenderer): (WebCore::NodeRendererFactory::createRendererIfNeeded): * dom/ShadowRoot.cpp: (WebCore::forceReattach): (WebCore::ShadowContentSelector::shadowRoot): (WebCore::ShadowContentSelector::activeElement): (WebCore::ShadowContentSelector::currentInstance): (WebCore::ShadowContentSelector::ShadowContentSelector): (WebCore::ShadowContentSelector::~ShadowContentSelector): (WebCore::ShadowContentSelector::attachChildrenFor): (WebCore::ShadowContentElement::attach): (WebCore::ShadowRoot::recalcStyle): (WebCore::ShadowRoot::activeContentContainer): (WebCore::ShadowRoot::hostChildrenChanged): (WebCore::ShadowRoot::attach): * dom/ShadowRoot.h: * html/shadow/ShadowContentElement.h: (WebCore::ShadowContentElement::rendererIsNeeded): * rendering/RenderDetails.cpp: * rendering/RenderDetails.h: 2011-05-13 MORITA Hajime <morrita@google.com> Reviewed by Ryosuke Niwa. Refactoring: Editor::TextCheckingOptions should be replaced with TextCheckingType https://bugs.webkit.org/show_bug.cgi?id=57088 Removed Editor::TextCheckingOptions and replaced it with TextCheckingTypeMask No new tests, no behavior change. * editing/Editor.cpp: (WebCore::Editor::replaceSelectionWithFragment): (WebCore::Editor::markMisspellingsAfterTypingToWord): (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): (WebCore::Editor::markMisspellingsAndBadGrammar): (WebCore::Editor::resolveTextCheckingTypeMask): * editing/Editor.h: * platform/text/TextChecking.h: Added TextCheckingTypeShowCorrectionPanel 2011-05-15 Ilya Tikhonovsky <loislo@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: chromium renderer crash at eval in console. https://bugs.webkit.org/show_bug.cgi?id=60616 Renderer of inspected page is crashing when modal dialog has been opened via console eval and page is reloaded. Test: inspector/console/console-long-eval-crash.html * inspector/CodeGeneratorInspector.pm: * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::dispatchMessageFromFrontend): * inspector/InspectorController.h: 2011-05-15 Eric Carlson <eric.carlson@apple.com> Reviewed by Maciej Stachowiak. Use new AVAssetReferenceRestrictions to prevent cross site media references https://bugs.webkit.org/show_bug.cgi?id=60791 <rdar://problem/9374202> Test: http/tests/media/video-cross-site.html * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Set restriction to prevent cross-domain references from being followed. 2011-05-15 Arno Renevier <arno@renevier.net> Reviewed by Darin Adler. remove unecessary includes from Source/WebCore/html/HTMLFrameElementBase.cpp https://bugs.webkit.org/show_bug.cgi?id=60775 No new tests. This change only impacts compilation. * html/HTMLFrameElementBase.cpp: 2011-05-14 Malcolm MacLeod <malcolm.macleod@tshwanedje.com> Reviewed by Kevin Ollivier. [wx] Fix strokeArc and fillRoundedRect drawing, and add clipPath support. https://bugs.webkit.org/show_bug.cgi?id=60847 * platform/graphics/wx/GraphicsContextWx.cpp: (WebCore::GraphicsContext::strokeArc): (WebCore::GraphicsContext::clipConvexPolygon): (WebCore::GraphicsContext::fillRoundedRect): (WebCore::GraphicsContext::drawFocusRing): (WebCore::GraphicsContext::clipOut): (WebCore::GraphicsContext::clipPath): (WebCore::GraphicsContext::clip): (WebCore::GraphicsContext::addInnerRoundedRectClip): 2011-05-14 Eric Carlson <eric.carlson@apple.com> Reviewed by Dan Bernstein. HTTP video-on-demand streams frequently have live stream UI https://bugs.webkit.org/show_bug.cgi?id=60849 <rdar://problem/9440502> No new tests, we don't currently have tests for http live streams. Changes verified manually. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerDurationChanged): Reset the media controls so a duration change which identifies a format will be picked up. (WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): New, reset media controls so they can be reconfigured for the media file characteristics. * html/HTMLMediaElement.h: * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::characteristicChanged): New, pass through to the element. * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerCharacteristicChanged): * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::setHasVideo): Call characteristicChanged when setting changes. (WebCore::MediaPlayerPrivateAVFoundation::setHasAudio): Ditto. (WebCore::MediaPlayerPrivateAVFoundation::setHasClosedCaptions): Ditto. (WebCore::MediaPlayerPrivateAVFoundation::loadedTimeRangesChanged): Move the duration change notification logic to invalidateCachedDuration. (WebCore::MediaPlayerPrivateAVFoundation::invalidateCachedDuration): New, invalidate the cached duration and notify the element when it changes. (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Call invalidateCachedDuration for the DurationChanged notification. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: Define DurationChanged. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): Don't check asset or item duration until they have been loaded. (WebCore::itemKVOProperties): Listen for duration change. (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Deal with duration change notification. 2011-05-14 Abhishek Arya <inferno@chromium.org> Reviewed by Dan Bernstein. As per spec, only allow one font family name in a font face rule. Other things like initial value, inherited value or multiple names are discarded. https://bugs.webkit.org/show_bug.cgi?id=60837 Test: fast/css/invalid-font-family-in-font-face-crash.html * css/CSSParser.cpp: (WebCore::CSSParser::createFontFaceRule): 2011-05-13 Oliver Hunt <oliver@apple.com> Reviewed by Geoffrey Garen. Make GC validation more aggressive https://bugs.webkit.org/show_bug.cgi?id=60802 This makes GC_VALIDATION much more aggressive in webcore, adding logic to every visitChildren method to ensure that the structure still has correct flags. Additionally every function generated for the dom bindings makes use of the new GC_VALIDATION object assertions to further ensure that the object appears to be sensible. * bindings/js/JSAttrCustom.cpp: (WebCore::JSAttr::visitChildren): * bindings/js/JSAudioContextCustom.cpp: (WebCore::JSAudioContext::visitChildren): * bindings/js/JSCSSRuleCustom.cpp: (WebCore::JSCSSRule::visitChildren): * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::visitChildren): * bindings/js/JSCanvasRenderingContextCustom.cpp: (WebCore::JSCanvasRenderingContext::visitChildren): * bindings/js/JSDOMGlobalObject.cpp: (WebCore::JSDOMGlobalObject::visitChildren): (WebCore::JSDOMGlobalObject::setInjectedScript): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::visitChildren): * bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::visitChildren): * bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): * bindings/js/JSEventListener.h: (WebCore::JSEventListener::jsFunction): * bindings/js/JSJavaScriptAudioNodeCustom.cpp: (WebCore::JSJavaScriptAudioNode::visitChildren): * bindings/js/JSMessageChannelCustom.cpp: (WebCore::JSMessageChannel::visitChildren): * bindings/js/JSMessagePortCustom.cpp: (WebCore::JSMessagePort::visitChildren): * bindings/js/JSNamedNodeMapCustom.cpp: (WebCore::JSNamedNodeMap::visitChildren): * bindings/js/JSNodeCustom.cpp: (WebCore::JSNode::visitChildren): * bindings/js/JSNodeFilterCustom.cpp: (WebCore::JSNodeFilter::visitChildren): * bindings/js/JSNodeIteratorCustom.cpp: (WebCore::JSNodeIterator::visitChildren): * bindings/js/JSSVGElementInstanceCustom.cpp: (WebCore::JSSVGElementInstance::visitChildren): * bindings/js/JSSharedWorkerCustom.cpp: (WebCore::JSSharedWorker::visitChildren): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::JSStyleSheet::visitChildren): * bindings/js/JSTreeWalkerCustom.cpp: (WebCore::JSTreeWalker::visitChildren): * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::JSWebGLRenderingContext::visitChildren): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::visitChildren): * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::visitChildren): * bindings/js/JSXPathResultCustom.cpp: (WebCore::JSXPathResult::visitChildren): * bindings/scripts/CodeGeneratorJS.pm: 2011-05-13 Oliver Hunt <oliver@apple.com> Reviewed by Geoffrey Garen. Make GC validation more aggressive https://bugs.webkit.org/show_bug.cgi?id=60802 This makes GC_VALIDATION much more aggressive in webcore, adding logic to every visitChildren method to ensure that the structure still has correct flags. Additionally every function generated for the dom bindings makes use of the new GC_VALIDATION object assertions to further ensure that the object appears to be sensible. * bindings/js/JSAttrCustom.cpp: (WebCore::JSAttr::visitChildren): * bindings/js/JSAudioContextCustom.cpp: (WebCore::JSAudioContext::visitChildren): * bindings/js/JSCSSRuleCustom.cpp: (WebCore::JSCSSRule::visitChildren): * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::visitChildren): * bindings/js/JSCanvasRenderingContextCustom.cpp: (WebCore::JSCanvasRenderingContext::visitChildren): * bindings/js/JSDOMGlobalObject.cpp: (WebCore::JSDOMGlobalObject::visitChildren): (WebCore::JSDOMGlobalObject::setInjectedScript): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::visitChildren): * bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::visitChildren): * bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): * bindings/js/JSEventListener.h: (WebCore::JSEventListener::jsFunction): * bindings/js/JSJavaScriptAudioNodeCustom.cpp: (WebCore::JSJavaScriptAudioNode::visitChildren): * bindings/js/JSMessageChannelCustom.cpp: (WebCore::JSMessageChannel::visitChildren): * bindings/js/JSMessagePortCustom.cpp: (WebCore::JSMessagePort::visitChildren): * bindings/js/JSNamedNodeMapCustom.cpp: (WebCore::JSNamedNodeMap::visitChildren): * bindings/js/JSNodeCustom.cpp: (WebCore::JSNode::visitChildren): * bindings/js/JSNodeFilterCustom.cpp: (WebCore::JSNodeFilter::visitChildren): * bindings/js/JSNodeIteratorCustom.cpp: (WebCore::JSNodeIterator::visitChildren): * bindings/js/JSSVGElementInstanceCustom.cpp: (WebCore::JSSVGElementInstance::visitChildren): * bindings/js/JSSharedWorkerCustom.cpp: (WebCore::JSSharedWorker::visitChildren): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::JSStyleSheet::visitChildren): * bindings/js/JSTreeWalkerCustom.cpp: (WebCore::JSTreeWalker::visitChildren): * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::JSWebGLRenderingContext::visitChildren): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::visitChildren): * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::visitChildren): * bindings/js/JSXPathResultCustom.cpp: (WebCore::JSXPathResult::visitChildren): * bindings/scripts/CodeGeneratorJS.pm: 2011-05-14 Oliver Hunt <oliver@apple.com> Reviewed by Anders Carlsson. Make Qt bindings GC safe https://bugs.webkit.org/show_bug.cgi?id=60841 Trying to do cache management by using "this" as a key from a GC object's destructor leads to a violation of GC semantics. Make the qt bindings use a Weak<> handle for finalization. * bridge/qt/qt_runtime.cpp: (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod): (JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod): * bridge/qt/qt_runtime.h: (JSC::Bindings::QtRuntimeMethodData::finalize): 2011-05-14 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Eric Seidel. Make canHaveChildrenForEditing more efficient https://bugs.webkit.org/show_bug.cgi?id=53564 Improved the performance (1-2% in release and 20% in debug) by adding virtual member function canContainRangeEndPoint to Node. It returns true whenever the associated node can have be a container node for a position. As of this revision, canContainRangeEndPoint returns true on Document, DocumentFragment, Text nodes and any elements except: HTML: applet, br, embed, frame, frameset, hr (unless has children), img, input, keygen, meter, object (unless uses fallback content), output, progress, select, and textarea. No new tests are added since this change cannot be tested directly. * dom/Document.h: (WebCore::Document::canContainRangeEndPoint): Added; returns false. * dom/DocumentFragment.h: (WebCore::DocumentFragment::canContainRangeEndPoint): Added; returns true. * dom/Element.h: (WebCore::Element::canContainRangeEndPoint): Ditto. * dom/Node.h: (WebCore::Node::canContainRangeEndPoint): Added; returns false. * dom/Text.h: (WebCore::Text::canContainRangeEndPoint): Added; returns true. * editing/htmlediting.cpp: Removed editingIgnoresContent and canHaveChildrenForEditing. * editing/htmlediting.h: (WebCore::editingIgnoresContent): Moved from htmlediting.cpp; made it inline. (WebCore::canHaveChildrenForEditing): Ditto. * html/HTMLBRElement.h: (WebCore::HTMLBRElement::canContainRangeEndPoint): Added; returns false. * html/HTMLButtonElement.h: (WebCore::HTMLDataGridElement::canContainRangeEndPoint): Ditto. * html/HTMLFormControlElement.h: (WebCore::HTMLFormControlElementWithState::canContainRangeEndPoint): Ditto. * html/HTMLFrameElementBase.h: (WebCore::HTMLFrameElementBase::canContainRangeEndPoint): Ditto. * html/HTMLImageElement.h: (WebCore::HTMLImageElement::canContainRangeEndPoint): Ditto. * html/HTMLMeterElement.h: (WebCore::HTMLMeterElement::canContainRangeEndPoint): Ditto. * html/HTMLOutputElement.h: (WebCore::HTMLOutputElement::canContainRangeEndPoint): Ditto. * html/HTMLPlugInElement.h: (WebCore::HTMLPlugInElement::canContainRangeEndPoint): Ditto. * html/HTMLProgressElement.h: (WebCore::HTMLProgressElement::canContainRangeEndPoint): Ditto. * html/HTMLHRElement.h: (WebCore::HTMLHRElement::canContainRangeEndPoint): Added; returns true iff it has children. * html/HTMLObjectElement.h: (WebCore::HTMLObjectElement::canContainRangeEndPoint): Added; returns true iff it uses fallback content. 2011-05-14 Jeremy Noble <jer.noble@apple.com> Reviewed by Darin Adler. Exiting full screen causes <video> element inline controls to become visible https://bugs.webkit.org/show_bug.cgi?id=60142 Create a queue of elements who must be targeted with webkitfullscreenchange events. Instead of dispatching a single event with whatever the current value of m_fullScreenElement is (which may have been cleared, or changed since the timer was asked to fire), dispatch one event for each entry in the queue. Test: fullscreen/video-controls-override.html * dom/Document.cpp: (WebCore::Document::webkitDidEnterFullScreenForElement): Push current full screen element onto the webkitfullscreenchange event delay queue. (WebCore::Document::webkitDidExitFullScreenForElement): Ditto. (WebCore::Document::fullScreenElementRemoved): Ditto. (WebCore::Document::fullScreenChangeDelayTimerFired): Empty the queue, dispatching a webkitfullscreenchange event for each entry. * dom/Document.h: 2011-05-14 Patrick Gansterer <paroga@webkit.org> Reviewed by Andreas Kling. Buildfix for SharedTimerWx.cpp https://bugs.webkit.org/show_bug.cgi?id=60829 * platform/wx/SharedTimerWx.cpp: (WebCore::WebKitTimer::WebKitTimer): We can't call the constructor of a base class in the body of the constructor. 2011-05-14 Patrick Gansterer <paroga@webkit.org> Unreviewed WinCE build fix for r86477. Remove the global namespace prefix from GlobalLock/GlobalUnlock. * platform/win/ClipboardUtilitiesWin.cpp: 2011-05-14 Csaba Osztrogonác <ossy@webkit.org> Unreviewed, rolling out r86469 and r86471, because they made hundreds tests crash on Qt. Make GC validation more aggressive https://bugs.webkit.org/show_bug.cgi?id=60802 * bindings/js/JSAttrCustom.cpp: (WebCore::JSAttr::visitChildren): * bindings/js/JSAudioContextCustom.cpp: (WebCore::JSAudioContext::visitChildren): * bindings/js/JSCSSRuleCustom.cpp: (WebCore::JSCSSRule::visitChildren): * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::visitChildren): * bindings/js/JSCanvasRenderingContextCustom.cpp: (WebCore::JSCanvasRenderingContext::visitChildren): * bindings/js/JSDOMGlobalObject.cpp: (WebCore::JSDOMGlobalObject::visitChildren): (WebCore::JSDOMGlobalObject::setInjectedScript): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::visitChildren): * bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::visitChildren): * bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): * bindings/js/JSEventListener.h: (WebCore::JSEventListener::jsFunction): * bindings/js/JSJavaScriptAudioNodeCustom.cpp: (WebCore::JSJavaScriptAudioNode::visitChildren): * bindings/js/JSMessageChannelCustom.cpp: (WebCore::JSMessageChannel::visitChildren): * bindings/js/JSMessagePortCustom.cpp: (WebCore::JSMessagePort::visitChildren): * bindings/js/JSNamedNodeMapCustom.cpp: (WebCore::JSNamedNodeMap::visitChildren): * bindings/js/JSNodeCustom.cpp: (WebCore::JSNode::visitChildren): * bindings/js/JSNodeFilterCustom.cpp: (WebCore::JSNodeFilter::visitChildren): * bindings/js/JSNodeIteratorCustom.cpp: (WebCore::JSNodeIterator::visitChildren): * bindings/js/JSSVGElementInstanceCustom.cpp: (WebCore::JSSVGElementInstance::visitChildren): * bindings/js/JSSharedWorkerCustom.cpp: (WebCore::JSSharedWorker::visitChildren): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::JSStyleSheet::visitChildren): * bindings/js/JSTreeWalkerCustom.cpp: (WebCore::JSTreeWalker::visitChildren): * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::JSWebGLRenderingContext::visitChildren): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::visitChildren): * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::visitChildren): * bindings/js/JSXPathResultCustom.cpp: (WebCore::JSXPathResult::visitChildren): * bindings/scripts/CodeGeneratorJS.pm: 2011-05-13 Alexey Proskuryakov <ap@apple.com> Reviewed by Darin Adler. HTML5 Application Cache Update Failures on Page Refresh https://bugs.webkit.org/show_bug.cgi?id=60598 <rdar://problem/9418639> Test: http/tests/appcache/interrupted-update.html The reason was two-fold: 1) Cache group state wasn't fully reset after a failed cache update (or an initial load). 2) The cache group is not deleted until after after the navigation (from autorelease pool), so the failed and sorry old version was picked up by cache selection algorithm. The latter is more of a surprising behavior than a problem in itself. Keeping an appcache in memory for reload is generally a good thing for performance. * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::stopLoading): Added a FIXME about half-baked state resetting code that sent me looking for a wrong fix originally. (WebCore::ApplicationCacheGroup::stopLoadingInFrame): Stopped load is an update failure like any other, so we should call cacheUpdateFailed(), which knows how to reset state. 2011-05-13 Enrica Casucci <enrica@apple.com> Reviewed by Darin Adler and Brian Weinstein. REGRESSION (WK2): Can't drag and drop a link or image from Safari to Desktop https://bugs.webkit.org/show_bug.cgi?id=60819 <rdar://problem/9370689> To support drag-and-drop to the desktop and other windows applications, we need to support the fileDescriptor and fileContentZero clipboard formats. This patch adds the support for serializing these types across the process boundary. It also fixes a regression introduced by r70914, that was causing the content of the shortcut files to be corrupted. Using ascii() to convert from String to CString was causing '\n' and '\r' to be replaced with '?'. * platform/DragData.h: * platform/win/ClipboardUtilitiesWin.cpp: (WebCore::fileDescriptorFormat): Moved from ClipboardWin.cpp. (WebCore::fileContentFormatZero): Moved from ClipboardWin.cpp. (WebCore::getFileDescriptorData): Serialize FileDescriptor type. (WebCore::getFileContentData): Serialize FileContent type. (WebCore::setFileDescriptorData): Deserialize FileDescriptor type. (WebCore::setFileContentData): Deserialize FileContent type. (WebCore::setCFData): Added missing initialization of the tymed field that was causing the cfHDrop format not to be deserialized correctly. * platform/win/ClipboardUtilitiesWin.h: * platform/win/ClipboardWin.cpp: (WebCore::createGlobalHDropContent): Changed ascii() to latin1(). (WebCore::ClipboardWin::writeURL): * platform/win/DragDataWin.cpp: (WebCore::DragData::getDragFileDescriptorData): (WebCore::DragData::getDragFileContentData): 2011-05-13 Daniel Cheng <dcheng@chromium.org> Fix the build. Add includes that the builders are suddenly complaining about... * page/DragState.h: 2011-05-13 Daniel Cheng <dcheng@chromium.org> Reviewed by Tony Chang. Improve drag start logic https://bugs.webkit.org/show_bug.cgi?id=59409 Rewrite and simplify the dragging logic to better match IE, Firefox, and the behavior defined in the spec. Among other things: - draggableNode() no longer returns text nodes when dragging anchors. - When starting a drag over an image in a selection, prefer to drag the selection. - Several redundant hit tests have been removed. - Minor refactoring to make the logic easier to follow. Test: platform/mac/editing/pasteboard/drag-selections-to-contenteditable.html * WebCore.xcodeproj/project.pbxproj: * page/DragController.cpp: (WebCore::DragController::draggableNode): (WebCore::DragController::startDrag): * page/DragController.h: * page/DragState.h: (WebCore::DragState::shouldDispatchEvents): * page/EventHandler.cpp: (WebCore::EventHandler::EventHandler): (WebCore::EventHandler::eventMayStartDrag): (WebCore::EventHandler::updateDragSourceActionsAllowed): (WebCore::EventHandler::updateDragAndDrop): (WebCore::EventHandler::cancelDragAndDrop): (WebCore::EventHandler::dragHysteresisExceeded): (WebCore::EventHandler::dragSourceEndedAt): (WebCore::ExactlyOneBitSet): (WebCore::EventHandler::handleDrag): * page/EventHandler.h: 2011-05-13 Oliver Hunt <oliver@apple.com> Reviewed by Geoffrey Garen. Make GC validation more aggressive https://bugs.webkit.org/show_bug.cgi?id=60802 This makes GC_VALIDATION much more aggressive in webcore, adding logic to every visitChildren method to ensure that the structure still has correct flags. Additionally every function generated for the dom bindings makes use of the new GC_VALIDATION object assertions to further ensure that the object appears to be sensible. * bindings/js/JSAttrCustom.cpp: (WebCore::JSAttr::visitChildren): * bindings/js/JSAudioContextCustom.cpp: (WebCore::JSAudioContext::visitChildren): * bindings/js/JSCSSRuleCustom.cpp: (WebCore::JSCSSRule::visitChildren): * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::visitChildren): * bindings/js/JSCanvasRenderingContextCustom.cpp: (WebCore::JSCanvasRenderingContext::visitChildren): * bindings/js/JSDOMGlobalObject.cpp: (WebCore::JSDOMGlobalObject::visitChildren): (WebCore::JSDOMGlobalObject::setInjectedScript): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::visitChildren): * bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::visitChildren): * bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): * bindings/js/JSEventListener.h: (WebCore::JSEventListener::jsFunction): * bindings/js/JSJavaScriptAudioNodeCustom.cpp: (WebCore::JSJavaScriptAudioNode::visitChildren): * bindings/js/JSMessageChannelCustom.cpp: (WebCore::JSMessageChannel::visitChildren): * bindings/js/JSMessagePortCustom.cpp: (WebCore::JSMessagePort::visitChildren): * bindings/js/JSNamedNodeMapCustom.cpp: (WebCore::JSNamedNodeMap::visitChildren): * bindings/js/JSNodeCustom.cpp: (WebCore::JSNode::visitChildren): * bindings/js/JSNodeFilterCustom.cpp: (WebCore::JSNodeFilter::visitChildren): * bindings/js/JSNodeIteratorCustom.cpp: (WebCore::JSNodeIterator::visitChildren): * bindings/js/JSSVGElementInstanceCustom.cpp: (WebCore::JSSVGElementInstance::visitChildren): * bindings/js/JSSharedWorkerCustom.cpp: (WebCore::JSSharedWorker::visitChildren): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::JSStyleSheet::visitChildren): * bindings/js/JSTreeWalkerCustom.cpp: (WebCore::JSTreeWalker::visitChildren): * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::JSWebGLRenderingContext::visitChildren): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::visitChildren): * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::visitChildren): * bindings/js/JSXPathResultCustom.cpp: (WebCore::JSXPathResult::visitChildren): * bindings/scripts/CodeGeneratorJS.pm: 2011-05-13 Mikhail Naganov <mnaganov@chromium.org> Web Inspector: Unreviewed image glyph position fix in CSS after r85588. * inspector/front-end/heapProfiler.css: (.heapshot-help-status-bar-item .glyph): 2011-05-13 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. iframe sandbox doesn't properly block popups https://bugs.webkit.org/show_bug.cgi?id=60784 Previously, we weren't implementing this requirement from the spec: "This flag also prevents content from creating new auxiliary browsing contexts, e.g. using the target attribute or the window.open() method." Tests: http/tests/security/no-popup-from-sandbox-top.html http/tests/security/no-popup-from-sandbox.html * loader/PolicyChecker.cpp: (WebCore::PolicyChecker::checkNewWindowPolicy): 2011-05-13 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Darin Adler. click event shouldn't fire when the target is ever removed in mouseup https://bugs.webkit.org/show_bug.cgi?id=60600 Fixed the bug by invalidating m_clickNode when it or one of its ancestors has been removed from the document. New behavior matches Internet Explorer and Firefox. Tests: fast/events/remove-target-in-mouseup-deep.html fast/events/remove-target-in-mouseup-insertback.html fast/events/remove-target-in-mouseup-twice.html fast/events/remove-target-in-mouseup.html * dom/Document.cpp: (WebCore::Document::nodeChildrenWillBeRemoved): Calls EventHandler::nodeWillBeRemoved. (WebCore::Document::nodeWillBeRemoved): Calls EventHandler::nodeWillBeRemoved. * page/EventHandler.cpp: (WebCore::EventHandler::nodeWillBeRemoved): Added; invalidates m_clickNode when m_clickNode or one of its ancestor is removed from the document. * page/EventHandler.h: 2011-05-13 Alexey Proskuryakov <ap@apple.com> Reviewed by Joseph Pecoraro. Hide appcache status bar items https://bugs.webkit.org/show_bug.cgi?id=60799 We have a number of non-trivial bugs that make these more misleading than helpful to developers. * inspector/front-end/ApplicationCacheItemsView.js: (WebInspector.ApplicationCacheItemsView): Just hide the items for now. Removing all support code would be complicated, and not helpful. 2011-05-13 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. indexedDB is visible inside iframe sandbox https://bugs.webkit.org/show_bug.cgi?id=60785 We're supposed to return a null indexedDB factory when inside an iframe sandbox. Test: http/tests/security/no-indexeddb-from-sandbox.html * page/DOMWindow.cpp: (WebCore::DOMWindow::webkitIndexedDB): 2011-05-13 Adam Roben <aroben@apple.com> Fix manual tests that got broken by the move of WebCore into Source * manual-tests/plugins/object-clipping.html: * manual-tests/pointer-events.html: * manual-tests/video-waiting-seeking.html: Updated some paths. 2011-05-13 Nat Duca <nduca@chromium.org> Reviewed by James Robinson. [chromium] compositing tests are failing https://bugs.webkit.org/show_bug.cgi?id=60738 Bind texture before setting its filtering state. * platform/graphics/chromium/LayerTilerChromium.cpp: (WebCore::LayerTilerChromium::updateFromPixels): 2011-05-13 Alexey Proskuryakov <ap@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=60787 Add some assertions to ApplicationCacheGroup * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::finishedLoadingMainResource): Check that count doesn't underflow. (WebCore::ApplicationCacheGroup::failedLoadingMainResource): Ditto. (WebCore::ApplicationCacheGroup::stopLoading): Check that we are the handle's client before resetting it. (WebCore::ApplicationCacheGroup::update): Check that there isn't a stale current handle or resource hanging around. (WebCore::ApplicationCacheGroup::didFail): Check that the handle is either manifest or current one. 2011-05-13 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. Prune #includes from FrameView.h (Part 2) https://bugs.webkit.org/show_bug.cgi?id=60748 - Replace #includes in FrameView.h of Frame.h and Page.h with Color.h, wtf/text/WTFString.h, and the new AdjustViewSizeOrNot.h - Update files that were depending on FrameView.h #including Frame.h or Page.h. * GNUmakefile.list.am: * WebCore.exp.in: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AccessibilityRenderObject.cpp: * accessibility/AccessibilityScrollView.cpp: * accessibility/chromium/AXObjectCacheChromium.cpp: * accessibility/mac/AccessibilityObjectWrapper.mm: * css/MediaQueryMatcher.cpp: * dom/Range.cpp: * editing/SpellingCorrectionController.cpp: * history/CachedFrame.cpp: * html/HTMLBodyElement.cpp: * html/canvas/WebGLRenderingContext.cpp: * html/parser/HTMLParserScheduler.cpp: * page/AdjustViewSizeOrNot.h: Added. * page/EditorClient.h: * page/Frame.h: * page/FrameView.cpp: (WebCore::FrameView::forceLayoutForPagination): * page/FrameView.h: * page/PrintContext.cpp: (WebCore::PrintContext::begin): (WebCore::PrintContext::end): * page/chromium/FrameChromium.cpp: * page/win/FrameCGWin.cpp: * page/win/FrameWin.cpp: * platform/efl/PopupMenuEfl.cpp: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: * platform/graphics/qt/MediaPlayerPrivateQt.cpp: * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: * platform/gtk/WidgetGtk.cpp: * plugins/IFrameShimSupport.cpp: * rendering/RenderBlock.cpp: * rendering/RenderBoxModelObject.cpp: * rendering/RenderFrameBase.cpp: * rendering/RenderIFrame.cpp: * rendering/RenderMenuList.cpp: * rendering/RenderTextControlSingleLine.cpp: * rendering/RenderWidget.cpp: * svg/SVGSVGElement.cpp: 2011-05-13 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Switch paintCollapsedBorder to use IntRect https://bugs.webkit.org/show_bug.cgi?id=60739 Updating the last offending paint function that takes four ints instead of an IntRect. No new tests as this is simple refactoring. * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paint): (WebCore::RenderTableCell::paintCollapsedBorder): * rendering/RenderTableCell.h: 2011-05-13 Abhishek Arya <inferno@chromium.org> Reviewed by Dave Hyatt. Regression(r75823): Revert initialization back to the first RenderBlock in the parent chain. https://bugs.webkit.org/show_bug.cgi?id=60780 Test: fast/block/float/float-not-removed-crash.html * rendering/RenderBox.cpp: (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists): In r75823, I forgot to initialize parentBlock, when the original code did and Hyatt did mention in c#5. Now, initializing parentBlock to the first RenderBlock in the parent chain. 2011-05-05 Pavel Podivilov <podivilov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: TextEditor should support editing a range. https://bugs.webkit.org/show_bug.cgi?id=59688 * inspector/front-end/TextViewer.js: (WebInspector.TextEditorChunkedPanel.prototype.makeLineAChunk): (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine): (WebInspector.TextEditorMainPanel.prototype.setEditableRange): (WebInspector.TextEditorMainPanel.prototype.clearEditableRange): (WebInspector.TextEditorMainPanel.prototype._splitChunkOnALine): (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates): (WebInspector.TextEditorMainChunk): (WebInspector.TextEditorMainChunk.prototype.set expanded): (WebInspector.TextEditorMainChunk.prototype.set readOnly): (WebInspector.TextEditorMainChunk.prototype.get readOnly): (WebInspector.TextEditorMainChunk.prototype._updateElementReadOnlyState): * inspector/front-end/textViewer.css: (.text-editor-read-only): 2011-05-05 Pavel Podivilov <podivilov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: fix source mapping for formatted scripts. https://bugs.webkit.org/show_bug.cgi?id=60263 Source mapping is broken for script chunks that are already formatted at the beginning and at the end of the script (see script-formatter.html). * inspector/front-end/ScriptFormatter.js: (WebInspector.ScriptFormatter.prototype._didFormatContent): (WebInspector.FormattedSourceMapping): (WebInspector.FormattedSourceMapping.prototype.originalToFormatted): (WebInspector.FormattedSourceMapping.prototype.formattedToOriginal): (WebInspector.FormattedSourceMapping.prototype._convertPosition): * inspector/front-end/ScriptFormatterWorker.js: (onmessage): (HTMLScriptFormatter.prototype.format): * inspector/front-end/SourceFile.js: (WebInspector.FormattedSourceFile.prototype._didRequestContent): (WebInspector.SourceMappingForFormattedSourceFile): (WebInspector.SourceMappingForFormattedSourceFile.prototype.scriptLocationToSourceLine): (WebInspector.SourceMappingForFormattedSourceFile.prototype.sourceLineToScriptLocation): 2011-05-13 Adam Roben <aroben@apple.com> Tell ScrollView's child Widgets that their frame rects have changed when its own frame rect changes r79167 moved some code from setFrameRect to setBoundsSize, including a call to frameRectsChanged. This was done because positionScrollbarLayers, which is called by frameRectsChanged, only needs to be called when the bounds change, not when the frame rect changes. But the recursive calls inside frameRectsChanged *do* need to be called when the frame rect changes. This patch moves the positionScrollbarLayers call out of frameRectsChanged, since it needs to be called at different times from frameRectsChanged. Then it restores the frameRectsChanged call to setFrameRect, which fixes the bug. Test: platform/win/plugins/iframe-inside-overflow.html Fixes <http://webkit.org/b/60194> <rdar://problem/9383760> REGRESSION (r79167): Windowed plugins in Google Reader don't move when the article list is scrolled Reviewed by Dan Bernstein. * platform/ScrollView.cpp: (WebCore::ScrollView::updateScrollbars): Added a positionScrollbarLayers call here now that frameRectsChanged doesn't call it for us. Also added a FIXME because it seems strange to call frameRectsChanged here when our frame rect hasn't changed. (WebCore::ScrollView::setFrameRect): Added back the frameRectsChanged call that was removed in r79167. (WebCore::ScrollView::setBoundsSize): Replaced a frameRectsChanged call with a call to positionScrollbarLayers. We were only calling frameRectsChanged here in order to get positionScrollbarLayers to be called. (WebCore::ScrollView::frameRectsChanged): Removed the call to positionScrollbarLayers. All callers of frameRectsChanged have been updated to call positionScrollbarLayers if needed. 2011-05-13 Martin Robinson <mrobinson@igalia.com> Reviewed by Eric Seidel. [GTK] Share the GTK+ key binding code between WebKit1 and WebKit2 https://bugs.webkit.org/show_bug.cgi?id=59765 Move the keybinding code form WebKit1/WebKit2 to this utility class. This code is almost directly moved from the WebKit layer. No new tests. This is covered by the editing tests. * GNUmakefile.list.am: * platform/gtk/KeyBindingTranslator.cpp: Added. (WebCore::backspaceCallback):Added. (WebCore::selectAllCallback):Added. (WebCore::cutClipboardCallback):Added. (WebCore::copyClipboardCallback):Added. (WebCore::pasteClipboardCallback):Added. (WebCore::toggleOverwriteCallback):Added. (WebCore::popupMenuCallback):Added. (WebCore::showHelpCallback):Added. (WebCore::deleteFromCursorCallback):Added. (WebCore::moveCursorCallback):Added. (WebCore::KeyBindingTranslator::KeyBindingTranslator):Added. (WebCore::KeyBindingTranslator::getEditorCommandsForKeyEvent):Added. * platform/gtk/KeyBindingTranslator.h: Added. (WebCore::KeyBindingTranslator::addPendingEditorCommand):Added. 2011-05-01 Holger Hans Peter Freyther <holger@moiji-mobile.com> Reviewed by Adam Barth. [android] Forward declare types for PlatformWidget and DragImage https://bugs.webkit.org/show_bug.cgi?id=59890 This is a simple build fix. * platform/DragImage.h: * platform/Widget.h: 2011-05-06 Pavel Podivilov <podivilov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: fix incremental html highlight. https://bugs.webkit.org/show_bug.cgi?id=60163 SourceTokenizers for html, js, and css are declared to be stateless. However they store some state in various ways (like using _internalJavaScriptTokenizer field in html tokenizer, or modifying "static" initialCondition object via condition link). This all worked because of another bug in tokenizers registry that always returned new tokenizer object. For incremental highlighting, we need to be able to stringify tokenizers state and then restore the state from string. That's why we need tokenizers to be truly stateless. * inspector/front-end/DOMSyntaxHighlighter.js: (WebInspector.DOMSyntaxHighlighter.prototype.syntaxHighlightNode): * inspector/front-end/SourceCSSTokenizer.js: (WebInspector.SourceCSSTokenizer): (WebInspector.SourceCSSTokenizer.prototype.createInitialCondition): * inspector/front-end/SourceCSSTokenizer.re2js: * inspector/front-end/SourceHTMLTokenizer.js: (WebInspector.SourceHTMLTokenizer): (WebInspector.SourceHTMLTokenizer.prototype.createInitialCondition): (WebInspector.SourceHTMLTokenizer.prototype.set line): (WebInspector.SourceHTMLTokenizer.prototype.get _internalJavaScriptTokenizer): (WebInspector.SourceHTMLTokenizer.prototype.get _internalCSSTokenizer): (WebInspector.SourceHTMLTokenizer.prototype.scriptStarted): (WebInspector.SourceHTMLTokenizer.prototype.styleSheetStarted): (WebInspector.SourceHTMLTokenizer.prototype.nextToken): * inspector/front-end/SourceHTMLTokenizer.re2js: * inspector/front-end/SourceJavaScriptTokenizer.js: (WebInspector.SourceJavaScriptTokenizer): (WebInspector.SourceJavaScriptTokenizer.prototype.createInitialCondition): * inspector/front-end/SourceJavaScriptTokenizer.re2js: * inspector/front-end/SourceTokenizer.js: (WebInspector.SourceTokenizer.Registry.prototype.getTokenizer): * inspector/front-end/TextEditorHighlighter.js: (WebInspector.TextEditorHighlighter.prototype._highlightLines): 2011-05-13 Adam Roben <aroben@apple.com> Build fix after r86418 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h: Made the destructor public so that this class can be used with [Pass]OwnPtr. 2011-05-11 Hans Wennborg <hans@chromium.org> Reviewed by Tony Gentilcore. IndexedDB: Fix integer comparison bug in LevelDB coding routines https://bugs.webkit.org/show_bug.cgi?id=60623 Fix the code for comparing two int64_t variables. Also remove faulty line in ObjectStoreNamesKey::encode which was uncovered by the unit test in this patch. Very hard to cover with layout tests; covered by unit test. * storage/IDBLevelDBCoding.cpp: (WebCore::IDBLevelDBCoding::compareInts): (WebCore::IDBLevelDBCoding::KeyPrefix::compare): (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::compare): (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare): (WebCore::IDBLevelDBCoding::IndexMetaDataKey::compare): (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::compare): (WebCore::IDBLevelDBCoding::IndexFreeListKey::compare): (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::encode): (WebCore::IDBLevelDBCoding::IndexNamesKey::compare): (WebCore::IDBLevelDBCoding::IndexDataKey::compare): 2011-05-13 Andrew Wason <rectalogic@rectalogic.com> Reviewed by Darin Adler. GraphicsContext3DQt.cpp fails to compile https://bugs.webkit.org/show_bug.cgi?id=60740 * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3D::GraphicsContext3D): Change order of initializers. 2011-05-05 Hans Wennborg <hans@chromium.org> Reviewed by Steve Block. IndexedDB: Transaction rollback prevented by open SQLite statement https://bugs.webkit.org/show_bug.cgi?id=60032 Let the IDBTransactionbackendImpl keep track of all open cursors, and "close" them (i.e. finalizing the underlying SQLiteStatement) before committing or rolling back the transaction. This fixes the problem with opened cursors preventing transaction rollback. Test: storage/indexeddb/transaction-rollback.html * storage/IDBBackingStore.h: * storage/IDBCursorBackendImpl.cpp: (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl): (WebCore::IDBCursorBackendImpl::~IDBCursorBackendImpl): (WebCore::IDBCursorBackendImpl::close): * storage/IDBCursorBackendImpl.h: * storage/IDBLevelDBBackingStore.cpp: * storage/IDBSQLiteBackingStore.cpp: * storage/IDBTransactionBackendImpl.cpp: (WebCore::IDBTransactionBackendImpl::abort): (WebCore::IDBTransactionBackendImpl::registerOpenCursor): (WebCore::IDBTransactionBackendImpl::unregisterOpenCursor): (WebCore::IDBTransactionBackendImpl::commit): (WebCore::IDBTransactionBackendImpl::closeOpenCursors): * storage/IDBTransactionBackendImpl.h: * storage/IDBTransactionBackendInterface.h: (WebCore::IDBTransactionBackendInterface::registerOpenCursor): (WebCore::IDBTransactionBackendInterface::unregisterOpenCursor): 2011-05-13 Patrick Gansterer <paroga@webkit.org> Reviewed by Adam Barth. Enable OwnPtr strict mode in MediaPlayer https://bugs.webkit.org/show_bug.cgi?id=59466 Let the CreateMediaEnginePlayer function return a PassOwnPtr instead of a raw pointer. Also fix the templete argument of OwnPtr for the m_private member variable. * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::MediaPlayer): (WebCore::MediaPlayer::loadWithNextMediaEngine): * platform/graphics/MediaPlayer.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::create): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::create): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: * platform/graphics/mac/MediaPlayerPrivateQTKit.h: * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivateQTKit::create): * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp: (WebCore::MediaPlayerPrivatePhonon::create): * platform/graphics/qt/MediaPlayerPrivatePhonon.h: * platform/graphics/qt/MediaPlayerPrivateQt.cpp: (WebCore::MediaPlayerPrivateQt::create): * platform/graphics/qt/MediaPlayerPrivateQt.h: * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: (WebCore::MediaPlayerPrivateQuickTimeVisualContext::create): * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h: * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: (WebCore::MediaPlayerPrivate::create): * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: * platform/graphics/wince/MediaPlayerPrivateWinCE.h: 2011-05-13 Alexey Proskuryakov <ap@apple.com> Reviewed by Pavel Feldman. Web Inspector: Show Error Messages for Application Cache Errors https://bugs.webkit.org/show_bug.cgi?id=41642 * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::didReceiveResponse): (WebCore::ApplicationCacheGroup::didFail): (WebCore::ApplicationCacheGroup::didReceiveManifestResponse): (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): (WebCore::ApplicationCacheGroup::cacheUpdateFailedDueToOriginQuota): Added console error logging. 2011-05-12 Pratik Solanki <psolanki@apple.com> Reviewed by Antti Koivisto. Part of WebCore should use CFNetwork-based loader on Mac https://bugs.webkit.org/show_bug.cgi?id=51836 Fixes for warnings and other minor cleanups when we enable USE_CFNETWORK on Mac. * platform/network/cf/ResourceErrorCF.cpp: (WebCore::ResourceError::cfStreamError): * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::allowsAnyHTTPSCertificateHosts): (WebCore::clientCerts): (WebCore::willSendRequest): (WebCore::didReceiveResponse): (WebCore::didReceiveData): (WebCore::didSendBodyData): (WebCore::shouldUseCredentialStorageCallback): (WebCore::didFinishLoading): (WebCore::didFail): (WebCore::didReceiveChallenge): (WebCore::makeFinalRequest): (WebCore::ResourceHandle::willLoadFromCache): 2011-05-12 Pratik Solanki <psolanki@apple.com> Reviewed by Antti Koivisto. Part of WebCore should use CFNetwork-based loader on Mac https://bugs.webkit.org/show_bug.cgi?id=51836 Implement ResourceHandle::schedule()/unschedule() based on CF for Mac. * WebCore.exp.in: * platform/cf/SchedulePair.h: * platform/mac/SchedulePairMac.mm: * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::schedule): (WebCore::ResourceHandle::unschedule): 2011-05-12 Pratik Solanki <psolanki@apple.com> Reviewed by Antti Koivisto. Part of WebCore should use CFNetwork-based loader on Mac https://bugs.webkit.org/show_bug.cgi?id=51836 Implement mac specific Authentication functions when using CFNetwork. * WebCore.exp.in: * WebCore.xcodeproj/project.pbxproj: * platform/network/ResourceHandle.h: * platform/network/cf/AuthenticationCF.cpp: (WebCore::AuthenticationChallenge::authenticationClient): (WebCore::createCF): (WebCore::core): * platform/network/cf/AuthenticationCF.h: * platform/network/cf/AuthenticationChallenge.h: * platform/network/mac/AuthenticationMac.mm: (WebCore::core): (WebCore::mac): * platform/network/mac/CredentialStorageMac.mm: 2011-05-12 Ben Wells <benwells@chromium.org> Reviewed by Simon Fraser. RGBA colors in outlines show overpainting at the corners https://bugs.webkit.org/show_bug.cgi?id=58999 Added FIXMEs near temporary $if !USE(SKIA)s, referencing bug 60342. * rendering/RenderInline.cpp: (WebCore::RenderInline::paintOutline): * rendering/RenderObject.cpp: (WebCore::RenderObject::paintOutline): 2011-05-12 Adele Peterson <adele@apple.com> Reviewed by Darin Adler and Adam Barth. Fix for <rdar://problem/9253454> Solar Walk For Mac: Info window is blank (HTML5 parser) https://bugs.webkit.org/show_bug.cgi?id=60685 Detect the Solar Walk application so we can add targeted parser quirks. * WebCore.exp.in: * platform/RuntimeApplicationChecks.cpp: (WebCore::applicationIsSolarWalk): * platform/RuntimeApplicationChecks.h: 2011-05-12 Jia Pu <jpu@apple.com> Reviewed by Darin Adler. Regression caused by changeset 86281 https://bugs.webkit.org/show_bug.cgi?id=60712 Changed wording in some tests to reflect AppKit UI change. * manual-tests/autocorrection/delete-to-end-of-word-to-show-reversion.html: * manual-tests/autocorrection/move-to-end-of-word-to-show-reversion.html: 2011-05-12 Daniel Bates <dbates@rim.com> Attempt to fix the build after changeset 86391 <http://trac.webkit.org/changeset/86391> (https://bugs.webkit.org/show_bug.cgi?id=60681). * page/PluginHalter.cpp: (WebCore::PluginHalter::PluginHalter): Substitute m_client for client in ASSERT_ARG since client is now of type PassOwnPtr so it becomes 0 when assigned to another variable. 2011-05-12 Patrick Gansterer <paroga@webkit.org> Reviewed by Darin Adler. Rename SimpleFontData::scaledFontData to createScaledFontData https://bugs.webkit.org/show_bug.cgi?id=60723 * platform/graphics/SimpleFontData.h: * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: * platform/graphics/chromium/SimpleFontDataLinux.cpp: * platform/graphics/freetype/SimpleFontDataFreeType.cpp: * platform/graphics/haiku/SimpleFontDataHaiku.cpp: * platform/graphics/mac/SimpleFontDataMac.mm: * platform/graphics/pango/SimpleFontDataPango.cpp: * platform/graphics/qt/SimpleFontDataQt.cpp: * platform/graphics/win/SimpleFontDataWin.cpp: * platform/graphics/wince/SimpleFontDataWinCE.cpp: * platform/graphics/wx/SimpleFontDataWx.cpp: 2011-05-12 Levi Weintraub <leviw@chromium.org> Reviewed by Simon Fraser. Switch paintOutline to use IntRect https://bugs.webkit.org/show_bug.cgi?id=60718 Switching paintOutline to use an IntRect instead of 4 ints. No new tests as this is just refactoring. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintObject): * rendering/RenderObject.cpp: (WebCore::RenderObject::paintOutline): * rendering/RenderObject.h: * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::paint): * rendering/RenderTable.cpp: (WebCore::RenderTable::paintObject): * rendering/svg/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::paint): * rendering/svg/RenderSVGImage.cpp: (WebCore::RenderSVGImage::paint): * rendering/svg/RenderSVGPath.cpp: (WebCore::RenderSVGPath::paint): * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::paint): 2011-05-12 Anders Carlsson <andersca@apple.com> Address review comment by Dan Bernstein. * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired): 2011-05-12 Anders Carlsson <andersca@apple.com> Reviewed by Dan Bernstein. Crash when a plug-in tries to load a resource from the application cache https://bugs.webkit.org/show_bug.cgi?id=60735 <rdar://problem/8216142> When loading application cache resources from disk, we would never restore the HTTP status code, which means that resources would always have a 0 status code. This led to the plug-in stream loader canceling the load, something which the application cache loading machinery couldn't deal and thus would crash. Fix the reading of the HTTP status code, and make the loader more robust against application cache loads being canceled. Unfortunately, I couldn't come up with a test for this because I couldn't find a reliable way to force the application cache to be read from disk, so all resources would have valid values. * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired): * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::loadCache): 2011-05-12 Emil A Eklund <eae@chromium.org> Reviewed by Darin Adler. Convert RenderBox::setLocation, setLogicalLocation and setLogicalSize to IntPoint/IntSize https://bugs.webkit.org/show_bug.cgi?id=60585 Refactoring, covered by existing tests. * rendering/RenderBox.cpp: (WebCore::RenderBox::positionLineBox): * rendering/RenderBox.h: (WebCore::RenderBox::setLogicalLocation): (WebCore::RenderBox::setLogicalSize): (WebCore::RenderBox::setLocation): * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::positionFrames): (WebCore::RenderFrameSet::positionFramesWithFlattening): * rendering/RenderMedia.cpp: (WebCore::RenderMedia::layout): * rendering/RenderScrollbarPart.cpp: (WebCore::RenderScrollbarPart::paintIntoRect): * rendering/RenderTable.cpp: (WebCore::RenderTable::adjustLogicalHeightForCaption): (WebCore::RenderTable::layout): * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::layoutRows): * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::layout): * rendering/svg/SVGRootInlineBox.cpp: (WebCore::SVGRootInlineBox::layoutRootBox): 2011-05-12 Adrienne Walker <enne@google.com> Reviewed by James Robinson. [chromium] show-composited-layer-tree crashes on null ptr deref https://bugs.webkit.org/show_bug.cgi?id=60734 The tiler is created lazily, so it won't not be around for the first dumpLayerProperties call. * platform/graphics/chromium/ContentLayerChromium.cpp: (WebCore::ContentLayerChromium::dumpLayerProperties): 2011-05-12 Patrick Gansterer <paroga@webkit.org> Reviewed by Adam Barth. Enable OwnPtr strict mode in PluginHalter https://bugs.webkit.org/show_bug.cgi?id=60681 Pass PluginHalterClient as (Pass)OwnPtr to Page and PluginHalter. * WebCore.exp.in: * page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::PageClients::PageClients): * page/Page.h: * page/PluginHalter.cpp: (WebCore::PluginHalter::PluginHalter): * page/PluginHalter.h: 2011-05-12 Daniel Bates <dbates@rim.com> Reviewed by Adele Peterson. Frame's noResize attribute can not be set by JavaScript https://bugs.webkit.org/show_bug.cgi?id=14845 Tests: fast/frames/frame-inherit-noresize-from-frameset.html fast/frames/frame-programmatic-noresize.html fast/frames/frame-with-noresize-can-be-resized-after-removal-of-noresize.html fast/frames/frame-with-noresize-can-be-resized-after-setting-noResize-to-false.html Implements support to programmatically allow and disallow frame resizing. Currently, HTMLFrameElement::parseMappedAttribute() is hardcoded to disallow frame resize (i.e. m_noResize = true) when either the noresize DOM attribute is specified (or existed at some point in time) or the value of the noResize attribute is modified. Instead we should allow/disallow frame resize depending on the presence of the noresize DOM attribute/the value of the noResize attribute. * html/HTMLFrameElement.cpp: (WebCore::HTMLFrameElement::HTMLFrameElement): (WebCore::HTMLFrameElement::noResize): Made this a non-inline function since this code path isn't performance critical. (WebCore::HTMLFrameElement::attach): Removed code to inherit noresize attribute from parent <frameset> since this functionality is part of RenderFrameSet::computeEdgeInfo(). (WebCore::HTMLFrameElement::parseMappedAttribute): * html/HTMLFrameElement.h: * rendering/RenderFrame.cpp: (WebCore::RenderFrame::updateFromElement): Added. * rendering/RenderFrame.h: * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::notifyFrameEdgeInfoChanged): Added. * rendering/RenderFrameSet.h: 2011-05-12 Emil A Eklund <eae@chromium.org> Reviewed by Darin Adler. Replace IntPoint with const IntPoint& in RenderFlexibleBox::placeChild https://bugs.webkit.org/show_bug.cgi?id=60640 Pass by const reference instead of by value for consistency reasons. Refactoring, covered by existing tests. * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::placeChild): * rendering/RenderFlexibleBox.h: Use const IntPoint& instead of just IntPoint to avoid extra constructor overhead 2011-05-12 Dan Bernstein <mitz@apple.com> Reviewed by Sam Weinig. <rdar://problem/9427336> WebFindOptionsAtWordStarts still fails with some Japanese words https://bugs.webkit.org/show_bug.cgi?id=60730 * editing/TextIterator.cpp: (WebCore::SearchBuffer::isWordStartMatch): Consider all positions before a CJK ideograph as word starts. 2011-05-12 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Switch paintBoxDecorationWithSize to IntRect https://bugs.webkit.org/show_bug.cgi?id=60679 Switching paintBoxDecorationWithSize to take an IntRect instead of 4 ints. No new tests as this is simple refactoring. * rendering/RenderBox.cpp: (WebCore::RenderBox::paintBoxDecorations): Cleaning up amazingly confusing logic. (WebCore::RenderBox::paintBoxDecorationsWithSize): * rendering/RenderBox.h: * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::paintBoxDecorations): 2011-05-12 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Switch paintBoxShadow to use IntRect https://bugs.webkit.org/show_bug.cgi?id=60713 Switching paintBoxShadow from taking four ints to taking an IntRect. No new tests since this is refactoring. * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintBoxShadow): (WebCore::InlineFlowBox::paintBoxDecorations): * rendering/InlineFlowBox.h: * rendering/RenderBox.cpp: (WebCore::RenderBox::paintBoxDecorationsWithSize): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintBoxShadow): * rendering/RenderBoxModelObject.h: * rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::paintBoxDecorations): * rendering/RenderTable.cpp: (WebCore::RenderTable::paintBoxDecorations): * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paintBoxDecorations): 2011-05-12 Maciej Stachowiak <mjs@apple.com> Reviewed by Darin Adler. XMLDocumentParserLibxml2 should play nice with strict OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59394 Properly fix this (formerly rolled out for breaking the build). I think the original failure had nothing to do with Deque<OwnPtr>, which in fact appears to work fine. * dom/XMLDocumentParserLibxml2.cpp: (WebCore::PendingCallbacks::~PendingCallbacks): (WebCore::PendingCallbacks::create): (WebCore::PendingCallbacks::appendStartElementNSCallback): (WebCore::PendingCallbacks::appendEndElementNSCallback): (WebCore::PendingCallbacks::appendCharactersCallback): (WebCore::PendingCallbacks::appendProcessingInstructionCallback): (WebCore::PendingCallbacks::appendCDATABlockCallback): (WebCore::PendingCallbacks::appendCommentCallback): (WebCore::PendingCallbacks::appendInternalSubsetCallback): (WebCore::PendingCallbacks::appendErrorCallback): (WebCore::PendingCallbacks::PendingCallbacks): (WebCore::XMLDocumentParser::XMLDocumentParser): 2011-05-12 Daniel Bates <dbates@rim.com> Reviewed by Kenneth Rohde Christiansen. [Qt] fast/events/fire-mousedown-while-pressing-mouse-button.html failing https://bugs.webkit.org/show_bug.cgi?id=58863 Fixes an issue where a platform mouse event corresponding to mouse button A may be associated with the wrong WebCore mouse button when the event occurs while pressing and holding a mouse button B, where A != B. For example, a person clicks the middle mouse button while pressing and holding the left mouse button. Then we dispatch the following DOM events: mouse down for left button, mouse down for left button, mouse up for left button. But, we should have dispatched: mouse down for left button, mouse down for middle button, mouse up for middle button. * platform/qt/PlatformMouseEventQt.cpp: (WebCore::mouseEventTypeAndMouseButtonFromQEvent): Added. (WebCore::PlatformMouseEvent::PlatformMouseEvent): Modified to call mouseEventTypeAndMouseButtonFromQEvent() to determine the WebCore mouse event type and button from the platform-specific event. 2011-05-12 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Switch paintMask and paintMaskImages off of ints https://bugs.webkit.org/show_bug.cgi?id=60578 Primarily switching paintMask and paintMaskImages to use IntSize and IntRect respectively. In the process of that: - added an "expand" function to IntRect that allows you to add an IntSize or pair of integers to the size portion of an IntRect. - changed borderFitAdjust to take an IntRect. It modifies only the x and width attributes. No new tests since this refactoring. * platform/graphics/IntRect.h: (WebCore::IntRect::expand): Added for convenience. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintObject): (WebCore::RenderBlock::borderFitAdjust): * rendering/RenderBlock.h: * rendering/RenderBox.cpp: (WebCore::RenderBox::paintBoxDecorationsWithSize): (WebCore::RenderBox::paintMask): (WebCore::RenderBox::paintMaskImages): * rendering/RenderBox.h: (WebCore::RenderBox::borderFitAdjust): * rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::paintMask): * rendering/RenderFieldset.h: * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::paint): * rendering/RenderReplica.cpp: (WebCore::RenderReplica::paint): * rendering/RenderTable.cpp: (WebCore::RenderTable::paintObject): (WebCore::RenderTable::paintMask): * rendering/RenderTable.h: * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paintMask): * rendering/RenderTableCell.h: * rendering/RenderWidget.cpp: (WebCore::RenderWidget::paint): 2011-05-12 Patrick Gansterer <paroga@webkit.org> Reviewed by Eric Seidel. SimpleFontData::scaledFontData should return a PassOwnPtr https://bugs.webkit.org/show_bug.cgi?id=60657 Let scaledFontData return a PassOwnPtr instead of a raw pointer to make SimpleFontData build without LOOSE_PASS_OWN_PTR. * platform/graphics/SimpleFontData.h: * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: (WebCore::SimpleFontData::scaledFontData): * platform/graphics/chromium/SimpleFontDataLinux.cpp: (WebCore::SimpleFontData::scaledFontData): * platform/graphics/freetype/SimpleFontDataFreeType.cpp: (WebCore::SimpleFontData::scaledFontData): * platform/graphics/haiku/SimpleFontDataHaiku.cpp: (WebCore::SimpleFontData::scaledFontData): * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::scaledFontData): * platform/graphics/pango/SimpleFontDataPango.cpp: (WebCore::SimpleFontData::scaledFontData): * platform/graphics/qt/SimpleFontDataQt.cpp: (WebCore::SimpleFontData::scaledFontData): * platform/graphics/win/SimpleFontDataWin.cpp: (WebCore::SimpleFontData::scaledFontData): * platform/graphics/wince/SimpleFontDataWinCE.cpp: (WebCore::SimpleFontData::scaledFontData): * platform/graphics/wx/SimpleFontDataWx.cpp: (WebCore::SimpleFontData::scaledFontData): 2011-05-12 Jessie Berlin <jberlin@apple.com> Reviewed by Darin Adler. Assertion failure when requesting that storage be deleted for an origin without storage. https://bugs.webkit.org/show_bug.cgi?id=60709 * storage/StorageTracker.cpp: (WebCore::StorageTracker::syncDeleteOrigin): If the path to the storage location for the givin origin is empty, return early instead of asserting. 2011-05-12 Jessie Berlin <jberlin@apple.com> Reviewed by Darin Adler. [Windows WebKit2] Use cookies set in WebKit1 https://bugs.webkit.org/show_bug.cgi?id=60274 Make sure any Private Browsing session is based off the default session. * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::createPrivateBrowsingStorageSession): 2011-05-12 Rob Buis <rbuis@rim.com> Reviewed by Eric Seidel. SVGStyledElement::resolveStyle(RenderStyle*) must be removed/fixed! https://bugs.webkit.org/show_bug.cgi?id=15479 Finally remove resolveStyle, it is not used anymore. * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::childrenChanged): * svg/SVGStyledElement.h: 2011-05-12 Adam Barth <abarth@webkit.org> Reviewed by Darin Adler. REGRESSION (r65868): createContextualFragment does not work with <style> https://bugs.webkit.org/show_bug.cgi?id=60155 createContextualFragment doesn't have a spec, so it's hard to tell what we're supposed to do exactly. This patch appears to make our behavior more like Firefox and should fix the compat issue with this site. Tests: fast/parser/style-in-create-contextual-fragment-head.html fast/parser/style-in-create-contextual-fragment.html * dom/Element.cpp: (WebCore::Element::deprecatedCreateContextualFragment): 2011-05-12 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Darin Adler. WebKit inserts base, link, meta, style, and title elements into an editable region when pasting table cells from Excel https://bugs.webkit.org/show_bug.cgi?id=60644 Strip base, link, meta, style, and tile elements from the fragment to be pasted prior to the merge. We don't have to strip these elements in performTrivialReplace because the function only handles a fragment that consists of exactly one text node. Test: editing/pasteboard/paste-head-contents.html * editing/ReplaceSelectionCommand.cpp: (WebCore::removeHeadContents): Added. (WebCore::ReplaceSelectionCommand::doApply): Calls removeHeadContents before handing style spans. 2011-05-12 Levi Weintraub <leviw@chromium.org> Reviewed by Simon Fraser. Switch calculateBackgroundImageGeometry to use IntRect https://bugs.webkit.org/show_bug.cgi?id=60671 Replacing the four ints passed into calculateBackgroundImageGeometry with an IntRect. No new tests since this is just refactoring. * rendering/RenderBox.cpp: (WebCore::RenderBox::maskClipRect): (WebCore::RenderBox::repaintLayerRectsForImage): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintFillLayerExtended): (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): * rendering/RenderBoxModelObject.h: 2011-05-12 Carol Szabo <carol@webkit.org> Reviewed by David Hyatt. Fix reparenting and destruction of counter nodes. https://bugs.webkit.org/show_bug.cgi?id=57929 Fixed several issues related to not met assertions. See below in the per file description. Test: fast/css/counters/element-removal-crash.xhtml * dom/ContainerNode.cpp: (WebCore::ContainerNode::removeChildren): Fixed the fact that Node::detach() used to be called while the DOM tree was in an inconsistent state. * rendering/RenderCounter.cpp: (WebCore::RenderCounter::rendererRemovedFromTree): Introduced this function to remove counters from descendents of renderers removed from the renderer tree not only from the removed renderers themselves. * rendering/RenderCounter.h: * rendering/RenderObjectChildList.cpp: (WebCore::RenderObjectChildList::removeChildNode): Changed to call RenderCounter::rendererRemovedFromTree instead of RenderCounter::destroyCounters. 2011-05-12 Luke Macpherson <macpherson@chromium.org> Reviewed by Dimitri Glazkov. Merge ApplyPropertyExpanding and ApplyPropertyExpandingSuppressValue classes using template. https://bugs.webkit.org/show_bug.cgi?id=60691 No new tests - refactoring only. * css/CSSStyleApplyProperty.cpp: (WebCore::ApplyPropertyExpanding::applyValue): Use new template parameter to early exit if needed. (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Specify template parameters for ApplyPropertyExpanding. 2011-05-12 Simon Fraser <simon.fraser@apple.com> Followup to r86351; give the vectors some inline capacity to avoid heap allocations in most cases. * page/animation/AnimationBase.cpp: (WebCore::PropertyWrapperShadow::blendMismatchedShadowLists): 2011-05-12 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. Mismatched multiple box-shadows do not transition as expected https://bugs.webkit.org/show_bug.cgi?id=60137 When animating between two sets of shadows of different lengths, we need to walk the ShadowData list backwards, since it stores the shadows in reverse order relative to the CSS (so that painting is back-to-front). This progresses the behavior of the transitions/multiple-shadow-transitions.html test, which is given new expected results. Test: transitions/mismatched-shadow-transitions.html * page/animation/AnimationBase.cpp: (WebCore::shadowListLength): Utility to walk the list of ShadowData and count the number of shadows. (WebCore::shadowForBlending): Return a ShadowData* that is useful as a blending target, based on the shadow type, and whether it's a -webkit-box-shadow. (WebCore::PropertyWrapperShadow::blend): Call one of the specialized blend methods. (WebCore::PropertyWrapperShadow::blendSimpleOrMatchedShadowLists): Fast path for shadow blending, when the list lengths match, or both are single or null shadows. (WebCore::PropertyWrapperShadow::blendMismatchedShadowLists): Slower path that builds vectors for each list to reverse them. 2011-05-12 Adam Roben <aroben@apple.com> Attempted WinCairo build fix after r86169, part II * platform/network/curl/CredentialStorageCurl.cpp: Added a missing #include. 2011-05-12 Adam Roben <aroben@apple.com> Fix linker warnings in Production builds * WebCore.vcproj/WebCore.vcproj: Exclude JSSVGFEDropShadowElement.cpp from the build in the Production configuration, just like in the other configurations. Let VS resort some files (again). 2011-05-12 Philippe Normand <pnormand@igalia.com> Reviewed by Adam Roben. Autocorrection persists after deleting and retyping the same word at same location. https://bugs.webkit.org/show_bug.cgi?id=60555 Follow-up fix for the 3 editing/deleting tests crashing on GTK, Leopard and Windows XP. Don't create the Range if the start of the selection has no next position. * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection): 2011-05-12 Adam Roben <aroben@apple.com> Attempted WinCairo build fix after r86169 * WebCore.vcproj/WebCore.vcproj: Added CredentialStorageCurl.cpp. Also let VS do what it wants. * platform/network/curl/CredentialStorageCurl.cpp: Added. (WebCore::CredentialStorage::getFromPersistentStorage): Stubbed out. 2011-05-12 Adam Roben <aroben@apple.com> Build fixes after r86325 * editing/SpellingCorrectionController.cpp: * editing/SpellingCorrectionController.h: Added missing declarations/#includes. 2011-05-12 Nikolas Zimmermann <nzimmermann@rim.com> Not reviewed. String operator+ reallocates unnecessary when concatting > 2 strings https://bugs.webkit.org/show_bug.cgi?id=58420 Attempt to fix the WinCE build. WinCE/WinCairo still won't link because of unresolved symbols, hmm. If we had EWS for those, I would have caught the problem earlier. * platform/wince/FileSystemWinCE.cpp: (WebCore::listDirectory): 2011-05-12 Nikolas Zimmermann <nzimmermann@rim.com> Not reviewed. String operator+ reallocates unnecessary when concatting > 2 strings https://bugs.webkit.org/show_bug.cgi?id=58420 Fix fast/forms/input-image-submit.html regression, seens on the bots - by removing a last-minute typo: s/!!/!/ * html/ImageInputType.cpp: (WebCore::ImageInputType::appendFormData): 2011-05-12 Rob Buis <rwlbuis@gmail.com> Reviewed by Eric Seidel. REGRESSION(79985): Changes in fill-opacity should trigger repaint but don't https://bugs.webkit.org/show_bug.cgi?id=59941 Also consider fill-opacity when determining whether StyleDifferenceRepaint is needed. Test: svg/custom/fill-opacity-update.svg * rendering/style/SVGRenderStyle.cpp: (WebCore::SVGRenderStyle::diff): 2011-05-12 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Darin Adler. String operator+ reallocates unnecessary when concatting > 2 strings https://bugs.webkit.org/show_bug.cgi?id=58420 Provide a faster String append operator. See Source/JavaScriptCore/ChangeLog for details. * dom/XMLDocumentParserLibxml2.cpp: (WebCore::handleElementAttributes): * editing/MarkupAccumulator.cpp: (WebCore::MarkupAccumulator::shouldAddNamespaceElement): * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::hash): (WebCore::HTMLAnchorElement::search): * html/ImageInputType.cpp: (WebCore::ImageInputType::appendFormData): * html/parser/HTMLTreeBuilder.cpp: * loader/CrossOriginAccessControl.cpp: (WebCore::passesAccessControlCheck): * page/Location.cpp: (WebCore::Location::search): (WebCore::Location::hash): * page/NavigatorBase.cpp: (WebCore::NavigatorBase::platform): * platform/chromium/ClipboardChromium.cpp: (WebCore::writeImageToDataObject): * platform/gtk/PasteboardHelper.cpp: (WebCore::PasteboardHelper::fillSelectionData): * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::encodeBasicAuthorization): * platform/network/cf/SocketStreamHandleCFNet.cpp: (WebCore::SocketStreamHandle::copyCFStreamDescription): * platform/network/mac/ResourceHandleMac.mm: (WebCore::encodeBasicAuthorization): * workers/WorkerLocation.cpp: (WebCore::WorkerLocation::search): (WebCore::WorkerLocation::hash): 2011-05-06 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: move agents from InspectorAgent to InspectorController https://bugs.webkit.org/show_bug.cgi?id=60359 All inspector agents are now created and owned by InspectorController which in turned is owned by the inspected Page. InspectorInstrumentation gets access to the instrumenting agents by means of InspectorAgent::instrumentingAgents(). In addition to managing inspector agents lifetime InspectorController sets InspectorFronted on the agents when the front-end is connected. * inspector/InspectorAgent.cpp: (WebCore::InspectorAgent::InspectorAgent): (WebCore::InspectorAgent::~InspectorAgent): (WebCore::InspectorAgent::inspectedPageDestroyed): (WebCore::InspectorAgent::restore): (WebCore::InspectorAgent::setFrontend): (WebCore::InspectorAgent::clearFrontend): * inspector/InspectorAgent.h: all accessors to other agents were removed along with the agents themselves from InspectorAgent. Every agent that depends on some other agents receives pointers to them explicitely in its constructor. All access to the agents from WebCore should go through InspectorInstrumentation which retrieves corresponding agents using InstrumentingAgents structure which represents the set of active agents. (WebCore::InspectorAgent::instrumentingAgents): * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): (WebCore::InspectorController::~InspectorController): (WebCore::InspectorController::inspectedPageDestroyed): (WebCore::InspectorController::startTimelineProfiler): (WebCore::InspectorController::stopTimelineProfiler): (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::disconnectFrontend): (WebCore::InspectorController::restoreInspectorStateFromCookie): (WebCore::InspectorController::drawNodeHighlight): (WebCore::InspectorController::inspect): (WebCore::InspectorController::timelineProfilerEnabled): (WebCore::InspectorController::hideHighlight): (WebCore::InspectorController::highlightedNode): (WebCore::InspectorController::enableProfiler): (WebCore::InspectorController::disableProfiler): (WebCore::InspectorController::profilerEnabled): (WebCore::InspectorController::debuggerEnabled): (WebCore::InspectorController::disableDebugger): (WebCore::InspectorController::startUserInitiatedProfiling): (WebCore::InspectorController::stopUserInitiatedProfiling): (WebCore::InspectorController::isRecordingUserInitiatedProfile): (WebCore::InspectorController::resume): * inspector/InspectorController.h: * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl): (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl): (WebCore::InspectorInstrumentation::didModifyDOMAttrImpl): (WebCore::InspectorInstrumentation::didInvalidateStyleAttrImpl): (WebCore::InspectorInstrumentation::characterDataModifiedImpl): (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl): (WebCore::InspectorInstrumentation::didFailLoadingImpl): (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl): (WebCore::InspectorInstrumentation::addMessageToConsoleImpl): (WebCore::InspectorInstrumentation::consoleCountImpl): (WebCore::InspectorInstrumentation::startConsoleTimingImpl): (WebCore::InspectorInstrumentation::stopConsoleTimingImpl): (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsoleImpl): (WebCore::InspectorInstrumentation::addProfileImpl): (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileNameImpl): (WebCore::InspectorInstrumentation::profilerEnabledImpl): (WebCore::InspectorInstrumentation::cancelPauseOnNativeEvent): * page/Page.cpp: (WebCore::Page::~Page): we send two notifications when inspected Page is being destroyed: one to the inspector instrumentation and another one to the InspectorController which is owned by the Page. 2011-05-12 Tony Gentilcore <tonyg@chromium.org> Build fix: include ExceptionCode.h https://bugs.webkit.org/show_bug.cgi?id=60694 * dom/Range.cpp: 2011-05-10 Tony Gentilcore <tonyg@chromium.org> Reviewed by Darin Adler. Perform some forward declarations suggested by include-what-you-use https://bugs.webkit.org/show_bug.cgi?id=60545 * accessibility/AccessibilityObject.cpp: * accessibility/AccessibilityRenderObject.cpp: * accessibility/mac/AccessibilityObjectWrapper.mm: * dom/DocumentMarkerController.cpp: * dom/Position.cpp: * dom/PositionIterator.cpp: * dom/Range.cpp: * editing/ApplyBlockElementCommand.cpp: * editing/ApplyStyleCommand.cpp: * editing/Editor.cpp: * editing/EditorCommand.cpp: * editing/FrameSelection.cpp: * editing/HTMLInterchange.cpp: * editing/IndentOutdentCommand.cpp: * editing/ReplaceSelectionCommand.cpp: * editing/SpellChecker.h: * editing/SpellingCorrectionCommand.cpp: * editing/SpellingCorrectionController.h: * editing/TextCheckingHelper.cpp: * editing/TextIterator.h: * editing/htmlediting.h: * editing/markup.cpp: * editing/visible_units.cpp: * editing/visible_units.h: * fileapi/DOMFileSystem.cpp: * fileapi/DirectoryReaderSync.cpp: * fileapi/DirectoryReaderSync.h: * fileapi/FileEntry.h: * fileapi/FileWriter.h: * fileapi/FileWriterBase.h: * fileapi/FileWriterSync.h: * history/CachedFrame.cpp: * history/CachedPage.cpp: * history/HistoryItem.cpp: * history/HistoryItem.h: * history/PageCache.h: * loader/HistoryController.h: * loader/PingLoader.h: * loader/ResourceLoader.h: * loader/appcache/DOMApplicationCache.h: * loader/cache/CachedCSSStyleSheet.h: * loader/cache/CachedFont.cpp: * loader/cache/CachedFont.h: * loader/cache/CachedResourceRequest.cpp: * loader/cache/CachedResourceRequest.h: * loader/cache/MemoryCache.h: * notifications/Notification.cpp: * notifications/Notification.h: * notifications/NotificationCenter.cpp: * notifications/NotificationCenter.h: * page/Chrome.cpp: * page/Chrome.h: * page/DOMSelection.cpp: * page/DOMTimer.h: * page/DOMWindow.cpp: * page/EventHandler.cpp: * page/FocusController.h: * page/Geolocation.cpp: * page/Geolocation.h: * page/History.cpp: * rendering/RenderListBox.cpp: * workers/WorkerContext.cpp: 2011-05-12 Yuta Kitamura <yutak@chromium.org> Unreviewed, another attempt of build fix. * websockets/CloseEvent.h: * websockets/CloseEvent.idl: 2011-05-12 Yuta Kitamura <yutak@chromium.org> Unreviewed, trying to fix Qt minimal compile. * websockets/CloseEvent.idl: 2011-05-12 ojab <ojab@ojab.ru> Reviewed by Eric Seidel. Fix build with --disable-video --enable-fullscreen-api https://bugs.webkit.org/show_bug.cgi?id=60542 * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): 2011-05-12 Yuta Kitamura <yutak@chromium.org> Reviewed by Kent Tamura. WebSocket add new event: CloseEvent https://bugs.webkit.org/show_bug.cgi?id=35573 Original patch was written by Fumitoshi Ukai <ukai@chromium.org>. I added CloseEvent constructor to DOMWindow, so it can be referred in the new test (close-event.html). Test: http/tests/websocket/tests/close-event.html * CMakeLists.txt: * CodeGenerators.pri: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSEventCustom.cpp: (WebCore::toJS): * bindings/v8/custom/V8EventCustom.cpp: (WebCore::toV8): * dom/Event.cpp: (WebCore::Event::isCloseEvent): * dom/Event.h: * page/DOMWindow.idl: Add CloseEvent constructor. * websockets/CloseEvent.h: Added. (WebCore::CloseEvent::isCloseEvent): (WebCore::CloseEvent::create): (WebCore::CloseEvent::initCloseEvent): (WebCore::CloseEvent::wasClean): (WebCore::CloseEvent::CloseEvent): * websockets/CloseEvent.idl: Added. * websockets/WebSocket.cpp: (WebCore::WebSocket::didClose): 2011-05-12 Ben Wells <benwells@chromium.org> Reviewed by Simon Fraser. RGBA colors in outlines show overpainting at the corners https://bugs.webkit.org/show_bug.cgi?id=58999 Tests: fast/borders/outline-alpha-block.html fast/borders/outline-alpha-inline.html Updated baseline images for tests with rgba outlines: fast/box-shadow/box-shadow-radius.html fast/layers/self-painting-outline.html * rendering/RenderInline.cpp: (WebCore::RenderInline::paintOutline): (WebCore::RenderInline::paintOutlineForLine): * rendering/RenderInline.h: * rendering/RenderObject.cpp: (WebCore::RenderObject::paintOutline): 2011-05-11 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Rename Widget::pos() https://bugs.webkit.org/show_bug.cgi?id=60575 Renaming Widget::pos() to the more-descriptive location(). No new tests as this is a simple rename * page/FrameView.cpp: (WebCore::FrameView::create): * platform/Widget.h: (WebCore::Widget::location): (WebCore::Widget::resize): 2011-05-10 MORITA Hajime <morrita@google.com> Reviewed by Kent Tamura. Crashes if the document inside iframe is removed during pasting some text into it. https://bugs.webkit.org/show_bug.cgi?id=60534 Added missing null check. Test: editing/pasteboard/paste-removing-iframe.html * editing/Editor.cpp: (WebCore::Editor::shouldChangeSelection): 2011-05-11 Brian Salomon <bsalomon@google.com> Reviewed by Eric Seidel. Handle case when GrContext creation fails https://bugs.webkit.org/show_bug.cgi?id=60410 Exercised by all canvas tests when DRT is run with skia-gpu * platform/graphics/gpu/SharedGraphicsContext3D.cpp: (WebCore::SharedGraphicsContext3D::grContext): 2011-05-11 Pratik Solanki <psolanki@apple.com> Reviewed by Andreas Kling. Remove empty class CallbackGuard https://bugs.webkit.org/show_bug.cgi?id=60610 CallbackGuard was only ever used on Tiger and it is now an empty class. Remove all uses of it. * platform/network/mac/ResourceHandleMac.mm: (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): (-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]): (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]): (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]): (-[WebCoreResourceHandleAsDelegate connection:canAuthenticateAgainstProtectionSpace:]): (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]): (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]): (-[WebCoreResourceHandleAsDelegate connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:]): (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]): (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]): (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): 2011-05-11 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Implement CSSPropertyMargin and CSSPropertyPadding in CSSStyleApplyProperty. https://bugs.webkit.org/show_bug.cgi?id=60609 No new tests - refactoring only. * css/CSSStyleApplyProperty.cpp: (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Initialise CSSPropertyMargin and CSSPropertyPadding handlers. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Remove unused implementations. 2011-05-11 Robin Dunn <robin@alldunn.com> Reviewed by Kevin Ollivier. [wx] Implement more clipping functions for wxWebKit. https://bugs.webkit.org/show_bug.cgi?id=60662 * platform/graphics/wx/GraphicsContextWx.cpp: (WebCore::GraphicsContext::clip): (WebCore::GraphicsContext::clipOut): 2011-05-11 Damian Kaleta <dkaleta@apple.com> Reviewed by Brady Eidson. Need a new API that will try to restore the scrollbars' position, when navigating in the back/forward history https://bugs.webkit.org/show_bug.cgi?id=60674 * WebCore.exp.in: Export restoreScrollPositionAndViewState() 2011-05-11 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Switch paintFillLayer and its progeny to use IntRect instead of four ints https://bugs.webkit.org/show_bug.cgi?id=60596 Changing integers passed into paintFillLayer and other derivatives to IntRects and IntSizes that reflect their function. No new tests since this is just refactoring. * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintFillLayers): (WebCore::InlineFlowBox::paintFillLayer): (WebCore::InlineFlowBox::paintBoxDecorations): (WebCore::InlineFlowBox::paintMask): * rendering/InlineFlowBox.h: * rendering/RenderBox.cpp: (WebCore::RenderBox::paintRootBoxFillLayers): (WebCore::RenderBox::paintBoxDecorationsWithSize): (WebCore::RenderBox::paintMaskImages): (WebCore::RenderBox::paintFillLayers): (WebCore::RenderBox::paintFillLayer): * rendering/RenderBox.h: * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintFillLayerExtended): * rendering/RenderBoxModelObject.h: * rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::paintBoxDecorations): * rendering/RenderTable.cpp: (WebCore::RenderTable::paintBoxDecorations): * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paintBackgroundsBehindCell): 2011-05-11 Nat Duca <nduca@chromium.org> Reviewed by James Robinson. [chromium] Use mapTexSubImage2D for tile uploads if available https://bugs.webkit.org/show_bug.cgi?id=60008 * platform/graphics/chromium/LayerTilerChromium.cpp: (WebCore::LayerTilerChromium::LayerTilerChromium): (WebCore::LayerTilerChromium::update): (WebCore::LayerTilerChromium::updateFromPixels): * platform/graphics/chromium/LayerTilerChromium.h: 2011-05-11 Alexis Menard <alexis.menard@openbossa.org> Reviewed by Kenneth Rohde Christiansen. [Qt] Implements a disable appearance for Media Elements of Qt port. https://bugs.webkit.org/show_bug.cgi?id=60561 Implements a disable appearance for the media controls of the Qt port when the media is not yet available. * platform/qt/RenderThemeQt.cpp: (WebCore::mediaElementCanPlay): (WebCore::RenderThemeQt::getMediaControlForegroundColor): (WebCore::RenderThemeQt::paintMediaSliderThumb): 2011-05-11 Kent Tamura <tkent@chromium.org> Reviewed by Dimitri Glazkov. input type=email is too strict https://bugs.webkit.org/show_bug.cgi?id=55988 Follow the updated specification. * html/EmailInputType.cpp: Update the pattern to allow a domain part without periods. 2011-05-11 Jia Pu <jpu@apple.com> Reviewed by Darin Adler. Autocorrection persists after deleting and retyping the same word at same location. https://bugs.webkit.org/show_bug.cgi?id=60555 <rdar://problem/9373915> This patch intends to alleviate the issue of repetitively applying the same autocorrection when user delete and retype the same word at the same location. This scenario is especially common when autocorrection modifies the first letter of the word. This patch consists following major changes: 1. Added a new marker type, DeletedAutocorrection. This marker is added to the whitespace that precedes a deleted autocorrection. If the user later types the same original word at after this whitespace, the autocorrection will not be applied again. 2. In DeleteSelectionCommand, added code to notify SpellingCorrectionController about the autocorrection that has just been deleted. 3. In Editor and SpellingCorrectionController, added code to apply the marker and to suppress autocorrection when necessary. 4. The change in CompositeEditCommand::replaceTextInNode is necessary for preserving markers. Otherwise, we will loose the DeletedAutocorrection on the whitespace, when inserting text after the whitespace. Test: platform/mac/editing/spelling/delete-autocorrected-word-2.html * dom/DocumentMarker.h: Added new marker type DeletedAutocorrection. (WebCore::DocumentMarker::AllMarkers::AllMarkers): * dom/DocumentMarkerController.cpp: (WebCore::DocumentMarkerController::markersInRange): Support querying multiple marker types. * dom/DocumentMarkerController.h: * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::replaceTextInNodeAndPreserveMarkers): (WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring): (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit): * editing/CompositeEditCommand.h: * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): (WebCore::DeleteSelectionCommand::fixupWhitespace): (WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection): Extracting the original string if we are deleting an autocorrection. (WebCore::DeleteSelectionCommand::doApply): Notify editor about the deleted autocorrection and its position. * editing/DeleteSelectionCommand.h: * editing/Editor.cpp: (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Moved all logic of determining when to suppress an autocorrection into SpellingCorrectionController. (WebCore::Editor::deletedAutocorrectionAtPosition): * editing/Editor.h: * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply): * editing/SpellingCorrectionController.cpp: (WebCore::SpellingCorrectionController::respondToAppliedEditing): (WebCore::SpellingCorrectionController::deletedAutocorrectionAtPosition): (WebCore::SpellingCorrectionController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand): (WebCore::SpellingCorrectionController::processMarkersOnTextToBeReplacedByResult): * editing/SpellingCorrectionController.h: (WebCore::SpellingCorrectionController::UNLESS_ENABLED): * editing/visible_units.cpp: (WebCore::isStartOfWord): * editing/visible_units.h: * manual-tests/autocorrection/spell-checking-after-reversion.html: 2011-05-11 Dan Bernstein <mitz@apple.com> Reviewed by Darin Adler. <rdar://problem/9414874> Layout unnecessarily interrupts smooth scrolling at msnbc.com https://bugs.webkit.org/show_bug.cgi?id=60677 * platform/ScrollView.cpp: (WebCore::ScrollView::updateScrollbars): Only perform an immediate scroll, aborting any running animation, if the new scroll offset computed here is different from the current scroll offset. 2011-05-11 Kent Tamura <tkent@chromium.org> Reviewed by Dimitri Glazkov. <input pattern="1|10" value="10"> doesn't work correctly. https://bugs.webkit.org/show_bug.cgi?id=60619 Fixes a bug that patternMismatch returns a wrong result if - a whole value matches to a pattern, - a sub-string of the value also matches to the pattern, and - the sub-string matching has priority. * html/BaseTextInputType.cpp: (WebCore::BaseTextInputType::patternMismatch): Enclose the specified pattern with ^( and )$. 2011-05-11 Zelidrag Hornung <zelidrag@chromium.org> Reviewed by David Levin. Prevented DOMFileSystemBase from imposing file naming restrictions on external file systems. https://bugs.webkit.org/show_bug.cgi?id=60583 There are no new tests for this change since it requires the presence of external file system provider which is specific to the platform host process. Chromium implementation will test this within its extension API test suite. * fileapi/DOMFileSystemBase.cpp: (WebCore::pathToAbsolutePath): (WebCore::DOMFileSystemBase::getFile): (WebCore::DOMFileSystemBase::getDirectory): 2011-05-11 Antoine Labour <piman@chromium.org> Reviewed by David Levin. Expose shouldBufferData to ThreadableLoaderOptions to be able to disable buffering of the loaded resource. https://bugs.webkit.org/show_bug.cgi?id=60656 * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::loadRequest): Pass the shouldBufferData to the resource load scheduler, forcing it to true for the preflight request. * loader/ResourceLoadScheduler.cpp: (WebCore::ResourceLoadScheduler::scheduleSubresourceLoad): Pass through shouldBufferData to SubresourceLoader::create * loader/ResourceLoadScheduler.h: * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create): Set shouldBufferData on the newly created loader * loader/SubresourceLoader.h: * loader/ThreadableLoader.h: (WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): Add shouldBufferData to the options, defaulting to true. 2011-05-11 Jay Civelli <jcivelli@chromium.org> Reviewed by Adam Barth. Adding a Content-Type parser. This is needed for MHTML support. https://bugs.webkit.org/show_bug.cgi?id=60637 (WebCore::ScriptController::disableEval): * platform/network/ContentTypeParser.cpp: Added. * platform/network/ContentTypeParser.h: Added. 2011-05-11 Jessie Berlin <jberlin@apple.com> Reviewed by Steve Falkenburg. [Windows WebKit2] Use cookies set in WebKit1 https://bugs.webkit.org/show_bug.cgi?id=60274 Share the default storage session between the UI and Web Processes. * platform/network/cf/CookieStorageCFNet.cpp: (WebCore::defaultSessionCookieStorage): Keep track of the default storage session cookie storage. (WebCore::currentCookieStorage): Call defaultCookieStorage to get the default cookie storage. (WebCore::defaultCookieStorage): If there is a default storage session cookie storage, prefer that over getting the default cookie storage. In the Web Process, asking CFNetwork for the default cookie storage directly without specifying a storage session will not get the cookie storage being shared by the UI and Web Processes. * platform/network/ResourceHandle.h: * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willSendRequest): Make sure to set the current storage session on any requests used by the Web Process before CFNetwork has to do anything with them, in order for CFNetwork to avoid doing anything with the Web Process's default storage session (which is not the one shared with the UI Process). (WebCore::makeFinalRequest): Ditto. (WebCore::ResourceHandle::willSendRequest): Ditto. (WebCore::ResourceHandle::currentStorageSession): If there is a Private Browsing storage session, return that. If not, on Windows return the default storage session that is being shared with the UI Process and on Mac return 0. (WebCore::defaultCFURLStorageSession): (WebCore::ResourceHandle::setDefaultStorageSession): (WebCore::ResourceHandle::defaultStorageSession): * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest): Make sure to set the current storage session on any requests used by the Web Process before CFNetwork has to do anything with them, in order for CFNetwork to avoid doing anything with the Web Process's default storage session (which is not the one shared with the UI Process). 2011-05-11 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by David Kilzer. Remove wml directory from include lists https://bugs.webkit.org/show_bug.cgi?id=60646 Remove wml dir from CMake, Autotools and qmake build systems since WML was removed in r85256. No new tests since no change in functionality. * CMakeLists.txt: * GNUmakefile.am: * WebCore.pri: 2011-05-11 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by Antonio Gomes. [CMAKE] Move EFL-specific file to CMakeListsEfl.txt https://bugs.webkit.org/show_bug.cgi?id=60642 Move file EFL-specific file to the CMakeListsEfl.txt file. This implies having to include CMakeLists${PORT}.txt before the ADD_CUSTOM_COMMAND calls, since they depend on lists that now may change inside a port like WebCore_USER_AGENT_STYLE_SHEETS. No new tests since no change in functionality. * CMakeLists.txt: remove css file specific to EFL port. * CMakeListsEfl.txt: move file here. 2011-05-11 Tao Bai <michaelbai@chromium.org> Reviewed by David Kilzer. Return empty Favicon URL instead of default one when the frame isn't top level one https://bugs.webkit.org/show_bug.cgi?id=60527 This issue was discovered by chromium browser test. * dom/Document.cpp: (WebCore::Document::setIconURL): Restored original logic which was inadvertently flipped by http://trac.webkit.org/changeset/85785. * loader/FrameLoader.cpp: (WebCore::FrameLoader::iconURLs): (WebCore::FrameLoader::fillIconURL): Restored original logic, the empty URL should be returned instead of default one. The client (at least chromium) may rely on the returned value to decided whether the favicon should be changed. 2011-05-11 Nat Duca <nduca@chromium.org> Reviewed by Kenneth Russell. [chromium] Make throttling of WebGL based on webgl frames, not compositor frames https://bugs.webkit.org/show_bug.cgi?id=60508 When a WebGL layer is dirtied outside of a requestAnimFrame callback, we need to prevent WebGL from running too far ahead of the GPU process. The current throttling mechanism relies on prepareTexture being called for every WebGL frame. However, in a non-requestAnimFrame application, multiple frames might get created before the compositor runs and calls prepareTexture on the surface. To address this, we post a task that calls a special rate limiting GL extension on the WebGL context after every WebGL "frame." When the compositor runs, it calls prepareTexture as usual. * platform/graphics/chromium/Extensions3DChromium.h: * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::LayerRendererChromium): * platform/graphics/chromium/LayerRendererChromium.h: (WebCore::LayerRendererChromium::setIsAnimating): (WebCore::LayerRendererChromium::isAnimating): * platform/graphics/chromium/WebGLLayerChromium.cpp: (WebCore::WebGLLayerChromiumRateLimitTask::WebGLLayerChromiumRateLimitTask): (WebCore::WebGLLayerChromiumRateLimitTask::run): (WebCore::WebGLLayerChromiumRateLimitTask::cancel): (WebCore::WebGLLayerChromium::WebGLLayerChromium): (WebCore::WebGLLayerChromium::~WebGLLayerChromium): (WebCore::WebGLLayerChromium::setTextureUpdated): (WebCore::WebGLLayerChromium::setContext): * platform/graphics/chromium/WebGLLayerChromium.h: (WebCore::WebGLLayerChromium::context): 2011-05-11 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap][Qt] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 12/12: Enable accelerated animations in texture-mapper. The entire interpolation mechanism happens inside TextureMapper, and we interpolate right before we paint. No new tests. Tests in LayoutTests/compositing cover this. * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper): (WebCore::GraphicsLayerTextureMapper::syncCompositingState): (WebCore::GraphicsLayerTextureMapper::addAnimation): (WebCore::GraphicsLayerTextureMapper::pauseAnimation): (WebCore::GraphicsLayerTextureMapper::removeAnimation): (WebCore::GraphicsLayerTextureMapper::animationStartedTimerFired): * platform/graphics/texmap/TextureMapperNode.cpp: (WebCore::TextureMapperNode::descendantsOrSelfHaveRunningAnimations): (WebCore::normalizedAnimationValue): (WebCore::TextureMapperNode::applyOpacityAnimation): (WebCore::solveEpsilon): (WebCore::solveCubicBezierFunction): (WebCore::solveStepsFunction): (WebCore::applyTimingFunction): (WebCore::TextureMapperNode::applyTransformAnimation): (WebCore::TextureMapperNode::applyAnimationFrame): (WebCore::TextureMapperNode::applyAnimation): (WebCore::TextureMapperNode::hasRunningOpacityAnimation): (WebCore::TextureMapperNode::hasRunningTransformAnimation): (WebCore::TextureMapperNode::syncAnimations): (WebCore::copyTimingFunction): (WebCore::copyAnimationValue): (WebCore::TextureMapperAnimation::TextureMapperAnimation): * platform/graphics/texmap/TextureMapperNode.h: (WebCore::TextureMapperAnimation::create): 2011-05-11 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap][Qt] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 11/12: Patch PluginView to build with TextureMapper on Linux. No new tests. This is a build fix. * platform/qt/QWebPageClient.h: (QWebPageClient::setRootGraphicsLayer): 2011-05-11 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap][Qt] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 10/12: Glue the TextureMapper refactoring into Webkit(1). Pass a GraphicsLayer* instead of a PlatformLayer* to the QWebPageClient. No new tests. Tests in LayoutTests/compositing cover this. * platform/qt/QWebPageClient.h: (QWebPageClient::setRootGraphicsLayer): 2011-05-11 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap][Qt] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 9/12: Refactor TextureMapperNode for performance, readability and accuracy. Changes include: 1. Support the new TextureMapperPlatformLayer for media & WebGL. 2. Use a pool for intermediate surfaces, to avoid constant allocating/freeing of textures. 3. Divide computation operations to different smaller functions. 4. Get rid of scissor/clip layers, use transformed clip instead. 5. Allow tiling for big layers. No new tests. Tests in LayoutTests/compositing cover this. * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper): (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect): (WebCore::GraphicsLayerTextureMapper::setContentsToMedia): (WebCore::GraphicsLayerTextureMapper::platformLayer): * platform/graphics/texmap/GraphicsLayerTextureMapper.h: (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay): (WebCore::GraphicsLayerTextureMapper::setContentsToCanvas): (WebCore::GraphicsLayerTextureMapper::node): * platform/graphics/texmap/TextureMapperNode.cpp: (WebCore::TextureMapperSurfaceManager::getIntermediateSurface): (WebCore::TextureMapperSurfaceManager::releaseIntermediateSurface): (WebCore::toTextureMapperNode): (WebCore::TextureMapperNode::rootLayer): (WebCore::TextureMapperNode::setTransform): (WebCore::TextureMapperNode::computePerspectiveTransformIfNeeded): (WebCore::TextureMapperNode::countDescendantsWithContent): (WebCore::TextureMapperNode::computeOverlapsIfNeeded): (WebCore::TextureMapperNode::computeReplicaTransformIfNeeded): (WebCore::TextureMapperNode::computeLocalTransformIfNeeded): (WebCore::TextureMapperNode::needsToComputeBoundingRect): (WebCore::TextureMapperNode::computeAllTransforms): (WebCore::TextureMapperNode::computeBoundingRectFromRootIfNeeded): (WebCore::TextureMapperNode::computeTiles): (WebCore::TextureMapperNode::computeVisibleRectIfNeeded): (WebCore::TextureMapperNode::renderContent): (WebCore::TextureMapperNode::paint): (WebCore::TextureMapperNode::targetRectForTileRect): (WebCore::TextureMapperNode::paintSelf): (WebCore::TextureMapperNode::compareGraphicsLayersZValue): (WebCore::TextureMapperNode::sortByZOrder): (WebCore::TextureMapperNode::paintSelfAndChildren): (WebCore::TextureMapperNode::paintReflection): (WebCore::TextureMapperNode::paintRecursive): (WebCore::TextureMapperNode::~TextureMapperNode): (WebCore::TextureMapperNode::resetDescendants): (WebCore::TextureMapperNode::setContentScale): (WebCore::TextureMapperNode::setVisibleRect): (WebCore::TextureMapperNode::syncCompositingState): (WebCore::TextureMapperNode::invalidateOverlaps): (WebCore::TextureMapperNode::syncCompositingStateSelf): (WebCore::TextureMapperNode::descendantsOrSelfHaveRunningAnimations): * platform/graphics/texmap/TextureMapperNode.h: (WebCore::TextureMapperPaintOptions::TextureMapperPaintOptions): (WebCore::TextureMapperAnimation::create): (WebCore::TextureMapperNode::TextureMapperNode): (WebCore::TextureMapperNode::size): (WebCore::TextureMapperNode::setOpacity): (WebCore::TextureMapperNode::setTextureMapper): (WebCore::TextureMapperNode::media): (WebCore::TextureMapperNode::texture): (WebCore::TextureMapperNode::targetRect): (WebCore::TextureMapperNode::entireRect): (WebCore::TextureMapperNode::contentSize): (WebCore::TextureMapperNode::State::State): (WebCore::deleteOwnedPtr): 2011-05-07 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap][Qt] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 8/12: Changes to the GL backend of TextureMapper. The code for these changes is intertwined so it was hard to separate them to different patches. This is the summary of what the changes do: 1. Use stencil for clipping instead of scissors, refactor beginClip/endClip functions to accomodate that. 2. Get rid of the "Target" program which forced an intermediate framebuffer for any content. Instead, we upload the texture with BGRA from the start. Ports other than Qt can optimize this for their needs. 3. Use glGetAttribLocation instead of glBindAttribLocation; On some platforms we might be polluting the GL context otherwise. 4. Use image UIDs (cache-key in Qt) instead of image pointers. This is important for images that change their internal content. 5. Allow packing and unpacking. This is currently a stub, for future memory optimizations. 6. Put some of the initialization code here (beginPainting/endPainting). 7. Allow painting a texture via an ID instead of a BitmapTexture data type. 8. Get rid of makeContextCurrent / obtainCurrentContext. We only use texture-mapper when the context is current. No new tests. Tests in LayoutTests/compositing test this. * platform/graphics/opengl/TextureMapperGL.cpp: (WebCore::debugGLCommand): (WebCore::TextureMapperGLData::GlobalGLData::createShaderProgram): (WebCore::TextureMapperGLData::GlobalGLData::GlobalGLData): (WebCore::TextureMapperGLData::DirectlyCompositedImageRepository::findOrCreate): (WebCore::TextureMapperGLData::DirectlyCompositedImageRepository::deref): (WebCore::TextureMapperGLData::DirectlyCompositedImageRepository::~DirectlyCompositedImageRepository): (WebCore::TextureMapperGLData::TextureMapperGLData): (WebCore::BitmapTextureGL::id): (WebCore::BitmapTextureGL::isOpaque): (WebCore::BitmapTextureGL::relativeSize): (WebCore::BitmapTextureGL::setTextureMapper): (WebCore::BitmapTextureGL::pack): (WebCore::BitmapTextureGL::unpack): (WebCore::BitmapTextureGL::isPacked): (WebCore::BitmapTextureGL::BitmapTextureGL): (WebCore::TextureMapperGL::TextureMapperGL): (WebCore::TextureMapperGL::initializeShaders): (WebCore::TextureMapperGL::beginPainting): (WebCore::TextureMapperGL::endPainting): (WebCore::TextureMapperGL::drawTexture): (WebCore::BitmapTextureGL::reset): (WebCore::BitmapTextureGL::endPaint): (WebCore::BitmapTextureGL::setContentsToImage): (WebCore::createProjectionMatrix): (WebCore::BitmapTextureGL::bind): (WebCore::BitmapTextureGL::destroy): (WebCore::TextureMapperGL::~TextureMapperGL): (WebCore::TextureMapperGL::bindSurface): (WebCore::TextureMapperGL::beginClip): (WebCore::TextureMapperGL::endClip): (WebCore::TextureMapperGL::createTexture): * platform/graphics/opengl/TextureMapperGL.h: (WebCore::TextureMapperGL::allowSurfaceForRoot): (WebCore::TextureMapperGL::create): (WebCore::TextureMapperGL::setGraphicsContext): (WebCore::TextureMapperGL::graphicsContext): (WebCore::TextureMapperGL::isOpenGLBacked): * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3DInternal::paintToTextureMapper): (WebCore::GraphicsContext3DInternal::boundingRect): (WebCore::GraphicsContext3DInternal::paint): * platform/graphics/qt/MediaPlayerPrivateQt.cpp: (WebCore::MediaPlayerPrivateQt::repaint): (WebCore::MediaPlayerPrivateQt::paintToTextureMapper): * platform/graphics/qt/MediaPlayerPrivateQt.h: (WebCore::MediaPlayerPrivateQt::acceleratedRenderingStateChanged): (WebCore::MediaPlayerPrivateQt::platformLayer): 2011-05-11 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap][Qt] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 7/12: Allow a 3D-context (WebGL) to paint itself into a TextureMapper. This allows using a WebGL canvas with CSS. No new tests. Tests in LayoutTests/compositing/webgl cover this. * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3DInternal::paintToTextureMapper): (WebCore::GraphicsContext3DInternal::boundingRect): (WebCore::GraphicsContext3DInternal::paint): * platform/graphics/qt/MediaPlayerPrivateQt.cpp: (WebCore::MediaPlayerPrivateQt::repaint): (WebCore::MediaPlayerPrivateQt::paintToTextureMapper): * platform/graphics/qt/MediaPlayerPrivateQt.h: (WebCore::MediaPlayerPrivateQt::acceleratedRenderingStateChanged): (WebCore::MediaPlayerPrivateQt::platformLayer): 2011-05-11 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap][Qt] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 6/12: Allow the Qt media player implementation to paint into a TextureMapper, to allow videos to be composited. No new tests. Tests in LayoutTests/compositing cover this. * platform/graphics/qt/MediaPlayerPrivateQt.cpp: (WebCore::MediaPlayerPrivateQt::repaint): (WebCore::MediaPlayerPrivateQt::paintToTextureMapper): * platform/graphics/qt/MediaPlayerPrivateQt.h: (WebCore::MediaPlayerPrivateQt::acceleratedRenderingStateChanged): (WebCore::MediaPlayerPrivateQt::platformLayer): 2011-05-11 John Bauman <jbauman@chromium.org> Reviewed by Kenneth Russell. Don't send zeros in TexImage if GL implementation handles that https://bugs.webkit.org/show_bug.cgi?id=60581 Chromium already handles zeroing textures upon creation, so don't bother zeroing them in WebKit, as that causes some unnecessary memcpys of zeros. No new tests as functionality is the same. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::texImage2DBase): * platform/graphics/GraphicsContext3D.cpp: (WebCore::GraphicsContext3D::texImage2DResourceSafe): * platform/graphics/GraphicsContext3D.h: * platform/graphics/gtk/GraphicsContext3DGtk.cpp: (WebCore::GraphicsContext3D::GraphicsContext3D): * platform/graphics/mac/GraphicsContext3DMac.mm: (WebCore::GraphicsContext3D::GraphicsContext3D): * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3D::GraphicsContext3D): 2011-05-11 Simon Fraser <simon.fraser@apple.com> Attempt to fix Chromium Mac build. * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintSliderThumb): 2011-05-11 Daniel Bates <dbates@rim.com> Reviewed by Antonio Gomes. [Qt] Extract code to set mouse event modifiers into common function https://bugs.webkit.org/show_bug.cgi?id=60649 Consolidate code to set the keyboard modifiers for a mouse event into a common function that can be used by both PlatformMouseEvent(QGraphicsSceneMouseEvent*, int clickCount) and PlatformMouseEvent(QInputEvent*, int clickCount) so as to remove duplicate code. No functionality was changed. So, no new tests. * platform/qt/PlatformMouseEventQt.cpp: (WebCore::mouseEventModifiersFromQtKeyboardModifiers): Added. (WebCore::PlatformMouseEvent::PlatformMouseEvent): Modified to call mouseEventModifiersFromQtKeyboardModifiers(). 2011-05-11 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Switch RenderBoxModelObject::paintBorder to use IntRect instead of four ints https://bugs.webkit.org/show_bug.cgi?id=60591 Switching RenderBoxModelObject::paintBorder to use IntRect instead of four ints representing a rect. No new tests since there is no functionality change. * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintBoxDecorations): * rendering/RenderBox.cpp: (WebCore::RenderBox::paintBoxDecorationsWithSize): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintBorder): * rendering/RenderBoxModelObject.h: * rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::paintBoxDecorations): * rendering/RenderTable.cpp: (WebCore::RenderTable::paintBoxDecorations): * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paintBoxDecorations): 2011-05-11 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r86255. http://trac.webkit.org/changeset/86255 https://bugs.webkit.org/show_bug.cgi?id=60660 REGRESSION (r86255): Lots of tests crashing in CFWriteStreamCreateWithAllocatedBuffers on Windows 7 Release (WebKit2 Tests) (Requested by aroben on #webkit). * platform/network/ResourceHandle.h: * platform/network/cf/CookieStorageCFNet.cpp: (WebCore::currentCookieStorage): (WebCore::defaultCookieStorage): * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willSendRequest): (WebCore::makeFinalRequest): (WebCore::ResourceHandle::willSendRequest): * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest): 2011-05-11 Sam Weinig <sam@webkit.org> Reviewed by Eric Seidel. Frequent crashes beneath WebCore::ScriptElement::prepareScript https://bugs.webkit.org/show_bug.cgi?id=60559 * html/parser/HTMLScriptRunner.cpp: (WebCore::HTMLScriptRunner::runScript): Add null check and explanation that we are keeping the ASSERT to help track down the cause and produce a test. 2011-05-11 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap][Qt] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 5/12: Implement the new TextureMapper functions for the Qt backend. This allow non-rectangular clipping, some stub functions, and getting a unique id for an image. No new tests. Tests in LayoutTests/compositing cover this. * platform/graphics/qt/TextureMapperQt.cpp: (WebCore::TextureMapperQt::beginClip): (WebCore::TextureMapperQt::endClip): (WebCore::TextureMapperQt::viewportSize): (WebCore::TextureMapperQt::setGraphicsContext): (WebCore::TextureMapperQt::graphicsContext): (WebCore::TextureMapperQt::drawTexture): (WebCore::TextureMapperQt::beginPainting): (WebCore::TextureMapperQt::endPainting): (WebCore::RGBA32PremultimpliedBufferQt::beginPaint): (WebCore::uidForImage): * platform/graphics/qt/TextureMapperQt.h: 2011-05-11 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 3/12: TextureMapper shouldn't depend on OpenGL, but rather only allow the GL backend when OpenGL is present. No new tests. This is a build fix. * WebCore.pri: * WebCore.pro: 2011-05-11 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap][Qt] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 2/12: Add a few functions to the TextureMapper API, allowing: 1. an entry/exit point for painting (beginPaint/endPaint) 2. Clipping with a matrix, since we use stencil instead of scissors 3. Draw a texture directly with an ID 4. Remove offset, since we're using real tiling 5. numberOfBytes calculation for textures, for memory management No new tests. Tests in LayoutTests/compositing test this. * platform/graphics/texmap/TextureMapper.h: (WebCore::BitmapTexture::destroy): (WebCore::BitmapTexture::allowOfflineTextureUpload): (WebCore::BitmapTexture::bpp): (WebCore::BitmapTexture::numberOfBytes): (WebCore::TextureMapper::viewportSize): (WebCore::TextureMapper::setViewportSize): (WebCore::TextureMapper::allowPartialUpdates): (WebCore::TextureMapper::isOpenGLBacked): (WebCore::TextureMapper::setTransform): (WebCore::TextureMapper::transform): (WebCore::TextureMapper::beginPainting): (WebCore::TextureMapper::endPainting): 2011-05-11 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Texmap][Qt] Upstream texture-mapper changes from Qt's WebKit2 branch https://bugs.webkit.org/show_bug.cgi?id=60439 Patch 1/12: Change the TextureMapperPlatformLayer API to allow a 3D-context or a media player to decide how to paint into the TextureMapper, rather than mandate specific types of platform layers. No new tests. Tests in LayoutTests/compositing test this. * platform/graphics/GraphicsLayer.h: * platform/graphics/texmap/TextureMapperPlatformLayer.h: 2011-05-11 Simon Fraser <simon.fraser@apple.com> Reviewed by Darin Adler. Flesh out RenderLayer's ScrollableArea implementation a little more https://bugs.webkit.org/show_bug.cgi?id=60593 Override a few more ScrollableArea methods on RenderLayer as a baby-step towards animating overflow div scrolling. * platform/ScrollableArea.h: (WebCore::ScrollableArea::visibleContentRect): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollPosition): (WebCore::RenderLayer::minimumScrollPosition): (WebCore::RenderLayer::maximumScrollPosition): (WebCore::RenderLayer::visibleContentRect): (WebCore::RenderLayer::overhangAmount): (WebCore::RenderLayer::didCompleteRubberBand): * rendering/RenderLayer.h: (WebCore::RenderLayer::shouldSuspendScrollAnimations): 2011-05-11 Simon Fraser <simon.fraser@apple.com> Reviewed by Dave Hyatt. <rdar://problem/9421781> Slider thumb draws upside-down in WebKit2 <rdar://problem/9418025> Slider thumb has odd appearance Fix two issues drawing the slider thumb. To fix <rdar://problem/9421781>, if we detect that we're in WebKit2 by virtual of the FrameView not having a documentView, then flip the graphics context. To fix <rdar://problem/9418025>, we call -drawInteriorWithFrame:inView: rather than -drawWithFrame:inView: so that AppKit doesn't draw a section of track behind the thumb. * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintSliderThumb): 2011-05-11 Jessie Berlin <jberlin@apple.com> Reviewed by Steve Falkenburg. [Windows WebKit2] Use cookies set in WebKit1 https://bugs.webkit.org/show_bug.cgi?id=60274 Share the default storage session between the UI and Web Processes. * platform/network/cf/CookieStorageCFNet.cpp: (WebCore::defaultSessionCookieStorage): Keep track of the default storage session cookie storage. (WebCore::currentCookieStorage): Call defaultCookieStorage to get the default cookie storage. (WebCore::defaultCookieStorage): If there is a default storage session cookie storage, prefer that over getting the default cookie storage. In the Web Process, asking CFNetwork for the default cookie storage directly without specifying a storage session will not get the cookie storage being shared by the UI and Web Processes. * platform/network/ResourceHandle.h: * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willSendRequest): Make sure to set the current storage session on any requests used by the Web Process before CFNetwork has to do anything with them, in order for CFNetwork to avoid doing anything with the Web Process's default storage session (which is not the one shared with the UI Process). (WebCore::makeFinalRequest): Ditto. (WebCore::ResourceHandle::willSendRequest): Ditto. (WebCore::ResourceHandle::currentStorageSession): If there is a Private Browsing storage session, return that. If not, on Windows return the default storage session that is being shared with the UI Process and on Mac return 0. (WebCore::defaultCFURLStorageSession): (WebCore::ResourceHandle::setDefaultStorageSession): (WebCore::ResourceHandle::defaultStorageSession): * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest): Make sure to set the current storage session on any requests used by the Web Process before CFNetwork has to do anything with them, in order for CFNetwork to avoid doing anything with the Web Process's default storage session (which is not the one shared with the UI Process). 2011-05-11 Martin Robinson <mrobinson@igalia.com> Try once more to fix the WinCairo build. * platform/graphics/cairo/CairoUtilities.h: Include GraphicsTypes.h with a relative include rather than a system include. 2011-05-11 Sam Weinig <sam@webkit.org> Reviewed by Eric Seidel. Stop including Console.h just to get Console enum types https://bugs.webkit.org/show_bug.cgi?id=60607 Move MessageSource, MessageType and MessageLevel into its own header and cleanup surrounding classes. * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSCustomXPathNSResolver.cpp: * bindings/scripts/CodeGeneratorJS.pm: * bindings/v8/V8Proxy.cpp: * dom/ScriptExecutionContext.h: * html/HTMLFormElement.cpp: * html/parser/XSSFilter.cpp: * inspector/ConsoleMessage.h: * inspector/InjectedScriptHost.h: * inspector/InspectorAgent.h: * inspector/InspectorConsoleAgent.h: * inspector/InspectorFrontendHost.h: * inspector/InspectorInstrumentation.cpp: * inspector/InspectorInstrumentation.h: * loader/EmptyClients.h: * loader/FrameLoader.cpp: * loader/MainResourceLoader.cpp: * loader/appcache/ApplicationCacheGroup.cpp: * page/ChromeClient.h: * page/Console.cpp: (WebCore::Console::~Console): * page/Console.h: * page/ConsoleTypes.h: Added. * page/ContentSecurityPolicy.cpp: * page/Geolocation.h: * workers/WorkerReportingProxy.h: * xml/XMLHttpRequest.cpp: 2011-05-11 Dimitri Glazkov <dglazkov@chromium.org> Unreviewed, rolling out r85650. http://trac.webkit.org/changeset/85650 https://bugs.webkit.org/show_bug.cgi?id=59983 Triggers m_numNodeListCaches > 0 assert in gc-heavy sites. * dom/ContainerNode.cpp: (WebCore::ContainerNode::childrenChanged): * dom/Node.cpp: (WebCore::Node::~Node): (WebCore::Node::setDocument): (WebCore::Node::setTreeScopeRecursively): (WebCore::Node::childNodes): (WebCore::Node::registerDynamicNodeList): (WebCore::Node::unregisterDynamicNodeList): (WebCore::Node::notifyLocalNodeListsAttributeChanged): (WebCore::Node::notifyLocalNodeListsChildrenChanged): (WebCore::Node::getElementsByTagName): (WebCore::Node::getElementsByTagNameNS): (WebCore::Node::getElementsByName): (WebCore::Node::getElementsByClassName): * dom/Node.h: * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::labels): 2011-05-11 Eric Carlson <eric.carlson@apple.com> Reviewed by Darin Adler. Video track sometimes fails to draw. https://bugs.webkit.org/show_bug.cgi?id=60635 <rdar://problem/9281951> No new tests, covered by existing pixel tests. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::loadResource): Set display mode to "Unknown" to force a recalculation, and media engine notification, the next time the state machine runs. 2011-05-11 Adam Roben <aroben@apple.com> WinCE build fixes for strict PassOwnPtr * platform/graphics/wince/SharedBitmap.cpp: (WebCore::SharedBitmap::createHandle): (WebCore::SharedBitmap::clipBitmap): Use nullptr instead of 0. * platform/graphics/wince/SimpleFontDataWinCE.cpp: Keep LOOSE_PASS_OWN_PTR turned on for this file until SimpleFontData::scaledFontData is dealt with on all platforms. * platform/text/wince/TextCodecWinCE.cpp: (WebCore::newTextCodecWinCE): Use adoptPtr. 2011-05-11 Chang Shu <cshu@webkit.org> Reviewed by Antonio Gomes. [Qt] Tab not working in editing/inserting/typing-tab-designmode-forms.html https://bugs.webkit.org/show_bug.cgi?id=60477 PlatformKeyboardEvent.m_text should be set to "\t" instead of leaving as null. The value is checked at EventHandler.cpp:2527 (r86166). Function keyTextForKeyEvent is partially implemented and can be enhanced in a need-base. * platform/qt/PlatformKeyboardEventQt.cpp: (WebCore::keyTextForKeyEvent): (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): 2011-05-11 Adam Roben <aroben@apple.com> Use case-insensitive comparisons when checking plugin filenames on Windows Windows paths are nearly always case-insensitive. I couldn't think of a good way to test this. Fixes <http://webkit.org/b/60633> WebKit1 loads Windows Presentation Foundation plugin, but should not Reviewed by Steve Falkenburg. * plugins/win/PluginPackageWin.cpp: (WebCore::PluginPackage::isPluginBlacklisted): Use equalIgnoringCase instead of == when checking plugin filenames. 2011-05-11 Adam Roben <aroben@apple.com> Turn on strict PassOwnPtr on Windows Fixes <http://webkit.org/b/60632> Windows should build with strict PassOwnPtr enabled Reviewed by Adam Barth. * platform/graphics/win/SimpleFontDataWin.cpp: Keep LOOSE_PASS_OWN_PTR turned on for this file until SimpleFontData::scaledFontData is dealt with on all platforms. 2011-05-11 Julien Chaffraix <jchaffraix@webkit.org> Reviewed by Geoffrey Garen. XPathResult should keep its node set's JS wrappers alive https://bugs.webkit.org/show_bug.cgi?id=34231 The change added a custom mark function for JSC. V8 was already properly marking the nodes so no change were done on the V8 side. Tests: fast/xpath/xpath-iterator-result-should-mark-its-nodeset.html fast/xpath/xpath-other-nodeset-result-should-mark-its-nodeset.html fast/xpath/xpath-result-eventlistener-crash.html fast/xpath/xpath-snapshot-result-should-mark-its-nodeset.html * Android.jscbindings.mk: * GNUmakefile.list.am: * UseJSC.cmake: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSBindingsAllInOne.cpp: Added the new file to our build systems. * bindings/js/JSXPathResultCustom.cpp: Added. (WebCore::JSXPathResult::markChildren): Added code to mark the XPathResult snapshot's nodes. * xml/XPathResult.h: (WebCore::XPathResult::value): Exposed this getter so that we can mark our XPathValue. * xml/XPathResult.idl: Told the IDL parser that we now need a custom mark function. 2011-05-04 Philippe Normand <pnormand@igalia.com> Reviewed by Martin Robinson. [Gtk+] deadlock in gstreamer video player when exiting fullscreen https://bugs.webkit.org/show_bug.cgi?id=58548 Block data flow towards the pipeline branch to remove to avoid potential deadlocks during the PAUSED->READY transitions of the elements to remove. * platform/graphics/gstreamer/GStreamerGWorld.cpp: (WebCore::GStreamerGWorld::exitFullscreen): 2011-05-11 Kent Tamura <tkent@chromium.org> Reviewed by Hajime Morita. The position of validation message bubble is wrong for non text fields. https://bugs.webkit.org/show_bug.cgi?id=60341 Tests: fast/forms/validation-message-on-checkbox.html fast/forms/validation-message-on-listbox.html fast/forms/validation-message-on-menulist.html fast/forms/validation-message-on-radio.html fast/forms/validation-message-on-textarea.html * css/html.css: (::-webkit-validation-bubble-message): Add white-space:normal in order not to inherit white-space:pre for <select>. * html/ValidationMessage.cpp: (WebCore::adjustBubblePosition): Adjust the bubble position. - The top of the bubble should be same as the bottom of the target control. - The left of the bubble should be same as the left of the target control. But If the left+32 is larger than the center of the target control, left+32 should be at the center of the target control. But the left position should not be less than 0. (WebCore::ValidationMessage::buildBubbleTree): Call adjustBubblePosition(). 2011-05-11 Emil A Eklund <eae@chromium.org> Reviewed by Eric Seidel. Convert RenderFlexibleBox to use IntPoint/IntSize instead of x,y/w,h pairs https://bugs.webkit.org/show_bug.cgi?id=60592 Refactoring, covered by existing tests. * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutBlock): (WebCore::RenderFlexibleBox::layoutHorizontalBox): (WebCore::RenderFlexibleBox::layoutVerticalBox): (WebCore::RenderFlexibleBox::placeChild): * rendering/RenderFlexibleBox.h: 2011-05-10 Ilya Tikhonovsky <loislo@chromium.org> Unreviewed buildfix for strict OwnPtr. * platform/audio/AudioBus.cpp: (WebCore::AudioBus::createBufferFromRange): (WebCore::AudioBus::createBySampleRateConverting): (WebCore::AudioBus::createByMixingToMono): * platform/audio/HRTFElevation.cpp: (WebCore::HRTFElevation::createForSubject): (WebCore::HRTFElevation::createByInterpolatingSlices): * platform/audio/Panner.cpp: (WebCore::Panner::create): * platform/audio/Reverb.cpp: (WebCore::Reverb::initialize): * platform/audio/chromium/AudioBusChromium.cpp: (WebCore::AudioBus::loadPlatformResource): (WebCore::createBusFromInMemoryAudioFile): 2011-05-10 Adam Barth <abarth@webkit.org> Build fix for font data madness. I've had to whitelist this on several ports. They need to all be fixed at once. * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: 2011-05-10 David Kilzer <ddkilzer@apple.com> BUILD FIX for !ENABLE(TEXT_CARET) after r86039 * editing/FrameSelection.cpp: (WebCore::DragCaretController::paintDragCaret): Added UNUSED_PARAM(frame) for !ENABLE(TEXT_CARET). 2011-05-10 James Robinson <jamesr@chromium.org> Reviewed by Kenneth Russell. [chromium] Clean up setLayerRenderer() calls in LayerRendererChromium https://bugs.webkit.org/show_bug.cgi?id=60524 This refactors the way LayerRendererChromium calls setLayerRenderer on its layers in a few ways to clean things up: *) Move the pre-paint call to setLayerRenderer from updatePropertiesAndRenderSurfaces() to paintLayerContents(). updatePropertiesAndRenderSurfaces() does too much and the layer renderer pointer only has to be up to date to do the actual paint. Longer term we won't need to call this at all in order to call paint and this call will just go away. *) Tweaks updateCompositorResourcesRecursive() to be slightly shorter and less error-prone. *) Explicitly set the LayerRendererChromium for each layer in the tree when transfering the root layer (used during lost context). LayerChromium::setLayerRenderer checks if the new LayerRendererChromium is different by comparing the pointer value to the old one. This check will be incorrect if there are multiple lost contexts between a setLayerRenderer() call and a new LayerRendererChromium happens to be allocated at the same address as the old one. An explicit call to setLayerRenderer() for every layer in the tree fixes this since when this function is called the new and old LayerRendererChromium are still live and so they cannot live at the same address. The first two changes are purely refactors and do not change behavior. The third issue can't be tested via a layout test directly as we don't have a way to induce a lost context on the compositor in a layout test. * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::paintLayerContents): (WebCore::LayerRendererChromium::clearLayerRendererRecursive): (WebCore::LayerRendererChromium::transferRootLayer): (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces): (WebCore::LayerRendererChromium::updateCompositorResourcesRecursive): * platform/graphics/chromium/LayerRendererChromium.h: 2011-05-10 Anton D'Auria <adauria@apple.com> Reviewed by David Levin. StorageTracker should report actual local storage usage on disk https://bugs.webkit.org/show_bug.cgi?id=60558 Tests: storage/domstorage/localstorage/storagetracker/storage-tracker-6-create.html storage/domstorage/localstorage/storagetracker/storage-tracker-7-usage.html Use SQLiteFileSystem::getDatabaseFileSize to get actual usage by an origin's local storage db. Factored out code that retrieves path of local storage db. * WebCore.exp.in: Sorted alphabetically StorageTracker's mangled function names. * storage/StorageTracker.cpp: (WebCore::StorageTracker::syncDeleteOrigin): Uses helper function to get path of origin's db (WebCore::StorageTracker::databasePathForOrigin): New helper function. that gets the path of an origin's local storage db from StorageTracker. (WebCore::StorageTracker::diskUsageForOrigin): New API. * storage/StorageTracker.h: 2011-05-10 Anton D'Auria <adauria@apple.com> Reviewed by Alexey Proskuryakov. Add ApplicationCache API to get disk usage per origin https://bugs.webkit.org/show_bug.cgi?id=57127 ApplicationCacheStorage already provides an API to get per-origin disk usage. This should be exposed through WebCore::ApplicationCache to not be dependent on storage implementation. Test: http/tests/appcache/origin-usage.html * WebCore.exp.in: * loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::diskUsageForOrigin): * loader/appcache/ApplicationCache.h: 2011-05-10 Pratik Solanki <psolanki@apple.com> Reviewed by Alexey Proskuryakov. Protect self in [WebCoreResourceHandleAsDelegate connection:didReceiveDataArray:] https://bugs.webkit.org/show_bug.cgi?id=60594 <rdar://problem/9203259> No tests since we don't have any bots testing CFNETWORK_DATA_ARRAY_CALLBACK. * platform/network/mac/ResourceHandleMac.mm: (-[WebCoreResourceHandleAsDelegate connection:didReceiveDataArray:]): The didReceiveData() callback on client can result in the load being cancelled. This results in the delegate (self) being freed. Protect self during the loop so we can check for m_handle and safely return without crashing. 2011-05-10 Chris Guillory <chris.guillory@google.com> Reviewed by James Robinson. [ChromiumWin] Font::drawComplexText calls EndPlatformPaint without calling BeginPlatformPaint. https://bugs.webkit.org/show_bug.cgi?id=59848 To test this I plan to make the non-printing device (BitmapPlatformDevice) fail when EndPlatformPaint doesn't matchup with BeginPlatformPaint. http://codereview.chromium.org/6949012/ * platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::Font::drawComplexText): 2011-05-10 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r86195. http://trac.webkit.org/changeset/86195 https://bugs.webkit.org/show_bug.cgi?id=60597 LayerOffset is a really bad name (Requested by smfr on #webkit). * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/FrameView.cpp: (WebCore::FrameView::paintScrollCorner): * platform/graphics/LayerOffset.h: Removed. * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paint): (WebCore::InlineTextBox::paintCustomHighlight): * rendering/InlineTextBox.h: * rendering/RenderBox.cpp: (WebCore::RenderBox::paintCustomHighlight): * rendering/RenderBox.h: * rendering/RenderImage.cpp: (WebCore::RenderImage::paintReplaced): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintScrollCorner): (WebCore::RenderLayer::paintResizer): * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::paint): * rendering/RenderObject.h: * rendering/RenderScrollbar.cpp: (WebCore::RenderScrollbar::paintPart): * rendering/RenderScrollbarPart.cpp: (WebCore::RenderScrollbarPart::paintIntoRect): * rendering/RenderScrollbarPart.h: * rendering/RenderTable.cpp: (WebCore::RenderTable::paintObject): (WebCore::RenderTable::paintMask): * rendering/RenderTable.h: * rendering/RenderWidget.cpp: (WebCore::RenderWidget::paint): * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::paintCustomHighlight): (WebCore::RootInlineBox::paint): * rendering/RootInlineBox.h: 2011-05-10 Emil A Eklund <eae@chromium.org> Reviewed by Eric Seidel. Convert x,y and width,height pairs to IntPoint and IntSize for RenderLayer https://bugs.webkit.org/show_bug.cgi?id=60409 Convert RenderLayer to use IntPoint for x,y pairs and IntSize for offsets and sizes. Refactoring, covered by existing tests. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::RenderLayer): (WebCore::RenderLayer::updateLayerPositions): (WebCore::RenderLayer::updateLayerPosition): (WebCore::RenderLayer::scrollTo): (WebCore::RenderLayer::visibleHeight): (WebCore::RenderLayer::visibleWidth): (WebCore::RenderLayer::scrollWidth): (WebCore::RenderLayer::scrollHeight): (WebCore::RenderLayer::computeScrollDimensions): (WebCore::RenderLayer::updateScrollInfoAfterLayout): * rendering/RenderLayer.h: (WebCore::RenderLayer::x): (WebCore::RenderLayer::y): (WebCore::RenderLayer::setLocation): (WebCore::RenderLayer::width): (WebCore::RenderLayer::height): (WebCore::RenderLayer::size): (WebCore::RenderLayer::setWidth): (WebCore::RenderLayer::setHeight): (WebCore::RenderLayer::scrolledContentOffset): (WebCore::RenderLayer::scrollXOffset): (WebCore::RenderLayer::scrollYOffset): (WebCore::RenderLayer::scrollOffset): (WebCore::RenderLayer::scrollToXOffset): (WebCore::RenderLayer::scrollToYOffset): (WebCore::RenderLayer::relativePositionOffset): 2011-05-10 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Create LayerOffset class https://bugs.webkit.org/show_bug.cgi?id=60490 Adding a LayerOffset class that will replace existing usage of tx/ty. LayerOffset is necessary since these values are commonly used as both a size and a point. Updating paintIntoRect to use this new class. No new tests since this doesn't change any behavior. * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/FrameView.cpp: (WebCore::FrameView::paintScrollCorner): * platform/graphics/LayerOffset.h: Added. (WebCore::LayerOffset::LayerOffset): (WebCore::LayerOffset::x): (WebCore::LayerOffset::y): (WebCore::LayerOffset::setX): (WebCore::LayerOffset::setY): (WebCore::LayerOffset::toSize): (WebCore::LayerOffset::toPoint): (WebCore::operator+=): (WebCore::operator-=): (WebCore::operator+): (WebCore::operator-): (WebCore::operator==): (WebCore::operator!=): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintScrollCorner): (WebCore::RenderLayer::paintResizer): * rendering/RenderScrollbar.cpp: (WebCore::RenderScrollbar::paintPart): * rendering/RenderScrollbarPart.cpp: (WebCore::RenderScrollbarPart::paintIntoRect): * rendering/RenderScrollbarPart.h: 2011-05-10 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Darin Adler. Make member variables of CaretBase private https://bugs.webkit.org/show_bug.cgi?id=60454 Moved m_absCaretBounds, m_absoluteCaretRepaintBounds, m_absCaretBoundsDirty, and m_caretPaint back from CaretBase to FrameSelection because they are only used in FrameSelection, and made the rest of member variables in CaretBase private. * editing/FrameSelection.cpp: (WebCore::CaretBase::CaretBase): Takes CaretVisibility as an argument. (WebCore::DragCaretController::DragCaretController): (WebCore::FrameSelection::FrameSelection): Initializes m_absCaretBoundsDirty and m_caretPaint now that they are part of FrameSelection again. (WebCore::DragCaretController::setCaretPosition): (WebCore::FrameSelection::setSelection): (WebCore::CaretBase::clearCaretRect): Extracted from updateCaretRect. (WebCore::CaretBase::updateCaretRect): No longer clears caret; all call sites (namely setCaretPosition and localCaretRect) that used to call updateCaretRect now need to call clearCaretRect or updateCaretRect based on some conditions. (WebCore::FrameSelection::localCaretRect): (WebCore::CaretBase::caretRepaintRect): (WebCore::FrameSelection::recomputeCaretRect): (WebCore::FrameSelection::paintCaret): Only calls CaretBase::paintCaret if m_caretPaint is true. (WebCore::CaretBase::paintCaret): Removed an early exit for when m_caretPaint is false since m_caretPaint has been moved from CaretBase to FrameSelection. (WebCore::FrameSelection::focusedOrActiveStateChanged): (WebCore::FrameSelection::updateAppearance): (WebCore::FrameSelection::setCaretVisibility): Takes CaretVisibility instead of bool. (WebCore::FrameSelection::caretBlinkTimerFired): * editing/FrameSelection.h: (WebCore::CaretBase::fastLocalCaretRect): Added; replaces localCaretRectForPainting. (WebCore::CaretBase::shouldUpdateCaretRect): Added. (WebCore::CaretBase::setCaretRectNeedsUpdate): Added. (WebCore::CaretBase::setCaretVisibility): Added. (WebCore::CaretBase::caretIsVisible): Added. (WebCore::FrameSelection::setCaretRectNeedsUpdate): Added. 2011-05-10 James Robinson <jamesr@chromium.org> Reviewed by Nate Chapin. [chromium] Use parent/child terms for compositor tree structures consistently instead of superlayer/sublayer https://bugs.webkit.org/show_bug.cgi?id=60588 GraphicsLayer uses parent/child terminology for tree structure, as does CCLayerImpl. LayerChromium was using superlayer/sublayer terms, inherited from this code's branching from the platform/graphics/win/CACF code. The mixed terminology is confusing and parent/child is more common, so this unifies everything to use parent/child. No new tests, refactor only. * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::setChildren): (WebCore::GraphicsLayerChromium::addChild): (WebCore::GraphicsLayerChromium::addChildAtIndex): (WebCore::GraphicsLayerChromium::addChildBelow): (WebCore::GraphicsLayerChromium::addChildAbove): (WebCore::GraphicsLayerChromium::replaceChild): (WebCore::GraphicsLayerChromium::removeFromParent): (WebCore::GraphicsLayerChromium::setContentsToImage): (WebCore::GraphicsLayerChromium::setContentsToCanvas): (WebCore::GraphicsLayerChromium::setContentsToMedia): (WebCore::GraphicsLayerChromium::hostLayerForChildren): (WebCore::GraphicsLayerChromium::layerForParent): (WebCore::GraphicsLayerChromium::updateChildList): (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): (WebCore::GraphicsLayerChromium::setupContentsLayer): * platform/graphics/chromium/GraphicsLayerChromium.h: * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::LayerChromium): (WebCore::LayerChromium::~LayerChromium): (WebCore::LayerChromium::addChild): (WebCore::LayerChromium::insertChild): (WebCore::LayerChromium::removeFromParent): (WebCore::LayerChromium::removeChild): (WebCore::LayerChromium::replaceChild): (WebCore::LayerChromium::indexOfChild): (WebCore::LayerChromium::rootLayer): (WebCore::LayerChromium::removeAllChildren): (WebCore::LayerChromium::setChildren): (WebCore::LayerChromium::parent): (WebCore::LayerChromium::dumpLayer): * platform/graphics/chromium/LayerChromium.h: (WebCore::LayerChromium::children): (WebCore::LayerChromium::setParent): (WebCore::LayerChromium::numChildren): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces): (WebCore::LayerRendererChromium::updateCompositorResourcesRecursive): (WebCore::LayerRendererChromium::dumpRenderSurfaces): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::parent): (WebCore::CCLayerImpl::descendantsDrawsContent): * platform/graphics/chromium/cc/CCLayerImpl.h: 2011-05-10 Levi Weintraub <leviw@chromium.org> Reviewed by Darin Adler. Switch RenderBoxModelObject::paintNinePieceImage to use IntRect instead of four ints https://bugs.webkit.org/show_bug.cgi?id=60586 Switch paintNinePieceImage to take an IntRect instead of four ints representing an IntRect! No new tests as this is simply refactoring. * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintMask): * rendering/RenderBox.cpp: (WebCore::RenderBox::paintMaskImages): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintNinePieceImage): (WebCore::RenderBoxModelObject::paintBorder): * rendering/RenderBoxModelObject.h: 2011-05-05 Jer Noble <jer.noble@apple.com> Reviewed by Maciej Stachowiak. Removing the full screen element via parent.innerHTML="" does not result in a webkitfullscreenchange event. https://bugs.webkit.org/show_bug.cgi?id=60278 Handle the removal of a full screen element from within Node::willRemove() instead of Document::nodeWillBeRemoved(). The new function Document::fullScreenElementWillBeRemoved() will be called by Node::willRemove() to handle those changes which used to occur in nodeWillBeRemoved(). Test: fullscreen/full-screen-remove-children.html * dom/Document.cpp: (WebCore::Document::nodeWillBeRemoved): Removed the code checking for the full screen element. (WebCore::Document::fullScreenElementWillBeRemoved): Added, moved from nodeWillBeRemoved. * dom/Document.h: * dom/Node.cpp: (WebCore::Node::willRemove): Check to see if this is the current full screen element. 2011-05-10 Beth Dakin <bdakin@apple.com> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=60582 Crash switching overlay/non-overlay scrollbar preference still possible -and corresponding- <rdar://problem/9323983> This patch prevents any work from being done on pages that are in the page cache when the preference is switched. When the Document is going into or coming out of the page cache, have the FrameView inactivate or activate the Page's ScrollAnimators as appropriate. * dom/Document.cpp: (WebCore::Document::setInPageCache): Iterate through the Page's ScrollableAreas setting the active state of the ScrollAnimators. * page/FrameView.cpp: (WebCore::FrameView::setAnimatorsAreActive): * page/FrameView.h: ScrollAnimator has a new bit -- m_isActive. Right now m_isActive is always true unless the ScrollAnimator belongs to a ScrollableArea that is in the page cache. * platform/ScrollAnimator.cpp: (WebCore::ScrollAnimator::ScrollAnimator): * platform/ScrollAnimator.h: (WebCore::ScrollAnimator::setIsActive): (WebCore::ScrollAnimator::isActive): ScrollAnimatorMac has a new bit -- m_needsScrollerStyleUpdate. This is set to true when a ScrollAnimator is inactive and has received the updateScrollerStyleForNewRecommendedScrollerStyle delegate notification. It prevents any work from being done for this delegate until the ScrollAnimator becomes active again. * platform/mac/ScrollAnimatorMac.h: (WebCore::ScrollAnimatorMac::setNeedsScrollerStyleUpdate): (WebCore::ScrollAnimatorMac::needsScrollerStyleUpdate): This delegate method has been re-factored into ScrollAnimatorMac:: updateScrollerStyle(). This way the meat of the function can be called by both the delegate and ScrollAnimatorMac::setIsActive() * platform/mac/ScrollAnimatorMac.mm: (-[ScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]): (WebCore::ScrollAnimatorMac::ScrollAnimatorMac): This override of ScrollAnimator::setIsActive() calls the base class, and then calls updateScrollerStyle() if needsScrollerStyleUpdate() is set to true. (WebCore::ScrollAnimatorMac::setIsActive): This is mostly the same as the old delegate method. Key differences are that if the ScrollAnimator is inactive, we now setNeedsScrollerStyleUpdate(true) and return early. We also only call scrollableArea()->scrollbarStyleChanged() if needsScrollerStyleUpdate() is false since in the true case when we are restoring from the page cache, this would be duplicated work. (WebCore::ScrollAnimatorMac::updateScrollerStyle): New WKSystemInterface function is needed to retrieve the scrollbar style. * WebCore.exp.in: * platform/mac/WebCoreSystemInterface.h: * platform/mac/WebCoreSystemInterface.mm: 2011-05-10 Adam Barth <abarth@webkit.org> Reviewed by David Levin. Enable strict PassOwnPtr on Chromium https://bugs.webkit.org/show_bug.cgi?id=60502 Technically there are a few bits in here that weren't reviewed by Dave, but close enough for government work. This patch all fixes the remaining strict PassOwnPtr violations on Chromium Linux. * platform/graphics/chromium/PlatformCanvas.cpp: (WebCore::PlatformCanvas::resize): * platform/graphics/chromium/SimpleFontDataLinux.cpp: * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::ImageBuffer): * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::setSharedGraphicsContext3D): 2011-05-10 Brady Eidson <beidson@apple.com> Reviewed by Alice Liu. <rdar://problem/9343191> and https://bugs.webkit.org/show_bug.cgi?id=60572 REGRESSION - Canon On-screen Manual.app crashes after a search No new tests - There's no way to reproduce the truly bizarre things Canon does in their app that would reasonably fit in to our testing infrastructure. In r66577 a new behavior was added where changing the "setLoadsImagesAutomatically" setting to "true" would immediately start loading those images that had been disabled. If this happens while a WebView is being dealloc'ed, and we don't know the WebView is being dealloc'ed, these new loads can cause crashes downstream when the WebView memory has actually been free'd. One example where this can happen is in Mac apps that subclass WebView then do work in their overridden dealloc methods. And the Canon Onscreen Manual is one such app. Starting these loads synchronously is not important. By putting it on a 0-delay, properly closing the Page cancels them before they have a chance to really start. See http://webkit.org/b/60572 for more discussion. Add a timer to Settings and instead of calling setLoadsImagesAutomaticallyInAllFrames right away when this pref changes, call it on a 0-delay: * page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setLoadsImagesAutomatically): (WebCore::Settings::loadsImagesAutomaticallyTimerFired): * page/Settings.h: 2011-05-10 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK][WebKit2] GTK+ 2.x widget rendering fails after r85480 https://bugs.webkit.org/show_bug.cgi?id=59990 No new tests. This is covered by existing pixel tests. * platform/gtk/GtkVersioning.c: (getGdkDrawableSize): Added this helper method. * platform/gtk/GtkVersioning.h: Added helper method declaration. * platform/gtk/WidgetRenderingContext.cpp: (WebCore::WidgetRenderingContext::WidgetRenderingContext): Call into the helper if there is actually a GdkDrawable. If not, disable the sanity check. 2011-05-10 Martin Robinson <mrobinson@igalia.com> Fix the GTK+ WebKit2 build. Add a CredentialsStorage stub for libsoup. * GNUmakefile.list.am: Add stub to source list. * platform/network/soup/CredentialStorageSoup.cpp: Added. (WebCore::CredentialStorage::getFromPersistentStorage): Added stub. (WebCore::CredentialStorage::get): 2011-05-09 David Hyatt <hyatt@apple.com> Reviewed by Dan Bernstein. <rdar://problem/9354979> REGRESSION (r83070-r83126): This conversation takes 10 seconds to load and makes mail unresponsive Second attempts at a fix for this bug. Instead of removing the dirtying (which turned out to be needed in a few cases), make dirtyLinesFromChangedChild mark a child as needing layout when it has to recur to the parent. Because the method already aborts the recursion if selfNeedsLayout() is set on the parent, this has the effect of stopping the O(n^2) pathological behavior, since you can use the selfNeedsLayout() bit to understand that you've dirtied the lines already. * rendering/RenderLineBoxList.cpp: (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild): 2011-05-05 Brent Fulgham <bfulgham@webkit.org> and Martin Robinson <mrobinson@igalia.com> Reviewed by Anders Carlsson. [Cairo][WebKit2] Add an implementation of ShareableBitmap for Cairo https://bugs.webkit.org/show_bug.cgi?id=60293 No new tests. This is covered by current pixel tests. * platform/graphics/cairo/CairoUtilities.cpp: (WebCore::copyCairoImageSurface): Abstract the code from WebCore::ImageBuffer::copyImage into this helper which creates a deep copy of a Cairo image surface. * platform/graphics/cairo/CairoUtilities.h: Added declaration. * platform/graphics/cairo/ImageBufferCairo.cpp: (WebCore::ImageBuffer::copyImage): Use the new helper. * platform/graphics/cairo/ImageCairo.cpp: Abstract some of this logic into the new drawSurfaceToContext method on PlatformContextCairo. (WebCore::BitmapImage::draw): * platform/graphics/cairo/PlatformContextCairo.cpp: (WebCore::drawPatternToCairoContext): Added. (WebCore::PlatformContextCairo::drawSurfaceToContext): Added. * platform/graphics/cairo/PlatformContextCairo.h: Added declarations. 2011-05-10 Anders Carlsson <andersca@apple.com> Attempt to fix Qt build. * platform/network/qt/CredentialStorageQt.cpp: (WebCore::CredentialStorage::get): Add stub. 2011-05-10 Kenichi Ishibashi <bashi@chromium.org> Reviewed by Tony Chang. REGRESSION(r85013): platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html is failing https://bugs.webkit.org/show_bug.cgi?id=60079 Set resultingNumPoints = 0 so that harfbuzz uses the design coordinate value pair. * platform/graphics/chromium/HarfbuzzSkia.cpp: (WebCore::getOutlinePoint): Just return HB_Err_Ok with resultingNumPoints = 0. 2011-05-10 Anders Carlsson <andersca@apple.com> Reviewed by Sam Weinig. Extra sign in required to view video on MobileMe Gallery album https://bugs.webkit.org/show_bug.cgi?id=60560 <rdar://problem/9338693> Add symbols required by WebKit2. * WebCore.exp.in: 2011-05-10 Alexander Pavlov <apavlov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Styles sidebar is not updated upon changes in the Resources panel. https://bugs.webkit.org/show_bug.cgi?id=60320 * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel): 2011-05-06 Brett Wilson <brettw@chromium.org> Reviewed by Adam Barth. Use a File object to store the downloaded file reference rather than just the path. This keeps the file and permissions in scope (using the already-existing blob system) so the browser won't delete the file when the load is complete. Instead, the file will be cleaned up when the request objects are deleted. https://bugs.webkit.org/show_bug.cgi?id=60281 * platform/network/chromium/ResourceResponse.cpp: (WebCore::ResourceResponse::doPlatformCopyData): (WebCore::ResourceResponse::doPlatformAdopt): * platform/network/chromium/ResourceResponse.h: (WebCore::ResourceResponse::downloadedFile): (WebCore::ResourceResponse::setDownloadedFile): 2011-05-10 Eric Carlson <eric.carlson@apple.com> Reviewed by Darin Adler. Files that load quickly sometimes won't play. https://bugs.webkit.org/show_bug.cgi?id=60556 <rdar://problem/9330567> No new tests, this failure is very difficult to reproduce on some machines. The fix was verified manually. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::playabilityKnown): Move the call to updateStates to dispatchNotification so it is more obvious which state changes call it. (WebCore::MediaPlayerPrivateAVFoundation::setNaturalSize): Correct logging typo. (WebCore::MediaPlayerPrivateAVFoundation::metadataLoaded): Move updateStates call to dispatchNotification. (WebCore::MediaPlayerPrivateAVFoundation::rateChanged): Ditto. (WebCore::MediaPlayerPrivateAVFoundation::loadedTimeRangesChanged): Ditto. (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Call updateStates after processing "size changed" notification so we detect all state changes. Consolidate calls to updateStates here. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Name the video layer in a debug build. 2011-05-10 Abhishek Arya <inferno@chromium.org> Reviewed by Simon Fraser. Add containsFloats call to hasOverhangingFloats. https://bugs.webkit.org/show_bug.cgi?id=60537 Test: fast/block/float/no-overhanging-float-crash.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::repaintOverhangingFloats): * rendering/RenderBlock.h: (WebCore::RenderBlock::hasOverhangingFloats): 2011-05-10 Alexis Menard <alexis.menard@openbossa.org> Reviewed by Antonio Gomes. Warning fix on PluginPackage.cpp. https://bugs.webkit.org/show_bug.cgi?id=60371 Warning fix on conversion from time_t to unsigned on Linux with GCC 4.6.0. Let's use a struct rather than an array so we can pass everything to StringHasher. * plugins/PluginPackage.cpp: (WebCore::PluginPackage::hash): 2011-05-10 Andreas Kling <andreas.kling@nokia.com> Rubber-stamped by Csaba Osztrogonác. [Qt] Disable HAVE_QRAWFONT until Qt API stabilizes. https://bugs.webkit.org/show_bug.cgi?id=60551 * WebCore.pro: Disable the line that enables HAVE_QRAWFONT if the feature is found. Added a comment about why. 2011-05-10 Andrey Kosyakov <caseq@chromium.org> Reviewed by Sam Weinig. Web Inspector: inspector/console/console-shadow-dom-access.html crashes on mac debug https://bugs.webkit.org/show_bug.cgi?id=60266 * bindings/objc/DOM.mm: (kitClass): return DOMNode class for shadow root node 2011-05-10 Ben Murdoch <benm@google.com> Reviewed by Steve Block. Fix build in WebCore/xml/XSLTProcessorLibxslt.cpp https://bugs.webkit.org/show_bug.cgi?id=60478 No new tests), build fix only. * xml/XSLTProcessorLibxslt.cpp: Add CString.h include. 2011-05-10 Keith Kyzivat <keith.kyzivat@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] QtRawFont support should check based on feature, not version https://bugs.webkit.org/show_bug.cgi?id=60513 Build fix - no tests added. * WebCore.pro: 2011-05-10 Tony Gentilcore <tonyg@chromium.org> Build fix: include ExceptionCode https://bugs.webkit.org/show_bug.cgi?id=60538 * bindings/js/JSDOMBinding.cpp: 2011-05-06 Tony Gentilcore <tonyg@chromium.org> Reviewed by Darin Adler. Fix some unnecessary includes in headers https://bugs.webkit.org/show_bug.cgi?id=60388 These were all found using the include-what-you-use clang plugin. * css/CSSFontFaceSrcValue.h: * css/CSSImageGeneratorValue.h: * css/CSSParser.h: * css/CSSPrimitiveValueCache.cpp: * css/CSSPrimitiveValueCache.h: * css/CSSStyleSelector.cpp: * css/CSSStyleSelector.h: * css/RGBColor.cpp: * css/RGBColor.h: * dom/EventTarget.h: * dom/ExceptionBase.cpp: * dom/ExceptionBase.h: * dom/MessagePort.cpp: * dom/Range.cpp: * dom/Range.h: * dom/SelectElement.cpp: * dom/SelectElement.h: * dom/TextEvent.cpp: * dom/TextEvent.h: * dom/Touch.cpp: * dom/Touch.h: * dom/TouchEvent.cpp: * dom/TouchEvent.h: * dom/XMLDocumentParser.h: * dom/XMLDocumentParserScope.h: * editing/AppendNodeCommand.cpp: * editing/ApplyBlockElementCommand.h: * editing/DeleteFromTextNodeCommand.cpp: * editing/EditCommand.h: * editing/Editor.h: * editing/FormatBlockCommand.h: * editing/IndentOutdentCommand.h: * editing/InsertIntoTextNodeCommand.cpp: * editing/InsertNodeBeforeCommand.cpp: * editing/ReplaceSelectionCommand.h: * editing/SetNodeAttributeCommand.h: * html/HTMLSelectElement.h: * html/canvas/CanvasRenderingContext2D.cpp: * loader/appcache/DOMApplicationCache.cpp: * page/EventSource.cpp: * rendering/RenderListBox.cpp: * rendering/RenderMenuList.cpp: * rendering/RenderTextControlSingleLine.cpp: * rendering/svg/RenderSVGInlineText.cpp: * svg/SVGMatrix.h: * websockets/WebSocket.cpp: * workers/AbstractWorker.cpp: * xml/XMLHttpRequest.cpp: * xml/XPathExpression.cpp: 2011-05-10 MORITA Hajime <morrita@google.com> Reviewed by Ryosuke Niwa. REGRESSION(r73886): Frequent crashes in replaceSelectionWithFragment https://bugs.webkit.org/show_bug.cgi?id=60090 SpellChecker uses TextCheckerClient, which belongs Page object, which is possibly destroyed during SpellChecker's lifetime. This change added to a guard before using TextCheckerClient to ensure it being live. No new tests, this is a speculative fix for a real crash. * editing/Editor.cpp: (WebCore::Editor::Editor): * editing/SpellChecker.cpp: (WebCore::SpellChecker::SpellChecker): (WebCore::SpellChecker::client): (WebCore::SpellChecker::canCheckAsynchronously): (WebCore::SpellChecker::requestCheckingFor): * editing/SpellChecker.h: 2011-05-09 Dan Bernstein <mitz@apple.com> Try to fix the LLVM Compiler build. * page/EventHandler.h: 2011-05-09 Daniel Cheng <dcheng@chromium.org> Fix the build. Really add the file this time. * page/DragState.h: Added. (WebCore::DragState::DragState): 2011-05-09 Daniel Cheng <dcheng@chromium.org> Reviewed by Tony Chang. Refactor RenderObject::draggableNode. https://bugs.webkit.org/show_bug.cgi?id=60503 This patch lays the ground for refactoring the drag start logic. It moves draggableNode to DragController to avoid the awkward plumbing of calling DragController from RenderObject and also moves EventHandlerDragState out from EventHandler so it can be shared between EventHandler and DragController where appropriate. No new tests since there should be no behavior change. * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/DragController.cpp: (WebCore::DragController::draggableNode): (WebCore::DragController::mayStartDragAtEventLocation): * page/DragController.h: * page/DragState.h: Added. (WebCore::DragState::DragState): * page/EventHandler.cpp: (WebCore::EventHandler::dragState): (WebCore::EventHandler::eventMayStartDrag): (WebCore::EventHandler::handleDrag): * page/EventHandler.h: * rendering/RenderObject.cpp: * rendering/RenderObject.h: 2011-05-09 Luke Macpherson <macpherson@chromium.org> Reviewed by Darin Adler. Enable casting between CSSPrimitiveValue and FontWeight enum https://bugs.webkit.org/show_bug.cgi?id=60516 No new tests added as no functionality changed. * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Implement cast from FontWeight to CSSPrimitiveValue. (WebCore::CSSPrimitiveValue::operator FontWeight): Implement cast from CSSPrimitiveValue to FontWeight * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Use new cast to reduce code size. Flatten switch inside if. 2011-05-09 Simon Fraser <simon.fraser@apple.com> Move IconURL.* into the dom grouping. * WebCore.xcodeproj/project.pbxproj: 2011-05-08 Jeremy Noble <jer.noble@apple.com> Reviewed by Dan Bernstein. Full-screen video disappears behind black screen with scrollbar, followed by crash at jerryseinfeld.com https://bugs.webkit.org/show_bug.cgi?id=60449 Make RenderFullScreen a non-anonymous block, so that it does not get deleted when a parent attempts to coalesce anonymous children. Test: fullscreen/full-screen-remove-sibling.html * rendering/RenderObject.h: (WebCore::RenderObject::isAnonymousBlock): 2011-05-09 Jeremy Noble <jer.noble@apple.com> Reviewed by Simon Fraser. REGRESSION (r84706): Crazy rendering of vimeo.com after exiting fullscreen video https://bugs.webkit.org/show_bug.cgi?id=60512 Initialize m_containsFullScreenElement. * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::HTMLFrameElementBase): 2011-05-09 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Darin Adler. REGRESSION(r86039): DragCaretController doesn't draw caret https://bugs.webkit.org/show_bug.cgi?id=60505 Removed an early exit in setCaretPosition introduced by r86039. Also replaced calls to containerNode by deprecatedNode since rendering code doesn't support container node for rendering caret. * editing/FrameSelection.cpp: (WebCore::DragCaretController::setCaretPosition): 2011-04-29 Martin Robinson <mrobinson@igalia.com> Reviewed by Gustavo Noronha Silva. [GTK] Untangle GtkAdjustments from WebCore https://bugs.webkit.org/show_bug.cgi?id=59821 Completely remove the ability for WebKit to set GtkAdjustments on ScrollViews and, consequently, Scrollbars. Handling adjustment updates can now be managed in WebKit. No new tests. This is covered by existing Scrollbar tests. * platform/ScrollView.cpp: platformInit and platformDestroy can now be shared between ScrollView.cpp and ScrollViewGtk.cpp. * platform/ScrollView.h: Remove unused methods. * platform/gtk/MainFrameScrollbarGtk.cpp: (MainFrameScrollbarGtk::create): No longer need to pass in the adjustment. (MainFrameScrollbarGtk::MainFrameScrollbarGtk): Update the comments here. * platform/gtk/MainFrameScrollbarGtk.h: Lots of code removal. * platform/gtk/ScrollViewGtk.cpp: Ditto. (WebCore::ScrollView::createScrollbar): Ditto. (WebCore::ScrollView::setScrollbarModes): Ditto. * plugins/gtk/PluginViewGtk.cpp: This file needs the GRefPtrGtk.h include now that it doesn't receive it transitively. 2011-05-09 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. CSP should block Function constructor https://bugs.webkit.org/show_bug.cgi?id=60240 Tests: http/tests/security/contentSecurityPolicy/function-constructor-allowed.html http/tests/security/contentSecurityPolicy/function-constructor-blocked.html * bindings/js/JSLazyEventListener.cpp: (WebCore::JSLazyEventListener::initializeJSFunction): - Update call site to the new entrypoint. * bindings/v8/V8LazyEventListener.cpp: (WebCore::V8LazyEventListener::prepareListenerObject): - Add some comments about the rediculousness of this implementation. 2011-05-09 Chris Rogers <crogers@google.com> Reviewed by Kenneth Russell. Add RAII-style DenormalDisabler class to disable denormals which hurt audio performance https://bugs.webkit.org/show_bug.cgi?id=60396 No new tests since audio API is not yet implemented. * WebCore.gypi: * WebCore.xcodeproj/project.pbxproj: * platform/audio/DenormalDisabler.h: Added. (WebCore::DenormalDisabler::DenormalDisabler): (WebCore::DenormalDisabler::~DenormalDisabler): (WebCore::DenormalDisabler::getCSR): (WebCore::DenormalDisabler::setCSR): * webaudio/AudioDestinationNode.cpp: (WebCore::AudioDestinationNode::provideInput): 2011-05-09 Tony Chang <tony@chromium.org> Reviewed by Eric Seidel. Style cleanups in RenderFlexibleBox.cpp https://bugs.webkit.org/show_bug.cgi?id=60504 No new tests, just refactoring. * rendering/RenderFlexibleBox.cpp: (WebCore::FlexBoxIterator::FlexBoxIterator): Use m_ for member variables, and use class initializer list. (WebCore::FlexBoxIterator::reset): (WebCore::FlexBoxIterator::next): (WebCore::RenderFlexibleBox::RenderFlexibleBox): (WebCore::marginWidthForChild): Pull out common code used in calc*PrefWidths (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths): (WebCore::RenderFlexibleBox::calcVerticalPrefWidths): (WebCore::RenderFlexibleBox::computePreferredLogicalWidths): (WebCore::RenderFlexibleBox::layoutBlock): (WebCore::gatherFlexChildrenInfo): Rewrite uses of FlexBoxIterator into for statements rather than while loops. (WebCore::RenderFlexibleBox::layoutHorizontalBox): ditto (WebCore::RenderFlexibleBox::layoutVerticalBox): ditto (WebCore::RenderFlexibleBox::applyLineClamp): (WebCore::RenderFlexibleBox::allowedChildFlex): Rename variables w/h to width/height. 2011-05-09 Eric Seidel <eric@webkit.org> Reviewed by Ryosuke Niwa. Abstract line deletion code into a function https://bugs.webkit.org/show_bug.cgi?id=60501 No change in behavior, thus no testing. * rendering/RenderBlockLineLayout.cpp: (WebCore::deleteLineRange): (WebCore::RenderBlock::layoutRunsAndFloats): (WebCore::RenderBlock::determineStartPosition): (WebCore::RenderBlock::matchedEndLine): 2011-05-09 Darin Adler <darin@apple.com> Cleared some stray executable bits on source files. * bindings/js/WorkerScriptDebugServer.cpp: Removed property svn:executable. * bindings/js/WorkerScriptDebugServer.h: Removed property svn:executable. 2011-05-09 Erik Arvidsson <arv@chromium.org> Reviewed by Darin Adler. radiogroup: onchange not detected when triggered by keyboard https://bugs.webkit.org/show_bug.cgi?id=32013 Test: fast/forms/radio-group-keyboard-change-event.html * html/RadioInputType.cpp: (WebCore::RadioInputType::handleKeydownEvent): Ensure that we do not check the radio input before we simulate the click event. The simulated click event will check it for us but more importantly it will fire the "change" event as expected. 2011-05-09 Adam Barth <abarth@webkit.org> Reviewed by Daniel Bates. XSSAuditor should be more selective about the <meta http-equivs> that it blocks https://bugs.webkit.org/show_bug.cgi?id=60489 We don't need to filter most http-equiv attributes. This patch introduces a blacklist for two that we probably do want to filter. It's possible a whitelist would be more appropriate, but I'm inclined to start with a blacklist and see how it works. This patch will hopefully fix a false positive that is causing errors with copy-and-pasted text in Gmail in some configurations (due to using the <meta> tag to request UTF-8 encoding both in the pasted text and in the page itself). * html/parser/XSSFilter.cpp: (WebCore::isNonCanonicalCharacter): (WebCore::canonicalize): (WebCore::isRequiredForInjection): (WebCore::hasName): (WebCore::findAttributeWithName): (WebCore::isNameOfInlineEventHandler): (WebCore::isDangerousHTTPEquiv): - This function is new in the patch and includes a blacklist of dangerous http-equivs. Many of the other functions listed here are just being moved from an anonymous namespace to use static for internal linkage. (WebCore::containsJavaScriptURL): (WebCore::decodeURL): (WebCore::XSSFilter::eraseAttributeIfInjected): 2011-05-05 Matthew Delaney <mdelaney@apple.com> Reviewed by Simon Fraser. Remove canvas usage of roundToDevicePixels https://bugs.webkit.org/show_bug.cgi?id=60331 No new tests. This could only affect canvases at non-integral scale factors. Our tests only run in 1.0x. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage): 2011-05-09 Alexis Menard <alexis.menard@openbossa.org> Reviewed by Andreas Kling. [Qt] Fix the build on Embedded Linux. https://bugs.webkit.org/show_bug.cgi?id=60347 qpa is the name for lighthouse but the old name for Qt for Embedded Linux should still be used in order to build properly. * WebCore.pri: 2011-05-09 Andreas Kling <kling@webkit.org> Reviewed by Kenneth Rohde Christiansen. [Qt] Simple small-caps text is displayed in uniform size. https://bugs.webkit.org/show_bug.cgi?id=60492 Covered by existing tests. * platform/graphics/qt/FontPlatformDataQt.cpp: (WebCore::FontPlatformData::FontPlatformData): In the FontPlatformData constructor used by SimpleFontData::scaledFontData(), pass the pixel size to both QFont and QRawFont to make small caps and emphasis marks have the correct size when rendered through the fast font path. 2011-05-09 Andreas Kling <kling@webkit.org> Reviewed by Tor Arne Vestbø. [Qt] Remove unused FontPlatformData functions. https://bugs.webkit.org/show_bug.cgi?id=60485 * platform/graphics/qt/FontPlatformData.h: (WebCore::FontPlatformData::bold): Removed. (WebCore::FontPlatformData::family): Removed. (WebCore::FontPlatformData::italic): Removed. (WebCore::FontPlatformData::smallCaps): Removed. 2011-05-09 Robin Dunn <robin@alldunn.com> Reviewed by Kevin Ollivier. [wx] Add invalid file handle check. https://bugs.webkit.org/show_bug.cgi?id=60483 * platform/wx/FileSystemWx.cpp: (WebCore::closeFile): 2011-05-09 Robin Dunn <robin@alldunn.com> Reviewed by Kevin Ollivier. [wx] Update the popup menu code to grab the native control and initialize the event handler properly. https://bugs.webkit.org/show_bug.cgi?id=60482 * platform/wx/PopupMenuWx.cpp: (WebCore::PopupMenuWx::PopupMenuWx): (WebCore::PopupMenuWx::~PopupMenuWx): (WebCore::PopupMenuWx::show): 2011-05-09 Robin Dunn <robin@alldunn.com> Reviewed by Kevin Ollivier. [wx] Make sure other controls adjust the rect to handle transforms, and turn off the adjustment in 2.9.2+ where it is handled internally by wx. Also add a couple drawing and focus handling fixes for text fields and menulist controls. https://bugs.webkit.org/show_bug.cgi?id=60481 * platform/wx/RenderThemeWx.cpp: (WebCore::getAdjustedRect): (WebCore::RenderThemeWx::supportsFocus): (WebCore::RenderThemeWx::paintButton): (WebCore::RenderThemeWx::adjustTextFieldStyle): (WebCore::RenderThemeWx::paintTextField): (WebCore::RenderThemeWx::adjustMenuListStyle): (WebCore::RenderThemeWx::paintMenuList): (WebCore::RenderThemeWx::paintMenuListButton): 2011-05-09 Tony Gentilcore <tonyg@chromium.org> Reviewed by Darin Adler. Style fix: Function names must begin with lowercase letter and should not use "get". https://bugs.webkit.org/show_bug.cgi?id=60475 * dom/Document.cpp: (WebCore::Document::webkitVisibilityState): * page/PageVisibilityState.cpp: (WebCore::pageVisibilityStateString): Renamed. * page/PageVisibilityState.h: 2011-05-09 Adam Barth <abarth@webkit.org> Reviewed by Tony Gentilcore. Make Chromium build with strict PassOwnPtr https://bugs.webkit.org/show_bug.cgi?id=60461 Fix many, many PassOwnPtr nits. * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::precompileScript): * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::WindowSetTimeoutImpl): * bindings/v8/custom/V8MessageEventCustom.cpp: (WebCore::V8MessageEvent::initMessageEventCallback): * bindings/v8/custom/V8WorkerContextCustom.cpp: (WebCore::SetTimeoutOrInterval): * dom/Document.cpp: (WebCore::Document::removedLastRef): (WebCore::Document::detach): * fileapi/DOMFileSystem.h: (WebCore::DOMFileSystem::scheduleCallback): * fileapi/FileSystemCallbacks.cpp: (WebCore::FileSystemCallbacks::didOpenFileSystem): (WebCore::ResolveURICallbacks::didOpenFileSystem): * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayer::create): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::createRenderSurface): * platform/graphics/gpu/BicubicShader.cpp: (WebCore::BicubicShader::create): * platform/graphics/gpu/ConvolutionShader.cpp: (WebCore::ConvolutionShader::create): * platform/graphics/gpu/LoopBlinnSolidFillShader.cpp: (WebCore::LoopBlinnSolidFillShader::create): * platform/graphics/gpu/SolidFillShader.cpp: (WebCore::SolidFillShader::create): * platform/graphics/gpu/TexShader.cpp: (WebCore::TexShader::create): * platform/graphics/gpu/Texture.cpp: (WebCore::Texture::create): * storage/chromium/DatabaseTrackerChromium.cpp: (WebCore::TrackerRemoveOpenDatabaseTask::create): * storage/chromium/SQLTransactionClientChromium.cpp: (WebCore::NotifyDatabaseChangedTask::create): 2011-05-07 Martin Robinson <mrobinson@igalia.com> Reviewed by Daniel Bates. [Soup] Clean up error handling in ResourceHandleSoup https://bugs.webkit.org/show_bug.cgi?id=60436 Instead of repeating the ResourceError creation twice, abstract it into a helper method. No new tests. This is a code cleanup. * platform/network/soup/ResourceHandleSoup.cpp: (WebCore::soupErrorShouldCauseLoadFailure): Added. (WebCore::convertSoupErrorToResourceError): Added. (WebCore::sendRequestCallback): Use the new helpers. (WebCore::readCallback): Ditto. 2011-05-09 Abhishek Arya <inferno@chromium.org> Reviewed by Dave Hyatt. Regression(r85869): Restore dirty line logic in RenderInline::destroy. https://bugs.webkit.org/show_bug.cgi?id=60448 Test: fast/inline/inline-destroy-dirty-lines-crash.html * rendering/RenderInline.cpp: (WebCore::RenderInline::destroy): 2011-05-09 Alejandro G. Castro <alex@igalia.com> Reviewed by Martin Robinson. [GTK] WidgetGtk setFocus can not access directly the widget in WK2 https://bugs.webkit.org/show_bug.cgi?id=60016 Added code to check the situation where we do not have direct access to the widget. We use the page to grab the focus which would send a request to the UIProcess in WK2. * platform/gtk/WidgetGtk.cpp: (WebCore::Widget::setFocus): 2011-05-09 Leandro Gracia Gil <leandrogracia@chromium.org> Reviewed by Tony Gentilcore. Media Stream API: add exception raising to the getUserMedia method. https://bugs.webkit.org/show_bug.cgi?id=60387 Perform the required changes to support rising exceptions in the navigator.getUserMedia method. This is required by the latest changes in the spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dom-navigator-getusermedia Test: fast/dom/MediaStream/argument-types.html * bindings/js/JSNavigatorCustom.cpp: (WebCore::JSNavigator::webkitGetUserMedia): * bindings/v8/custom/V8NavigatorCustom.cpp: (WebCore::V8Navigator::webkitGetUserMediaCallback): * page/Navigator.cpp: (WebCore::Navigator::webkitGetUserMedia): * page/Navigator.h: * page/Navigator.idl: 2011-05-09 Csaba Osztrogonác <ossy@webkit.org> Unreviewed Qt 4.8 fix. * WebCore.pro: 4.8 bots are updated with the full QRawFont APIs, so we can set HAVE_QRAWFONT now. 2011-05-09 Adam Roben <aroben@apple.com> Windows project file fix after r86047 * WebCore.vcproj/WebCore.vcproj: Added missing closing tags. 2011-05-06 Chris Marrin <cmarrin@apple.com> Reviewed by Darin Adler. Fix layer names to say "tiled" and show CALayer addresses, not PlatformCALayer addresses https://bugs.webkit.org/show_bug.cgi?id=60417 Layer name now has "Tiled" prepended if it is a TiledLayer. This is true on Mac where the layer is a CATiledLayer and on Win where the layer is actually still a CACFLayer but implements a tiled layer. I also now print the address of the CALayer or CACFLayer instead of the PlatformCALayer everywhere. * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): 2011-05-09 Rob Buis <rbuis@rim.com> Reviewed by Dirk Schulze. Elements should assert that the QualifiedName given to their constructor corresponds to the Element constructed https://bugs.webkit.org/show_bug.cgi?id=22576 Add tag name ASSERTs in SVG Element constructors. No new tests, since no change in behaviour. * svg/SVGAElement.cpp: (WebCore::SVGAElement::SVGAElement): * svg/SVGAltGlyphElement.cpp: (WebCore::SVGAltGlyphElement::SVGAltGlyphElement): * svg/SVGAnimateColorElement.cpp: (WebCore::SVGAnimateColorElement::SVGAnimateColorElement): * svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::SVGAnimateElement): * svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement): * svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement): * svg/SVGCircleElement.cpp: (WebCore::SVGCircleElement::SVGCircleElement): * svg/SVGClipPathElement.cpp: (WebCore::SVGClipPathElement::SVGClipPathElement): * svg/SVGCursorElement.cpp: (WebCore::SVGCursorElement::SVGCursorElement): * svg/SVGDefsElement.cpp: (WebCore::SVGDefsElement::SVGDefsElement): * svg/SVGDescElement.cpp: (WebCore::SVGDescElement::SVGDescElement): * svg/SVGEllipseElement.cpp: (WebCore::SVGEllipseElement::SVGEllipseElement): * svg/SVGFEBlendElement.cpp: (WebCore::SVGFEBlendElement::SVGFEBlendElement): * svg/SVGFEColorMatrixElement.cpp: (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement): * svg/SVGFEComponentTransferElement.cpp: (WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement): * svg/SVGFECompositeElement.cpp: (WebCore::SVGFECompositeElement::SVGFECompositeElement): * svg/SVGFEConvolveMatrixElement.cpp: (WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement): * svg/SVGFEDiffuseLightingElement.cpp: (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement): * svg/SVGFEDisplacementMapElement.cpp: (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement): * svg/SVGFEDistantLightElement.cpp: (WebCore::SVGFEDistantLightElement::SVGFEDistantLightElement): * svg/SVGFEDropShadowElement.cpp: (WebCore::SVGFEDropShadowElement::SVGFEDropShadowElement): * svg/SVGFEFloodElement.cpp: (WebCore::SVGFEFloodElement::SVGFEFloodElement): * svg/SVGFEFuncAElement.cpp: (WebCore::SVGFEFuncAElement::SVGFEFuncAElement): * svg/SVGFEFuncBElement.cpp: (WebCore::SVGFEFuncBElement::SVGFEFuncBElement): * svg/SVGFEFuncGElement.cpp: (WebCore::SVGFEFuncGElement::SVGFEFuncGElement): * svg/SVGFEFuncRElement.cpp: (WebCore::SVGFEFuncRElement::SVGFEFuncRElement): * svg/SVGFEGaussianBlurElement.cpp: (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement): * svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::SVGFEImageElement): * svg/SVGFEMergeElement.cpp: (WebCore::SVGFEMergeElement::SVGFEMergeElement): * svg/SVGFEMergeNodeElement.cpp: (WebCore::SVGFEMergeNodeElement::SVGFEMergeNodeElement): * svg/SVGFEMorphologyElement.cpp: (WebCore::SVGFEMorphologyElement::SVGFEMorphologyElement): * svg/SVGFEOffsetElement.cpp: (WebCore::SVGFEOffsetElement::SVGFEOffsetElement): * svg/SVGFEPointLightElement.cpp: (WebCore::SVGFEPointLightElement::SVGFEPointLightElement): * svg/SVGFESpecularLightingElement.cpp: (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement): * svg/SVGFESpotLightElement.cpp: (WebCore::SVGFESpotLightElement::SVGFESpotLightElement): * svg/SVGFETileElement.cpp: (WebCore::SVGFETileElement::SVGFETileElement): * svg/SVGFETurbulenceElement.cpp: (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement): * svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::SVGFilterElement): * svg/SVGFontElement.cpp: (WebCore::SVGFontElement::SVGFontElement): * svg/SVGFontFaceElement.cpp: (WebCore::SVGFontFaceElement::SVGFontFaceElement): * svg/SVGFontFaceFormatElement.cpp: (WebCore::SVGFontFaceFormatElement::SVGFontFaceFormatElement): * svg/SVGFontFaceNameElement.cpp: (WebCore::SVGFontFaceNameElement::SVGFontFaceNameElement): * svg/SVGFontFaceSrcElement.cpp: (WebCore::SVGFontFaceSrcElement::SVGFontFaceSrcElement): * svg/SVGFontFaceUriElement.cpp: (WebCore::SVGFontFaceUriElement::SVGFontFaceUriElement): * svg/SVGForeignObjectElement.cpp: (WebCore::SVGForeignObjectElement::SVGForeignObjectElement): * svg/SVGGElement.cpp: (WebCore::SVGGElement::SVGGElement): * svg/SVGGlyphElement.cpp: (WebCore::SVGGlyphElement::SVGGlyphElement): * svg/SVGHKernElement.cpp: (WebCore::SVGHKernElement::SVGHKernElement): * svg/SVGImageElement.cpp: (WebCore::SVGImageElement::SVGImageElement): * svg/SVGLineElement.cpp: (WebCore::SVGLineElement::SVGLineElement): * svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::SVGLinearGradientElement): * svg/SVGMPathElement.cpp: (WebCore::SVGMPathElement::SVGMPathElement): * svg/SVGMarkerElement.cpp: (WebCore::SVGMarkerElement::SVGMarkerElement): * svg/SVGMaskElement.cpp: (WebCore::SVGMaskElement::SVGMaskElement): * svg/SVGMetadataElement.cpp: (WebCore::SVGMetadataElement::SVGMetadataElement): * svg/SVGMissingGlyphElement.cpp: (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement): * svg/SVGPathElement.cpp: (WebCore::SVGPathElement::SVGPathElement): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::SVGPatternElement): * svg/SVGPolygonElement.cpp: (WebCore::SVGPolygonElement::SVGPolygonElement): * svg/SVGPolylineElement.cpp: (WebCore::SVGPolylineElement::SVGPolylineElement): * svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::SVGRadialGradientElement): * svg/SVGRectElement.cpp: (WebCore::SVGRectElement::SVGRectElement): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::SVGSVGElement): * svg/SVGScriptElement.cpp: (WebCore::SVGScriptElement::SVGScriptElement): * svg/SVGSetElement.cpp: (WebCore::SVGSetElement::SVGSetElement): * svg/SVGStopElement.cpp: (WebCore::SVGStopElement::SVGStopElement): * svg/SVGStyleElement.cpp: (WebCore::SVGStyleElement::SVGStyleElement): * svg/SVGSwitchElement.cpp: (WebCore::SVGSwitchElement::SVGSwitchElement): * svg/SVGSymbolElement.cpp: (WebCore::SVGSymbolElement::SVGSymbolElement): * svg/SVGTRefElement.cpp: (WebCore::SVGTRefElement::SVGTRefElement): * svg/SVGTSpanElement.cpp: (WebCore::SVGTSpanElement::SVGTSpanElement): * svg/SVGTextElement.cpp: (WebCore::SVGTextElement::SVGTextElement): * svg/SVGTextPathElement.cpp: (WebCore::SVGTextPathElement::SVGTextPathElement): * svg/SVGTitleElement.cpp: (WebCore::SVGTitleElement::SVGTitleElement): * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::SVGUseElement): * svg/SVGVKernElement.cpp: (WebCore::SVGVKernElement::SVGVKernElement): * svg/SVGViewElement.cpp: (WebCore::SVGViewElement::SVGViewElement): 2011-05-09 Shishir Agrawal <shishir@chromium.org> Reviewed by Tony Gentilcore. Implement Page Visibility API. https://bugs.webkit.org/show_bug.cgi?id=54181 Tests: fast/events/page-visibility-iframe-delete-test.html fast/events/page-visibility-iframe-move-test.html fast/events/page-visibility-iframe-propagation-test.html fast/events/page-visibility-transition-test.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/Document.cpp: (WebCore::Document::visibilityState): (WebCore::Document::webkitVisibilityState): (WebCore::Document::webkitIsVisible): (WebCore::Document::dispatchVisibilityStateChangeEvent): * dom/Document.h: * dom/Document.idl: * dom/EventNames.h: * page/Frame.cpp: (WebCore::Frame::dispatchVisibilityStateChangeEvent): * page/Frame.h: * page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::setVisibilityState): (WebCore::Page::visibilityState): * page/Page.h: * page/PageVisibilityState.cpp: Added. (WebCore::GetPageVisibilityStateString): * page/PageVisibilityState.h: Added. 2011-05-09 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Implement expanding CSS border properties in CSSStyleApplyProperty. https://bugs.webkit.org/show_bug.cgi?id=60456 No new tests added as no functionality changed. * css/CSSStyleApplyProperty.cpp: (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Create CSS border expanding property handlers. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Remove property handlers that are no longer needed. 2011-05-08 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Kent Tamura. selectstart event does not fire when selection is made via select all https://bugs.webkit.org/show_bug.cgi?id=60376 Fire selectstart event when a user selects all contents (i.e. document.execCommand('SelectAll')) in document, editable region, or text control. Tests: editing/selection/selectstart-on-selectall.html editing/selection/selectstart-prevent-selectall.html * dom/Node.h: Removed canSelectAll and selectAll as they are left over from WMLSelectElement. * editing/FrameSelection.cpp: (WebCore::FrameSelection::selectAll): Dispatch selectstart event on selectStartTarget, which is input element or textarea element when the current selection is inside a shadow DOM, and the root editable element if it's inside a non-shadow editable region, and the body element otherwise. * html/HTMLSelectElement.h: Made canSelectAll and selectAll public since they are no longer declared in Node. 2011-05-08 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Make RenderStyle::setColumnBreakInside() reject unsupported enum values. https://bugs.webkit.org/show_bug.cgi?id=60249 No new tests added as no functionality changed. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Remove special-case code and use appropriate macro. * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::setColumnBreakInside): Assert that supported values are used. 2011-05-08 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Darin Adler. Extract a DragCaretController from FrameSelection https://bugs.webkit.org/show_bug.cgi?id=60273 Extracted CaretBase and DragCaretController from FrameSelection. CaretBase is a base class for DragCaretController and FrameSelection and provides functions to paint caret. Since DragCaretController doesn't need to store selection, it only holds one VisiblePosition. * WebCore.exp.in: * editing/FrameSelection.cpp: (WebCore::CaretBase::CaretBase): Added. (WebCore::DragCaretController::DragCaretController): Added; Set m_caretVisible true. (WebCore::DragCaretController::isContentRichlyEditable): Added. (WebCore::FrameSelection::FrameSelection): Several member variables are move to CaretBase. (WebCore::DragCaretController::setCaretPosition): Extracted from FrameSelection::setSelection. (WebCore::FrameSelection::setSelection): Removed an early exit for DragCaretController. (WebCore::clearRenderViewSelection): Extracted from FrameSelection::respondToNodeModification. (WebCore::DragCaretController::nodeWillBeRemoved): Extracted from FrameSelection::nodeWillBeRemoved and respondToNodeModification. Note that the position DragCaretController holds is equivalent to FrameSelection's base or start so when removingNodeRemovesPosition returns true for m_position, we used to execute the first if clause and cleared render tree selection and DOM tree selection. This is exactly what new DragCaretController::nodeWillBeRemoved does. (WebCore::FrameSelection::nodeWillBeRemoved): Simplified early exist conditions. (WebCore::FrameSelection::respondToNodeModification): Calls clearRenderViewSelection. (WebCore::CaretBase::updateCaretRect): Takes document, caretPosition, selection type, and boolean isOrphaned. Note that we can't obtain the document from caretPosition because VisiblePosition can be null even if FrameSelection's start was not null. (WebCore::caretRendersInsideNode): Moved; Made static local. (WebCore::CaretBase::caretRenderer): Extracted from FrameSelection::caretRenderer. (WebCore::FrameSelection::caretRenderer): Calls CaretBase::caretRenderer. (WebCore::DragCaretController::caretRenderer): Ditto. (WebCore::FrameSelection::localCaretRect): Calls updateCaretRect with extra arguments. (WebCore::CaretBase::absoluteBoundsForLocalRect): Moved from FrameSelection; Takes Node*. (WebCore::CaretBase::caretRepaintRect): Ditto. (WebCore::FrameSelection::recomputeCaretRect): Calls absoluteBoundsForLocalRect, caretRepaintRect, and shouldRepaintCaret with extra arguments. (WebCore::CaretBase::shouldRepaintCaret): Takes a boolean isContentEditable. (WebCore::FrameSelection::invalidateCaretRect): Calls CaretBase::invalidateCaretRect. (WebCore::CaretBase::invalidateCaretRect): Extracted from FrameSelection::invalidateCaretRect. (WebCore::FrameSelection::paintCaret): Calls CaretBase::paintCaret. (WebCore::CaretBase::paintCaret): Extracted from FrameSelection::paintCaret. (WebCore::FrameSelection::updateAppearance): Removed an assertion that this function is never called for DragCaretController. (WebCore::DragCaretController::paintDragCaret): Moved from FrameSelection::paintDragCaret. * editing/FrameSelection.h: (WebCore::CaretBase::localCaretRectForPainting): Added. (WebCore::DragCaretController::isContentEditable): Added. (WebCore::DragCaretController::hasCaret): Added. (WebCore::DragCaretController::caretPosition): Added. (WebCore::DragCaretController::clear): Added. * page/DragController.cpp: (WebCore::DragController::tryDocumentDrag): Uses DragCaretController. (WebCore::DragController::dispatchTextInputEventFor): Ditto. (WebCore::DragController::concludeEditDrag): Ditto. (WebCore::DragController::placeDragCaret): Ditto. * page/Page.cpp: (WebCore::Page::Page): Instantiates DragCaretController instead of FrameSelection. * page/Page.h: (WebCore::Page::dragCaretController): Returns DragCaretController* instead of FrameSelection*. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintCaret): Uses FrameSelection and DragCaretController. 2011-05-08 Dan Bernstein <mitz@apple.com> Reviewed by Darin Adler. <rdar://problem/9401853> REGRESSION (r78846): Insufficient expansion for justification when there are multiple inline boxes https://bugs.webkit.org/show_bug.cgi?id=60432 * rendering/InlineTextBox.h: (WebCore::InlineTextBox::setExpansion): Changed back to take a int, since the m_expansion member variable is a (truncated) int anyway. * rendering/RenderBlockLineLayout.cpp: (WebCore::computeExpansionForJustifiedText): Changed the expansion local variable into an int so that the right amount is added to the total width. Also changed to use an early return. 2011-05-08 Pavel Feldman <pfeldman@chromium.org> Not reviewed: ignore 0 responses in the inspector network instrumentation. * inspector/front-end/NetworkManager.js: 2011-05-08 Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com> Reviewed by Kenneth Rohde Christiansen. [Qt] GraphicsContext3D::getImageData() does not retrieve image data correctly https://bugs.webkit.org/show_bug.cgi?id=58556 Tests: fast/canvas/webgl/gl-teximage.html * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3D::getImageData): 2011-05-07 Dan Bernstein <mitz@apple.com> Reviewed by Maciej Stachowiak. <rdar://problem/9403055> REGRESSION (r85499): Inline images in iChat overflow their chat bubbles https://bugs.webkit.org/show_bug.cgi?id=60443 Test: fast/replaced/table-percent-height-positioned.html * rendering/RenderBox.cpp: (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Do not apply the logic to prevent precent-height replaced elements from being squeezed by table cells when the replaced element is positioned (and thus doesn’t affect the table cell’s height). 2011-05-07 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r86016. http://trac.webkit.org/changeset/86016 https://bugs.webkit.org/show_bug.cgi?id=60445 caused crashes on the WK2 Windows bots (Requested by jessieberlin on #webkit). * platform/network/ResourceHandle.h: * platform/network/cf/CookieStorageCFNet.cpp: (WebCore::currentCookieStorage): (WebCore::defaultCookieStorage): * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willSendRequest): (WebCore::makeFinalRequest): (WebCore::ResourceHandle::willSendRequest): * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest): 2011-05-07 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r85974. http://trac.webkit.org/changeset/85974 https://bugs.webkit.org/show_bug.cgi?id=60444 broke browser tests (Requested by inferno-sec on #webkit). * platform/network/chromium/ResourceResponse.cpp: (WebCore::ResourceResponse::doPlatformCopyData): (WebCore::ResourceResponse::doPlatformAdopt): * platform/network/chromium/ResourceResponse.h: (WebCore::ResourceResponse::downloadFilePath): (WebCore::ResourceResponse::setDownloadFilePath): 2011-05-07 Jessie Berlin <jberlin@apple.com> Reviewed by Steve Falkenburg. [Windows WebKit2] Use cookies set in WebKit1 https://bugs.webkit.org/show_bug.cgi?id=60274 Share the default storage session between the UI and Web Processes. * platform/network/cf/CookieStorageCFNet.cpp: (WebCore::defaultSessionCookieStorage): Keep track of the default storage session cookie storage. (WebCore::currentCookieStorage): Call defaultCookieStorage to get the default cookie storage. (WebCore::defaultCookieStorage): If there is a default storage session cookie storage, prefer that over getting the default cookie storage. In the Web Process, asking CFNetwork for the default cookie storage directly without specifying a storage session will not get the cookie storage being shared by the UI and Web Processes. * platform/network/ResourceHandle.h: * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willSendRequest): Make sure to set the current storage session on any requests used by the Web Process before CFNetwork has to do anything with them, in order for CFNetwork to avoid doing anything with the Web Process's default storage session (which is not the one shared with the UI Process). (WebCore::makeFinalRequest): Ditto. (WebCore::ResourceHandle::willSendRequest): Ditto. (WebCore::ResourceHandle::currentStorageSession): If there is a Private Browsing storage session, return that. If not, on Windows return the default storage session that is being shared with the UI Process and on Mac return 0. (WebCore::defaultCFURLStorageSession): (WebCore::ResourceHandle::setDefaultStorageSession): (WebCore::ResourceHandle::defaultStorageSession): * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest): Make sure to set the current storage session on any requests used by the Web Process before CFNetwork has to do anything with them, in order for CFNetwork to avoid doing anything with the Web Process's default storage session (which is not the one shared with the UI Process). 2011-05-07 Joe Mason <jmason@rim.com> Reviewed by Daniel Bates. FrameLoader::isProcessingUserGesture is wrong in dispatchWillPerformClientRedirect https://bugs.webkit.org/show_bug.cgi?id=52211 Create a UserGestureIndicator when calling the clientRedirected callback. * loader/NavigationScheduler.cpp: (WebCore::ScheduledURLNavigation::didStartTimer): (WebCore::ScheduledURLNavigation::didStopTimer): (WebCore::ScheduledFormSubmission::didStartTimer): (WebCore::ScheduledFormSubmission::didStopTimer): 2011-05-06 Jon Lee <jonlee@apple.com> Reviewed by Alice Liu. Crash when sending a wheel event to a node with no shadow ancestor node https://bugs.webkit.org/show_bug.cgi?id=60429 <rdar://problem/9389619> * page/EventHandler.cpp: (WebCore::EventHandler::handleWheelEvent):add check to see if the shadow ancestor node of the node that was under the mouse exists before trying to dispatch the wheel event to it. 2011-05-06 Kent Tamura <tkent@chromium.org> Reviewed by Ryosuke Niwa. Eliminate WebCore/dom/InputElement.{cpp,h} https://bugs.webkit.org/show_bug.cgi?id=60262 - Fold in all of the code of InputElement.{cpp,h} into HTMLInputElement and TextFieldInputType. - Change the return type of Node::toInputElement(): InputElement* -> HTMLInputElement* No new tests. This change should not change the existing behaviour. * CMakeLists.txt: Remove InpuntElement.cpp and/or InputElement.h. * GNUmakefile.list.am: ditto. * WebCore.exp.in: Add symbols of functions exposed to WebKit. * WebCore.gypi: Remove InpuntElement.cpp and/or InputElement.h. * WebCore.pro: ditto. * WebCore.vcproj/WebCore.vcproj: ditto. * WebCore.xcodeproj/project.pbxproj: ditto. * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::textMarkerDataForVisiblePosition): Follow the return type change of Node::toInputElement(). * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isPasswordField): ditto. (WebCore::AccessibilityRenderObject::isIndeterminate): ditto. (WebCore::AccessibilityRenderObject::isNativeCheckboxOrRadio): ditto. (WebCore::AccessibilityRenderObject::isChecked): ditto. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::canShareStyleWithElement): ditto. (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): ditto. * dom/CheckedRadioButtons.cpp: (WebCore::CheckedRadioButtons::removeButton): ditto. * dom/DOMAllInOne.cpp: Remove InputElement.h. * dom/InputElement.cpp: Removed. * dom/InputElement.h: Removed. * dom/Node.cpp: (WebCore::Node::toInputElement): Change the return type from InputElement* to HTMLInputElement*. * dom/Node.h: ditto. * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::HTMLInputElement): (WebCore::HTMLInputElement::formControlName): (WebCore::HTMLInputElement::tooLong): (WebCore::HTMLInputElement::updateFocusAppearance): (WebCore::HTMLInputElement::aboutToUnload): (WebCore::HTMLInputElement::handleFocusEvent): (WebCore::HTMLInputElement::handleBlurEvent): (WebCore::HTMLInputElement::updateType): (WebCore::HTMLInputElement::parseMappedAttribute): (WebCore::HTMLInputElement::size): (WebCore::HTMLInputElement::copyNonAttributeProperties): (WebCore::HTMLInputElement::value): (WebCore::HTMLInputElement::suggestedValue): (WebCore::HTMLInputElement::setSuggestedValue): (WebCore::HTMLInputElement::setValue): (WebCore::HTMLInputElement::setValueFromRenderer): (WebCore::HTMLInputElement::setFileListFromRenderer): (WebCore::HTMLInputElement::setDefaultName): (WebCore::HTMLInputElement::maxLength): (WebCore::HTMLInputElement::cacheSelection): (WebCore::formatCodes): Moved from InputElement. (WebCore::cursorPositionToMaskIndex): ditto. (WebCore::HTMLInputElement::isConformToInputMask): ditto. (WebCore::HTMLInputElement::validateInputMask): ditto. (WebCore::HTMLInputElement::setWapInputFormat): ditto. (WebCore::HTMLInputElement::notifyFormStateChanged): ditto. (WebCore::HTMLInputElement::parseMaxLengthAttribute): ditto. (WebCore::HTMLInputElement::updateValueIfNeeded):ditto. * html/HTMLInputElement.h: - Add data members which were defined in InputElementData. - Make some functions public because the public interface InputElement is removed. - Make some functions non-virtual because they don't override corresponding virtual functions of InputElement anymore. (WebCore::HTMLInputElement::toInputElement): Follow the return type change of Node::toInputElement(). (WebCore::HTMLInputElement::isIndeterminate): (WebCore::HTMLInputElement::isAutofilled): (WebCore::HTMLInputElement::supportsMaxLength): (WebCore::HTMLInputElement::cachedSelectionStart): (WebCore::HTMLInputElement::cachedSelectionEnd): * html/HTMLTextAreaElement.cpp: Remove unused InputElement.h. * html/InputType.cpp: (WebCore::InputType::handleBeforeTextInsertedEvent): Remove the code. * html/InputType.h: Update for the above. * html/TextFieldInputType.cpp: (WebCore::replaceEOLAndLimitLength): Moved from InputElement.cpp. (WebCore::TextFieldInputType::sanitizeValue): Implement with replaceEOLAndLimitLength(). (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent): Move the code from InputElement::handleBeforeTextInsertedEvent(). * html/TextFieldInputType.h: Update declarations. * rendering/RenderTextControlSingleLine.cpp: - Remove ASSERT(node()->isHTMLElement()) because it is checked in the constructor. - Follow the return type change of inputElement(). (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine): Make sure node() is an HTMLInputElement instance. (WebCore::RenderTextControlSingleLine::addSearchResult): (WebCore::RenderTextControlSingleLine::stopSearchEventTimer): (WebCore::RenderTextControlSingleLine::showPopup): (WebCore::RenderTextControlSingleLine::hidePopup): (WebCore::RenderTextControlSingleLine::subtreeHasChanged): (WebCore::RenderTextControlSingleLine::updateFromElement): (WebCore::RenderTextControlSingleLine::createInnerBlockStyle): (WebCore::RenderTextControlSingleLine::createResultsButtonStyle): (WebCore::RenderTextControlSingleLine::createCancelButtonStyle): (WebCore::RenderTextControlSingleLine::createInnerSpinButtonStyle): (WebCore::RenderTextControlSingleLine::createOuterSpinButtonStyle): (WebCore::RenderTextControlSingleLine::createSpeechButtonStyle): (WebCore::RenderTextControlSingleLine::visibilityForCancelButton): (WebCore::RenderTextControlSingleLine::startSearchEventTimer): (WebCore::RenderTextControlSingleLine::searchEventTimerFired): (WebCore::RenderTextControlSingleLine::valueChanged): (WebCore::RenderTextControlSingleLine::setTextFromItem): (WebCore::RenderTextControlSingleLine::inputElement): * rendering/RenderTextControlSingleLine.h: Change the return type of inputElement(): InputElement* -> HTMLInputElement*. * rendering/RenderTheme.cpp: (WebCore::RenderTheme::isChecked): Follow the return type change of Node::toInputElement(). (WebCore::RenderTheme::isIndeterminate): ditto. (WebCore::RenderTheme::shouldHaveSpinButton): Change the parameter type: InputElement* -> HTMLInputElement*. * rendering/RenderTheme.h: ditto. 2011-05-06 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Implement "Report-Only" mode for CSP https://bugs.webkit.org/show_bug.cgi?id=60402 This mode lets web sites try out CSP by getting violation reports (and console spam) without actually changing the behavior of their web sites. Test: http/tests/security/contentSecurityPolicy/report-only.html * dom/Document.cpp: (WebCore::Document::processHttpEquiv): * loader/FrameLoader.cpp: (WebCore::FrameLoader::didBeginDocument): * page/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::ContentSecurityPolicy): (WebCore::ContentSecurityPolicy::didReceiveHeader): (WebCore::ContentSecurityPolicy::reportViolation): (WebCore::ContentSecurityPolicy::checkInlineAndReportViolation): (WebCore::ContentSecurityPolicy::checkEvalAndReportViolation): (WebCore::ContentSecurityPolicy::checkSourceAndReportViolation): (WebCore::ContentSecurityPolicy::allowJavaScriptURLs): * page/ContentSecurityPolicy.h: 2011-05-06 Beth Dakin <bdakin@apple.com> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=60421 Custom scrollbars nested inside an overlay scrollbar overflow region end up painting twice -and corresponding- <rdar://problem/9389072> Be sure not to paint custom css scrollbars during the special overlay-scrollbar painting pass. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintOverflowControls): 2011-05-06 Cary Clark <caryclark@google.com> Reviewed by Eric Seidel. Add utility for converting SkCanvas to CGContext https://bugs.webkit.org/show_bug.cgi?id=59808 Skia on Mac uses Skia to render WebKit, and CG to render UI elements. The CG elements need a transcribed graphics context that preserves the canvas matrix, and the canvas clip. The BitLockerSkia utility class sets up a CGContext from the SkCanvas, locks the bitmap's bits, and releases the lock when the class goes out of scope. Each time the CGContext is retrieved, it is rebuilt. This permits the caller to modify the same canvas between calls. This change adds utilities but does not modify any existing code. For now, there are no callers to these utilities, so there is no functional change. No new tests. * platform/graphics/skia/BitLockerSkia.cpp: Added. (WebCore::SkMatrixToCGAffineTransform): Conversion utility. (WebCore::BitLockerSkia::BitLockerSkia): Takes SkCanvas. (WebCore::BitLockerSkia::~BitLockerSkia): Unlocks, cleans up. (WebCore::BitLockerSkia::release): Internal private helper. (WebCore::BitLockerSkia::cgContext): Returns CGContextRef. * platform/graphics/skia/BitLockerSkia.h: Added. 2011-05-06 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK] [WebKit2] WebView::windowToScreen needs an implementation https://bugs.webkit.org/show_bug.cgi?id=55960 Abstract coordinate system translation code from WebKit into WebCore. This will allow the code to be shared between WebKit and WebKit2. The code now lives in a new GtkUtilities.cpp helper file. * GNUmakefile.list.am: Added GtkUtilities to the source list. * platform/gtk/GtkUtilities.cpp: Added. (WebCore::convertWidgetRectToScreenRect): * platform/gtk/GtkUtilities.h: Added. 2011-05-06 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. Remove some unnecessary static methods in ResourceHandleSoup. No new tests. This is only a small cleanup. * platform/network/soup/ResourceHandleSoup.cpp: (WebCore::restartedCallback): Call ResourceResponse::updateFromSoupMessage directly. (WebCore::gotHeadersCallback):Ditto. (WebCore::contentSniffedCallback):Ditto. (WebCore::sendRequestCallback):Ditto. (WebCore::ResourceHandle::defaultSession): Create the soup session directly. 2011-05-06 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [Soup] ResourceHandles are leaked on 304 responses https://bugs.webkit.org/show_bug.cgi?id=60413 Always call cleanupSoupRequestOperation, even when the request was not canceled. Before the code would call didFinishLoading and then never clean up the request. No new tests. This simply fixes a memory leak. * platform/network/soup/ResourceHandleSoup.cpp: (WebCore::sendRequestCallback): 2011-05-06 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Add disable-javascript-urls CSP directive https://bugs.webkit.org/show_bug.cgi?id=60301 This CSP directive is not in the CSP spec. This patch is somewhat of an experiment to see whether this feature is useful. Based on our implementation experience, we will coordinate with folks via the W3C to see if this makes sense to add to the spec. Test: http/tests/security/contentSecurityPolicy/javascript-urls-blocked.html * page/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::ContentSecurityPolicy): (WebCore::ContentSecurityPolicy::allowJavaScriptURLs): (WebCore::ContentSecurityPolicy::addDirective): * page/ContentSecurityPolicy.h: 2011-05-06 Brett Wilson <brettw@chromium.org> Reviewed by Adam Barth. Use a File object to store the downloaded file reference rather than just the path. This keeps the file and permissions in scope (using the already-existing blob system) so the browser won't delete the file when the load is complete. Instead, the file will be cleaned up when the request objects are deleted. https://bugs.webkit.org/show_bug.cgi?id=60281 * platform/network/chromium/ResourceResponse.cpp: (WebCore::ResourceResponse::doPlatformCopyData): (WebCore::ResourceResponse::doPlatformAdopt): * platform/network/chromium/ResourceResponse.h: (WebCore::ResourceResponse::downloadedFile): (WebCore::ResourceResponse::setDownloadedFile): 2011-05-06 Alexis Menard <alexis.menard@openbossa.org> Reviewed by Darin Adler. Fix two warnings of unused variables. https://bugs.webkit.org/show_bug.cgi?id=60370 Remove two unused local variable from the code. No new tests, the existing ones should cover. * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutVerticalBox): * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::calculateNextProgressTime): 2011-05-06 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Wire up CSP's eval blocking to V8's new API https://bugs.webkit.org/show_bug.cgi?id=60384 * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::disableEval): 2011-05-06 David Hyatt <hyatt@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=60398 (<rdar://problem/9307696>) REGRESSION (r81684?): cox.com sign in button is missing Fix a typo in r81684 where the ascent was used in a comparison instead of boxHeight. This restores the original behavior before the refactoring messed it up. Added fast/inline/nested-top-alignment.html * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::computeLogicalBoxHeights): 2011-05-06 David Hyatt <hyatt@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=60390 (<rdar://problem/9364449>) REGRESSION (r81992): portions of ticketmaster site render blank Make simplified layout skip from a positioned object out to its containing block. There is no need to dirty the intermediate inlines, and in this case it's actively harmful, since the block responsible for the layout of the positioned object doesn't get m_posChildNeedsLayout set. Added fast/block/positioning/hiding-inside-relpositioned-inline.html * rendering/RenderObject.h: (WebCore::RenderObject::markContainingBlocksForLayout): 2011-05-06 Pavel Feldman <pfeldman@chromium.org> Not reviewed: move selection test into the text area branch. * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype._contextMenu): 2011-05-04 Adrienne Walker <enne@google.com> Reviewed by James Robinson. [chromium] Fix incorrect scissor rect for layers that render into a rendersurface https://bugs.webkit.org/show_bug.cgi?id=59020 Allow for empty scissor rects, which implies scissoring to the render surface. The previous code and previous patch on this bug both didn't take into account that the scissor rect should be the render surface and not the projection of the layer itself, because child layers aren't necessarily contained within the bounds of their superlayer. Test: compositing/flat-with-transformed-child.html * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::paintLayerContents): (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces): (WebCore::LayerRendererChromium::drawLayer): (WebCore::LayerRendererChromium::setScissorToRect): 2011-05-06 Simon Fraser <simon.fraser@apple.com> Reviewed by Sam Weinig. Lazily allocate ScrollAnimator in ScrollableArea https://bugs.webkit.org/show_bug.cgi?id=60327 Avoid allocating the ScrollAnimator up-front, because we create lots of ScrollableAreas via RenderLayer, and we should only need the animator when scrolling. * platform/ScrollableArea.cpp: (WebCore::ScrollableArea::ScrollableArea): (WebCore::ScrollableArea::scrollAnimator): (WebCore::ScrollableArea::scroll): (WebCore::ScrollableArea::scrollToOffsetWithoutAnimation): (WebCore::ScrollableArea::scrollToXOffsetWithoutAnimation): (WebCore::ScrollableArea::scrollToYOffsetWithoutAnimation): (WebCore::ScrollableArea::handleWheelEvent): (WebCore::ScrollableArea::handleGestureEvent): * platform/ScrollableArea.h: 2011-05-06 Eric Carlson <eric.carlson@apple.com> Reviewed by Darin Adler. REGRESSION (r77954): HTTP Live Streams have incorrect controller UI https://bugs.webkit.org/show_bug.cgi?id=60304 <rdar://problem/9392609> Don't assume that the only time the media controls UI may need to change is on a network state change, readyState changes can be significant as well. Tested manually because we don't have any live streams to test in DRT. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setNetworkState): changedNetworkState -> updateStatusDisplay. (WebCore::HTMLMediaElement::setReadyState): Call updateStatusDisplay. * html/shadow/MediaControlRootElement.cpp: (WebCore::MediaControlRootElement::reset): changedNetworkState -> updateStatusDisplay. (WebCore::MediaControlRootElement::updateStatusDisplay): Ditto. * html/shadow/MediaControlRootElement.h: * html/shadow/MediaControlRootElementChromium.cpp: (WebCore::MediaControlRootElementChromium::reset): Ditto. (WebCore::MediaControlRootElementChromium::updateStatusDisplay): Ditto. * html/shadow/MediaControlRootElementChromium.h: * html/shadow/MediaControls.h: 2011-05-06 Andreas Kling <andreas.kling@nokia.com> Unreviewed Qt 4.8 build fix. * WebCore.pro: Don't set HAVE_QRAWFONT yet. Left a FIXME so we can enable it after the 4.8 bots are updated with the full QRawFont APIs. 2011-05-06 Alexander Pavlov <apavlov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: editing CSS in the Resources panel and not committing does not revert the change. https://bugs.webkit.org/show_bug.cgi?id=60319 * inspector/front-end/ResourceView.js: (WebInspector.ResourceSourceFrame.prototype.cancelEditing): 2011-05-06 Joe Mason <jmason@rim.com> Reviewed by Adam Barth. WebSocket urls should always be encoded as UTF-8. https://bugs.webkit.org/show_bug.cgi?id=57138 Change WebSocket::connect to take the raw URL string and parse it internally using the simple KURL constructor, which expects an absolute UTF-8 encoded URL. This ensures that all code that creates a WebSocket goes through this method instead of completeURL. Test: http/tests/websocket/tests/url-with-nonascii-query.html * bindings/js/JSWebSocketCustom.cpp: (WebCore::JSWebSocketConstructor::constructJSWebSocket): Pass String instead of KURL to WebSocket::connect(). * websockets/WebSocket.cpp: (WebCore::WebSocket::connect): Now takes a String instead of a KURL and parses it using UTF-8. * websockets/WebSocket.h: 2011-05-06 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Make CSSStyleSelector::applyProperty() CSSPropertyWebkitColorCorrection case use appropriate macro. https://bugs.webkit.org/show_bug.cgi?id=60339 No tests added as no functionality changed. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Use correct macro for CSSPropertySpeak. * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::initialColorSpace): Add initialColorSpace() static method. 2011-05-06 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Make RenderStyle::setPageBreakInside() reject unsupported enum values. https://bugs.webkit.org/show_bug.cgi?id=60235 No tests added as no functionality changed. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Remove special-case code and use appropriate macro. * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::setPageBreakInside): Assert that only supported values are used. 2011-05-06 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Move burden of checking for BJustify box alignment into RenderStyle https://bugs.webkit.org/show_bug.cgi?id=60246 No new tests added as no functionality changed. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Remove special-case logic checking for BJUSTIFY and use existing macro. * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::setBoxAlign): Assert valid values are used. 2011-05-06 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Make CSSStyleSelector::applyProperty() CSSPropertyPointerEvents use the correct macro. https://bugs.webkit.org/show_bug.cgi?id=60338 No tests added as no functionality changed. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Use correct macro for CSSPropertySpeak. 2011-05-06 Alexis Menard <alexis.menard@openbossa.org> Reviewed by Alexey Proskuryakov. Build fix with gcc 4.6 and c++0x support. https://bugs.webkit.org/show_bug.cgi?id=60284 When enabling support of c++0x the compilation fails because of an ambiguous overload error. In this code when constructing the pair we use the new c++0x rvalue reference feature (&&). It means we are calling String(const WTF::AtomicString&) which becomes ambiguous because it has an overload WTF::String::String(const WTF::String&) and usually one with the native port string type (e.g. QString). In this code we want the String version because the pair store Strings. No new tests, build fix. * loader/FormSubmission.cpp: (WebCore::FormSubmission::create): 2011-05-06 Cris Neckar <cdn@chromium.org> Reviewed by Dirk Schulze. Tests for crash when a transform is applied to certain filters. https://bugs.webkit.org/show_bug.cgi?id=59551 Test: svg/filters/filter-after-transform-crash.svg * platform/graphics/filters/FEComposite.cpp: (WebCore::FEComposite::determineAbsolutePaintRect): * platform/graphics/filters/FEConvolveMatrix.h: (WebCore::FEConvolveMatrix::determineAbsolutePaintRect): * platform/graphics/filters/FEDisplacementMap.h: (WebCore::FEDisplacementMap::determineAbsolutePaintRect): * platform/graphics/filters/FEFlood.h: (WebCore::FEFlood::determineAbsolutePaintRect): * platform/graphics/filters/FELighting.h: (WebCore::FELighting::determineAbsolutePaintRect): * platform/graphics/filters/FETile.h: (WebCore::FETile::determineAbsolutePaintRect): * platform/graphics/filters/FETurbulence.h: (WebCore::FETurbulence::determineAbsolutePaintRect): * platform/graphics/filters/FilterEffect.cpp: (WebCore::isFilterSizeValid): (WebCore::FilterEffect::determineAbsolutePaintRect): (WebCore::FilterEffect::asUnmultipliedImage): (WebCore::FilterEffect::asPremultipliedImage): (WebCore::FilterEffect::copyUnmultipliedImage): (WebCore::FilterEffect::copyPremultipliedImage): (WebCore::FilterEffect::createUnmultipliedImageResult): (WebCore::FilterEffect::createPremultipliedImageResult): * platform/graphics/filters/FilterEffect.h: (WebCore::FilterEffect::maxEffectRect): (WebCore::FilterEffect::setMaxEffectRect): * rendering/svg/RenderSVGResourceFilter.cpp: * rendering/svg/RenderSVGResourceFilterPrimitive.cpp: (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion): 2011-05-06 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Use cast to convert primitive value to FontSmoothingMode. https://bugs.webkit.org/show_bug.cgi?id=60242 No tests added as no functionality changed. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Use cast to convert primitive value to FontSmoothingMode. 2011-05-05 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Make CSSPropertySpeak use the correct macro. https://bugs.webkit.org/show_bug.cgi?id=60335 No tests added as no functionality changed. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Use correct macro for CSSPropertySpeak. 2011-05-05 Eric Carlson <eric.carlson@apple.com> Reviewed by Maciej Stachowiak. <rdar://problem/9390864> https://bugs.webkit.org/show_bug.cgi?id=60343 Crash on Recovery System when trying to load page that includes media element Automated test not possible, tested manually. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::isAvailable): Only return true if AVFoundation and CoreMedia are installed. * platform/mac/SoftLinking.h: Define SOFT_LINK_FRAMEWORK_OPTIONAL, identical to SOFT_LINK_FRAMEWORK except that it doesn't ASSERT if the framework doesn't exist. 2011-05-05 Eric Carlson <eric.carlson@apple.com> Reviewed by Darin Adler. Live streams sometimes won't play with AVFoundation backend https://bugs.webkit.org/show_bug.cgi?id=58961 rdar://problem/9284748 Tested manually because we don't have any live streams to test in DRT. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::updateStates): Don't special case seeking, assume AVFoundation will notify us when internal states change. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h: Make m_timeObserver a RetainPtr * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Ditto. (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Ditto. 2011-05-05 Jay Civelli <jcivelli@chromium.org> Reviewed by Adam Barth. Adding quoted-printable encoding/decoding capabilities. This is needed for MHTML support. https://bugs.webkit.org/show_bug.cgi?id=59834 * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * platform/text/QuotedPrintable.cpp: Added. * platform/text/QuotedPrintable.h: Added. 2011-05-05 Andy Estes <aestes@apple.com> Reviewed by Eric Seidel. Implement document.innerHTML https://bugs.webkit.org/show_bug.cgi?id=60316 ASSERT that contextElement is non-0 when constructing a HTMLTreeBuilder for fragment parsing. This assertion will become invalid when document.innerHTML is implemented, which is the only case where HTML5 specifies that a fragment will not have a context element. * html/parser/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): 2011-05-05 Kevin Ollivier <kevino@theolliviers.com> [wx] Unreviewed build fix. Include ApplicationServices for wx port. * platform/graphics/GlyphBuffer.h: * platform/graphics/mac/ComplexTextControllerCoreText.cpp: 2011-05-05 Dan Bernstein <mitz@apple.com> Reviewed by Simon Fraser. WebCore part of <rdar://problem/9155590> Broken animation in iAd producer * WebCore.exp.in: Export wkExecutableWasLinkedOnOrBeforeSnowLeopard. * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes): Account for the binary-compatiblity check in Core Animation. * platform/mac/WebCoreSystemInterface.h: Added wkExecutableWasLinkedOnOrBeforeSnowLeopard. * platform/mac/WebCoreSystemInterface.mm: Ditto. 2011-05-05 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. WebKit2 (Mac): Background tabs/windows can force themselves to the front <rdar://problem/9386346> https://bugs.webkit.org/show_bug.cgi?id=60315 * platform/mac/WidgetMac.mm: (WebCore::Widget::setFocus): It is incorrect for us to call Chrome::focus() here, which could bring a window/tab to the front. Calling focusNSView() was only necessary because in WebKit we must inform the platform widget that the focus has changed. WebKit2 Mac now matches other ports. 2011-05-05 Justin Novosad <junov@chromium.org> Reviewed by Kenneth Russell. [Chromium] Change the --accelerated-2d-canvas flag to mean Ganesh, and stop using --enable-accelerated-drawing for that purpose https://bugs.webkit.org/show_bug.cgi?id=60173 * page/Page.cpp: (WebCore::Page::sharedGraphicsContext3D): Flipping the switch to make Skia the default for the accelerated 2d canvas 2011-05-05 Tony Gentilcore <tonyg@chromium.org> Reviewed by Adam Barth. ASSERT(m_state == ParsingState) fires @ www.canalplus.fr https://bugs.webkit.org/show_bug.cgi?id=60101 Test: fast/parser/close-while-stopping.html * dom/Document.cpp: (WebCore::Document::close): According to http://www.whatwg.org/specs/web-apps/current-work/#dom-document-close, the close() steps should be aborted if there is no script-created parser associated with the document. Our parser lives throughout http://www.whatwg.org/specs/web-apps/current-work/#the-end, but it seems the spec doesn't consider the parser active any more. So to properly respect this, we need to check that the parser is still parsing. 2011-04-28 Evan Martin <evan@chromium.org> Reviewed by Ojan Vafai. REGRESSION: backspace should not go back on Linux https://bugs.webkit.org/show_bug.cgi?id=59731 Add a new EditingBehavior, shouldNavigateBackOnBackspace, which is false on Linux, and test for it in the default backspace handler. * editing/EditingBehavior.h: (WebCore::EditingBehavior::shouldNavigateBackOnBackspace): * page/EventHandler.cpp: (WebCore::EventHandler::defaultBackspaceEventHandler): 2011-05-05 Igor Oliveira <igor.oliveira@openbossa.org> Reviewed by Kenneth Russell. Framebuffer object is being created twice https://bugs.webkit.org/show_bug.cgi?id=60207 Does not create more than one opengl framebuffer * platform/graphics/gpu/mac/DrawingBufferMac.mm: (WebCore::DrawingBuffer::DrawingBuffer): * platform/graphics/gpu/qt/DrawingBufferQt.cpp: (WebCore::DrawingBuffer::DrawingBuffer): * platform/graphics/gtk/DrawingBufferGtk.cpp: (WebCore::DrawingBuffer::DrawingBuffer): 2011-05-05 Simon Fraser <simon.fraser@apple.com> Reviewed by Beth Dakin. Every RenderLayer registers itself as a ScrollableArea https://bugs.webkit.org/show_bug.cgi?id=59650 Rather than registering every RenderLayer as a ScrollableArea on layer creation, only register RenderLayers which are overflow- scrollable. Use the m_scrollableAreaPage pointer to keep track of whether we've registered to avoid excess work. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::RenderLayer): (WebCore::RenderLayer::scrollsOverflow): (WebCore::RenderLayer::styleChanged): * rendering/RenderLayer.h: 2011-05-05 Jer Noble <jer.noble@apple.com> Reviewed by Steve Falkenburg. Workaround iTunes' incorrect registry entry for .m4a extensions. https://bugs.webkit.org/show_bug.cgi?id=60229 No new tests, as a test already exits for .m4a support (LayoutTests/media/audio-mpeg4-supported.html). The test failed to catch this regression because the build bots haven't installed iTunes. Add a hard-coded MIME type mapping for 'm4a' -> 'audio/x-m4a'. * platform/win/MIMETypeRegistryWin.cpp: (WebCore::MIMETypeRegistry::getMIMETypeForExtension): 2011-05-05 Abhishek Arya <inferno@chromium.org> Reviewed by Dave Hyatt. When style changes for a RenderBlock and we lose our ability to intrude into floats in the next siblings block (e.g a position change), make sure to mark our childs with floats for layout and iterate through our next sibling block chain to see which ones contain the float that also exists in our floating objects list and clear those using markAllDescendantsWithFloatsForLayout. https://bugs.webkit.org/show_bug.cgi?id=56299 Tests: fast/block/float/float-not-removed-from-next-sibling-crash.html fast/block/float/float-not-removed-from-next-sibling.html fast/block/float/float-not-removed-from-next-sibling2.html fast/block/float/float-not-removed-from-next-sibling3.html fast/block/float/float-not-removed-from-next-sibling4.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::styleWillChange): (WebCore::RenderBlock::styleDidChange): (WebCore::RenderBlock::markSiblingsWithFloatsForLayout): * rendering/RenderBlock.h: 2011-05-05 Brian Weinstein <bweinstein@apple.com> Reviewed by Timothy Hatcher. WebKit2: Docking Web Inspector doesn't respect maximum inspector size https://bugs.webkit.org/show_bug.cgi?id=60294 <rdar://problem/9388518> Make a needed function public and export it. * WebCore.exp.in: Export constrainedAttaechedWindowHeight. * inspector/InspectorFrontendClientLocal.h: Make constrainedAttaechedWindowHeight public. 2011-05-05 Tony Gentilcore <tonyg@chromium.org> Reviewed by Nate Chapin. [Navigation Timing] navigationStart should always be available https://bugs.webkit.org/show_bug.cgi?id=59448 * page/PerformanceTiming.cpp: (WebCore::PerformanceTiming::navigationStart): 2011-05-05 Eric Carlson <eric.carlson@apple.com> Reviewed by Adam Roben. Block callbacks delivered during destruction https://bugs.webkit.org/show_bug.cgi?id=60291 <rdar://problem/9382942> No new tests, tested by existing tests. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation): Call setIgnoreLoadStateChanges(true) to cancel all callbacks. (WebCore::MediaPlayerPrivateAVFoundation::updateStates): Return immediately if m_ignoreLoadStateChanges is true. (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): loadStateChanged -> updateStates. Don't call updateStates after calling loadedTimeRangesChanged, it already does it. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: 2011-05-05 David Hyatt <hyatt@apple.com> Reviewed by Darin Adler. <rdar://problem/9354979> REGRESSION (r83070-r83126): Conversation takes 10 seconds to load and makes mail unresponsive Culled inlines were triggering some pathological line box tree groveling that isn't even necessary. Removed the ancient code (that used to be in RenderFlow), since it made no sense in the RenderBlock case (it was running for inline blocks, which was definitely not even the intent) or in the RenderInline case (the object being removed has no effect on any lines). Also tweaked culledInlineFirstLineBox and culledInlineLastLineBox to avoid bailing if the first replaced object that is encountered has a null inlineBoxWrapper(). Just a slight speed optimization to avoid an extra null check. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::destroy): * rendering/RenderInline.cpp: (WebCore::RenderInline::destroy): (WebCore::RenderInline::culledInlineFirstLineBox): (WebCore::RenderInline::culledInlineLastLineBox): 2011-05-05 Bharathwaaj Srinivasan <bharathwaaj.s@gmail.com> Reviewed by Holger Freyther. Fix build-webkit --minimal. https://bugs.webkit.org/show_bug.cgi?id=60257 No new tests. This is just a build fix. * bindings/js/JSDOMBinding.cpp: 2011-05-05 Eric Carlson <eric.carlson@apple.com> Reviewed by Adam Roben. The preload attribute of the video tag is not completely implemented https://bugs.webkit.org/show_bug.cgi?id=43673 <rdar://problem/9369746> This change implements "preload=metadata" for the AVFoundation backend. Tested manually with manual-tests/media-elements/video-preload.html. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_havePreparedToPlay. (WebCore::HTMLMediaElement::prepareForLoad): Ditto. (WebCore::HTMLMediaElement::prepareToPlay): New, tell player to prepare to play. (WebCore::HTMLMediaElement::seek): Call prepareToPlay when preload is less than 'auto' because we need to have media data loaded to seek. (WebCore::HTMLMediaElement::updatePlayState): Call prepareToPlay. * html/HTMLMediaElement.h: * manual-tests/media-elements/video-preload.html: Make changing urls work. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation): Remove m_videoFrameHasDrawn and m_delayingLoad as they are no longer used. (WebCore::MediaPlayerPrivateAVFoundation::resumeLoad): Removed. (WebCore::MediaPlayerPrivateAVFoundation::load): Don't initialize m_videoFrameHasDrawn. Move all preload logic to setPreload, call it from here. (WebCore::MediaPlayerPrivateAVFoundation::prepareToPlay): Move all preload logic to setPreload, call it. (WebCore::MediaPlayerPrivateAVFoundation::duration): Don't cache duration = 0, it is unlikely to be correct and isn't worth caching. Use invalidTime() function. (WebCore::MediaPlayerPrivateAVFoundation::seeking): Use invalidTime() function. (WebCore::MediaPlayerPrivateAVFoundation::setNaturalSize): Add logging. (WebCore::MediaPlayerPrivateAVFoundation::updateStates): Update for name change AVAssetStatus to AssetStatus. Always create a AVPlayerItem for live streams because they can't be inspected without one. Set networkState to 'idle' when the playback buffer is full because that is a signal that AVFoundation won't do any more IO. Set readyState to 'HAVE_CURRENT_DATA' when the first frame is available. (WebCore::MediaPlayerPrivateAVFoundation::metadataLoaded): Call tracksChanged so we cache width, height, hasVideo, etc. (WebCore::MediaPlayerPrivateAVFoundation::loadedTimeRangesChanged): Use invalidTime() function. (WebCore::MediaPlayerPrivateAVFoundation::timeChanged): Ditto. (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto. (WebCore::MediaPlayerPrivateAVFoundation::repaint): Don't set m_videoFrameHasDrawn, it is done in derived classes. (WebCore::MediaPlayerPrivateAVFoundation::setPreload): Centralize all logic about when to create AVAsset and AVPlayerItem here. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize m_videoFrameHasDrawn. (WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame): New, renamed from videoLayerIsReadyToDisplay. Return true if we have a layer with frames available or if we have painted a frame to the context. (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): New, create the AVAsset if necessary. (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForCacheResource): Ditto. (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Restructure logic. (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): New, create AVPlayerItem. (WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata): Correct logging. (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatus): Return "buffer full" when the buffer is full. (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): Get the duration from the AVAsset when we haven't allocated the AVPlayerItem yet so that we can return duration when we only have metadata. (WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus): Update for name change. (WebCore::MediaPlayerPrivateAVFoundationObjC::paint): Set m_videoFrameHasDrawn. (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Get attributes from AVAsset when when we haven't allocated the AVPlayerItem yet so that we can report attributes when we only have metadata. (WebCore::MediaPlayerPrivateAVFoundationObjC::sizeChanged): Guard against being called before we have allocated the AVPlayerItem. 2011-05-05 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Eric Seidel. Rename SelectionController to FrameSelection https://bugs.webkit.org/show_bug.cgi?id=60234 * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.exp.in: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AccessibilityObject.cpp: * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine): * accessibility/mac/AccessibilityObjectWrapper.mm: * bindings/objc/ExceptionHandlers.h: * css/CSSStyleSelector.cpp: * dom/ContainerNode.cpp: (WebCore::ContainerNode::cloneChildNodes): * dom/Document.cpp: * dom/InputElement.cpp: * editing/DeleteButtonController.cpp: * editing/EditCommand.cpp: * editing/EditingAllInOne.cpp: * editing/EditingStyle.cpp: * editing/Editor.cpp: (WebCore::Editor::canCopy): (WebCore::Editor::canDelete): (WebCore::Editor::markMisspellingsAfterTypingToWord): (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): (WebCore::Editor::changeSelectionAfterCommand): (WebCore::Editor::respondToChangedSelection): * editing/Editor.h: * editing/EditorCommand.cpp: (WebCore::executeDeleteToMark): (WebCore::executeMoveBackward): (WebCore::executeMoveBackwardAndModifySelection): (WebCore::executeMoveDown): (WebCore::executeMoveDownAndModifySelection): (WebCore::executeMoveForward): (WebCore::executeMoveForwardAndModifySelection): (WebCore::executeMoveLeft): (WebCore::executeMoveLeftAndModifySelection): (WebCore::executeMovePageDown): (WebCore::executeMovePageDownAndModifySelection): (WebCore::executeMovePageUp): (WebCore::executeMovePageUpAndModifySelection): (WebCore::executeMoveRight): (WebCore::executeMoveRightAndModifySelection): (WebCore::executeMoveToBeginningOfDocument): (WebCore::executeMoveToBeginningOfDocumentAndModifySelection): (WebCore::executeMoveToBeginningOfLine): (WebCore::executeMoveToBeginningOfLineAndModifySelection): (WebCore::executeMoveToBeginningOfParagraph): (WebCore::executeMoveToBeginningOfParagraphAndModifySelection): (WebCore::executeMoveToBeginningOfSentence): (WebCore::executeMoveToBeginningOfSentenceAndModifySelection): (WebCore::executeMoveToEndOfDocument): (WebCore::executeMoveToEndOfDocumentAndModifySelection): (WebCore::executeMoveToEndOfSentence): (WebCore::executeMoveToEndOfSentenceAndModifySelection): (WebCore::executeMoveToEndOfLine): (WebCore::executeMoveToEndOfLineAndModifySelection): (WebCore::executeMoveToEndOfParagraph): (WebCore::executeMoveToEndOfParagraphAndModifySelection): (WebCore::executeMoveParagraphBackwardAndModifySelection): (WebCore::executeMoveParagraphForwardAndModifySelection): (WebCore::executeMoveUp): (WebCore::executeMoveUpAndModifySelection): (WebCore::executeMoveWordBackward): (WebCore::executeMoveWordBackwardAndModifySelection): (WebCore::executeMoveWordForward): (WebCore::executeMoveWordForwardAndModifySelection): (WebCore::executeMoveWordLeft): (WebCore::executeMoveWordLeftAndModifySelection): (WebCore::executeMoveWordRight): (WebCore::executeMoveWordRightAndModifySelection): (WebCore::executeMoveToLeftEndOfLine): (WebCore::executeMoveToLeftEndOfLineAndModifySelection): (WebCore::executeMoveToRightEndOfLine): (WebCore::executeMoveToRightEndOfLineAndModifySelection): * editing/FrameSelection.cpp: Copied from Source/WebCore/editing/SelectionController.cpp. (WebCore::FrameSelection::FrameSelection): (WebCore::FrameSelection::moveTo): (WebCore::FrameSelection::setSelection): (WebCore::FrameSelection::nodeWillBeRemoved): (WebCore::FrameSelection::respondToNodeModification): (WebCore::FrameSelection::textWillBeReplaced): (WebCore::FrameSelection::setIsDirectional): (WebCore::FrameSelection::directionOfEnclosingBlock): (WebCore::FrameSelection::willBeModified): (WebCore::FrameSelection::positionForPlatform): (WebCore::FrameSelection::startForPlatform): (WebCore::FrameSelection::endForPlatform): (WebCore::FrameSelection::modifyExtendingRight): (WebCore::FrameSelection::modifyExtendingForward): (WebCore::FrameSelection::modifyMovingRight): (WebCore::FrameSelection::modifyMovingForward): (WebCore::FrameSelection::modifyExtendingLeft): (WebCore::FrameSelection::modifyExtendingBackward): (WebCore::FrameSelection::modifyMovingLeft): (WebCore::FrameSelection::modifyMovingBackward): (WebCore::FrameSelection::modify): (WebCore::FrameSelection::xPosForVerticalArrowNavigation): (WebCore::FrameSelection::clear): (WebCore::FrameSelection::setStart): (WebCore::FrameSelection::setEnd): (WebCore::FrameSelection::setBase): (WebCore::FrameSelection::setExtent): (WebCore::FrameSelection::setCaretRectNeedsUpdate): (WebCore::FrameSelection::updateCaretRect): (WebCore::FrameSelection::caretRenderer): (WebCore::FrameSelection::localCaretRect): (WebCore::FrameSelection::absoluteBoundsForLocalRect): (WebCore::FrameSelection::absoluteCaretBounds): (WebCore::FrameSelection::caretRepaintRect): (WebCore::FrameSelection::recomputeCaretRect): (WebCore::FrameSelection::shouldRepaintCaret): (WebCore::FrameSelection::invalidateCaretRect): (WebCore::FrameSelection::paintCaret): (WebCore::FrameSelection::debugRenderer): (WebCore::FrameSelection::contains): (WebCore::FrameSelection::selectFrameElementInParentIfFullySelected): (WebCore::FrameSelection::selectAll): (WebCore::FrameSelection::setSelectedRange): (WebCore::FrameSelection::isInPasswordField): (WebCore::FrameSelection::caretRendersInsideNode): (WebCore::FrameSelection::focusedOrActiveStateChanged): (WebCore::FrameSelection::pageActivationChanged): (WebCore::FrameSelection::updateSecureKeyboardEntryIfActive): (WebCore::FrameSelection::setUseSecureKeyboardEntry): (WebCore::FrameSelection::setFocused): (WebCore::FrameSelection::isFocusedAndActive): (WebCore::FrameSelection::updateAppearance): (WebCore::FrameSelection::setCaretVisible): (WebCore::FrameSelection::clearCaretRectIfNeeded): (WebCore::FrameSelection::caretBlinkTimerFired): (WebCore::FrameSelection::notifyRendererOfSelectionChange): (WebCore::FrameSelection::setFocusedNodeIfNeeded): (WebCore::FrameSelection::paintDragCaret): (WebCore::FrameSelection::copyTypingStyle): (WebCore::FrameSelection::shouldDeleteSelection): (WebCore::FrameSelection::bounds): (WebCore::FrameSelection::getClippedVisibleTextRectangles): (WebCore::FrameSelection::currentForm): (WebCore::FrameSelection::revealSelection): (WebCore::FrameSelection::setSelectionFromNone): (WebCore::FrameSelection::shouldChangeSelection): (WebCore::FrameSelection::formatForDebugger): (WebCore::FrameSelection::showTreeForThis): (showTree): * editing/FrameSelection.h: Copied from Source/WebCore/editing/SelectionController.h. (WebCore::FrameSelection::typingStyle): (WebCore::FrameSelection::clearTypingStyle): (WebCore::FrameSelection::setTypingStyle): (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * editing/ModifySelectionListLevel.cpp: * editing/RemoveFormatCommand.cpp: * editing/ReplaceSelectionCommand.cpp: * editing/SelectionController.cpp: Removed. * editing/SelectionController.h: Removed. * editing/SetSelectionCommand.cpp: (WebCore::SetSelectionCommand::SetSelectionCommand): (WebCore::SetSelectionCommand::doApply): (WebCore::SetSelectionCommand::doUnapply): * editing/SetSelectionCommand.h: (WebCore::SetSelectionCommand::create): * editing/SpellingCorrectionCommand.cpp: (WebCore::SpellingCorrectionCommand::doApply): * editing/SpellingCorrectionController.cpp: (WebCore::SpellingCorrectionController::respondToUnappliedSpellCorrection): * editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): (WebCore::TypingCommand::forwardDeleteKeyPressed): * editing/chromium/FrameSelectionChromium.cpp: Copied from Source/WebCore/editing/chromium/SelectionControllerChromium.cpp. (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * editing/chromium/SelectionControllerChromium.cpp: Removed. * editing/gtk/FrameSelectionGtk.cpp: Copied from Source/WebCore/editing/gtk/SelectionControllerGtk.cpp. (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * editing/gtk/SelectionControllerGtk.cpp: Removed. * editing/mac/EditorMac.mm: (WebCore::Editor::canCopyExcludingStandaloneImages): * editing/mac/FrameSelectionMac.mm: Copied from Source/WebCore/editing/mac/SelectionControllerMac.mm. (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): * editing/mac/SelectionControllerMac.mm: Removed. * editing/qt/EditorQt.cpp: * loader/archive/cf/LegacyWebArchive.cpp: * page/ContextMenuController.cpp: (WebCore::ContextMenuController::populate): * page/DOMSelection.cpp: (WebCore::DOMSelection::type): (WebCore::DOMSelection::modify): (WebCore::DOMSelection::addRange): (WebCore::DOMSelection::deleteFromDocument): (WebCore::DOMSelection::containsNode): * page/DragController.cpp: (WebCore::DragController::dragIsMove): * page/DragController.h: * page/EventHandler.cpp: (WebCore::setSelectionIfNeeded): (WebCore::setNonDirectionalSelectionIfNeeded): (WebCore::EventHandler::sendContextMenuEventForKey): (WebCore::EventHandler::handleKeyboardSelectionMovement): * page/EventHandler.h: * page/FocusController.cpp: (WebCore::clearSelectionIfNeeded): * page/Frame.cpp: (WebCore::Frame::Frame): * page/Frame.h: (WebCore::Frame::selection): * page/Page.cpp: (WebCore::Page::Page): * page/Page.h: (WebCore::Page::dragCaretController): * page/chromium/DragControllerChromium.cpp: * page/chromium/EventHandlerChromium.cpp: * page/win/DragControllerWin.cpp: * page/win/EventHandlerWin.cpp: * rendering/HitTestResult.cpp: * rendering/RenderBlock.cpp: (WebCore::RenderBlock::destroy): (WebCore::RenderBlock::paintCaret): * rendering/RenderImage.cpp: * rendering/RenderInline.cpp: (WebCore::RenderInline::destroy): * rendering/RenderLayer.cpp: * rendering/RenderListBox.cpp: * rendering/RenderObjectChildList.cpp: (WebCore::RenderObjectChildList::removeChildNode): * rendering/RenderTextControl.cpp: * rendering/RenderTextControlSingleLine.cpp: * rendering/RenderTheme.cpp: * rendering/RenderTreeAsText.cpp: * svg/SVGSVGElement.cpp: * svg/SVGTextContentElement.cpp: (WebCore::SVGTextContentElement::selectSubString): 2011-05-05 Brent Fulgham <bfulgham@webkit.org> [WinCairo] unreviewed build correction. * platform/network/curl/ResourceRequest.h: Stub out the new pipelined http logic for cURL. 2011-05-05 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: searching for node does not result in bringToFront call. https://bugs.webkit.org/show_bug.cgi?id=60222 * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype.updateFocusedNode): 2011-05-05 Andreas Kling <andreas.kling@nokia.com> Reviewed by Simon Hausmann. [Qt] Implement the fast font path for Qt. https://bugs.webkit.org/show_bug.cgi?id=51106 Use the new QRawFont and QGlyphs APIs in Qt 4.8 to implement the fast paths for rendering and measurement of simple text. Since this is still unreleased API, it's guarded by HAVE(QRAWFONT) until the new classes are fully integrated into the Qt 4.8 release branch. * WebCore.pro: Add HAVE_QRAWFONT define (for Qt >= 4.8) and new files to build. * platform/graphics/Font.cpp: (WebCore::Font::drawText): Disable fast font path for stroked text, and when painting text with a shadow. (Qt-only) (WebCore::Font::codePath): Try to use fast font path in more cases. * platform/graphics/qt/FontCacheQt.cpp: (WebCore::rawFontForCharacters): Helper function, returns a suitable QRawFont to use for rendering a given string. Goes through QTextLayout to find the best font based on the original QFont query. (WebCore::FontCache::getFontDataForCharacters): Implemented using helper above. * platform/graphics/qt/FontPlatformData.h: (WebCore::FontPlatformDataPrivate::FontPlatformDataPrivate): (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::rawFont): * platform/graphics/qt/FontPlatformDataQt.cpp: (WebCore::FontPlatformData::FontPlatformData): Add a QRawFont member to FontPlatformData. * platform/graphics/qt/FontQt.cpp: (WebCore::fillPenForContext): (WebCore::strokePenForContext): (WebCore::drawTextCommon): Factored QPen creation out of drawTextCommon to share code between complex and simple font rendering paths. (WebCore::Font::drawGlyphs): Implemented using QPainter::drawGlyphs(). * platform/graphics/qt/GlyphPageTreeNodeQt.cpp: (WebCore::GlyphPage::fill): Implemented using QRawFont::glyphIndexesForString(). * platform/graphics/qt/SimpleFontDataQt.cpp: (WebCore::SimpleFontData::determinePitch): Return false when using QRawFont since we have no way of knowing the pitch. (WebCore::SimpleFontData::containsCharacters): Implemented using QRawFont::supportsCharacter(). (WebCore::SimpleFontData::platformWidthForGlyph): Implemented using QRawFont::advancesForGlyphIndexes(). (WebCore::SimpleFontData::scaledFontData): Added, based on other ports. (WebCore::SimpleFontData::smallCapsFontData): Ditto. (WebCore::SimpleFontData::emphasisMarkFontData): Ditto. (WebCore::SimpleFontData::platformBoundsForGlyph): Stub. (WebCore::SimpleFontData::platformInit): Use QRawFont APIs to retrieve font metrics. (WebCore::SimpleFontData::platformCharWidthInit): Ditto. 2011-05-05 Alexis Menard <alexis.menard@openbossa.org> Reviewed by Andreas Kling. [Qt] RenderThemeQt and DumpRenderTreeSupportQt should use nullptr rather than 0. https://bugs.webkit.org/show_bug.cgi?id=60224 We should use nullptr rather than 0. nullptr will be added in the new C++ standard but WebKit already has a nullptr class if there is no c++0x support. * platform/qt/RenderThemeQt.cpp: (WebCore::RenderThemeQt::adjustProgressBarStyle): (WebCore::RenderThemeQt::adjustSliderTrackStyle): (WebCore::RenderThemeQt::adjustSliderThumbStyle): 2011-05-05 Ilya Tikhonovsky <loislo@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: rename BrowserDebugger to DOMDebugger. https://bugs.webkit.org/show_bug.cgi?id=60256 InspectorBrowserDebuggerAgent => InspectorDOMDebuggerAgent browserDebugger => domDebugger * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * inspector/CodeGeneratorInspector.pm: * inspector/InspectorAgent.cpp: (WebCore::InspectorAgent::InspectorAgent): (WebCore::InspectorAgent::inspectedPageDestroyed): (WebCore::InspectorAgent::disconnectFrontend): * inspector/InspectorAgent.h: (WebCore::InspectorAgent::DOMDebuggerAgent): * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): * inspector/InspectorDOMDebuggerAgent.cpp: Renamed from Source/WebCore/inspector/InspectorBrowserDebuggerAgent.cpp. (WebCore::InspectorDOMDebuggerAgent::create): (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent): (WebCore::InspectorDOMDebuggerAgent::~InspectorDOMDebuggerAgent): (WebCore::InspectorDOMDebuggerAgent::debuggerWasEnabled): (WebCore::InspectorDOMDebuggerAgent::debuggerWasDisabled): (WebCore::InspectorDOMDebuggerAgent::disable): (WebCore::InspectorDOMDebuggerAgent::clearFrontend): (WebCore::InspectorDOMDebuggerAgent::discardBindings): (WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint): (WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint): (WebCore::InspectorDOMDebuggerAgent::didInsertDOMNode): (WebCore::InspectorDOMDebuggerAgent::didRemoveDOMNode): (WebCore::InspectorDOMDebuggerAgent::setDOMBreakpoint): (WebCore::InspectorDOMDebuggerAgent::removeDOMBreakpoint): (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode): (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode): (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr): (WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent): (WebCore::InspectorDOMDebuggerAgent::hasBreakpoint): (WebCore::InspectorDOMDebuggerAgent::updateSubtreeBreakpoints): (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded): (WebCore::InspectorDOMDebuggerAgent::setXHRBreakpoint): (WebCore::InspectorDOMDebuggerAgent::removeXHRBreakpoint): (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest): (WebCore::InspectorDOMDebuggerAgent::clear): * inspector/InspectorDOMDebuggerAgent.h: Renamed from Source/WebCore/inspector/InspectorBrowserDebuggerAgent.h. * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl): (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl): (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl): (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl): (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl): (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl): (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded): * inspector/InstrumentingAgents.h: (WebCore::InstrumentingAgents::InstrumentingAgents): (WebCore::InstrumentingAgents::inspectorDOMDebuggerAgent): (WebCore::InstrumentingAgents::setInspectorDOMDebuggerAgent): * inspector/WorkerInspectorController.cpp: (WebCore::WorkerInspectorController::connectFrontend): 2011-05-04 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: show only Console and Scripts panels in worker inspector front-end https://bugs.webkit.org/show_bug.cgi?id=60159 * inspector/front-end/WorkerManager.js: (WebInspector.WorkerManager.isWorkerFrontend): * inspector/front-end/inspector.js: show only Scripts and Console panels in the worker inspector front-end. 2011-05-03 Hans Wennborg <hans@chromium.org> Reviewed by Steve Block. IndexedDB: Unit tests for LevelDB key coding functions https://bugs.webkit.org/show_bug.cgi?id=59692 Fix some embarrassing bugs uncovered by unit tests. No new functionality, but this is now covered by unit tests in the Chromium WebKit port. * storage/IDBLevelDBCoding.cpp: (WebCore::IDBLevelDBCoding::decodeInt): (WebCore::IDBLevelDBCoding::decodeVarInt): 2011-05-05 Young Han Lee <joybro@company100.net> Reviewed by Csaba Osztrogonác. [Texmap][Qt] Enable strict OwnPtr for Qt with texmap enabled. https://bugs.webkit.org/show_bug.cgi?id=60251 No new tests. Build fix. * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper): 2011-05-04 Jay Civelli <jcivelli@chromium.org> Reviewed by Adam Barth. Adding a utility class to read a SharedBuffer line by line. https://bugs.webkit.org/show_bug.cgi?id=59946 * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * platform/SharedBufferCRLFLineReader.cpp: Added. * platform/SharedBufferCRLFLineReader.h: Added. 2011-05-04 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r85788. http://trac.webkit.org/changeset/85788 https://bugs.webkit.org/show_bug.cgi?id=60250 svg/text/text-block-child-crash.xhtml asserts (Requested by Ossy on #webkit). * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): 2011-05-04 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Eric Seidel. Make more member functions in EventHandler private https://bugs.webkit.org/show_bug.cgi?id=60200 Reduced the number of public member functions in EventHandler. * WebCore.exp.in: * page/EventHandler.cpp: (WebCore::EventHandler::handleAutoscroll): (WebCore::EventHandler::autoscrollTimerFired): (WebCore::EventHandler::stopAutoscrollTimer): (WebCore::EventHandler::handleMousePressEvent): (WebCore::EventHandler::handleMouseMoveEvent): (WebCore::EventHandler::keyEvent): (WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult): * page/EventHandler.h: (WebCore::EventHandler::mouseDownMayStartSelect): 2011-05-04 James Robinson <jamesr@chromium.org> Reviewed by Kenneth Russell. [chromium] REGRESSION(85136): Composited content vanishes when transform-style changes from preserve-3d to flat https://bugs.webkit.org/show_bug.cgi?id=60202 In r85136 I accidentally transposed two lines in GraphicsLayerChromium when adding a null check. This switches the order back and adds a regression test. Test: compositing/repaint/transform-style-change.html * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): 2011-05-04 Cris Neckar <cdn@chromium.org> Reviewed by Adam Barth. Expose WebView directly through ChromeClient. https://bugs.webkit.org/show_bug.cgi?id=49902 Test: fast/media/media-svg-crash.html * loader/EmptyClients.h: (WebCore::EmptyChromeClient::webView): * page/ChromeClient.h: * page/brew/ChromeClientBrew.h: (WebCore::ChromeClientBrew::webView): 2011-05-04 Joseph Pecoraro <joepeck@webkit.org> Reviewed by Darin Adler. Unable to Paste After Deleting Text from Input due to -webkit-user-select https://bugs.webkit.org/show_bug.cgi?id=60219 When deleting all the text inside the input a placeholder <br> element was inserted for the selection point. However, when pasting, the test run computes the -webkit-user-select for the <br> element, instead of what would be the text inside the <input> and incorrectly disallows selection and prevented the paste. Test: editing/pasteboard/paste-placeholder-input.html * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::insertFragmentForTestRendering): skip <br> elements above us as those are likely placeholder elements. 2011-05-04 Fridrich Strba <fridrich.strba@bluewin.ch> Reviewed by Martin Robinson. Windows build of WebKit GTK needs to be able to find SystemInfo.h https://bugs.webkit.org/show_bug.cgi?id=60221 * GNUmakefile.am: add Source/WebCore/platform/win to the paths searched for headers, since Source/WebCore/platform/win/SystemInfo.h header is needed by Source/WebKit/gtk/webkit/webkitwebsettings.cpp on Windows. 2011-05-04 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Kenneth Russell. [chromium] Improve sorting of layers in hierarchies that preserve-3d by testing for overlapping regions between layer pairs and doing a topological sort to determine the right order. https://bugs.webkit.org/show_bug.cgi?id=59255 Test: platform/chromium/compositing/perpendicular-layer-sorting.html * WebCore.gypi: * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces): * platform/graphics/chromium/LayerRendererChromium.h: * platform/graphics/chromium/cc/CCLayerImpl.h: (WebCore::CCLayerImpl::clearRenderSurface): * platform/graphics/chromium/cc/CCLayerSorter.cpp: Added. (WebCore::perpProduct): (WebCore::innerProduct): (WebCore::pointInColinearEdge): (WebCore::edgeEdgeTest): (WebCore::CCLayerSorter::LayerIntersector::LayerIntersector): (WebCore::CCLayerSorter::LayerIntersector::go): (WebCore::CCLayerSorter::LayerIntersector::edgeTriangleTest): (WebCore::CCLayerSorter::LayerIntersector::triangleTriangleTest): (WebCore::CCLayerSorter::LayerIntersector::checkZDiff): (WebCore::CCLayerSorter::LayerIntersector::layerZFromProjectedPoint): (WebCore::CCLayerSorter::CCLayerSorter): (WebCore::CCLayerSorter::checkOverlap): (WebCore::CCLayerSorter::createGraphNodes): (WebCore::CCLayerSorter::createGraphEdges): (WebCore::CCLayerSorter::removeEdgeFromList): (WebCore::CCLayerSorter::sort): * platform/graphics/chromium/cc/CCLayerSorter.h: Added. (WebCore::CCLayerSorter::GraphNode::GraphNode): (WebCore::CCLayerSorter::GraphEdge::GraphEdge): 2011-05-03 Jer Noble <jer.noble@apple.com> Reviewed by Antti Koivisto. Safari: Video at apple.com cannot play at full screen mode with layout distortion https://bugs.webkit.org/show_bug.cgi?id=60140 Because a fullscreen element may be in a stacking context with a lower z-index than a sibling stacking context, those higher contexts would sometimes "pop" through the full screen renderer. To facilitate eliminating all the stacking contexts aside from the full screen renderer, added a new pseudo-class specific to video or audio full screen elements. Then, added a new UA rule which resets the z-index and opacities of all elements under said pseudo-class to auto and 1 respectively. To facilitate quick identity checking of HTMLMediaElements, added isMediaElement() virtual function to Element and HTMLMediaElement. Test: fullscreen/full-screen-stacking-context.html * css/CSSSelector.cpp: (WebCore::CSSSelector::pseudoId): Support PseudoFullScreenMediaDocument. (WebCore::nameToPseudoTypeMap): Support fullScreenMediaDocument. (WebCore::CSSSelector::extractPseudoType): Support PseudoFullScreenMediaDocument. * css/CSSSelector.h: Add PseudoFullScreenMediaDocument. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Support PseudoFullScreenMediaDocument. * css/fullscreen.css: (:root:-webkit-full-screen-document:not(:-webkit-full-screen)): Corrected these names, which were missing the -webkit prefix. (:root:-webkit-full-screen-media-document *:not(-webkit-full-screen)): Added. * dom/Element.h: (WebCore::Element::isMediaElement): Added, returns false. * html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::isMediaElement): Added, returns true. * rendering/style/RenderStyleConstants.h: Added FULL_SCREEN_MEDIA_DOCUMENT. 2011-05-04 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Split findNextLineBreak into a LineBreaker class https://bugs.webkit.org/show_bug.cgi?id=60209 Breaking findNextLineBreak into a new class inside RenderBlock. Currently it's tracking nearly no state, but subsequent patches will move some of the local variables used throughout the nextLineBreak function into member variables to simplify breaking off helper functions from the bloated function. No new tests since this is just moving code around. * WebCore.xcodeproj/project.pbxproj: * rendering/RenderBlock.h: (WebCore::RenderBlock::LineBreaker::LineBreaker): (WebCore::RenderBlock::LineBreaker::lineWasHyphenated): Accessor. (WebCore::RenderBlock::LineBreaker::positionedObjects): Ditto. (WebCore::RenderBlock::LineBreaker::clear): Ditto. * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::layoutRunsAndFloats): (WebCore::RenderBlock::LineBreaker::skipTrailingWhitespace): (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace): (WebCore::RenderBlock::LineBreaker::reset): (WebCore::RenderBlock::LineBreaker::nextLineBreak): 2011-05-04 Fridrich Strba <fridrich.strba@bluewin.ch> Reviewed by Adam Barth. Add COMPILER(MINGW) to the compilers using the Microsoft C Runtime's vsnprintf. The vsnprintf is part of Microsoft C runtime used also by MinGW (GCC) toolchain. https://bugs.webkit.org/show_bug.cgi?id=58579 * dom/XMLDocumentParserLibxml2.cpp: (WebCore::XMLDocumentParser::error): 2011-05-04 Alexis Menard <alexis.menard@openbossa.org> Unreviewed warning fix. The variable is just used in the ASSERT macro. Let's use ASSERT_UNUSED to avoid a warning in Release build. * dom/Node.cpp: (WebCore::Node::removeEventListener): * platform/DateComponents.cpp: (WebCore::DateComponents::parseTime): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::convertToLayerCoords): * storage/StorageMap.cpp: (WebCore::StorageMap::importItem): * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::buildShadowTree): (WebCore::SVGUseElement::expandUseElementsInShadowTree): 2011-05-04 Alexis Menard <alexis.menard@openbossa.org> Unreviewed warning fix. The variable is just used in the ASSERT macro. Let's use ASSERT_UNUSED to avoid a warning in Release build. * accessibility/AccessibilityRenderObject.cpp: (WebCore::lastChildConsideringContinuation): 2011-05-04 Dimitri Glazkov <dglazkov@chromium.org> Sort xcodeproj files. The WebCore.xcodeproj got out of sorts again. * WebCore.xcodeproj/project.pbxproj: Ran sort-XCode-project-file. 2011-05-04 Alexis Menard <alexis.menard@openbossa.org> Reviewed by Adam Barth. Warning fix. * bindings/js/DOMObjectHashTableMap.h: (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap): 2011-05-04 Rob Buis <rbuis@rim.com> Reviewed by Darin Adler. NULL deref when SVG elements have table styles https://bugs.webkit.org/show_bug.cgi?id=45561 Restrict computed CSS values for SVG display property to block, inline or none. Tests: svg/custom/display-table-caption-foreignObject.svg svg/custom/display-table-caption-inherit-foreignObject.xhtml svg/custom/display-table-caption-inherit-text.xhtml svg/custom/display-table-caption-text.svg * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): 2011-05-04 Tao Bai <michaelbai@chromium.org> Reviewed by David Kilzer. Populate touch-icon url to FrameLoaderClient https://bugs.webkit.org/show_bug.cgi?id=59143 Parsed and populated apple-touch-icon url to FrameLoaderClient. Changed favicon to be a type of icon. * CMakeLists.txt: * Configurations/FeatureDefines.xcconfig: * GNUmakefile.am: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/Document.cpp: (WebCore::Document::iconURL): (WebCore::Document::setIconURL): * dom/Document.h: * dom/IconURL.cpp: Added. (WebCore::toIconIndex): * dom/IconURL.h: Added. (WebCore::IconURL::IconURL): * features.pri: * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::tokenizeRelAttribute): (WebCore::HTMLLinkElement::process): (WebCore::HTMLLinkElement::addSubresourceAttributeURLs): * html/HTMLLinkElement.h: (WebCore::HTMLLinkElement::RelAttribute::RelAttribute): (WebCore::HTMLLinkElement::isEnabledViaScript): * html/parser/HTMLPreloadScanner.cpp: (WebCore::HTMLNames::PreloadTask::relAttributeIsStyleSheet): * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::iconURL): (WebCore::DocumentLoader::setIconURL): * loader/DocumentLoader.h: * loader/EmptyClients.h: (WebCore::EmptyFrameLoaderClient::dispatchDidChangeIcons): * loader/FrameLoader.cpp: (WebCore::FrameLoader::iconURL): (WebCore::FrameLoader::iconURLs): (WebCore::FrameLoader::fillIconURL): (WebCore::FrameLoader::getDefaultIconURL): (WebCore::FrameLoader::setIconURL): (WebCore::FrameLoader::didChangeIcons): * loader/FrameLoader.h: * loader/FrameLoaderClient.h: 2011-05-04 Chris Marrin <cmarrin@apple.com> Reviewed by Simon Fraser. Crash in PlatformCALayer ::replaceSublayer when layer has not superlayer https://bugs.webkit.org/show_bug.cgi?id=60191 Skip replaceSublayer when there is no superlayer rather than asserting. This is probably not a problem and happens when restructuring the layer tree. Avoiding this crash will allow us to get more testing. * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): 2011-05-04 Martin Robinson <mrobinson@igalia.com> Reviewed by Gustavo Noronha Silva. Fix the GTK+ 2.x build for Windows. Instead of making getStockIcon a RenderTheme method, just use extern declarations to avoid having to declare it in the header. This will prevent having to include glib.h in RenderThemeGtk.h, which is included in many C++ files. No new tests. This is just a build fix. * platform/gtk/RenderThemeGtk.cpp: Update getStockIcon calls to say getStockIconForWidgetType. (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration): (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): (WebCore::RenderThemeGtk::paintCapsLockIndicator): (WebCore::RenderThemeGtk::paintMediaButton): * platform/gtk/RenderThemeGtk.h: Removed getStockIcon declaration. Make gtkContainer() and gtkEntry() public because they are now accessed externally from getStockIcon(). * platform/gtk/RenderThemeGtk2.cpp: Update getStockIcon calls. (WebCore::getStockIconForWidgetType): * platform/gtk/RenderThemeGtk3.cpp: Ditto. (WebCore::getStockIconForWidgetType): 2011-05-04 Mark Pilgrim <pilgrim@chromium.org> Reviewed by Tony Chang. IndexedDB open (database) should fail if name is null https://bugs.webkit.org/show_bug.cgi?id=60022 Test: storage/indexeddb/mozilla/open-database-null-name.html Combination problem: Bug in IDL didn't pass null values to .cpp layer, then .cpp layer didn't check for null value anyway. * storage/IDBFactory.cpp: (WebCore::IDBFactory::open): check for null name * storage/IDBFactory.idl: pass null name as null 2011-05-04 Jer Noble <jer.noble@apple.com> Reviewed by Darin Adler. Entering full screen fails >= second time on Vimeo.com. https://bugs.webkit.org/show_bug.cgi?id=60143 Force the RenderFullScreen's layer backing to be recreated when setAnimating() is called. Previously, the RenderLayerCompositor would fail to reparent the RenderFullScreen's layer at the end of an animation, if it determined that the RenderFullScreen would still require a layer even when not animating. * rendering/RenderFullScreen.cpp: (RenderFullScreen::setAnimating): Clear the renderer's layer. 2011-05-04 Simon Fraser <simon.fraser@apple.com> Reviewed by Darin Adler. Avoid allocating a new image buffer in ~CanvasRenderingContext2D() https://bugs.webkit.org/show_bug.cgi?id=59849 When attempting to unwind the graphics state stack in the CanvasRenderingContext2D destructor, don't allow HTMLCanvasElement to create a new ImageBuffer. * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::existingDrawingContext): * html/HTMLCanvasElement.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::~CanvasRenderingContext2D): 2011-05-04 Andrey Kosyakov <caseq@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: expose shadow DOM in the Elements panel https://bugs.webkit.org/show_bug.cgi?id=60160 Test: inspector/elements/shadow-dom.html * dom/Element.cpp: (WebCore::Element::ensureShadowRoot): (WebCore::Element::removeShadowRoot): * inspector/Inspector.json: * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::pushChildNodesToFrontend): (WebCore::InspectorDOMAgent::buildObjectForNode): (WebCore::InspectorDOMAgent::didInsertDOMNode): (WebCore::InspectorDOMAgent::didRemoveDOMNode): (WebCore::InspectorDOMAgent::isContainerNode): * inspector/InspectorDOMAgent.h: * inspector/front-end/DOMAgent.js: (WebInspector.DOMNode): (WebInspector.DOMNode.prototype.inShadowTree): (WebInspector.DOMNode.prototype._setShadowRootPayload): (WebInspector.DOMNode.prototype._renumber): (WebInspector.DOMAgent.prototype._bindNodes): (WebInspector.DOMAgent.prototype.querySelectorAll): (WebInspector.DOMAgent.prototype._shadowRootUpdated): (WebInspector.DOMDispatcher.prototype.searchResults): (WebInspector.DOMDispatcher.prototype.shadowRootUpdated): * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel): (WebInspector.ElementsPanel.prototype._nodeUpdated): (WebInspector.ElementsPanel.prototype._attributesUpdated): (WebInspector.ElementsPanel.prototype._nodeRemoved): (WebInspector.ElementsPanel.prototype.updateModifiedNodes): (WebInspector.ElementsPanel.prototype.updateBreadcrumb): * inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeElement): (WebInspector.ElementsTreeElement.prototype._updateChildren.updateChildrenOfNode): (WebInspector.ElementsTreeElement.prototype._updateChildren): (): * inspector/front-end/inspector.css: (#elements-content .dom-shadow-root): (.outline-disclosure li .webkit-html-tag.shadow): * inspector/front-end/utilities.js: 2011-05-03 Adam Roben <aroben@apple.com> Remove an unnecessary OwnPtr equality check in XSLT code Fixes <http://webkit.org/b/60053> Testing OwnPtrs for equality should cause a compiler error Reviewed by Anders Carlsson and Antti Koivisto. * dom/Document.cpp: (WebCore::Document::setTransformSource): No need to check for equality. If the pointers are equal, we're screwed anyway. (And the caller always passes in a newly-allocated object, so we're safe.) 2011-05-04 Leandro Gracia Gil <leandrogracia@chromium.org> Reviewed by Tony Gentilcore. Media Stream API: add the skeleton of the frame and page controllers and the embedder client. https://bugs.webkit.org/show_bug.cgi?id=56922 Add the basic outlines of the page controller, the per-frame controller and the embedder client interface for the Media Stream API. Provide methods to handle the situations where a frame is detached from the page or transferred between pages. Tests for the Media Stream API will be provided by the bug 56587. * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/Frame.cpp: (WebCore::Frame::Frame): (WebCore::Frame::~Frame): (WebCore::Frame::pageDestroyed): (WebCore::Frame::transferChildFrameToNewDocument): * page/Frame.h: (WebCore::Frame::mediaStreamFrameController): * page/MediaStreamClient.h: Added. (WebCore::MediaStreamClient::~MediaStreamClient): * page/MediaStreamController.cpp: Added. (WebCore::MediaStreamController::Request::Request): (WebCore::MediaStreamController::Request::localId): (WebCore::MediaStreamController::Request::frameController): (WebCore::MediaStreamController::MediaStreamController): (WebCore::MediaStreamController::~MediaStreamController): (WebCore::MediaStreamController::unregisterFrameController): (WebCore::MediaStreamController::registerRequest): * page/MediaStreamController.h: Added. * page/MediaStreamFrameController.cpp: Added. (WebCore::MediaStreamFrameController::Request::Request): (WebCore::MediaStreamFrameController::Request::~Request): (WebCore::MediaStreamFrameController::Request::scriptExecutionContext): (WebCore::MediaStreamFrameController::Request::isGenerateStreamRequest): (WebCore::MediaStreamFrameController::Request::isRecordedDataRequest): (WebCore::MediaStreamFrameController::RequestMap::abort): (WebCore::MediaStreamFrameController::RequestMap::abortAll): (WebCore::MediaStreamFrameController::MediaStreamFrameController): (WebCore::MediaStreamFrameController::~MediaStreamFrameController): (WebCore::MediaStreamFrameController::securityOrigin): (WebCore::MediaStreamFrameController::scriptExecutionContext): (WebCore::MediaStreamFrameController::pageController): (WebCore::MediaStreamFrameController::enterDetachedState): (WebCore::MediaStreamFrameController::disconnectPage): (WebCore::MediaStreamFrameController::disconnectFrame): (WebCore::MediaStreamFrameController::transferToNewPage): * page/MediaStreamFrameController.h: Added. * page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::PageClients::PageClients): * page/Page.h: (WebCore::Page::mediaStreamController): 2011-05-04 Alexander Pavlov <apavlov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: Double-click in a read-only style rule results in a non-editable blank property https://bugs.webkit.org/show_bug.cgi?id=60150 * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceDoubleClick): 2011-05-04 Dominic Battre <battre@chromium.org> Reviewed by Tony Gentilcore. Fix missing header in case SVG is disabled https://bugs.webkit.org/show_bug.cgi?id=60153 * dom/EventDispatcher.cpp: 2011-05-04 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Rename CSSStyleApplyProperty::propertyValue and setPropertyValue. https://bugs.webkit.org/show_bug.cgi?id=60006 No new tests as no functionality added. Simple rename only. * css/CSSStyleApplyProperty.cpp: Rename propertyValue propertyHandler and setPropertyValue setPropertyHandler. * css/CSSStyleApplyProperty.h: Rename propertyValue propertyHandler and setPropertyValue setPropertyHandler. 2011-05-04 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Eric Seidel. Cleanup conditionals in findNextLineBreak https://bugs.webkit.org/show_bug.cgi?id=60117 Simplified conditional statements in findNextLineBreak. * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::findNextLineBreak): 2011-05-04 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Make CSSStyleSelector::applyProperty() CSSPropertyWebkitHyphens case use appropriate macro. https://bugs.webkit.org/show_bug.cgi?id=60114 No new tests as no functionality changes. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Use HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro to remove code duplication. 2011-05-04 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> Reviewed by Andreas Kling. [Qt] Fix QNetworkReplyWrapper to not depend on QNetworkReply::isFinished() method https://bugs.webkit.org/show_bug.cgi?id=59070 Applications using our API and our autotests subclass QNetworkReply as part of providing a custom QNetworkAccessManager. But there's an API limitation in Qt 4.7, that makes QNetworkReply::isFinished() always be false for these custom replies. This was fixed in Qt 4.8, see http://bugreports.qt.nokia.com/browse/QTBUG-11737. The consequence is that QtWebKit cannot rely on this function. So now QNetworkReplyWrapper watches for the finished() signal and set a dynamic property "_q_isFinished" on the reply indicating that it is finished. When there's no finished signal (synchronous) we set the dynamic property once we get the reply. This fixes tst_QWebFrame::requestedUrl(), that was breaking because sniffer was not emitting its own finished() signal, causing QWebFrame::loadFinished() to not be emitted. * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper): Connect the finished signal to the new setFinished() slot. (WebCore::QNetworkReplyWrapper::synchronousLoad): Since we don't get the finished signal for synchronous loads, set the dynamic property before processing it. (WebCore::QNetworkReplyWrapper::resetConnections): Do not reset the connection to setFinished(). (WebCore::QNetworkReplyWrapper::setFinished): Set the dynamic property in the reply. (WebCore::QNetworkReplyWrapper::emitMetaDataChanged): (WebCore::QNetworkReplyHandler::start): Change to use wrapper's isFinished() instead of asking the reply directly. * platform/network/qt/QNetworkReplyHandler.h: (WebCore::QNetworkReplyWrapper::isFinished): Checks the dynamic property of the reply. * platform/network/qt/QtMIMETypeSniffer.cpp: (QtMIMETypeSniffer::sniff): Use the dynamic property to check if the reply is finished. 2011-05-04 Eric Seidel <eric@webkit.org> Reviewed by Ryosuke Niwa. Split createLineBoxesFromBidiRuns out from layoutRunsAndFloats https://bugs.webkit.org/show_bug.cgi?id=60080 No functional change, just moving code. * rendering/RenderBlock.h: * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::createLineBoxesFromBidiRuns): (WebCore::RenderBlock::layoutRunsAndFloats): 2011-05-04 Andreas Kling <andreas.kling@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Remove unused function FontPlatformData::pixelSize() https://bugs.webkit.org/show_bug.cgi?id=60156 * platform/graphics/qt/FontPlatformData.h: (WebCore::FontPlatformData::pixelSize): Removed. 2011-05-04 Luke Macpherson <macpherson@chromium.org> Reviewed by Darin Adler. Remove redundant conversion from auto table layout to auto table layout in CSSStyleSelector::applyProperty() https://bugs.webkit.org/show_bug.cgi?id=60011 No new tests added as no functionality changed. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Remove reundant check for auto table layout. 2011-05-04 Mihai Parparita <mihaip@chromium.org> Reviewed by Darin Adler. Remove double-free checks for bug 56124 https://bugs.webkit.org/show_bug.cgi?id=60037 Antti's speculative fix for bug 56124 (r84151) appears to have worked, these CRASH() calls are not triggering anymore. * css/CSSSelector.h: (WebCore::CSSSelector::CSSSelector): (WebCore::CSSSelector::~CSSSelector): * css/CSSSelectorList.cpp: (WebCore::CSSSelectorList::deleteSelectors): 2011-05-04 Satish Sampath <satish@chromium.org> Reviewed by Tony Gentilcore. Layout the speech input button to the left of outer spin button properly. https://bugs.webkit.org/show_bug.cgi?id=59742 * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::layout): 2011-05-04 Yury Semikhatsky <yurys@chromium.org> Unreviewed. Build fix. * bindings/js/JSInjectedScriptHostCustom.cpp: fix includes declaration 2011-05-03 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: can't inspect element in an iframe when element originates from non-frame document https://bugs.webkit.org/show_bug.cgi?id=60031 Inspected object type evaluation has moved into native bindings. This way it doesn't depend on the current JS context. Test: inspector/elements/elements-inspect-iframe-from-different-domain.html * bindings/js/JSInjectedScriptHostCustom.cpp: (WebCore::JSInjectedScriptHost::isHTMLAllCollection): this method helps distinguish real undefined values from HTMLAllCollection (WebCore::JSInjectedScriptHost::type): method that returns presice type of the passed value * bindings/v8/custom/V8InjectedScriptHostCustom.cpp: (WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallback): (WebCore::V8InjectedScriptHost::typeCallback): * inspector/InjectedScriptHost.idl: * inspector/InjectedScriptSource.js: (.): 2011-05-03 Pratik Solanki <psolanki@apple.com> Reviewed by Antti Koivisto. Part of WebCore should use CFNetwork-based loader on Mac https://bugs.webkit.org/show_bug.cgi?id=51836 Merge the conflicting definitions of WebCore::privateBrowsingCookieStorage() into one. Clean up some warnings and #if USE(CFNETWORK) around code. * platform/mac/CookieJar.mm: * platform/network/CookieStorage.h: * platform/network/cf/CookieStorageCFNet.cpp: (WebCore::privateBrowsingCookieStorage): (WebCore::currentCookieStorage): (WebCore::setCurrentCookieStorage): (WebCore::setCookieStoragePrivateBrowsingEnabled): (WebCore::notifyCookiesChangedOnMainThread): (WebCore::notifyCookiesChanged): * platform/network/cf/CookieStorageCFNet.h: * platform/network/mac/CookieStorageMac.mm: 2011-05-03 Justin Novosad <junov@chromium.org> Reviewed by Kenneth Russell. [Chromium] Make accelerated 2d canvas enabled by default with skia https://bugs.webkit.org/show_bug.cgi?id=59929 No new tests. Covered by existing layout tests * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): Initialized for accelerated canvas if either the accelerated2dCanvas or the legacyAccelerated2dCanvas flags are enabled * page/Page.cpp: (WebCore::Page::sharedGraphicsContext3D): This is where the code goes to implement the functionality for the legacy vs current acceleration paths for the 2D canvas. Currently, this is a no-op, and always select the legacy path. This is temporary until we are ready to sort the GPU layout tests (rebasline vs. bug) * page/Settings.cpp: Added new flage for legacyAccelerated2dCanvas (WebCore::Settings::Settings): (WebCore::Settings::setLegacyAccelerated2dCanvasEnabled): * page/Settings.h: (WebCore::Settings::legacyAccelerated2dCanvasEnabled): 2011-04-29 Jer Noble <jer.noble@apple.com> Reviewed by Eric Seidel. Implement FULLSCREEN_API on Windows, Part 4: Enable it https://bugs.webkit.org/show_bug.cgi?id=59798 * WebCore.vcproj/WebCore.vcproj: Add missing full screen related files to the project. 2011-05-03 Alpha Lam <hclam@chromium.org> Not reviewed. Build fix. More places from 0 to nullptr. * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::precompileScript): * platform/graphics/chromium/LayerTilerChromium.cpp: (WebCore::LayerTilerChromium::create): * platform/graphics/gpu/BicubicShader.cpp: (WebCore::BicubicShader::create): * platform/graphics/gpu/ConvolutionShader.cpp: (WebCore::ConvolutionShader::create): * platform/graphics/gpu/LoopBlinnSolidFillShader.cpp: (WebCore::LoopBlinnSolidFillShader::create): * platform/graphics/gpu/SolidFillShader.cpp: (WebCore::SolidFillShader::create): * platform/graphics/gpu/TexShader.cpp: (WebCore::TexShader::create): * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::~PlatformContextSkia): * platform/leveldb/LevelDBDatabase.cpp: (WebCore::LevelDBDatabase::createIterator): * platform/text/LocalizedNumberICU.cpp: (WebCore::createFormatterForCurrentLocale): 2011-05-03 Alpha Lam <hclam@chromium.org> Not reviewed. Build fix. Using nullptr instead of 0. This makes visual studio happy. * storage/IDBTransactionBackendInterface.h: 2011-05-03 Luke Macpherson <macpherson@chromium.org> Reviewed by Dimitri Glazkov. Add template parameter to ApplyPropertyColor to improve clarity by removing constructor parameter side effects. https://bugs.webkit.org/show_bug.cgi?id=59774 No new tests required as on new functionality. * css/CSSStyleApplyProperty.cpp: (WebCore::ApplyPropertyColor::applyValue): Added template parameter "inheritColorFromParent = false". (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Use template parameter where appropriate. 2011-05-03 Dan Bernstein <mitz@apple.com> Reviewed by Darin Adler. <rdar://problem/9313186> Make the fix for <rdar://problem/9190108> more robust. Added a pointer from FloatingObject to its originating line, if there is one, and made sure to dirty the line when the float is removed, instead of relying on the float always intersecting its originating line. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::removeFloatingObject): (WebCore::RenderBlock::removeFloatingObjectsBelow): (WebCore::RenderBlock::clearFloats): * rendering/RenderBlock.h: (WebCore::RenderBlock::FloatingObject::FloatingObject): * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::appendFloatingObjectToLastLine): (WebCore::RenderBlock::layoutRunsAndFloats): (WebCore::RenderBlock::determineStartPosition): 2011-05-02 Jer Noble <jer.noble@apple.com> Reviewed by Adam Roben. Implement FULLSCREEN_API on Windows, Part 3: WebKit2 https://bugs.webkit.org/show_bug.cgi?id=59845 Move WebFullScreenController into WebCore to facilitate code sharing between WebKit and WebKit2. WebFullScreenController now uses a Client class to request work on its behalf by WebKit and WebKit2. MediaPlayerPrivateFullscreenWindow now only creates a CALayerHost once a root layer is set, as the CALayerHost was causing child window drawing problems, and because a CALayerHost is overkill if the window is only drawing black to its client area. * WebCore.vcproj/WebCore.vcproj: * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: (WebCore::MediaPlayerPrivateFullscreenWindow::MediaPlayerPrivateFullscreenWindow): Do not create m_layerHost in the constructor. (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow): NULL check m_layerHost. (WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer): Lazily instantiate m_layerHost. (WebCore::MediaPlayerPrivateFullscreenWindow::wndProc): NULL check m_layerHost; if a root layer is not present, fill the window with black in WM_PAINT. * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: * platform/graphics/win/FullScreenController.cpp: Renamed from Source/WebKit/win/WebFullScreenController.cpp. * platform/graphics/win/FullScreenController.h: Renamed from Source/WebKit/win/WebFullScreenController.h. * platform/graphics/win/FullScreenControllerClient.h: Split out from FullScreenController.h (WebCore::FullScreenControllerClient::~FullScreenControllerClient): 2011-05-03 Brady Eidson <beidson@apple.com> Reviewed by Sam Weinig. https://bugs.webkit.org/show_bug.cgi?id=60087 and <rdar://problem/9373182> WK2 Icon Database should provide access to all image representations in the icon. Add an accessor for CG platforms to get a CFArrayRef of all the CGImageRefs represented: * platform/graphics/BitmapImage.h: * platform/graphics/Image.h: (WebCore::Image::getCGImageArray): * platform/graphics/cg/ImageCG.cpp: (WebCore::BitmapImage::getCGImageArray): 2011-05-03 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Eric Seidel. findNextLineBreak splits InlineIterator into 3 pieces https://bugs.webkit.org/show_bug.cgi?id=60082 Avoid splitting InlineIterator into 3 variables with inter-dependencies. * rendering/InlineIterator.h: (WebCore::InlineIterator::fastIncrementInTextNode): Added. (WebCore::InlineIterator::previousInSameNode): Added. * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::findNextLineBreak): 2011-05-03 Dean Jackson <dino@apple.com> Reviewed by Simon Fraser. Interrupted transitions are not correctly removed https://bugs.webkit.org/show_bug.cgi?id=60062 CompositeAnimation was replacing any existing transition as a new one was created. However, it wasn't clearing the lists in AnimationControllerPrivate that signal when a hardware animation starts. Rather than simple removing the existing transition, we now tell AnimationControllerPrivate that is has gone. Test: transitions/3d/interrupted-transition.html * page/animation/CompositeAnimation.cpp: (WebCore::CompositeAnimation::updateTransitions): 2011-05-03 Enrica Casucci <enrica@apple.com> Reviewed by Ryosuke Niwa. Crash in SpellingCorrectionController::respondToChangedSelection. https://bugs.webkit.org/show_bug.cgi?id=60071 <rdar://problem/9358190> Creating a Visible position could trigger a layout and there is no guarantee that the selection is still valid after that. Tests: editing/selection/undo-crash.html * editing/SpellingCorrectionController.cpp: (WebCore::SpellingCorrectionController::respondToChangedSelection): 2011-05-03 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Refactor computeInlineDirectionPositionsForLine into smaller functions https://bugs.webkit.org/show_bug.cgi?id=60072 Split three functions off from computeInlineDirectionPositionsForLine to improve its readability. No new tests since this is just moving code around. * rendering/RenderBlock.h: * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::setMarginsForRubyRun): (WebCore::setLogicalWidthForTextRun): (WebCore::computeExpansionForJustifiedText): (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): 2011-05-03 David Kilzer <ddkilzer@apple.com> <http://webkit.org/b/59838> Implement HTTP pipelining for CoreFoundation-based networking Reviewed by Antti Koivisto. * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest): Set the priority on the request if HTTP pipelining is enabled. (WebCore::ResourceRequest::doUpdateResourceRequest): Read the priority from the request if HTTP pipelining is enabled. (readBooleanPreference): Enable code when compiling with USE(CFNETWORK). (WebCore::initializeMaximumHTTPConnectionCountPerHost): Ditto. Comment out setting the minimum fast lane priority on Windows since it's not currently available. 2011-05-03 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. <rdar://problem/9278296> Flicker zooming on Google Maps satellite view with accelerated compositing turned on Conditionalize compositing tiled layer size-constraining logic to older OSes. * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::constrainedSize): 2011-05-03 Roland Steiner <rolandsteiner@chromium.org> Reviewed by Dimitri Glazkov. Allow access keys to be used in shadow DOM https://bugs.webkit.org/show_bug.cgi?id=59979 Move access key methods and members back to Document from TreeScope. Also traverse into shadow trees when building the access key map. No new tests. (refactoring) * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::getElementByAccessKey): (WebCore::Document::buildAccessKeyMap): (WebCore::Document::invalidateAccessKeyMap): * dom/Document.h: * dom/TreeScope.cpp: (WebCore::TreeScope::TreeScope): (WebCore::TreeScope::destroyTreeScopeData): * dom/TreeScope.h: 2011-05-03 Dan Bernstein <mitz@apple.com> Reviewed by Darin Adler. <rdar://problem/8891395> -[DOMRange textRects] returns incorrect results for vertical or flipped text https://bugs.webkit.org/show_bug.cgi?id=60067 No test because this code path is only used by the Objective-C API, which is not testable from DumpRenderTree. * rendering/RenderText.cpp: (WebCore::RenderText::absoluteRectsForRange): Use width/height instead of logicalWidth/logicalHeight here, and perform the local-to-absolute mapping on the rects rather than their origin, in order to get the right results for flipped writing modes. 2011-05-03 Anton Muhin <antonm@chromium.org> Reviewed by Yury Semikhatsky. [v8] remove an ASSERT from grouping logic https://bugs.webkit.org/show_bug.cgi?id=60024 This ASSERT was exploratory. Alas, right now I am aware of no easy way to repro it. Removing for now for greener bots. No new tests, only an ASSERT removal. * bindings/v8/V8GCController.cpp: (WebCore::calculateGroupId): 2011-05-03 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Darin Adler. WebKit allows selection that crosses the shadow boundary of a readonly input element https://bugs.webkit.org/show_bug.cgi?id=60000 The bug was caused by VisibleSelection's not validating shadow DOM boundaries. Fixed the bug by adding an extra adjustment, adjustSelectionToAvoidCrossingShadowBoundaries, in its validation process. Tests: editing/selection/select-across-readonly-input-1.html editing/selection/select-across-readonly-input-2.html editing/selection/select-across-readonly-input-3.html editing/selection/select-across-readonly-input-4.html editing/selection/select-across-readonly-input-5.html * editing/VisibleSelection.cpp: (WebCore::VisibleSelection::validate): Calls adjustSelectionToAvoidCrossingShadowBoundaries. (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries): Added. * editing/VisibleSelection.h: 2011-05-03 Eric Seidel <eric@webkit.org> Reviewed by Ryosuke Niwa. Split out layoutRunsAndFloats from layoutInlineChildren https://bugs.webkit.org/show_bug.cgi?id=60052 No new tests, just moving code here. There should be no change in behavior. * rendering/RenderBlock.h: * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::layoutRunsAndFloats): (WebCore::RenderBlock::layoutInlineChildren): 2011-05-03 James Robinson <jamesr@chromium.org> Reviewed by Kenneth Russell. [chromium] Resizing a 2d canvas to huge dimensions after compositing crashes with accelerated 2d canvas option enabled https://bugs.webkit.org/show_bug.cgi?id=59965 Fixes a few bugs leading to a crash if a canvas already being composited was resized to huge dimensions. Test: fast/canvas/canvas-resize-after-paint.html * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::reset): Mark the canvas's layer as needing a synthetic style recalculation when creating or destroying the backing DrawingBuffer so that we exit compositing mode properly if we can't handle the canvas dimensions. * platform/graphics/chromium/Canvas2DLayerChromium.cpp: (WebCore::Canvas2DLayerChromium::setLayerRenderer): Add a null check for m_drawingBuffer * platform/graphics/gpu/DrawingBuffer.cpp: (WebCore::DrawingBuffer::clear): Avoid clearing the m_context pointer in reset() - we destroy the DrawingBuffer whenever reset() fails, so this is unnecessary. 2011-05-03 Adam Roben <aroben@apple.com> Fix most strict PassOwnPtr violations on Windows Fixes <http://webkit.org/b/60025> Windows should (almost) build with strict PassOwnPtr enabled Reviewed by Anders Carlsson. * loader/EmptyClients.h: * platform/GeolocationService.cpp: * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: * platform/mock/GeolocationServiceMock.cpp: * rendering/RenderTheme.cpp: * rendering/RenderThemeSafari.cpp: 2011-05-03 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Extract LineInfo class https://bugs.webkit.org/show_bug.cgi?id=60044 Created a LineInfo class in RenderBlockLineLayout.cpp that brings together the relevant layout information about a line. This simplifies function signatures and clears up initialization. No new tests as this is refactoring. * rendering/RenderBlock.h: Updated internal layout function signatures to use LineInfo. * rendering/RenderBlockLineLayout.cpp: (WebCore::LineInfo::LineInfo): (WebCore::LineInfo::isFirstLine): (WebCore::LineInfo::isLastLine): (WebCore::LineInfo::isEmpty): (WebCore::LineInfo::previousLineBrokeCleanly): (WebCore::LineInfo::setFirstLine): (WebCore::LineInfo::setLastLine): (WebCore::LineInfo::setEmpty): (WebCore::LineInfo::setPreviousLineBrokeCleanly): (WebCore::RenderBlock::createLineBoxes): (WebCore::RenderBlock::constructLine): (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): (WebCore::RenderBlock::layoutInlineChildren): (WebCore::RenderBlock::determineStartPosition): (WebCore::skipNonBreakingSpace): (WebCore::shouldCollapseWhiteSpace): (WebCore::requiresLineBox): Moved from RenderBlock.h and made it locally scoped to RenderBlockLineLayout.cpp (WebCore::RenderBlock::generatesLineBoxesForInlineChild): (WebCore::RenderBlock::skipTrailingWhitespace): (WebCore::RenderBlock::skipLeadingWhitespace): (WebCore::RenderBlock::findNextLineBreak): 2011-05-03 Roland Steiner <rolandsteiner@chromium.org> Reviewed by Dimitri Glazkov. Update node list cache count on the containing TreeScope rather than the Document https://bugs.webkit.org/show_bug.cgi?id=59983 Change code to call add/removeNodeListCache() and hasNodeListCaches() on the proper tree scope. Move updating of the node list cache count from setDocument() to setTreeScopeRecursively(). Make setDocument() and setDocumentRecursively() private. No new tests. (refactoring) * dom/ContainerNode.cpp: (WebCore::ContainerNode::childrenChanged): * dom/Node.cpp: (WebCore::Node::~Node): (WebCore::Node::setDocument): (WebCore::Node::setTreeScopeRecursively): (WebCore::Node::childNodes): (WebCore::Node::registerDynamicNodeList): (WebCore::Node::unregisterDynamicNodeList): (WebCore::Node::notifyLocalNodeListsAttributeChanged): (WebCore::Node::notifyLocalNodeListsChildrenChanged): (WebCore::Node::getElementsByTagName): (WebCore::Node::getElementsByTagNameNS): (WebCore::Node::getElementsByName): (WebCore::Node::getElementsByClassName): * dom/Node.h: * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::labels): 2011-05-03 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Eric Seidel. Bundle trailingSpaceObject and trailingPositionedBoxes in findNextLineBreak as a class https://bugs.webkit.org/show_bug.cgi?id=60046 Extracted TrailingObjects that encapsulates trailingSpaceObject and trailingPositionedBoxes. * rendering/RenderBlockLineLayout.cpp: (WebCore::TrailingObjects::TrailingObjects): (WebCore::TrailingObjects::setTrailingWhitespace): (WebCore::TrailingObjects::clear): (WebCore::TrailingObjects::appendBoxIfNeeded): (WebCore::TrailingObjects::addMidpoints): (WebCore::RenderBlock::findNextLineBreak): 2011-05-03 Igor Oliveira <igor.oliveira@openbossa.org> Reviewed by Eric Seidel. [Qt] Implement initial support to DataTransferItems https://bugs.webkit.org/show_bug.cgi?id=58448 Implement initial support to DataTransferItems. DataTransferItems are used to hold data for drag and drop operations. DataTransferItems hold a list of DataTransferItem objects each of which holds an item being dragged. * WebCore.pro: * dom/DataTransferItems.idl: * editing/qt/EditorQt.cpp: (WebCore::Editor::newGeneralClipboard): * page/qt/EventHandlerQt.cpp: (WebCore::EventHandler::createDraggingClipboard): * platform/chromium/DataTransferItemsChromium.h: * platform/qt/ClipboardQt.cpp: (WebCore::Clipboard::create): (WebCore::ClipboardQt::ClipboardQt): (WebCore::ClipboardQt::items): * platform/qt/ClipboardQt.h: (WebCore::ClipboardQt::create): * platform/qt/DataTransferItemQt.cpp: Added. (WebCore::DataTransferItem::create): (WebCore::DataTransferItemQt::createFromPasteboard): (WebCore::DataTransferItemQt::create): (WebCore::DataTransferItemQt::DataTransferItemQt): (WebCore::DataTransferItemQt::getAsString): (WebCore::DataTransferItemQt::getAsFile): * platform/qt/DataTransferItemQt.h: Added. * platform/qt/DataTransferItemsQt.cpp: Copied from Source/WebCore/editing/qt/EditorQt.cpp. (WebCore::DataTransferItemsQt::create): (WebCore::DataTransferItemsQt::DataTransferItemsQt): (WebCore::DataTransferItemsQt::addPasteboardItem): * platform/qt/DataTransferItemsQt.h: Copied from Source/WebCore/editing/qt/EditorQt.cpp. 2011-05-03 Julien Chaffraix <jchaffraix@codeaurora.org> Reviewed by Dimitri Glazkov. Element:shadowRoot & Element::ensureShadowRoot should return ShadowRoot* https://bugs.webkit.org/show_bug.cgi?id=58703 No new tests, refactoring only. * dom/Element.cpp: (WebCore::Element::copyNonAttributeProperties): (WebCore::Element::insertedIntoDocument): (WebCore::Element::removedFromDocument): (WebCore::Element::insertedIntoTree): (WebCore::Element::removedFromTree): (WebCore::Element::attach): (WebCore::Element::detach): (WebCore::Element::recalcStyle): (WebCore::Element::shadowRoot): (WebCore::Element::ensureShadowRoot): (WebCore::Element::childrenChanged): * dom/Node.cpp: (WebCore::Node::setTreeScopeRecursively): (WebCore::shadowRoot): (WebCore::Node::setDocumentRecursively): (WebCore::NodeRendererFactory::findVisualParent): Updated all the call sites for shadowRoot and ensureShadowRoot in the 2 previous classes. * dom/Element.h: Updated 2 methods' signature to return a ShadowRoot*. * dom/ShadowRoot.h: Removed toShadowRoot as it is not used anymore. * html/HTMLDetailsElement.cpp: * html/HTMLSummaryElement.cpp: Added #include for ShadowRoot.h. 2011-05-03 Gyuyoung Kim <gyuyoung.kim@samsung.com> Reviewed by Kenneth Rohde Christiansen. [EFL] Implement mediaSliderTrack https://bugs.webkit.org/show_bug.cgi?id=59998 Implement paintMediaSliderTrack. * platform/efl/RenderThemeEfl.cpp: (WebCore::RenderThemeEfl::RenderThemeEfl): (WebCore::RenderThemeEfl::paintMediaSliderTrack): * platform/efl/RenderThemeEfl.h: 2011-05-03 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Pavel Feldman. WebInspector: [Chromium] Fix slowness of Summary view nodes expansion in detailed heap profiles. https://bugs.webkit.org/show_bug.cgi?id=60023 * inspector/front-end/DetailedHeapshotGridNodes.js: (WebInspector.HeapSnapshotConstructorNode): (WebInspector.HeapSnapshotConstructorNode.prototype._createNodesProvider): * inspector/front-end/HeapSnapshot.js: (WebInspector.HeapSnapshot.prototype.dispose): (WebInspector.HeapSnapshot.prototype.aggregates): (WebInspector.HeapSnapshot.prototype._buildAggregates): (WebInspector.HeapSnapshot.prototype._sortAggregateIndexes): (WebInspector.HeapSnapshot.prototype.createNodesProviderForClass): (WebInspector.HeapSnapshotFilteredOrderedIterator): (WebInspector.HeapSnapshotNodesProvider): * inspector/front-end/HeapSnapshotProxy.js: (WebInspector.HeapSnapshotProxy.prototype.aggregates): (WebInspector.HeapSnapshotProxy.prototype.createNodesProviderForClass): 2011-05-03 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Pavel Feldman. WebInspector: [Chromium] Hint user that to display retaining paths, an object entry must be clicked. https://bugs.webkit.org/show_bug.cgi?id=60029 * English.lproj/localizedStrings.js: * inspector/front-end/DetailedHeapshotView.js: (WebInspector.HeapSnapshotRetainingPathsList.prototype.reset): (WebInspector.DetailedHeapshotView.prototype._mouseClickInContainmentGrid): 2011-05-03 Beth Dakin <bdakin@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=60045 Scrollbar thumb sometimes leaves artifacts in the track after scrolling -and corresponding- <rdar://problem/9015376> When we're using WK_SCROLLBAR_PAINTER, the AppleScrollBarVariant default should always be ignored. * platform/mac/ScrollbarThemeMac.mm: (WebCore::updateArrowPlacement): 2011-05-03 David Hyatt <hyatt@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=60040 <rdar://problem/9261591> Links broken at iplanwebsites.com. Make sure that culledInlineAbsoluteQuads still does a translation of a 0,0 point to absolute coordinates so that the top left position is accurate. Added fast/inline/skipped-whitespace-client-rect.html * rendering/RenderInline.cpp: (WebCore::RenderInline::culledInlineAbsoluteQuads): 2011-05-03 Sam Weinig <sam@webkit.org> Fix chromium build. * page/Settings.cpp: 2011-05-02 Roland Steiner <rolandsteiner@chromium.org> Reviewed by Dimitri Glazkov. Bug 59974 - Update image map on the containing TreeScope rather than the Document https://bugs.webkit.org/show_bug.cgi?id=59974 No new tests. (reefactoring) * html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::parseMappedAttribute): (WebCore::HTMLMapElement::insertedIntoDocument): (WebCore::HTMLMapElement::removedFromDocument): * rendering/RenderImage.cpp: (WebCore::RenderImage::imageMap): 2011-05-03 Sam Weinig <sam@webkit.org> Fix chromium build. * loader/HistoryController.cpp: 2011-05-02 Roland Steiner <rolandsteiner@chromium.org> Reviewed by Dimitri Glazkov. Bug 59966 - Update ID hash on the containing TreeScope rather than the Document https://bugs.webkit.org/show_bug.cgi?id=59966 No new tests. (refactoring) * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::elementsFromAttribute): (WebCore::AccessibilityRenderObject::activeDescendant): * accessibility/AccessibilityRenderObject.h: (WebCore::AccessibilityRenderObject::isAccessibilityRenderObject): * css/CSSCursorImageValue.cpp: (WebCore::resourceReferencedByCursorElement): (WebCore::CSSCursorImageValue::~CSSCursorImageValue): (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): (WebCore::CSSCursorImageValue::cachedImage): * dom/DynamicNodeList.cpp: (WebCore::DynamicNodeList::itemWithName): * dom/Element.h: (WebCore::Element::updateId): * dom/Node.cpp: (WebCore::Node::querySelector): * html/FormAssociatedElement.cpp: (WebCore::FormAssociatedElement::insertedIntoTree): (WebCore::FormAssociatedElement::resetFormOwner): * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::dataList): * html/HTMLLabelElement.cpp: (WebCore::HTMLLabelElement::control): * rendering/svg/RenderSVGTextPath.cpp: (WebCore::RenderSVGTextPath::layoutPath): * svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler): * svg/SVGAltGlyphElement.cpp: (WebCore::SVGAltGlyphElement::glyphElement): * svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::requestImageResource): (WebCore::SVGFEImageElement::build): * svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::collectGradientAttributes): * svg/SVGMPathElement.cpp: (WebCore::SVGMPathElement::pathElement): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::collectPatternAttributes): * svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::collectGradientAttributes): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::getElementById): * svg/SVGTRefElement.cpp: (WebCore::SVGTRefElement::updateReferencedText): * svg/SVGTextPathElement.cpp: (WebCore::SVGTextPathElement::insertedIntoDocument): * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::buildPendingResource): (WebCore::SVGUseElement::hasCycleUseReferencing): (WebCore::SVGUseElement::expandUseElementsInShadowTree): * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::viewTarget): * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::eventBaseFor): (WebCore::SVGSMILElement::connectConditions): (WebCore::SVGSMILElement::targetElement): * xml/XPathFunctions.cpp: (WebCore::XPath::FunId::evaluate): 2011-05-03 Sam Weinig <sam@webkit.org> Fix chromium build. * css/StyleMedia.cpp: 2011-05-03 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. Prune #includes from FrameView.h (Part 1) https://bugs.webkit.org/show_bug.cgi?id=59957 * page/FrameView.h: Prune #includes. * accessibility/chromium/AXObjectCacheChromium.cpp: * page/win/FrameCGWin.cpp: * platform/Scrollbar.cpp: Add not necessary #includes. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h: Add now necessary forward declaration. 2011-05-03 Andrey Kosyakov <caseq@chromium.org> Reviewed by Dimitri Glazkov. [Chromium] toV8(Node*) will enter infinite recursion when called with a node of type SHADOW_ROOT_NODE https://bugs.webkit.org/show_bug.cgi?id=60026 Return a wrapper for Node in toV8(Node*) when called with a node of type SHADOW_ROOT_NODE instead of entering infinite recursion. * bindings/v8/custom/V8NodeCustom.cpp: (WebCore::toV8Slow): 2011-05-02 Adam Roben <aroben@apple.com> Take advantage of implicit conversion from nullptr_t to PassOwnPtr Fixes <http://webkit.org/b/59964> Implicit conversion from std::nullptr_t to PassOwnPtr doesn't work, but should Reviewed by Adam Barth. * bindings/js/ScheduledAction.cpp: * css/CSSStyleSelector.cpp: * css/MediaList.cpp: * css/MediaQueryMatcher.cpp: * css/SVGCSSStyleSelector.cpp: * dom/MessagePort.cpp: * html/InputType.cpp: * html/canvas/WebGLRenderingContext.cpp: * inspector/InspectorStyleSheet.cpp: * page/ContextMenuController.cpp: * page/Page.cpp: * platform/PlatformGestureRecognizer.cpp: * platform/PurgeableBuffer.h: * platform/graphics/ImageBuffer.h: * platform/leveldb/LevelDBDatabase.cpp: * platform/mac/PurgeableBufferMac.cpp: * platform/text/RegularExpression.cpp: * rendering/RenderTheme.cpp: * rendering/RenderThemeMac.mm: * rendering/style/RenderStyle.h: * rendering/style/SVGRenderStyleDefs.cpp: * rendering/style/ShadowData.cpp: * rendering/style/StyleRareInheritedData.cpp: * rendering/style/StyleRareNonInheritedData.cpp: * rendering/svg/RenderSVGResourcePattern.cpp: 2011-05-03 Pavel Feldman <pfeldman@google.com> Not reviewed: fix inspector status bar image glyph reference in network panel. * inspector/front-end/networkPanel.css: (.network-larger-resources-status-bar-item .glyph): 2011-05-03 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: rename BrowserDebugger agent to DOMDebugger. https://bugs.webkit.org/show_bug.cgi?id=60019 * inspector/CodeGeneratorInspector.pm: * inspector/Inspector.json: * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): * inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.XHRBreakpointsSidebarPane.prototype._setBreakpoint): (WebInspector.XHRBreakpointsSidebarPane.prototype._removeBreakpoint): (WebInspector.XHRBreakpointsSidebarPane.prototype._checkboxClicked): (WebInspector.EventListenerBreakpointsSidebarPane.prototype._setBreakpoint): (WebInspector.EventListenerBreakpointsSidebarPane.prototype._removeBreakpoint): * inspector/generate-inspector-idl: 2011-05-03 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: remove special logic for type of document.__proto__ https://bugs.webkit.org/show_bug.cgi?id=60014 Test: inspector/console/console-log-document-proto.html * inspector/InjectedScriptSource.js: removed unnecessary check nodeType === undefined 2011-05-03 Pavel Feldman <pfeldman@google.com> Not reviewed: fixed typo in inspector style. * inspector/front-end/inspector.css: (.status-bar-item > .glyph): 2011-05-03 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: revision history storage is too slow. https://bugs.webkit.org/show_bug.cgi?id=59939 It turns out that iterating localStorage keys is very expensive (results in slow inspector start), refactor revision history in order not to rely upon that operation. * inspector/front-end/Resource.js: (WebInspector.Resource): (WebInspector.Resource._resourceRevisionRegistry): (WebInspector.Resource.restoreRevisions.persist): (WebInspector.Resource.restoreRevisions): (WebInspector.Resource.persistRevision): (WebInspector.Resource.prototype._persistRevision): * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel.prototype._processCachedResources): (WebInspector.ResourceTreeModel.prototype._frameNavigated): 2011-05-03 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: combine toolbar icon images. https://bugs.webkit.org/show_bug.cgi?id=59931 * WebCore.gypi: * inspector/front-end/Images/auditsIcon.png: Removed. * inspector/front-end/Images/consoleIcon.png: Removed. * inspector/front-end/Images/elementsIcon.png: Removed. * inspector/front-end/Images/networkIcon.png: Removed. * inspector/front-end/Images/profilesIcon.png: Removed. * inspector/front-end/Images/resourcesIcon.png: Removed. * inspector/front-end/Images/scriptsIcon.png: Removed. * inspector/front-end/Images/timelineIcon.png: Removed. * inspector/front-end/Images/toolbarIcons.png: Added. * inspector/front-end/Images/toolbarIconsSmall.png: Added. * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.css: (.toolbar-icon): (#toolbar-dropdown .toolbar-icon): (.toolbar-item:active .toolbar-icon): (#toolbar-dropdown .toolbar-item:active .toolbar-icon): (.toolbar-item.elements .toolbar-icon): (.toolbar-item.resources .toolbar-icon): (#toolbar-dropdown .toolbar-item.resources .toolbar-icon): (.toolbar-item.network .toolbar-icon): (#toolbar-dropdown .toolbar-item.network .toolbar-icon): (.toolbar-item.scripts .toolbar-icon): (#toolbar-dropdown .toolbar-item.scripts .toolbar-icon): (.toolbar-item.timeline .toolbar-icon): (#toolbar-dropdown .toolbar-item.timeline .toolbar-icon): (.toolbar-item.profiles .toolbar-icon): (#toolbar-dropdown .toolbar-item.profiles .toolbar-icon): (.toolbar-item.audits .toolbar-icon): (#toolbar-dropdown .toolbar-item.audits .toolbar-icon): (.toolbar-item.console .toolbar-icon): (#toolbar-dropdown .toolbar-item.console .toolbar-icon): (.status-bar-item > .glyph): 2011-05-03 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: combine status bar button glyphs. https://bugs.webkit.org/show_bug.cgi?id=59885 * WebCore.gypi: * inspector/front-end/Images/breakpointsActivateButtonGlyph.png: Removed. * inspector/front-end/Images/breakpointsDeactivateButtonGlyph.png: Removed. * inspector/front-end/Images/clearConsoleButtonGlyph.png: Removed. * inspector/front-end/Images/consoleButtonGlyph.png: Removed. * inspector/front-end/Images/dockButtonGlyph.png: Removed. * inspector/front-end/Images/enableOutlineButtonGlyph.png: Removed. * inspector/front-end/Images/enableSolidButtonGlyph.png: Removed. * inspector/front-end/Images/excludeButtonGlyph.png: Removed. * inspector/front-end/Images/focusButtonGlyph.png: Removed. * inspector/front-end/Images/garbageCollectButtonGlyph.png: Removed. * inspector/front-end/Images/gearButtonGlyph.png: Removed. * inspector/front-end/Images/helpButtonGlyph.png: Removed. * inspector/front-end/Images/largerResourcesButtonGlyph.png: Removed. * inspector/front-end/Images/nodeSearchButtonGlyph.png: Removed. * inspector/front-end/Images/pauseOnExceptionButtonGlyph.png: Removed. * inspector/front-end/Images/percentButtonGlyph.png: Removed. * inspector/front-end/Images/prettyPrintButtonGlyph.png: Removed. * inspector/front-end/Images/recordButtonGlyph.png: Removed. * inspector/front-end/Images/recordToggledButtonGlyph.png: Removed. * inspector/front-end/Images/reloadButtonGlyph.png: Removed. * inspector/front-end/Images/statusBarButtonGlyphs.png: Added. * inspector/front-end/Images/undockButtonGlyph.png: Removed. * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.css: (.status-bar-item > .glyph): (#dock-status-bar-item .glyph): (body.detached #dock-status-bar-item .glyph): (#console-status-bar-item .glyph): (.clear-status-bar-item .glyph): (button.enable-toggle-status-bar-item .glyph): (button.enable-toggle-status-bar-item.toggled-on .glyph): (.scripts-pause-on-exceptions-status-bar-item .glyph): (.scripts-toggle-pretty-print-status-bar-item .glyph): (.toggle-breakpoints .glyph): (.toggle-breakpoints.toggled-on .glyph): (.resources-larger-resources-status-bar-item .glyph): (.timeline-filter-status-bar-item .glyph): (.garbage-collect-status-bar-item .glyph): (.record-profile-status-bar-item .glyph): (.record-profile-status-bar-item.toggled-on .glyph): (.heap-snapshot-status-bar-item .glyph): (.node-search-status-bar-item .glyph): (.percent-time-status-bar-item .glyph): (.focus-profile-node-status-bar-item .glyph): (.exclude-profile-node-status-bar-item .glyph): (.reset-profile-status-bar-item .glyph): (.delete-storage-status-bar-item .glyph): (.refresh-storage-status-bar-item .glyph): * inspector/front-end/inspector.js: 2011-05-02 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. Possible crash when removing elements with reflections https://bugs.webkit.org/show_bug.cgi?id=60009 RenderLayer's destructor deleted its z-order list Vector pointers before removing the reflection layer. However, the reflection cleanup code could call back into the RenderLayer to dirty z-order lists, so move reflection cleanup to before z-order vector deletion. The test crashes when run manually a few times with MallocScribble enabled, but I was not able to create a test that crashed reliably. Test: fast/reflections/remove-reflection-crash.html * rendering/RenderLayer.cpp: (WebCore::RenderLayer::~RenderLayer): 2011-05-02 Ian Henderson <ianh@apple.com> Reviewed by Dan Bernstein. CSS !important not respected by JavaScript https://bugs.webkit.org/show_bug.cgi?id=60007 The addParsedProperty and addParsedProperties methods were subtly different. The former did not check for !important before setting the given property. Change addParsedProperties to call addParsedProperty and move the relevant code. The one other caller of this method, in editing/markup.cpp, probably wanted this behavior anyway. Test: fast/css/important-js-override.html * css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::addParsedProperties): (WebCore::CSSMutableStyleDeclaration::addParsedProperty): 2011-05-02 Ben Wells <benwells@chromium.org> Reviewed by Simon Fraser. Cleanup variable usage in RenderObject.cpp paintOutline() https://bugs.webkit.org/show_bug.cgi?id=59911 No new tests for this, there should be no change in behaviour. * rendering/RenderObject.cpp: (WebCore::RenderObject::paintOutline): 2011-05-02 Ryosuke Niwa <rniwa@webkit.org> Reviewed by James Robinson. REGRESSION(r84672): showTree doesn't work for input/textarea elements https://bugs.webkit.org/show_bug.cgi?id=60001 When shadow is null, try retrieving the inner element of a render text control. * dom/Node.cpp: (WebCore::traverseTreeAndMark): 2011-05-02 Joseph Pecoraro <joepeck@webkit.org> Reviewed by David Kilzer. Respect fixed text-indent on ::-webkit-input-placeholder https://bugs.webkit.org/show_bug.cgi?id=59825 Test: fast/forms/input-placeholder-text-indent.html * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::paintPlaceholder): indent by a fixed text-indent size specified on the placeholder style. 2011-05-02 Eric Uhrhane <ericu@chromium.org> Reviewed by Eric Seidel. Some FileWriter progress events should be queued https://bugs.webkit.org/show_bug.cgi?id=50846 * fileapi/FileWriter.cpp: * fileapi/FileWriter.h: Create a new asynchronous Task [FileWriterCompletionEventTask] that will set readyState to DONE and fire off the right events. 2011-05-02 Jia Pu <jpu@apple.com> Reviewed by Alexey Proskuryakov. [Mac] Need to truncate the string sent to "Look Up … " menu item, if it's too long. https://bugs.webkit.org/show_bug.cgi?id=59836 <rdar://problem/9275983> * platform/DefaultLocalizationStrategy.cpp: (WebCore::truncatedStringForLookupMenuItem): (WebCore::DefaultLocalizationStrategy::contextMenuItemTagLookUpInDictionary): 2011-05-02 Brady Eidson <beidson@apple.com> Reviewed by Anders Carlsson. <rdar://problem/9340945> and https://bugs.webkit.org/show_bug.cgi?id=59973 In Aperture, a WebView might be dealloc'ed before it finishes loading. * WebCore.exp.in: * platform/RuntimeApplicationChecks.cpp: (WebCore::applicationIsAperture): Perform a com.apple.Aperture bundle check. * platform/RuntimeApplicationChecks.h: 2011-05-02 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. Avoid wasted cycles updating paths when popping the context stack https://bugs.webkit.org/show_bug.cgi?id=59967 CanvasRenderingContext2D has to map the current path through transforms whenever the context stack is popped, which creates a lot of platform path objects. Avoid extra work here when the path is empty, or when the transform is identity. * platform/graphics/cg/PathCG.cpp: (WebCore::Path::transform): 2011-05-02 Enrica Casucci <enrica@apple.com> Reviewed by Dan Bernstein. Text does not split on white space when typing to the edge of window. https://bugs.webkit.org/show_bug.cgi?id=59968 <rdar://problem/9112683> Test: editing/inserting/typing-at-end-of-line.html This is a regression introduced when we converted the line box tree to floating point in r78846. In findNextLineBreak, there was still one place where the character width was treated as int and truncated and we were inconsistent in the way we treated a character that did not fit entirely in the line. * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::findNextLineBreak): 2011-04-19 Adrienne Walker <enne@google.com> Reviewed by James Robinson. [chromium] Don't unnecessarily resize skia/cg canvases when painting in compositor https://bugs.webkit.org/show_bug.cgi?id=58907 Additionally, move the context save/restore logic to a place where it will reset the translation added in LayerTilerChromium. Test: compositing/repaint/same-size-invalidation.html * platform/graphics/chromium/ContentLayerChromium.cpp: (WebCore::ContentLayerPainter::paint): * platform/graphics/chromium/PlatformCanvas.cpp: (WebCore::PlatformCanvas::resize): (WebCore::PlatformCanvas::Painter::Painter): (WebCore::PlatformCanvas::Painter::~Painter): * platform/graphics/chromium/PlatformCanvas.h: 2011-05-02 Csaba Osztrogonác <ossy@webkit.org> Enable strict OwnPtr for Qt https://bugs.webkit.org/show_bug.cgi?id=59667 Unreviewed buildfix after r85343. * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3D::GraphicsContext3D): 2011-05-02 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r85483. http://trac.webkit.org/changeset/85483 https://bugs.webkit.org/show_bug.cgi?id=59958 Causes media test failures. (Requested by eric_carlson on #webkit). * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): (WebCore::HTMLMediaElement::prepareForLoad): (WebCore::HTMLMediaElement::seek): (WebCore::HTMLMediaElement::updatePlayState): * html/HTMLMediaElement.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation): (WebCore::MediaPlayerPrivateAVFoundation::resumeLoad): (WebCore::MediaPlayerPrivateAVFoundation::load): (WebCore::MediaPlayerPrivateAVFoundation::prepareToPlay): (WebCore::MediaPlayerPrivateAVFoundation::paint): (WebCore::MediaPlayerPrivateAVFoundation::duration): (WebCore::MediaPlayerPrivateAVFoundation::seeking): (WebCore::MediaPlayerPrivateAVFoundation::updateStates): (WebCore::MediaPlayerPrivateAVFoundation::hasAvailableVideoFrame): (WebCore::MediaPlayerPrivateAVFoundation::metadataLoaded): (WebCore::MediaPlayerPrivateAVFoundation::loadedTimeRangesChanged): (WebCore::MediaPlayerPrivateAVFoundation::timeChanged): (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): (WebCore::MediaPlayerPrivateAVFoundation::repaint): (WebCore::MediaPlayerPrivateAVFoundation::setPreload): * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): (WebCore::MediaPlayerPrivateAVFoundationObjC::videoLayerIsReadyToDisplay): (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerForURL): (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerForCacheResource): (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): (WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata): (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatus): (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): (WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus): (WebCore::MediaPlayerPrivateAVFoundationObjC::paint): (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): (WebCore::MediaPlayerPrivateAVFoundationObjC::sizeChanged): 2011-05-02 Adam Barth <abarth@webkit.org> Reviewed by David Levin. PLATFORM(MAC) should (almost!) build with strict PassOwnPtr https://bugs.webkit.org/show_bug.cgi?id=59924 * css/CSSGrammar.y: * platform/graphics/mac/SimpleFontDataMac.mm: - Memory management for the font cache is somewhat... complext. This will require some careful thought to sort out. 2011-05-02 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. showLineTree/showLineTreeForThis would make working with the line box tree easier https://bugs.webkit.org/show_bug.cgi?id=59662 Adding a showLineTree/showLineTreeForThis method to help visualize and debug the line tree. Also adding a missing showRenderTreeForThis method to RenderObject. No new tests since this is a debugging feature only and not compiled in release. * rendering/InlineBox.cpp: (WebCore::InlineBox::showLineTreeForThis): (WebCore::InlineBox::showLineTreeAndMark): (WebCore::InlineBox::showBox): (showLineTree): * rendering/InlineBox.h: * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::showLineTreeAndMark): * rendering/InlineFlowBox.h: * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::showBox): * rendering/InlineTextBox.h: * rendering/RenderBlock.cpp: (WebCore::RenderBlock::showLineTreeAndMark): * rendering/RenderBlock.h: * rendering/RenderObject.cpp: (WebCore::RenderObject::showRenderTreeForThis): (WebCore::RenderObject::showLineTreeForThis): (showTree): (showLineTree): * rendering/RenderObject.h: 2011-05-02 Dimitri Glazkov <dglazkov@chromium.org> Reviewed by Eric Carlson. REGRESSIONS (r71934): In standalone media documents, (double-)clicking the media element doesn’t play/pause https://bugs.webkit.org/show_bug.cgi?id=59917 Since default event handlers are not retargeted, we should always attempt ancestor traversal to find out whether the event. * html/MediaDocument.cpp: (WebCore::ancestorVideoElement): Added ancestor-traversing helper. (WebCore::MediaDocument::defaultEventHandler): Changed to use ancestorVideoElement. 2011-05-02 Sam Weinig <sam@webkit.org> Attempt to fix the Leopard build. * platform/graphics/FontPlatformData.h: * platform/graphics/mac/ComplexTextController.h: * platform/graphics/mac/ComplexTextControllerATSUI.cpp: * platform/mac/WebCoreSystemInterface.h: 2011-05-02 Tony Chang <tony@chromium.org> Reviewed by Kent Tamura. convert manual-tests/bugzilla-6821.html to a layout test https://bugs.webkit.org/show_bug.cgi?id=59404 Test: fast/css/hover-update.html * manual-tests/bugzilla-6821.html: Removed. 2011-05-02 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. Prune ApplicationServices.h out of the headers https://bugs.webkit.org/show_bug.cgi?id=59952 More forward declares are better. * html/canvas/CanvasRenderingContext2D.cpp: * html/canvas/CanvasRenderingContext2D.h: * platform/graphics/GlyphBuffer.h: * platform/graphics/cg/ImageBufferCG.cpp: * platform/graphics/cg/PDFDocumentImage.cpp: * platform/graphics/cg/PDFDocumentImage.h: * platform/graphics/mac/ComplexTextController.h: * platform/graphics/mac/ComplexTextControllerCoreText.cpp: * platform/graphics/mac/GlyphPageTreeNodeMac.cpp: * platform/mac/ScrollAnimatorMac.h: * platform/mac/ScrollAnimatorMac.mm: * platform/mac/ScrollbarThemeMac.h: * platform/mac/ScrollbarThemeMac.mm: * platform/mac/WebCoreNSStringExtras.h: * platform/mac/WebCoreSystemInterface.h: 2011-05-02 Dan Bernstein <mitz@apple.com> Reviewed by Simon Fraser. <rdar://problem/7972529> Images with percentage based height/max-height are missing when they are inside blocks inside tables https://bugs.webkit.org/show_bug.cgi?id=58006 * rendering/RenderBox.cpp: (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Expanded the scope of the fix for <http://webkit.org/b/15359> from r29039 to cover not just the case of a auto-or-percent-height table cell as the immediate containing block, but any case where all containing block ancestors up to and including a table cell are auto-or-percent height. 2011-05-02 Daniel Bates <dbates@webkit.org> Reviewed by Sam Weinig. Convert manual test onblur-remove.html to a DRT test; onblur-remove.html fails https://bugs.webkit.org/show_bug.cgi?id=59379 Move manual test onblur-remove.html to LayoutTests/fast/events. Test: fast/events/onblur-remove.html * manual-tests/onblur-remove.html: Removed. 2011-05-02 Sailesh Agrawal <sail@chromium.org> Reviewed by Dimitri Glazkov. Chromium Mac: Add scrollbar overlay drawing functions https://bugs.webkit.org/show_bug.cgi?id=59741 These functions are simply copied from WebCoreSystemInterface. These will be used to implement overlay scrollbars for Chromium Mac. No new tests, since this code is only enabled on future versions of Mac OS X. * WebCore.gypi: * platform/chromium/ScrollbarOverlayUtilitiesMac.h: Added. * platform/chromium/ScrollbarOverlayUtilitiesMac.mm: Added. (LookUpNSScrollerImpClass): (LookUpNSScrollerImpPairClass): (ScrollbarControlSizeToNSControlSize): (wkScrollbarPainterUsesOverlayScrollers): (wkScrollbarPainterIsHorizontal): (wkScrollbarPainterKnobAlpha): (wkScrollbarPainterSetOverlayState): (wkScrollbarPainterPaint): (wkScrollbarMinimumThumbLength): (wkScrollbarPainterSetDelegate): (wkScrollbarPainterTrackAlpha): (wkMakeScrollbarPainter): (wkScrollbarThickness): (wkScrollbarMinimumTotalLengthNeededForThumb): (wkVerticalScrollbarPainterForController): (wkHorizontalScrollbarPainterForController): (wkMakeScrollbarReplacementPainter): (wkSetPainterForPainterController): (wkSetScrollbarPainterControllerStyle): (wkScrollbarPainterKnobRect): (wkSetScrollbarPainterKnobAlpha): (wkSetScrollbarPainterTrackAlpha): (wkSetScrollbarPainterKnobStyle): (wkMakeScrollbarPainterController): (wkContentAreaScrolled): (wkContentAreaWillPaint): (wkMouseEnteredContentArea): (wkMouseExitedContentArea): (wkMouseMovedInContentArea): (wkWillStartLiveResize): (wkContentAreaResized): (wkWillEndLiveResize): (wkContentAreaDidShow): (wkContentAreaDidHide): (wkDidBeginScrollGesture): (wkDidEndScrollGesture): (wkScrollbarPainterForceFlashScrollers): (IsScrollbarOverlayAPIAvailable): 2011-05-02 Luke Macpherson <macpherson@chromium.org> Reviewed by Dimitri Glazkov. Implement Length based CSS properties in CSSStyleApplyProperty https://bugs.webkit.org/show_bug.cgi?id=59314 No new tests as no functionality changed. * css/CSSStyleApplyProperty.cpp: (WebCore::ApplyPropertyLength::ApplyPropertyLength): Added this class to handle all length types. Property specific behavior is handled through set of boolean parameters. (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Added calls to set up entries for the newly added length properties. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Remove property implementations mow implemented in CSSStyleApplyProperty. * css/CSSStyleSelector.h: (WebCore::CSSStyleSelector::rootElementStyle): Expose m_rootElementStyle via getter. 2011-05-02 Eric Carlson <eric.carlson@apple.com> Reviewed by Eric Seidel. HTMLMediaElement should not seek to time 0 when readyState reaches HAVE_METADATA https://bugs.webkit.org/show_bug.cgi?id=59828 No new tests required, no functional change because seeking to time zero before playback begins has no effect. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setReadyState): Don't seek to time 0 when readyState reaches HAVE_METADATA. 2011-05-02 Sam Weinig <sam@webkit.org> Reviewed by Gavin Barraclough. Fix extra whitespace in license in FocusDirection.h. * page/FocusDirection.h: 2011-05-02 Sam Weinig <sam@webkit.org> Reviewed by Adam Barth. Prune some #includes from DOMWindow.h https://bugs.webkit.org/show_bug.cgi?id=59907 * page/DOMWindow.cpp: (WebCore::DOMWindow::setSecurityOrigin): * page/DOMWindow.h: Remove #includes of SecurityOrigin and MessagePort by forward declaring and moving the SecurityOrigin setter to the .cpp file. Also adds EventTarget #include that was getting added by MessagePort.h. * bindings/js/JSCustomVoidCallback.cpp: * bindings/js/JSCustomXPathNSResolver.cpp: * bindings/js/JSDOMWindowCustom.h: * bindings/js/JSHistoryCustom.cpp: * bindings/js/ScriptController.h: * html/HTMLAnchorElement.cpp: * html/HTMLMediaElement.cpp: * html/parser/XSSFilter.cpp: * inspector/InspectorDOMStorageResource.cpp: * loader/MainResourceLoader.cpp: * page/DragController.cpp: * page/EventSource.cpp: * page/Location.cpp: * websockets/WebSocket.cpp: * xml/XSLTProcessorLibxslt.cpp: Add now missing SecurityOrigin.h #includes. 2011-05-02 Eric Carlson <eric.carlson@apple.com> Reviewed by Brady Eidson. The preload attribute of the video tag is not completely implemented https://bugs.webkit.org/show_bug.cgi?id=43673 <rdar://problem/7508322> Tested manually with manual-tests/media-elements/video-preload.html. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_havePreparedToPlay. (WebCore::HTMLMediaElement::prepareForLoad): Ditto. (WebCore::HTMLMediaElement::prepareToPlay): New, tell player to prepare to play. (WebCore::HTMLMediaElement::seek): Call prepareToPlay when preload is less than 'metadata' because we need to have media data loaded to seek. (WebCore::HTMLMediaElement::updatePlayState): Call prepareToPlay. * html/HTMLMediaElement.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation): Remove m_videoFrameHasDrawn and m_delayingLoad as they are no longer used. (WebCore::MediaPlayerPrivateAVFoundation::resumeLoad): Removed. (WebCore::MediaPlayerPrivateAVFoundation::load): Don't initialize m_videoFrameHasDrawn. Move all preload logic to setPreload, call it from here. (WebCore::MediaPlayerPrivateAVFoundation::prepareToPlay): Move all preload logic to setPreload, call it. (WebCore::MediaPlayerPrivateAVFoundation::duration): Don't cache duration = 0, it is unlikely to be correct and isn't worth caching. (WebCore::MediaPlayerPrivateAVFoundation::updateStates): Update for name change AVAssetStatus to AssetStatus. Create the AVPlayer once we know an asset is playable but preload is 'metadata'. Set networkState to 'idle' when the playback buffer is full because that is a signal that AVFoundation won't do any more IO. Set readyState to 'HAVE_CURRENT_DATA' when the first frame is available. (WebCore::MediaPlayerPrivateAVFoundation::metadataLoaded): Call tracksChanged so we cache width, height, hasVideo, etc. (WebCore::MediaPlayerPrivateAVFoundation::repaint): Don't set m_videoFrameHasDrawn, it is done in derived classes. (WebCore::MediaPlayerPrivateAVFoundation::setPreload): Centralize all logic about when to create AVAsset and AVPlayerItem here. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize m_videoFrameHasDrawn. (WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame): New, renamed from videoLayerIsReadyToDisplay. Return true if we have a layer with frames available or if we have painted a frame to the context. (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): New, create the AVAsset if necessary. (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForCacheResource): Ditto. (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Restructure logic. (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): New, create AVPlayerItem. (WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata): Correct logging. (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatus): Return "buffer full" when the buffer is full. (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): Get the duration from the AVAsset when we haven't allocated the AVPlayerItem yet so that we can return duration when we only have metadata. (WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus): Update for name change. (WebCore::MediaPlayerPrivateAVFoundationObjC::paint): Set m_videoFrameHasDrawn. (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Get attributes from AVAsset when when we haven't allocated the AVPlayerItem yet so that we can report attributes when we only have metadata. (WebCore::MediaPlayerPrivateAVFoundationObjC::sizeChanged): Guard against being called before we have allocated the AVPlayerItem. 2011-05-02 Philippe Normand <pnormand@igalia.com> Reviewed by Martin Robinson. [GTK] gdk_drawable_get_size() shouldn't be used with GTK+ >= 2.24 https://bugs.webkit.org/show_bug.cgi?id=59932 Use gdk_window_get_width() and gdk_window_get_height() if available, instead of the deprecated gdk_drawable_get_size(). No new tests, build fix only. * platform/gtk/WidgetRenderingContext.cpp: (WebCore::WidgetRenderingContext::WidgetRenderingContext): 2011-05-02 Eric Carlson <eric.carlson@apple.com> Reviewed by Brady Eidson. The preload attribute of the video tag is not completely implemented https://bugs.webkit.org/show_bug.cgi?id=43673 <rdar://problem/7508322> Test manually with manual-tests/media-elements/video-preload.html. * platform/graphics/mac/MediaPlayerPrivateQTKit.h: * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes): Add new "limit read-ahead" attribute when preload is not "auto". (WebCore::MediaPlayerPrivateQTKit::resumeLoad): Remove m_delayingLoad, we don't need it. (WebCore::MediaPlayerPrivateQTKit::load): Correct comment. (WebCore::MediaPlayerPrivateQTKit::prepareToPlay): Call setPreload('auto'). (WebCore::MediaPlayerPrivateQTKit::setPreload): Set new attribue if we already have a QTMovie. 2011-05-02 Eric Carlson <eric.carlson@apple.com> Reviewed by Brady Eidson. The preload attribute of the video tag is not completely implemented https://bugs.webkit.org/show_bug.cgi?id=43673 <rdar://problem/7508322> Manual test manual-tests/media-elements/video-preload.html added. * manual-tests/media-elements/video-preload.html: Added. New manual test for media element 'preload' attribute because it is not possible to detect if a media engine supports "preload=metadata" in a way that lets us have per-platform layout test results. 2011-05-01 Abhishek Arya <inferno@chromium.org> Reviewed by Eric Carlson. Regression(r74787): Media document mouse click and double-click events should be checked on target node only and not its descendants. https://bugs.webkit.org/show_bug.cgi?id=59886 * html/MediaDocument.cpp: (WebCore::MediaDocument::defaultEventHandler): 2011-05-01 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Polish CSP host and port matching https://bugs.webkit.org/show_bug.cgi?id=59899 Finish last two details of host and port matching. I don't think the default port handling is testable with our current testing infrastructure. Tests: http/tests/security/contentSecurityPolicy/image-full-host-wildcard-allowed.html http/tests/security/contentSecurityPolicy/image-host-wildcard-allowed.html * page/ContentSecurityPolicy.cpp: (WebCore::CSPSource::hostMatches): (WebCore::CSPSource::portMatches): 2011-05-01 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. CSP default-src is missing https://bugs.webkit.org/show_bug.cgi?id=58641 Add support for default-src. The default-src provides a default policy for every directive that sends in "-src". If the more-specific directive is present, it takes precedence. I also took this opportunity to refactor the internals of ContentSecurityPolicy a bit to reduce duplicate code. Tests: http/tests/security/contentSecurityPolicy/default-src-inline-allowed.html http/tests/security/contentSecurityPolicy/default-src-inline-blocked.html http/tests/security/contentSecurityPolicy/script-src-overrides-default-src.html * page/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::didReceiveHeader): (WebCore::ContentSecurityPolicy::checkEval): (WebCore::ContentSecurityPolicy::operativeDirective): (WebCore::ContentSecurityPolicy::checkInlineAndReportViolation): (WebCore::ContentSecurityPolicy::checkEvalAndReportViolation): (WebCore::ContentSecurityPolicy::checkSourceAndReportViolation): (WebCore::ContentSecurityPolicy::allowJavaScriptURLs): (WebCore::ContentSecurityPolicy::allowInlineEventHandlers): (WebCore::ContentSecurityPolicy::allowInlineScript): (WebCore::ContentSecurityPolicy::allowInlineStyle): (WebCore::ContentSecurityPolicy::allowEval): (WebCore::ContentSecurityPolicy::allowScriptFromSource): (WebCore::ContentSecurityPolicy::allowObjectFromSource): (WebCore::ContentSecurityPolicy::allowChildFrameFromSource): (WebCore::ContentSecurityPolicy::allowImageFromSource): (WebCore::ContentSecurityPolicy::allowStyleFromSource): (WebCore::ContentSecurityPolicy::allowFontFromSource): (WebCore::ContentSecurityPolicy::allowMediaFromSource): (WebCore::ContentSecurityPolicy::addDirective): * page/ContentSecurityPolicy.h: 2011-05-01 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. Prune some unnecessary #includes https://bugs.webkit.org/show_bug.cgi?id=59895 Start getting rid of unnecessary #includes and forward declares. * bindings/js/JSDOMBinding.h: * bindings/js/JSDOMWindowBase.h: * bindings/js/JSDOMWindowShell.h: * bindings/js/ScheduledAction.cpp: * bindings/js/ScriptController.cpp: * bindings/js/ScriptController.h: * bindings/js/ScriptDebugServer.cpp: * editing/Editor.h: * inspector/InspectorClient.cpp: * loader/FrameLoader.h: * loader/NavigationScheduler.h: * page/Console.cpp: * xml/XMLTreeViewer.cpp: * xml/XMLTreeViewer.h: 2011-05-01 Patrick Gansterer <paroga@webkit.org> [WIN] Unreviewed buildfix after r85434. * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: (WebCore::MediaPlayerPrivate::createLayerForMovie): 2011-05-01 Patrick Gansterer <paroga@webkit.org> [WIN] Unreviewed buildfix after r85434. * platform/graphics/win/QTMovieVisualContext.cpp: (QTMovieVisualContext::QTMovieVisualContext): Added missing header. 2011-05-01 Justin Schuh <jschuh@chromium.org> Reviewed by Adam Barth. History::stateObjectAdded should check origin via SecurityOrigin::canRequest https://bugs.webkit.org/show_bug.cgi?id=59840 Tests: fast/loader/stateobjects/pushstate-in-data-url-denied.html http/tests/navigation/replacestate-base-illegal.html http/tests/navigation/replacestate-base-legal.html * page/History.cpp: (WebCore::History::stateObjectAdded): 2011-05-01 Patrick Gansterer <paroga@webkit.org> [WIN] Unreviewed buildfix after r85434. * platform/graphics/win/QTMovieVisualContext.cpp: (QTMovieVisualContext::QTMovieVisualContext): 2011-05-01 Patrick Gansterer <paroga@webkit.org> Reviewed by Adam Barth. [WINCE] Fix OwnPtr strict issues https://bugs.webkit.org/show_bug.cgi?id=59898 * page/wince/FrameWinCE.cpp: (WebCore::imageFromSelection): * platform/graphics/wince/FontPlatformData.cpp: (WebCore::FixedSizeFontData::create): (WebCore::FontPlatformPrivateData::FontPlatformData::hfont): (WebCore::FontPlatformPrivateData::FontPlatformData::getScaledFontHandle): (WebCore::FontPlatformPrivateData::FontPlatformData::discardFontHandle): * platform/graphics/wince/GraphicsContextWinCE.cpp: (WebCore::GraphicsContext::strokeArc): (WebCore::GraphicsContext::fillRect): (WebCore::GraphicsContext::clip): (WebCore::GraphicsContext::fillRoundedRect): (WebCore::GraphicsContext::drawRoundCorner): (WebCore::GraphicsContext::drawText): * platform/graphics/wince/ImageBufferWinCE.cpp: (WebCore::ImageBuffer::ImageBuffer): * platform/graphics/wince/ImageWinCE.cpp: (WebCore::BitmapImage::getHBITMAPOfSize): * platform/graphics/wince/SharedBitmap.cpp: (WebCore::SharedBitmap::SharedBitmap): 2011-05-01 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Eric Seidel. Get rid of versions of sendContextMenuEvent and eventMayStartDrag that takes NSEvent https://bugs.webkit.org/show_bug.cgi?id=59837 Removed EventHandler::sendContextMenuEvent(NSEvent*) and EventHandler::eventMayStartDrag(NSEvent*) * WebCore.exp.in: * page/EventHandler.h: * page/mac/EventHandlerMac.mm: 2011-05-01 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Eric Seidel. Move currentKeyboardEvent from EventHandlerMac.mm to WebHTMLView.mm https://bugs.webkit.org/show_bug.cgi?id=59835 Moved currentKeyboardEvent. * WebCore.exp.in: * page/EventHandler.h: * page/mac/EventHandlerMac.mm: 2011-05-01 ojab <ojab@ojab.ru> Reviewed by Eric Seidel. Fix build with --disable-video --enable-fullscreen-api https://bugs.webkit.org/show_bug.cgi?id=59698 * rendering/RenderTheme.h: (WebCore::RenderTheme::extraFullScreenStyleSheet): 2011-05-01 Jeff Timanus <twiz@chromium.org> Reviewed by Eric Seidel. Add solid-color checking to BitmapImage::checkForSolidColour in the skia port. https://bugs.webkit.org/show_bug.cgi?id=59041 Test:css2.1/t140201-c533-bgimage-00-a.html * platform/graphics/Image.cpp: (WebCore::Image::drawTiled): Removal of macro exclusion of assert for Skia path. * platform/graphics/skia/ImageSkia.cpp: (WebCore::BitmapImage::checkForSolidColor): 2011-05-01 Patrick Gansterer <paroga@webkit.org> Reviewed by Adam Barth. Fix OwnPtr strict issues in windows build https://bugs.webkit.org/show_bug.cgi?id=59878 * platform/graphics/ca/win/CACFLayerTreeHost.cpp: (WebCore::getDirtyRects): * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: (WebCore::MediaPlayerPrivateQuickTimeVisualContext::MediaPlayerPrivateQuickTimeVisualContext): * platform/graphics/win/WKCAImageQueue.cpp: (WebCore::WKCAImageQueue::WKCAImageQueue): * platform/win/CursorWin.cpp: (WebCore::createSharedCursor): * platform/win/PasteboardWin.cpp: (WebCore::Pasteboard::writeImage): 2011-05-01 Patrick Gansterer <paroga@webkit.org> Reviewed by Eric Seidel. Use PassOwnPtr as return value of GraphicsContext::createWindowsBitmap https://bugs.webkit.org/show_bug.cgi?id=59876 Also pass the size "as reference" instead of "as value". * platform/graphics/GraphicsContext.h: * platform/graphics/win/FontCGWin.cpp: (WebCore::drawGDIGlyphs): * platform/graphics/win/GraphicsContextWin.cpp: (WebCore::GraphicsContext::WindowsBitmap::WindowsBitmap): (WebCore::GraphicsContext::createWindowsBitmap): * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: (WebCore::MediaPlayerPrivate::paint): 2011-05-01 Emil A Eklund <eae@chromium.org> Reviewed by Eric Seidel. getComputedStyle() returns unitless values for some properties that require units https://bugs.webkit.org/show_bug.cgi?id=55111 Change getComputedStyle to return value with unit for -webkit-column-width, -webkit-column-gap and -webkit-perspective Test: fast/css/getComputedStyle/getComputedStyle-length-unit.html * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): 2011-05-01 Young Han Lee <joybro@company100.net> Reviewed by Eric Seidel. Change TEXMAP_OPENGL_ES2 to TEXMAP_OPENGL_ES_2 https://bugs.webkit.org/show_bug.cgi?id=59608 TEXMAP_OPENGL_ES2 is a wrong name. TEXMAP_OPENGL_ES_2 is already defined in TextureMapper.h No new functionality, no new tests. * platform/graphics/opengl/TextureMapperGL.cpp: (WebCore::TextureMapperGL::TextureMapperGL): 2011-05-01 Yael Aharon <yael.aharon@nokia.com> Reviewed by Eric Seidel. CSS3 nth-child(n) selector fails https://bugs.webkit.org/show_bug.cgi?id=56943 Regression from r75158. "n" is a valid parameter to nth() and should be allowed. Test: fast/css/nth-child-n.html * css/CSSParser.cpp: (WebCore::isValidNthToken): 2011-05-01 Pavel Feldman <pfeldman@chromium.org> Not reviewed: address stack frame scriptName -> url rename in timeline panel. * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails): (WebInspector.TimelinePanel.PopupContentHelper.prototype._appendStackTrace): 2011-05-01 Chris Fleizach <cfleizach@apple.com> Reviewed by Maciej Stachowiak. Crash in AccessibilityRenderObject while viewing PDFs in iframes https://bugs.webkit.org/show_bug.cgi?id=59629 Could not reproduce this crash, but it's quite clear how it could happen. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::accessibilityHitTest): 2011-05-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. LEAK: SVGElement leaks when detaching it in a pending resource state https://bugs.webkit.org/show_bug.cgi?id=59072 Make the pending resources set non-refcounted again. We made it refcounted a while ago to fix a security bug, as we had dangling pointers in the set in SVGDocumentExtensions. Fix the underlying problem, by removing all pending resources referencing to a particular SVGElement, upon its destruction or upon removing it from the document. Example: <rect fill="url(#foo)" id="rect"> When we try to render the rect, the foo paint server can't be found and thus "foo" will be added to the pending resource set, with "rect" as client. When "foo" appears, it would remove itself from the pending resource set, and a ref count to the "rect" would be released. If "foo" never appears, SVGDocumentExtensions still holds a ref to the <rect>, thus keeping it and the associated document alive. Tests: svg/custom/pending-resource-leak-2.svg svg/custom/pending-resource-leak-3.svg svg/custom/pending-resource-leak.svg These tests cover several scenarios where we used to leak. Should fix several SVG*Element leaks on the bots. I manually tested reloading above testcases dozens of times, before the leak count was incremented by 2 nodes on every reload, that's gone now. * rendering/svg/RenderSVGResourceContainer.cpp: (WebCore::RenderSVGResourceContainer::registerResource): * rendering/svg/RenderSVGShadowTreeRootContainer.cpp: (WebCore::RenderSVGShadowTreeRootContainer::updateFromElement): * rendering/svg/SVGResources.cpp: (WebCore::registerPendingResource): * svg/SVGDocumentExtensions.cpp: (WebCore::SVGDocumentExtensions::addPendingResource): (WebCore::SVGDocumentExtensions::hasPendingResources): (WebCore::SVGDocumentExtensions::removeElementFromPendingResources): (WebCore::SVGDocumentExtensions::removePendingResource): * svg/SVGDocumentExtensions.h: * svg/SVGElement.cpp: * svg/SVGElement.h: * svg/SVGElementRareData.h: (WebCore::SVGElementRareData::SVGElementRareData): (WebCore::SVGElementRareData::hasPendingResources): (WebCore::SVGElementRareData::setHasPendingResources): * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::~SVGStyledElement): (WebCore::SVGStyledElement::insertedIntoDocument): (WebCore::SVGStyledElement::removedFromDocument): (WebCore::SVGStyledElement::hasPendingResources): (WebCore::SVGStyledElement::setHasPendingResources): * svg/SVGStyledElement.h: (WebCore::SVGStyledElement::needsPendingResourceHandling): (WebCore::SVGStyledElement::buildPendingResource): * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::SVGUseElement): (WebCore::SVGUseElement::insertedIntoDocument): (WebCore::SVGUseElement::svgAttributeChanged): (WebCore::SVGUseElement::buildPendingResource): * svg/SVGUseElement.h: 2011-05-01 Rafael Brandao <rafael.lobo@openbossa.org> Reviewed by Csaba Osztrogonác. [Qt] build-webkit warning Inspector.idl is missing https://bugs.webkit.org/show_bug.cgi?id=59047 Added variable_out to pipe output from one compiler to another, and then forced the output to be added to the sources. * CodeGenerators.pri: 2011-05-01 Dan Bernstein <mitz@apple.com> Reviewed by Anders Carlsson. <rdar://problem/9155067> REGRESSION (float-based line boxes): Gaps and overlaps in selection highlight https://bugs.webkit.org/show_bug.cgi?id=56658 Test: fast/text/selection-rect-rounding.html * platform/graphics/FontFastPath.cpp: (WebCore::Font::selectionRectForSimpleText): Account for non-integral anchor point coordinates. * platform/graphics/mac/FontComplexTextMac.cpp: (WebCore::Font::selectionRectForComplexText): Ditto. * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::selectionRect): Floor the horizontal sides of the clip rect. (WebCore::InlineTextBox::paintSelection): Pass the logical left location to Font::selectionRectForText(), since it affects rounding. 2011-04-30 Justin Schuh <jschuh@chromium.org> Reviewed by Dirk Schulze. Make RenderSVGResourceFilter take ownership of filter data when painting https://bugs.webkit.org/show_bug.cgi?id=51524 Test: svg/custom/filter-on-svgimage.svg * rendering/svg/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::removeClientFromCache): (WebCore::RenderSVGResourceFilter::postApplyResource): * rendering/svg/RenderSVGResourceFilter.h: (WebCore::FilterData::FilterData): 2011-04-30 Martin Robinson <mrobinson@igalia.com> Reviewed by Adam Barth. Enable strict mode for OwnPtr and PassOwnPtr https://bugs.webkit.org/show_bug.cgi?id=59428 Fix assignments and .set() calls with OwnPtr to use adoptPtr. Have GeolocationService factory methods return a PassOwnPtr. No new tests. This should not change functionality. * platform/GeolocationService.cpp: (WebCore::createGeolocationServiceNull): (WebCore::GeolocationService::create): * platform/GeolocationService.h: * platform/android/GeolocationServiceAndroid.cpp: (WebCore::GeolocationServiceAndroid::create): * platform/android/GeolocationServiceAndroid.h: * platform/efl/GeolocationServiceEfl.cpp: (WebCore::GeolocationServiceEfl::create): * platform/efl/GeolocationServiceEfl.h: * platform/graphics/cairo/CairoUtilities.cpp: (WebCore::appendPathToCairoContext): * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::drawPathShadow): (WebCore::GraphicsContext::clip): * platform/graphics/cairo/ImageBufferCairo.cpp: (WebCore::ImageBuffer::ImageBuffer): * platform/graphics/cairo/OwnPtrCairo.h: * platform/graphics/cairo/PathCairo.cpp: (WebCore::Path::Path): (WebCore::Path::operator=): (WebCore::Path::apply): * platform/gtk/GeolocationServiceGtk.cpp: (WebCore::GeolocationServiceGtk::create): * platform/gtk/GeolocationServiceGtk.h: * platform/mock/GeolocationServiceMock.cpp: (WebCore::GeolocationServiceMock::create): * platform/mock/GeolocationServiceMock.h: 2011-04-30 Pavel Feldman <pfeldman@chromium.org> Not reviewed: inspector toolbar titles were 2px off. * inspector/front-end/inspector.css: (#toolbar-dropdown .toolbar-label): 2011-04-30 Mihai Parparita <mihaip@chromium.org> Reviewed by Eric Seidel. V8Proxy.h shouldn't include SecurityOrigin.h https://bugs.webkit.org/show_bug.cgi?id=59859 Remove SecurityOrigin.h #include from V8Proxy.h. Touching SecurityOrigin.h now rebuilds 234 targets instead of 638 (when building chromium's DumpRenderTree). * bindings/v8/NPV8Object.cpp: * bindings/v8/V8Proxy.cpp: * bindings/v8/V8Proxy.h: * css/CSSStyleSelector.cpp: * dom/XMLDocumentParserLibxml2.cpp: * html/HTMLLinkElement.cpp: * loader/SubframeLoader.cpp: * page/History.cpp: * storage/IDBFactory.cpp: * storage/StorageAreaImpl.cpp: 2011-04-29 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. CSP script-src should block eval https://bugs.webkit.org/show_bug.cgi?id=59850 Rather than have JavaScriptCore call back into WebCore to learn whether eval is enabled, we push that bit of the policy into JavaScriptCore. Tests: http/tests/security/contentSecurityPolicy/eval-allowed.html http/tests/security/contentSecurityPolicy/eval-blocked.html * bindings/js/ScriptController.cpp: (WebCore::ScriptController::disableEval): * bindings/js/ScriptController.h: * page/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::didReceiveHeader): (WebCore::ContentSecurityPolicy::internalAllowEval): (WebCore::ContentSecurityPolicy::allowEval): * page/ContentSecurityPolicy.h: 2011-04-29 Joseph Pecoraro <joepeck@webkit.org> GTK build fix. Missed moving DateComponents and adding LocalizedDate files for their build file. * GNUmakefile.list.am: 2011-04-29 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. style-src should block @style https://bugs.webkit.org/show_bug.cgi?id=59293 This patch blocks @style when style-src doesn't have the 'unsafe-inline' token. This patch blocks the parsing of the attribute itself. That feels vaguely like too low a level to interpose the policy, but there didn't seem to be anywhere else natural to enforce the policy. Tests: http/tests/security/contentSecurityPolicy/inline-style-attribute-allowed.html http/tests/security/contentSecurityPolicy/inline-style-attribute-blocked.html http/tests/security/contentSecurityPolicy/inline-style-on-html.html * dom/StyledElement.cpp: (WebCore::StyledElement::parseMappedAttribute): 2011-04-29 Joseph Pecoraro <joepeck@webkit.org> Reviewed by Kent Tamura. Allow Localized Date Strings for Date Input Fields https://bugs.webkit.org/show_bug.cgi?id=59752 Test: fast/forms/date-input-visible-strings.html * CMakeLists.txt: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: update build files for moving DateComponents from WebCore/html to WebCore/platform and adding the LocalizedDate files. * html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::serialize): (WebCore::BaseDateAndTimeInputType::serializeWithComponents): (WebCore::BaseDateAndTimeInputType::serializeWithMilliseconds): InputType::serialize for a double value with date types is different for the month type because it assumes the incoming value is months instead of msecs (matching valueAsNumber in HTML5). So provide a more general serialization function, serializeWithComponents, that will always serialize a string correctly for the current type but taking in a DateComponents object. The default serialize, and new serializeWithMilliseconds, can fall back to this and allows an override point for the month type. * html/MonthInputType.cpp: (WebCore::MonthInputType::serializeWithMilliseconds): the month type is a case where the default serialize does not take msec, so provide an implementation for month which handles msec input. * html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::setValueAsDate): switch to serializeWithMilliseconds as the incoming date value is msec. * html/MonthInputType.cpp: (WebCore::MonthInputType::setValueAsDate): removed. * html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::visibleValue): allow localized formatting of a date value. (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): allow parsing for a formatted date value. * html/BaseDateAndTimeInputType.h: * platform/DateComponents.cpp: Renamed from Source/WebCore/html/DateComponents.cpp. Expose the Type enum so it can be used outside of the DateComponents class. * platform/text/LocalizedDate.h: Added. * platform/text/LocalizedDateNone.cpp: Added. (WebCore::formatLocalizedDate): Default implementation falls back to existing HTML5 date input value formatting. * html/BaseDateAndTimeInputType.h: * html/DateInputType.cpp: (WebCore::DateInputType::dateType): * html/DateInputType.h: * html/DateTimeInputType.cpp: (WebCore::DateTimeInputType::dateType): * html/DateTimeInputType.h: * html/DateTimeLocalInputType.cpp: (WebCore::DateTimeLocalInputType::dateType): * html/DateTimeLocalInputType.h: * html/MonthInputType.cpp: (WebCore::MonthInputType::dateType): * html/MonthInputType.h: * html/TimeInputType.cpp: (WebCore::TimeInputType::dateType): * html/TimeInputType.h: * html/WeekInputType.cpp: (WebCore::WeekInputType::dateType): * html/WeekInputType.h: Accessors for the desired date type of a date input type. This allows the base class to write a generic algorithm. 2011-04-29 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. style-src should block inline style from <style> https://bugs.webkit.org/show_bug.cgi?id=59292 The spec has been updated to allow blocking of inline styles with style-src. This will help folks defend against tricky CSS3 injections. This patch covers the <style> case. The next patch will cover the @style case. Tests: http/tests/security/contentSecurityPolicy/inline-style-allowed.html http/tests/security/contentSecurityPolicy/inline-style-blocked.html * dom/StyleElement.cpp: (WebCore::StyleElement::createSheet): * page/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowInlineStyle): * page/ContentSecurityPolicy.h: 2011-04-29 Chris Evans <cevans@chromium.org> Reviewed by Adam Barth. Add WebCore::Setting to block displaying and/or running insecure content on secure pages https://bugs.webkit.org/show_bug.cgi?id=58378 Test: To follow in subsequent patch, including the wiring to expose the new settings to LayoutTests. * loader/FrameLoader.cpp: (WebCore::FrameLoader::checkIfDisplayInsecureContent): Return whether or not the load should be blocked, and tweak the message upon blocking. (WebCore::FrameLoader::checkIfRunInsecureContent): Return whether or not the load should be blocked, and tweak the message upon blocking. * loader/FrameLoader.h: * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::willSendRequest): Check if the frame load is blocked due to mixed content and cancel it if so. The check was moved up so that it occurs before firing the load callbacks, to avoid any outgoing network hits or accounting. Redirects are handled because willSendRequest is called for each one in the chain. * loader/SubframeLoader.cpp: (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin): Handle the blocking of mixed-content plug-in loads. (WebCore::SubframeLoader::loadPlugin): Handle the blocking of mixed-content plug-in loads. * loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::canRequest): Handle the blocking of various loads due to mixed content conditions. * page/Settings.cpp: (WebCore::Settings::Settings): Permit mixed-content loads by default to avoid a change in behavior by default. * page/Settings.h: Add two new booleans to control blocking of mixed content (displaying and running thereof). (WebCore::Settings::setAllowDisplayOfInsecureContent): (WebCore::Settings::allowDisplayOfInsecureContent): (WebCore::Settings::setAllowRunningOfInsecureContent): (WebCore::Settings::allowRunningOfInsecureContent): 2011-04-29 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Eric Seidel. Extract a function to obtain VisiblePosition from RenderText::positionForPoint https://bugs.webkit.org/show_bug.cgi?id=59811 Extracted lineDirectionPointFitsInBox from positionForPoint. * rendering/RenderText.cpp: (WebCore::lineDirectionPointFitsInBox): (WebCore::RenderText::positionForPoint): 2011-04-29 Geoffrey Garen <ggaren@apple.com> Reviewed by Alexey Proskuryakov. REGRESSION: r83938 abandons GC memory https://bugs.webkit.org/show_bug.cgi?id=59604 This bug was caused by script and image elements waiting indefinitely for their loads to finish. * bindings/js/JSNodeCustom.cpp: (WebCore::isReachableFromDOM): Don't test for the load event firing, since the load event doesn't fire in cases of canceled or errored loads. Instead, test hasPendingActivity(). Don't do this test at all for script elements because script elements can't load while outside the document. (fast/dom/script-element-gc.html verifies that this is correct.) * html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::hasPendingActivity): * html/HTMLImageElement.h: * loader/ImageLoader.cpp: (WebCore::ImageEventSender::hasPendingEvents): (WebCore::ImageLoader::hasPendingLoadEvent): * loader/ImageLoader.h: Added API for finding out if an image element has pending activity. * loader/cache/CachedResource.cpp: (WebCore::CachedResource::setRequest): All loads are supposed to end in data(allDataReceived = true) or error(), but in the edge case of a canceled load, all we get is a call to setRequest(0). Be sure to record that we're no longer loading in that case, otherwise our element will leak forever, waiting for its load to complete. 2011-04-29 Emil Eklund <eae@chromium.org> Reviewed by Tony Chang. Setting outerHTML should merge text nodes https://bugs.webkit.org/show_bug.cgi?id=52686 When setting outerHTML adjacent text nodes should be merged. This matches the behavior of outerText and the IE implementation of outerHTML. Test: fast/dom/set-outer-html.html * html/HTMLElement.cpp: (WebCore::mergeWithNextTextNode): Move function to before setOuterHTML. (WebCore::HTMLElement::setOuterHTML): Merge adjacent text nodes after replacing the element. 2011-04-29 Emil A Eklund <eae@chromium.org> Reviewed by Dimitri Glazkov. Onchange on text fields has an incoherent behavior https://bugs.webkit.org/show_bug.cgi?id=57330 * html/HTMLFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::insertedIntoDocument): Initialize m_textAsOfLastFormControlChangeEvent to empty string rather than null for empty fields. 2011-04-29 Csaba Osztrogonác <ossy@webkit.org> [Qt] Unreviewed buildfix after r85343. Enable strict OwnPtr for Qt https://bugs.webkit.org/show_bug.cgi?id=59667 * plugins/mac/PluginViewMac.mm: (WebCore::PluginView::platformStart): 2011-04-29 Jon Lee <jonlee@apple.com> Reviewed by mitzpettel. REGRESSION (WebKit2): (Mac) Selection is gone after switching tabs (59721) <rdar://problem/9327332> https://bugs.webkit.org/show_bug.cgi?id=59721 Removing shouldClearSelectionWhenLosingWebPageFocus(). Reverting changelist 83814. * WebCore.exp.in: * editing/EditingBehavior.h: 2011-04-29 Abhishek Arya <inferno@chromium.org> Reviewed by Dave Hyatt. Allow only first table caption and destroy the remaining ones. https://bugs.webkit.org/show_bug.cgi?id=58249 Previously, we were only laying out the first table caption. However Table::layout didn't mark the other ones as not needing layout. So after table layout completes, table is marked as not needing layout with its other table caption still needing layout. This causes incorrect layout root calculations and set it to a node which is already getting deleted. Tests: fast/table/dynamic-caption-add-before-child.xhtml fast/table/dynamic-caption-add-remove-before-child.xhtml fast/table/multiple-captions-crash.xhtml fast/table/multiple-captions-crash2.xhtml fast/table/multiple-captions-display.xhtml * rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): when new caption or a before child caption is added, we need to explicitly trigger section recalc or otherwise layout won't catch it. (WebCore::RenderTable::removeChild): when child to be removed is m_caption, make sure to trigger style recalc on the table. (WebCore::RenderTable::recalcCaption): code to destroy captions other than the first one. (WebCore::RenderTable::recalcSections): call recalcCaption helper. Store the next sibling early since child can get destroyed in recalcCaption. * rendering/RenderTable.h: 2011-04-29 David Kilzer <ddkilzer@apple.com> Remove WML https://bugs.webkit.org/show_bug.cgi?id=59678 * DerivedSources.make: Removed $(WebCore)/wml path in VPATH. 2011-04-29 James Robinson <jamesr@chromium.org> Unreviewed, rolling out r85330. http://trac.webkit.org/changeset/85330 https://bugs.webkit.org/show_bug.cgi?id=41311 Caused unexpected border rendering change on 500 tests on chromium linux. * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContext::drawConvexPolygon): (WebCore::GraphicsContext::clipConvexPolygon): 2011-04-29 Csaba Osztrogonác <ossy@webkit.org> [Qt] Unreviewed buildfix after r85343. Enable strict OwnPtr for Qt https://bugs.webkit.org/show_bug.cgi?id=59667 * plugins/win/PluginViewWin.cpp: (WebCore::PluginView::wndProc): (WebCore::PluginView::snapshot): 2011-04-29 Csaba Osztrogonác <ossy@webkit.org> Reviewed by Adam Barth. Enable strict OwnPtr for Qt https://bugs.webkit.org/show_bug.cgi?id=59667 * platform/graphics/qt/ImageBufferQt.cpp: (WebCore::ImageBufferData::ImageBufferData): (WebCore::ImageBuffer::ImageBuffer): * platform/graphics/qt/ImageDecoderQt.cpp: (WebCore::ImageDecoderQt::setData): * platform/graphics/qt/ImageDecoderQt.h: * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper): (WebCore::QNetworkReplyHandler::QNetworkReplyHandler): 2011-04-29 Dean Jackson <dino@apple.com> Reviewed by Simon Fraser. Add ENABLE macro for WebKitAnimation https://bugs.webkit.org/show_bug.cgi?id=59729 Add new feature to toggle WebKit Animation API. * Configurations/FeatureDefines.xcconfig: * GNUmakefile.am: * dom/Element.idl: * features.pri: * page/DOMWindow.idl: 2011-04-29 Dean Jackson <dino@apple.com> Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=59149 (Regression) Existing animations are not replaced when filling. Hardware animations that fill forwards were not being correctly replaced when the animation was removed. The actual animation logic was working correctly, but it wasn't deleting the CoreAnimation animation from the PlatformLayer. The fix was to explicitly call endAnimation when disconnecting the animation from its RenderObject. Test: animations/3d/replace-filling-transform.html * page/animation/AnimationBase.h: (WebCore::AnimationBase::clear): call endAnimation as the animation is cleared 2011-04-29 Abhishek Arya <inferno@chromium.org> Reviewed by Nikolas Zimmermann. When svg inline text is getting destroyed, make sure to mark its svg text ancestor as needing a positioning values update. This helps to recalculate layout attributes and makes sure that svg inline text is not used again. https://bugs.webkit.org/show_bug.cgi?id=59161 Test: svg/text/inline-text-destroy-attributes-crash.xhtml * rendering/svg/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::destroy): * rendering/svg/RenderSVGInlineText.h: 2011-04-29 Kevin Ollivier <kevino@theolliviers.com> [wx] Unreviewed build fix. Fix wxMSW trunk builds by adding include. * platform/graphics/wx/GraphicsContextWx.cpp: 2011-04-29 Mike Reed <reed@google.com> Reviewed by Ojan Vafai. Skia: Need to implement GraphicsContext::clipConvexPolygon() https://bugs.webkit.org/show_bug.cgi?id=41311 This does not (yet) enable HAVE_PATH_BASED_BORDER_RADIUS_DRAWING as that shows other issues/question unrelated to clipping. https://bugs.webkit.org/show_bug.cgi?id=41311 No new tests. covered by existing layout tests * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::setPathFromConvexPoints): (WebCore::GraphicsContext::drawConvexPolygon): (WebCore::GraphicsContext::clipConvexPolygon): 2011-04-29 Mike Lawther <mikelawther@chromium.org> Reviewed by Ojan Vafai. Fix IR->SR typo in enum value (and resulting style fails) https://bugs.webkit.org/show_bug.cgi?id=59779 No functionality change, so no new tests * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator EShapeRendering): 2011-04-29 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: CSS editing breaks when entering "color: rgb(1" https://bugs.webkit.org/show_bug.cgi?id=59789 Tests: inspector/styles/styles-add-invalid-property.html inspector/styles/styles-cancel-editing.html inspector/styles/styles-commit-editing.html * inspector/front-end/CSSStyleModel.js: (WebInspector.CSSProperty.prototype.setText.callback): (WebInspector.CSSProperty.prototype.setText): * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylePropertyTreeElement.prototype.selectElement): (WebInspector.StylePropertyTreeElement.prototype): (WebInspector.StylePropertyTreeElement.prototype.styleText.updateInterface.majorChange.isRevert.originalPropertyText): * inspector/front-end/inspector.js: (WebInspector.startEditing.defaultFinishHandler): (WebInspector.startEditing.keyDownEventListener): (WebInspector.startEditing): 2011-04-29 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed by Simon Hausmann. ENABLE(QT_BEARER) -> USE(QT_BEARER) * WebCore.pri: * WebCore.pro: * features.pri: * platform/network/NetworkStateNotifier.h: * platform/network/qt/NetworkStateNotifierQt.cpp: 2011-04-29 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed by Simon Hausmann. ENABLE(QT_USERAGENT_DEVICEMODEL) -> USE(QT_MOBILITY_SYSTEMINFO) * WebCore.pri: * features.pri: 2011-04-29 Pavel Podivilov <podivilov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: breakpoints set in original and formatted scripts are messed up after navigation. https://bugs.webkit.org/show_bug.cgi?id=59476 * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype.setFormatSourceFiles): (WebInspector.DebuggerPresentationModel.prototype._removeBreakpointFromDebugger): (WebInspector.PresentationBreakpoint.prototype.serialize): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.optionCompare): (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect): (WebInspector.ScriptsPanel.prototype.reset): 2011-04-28 Pavel Podivilov <podivilov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: include script end line:column in scriptParsed parameters. https://bugs.webkit.org/show_bug.cgi?id=59717 * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::dispatchDidParseSource): * bindings/v8/DebuggerScript.js: (): * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::dispatchDidParseSource): * inspector/Inspector.json: * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::resolveBreakpoint): (WebCore::InspectorDebuggerAgent::didParseSource): * inspector/InspectorDebuggerAgent.h: (WebCore::InspectorDebuggerAgent::Script::Script): * inspector/ScriptDebugListener.h: * inspector/front-end/DebuggerModel.js: (WebInspector.DebuggerModel.prototype._parsedScriptSource): (WebInspector.DebuggerModel.prototype._failedToParseScriptSource): (WebInspector.DebuggerDispatcher.prototype.scriptParsed): * inspector/front-end/Script.js: (WebInspector.Script): 2011-04-28 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: [protocol] Evaluate should expose thrown exception value https://bugs.webkit.org/show_bug.cgi?id=59000 Each evaluation command may have either thrown or returned result. This is indicated by wasThrown property in the protocol. * inspector/InjectedScript.cpp: (WebCore::InjectedScript::evaluate): (WebCore::InjectedScript::evaluateOn): (WebCore::InjectedScript::evaluateOnCallFrame): (WebCore::InjectedScript::getProperties): (WebCore::InjectedScript::makeEvalCall): * inspector/InjectedScript.h: * inspector/InjectedScriptSource.js: * inspector/Inspector.json: Removed "error" remote object type, added "wasThrown" property to the evaluation results. * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame): * inspector/InspectorDebuggerAgent.h: * inspector/InspectorRuntimeAgent.cpp: (WebCore::InspectorRuntimeAgent::evaluate): (WebCore::InspectorRuntimeAgent::evaluateOn): (WebCore::InspectorRuntimeAgent::getProperties): * inspector/InspectorRuntimeAgent.h: * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.completions.evaluated): (WebInspector.ConsoleView.prototype.evalInInspectedWindow): (WebInspector.ConsoleView.prototype._enterKeyPressed.printResult): (WebInspector.ConsoleView.prototype._enterKeyPressed): (WebInspector.ConsoleCommandResult): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.PresenationCallFrame.prototype.evaluate): * inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeElement.prototype._createTooltipForNode.setTooltip): * inspector/front-end/ExtensionPanel.js: (WebInspector.ExtensionSidebarPane.prototype._onEvaluate): * inspector/front-end/ExtensionServer.js: (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage): * inspector/front-end/ObjectPropertiesSection.js: (WebInspector.ObjectPropertyTreeElement.prototype.update): * inspector/front-end/PropertiesSidebarPane.js: (WebInspector.PropertiesSidebarPane.prototype.update.nodePrototypesReady): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._showPopup.showObjectPopup): (WebInspector.SourceFrame.prototype._showPopup): 2011-04-29 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r85315. http://trac.webkit.org/changeset/85315 https://bugs.webkit.org/show_bug.cgi?id=59792 Broke script-formatter.html test (Requested by podivilov on #webkit). * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype.setFormatSourceFiles): (WebInspector.DebuggerPresentationModel.prototype._removeBreakpointFromDebugger.didRemoveBreakpoint): (WebInspector.DebuggerPresentationModel.prototype._removeBreakpointFromDebugger): (WebInspector.PresentationBreakpoint.prototype.serialize): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.optionCompare): (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect): (WebInspector.ScriptsPanel.prototype.reset): 2011-04-29 Vsevolod Vlasov <vsevik@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Hyperlink Auditing (ping) requests are not shown in network panel https://bugs.webkit.org/show_bug.cgi?id=58794 Added ping requests to network panel. Test: http/tests/inspector/network/ping.html * English.lproj/localizedStrings.js: * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::continueAfterPingLoaderImpl): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::continueAfterPingLoader): * inspector/front-end/NetworkPanel.js: (WebInspector.NetworkDataGridNode.prototype.refreshResource): (WebInspector.NetworkDataGridNode.prototype._refreshStatusCell): (WebInspector.NetworkDataGridNode.prototype._refreshTypeCell): * inspector/front-end/Resource.js: (WebInspector.Resource.prototype.get formParameters): (WebInspector.Resource.prototype.requestContentType): (WebInspector.Resource.prototype.isPingRequest): * loader/PingLoader.cpp: (WebCore::PingLoader::PingLoader): * loader/PingLoader.h: 2011-04-28 Pavel Podivilov <podivilov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: breakpoints set in original and formatted scripts are messed up after navigation. https://bugs.webkit.org/show_bug.cgi?id=59476 * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype.toggleFormatSourceFiles): (WebInspector.DebuggerPresentationModel.prototype._removeBreakpointFromDebugger): (WebInspector.PresentationBreakpoint.prototype.serialize): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.optionCompare): (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect): (WebInspector.ScriptsPanel.prototype.reset): 2011-04-29 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: add "open link in new tab" action into the network and resources panels. https://bugs.webkit.org/show_bug.cgi?id=59788 This change also distinguishes context menu items case between platforms. * English.lproj/localizedStrings.js: * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype._handleContextMenuEvent): * inspector/front-end/DOMBreakpointsSidebarPane.js: (WebInspector.DOMBreakpointsSidebarPane): * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype._contextMenuEventFired): (WebInspector.ElementsPanel.prototype.populateHrefContextMenu): * inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu): (WebInspector.ElementsTreeElement.prototype._populateTextContextMenu): * inspector/front-end/NetworkPanel.js: (WebInspector.NetworkPanel.prototype._contextMenu): * inspector/front-end/ResourcesPanel.js: (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent): (WebInspector.FrameResourceTreeElement.prototype._appendSaveAsAction): (WebInspector.ResourceRevisionTreeElement.prototype._handleContextMenuEvent): * inspector/front-end/Settings.js: * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype.populateLineGutterContextMenu): * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype._contextMenu): * inspector/front-end/inspector.js: (WebInspector.openLinkExternallyLabel): (WebInspector.openResource): (WebInspector.useLowerCaseMenuTitles): 2011-04-28 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. Mask placement on composited layer is incorrect sometimes https://bugs.webkit.org/show_bug.cgi?id=59775 The mask layer always has the same size as its owning GraphicsLayer, so it needs to share the same offsetFromRenderer as well. This fixes the offset at which the mask layer contents are painted in cases where that offset is non-zero, for example when outline style bloats all of the layer sizes. Test: compositing/masks/layer-mask-placement.html * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): 2011-04-28 Dan Bernstein <mitz@apple.com> Rubber-stamped by Mark Rowe. Reverted r81319. Fixes <rdar://problem/9331580> REGRESSION (r81319): Safari fails to display dropdown navigation on classics.berkeley.edu * page/NavigatorBase.cpp: 2011-04-28 Simon Fraser <simon.fraser@apple.com> Reviewed by Dirk Schulze. 1px box-shadow looks ugly https://bugs.webkit.org/show_bug.cgi?id=58100 and ShadowBlur incorrectly handles zero-sized blur radius in one axis https://bugs.webkit.org/show_bug.cgi?id=59710 blurLayerImage() has issues at the edges if the blur radius is one, so in that case bump the buffer size out by a pixel. This results in a correct, symmetrical blur. Also fix an issue noticed during testing where a zero height or width radius would still blur on that axis, because we clamp the kernel size to a minimum of two. Test: fast/box-shadow/single-pixel-shadow.html * platform/graphics/ShadowBlur.h: * platform/graphics/ShadowBlur.cpp: (WebCore::ShadowBlur::blurLayerImage): Skip horizontal or vertial passes if the radius on that axis is zero. Move the "if (pass && m_blurRadius.width() != m_blurRadius.height())" clause to the end of the loop, since it only needs to execute once after the first pass. (WebCore::ShadowBlur::blurredEdgeSize): New method to compute the width of the blurred edge (radius + extra pixel when necessary). (WebCore::ShadowBlur::calculateLayerBoundingRect): (WebCore::ShadowBlur::templateSize): (WebCore::ShadowBlur::drawRectShadow): (WebCore::ShadowBlur::drawInsetShadow): (WebCore::ShadowBlur::drawInsetShadowWithTiling): (WebCore::ShadowBlur::drawRectShadowWithTiling): (WebCore::ShadowBlur::drawLayerPieces): Use the result of blurredEdgeSize() rather than recomputing. 2011-04-28 Yael Aharon <yael.aharon@nokia.com> Reviewed by Beth Dakin. CSS sibling selector (~) does not work with :target pseudo class https://bugs.webkit.org/show_bug.cgi?id=26539 Allow style recalculation of forward siblings of elements with forward positional rules. Tests: fast/css/pseudo-target-indirect-sibling-001.html fast/css/pseudo-target-indirect-sibling-002.html * dom/Element.cpp: (WebCore::Element::recalcStyle): 2011-04-28 Nat Duca <nduca@chromium.org> Reviewed by Kenneth Russell. [chromium] Add swapBuffersCompleteCallback to Extensions3DChromium https://bugs.webkit.org/show_bug.cgi?id=59626 * platform/graphics/chromium/Extensions3DChromium.h: (WebCore::Extensions3DChromium::SwapBuffersCompleteCallbackCHROMIUM::~SwapBuffersCompleteCallbackCHROMIUM): 2011-04-28 Steve Lacey <sjl@chromium.org> Reviewed by Eric Carlson. Change chromium media controls to use absolute positioning until bug 59644 is fixed. https://bugs.webkit.org/show_bug.cgi?id=59732 * css/mediaControlsChromium.css: (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display): (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline): 2011-04-28 Luke Macpherson <macpherson@chromium.org> Reviewed by Eric Seidel. Implement CSS border width and related properties in CSSStyleApplyProperty. https://bugs.webkit.org/show_bug.cgi?id=59414 No new tests as no functionality added. * css/CSSStyleApplyProperty.cpp: Separated ApplyPropertyDefault into parent and child so that other classes could inherit the applyInheritValue and applyInitialValue methods only. This was necessary to avoid casting from CSSPrimitiveValue to inappropriate types in ApplyPropertyDefault::applyValue(). Added ApplyPropertyWidth class for handling width based CSS properties. * css/CSSStyleSelector.cpp: Removed no-longer-required code for handling width based CSS properties. * css/CSSStyleSelector.h: Added a getter for m_rootElementStyle. 2011-04-28 Kent Tamura <tkent@chromium.org> Run sort-Xcode-project-file. * WebCore.xcodeproj/project.pbxproj: 2011-04-28 Martin Robinson <mrobinson@igalia.com> Reviewed by Dirk Schulze. [Cairo] Text underline is not shadowed when text-shadow is enabled https://bugs.webkit.org/show_bug.cgi?id=48074 Use ContextShadow to enable shadows for text underlines. Also remove quite a bit of duplicate code in GraphicsContext used for stroking lines. This code looks like it was originally copied from the CG GraphicsContext. * platform/graphics/GraphicsContext.h: Make adjustLineToPixelBoundaries so that we can call it from a static helper function. * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::calculateStrokePatternOffset): Abstracted this code into a helper. (WebCore::drawLineOnCairoContext): Abstracted this code into a helper. We need to call it multiple times when shadowing text underlines. (WebCore::GraphicsContext::drawLine): Use drawLineOnCairoContext. (WebCore::GraphicsContext::strokeArc): Use calculateStrokePatternOffset. (WebCore::GraphicsContext::drawLineForText): Use drawLineOnCairoContext. 2011-04-28 Sam Weinig <sam@webkit.org> Rubber-stamped by Mark Rowe. Cleanup WebCore.xcodeproj a bit. * WebCore.xcodeproj/project.pbxproj: Added CompilerVersion.xcconfig and moved some JS bindings files into the correct sub groups. 2011-04-28 David Levin <levin@chromium.org> Reviewed by Adam Barth. Remove IMAGE_RESIZER related code. https://bugs.webkit.org/show_bug.cgi?id=59735 * CMakeLists.txt: * Configurations/FeatureDefines.xcconfig: * GNUmakefile.am: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * features.pri: * html/AsyncImageResizer.cpp: Removed. * html/AsyncImageResizer.h: Removed. * html/ImageResizerThread.cpp: Removed. * html/ImageResizerThread.h: Removed. 2011-04-28 Ilya Tikhonovsky <loislo@chromium.org> Unreviewed trivial one-line fix inspired by wrong patch for https://bugs.webkit.org/show_bug.cgi?id=59630. * inspector/front-end/Settings.js: (WebInspector.Settings): 2011-04-28 Beth Dakin <bdakin@apple.com> Rubber-stamped by Sam Weinig. Rolling out revision 85258! I want to fix that bug a different way. * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::paint): 2011-04-28 Chang Shu <cshu@webkit.org> Reviewed by Eric Seidel. isContentEditable is not working properly with document.designMode https://bugs.webkit.org/show_bug.cgi?id=53031 The specification (http://dev.w3.org/html5/spec/Overview.html#attr-contenteditable) indicates that the element.isContentEditable relies on document.designMode if its and its ancestors' contenteditable attributes are set to inherit. 1. Sync document render style after document.designMode is changed. 2. Removed the code that does unnecessary and incorrect handling for contenteditable attribute with "inherit" value. 3. Ryosuke Niwa also helped to fix the code in ApplyStyleCommand that causes an assertion. Tests: fast/dom/HTMLElement/iscontenteditable-designmodeon-allinherit-subframe.html fast/dom/HTMLElement/iscontenteditable-designmodeon-allinherit.html fast/dom/HTMLElement/iscontenteditable-designmodeon-ancestor.html fast/dom/HTMLElement/iscontenteditable-designmodeon.html * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::styleForDocument): * dom/Document.cpp: (WebCore::Document::setDesignMode): * dom/Node.cpp: (WebCore::Node::rendererIsEditable): * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): * html/HTMLElement.cpp: (WebCore::HTMLElement::setContentEditable): 2011-04-28 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r85101. http://trac.webkit.org/changeset/85101 https://bugs.webkit.org/show_bug.cgi?id=59757 it'd be better to rollout the patch and do another one with another property name. Current one will bring us to a problem at first run after upgrade because it's type was changed from int to string. (Requested by loislo on #webkit). * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._debuggerWasEnabled): (WebInspector.ScriptsPanel.prototype._setPauseOnExceptions.callback): (WebInspector.ScriptsPanel.prototype._setPauseOnExceptions): 2011-04-28 Mike Reed <reed@google.com> Reviewed by Eric Seidel. fix shadw behavior for both CSS and Canvas -- skia only https://bugs.webkit.org/show_bug.cgi?id=59700 Test: canvas/philip/tests/2d.shadow.alpha.3.html canvas/philip/tests/2d.shadow.alpha.4.html canvas/philip/tests/2d.shadow.alpha.5.html fast/canvas/canvas-fillPath-alpha-shadow.html fast/canvas/canvas-strokePath-alpha-shadow.html fast/canvas/canvas-strokeRect-alpha-shadow.html fast/css/text-input-with-webkit-border-radius.html fast/repaint/shadow-multiple-horizontal.html fast/repaint/shadow-multiple-strict-horizontal.html fast/repaint/shadow-multiple-strict-vertical.html fast/repaint/shadow-multiple-vertical.html fast/canvas/canvas-getImageData.html * platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::Font::drawGlyphs): * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContext::setPlatformShadow): 2011-04-28 David Kilzer <ddkilzer@apple.com> <http://webkit.org/b/59755> AXObjectCache::attachWrapper() over-retains an AccessibilityObjectWrapper Reviewed by Chris Fleizach. Previously, AXObjectCache::attachWrapper over-retained each AccessibilityObjectWrapper it created, which is why AXObjectCache::detachWrapper() contained an extra -release. * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::detachWrapper): Removed extra -release. (WebCore::AXObjectCache::attachWrapper): Because setWrapper() assigns to a RetainPtr<> instance variable, it doesn't need a +1 retained object passed in. Fix the leak by using a RetainPtr<> for the AccessibilityObjectWrapper. 2011-04-28 Nat Duca <nduca@chromium.org> Reviewed by Darin Fisher. [chromium] Compute compositor fps value and history using the frameBegin timestamp https://bugs.webkit.org/show_bug.cgi?id=59668 This change switches the compositor FPS meter to use the timestamp of the beginning of the frame rather than the time we call swapBuffers. When scheduling is correctly tied to vsync, we can have highly variable times when we finish vsync and still have stable frame rates. * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updateAndDrawLayers): * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay): (WebCore::CCHeadsUpDisplay::drawFPSCounter): (WebCore::CCHeadsUpDisplay::onFrameBegin): (WebCore::CCHeadsUpDisplay::onPresent): * platform/graphics/chromium/cc/CCHeadsUpDisplay.h: 2011-04-28 Beth Dakin <bdakin@apple.com> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=59759 Overflow:scroll regions with overlay scrollbars show full thumb instead of just a track when there is nothing to scroll to <rdar://problem/9282066> Scrollbar::totalSize() and Scrollbar::visibleSize() are the same when there is nothing to scroll to. Just dividing them to get a knob proportion yields 1, which is not right. Set the proportion to 0 in this case instead. * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::paint): 2011-04-28 Dan Bernstein <mitz@apple.com> Reviewed by Simon Fraser. <rdar://problem/9291132> Add support for -epub-prefixed properties Test: fast/css/epub-properties.html * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::cssPropertyName): Map "epub"-prefixed properties to "-epub"-prefixed ones. * css/CSSPropertyNames.in: Added -epub- aliases to caption-side, -webkit-hyphens, -webkit-text-combine, -webkit-text-emphasis, -webkit-text-emphasis-color, -webkit-text-emphasis-style, -webkit-text-orientation, text-transform, text-transform, word-break, and -webkit-writing-mode. 2011-04-28 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Remove WML https://bugs.webkit.org/show_bug.cgi?id=59678 This patch removes WML from WebCore. After removing WML, there's a bunch of twisted code that could be untwisted, but this patch contains only the purely mechanical part of removing the feature. There's been a lot of discussion on webkit-dev about whether we should remove WML. In addition to those threads, we've had an informal poll of the reviewers as well as an in-person discussion at the WebKit contributor's meeting. Removing any feature is likely to make some folks unhappy, but, on balance, removing WML appears to be the right thing for the project to do at this time. * CMakeLists.txt: * CodeGenerators.pri: * Configurations/FeatureDefines.xcconfig: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * GNUmakefile.list.am: * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * css/CSSStyleSelector.cpp: (WebCore::linkAttribute): (WebCore::CSSStyleSelector::styleForElement): (WebCore::CSSStyleSelector::adjustRenderStyle): * css/wml.css: Removed. * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument): * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::createElement): * dom/Document.h: (WebCore::Document::isMediaDocument): * dom/Document.idl: * dom/InputElement.h: * dom/Node.cpp: (WebCore::Node::toInputElement): * dom/Node.h: * dom/OptionElement.cpp: (WebCore::toOptionElement): (WebCore::isOptionElement): * dom/OptionElement.h: * dom/OptionGroupElement.cpp: (WebCore::toOptionGroupElement): (WebCore::isOptionGroupElement): * dom/SelectElement.cpp: (WebCore::toSelectElement): * dom/SelectElement.h: * dom/Text.cpp: (WebCore::Text::attach): * dom/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::insertErrorMessageBlock): * dom/XMLDocumentParser.h: * dom/XMLDocumentParserLibxml2.cpp: (WebCore::XMLDocumentParser::internalSubset): (WebCore::getEntityHandler): * dom/XMLDocumentParserQt.cpp: (WebCore::XMLDocumentParser::parse): (WebCore::XMLDocumentParser::parseDtd): * editing/htmlediting.cpp: (WebCore::canHaveChildrenForEditing): * features.pri: * history/BackForwardList.h: * history/BackForwardListImpl.cpp: * history/BackForwardListImpl.h: * history/PageCache.cpp: (WebCore::PageCache::canCachePageContainingThisFrame): * html/HTMLAnchorElement.h: * inspector/ConsoleMessage.cpp: (WebCore::messageSourceValue): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleMessage.prototype.toString): * loader/FrameLoader.cpp: (WebCore::isBackForwardLoadType): (WebCore::FrameLoader::transitionToCommitted): (WebCore::FrameLoader::shouldReload): (WebCore::FrameLoader::loadDifferentDocumentItem): (WebCore::FrameLoader::loadItem): * loader/FrameLoaderTypes.h: * loader/HistoryController.cpp: (WebCore::HistoryController::restoreDocumentState): * manual-tests/wml: Removed. * manual-tests/wml/StartTests.wml: Removed. * manual-tests/wml/a-br-element.wml: Removed. * manual-tests/wml/a-element.wml: Removed. * manual-tests/wml/a-img-element.wml: Removed. * manual-tests/wml/access-target.wml: Removed. * manual-tests/wml/anchor-br-element.wml: Removed. * manual-tests/wml/anchor-element.wml: Removed. * manual-tests/wml/anchor-img-element.wml: Removed. * manual-tests/wml/card-newcontext-attr.wml: Removed. * manual-tests/wml/card-onenterbackward.wml: Removed. * manual-tests/wml/card-onenterforward.wml: Removed. * manual-tests/wml/card-ontimer.wml: Removed. * manual-tests/wml/deck-access-control.wml: Removed. * manual-tests/wml/input-format.wml: Removed. * manual-tests/wml/onevent-go.wml: Removed. * manual-tests/wml/onevent-noop.wml: Removed. * manual-tests/wml/onevent-prev.wml: Removed. * manual-tests/wml/onevent-refresh.wml: Removed. * manual-tests/wml/onevent-shadow.wml: Removed. * manual-tests/wml/resources: Removed. * manual-tests/wml/resources/smiley.png: Removed. * manual-tests/wml/select-element.wml: Removed. * manual-tests/wml/select-onpick-event-crash.wml: Removed. * manual-tests/wml/select-onpick-event.wml: Removed. * manual-tests/wml/setvar-element.wml: Removed. * manual-tests/wml/targetdeck.wml: Removed. * manual-tests/wml/task-go-in-anchor.wml: Removed. * manual-tests/wml/task-prev-in-anchor.wml: Removed. * manual-tests/wml/task-refresh-in-anchor.wml: Removed. * manual-tests/wml/template-go.wml: Removed. * manual-tests/wml/template-ontimer.wml: Removed. * manual-tests/wml/timer.wml: Removed. * manual-tests/wml/variable-substitution.wml: Removed. * page/Console.cpp: (WebCore::printMessageSourceAndLevelPrefix): * page/Console.h: * page/Frame.cpp: (WebCore::Frame::Frame): * page/Page.cpp: * page/Page.h: * platform/MIMETypeRegistry.cpp: (WebCore::initializeSupportedNonImageMimeTypes): * platform/network/FormDataBuilder.h: * platform/network/mac/ResourceHandleMac.mm: (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): * platform/wince/MIMETypeRegistryWinCE.cpp: (WebCore::initMIMETypeEntensionMap): * rendering/HitTestResult.cpp: (WebCore::HitTestResult::altDisplayString): (WebCore::HitTestResult::absoluteImageURL): (WebCore::HitTestResult::absoluteLinkURL): (WebCore::HitTestResult::isLiveLink): * rendering/RenderBox.cpp: * rendering/RenderButton.cpp: (WebCore::RenderButton::updateFromElement): * rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::findLegend): * rendering/RenderImage.cpp: (WebCore::RenderImage::updateAltText): * rendering/RenderObject.cpp: (WebCore::RenderObject::isLegend): (WebCore::RenderObject::offsetParent): * wml: Removed. * wml/WMLAElement.cpp: Removed. * wml/WMLAElement.h: Removed. * wml/WMLAccessElement.cpp: Removed. * wml/WMLAccessElement.h: Removed. * wml/WMLAnchorElement.cpp: Removed. * wml/WMLAnchorElement.h: Removed. * wml/WMLAttributeNames.in: Removed. * wml/WMLBRElement.cpp: Removed. * wml/WMLBRElement.h: Removed. * wml/WMLCardElement.cpp: Removed. * wml/WMLCardElement.h: Removed. * wml/WMLDoElement.cpp: Removed. * wml/WMLDoElement.h: Removed. * wml/WMLDocument.cpp: Removed. * wml/WMLDocument.h: Removed. * wml/WMLElement.cpp: Removed. * wml/WMLElement.h: Removed. * wml/WMLErrorHandling.cpp: Removed. * wml/WMLErrorHandling.h: Removed. * wml/WMLEventHandlingElement.cpp: Removed. * wml/WMLEventHandlingElement.h: Removed. * wml/WMLFieldSetElement.cpp: Removed. * wml/WMLFieldSetElement.h: Removed. * wml/WMLFormControlElement.cpp: Removed. * wml/WMLFormControlElement.h: Removed. * wml/WMLGoElement.cpp: Removed. * wml/WMLGoElement.h: Removed. * wml/WMLImageElement.cpp: Removed. * wml/WMLImageElement.h: Removed. * wml/WMLImageLoader.cpp: Removed. * wml/WMLImageLoader.h: Removed. * wml/WMLInputElement.cpp: Removed. * wml/WMLInputElement.h: Removed. * wml/WMLInsertedLegendElement.cpp: Removed. * wml/WMLInsertedLegendElement.h: Removed. * wml/WMLIntrinsicEvent.cpp: Removed. * wml/WMLIntrinsicEvent.h: Removed. * wml/WMLIntrinsicEventHandler.cpp: Removed. * wml/WMLIntrinsicEventHandler.h: Removed. * wml/WMLMetaElement.cpp: Removed. * wml/WMLMetaElement.h: Removed. * wml/WMLNoopElement.cpp: Removed. * wml/WMLNoopElement.h: Removed. * wml/WMLOnEventElement.cpp: Removed. * wml/WMLOnEventElement.h: Removed. * wml/WMLOptGroupElement.cpp: Removed. * wml/WMLOptGroupElement.h: Removed. * wml/WMLOptionElement.cpp: Removed. * wml/WMLOptionElement.h: Removed. * wml/WMLPElement.cpp: Removed. * wml/WMLPElement.h: Removed. * wml/WMLPageState.cpp: Removed. * wml/WMLPageState.h: Removed. * wml/WMLPostfieldElement.cpp: Removed. * wml/WMLPostfieldElement.h: Removed. * wml/WMLPrevElement.cpp: Removed. * wml/WMLPrevElement.h: Removed. * wml/WMLRefreshElement.cpp: Removed. * wml/WMLRefreshElement.h: Removed. * wml/WMLSelectElement.cpp: Removed. * wml/WMLSelectElement.h: Removed. * wml/WMLSetvarElement.cpp: Removed. * wml/WMLSetvarElement.h: Removed. * wml/WMLTableElement.cpp: Removed. * wml/WMLTableElement.h: Removed. * wml/WMLTagNames.in: Removed. * wml/WMLTaskElement.cpp: Removed. * wml/WMLTaskElement.h: Removed. * wml/WMLTemplateElement.cpp: Removed. * wml/WMLTemplateElement.h: Removed. * wml/WMLTimerElement.cpp: Removed. * wml/WMLTimerElement.h: Removed. * wml/WMLVariables.cpp: Removed. * wml/WMLVariables.h: Removed. 2011-04-28 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r85233 and r85235. http://trac.webkit.org/changeset/85233 http://trac.webkit.org/changeset/85235 https://bugs.webkit.org/show_bug.cgi?id=59754 Causes issues with jsc. (Requested by dave_levin on #webkit). * ForwardingHeaders/wtf/ThreadRestrictionVerifier.h: Removed. * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::defaultIcon): (WebCore::IconDatabase::setIconDataForIconURL): (WebCore::IconDatabase::getOrCreateIconRecord): (WebCore::IconDatabase::readFromDatabase): 2011-04-28 Jay Civelli <jcivelli@chromium.org> Reviewed by Adam Barth. Introducing a new class that allows serialization of a page back to HTML/XML with all its sub-frames and also retrieves the page's resources. Tests: unit-tests in chromium/tests/WebPageNewSerializerTest.cpp https://bugs.webkit.org/show_bug.cgi?id=58947 * Android.mk: * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * dom/Document.cpp: (WebCore::Document::suggestedMIMEType): * dom/Document.h: * editing/MarkupAccumulator.cpp: (WebCore::MarkupAccumulator::appendCustomAttributes): (WebCore::MarkupAccumulator::appendElement): * editing/MarkupAccumulator.h: * html/parser/HTMLMetaCharsetParser.cpp: (WebCore::HTMLMetaCharsetParser::processMeta): (WebCore::HTMLMetaCharsetParser::encodingFromMetaAttributes): * html/parser/HTMLMetaCharsetParser.h: * page/PageSerializer.cpp: Added. * page/PageSerializer.h: Added. 2011-04-28 Mark Pilgrim <pilgrim@chromium.org> Reviewed by Tony Chang. IndexedDB createIndex should fail if name arg is null https://bugs.webkit.org/show_bug.cgi?id=58365 Test: storage/indexeddb/mozilla/create-index-null-name.html * storage/IDBObjectStore.idl: * storage/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::createIndex): 2011-04-28 Mark Pilgrim <pilgrim@chromium.org> Reviewed by Tony Chang. IndexedDB put() should fail if second (key) parameter is null https://bugs.webkit.org/show_bug.cgi?id=58613 If key arg is not specified, prpKey ends up as a null pointer in ::put(). However, if the key arg is specified but is null, prpKey ends up as a valid IDBKey which has a null key type. As it happens, we need to be able to detect the difference between these cases (the key arg is optional but if specified must not be null). Test: storage/indexeddb/mozilla/key-requirements-put-null-key.html * storage/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::put): 2011-04-07 David Levin <levin@chromium.org> Reviewed by Darin Adler. Add asserts to RefCounted to make sure ref/deref happens on the right thread. https://bugs.webkit.org/show_bug.cgi?id=31639 No new functionality exposed so no new tests. (The change is basically adding more testing.) * ForwardingHeaders/wtf/ThreadRestrictionVerifier.h: Added. * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::defaultIcon): Set the mutex which does the guarding of the variable. (WebCore::IconDatabase::getOrCreateIconRecord): Ditto. (WebCore::IconDatabase::setIconDataForIconURL): Ditto. (WebCore::IconDatabase::readFromDatabase): Ditto. 2011-04-28 Kenneth Russell <kbr@google.com> Unreviewed build fix for Web Audio with strict OwnPtr. * platform/audio/HRTFDatabaseLoader.cpp: (WebCore::HRTFDatabaseLoader::HRTFDatabaseLoader): 2011-04-28 Dominic Cooney <dominicc@chromium.org> Reviewed by Geoffrey Garen. Walk shadow hosts as well as parent nodes when finding opaque roots. https://bugs.webkit.org/show_bug.cgi?id=59571 Test: fast/dom/shadow/gc-shadow.html * bindings/js/JSDOMBinding.h: (WebCore::root): 2011-04-28 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK] Click counting logic should be shared between WebKit1 and WebKit2 https://bugs.webkit.org/show_bug.cgi?id=59715 Added a GtkClickCounter class which is just the logic from WebKit1 pushed down into WebCore so that WebKit1 and WebKit2 can share the code. No new tests. This is covered by fast/events/click-count.html. * GNUmakefile.list.am: Added new files. * platform/gtk/GtkClickCounter.cpp: Added. (WebCore::GtkClickCounter::GtkClickCounter): Added. (WebCore::GtkClickCounter::reset): Added. (WebCore::GtkClickCounter::shouldProcessButtonEvent): Added. (WebCore::getEventTime): Added. (WebCore::GtkClickCounter::clickCountForGdkButtonEvent): Added. * platform/gtk/GtkClickCounter.h: Added. 2011-04-28 Dan Bernstein <mitz@apple.com> Build fix. * css/CSSParser.cpp: (WebCore::cssPropertyID): 2011-04-28 Dan Bernstein <mitz@apple.com> Reviewed by Simon Fraser. Allow specifying CSS property aliases in CSSPropertyNames.in files https://bugs.webkit.org/show_bug.cgi?id=59712 * css/CSSParser.cpp: (WebCore::cssPropertyID): Removed code to handle some aliases * css/CSSPropertyNames.in: Added aliases no longer handled in code. * css/makeprop.pl: Interpret lines of the form "alias-property-name = property-name" as defining an alias, and add an appropriate entry to the gperf file. 2011-04-28 Arno Renevier <arno@renevier.net> Reviewed by Gustavo Noronha Silva. [Soup] does not load css stylesheets without content-type https://bugs.webkit.org/show_bug.cgi?id=59697 When sniffing content type, do not replace http Content-Type header in soup message anymore, but keep sniffed content type in a separate variable. * platform/network/soup/ResourceHandleSoup.cpp: (WebCore::contentSniffedCallback): * platform/network/soup/ResourceResponse.h: (WebCore::ResourceResponse::sniffedContentType): (WebCore::ResourceResponse::setSniffedContentType): * platform/network/soup/ResourceResponseSoup.cpp: (WebCore::ResourceResponse::updateFromSoupMessage): 2011-04-28 Yael Aharon <yael.aharon@nokia.com> Reviewed by Andreas Kling. Remove flag ENABLE_SYMBIAN_DIALOG_PROVIDER https://bugs.webkit.org/show_bug.cgi?id=59704 No new tests, just code cleanup. * WebCore.pri: 2011-04-28 Pavel Podivilov <podivilov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: remove "Pretty print" source frame context menu item. https://bugs.webkit.org/show_bug.cgi?id=59709 * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype.setFormatSourceFiles): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._toggleFormatSourceFiles): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype.populateTextAreaContextMenu): 2011-04-28 Satish Sampath <satish@chromium.org> Reviewed by Tony Gentilcore. Speech input button layout issues with padding and border. https://bugs.webkit.org/show_bug.cgi?id=59613 * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::layout): (WebCore::RenderTextControlSingleLine::nodeAtPoint): (WebCore::RenderTextControlSingleLine::forwardEvent): 2011-04-28 Carlos Garcia Campos <cgarcia@igalia.com> Reviewed by Martin Robinson. [GTK] Check whether to use native scrollbars at run time https://bugs.webkit.org/show_bug.cgi?id=59694 It's currently decided at build time depending on whether webkit2 build is enabled or not. That makes imposible to build both webkit1 and webkit2 using the same libWebCore. * GNUmakefile.am: * platform/ScrollView.cpp: (WebCore::ScrollView::wheelEvent): * platform/gtk/ScrollViewGtk.cpp: (WebCore::ScrollView::createScrollbar): 2011-04-28 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: add status bar button for pretty print. https://bugs.webkit.org/show_bug.cgi?id=59467 * WebCore.gypi: * inspector/front-end/Images/prettyPrintButtonGlyph.png: Added. * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel): (WebInspector.ScriptsPanel.prototype.get statusBarItems): (WebInspector.ScriptsPanel.prototype._toggleFormatSourceFiles): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.css: (.scripts-toggle-pretty-print-status-bar-item .glyph): (.scripts-toggle-pretty-print-status-bar-item.toggled .glyph): 2011-04-28 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: add ResourceTreeModel tests. https://bugs.webkit.org/show_bug.cgi?id=59616 Tests: http/tests/inspector/resource-tree/resource-tree-document-url.html http/tests/inspector/resource-tree/resource-tree-frame-navigate.html http/tests/inspector/resource-tree/resource-tree-reload.html * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel.prototype.frontendReused): (WebInspector.ResourceTreeModel.prototype._addFrame): (WebInspector.ResourceTreeModel.prototype._frameNavigated): (WebInspector.ResourceTreeModel.prototype._frameDetached): (WebInspector.ResourceTreeModel.prototype._onResourceUpdated): (WebInspector.ResourceTreeModel.prototype.forAllResources): (WebInspector.ResourceTreeModel.prototype._clearChildFramesAndResources): (WebInspector.ResourceTreeModel.prototype._callForFrameResources): (WebInspector.ResourceTreeModel.prototype._addFramesRecursively): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._populateResourceTree): (WebInspector.ResourcesPanel.prototype._frameAdded): (WebInspector.ResourcesPanel.prototype._frameDetached): (WebInspector.ResourcesPanel.prototype._frameNavigated): (WebInspector.FrameTreeElement): (WebInspector.FrameTreeElement.prototype.frameNavigated): 2011-04-28 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Yury Semikhatsky. WebInspector: [Chromium] Implement retaining paths following in detailed heap snapshots. https://bugs.webkit.org/show_bug.cgi?id=59592 * inspector/front-end/DetailedHeapshotGridNodes.js: (WebInspector.HeapSnapshotGridNode.prototype._populate): (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.childrenRetrieved): (WebInspector.HeapSnapshotGridNode.prototype.populateChildren.callSerialize): (WebInspector.HeapSnapshotGridNode.prototype.populateChildren): * inspector/front-end/DetailedHeapshotView.js: (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute.nextStep.else.afterExpand): (WebInspector.HeapSnapshotContainmentDataGrid.prototype._defaultPopulateCount.100.expandRoute): (WebInspector.HeapSnapshotRetainingPathsList.prototype.showNext.pathFound): (WebInspector.DetailedHeapshotView.prototype._mouseClickInRetainmentGrid.expandRoute): (WebInspector.DetailedHeapshotView.prototype._mouseClickInRetainmentGrid): (WebInspector.DetailedHeapshotView.prototype.changeView.sortingComplete): (WebInspector.DetailedHeapshotView.prototype.changeView): * inspector/front-end/HeapSnapshot.js: (WebInspector.HeapSnapshotPathFinder.prototype.findNext): (WebInspector.HeapSnapshotPathFinder.prototype._nextEdgeIter): (WebInspector.HeapSnapshotPathFinder.prototype._buildNextPath): (WebInspector.HeapSnapshotPathFinder.prototype._pathToString): (WebInspector.HeapSnapshotPathFinder.prototype._pathToRoute): * inspector/front-end/heapProfiler.css: (div.retaining-paths-view td.path-column div:hover): 2011-04-28 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: [Chromium] Optimize detailed heap snapshots loading / parsing. https://bugs.webkit.org/show_bug.cgi?id=59454 Test: inspector/profiler/heap-snapshot-loader.html * inspector/front-end/HeapSnapshot.js: (WebInspector.HeapSnapshotLoader): (WebInspector.HeapSnapshotLoader.prototype._findBalancedCurlyBrackets): (WebInspector.HeapSnapshotLoader.prototype.finishLoading): (WebInspector.HeapSnapshotLoader.prototype._parseNodes): (WebInspector.HeapSnapshotLoader.prototype._parseStringsArray): (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk): * inspector/front-end/HeapSnapshotProxy.js: (WebInspector.HeapSnapshotFakeWorker.prototype.postMessage): 2011-04-28 ojab <ojab@ojab.ru> Reviewed by David Levin. Fix build with libpng-1.5.1 https://bugs.webkit.org/show_bug.cgi?id=59607 * platform/image-decoders/png/PNGImageDecoder.cpp: (WebCore::readColorProfile): 2011-04-28 Zoltan Herczeg <zherczeg@inf.u-szeged.hu> Reviewed by Nikolas Zimmermann. Optimizing gaussian blur filter to ARM-neon SIMD instruction set https://bugs.webkit.org/show_bug.cgi?id=59447 This patch contains two sub-routines, one for speeding up alpha channel only gaussian blur (by 2.5 times) and one for speeding up all channel blur (by 4 times). The common code is also redesigned to better fit for platform specific code. This means large chunks of code was moved to different files, and all platform specific files are added to all build systems. * CMakeLists.txt: * GNUmakefile.am: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.vcproj/WebCoreCommon.vsprops: * WebCore.xcodeproj/project.pbxproj: * platform/graphics/filters/FEGaussianBlur.cpp: (WebCore::FEGaussianBlur::platformApplyGeneric): (WebCore::FEGaussianBlur::apply): * platform/graphics/filters/FEGaussianBlur.h: (WebCore::FEGaussianBlur::kernelPosition): (WebCore::FEGaussianBlur::platformApply): * platform/graphics/filters/FELighting.cpp: (WebCore::FELighting::platformApplyGeneric): (WebCore::FELighting::drawLighting): * platform/graphics/filters/FELighting.h: (WebCore::FELighting::platformApply): * platform/graphics/filters/arm/FEGaussianBlurNEON.cpp: Added. (WebCore::WTF_ALIGNED): (WebCore::feGaussianBlurConstantsForNeon): * platform/graphics/filters/arm/FEGaussianBlurNEON.h: Added. (WebCore::FEGaussianBlur::platformApplyNeon): * platform/graphics/filters/arm/FELightingNEON.cpp: (WebCore::WTF_ALIGNED): (WebCore::FELighting::getPowerCoefficients): * platform/graphics/filters/arm/FELightingNEON.h: (WebCore::FELighting::platformApplyNeon): 2011-04-28 Alexander Pavlov <apavlov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: provide a hotkey for script pause https://bugs.webkit.org/show_bug.cgi?id=59593 In fact, F8 works as a hotkey, but this fact was not reflected in the shortcut help popup. * English.lproj/localizedStrings.js: * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._registerShortcuts): 2011-04-28 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. PluginStream should play nice with strict OwnPtr https://bugs.webkit.org/show_bug.cgi?id=59675 These failures appear when enabling strict OwnPtr on Qt. * plugins/PluginStream.cpp: (WebCore::PluginStream::PluginStream): (WebCore::PluginStream::didReceiveData): 2011-04-26 Alexander Pavlov <apavlov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Use CachedResource to retrieve charset-decoded stylesheet text https://bugs.webkit.org/show_bug.cgi?id=59326 Concrete CachedResource successors for stylesheets and scripts can decode their content better than the generic approach we use. * inspector/InspectorPageAgent.cpp: (WebCore::decodeSharedBuffer): (WebCore::prepareCachedResourceBuffer): (WebCore::cachedResourceDecoded): (WebCore::InspectorPageAgent::resourceContent): (WebCore::InspectorPageAgent::resourceData): * inspector/InspectorStyleSheet.cpp: (WebCore::InspectorStyleSheet::originalStyleSheetText): 2011-04-28 Jon Lee <jonlee@apple.com> Reviewed by Simon Fraser. REGRESSION: white overlay scrollbars on apple.com/startpage https://bugs.webkit.org/show_bug.cgi?id=59540 <rdar://problem/9338653> Now we look at the document background in addition to the <body> element, and blend those colors in with the base background of the frame view to arrive at our aggregate color. This provides a better result to determine overlay scrollbar style. * page/Frame.cpp: (WebCore::Frame::getDocumentBackgroundColor): look up the colors on the html and body element, and properly composite them. * platform/graphics/Color.h: a short comment to note that blend() uses the Porter-Duff source-over equation 2011-04-27 Adam Barth <abarth@webkit.org> Reviewed by Maciej Stachowiak. Fix OwnPtr issues in IndexedDB https://bugs.webkit.org/show_bug.cgi?id=59656 This patch is an attempt to fix the clang build. Clang can't seem to cope with OwnPtrs to classes declared in an anonymous namespace because OwnPtr's copy constructor isn't defined (but would need to be defined in this translation unit). * platform/leveldb/LevelDBDatabase.cpp: 2011-04-27 Ryuan Choi <ryuan.choi@samsung.com> Reviewed by Antonio Gomes. [EFL] Change cursor to LAZY_NATIVE_CURSOR https://bugs.webkit.org/show_bug.cgi?id=59411 Enable LAZY_NATIVE_CURSOR on EFL build. No test added because functionality is unchanged. * CMakeListsEfl.txt: Add Cursor.cpp * platform/Cursor.h: (WebCore::Cursor::Cursor): * platform/efl/CursorEfl.cpp: (WebCore::Cursor::Cursor): (WebCore::Cursor::~Cursor): (WebCore::getCursorString): (WebCore::Cursor::ensurePlatformCursor): * platform/efl/WidgetEfl.cpp: (WebCore::Widget::setCursor): 2011-04-27 Adam Barth <abarth@webkit.org> Build fix from the future. Another trival strict OwnPtr fixes. This is the last futuristic build fix I can detect with my time traveling abilities. * platform/graphics/chromium/TransparencyWin.cpp: (WebCore::TransparencyWin::initializeNewContext): 2011-04-27 Dmitry Lomov <dslomov@google.com> Reviewed by David Levin. CrossThreadCopier should not have a default specialization for raw pointers https://bugs.webkit.org/show_bug.cgi?id=59234 Removed the ablity to pass raw pointers cross-thread Added and applied annotations for doing that * fileapi/FileReader.cpp: (WebCore::FileReader::readInternal): (WebCore::FileReader::abort): * fileapi/FileStreamProxy.cpp: (WebCore::FileStreamProxy::startOnFileThread): (WebCore::FileStreamProxy::stopOnFileThread): (WebCore::FileStreamProxy::getSize): (WebCore::FileStreamProxy::getSizeOnFileThread): (WebCore::FileStreamProxy::openForRead): (WebCore::FileStreamProxy::openForReadOnFileThread): (WebCore::FileStreamProxy::openForWrite): (WebCore::FileStreamProxy::openForWriteOnFileThread): (WebCore::FileStreamProxy::close): (WebCore::FileStreamProxy::read): (WebCore::FileStreamProxy::readOnFileThread): (WebCore::FileStreamProxy::write): (WebCore::FileStreamProxy::writeOnFileThread): (WebCore::FileStreamProxy::truncate): (WebCore::FileStreamProxy::truncateOnFileThread): * loader/WorkerThreadableLoader.cpp: (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy): (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel): * page/GeolocationPositionCache.cpp: (WebCore::GeolocationPositionCache::triggerReadFromDatabase): (WebCore::GeolocationPositionCache::triggerWriteToDatabase): * platform/CrossThreadCopier.h: (WebCore::AllowCrossThreadAccessWrapper::AllowCrossThreadAccessWrapper): (WebCore::AllowCrossThreadAccessWrapper::value): (WebCore::AllowCrossThreadAccess): (WebCore::AllowExtendedLifetimeWrapper::AllowExtendedLifetimeWrapper): (WebCore::AllowExtendedLifetimeWrapper::value): (WebCore::AllowExtendedLifetime): * platform/graphics/chromium/cc/CCCompletionEvent.h: * storage/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::get): (WebCore::IDBObjectStoreBackendImpl::put): (WebCore::IDBObjectStoreBackendImpl::deleteFunction): (WebCore::IDBObjectStoreBackendImpl::clear): (WebCore::IDBObjectStoreBackendImpl::createIndex): (WebCore::IDBObjectStoreBackendImpl::deleteIndex): (WebCore::IDBObjectStoreBackendImpl::openCursor): * storage/SQLCallbackWrapper.h: (WebCore::SQLCallbackWrapper::clear): * websockets/WorkerThreadableWebSocketChannel.cpp: (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadCreateWebSocketChannel): (WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge): (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect): (WebCore::WorkerThreadableWebSocketChannel::Bridge::send): (WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount): (WebCore::WorkerThreadableWebSocketChannel::Bridge::close): (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect): (WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend): (WebCore::WorkerThreadableWebSocketChannel::Bridge::resume): * workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject): 2011-04-27 Adam Barth <abarth@webkit.org> Two build fixes from the future. (Trivial strict OwnPtr fixes.) * page/Frame.cpp: (WebCore::Frame::setTiledBackingStoreEnabled): * platform/audio/ReverbConvolver.cpp: (WebCore::ReverbConvolver::ReverbConvolver): 2011-04-27 Adam Barth <abarth@webkit.org> Reviewed by David Levin. Fix five strict PassOwnPtr violations in WebCore https://bugs.webkit.org/show_bug.cgi?id=59640 * css/MediaList.cpp: (WebCore::MediaList::deleteMedium): (WebCore::MediaList::setMediaText): (WebCore::MediaList::appendMedium): * css/MediaQuery.h: * dom/MessagePort.cpp: (WebCore::MessagePort::disentanglePorts): (WebCore::MessagePort::entanglePorts): * inspector/InspectorStyleSheet.cpp: (ParsedStyleSheet::setText): * rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): (WebCore::RenderTheme::adjustMeterStyle): * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::adjustMenuListStyle): (WebCore::RenderThemeMac::adjustSliderTrackStyle): (WebCore::RenderThemeMac::adjustSliderThumbStyle): (WebCore::RenderThemeMac::adjustSearchFieldStyle): (WebCore::RenderThemeMac::adjustSearchFieldCancelButtonStyle): (WebCore::RenderThemeMac::adjustSearchFieldDecorationStyle): (WebCore::RenderThemeMac::adjustSearchFieldResultsDecorationStyle): (WebCore::RenderThemeMac::adjustSearchFieldResultsButtonStyle): 2011-04-27 Chris Fleizach <cfleizach@apple.com> Reviewed by Beth Dakin. <rdar://problem/9315254> ARIA role attribute implemented incorrectly; does not support token list with fallbacks https://bugs.webkit.org/show_bug.cgi?id=59648 Test: accessibility/aria-fallback-roles.html * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::ariaRoleToWebCoreRole): 2011-04-27 Beth Dakin <bdakin@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=59671 Race condition with scrollbar animations and closing a page can cause a crash in WebCore::FrameView::setVisibleScrollerThumbRect + 15 -and corresponding- <rdar://problem/9329253> It is definitely possible for Page to be null here. So we should null-check it! And we should not ASSERT. * page/FrameView.cpp: (WebCore::FrameView::didCompleteRubberBand): (WebCore::FrameView::scrollbarStyleChanged): (WebCore::FrameView::setVisibleScrollerThumbRect): 2011-04-27 Ryosuke Niwa <rniwa@webkit.org> WinCE build fix after r85143. * platform/graphics/wince/FontWinCE.cpp: (WebCore::TextRunComponent::TextRunComponent): 2011-04-27 Mark Pilgrim <pilgrim@chromium.org> Reviewed by Tony Chang. IndexedDB object store delete should fail if key is null https://bugs.webkit.org/show_bug.cgi?id=58614 Test: storage/indexeddb/mozilla/key-requirements-delete-null-key.html * storage/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::deleteFunction): 2011-04-27 Eric Seidel <eric@webkit.org> Reviewed by Ryosuke Niwa. Should have an easy way to construct starting BidiStatus for a paragraph root https://bugs.webkit.org/show_bug.cgi?id=59226 Two places try to construct BidiStatuses for a paragraph root using copy/paste code. I've made this a constructor for BidiStatus instead. As part of this effort I added a direction() accessor for TextRun and got rid of the old m_rtl bool. This is part of the generic effort in the Bidi code to replace old bool usage with the superior TextDirection enum (this generally makes the code cleaner). As part of this replacement effort I found several places which were assuming LTR (by passing rtl=false) when they probably want to use the current text direction. I suspect that LTR vs. RTL may affect string width in the case of ligatures. It's unclear. This is almost entirely a mechanical change. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawTextInternal): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawBidiText): * platform/graphics/TextRun.h: (WebCore::TextRun::TextRun): (WebCore::TextRun::direction): (WebCore::TextRun::rtl): (WebCore::TextRun::ltr): (WebCore::TextRun::setDirection): * platform/text/BidiResolver.h: (WebCore::BidiStatus::BidiStatus): * rendering/EllipsisBox.cpp: (WebCore::EllipsisBox::paint): (WebCore::EllipsisBox::selectionRect): (WebCore::EllipsisBox::paintSelection): * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::selectionRect): (WebCore::InlineTextBox::paint): (WebCore::InlineTextBox::paintSelection): (WebCore::InlineTextBox::paintCompositionBackground): (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): (WebCore::InlineTextBox::paintTextMatchMarker): (WebCore::InlineTextBox::computeRectForReplacementMarker): (WebCore::InlineTextBox::offsetForPosition): (WebCore::InlineTextBox::positionForOffset): * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::determineStartPosition): * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): (WebCore::RenderFileUploadControl::computePreferredLogicalWidths): * rendering/RenderListBox.cpp: (WebCore::RenderListBox::updateFromElement): (WebCore::RenderListBox::paintItemForeground): * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::getAvgCharWidth): (WebCore::RenderTextControl::paintPlaceholder): * rendering/svg/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::constructTextRun): * rendering/svg/SVGTextMetrics.cpp: (WebCore::constructTextRun): 2011-04-27 Robert Hogan <robert@webkit.org> Reviewed by Adam Barth. Allow shadowing of history object https://bugs.webkit.org/show_bug.cgi?id=55965 Tests: http/tests/history/cross-origin-replace-history-object-child.html http/tests/history/cross-origin-replace-history-object.html * page/DOMWindow.idl: 2011-04-27 James Robinson <jamesr@chromium.org> Reviewed by Kenneth Russell. [chromium] Ensure compositing layers are up to date before entering doComposite https://bugs.webkit.org/show_bug.cgi?id=59159 Adds some assertions to try to catch GraphicsLayer mutations at bad times (such as during GraphicsLayerClient::paintContents() implementations). * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::LayerChromium): (WebCore::LayerChromium::~LayerChromium): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updateLayers): * platform/graphics/chromium/LayerRendererChromium.h: Add a set of assertions that we aren't creating or destroying LayerChromiums during paintContents 2011-04-27 James Robinson <jamesr@chromium.org> Reviewed by Adam Barth. Fix OwnPtr strict issues in chromium linux build https://bugs.webkit.org/show_bug.cgi?id=59664 * platform/graphics/chromium/ComplexTextControllerLinux.cpp: (WebCore::ComplexTextController::getNormalizedTextRun): * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::ImageBuffer): * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::PlatformContextSkia): 2011-04-27 Chris Rogers <crogers@google.com> Reviewed by Kenneth Russell. Make sure to set sample-rate of created AudioBus in AudioBus::createBySampleRateConverting() https://bugs.webkit.org/show_bug.cgi?id=59641 No new tests since audio API is not yet implemented. * platform/audio/AudioBus.cpp: (WebCore::AudioBus::createBySampleRateConverting): (WebCore::AudioBus::createByMixingToMono): 2011-04-27 Geoffrey Garen <ggaren@apple.com> Motivated by Alexey Proskuryakov. * bindings/scripts/CodeGeneratorJS.pm: Tried to make this comment more informative, since it confused Alexey and me. 2011-04-27 Geoffrey Garen <ggaren@apple.com> Reviewed by Sam Weinig. Fixed a small leak related to CSSValues when deallocating a DOMWrapperWorld https://bugs.webkit.org/show_bug.cgi?id=59646 Made the cssValueRoots map per-world, instead of a global. When we deallocate a world, we need to clear all entries in the map for that world, since the finalizers that would otherwise clear those entries don't run. The simplest way to do this is just to make the world own the map. * bindings/js/DOMWrapperWorld.h: * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::getPropertyCSSValue): * bindings/js/JSCSSValueCustom.cpp: (WebCore::JSCSSValueOwner::isReachableFromOpaqueRoots): (WebCore::JSCSSValueOwner::finalize): * bindings/js/JSDOMBinding.h: 2011-04-27 Adam Barth <abarth@webkit.org> Reviewed by David Levin. Fix OwnPtr issues in IndexedDB https://bugs.webkit.org/show_bug.cgi?id=59656 I didn't do an exhaustive review of this code, but I fixed the problems caught by turning on strict OwnPtr and all their antecedents. This patch is entirely tighter bookkeeping. There shouldn't be any actual behavior change. * platform/leveldb/LevelDBDatabase.cpp: (WebCore::LevelDBDatabase::LevelDBDatabase): (WebCore::LevelDBDatabase::open): (WebCore::LevelDBDatabase::createIterator): * platform/leveldb/LevelDBDatabase.h: * platform/leveldb/LevelDBIterator.cpp: (WebCore::LevelDBIterator::LevelDBIterator): * platform/leveldb/LevelDBIterator.h: * storage/IDBLevelDBBackingStore.cpp: (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore): (WebCore::IDBLevelDBBackingStore::open): (WebCore::getNewDatabaseId): (WebCore::IDBLevelDBBackingStore::getObjectStores): (WebCore::getNewObjectStoreId): (WebCore::deleteRange): (WebCore::IDBLevelDBBackingStore::nextAutoIncrementNumber): (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord): (WebCore::IDBLevelDBBackingStore::getIndexes): (WebCore::getNewIndexId): (WebCore::findGreatestKeyLessThan): (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex): (WebCore::IDBLevelDBBackingStore::keyExistsInIndex): (WebCore::findLastIndexKeyEqualTo): * storage/IDBLevelDBBackingStore.h: 2011-04-19 MORITA Hajime <morrita@google.com> Reviewed by Tony Chang. [Refactoring] DocumentMarkerController::MarkerMapVectorPair should be replaced with a list of some class. https://bugs.webkit.org/show_bug.cgi?id=58113 * Introduced RenderedDocumentMarker, a subclass of DocumentMarker. * Eliminated Vector<IntRect> and move the IntRect into RenderedDocumentMarker * Now MarkerMapVectorPair is no longer used. No new tests, No behavior change. * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/DocumentMarker.h: * dom/DocumentMarkerController.cpp: (WebCore::DocumentMarkerController::addMarker): (WebCore::DocumentMarkerController::copyMarkers): (WebCore::DocumentMarkerController::removeMarkers): (WebCore::DocumentMarkerController::markerContainingPoint): (WebCore::DocumentMarkerController::markersForNode): (WebCore::DocumentMarkerController::renderedRectsForMarkers): (WebCore::DocumentMarkerController::removeMarkersFromList): (WebCore::DocumentMarkerController::repaintMarkers): (WebCore::DocumentMarkerController::setRenderedRectForMarker): (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect): (WebCore::DocumentMarkerController::shiftMarkers): (WebCore::DocumentMarkerController::setMarkersActive): (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange): (WebCore::DocumentMarkerController::showMarkers): * dom/DocumentMarkerController.h: * dom/RenderedDocumentMarker.h: Added. (WebCore::RenderedDocumentMarker::RenderedDocumentMarker): (WebCore::RenderedDocumentMarker::isRendered): (WebCore::RenderedDocumentMarker::contains): (WebCore::RenderedDocumentMarker::setRenderedRect): (WebCore::RenderedDocumentMarker::renderedRect): (WebCore::RenderedDocumentMarker::invalidate): (WebCore::RenderedDocumentMarker::invalidMarkerRect): 2011-04-27 James Robinson <jamesr@chromium.org> Unreviewed, rolling out r85112. http://trac.webkit.org/changeset/85112 https://bugs.webkit.org/show_bug.cgi?id=59159 Broke mac compile * page/FrameView.cpp: (WebCore::FrameView::updateCompositingLayers): * page/FrameView.h: * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::LayerChromium): (WebCore::LayerChromium::~LayerChromium): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updateLayers): * platform/graphics/chromium/LayerRendererChromium.h: 2011-04-27 Mark Rowe <mrowe@apple.com> Build fix. * WebCore.xcodeproj/project.pbxproj: Make RenderLayerCompositor.h accessbile to WebKit and WebKit2. 2011-04-27 Pratik Solanki <psolanki@apple.com> Unreviewed. Fix WinCE build. The include should be guarded inside USE(CFNETWORK). * platform/network/ResourceHandleClient.h: 2011-04-27 James Robinson <jamesr@chromium.org> Reviewed by Kenneth Russell. [chromium] Ensure compositing layers are up to date before entering doComposite https://bugs.webkit.org/show_bug.cgi?id=59159 Adds some assertions to try to catch GraphicsLayer mutations at bad times (such as during GraphicsLayerClient::paintContents() implementations). * page/FrameView.cpp: (WebCore::FrameView::updateCompositingLayers): Add an optional CompositingUpdateType parameter. * page/FrameView.h: * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::LayerChromium): (WebCore::LayerChromium::~LayerChromium): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updateLayers): * platform/graphics/chromium/LayerRendererChromium.h: Add a set of assertions that we aren't creating or destroying LayerChromiums during paintContents * rendering/RenderLayer.cpp: (WebCore::RenderLayer::dirtyZOrderLists): (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded): * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateCompositingLayers): * rendering/RenderLayerCompositor.h: Fix a typo in CompositingUpdateType Pait->Paint 2011-04-27 Pratik Solanki <psolanki@apple.com> Reviewed by Antti Koivisto. Part of WebCore should use CFNetwork-based loader on Mac https://bugs.webkit.org/show_bug.cgi?id=51836 Add willCacheResponse method when using CFNetwork on Mac. Also put appropriate ifdefs around willCacheResponse/shouldCacheResponse. * loader/EmptyClients.h: * loader/FrameLoaderClient.h: * loader/ResourceLoader.h: * loader/cf/ResourceLoaderCFNet.cpp: * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::willCacheResponse): * platform/network/ResourceHandleClient.h: (WebCore::ResourceHandleClient::willCacheResponse): (WebCore::ResourceHandleClient::shouldCacheResponse): * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willCacheResponse): 2011-04-27 Ilya Tikhonovsky <loislo@chromium.org> Reviewed by Brian Weinstein. Web Inspector: Stop on Exception state does not persist. A wrong property name was used when we persist PauseOnExceptionState property to Local Storage. https://bugs.webkit.org/show_bug.cgi?id=59630 * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._debuggerWasEnabled): (WebInspector.ScriptsPanel.prototype._setPauseOnExceptions.callback): (WebInspector.ScriptsPanel.prototype._setPauseOnExceptions): 2011-04-27 Adrienne Walker <enne@google.com> [chromium] Unreviewed, rollout r85075 (scissor rect changes) https://bugs.webkit.org/show_bug.cgi?id=59020 * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces): 2011-04-27 Darin Adler <darin@apple.com> Reviewed by David Levin. Fix strict OwnPtr issues seen in about 30 more files https://bugs.webkit.org/show_bug.cgi?id=59615 * bindings/js/JSCallbackData.h: (WebCore::DeleteCallbackDataTask::create): Use adoptPtr. * bindings/js/JSMessageEventCustom.cpp: (WebCore::JSMessageEvent::initMessageEvent): Use adoptPtr. * css/CSSParser.cpp: (WebCore::CSSParser::updateSpecifiersWithElementName): Use OwnPtr, adoptPtr, and release. * dom/MessageEvent.cpp: (WebCore::MessageEvent::initMessageEvent): Use OwnPtr, adoptPtr, and release. * dom/MessagePortChannel.cpp: (WebCore::MessagePortChannel::EventData::create): Use adoptPtr. * dom/ScriptExecutionContext.cpp: (WebCore::ProcessMessagesSoonTask::create): Use adoptPtr. * dom/XMLDocumentParserLibxml2.cpp: (WebCore::XMLDocumentParser::doEnd): Use adoptPtr. * dom/default/PlatformMessagePortChannel.cpp: (WebCore::MessagePortChannel::create): Use adoptPtr. * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::detach): Use nullptr. * inspector/InspectorAgent.cpp: (WebCore::PostWorkerNotificationToFrontendTask::create): Use adoptPtr. * inspector/InspectorConsoleAgent.cpp: (WebCore::InspectorConsoleAgent::addMessageToConsole): Use adoptPtr. (WebCore::InspectorConsoleAgent::didReceiveResponse): Use adoptPtr. (WebCore::InspectorConsoleAgent::didFailLoading): Use adoptPtr. * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): Use adoptPtr. * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::didInvalidateStyleAttr): Use adoptPtr. * inspector/InspectorResourceAgent.cpp: (WebCore::InspectorResourceAgent::InspectorResourceAgent): Use adoptPtr. * page/FrameActionScheduler.cpp: (WebCore::FrameActionScheduler::scheduleEvent): Use adoptPtr. * platform/graphics/ShadowBlur.cpp: (WebCore::ScratchBuffer::clearScratchBuffer): Use nullptr. * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayer::create): Use adoptPtr. (WebCore::GraphicsLayerCA::ensureCloneLayers): Use adoptPtr. (WebCore::GraphicsLayerCA::removeCloneLayers): Use nullptr. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::setMaxMarginBeforeValues): Use adoptPtr. (WebCore::RenderBlock::setMaxMarginAfterValues): Use adoptPtr. (WebCore::RenderBlock::setPaginationStrut): Use adoptPtr. (WebCore::RenderBlock::setPageLogicalOffset): Use adoptPtr. * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::destroyGraphicsLayer): Use nullptr. (WebCore::RenderLayerBacking::updateClippingLayers): Use nullptr. (WebCore::RenderLayerBacking::updateForegroundLayer): Use nullptr. (WebCore::RenderLayerBacking::updateMaskLayer): Use nullptr. * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): Use nullptr. (WebCore::RenderLayerCompositor::ensureRootPlatformLayer): Use nullptr. (WebCore::RenderLayerCompositor::destroyRootPlatformLayer): Use nullptr. * rendering/style/StyleRareNonInheritedData.cpp: (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): Removed explicit initializations of OwnPtr members to 0. Use adoptPtr. * workers/SharedWorkerContext.cpp: (WebCore::createConnectEvent): Use adoptPtr. * workers/Worker.cpp: (WebCore::Worker::notifyFinished): Use nullptr. 2011-04-27 Enrica Casucci <enrica@apple.com> Reviewed by Darin Adler. REGRESSION (r84311): Copy should preserve background color if specified in the body only if the entire content is selected. https://bugs.webkit.org/show_bug.cgi?id=59251 <rdar://problem/9327044> When we are looking for wrapping elements that are presentational, we should include elements that have a non transparent background color only if they are not blocks. Test: editing/pasteboard/do-not-copy-body-color.html * editing/markup.cpp: (WebCore::isElementPresentational): 2011-04-20 Dimitri Glazkov <dglazkov@chromium.org> Reviewed by Antti Koivisto. Teach sub-selector chains about shadow descendants https://bugs.webkit.org/show_bug.cgi?id=58342 The primary change is to the logic of parsing specifiers: 1) The shadow descendant selectors (those specifiers that are unknown pseudo element selectors) are always kept at the top of the chain. 2) The sub-selectors after shadow descendant selectors are stashed right behind the sub-selector, but not at the end of the chain. 3) Other sub-selectors are appended at the end of the chain. * css/CSSGrammar.y: Changed specifier_list collection to use new CSSParser::updateSpecifier helper. * css/CSSParser.cpp: (WebCore::CSSParser::updateSpecifiersWithElementName): Added logic to look for the last ShadowDescendant relation in the chain of selectors, because the next selector after it is the one that should get the element name. (WebCore::CSSParser::updateSpecifiers): Moved and modified the logic from CSSGrammar.y. The new logic adjusts the selector chain to allow shadow descendant selectors have sub-selectors (and have multiple shadow descendants in the chain). * css/CSSParser.h: Added decl. * css/CSSParserValues.cpp: (WebCore::CSSParserSelector::insertTagHistory): Added. (WebCore::CSSParserSelector::appendTagHistory): Aded. * css/CSSParserValues.h: Added decls. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Added shadow descendant selector match check, since now there could be many of them in the selector chain. 2011-04-20 Adrienne Walker <enne@google.com> Reviewed by Kenneth Russell. [chromium] Fix incorrect scissor rect for layers that render into a rendersurface https://bugs.webkit.org/show_bug.cgi?id=59020 mapRect is the incorrect transform here. The parent scissor rect needs to be projected into layer space instead. Test: compositing/flat-with-transformed-child.html * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces): 2011-04-27 Pratik Solanki <psolanki@apple.com> Reviewed by Antti Koivisto. Part of WebCore should use CFNetwork-based loader on Mac https://bugs.webkit.org/show_bug.cgi?id=51836 * Configurations/WebCore.xcconfig: Add location of CFNetwork.framework. * platform/mac/SoftLinking.h: * platform/network/cf/CookieJarCFNet.cpp: Soft-link in CFNetwork functions on Mac. 2011-04-27 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Antti Koivisto. Cleanup CSSStyleApplyProperty.cpp https://bugs.webkit.org/show_bug.cgi?id=59623 As first step remove ApplyPropertyColorBase, merge it with ApplyPropertyColor, there's no need for two seperated classes. Use typedefs instead of repating the function pointer declarations in a few places. * css/CSSStyleApplyProperty.cpp: (WebCore::ApplyPropertyDefault::ApplyPropertyDefault): (WebCore::ApplyPropertyColor::ApplyPropertyColor): (WebCore::ApplyPropertyColor::applyInheritValue): (WebCore::ApplyPropertyColor::applyInitialValue): (WebCore::ApplyPropertyColor::applyValue): (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): 2011-04-27 Dan Bernstein <mitz@apple.com> Reviewed by Anders Carlsson. <rdar://problem/9335973> REGRESSION (r84341): Buttons in the Mac App store are rendered incorrectly https://bugs.webkit.org/show_bug.cgi?id=59622 Test: fast/borders/border-image-trumps-radius.html * rendering/RenderBox.cpp: (WebCore::RenderBox::determineBackgroundBleedAvoidance): If there is a renderable, loaded border image, then border radius is ignored, so no bleed avoidance is needed. * rendering/RenderObject.cpp: (WebCore::RenderObject::borderImageIsLoadedAndCanBeRendered): Added. Moved some logic here from... (WebCore::RenderObject::mustRepaintBackgroundOrBorder): ...here. * rendering/RenderObject.h: 2011-02-03 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK] editing/pasteboard/copy-standalone-image.html fails https://bugs.webkit.org/show_bug.cgi?id=53645 When writing an image to the clipboard, also write the URL and title into the markup and URL portion. This change also abstracts a helper imageToMarkup into markup.{cpp/h} from several different locations throughout the platform layer. * editing/markup.h: Added new function definition. * editing/markup.cpp: (WebCore::imageToMarkup): Add this function which turns an image URL and element into some markup representing that image, while preserving non-src attributes. * platform/chromium/ClipboardChromium.cpp: Move the imageToMarkup helper to markup.cpp. * platform/gtk/PasteboardGtk.cpp: (WebCore::getURLForImageNode): Add this helper which gets the appropriate image URL for a variety of image tag types. (WebCore::Pasteboard::writeImage): Write the image URL and title to the markup and URL portions of the clipboard. This will ensure that images paste properly back into WebKit. * platform/win/ClipboardWin.cpp: Remove the imageToMarkup helper and the one from markup.h 2011-04-27 Steve Block <steveblock@google.com> Reviewed by David Levin. Remove Android build system https://bugs.webkit.org/show_bug.cgi?id=48111 This is to avoid the maintenance burden until the Android port is fully upstreamed. No new tests, build change only. * Android.derived.jscbindings.mk: Removed. * Android.derived.mk: Removed. * Android.derived.v8bindings.mk: Removed. * Android.jscbindings.mk: Removed. * Android.mk: Removed. * Android.v8bindings.mk: Removed. 2011-04-27 Darin Adler <darin@apple.com> Reviewed by Sam Weinig. Somehow about:blank gets into the icon database https://bugs.webkit.org/show_bug.cgi?id=58067 rdar://problem/6751446 Implemented the policy Brady suggested, where only http and https URLs can be associated with and icon, guarding both on the way in to the database, and on the way out. * loader/icon/IconDatabase.cpp: (WebCore::pageCanHaveIcon): Added. (WebCore::IconDatabase::synchronousIconForPageURL): Call pageCanHaveIcon instead of just checking for an empty URL. (WebCore::IconDatabase::synchronousIconURLForPageURL): Ditto. (WebCore::IconDatabase::retainIconForPageURL): Ditto. (WebCore::IconDatabase::releaseIconForPageURL): Ditto. (WebCore::IconDatabase::setIconURLForPageURL): Ditto. (WebCore::IconDatabase::getOrCreatePageURLRecord): Ditto. (WebCore::IconDatabase::importIconURLForPageURL): Broke assertion into two separate assertions and added a third. (WebCore::IconDatabase::performURLImport): Call pageCanHaveIcon. * platform/KURL.cpp: Sorted includes. Moved a FIXME to the top of the file. (WebCore::isLetterMatchIgnoringCase): Renamed matchLetter to this name, overloaded it to work on both UChar and char, and added an assertion to it. Also moved this to the top of the file and made the UChar version usable in the shared code used even by Google. (WebCore::KURL::invalidate): Updated for name change. (WebCore::KURL::protocolIs): Use isLetterMatchIgnoringCase instead of toASCIILower since it's faster. (WebCore::KURL::parse): Updated for name changes. (WebCore::protocolIs):Use isLetterMatchIgnoringCase instead of toASCIILower since it's faster. (WebCore::protocolIsInHTTPFamily): Added. * platform/KURL.h: Tweaked formatting. Renamed protocolInHTTPFamily to protocolIsInHTTPFamily and added a version that works on a string. Kept the old name as an inline function so we don't have to rename all the cal sites now. * platform/KURLGoogle.cpp: Renamed as above. (WebCore::KURLGooglePrivate::KURLGooglePrivate): Updated for rename. (WebCore::KURLGooglePrivate::setUtf8): Ditto. (WebCore::KURLGooglePrivate::setAscii): Ditto. (WebCore::KURLGooglePrivate::initProtocolIsInHTTPFamily): Ditto. (WebCore::KURLGooglePrivate::copyTo): Ditto. (WebCore::KURL::KURL): Ditto. (WebCore::KURL::protocolIsInHTTPFamily): Ditto. (WebCore::KURL::invalidate): Ditto. * platform/KURLGooglePrivate.h: Ditto. * WebCore.exp.in: Updated for above changes. 2011-04-27 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: browser crash on evaluation of 'throw undefined' https://bugs.webkit.org/show_bug.cgi?id=59611 Test: inspector/console/console-eval-throw-undefined.html * inspector/InjectedScriptSource.js: use try/catch to protect from exception during conversion of another exception to string. 2011-04-27 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: clicking bookmarklet multiplies resources panel entries. https://bugs.webkit.org/show_bug.cgi?id=59590 * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel): (WebInspector.ResourceTreeModel.prototype._processCachedResources): (WebInspector.ResourceTreeModel.prototype._frameNavigated): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._populateResourceTree): (WebInspector.FrameTreeElement): (WebInspector.FrameTreeElement.prototype.appendResource): * inspector/front-end/inspector.js: (WebInspector.frontendReused): 2011-04-27 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: opening bookmarklet disconnects DOM agent. https://bugs.webkit.org/show_bug.cgi?id=59588 * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::setDocument): 2011-04-27 Hans Wennborg <hans@chromium.org> Reviewed by Tony Gentilcore. IndexedDB: Fix compiler warnings about uninitialized variables https://bugs.webkit.org/show_bug.cgi?id=59599 Build fix. No new tests. * storage/IDBLevelDBBackingStore.cpp: (WebCore::getNewObjectStoreId): (WebCore::getNewIndexId): 2011-04-26 Hans Wennborg <hans@chromium.org> Reviewed by Tony Gentilcore. IndexedDB: Move LevelDB key coding routines to separate file https://bugs.webkit.org/show_bug.cgi?id=59452 Move all routines concerned with encoding, decoding and comparison of LevelDB keys from IDBLevelDBBackingStore.cpp to a separate file: IDBLevelDBCoding.cpp. This makes IDBLevelDBBackingStore.cpp easier to work with, and will allow for unit testing of the coding routines. No new functionality, no new tests. * WebCore.gypi: * storage/IDBLevelDBBackingStore.cpp: (WebCore::getInt): (WebCore::putInt): (WebCore::getString): (WebCore::putString): (WebCore::compareKeys): (WebCore::compareIndexKeys): (WebCore::Comparator::compare): (WebCore::setUpMetadata): (WebCore::IDBLevelDBBackingStore::extractIDBDatabaseMetaData): (WebCore::getNewDatabaseId): (WebCore::IDBLevelDBBackingStore::setIDBDatabaseMetaData): (WebCore::IDBLevelDBBackingStore::getObjectStores): (WebCore::getNewObjectStoreId): (WebCore::IDBLevelDBBackingStore::createObjectStore): (WebCore::IDBLevelDBBackingStore::deleteObjectStore): (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord): (WebCore::getNewVersionNumber): (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord): (WebCore::IDBLevelDBBackingStore::clearObjectStore): (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord): (WebCore::IDBLevelDBBackingStore::nextAutoIncrementNumber): (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore): (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord): (WebCore::IDBLevelDBBackingStore::getIndexes): (WebCore::getNewIndexId): (WebCore::IDBLevelDBBackingStore::createIndex): (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord): (WebCore::versionExists): (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex): (WebCore::IDBLevelDBBackingStore::keyExistsInIndex): (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor): (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor): (WebCore::IDBLevelDBBackingStore::openIndexCursor): * storage/IDBLevelDBCoding.cpp: Added. (WebCore::IDBLevelDBCoding::encodeByte): (WebCore::IDBLevelDBCoding::maxIDBKey): (WebCore::IDBLevelDBCoding::minIDBKey): (WebCore::IDBLevelDBCoding::encodeInt): (WebCore::IDBLevelDBCoding::decodeInt): (WebCore::IDBLevelDBCoding::encodeVarInt): (WebCore::IDBLevelDBCoding::decodeVarInt): (WebCore::IDBLevelDBCoding::encodeString): (WebCore::IDBLevelDBCoding::decodeString): (WebCore::IDBLevelDBCoding::encodeStringWithLength): (WebCore::IDBLevelDBCoding::decodeStringWithLength): (WebCore::IDBLevelDBCoding::encodeDouble): (WebCore::IDBLevelDBCoding::decodeDouble): (WebCore::IDBLevelDBCoding::encodeIDBKey): (WebCore::IDBLevelDBCoding::decodeIDBKey): (WebCore::IDBLevelDBCoding::extractEncodedIDBKey): (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): (WebCore::IDBLevelDBCoding::compare): (WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix): (WebCore::IDBLevelDBCoding::KeyPrefix::decode): (WebCore::IDBLevelDBCoding::KeyPrefix::encode): (WebCore::IDBLevelDBCoding::KeyPrefix::compare): (WebCore::IDBLevelDBCoding::KeyPrefix::type): (WebCore::IDBLevelDBCoding::SchemaVersionKey::encode): (WebCore::IDBLevelDBCoding::MaxDatabaseIdKey::encode): (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::DatabaseFreeListKey): (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::decode): (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::encode): (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::databaseId): (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::compare): (WebCore::IDBLevelDBCoding::DatabaseNameKey::decode): (WebCore::IDBLevelDBCoding::DatabaseNameKey::encode): (WebCore::IDBLevelDBCoding::DatabaseNameKey::compare): (WebCore::IDBLevelDBCoding::DatabaseMetaDataKey::encode): (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::ObjectStoreMetaDataKey): (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::decode): (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encode): (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::objectStoreId): (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::metaDataType): (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare): (WebCore::IDBLevelDBCoding::IndexMetaDataKey::IndexMetaDataKey): (WebCore::IDBLevelDBCoding::IndexMetaDataKey::decode): (WebCore::IDBLevelDBCoding::IndexMetaDataKey::encode): (WebCore::IDBLevelDBCoding::IndexMetaDataKey::compare): (WebCore::IDBLevelDBCoding::IndexMetaDataKey::indexId): (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::ObjectStoreFreeListKey): (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::decode): (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::encode): (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::objectStoreId): (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::compare): (WebCore::IDBLevelDBCoding::IndexFreeListKey::IndexFreeListKey): (WebCore::IDBLevelDBCoding::IndexFreeListKey::decode): (WebCore::IDBLevelDBCoding::IndexFreeListKey::encode): (WebCore::IDBLevelDBCoding::IndexFreeListKey::compare): (WebCore::IDBLevelDBCoding::IndexFreeListKey::objectStoreId): (WebCore::IDBLevelDBCoding::IndexFreeListKey::indexId): (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::decode): (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::encode): (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::compare): (WebCore::IDBLevelDBCoding::IndexNamesKey::IndexNamesKey): (WebCore::IDBLevelDBCoding::IndexNamesKey::decode): (WebCore::IDBLevelDBCoding::IndexNamesKey::encode): (WebCore::IDBLevelDBCoding::IndexNamesKey::compare): (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::decode): (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::encode): (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare): (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::userKey): (WebCore::IDBLevelDBCoding::ExistsEntryKey::decode): (WebCore::IDBLevelDBCoding::ExistsEntryKey::encode): (WebCore::IDBLevelDBCoding::ExistsEntryKey::compare): (WebCore::IDBLevelDBCoding::ExistsEntryKey::userKey): (WebCore::IDBLevelDBCoding::IndexDataKey::IndexDataKey): (WebCore::IDBLevelDBCoding::IndexDataKey::decode): (WebCore::IDBLevelDBCoding::IndexDataKey::encode): (WebCore::IDBLevelDBCoding::IndexDataKey::encodeMaxKey): (WebCore::IDBLevelDBCoding::IndexDataKey::compare): (WebCore::IDBLevelDBCoding::IndexDataKey::databaseId): (WebCore::IDBLevelDBCoding::IndexDataKey::objectStoreId): (WebCore::IDBLevelDBCoding::IndexDataKey::indexId): (WebCore::IDBLevelDBCoding::IndexDataKey::userKey): * storage/IDBLevelDBCoding.h: Added. (WebCore::IDBLevelDBCoding::DatabaseNameKey::origin): (WebCore::IDBLevelDBCoding::DatabaseNameKey::databaseName): (WebCore::IDBLevelDBCoding::IndexMetaDataKey::metaDataType): (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::objectStoreName): (WebCore::IDBLevelDBCoding::IndexNamesKey::indexName): 2011-04-27 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: expose exception details when script is paused on exception https://bugs.webkit.org/show_bug.cgi?id=59591 When script is paused on an exception, the exception value is added as <exception> property in the local scope and the breakpoint details message says "Paused on excepion: '<exception to strin value>'." * English.lproj/localizedStrings.js: * inspector/front-end/ScopeChainSidebarPane.js: (WebInspector.ScopeChainSidebarPane.prototype.update): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._debuggerPaused.else.didGetSourceLocation): (WebInspector.ScriptsPanel.prototype._debuggerPaused): 2011-04-26 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: [protocol] Paused event should expose exception value that caused it https://bugs.webkit.org/show_bug.cgi?id=58996 Debug.pause event now contains an optional reference to the exception object in case script execution is paused on a JavaScript exception. Also JavaScript call frames are passed directly into the injected script when we need to wrap them for passing to the front-end. This change breaks cyclic dependency ScriptDebugServer->InspectorDebuggerAgent->InjectedScript->InjectedScriptHost->ScriptDebugServer * bindings/js/JSInjectedScriptHostCustom.cpp: * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::dispatchDidPause): * bindings/js/ScriptDebugServer.h: * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::breakProgram): (WebCore::ScriptDebugServer::editScriptSource): (WebCore::ScriptDebugServer::breakProgramCallback): (WebCore::ScriptDebugServer::handleV8DebugEvent): * bindings/v8/ScriptDebugServer.h: * bindings/v8/custom/V8InjectedScriptHostCustom.cpp: * inspector/InjectedScript.cpp: (WebCore::InjectedScript::evaluateOnCallFrame): (WebCore::InjectedScript::wrapCallFrames): * inspector/InjectedScript.h: * inspector/InjectedScriptHost.cpp: * inspector/InjectedScriptHost.h: (WebCore::InjectedScriptHost::init): * inspector/InjectedScriptHost.idl: * inspector/InjectedScriptSource.js: (.): * inspector/Inspector.json: * inspector/InspectorAgent.cpp: (WebCore::InspectorAgent::InspectorAgent): * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame): (WebCore::InspectorDebuggerAgent::currentCallFrames): (WebCore::InspectorDebuggerAgent::wrapCallFrames): (WebCore::InspectorDebuggerAgent::didPause): (WebCore::InspectorDebuggerAgent::didContinue): (WebCore::InspectorDebuggerAgent::clear): * inspector/InspectorDebuggerAgent.h: * inspector/ScriptDebugListener.h: * inspector/WorkerInspectorController.cpp: (WebCore::WorkerInspectorController::WorkerInspectorController): 2011-04-27 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: implement incremental CSS editing in the structure view. https://bugs.webkit.org/show_bug.cgi?id=59455 * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylePropertyTreeElement.prototype): 2011-04-27 Mihai Parparita <mihaip@chromium.org> Reviewed by Eric Seidel. Frame.h shouldn't include Document.h https://bugs.webkit.org/show_bug.cgi?id=59560 Frame can use a forward-declared Document if we move Frame::displayStringModifiedByEncoding's implementation out of the header. Size #includes Size * #includes Before: page/Frame.h: 0.746 653 487.138 dom/Document.h: 0.220 1306 287.320 After: page/Frame.h: 0.646 653 421.838 dom/Document.h: 0.220 1189 261.580 * WebCore.exp.in: * bindings/ScriptControllerBase.cpp: * bindings/generic/BindingSecurityBase.cpp: * bindings/v8/V8Proxy.cpp: * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: * dom/CharacterData.cpp: * dom/UserTypingGestureIndicator.cpp: * editing/chromium/SelectionControllerChromium.cpp: * inspector/InspectorDOMStorageResource.cpp: * inspector/InspectorInstrumentation.h: * loader/PingLoader.cpp: * loader/SubresourceLoader.cpp: * loader/appcache/DOMApplicationCache.cpp: * loader/cache/CachedResourceRequest.cpp: * page/Frame.cpp: (WebCore::Frame::displayStringModifiedByEncoding): * page/Frame.h: * page/Geolocation.cpp: * page/Location.cpp: * page/Navigator.cpp: * page/PageGroupLoadDeferrer.cpp: * page/PerformanceTiming.cpp: * xml/XSLTProcessorLibxslt.cpp: 2011-04-27 James Robinson <jamesr@chromium.org> Reviewed by Eric Seidel. Fix OwnPtr strict errors in RenderStyle and make StyleRareInheritedData::textShadow an OwnPtr https://bugs.webkit.org/show_bug.cgi?id=59377 This cleans up some strict OwnPtr<> violations around text and box shadow data. ShadowData's linked list data structure now uses OwnPtr<>s to manage memory - each entry in the list has ownership of the next ShadowData. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): * page/animation/AnimationBase.cpp: (WebCore::blendFunc): (WebCore::PropertyWrapperShadow::PropertyWrapperShadow): (WebCore::PropertyWrapperShadow::blend): * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::setTextShadow): (WebCore::RenderStyle::setBoxShadow): * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::textShadow): * rendering/style/ShadowData.cpp: (WebCore::ShadowData::ShadowData): * rendering/style/ShadowData.h: (WebCore::ShadowData::ShadowData): (WebCore::ShadowData::next): (WebCore::ShadowData::setNext): * rendering/style/StyleRareInheritedData.cpp: (WebCore::StyleRareInheritedData::StyleRareInheritedData): (WebCore::StyleRareInheritedData::~StyleRareInheritedData): * rendering/style/StyleRareInheritedData.h: * rendering/style/StyleRareNonInheritedData.cpp: (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): 2011-04-26 David Levin <levin@chromium.org> Reviewed by Eric Seidel. Fix some strict PassOwnPtr issues in WebCore. https://bugs.webkit.org/show_bug.cgi?id=59563 * css/SVGCSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applySVGProperty): * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::create): (WebCore::WebGLRenderingContext::~WebGLRenderingContext): * platform/text/TextCodecLatin1.cpp: (WebCore::newStreamingTextDecoderWindowsLatin1): * platform/text/TextCodecUTF16.cpp: (WebCore::newStreamingTextDecoderUTF16LE): (WebCore::newStreamingTextDecoderUTF16BE): * platform/text/TextCodecUserDefined.cpp: (WebCore::newStreamingTextDecoderUserDefined): * platform/text/mac/TextCodecMac.cpp: (WebCore::newTextCodecMac): * workers/Worker.cpp: (WebCore::Worker::notifyFinished): 2011-04-26 Justin Novosad <junov@chromium.org> Reviewed by Kenneth Russell. [Chromium] Expose skia gpu canvas rendering as a runtime flag https://bugs.webkit.org/show_bug.cgi?id=58683 Replace the SKIA_GPU compile flag by the pre-existing acceleratedDrawingEnabled flag. Most code changes are trivial: compile-time conditionals on SKIA_GPU were either replaced with a run-time check, or a compile time check on USE(SKIA) No new tests. Covered by existing tests. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation): * page/Page.cpp: (WebCore::Page::sharedGraphicsContext3D): Added check for the acceleratedDrawing flag. * platform/graphics/chromium/DrawingBufferChromium.cpp: (WebCore::DrawingBuffer::DrawingBuffer): (WebCore::DrawingBuffer::publishToPlatformLayer): * platform/graphics/gpu/DrawingBuffer.h: * platform/graphics/gpu/SharedGraphicsContext3D.cpp: (WebCore::SharedGraphicsContext3D::create): On Skia builds, this methos now receives a bool arg to turn on GPU-accelerated skia rendering (WebCore::SharedGraphicsContext3D::SharedGraphicsContext3D): (WebCore::SharedGraphicsContext3D::~SharedGraphicsContext3D): (WebCore::SharedGraphicsContext3D::grContext): * platform/graphics/gpu/SharedGraphicsContext3D.h: * platform/graphics/skia/ImageSkia.cpp: (WebCore::computeResamplingMode): (WebCore::paintSkBitmap): (WebCore::Image::drawPattern): * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::PlatformContextSkia): (WebCore::PlatformContextSkia::~PlatformContextSkia): (WebCore::PlatformContextSkia::isNativeFontRenderingAllowed): (WebCore::PlatformContextSkia::setSharedGraphicsContext3D): (WebCore::PlatformContextSkia::prepareForSoftwareDraw): (WebCore::PlatformContextSkia::prepareForHardwareDraw): (WebCore::PlatformContextSkia::syncSoftwareCanvas): (WebCore::PlatformContextSkia::markDirtyRect): * platform/graphics/skia/PlatformContextSkia.h: (WebCore::PlatformContextSkia::accelerationMode): (WebCore::PlatformContextSkia::useGPU): (WebCore::PlatformContextSkia::useSkiaGPU): 2011-04-26 Pavel Feldman <pfeldman@chromium.org> Not reviewed: restore inspector test disabled in r84913. Test: http/tests/inspector-enabled/dom-storage-open.html * inspector/InspectorDOMStorageAgent.cpp: (WebCore::InspectorDOMStorageAgent::clearFrontend): 2011-04-26 Kenichi Ishibashi <bashi@chromium.org> Reviewed by Tony Chang. [Chromium] Vertical positions are off for some Arabic glyphs on Linux https://bugs.webkit.org/show_bug.cgi?id=59182 Use vertical offsets of the shaping results. Test: platform/chromium-linux/fast/text/international/arabic-vertical-offset.html * platform/graphics/chromium/ComplexTextControllerLinux.cpp: (WebCore::ComplexTextController::ComplexTextController): Added initialization of m_startingY. (WebCore::ComplexTextController::nextScriptRun): Followed the change in handling positions. (WebCore::ComplexTextController::deleteGlyphArrays): Ditto. (WebCore::ComplexTextController::createGlyphArrays): Ditto. (WebCore::ComplexTextController::resetGlyphArrays): Ditto. (WebCore::ComplexTextController::setGlyphPositions): Changed to use vertical offsets as same as horizontal offsets. * platform/graphics/chromium/ComplexTextControllerLinux.h: Removed m_xPositions and Added m_positions and m_startingY. (WebCore::ComplexTextController::positions): Added. * platform/graphics/chromium/FontLinux.cpp: Followed the change in ComplexTextController. (WebCore::Font::drawComplexText): Ditto. (WebCore::Font::floatWidthForComplexText): Ditto. (WebCore::glyphIndexForXPositionInScriptRun): Ditto. (WebCore::Font::offsetForPositionForComplexText): Ditto. (WebCore::Font::selectionRectForComplexText): Ditto. 2011-04-26 Levi Weintraub <leviw@chromium.org> Reviewed by Eric Seidel. Root element should establish a new block formatting context https://bugs.webkit.org/show_bug.cgi?id=54573 Always expanding the root renderer to include overhanging floats. Test: fast/block/float/float-overhangs-root.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::expandsToEncloseOverhangingFloats): 2011-04-26 Dawit Alemayehu <adawit@kde.org> Reviewed by Andreas Kling. [Qt] Improper rendering of <button> tag when it contains a <br> https://bugs.webkit.org/show_bug.cgi?id=50521 Test: platform/qt/fast/forms/button-line-break.html * platform/qt/RenderThemeQt.cpp: (WebCore::RenderThemeQt::computeSizeBasedOnStyle): (WebCore::RenderThemeQt::setButtonPadding): 2011-04-26 James Robinson <jamesr@chromium.org> Reviewed by Kenneth Russell. [chromium] Only reset tiles if the LayerRendererChromium is actually changing https://bugs.webkit.org/show_bug.cgi?id=59572 http://trac.webkit.org/changeset/84981/ caused us to reset the tiles when LayerRendererChromium was set. We set this pointer every frame and should only reset the tiles if the new LayerRendererChromium is different from the old one (indicating a context loss), not just reset on every frame. * platform/graphics/chromium/LayerTilerChromium.cpp: (WebCore::LayerTilerChromium::setLayerRenderer): * platform/graphics/chromium/LayerTilerChromium.h: 2011-04-26 Dinesh K Garg <dineshg@codeaurora.org> Reviewed by Eric Seidel. beginElement broken by setAttribute https://bugs.webkit.org/show_bug.cgi?id=26019 Test: svg/animations/animate-beginElementAt.svg * svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::attributeChanged): Reset the animation state here as the rest of the code reads it and would still think we are animating when we are not. * svg/animation/SVGSMILElement.h: (WebCore::SVGSMILElement::setInactive): Helper function to reset the state. 2011-04-26 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r84989. http://trac.webkit.org/changeset/84989 https://bugs.webkit.org/show_bug.cgi?id=59566 REGRESSION (r84989): Lots of vertical text tests failing on windows (Requested by weinig on #webkit). * platform/graphics/FontPlatformData.h: * platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::createFontPlatformData): * platform/graphics/win/FontCustomPlatformData.cpp: (WebCore::FontCustomPlatformData::fontPlatformData): * platform/graphics/win/FontPlatformDataCGWin.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/graphics/win/FontPlatformDataWin.cpp: (WebCore::FontPlatformData::FontPlatformData): 2011-04-26 Sam Weinig <sam@webkit.org> Reviewed by Eric Seidel. Try again: Remove JSDOMWrapperWithGlobalPointer now that all JSDOMWrappers have global objects https://bugs.webkit.org/show_bug.cgi?id=59310 * bindings/js/JSDOMBinding.h: (WebCore::DOMConstructorObject::DOMConstructorObject): * bindings/js/JSDOMWrapper.h: (WebCore::JSDOMWrapper::globalObject): (WebCore::JSDOMWrapper::scriptExecutionContext): (WebCore::JSDOMWrapper::createStructure): (WebCore::JSDOMWrapper::JSDOMWrapper): * bindings/scripts/CodeGeneratorJS.pm: 2011-04-26 Sam Weinig <sam@webkit.org> Reviewed by David Hyatt. Remove Datagrid from the tree https://bugs.webkit.org/show_bug.cgi?id=59543 * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * Android.jscbindings.mk: * Android.v8bindings.mk: * CMakeLists.txt: * CodeGenerators.pri: * Configurations/FeatureDefines.xcconfig: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * GNUmakefile.list.am: * UseJSC.cmake: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSBindingsAllInOne.cpp: * bindings/js/JSDataGridColumnListCustom.cpp: Removed. * bindings/js/JSDataGridDataSource.cpp: Removed. * bindings/js/JSDataGridDataSource.h: Removed. * bindings/js/JSHTMLDataGridElementCustom.cpp: Removed. * bindings/v8/V8DataGridDataSource.cpp: Removed. * bindings/v8/V8DataGridDataSource.h: Removed. * bindings/v8/custom/V8DataGridColumnListCustom.cpp: Removed. * bindings/v8/custom/V8HTMLDataGridElementCustom.cpp: Removed. * css/CSSStyleSelector.cpp: * css/CSSStyleSelector.h: * css/html.css: (input, textarea, keygen, select, button, isindex): (select:disabled, keygen:disabled, optgroup:disabled, option:disabled): * editing/htmlediting.cpp: (WebCore::canHaveChildrenForEditing): * features.pri: * html/DOMDataGridDataSource.cpp: Removed. * html/DOMDataGridDataSource.h: Removed. * html/DataGridColumn.cpp: Removed. * html/DataGridColumn.h: Removed. * html/DataGridColumn.idl: Removed. * html/DataGridColumnList.cpp: Removed. * html/DataGridColumnList.h: Removed. * html/DataGridColumnList.idl: Removed. * html/DataGridDataSource.h: Removed. * html/HTMLDataGridCellElement.cpp: Removed. * html/HTMLDataGridCellElement.h: Removed. * html/HTMLDataGridCellElement.idl: Removed. * html/HTMLDataGridColElement.cpp: Removed. * html/HTMLDataGridColElement.h: Removed. * html/HTMLDataGridColElement.idl: Removed. * html/HTMLDataGridElement.cpp: Removed. * html/HTMLDataGridElement.h: Removed. * html/HTMLDataGridElement.idl: Removed. * html/HTMLDataGridRowElement.cpp: Removed. * html/HTMLDataGridRowElement.h: Removed. * html/HTMLDataGridRowElement.idl: Removed. * html/HTMLElement.cpp: (WebCore::HTMLElement::ieForbidsInsertHTML): * html/HTMLElementsAllInOne.cpp: * html/HTMLTagNames.in: * page/DOMWindow.idl: * rendering/RenderBox.cpp: (WebCore::RenderBox::sizesToIntrinsicLogicalWidth): * rendering/RenderDataGrid.cpp: Removed. * rendering/RenderDataGrid.h: Removed. * rendering/RenderingAllInOne.cpp: 2011-04-26 Chun-Lung Huang <alvincl.huang@gmail.com> Reviewed by Adele Peterson. On WebKit (Windows), glyphs in vertical text tests are rotated 90 degrees clockwise. https://bugs.webkit.org/show_bug.cgi?id=48459 This platform dependent patch makes WebKit (Windows) show the vertical writing text correctly. Job was done by adding a prefix '@' in front of the font family name (Windows Only). No new tests added. Some layout tests images: http://www.flickr.com/photos/burorly/sets/72157625585506341/ * platform/graphics/FontPlatformData.h: * platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::createFontPlatformData): * platform/graphics/win/FontCustomPlatformData.cpp: (WebCore::FontCustomPlatformData::fontPlatformData): * platform/graphics/win/FontPlatformDataCGWin.cpp: (WebCore::FontPlatformData::FontPlatformData): * platform/graphics/win/FontPlatformDataWin.cpp: (WebCore::FontPlatformData::FontPlatformData): 2011-04-26 Jer Noble <jer.noble@apple.com> Reviewed by Brady Eidson. HTML5 video fullscreen transition causes an audio stutter https://bugs.webkit.org/show_bug.cgi?id=59544 AVFoundation will momentarily stutter when you disconnect a AVPlayerLayer from its AVPlayer. Since you shouldn't necessarily have to destroy the layer to render it invisible, instead just set the layer as hidden. * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::setVisible): Call through to platformSetVisible(). * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::platformSetVisible): Added. 2011-04-26 Christian Dywan <christian@lanedo.com> Reviewed by Eric Seidel. Extra separator after Select All in context menu https://bugs.webkit.org/show_bug.cgi?id=54092 * page/ContextMenuController.cpp: Move separator to non-GTK+ port guards since it is for the spelling options menu which the GTK+ port doesn't use. 2011-04-26 James Robinson <jamesr@chromium.org> Reviewed by Kenneth Russell. [chromium] Clear out LayerTilerChromium's tiles on lost context https://bugs.webkit.org/show_bug.cgi?id=59233 Clears out the LayerTilerChromium's tile set when the LayerRendererChromium is reset. In this case the tiles are no longer valid since they exist in the previous LayerRendererChromium. Will be tested by a chrome test since we don't have any way to exercise the context lost case in layout tests. * platform/graphics/chromium/LayerTilerChromium.h: (WebCore::LayerTilerChromium::setLayerRenderer): 2011-04-26 Martin Robinson <mrobinson@igalia.com> Reviewed by Dirk Schulze. [GTK] Flash in divs with overflow: auto is not positioned and clipped properly https://bugs.webkit.org/show_bug.cgi?id=57644 Manual test: plugins/windowed-in-iframe-2.html * manual-tests/plugins/windowed-in-iframe-2.html: Added. * platform/gtk/WidgetGtk.cpp: (WebCore::Widget::setFrameRect): Like the Qt port, we notify the widget via frameRectsChanged. * plugins/PluginView.h: Added helper method to set the allocation and clip. * plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::setNPWindowIfNeeded):Call the helper method instead of setting the allocation immediately. Bring this method into sync with the implementation in the Qt port. (WebCore::PluginView::updateWidgetAllocationAndClip): Added. (WebCore::PluginView::plugAddedCallback): Call the new helper method. 2011-04-26 Martin Robinson <mrobinson@igalia.com> Reviewed by Eric Seidel. [GTK] fast/block/float/overhanging-tall-block.html crashes in the bots https://bugs.webkit.org/show_bug.cgi?id=58818 Prevent allocating scratch buffers larger than the target GdkDrawable when creating a WidgetRenderingContext. This prevents incredibly large widgets from crashing the X Server. This change also allowed greatly simplifying the way that the painting offset is calculated. * platform/gtk/WidgetRenderingContext.cpp: (WebCore::WidgetRenderingContext::WidgetRenderingContext): Never allocate a pixmap larger than the target GdkDrawable. (WebCore::WidgetRenderingContext::~WidgetRenderingContext): Calculate the offset of the blit by looking at the location of the target rect itself, rather than delaying the calculation up to this point. (WebCore::WidgetRenderingContext::calculateClipRect): Added. (WebCore::WidgetRenderingContext::gtkPaintBox): Use the new calculateClipRectHelper. (WebCore::WidgetRenderingContext::gtkPaintFlatBox): Ditto. (WebCore::WidgetRenderingContext::gtkPaintFocus): Ditto. (WebCore::WidgetRenderingContext::gtkPaintSlider): Ditto. (WebCore::WidgetRenderingContext::gtkPaintCheck): Ditto. (WebCore::WidgetRenderingContext::gtkPaintOption): Ditto. (WebCore::WidgetRenderingContext::gtkPaintShadow): Ditto. (WebCore::WidgetRenderingContext::gtkPaintArrow): Ditto. (WebCore::WidgetRenderingContext::gtkPaintVLine): Ditto. * platform/gtk/WidgetRenderingContext.h: Remove some now unused members. Add a member to store the IntSize mapping from the coordinates of the target to the coordinates of the scratch buffer. 2011-04-26 Patrick Gansterer <paroga@webkit.org> Reviewed by Adam Barth. Respect charset in handleDataURL https://bugs.webkit.org/show_bug.cgi?id=47746 Original patch by Kwang Yul Seo <skyul@company100.net> We must use TextEncoding(charset) to encode data URL again. Otherwise TextEncoding::encode() returns an empty string because encoding name is not specified. Also use "US-ASCII" as fallback charset as extractCharsetFromMediaType can be empty. This change fixes over 130 layout tests when running GTK port with cURL network backend. * platform/network/DataURL.cpp: (WebCore::handleDataURL): 2011-04-26 Anders Carlsson <andersca@apple.com> Fix clang++ build. You can never have too many casts! * accessibility/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper position]): * editing/mac/SelectionControllerMac.mm: (WebCore::accessibilityConvertScreenRect): 2011-04-26 Chris Rogers <crogers@google.com> Reviewed by Kenneth Russell. Fix web audio build on mac port https://bugs.webkit.org/show_bug.cgi?id=59355 No new tests since audio API is not yet implemented. * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSAudioContextCustom.cpp: (WebCore::JSAudioContext::visitChildren): * bindings/js/JSJavaScriptAudioNodeCustom.cpp: (WebCore::JSJavaScriptAudioNode::visitChildren): * webaudio/AudioContext.idl: 2011-04-26 Chris Rogers <crogers@google.com> Reviewed by Kenneth Russell. Add FFTFrame implementation for FFmpeg https://bugs.webkit.org/show_bug.cgi?id=59408 No new tests since audio API is not yet implemented. * WebCore.gyp/WebCore.gyp: * WebCore.gypi: * platform/audio/FFTFrame.h: * platform/audio/FFTFrameStub.cpp: * platform/audio/ffmpeg: Added. * platform/audio/ffmpeg/FFTFrameFFMPEG.cpp: Added. (WebCore::FFTFrame::FFTFrame): (WebCore::FFTFrame::initialize): (WebCore::FFTFrame::cleanup): (WebCore::FFTFrame::~FFTFrame): (WebCore::FFTFrame::multiply): (WebCore::FFTFrame::doFFT): (WebCore::FFTFrame::doInverseFFT): (WebCore::FFTFrame::realData): (WebCore::FFTFrame::imagData): (WebCore::FFTFrame::getUpToDateComplexData): (WebCore::FFTFrame::contextForSize): * platform/audio/mac/FFTFrameMac.cpp: * webaudio/ConvolverNode.cpp: 2011-04-26 Jeff Miller <jeffm@apple.com> Add a newline at the end of SVGFEDropShadowElement.idl. * svg/SVGFEDropShadowElement.idl: 2011-04-26 Mihai Parparita <mihaip@chromium.org> Reviewed by Eric Seidel. InlineBox.h shouldn't include RenderBR.h https://bugs.webkit.org/show_bug.cgi?id=59480 Per bug 59348 RenderBR.h is a "top header" by include * size, because InlineBox.h includes it. There's no reason why it has to. * rendering/InlineBox.h: * rendering/InlineTextBox.cpp: * rendering/RenderBlock.h: 2011-04-26 Sam Weinig <sam@webkit.org> Nope, roll out r84950 and r84952. Working on a laptop is clearly not something I should do. * bindings/js/JSDOMBinding.h: (WebCore::JSDOMWrapperWithGlobalPointer::globalObject): (WebCore::JSDOMWrapperWithGlobalPointer::scriptExecutionContext): (WebCore::JSDOMWrapperWithGlobalPointer::createStructure): (WebCore::JSDOMWrapperWithGlobalPointer::JSDOMWrapperWithGlobalPointer): (WebCore::DOMConstructorObject::DOMConstructorObject): * bindings/js/JSDOMWrapper.h: (WebCore::JSDOMWrapper::JSDOMWrapper): * bindings/scripts/CodeGeneratorJS.pm: 2011-04-26 Sam Weinig <sam@webkit.org> Fix build. * bindings/js/JSDOMWrapper.h: (WebCore::JSDOMWrapper::globalObject): 2011-04-26 Sam Weinig <sam@webkit.org> Roll r84945 back in with infinite recursion removed. * bindings/js/JSDOMBinding.h: (WebCore::DOMConstructorObject::DOMConstructorObject): * bindings/js/JSDOMWrapper.h: (WebCore::JSDOMWrapper::globalObject): (WebCore::JSDOMWrapper::scriptExecutionContext): (WebCore::JSDOMWrapper::createStructure): (WebCore::JSDOMWrapper::JSDOMWrapper): * bindings/scripts/CodeGeneratorJS.pm: 2011-04-26 Sam Weinig <sam@webkit.org> Rollout previous patch. It broke stuff. * bindings/js/JSDOMBinding.h: (WebCore::JSDOMWrapperWithGlobalPointer::globalObject): (WebCore::JSDOMWrapperWithGlobalPointer::scriptExecutionContext): (WebCore::JSDOMWrapperWithGlobalPointer::createStructure): (WebCore::JSDOMWrapperWithGlobalPointer::JSDOMWrapperWithGlobalPointer): (WebCore::DOMConstructorObject::DOMConstructorObject): * bindings/js/JSDOMWrapper.h: (WebCore::JSDOMWrapper::JSDOMWrapper): * bindings/scripts/CodeGeneratorJS.pm: 2011-04-26 Sam Weinig <sam@webkit.org> Reviewed by Maciej Stachowiak. Remove JSDOMWrapperWithGlobalPointer now that all JSDOMWrappers have global objects https://bugs.webkit.org/show_bug.cgi?id=59310 * bindings/js/JSDOMBinding.h: (WebCore::DOMConstructorObject::DOMConstructorObject): * bindings/js/JSDOMWrapper.h: (WebCore::JSDOMWrapper::globalObject): (WebCore::JSDOMWrapper::scriptExecutionContext): (WebCore::JSDOMWrapper::createStructure): (WebCore::JSDOMWrapper::JSDOMWrapper): Merge JSDOMWrapperWithGlobalPointer with JSDOMWrapper. * bindings/scripts/CodeGeneratorJS.pm: Make JSDOMWrapper the base class. 2011-04-26 Dan Bernstein <mitz@apple.com> Reviewed by Mark Rowe. Choose the compiler based on the Xcode version for Snow Leopard debug builds. * Configurations/Base.xcconfig: * Configurations/CompilerVersion.xcconfig: Added. 2011-04-26 Adrienne Walker <enne@google.com> Reviewed by Geoffrey Garen. Use OwnArrayPtr<T> instead of OwnPtr<T*> in ScopeTracer https://bugs.webkit.org/show_bug.cgi?id=59469 * platform/chromium/TraceEvent.h: (WebCore::internal::ScopeTracer::ScopeTracer): 2011-04-25 Geoffrey Garen <ggaren@apple.com> Reviewed by Oliver Hunt. Nixed special finalizer handling for WebCore strings https://bugs.webkit.org/show_bug.cgi?id=59425 Not needed anymore, since weak handles have finalizers. * WebCore.exp.in: Exports! * bindings/js/DOMWrapperWorld.cpp: (WebCore::JSStringOwner::finalize): (WebCore::DOMWrapperWorld::DOMWrapperWorld): Use a weak handle finalizer, so we don't need special treatment anymore. * bindings/js/DOMWrapperWorld.h: (WebCore::JSStringOwner::JSStringOwner): (WebCore::DOMWrapperWorld::stringWrapperOwner): Use a HashMap of Weak<T> instead of a WeakGCMap, so we can specify a custom finalizer. * bindings/js/JSDOMBinding.cpp: (WebCore::jsStringSlowCase): * bindings/js/JSDOMBinding.h: (WebCore::jsString): Updated for string map change. 2011-04-26 David Kilzer <ddkilzer@apple.com> <http://webkit.org/b/59372> Restore user default for enabling HTTP pipelining Reviewed by Antti Koivisto. To enable HTTP pipelining post-SnowLeopard, use this command: defaults write BUNDLE.ID WebKitEnableHTTPPipelining -bool YES * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::readBooleanPreference): Re-added. Originally added in r76756 and removed in r84120. (WebCore::initializeMaximumHTTPConnectionCountPerHost): Enable HTTP pipelining if use default is set to true. Added macro guards to match those in ResourceRequestMac.mm. 2011-04-26 Antti Koivisto <antti@apple.com> Reviewed by Adele Peterson. Don't strip fragments from file: urls in memory cache https://bugs.webkit.org/show_bug.cgi?id=59463 <rdar://problem/9231130> Some clients expect file: resources to be unique based on fragment identifier. Limit the changes in http://trac.webkit.org/changeset/74107 to the HTTP protocol only Test: fast/loader/file-protocol-fragment.html * loader/cache/MemoryCache.cpp: (WebCore::MemoryCache::removeFragmentIdentifierIfNeeded): 2011-04-26 David Levin <levin@chromium.org> Reviewed by Darin Adler. Fix more strict OwnPtr in WebCore (round N). https://bugs.webkit.org/show_bug.cgi?id=59464 * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::attach): * fileapi/FileReader.cpp: (WebCore::FileReader::terminate): * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::preflightFailure): * workers/DefaultSharedWorkerRepository.cpp: (WebCore::SharedWorkerConnectTask::create): (WebCore::SharedWorkerScriptLoader::load): 2011-04-26 Ruben <chromium@hybridsource.org> Reviewed by Tony Chang. Change linux ifdefs for Chromium to Unix instead, allowing new Unix ports to be enabled by default https://bugs.webkit.org/show_bug.cgi?id=59297 No new tests, just changing preprocessor defines. * bindings/js/JSInspectorFrontendHostCustom.cpp: * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp: * dom/SelectElement.cpp: * loader/cache/CachedFont.cpp: * page/EventHandler.cpp: * page/chromium/EventHandlerChromium.cpp: * platform/Scrollbar.cpp: * platform/chromium/PlatformBridge.h: * platform/graphics/chromium/FontPlatformData.h: * platform/graphics/skia/FontCustomPlatformData.cpp: * platform/graphics/skia/FontCustomPlatformData.h: 2011-04-26 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Dan Bernstein. [RTL] Arabic/AB - after typing a date, cursors doesn't go back https://bugs.webkit.org/show_bug.cgi?id=49111 Even when the offset corresponds to a position visually left of the box and there aren't any inline boxes on the left, the previous/next position may still correspond to some position in the same line. The bug was caused by our ignoring such cases. Fixed the bug by comparing previous/next position's inline box to the current box. If they match, then we stay on the same position because moving to the left visually at the left edge should not result in a position on the same line. Also fixed a bug that WebKit uses offsets that are not extrema when moved to the left edge or to the right edge, and a bug that WebKit could not move to the left from 12^3 CBA abc to 123 C^BA abc (there is no offset between 3 and C). Test cases are added to editing/selection/move-left-right.html * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::leftVisuallyDistinctCandidate): (WebCore::VisiblePosition::rightVisuallyDistinctCandidate): 2011-04-26 Gabor Loki <loki@webkit.org> Reviewed by Csaba Osztrogonác. Speeding up SVG filters with multicore (SMP) support https://bugs.webkit.org/show_bug.cgi?id=43903 Some SVG filters execute a huge number of pixel manipulations, which cannot be sped up by graphics accelerators, since their algorithm is too complex. Using the power of Symmetric Multi Processing (SMP) we can split up a task to smaller (data independent) tasks, which can be executed independently. The ParallelJobs framework provides a simple way for distributed programming. The framework is based on WebKit's threading infrastructure, Open Multi-Processing's (OpenMP) API, and libdispatch API. * ForwardingHeaders/wtf/ParallelJobs.h: Added. * platform/graphics/filters/FETurbulence.cpp: (WebCore::FETurbulence::PaintingData::PaintingData): (WebCore::FETurbulence::noise2D): (WebCore::FETurbulence::calculateTurbulenceValueForPoint): (WebCore::FETurbulence::fillRegion): (WebCore::FETurbulence::fillRegionWorker): (WebCore::FETurbulence::apply): * platform/graphics/filters/FETurbulence.h: 2011-04-26 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: close button is off in docked mode on a mac. https://bugs.webkit.org/show_bug.cgi?id=59453 * inspector/front-end/inspector.css: (.toolbar-item.close-left): 2011-04-26 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: New Style is not working (UI glitch) https://bugs.webkit.org/show_bug.cgi?id=59451 * inspector/InspectorDOMStorageAgent.cpp: (WebCore::InspectorDOMStorageAgent::setFrontend): * inspector/front-end/AuditRules.js: (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles): (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.externalStylesheetsReceived): (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.inlineStylesReceived): (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.cssBeforeInlineReceived): (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.lateStylesReceived): * inspector/front-end/CSSStyleModel.js: (WebInspector.CSSStyleModel.prototype.setRuleSelector): (WebInspector.CSSStyleModel.prototype.setRuleSelector.callback): (WebInspector.CSSStyleModel.prototype.addRule): (WebInspector.CSSStyleModel.prototype.addRule.callback): (WebInspector.CSSStyleModel.prototype._documentElementId): * inspector/front-end/DOMAgent.js: (WebInspector.DOMNode.prototype._addAttribute): (WebInspector.DOMNode.prototype.documentElement): * inspector/front-end/ResourceTreeModel.js: (WebInspector.PageDispatcher.prototype.frameDetached): * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylesSidebarPane.prototype._createNewRule): 2011-04-26 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: introduce DOMStorage::enable and disable. https://bugs.webkit.org/show_bug.cgi?id=59445 * inspector/Inspector.json: * inspector/InspectorAgent.cpp: (WebCore::InspectorAgent::InspectorAgent): (WebCore::InspectorAgent::restoreInspectorStateFromCookie): * inspector/InspectorDOMStorageAgent.cpp: (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent): (WebCore::InspectorDOMStorageAgent::restore): (WebCore::InspectorDOMStorageAgent::enable): (WebCore::InspectorDOMStorageAgent::disable): * inspector/InspectorDOMStorageAgent.h: (WebCore::InspectorDOMStorageAgent::create): * inspector/front-end/DOMStorage.js: (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._reset): * inspector/front-end/inspector.js: 2011-04-26 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: extract Page agent dispatcher into the ResourceTreeModel. https://bugs.webkit.org/show_bug.cgi?id=59440 * inspector/Inspector.json: * inspector/InspectorAgent.cpp: (WebCore::InspectorAgent::restoreInspectorStateFromCookie): * inspector/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::setFrontend): (WebCore::InspectorPageAgent::frameNavigated): * inspector/InspectorPageAgent.h: * inspector/front-end/AuditsPanel.js: (WebInspector.AuditsPanel): (WebInspector.AuditsPanel.prototype._onLoadEventFired): (WebInspector.AuditsPanel.prototype._domContentLoadedEventFired): * inspector/front-end/CSSStyleModel.js: (WebInspector.CSSStyleModelResourceBinding): (WebInspector.CSSStyleModelResourceBinding.prototype._inspectedURLChanged): * inspector/front-end/DOMBreakpointsSidebarPane.js: (WebInspector.DOMBreakpointsSidebarPane): (WebInspector.DOMBreakpointsSidebarPane.prototype._inspectedURLChanged): * inspector/front-end/DOMStorage.js: (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage): * inspector/front-end/ExtensionServer.js: (WebInspector.ExtensionServer.prototype._inspectedURLChanged): (WebInspector.ExtensionServer.prototype.initExtensions): * inspector/front-end/NetworkPanel.js: (WebInspector.NetworkPanel): (WebInspector.NetworkPanel.prototype._onLoadEventFired): (WebInspector.NetworkPanel.prototype._domContentLoadedEventFired): (WebInspector.NetworkPanel.prototype._frameNavigated): * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel): (WebInspector.ResourceTreeModel.prototype._processCachedResources): (WebInspector.ResourceTreeModel.prototype._dispatchInspectedURLChanged): (WebInspector.ResourceTreeModel.prototype._frameNavigated): (WebInspector.ResourceTreeModel.prototype._frameDetached): (WebInspector.ResourceTreeModel.prototype._clearChildFramesAndResources): (WebInspector.PageDispatcher): (WebInspector.PageDispatcher.prototype.domContentEventFired): (WebInspector.PageDispatcher.prototype.loadEventFired): (WebInspector.PageDispatcher.prototype.frameNavigated): (WebInspector.PageDispatcher.prototype.frameDetached): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel): (WebInspector.ResourcesPanel.prototype._onLoadEventFired): (WebInspector.ResourcesPanel.prototype._frameNavigated): * inspector/front-end/inspector.js: 2011-04-26 Csaba Osztrogonác <ossy@webkit.org> Unreviewed rollout r84877 and StyleRareInheritedData.cpp changes of r84892, because it broke transitions/multiple-text-shadow-transition.html Fix OwnPtr strict errors in RenderStyle and make StyleRareInheritedData::textShadow an OwnPtr https://bugs.webkit.org/show_bug.cgi?id=59377 * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): * page/animation/AnimationBase.cpp: (WebCore::PropertyWrapperShadow::PropertyWrapperShadow): (WebCore::PropertyWrapperShadow::blend): * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::setTextShadow): (WebCore::RenderStyle::setBoxShadow): * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::textShadow): * rendering/style/StyleRareInheritedData.cpp: (WebCore::StyleRareInheritedData::StyleRareInheritedData): (WebCore::StyleRareInheritedData::~StyleRareInheritedData): * rendering/style/StyleRareInheritedData.h: * rendering/style/StyleRareNonInheritedData.cpp: (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): 2011-04-26 Mihai Parparita <mihaip@chromium.org> Reviewed by Adam Barth. Turn off make built-in implicit rules for derived sources makefile https://bugs.webkit.org/show_bug.cgi?id=59418 We don't use any of make's built-in implicit rules, turning them off speeds up parsing of the makefile. * WebCore.xcodeproj/project.pbxproj: * gyp/generate-derived-sources.sh: 2011-04-26 Leo Yang <leo.yang@torchmobile.com.cn> Reviewed by Nikolas Zimmermann. ASSERT failure in SVGUseElement https://bugs.webkit.org/show_bug.cgi?id=59313 In SVGUseElement::insertedIntoDocument(), ASSERT(!m_isPendingResource) was wrong because the document may not be well-formed. This patch asserts the element is not pending on resource or the document is not well-formed. Test: svg/custom/use-crash-in-non-wellformed-document.svg * svg/SVGUseElement.cpp: (WebCore::isWellFormedDocument): (WebCore::SVGUseElement::insertedIntoDocument): 2011-04-26 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: [Chromium] Fix columns resizing in the detailed heap snapshot grids. https://bugs.webkit.org/show_bug.cgi?id=59438 * inspector/front-end/DetailedHeapshotView.js: (WebInspector.DetailedHeapshotView.prototype._changeView): 2011-04-26 David Levin <levin@chromium.org> Reviewed by Adam Barth. Fix a few OwnPtr strict errors in WebCore headers. https://bugs.webkit.org/show_bug.cgi?id=59431 * bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::create): * css/MediaQueryMatcher.cpp: (WebCore::MediaQueryMatcher::prepareEvaluator): * dom/NodeRareData.h: (WebCore::NodeListsNodeData::create): * dom/ScriptRunner.h: (WebCore::ScriptRunner::create): * inspector/WorkerInspectorController.cpp: (WebCore::WorkerInspectorController::connectFrontend): * loader/icon/IconDatabase.h: (WebCore::IconDatabase::create): * platform/graphics/SimpleFontData.cpp: (WebCore::SimpleFontData::verticalRightOrientationFontData): (WebCore::SimpleFontData::uprightOrientationFontData): (WebCore::SimpleFontData::brokenIdeographFontData): * rendering/style/StyleRareInheritedData.cpp: (WebCore::StyleRareInheritedData::StyleRareInheritedData): * rendering/svg/SVGResources.h: (WebCore::SVGResources::ClipperFilterMaskerData::create): (WebCore::SVGResources::MarkerData::create): (WebCore::SVGResources::FillStrokeData::create): * storage/StorageSyncManager.cpp: (WebCore::StorageSyncManager::close): * workers/WorkerContext.cpp: (WebCore::CloseWorkerContextTask::create): * workers/WorkerMessagingProxy.cpp: (WebCore::MessageWorkerContextTask::create): (WebCore::MessageWorkerTask::create): (WebCore::WorkerExceptionTask::create): (WebCore::WorkerContextDestroyedTask::create): (WebCore::WorkerTerminateTask::create): (WebCore::WorkerThreadActivityReportTask::create): * workers/WorkerRunLoop.cpp: (WebCore::WorkerRunLoop::Task::create): * workers/WorkerThread.cpp: (WebCore::WorkerThreadStartupData::create): (WebCore::WorkerThreadShutdownFinishTask::create): (WebCore::WorkerThreadShutdownStartTask::create): 2011-04-26 Adam Klein <adamk@chromium.org> Reviewed by Adam Barth. Fix last strict OwnPtr violation under svg/... https://bugs.webkit.org/show_bug.cgi?id=59429 * svg/SVGDocumentExtensions.cpp: (WebCore::SVGDocumentExtensions::removePendingResource): 2011-04-26 Adam Barth <abarth@webkit.org> Reviewed by David Levin. Fix more strict OwnPtr violations in WebCore https://bugs.webkit.org/show_bug.cgi?id=59433 These manifest in the Chromium build. * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::ScriptController): * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::editScriptSource): * bindings/v8/V8DOMMap.cpp: (WebCore::DOMDataStoreHandle::DOMDataStoreHandle): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::precompileScript): * bindings/v8/WorkerScriptController.cpp: (WebCore::WorkerScriptController::WorkerScriptController): * page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::speechInput): * platform/PlatformGestureRecognizer.cpp: (WebCore::PlatformGestureRecognizer::create): * platform/PlatformGestureRecognizer.h: * platform/graphics/chromium/DrawingBufferChromium.cpp: (WebCore::DrawingBuffer::DrawingBuffer): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::CCLayerImpl): * platform/graphics/gpu/Texture.cpp: (WebCore::Texture::create): * platform/image-decoders/bmp/BMPImageDecoder.cpp: (WebCore::BMPImageDecoder::decodeHelper): * platform/image-decoders/gif/GIFImageDecoder.cpp: (WebCore::GIFImageDecoder::decode): * platform/image-decoders/ico/ICOImageDecoder.cpp: (WebCore::ICOImageDecoder::decodeAtIndex): * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: (WebCore::JPEGImageDecoder::decode): * platform/image-decoders/png/PNGImageDecoder.cpp: (WebCore::PNGImageDecoder::decode): * storage/chromium/DatabaseTrackerChromium.cpp: (WebCore::DatabaseTracker::addOpenDatabase): 2011-04-25 David Levin <levin@chromium.org> Reviewed by Adam Barth. Fix OwnPtr strict errors in CrossThreadTask.h https://bugs.webkit.org/show_bug.cgi?id=59427 * dom/CrossThreadTask.h: (WebCore::CrossThreadTask1::create): (WebCore::CrossThreadTask2::create): (WebCore::CrossThreadTask3::create): (WebCore::CrossThreadTask4::create): (WebCore::CrossThreadTask5::create): (WebCore::CrossThreadTask6::create): (WebCore::CrossThreadTask7::create): (WebCore::CrossThreadTask8::create): 2011-04-25 Mark Rowe <mrowe@apple.com> Reviewed by Dan Bernstein. <rdar://problem/9330337> Leak of 'WebCore::ApplyPropertyFillLayer<WebCore::FillSize>' * css/CSSStyleApplyProperty.cpp: (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Don't initialize CSSPropertyWebkitMaskSize twice. * css/CSSStyleApplyProperty.h: (WebCore::CSSStyleApplyProperty::setPropertyValue): Add some asserts to catch this class of leak. 2011-04-25 Levi Weintraub <leviw@chromium.org> Reviewed by Ryosuke Niwa. REGRESSION: a character appears after tab span when typing immediately before the tab span https://bugs.webkit.org/show_bug.cgi?id=58132 Correcting the order of operations we use to avoid inserting into invalid positions in ReplaceSelectionCommand to avoid inserting into tab-spans. Test: editing/pasteboard/paste-before-tab-span.html * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): Moving positionOutsideTabSpan to after positionAvoidingPrecedingNodes, since that function could once again put our position inside a tab span. 2011-04-25 David Levin <levin@chromium.org> Reviewed by Adam Barth. Fix OwnPtr strict error in ImageBuffer.h https://bugs.webkit.org/show_bug.cgi?id=59422 * platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::create): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by David Levin. Fix strict OwnPtr violations and whitelist known-tricky files https://bugs.webkit.org/show_bug.cgi?id=59421 With this patch, WebCore builds cleanly with strict OwnPtrs. * dom/MessagePort.cpp: (WebCore::MessagePort::MessagePort): * dom/XMLDocumentParserLibxml2.cpp: * page/ContextMenuController.cpp: (WebCore::ContextMenuController::ContextMenuController): (WebCore::ContextMenuController::clearContextMenu): * page/PluginHalter.cpp: * platform/graphics/MediaPlayer.cpp: * platform/network/ResourceRequestBase.cpp: (WebCore::ResourceRequestBase::adopt): (WebCore::ResourceRequestBase::copyData): * svg/SVGDocumentExtensions.cpp: 2011-04-25 David Levin <levin@chromium.org> Reviewed by Adam Barth. Fix OwnPtr strict errors in DatasetDOMStringMap.h. https://bugs.webkit.org/show_bug.cgi?id=59419 * dom/DatasetDOMStringMap.h: (WebCore::DatasetDOMStringMap::create): 2011-04-25 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Reviewed by Eric Seidel. KeyboardEvent.cpp should work with strict OwnPtrs. https://bugs.webkit.org/show_bug.cgi?id=59403 * dom/KeyboardEvent.cpp: (WebCore::KeyboardEvent::KeyboardEvent): 2011-04-25 James Robinson <jamesr@chromium.org> Reviewed by Eric Seidel. Fix OwnPtr strict errors in RenderStyle and make StyleRareInheritedData::textShadow an OwnPtr https://bugs.webkit.org/show_bug.cgi?id=59377 * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): * page/animation/AnimationBase.cpp: (WebCore::PropertyWrapperShadow::PropertyWrapperShadow): (WebCore::PropertyWrapperShadow::blend): * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::setTextShadow): (WebCore::RenderStyle::setBoxShadow): * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::textShadow): * rendering/style/StyleRareInheritedData.cpp: (WebCore::StyleRareInheritedData::StyleRareInheritedData): (WebCore::StyleRareInheritedData::~StyleRareInheritedData): * rendering/style/StyleRareInheritedData.h: * rendering/style/StyleRareNonInheritedData.cpp: (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): 2011-04-25 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r84864. http://trac.webkit.org/changeset/84864 https://bugs.webkit.org/show_bug.cgi?id=59413 Expect result of use-crash-in-non-wellformed-document.svg is platform dependent (Requested by leoyang on #webkit). * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::insertedIntoDocument): 2011-04-25 Leo Yang <leo.yang@torchmobile.com.cn> Reviewed by Nikolas Zimmermann. ASSERT failure in SVGUseElement https://bugs.webkit.org/show_bug.cgi?id=59313 In SVGUseElement::insertedIntoDocument(), ASSERT(!m_isPendingResource) was wrong because the document may not be well-formed. This patch asserts the element is not pending on resource or the document is not well-formed. Test: svg/custom/use-crash-in-non-wellformed-document.svg * svg/SVGUseElement.cpp: (WebCore::isWellFormedDocument): (WebCore::SVGUseElement::insertedIntoDocument): 2011-04-25 Igor Oliveira <igor.oliveira@openbossa.org> Reviewed by Tony Chang. Move complexity from DataTransferItemsChromium and DataTransferItemChromium for base class https://bugs.webkit.org/show_bug.cgi?id=59028 The DataTransferItemsChromium and DataTransferItemChromium code can be reused by other platforms. Moving the code for base class we can reduce the efforts to support DataTransferItems element in different platforms. * Android.mk: * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/DataTransferItem.cpp: (WebCore::DataTransferItem::DataTransferItem): (WebCore::DataTransferItem::owner): (WebCore::DataTransferItem::kind): (WebCore::DataTransferItem::type): * dom/DataTransferItem.h: * dom/DataTransferItems.cpp: Copied from Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp. (WebCore::DataTransferItems::DataTransferItems): (WebCore::DataTransferItems::length): (WebCore::DataTransferItems::item): (WebCore::DataTransferItems::deleteItem): (WebCore::DataTransferItems::clear): (WebCore::DataTransferItems::add): * dom/DataTransferItems.h: * platform/chromium/DataTransferItemChromium.cpp: (WebCore::DataTransferItem::create): (WebCore::DataTransferItemChromium::DataTransferItemChromium): (WebCore::DataTransferItemChromium::getAsString): (WebCore::DataTransferItemChromium::getAsFile): * platform/chromium/DataTransferItemChromium.h: * platform/chromium/DataTransferItemsChromium.cpp: (WebCore::DataTransferItemsChromium::DataTransferItemsChromium): * platform/chromium/DataTransferItemsChromium.h: 2011-04-25 Chris Marrin <cmarrin@apple.com> Reviewed by Simon Fraser. REGRESSION(75137): directly composited images are double-drawn sometimes https://bugs.webkit.org/show_bug.cgi?id=58632 Depending on the order of operations (layout, creating compositing layers and creating simple image layers) a layer can have both image content and have m_drawsContent=true. In this case 2 copies of the image are drawn in the layer. If the image has alpha, it looks wrong. I added an updateDrawsContent() call after setting the image contents to make sure it's correct. I couldn't create a test case that shows the problem because layerTreeAsText() doesn't emit enough info to show this level of detail. I've opened https://bugs.webkit.org/show_bug.cgi?id=59352 to fix that. * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateImageContents): 2011-04-25 Kenneth Russell <kbr@google.com> Reviewed by David Levin. Fix OwnPtr strict errors in InlineFlowBox.cpp https://bugs.webkit.org/show_bug.cgi?id=59392 * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::setLayoutOverflow): (WebCore::InlineFlowBox::setVisualOverflow): 2011-04-25 Kenneth Russell <kbr@google.com> Reviewed by David Levin. Fix OwnPtr strict errors in TransformState.cpp https://bugs.webkit.org/show_bug.cgi?id=59380 * rendering/TransformState.cpp: (WebCore::TransformState::applyTransform): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by James Robinson. DOMWindow.cpp should work with strict OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59356 * page/DOMWindow.cpp: (WebCore::PostMessageTimer::fired): (WebCore::DOMWindow::postMessageTimerFired): * page/DOMWindow.h: 2011-04-25 Adam Klein <adamk@chromium.org> Reviewed by James Robinson. Fix OwnPtr strict errors in some SVG classes. https://bugs.webkit.org/show_bug.cgi?id=59395 * rendering/style/SVGRenderStyleDefs.cpp: (WebCore::StyleShadowSVGData::StyleShadowSVGData): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::SVGSVGElement): * svg/SVGStyledTransformableElement.cpp: (WebCore::SVGStyledTransformableElement::supplementalTransform): * svg/SVGTextElement.cpp: (WebCore::SVGTextElement::supplementalTransform): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::dataChanged): 2011-04-25 Adam Barth <abarth@webkit.org> Re-land changes to ValidationMessage. * html/ValidationMessage.cpp: (WebCore::ValidationMessage::setMessage): (WebCore::ValidationMessage::setMessageDOMAndStartTimer): (WebCore::ValidationMessage::requestToHideMessage): 2011-04-25 Ojan Vafai <ojan@chromium.org> Reviewed by James Robinson. fix OwnPtr strict error in FrameView.cpp https://bugs.webkit.org/show_bug.cgi?id=59402 * page/FrameView.cpp: (WebCore::FrameView::FrameView): (WebCore::FrameView::addWidgetToUpdate): 2011-04-25 Adam Klein <adamk@chromium.org> Unreviewed, rolling out r84844. http://trac.webkit.org/changeset/84844 https://bugs.webkit.org/show_bug.cgi?id=59395 Checked in too much. * rendering/style/SVGRenderStyleDefs.cpp: (WebCore::StyleShadowSVGData::StyleShadowSVGData): * svg/SVGDocumentExtensions.cpp: (WebCore::SVGDocumentExtensions::removePendingResource): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::SVGSVGElement): * svg/SVGStyledTransformableElement.cpp: (WebCore::SVGStyledTransformableElement::supplementalTransform): * svg/SVGTextElement.cpp: (WebCore::SVGTextElement::supplementalTransform): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::dataChanged): 2011-04-25 Adrienne Walker <enne@google.com> Reviewed by David Levin. Make ActiveDOMCallback play nice with OwnPtr strict mode https://bugs.webkit.org/show_bug.cgi?id=59398 * bindings/generic/ActiveDOMCallback.cpp: (WebCore::ActiveDOMCallback::ActiveDOMCallback): 2011-04-25 Adam Klein <adamk@chromium.org> Reviewed by James Robinson. Fix OwnPtr strict errors in some SVG classes. https://bugs.webkit.org/show_bug.cgi?id=59395 * rendering/style/SVGRenderStyleDefs.cpp: (WebCore::StyleShadowSVGData::StyleShadowSVGData): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::SVGSVGElement): * svg/SVGStyledTransformableElement.cpp: (WebCore::SVGStyledTransformableElement::supplementalTransform): * svg/SVGTextElement.cpp: (WebCore::SVGTextElement::supplementalTransform): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::dataChanged): 2011-04-25 James Robinson <jamesr@chromium.org> Unreviewed, rolling out r84835. http://trac.webkit.org/changeset/84835 https://bugs.webkit.org/show_bug.cgi?id=59394 Breaks compile because Deque<OwnPtr> doesn't work * dom/XMLDocumentParserLibxml2.cpp: (WebCore::PendingCallbacks::~PendingCallbacks): (WebCore::PendingCallbacks::appendStartElementNSCallback): (WebCore::PendingCallbacks::appendEndElementNSCallback): (WebCore::PendingCallbacks::appendCharactersCallback): (WebCore::PendingCallbacks::appendProcessingInstructionCallback): (WebCore::PendingCallbacks::appendCDATABlockCallback): (WebCore::PendingCallbacks::appendCommentCallback): (WebCore::PendingCallbacks::appendInternalSubsetCallback): (WebCore::PendingCallbacks::appendErrorCallback): (WebCore::XMLDocumentParser::XMLDocumentParser): * html/ValidationMessage.cpp: (WebCore::ValidationMessage::setMessage): (WebCore::ValidationMessage::setMessageDOMAndStartTimer): (WebCore::ValidationMessage::requestToHideMessage): 2011-04-25 James Robinson <jamesr@chromium.org> Reviewed by Sam Weinig. Fix OwnPtr strict mode violation in ImageBufferCG https://bugs.webkit.org/show_bug.cgi?id=59396 * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::ImageBuffer): 2011-04-25 Huang Dongsung <luxtella@company100.net> Reviewed by Dirk Schulze. [Skia] Remove an unused local variable in PlatformContextSkia::readbackHardwareToSoftware(). https://bugs.webkit.org/show_bug.cgi?id=59308 An unused local variable is created and even allocates heap memory. * platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::readbackHardwareToSoftware): 2011-04-25 Geoffrey Garen <ggaren@apple.com> Qt build fix: Updated files not used by other ports for rename. * bindings/js/JSTouchCustom.cpp: (WebCore::toJSNewlyCreated): * bindings/js/JSTouchListCustom.cpp: (WebCore::toJSNewlyCreated): 2011-04-25 Adrienne Walker <enne@google.com> Reviewed by David Levin. WebCore/css/CSS* files should play nice with strict OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59382 * css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::getFontData): * css/CSSParser.cpp: (WebCore::CSSParser::addProperty): (WebCore::CSSParser::parseValue): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by James Robinson. ValidationMessage and XMLDocumentParserLibxml2 should play nice with strict OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59394 * dom/XMLDocumentParserLibxml2.cpp: (WebCore::PendingCallbacks::PendingCallbacks): (WebCore::PendingCallbacks::appendStartElementNSCallback): (WebCore::PendingCallbacks::appendEndElementNSCallback): (WebCore::PendingCallbacks::appendCharactersCallback): (WebCore::PendingCallbacks::appendProcessingInstructionCallback): (WebCore::PendingCallbacks::appendCDATABlockCallback): (WebCore::PendingCallbacks::appendCommentCallback): (WebCore::PendingCallbacks::appendInternalSubsetCallback): (WebCore::PendingCallbacks::appendErrorCallback): (WebCore::XMLDocumentParser::XMLDocumentParser): * html/ValidationMessage.cpp: (WebCore::ValidationMessage::setMessage): (WebCore::ValidationMessage::setMessageDOMAndStartTimer): (WebCore::ValidationMessage::requestToHideMessage): 2011-04-25 James Robinson <jamesr@chromium.org> Reviewed by Adam Barth. Fix OwnPtr strictness issues in WebCore/inspector/ https://bugs.webkit.org/show_bug.cgi?id=59387 * inspector/InspectorAgent.cpp: (WebCore::InspectorAgent::InspectorAgent): * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): * inspector/InspectorStyleSheet.cpp: (WebCore::InspectorStyleSheet::ensureSourceData): 2011-04-25 Geoffrey Garen <ggaren@apple.com> Reviewed by Beth Dakin. Removed XPathNamespace because it was unused https://bugs.webkit.org/show_bug.cgi?id=59381 This allows us to make Node::ownerDocument() non-virtual, though it has the unhappy side-effect of rebuilding the world. * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: Bye bye dead code. * dom/Node.h: Hello fast code! * xml/XPathNamespace.cpp: Removed. * xml/XPathNamespace.h: Removed. 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by Darin Adler. HistoryItemMac should play nice with OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59388 * history/mac/HistoryItemMac.mm: (WebCore::HistoryItem::setTransientProperty): 2011-04-25 David Levin <levin@chromium.org> Reviewed by Kenneth Russell. Fix strict OwnPtrs in ContextMenuController.cpp https://bugs.webkit.org/show_bug.cgi?id=59375 * page/ContextMenuController.cpp: (WebCore::ContextMenuController::createContextMenu): (WebCore::separatorItem): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by Darin Adler. CheckedRadioButton should play nice with strict OwnPtr https://bugs.webkit.org/show_bug.cgi?id=59386 * dom/CheckedRadioButtons.cpp: (WebCore::CheckedRadioButtons::addButton): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by David Levin. Resource*.cpp should play nice with strict OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59383 * bridge/runtime_method.cpp: (JSC::RuntimeMethod::RuntimeMethod): * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::ResourceHandle): * platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::adopt): (WebCore::ResourceResponseBase::copyData): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by David Levin. Page*.cpp and objc_runtime.mm should play nice with strict OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59374 * bridge/objc/objc_runtime.mm: (JSC::Bindings::callObjCFallbackObject): * page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::initGroup): * page/PageGroup.cpp: (WebCore::PageGroup::addUserScriptToWorld): (WebCore::PageGroup::addUserStyleSheetToWorld): * page/mac/PageMac.cpp: (WebCore::Page::addSchedulePair): 2011-04-25 Geoffrey Garen <ggaren@apple.com> Build fix: This time for sure! * dom/make_names.pl: 2011-04-25 Geoffrey Garen <ggaren@apple.com> Build fix: Let's edit the script instead of the autogenrated file. That way, our change will stand the test of time. * dom/make_names.pl: 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by David Levin. Fix strict OwnPtrs in HTMLMediaElement and HTTPHeaderMap https://bugs.webkit.org/show_bug.cgi?id=59368 * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): * platform/network/HTTPHeaderMap.cpp: (WebCore::HTTPHeaderMap::copyData): 2011-04-25 James Robinson <jamesr@chromium.org> Reviewed by Adam Barth. Fix strict OwnPtr violations in Render*.cpp https://bugs.webkit.org/show_bug.cgi?id=59361 * rendering/RenderBlock.cpp: (WebCore::RenderBlock::RenderBlock): (WebCore::RenderBlock::finishDelayUpdateScrollInfo): * rendering/RenderBox.cpp: (WebCore::RenderBox::addLayoutOverflow): (WebCore::RenderBox::addVisualOverflow): * rendering/RenderButton.cpp: (WebCore::RenderButton::styleDidChange): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateTransform): (WebCore::RenderLayer::paintChildLayerIntoColumns): (WebCore::RenderLayer::hitTestChildLayerColumns): (WebCore::RenderLayer::ensureBacking): * rendering/RenderTable.cpp: (WebCore::RenderTable::styleDidChange): * rendering/RenderView.cpp: (WebCore::RenderView::compositor): * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::addCachedPseudoStyle): (WebCore::RenderStyle::accessCounterDirectives): (WebCore::RenderStyle::accessAnimations): (WebCore::RenderStyle::accessTransitions): * rendering/svg/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::applyResource): * rendering/svg/SVGResources.cpp: (WebCore::SVGResources::SVGResources): 2011-04-25 Adam Barth <abarth@webkit.org> Attempt to fix the compile. * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::loadWithNextMediaEngine): 2011-04-25 Geoffrey Garen <ggaren@apple.com> Rubber-stamped by Beth Dakin. Merged CREATE_DOM_NODE_WRAPPER and CREATE_DOM_OBJECT_WRAPPER into CREATE_DOM_WRAPPER because there's no meaningful difference between them anymore. * bindings/js/JSCDATASectionCustom.cpp: (WebCore::toJSNewlyCreated): * bindings/js/JSCSSRuleCustom.cpp: (WebCore::toJS): * bindings/js/JSCSSValueCustom.cpp: (WebCore::toJS): * bindings/js/JSDOMBinding.h: * bindings/js/JSDocumentCustom.cpp: (WebCore::toJS): * bindings/js/JSElementCustom.cpp: (WebCore::toJSNewlyCreated): * bindings/js/JSEventCustom.cpp: (WebCore::toJS): * bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::toJS): * bindings/js/JSImageDataCustom.cpp: (WebCore::toJS): * bindings/js/JSNodeCustom.cpp: (WebCore::createWrapperInline): * bindings/js/JSSVGPathSegCustom.cpp: (WebCore::toJS): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::toJS): * bindings/js/JSTextCustom.cpp: (WebCore::toJSNewlyCreated): * bindings/js/JSWebKitCSSMatrixCustom.cpp: (WebCore::JSWebKitCSSMatrixConstructor::constructJSWebKitCSSMatrix): * bindings/js/JSWebSocketCustom.cpp: (WebCore::JSWebSocketConstructor::constructJSWebSocket): * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequestConstructor::constructJSXMLHttpRequest): * bindings/js/JSXSLTProcessorCustom.cpp: (WebCore::JSXSLTProcessorConstructor::constructJSXSLTProcessor): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by James Robinson. HTMLDocumentParser should play nice with OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59363 * html/parser/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::pumpTokenizer): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by James Robinson. Frame.cpp should work with strict OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59360 * page/Frame.cpp: (WebCore::createRegExpForLabels): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by David Levin. Fix strict OwnPtr in Element.cpp https://bugs.webkit.org/show_bug.cgi?id=59357 * dom/NodeRareData.h: (WebCore::NodeRareData::ensureEventTargetData): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by David Levin. Fix strict OwnPtr issues in Media*.cpp https://bugs.webkit.org/show_bug.cgi?id=59354 There's still a tricky case in MediaPlayer.cpp, but we'll worry about that later. * css/MediaQueryMatcher.cpp: (WebCore::MediaQueryMatcher::addListener): * dom/Document.cpp: * platform/graphics/MediaPlayer.cpp: (WebCore::createNullMediaPlayer): 2011-04-25 James Robinson <jamesr@chromium.org> Reviewed by David Levin. Fix strict OwnPtr violations in ListHashSet and RenderLayerCompositor https://bugs.webkit.org/show_bug.cgi?id=59353 * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::RenderLayerCompositor): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by James Robinson. Worker*.cpp should work with strict OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59346 * inspector/WorkerInspectorController.cpp: (WebCore::WorkerInspectorController::WorkerInspectorController): * workers/WorkerContext.cpp: (WebCore::WorkerContext::WorkerContext): * workers/WorkerRunLoop.cpp: (WebCore::WorkerRunLoop::WorkerRunLoop): * workers/WorkerScriptLoader.cpp: (WebCore::WorkerScriptLoader::createResourceRequest): 2011-04-25 James Robinson <jamesr@chromium.org> Reviewed by Adam Barth. Remove bad use of OwnPtr::set() in IconDatabase.cpp https://bugs.webkit.org/show_bug.cgi?id=59344 Needed for strict OwnPtr compliance. * loader/icon/IconDatabase.cpp: (WebCore::readySQLiteStatement): 2011-04-25 Adam Barth <abarth@webkit.org> Reviewed by Maciej Stachowiak. ImageBuffer.h should work with strict OwnPtrs https://bugs.webkit.org/show_bug.cgi?id=59341 This patch is to prepare for the strict OwnPtr hack-a-thon. * platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::create): 2011-04-25 Steve Falkenburg <sfalken@apple.com> Reviewed by Brian Weinstein. WebCore build on Windows should include windows.h in its precompiled header to speed builds https://bugs.webkit.org/show_bug.cgi?id=59339 windows.h is included by several of the underlying wtf headers, including Atomics.h and ThreadingPrimitives.h anyway, so include it in the WebCorePrefix.h to speed up compilation. On my 8 core Mac Pro, this reduces a clean rebuild of debug WebCore from 8 minutes to 7 minutes (a 12% speedup). * WebCorePrefix.h: Include windows.h 2011-04-25 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK] Crash in WebCore::FrameView::notifyPageThatContentAreaWillPaint() https://bugs.webkit.org/show_bug.cgi?id=59311 * platform/gtk/MainFrameScrollbarGtk.cpp: (MainFrameScrollbarGtk::attachAdjustment): Before connecting an adjustment to a scrollbar disconnect any lingering signal handlers. This prevents an adjustment from controlling the active ScrollView and some zombie ScrollView. 2011-04-25 Geoffrey Garen <ggaren@apple.com> Another shot at fixing the EFL build. * UseJSC.cmake: * bindings/js/JSDOMBinding.cpp: 2011-04-25 Geoffrey Garen <ggaren@apple.com> Try to fix EFL build. * UseJSC.cmake: Added a missing file. 2011-04-25 Geoffrey Garen <ggaren@apple.com> Reviewed by Oliver Hunt. Removed a use of markDOMObjectWrapper: ActiveDOMObjects, Workers, and MessagePorts https://bugs.webkit.org/show_bug.cgi?id=59333 * WebCore.xcodeproj/project.pbxproj: Added .idl files for easier editing. * bindings/js/JSDOMBinding.cpp: * bindings/js/JSDOMBinding.h: * bindings/js/JSDocumentCustom.cpp: * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::visitChildren): Removed now-unused functions. * bindings/scripts/CodeGeneratorJS.pm: Added support for ActiveDOMObject lifetime management. * dom/Document.idl: No need for a custom mark function anymore, since ActiveDOMObjets now manage their own lifetimes. * dom/MessagePort.cpp: (WebCore::MessagePort::hasPendingActivity): Correctly report that we have pending activity when we're remotely entangled, instead of relying on our clients to know this about us and do the check for us. * dom/MessagePort.h: FIXME! * dom/MessagePort.idl: * fileapi/DOMFileSystem.idl: * fileapi/FileReader.idl: * fileapi/FileWriter.idl: * notifications/Notification.idl: * notifications/NotificationCenter.idl: * page/EventSource.idl: * storage/IDBDatabase.idl: * storage/IDBRequest.idl: * storage/IDBTransaction.idl: * webaudio/AudioContext.idl: * websockets/WebSocket.idl: * workers/AbstractWorker.idl: * workers/SharedWorker.idl: * workers/Worker.idl: Opt in to ActiveDOMObject lifetime management. * workers/WorkerContext.cpp: (WebCore::WorkerContext::hasPendingActivity): No need to make up for MessagePort::hasPendingActivity being wrong anymore, since it's now right. * xml/XMLHttpRequest.idl: Opt in to ActiveDOMObject lifetime management. 2011-04-25 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: worker messages should be routed to corresponding worker front-end https://bugs.webkit.org/show_bug.cgi?id=59323 Added WorkerManager which is responsible for routing messages between Page inspector front-end and Worker inspector front-ends. * WebCore.gypi: * inspector/front-end/WebKit.qrc: * inspector/front-end/WorkerManager.js: Added. (WebInspector.WorkerManager): (WebInspector.WorkerManager.loaded.InspectorFrontendHost.sendMessageToBackend): (WebInspector.WorkerManager.loaded.InspectorFrontendHost.loaded): (WebInspector.WorkerManager.loaded): (WebInspector.WorkerFrontendStub): (WebInspector.WorkerFrontendStub.prototype._receiveMessage): (WebInspector.WorkerDispatcher): (WebInspector.WorkerDispatcher.prototype._receiveMessage): (WebInspector.WorkerDispatcher.prototype.workerCreated): (WebInspector.WorkerDispatcher.prototype.dispatchMessageFromWorker): * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector.loaded): 2011-04-25 Annie Sullivan <sullivan@chromium.org> Reviewed by Pavel Feldman. Web Inspector: [Resources panel] Should be easy to copy data. https://bugs.webkit.org/show_bug.cgi?id=45662 Adds context menu items to copy resource location, resource request headers, and resource response headers. * inspector/front-end/NetworkPanel.js: (WebInspector.NetworkPanel.prototype._contextMenu): Add new items to context menu. (WebInspector.NetworkPanel.prototype._exportLocation): Copy resource location to clipboard. (WebInspector.NetworkPanel.prototype._exportRequestHeaders): Copy resource request headers to clipboard. (WebInspector.NetworkPanel.prototype._exportResponseHeaders): Copy resource response headers to clipboard. * inspector/front-end/Resource.js: (WebInspector.Resource.prototype.get requestHeadersText): If _requestHeadersText is undefined, generate it from requestHeaders. (WebInspector.Resource.prototype.get responseHeadersText): If _responseHeadersText is undefined, generate it form responseHeaders. 2011-04-25 Alexander Pavlov <apavlov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: CSS is parsed improperly when saved in UTF-8 with a BOM https://bugs.webkit.org/show_bug.cgi?id=59322 Use TextResourceDecoder to determine external stylesheet charsets correctly. Test: inspector/styles/parse-utf8-bom.html * inspector/InspectorStyleSheet.cpp: (WebCore::InspectorStyleSheet::originalStyleSheetText): 2011-04-25 Pavel Feldman <pfeldman@google.com> Not reviewed: Inspector.json cleanup. * inspector/Inspector.json: 2011-04-25 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: introduce InspectorWorkerAgent https://bugs.webkit.org/show_bug.cgi?id=59320 InspectorWorkerAgent is responsible for routing inspector messages between worker context inspector agents and corresponding worker inspector front-end. * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * inspector/CodeGeneratorInspector.pm: * inspector/Inspector.json: * inspector/InspectorAgent.cpp: (WebCore::InspectorAgent::InspectorAgent): (WebCore::InspectorAgent::setFrontend): (WebCore::InspectorAgent::disconnectFrontend): * inspector/InspectorAgent.h: (WebCore::InspectorAgent::workerAgent): * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::disconnectFrontend): * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::didStartWorkerContextImpl): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::willStartWorkerContext): (WebCore::InspectorInstrumentation::didStartWorkerContext): * inspector/InspectorWorkerAgent.cpp: Added. (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::WorkerFrontendChannel): (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel): (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::id): (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::inspectorProxy): (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::sendMessageToFrontend): (WebCore::InspectorWorkerAgent::create): (WebCore::InspectorWorkerAgent::InspectorWorkerAgent): (WebCore::InspectorWorkerAgent::~InspectorWorkerAgent): (WebCore::InspectorWorkerAgent::setFrontend): (WebCore::InspectorWorkerAgent::clearFrontend): (WebCore::InspectorWorkerAgent::dispatchMessageOnWorkerInspector): (WebCore::InspectorWorkerAgent::didStartWorkerContext): * inspector/InspectorWorkerAgent.h: Added. * inspector/InstrumentingAgents.h: (WebCore::InstrumentingAgents::InstrumentingAgents): (WebCore::InstrumentingAgents::inspectorWorkerAgent): (WebCore::InstrumentingAgents::setInspectorWorkerAgent): * inspector/WorkerInspectorController.cpp: (WebCore::WorkerInspectorController::connectFrontend): * inspector/generate-inspector-idl: * workers/Worker.cpp: (WebCore::Worker::notifyFinished): * workers/WorkerContextInspectorProxy.h: Added. Platform-specific transport for inspector messages sent from the inspected page worker agent to the worker context inspector agents. (WebCore::WorkerContextInspectorProxy::connectFrontend): (WebCore::WorkerContextInspectorProxy::disconnectFrontend): (WebCore::WorkerContextInspectorProxy::sendMessageToWorkerContextInspector): (WebCore::WorkerContextInspectorProxy::~WorkerContextInspectorProxy): * workers/WorkerContextProxy.h: (WebCore::WorkerContextProxy::inspectorProxy): 2011-04-25 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: move Frame and Resource Tree management into the Page agent. https://bugs.webkit.org/show_bug.cgi?id=59321 Network agent should only handle network-related activities. Frame structure should be managed by the Page agent instead. * inspector/Inspector.json: * inspector/InspectorAgent.cpp: (WebCore::InspectorAgent::InspectorAgent): * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::InspectorDOMAgent): (WebCore::InspectorDOMAgent::setFrontend): (WebCore::InspectorDOMAgent::restore): (WebCore::InspectorDOMAgent::highlightFrame): * inspector/InspectorDOMAgent.h: (WebCore::InspectorDOMAgent::create): * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl): (WebCore::InspectorInstrumentation::loadEventFiredImpl): (WebCore::InspectorInstrumentation::frameDetachedFromParentImpl): (WebCore::InspectorInstrumentation::didCommitLoadImpl): * inspector/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::create): (WebCore::InspectorPageAgent::resourceContent): (WebCore::InspectorPageAgent::resourceContentBase64): (WebCore::InspectorPageAgent::resourceData): (WebCore::InspectorPageAgent::cachedResource): (WebCore::InspectorPageAgent::resourceTypeString): (WebCore::InspectorPageAgent::cachedResourceType): (WebCore::InspectorPageAgent::cachedResourceTypeString): (WebCore::InspectorPageAgent::InspectorPageAgent): (WebCore::InspectorPageAgent::setFrontend): (WebCore::InspectorPageAgent::reload): (WebCore::InspectorPageAgent::open): (WebCore::InspectorPageAgent::getCookies): (WebCore::InspectorPageAgent::deleteCookie): (WebCore::InspectorPageAgent::getResourceTree): (WebCore::InspectorPageAgent::getResourceContent): (WebCore::InspectorPageAgent::restore): (WebCore::InspectorPageAgent::domContentEventFired): (WebCore::InspectorPageAgent::loadEventFired): (WebCore::InspectorPageAgent::frameNavigated): (WebCore::InspectorPageAgent::frameDetached): (WebCore::InspectorPageAgent::didClearWindowObjectInWorld): (WebCore::InspectorPageAgent::mainFrame): (WebCore::pointerAsId): (WebCore::InspectorPageAgent::frameForId): (WebCore::InspectorPageAgent::frameId): (WebCore::InspectorPageAgent::loaderId): (WebCore::InspectorPageAgent::buildObjectForFrame): (WebCore::InspectorPageAgent::buildObjectForFrameTree): * inspector/InspectorPageAgent.h: * inspector/InspectorResourceAgent.cpp: (WebCore::buildObjectForCachedResource): (WebCore::InspectorResourceAgent::willSendRequest): (WebCore::InspectorResourceAgent::didReceiveResponse): (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache): (WebCore::InspectorResourceAgent::setInitialScriptContent): (WebCore::InspectorResourceAgent::setInitialXHRContent): (WebCore::InspectorResourceAgent::InspectorResourceAgent): * inspector/InspectorResourceAgent.h: (WebCore::InspectorResourceAgent::create): * inspector/InspectorStyleSheet.cpp: (WebCore::InspectorStyleSheet::resourceStyleSheetText): * inspector/front-end/NetworkManager.js: (WebInspector.NetworkManager.prototype.requestContent): * inspector/front-end/NetworkPanel.js: (WebInspector.NetworkPanel): (WebInspector.NetworkPanel.prototype.frameNavigated): * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel): (WebInspector.ResourceTreeModel.prototype.frontendReused): (WebInspector.ResourceTreeModel.prototype.frameNavigated): (WebInspector.ResourceTreeModel.prototype.frameDetached): * inspector/front-end/inspector.js: (WebInspector.domContentEventFired): (WebInspector.loadEventFired): (WebInspector.frameNavigated): (WebInspector.frameDetached): 2011-04-25 Pavel Feldman <pfeldman@google.com> Reviewed by Yury Semikhatsky. Web Inspector: few protocol improvements. https://bugs.webkit.org/show_bug.cgi?id=59319 - Page domain is documented - setUserAgentOverride is moved to the Network agent - setSearchingForNode -> setInspectModeEnabled - highlightDOMNode -> highlightNode - reloadPage -> reload - openInNewWindow -> open with optional parameter * inspector/Inspector.json: * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::setInspectModeEnabled): (WebCore::InspectorDOMAgent::highlightNode): * inspector/InspectorDOMAgent.h: (WebCore::InspectorDOMAgent::hideNodeHighlight): * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::applyUserAgentOverrideImpl): * inspector/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::clearFrontend): (WebCore::InspectorPageAgent::reload): (WebCore::InspectorPageAgent::open): * inspector/InspectorPageAgent.h: * inspector/InspectorResourceAgent.cpp: (WebCore::InspectorResourceAgent::clearFrontend): (WebCore::InspectorResourceAgent::applyUserAgentOverride): (WebCore::InspectorResourceAgent::setUserAgentOverride): * inspector/InspectorResourceAgent.h: * inspector/front-end/AuditsPanel.js: (WebInspector.AuditsPanel.prototype._reloadResources): * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype.setSearchingForNode): * inspector/front-end/ExtensionServer.js: (WebInspector.ExtensionServer.prototype._onReload): * inspector/front-end/NetworkPanel.js: (WebInspector.NetworkDataGridNode.prototype._openInNewTab): * inspector/front-end/ResourcesPanel.js: (WebInspector.FrameResourceTreeElement.prototype.ondblclick): * inspector/front-end/inspector.js: (WebInspector.highlightDOMNode): (WebInspector.openResource): (WebInspector.documentKeyDown): 2011-04-25 Jon Lee <jonlee@apple.com> Reviewed by Maciej Stachowiak. Overlay scroller hard to see on pages with dark background (59183) https://bugs.webkit.org/show_bug.cgi?id=59183 <rdar://problem/8975367> Switch the scrollbar's overlay style depending on its frame's background color. This refactors the getDocumentBackgroundColor method needed for gestures. The style is determined and set on every paint() call to the Mac scrollbar theme. * WebCore.exp.in: adding method to allow changing style * page/Frame.cpp: (WebCore::Frame::getDocumentBackgroundColor): moving code from WebFrame for reuse by FrameView * page/Frame.h: * page/FrameView.cpp: (WebCore::FrameView::recommendedScrollbarOverlayStyle): overridden to suggest a style based on CSS background color * page/FrameView.h: * platform/ScrollTypes.h: new enum to represent different overlay scrollbar styles * platform/ScrollableArea.h: (WebCore::ScrollableArea::recommendedScrollbarOverlayStyle): new virtual function to return a suggested overlay style * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::paint): * platform/mac/WebCoreSystemInterface.h: * platform/mac/WebCoreSystemInterface.mm: 2011-04-25 Dan Bernstein <mitz@apple.com> Reviewed by Maciej Stachowiak. <rdar://problem/9113516> REGRESSION (WK2): Holding down Option while dragging scrollbar thumb has no effect (should make scroll distance equal mouse translation) https://bugs.webkit.org/show_bug.cgi?id=59315 * platform/Scrollbar.cpp: (WebCore::Scrollbar::Scrollbar): Initialize new member variables. (WebCore::Scrollbar::moveThumb): Added a boolean draggingDocument parameter. When true, the document is scrolled a distance equal to the change in the mouse position. (WebCore::Scrollbar::mouseMoved): Check with the theme whether the mouse move event should drag the document rather than the thumb, and pass the result to moveThumb. (WebCore::Scrollbar::mouseUp): Reset m_draggingDocument. * platform/Scrollbar.h: * platform/ScrollbarTheme.h: (WebCore::ScrollbarTheme::shouldDragDocumentInsteadOfThumb): Added. The base class implementation returns false. * platform/mac/ScrollbarThemeMac.h: * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::shouldDragDocumentInsteadOfThumb): Overridden to return true if the Option key is down. 2011-04-24 Geoffrey Garen <ggaren@apple.com> Reviewed by Sam Weinig. Removed a use of markDOMObjectWrapper: WebGL, XHR, workers; plus, more autogeneration https://bugs.webkit.org/show_bug.cgi?id=59307 * WebCore.xcodeproj/project.pbxproj: Added Blob.idl, so it's easier to edit. * bindings/js/JSCSSRuleCustom.cpp: * bindings/js/JSCSSStyleDeclarationCustom.cpp: * bindings/js/JSCanvasRenderingContextCustom.cpp: * bindings/js/JSDOMApplicationCacheCustom.cpp: Autogenerate these instead of hand-coding them. * bindings/js/JSDOMBinding.h: (WebCore::root): Moved some GC helpers here from JSNodeCustom.h, because they're reasonably generic. * bindings/js/JSDOMImplementationCustom.cpp: * bindings/js/JSDOMStringMapCustom.cpp: * bindings/js/JSDOMTokenListCustom.cpp: * bindings/js/JSHTMLCollectionCustom.cpp: * bindings/js/JSMediaListCustom.cpp: Autogenerate these instead of hand-coding them. * bindings/js/JSMessageChannelCustom.cpp: (WebCore::JSMessageChannel::visitChildren): * bindings/js/JSMessagePortCustom.cpp: (WebCore::JSMessagePort::visitChildren): Use addOpaqueRoot instead of markDOMObjectWrapper. This is one of the few cases where a DOM object is considered a stand-alone root. It's not as efficient as the shared root case, but workers and message ports are very rare objects, so it's no big deal. * bindings/js/JSNamedNodeMapCustom.cpp: Autogenerate! * bindings/js/JSNodeCustom.h: Moved to JSDOMBinding.h. * bindings/js/JSSharedWorkerCustom.cpp: (WebCore::JSSharedWorker::visitChildren): Use addOpaqueRoot instead of markDOMObjectWrapper, as above. Once again, a stand-alone root. * bindings/js/JSStyleSheetCustom.cpp: * bindings/js/JSStyleSheetListCustom.cpp: Autogenerate! * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::JSWebGLRenderingContext::visitChildren): Use the opaque roots system for marking WebGL contexts and their associated satellite objects. * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::visitChildren): * bindings/js/JSXMLHttpRequestCustom.cpp: Use addOpaqueRoot instead of markDOMObjectWrapper, as above. Once again, stand-alone roots. (WebCore::JSXMLHttpRequest::visitChildren): * bindings/js/JSXMLHttpRequestUploadCustom.cpp: No need to mark our owner XHR because it is not reachable from us. * bindings/scripts/CodeGeneratorJS.pm: Added autogeneration support for a bunch of repetitive cases of isReachableFromOpaqueRoots callbacks. * css/CSSRule.idl: * css/CSSStyleDeclaration.idl: * css/MediaList.idl: * css/StyleMedia.idl: * css/StyleSheet.idl: * css/StyleSheetList.idl: * dom/DOMImplementation.idl: * dom/DOMStringMap.idl: * dom/MessagePort.idl: * dom/NamedNodeMap.idl: * fileapi/Blob.idl: * html/DOMTokenList.idl: Opt in to autogeneration. * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::getContext): Standardized on PassOwnPtr/OwnPtr usage, to reduce human error and make ownership rules more obvious. * html/HTMLCollection.idl: * html/canvas/ArrayBuffer.idl: Opt in to autogeneration. * html/canvas/CanvasRenderingContext.cpp: * html/canvas/CanvasRenderingContext.h: (WebCore::CanvasRenderingContext::ref): (WebCore::CanvasRenderingContext::deref): * html/canvas/CanvasRenderingContext2D.h: (WebCore::CanvasRenderingContext2D::create): (WebCore::CanvasRenderingContext2D::state): Standardized on PassOwnPtr/OwnPtr usage, to reduce human error and make ownership rules more obvious. Inlined some functions to match our standard idiom and to make the code in the header document itself. * html/canvas/CanvasRenderingContext.idl: Opt in to autogeneration. * html/canvas/OESStandardDerivatives.cpp: (WebCore::OESStandardDerivatives::OESStandardDerivatives): (WebCore::OESStandardDerivatives::create): * html/canvas/OESStandardDerivatives.h: * html/canvas/OESStandardDerivatives.idl: * html/canvas/OESTextureFloat.cpp: (WebCore::OESTextureFloat::OESTextureFloat): (WebCore::OESTextureFloat::create): * html/canvas/OESTextureFloat.h: * html/canvas/OESTextureFloat.idl: * html/canvas/OESVertexArrayObject.cpp: (WebCore::OESVertexArrayObject::OESVertexArrayObject): (WebCore::OESVertexArrayObject::create): * html/canvas/OESVertexArrayObject.h: * html/canvas/OESVertexArrayObject.idl: * html/canvas/WebGLExtension.cpp: (WebCore::WebGLExtension::WebGLExtension): * html/canvas/WebGLExtension.h: (WebCore::WebGLExtension::ref): (WebCore::WebGLExtension::deref): (WebCore::WebGLExtension::context): * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::~WebGLRenderingContext): (WebCore::WebGLRenderingContext::getExtension): * html/canvas/WebGLRenderingContext.h: * html/canvas/WebKitLoseContext.cpp: (WebCore::WebKitLoseContext::WebKitLoseContext): (WebCore::WebKitLoseContext::create): (WebCore::WebKitLoseContext::loseContext): * html/canvas/WebKitLoseContext.h: * html/canvas/WebKitLoseContext.idl: Updated the ownership model for WebGL canavs rendering contexts to match the model for 2D canvas rendering contexts. This makes garbage collection a lot more straightforward, but it also makes the behavior of these objects more reliable. (Previously, satellite objects would magically stop working when the last reference to their owner object was dropped. Now, satellite objects keep their owner alive through reference counting.) * loader/appcache/DOMApplicationCache.idl: * page/BarInfo.idl: * page/Console.idl: * page/DOMSelection.idl: * page/Geolocation.idl: * page/History.idl: * page/Location.idl: * page/Navigator.idl: * page/Screen.idl: * page/WorkerNavigator.idl: * plugins/DOMMimeTypeArray.h: (WebCore::DOMMimeTypeArray::frame): * plugins/DOMMimeTypeArray.idl: * plugins/DOMPluginArray.h: (WebCore::DOMPluginArray::frame): * plugins/DOMPluginArray.idl: * storage/Storage.idl: * workers/WorkerLocation.idl: Opt in to autogeneration. * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::~XMLHttpRequest): * xml/XMLHttpRequest.h: * xml/XMLHttpRequestUpload.cpp: (WebCore::XMLHttpRequestUpload::scriptExecutionContext): * xml/XMLHttpRequestUpload.h: (WebCore::XMLHttpRequestUpload::create): (WebCore::XMLHttpRequestUpload::ref): (WebCore::XMLHttpRequestUpload::deref): (WebCore::XMLHttpRequestUpload::xmlHttpRequest): (WebCore::XMLHttpRequestUpload::toXMLHttpRequestUpload): * xml/XMLHttpRequestUpload.idl: Updated the ownership model for XHR and its associated upload object to match the model for canvas. This makes garbage collection a lot more straightforward, but it also makes the behavior of these objects more reliable. 2011-04-24 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r84759. http://trac.webkit.org/changeset/84759 https://bugs.webkit.org/show_bug.cgi?id=59306 Caused gc-shadow.html to start crashing in V8. (Requested by dglazkov|away on #webkit). * dom/Node.cpp: (WebCore::NodeRendererFactory::createRendererAndStyle): (WebCore::Node::styleForRenderer): 2011-04-24 Maciej Stachowiak <mjs@apple.com> Reviewed by George Staikos. Handling of URLs like http:/example.com/ is incorrect https://bugs.webkit.org/show_bug.cgi?id=59300 <rdar://problem/9231956> URLs like http:/example.com/ or http:example.com/ are now correctly canonicalized as http://example.com/ The code still doesn't quite match other browsers - at least some other browsers seem to base parsing behavior on whether they recongize a scheme from a fixed list, and ignore whether // is present in the URL or not. * platform/KURL.cpp: (WebCore::isNonFileHierarchicalScheme): New helper function. (WebCore::KURL::parse): For a particular list of whitelisted schemes, assume they are hierarchical and need an authority even if there is no // after the :/ 2011-04-24 Dan Bernstein <mitz@apple.com> LLVM Compiler build fix. * page/ContentSecurityPolicy.cpp: Removed an unused function. 2011-04-24 Dominic Cooney <dominicc@chromium.org> Reviewed by Dimitri Glazkov. Crash when adding a text node to a shadow root https://bugs.webkit.org/show_bug.cgi?id=59304 Text nodes need to consult their host element for style. Test: fast/dom/shadow/append-child-text.html * dom/Node.cpp: (WebCore::NodeRendererFactory::styleForRenderer): (WebCore::NodeRendererFactory::createRendererAndStyle): (WebCore::Node::styleForRenderer): forward to NodeRendererFactory 2011-04-24 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Update Content-Security-Policy syntax to match new version of spec https://bugs.webkit.org/show_bug.cgi?id=59291 Brandon removed disable-xss-protection in favor of unsafe-inline and allow-eval in favor of unsafe-eval. This change in syntax also means the options directive no longer exists. * page/ContentSecurityPolicy.cpp: (WebCore::CSPSourceList::allowInline): (WebCore::CSPSourceList::allowEval): (WebCore::CSPSourceList::CSPSourceList): (WebCore::CSPSourceList::parseSource): (WebCore::CSPSourceList::addSourceUnsafeInline): (WebCore::CSPSourceList::addSourceUnsafeEval): (WebCore::CSPDirective::allowInline): (WebCore::CSPDirective::allowEval): (WebCore::ContentSecurityPolicy::allowJavaScriptURLs): (WebCore::ContentSecurityPolicy::allowInlineEventHandlers): (WebCore::ContentSecurityPolicy::allowInlineScript): (WebCore::ContentSecurityPolicy::allowEval): (WebCore::ContentSecurityPolicy::addDirective): * page/ContentSecurityPolicy.h: 2011-04-24 Dan Bernstein <mitz@apple.com> Reviewed by Maciej Stachowiak. Manual test for <rdar://problem/9329741> Reproducible crash in WebChromeClient::invalidateContentsAndWindow() on simonscat.com https://bugs.webkit.org/show_bug.cgi?id=59299 * manual-tests/back-from-document-with-scrollbar.html: Added. 2011-04-24 Rik Cabanier <cabanier@adobe.com> Reviewed by Simon Fraser. Tables are not rendered correctly https://bugs.webkit.org/show_bug.cgi?id=59138 Test: fast/table/auto-100-percent-width.html * rendering/AutoTableLayout.cpp: (WebCore::AutoTableLayout::computePreferredLogicalWidths): 2011-04-23 Simon Fraser <simon.fraser@apple.com> Fix Windows build, which complains about unreachable code. * platform/ScrollableArea.cpp: (WebCore::ScrollableArea::hasLayerForHorizontalScrollbar): (WebCore::ScrollableArea::hasLayerForVerticalScrollbar): (WebCore::ScrollableArea::hasLayerForScrollCorner): 2011-04-23 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. Area under composited scrollbars not repainted in WebKit2 on scrolling https://bugs.webkit.org/show_bug.cgi?id=59294 <rdar://problem/9299062> When computing the rect that can be copied on scrolling, we normally exclude the areas occupied by overlay scrollbars to avoid smeared scrollbars; the assumption is that other code will repaint these areas. However, when scrollbars are in their own compositing layers, we can, and should copy the entire area. Not testable in DRT because it does not allow tests to use overlay scrollbars. * platform/ScrollView.h: * platform/ScrollView.cpp: (WebCore::ScrollView::rectToCopyOnScroll): New method, with code moved from scrollContents and fixed to look for scrollbars in layers. (WebCore::ScrollView::scrollContents): Call rectToCopyOnScroll(). * platform/ScrollableArea.h: * platform/ScrollableArea.cpp: (WebCore::ScrollableArea::hasLayerForHorizontalScrollbar): (WebCore::ScrollableArea::hasLayerForVerticalScrollbar): (WebCore::ScrollableArea::hasLayerForScrollCorner): Methods we can call outside of the ACCELERATED_COMPOSITING #ifdef. 2011-04-23 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r84740. http://trac.webkit.org/changeset/84740 https://bugs.webkit.org/show_bug.cgi?id=59290 change breaks apple internal builds and is incorrect (Requested by smfr on #webkit). * WebCore.exp.in: * page/FrameView.cpp: * page/FrameView.h: * platform/ScrollTypes.h: * platform/ScrollableArea.h: * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::paint): * platform/mac/WebCoreSystemInterface.h: * platform/mac/WebCoreSystemInterface.mm: 2011-04-23 Dan Bernstein <mitz@apple.com> Reviewed by Simon Fraser. <rdar://problem/8970549> WebFindOptionsAtWordStarts fails with Japanese words https://bugs.webkit.org/show_bug.cgi?id=59288 * platform/text/mac/TextBoundaries.mm: (WebCore::wordStringTokenizer): Added this helper function. (WebCore::findNextWordFromIndex): Changed to use a CFStringTokenizer with kCFStringTokenizerUnitWord, whose behavior is not locale-dependent. 2011-04-23 Dominic Cooney <dominicc@chromium.org> Reviewed by Dimitri Glazkov. [V8] Nodes in shadow DOM should not be GCed while their hosts are alive https://bugs.webkit.org/show_bug.cgi?id=59284 Test: fast/dom/shadow/gc-shadow.html * bindings/v8/V8GCController.cpp: (WebCore::calculateGroupId): group shadow nodes with their hosts 2011-04-23 MORITA Hajime <morrita@google.com> Reviewed by Dimitri Glazkov. [Refactoring] NodeRenderParentDetector should be NodeRenderFactory https://bugs.webkit.org/show_bug.cgi?id=59280 - Rename NodeRenderParentDetector to NodeRendererFactory - move createRendererAndStyle() and createRendererIfNeeded to NodeRendererFactory No new test, no behavioral change. * dom/Node.cpp: (WebCore::NodeRendererFactory::NodeRendererFactory): (WebCore::NodeRendererFactory::document): (WebCore::NodeRendererFactory::nextRenderer): (WebCore::NodeRendererFactory::findVisualParent): (WebCore::NodeRendererFactory::shouldCreateRenderer): (WebCore::NodeRendererFactory::createRendererAndStyle): (WebCore::NodeRendererFactory::createRendererIfNeeded): (WebCore::Node::parentNodeForRenderingAndStyle): (WebCore::Node::createRendererIfNeeded): * dom/Node.h: * html/HTMLDetailsElement.cpp: (WebCore::DetailsSummaryElement::detailsElement): Added const_cast due to the chage on parentNodeForRenderingAndStyle() 2011-04-23 MORITA Hajime <morrita@google.com> Reviewed by Kent Tamura. REGRESSION: (non-Mac) <meter>'s bar part isn't rendered for with -webkit-writing-mode: vertical-lr from r82899 https://bugs.webkit.org/show_bug.cgi?id=59281 Styles for -webkit-meter-bar and -webkit-progress-bar missed width property, which caused unexpected layout results for vertical writing modes. This fix added a width property for each of them. Tests: fast/dom/HTMLMeterElement/meter-writing-mode.html fast/dom/HTMLProgressElement/progress-writing-mode.html * css/html.css: (meter::-webkit-meter-bar): (progress::-webkit-progress-bar): 2011-04-23 Kevin Ollivier <kevino@theolliviers.com> [wx] Unreviewed build fix. Added missing header. * platform/graphics/filters/FEDropShadow.h: 2011-04-23 Alexey Proskuryakov <ap@apple.com> Reviewed by Maciej Stachowiak. REGRESSION (r80812): window.print();window.close() doesn't work in WebKit2 https://bugs.webkit.org/show_bug.cgi?id=59241 <rdar://problem/9150861> Covered by manual-tests/print-after-window-close.html. Re-fixing <https://bugs.webkit.org/show_bug.cgi?id=51357> in a way that doesn't cause the regression. * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::didCancel): We shouldn't be doing complicated work while the loader is half-canceled. * manual-tests/print-after-window-close.html: Extended to actually print a non-empty page, thus being more practical. * page/Chrome.cpp: (WebCore::Chrome::print): Added a FIXME about a need for PageGroupLoadDeferrer. It's too scary for me to try now. * page/DOMWindow.cpp: (WebCore::DOMWindow::DOMWindow): (WebCore::DOMWindow::finishedLoading): * page/DOMWindow.h: Reverted the previous fix for <https://bugs.webkit.org/show_bug.cgi?id=51357>. 2011-04-19 Vitaly Repeshko <vitalyr@chromium.org> Reviewed by Adam Barth. [V8] Use implicit references for V8 listeners on DOM nodes. https://bugs.webkit.org/show_bug.cgi?id=58953 Instead of allocating an auxiliary V8 array referencing V8 listener objects associated with a DOM node and using an extra pointer in every DOM node wrapper, we can register implicit references between nodes and their listeners during GC. This also makes V8 bindings more aligned with JSC bindings. No new tests because this is a refactoring. * bindings/scripts/CodeGeneratorV8.pm: Stopped generating the listener cache internal field for DOM nodes. * bindings/v8/V8AbstractEventListener.h: Exposed the lister handle to the GC. (WebCore::V8AbstractEventListener::existingListenerObjectPeristentHandle): * bindings/v8/V8GCController.cpp: Started using implicit references. (WebCore::GrouperVisitor::visitDOMWrapper): * dom/EventTarget.h: Implemented an iterator over all listeners. (WebCore::EventListenerIterator): 2011-04-22 Jon Lee <jonlee@apple.com> Reviewed by Beth Dakin. Overlay scroller hard to see on pages with dark background (59183) https://bugs.webkit.org/show_bug.cgi?id=59183 <rdar://problem/8975367> * WebCore.exp.in: adding method to allow changing style * page/FrameView.cpp: (WebCore::FrameView::recommendedScrollbarOverlayStyle): overridden to suggest a style based on CSS background color * page/FrameView.h: * platform/ScrollTypes.h: new enum to represent different overlay scrollbar styles * platform/ScrollableArea.cpp: (WebCore::ScrollableArea::recommendedScrollbarOverlayStyle): new virtual function to return a suggested overlay style * platform/ScrollableArea.h: * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::paint): * platform/mac/WebCoreSystemInterface.h: * platform/mac/WebCoreSystemInterface.mm: 2011-04-22 Chris Evans <cevans@chromium.org> Reviewed by Adam Barth. Upgrade CSS loads from mixed content warning (displayed) to mixed content error (ran) https://bugs.webkit.org/show_bug.cgi?id=59056 Test: http/tests/security/mixedContent/insecure-css-in-iframe.html Test: http/tests/security/mixedContent/insecure-css-in-main-frame.html * loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::canRequest): CSS loads are running rather than displaying content. 2011-04-22 Geoffrey Garen <ggaren@apple.com> Fixed an upside-down conditional in my last check-in. * bindings/js/JSDOMApplicationCacheCustom.cpp: (WebCore::isObservable): 2011-04-22 Geoffrey Garen <ggaren@apple.com> Rolled back in r84725 and r84728 with appcache crash fixed. Reviewed by Oliver Hunt. Removed a use of markDOMObjectWrapper: DOMWindow https://bugs.webkit.org/show_bug.cgi?id=59260 * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::visitChildren): No need to mark explicitly, since we use the opaque roots system now. * bindings/js/JSNavigatorCustom.cpp: Ditto. * bindings/scripts/CodeGeneratorJS.pm: Added autogeneration for objects whose opaque roots are frames. * css/StyleMedia.h: (WebCore::StyleMedia::frame): Added an accessor for the sake of GC. * css/StyleMedia.idl: * loader/appcache/DOMApplicationCache.idl: * page/BarInfo.idl: * page/Console.idl: * page/DOMSelection.idl: * page/Geolocation.idl: * page/History.idl: