[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

simon.fraser at apple.com simon.fraser at apple.com
Wed Dec 22 13:15:22 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit e239426ea04f02d1ebd09852a001883f322d3cbf
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Sep 9 23:30:06 2010 +0000

    2010-09-09  Simon Fraser  <simon.fraser at apple.com>
    
            Reviewed by Adam Roben.
    
            Scrollbars fail to render in composited iframes.
            https://bugs.webkit.org/show_bug.cgi?id=45335
    
            Add a stack-based class, LocalWindowsContext, which does a getWindowsContext/
            releaseWindowsContext automatically.
    
            Also fix getWindowsContext to create a bitmap context if mayCreateBitmap
            is true, and if the context's HDC is null. This fixes scrollbar rendering
            in compositing layers.
    
            Use LocalWindowsContext in places where we had bare getWindowsContext() calls.
    
            * platform/graphics/win/LocalWindowsContext.h
            (WebCore::LocalWindowsContext::LocalWindowsContext):
            (WebCore::LocalWindowsContext::~LocalWindowsContext):
            (WebCore::LocalWindowsContext::hdc):
            * platform/graphics/win/GraphicsContextCGWin.cpp:
            (WebCore::GraphicsContext::releaseWindowsContext):
            * platform/graphics/win/GraphicsContextWin.cpp:
            (WebCore::GraphicsContext::getWindowsContext):
            * platform/graphics/win/IconWin.cpp:
            (WebCore::Icon::paint):
            * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
            (WebCore::MediaPlayerPrivate::paint):
            * platform/win/ScrollbarThemeWin.cpp:
            (WebCore::ScrollbarThemeWin::paintTrackPiece):
            (WebCore::ScrollbarThemeWin::paintButton):
            * plugins/win/PluginViewWin.cpp:
            (WebCore::PluginView::paintWindowedPluginIntoContext):
            (WebCore::PluginView::paint):
            * rendering/RenderThemeWin.cpp:
            (WebCore::drawControl):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67125 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 644af26..78d98c4 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,40 @@
+2010-09-09  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Adam Roben.
+
+        Scrollbars fail to render in composited iframes.
+        https://bugs.webkit.org/show_bug.cgi?id=45335
+
+        Add a stack-based class, LocalWindowsContext, which does a getWindowsContext/
+        releaseWindowsContext automatically.
+
+        Also fix getWindowsContext to create a bitmap context if mayCreateBitmap
+        is true, and if the context's HDC is null. This fixes scrollbar rendering
+        in compositing layers.
+
+        Use LocalWindowsContext in places where we had bare getWindowsContext() calls.
+
+        * platform/graphics/win/LocalWindowsContext.h
+        (WebCore::LocalWindowsContext::LocalWindowsContext):
+        (WebCore::LocalWindowsContext::~LocalWindowsContext):
+        (WebCore::LocalWindowsContext::hdc):
+        * platform/graphics/win/GraphicsContextCGWin.cpp:
+        (WebCore::GraphicsContext::releaseWindowsContext):
+        * platform/graphics/win/GraphicsContextWin.cpp:
+        (WebCore::GraphicsContext::getWindowsContext):
+        * platform/graphics/win/IconWin.cpp:
+        (WebCore::Icon::paint):
+        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
+        (WebCore::MediaPlayerPrivate::paint):
+        * platform/win/ScrollbarThemeWin.cpp:
+        (WebCore::ScrollbarThemeWin::paintTrackPiece):
+        (WebCore::ScrollbarThemeWin::paintButton):
+        * plugins/win/PluginViewWin.cpp:
+        (WebCore::PluginView::paintWindowedPluginIntoContext):
+        (WebCore::PluginView::paint):
+        * rendering/RenderThemeWin.cpp:
+        (WebCore::drawControl):
+
 2010-09-09  Vincent Scheib  <scheib at chromium.org>
 
         Reviewed by James Robinson.
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index 47b6f4b..b6cd2c5 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -23461,6 +23461,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\loader\CachedResourceLoader.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\loader\CachedResourceLoader.h"
+				>
+			</File>
+			<File
 				RelativePath="..\loader\CachedScript.cpp"
 				>
 			</File>
@@ -23497,14 +23505,6 @@
 				>
 			</File>
 			<File
-				RelativePath="..\loader\CachedResourceLoader.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\loader\CachedResourceLoader.h"
-				>
-			</File>
-			<File
 				RelativePath="..\loader\DocumentLoader.cpp"
 				>
 			</File>
@@ -25611,6 +25611,10 @@
 						>
 					</File>
 					<File
+						RelativePath="..\platform\graphics\win\LocalWindowsContext.h"
+						>
+					</File>
+					<File
 						RelativePath="..\platform\graphics\win\MediaPlayerPrivateFullscreenWindow.cpp"
 						>
 					</File>
@@ -37129,327 +37133,311 @@
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\Blob.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\fileapi\Blob.h"
-				>
-			</File>
-			<File
-				RelativePath="..\fileapi\BlobBuilder.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\fileapi\BlobBuilder.h"
-				>
-			</File>
-			<File
-				RelativePath="..\fileapi\BlobURL.cpp"
+				RelativePath="..\html\AsyncImageResizer.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\BlobURL.h"
+				RelativePath="..\html\AsyncImageResizer.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\DirectoryEntry.cpp"
+				RelativePath="..\fileapi\Blob.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\DirectoryEntry.h"
+				RelativePath="..\fileapi\Blob.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\DirectoryReader.cpp"
+				RelativePath="..\fileapi\BlobBuilder.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\DirectoryReader.h"
+				RelativePath="..\fileapi\BlobBuilder.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\DOMFilePath.cpp"
+				RelativePath="..\fileapi\BlobURL.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\DOMFilePath.h"
+				RelativePath="..\fileapi\BlobURL.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\DOMFileSystem.cpp"
+				RelativePath="..\html\canvas\CanvasGradient.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\DOMFileSystem.h"
+				RelativePath="..\html\canvas\CanvasGradient.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\EntriesCallback.h"
+				RelativePath="..\html\canvas\CanvasPattern.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\Entry.cpp"
+				RelativePath="..\html\canvas\CanvasPattern.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\Entry.h"
+				RelativePath="..\html\canvas\CanvasPixelArray.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\EntryArray.cpp"
+				RelativePath="..\html\canvas\CanvasPixelArray.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\EntryArray.h"
+				RelativePath="..\html\canvas\CanvasRenderingContext.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\EntryCallback.h"
+				RelativePath="..\html\canvas\CanvasRenderingContext.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\ErrorCallback.h"
+				RelativePath="..\html\canvas\CanvasRenderingContext2D.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\File.cpp"
+				RelativePath="..\html\canvas\CanvasRenderingContext2D.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\File.h"
+				RelativePath="..\html\canvas\CanvasStyle.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileEntry.cpp"
+				RelativePath="..\html\canvas\CanvasStyle.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileEntry.h"
+				RelativePath="..\html\CollectionCache.cpp"
 				>
+				<FileConfiguration
+					Name="Release_PGO|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						WholeProgramOptimization="true"
+					/>
+				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileError.h"
+				RelativePath="..\html\CollectionCache.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileException.h"
+				RelativePath="..\html\CollectionType.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileList.cpp"
+				RelativePath="..\html\DataGridColumn.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileList.h"
+				RelativePath="..\html\DataGridColumn.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileReader.cpp"
+				RelativePath="..\html\DataGridColumnList.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileReader.h"
+				RelativePath="..\html\DataGridColumnList.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileReaderSync.cpp"
+				RelativePath="..\html\DataGridDataSource.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileReaderSync.h"
+				RelativePath="..\html\DateComponents.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileStreamProxy.cpp"
+				RelativePath="..\html\DateComponents.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileStreamProxy.h"
+				RelativePath="..\fileapi\DirectoryEntry.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileSystemCallback.h"
+				RelativePath="..\fileapi\DirectoryEntry.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileSystemCallbacks.cpp"
+				RelativePath="..\fileapi\DirectoryReader.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileSystemCallbacks.h"
+				RelativePath="..\fileapi\DirectoryReader.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileThread.cpp"
+				RelativePath="..\html\DOMDataGridDataSource.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileThread.h"
+				RelativePath="..\html\DOMDataGridDataSource.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileThreadTask.h"
+				RelativePath="..\fileapi\DOMFilePath.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileWriter.cpp"
+				RelativePath="..\fileapi\DOMFilePath.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileWriter.h"
+				RelativePath="..\fileapi\DOMFileSystem.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\FileWriterClient.h"
+				RelativePath="..\fileapi\DOMFileSystem.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\Flags.h"
+				RelativePath="..\html\DOMFormData.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\LocalFileSystem.cpp"
+				RelativePath="..\html\DOMFormData.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\LocalFileSystem.h"
+				RelativePath="..\fileapi\EntriesCallback.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\Metadata.h"
+				RelativePath="..\fileapi\Entry.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\MetadataCallback.h"
+				RelativePath="..\fileapi\Entry.h"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\ThreadableBlobRegistry.cpp"
+				RelativePath="..\fileapi\EntryArray.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\fileapi\ThreadableBlobRegistry.h"
+				RelativePath="..\fileapi\EntryArray.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\AsyncImageResizer.cpp"
+				RelativePath="..\fileapi\EntryCallback.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\AsyncImageResizer.h"
+				RelativePath="..\fileapi\ErrorCallback.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasGradient.cpp"
+				RelativePath="..\fileapi\File.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasGradient.h"
+				RelativePath="..\fileapi\File.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasPattern.cpp"
+				RelativePath="..\fileapi\FileEntry.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasPattern.h"
+				RelativePath="..\fileapi\FileEntry.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasPixelArray.cpp"
+				RelativePath="..\fileapi\FileError.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasPixelArray.h"
+				RelativePath="..\fileapi\FileException.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasRenderingContext.cpp"
+				RelativePath="..\fileapi\FileList.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasRenderingContext.h"
+				RelativePath="..\fileapi\FileList.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasRenderingContext2D.cpp"
+				RelativePath="..\fileapi\FileReader.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasRenderingContext2D.h"
+				RelativePath="..\fileapi\FileReader.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasStyle.cpp"
+				RelativePath="..\fileapi\FileReaderSync.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\html\canvas\CanvasStyle.h"
+				RelativePath="..\fileapi\FileReaderSync.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\CollectionCache.cpp"
+				RelativePath="..\fileapi\FileStreamProxy.cpp"
 				>
-				<FileConfiguration
-					Name="Release_PGO|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						WholeProgramOptimization="true"
-					/>
-				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="..\html\CollectionCache.h"
+				RelativePath="..\fileapi\FileStreamProxy.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\CollectionType.h"
+				RelativePath="..\fileapi\FileSystemCallback.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DataGridColumn.cpp"
+				RelativePath="..\fileapi\FileSystemCallbacks.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DataGridColumn.h"
+				RelativePath="..\fileapi\FileSystemCallbacks.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DataGridColumnList.cpp"
+				RelativePath="..\fileapi\FileThread.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DataGridColumnList.h"
+				RelativePath="..\fileapi\FileThread.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DataGridDataSource.h"
+				RelativePath="..\fileapi\FileThreadTask.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DateComponents.cpp"
+				RelativePath="..\fileapi\FileWriter.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DateComponents.h"
+				RelativePath="..\fileapi\FileWriter.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DOMDataGridDataSource.cpp"
+				RelativePath="..\fileapi\FileWriterClient.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DOMDataGridDataSource.h"
+				RelativePath="..\fileapi\Flags.h"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DOMFormData.cpp"
+				RelativePath="..\html\FormDataList.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\html\DOMFormData.h"
+				RelativePath="..\html\FormDataList.h"
 				>
 			</File>
 			<File
@@ -37461,14 +37449,6 @@
 				>
 			</File>
 			<File
-				RelativePath="..\html\FormDataList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\html\FormDataList.h"
-				>
-			</File>
-			<File
 				RelativePath="..\html\HTMLAllCollection.cpp"
 				>
 			</File>
@@ -41849,6 +41829,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\fileapi\LocalFileSystem.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\fileapi\LocalFileSystem.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\MediaDocument.cpp"
 				>
 			</File>
@@ -41861,6 +41849,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\fileapi\Metadata.h"
+				>
+			</File>
+			<File
+				RelativePath="..\fileapi\MetadataCallback.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\PluginDocument.cpp"
 				>
 			</File>
@@ -41868,142 +41864,6 @@
 				RelativePath="..\html\PluginDocument.h"
 				>
 			</File>
-			<Filter
-				Name="parser"
-				>
-                <File
-                    RelativePath="..\html\parser\CSSPreloadScanner.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\CSSPreloadScanner.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLConstructionSite.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLConstructionSite.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLDocumentParser.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLDocumentParser.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLEntityParser.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLEntityParser.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLElementStack.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLElementStack.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLEntitySearch.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLEntitySearch.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLFormattingElementList.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLFormattingElementList.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLInputStream.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLParserScheduler.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLParserScheduler.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLPreloadScanner.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLPreloadScanner.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLScriptRunner.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLScriptRunner.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLScriptRunnerHost.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLToken.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLTokenizer.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLTokenizer.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLTreeBuilder.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLTreeBuilder.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLViewSourceParser.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\HTMLViewSourceParser.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\TextDocumentParser.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\TextDocumentParser.h"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\TextViewSourceParser.cpp"
-                    >
-                </File>
-                <File
-                    RelativePath="..\html\parser\TextViewSourceParser.h"
-                    >
-                </File>
-            </Filter>
 			<File
 				RelativePath="..\html\StepRange.cpp"
 				>
@@ -42017,6 +41877,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\fileapi\ThreadableBlobRegistry.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\fileapi\ThreadableBlobRegistry.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\TimeRanges.cpp"
 				>
 			</File>
@@ -42036,6 +41904,142 @@
 				RelativePath="..\html\VoidCallback.h"
 				>
 			</File>
+			<Filter
+				Name="parser"
+				>
+				<File
+					RelativePath="..\html\parser\CSSPreloadScanner.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\CSSPreloadScanner.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLConstructionSite.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLConstructionSite.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLDocumentParser.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLDocumentParser.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLElementStack.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLElementStack.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLEntityParser.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLEntityParser.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLEntitySearch.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLEntitySearch.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLFormattingElementList.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLFormattingElementList.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLInputStream.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLParserScheduler.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLParserScheduler.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLPreloadScanner.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLPreloadScanner.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLScriptRunner.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLScriptRunner.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLScriptRunnerHost.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLToken.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLTokenizer.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLTokenizer.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLTreeBuilder.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLTreeBuilder.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLViewSourceParser.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\HTMLViewSourceParser.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\TextDocumentParser.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\TextDocumentParser.h"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\TextViewSourceParser.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\html\parser\TextViewSourceParser.h"
+					>
+				</File>
+			</Filter>
 		</Filter>
 		<Filter
 			Name="bindings"
@@ -52308,6 +52312,14 @@
 					>
 				</File>
 				<File
+					RelativePath="..\inspector\front-end\heapProfiler.css"
+					>
+				</File>
+				<File
+					RelativePath="..\inspector\front-end\HeapSnapshotView.js"
+					>
+				</File>
+				<File
 					RelativePath="..\inspector\front-end\helpScreen.css"
 					>
 				</File>
@@ -52348,14 +52360,6 @@
 					>
 				</File>
 				<File
-					RelativePath="..\inspector\front-end\heapProfiler.css"
-					>
-				</File>
-				<File
-					RelativePath="..\inspector\front-end\HeapSnapshotView.js"
-					>
-				</File>
-				<File
 					RelativePath="..\inspector\front-end\MetricsSidebarPane.js"
 					>
 				</File>
diff --git a/WebCore/platform/graphics/win/GraphicsContextCGWin.cpp b/WebCore/platform/graphics/win/GraphicsContextCGWin.cpp
index 7b65e96..0203d42 100644
--- a/WebCore/platform/graphics/win/GraphicsContextCGWin.cpp
+++ b/WebCore/platform/graphics/win/GraphicsContextCGWin.cpp
@@ -79,37 +79,37 @@ GraphicsContext::GraphicsContext(HDC hdc, bool hasAlpha)
 // suitable for all clients?
 void GraphicsContext::releaseWindowsContext(HDC hdc, const IntRect& dstRect, bool supportAlphaBlend, bool mayCreateBitmap)
 {
-    if (mayCreateBitmap && hdc && inTransparencyLayer()) {
-        if (dstRect.isEmpty())
-            return;
-
-        HBITMAP bitmap = static_cast<HBITMAP>(GetCurrentObject(hdc, OBJ_BITMAP));
-
-        // Need to make a CGImage out of the bitmap's pixel buffer and then draw
-        // it into our context.
-        BITMAP info;
-        GetObject(bitmap, sizeof(info), &info);
-        ASSERT(info.bmBitsPixel == 32);
-
-        CGColorSpaceRef deviceRGB = CGColorSpaceCreateDeviceRGB();
-        CGContextRef bitmapContext = CGBitmapContextCreate(info.bmBits, info.bmWidth, info.bmHeight, 8,
-                                                           info.bmWidthBytes, deviceRGB, kCGBitmapByteOrder32Little | 
-                                                           (supportAlphaBlend ? kCGImageAlphaPremultipliedFirst : kCGImageAlphaNoneSkipFirst));
-        CGColorSpaceRelease(deviceRGB);
-
-        CGImageRef image = CGBitmapContextCreateImage(bitmapContext);
-        CGContextDrawImage(m_data->m_cgContext.get(), dstRect, image);
-        
-        // Delete all our junk.
-        CGImageRelease(image);
-        CGContextRelease(bitmapContext);
-        ::DeleteDC(hdc);
-        ::DeleteObject(bitmap);
-
+    bool createdBitmap = mayCreateBitmap && (!m_data->m_hdc || inTransparencyLayer());
+    if (!createdBitmap) {
+        m_data->restore();
         return;
     }
 
-    m_data->restore();
+    if (dstRect.isEmpty())
+        return;
+
+    HBITMAP bitmap = static_cast<HBITMAP>(GetCurrentObject(hdc, OBJ_BITMAP));
+
+    // Need to make a CGImage out of the bitmap's pixel buffer and then draw
+    // it into our context.
+    BITMAP info;
+    GetObject(bitmap, sizeof(info), &info);
+    ASSERT(info.bmBitsPixel == 32);
+
+    CGColorSpaceRef deviceRGB = CGColorSpaceCreateDeviceRGB();
+    CGContextRef bitmapContext = CGBitmapContextCreate(info.bmBits, info.bmWidth, info.bmHeight, 8,
+                                                       info.bmWidthBytes, deviceRGB, kCGBitmapByteOrder32Little | 
+                                                       (supportAlphaBlend ? kCGImageAlphaPremultipliedFirst : kCGImageAlphaNoneSkipFirst));
+    CGColorSpaceRelease(deviceRGB);
+
+    CGImageRef image = CGBitmapContextCreateImage(bitmapContext);
+    CGContextDrawImage(m_data->m_cgContext.get(), dstRect, image);
+    
+    // Delete all our junk.
+    CGImageRelease(image);
+    CGContextRelease(bitmapContext);
+    ::DeleteDC(hdc);
+    ::DeleteObject(bitmap);
 }
 
 void GraphicsContext::drawWindowsBitmap(WindowsBitmap* image, const IntPoint& point)
diff --git a/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp b/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp
index 94df6ae..a989c24 100644
--- a/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp
+++ b/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp
@@ -92,7 +92,8 @@ static void setRGBABitmapAlpha(unsigned char* bytes, size_t length, unsigned cha
 
 void GraphicsContext::releaseWindowsContext(HDC hdc, const IntRect& dstRect, bool supportAlphaBlend, bool mayCreateBitmap)
 {
-    if (!mayCreateBitmap || !hdc || !inTransparencyLayer()) {
+    bool createdBitmap = mayCreateBitmap && (!m_data->m_hdc || inTransparencyLayer());
+    if (!hdc || !createdBitmap) {
         m_data->restore();
         return;
     }
diff --git a/WebCore/platform/graphics/win/GraphicsContextWin.cpp b/WebCore/platform/graphics/win/GraphicsContextWin.cpp
index 161b9c6..f1953e4 100644
--- a/WebCore/platform/graphics/win/GraphicsContextWin.cpp
+++ b/WebCore/platform/graphics/win/GraphicsContextWin.cpp
@@ -101,7 +101,7 @@ GraphicsContext::WindowsBitmap* GraphicsContext::createWindowsBitmap(IntSize siz
 HDC GraphicsContext::getWindowsContext(const IntRect& dstRect, bool supportAlphaBlend, bool mayCreateBitmap)
 {
     // FIXME: Should a bitmap be created also when a shadow is set?
-    if (mayCreateBitmap && inTransparencyLayer()) {
+    if (mayCreateBitmap && (!m_data->m_hdc || inTransparencyLayer())) {
         if (dstRect.isEmpty())
             return 0;
 
diff --git a/WebCore/platform/graphics/win/IconWin.cpp b/WebCore/platform/graphics/win/IconWin.cpp
index cc9343a..05959e0 100644
--- a/WebCore/platform/graphics/win/IconWin.cpp
+++ b/WebCore/platform/graphics/win/IconWin.cpp
@@ -23,6 +23,7 @@
 #include "Icon.h"
 
 #include "GraphicsContext.h"
+#include "LocalWindowsContext.h"
 #include "PlatformString.h"
 #include <tchar.h>
 #include <windows.h>
@@ -90,11 +91,8 @@ void Icon::paint(GraphicsContext* context, const IntRect& r)
 #if OS(WINCE)
     context->drawIcon(m_hIcon, r, DI_NORMAL);
 #else
-    HDC hdc = context->getWindowsContext(r);
-
-    DrawIconEx(hdc, r.x(), r.y(), m_hIcon, r.width(), r.height(), 0, 0, DI_NORMAL);
-
-    context->releaseWindowsContext(hdc, r);
+    LocalWindowsContext windowContext(context, r);
+    DrawIconEx(windowContext.hdc(), r.x(), r.y(), m_hIcon, r.width(), r.height(), 0, 0, DI_NORMAL);
 #endif
 }
 
diff --git a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp
index 34f1135..c37f5d5 100644
--- a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp
+++ b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp
@@ -600,6 +600,7 @@ void MediaPlayerPrivate::paint(GraphicsContext* p, const IntRect& r)
 
     bool usingTempBitmap = false;
     OwnPtr<GraphicsContext::WindowsBitmap> bitmap;
+    // FIXME: use LocalWindowsContext.
     HDC hdc = p->getWindowsContext(r);
     if (!hdc) {
         // The graphics context doesn't have an associated HDC so create a temporary
diff --git a/WebCore/platform/win/ScrollbarThemeWin.cpp b/WebCore/platform/win/ScrollbarThemeWin.cpp
index a8d374a..ff3aaa4 100644
--- a/WebCore/platform/win/ScrollbarThemeWin.cpp
+++ b/WebCore/platform/win/ScrollbarThemeWin.cpp
@@ -27,6 +27,7 @@
 #include "ScrollbarThemeWin.h"
 
 #include "GraphicsContext.h"
+#include "LocalWindowsContext.h"
 #include "PlatformMouseEvent.h"
 #include "Scrollbar.h"
 #include "SoftLinking.h"
@@ -240,14 +241,17 @@ void ScrollbarThemeWin::paintTrackPiece(GraphicsContext* context, Scrollbar* scr
     bool alphaBlend = false;
     if (scrollbarTheme)
         alphaBlend = IsThemeBackgroundPartiallyTransparent(scrollbarTheme, part, state);
-    HDC hdc = context->getWindowsContext(rect, alphaBlend);
+
+    LocalWindowsContext windowsContext(context, rect, alphaBlend);
     RECT themeRect(rect);
+
     if (scrollbarTheme)
-        DrawThemeBackground(scrollbarTheme, hdc, part, state, &themeRect, 0);
+        DrawThemeBackground(scrollbarTheme, windowsContext.hdc(), part, state, &themeRect, 0);
     else {
         DWORD color3DFace = ::GetSysColor(COLOR_3DFACE);
         DWORD colorScrollbar = ::GetSysColor(COLOR_SCROLLBAR);
         DWORD colorWindow = ::GetSysColor(COLOR_WINDOW);
+        HDC hdc = windowsContext.hdc();
         if ((color3DFace != colorScrollbar) && (colorWindow != colorScrollbar))
             ::FillRect(hdc, &themeRect, HBRUSH(COLOR_SCROLLBAR+1));
         else {
@@ -265,7 +269,6 @@ void ScrollbarThemeWin::paintTrackPiece(GraphicsContext* context, Scrollbar* scr
             ::DeleteObject(patternBitmap);
         }
     }
-    context->releaseWindowsContext(hdc, rect, alphaBlend);
 }
 
 void ScrollbarThemeWin::paintButton(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart part)
@@ -308,14 +311,13 @@ void ScrollbarThemeWin::paintButton(GraphicsContext* context, Scrollbar* scrollb
     bool alphaBlend = false;
     if (scrollbarTheme)
         alphaBlend = IsThemeBackgroundPartiallyTransparent(scrollbarTheme, SP_BUTTON, xpState);
-    HDC hdc = context->getWindowsContext(rect, alphaBlend);
 
+    LocalWindowsContext windowsContext(context, rect, alphaBlend);
     RECT themeRect(rect);
     if (scrollbarTheme)
-        DrawThemeBackground(scrollbarTheme, hdc, SP_BUTTON, xpState, &themeRect, 0);
+        DrawThemeBackground(scrollbarTheme, windowsContext.hdc(), SP_BUTTON, xpState, &themeRect, 0);
     else
-        ::DrawFrameControl(hdc, &themeRect, DFC_SCROLL, classicState);
-    context->releaseWindowsContext(hdc, rect, alphaBlend);
+        ::DrawFrameControl(windowsContext.hdc(), &themeRect, DFC_SCROLL, classicState);
 }
 
 static IntRect gripperRect(int thickness, const IntRect& thumbRect)
diff --git a/WebCore/plugins/win/PluginViewWin.cpp b/WebCore/plugins/win/PluginViewWin.cpp
index 8dbb04b..84d2984 100644
--- a/WebCore/plugins/win/PluginViewWin.cpp
+++ b/WebCore/plugins/win/PluginViewWin.cpp
@@ -50,6 +50,7 @@
 #include "JSDOMBinding.h"
 #include "JSDOMWindow.h"
 #include "KeyboardEvent.h"
+#include "LocalWindowsContext.h"
 #include "MIMETypeRegistry.h"
 #include "MouseEvent.h"
 #include "Page.h"
@@ -563,7 +564,7 @@ void PluginView::paintWindowedPluginIntoContext(GraphicsContext* context, const
     ASSERT(parent()->isFrameView());
     IntPoint locationInWindow = static_cast<FrameView*>(parent())->contentsToWindow(frameRect().location());
 
-    HDC hdc = context->getWindowsContext(frameRect(), false);
+    LocalWindowsContext windowsContext(context, frameRect(), false);
 
 #if PLATFORM(CAIRO)
     // Must flush drawings up to this point to the backing metafile, otherwise the
@@ -573,6 +574,7 @@ void PluginView::paintWindowedPluginIntoContext(GraphicsContext* context, const
     cairo_show_page(ctx);
 #endif
 
+    HDC hdc = windowsContext.hdc();
     XFORM originalTransform;
     GetWorldTransform(hdc, &originalTransform);
 
@@ -587,8 +589,6 @@ void PluginView::paintWindowedPluginIntoContext(GraphicsContext* context, const
     paintIntoTransformedContext(hdc);
 
     SetWorldTransform(hdc, &originalTransform);
-
-    context->releaseWindowsContext(hdc, frameRect(), false);
 #endif
 }
 
@@ -617,7 +617,7 @@ void PluginView::paint(GraphicsContext* context, const IntRect& rect)
 
     ASSERT(parent()->isFrameView());
     IntRect rectInWindow = static_cast<FrameView*>(parent())->contentsToWindow(frameRect());
-    HDC hdc = context->getWindowsContext(rectInWindow, m_isTransparent);
+    LocalWindowsContext windowsContext(context, rectInWindow, m_isTransparent);
 
     // On Safari/Windows without transparency layers the GraphicsContext returns the HDC
     // of the window and the plugin expects that the passed in DC has window coordinates.
@@ -626,16 +626,14 @@ void PluginView::paint(GraphicsContext* context, const IntRect& rect)
 #if !PLATFORM(QT) && !OS(WINCE)
     if (!context->inTransparencyLayer()) {
         XFORM transform;
-        GetWorldTransform(hdc, &transform);
+        GetWorldTransform(windowsContext.hdc(), &transform);
         transform.eDx = 0;
         transform.eDy = 0;
-        SetWorldTransform(hdc, &transform);
+        SetWorldTransform(windowsContext.hdc(), &transform);
     }
 #endif
 
-    paintIntoTransformedContext(hdc);
-
-    context->releaseWindowsContext(hdc, frameRect(), m_isTransparent);
+    paintIntoTransformedContext(windowsContext.hdc());
 }
 
 void PluginView::handleKeyboardEvent(KeyboardEvent* event)
diff --git a/WebCore/rendering/RenderThemeWin.cpp b/WebCore/rendering/RenderThemeWin.cpp
index 45965e6..8a33173 100644
--- a/WebCore/rendering/RenderThemeWin.cpp
+++ b/WebCore/rendering/RenderThemeWin.cpp
@@ -26,6 +26,7 @@
 #include "Element.h"
 #include "Frame.h"
 #include "GraphicsContext.h"
+#include "LocalWindowsContext.h"
 #include "RenderSlider.h"
 #include "Settings.h"
 #include "SoftLinking.h"
@@ -558,11 +559,12 @@ static void drawControl(GraphicsContext* context, RenderObject* o, HANDLE theme,
     bool alphaBlend = false;
     if (theme)
         alphaBlend = IsThemeBackgroundPartiallyTransparent(theme, themeData.m_part, themeData.m_state);
-    HDC hdc = context->getWindowsContext(r, alphaBlend);
+    LocalWindowsContext windowsContext(context, r, alphaBlend);
     RECT widgetRect = r;
     if (theme)
-        DrawThemeBackground(theme, hdc, themeData.m_part, themeData.m_state, &widgetRect, NULL);
+        DrawThemeBackground(theme, windowsContext.hdc(), themeData.m_part, themeData.m_state, &widgetRect, 0);
     else {
+        HDC hdc = windowsContext.hdc();
         if (themeData.m_part == TFP_TEXTFIELD) {
             ::DrawEdge(hdc, &widgetRect, EDGE_SUNKEN, BF_RECT | BF_ADJUST);
             if (themeData.m_state == TS_DISABLED || themeData.m_state ==  TFS_READONLY)
@@ -608,7 +610,6 @@ static void drawControl(GraphicsContext* context, RenderObject* o, HANDLE theme,
             ::DrawFrameControl(hdc, &widgetRect, themeData.m_part, themeData.m_state);
         }
     }
-    context->releaseWindowsContext(hdc, r, alphaBlend);
 }
 
 bool RenderThemeWin::paintButton(RenderObject* o, const PaintInfo& i, const IntRect& r)
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index 23c5df5..b7e49cf 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,16 @@
+2010-09-09  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Adam Roben.
+
+        Scrollbars fail to render in composited iframes.
+        https://bugs.webkit.org/show_bug.cgi?id=45335
+
+        Use LocalWindowsContext when painting scrollbars.
+
+        * WebCoreSupport/WebChromeClient.cpp:
+        (WebChromeClient::paintCustomScrollbar):
+        (WebChromeClient::paintCustomScrollCorner):
+
 2010-09-08  Darin Adler  <darin at apple.com>
 
         Reviewed by Adam Barth.
diff --git a/WebKit/win/WebCoreSupport/WebChromeClient.cpp b/WebKit/win/WebCoreSupport/WebChromeClient.cpp
index d5aea25..7a025a7 100644
--- a/WebKit/win/WebCoreSupport/WebChromeClient.cpp
+++ b/WebKit/win/WebCoreSupport/WebChromeClient.cpp
@@ -53,6 +53,7 @@
 #endif
 #include <WebCore/HTMLNames.h>
 #include <WebCore/Icon.h>
+#include <WebCore/LocalWindowsContext.h>
 #include <WebCore/LocalizedStrings.h>
 #include <WebCore/NotImplemented.h>
 #include <WebCore/Page.h>
@@ -705,10 +706,9 @@ bool WebChromeClient::paintCustomScrollbar(GraphicsContext* context, const Float
         webState |= WebPressedScrollbarState;
     
     RECT webRect = enclosingIntRect(rect);
-    HDC hDC = context->getWindowsContext(webRect);
-    HRESULT hr = delegate->paintCustomScrollbar(m_webView, hDC, webRect, webSize, webState, webPressedPart, 
+    LocalWindowsContext windowsContext(context, webRect);
+    HRESULT hr = delegate->paintCustomScrollbar(m_webView, windowsContext.hdc(), webRect, webSize, webState, webPressedPart, 
                                                           vertical, value, proportion, webParts);
-    context->releaseWindowsContext(hDC, webRect);
     return SUCCEEDED(hr);
 }
 
@@ -722,9 +722,8 @@ bool WebChromeClient::paintCustomScrollCorner(GraphicsContext* context, const Fl
         return false;
 
     RECT webRect = enclosingIntRect(rect);
-    HDC hDC = context->getWindowsContext(webRect);
-    HRESULT hr = delegate->paintCustomScrollCorner(m_webView, hDC, webRect);
-    context->releaseWindowsContext(hDC, webRect);
+    LocalWindowsContext windowsContext(context, webRect);
+    HRESULT hr = delegate->paintCustomScrollCorner(m_webView, windowsContext.hdc(), webRect);
     return SUCCEEDED(hr);
 }
 
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 55fabd7..cd8bb79 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,15 @@
+2010-09-09  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Adam Roben.
+
+        Scrollbars fail to render in composited iframes.
+        https://bugs.webkit.org/show_bug.cgi?id=45335
+
+        Use LocalWindowsContext when painting the plugin.
+
+        * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
+        (WebKit::NetscapePlugin::platformPaint):
+
 2010-09-09  Sam Weinig  <sam at webkit.org>
 
         Reviewed by Anders Carlsson.
diff --git a/WebKit2/WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp b/WebKit2/WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp
index 61a34b5..6b7cc7c 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp
+++ b/WebKit2/WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp
@@ -28,6 +28,7 @@
 #include "NotImplemented.h"
 #include "WebEvent.h"
 #include <WebCore/GraphicsContext.h>
+#include <WebCore/LocalWindowsContext.h>
 
 using namespace WebCore;
 
@@ -49,10 +50,10 @@ void NetscapePlugin::platformPaint(GraphicsContext* context, const IntRect& dirt
     }
 
     // FIXME: Support transparent plugins.
-    HDC hdc = context->getWindowsContext(dirtyRect, false);
+    LocalWindowsContext windowsContext(context, dirtyRect, false);
 
     m_npWindow.type = NPWindowTypeDrawable;
-    m_npWindow.window = hdc;
+    m_npWindow.window = windowsContext.hdc();
 
     WINDOWPOS windowpos = { 0, 0, 0, 0, 0, 0, 0 };
 
@@ -73,13 +74,10 @@ void NetscapePlugin::platformPaint(GraphicsContext* context, const IntRect& dirt
     RECT dirtyWinRect = dirtyRect;
 
     npEvent.event = WM_PAINT;
-    npEvent.wParam = reinterpret_cast<uintptr_t>(hdc);
+    npEvent.wParam = reinterpret_cast<uintptr_t>(windowsContext.hdc());
     npEvent.lParam = reinterpret_cast<uintptr_t>(&dirtyWinRect);
 
     NPP_HandleEvent(&npEvent);
-
-    // FIXME: Support transparent plugins.
-    context->releaseWindowsContext(hdc, dirtyRect, false);
 }
 
 NPEvent toNP(const WebMouseEvent& event)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list