2010-06-03 Mark Rowe Merge r59498. 2010-05-14 Steve Falkenburg Reviewed by Sam Weinig. Connection properties dictionary should use standard callbacks for keys, values https://bugs.webkit.org/show_bug.cgi?id=39132 * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::createConnectionProperties): 2010-06-01 Mark Rowe Merge r60502. 2010-06-01 Jer Noble Reviewed by Sam Weinig. QuickTime 7.6.4 + Safari Nightly = Crash https://bugs.webkit.org/show_bug.cgi?id=40019 rdar://problem/8035443 Check the return value of QTCFPropertyListCreateXMLData before calling CFDataGetLength(). * platform/graphics/win/QTCFDictionary.cpp: (QTCFDictionaryCreateCopyWithDataCallback): 2010-05-30 Mark Rowe Merge r59910. 2010-05-20 Simon Fraser Reviewed by Adam Roben. Avoid flushing CA layers when a layout is pending https://bugs.webkit.org/show_bug.cgi?id=39463 Avoid rendering the compositing layers to the screen if there's a layout pending, since the layer tree not in a state that should be presented to the user. This fixes flashes in some types of content that dynamically add and remove layers. Do this by adding a WKCACFLayerRendererClient for WKCACFLayerRenderer, which it can call through to ask whether now is a good time to render. If not, it schedules another render soon. * platform/graphics/win/WKCACFLayerRenderer.h: (WebCore::WKCACFLayerRendererClient::~WKCACFLayerRendererClient): * platform/graphics/win/WKCACFLayerRenderer.cpp: (WebCore::WKCACFLayerRenderer::acceleratedCompositingAvailable): (WebCore::WKCACFLayerRenderer::create): (WebCore::WKCACFLayerRenderer::WKCACFLayerRenderer): (WebCore::WKCACFLayerRenderer::render): 2010-05-27 Mark Rowe Merge r60317. 2010-05-27 Eric Carlson Reviewed by Darin Adler. Crash in CVPixelBufferCreateResolvedAttributesDictionary with RLE compressed movie. Configure the visual context to generate Direct3D compatible pixel buffers when we are able to use a CAImageQueue so there will be less conversion required before display. This change also works around the issue that causes the RLE compressed movie to crash. * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: (WebCore::MediaPlayerPrivateQuickTimeVisualContext::load): Pass enum to QTMovieVisualContext constructor instead of CFDictionary. * platform/graphics/win/QTMovieVisualContext.cpp: (SetNumberValue): (getPixelBufferCreationOptions): New, create options dictionary appropriate for the visual context type. (pixelBufferCreationOptions): New, return options dictionary appropriate for the visual context type. (QTMovieVisualContextPriv::QTMovieVisualContextPriv): Get the options dictionary from getPixelBufferCreationOptions insteaad of taking it as a parameter. (QTMovieVisualContext::QTMovieVisualContext): Take enum instead of CFDictionary for visual context configuration type. * platform/graphics/win/QTMovieVisualContext.h: 2010-05-27 Mark Rowe Merge r60272. 2010-05-26 Jer Noble Patch edited by Adele Peterson and Mark Rowe. Reviewed by Eric Carlson Video elements show no video on Windows machines that do not support accelerated compositing https://bugs.webkit.org/show_bug.cgi?id=39446 rdar://problem/7999794 Create the visual context in setUpVideoRendering (as opposed to in load), and destroy it in tearDownVideoRendering (as opposed to in the destructor.) * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: (WebCore::MediaPlayerPrivateQuickTimeVisualContext::~MediaPlayerPrivateQuickTimeVisualContext): (WebCore::MediaPlayerPrivateQuickTimeVisualContext::load): Moved creation of the visual context to setUpVideoRendering. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::paint): Return early if the visual context isn't set up. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::currentRenderingMode): If the visual context isn't set up, return MediaRenderingNone. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::setUpVideoRendering): Create the visual context. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::tearDownVideoRendering): Destroy the visual context. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::hasSetUpVideoRendering): For software rendering mode, make sure the visual context has been set up when saying the setup has been done. * platform/graphics/win/QTMovieVisualContext.cpp: (QTMovieVisualContextPriv::~QTMovieVisualContextPriv): Destruction moved to tearDownVideoRendering. Also, make sure to cancel the visual context's newImageAvailable callback in the visual context's destructor. (QTMovieVisualContext::create): Added. * platform/graphics/win/QTMovieVisualContext.h: 2010-05-27 Mark Rowe Merge r60252. 2010-05-26 Alexey Proskuryakov Mac 32 bit build fix. * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformInit): Use static_cast instead of narrowPrecisionToFloat - the latter can't convert from float to float. 2010-05-27 Mark Rowe Merge r60247. 2010-05-26 Dan Bernstein Typed and reviewed by Alexey Proskuryakov. https://bugs.webkit.org/show_bug.cgi?id=39682 REGRESSION: WebKit nightly adding insane height to div at random Test: fast/css/custom-font-xheight.html * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformInit): Calling an Objective C method that returns a structure with a null object can leave garbage in returned value. Custom fonts don't have an NSFont, they only have a CGFont. Call platformBoundsForGlyph() function instead, which works with CGFont. (WebCore::SimpleFontData::platformBoundsForGlyph): Fixed to work on Tiger (for fonts that have an NSFont), since this is now used in more cases. 2010-05-25 Steve Falkenburg Windows build fix. Branch doesn't have r59910, so remove the argument from WKCACFLayerRenderer::create. * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: (WebCore::MediaPlayerPrivateFullscreenWindow::MediaPlayerPrivateFullscreenWindow): 2010-05-25 Mark Rowe Merge r60207. 2010-05-25 Mark Rowe Build fix. * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: 2010-05-25 Mark Rowe Merge r60190. 2010-05-22 Jer Noble Reviewed by Adam Roben. Full screen doesn't work for video elements https://bugs.webkit.org/show_bug.cgi?id=39557 rdar://problem/8011813 Add fullscreen support for MediaPlayerPrivateVisualContext. A new class, MediaPlayerPrivateFullscreenWindow, provides the fullscreen hwnd and layer renderer. Any WKCACFLayer can be provided to MediaPlayerPrivateFullscreenWindow so future additional MediaPlayerPrivate implementations can use the fullscreen window. Minor additions have been made to the FloatSize and IntSize classes. MediaPlayerPrivateQuickTimeVisualContext now calls retrieveCurrentImage after creating a new videoLayer; this is an existing bug that was never really exposed before now. * WebCore.vcproj/WebCore.vcproj: * platform/graphics/FloatSize.h: Added aspectRatio() and scale(float). (WebCore::FloatSize::aspectRatio): (WebCore::FloatSize::scale): * platform/graphics/IntSize.h: Added aspectRatio(). (WebCore::IntSize::aspectRatio): * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Added. * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Added. * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: Call retrieveCurrentImage() after creating the videoLayer. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsFullscreen): (WebCore::MediaPlayerPrivateQuickTimeVisualContext::retrieveCurrentImage): (WebCore::MediaPlayerPrivateQuickTimeVisualContext::createLayerForMovie): * platform/graphics/win/WKCACFLayer.cpp: (WebCore::WKCACFLayer::WKCACFLayer): (WebCore::WKCACFLayer::removeFromSuperlayer): (WebCore::WKCACFLayer::setFrame): (WebCore::WKCACFLayer::internalSetNeedsDisplay): (WebCore::WKCACFLayer::setLayoutClient): (WebCore::WKCACFLayer::layoutSublayersProc): (WebCore::WKCACFLayer::layoutClient): (WebCore::WKCACFLayer::setNeedsLayout): * platform/graphics/win/WKCACFLayer.h: Add layout client class. (WebCore::WKCACFLayerLayoutClient::~WKCACFLayerLayoutClient): (WebCore::WKCACFLayer::frame): Added back frame()/setFrame(). * platform/graphics/win/WebTiledLayer.cpp: (WebCore::WebTiledLayer::setFrame): Implamented setFrame() in subclass of WKCACFLayer * platform/graphics/win/WebTiledLayer.h: * platform/graphics/win/WebTiledLayer.cpp: Added setFrame() overriding WKCACFLayer's implementation (WebCore::WebTiledLayer::setFrame): * platform/graphics/win/WebTiledLayer.h: 2010-05-25 Mark Rowe Merge r60150. 2010-05-25 Ada Chan Reviewed by Steve Falkenburg. Add a base class for DOMTimer called SuspendableTimer which captures just the basic functionality of TimerBase and ActiveDOMObject combined. It does not contain functionality specific to scripting timers. SuspendableTimer is used in fixing https://bugs.webkit.org/show_bug.cgi?id=39651 * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/DOMTimer.cpp: (WebCore::DOMTimer::DOMTimer): (WebCore::DOMTimer::contextDestroyed): (WebCore::DOMTimer::stop): * page/DOMTimer.h: * page/SuspendableTimer.cpp: Added. (WebCore::SuspendableTimer::SuspendableTimer): (WebCore::SuspendableTimer::~SuspendableTimer): (WebCore::SuspendableTimer::hasPendingActivity): (WebCore::SuspendableTimer::stop): (WebCore::SuspendableTimer::suspend): (WebCore::SuspendableTimer::resume): (WebCore::SuspendableTimer::canSuspend): * page/SuspendableTimer.h: Added. 2010-05-25 Mark Rowe Merge r60092. 2010-05-24 Brady Eidson Reviewed by Darin Adler. Database origins aren't populated at launch (missing db in prefs sheet, possible other symptoms) and https://bugs.webkit.org/show_bug.cgi?id=39486 Currently, a Tracker needs to know it's path before origins are populated. Testing databases and related features is made very difficult with this regression, so instead of changing things in a complicated way to make this not the case, I've added an "initialize Tracker with this path" function that calls the DatabaseTracker constructor with the initial path. I checked the other platforms besides Mac and Win, and none of them seem to perform the "initialize databases if necessary" step in their init routines, so this change shouldn't effect them. No new tests. (API specific layout test in DRT is forthcoming) * WebCore.base.exp: * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::initializeTracker): Added to create the tracker with its initial path. (WebCore::DatabaseTracker::tracker): Move the static tracker out so tracker() and initializeTracker() can share it. Add a fallback to not change behavior of platforms that don't call the new "initializeTracker()" method. (WebCore::DatabaseTracker::DatabaseTracker): Changed to take the initial path as an argument. * storage/DatabaseTracker.h: * storage/chromium/DatabaseTrackerChromium.cpp: (WebCore::DatabaseTracker::tracker): Adapt to new c'tor. (WebCore::DatabaseTracker::DatabaseTracker): Ditto. 2010-05-25 Mark Rowe Merge r60110. 2010-05-24 Jer Noble Reviewed by Eric Carlson. HTML5