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

barraclough at apple.com barraclough at apple.com
Wed Dec 22 11:45:42 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit eead80acfd543d0da4925e626be869a112c80272
Author: barraclough at apple.com <barraclough at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Aug 6 00:20:28 2010 +0000

    Bug 43594 - Add string forwards to Forward.h
    This allows us to remove forward declarations for these classes from
    WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
    
    Rubber stamped by Sam Weinig
    
    JavaScriptCore:
    
    * JavaScriptCore.xcodeproj/project.pbxproj:
    * wtf/Forward.h:
    
    WebCore:
    
    * WebCore.xcodeproj/project.pbxproj:
    * accessibility/AXObjectCache.h:
    * accessibility/AccessibilityARIAGrid.h:
    * accessibility/AccessibilityListBoxOption.h:
    * accessibility/AccessibilityObject.h:
    * accessibility/AccessibilityRenderObject.h:
    * accessibility/AccessibilityTable.h:
    * bindings/cpp/WebDOMCString.h:
    * bindings/cpp/WebDOMString.h:
    * bindings/gobject/ConvertToUTF8String.h:
    * bindings/js/DOMWrapperWorld.h:
    * bindings/js/JSDOMBinding.h:
    * bindings/js/JSDOMWindowBase.h:
    * bindings/js/JSMessagePortCustom.h:
    * bindings/js/JavaScriptCallFrame.h:
    * bindings/js/ScriptController.h:
    * bindings/js/ScriptProfile.h:
    * bindings/js/ScriptSourceProvider.h:
    * bindings/js/ScriptString.h:
    * bindings/js/WorkerScriptController.h:
    * bindings/objc/DOMImplementationFront.h:
    * bindings/v8/ScheduledAction.h:
    * bindings/v8/ScriptController.h:
    * bindings/v8/V8DOMWindowShell.h:
    * bindings/v8/V8Proxy.h:
    * bindings/v8/V8Utilities.h:
    * bindings/v8/custom/V8CustomXPathNSResolver.h:
    * bridge/c/c_utility.h:
    * css/CSSFontSelector.h:
    * css/CSSHelper.h:
    * css/CSSOMUtils.h:
    * css/CSSPrimitiveValue.h:
    * css/MediaList.h:
    * css/StyleBase.h:
    * css/StyleSheetList.h:
    * css/WebKitCSSKeyframesRule.h:
    * dom/CheckedRadioButtons.h:
    * dom/DOMImplementation.h:
    * dom/DocumentMarker.h:
    * dom/DynamicNodeList.h:
    * dom/EventTarget.h:
    * dom/MessagePort.h:
    * dom/MessagePortChannel.h:
    * dom/NameNodeList.h:
    * dom/Node.h:
    * dom/NodeList.h:
    * dom/OptionGroupElement.h:
    * dom/ScriptExecutionContext.h:
    * dom/SelectElement.h:
    * dom/ViewportArguments.h:
    * dom/make_names.pl:
    * editing/HTMLInterchange.h:
    * editing/htmlediting.h:
    * editing/markup.h:
    * html/CollectionCache.h:
    * html/DOMFormData.h:
    * html/DataGridColumnList.h:
    * html/DateComponents.h:
    * html/FileStream.h:
    * html/FileStreamProxy.h:
    * html/FormDataList.h:
    (WebCore::FormDataList::appendData):
    * html/HTMLCollection.h:
    * html/HTMLElementStack.h:
    * html/HTMLFormattingElementList.h:
    * html/HTMLParserQuirks.h:
    * html/HTMLQuoteElement.h:
    * html/HTMLScriptRunnerHost.h:
    * html/StepRange.h:
    * html/canvas/CanvasGradient.h:
    * html/canvas/CanvasNumberArray.h:
    * html/canvas/CanvasPattern.h:
    * inspector/InjectedScript.h:
    * inspector/InspectorCSSStore.h:
    * inspector/InspectorClient.h:
    * inspector/InspectorFrontendClient.h:
    * inspector/InspectorValues.h:
    * inspector/ScriptDebugListener.h:
    * loader/CachedResourceClient.h:
    * loader/CrossOriginAccessControl.h:
    * loader/DocumentThreadableLoader.h:
    * loader/FrameLoaderClient.h:
    * loader/RedirectScheduler.h:
    * loader/SubframeLoader.h:
    * loader/appcache/DOMApplicationCache.h:
    * loader/archive/ArchiveFactory.h:
    * loader/icon/IconDatabaseClient.h:
    * notifications/NotificationPresenter.h:
    * page/Chrome.h:
    * page/ChromeClient.h:
    * page/Console.h:
    * page/ContextMenuClient.h:
    * page/DOMSelection.h:
    * page/EditorClient.h:
    * page/EventHandler.h:
    * page/FrameView.h:
    * page/GeolocationPositionCache.h:
    * page/History.h:
    * page/Location.h:
    * page/Navigator.h:
    * page/NavigatorBase.h:
    * page/PluginHalterClient.h:
    * page/PrintContext.h:
    * page/SpeechInput.h:
    * page/SpeechInputListener.h:
    * page/animation/AnimationController.h:
    * platform/CookieJar.h:
    * platform/CrossThreadCopier.h:
    * platform/DragImage.h:
    * platform/FileSystem.h:
    * platform/Language.h:
    * platform/Length.h:
    * platform/LinkHash.h:
    * platform/LocalizationStrategy.h:
    * platform/LocalizedStrings.h:
    * platform/Logging.h:
    * platform/Pasteboard.h:
    * platform/PopupMenuClient.h:
    * platform/SearchPopupMenu.h:
    * platform/Widget.h:
    * platform/cf/BinaryPropertyList.h:
    * platform/chromium/ChromiumBridge.h:
    * platform/chromium/ClipboardUtilitiesChromium.h:
    * platform/cocoa/KeyEventCocoa.h:
    * platform/graphics/Color.h:
    * platform/graphics/FontCache.h:
    * platform/graphics/FontData.h:
    * platform/graphics/FontSelector.h:
    * platform/graphics/GraphicsTypes.h:
    * platform/graphics/Icon.h:
    * platform/graphics/ImageBuffer.h:
    * platform/graphics/ImageSource.h:
    * platform/graphics/MediaPlayer.h:
    * platform/graphics/MediaPlayerPrivate.h:
    * platform/graphics/Path.h:
    * platform/graphics/StringTruncator.h:
    * platform/graphics/cairo/FontCustomPlatformData.h:
    * platform/graphics/cairo/FontPlatformData.h:
    * platform/graphics/cg/FontPlatformData.h:
    * platform/graphics/cg/ImageSourceCG.h:
    * platform/graphics/chromium/FontCustomPlatformData.h:
    * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
    * platform/graphics/chromium/FontPlatformDataLinux.h:
    * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
    * platform/graphics/haiku/FontCustomPlatformData.h:
    * platform/graphics/mac/FontCustomPlatformData.h:
    * platform/graphics/mac/FontPlatformData.h:
    * platform/graphics/qt/FontCustomPlatformData.h:
    * platform/graphics/qt/FontPlatformData.h:
    * platform/graphics/win/FontCustomPlatformData.h:
    * platform/graphics/win/FontCustomPlatformDataCairo.h:
    * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
    * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
    * platform/graphics/wince/FontPlatformData.h:
    * platform/graphics/wince/MediaPlayerPrivateWince.h:
    * platform/graphics/wince/MediaPlayerProxy.h:
    * platform/graphics/wx/FontCustomPlatformData.h:
    * platform/graphics/wx/FontPlatformData.h:
    * platform/mac/PasteboardHelper.h:
    * platform/network/DNS.h:
    * platform/network/FormData.h:
    * platform/network/FormDataBuilder.h:
    * platform/network/HTTPParsers.h:
    * platform/text/Hyphenation.h:
    * platform/text/LineEnding.h:
    * platform/text/TextCodec.h:
    * platform/text/TextEncoding.h:
    * platform/text/TextStream.h:
    * platform/win/BString.h:
    * platform/win/ClipboardUtilitiesWin.h:
    * platform/win/WCDataObject.h:
    * platform/win/WebCoreTextRenderer.h:
    * plugins/DOMMimeType.h:
    * plugins/DOMMimeTypeArray.h:
    * plugins/DOMPlugin.h:
    * plugins/DOMPluginArray.h:
    * rendering/CounterNode.h:
    * rendering/HitTestResult.h:
    * rendering/RenderObjectChildList.h:
    * rendering/RenderText.h:
    * rendering/RenderTreeAsText.h:
    * rendering/TextControlInnerElements.h:
    * rendering/style/ContentData.h:
    * rendering/style/RenderStyle.h:
    * storage/DatabaseAuthorizer.h:
    * storage/DatabaseTrackerClient.h:
    * storage/SQLTransaction.h:
    * storage/SQLTransactionSync.h:
    * storage/Storage.h:
    * storage/chromium/DatabaseObserver.h:
    * svg/SVGAnimatedTemplate.h:
    * svg/SVGDocumentExtensions.h:
    * svg/SVGGlyphElement.h:
    * svg/SVGHKernElement.h:
    * svg/SVGNumberList.h:
    * svg/SVGPointList.h:
    * svg/SVGPreserveAspectRatio.h:
    * svg/SVGStylable.h:
    * svg/SVGTests.h:
    * svg/SVGTransformList.h:
    * svg/SVGTransformable.h:
    * svg/SVGVKernElement.h:
    * websockets/ThreadableWebSocketChannel.h:
    * websockets/ThreadableWebSocketChannelClientWrapper.h:
    * websockets/WebSocket.h:
    * websockets/WebSocketChannel.h:
    * websockets/WebSocketHandshakeResponse.h:
    * wml/WMLErrorHandling.h:
    * wml/WMLPageState.h:
    * wml/WMLVariables.h:
    * workers/DefaultSharedWorkerRepository.h:
    * workers/SharedWorkerRepository.h:
    * workers/Worker.h:
    * workers/WorkerContextProxy.h:
    * workers/WorkerLoaderProxy.h:
    * workers/WorkerLocation.h:
    * workers/WorkerMessagingProxy.h:
    * workers/WorkerReportingProxy.h:
    * workers/WorkerThread.h:
    * xml/DOMParser.h:
    * xml/XMLHttpRequestUpload.h:
    * xml/XPathEvaluator.h:
    * xml/XPathExpression.h:
    * xml/XPathNSResolver.h:
    * xml/XPathResult.h:
    * xml/XPathUtil.h:
    
    WebKit:
    
    * WebKit.xcodeproj/project.pbxproj:
    
    WebKit/chromium:
    
    * public/WebCString.h:
    * public/WebString.h:
    * src/DOMUtilitiesPrivate.h:
    * src/DebuggerAgentImpl.h:
    * src/DebuggerAgentManager.h:
    * src/WebDevToolsAgentImpl.h:
    * src/WebDevToolsFrontendImpl.h:
    * src/WebPageSerializerImpl.h:
    
    WebKit/efl:
    
    * WebCoreSupport/InspectorClientEfl.h:
    
    WebKit/gtk:
    
    * WebCoreSupport/InspectorClientGtk.h:
    
    WebKit/haiku:
    
    * WebCoreSupport/FrameLoaderClientHaiku.h:
    * WebCoreSupport/InspectorClientHaiku.h:
    
    WebKit/mac:
    
    * Plugins/Hosted/NetscapePluginInstanceProxy.h:
    * Plugins/WebBaseNetscapePluginView.h:
    * WebCoreSupport/WebFrameLoaderClient.h:
    * WebCoreSupport/WebIconDatabaseClient.h:
    * WebCoreSupport/WebPluginHalterClient.h:
    * WebView/WebViewInternal.h:
    
    WebKit/qt:
    
    * WebCoreSupport/FrameLoaderClientQt.h:
    * WebCoreSupport/InspectorClientQt.h:
    
    WebKit/win:
    
    * COMVariantSetter.h:
    * MarshallingHelpers.h:
    * WebCoreSupport/WebContextMenuClient.h:
    * WebCoreSupport/WebPluginHalterClient.h:
    * WebHistory.h:
    
    WebKit/wx:
    
    * WebKitSupport/FrameLoaderClientWx.h:
    * WebKitSupport/InspectorClientWx.h:
    
    WebKit2:
    
    * UIProcess/PageClient.h:
    * UIProcess/VisitedLinkProvider.h:
    * UIProcess/WebContextInjectedBundleClient.h:
    * UIProcess/WebFrameProxy.h:
    * UIProcess/WebHistoryClient.h:
    * UIProcess/WebLoaderClient.h:
    * UIProcess/WebPolicyClient.h:
    * UIProcess/WebProcessProxy.h:
    * UIProcess/WebUIClient.h:
    * UIProcess/win/WebView.h:
    * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
    * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
    * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
    * WebProcess/Plugins/NPRuntimeObjectMap.h:
    * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
    * WebProcess/Plugins/PluginController.h:
    * WebProcess/WebPage/WebFrame.h:
    * WebProcess/WebPage/WebPage.h:
    * WebProcess/WebProcess.h:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64801 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index 7da922f..ed4bc6b 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * JavaScriptCore.xcodeproj/project.pbxproj:
+        * wtf/Forward.h:
+
 2010-08-05  Geoffrey Garen  <ggaren at apple.com>
 
         Reviewed by Mark Rowe.
diff --git a/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj b/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
index 4f3d640..f3d324d 100644
--- a/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
+++ b/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
@@ -2307,6 +2307,7 @@
 			isa = PBXProject;
 			buildConfigurationList = 149C277108902AFE008A9EFC /* Build configuration list for PBXProject "JavaScriptCore" */;
 			compatibilityVersion = "Xcode 2.4";
+			developmentRegion = English;
 			hasScannedForEncodings = 1;
 			knownRegions = (
 				English,
diff --git a/JavaScriptCore/wtf/Forward.h b/JavaScriptCore/wtf/Forward.h
index 448de7d..c9644db 100644
--- a/JavaScriptCore/wtf/Forward.h
+++ b/JavaScriptCore/wtf/Forward.h
@@ -31,6 +31,8 @@ namespace WTF {
     template<typename T> class PassRefPtr;
     template<typename T> class RefPtr;
     template<typename T, size_t inlineCapacity> class Vector;
+
+    class CString;
 }
 
 using WTF::ListRefPtr;
@@ -41,4 +43,18 @@ using WTF::PassRefPtr;
 using WTF::RefPtr;
 using WTF::Vector;
 
+using WTF::CString;
+
+namespace WebCore {
+    class AtomicString;
+    class AtomicStringImpl;
+    class String;
+    class StringImpl;
+}
+
+using WebCore::AtomicString;
+using WebCore::AtomicStringImpl;
+using WebCore::String;
+using WebCore::StringImpl;
+
 #endif // WTF_Forward_h
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 525a53a..e4fc593 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,238 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * accessibility/AXObjectCache.h:
+        * accessibility/AccessibilityARIAGrid.h:
+        * accessibility/AccessibilityListBoxOption.h:
+        * accessibility/AccessibilityObject.h:
+        * accessibility/AccessibilityRenderObject.h:
+        * accessibility/AccessibilityTable.h:
+        * bindings/cpp/WebDOMCString.h:
+        * bindings/cpp/WebDOMString.h:
+        * bindings/gobject/ConvertToUTF8String.h:
+        * bindings/js/DOMWrapperWorld.h:
+        * bindings/js/JSDOMBinding.h:
+        * bindings/js/JSDOMWindowBase.h:
+        * bindings/js/JSMessagePortCustom.h:
+        * bindings/js/JavaScriptCallFrame.h:
+        * bindings/js/ScriptController.h:
+        * bindings/js/ScriptProfile.h:
+        * bindings/js/ScriptSourceProvider.h:
+        * bindings/js/ScriptString.h:
+        * bindings/js/WorkerScriptController.h:
+        * bindings/objc/DOMImplementationFront.h:
+        * bindings/v8/ScheduledAction.h:
+        * bindings/v8/ScriptController.h:
+        * bindings/v8/V8DOMWindowShell.h:
+        * bindings/v8/V8Proxy.h:
+        * bindings/v8/V8Utilities.h:
+        * bindings/v8/custom/V8CustomXPathNSResolver.h:
+        * bridge/c/c_utility.h:
+        * css/CSSFontSelector.h:
+        * css/CSSHelper.h:
+        * css/CSSOMUtils.h:
+        * css/CSSPrimitiveValue.h:
+        * css/MediaList.h:
+        * css/StyleBase.h:
+        * css/StyleSheetList.h:
+        * css/WebKitCSSKeyframesRule.h:
+        * dom/CheckedRadioButtons.h:
+        * dom/DOMImplementation.h:
+        * dom/DocumentMarker.h:
+        * dom/DynamicNodeList.h:
+        * dom/EventTarget.h:
+        * dom/MessagePort.h:
+        * dom/MessagePortChannel.h:
+        * dom/NameNodeList.h:
+        * dom/Node.h:
+        * dom/NodeList.h:
+        * dom/OptionGroupElement.h:
+        * dom/ScriptExecutionContext.h:
+        * dom/SelectElement.h:
+        * dom/ViewportArguments.h:
+        * dom/make_names.pl:
+        * editing/HTMLInterchange.h:
+        * editing/htmlediting.h:
+        * editing/markup.h:
+        * html/CollectionCache.h:
+        * html/DOMFormData.h:
+        * html/DataGridColumnList.h:
+        * html/DateComponents.h:
+        * html/FileStream.h:
+        * html/FileStreamProxy.h:
+        * html/FormDataList.h:
+        (WebCore::FormDataList::appendData):
+        * html/HTMLCollection.h:
+        * html/HTMLElementStack.h:
+        * html/HTMLFormattingElementList.h:
+        * html/HTMLParserQuirks.h:
+        * html/HTMLQuoteElement.h:
+        * html/HTMLScriptRunnerHost.h:
+        * html/StepRange.h:
+        * html/canvas/CanvasGradient.h:
+        * html/canvas/CanvasNumberArray.h:
+        * html/canvas/CanvasPattern.h:
+        * inspector/InjectedScript.h:
+        * inspector/InspectorCSSStore.h:
+        * inspector/InspectorClient.h:
+        * inspector/InspectorFrontendClient.h:
+        * inspector/InspectorValues.h:
+        * inspector/ScriptDebugListener.h:
+        * loader/CachedResourceClient.h:
+        * loader/CrossOriginAccessControl.h:
+        * loader/DocumentThreadableLoader.h:
+        * loader/FrameLoaderClient.h:
+        * loader/RedirectScheduler.h:
+        * loader/SubframeLoader.h:
+        * loader/appcache/DOMApplicationCache.h:
+        * loader/archive/ArchiveFactory.h:
+        * loader/icon/IconDatabaseClient.h:
+        * notifications/NotificationPresenter.h:
+        * page/Chrome.h:
+        * page/ChromeClient.h:
+        * page/Console.h:
+        * page/ContextMenuClient.h:
+        * page/DOMSelection.h:
+        * page/EditorClient.h:
+        * page/EventHandler.h:
+        * page/FrameView.h:
+        * page/GeolocationPositionCache.h:
+        * page/History.h:
+        * page/Location.h:
+        * page/Navigator.h:
+        * page/NavigatorBase.h:
+        * page/PluginHalterClient.h:
+        * page/PrintContext.h:
+        * page/SpeechInput.h:
+        * page/SpeechInputListener.h:
+        * page/animation/AnimationController.h:
+        * platform/CookieJar.h:
+        * platform/CrossThreadCopier.h:
+        * platform/DragImage.h:
+        * platform/FileSystem.h:
+        * platform/Language.h:
+        * platform/Length.h:
+        * platform/LinkHash.h:
+        * platform/LocalizationStrategy.h:
+        * platform/LocalizedStrings.h:
+        * platform/Logging.h:
+        * platform/Pasteboard.h:
+        * platform/PopupMenuClient.h:
+        * platform/SearchPopupMenu.h:
+        * platform/Widget.h:
+        * platform/cf/BinaryPropertyList.h:
+        * platform/chromium/ChromiumBridge.h:
+        * platform/chromium/ClipboardUtilitiesChromium.h:
+        * platform/cocoa/KeyEventCocoa.h:
+        * platform/graphics/Color.h:
+        * platform/graphics/FontCache.h:
+        * platform/graphics/FontData.h:
+        * platform/graphics/FontSelector.h:
+        * platform/graphics/GraphicsTypes.h:
+        * platform/graphics/Icon.h:
+        * platform/graphics/ImageBuffer.h:
+        * platform/graphics/ImageSource.h:
+        * platform/graphics/MediaPlayer.h:
+        * platform/graphics/MediaPlayerPrivate.h:
+        * platform/graphics/Path.h:
+        * platform/graphics/StringTruncator.h:
+        * platform/graphics/cairo/FontCustomPlatformData.h:
+        * platform/graphics/cairo/FontPlatformData.h:
+        * platform/graphics/cg/FontPlatformData.h:
+        * platform/graphics/cg/ImageSourceCG.h:
+        * platform/graphics/chromium/FontCustomPlatformData.h:
+        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
+        * platform/graphics/chromium/FontPlatformDataLinux.h:
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+        * platform/graphics/haiku/FontCustomPlatformData.h:
+        * platform/graphics/mac/FontCustomPlatformData.h:
+        * platform/graphics/mac/FontPlatformData.h:
+        * platform/graphics/qt/FontCustomPlatformData.h:
+        * platform/graphics/qt/FontPlatformData.h:
+        * platform/graphics/win/FontCustomPlatformData.h:
+        * platform/graphics/win/FontCustomPlatformDataCairo.h:
+        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
+        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
+        * platform/graphics/wince/FontPlatformData.h:
+        * platform/graphics/wince/MediaPlayerPrivateWince.h:
+        * platform/graphics/wince/MediaPlayerProxy.h:
+        * platform/graphics/wx/FontCustomPlatformData.h:
+        * platform/graphics/wx/FontPlatformData.h:
+        * platform/mac/PasteboardHelper.h:
+        * platform/network/DNS.h:
+        * platform/network/FormData.h:
+        * platform/network/FormDataBuilder.h:
+        * platform/network/HTTPParsers.h:
+        * platform/text/Hyphenation.h:
+        * platform/text/LineEnding.h:
+        * platform/text/TextCodec.h:
+        * platform/text/TextEncoding.h:
+        * platform/text/TextStream.h:
+        * platform/win/BString.h:
+        * platform/win/ClipboardUtilitiesWin.h:
+        * platform/win/WCDataObject.h:
+        * platform/win/WebCoreTextRenderer.h:
+        * plugins/DOMMimeType.h:
+        * plugins/DOMMimeTypeArray.h:
+        * plugins/DOMPlugin.h:
+        * plugins/DOMPluginArray.h:
+        * rendering/CounterNode.h:
+        * rendering/HitTestResult.h:
+        * rendering/RenderObjectChildList.h:
+        * rendering/RenderText.h:
+        * rendering/RenderTreeAsText.h:
+        * rendering/TextControlInnerElements.h:
+        * rendering/style/ContentData.h:
+        * rendering/style/RenderStyle.h:
+        * storage/DatabaseAuthorizer.h:
+        * storage/DatabaseTrackerClient.h:
+        * storage/SQLTransaction.h:
+        * storage/SQLTransactionSync.h:
+        * storage/Storage.h:
+        * storage/chromium/DatabaseObserver.h:
+        * svg/SVGAnimatedTemplate.h:
+        * svg/SVGDocumentExtensions.h:
+        * svg/SVGGlyphElement.h:
+        * svg/SVGHKernElement.h:
+        * svg/SVGNumberList.h:
+        * svg/SVGPointList.h:
+        * svg/SVGPreserveAspectRatio.h:
+        * svg/SVGStylable.h:
+        * svg/SVGTests.h:
+        * svg/SVGTransformList.h:
+        * svg/SVGTransformable.h:
+        * svg/SVGVKernElement.h:
+        * websockets/ThreadableWebSocketChannel.h:
+        * websockets/ThreadableWebSocketChannelClientWrapper.h:
+        * websockets/WebSocket.h:
+        * websockets/WebSocketChannel.h:
+        * websockets/WebSocketHandshakeResponse.h:
+        * wml/WMLErrorHandling.h:
+        * wml/WMLPageState.h:
+        * wml/WMLVariables.h:
+        * workers/DefaultSharedWorkerRepository.h:
+        * workers/SharedWorkerRepository.h:
+        * workers/Worker.h:
+        * workers/WorkerContextProxy.h:
+        * workers/WorkerLoaderProxy.h:
+        * workers/WorkerLocation.h:
+        * workers/WorkerMessagingProxy.h:
+        * workers/WorkerReportingProxy.h:
+        * workers/WorkerThread.h:
+        * xml/DOMParser.h:
+        * xml/XMLHttpRequestUpload.h:
+        * xml/XPathEvaluator.h:
+        * xml/XPathExpression.h:
+        * xml/XPathNSResolver.h:
+        * xml/XPathResult.h:
+        * xml/XPathUtil.h:
+
 2010-08-05  Adam Barth  <abarth at webkit.org>
 
         Reviewed by Eric Seidel.
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index 3fd8b9c..8c71f82 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -20045,6 +20045,7 @@
 			isa = PBXProject;
 			buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject "WebCore" */;
 			compatibilityVersion = "Xcode 2.4";
+			developmentRegion = English;
 			hasScannedForEncodings = 1;
 			knownRegions = (
 				English,
diff --git a/WebCore/accessibility/AXObjectCache.h b/WebCore/accessibility/AXObjectCache.h
index f18d08a..f4f7b3d 100644
--- a/WebCore/accessibility/AXObjectCache.h
+++ b/WebCore/accessibility/AXObjectCache.h
@@ -29,6 +29,7 @@
 #include "AccessibilityObject.h"
 #include "Timer.h"
 #include <limits.h>
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/HashSet.h>
 #include <wtf/RefPtr.h>
@@ -45,7 +46,6 @@ class HTMLAreaElement;
 class Node;
 class Page;
 class RenderObject;
-class String;
 class VisiblePosition;
 
 struct TextMarkerData {
diff --git a/WebCore/accessibility/AccessibilityARIAGrid.h b/WebCore/accessibility/AccessibilityARIAGrid.h
index 3511f0f..dc3c3ee 100644
--- a/WebCore/accessibility/AccessibilityARIAGrid.h
+++ b/WebCore/accessibility/AccessibilityARIAGrid.h
@@ -30,10 +30,10 @@
 #define AccessibilityARIAGrid_h
 
 #include "AccessibilityTable.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
     
-class String;
 class AccessibilityTableCell;
 class AccessibilityTableHeaderContainer;
 
diff --git a/WebCore/accessibility/AccessibilityListBoxOption.h b/WebCore/accessibility/AccessibilityListBoxOption.h
index c4c9315..c500283 100644
--- a/WebCore/accessibility/AccessibilityListBoxOption.h
+++ b/WebCore/accessibility/AccessibilityListBoxOption.h
@@ -31,6 +31,7 @@
 
 #include "AccessibilityObject.h"
 #include "HTMLElement.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
@@ -38,7 +39,6 @@ class AccessibilityListBox;
 class Element;
 class HTMLElement;
 class HTMLSelectElement;
-class String;
     
 class AccessibilityListBoxOption : public AccessibilityObject {
 
diff --git a/WebCore/accessibility/AccessibilityObject.h b/WebCore/accessibility/AccessibilityObject.h
index c517855..14a27e6 100644
--- a/WebCore/accessibility/AccessibilityObject.h
+++ b/WebCore/accessibility/AccessibilityObject.h
@@ -34,6 +34,7 @@
 #include "Range.h"
 #include "VisiblePosition.h"
 #include "VisibleSelection.h"
+#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 #include <wtf/Vector.h>
 
@@ -87,7 +88,6 @@ class Node;
 class RenderObject;
 class RenderListItem;
 class VisibleSelection;
-class String;
 class Widget;
 
 typedef unsigned AXID;
diff --git a/WebCore/accessibility/AccessibilityRenderObject.h b/WebCore/accessibility/AccessibilityRenderObject.h
index c05bc2d..52664a5 100644
--- a/WebCore/accessibility/AccessibilityRenderObject.h
+++ b/WebCore/accessibility/AccessibilityRenderObject.h
@@ -31,6 +31,7 @@
 
 #include "AccessibilityObject.h"
 #include "RenderObject.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
     
@@ -52,7 +53,6 @@ class RenderListBox;
 class RenderTextControl;
 class RenderView;
 class VisibleSelection;
-class String;
 class Widget;
     
 class AccessibilityRenderObject : public AccessibilityObject {
diff --git a/WebCore/accessibility/AccessibilityTable.h b/WebCore/accessibility/AccessibilityTable.h
index 42edf2a..40f6639 100644
--- a/WebCore/accessibility/AccessibilityTable.h
+++ b/WebCore/accessibility/AccessibilityTable.h
@@ -30,6 +30,7 @@
 #define AccessibilityTable_h
 
 #include "AccessibilityRenderObject.h"
+#include <wtf/Forward.h>
 
 #if PLATFORM(MAC) && (defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD))
 #define ACCESSIBILITY_TABLES 0
@@ -39,7 +40,6 @@
 
 namespace WebCore {
 
-class String;
 class AccessibilityTableCell;
 class AccessibilityTableHeaderContainer;
     
diff --git a/WebCore/bindings/cpp/WebDOMCString.h b/WebCore/bindings/cpp/WebDOMCString.h
index e02a587..c921895 100644
--- a/WebCore/bindings/cpp/WebDOMCString.h
+++ b/WebCore/bindings/cpp/WebDOMCString.h
@@ -22,12 +22,9 @@
 #define WebDOMCString_h
 
 #include <WebDOMObject.h>
+#include <wtf/Forward.h>
 #include <stddef.h> // For size_t
 
-namespace WTF {
-class CString;
-};
-
 // UTF-16 character type
 #if defined(WIN32)
 typedef wchar_t WebUChar;
diff --git a/WebCore/bindings/cpp/WebDOMString.h b/WebCore/bindings/cpp/WebDOMString.h
index ca09ee8..400c483 100644
--- a/WebCore/bindings/cpp/WebDOMString.h
+++ b/WebCore/bindings/cpp/WebDOMString.h
@@ -22,11 +22,7 @@
 #define WebDOMString_h
 
 #include <WebDOMCString.h>
-
-namespace WebCore {
-class String;
-class AtomicString;
-}
+#include <wtf/Forward.h>
 
 class WebDOMStringPrivate;
 
diff --git a/WebCore/bindings/gobject/ConvertToUTF8String.h b/WebCore/bindings/gobject/ConvertToUTF8String.h
index 02b6416..37132e7 100644
--- a/WebCore/bindings/gobject/ConvertToUTF8String.h
+++ b/WebCore/bindings/gobject/ConvertToUTF8String.h
@@ -21,8 +21,9 @@
 #ifndef ConvertToUTF8String_h
 #define ConvertToUTF8String_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
-class String;
 class KURL;
 }
 
diff --git a/WebCore/bindings/js/DOMWrapperWorld.h b/WebCore/bindings/js/DOMWrapperWorld.h
index 832c5e0..35b68fc 100644
--- a/WebCore/bindings/js/DOMWrapperWorld.h
+++ b/WebCore/bindings/js/DOMWrapperWorld.h
@@ -26,11 +26,11 @@
 #include "JSDOMGlobalObject.h"
 #include "JSDOMWrapper.h"
 #include <runtime/WeakGCMap.h>
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
 class ScriptController;
-class StringImpl;
 
 typedef JSC::WeakGCMap<void*, DOMObject*> DOMObjectWrapperMap;
 typedef JSC::WeakGCMap<StringImpl*, JSC::JSString*> JSStringCache; 
diff --git a/WebCore/bindings/js/JSDOMBinding.h b/WebCore/bindings/js/JSDOMBinding.h
index 3f2502d..7086a89 100644
--- a/WebCore/bindings/js/JSDOMBinding.h
+++ b/WebCore/bindings/js/JSDOMBinding.h
@@ -30,6 +30,7 @@
 #include <runtime/Completion.h>
 #include <runtime/Lookup.h>
 #include <runtime/WeakGCMap.h>
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 namespace JSC {
@@ -44,7 +45,6 @@ namespace WebCore {
     class JSNode;
     class KURL;
     class Node;
-    class String;
     class ScriptController;
     class ScriptCachedFrameData;
 
diff --git a/WebCore/bindings/js/JSDOMWindowBase.h b/WebCore/bindings/js/JSDOMWindowBase.h
index 2726996..f4f1ef9 100644
--- a/WebCore/bindings/js/JSDOMWindowBase.h
+++ b/WebCore/bindings/js/JSDOMWindowBase.h
@@ -23,12 +23,12 @@
 #include "PlatformString.h"
 #include "JSDOMBinding.h"
 #include <runtime/Protect.h>
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/OwnPtr.h>
 
 namespace WebCore {
 
-    class AtomicString;
     class DOMWindow;
     class Event;
     class Frame;
diff --git a/WebCore/bindings/js/JSMessagePortCustom.h b/WebCore/bindings/js/JSMessagePortCustom.h
index 62ebef1..8396ae1 100644
--- a/WebCore/bindings/js/JSMessagePortCustom.h
+++ b/WebCore/bindings/js/JSMessagePortCustom.h
@@ -33,13 +33,12 @@
 
 #include "MessagePort.h"
 #include <runtime/JSValue.h>
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
     typedef int ExceptionCode;
 
-    class String;
-
     // Helper function which pulls the values out of a JS sequence and into a MessagePortArray.
     // Also validates the elements per sections 4.1.13 and 4.1.15 of the WebIDL spec and section 8.3.3 of the HTML5 spec.
     // May generate an exception via the passed ExecState.
diff --git a/WebCore/bindings/js/JavaScriptCallFrame.h b/WebCore/bindings/js/JavaScriptCallFrame.h
index 574c782..c23a43d 100644
--- a/WebCore/bindings/js/JavaScriptCallFrame.h
+++ b/WebCore/bindings/js/JavaScriptCallFrame.h
@@ -30,13 +30,12 @@
 
 #include <debugger/DebuggerCallFrame.h>
 #include <interpreter/CallFrame.h>
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
-class String;
-
 class JavaScriptCallFrame : public RefCounted<JavaScriptCallFrame> {
 public:
     static PassRefPtr<JavaScriptCallFrame> create(const JSC::DebuggerCallFrame& debuggerCallFrame, PassRefPtr<JavaScriptCallFrame> caller, intptr_t sourceID, int line)
diff --git a/WebCore/bindings/js/ScriptController.h b/WebCore/bindings/js/ScriptController.h
index 80155e4..8dae637 100644
--- a/WebCore/bindings/js/ScriptController.h
+++ b/WebCore/bindings/js/ScriptController.h
@@ -26,6 +26,7 @@
 #include "ScriptControllerBase.h"
 #include "ScriptInstance.h"
 #include <runtime/Protect.h>
+#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 
 #if PLATFORM(MAC)
@@ -57,7 +58,6 @@ class Frame;
 class Node;
 class ScriptSourceCode;
 class ScriptValue;
-class String;
 class Widget;
 class XSSAuditor;
 
diff --git a/WebCore/bindings/js/ScriptProfile.h b/WebCore/bindings/js/ScriptProfile.h
index 8b98e49..b39d2c9 100644
--- a/WebCore/bindings/js/ScriptProfile.h
+++ b/WebCore/bindings/js/ScriptProfile.h
@@ -29,6 +29,7 @@
 
 #if ENABLE(JAVASCRIPT_DEBUGGER)
 #include "ScriptProfileNode.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
@@ -40,7 +41,6 @@ class Profile;
 namespace WebCore {
 
 class InspectorObject;
-class String;
 
 class ScriptProfile : public RefCounted<ScriptProfile> {
 public:
diff --git a/WebCore/bindings/js/ScriptSourceProvider.h b/WebCore/bindings/js/ScriptSourceProvider.h
index 2144169..de4e307 100644
--- a/WebCore/bindings/js/ScriptSourceProvider.h
+++ b/WebCore/bindings/js/ScriptSourceProvider.h
@@ -28,11 +28,10 @@
 #define ScriptSourceProvider_h
 
 #include <parser/SourceProvider.h>
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
-    class String;
-
     class ScriptSourceProvider : public JSC::SourceProvider {
     public:
         ScriptSourceProvider(const JSC::UString& url)
diff --git a/WebCore/bindings/js/ScriptString.h b/WebCore/bindings/js/ScriptString.h
index ad0ae95..558ad33 100644
--- a/WebCore/bindings/js/ScriptString.h
+++ b/WebCore/bindings/js/ScriptString.h
@@ -35,11 +35,10 @@
 #include "PlatformString.h"
 #include <runtime/UString.h>
 #include <runtime/StringBuilder.h>
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
-class String;
-
 class ScriptString {
 public:
     ScriptString() {}
diff --git a/WebCore/bindings/js/WorkerScriptController.h b/WebCore/bindings/js/WorkerScriptController.h
index 60c3b04..be7da4d 100644
--- a/WebCore/bindings/js/WorkerScriptController.h
+++ b/WebCore/bindings/js/WorkerScriptController.h
@@ -30,6 +30,7 @@
 #if ENABLE(WORKERS)
 
 #include <runtime/Protect.h>
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/Threading.h>
 
@@ -42,7 +43,6 @@ namespace WebCore {
     class JSWorkerContext;
     class ScriptSourceCode;
     class ScriptValue;
-    class String;
     class WorkerContext;
 
     class WorkerScriptController : public Noncopyable {
diff --git a/WebCore/bindings/objc/DOMImplementationFront.h b/WebCore/bindings/objc/DOMImplementationFront.h
index 877a3b6..dabe90c 100644
--- a/WebCore/bindings/objc/DOMImplementationFront.h
+++ b/WebCore/bindings/objc/DOMImplementationFront.h
@@ -37,7 +37,6 @@ class Document;
 class DocumentType;
 class HTMLDocument;
 class JSDOMImplementation;
-class String;
 
 typedef int ExceptionCode;
 
diff --git a/WebCore/bindings/v8/ScheduledAction.h b/WebCore/bindings/v8/ScheduledAction.h
index 003885f..c8b6f42 100644
--- a/WebCore/bindings/v8/ScheduledAction.h
+++ b/WebCore/bindings/v8/ScheduledAction.h
@@ -34,12 +34,12 @@
 #include "OwnHandle.h"
 #include "ScriptSourceCode.h"
 #include "V8GCController.h"
+#include <wtf/Forward.h>
 
 #include <v8.h>
 
 namespace WebCore {
 
-    class String;
     class ScriptExecutionContext;
     class V8Proxy;
     class WorkerContext;
diff --git a/WebCore/bindings/v8/ScriptController.h b/WebCore/bindings/v8/ScriptController.h
index 04a15f6..cd20cda 100644
--- a/WebCore/bindings/v8/ScriptController.h
+++ b/WebCore/bindings/v8/ScriptController.h
@@ -39,6 +39,7 @@
 
 #include <v8.h>
 
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
@@ -52,7 +53,6 @@ class Event;
 class Frame;
 class HTMLPlugInElement;
 class ScriptSourceCode;
-class String;
 class Widget;
 class XSSAuditor;
 
diff --git a/WebCore/bindings/v8/V8DOMWindowShell.h b/WebCore/bindings/v8/V8DOMWindowShell.h
index f4eaff2..2ccb410 100644
--- a/WebCore/bindings/v8/V8DOMWindowShell.h
+++ b/WebCore/bindings/v8/V8DOMWindowShell.h
@@ -32,6 +32,7 @@
 #define V8DOMWindowShell_h
 
 #include "WrapperTypeInfo.h"
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -41,7 +42,6 @@ namespace WebCore {
 
 class DOMWindow;
 class Frame;
-class String;
 
 // V8WindowShell represents all the per-global object state for a Frame that
 // persist between navigations.
diff --git a/WebCore/bindings/v8/V8Proxy.h b/WebCore/bindings/v8/V8Proxy.h
index 841c249..0eefa22 100644
--- a/WebCore/bindings/v8/V8Proxy.h
+++ b/WebCore/bindings/v8/V8Proxy.h
@@ -42,6 +42,7 @@
 #include "V8Utilities.h"
 #include "WrapperTypeInfo.h"
 #include <v8.h>
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h> // so generated bindings don't have to
 #include <wtf/Vector.h>
 
@@ -59,7 +60,6 @@ namespace WebCore {
     class Node;
     class SVGElement;
     class ScriptExecutionContext;
-    class String;
     class V8EventListener;
     class V8IsolatedContext;
     class WorldContextHandle;
diff --git a/WebCore/bindings/v8/V8Utilities.h b/WebCore/bindings/v8/V8Utilities.h
index cbe7a7b..2b82f4d 100644
--- a/WebCore/bindings/v8/V8Utilities.h
+++ b/WebCore/bindings/v8/V8Utilities.h
@@ -31,6 +31,7 @@
 #ifndef V8Utilities_h
 #define V8Utilities_h
 
+#include <wtf/Forward.h>
 #include <v8.h>
 
 namespace WebCore {
@@ -40,7 +41,6 @@ namespace WebCore {
     class KURL;
     class ScriptExecutionContext;
     class ScriptState;
-    class String;
 
     // Use an array to hold dependents. It works like a ref-counted scheme. A value can be added more than once to the DOM object.
     void createHiddenDependency(v8::Handle<v8::Object>, v8::Local<v8::Value>, int cacheIndex);
diff --git a/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h b/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
index cf84438..9677252 100644
--- a/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
+++ b/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
@@ -41,7 +41,6 @@
 
 namespace WebCore {
 
-class String;
 class V8Proxy;
 
 // V8CustomXPathNSResolver does not create a persistent handle to the
diff --git a/WebCore/bridge/c/c_utility.h b/WebCore/bridge/c/c_utility.h
index 6af8fb6..9d61c8c 100644
--- a/WebCore/bridge/c/c_utility.h
+++ b/WebCore/bridge/c/c_utility.h
@@ -30,10 +30,7 @@
 
 #include "npruntime_internal.h"
 #include <runtime/JSValue.h>
-
-namespace WebCore {
-    class String;
-}
+#include <wtf/Forward.h>
 
 namespace JSC {
 
diff --git a/WebCore/css/CSSFontSelector.h b/WebCore/css/CSSFontSelector.h
index af454bd..d9cce1c 100644
--- a/WebCore/css/CSSFontSelector.h
+++ b/WebCore/css/CSSFontSelector.h
@@ -28,19 +28,18 @@
 
 #include "FontSelector.h"
 #include "StringHash.h"
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/RefPtr.h>
 
 namespace WebCore {
 
-class AtomicString;
 class CSSFontFace;
 class CSSFontFaceRule;
 class CSSSegmentedFontFace;
 class Document;
 class DocLoader;
 class FontDescription;
-class String;
 
 class CSSFontSelector : public FontSelector {
 public:
diff --git a/WebCore/css/CSSHelper.h b/WebCore/css/CSSHelper.h
index 2e33377..331815e 100644
--- a/WebCore/css/CSSHelper.h
+++ b/WebCore/css/CSSHelper.h
@@ -22,9 +22,9 @@
 #ifndef CSSHelper_h
 #define CSSHelper_h
 
-namespace WebCore {
+#include <wtf/Forward.h>
 
-    class String;
+namespace WebCore {
 
     // Used in many inappropriate contexts throughout WebCore. We'll have to examine and test
     // each call site to find out whether it needs the various things this function does. That
diff --git a/WebCore/css/CSSOMUtils.h b/WebCore/css/CSSOMUtils.h
index 6602b35..749cb25 100644
--- a/WebCore/css/CSSOMUtils.h
+++ b/WebCore/css/CSSOMUtils.h
@@ -31,6 +31,7 @@
 #ifndef CSSOMUtils_h
 #define CSSOMUtils_h
 
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 #include <wtf/unicode/Unicode.h>
 
@@ -38,8 +39,6 @@
 
 namespace WebCore {
 
-class String;
-
 // Common serializing methods. See: http://dev.w3.org/csswg/cssom/#common-serializing-idioms
 void serializeCharacter(UChar32, Vector<UChar>& appendTo);
 void serializeCharacterAsCodePoint(UChar32, Vector<UChar>& appendTo);
diff --git a/WebCore/css/CSSPrimitiveValue.h b/WebCore/css/CSSPrimitiveValue.h
index a71c8c6..b11c7f0 100644
--- a/WebCore/css/CSSPrimitiveValue.h
+++ b/WebCore/css/CSSPrimitiveValue.h
@@ -24,6 +24,7 @@
 
 #include "CSSValue.h"
 #include "Color.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
@@ -34,7 +35,6 @@ class Pair;
 class RGBColor;
 class Rect;
 class RenderStyle;
-class StringImpl;
 
 struct Length;
 
diff --git a/WebCore/css/MediaList.h b/WebCore/css/MediaList.h
index f1eb0c0..e91ca9d 100644
--- a/WebCore/css/MediaList.h
+++ b/WebCore/css/MediaList.h
@@ -22,6 +22,7 @@
 #define MediaList_h
 
 #include "StyleBase.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/Vector.h>
 
@@ -30,7 +31,6 @@ namespace WebCore {
 class CSSImportRule;
 class CSSStyleSheet;
 class MediaQuery;
-class String;
 
 typedef int ExceptionCode;
 
diff --git a/WebCore/css/StyleBase.h b/WebCore/css/StyleBase.h
index fbd7beb..296c8fb 100644
--- a/WebCore/css/StyleBase.h
+++ b/WebCore/css/StyleBase.h
@@ -23,11 +23,11 @@
 #ifndef StyleBase_h
 #define StyleBase_h
 
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
-    class String;
     class StyleSheet;
     class KURL;
 
diff --git a/WebCore/css/StyleSheetList.h b/WebCore/css/StyleSheetList.h
index ecdc1cf..a486511 100644
--- a/WebCore/css/StyleSheetList.h
+++ b/WebCore/css/StyleSheetList.h
@@ -21,6 +21,7 @@
 #ifndef StyleSheetList_h
 #define StyleSheetList_h
 
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/Vector.h>
@@ -30,7 +31,6 @@ namespace WebCore {
 class Document;
 class HTMLStyleElement;
 class StyleSheet;
-class String;
 
 typedef Vector<RefPtr<StyleSheet> > StyleSheetVector;
 
diff --git a/WebCore/css/WebKitCSSKeyframesRule.h b/WebCore/css/WebKitCSSKeyframesRule.h
index f58406f..2836942 100644
--- a/WebCore/css/WebKitCSSKeyframesRule.h
+++ b/WebCore/css/WebKitCSSKeyframesRule.h
@@ -27,6 +27,7 @@
 #define WebKitCSSKeyframesRule_h
 
 #include "CSSRule.h"
+#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 #include "AtomicString.h"
 
@@ -34,7 +35,6 @@ namespace WebCore {
 
 class CSSRuleList;
 class WebKitCSSKeyframeRule;
-class String;
 
 typedef int ExceptionCode;
 
diff --git a/WebCore/dom/CheckedRadioButtons.h b/WebCore/dom/CheckedRadioButtons.h
index 5a57955..de7b712 100644
--- a/WebCore/dom/CheckedRadioButtons.h
+++ b/WebCore/dom/CheckedRadioButtons.h
@@ -21,13 +21,12 @@
 #ifndef CheckedRadioButtons_h
 #define CheckedRadioButtons_h
 
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/OwnPtr.h>
 
 namespace WebCore {
 
-class AtomicString;
-class AtomicStringImpl;
 class HTMLInputElement;
 class HTMLFormControlElement;
 
diff --git a/WebCore/dom/DOMImplementation.h b/WebCore/dom/DOMImplementation.h
index c3d5658..a20f7d2 100644
--- a/WebCore/dom/DOMImplementation.h
+++ b/WebCore/dom/DOMImplementation.h
@@ -24,6 +24,7 @@
 #ifndef DOMImplementation_h
 #define DOMImplementation_h
 
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -35,7 +36,6 @@ class DocumentType;
 class Frame;
 class HTMLDocument;
 class KURL;
-class String;
 
 typedef int ExceptionCode;
 
diff --git a/WebCore/dom/DocumentMarker.h b/WebCore/dom/DocumentMarker.h
index 8945eb0..55d2e33 100644
--- a/WebCore/dom/DocumentMarker.h
+++ b/WebCore/dom/DocumentMarker.h
@@ -24,9 +24,9 @@
 #define DocumentMarker_h
 
 #include "PlatformString.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
-    class String;
 
 // A range of a node within a document that is "marked", such as the range of a misspelled word.
 // It optionally includes a description that could be displayed in the user interface.
diff --git a/WebCore/dom/DynamicNodeList.h b/WebCore/dom/DynamicNodeList.h
index f97c38f..db133b7 100644
--- a/WebCore/dom/DynamicNodeList.h
+++ b/WebCore/dom/DynamicNodeList.h
@@ -31,7 +31,6 @@
 
 namespace WebCore {
 
-    class AtomicString;
     class Element;
     class Node;
 
diff --git a/WebCore/dom/EventTarget.h b/WebCore/dom/EventTarget.h
index 1ff9031..406c2fd 100644
--- a/WebCore/dom/EventTarget.h
+++ b/WebCore/dom/EventTarget.h
@@ -41,7 +41,6 @@
 namespace WebCore {
 
     class AbstractWorker;
-    class AtomicString;
     class DedicatedWorkerContext;
     class DOMApplicationCache;
     class DOMWindow;
diff --git a/WebCore/dom/MessagePort.h b/WebCore/dom/MessagePort.h
index 65332b8..10426e5 100644
--- a/WebCore/dom/MessagePort.h
+++ b/WebCore/dom/MessagePort.h
@@ -31,6 +31,7 @@
 #include "EventListener.h"
 #include "EventTarget.h"
 #include "MessagePortChannel.h"
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
@@ -39,12 +40,10 @@
 
 namespace WebCore {
 
-    class AtomicStringImpl;
     class Event;
     class Frame;
     class MessagePort;
     class ScriptExecutionContext;
-    class String;
 
     // The overwhelmingly common case is sending a single port, so handle that efficiently with an inline buffer of size 1.
     typedef Vector<RefPtr<MessagePort>, 1> MessagePortArray;
diff --git a/WebCore/dom/MessagePortChannel.h b/WebCore/dom/MessagePortChannel.h
index 192cb92..f308a29 100644
--- a/WebCore/dom/MessagePortChannel.h
+++ b/WebCore/dom/MessagePortChannel.h
@@ -36,6 +36,7 @@
 #include "SerializedScriptValue.h"
 
 #include <wtf/OwnPtr.h>
+#include <wtf/Forward.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -48,7 +49,6 @@ namespace WebCore {
     class PlatformMessagePortChannel;
     class ScriptExecutionContext;
     class SerializedScriptValue;
-    class String;
 
     // The overwhelmingly common case is sending a single port, so handle that efficiently with an inline buffer of size 1.
     typedef Vector<OwnPtr<MessagePortChannel>, 1> MessagePortChannelArray;
diff --git a/WebCore/dom/NameNodeList.h b/WebCore/dom/NameNodeList.h
index 4f109b4..b7f5bfc 100644
--- a/WebCore/dom/NameNodeList.h
+++ b/WebCore/dom/NameNodeList.h
@@ -26,11 +26,10 @@
 
 #include "AtomicString.h"
 #include "DynamicNodeList.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
-    class String;
-
     // NodeList which lists all Nodes in a Element with a given "name" attribute
     class NameNodeList : public DynamicNodeList {
     public:
diff --git a/WebCore/dom/Node.h b/WebCore/dom/Node.h
index e3c1910..b808ad7 100644
--- a/WebCore/dom/Node.h
+++ b/WebCore/dom/Node.h
@@ -30,20 +30,18 @@
 #include "RenderStyleConstants.h"
 #include "ScriptWrappable.h"
 #include "TreeShared.h"
+#include <wtf/Forward.h>
 #include <wtf/ListHashSet.h>
 
 #if USE(JSC)
 namespace JSC {
-
-    class JSGlobalData;
-    class MarkStack;
-
+class JSGlobalData;
+class MarkStack;
 }
 #endif
 
 namespace WebCore {
 
-class AtomicString;
 class Attribute;
 class ClassNodeList;
 class ContainerNode;
diff --git a/WebCore/dom/NodeList.h b/WebCore/dom/NodeList.h
index 99a0662..d4e18aa 100644
--- a/WebCore/dom/NodeList.h
+++ b/WebCore/dom/NodeList.h
@@ -24,11 +24,11 @@
 #ifndef NodeList_h
 #define NodeList_h
 
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
-    class AtomicString;
     class Node;
 
     class NodeList : public RefCounted<NodeList> {
diff --git a/WebCore/dom/OptionGroupElement.h b/WebCore/dom/OptionGroupElement.h
index e4b1566..b98a3f2 100644
--- a/WebCore/dom/OptionGroupElement.h
+++ b/WebCore/dom/OptionGroupElement.h
@@ -21,10 +21,11 @@
 #ifndef OptionGroupElement_h
 #define OptionGroupElement_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
 class Element;
-class String;
 
 class OptionGroupElement {
 public:
diff --git a/WebCore/dom/ScriptExecutionContext.h b/WebCore/dom/ScriptExecutionContext.h
index 2ec98ae..d2da307 100644
--- a/WebCore/dom/ScriptExecutionContext.h
+++ b/WebCore/dom/ScriptExecutionContext.h
@@ -29,6 +29,7 @@
 
 #include "Console.h"
 #include "KURL.h"
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/HashSet.h>
 #include <wtf/PassOwnPtr.h>
@@ -51,7 +52,6 @@ namespace WebCore {
     class MessagePort;
     class SecurityOrigin;
     class ScriptString;
-    class String;
 #if ENABLE(INSPECTOR)
     class InspectorController;
 #endif
diff --git a/WebCore/dom/SelectElement.h b/WebCore/dom/SelectElement.h
index 3831ac4..f00bb67 100644
--- a/WebCore/dom/SelectElement.h
+++ b/WebCore/dom/SelectElement.h
@@ -23,6 +23,7 @@
 #define SelectElement_h
 
 #include "Event.h"
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
@@ -34,7 +35,6 @@ class FormDataList;
 class HTMLFormElement;
 class KeyboardEvent;
 class SelectElementData;
-class String;
 
 class SelectElement {
 public:
diff --git a/WebCore/dom/ViewportArguments.h b/WebCore/dom/ViewportArguments.h
index db90111..1fac0df 100644
--- a/WebCore/dom/ViewportArguments.h
+++ b/WebCore/dom/ViewportArguments.h
@@ -26,10 +26,11 @@
 #ifndef ViewportArguments_h
 #define ViewportArguments_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
 class Document;
-class String;
 
 enum ViewportErrorCode {
     DeviceWidthShouldBeUsedWarning,
diff --git a/WebCore/dom/make_names.pl b/WebCore/dom/make_names.pl
index 9e0784a..ed20f89 100755
--- a/WebCore/dom/make_names.pl
+++ b/WebCore/dom/make_names.pl
@@ -770,13 +770,13 @@ sub printFactoryHeaderFile
 #ifndef $parameters{namespace}ElementFactory_h
 #define $parameters{namespace}ElementFactory_h
 
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
     class Element;
     class Document;
     class QualifiedName;
-    class AtomicString;
 }
 
 namespace WebCore {
diff --git a/WebCore/editing/HTMLInterchange.h b/WebCore/editing/HTMLInterchange.h
index 3b68efb..4029ea2 100644
--- a/WebCore/editing/HTMLInterchange.h
+++ b/WebCore/editing/HTMLInterchange.h
@@ -26,9 +26,10 @@
 #ifndef HTMLInterchange_h
 #define HTMLInterchange_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
-class String;
 class Text;
 
 #define AppleInterchangeNewline   "Apple-interchange-newline"
diff --git a/WebCore/editing/htmlediting.h b/WebCore/editing/htmlediting.h
index e60ada9..8612440 100644
--- a/WebCore/editing/htmlediting.h
+++ b/WebCore/editing/htmlediting.h
@@ -39,7 +39,6 @@ class HTMLElement;
 class Node;
 class Position;
 class Range;
-class String;
 class VisiblePosition;
 class VisibleSelection;
 
diff --git a/WebCore/editing/markup.h b/WebCore/editing/markup.h
index 5428097..dbf8b80 100644
--- a/WebCore/editing/markup.h
+++ b/WebCore/editing/markup.h
@@ -38,7 +38,6 @@ namespace WebCore {
     class KURL;
     class Node;
     class Range;
-    class String;
 
     enum EChildrenOnly { IncludeNode, ChildrenOnly };
     enum EAbsoluteURLs { DoNotResolveURLs, AbsoluteURLs };
diff --git a/WebCore/html/CollectionCache.h b/WebCore/html/CollectionCache.h
index 70a5af7..df1d1fa 100644
--- a/WebCore/html/CollectionCache.h
+++ b/WebCore/html/CollectionCache.h
@@ -21,12 +21,12 @@
 #ifndef CollectionCache_h
 #define CollectionCache_h
 
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
-class AtomicStringImpl;
 class Element;
 
 struct CollectionCache : FastAllocBase {
diff --git a/WebCore/html/DOMFormData.h b/WebCore/html/DOMFormData.h
index f071d4a..6c24858 100644
--- a/WebCore/html/DOMFormData.h
+++ b/WebCore/html/DOMFormData.h
@@ -32,13 +32,13 @@
 #define DOMFormData_h
 
 #include "FormDataList.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
 class Blob;
-class String;
 class TextEncoding;
 
 class DOMFormData : public FormDataList, public RefCounted<DOMFormData> {
diff --git a/WebCore/html/DataGridColumnList.h b/WebCore/html/DataGridColumnList.h
index ed72863..8a7ec75 100644
--- a/WebCore/html/DataGridColumnList.h
+++ b/WebCore/html/DataGridColumnList.h
@@ -5,13 +5,13 @@
 
 #include "DataGridColumn.h"
 
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
-class AtomicString;
 class HTMLDataGridElement;
 
 class DataGridColumnList : public RefCounted<DataGridColumnList> {
diff --git a/WebCore/html/DateComponents.h b/WebCore/html/DateComponents.h
index a15d558..efc3248 100644
--- a/WebCore/html/DateComponents.h
+++ b/WebCore/html/DateComponents.h
@@ -32,12 +32,11 @@
 #define DateComponents_h
 
 #include <limits>
+#include <wtf/Forward.h>
 #include <wtf/unicode/Unicode.h>
 
 namespace WebCore {
 
-class String;
-
 // A DateComponents instance represents one of the following date and time combinations:
 // * Month type: year-month
 // * Date type: year-month-day
diff --git a/WebCore/html/FileStream.h b/WebCore/html/FileStream.h
index a15cd59..b5eccd4 100644
--- a/WebCore/html/FileStream.h
+++ b/WebCore/html/FileStream.h
@@ -35,13 +35,13 @@
 
 #include "FileStreamClient.h"
 #include "FileSystem.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
 class Blob;
-class String;
 
 // All methods are synchronous and should be called on File or Worker thread.
 class FileStream : public RefCounted<FileStream> {
diff --git a/WebCore/html/FileStreamProxy.h b/WebCore/html/FileStreamProxy.h
index 0bdbcee..8523d4a 100644
--- a/WebCore/html/FileStreamProxy.h
+++ b/WebCore/html/FileStreamProxy.h
@@ -35,6 +35,7 @@
 #if ENABLE(BLOB) || ENABLE(FILE_WRITER)
 
 #include "FileStreamClient.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
@@ -45,7 +46,6 @@ class Blob;
 class FileStream;
 class FileThread;
 class ScriptExecutionContext;
-class String;
 
 // A proxy module that calls corresponding FileStream methods on the file thread.  Note: you must call stop() first and then release the reference to destruct the FileStreamProxy instance.
 class FileStreamProxy : public RefCounted<FileStreamProxy>, public FileStreamClient {
diff --git a/WebCore/html/FormDataList.h b/WebCore/html/FormDataList.h
index f4bb905..38b07f9 100644
--- a/WebCore/html/FormDataList.h
+++ b/WebCore/html/FormDataList.h
@@ -23,6 +23,7 @@
 
 #include "Blob.h"
 #include "TextEncoding.h"
+#include <wtf/Forward.h>
 #include <wtf/text/CString.h>
 
 namespace WebCore {
@@ -36,7 +37,7 @@ public:
         appendString(key);
         appendString(value);
     }
-    void appendData(const String& key, const WTF::CString& value)
+    void appendData(const String& key, const CString& value)
     {
         appendString(key);
         appendString(value);
@@ -52,7 +53,7 @@ public:
     const TextEncoding& encoding() const { return m_encoding; }
 
 private:
-    void appendString(const WTF::CString&);
+    void appendString(const CString&);
     void appendString(const String&);
 
     TextEncoding m_encoding;
diff --git a/WebCore/html/HTMLCollection.h b/WebCore/html/HTMLCollection.h
index eea1777..4359724 100644
--- a/WebCore/html/HTMLCollection.h
+++ b/WebCore/html/HTMLCollection.h
@@ -31,12 +31,9 @@
 
 namespace WebCore {
 
-class AtomicString;
-class AtomicStringImpl;
 class Element;
 class Node;
 class NodeList;
-class String;
 
 struct CollectionCache;
 
diff --git a/WebCore/html/HTMLElementStack.h b/WebCore/html/HTMLElementStack.h
index 62d031f..cf668c6 100644
--- a/WebCore/html/HTMLElementStack.h
+++ b/WebCore/html/HTMLElementStack.h
@@ -26,6 +26,7 @@
 #ifndef HTMLElementStack_h
 #define HTMLElementStack_h
 
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
@@ -33,7 +34,6 @@
 
 namespace WebCore {
 
-class AtomicString;
 class Element;
 class QualifiedName;
 
diff --git a/WebCore/html/HTMLFormattingElementList.h b/WebCore/html/HTMLFormattingElementList.h
index 135163c..aca05bb 100644
--- a/WebCore/html/HTMLFormattingElementList.h
+++ b/WebCore/html/HTMLFormattingElementList.h
@@ -32,7 +32,6 @@
 
 namespace WebCore {
 
-class AtomicString;
 class Element;
 
 // This may end up merged into HTMLElementStack.
diff --git a/WebCore/html/HTMLParserQuirks.h b/WebCore/html/HTMLParserQuirks.h
index 176bbfb..50de710 100644
--- a/WebCore/html/HTMLParserQuirks.h
+++ b/WebCore/html/HTMLParserQuirks.h
@@ -26,11 +26,11 @@
 #ifndef HTMLParserQuirks_h
 #define HTMLParserQuirks_h
 
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
-class AtomicString;
 class Node;
 
 class HTMLParserQuirks : public Noncopyable {
diff --git a/WebCore/html/HTMLQuoteElement.h b/WebCore/html/HTMLQuoteElement.h
index df47e73..9261da6 100644
--- a/WebCore/html/HTMLQuoteElement.h
+++ b/WebCore/html/HTMLQuoteElement.h
@@ -24,12 +24,11 @@
 #ifndef HTMLQuoteElement_h
 #define HTMLQuoteElement_h
 
+#include <wtf/Forward.h>
 #include "HTMLElement.h"
 
 namespace WebCore {
 
-class String;
-
 class HTMLQuoteElement : public HTMLElement {
 public:
     static PassRefPtr<HTMLQuoteElement> create(const QualifiedName&, Document*);
diff --git a/WebCore/html/HTMLScriptRunnerHost.h b/WebCore/html/HTMLScriptRunnerHost.h
index a129520..5b40a93 100644
--- a/WebCore/html/HTMLScriptRunnerHost.h
+++ b/WebCore/html/HTMLScriptRunnerHost.h
@@ -26,9 +26,10 @@
 #ifndef HTMLScriptRunnerHost_h
 #define HTMLScriptRunnerHost_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
-class AtomicString;
 class CachedResource;
 class Element;
 class HTMLInputStream;
diff --git a/WebCore/html/StepRange.h b/WebCore/html/StepRange.h
index 2f5013a..ce044ea 100644
--- a/WebCore/html/StepRange.h
+++ b/WebCore/html/StepRange.h
@@ -21,12 +21,12 @@
 #ifndef StepRange_h
 #define StepRange_h
 
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
 class HTMLInputElement;
-class String;
 
 class StepRange : public Noncopyable {
 public:
diff --git a/WebCore/html/canvas/CanvasGradient.h b/WebCore/html/canvas/CanvasGradient.h
index 0a77652..7550f9b 100644
--- a/WebCore/html/canvas/CanvasGradient.h
+++ b/WebCore/html/canvas/CanvasGradient.h
@@ -28,13 +28,12 @@
 #define CanvasGradient_h
 
 #include "Gradient.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
-    class String;
-
     typedef int ExceptionCode;
 
     class CanvasGradient : public RefCounted<CanvasGradient> {
diff --git a/WebCore/html/canvas/CanvasNumberArray.h b/WebCore/html/canvas/CanvasNumberArray.h
index eb79866..09714a0 100644
--- a/WebCore/html/canvas/CanvasNumberArray.h
+++ b/WebCore/html/canvas/CanvasNumberArray.h
@@ -26,6 +26,7 @@
 #ifndef CanvasNumberArray_h
 #define CanvasNumberArray_h
 
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
@@ -33,8 +34,6 @@
 
 namespace WebCore {
 
-    class String;
-    
     class CanvasNumberArray : public RefCounted<CanvasNumberArray> {
     public:
         static PassRefPtr<CanvasNumberArray> create(unsigned length);
diff --git a/WebCore/html/canvas/CanvasPattern.h b/WebCore/html/canvas/CanvasPattern.h
index 6c012d1..91e0794 100644
--- a/WebCore/html/canvas/CanvasPattern.h
+++ b/WebCore/html/canvas/CanvasPattern.h
@@ -27,13 +27,13 @@
 #define CanvasPattern_h
 
 #include "Pattern.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
     class Image;
-    class String;
 
     typedef int ExceptionCode;
 
diff --git a/WebCore/inspector/InjectedScript.h b/WebCore/inspector/InjectedScript.h
index d07f5ac..b2d88f4 100644
--- a/WebCore/inspector/InjectedScript.h
+++ b/WebCore/inspector/InjectedScript.h
@@ -33,13 +33,13 @@
 
 #include "InjectedScriptHost.h"
 #include "ScriptObject.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
 
 class InspectorValue;
-class String;
 
 class InjectedScript {
 public:
diff --git a/WebCore/inspector/InspectorCSSStore.h b/WebCore/inspector/InspectorCSSStore.h
index 5691201..2a05d71 100644
--- a/WebCore/inspector/InspectorCSSStore.h
+++ b/WebCore/inspector/InspectorCSSStore.h
@@ -30,7 +30,7 @@
 #define InspectorCSSStore_h
 
 #include "StringHash.h"
-
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/RefPtr.h>
 
@@ -44,7 +44,6 @@ class CSSStyleDeclaration;
 class CSSRuleList;
 class CSSStyleRule;
 class CSSStyleSheet;
-class String;
 class StyleBase;
 
 typedef std::pair<String, String> PropertyValueAndPriority;
diff --git a/WebCore/inspector/InspectorClient.h b/WebCore/inspector/InspectorClient.h
index 61900bb..acd8b28 100644
--- a/WebCore/inspector/InspectorClient.h
+++ b/WebCore/inspector/InspectorClient.h
@@ -27,13 +27,13 @@
 #define InspectorClient_h
 
 #include "InspectorController.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
 class InspectorController;
 class Node;
 class Page;
-class String;
 
 class InspectorClient {
 public:
diff --git a/WebCore/inspector/InspectorFrontendClient.h b/WebCore/inspector/InspectorFrontendClient.h
index c20eb10..cbbbc53 100644
--- a/WebCore/inspector/InspectorFrontendClient.h
+++ b/WebCore/inspector/InspectorFrontendClient.h
@@ -31,13 +31,13 @@
 #ifndef InspectorFrontendClient_h
 #define InspectorFrontendClient_h
 
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
 class ContextMenuItem;
 class Event;
-class String;
 
 class InspectorFrontendClient {
 public:
diff --git a/WebCore/inspector/InspectorValues.h b/WebCore/inspector/InspectorValues.h
index 642f093..f6556d7 100644
--- a/WebCore/inspector/InspectorValues.h
+++ b/WebCore/inspector/InspectorValues.h
@@ -36,6 +36,7 @@
 #include "PlatformString.h"
 #include "StringHash.h"
 
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
@@ -44,7 +45,6 @@ namespace WebCore {
 
 class InspectorArray;
 class InspectorObject;
-class String;
 
 class InspectorValue : public RefCounted<InspectorValue> {
 public:
diff --git a/WebCore/inspector/ScriptDebugListener.h b/WebCore/inspector/ScriptDebugListener.h
index 539b000..5973402 100644
--- a/WebCore/inspector/ScriptDebugListener.h
+++ b/WebCore/inspector/ScriptDebugListener.h
@@ -33,11 +33,10 @@
 #if ENABLE(JAVASCRIPT_DEBUGGER)
 
 #include "ScriptState.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
-class String;
-
 enum ScriptWorldType {
 MAIN_WORLD = 0,
 EXTENSIONS_WORLD
diff --git a/WebCore/loader/CachedResourceClient.h b/WebCore/loader/CachedResourceClient.h
index be3f87e..40a6a06 100644
--- a/WebCore/loader/CachedResourceClient.h
+++ b/WebCore/loader/CachedResourceClient.h
@@ -26,6 +26,7 @@
 #define CachedResourceClient_h
 
 #include <wtf/FastAllocBase.h>
+#include <wtf/Forward.h>
 
 #if ENABLE(XBL)
 namespace XBL {
@@ -39,7 +40,6 @@ namespace WebCore {
     class CachedFont;
     class CachedResource;
     class CachedImage;
-    class String;
     class Image;
     class IntRect;
     class KURL;
diff --git a/WebCore/loader/CrossOriginAccessControl.h b/WebCore/loader/CrossOriginAccessControl.h
index 4a904d6..c44963b 100644
--- a/WebCore/loader/CrossOriginAccessControl.h
+++ b/WebCore/loader/CrossOriginAccessControl.h
@@ -24,12 +24,13 @@
  *
  */
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
     class HTTPHeaderMap;
     class ResourceResponse;
     class SecurityOrigin;
-    class String;
 
     bool isSimpleCrossOriginAccessRequest(const String& method, const HTTPHeaderMap&);
     bool isOnAccessControlSimpleRequestMethodWhitelist(const String&);
diff --git a/WebCore/loader/DocumentThreadableLoader.h b/WebCore/loader/DocumentThreadableLoader.h
index 9800b9a..ebf3a25 100644
--- a/WebCore/loader/DocumentThreadableLoader.h
+++ b/WebCore/loader/DocumentThreadableLoader.h
@@ -34,6 +34,7 @@
 #include "FrameLoaderTypes.h"
 #include "SubresourceLoaderClient.h"
 #include "ThreadableLoader.h"
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -43,7 +44,6 @@ namespace WebCore {
     class Document;
     class KURL;
     class ResourceRequest;
-    class String;
     class ThreadableLoaderClient;
 
     class DocumentThreadableLoader : public RefCounted<DocumentThreadableLoader>, public ThreadableLoader, private SubresourceLoaderClient  {
diff --git a/WebCore/loader/FrameLoaderClient.h b/WebCore/loader/FrameLoaderClient.h
index 7ef1dbc..35eee32 100644
--- a/WebCore/loader/FrameLoaderClient.h
+++ b/WebCore/loader/FrameLoaderClient.h
@@ -75,7 +75,6 @@ namespace WebCore {
     class SecurityOrigin;
     class SharedBuffer;
     class SubstituteData;
-    class String;
     class Widget;
 
     typedef void (PolicyChecker::*FramePolicyFunction)(PolicyAction);
diff --git a/WebCore/loader/RedirectScheduler.h b/WebCore/loader/RedirectScheduler.h
index e9d04dc..0203e08 100644
--- a/WebCore/loader/RedirectScheduler.h
+++ b/WebCore/loader/RedirectScheduler.h
@@ -33,6 +33,7 @@
 
 #include "Event.h"
 #include "Timer.h"
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
@@ -42,7 +43,6 @@ namespace WebCore {
 class FormState;
 class FormSubmission;
 class Frame;
-class String;
 
 struct FrameLoadRequest;
 class ScheduledNavigation;
diff --git a/WebCore/loader/SubframeLoader.h b/WebCore/loader/SubframeLoader.h
index 4bdb787..df08870 100644
--- a/WebCore/loader/SubframeLoader.h
+++ b/WebCore/loader/SubframeLoader.h
@@ -40,7 +40,6 @@
 
 namespace WebCore {
 
-class AtomicString;
 class Frame;
 class FrameLoaderClient;
 class HTMLAppletElement;
diff --git a/WebCore/loader/appcache/DOMApplicationCache.h b/WebCore/loader/appcache/DOMApplicationCache.h
index b398756..de0614a 100644
--- a/WebCore/loader/appcache/DOMApplicationCache.h
+++ b/WebCore/loader/appcache/DOMApplicationCache.h
@@ -33,6 +33,7 @@
 #include "EventListener.h"
 #include "EventNames.h"
 #include "EventTarget.h"
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -40,10 +41,8 @@
 
 namespace WebCore {
 
-class AtomicStringImpl;
 class Frame;
 class KURL;
-class String;
 
 class DOMApplicationCache : public RefCounted<DOMApplicationCache>, public EventTarget {
 public:
diff --git a/WebCore/loader/archive/ArchiveFactory.h b/WebCore/loader/archive/ArchiveFactory.h
index bf1d5c6..c3b9464 100644
--- a/WebCore/loader/archive/ArchiveFactory.h
+++ b/WebCore/loader/archive/ArchiveFactory.h
@@ -31,12 +31,12 @@
 
 #include "Archive.h"
 
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
 
 class SharedBuffer;
-class String;
 
 class ArchiveFactory {
 public:
diff --git a/WebCore/loader/icon/IconDatabaseClient.h b/WebCore/loader/icon/IconDatabaseClient.h
index 1811214..c210d7d 100644
--- a/WebCore/loader/icon/IconDatabaseClient.h
+++ b/WebCore/loader/icon/IconDatabaseClient.h
@@ -29,6 +29,7 @@
 #ifndef IconDatabaseClient_h
 #define IconDatabaseClient_h
 
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 // All of these client methods will be called from a non-main thread
@@ -36,8 +37,6 @@
  
 namespace WebCore {
 
-class String;
-
 class IconDatabaseClient : public Noncopyable {
 public:
     virtual ~IconDatabaseClient() { }
diff --git a/WebCore/notifications/NotificationPresenter.h b/WebCore/notifications/NotificationPresenter.h
index e3e7ee2..9602199 100644
--- a/WebCore/notifications/NotificationPresenter.h
+++ b/WebCore/notifications/NotificationPresenter.h
@@ -42,7 +42,6 @@ namespace WebCore {
     class Notification;
     class KURL;
     class ScriptExecutionContext;
-    class String;
 
     class NotificationPresenter {
 
diff --git a/WebCore/page/Chrome.h b/WebCore/page/Chrome.h
index 30edf28..5ee8897 100644
--- a/WebCore/page/Chrome.h
+++ b/WebCore/page/Chrome.h
@@ -48,7 +48,6 @@ namespace WebCore {
     class Node;
     class Page;
     class PopupMenuClient;
-    class String;
 #if ENABLE(NOTIFICATIONS)
     class NotificationPresenter;
 #endif
diff --git a/WebCore/page/ChromeClient.h b/WebCore/page/ChromeClient.h
index 28e0b4f..d0bdd1e 100644
--- a/WebCore/page/ChromeClient.h
+++ b/WebCore/page/ChromeClient.h
@@ -46,7 +46,6 @@ class NSResponder;
 
 namespace WebCore {
 
-    class AtomicString;
     class Element;
     class FileChooser;
     class FloatRect;
@@ -59,7 +58,6 @@ namespace WebCore {
     class Page;
     class SecurityOrigin;
     class PopupMenuClient;
-    class String;
     class Widget;
 
     struct FrameLoadRequest;
diff --git a/WebCore/page/Console.h b/WebCore/page/Console.h
index d057ff9..ab62525 100644
--- a/WebCore/page/Console.h
+++ b/WebCore/page/Console.h
@@ -33,6 +33,7 @@
 #include "PlatformString.h"
 #include "ScriptProfile.h"
 
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -44,7 +45,6 @@ typedef Vector<RefPtr<ScriptProfile> > ProfilesArray;
 
 class Frame;
 class Page;
-class String;
 class ScriptCallStack;
 
 // Keep in sync with inspector/front-end/Console.js
diff --git a/WebCore/page/ContextMenuClient.h b/WebCore/page/ContextMenuClient.h
index 1997cd0..f91536b 100644
--- a/WebCore/page/ContextMenuClient.h
+++ b/WebCore/page/ContextMenuClient.h
@@ -27,6 +27,7 @@
 #define ContextMenuClient_h
 
 #include "PlatformMenuDescription.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
     class ContextMenu;
@@ -34,7 +35,6 @@ namespace WebCore {
     class Frame;
     class HitTestResult;
     class KURL;
-    class String;
 
     class ContextMenuClient {
     public:
diff --git a/WebCore/page/DOMSelection.h b/WebCore/page/DOMSelection.h
index 0287e44..b0421c7 100644
--- a/WebCore/page/DOMSelection.h
+++ b/WebCore/page/DOMSelection.h
@@ -39,7 +39,6 @@ namespace WebCore {
     class Frame;
     class Range;
     class Node;
-    class String;
     class VisibleSelection;
 
     typedef int ExceptionCode;
diff --git a/WebCore/page/EditorClient.h b/WebCore/page/EditorClient.h
index ff5bf94..93e27ff 100644
--- a/WebCore/page/EditorClient.h
+++ b/WebCore/page/EditorClient.h
@@ -58,7 +58,6 @@ class KeyboardEvent;
 class Node;
 class Range;
 class VisibleSelection;
-class String;
 class VisiblePosition;
 
 struct GrammarDetail {
diff --git a/WebCore/page/EventHandler.h b/WebCore/page/EventHandler.h
index 242601b..ca19a0c 100644
--- a/WebCore/page/EventHandler.h
+++ b/WebCore/page/EventHandler.h
@@ -45,7 +45,6 @@ class NSView;
 
 namespace WebCore {
 
-class AtomicString;
 class Clipboard;
 class Cursor;
 class Event;
@@ -66,7 +65,6 @@ class RenderLayer;
 class RenderObject;
 class RenderWidget;
 class Scrollbar;
-class String;
 class SVGElementInstance;
 class TextEvent;
 class TouchEvent;
diff --git a/WebCore/page/FrameView.h b/WebCore/page/FrameView.h
index 9765c6f..cc32404 100644
--- a/WebCore/page/FrameView.h
+++ b/WebCore/page/FrameView.h
@@ -47,7 +47,6 @@ class RenderObject;
 class RenderEmbeddedObject;
 class RenderScrollbarPart;
 struct ScheduledEvent;
-class String;
 
 template <typename T> class Timer;
 
diff --git a/WebCore/page/GeolocationPositionCache.h b/WebCore/page/GeolocationPositionCache.h
index c7f7e49..dd57180 100644
--- a/WebCore/page/GeolocationPositionCache.h
+++ b/WebCore/page/GeolocationPositionCache.h
@@ -26,6 +26,7 @@
 #ifndef GeolocationPositionCache_h
 #define GeolocationPositionCache_h
 
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
 
@@ -33,7 +34,6 @@
 namespace WebCore {
 
 class Geoposition;
-class String;
 
 class GeolocationPositionCache {
   public:
diff --git a/WebCore/page/History.h b/WebCore/page/History.h
index 66a6a03..e885847 100644
--- a/WebCore/page/History.h
+++ b/WebCore/page/History.h
@@ -27,6 +27,7 @@
 #define History_h
 
 #include "KURL.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -34,7 +35,6 @@ namespace WebCore {
 
 class Frame;
 class SerializedScriptValue;
-class String;
 typedef int ExceptionCode;
 
 class History : public RefCounted<History> {
diff --git a/WebCore/page/Location.h b/WebCore/page/Location.h
index 065bde1..808eff9 100644
--- a/WebCore/page/Location.h
+++ b/WebCore/page/Location.h
@@ -29,6 +29,7 @@
 #ifndef Location_h
 #define Location_h
 
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -36,7 +37,6 @@ namespace WebCore {
 
     class Frame;
     class KURL;
-    class String;
 
     class Location : public RefCounted<Location> {
     public:
diff --git a/WebCore/page/Navigator.h b/WebCore/page/Navigator.h
index 3a07126..d44a0d8 100644
--- a/WebCore/page/Navigator.h
+++ b/WebCore/page/Navigator.h
@@ -21,6 +21,7 @@
 #define Navigator_h
 
 #include "NavigatorBase.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
@@ -32,7 +33,6 @@ class DOMPluginArray;
 class Frame;
 class Geolocation;
 class PluginData;
-class String;
 
 class Navigator : public NavigatorBase, public RefCounted<Navigator> {
 public:
diff --git a/WebCore/page/NavigatorBase.h b/WebCore/page/NavigatorBase.h
index 4c09f47..8f576e3 100644
--- a/WebCore/page/NavigatorBase.h
+++ b/WebCore/page/NavigatorBase.h
@@ -26,9 +26,9 @@
 #ifndef NavigatorBase_h
 #define NavigatorBase_h
 
-namespace WebCore {
+#include <wtf/Forward.h>
 
-    class String;
+namespace WebCore {
 
     class NavigatorBase {
     public:
diff --git a/WebCore/page/PluginHalterClient.h b/WebCore/page/PluginHalterClient.h
index 0251547..12d37cc 100644
--- a/WebCore/page/PluginHalterClient.h
+++ b/WebCore/page/PluginHalterClient.h
@@ -26,10 +26,11 @@
 #ifndef PluginHalterClient_h
 #define PluginHalterClient_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
 class Node;
-class String;
 
 class PluginHalterClient {
 public:
diff --git a/WebCore/page/PrintContext.h b/WebCore/page/PrintContext.h
index ed1cfa4..ceda892 100644
--- a/WebCore/page/PrintContext.h
+++ b/WebCore/page/PrintContext.h
@@ -21,6 +21,7 @@
 #ifndef PrintContext_h
 #define PrintContext_h
 
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
@@ -31,7 +32,6 @@ class FloatRect;
 class FloatSize;
 class GraphicsContext;
 class IntRect;
-class String;
 
 class PrintContext {
 public:
diff --git a/WebCore/page/SpeechInput.h b/WebCore/page/SpeechInput.h
index 2ce0eea..58f4efe 100644
--- a/WebCore/page/SpeechInput.h
+++ b/WebCore/page/SpeechInput.h
@@ -34,13 +34,13 @@
 #if ENABLE(INPUT_SPEECH)
 
 #include "SpeechInputListener.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
 class SpeechInputClient;
 class SpeechInputListener;
-class String;
 
 // This class connects the input elements requiring speech input with the platform specific
 // speech recognition engine. It provides methods for the input elements to activate speech
diff --git a/WebCore/page/SpeechInputListener.h b/WebCore/page/SpeechInputListener.h
index 1b21a11..143984d 100644
--- a/WebCore/page/SpeechInputListener.h
+++ b/WebCore/page/SpeechInputListener.h
@@ -33,9 +33,9 @@
 
 #if ENABLE(INPUT_SPEECH)
 
-namespace WebCore {
+#include <wtf/Forward.h>
 
-class String;
+namespace WebCore {
 
 // Interface to be implemented by the element which invokes SpeechInput.
 class SpeechInputListener {
diff --git a/WebCore/page/animation/AnimationController.h b/WebCore/page/animation/AnimationController.h
index d184b45..4528dae 100644
--- a/WebCore/page/animation/AnimationController.h
+++ b/WebCore/page/animation/AnimationController.h
@@ -36,14 +36,12 @@ namespace WebCore {
 
 class AnimationBase;
 class AnimationControllerPrivate;
-class AtomicString;
 class Document;
 class Element;
 class Frame;
 class Node;
 class RenderObject;
 class RenderStyle;
-class String;
 
 class AnimationController {
 public:
diff --git a/WebCore/platform/CookieJar.h b/WebCore/platform/CookieJar.h
index fb1abee..4793708 100644
--- a/WebCore/platform/CookieJar.h
+++ b/WebCore/platform/CookieJar.h
@@ -26,13 +26,13 @@
 #ifndef CookieJar_h
 #define CookieJar_h
 
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
     class Document;
     class KURL;
-    class String;
 
     struct Cookie;
 
diff --git a/WebCore/platform/CrossThreadCopier.h b/WebCore/platform/CrossThreadCopier.h
index 80805c4..6f7bb25 100644
--- a/WebCore/platform/CrossThreadCopier.h
+++ b/WebCore/platform/CrossThreadCopier.h
@@ -31,6 +31,7 @@
 #ifndef CrossThreadCopier_h
 #define CrossThreadCopier_h
 
+#include <wtf/Forward.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
@@ -43,7 +44,6 @@ namespace WebCore {
     class ResourceError;
     class ResourceRequest;
     class ResourceResponse;
-    class String;
     struct CrossThreadResourceResponseData;
     struct CrossThreadResourceRequestData;
     struct ThreadableLoaderOptions;
diff --git a/WebCore/platform/DragImage.h b/WebCore/platform/DragImage.h
index aafc09a..483e2d0 100644
--- a/WebCore/platform/DragImage.h
+++ b/WebCore/platform/DragImage.h
@@ -28,6 +28,7 @@
 
 #include "IntSize.h"
 #include "FloatSize.h"
+#include <wtf/Forward.h>
 
 #if PLATFORM(MAC)
 #include <wtf/RetainPtr.h>
@@ -64,8 +65,7 @@ namespace WebCore {
     class Image;
     class KURL;
     class Range;
-    class String;
-    
+
 #if PLATFORM(MAC)
     typedef RetainPtr<NSImage> DragImageRef;
 #elif PLATFORM(QT)
diff --git a/WebCore/platform/FileSystem.h b/WebCore/platform/FileSystem.h
index 42aaaef..617470b 100644
--- a/WebCore/platform/FileSystem.h
+++ b/WebCore/platform/FileSystem.h
@@ -47,6 +47,7 @@
 
 #include "PlatformString.h"
 #include <time.h>
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 
 typedef const struct __CFData* CFDataRef;
@@ -63,11 +64,6 @@ typedef HINSTANCE HMODULE;
 typedef struct _IFile IFile;
 #endif
 
-namespace WTF {
-class CString;
-}
-using WTF::CString;
-
 namespace WebCore {
 
 // PlatformModule
@@ -155,12 +151,12 @@ String directoryName(const String&);
 
 Vector<String> listDirectory(const String& path, const String& filter = String());
 
-WTF::CString fileSystemRepresentation(const String&);
+CString fileSystemRepresentation(const String&);
 
 inline bool isHandleValid(const PlatformFileHandle& handle) { return handle != invalidPlatformFileHandle; }
 
 // Prefix is what the filename should be prefixed with, not the full path.
-WTF::CString openTemporaryFile(const char* prefix, PlatformFileHandle&);
+CString openTemporaryFile(const char* prefix, PlatformFileHandle&);
 PlatformFileHandle openFile(const String& path, FileOpenMode);
 void closeFile(PlatformFileHandle&);
 // Returns the resulting offset from the beginning of the file if successful, -1 otherwise.
diff --git a/WebCore/platform/Language.h b/WebCore/platform/Language.h
index 1d59c21..4c92755 100644
--- a/WebCore/platform/Language.h
+++ b/WebCore/platform/Language.h
@@ -26,9 +26,9 @@
 #ifndef Language_h
 #define Language_h
 
-namespace WebCore {
+#include <wtf/Forward.h>
 
-    class String;
+namespace WebCore {
 
     String defaultLanguage();
 
diff --git a/WebCore/platform/Length.h b/WebCore/platform/Length.h
index 4f36577..a3b1eda 100644
--- a/WebCore/platform/Length.h
+++ b/WebCore/platform/Length.h
@@ -23,12 +23,11 @@
 
 #include <wtf/Assertions.h>
 #include <wtf/FastAllocBase.h>
+#include <wtf/Forward.h>
 #include <wtf/MathExtras.h>
 
 namespace WebCore {
 
-class String;
-
 const int undefinedLength = -1;
 const int percentScaleFactor = 128;
 
diff --git a/WebCore/platform/LinkHash.h b/WebCore/platform/LinkHash.h
index 2756654..a499a8e 100644
--- a/WebCore/platform/LinkHash.h
+++ b/WebCore/platform/LinkHash.h
@@ -27,10 +27,10 @@
 #define LinkHash_h
 
 #include "StringHash.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
-class AtomicString;
 class KURL;
 
 typedef uint64_t LinkHash;
diff --git a/WebCore/platform/LocalizationStrategy.h b/WebCore/platform/LocalizationStrategy.h
index 741fbbd..178cfa2 100644
--- a/WebCore/platform/LocalizationStrategy.h
+++ b/WebCore/platform/LocalizationStrategy.h
@@ -28,9 +28,10 @@
 
 #if USE(PLATFORM_STRATEGIES)
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
-class String;
 class IntSize;
 
 class LocalizationStrategy {
diff --git a/WebCore/platform/LocalizedStrings.h b/WebCore/platform/LocalizedStrings.h
index ddc4869..04042b6 100644
--- a/WebCore/platform/LocalizedStrings.h
+++ b/WebCore/platform/LocalizedStrings.h
@@ -26,9 +26,10 @@
 #ifndef LocalizedStrings_h
 #define LocalizedStrings_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
-    class String;
     class IntSize;
     
     String inputElementAltText();
diff --git a/WebCore/platform/Logging.h b/WebCore/platform/Logging.h
index 45b6d23..df3c6fd 100644
--- a/WebCore/platform/Logging.h
+++ b/WebCore/platform/Logging.h
@@ -27,6 +27,7 @@
 #define Logging_h
 
 #include <wtf/Assertions.h>
+#include <wtf/Forward.h>
 
 #ifndef LOG_CHANNEL_PREFIX
 #define LOG_CHANNEL_PREFIX Log
@@ -34,8 +35,6 @@
 
 namespace WebCore {
 
-    class String;
-
     extern WTFLogChannel LogNotYetImplemented;
     extern WTFLogChannel LogFrames;
     extern WTFLogChannel LogLoading;
diff --git a/WebCore/platform/Pasteboard.h b/WebCore/platform/Pasteboard.h
index 7ee8e81..7773624 100644
--- a/WebCore/platform/Pasteboard.h
+++ b/WebCore/platform/Pasteboard.h
@@ -63,11 +63,6 @@ typedef struct HWND__* HWND;
 #include "PasteboardPrivate.h"
 #endif
 
-namespace WTF {
-class CString;
-}
-using WTF::CString;
-
 namespace WebCore {
 
 #if PLATFORM(MAC)
@@ -84,7 +79,6 @@ class HitTestResult;
 class KURL;
 class Node;
 class Range;
-class String;
     
 class Pasteboard : public Noncopyable {
 public:
diff --git a/WebCore/platform/PopupMenuClient.h b/WebCore/platform/PopupMenuClient.h
index 976f28c..2b41380 100644
--- a/WebCore/platform/PopupMenuClient.h
+++ b/WebCore/platform/PopupMenuClient.h
@@ -24,6 +24,7 @@
 
 #include "PopupMenuStyle.h"
 #include "ScrollTypes.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
@@ -32,7 +33,6 @@ class FontSelector;
 class HostWindow;
 class Scrollbar;
 class ScrollbarClient;
-class String;
 
 class PopupMenuClient {
 public:
diff --git a/WebCore/platform/SearchPopupMenu.h b/WebCore/platform/SearchPopupMenu.h
index d1ecd0f..f199fab 100644
--- a/WebCore/platform/SearchPopupMenu.h
+++ b/WebCore/platform/SearchPopupMenu.h
@@ -22,13 +22,12 @@
 #define SearchPopupMenu_h
 
 #include "PopupMenu.h"
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 #include <wtf/text/WTFString.h>
 
 namespace WebCore {
 
-class AtomicString;
-
 class SearchPopupMenu : public RefCounted<SearchPopupMenu> {
 public:
     virtual ~SearchPopupMenu() {}
diff --git a/WebCore/platform/Widget.h b/WebCore/platform/Widget.h
index e118ccb..0eb0c69 100644
--- a/WebCore/platform/Widget.h
+++ b/WebCore/platform/Widget.h
@@ -94,6 +94,7 @@ typedef PlatformWidget PlatformPageClient;
 #include "IntRect.h"
 #include "IntSize.h"
 
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
@@ -105,9 +106,6 @@ class GraphicsContext;
 class PlatformMouseEvent;
 class ScrollView;
 class WidgetPrivate;
-#if PLATFORM(EFL)
-class String;
-#endif
 
 // The Widget class serves as a base class for three kinds of objects:
 // (1) Scrollable areas (ScrollView)
diff --git a/WebCore/platform/cf/BinaryPropertyList.h b/WebCore/platform/cf/BinaryPropertyList.h
index a930b43..8cbb2e1 100644
--- a/WebCore/platform/cf/BinaryPropertyList.h
+++ b/WebCore/platform/cf/BinaryPropertyList.h
@@ -28,12 +28,11 @@
 
 #include <CoreFoundation/CoreFoundation.h>
 
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
-class String;
-
 // Writes a limited subset of binary property lists.
 // Covers only what's needed for writing browser history as of this writing.
 class BinaryPropertyListObjectStream {
diff --git a/WebCore/platform/chromium/ChromiumBridge.h b/WebCore/platform/chromium/ChromiumBridge.h
index acfefe1..4bbd14c 100644
--- a/WebCore/platform/chromium/ChromiumBridge.h
+++ b/WebCore/platform/chromium/ChromiumBridge.h
@@ -38,6 +38,7 @@
 #include "PasteboardPrivate.h"
 #include "PluginData.h"
 
+#include <wtf/Forward.h>
 #include <wtf/HashSet.h>
 #include <wtf/Vector.h>
 
@@ -73,7 +74,6 @@ namespace WebCore {
     class IDBFactoryBackendInterface;
     class IntRect;
     class KURL;
-    class String;
     class Widget;
 
     struct Cookie;
diff --git a/WebCore/platform/chromium/ClipboardUtilitiesChromium.h b/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
index 7514280..9fdad42 100644
--- a/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
+++ b/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
@@ -28,10 +28,11 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
 class KURL;
-class String;
 
 #if OS(WINDOWS)
 void replaceNewlinesWithWindowsStyleNewlines(String&);
diff --git a/WebCore/platform/cocoa/KeyEventCocoa.h b/WebCore/platform/cocoa/KeyEventCocoa.h
index 8d486ad..d6e206e 100644
--- a/WebCore/platform/cocoa/KeyEventCocoa.h
+++ b/WebCore/platform/cocoa/KeyEventCocoa.h
@@ -26,9 +26,9 @@
 #ifndef KeyEventCocoa_h
 #define KeyEventCocoa_h
 
-namespace WebCore {
+#include <wtf/Forward.h>
 
-class String;
+namespace WebCore {
 
 String keyIdentifierForCharCode(unichar charCode);
 
diff --git a/WebCore/platform/graphics/Color.h b/WebCore/platform/graphics/Color.h
index d41e361..b4efcb5 100644
--- a/WebCore/platform/graphics/Color.h
+++ b/WebCore/platform/graphics/Color.h
@@ -27,6 +27,7 @@
 #define Color_h
 
 #include <wtf/FastAllocBase.h>
+#include <wtf/Forward.h>
 #include <wtf/unicode/Unicode.h>
 
 #if PLATFORM(CG)
@@ -55,7 +56,6 @@ struct rgb_color;
 namespace WebCore {
 
 class Color;
-class String;
 
 typedef unsigned RGBA32;        // RGBA quadruplet
 
diff --git a/WebCore/platform/graphics/FontCache.h b/WebCore/platform/graphics/FontCache.h
index 1a3ba69..e6845d9 100644
--- a/WebCore/platform/graphics/FontCache.h
+++ b/WebCore/platform/graphics/FontCache.h
@@ -31,6 +31,7 @@
 #define FontCache_h
 
 #include <limits.h>
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 #include <wtf/unicode/Unicode.h>
 
@@ -42,7 +43,6 @@
 namespace WebCore
 {
 
-class AtomicString;
 class Font;
 class FontPlatformData;
 class FontData;
diff --git a/WebCore/platform/graphics/FontData.h b/WebCore/platform/graphics/FontData.h
index 76927f5..ee94a98 100644
--- a/WebCore/platform/graphics/FontData.h
+++ b/WebCore/platform/graphics/FontData.h
@@ -26,13 +26,13 @@
 #ifndef FontData_h
 #define FontData_h
 
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/unicode/Unicode.h>
 
 namespace WebCore {
 
 class SimpleFontData;
-class String;
 
 class FontData : public Noncopyable {
 public:
diff --git a/WebCore/platform/graphics/FontSelector.h b/WebCore/platform/graphics/FontSelector.h
index 9b520b9..156bf10 100644
--- a/WebCore/platform/graphics/FontSelector.h
+++ b/WebCore/platform/graphics/FontSelector.h
@@ -26,11 +26,11 @@
 #ifndef FontSelector_h
 #define FontSelector_h
 
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
-class AtomicString;
 class FontData;
 class FontDescription;
 
diff --git a/WebCore/platform/graphics/GraphicsTypes.h b/WebCore/platform/graphics/GraphicsTypes.h
index 769207a..1e73f25 100644
--- a/WebCore/platform/graphics/GraphicsTypes.h
+++ b/WebCore/platform/graphics/GraphicsTypes.h
@@ -26,9 +26,9 @@
 #ifndef GraphicsTypes_h
 #define GraphicsTypes_h
 
-namespace WebCore {
+#include <wtf/Forward.h>
 
-    class String;
+namespace WebCore {
 
     // Note: These constants exactly match the NSCompositeOperator constants of
     // AppKit on Mac OS X Tiger. If these ever change, we'll need to change the
diff --git a/WebCore/platform/graphics/Icon.h b/WebCore/platform/graphics/Icon.h
index 3390679..c83685f 100644
--- a/WebCore/platform/graphics/Icon.h
+++ b/WebCore/platform/graphics/Icon.h
@@ -49,7 +49,6 @@ namespace WebCore {
 
 class GraphicsContext;
 class IntRect;
-class String;
     
 class Icon : public RefCounted<Icon> {
 public:
diff --git a/WebCore/platform/graphics/ImageBuffer.h b/WebCore/platform/graphics/ImageBuffer.h
index cb5d63f..a54c721 100644
--- a/WebCore/platform/graphics/ImageBuffer.h
+++ b/WebCore/platform/graphics/ImageBuffer.h
@@ -32,6 +32,7 @@
 #include "Image.h"
 #include "IntSize.h"
 #include "ImageBufferData.h"
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
@@ -42,7 +43,6 @@ namespace WebCore {
     class ImageData;
     class IntPoint;
     class IntRect;
-    class String;
     
     enum ImageColorSpace {
         Unknown,
diff --git a/WebCore/platform/graphics/ImageSource.h b/WebCore/platform/graphics/ImageSource.h
index 5f0cc26..b7efb99 100644
--- a/WebCore/platform/graphics/ImageSource.h
+++ b/WebCore/platform/graphics/ImageSource.h
@@ -27,6 +27,7 @@
 #ifndef ImageSource_h
 #define ImageSource_h
 
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/Vector.h>
 
@@ -60,7 +61,6 @@ namespace WebCore {
 class IntPoint;
 class IntSize;
 class SharedBuffer;
-class String;
 
 #if PLATFORM(CG)
 typedef CGImageSourceRef NativeImageSourcePtr;
diff --git a/WebCore/platform/graphics/MediaPlayer.h b/WebCore/platform/graphics/MediaPlayer.h
index 6945872..d6beacf 100644
--- a/WebCore/platform/graphics/MediaPlayer.h
+++ b/WebCore/platform/graphics/MediaPlayer.h
@@ -35,6 +35,7 @@
 #include "Document.h"
 #include "IntRect.h"
 #include "StringHash.h"
+#include <wtf/Forward.h>
 #include <wtf/HashSet.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/Noncopyable.h>
@@ -88,7 +89,6 @@ class GraphicsContext;
 class IntRect;
 class IntSize;
 class MediaPlayer;
-class String;
 class TimeRanges;
 
 class MediaPlayerClient {
diff --git a/WebCore/platform/graphics/MediaPlayerPrivate.h b/WebCore/platform/graphics/MediaPlayerPrivate.h
index 40aeacb..cb2196d 100644
--- a/WebCore/platform/graphics/MediaPlayerPrivate.h
+++ b/WebCore/platform/graphics/MediaPlayerPrivate.h
@@ -29,12 +29,12 @@
 #if ENABLE(VIDEO)
 
 #include "MediaPlayer.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
 class IntRect;
 class IntSize;
-class String;
 
 class MediaPlayerPrivateInterface : public Noncopyable {
 public:
diff --git a/WebCore/platform/graphics/Path.h b/WebCore/platform/graphics/Path.h
index 86b77f8..43ba889 100644
--- a/WebCore/platform/graphics/Path.h
+++ b/WebCore/platform/graphics/Path.h
@@ -30,6 +30,7 @@
 
 #include <algorithm>
 #include <wtf/FastAllocBase.h>
+#include <wtf/Forward.h>
 
 #if PLATFORM(CG)
 typedef struct CGPath PlatformPath;
@@ -78,7 +79,6 @@ namespace WebCore {
     class FloatRect;
     class FloatSize;
     class GraphicsContext;
-    class String;
     class StrokeStyleApplier;
 
     enum WindRule {
diff --git a/WebCore/platform/graphics/StringTruncator.h b/WebCore/platform/graphics/StringTruncator.h
index 0a8532b..6791d38 100644
--- a/WebCore/platform/graphics/StringTruncator.h
+++ b/WebCore/platform/graphics/StringTruncator.h
@@ -29,10 +29,11 @@
 #ifndef StringTruncator_h
 #define StringTruncator_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
     
     class Font;
-    class String;
     
     class StringTruncator {
     public:
diff --git a/WebCore/platform/graphics/cairo/FontCustomPlatformData.h b/WebCore/platform/graphics/cairo/FontCustomPlatformData.h
index 2816427..a72a6a4 100644
--- a/WebCore/platform/graphics/cairo/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/cairo/FontCustomPlatformData.h
@@ -22,6 +22,7 @@
 #define FontCustomPlatformData_h
 
 #include "FontRenderingMode.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 typedef struct _cairo_font_face cairo_font_face_t;
@@ -30,7 +31,6 @@ namespace WebCore {
 
 class FontPlatformData;
 class SharedBuffer;
-class String;
 
 struct FontCustomPlatformData : Noncopyable {
     FontCustomPlatformData(cairo_font_face_t* fontFace)
diff --git a/WebCore/platform/graphics/cairo/FontPlatformData.h b/WebCore/platform/graphics/cairo/FontPlatformData.h
index d271f5b..fc6b9f1 100644
--- a/WebCore/platform/graphics/cairo/FontPlatformData.h
+++ b/WebCore/platform/graphics/cairo/FontPlatformData.h
@@ -28,6 +28,7 @@
 #ifndef FontPlatformData_h
 #define FontPlatformData_h
 
+#include <wtf/Forward.h>
 #include <cairo.h>
 #include "FontDescription.h"
 #include "GlyphBuffer.h"
@@ -50,8 +51,6 @@ typedef struct HFONT__* HFONT;
 #endif
 namespace WebCore {
 
-class String;
-
 class FontPlatformData {
 public:
     FontPlatformData(WTF::HashTableDeletedValueType)
diff --git a/WebCore/platform/graphics/cg/FontPlatformData.h b/WebCore/platform/graphics/cg/FontPlatformData.h
index 1da8916..b261f87 100644
--- a/WebCore/platform/graphics/cg/FontPlatformData.h
+++ b/WebCore/platform/graphics/cg/FontPlatformData.h
@@ -26,6 +26,7 @@
 
 #include "RefCountedGDIHandle.h"
 #include "StringImpl.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RetainPtr.h>
@@ -36,7 +37,6 @@ typedef struct CGFont* CGFontRef;
 namespace WebCore {
 
 class FontDescription;
-class String;
 
 class FontPlatformData {
 public:
diff --git a/WebCore/platform/graphics/cg/ImageSourceCG.h b/WebCore/platform/graphics/cg/ImageSourceCG.h
index 76b4160..bff8162 100644
--- a/WebCore/platform/graphics/cg/ImageSourceCG.h
+++ b/WebCore/platform/graphics/cg/ImageSourceCG.h
@@ -27,11 +27,10 @@
 #define ImageSourceCG_h
 
 #include "ImageSource.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
-class String;
-
 String preferredExtensionForImageSourceType(const String& type);
 
 String MIMETypeForImageSourceType(const String& type);
diff --git a/WebCore/platform/graphics/chromium/FontCustomPlatformData.h b/WebCore/platform/graphics/chromium/FontCustomPlatformData.h
index 03e1b8c..d451c9c 100644
--- a/WebCore/platform/graphics/chromium/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/chromium/FontCustomPlatformData.h
@@ -33,6 +33,7 @@
 #define FontCustomPlatformData_h
 
 #include "FontRenderingMode.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 #if OS(WINDOWS)
@@ -46,7 +47,6 @@ namespace WebCore {
 
 class FontPlatformData;
 class SharedBuffer;
-class String;
 
 struct FontCustomPlatformData : Noncopyable {
 #if OS(WINDOWS)
diff --git a/WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h b/WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h
index 40e7bcf..1d6cc8e 100644
--- a/WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h
+++ b/WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h
@@ -35,6 +35,7 @@
 #include "config.h"
 
 #include "StringImpl.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -45,7 +46,6 @@ typedef struct HFONT__ *HFONT;
 namespace WebCore {
 
 class FontDescription;
-class String;
 
 class FontPlatformData {
 public:
diff --git a/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h b/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h
index e2abe2e..de12832 100644
--- a/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h
+++ b/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h
@@ -33,6 +33,7 @@
 
 #include "FontRenderStyle.h"
 #include "StringImpl.h"
+#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 #include <wtf/text/CString.h>
 #include <SkPaint.h>
@@ -45,7 +46,6 @@ struct HB_FaceRec_;
 namespace WebCore {
 
 class FontDescription;
-class String;
 
 // -----------------------------------------------------------------------------
 // FontPlatformData is the handle which WebKit has on a specific face. A face
diff --git a/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h b/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
index d65bdbc..f2f684b 100644
--- a/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
+++ b/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
@@ -25,6 +25,7 @@
 
 #if ENABLE(VIDEO)
 
+#include <wtf/Forward.h>
 #include "MediaPlayerPrivate.h"
 #include "Timer.h"
 
@@ -42,7 +43,6 @@ namespace WebCore {
 class GraphicsContext;
 class IntSize;
 class IntRect;
-class String;
 class GStreamerGWorld;
 
 gboolean mediaPlayerPrivateMessageCallback(GstBus* bus, GstMessage* message, gpointer data);
diff --git a/WebCore/platform/graphics/haiku/FontCustomPlatformData.h b/WebCore/platform/graphics/haiku/FontCustomPlatformData.h
index 9db6cc6..a7dfe37 100644
--- a/WebCore/platform/graphics/haiku/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/haiku/FontCustomPlatformData.h
@@ -22,13 +22,13 @@
 #define FontCustomPlatformData_h
 
 #include "FontRenderingMode.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
     class FontPlatformData;
     class SharedBuffer;
-    class String;
 
     struct FontCustomPlatformData : Noncopyable {
     public:
diff --git a/WebCore/platform/graphics/mac/FontCustomPlatformData.h b/WebCore/platform/graphics/mac/FontCustomPlatformData.h
index f2cd2cc..90440d5 100644
--- a/WebCore/platform/graphics/mac/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/mac/FontCustomPlatformData.h
@@ -23,6 +23,7 @@
 
 #include "FontRenderingMode.h"
 #include <CoreFoundation/CFBase.h>
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 typedef struct CGFont* CGFontRef;
@@ -33,7 +34,6 @@ namespace WebCore {
 
 class FontPlatformData;
 class SharedBuffer;
-class String;
 
 struct FontCustomPlatformData : Noncopyable {
     FontCustomPlatformData(ATSFontContainerRef container, ATSFontRef atsFont, CGFontRef cgFont)
diff --git a/WebCore/platform/graphics/mac/FontPlatformData.h b/WebCore/platform/graphics/mac/FontPlatformData.h
index f4c92be..c7a355d 100644
--- a/WebCore/platform/graphics/mac/FontPlatformData.h
+++ b/WebCore/platform/graphics/mac/FontPlatformData.h
@@ -39,14 +39,13 @@ typedef const struct __CTFont* CTFontRef;
 
 #include <CoreFoundation/CFBase.h>
 #include <objc/objc-auto.h>
+#include <wtf/Forward.h>
 #include <wtf/RetainPtr.h>
 
 typedef UInt32 ATSUFontID;
 
 namespace WebCore {
 
-class String;
-
 #ifndef BUILDING_ON_TIGER
 inline CTFontRef toCTFontRef(NSFont *nsFont) { return reinterpret_cast<CTFontRef>(nsFont); }
 #endif
diff --git a/WebCore/platform/graphics/qt/FontCustomPlatformData.h b/WebCore/platform/graphics/qt/FontCustomPlatformData.h
index 6837059..019a6bc 100644
--- a/WebCore/platform/graphics/qt/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/qt/FontCustomPlatformData.h
@@ -23,13 +23,13 @@
 #define FontCustomPlatformData_h
 
 #include "FontRenderingMode.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
 class FontPlatformData;
 class SharedBuffer;
-class String;
 
 struct FontCustomPlatformData : Noncopyable {
     ~FontCustomPlatformData();
diff --git a/WebCore/platform/graphics/qt/FontPlatformData.h b/WebCore/platform/graphics/qt/FontPlatformData.h
index 9355142..79daa6b 100644
--- a/WebCore/platform/graphics/qt/FontPlatformData.h
+++ b/WebCore/platform/graphics/qt/FontPlatformData.h
@@ -24,13 +24,13 @@
 #ifndef FontPlatformData_h
 #define FontPlatformData_h
 
+#include <wtf/Forward.h>
 #include "FontDescription.h"
 #include <QFont>
 #include <QHash>
 
 namespace WebCore {
 
-class String;
 class FontPlatformDataPrivate : public Noncopyable {
 public:
     FontPlatformDataPrivate()
diff --git a/WebCore/platform/graphics/win/FontCustomPlatformData.h b/WebCore/platform/graphics/win/FontCustomPlatformData.h
index 46ddbb5..d19a8a5 100644
--- a/WebCore/platform/graphics/win/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/win/FontCustomPlatformData.h
@@ -23,6 +23,7 @@
 
 #include "FontRenderingMode.h"
 #include "PlatformString.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 typedef struct CGFont* CGFontRef;
@@ -31,7 +32,6 @@ namespace WebCore {
 
 class FontPlatformData;
 class SharedBuffer;
-class String;
 
 struct FontCustomPlatformData : Noncopyable {
     FontCustomPlatformData(HANDLE fontReference, const String& name)
diff --git a/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h b/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h
index 75fe3d1..2dbea51 100644
--- a/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h
+++ b/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h
@@ -21,6 +21,7 @@
 #ifndef FontCustomPlatformDataCairo_h
 #define FontCustomPlatformDataCairo_h
 
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 #include <cairo.h>
@@ -29,7 +30,6 @@ namespace WebCore {
 
 class FontPlatformData;
 class SharedBuffer;
-class String;
 
 struct FontCustomPlatformDataCairo : Noncopyable {
     FontCustomPlatformDataCairo(cairo_font_face_t* fontFace)
diff --git a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h
index 7bf796c..9c449dd 100644
--- a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h
+++ b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h
@@ -31,6 +31,7 @@
 #include "GraphicsLayer.h"
 #include "MediaPlayerPrivate.h"
 #include "Timer.h"
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/RetainPtr.h>
 
@@ -47,7 +48,6 @@ namespace WebCore {
 class GraphicsContext;
 class IntSize;
 class IntRect;
-class String;
 
 #if USE(ACCELERATED_COMPOSITING)
 class WKCAImageQueue;
diff --git a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h
index ecdb9da..ab9b1f0 100644
--- a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h
+++ b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h
@@ -32,6 +32,7 @@
 #include "Timer.h"
 #include <QTMovie.h>
 #include <QTMovieGWorld.h>
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/RetainPtr.h>
 
@@ -50,7 +51,6 @@ namespace WebCore {
 class GraphicsContext;
 class IntSize;
 class IntRect;
-class String;
 
 class MediaPlayerPrivate : public MediaPlayerPrivateInterface, public QTMovieClient, public QTMovieGWorldClient 
 #if USE(ACCELERATED_COMPOSITING)
diff --git a/WebCore/platform/graphics/wince/FontPlatformData.h b/WebCore/platform/graphics/wince/FontPlatformData.h
index bb49f75..0b973b8 100644
--- a/WebCore/platform/graphics/wince/FontPlatformData.h
+++ b/WebCore/platform/graphics/wince/FontPlatformData.h
@@ -27,6 +27,7 @@
 
 #include "FontDescription.h"
 #include "StringImpl.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 typedef struct tagTEXTMETRICW TEXTMETRIC;
@@ -35,7 +36,6 @@ typedef struct tagLOGFONTW LOGFONT;
 namespace WebCore {
 
     class FontPlatformPrivateData;
-    class String;
 
     class FontPlatformData {
 
diff --git a/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h b/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h
index a657e3e..e86b8a9 100644
--- a/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h
+++ b/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h
@@ -29,6 +29,7 @@
 
 #if ENABLE(VIDEO)
 
+#include <wtf/Forward.h>
 #include "MediaPlayerPrivate.h"
 #include "Timer.h"
 #include <wtf/OwnPtr.h>
@@ -38,7 +39,6 @@ namespace WebCore {
     class GraphicsContext;
     class IntSize;
     class IntRect;
-    class String;
 
     class MediaPlayerPrivate : public MediaPlayerPrivateInterface {
     public:
diff --git a/WebCore/platform/graphics/wince/MediaPlayerProxy.h b/WebCore/platform/graphics/wince/MediaPlayerProxy.h
index 05f9b21..b02e0f4 100644
--- a/WebCore/platform/graphics/wince/MediaPlayerProxy.h
+++ b/WebCore/platform/graphics/wince/MediaPlayerProxy.h
@@ -23,13 +23,13 @@
 
 #if ENABLE(VIDEO)
 
+#include <wtf/Forward.h>
 #include "ScriptInstance.h"
 
 namespace WebCore {
 
     class IntRect;
     class IntSize;
-    class String;
     class MediaPlayer;
     class PluginView;
     class HTMLMediaElement;
diff --git a/WebCore/platform/graphics/wx/FontCustomPlatformData.h b/WebCore/platform/graphics/wx/FontCustomPlatformData.h
index 9db6cc6..a7dfe37 100644
--- a/WebCore/platform/graphics/wx/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/wx/FontCustomPlatformData.h
@@ -22,13 +22,13 @@
 #define FontCustomPlatformData_h
 
 #include "FontRenderingMode.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 namespace WebCore {
 
     class FontPlatformData;
     class SharedBuffer;
-    class String;
 
     struct FontCustomPlatformData : Noncopyable {
     public:
diff --git a/WebCore/platform/graphics/wx/FontPlatformData.h b/WebCore/platform/graphics/wx/FontPlatformData.h
index 952368e..0b2af6f 100644
--- a/WebCore/platform/graphics/wx/FontPlatformData.h
+++ b/WebCore/platform/graphics/wx/FontPlatformData.h
@@ -32,6 +32,7 @@
 #include "FontDescription.h"
 #include "AtomicString.h"
 #include "StringImpl.h"
+#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 #include <wtf/text/CString.h>
 
@@ -56,8 +57,6 @@ inline CTFontRef toCTFontRef(NSFont *nsFont) { return reinterpret_cast<CTFontRef
 
 namespace WebCore {
 
-class String;
-
 class FontHolder: public WTF::RefCounted<FontHolder>
 {
 public:
diff --git a/WebCore/platform/mac/PasteboardHelper.h b/WebCore/platform/mac/PasteboardHelper.h
index 0e241bb..7bd62e5 100644
--- a/WebCore/platform/mac/PasteboardHelper.h
+++ b/WebCore/platform/mac/PasteboardHelper.h
@@ -42,7 +42,6 @@ class DOMDocumentFragment;
 
 namespace WebCore {
 
-    class String;
     class Document;
     
     class PasteboardHelper {
diff --git a/WebCore/platform/network/DNS.h b/WebCore/platform/network/DNS.h
index 1eeec3c..21d9c80 100644
--- a/WebCore/platform/network/DNS.h
+++ b/WebCore/platform/network/DNS.h
@@ -26,9 +26,9 @@
 #ifndef DNS_h
 #define DNS_h
 
-namespace WebCore {
+#include <wtf/Forward.h>
 
-    class String;
+namespace WebCore {
 
 #if !USE(SOUP)
     void prefetchDNS(const String& hostname);
diff --git a/WebCore/platform/network/FormData.h b/WebCore/platform/network/FormData.h
index fdb27f2..a1964e3 100644
--- a/WebCore/platform/network/FormData.h
+++ b/WebCore/platform/network/FormData.h
@@ -21,6 +21,7 @@
 #define FormData_h
 
 #include "PlatformString.h"
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
 
@@ -87,7 +88,7 @@ class FormData : public RefCounted<FormData> {
 public:
     static PassRefPtr<FormData> create();
     static PassRefPtr<FormData> create(const void*, size_t);
-    static PassRefPtr<FormData> create(const WTF::CString&);
+    static PassRefPtr<FormData> create(const CString&);
     static PassRefPtr<FormData> create(const Vector<char>&);
     static PassRefPtr<FormData> create(const BlobItemList&, const TextEncoding&);
     static PassRefPtr<FormData> createMultiPart(const BlobItemList&, const TextEncoding&, Document*);
diff --git a/WebCore/platform/network/FormDataBuilder.h b/WebCore/platform/network/FormDataBuilder.h
index 26b90af..87d0ef3 100644
--- a/WebCore/platform/network/FormDataBuilder.h
+++ b/WebCore/platform/network/FormDataBuilder.h
@@ -22,13 +22,9 @@
 #define FormDataBuilder_h
 
 #include "PlatformString.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
-namespace WTF {
-class CString;
-}
-using WTF::CString;
-
 namespace WebCore {
 
 class Document;
@@ -40,15 +36,15 @@ public:
 
     // Helper functions used by HTMLFormElement/WMLGoElement for multi-part form data
     static Vector<char> generateUniqueBoundaryString();
-    static void beginMultiPartHeader(Vector<char>&, const WTF::CString& boundary, const WTF::CString& name);
-    static void addBoundaryToMultiPartHeader(Vector<char>&, const WTF::CString& boundary, bool isLastBoundary = false);
+    static void beginMultiPartHeader(Vector<char>&, const CString& boundary, const CString& name);
+    static void addBoundaryToMultiPartHeader(Vector<char>&, const CString& boundary, bool isLastBoundary = false);
     static void addFilenameToMultiPartHeader(Vector<char>&, const TextEncoding&, const String& filename);
-    static void addContentTypeToMultiPartHeader(Vector<char>&, const WTF::CString& mimeType);
+    static void addContentTypeToMultiPartHeader(Vector<char>&, const CString& mimeType);
     static void finishMultiPartHeader(Vector<char>&);
 
     // Helper functions used by HTMLFormElement/WMLGoElement for non multi-part form data
-    static void addKeyValuePairAsFormData(Vector<char>&, const WTF::CString& key, const WTF::CString& value);
-    static void encodeStringAsFormData(Vector<char>&, const WTF::CString&);
+    static void addKeyValuePairAsFormData(Vector<char>&, const CString& key, const CString& value);
+    static void encodeStringAsFormData(Vector<char>&, const CString&);
 
 private:
     FormDataBuilder() {}
diff --git a/WebCore/platform/network/HTTPParsers.h b/WebCore/platform/network/HTTPParsers.h
index bb2a9e5..9d6971b 100644
--- a/WebCore/platform/network/HTTPParsers.h
+++ b/WebCore/platform/network/HTTPParsers.h
@@ -30,9 +30,10 @@
 #ifndef HTTPParsers_h
 #define HTTPParsers_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
-class String;
 class ResourceResponseBase;
 
 enum XSSProtectionDisposition {
diff --git a/WebCore/platform/text/Hyphenation.h b/WebCore/platform/text/Hyphenation.h
index 4ef852b..a99bff0 100644
--- a/WebCore/platform/text/Hyphenation.h
+++ b/WebCore/platform/text/Hyphenation.h
@@ -26,12 +26,11 @@
 #ifndef Hyphenation_h
 #define Hyphenation_h
 
+#include <wtf/Forward.h>
 #include <wtf/unicode/Unicode.h>
 
 namespace WebCore {
 
-class AtomicString;
-
 bool canHyphenate(const AtomicString& localeIdentifier);
 size_t lastHyphenLocation(const UChar*, size_t length, size_t beforeIndex, const AtomicString& localeIdentifier);
 
diff --git a/WebCore/platform/text/LineEnding.h b/WebCore/platform/text/LineEnding.h
index 9c3e2aa..edffb8f 100644
--- a/WebCore/platform/text/LineEnding.h
+++ b/WebCore/platform/text/LineEnding.h
@@ -32,24 +32,22 @@
 #ifndef LineEnding_h
 #define LineEnding_h
 
-namespace WTF {
-class CString;
-}
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
 // Normalize all line-endings in the given string to CRLF.
-WTF::CString normalizeLineEndingsToCRLF(const WTF::CString&);
+CString normalizeLineEndingsToCRLF(const CString&);
 
 // Normalize all line-endings in the given string to CR.
-WTF::CString normalizeLineEndingsToCR(const WTF::CString&);
+CString normalizeLineEndingsToCR(const CString&);
 
 // Normalize all line-endings in the given string to LF.
-WTF::CString normalizeLineEndingsToLF(const WTF::CString&);
+CString normalizeLineEndingsToLF(const CString&);
 
 // Normalize all line-endings in the given string to the native line-endings.
 // (Normalize to CRLF on Windows and normalize to LF on all other platforms.)
-WTF::CString normalizeLineEndingsToNative(const WTF::CString&);
+CString normalizeLineEndingsToNative(const CString&);
 
 } // namespace WebCore
 
diff --git a/WebCore/platform/text/TextCodec.h b/WebCore/platform/text/TextCodec.h
index 591e3a6..c6af38a 100644
--- a/WebCore/platform/text/TextCodec.h
+++ b/WebCore/platform/text/TextCodec.h
@@ -28,6 +28,7 @@
 #define TextCodec_h
 
 #include <memory>
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/Vector.h>
@@ -67,7 +68,7 @@ namespace WebCore {
         }
         
         virtual String decode(const char*, size_t length, bool flush, bool stopOnError, bool& sawError) = 0;
-        virtual WTF::CString encode(const UChar*, size_t length, UnencodableHandling) = 0;
+        virtual CString encode(const UChar*, size_t length, UnencodableHandling) = 0;
 
         // Fills a null-terminated string representation of the given
         // unencodable character into the given replacement buffer. 
diff --git a/WebCore/platform/text/TextEncoding.h b/WebCore/platform/text/TextEncoding.h
index 3429bb5..675625b 100644
--- a/WebCore/platform/text/TextEncoding.h
+++ b/WebCore/platform/text/TextEncoding.h
@@ -27,17 +27,11 @@
 #define TextEncoding_h
 
 #include "TextCodec.h"
+#include <wtf/Forward.h>
 #include <wtf/unicode/Unicode.h>
 
-namespace WTF {
-class CString;
-}
-using WTF::CString;
-
 namespace WebCore {
 
-    class String;
-
     class TextEncoding {
     public:
         TextEncoding() : m_name(0) { }
@@ -75,7 +69,7 @@ namespace WebCore {
             return decode(str, length, false, ignored);
         }
         String decode(const char*, size_t length, bool stopOnError, bool& sawError) const;
-        WTF::CString encode(const UChar*, size_t length, UnencodableHandling) const;
+        CString encode(const UChar*, size_t length, UnencodableHandling) const;
 
         UChar backslashAsCurrencySymbol() const;
 
diff --git a/WebCore/platform/text/TextStream.h b/WebCore/platform/text/TextStream.h
index f5e512c..e7e4cc0 100644
--- a/WebCore/platform/text/TextStream.h
+++ b/WebCore/platform/text/TextStream.h
@@ -26,13 +26,12 @@
 #ifndef TextStream_h
 #define TextStream_h
 
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 #include <wtf/unicode/Unicode.h>
 
 namespace WebCore {
 
-class String;
-
 class TextStream {
 public:
     TextStream& operator<<(bool);
diff --git a/WebCore/platform/win/BString.h b/WebCore/platform/win/BString.h
index c32a49d..bdbf189 100644
--- a/WebCore/platform/win/BString.h
+++ b/WebCore/platform/win/BString.h
@@ -26,6 +26,8 @@
 #ifndef BString_h
 #define BString_h
 
+#include <wtf/Forward.h>
+
 #if PLATFORM(CF)
 typedef const struct __CFString * CFStringRef;
 #endif
@@ -38,9 +40,7 @@ namespace JSC {
 
 namespace WebCore {
 
-    class AtomicString;
     class KURL;
-    class String;
 
     class BString {
     public:
diff --git a/WebCore/platform/win/ClipboardUtilitiesWin.h b/WebCore/platform/win/ClipboardUtilitiesWin.h
index fe01499..1a29e7e 100644
--- a/WebCore/platform/win/ClipboardUtilitiesWin.h
+++ b/WebCore/platform/win/ClipboardUtilitiesWin.h
@@ -28,12 +28,12 @@
 
 #include "DragData.h"
 #include <windows.h>
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
 class Document;
 class KURL;
-class String;
 
 HGLOBAL createGlobalData(const String&);
 HGLOBAL createGlobalData(const Vector<char>&);
diff --git a/WebCore/platform/win/WCDataObject.h b/WebCore/platform/win/WCDataObject.h
index bdfb013..133115d 100644
--- a/WebCore/platform/win/WCDataObject.h
+++ b/WebCore/platform/win/WCDataObject.h
@@ -26,14 +26,13 @@
 #ifndef WCDataObject_h
 #define WCDataObject_h
 
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 #include <ShlObj.h>
 #include <objidl.h>
 
 namespace WebCore {
 
-class String;
-
 class WCDataObject : public IDataObject {
 public:
     void CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATETC* pFmtSrc);
diff --git a/WebCore/platform/win/WebCoreTextRenderer.h b/WebCore/platform/win/WebCoreTextRenderer.h
index 7b72946..7efc1f3 100644
--- a/WebCore/platform/win/WebCoreTextRenderer.h
+++ b/WebCore/platform/win/WebCoreTextRenderer.h
@@ -23,13 +23,14 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
     class Color;
     class Font;
     class GraphicsContext;
     class IntPoint;
-    class String;
 
     void WebCoreDrawTextAtPoint(GraphicsContext&, const String&, const IntPoint&, const Font&, const Color&, int underlinedIndex = -1);
     void WebCoreDrawDoubledTextAtPoint(GraphicsContext&, const String&, const IntPoint&, const Font&, const Color& topColor, const Color& bottomColor, int underlinedIndex = -1);
diff --git a/WebCore/plugins/DOMMimeType.h b/WebCore/plugins/DOMMimeType.h
index a010e33..cefdb48 100644
--- a/WebCore/plugins/DOMMimeType.h
+++ b/WebCore/plugins/DOMMimeType.h
@@ -20,6 +20,7 @@
 #ifndef DOMMimeType_h
 #define DOMMimeType_h
 
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
 #include <wtf/RefCounted.h>
@@ -29,7 +30,6 @@
 namespace WebCore {
 
 class DOMPlugin;
-class String;
 
 class DOMMimeType : public RefCounted<DOMMimeType> {
 public:
diff --git a/WebCore/plugins/DOMMimeTypeArray.h b/WebCore/plugins/DOMMimeTypeArray.h
index 2ccbfa0..ed078bb 100644
--- a/WebCore/plugins/DOMMimeTypeArray.h
+++ b/WebCore/plugins/DOMMimeTypeArray.h
@@ -22,13 +22,13 @@
 #define DOMMimeTypeArray_h
 
 #include "DOMMimeType.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
-class AtomicString;
 class Frame;
 class PluginData;
 
diff --git a/WebCore/plugins/DOMPlugin.h b/WebCore/plugins/DOMPlugin.h
index f86234a..9700ab5 100644
--- a/WebCore/plugins/DOMPlugin.h
+++ b/WebCore/plugins/DOMPlugin.h
@@ -21,15 +21,14 @@
 #define DOMPlugin_h
 
 #include "DOMMimeType.h"
+#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
-class AtomicString;
 class Plugin;
 class PluginData;
-class String;
 
 class DOMPlugin : public RefCounted<DOMPlugin> {
 public:
diff --git a/WebCore/plugins/DOMPluginArray.h b/WebCore/plugins/DOMPluginArray.h
index 0adb70a..cc70572 100644
--- a/WebCore/plugins/DOMPluginArray.h
+++ b/WebCore/plugins/DOMPluginArray.h
@@ -22,13 +22,13 @@
 #define DOMPluginArray_h
 
 #include "DOMPlugin.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
-class AtomicString;
 class Frame;
 class PluginData;
 
diff --git a/WebCore/rendering/CounterNode.h b/WebCore/rendering/CounterNode.h
index 15f2eb8..e35fb61 100644
--- a/WebCore/rendering/CounterNode.h
+++ b/WebCore/rendering/CounterNode.h
@@ -22,6 +22,7 @@
 #ifndef CounterNode_h
 #define CounterNode_h
 
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 // This implements a counter tree that is used for finding parents in counters() lookup,
@@ -35,7 +36,6 @@
 
 namespace WebCore {
 
-class AtomicString;
 class RenderObject;
 
 class CounterNode : public Noncopyable {
diff --git a/WebCore/rendering/HitTestResult.h b/WebCore/rendering/HitTestResult.h
index e0ffe54..3a42719 100644
--- a/WebCore/rendering/HitTestResult.h
+++ b/WebCore/rendering/HitTestResult.h
@@ -24,6 +24,7 @@
 #include "IntRect.h"
 #include "IntSize.h"
 #include "TextDirection.h"
+#include <wtf/Forward.h>
 #include <wtf/ListHashSet.h>
 #include <wtf/RefPtr.h>
 
@@ -36,7 +37,6 @@ class IntRect;
 class KURL;
 class Node;
 class Scrollbar;
-class String;
 
 class HitTestResult {
 public:
diff --git a/WebCore/rendering/RenderObjectChildList.h b/WebCore/rendering/RenderObjectChildList.h
index ba73c50..8b80f37 100644
--- a/WebCore/rendering/RenderObjectChildList.h
+++ b/WebCore/rendering/RenderObjectChildList.h
@@ -27,10 +27,10 @@
 #define RenderObjectChildList_h
 
 #include "RenderStyleConstants.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
-class AtomicString;
 class RenderObject;
 
 class RenderObjectChildList {
diff --git a/WebCore/rendering/RenderText.h b/WebCore/rendering/RenderText.h
index 92c82e1..f46f053 100644
--- a/WebCore/rendering/RenderText.h
+++ b/WebCore/rendering/RenderText.h
@@ -24,11 +24,11 @@
 #define RenderText_h
 
 #include "RenderObject.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
 class InlineTextBox;
-class StringImpl;
 
 class RenderText : public RenderObject {
 public:
diff --git a/WebCore/rendering/RenderTreeAsText.h b/WebCore/rendering/RenderTreeAsText.h
index 645ccc0..722736b 100644
--- a/WebCore/rendering/RenderTreeAsText.h
+++ b/WebCore/rendering/RenderTreeAsText.h
@@ -26,12 +26,13 @@
 #ifndef RenderTreeAsText_h
 #define RenderTreeAsText_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
 class Element;
 class Frame;
 class RenderObject;
-class String;
 class TextStream;
 
 enum RenderAsTextBehaviorFlags {
diff --git a/WebCore/rendering/TextControlInnerElements.h b/WebCore/rendering/TextControlInnerElements.h
index 66aca9a..2859bd5 100644
--- a/WebCore/rendering/TextControlInnerElements.h
+++ b/WebCore/rendering/TextControlInnerElements.h
@@ -29,11 +29,11 @@
 
 #include "HTMLDivElement.h"
 #include "SpeechInputListener.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
 class SpeechInput;
-class String;
 
 class TextControlInnerElement : public HTMLDivElement {
 public:
diff --git a/WebCore/rendering/style/ContentData.h b/WebCore/rendering/style/ContentData.h
index 2c261f8..5c3565e 100644
--- a/WebCore/rendering/style/ContentData.h
+++ b/WebCore/rendering/style/ContentData.h
@@ -26,13 +26,13 @@
 #define ContentData_h
 
 #include "RenderStyleConstants.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
 
 class CounterContent;
-class StringImpl;
 class StyleImage;
 
 struct ContentData : Noncopyable {
diff --git a/WebCore/rendering/style/RenderStyle.h b/WebCore/rendering/style/RenderStyle.h
index 9de6eef..e898065 100644
--- a/WebCore/rendering/style/RenderStyle.h
+++ b/WebCore/rendering/style/RenderStyle.h
@@ -73,6 +73,7 @@
 #include "ThemeTypes.h"
 #include "TimingFunction.h"
 #include "TransformOperations.h"
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/StdLibExtras.h>
@@ -108,7 +109,6 @@ class CSSStyleSelector;
 class CSSValueList;
 class CachedImage;
 class Pair;
-class StringImpl;
 class StyleImage;
 
 typedef Vector<RefPtr<RenderStyle>, 4> PseudoStyleCache;
diff --git a/WebCore/storage/DatabaseAuthorizer.h b/WebCore/storage/DatabaseAuthorizer.h
index af6e016..66bc5d8 100644
--- a/WebCore/storage/DatabaseAuthorizer.h
+++ b/WebCore/storage/DatabaseAuthorizer.h
@@ -36,8 +36,6 @@
 
 namespace WebCore {
 
-class String;
-
 extern const int SQLAuthAllow;
 extern const int SQLAuthIgnore;
 extern const int SQLAuthDeny;
diff --git a/WebCore/storage/DatabaseTrackerClient.h b/WebCore/storage/DatabaseTrackerClient.h
index b43123c..2e0497f 100644
--- a/WebCore/storage/DatabaseTrackerClient.h
+++ b/WebCore/storage/DatabaseTrackerClient.h
@@ -30,10 +30,11 @@
 
 #if ENABLE(DATABASE)
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
 class SecurityOrigin;
-class String;
 
 class DatabaseTrackerClient {
 public:
diff --git a/WebCore/storage/SQLTransaction.h b/WebCore/storage/SQLTransaction.h
index 2eb200b..3eb1fd5 100644
--- a/WebCore/storage/SQLTransaction.h
+++ b/WebCore/storage/SQLTransaction.h
@@ -48,7 +48,6 @@ class SQLTransaction;
 class SQLTransactionCallback;
 class SQLTransactionErrorCallback;
 class SQLValue;
-class String;
 class VoidCallback;
 
 class SQLTransactionWrapper : public ThreadSafeShared<SQLTransactionWrapper> {
diff --git a/WebCore/storage/SQLTransactionSync.h b/WebCore/storage/SQLTransactionSync.h
index 025215b..e66c876 100644
--- a/WebCore/storage/SQLTransactionSync.h
+++ b/WebCore/storage/SQLTransactionSync.h
@@ -46,7 +46,6 @@ class SQLTransactionClient;
 class SQLTransactionSyncCallback;
 class SQLValue;
 class SQLiteTransaction;
-class String;
 
 // Instances of this class should be created and used only on the worker's context thread.
 class SQLTransactionSync : public RefCounted<SQLTransactionSync> {
diff --git a/WebCore/storage/Storage.h b/WebCore/storage/Storage.h
index 06cc97b..c81481a 100644
--- a/WebCore/storage/Storage.h
+++ b/WebCore/storage/Storage.h
@@ -36,7 +36,6 @@ namespace WebCore {
 
     class Frame;
     class StorageArea;
-    class String;
     typedef int ExceptionCode;
 
     class Storage : public RefCounted<Storage> {
diff --git a/WebCore/storage/chromium/DatabaseObserver.h b/WebCore/storage/chromium/DatabaseObserver.h
index 96b5972..deb8036 100644
--- a/WebCore/storage/chromium/DatabaseObserver.h
+++ b/WebCore/storage/chromium/DatabaseObserver.h
@@ -33,11 +33,12 @@
 
 #if ENABLE(DATABASE)
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 
 class AbstractDatabase;
 class ScriptExecutionContext;
-class String;
 
 // The implementation of this class is in the WebKit API (Chromium source tree)
 // in WebKit/chromium/src/DatabaseObserver.cpp.
diff --git a/WebCore/svg/SVGAnimatedTemplate.h b/WebCore/svg/SVGAnimatedTemplate.h
index 216882c..307c66a 100644
--- a/WebCore/svg/SVGAnimatedTemplate.h
+++ b/WebCore/svg/SVGAnimatedTemplate.h
@@ -23,6 +23,7 @@
 
 #if ENABLE(SVG)
 #include "SVGAnimatedPropertyTraits.h"
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 
 namespace WebCore {
@@ -33,7 +34,6 @@ namespace WebCore {
     class SVGNumberList;
     class SVGPreserveAspectRatio;
     class SVGTransformList;
-    class String;
     class QualifiedName;
 
     struct SVGAnimatedTypeWrapperKey {            
diff --git a/WebCore/svg/SVGDocumentExtensions.h b/WebCore/svg/SVGDocumentExtensions.h
index e0f7170..ad2fb60 100644
--- a/WebCore/svg/SVGDocumentExtensions.h
+++ b/WebCore/svg/SVGDocumentExtensions.h
@@ -25,6 +25,7 @@
 #include "AtomicStringHash.h"
 #include "SVGResourcesCache.h"
 #include "StringImpl.h"
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/HashSet.h>
 #include <wtf/PassOwnPtr.h>
@@ -33,7 +34,6 @@ namespace WebCore {
 
 class Document;
 class RenderSVGResourceContainer;
-class String;
 class SVGStyledElement;
 class SVGSMILElement;
 class SVGSVGElement;
diff --git a/WebCore/svg/SVGGlyphElement.h b/WebCore/svg/SVGGlyphElement.h
index ef6a715..5b5408d 100644
--- a/WebCore/svg/SVGGlyphElement.h
+++ b/WebCore/svg/SVGGlyphElement.h
@@ -24,13 +24,13 @@
 
 #if ENABLE(SVG_FONTS)
 #include "SVGStyledElement.h"
+#include <wtf/Forward.h>
 
 #include <limits>
 #include "Path.h"
 
 namespace WebCore {
 
-    class AtomicString;
     class SVGFontData;
 
     // Describe a SVG <glyph> element
diff --git a/WebCore/svg/SVGHKernElement.h b/WebCore/svg/SVGHKernElement.h
index fdc34be..bd893d8 100644
--- a/WebCore/svg/SVGHKernElement.h
+++ b/WebCore/svg/SVGHKernElement.h
@@ -26,12 +26,12 @@
 #include "SVGFontElement.h"
 #include "SVGParserUtilities.h"
 #include "SVGStyledElement.h"
+#include <wtf/Forward.h>
 
 #include <limits>
 
 namespace WebCore {
 
-    class AtomicString;
     class SVGFontData;
 
     class SVGHKernElement : public SVGElement {
diff --git a/WebCore/svg/SVGNumberList.h b/WebCore/svg/SVGNumberList.h
index 75e58dc..fa29356 100644
--- a/WebCore/svg/SVGNumberList.h
+++ b/WebCore/svg/SVGNumberList.h
@@ -23,12 +23,11 @@
 
 #if ENABLE(SVG)
 #include "SVGList.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
 
-    class String;
-
     class SVGNumberList : public SVGPODList<float> {
     public:
         static PassRefPtr<SVGNumberList> create(const QualifiedName& attributeName) { return adoptRef(new SVGNumberList(attributeName)); }
diff --git a/WebCore/svg/SVGPointList.h b/WebCore/svg/SVGPointList.h
index 649654f..853c7b1 100644
--- a/WebCore/svg/SVGPointList.h
+++ b/WebCore/svg/SVGPointList.h
@@ -24,12 +24,11 @@
 #if ENABLE(SVG)
 #include "SVGList.h"
 #include "FloatPoint.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
 
-    class String;
-
     class SVGPointList : public SVGPODList<FloatPoint> {
     public:
         static PassRefPtr<SVGPointList> create(const QualifiedName& attributeName) { return adoptRef(new SVGPointList(attributeName)); }
diff --git a/WebCore/svg/SVGPreserveAspectRatio.h b/WebCore/svg/SVGPreserveAspectRatio.h
index 4c28a19..9ed27fe 100644
--- a/WebCore/svg/SVGPreserveAspectRatio.h
+++ b/WebCore/svg/SVGPreserveAspectRatio.h
@@ -25,10 +25,10 @@
 #include "FloatRect.h"
 #include "PlatformString.h"
 #include "SVGNames.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
-    class String;
     class AffineTransform;
 
     class SVGPreserveAspectRatio {
diff --git a/WebCore/svg/SVGStylable.h b/WebCore/svg/SVGStylable.h
index e1bed99..37148f9 100644
--- a/WebCore/svg/SVGStylable.h
+++ b/WebCore/svg/SVGStylable.h
@@ -22,13 +22,13 @@
 #define SVGStylable_h
 
 #if ENABLE(SVG)
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
 
     class CSSValue;
     class CSSStyleDeclaration;
-    class String;
     class QualifiedName;
 
     class SVGStylable {
diff --git a/WebCore/svg/SVGTests.h b/WebCore/svg/SVGTests.h
index 7204e8e..b638c0a 100644
--- a/WebCore/svg/SVGTests.h
+++ b/WebCore/svg/SVGTests.h
@@ -22,6 +22,7 @@
 #define SVGTests_h
 
 #if ENABLE(SVG)
+#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 
 namespace WebCore {
@@ -29,7 +30,6 @@ namespace WebCore {
     class Attribute;
     class QualifiedName;
     class SVGStringList;
-    class String;
 
     class SVGTests {
     public:
diff --git a/WebCore/svg/SVGTransformList.h b/WebCore/svg/SVGTransformList.h
index 27ed924..5bb5e85 100644
--- a/WebCore/svg/SVGTransformList.h
+++ b/WebCore/svg/SVGTransformList.h
@@ -24,12 +24,11 @@
 #if ENABLE(SVG)
 #include "SVGList.h"
 #include "SVGTransform.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
 
-    class String;
-
     class SVGTransformList : public SVGPODList<SVGTransform> {
     public:
         static PassRefPtr<SVGTransformList> create(const QualifiedName& attributeName) { return adoptRef(new SVGTransformList(attributeName)); }
diff --git a/WebCore/svg/SVGTransformable.h b/WebCore/svg/SVGTransformable.h
index 2972c8b..8979eb1 100644
--- a/WebCore/svg/SVGTransformable.h
+++ b/WebCore/svg/SVGTransformable.h
@@ -25,11 +25,11 @@
 #include "PlatformString.h"
 #include "SVGLocatable.h"
 #include "SVGTransformList.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
     
 class AffineTransform;
-class AtomicString;
 class SVGTransform;
 class QualifiedName;
 
diff --git a/WebCore/svg/SVGVKernElement.h b/WebCore/svg/SVGVKernElement.h
index 50da27e..c4bc90f 100644
--- a/WebCore/svg/SVGVKernElement.h
+++ b/WebCore/svg/SVGVKernElement.h
@@ -24,12 +24,12 @@
 #include "SVGFontElement.h"
 #include "SVGParserUtilities.h"
 #include "SVGStyledElement.h"
+#include <wtf/Forward.h>
 
 #include <limits>
 
 namespace WebCore {
 
-class AtomicString;
 class SVGFontData;
 
 class SVGVKernElement : public SVGElement {
diff --git a/WebCore/websockets/ThreadableWebSocketChannel.h b/WebCore/websockets/ThreadableWebSocketChannel.h
index cbe6e14..05b3767 100644
--- a/WebCore/websockets/ThreadableWebSocketChannel.h
+++ b/WebCore/websockets/ThreadableWebSocketChannel.h
@@ -33,6 +33,7 @@
 
 #if ENABLE(WEB_SOCKETS)
 
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassRefPtr.h>
 
@@ -40,7 +41,6 @@ namespace WebCore {
 
 class KURL;
 class ScriptExecutionContext;
-class String;
 class WebSocketChannelClient;
 
 class ThreadableWebSocketChannel : public Noncopyable {
diff --git a/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h b/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h
index bc36c1b..4099615 100644
--- a/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h
+++ b/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h
@@ -35,14 +35,13 @@
 
 #include "PlatformString.h"
 #include "WebSocketChannelClient.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/Threading.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
-class String;
-
 class ThreadableWebSocketChannelClientWrapper : public ThreadSafeShared<ThreadableWebSocketChannelClientWrapper> {
 public:
     static PassRefPtr<ThreadableWebSocketChannelClientWrapper> create(WebSocketChannelClient* client)
diff --git a/WebCore/websockets/WebSocket.h b/WebCore/websockets/WebSocket.h
index 2c95ff9..15508b4 100644
--- a/WebCore/websockets/WebSocket.h
+++ b/WebCore/websockets/WebSocket.h
@@ -40,12 +40,12 @@
 #include "EventTarget.h"
 #include "KURL.h"
 #include "WebSocketChannelClient.h"
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
-    class String;
     class ThreadableWebSocketChannel;
 
     class WebSocket : public RefCounted<WebSocket>, public EventTarget, public ActiveDOMObject, public WebSocketChannelClient {
diff --git a/WebCore/websockets/WebSocketChannel.h b/WebCore/websockets/WebSocketChannel.h
index a90c6dc..893b4c6 100644
--- a/WebCore/websockets/WebSocketChannel.h
+++ b/WebCore/websockets/WebSocketChannel.h
@@ -37,13 +37,13 @@
 #include "ThreadableWebSocketChannel.h"
 #include "Timer.h"
 #include "WebSocketHandshake.h"
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
     class ScriptExecutionContext;
-    class String;
     class SocketStreamHandle;
     class SocketStreamError;
     class WebSocketChannelClient;
diff --git a/WebCore/websockets/WebSocketHandshakeResponse.h b/WebCore/websockets/WebSocketHandshakeResponse.h
index c385a1b..fe435ee 100644
--- a/WebCore/websockets/WebSocketHandshakeResponse.h
+++ b/WebCore/websockets/WebSocketHandshakeResponse.h
@@ -35,11 +35,10 @@
 
 #include "HTTPHeaderMap.h"
 #include "PlatformString.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
-class AtomicString;
-
 class WebSocketHandshakeResponse {
 public:
     WebSocketHandshakeResponse();
diff --git a/WebCore/wml/WMLErrorHandling.h b/WebCore/wml/WMLErrorHandling.h
index 8277be4..c75c975 100644
--- a/WebCore/wml/WMLErrorHandling.h
+++ b/WebCore/wml/WMLErrorHandling.h
@@ -21,11 +21,12 @@
 #ifndef WMLErrorHandling_h
 #define WMLErrorHandling_h
 
+#include <wtf/Forward.h>
+
 #if ENABLE(WML)
 namespace WebCore {
 
     class Document;
-    class String;
 
     enum WMLErrorCode {
         WMLErrorUnknown = 0,
diff --git a/WebCore/wml/WMLPageState.h b/WebCore/wml/WMLPageState.h
index ed1ce8e..614bc94 100644
--- a/WebCore/wml/WMLPageState.h
+++ b/WebCore/wml/WMLPageState.h
@@ -25,12 +25,12 @@
 
 #if ENABLE(WML)
 #include "StringHash.h"
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 
 namespace WebCore {
 
 class Page;
-class String;
 class WMLCardElement;
 
 typedef HashMap<String, String> WMLVariableMap;
diff --git a/WebCore/wml/WMLVariables.h b/WebCore/wml/WMLVariables.h
index 18c6ba4..3bd0f81 100644
--- a/WebCore/wml/WMLVariables.h
+++ b/WebCore/wml/WMLVariables.h
@@ -21,11 +21,12 @@
 #ifndef WMLVariables_h
 #define WMLVariables_h
 
+#include <wtf/Forward.h>
+
 #if ENABLE(WML)
 namespace WebCore {
 
     class Document;
-    class String;
 
     enum WMLVariableEscapingMode {
         WMLVariableEscapingNone = 0,
diff --git a/WebCore/workers/DefaultSharedWorkerRepository.h b/WebCore/workers/DefaultSharedWorkerRepository.h
index c2eaff4..2ce4422 100644
--- a/WebCore/workers/DefaultSharedWorkerRepository.h
+++ b/WebCore/workers/DefaultSharedWorkerRepository.h
@@ -35,6 +35,7 @@
 
 #include "ExceptionCode.h"
 #include "StringHash.h"
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassOwnPtr.h>
@@ -50,7 +51,6 @@ namespace WebCore {
     class ScriptExecutionContext;
     class SharedWorker;
     class SharedWorkerProxy;
-    class String;
 
     // Platform-specific implementation of the SharedWorkerRepository static interface.
     class DefaultSharedWorkerRepository : public Noncopyable {
diff --git a/WebCore/workers/SharedWorkerRepository.h b/WebCore/workers/SharedWorkerRepository.h
index 49f3941..d654070 100644
--- a/WebCore/workers/SharedWorkerRepository.h
+++ b/WebCore/workers/SharedWorkerRepository.h
@@ -34,6 +34,7 @@
 #if ENABLE(SHARED_WORKERS)
 
 #include "ExceptionCode.h"
+#include <wtf/Forward.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
 
@@ -43,7 +44,6 @@ namespace WebCore {
     class KURL;
     class MessagePortChannel;
     class SharedWorker;
-    class String;
 
     // Interface to a repository which manages references to the set of active shared workers.
     class SharedWorkerRepository {
diff --git a/WebCore/workers/Worker.h b/WebCore/workers/Worker.h
index 69ae92e..2470b71 100644
--- a/WebCore/workers/Worker.h
+++ b/WebCore/workers/Worker.h
@@ -37,6 +37,7 @@
 #include "EventTarget.h"
 #include "MessagePort.h"
 #include "WorkerScriptLoaderClient.h"
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -45,7 +46,6 @@
 namespace WebCore {
 
     class ScriptExecutionContext;
-    class String;
     class WorkerContextProxy;
     class WorkerScriptLoader;
 
diff --git a/WebCore/workers/WorkerContextProxy.h b/WebCore/workers/WorkerContextProxy.h
index e1ca139..4420c78 100644
--- a/WebCore/workers/WorkerContextProxy.h
+++ b/WebCore/workers/WorkerContextProxy.h
@@ -34,12 +34,12 @@
 #if ENABLE(WORKERS)
 
 #include "MessagePort.h"
+#include <wtf/Forward.h>
 #include <wtf/PassOwnPtr.h>
 
 namespace WebCore {
 
     class KURL;
-    class String;
     class Worker;
 
     // A proxy to talk to the worker context.
diff --git a/WebCore/workers/WorkerLoaderProxy.h b/WebCore/workers/WorkerLoaderProxy.h
index fe1bf51..219dab4 100644
--- a/WebCore/workers/WorkerLoaderProxy.h
+++ b/WebCore/workers/WorkerLoaderProxy.h
@@ -34,12 +34,11 @@
 #if ENABLE(WORKERS)
 
 #include "ScriptExecutionContext.h"
+#include <wtf/Forward.h>
 #include <wtf/PassOwnPtr.h>
 
 namespace WebCore {
 
-    class String;
-
     // A proxy to talk to the loader context. Normally, the document on the main thread
     // provides loading services for the subordinate workers. This interface provides 2-way
     // communications to the Document context and back to the worker.
diff --git a/WebCore/workers/WorkerLocation.h b/WebCore/workers/WorkerLocation.h
index 52c31ad..5200e35 100644
--- a/WebCore/workers/WorkerLocation.h
+++ b/WebCore/workers/WorkerLocation.h
@@ -30,14 +30,13 @@
 #if ENABLE(WORKERS)
 
 #include "KURL.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
 
 namespace WebCore {
 
-    class String;
-
     class WorkerLocation : public RefCounted<WorkerLocation> {
     public:
         static PassRefPtr<WorkerLocation> create(const KURL& url)
diff --git a/WebCore/workers/WorkerMessagingProxy.h b/WebCore/workers/WorkerMessagingProxy.h
index 296fa42..33937ce 100644
--- a/WebCore/workers/WorkerMessagingProxy.h
+++ b/WebCore/workers/WorkerMessagingProxy.h
@@ -33,6 +33,7 @@
 #include "WorkerContextProxy.h"
 #include "WorkerLoaderProxy.h"
 #include "WorkerObjectProxy.h"
+#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
@@ -43,7 +44,6 @@ namespace WebCore {
 
     class DedicatedWorkerThread;
     class ScriptExecutionContext;
-    class String;
     class Worker;
 
     class WorkerMessagingProxy : public WorkerContextProxy, public WorkerObjectProxy, public WorkerLoaderProxy, public Noncopyable {
diff --git a/WebCore/workers/WorkerReportingProxy.h b/WebCore/workers/WorkerReportingProxy.h
index 063dc81..6a8fcef 100644
--- a/WebCore/workers/WorkerReportingProxy.h
+++ b/WebCore/workers/WorkerReportingProxy.h
@@ -33,12 +33,12 @@
 
 #if ENABLE(WORKERS)
 
+#include <wtf/Forward.h>
+
 #include "Console.h"
 
 namespace WebCore {
 
-    class String;
-
     // APIs used by workers to report console activity.
     class WorkerReportingProxy {
     public:
diff --git a/WebCore/workers/WorkerThread.h b/WebCore/workers/WorkerThread.h
index cb33308..e44afce 100644
--- a/WebCore/workers/WorkerThread.h
+++ b/WebCore/workers/WorkerThread.h
@@ -30,6 +30,7 @@
 #if ENABLE(WORKERS)
 
 #include "WorkerRunLoop.h"
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -38,7 +39,6 @@ namespace WebCore {
 
     class KURL;
     class NotificationPresenter;
-    class String;
     class WorkerContext;
     class WorkerLoaderProxy;
     class WorkerReportingProxy;
diff --git a/WebCore/xml/DOMParser.h b/WebCore/xml/DOMParser.h
index 5036d22..744bae8 100644
--- a/WebCore/xml/DOMParser.h
+++ b/WebCore/xml/DOMParser.h
@@ -19,13 +19,12 @@
 #ifndef DOMParser_h
 #define DOMParser_h
 
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 #include "Document.h"
 
 namespace WebCore {
 
-    class String;
-    
     class DOMParser : public RefCounted<DOMParser> {
     public:
         static PassRefPtr<DOMParser> create() { return adoptRef(new DOMParser); }
diff --git a/WebCore/xml/XMLHttpRequestUpload.h b/WebCore/xml/XMLHttpRequestUpload.h
index 7640643..7a605fb 100644
--- a/WebCore/xml/XMLHttpRequestUpload.h
+++ b/WebCore/xml/XMLHttpRequestUpload.h
@@ -30,6 +30,7 @@
 #include "EventListener.h"
 #include "EventNames.h"
 #include "EventTarget.h"
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
@@ -38,7 +39,6 @@
 
 namespace WebCore {
 
-    class AtomicStringImpl;
     class ScriptExecutionContext;
     class XMLHttpRequest;
 
diff --git a/WebCore/xml/XPathEvaluator.h b/WebCore/xml/XPathEvaluator.h
index c8e456e..70322a4 100644
--- a/WebCore/xml/XPathEvaluator.h
+++ b/WebCore/xml/XPathEvaluator.h
@@ -29,6 +29,7 @@
 
 #if ENABLE(XPATH)
 
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 #include <wtf/PassRefPtr.h>
 
@@ -37,7 +38,6 @@ namespace WebCore {
     typedef int ExceptionCode;
 
     class Node;
-    class String;
     class XPathExpression;
     class XPathNSResolver;
     class XPathResult;
diff --git a/WebCore/xml/XPathExpression.h b/WebCore/xml/XPathExpression.h
index a2b75d7..633ec80 100644
--- a/WebCore/xml/XPathExpression.h
+++ b/WebCore/xml/XPathExpression.h
@@ -29,6 +29,7 @@
 
 #if ENABLE(XPATH)
 
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 #include <wtf/PassRefPtr.h>
 
@@ -37,7 +38,6 @@ namespace WebCore {
     typedef int ExceptionCode;
 
     class Node;
-    class String;
     class XPathNSResolver;
     class XPathResult;
 
diff --git a/WebCore/xml/XPathNSResolver.h b/WebCore/xml/XPathNSResolver.h
index 04b5f80..7b7fd2e 100644
--- a/WebCore/xml/XPathNSResolver.h
+++ b/WebCore/xml/XPathNSResolver.h
@@ -29,12 +29,11 @@
 
 #if ENABLE(XPATH)
 
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
 
-    class String;
-
     class XPathNSResolver : public RefCounted<XPathNSResolver> {
     public:
         virtual ~XPathNSResolver();
diff --git a/WebCore/xml/XPathResult.h b/WebCore/xml/XPathResult.h
index 3b91d66..cbb51f5 100644
--- a/WebCore/xml/XPathResult.h
+++ b/WebCore/xml/XPathResult.h
@@ -30,6 +30,7 @@
 #if ENABLE(XPATH)
 
 #include "XPathValue.h"
+#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
@@ -38,7 +39,6 @@ namespace WebCore {
 
     class Document;
     class Node;
-    class String;
 
     class XPathResult : public RefCounted<XPathResult> {
     public:
diff --git a/WebCore/xml/XPathUtil.h b/WebCore/xml/XPathUtil.h
index 30f21ae..cfb34dc 100644
--- a/WebCore/xml/XPathUtil.h
+++ b/WebCore/xml/XPathUtil.h
@@ -29,12 +29,12 @@
 
 #if ENABLE(XPATH)
 
+#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
     class Node;
-    class String;
 
     namespace XPath {
 
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 5c83bfb..74e50e1 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,13 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * WebKit.xcodeproj/project.pbxproj:
+
 2010-08-03  Joseph Pecoraro  <joepeck at webkit.org>
 
         Reviewed by David Kilzer.
diff --git a/WebKit/WebKit.xcodeproj/project.pbxproj b/WebKit/WebKit.xcodeproj/project.pbxproj
index 52d5b6c..bad03b6 100644
--- a/WebKit/WebKit.xcodeproj/project.pbxproj
+++ b/WebKit/WebKit.xcodeproj/project.pbxproj
@@ -1616,6 +1616,7 @@
 			isa = PBXProject;
 			buildConfigurationList = 149C283208902B0F008A9EFC /* Build configuration list for PBXProject "WebKit" */;
 			compatibilityVersion = "Xcode 2.4";
+			developmentRegion = English;
 			hasScannedForEncodings = 1;
 			knownRegions = (
 				English,
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 63224a1..23cbca8 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,20 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * public/WebCString.h:
+        * public/WebString.h:
+        * src/DOMUtilitiesPrivate.h:
+        * src/DebuggerAgentImpl.h:
+        * src/DebuggerAgentManager.h:
+        * src/WebDevToolsAgentImpl.h:
+        * src/WebDevToolsFrontendImpl.h:
+        * src/WebPageSerializerImpl.h:
+
 2010-08-05  Brett Wilson  <brettw at chromium.org>
 
         Reviewed by Nate Chapin.
diff --git a/WebKit/chromium/public/WebCString.h b/WebKit/chromium/public/WebCString.h
index 2c1e137..d5c47ab 100644
--- a/WebKit/chromium/public/WebCString.h
+++ b/WebKit/chromium/public/WebCString.h
@@ -34,7 +34,7 @@
 #include "WebCommon.h"
 
 #if WEBKIT_IMPLEMENTATION
-namespace WTF { class CString; }
+#include <wtf/Forward.h>
 #else
 #include <string>
 #endif
diff --git a/WebKit/chromium/public/WebString.h b/WebKit/chromium/public/WebString.h
index 2c9664e..3a3590d 100644
--- a/WebKit/chromium/public/WebString.h
+++ b/WebKit/chromium/public/WebString.h
@@ -34,10 +34,7 @@
 #include "WebCommon.h"
 
 #if WEBKIT_IMPLEMENTATION
-namespace WebCore {
-class String;
-class AtomicString;
-}
+#include <wtf/Forward.h>
 #else
 #include <base/nullable_string16.h>
 #include <base/string16.h>
diff --git a/WebKit/chromium/src/DOMUtilitiesPrivate.h b/WebKit/chromium/src/DOMUtilitiesPrivate.h
index 253ab3f..a1275b5 100644
--- a/WebKit/chromium/src/DOMUtilitiesPrivate.h
+++ b/WebKit/chromium/src/DOMUtilitiesPrivate.h
@@ -31,6 +31,8 @@
 #ifndef DOMUtilitiesPrivate_h
 #define DOMUtilitiesPrivate_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
 class Element;
 class HTMLInputElement;
@@ -39,7 +41,6 @@ class HTMLMetaElement;
 class HTMLOptionElement;
 class Node;
 class QualifiedName;
-class String;
 }
 
 // This file is an aggregate of useful WebCore operations.
diff --git a/WebKit/chromium/src/DebuggerAgentImpl.h b/WebKit/chromium/src/DebuggerAgentImpl.h
index d8b13fd..6f4a6c6 100644
--- a/WebKit/chromium/src/DebuggerAgentImpl.h
+++ b/WebKit/chromium/src/DebuggerAgentImpl.h
@@ -32,6 +32,7 @@
 #define DebuggerAgentImpl_h
 
 #include <v8.h>
+#include <wtf/Forward.h>
 #include <wtf/HashSet.h>
 #include <wtf/Noncopyable.h>
 
@@ -40,7 +41,6 @@ class Document;
 class Frame;
 class Node;
 class Page;
-class String;
 }
 
 namespace WebKit {
diff --git a/WebKit/chromium/src/DebuggerAgentManager.h b/WebKit/chromium/src/DebuggerAgentManager.h
index dbb600a..387ee92 100644
--- a/WebKit/chromium/src/DebuggerAgentManager.h
+++ b/WebKit/chromium/src/DebuggerAgentManager.h
@@ -34,6 +34,7 @@
 #include "WebCString.h"
 #include "WebDevToolsAgent.h"
 #include <v8-debug.h>
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/Vector.h>
@@ -41,7 +42,6 @@
 namespace WebCore {
 class Page;
 class PageGroupLoadDeferrer;
-class String;
 }
 
 namespace WebKit {
diff --git a/WebKit/chromium/src/WebDevToolsAgentImpl.h b/WebKit/chromium/src/WebDevToolsAgentImpl.h
index fb8eb70..5b42492 100644
--- a/WebKit/chromium/src/WebDevToolsAgentImpl.h
+++ b/WebKit/chromium/src/WebDevToolsAgentImpl.h
@@ -36,6 +36,7 @@
 #include "WebDevToolsAgentPrivate.h"
 
 #include <v8.h>
+#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 
 namespace WebCore {
@@ -43,7 +44,6 @@ class Document;
 class InspectorClient;
 class InspectorController;
 class Node;
-class String;
 }
 
 namespace WebKit {
diff --git a/WebKit/chromium/src/WebDevToolsFrontendImpl.h b/WebKit/chromium/src/WebDevToolsFrontendImpl.h
index f03c54e..47644ea 100644
--- a/WebKit/chromium/src/WebDevToolsFrontendImpl.h
+++ b/WebKit/chromium/src/WebDevToolsFrontendImpl.h
@@ -34,6 +34,7 @@
 #include "PlatformString.h"
 #include "WebDevToolsFrontend.h"
 #include <v8.h>
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/OwnPtr.h>
@@ -44,7 +45,6 @@ namespace WebCore {
 class ContextMenuItem;
 class Node;
 class Page;
-class String;
 }
 
 namespace WebKit {
diff --git a/WebKit/chromium/src/WebPageSerializerImpl.h b/WebKit/chromium/src/WebPageSerializerImpl.h
index 8f6a99f..64715c1 100644
--- a/WebKit/chromium/src/WebPageSerializerImpl.h
+++ b/WebKit/chromium/src/WebPageSerializerImpl.h
@@ -34,6 +34,7 @@
 #include "PlatformString.h"
 #include "StringBuilder.h"
 #include "StringHash.h"
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/Vector.h>
 
@@ -47,7 +48,6 @@ namespace WebCore {
 class Document;
 class Element;
 class Node;
-class String;
 class TextEncoding;
 }
 
diff --git a/WebKit/efl/ChangeLog b/WebKit/efl/ChangeLog
index e7e209f..158874d 100644
--- a/WebKit/efl/ChangeLog
+++ b/WebKit/efl/ChangeLog
@@ -1,3 +1,13 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * WebCoreSupport/InspectorClientEfl.h:
+
 2010-08-03  Leandro Pereira  <leandro at profusion.mobi>
 
         Reviewed by Kenneth Rohde Christiansen.
diff --git a/WebKit/efl/WebCoreSupport/InspectorClientEfl.h b/WebKit/efl/WebCoreSupport/InspectorClientEfl.h
index 1ca646d..0c283d8 100644
--- a/WebKit/efl/WebCoreSupport/InspectorClientEfl.h
+++ b/WebKit/efl/WebCoreSupport/InspectorClientEfl.h
@@ -33,11 +33,11 @@
 #define InspectorClientEfl_h
 
 #include "InspectorClient.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 class Node;
 class Page;
-class String;
 
 class InspectorClientEfl : public WebCore::InspectorClient {
 public:
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index 087a0a6..a493c0d 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,13 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * WebCoreSupport/InspectorClientGtk.h:
+
 2010-08-05  Xan Lopez  <xlopez at igalia.com>
 
         Reviewed by Gustavo Noronha.
diff --git a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
index fc9b6d8..ec56bd5 100644
--- a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
@@ -33,11 +33,11 @@
 #include "InspectorFrontendClientLocal.h"
 #include "webkitwebview.h"
 #include "webkitwebinspector.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
     class Node;
     class Page;
-    class String;
 }
 
 namespace WebKit {
diff --git a/WebKit/haiku/ChangeLog b/WebKit/haiku/ChangeLog
index 9e2e24d..460e9ba 100644
--- a/WebKit/haiku/ChangeLog
+++ b/WebKit/haiku/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * WebCoreSupport/FrameLoaderClientHaiku.h:
+        * WebCoreSupport/InspectorClientHaiku.h:
+
 2010-07-27  Luiz Agostini  <luiz.agostini at openbossa.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h b/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
index 073c0c3..dfe5747 100644
--- a/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
+++ b/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
@@ -33,6 +33,7 @@
 #include "FrameLoaderClient.h"
 #include "KURL.h"
 #include "ResourceResponse.h"
+#include <wtf/Forward.h>
 
 class BMessenger;
 class WebView;
@@ -44,7 +45,6 @@ namespace WebCore {
     class FormState;
     class NavigationAction;
     class ResourceLoader;
-    class String;
 
     struct LoadErrorResetToken;
 
diff --git a/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h b/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
index 3828d04..5763d12 100644
--- a/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
+++ b/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
@@ -31,12 +31,11 @@
 #define InspectorClientHaiku_h
 
 #include "InspectorClient.h"
-
+#include <wtf/Forward.h>
 
 namespace WebCore {
     class Node;
     class Page;
-    class String;
 
     class InspectorClientHaiku : public InspectorClient {
     public:
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index 74a70df..3c98152 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,18 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * Plugins/Hosted/NetscapePluginInstanceProxy.h:
+        * Plugins/WebBaseNetscapePluginView.h:
+        * WebCoreSupport/WebFrameLoaderClient.h:
+        * WebCoreSupport/WebIconDatabaseClient.h:
+        * WebCoreSupport/WebPluginHalterClient.h:
+        * WebView/WebViewInternal.h:
+
 2010-08-05  Jian Li  <jianli at chromium.org>
 
         Reviewed by David Levin.
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
index 9ca5b5a..d657430 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
@@ -32,16 +32,13 @@
 #include <WebCore/Timer.h>
 #include <WebKit/npapi.h>
 #include <wtf/Deque.h>
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RetainPtr.h>
 #include "WebKitPluginHostTypes.h"
 
-namespace WebCore {
-    class String;
-}
-
 namespace JSC {
     namespace Bindings {
         class Instance;
diff --git a/WebKit/mac/Plugins/WebBaseNetscapePluginView.h b/WebKit/mac/Plugins/WebBaseNetscapePluginView.h
index 4c8ea84..9a29cc2 100644
--- a/WebKit/mac/Plugins/WebBaseNetscapePluginView.h
+++ b/WebKit/mac/Plugins/WebBaseNetscapePluginView.h
@@ -31,6 +31,7 @@
 
 #import "WebNetscapePluginPackage.h"
 #import "WebPluginContainerCheck.h"
+#import <wtf/Forward.h>
 #import <wtf/OwnPtr.h>
 #import <wtf/PassRefPtr.h>
 #import <wtf/RefPtr.h>
@@ -41,10 +42,6 @@
 @class WebFrame;
 @class WebView;
 
-namespace WTF {
-    class CString;
-}
-
 namespace WebCore {
     class HTMLPlugInElement;
 }
diff --git a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
index d750a10..9f2b6a2 100644
--- a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
+++ b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
@@ -43,7 +43,6 @@ namespace WebCore {
     class CachedFrame;
     class HistoryItem;
     class ProtectionSpace;
-    class String;
     class ResourceLoader;
     class ResourceRequest;
 }
diff --git a/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h b/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
index e908242..3fbe3e6 100644
--- a/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
+++ b/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
@@ -27,10 +27,7 @@
  */
 
 #import <WebCore/IconDatabaseClient.h>
-
-namespace WebCore {
-    class String;
-}
+#import <wtf/Forward.h>
 
 class WebIconDatabaseClient : public WebCore::IconDatabaseClient {
 public:
diff --git a/WebKit/mac/WebCoreSupport/WebPluginHalterClient.h b/WebKit/mac/WebCoreSupport/WebPluginHalterClient.h
index a0d398d..6e28665 100644
--- a/WebKit/mac/WebCoreSupport/WebPluginHalterClient.h
+++ b/WebKit/mac/WebCoreSupport/WebPluginHalterClient.h
@@ -24,10 +24,10 @@
  */
 
 #import <WebCore/PluginHalterClient.h>
+#import <wtf/Forward.h>
 
 namespace WebCore {
     class Node;
-    class String;
 }
 
 @class WebView;
diff --git a/WebKit/mac/WebView/WebViewInternal.h b/WebKit/mac/WebView/WebViewInternal.h
index f95d3d3..71a2660 100644
--- a/WebKit/mac/WebView/WebViewInternal.h
+++ b/WebKit/mac/WebView/WebViewInternal.h
@@ -36,8 +36,9 @@
 #ifdef __cplusplus
 #import <WebCore/WebCoreKeyboardUIMode.h>
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
-    class String;
     class Frame;
     class KURL;
     class KeyboardEvent;
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index d71e9d3..3dcf39f 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * WebCoreSupport/FrameLoaderClientQt.h:
+        * WebCoreSupport/InspectorClientQt.h:
+
 2010-08-05  Simon Hausmann  <simon.hausmann at nokia.com>
 
         Reviewed by Tor Arne Vestbø.
diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
index ec672f5..dfb94cc 100644
--- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
+++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
@@ -40,6 +40,7 @@
 #include "ResourceResponse.h"
 #include <QUrl>
 #include <qobject.h>
+#include <wtf/Forward.h>
 class QWebFrame;
 
 namespace WebCore {
@@ -49,7 +50,6 @@ class DocumentLoader;
 class Element;
 class FormState;
 class NavigationAction;
-class String;
 class ResourceLoader;
 
 struct LoadErrorResetToken;
diff --git a/WebKit/qt/WebCoreSupport/InspectorClientQt.h b/WebKit/qt/WebCoreSupport/InspectorClientQt.h
index c996f55..9526c88 100644
--- a/WebKit/qt/WebCoreSupport/InspectorClientQt.h
+++ b/WebKit/qt/WebCoreSupport/InspectorClientQt.h
@@ -35,6 +35,7 @@
 #include "OwnPtr.h"
 #include "PassOwnPtr.h"
 #include <QtCore/QString>
+#include <wtf/Forward.h>
 
 class QWebPage;
 class QWebView;
@@ -42,7 +43,6 @@ class QWebView;
 namespace WebCore {
 class Node;
 class Page;
-class String;
 
 class InspectorClientQt : public InspectorClient {
 public:
diff --git a/WebKit/win/COMVariantSetter.h b/WebKit/win/COMVariantSetter.h
index 22c20e4..0ad6fb1 100644
--- a/WebKit/win/COMVariantSetter.h
+++ b/WebKit/win/COMVariantSetter.h
@@ -29,10 +29,7 @@
 #include <WebCore/BString.h>
 #include <WebCore/COMPtr.h>
 #include <wtf/Assertions.h>
-
-namespace WebCore {
-    class String;
-}
+#include <wtf/Forward.h>
 
 template<typename T> struct COMVariantSetter {};
 
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index 7a208fe..f8646b3 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,17 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * COMVariantSetter.h:
+        * MarshallingHelpers.h:
+        * WebCoreSupport/WebContextMenuClient.h:
+        * WebCoreSupport/WebPluginHalterClient.h:
+        * WebHistory.h:
+
 2010-08-03  Adam Roben  <aroben at apple.com>
 
         Turn on PLATFORM_STRATEGIES on Windows
diff --git a/WebKit/win/MarshallingHelpers.h b/WebKit/win/MarshallingHelpers.h
index bbde61f..170bf9e 100644
--- a/WebKit/win/MarshallingHelpers.h
+++ b/WebKit/win/MarshallingHelpers.h
@@ -26,12 +26,12 @@
 #ifndef MarshallingHelpers_H
 #define MarshallingHelpers_H
 
+#include <wtf/Forward.h>
 #include <CoreFoundation/CoreFoundation.h>
 
 namespace WebCore {
     class IntRect;
     class KURL;
-    class String;
 }
 
 class MarshallingHelpers
diff --git a/WebKit/win/WebCoreSupport/WebContextMenuClient.h b/WebKit/win/WebCoreSupport/WebContextMenuClient.h
index 153e30e..ad1be1e 100644
--- a/WebKit/win/WebCoreSupport/WebContextMenuClient.h
+++ b/WebKit/win/WebCoreSupport/WebContextMenuClient.h
@@ -26,9 +26,6 @@
 #include <WebCore/ContextMenuClient.h>
 #include <wtf/Forward.h>
 
-namespace WebCore {
-    class String;
-}
 class WebView;
 
 class WebContextMenuClient : public WebCore::ContextMenuClient {
diff --git a/WebKit/win/WebCoreSupport/WebPluginHalterClient.h b/WebKit/win/WebCoreSupport/WebPluginHalterClient.h
index da3d28a..856799a 100644
--- a/WebKit/win/WebCoreSupport/WebPluginHalterClient.h
+++ b/WebKit/win/WebCoreSupport/WebPluginHalterClient.h
@@ -27,10 +27,10 @@
 #define WebPluginHalterClient_h
 
 #include <WebCore/PluginHalterClient.h>
+#include <wtf/Forward.h>
 
 namespace WebCore {
     class Node;
-    class String;
 }
 
 class WebView;
diff --git a/WebKit/win/WebHistory.h b/WebKit/win/WebHistory.h
index 9d8acb3..6988ccf 100644
--- a/WebKit/win/WebHistory.h
+++ b/WebKit/win/WebHistory.h
@@ -30,13 +30,13 @@
 
 #include "COMPtr.h"
 #include <CoreFoundation/CoreFoundation.h>
+#include <wtf/Forward.h>
 #include <wtf/OwnArrayPtr.h>
 #include <wtf/RetainPtr.h>
 
 namespace WebCore {
     class KURL;
     class PageGroup;
-    class String;
 }
 
 //-----------------------------------------------------------------------------
diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog
index 189ffb8..faf54f2 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * WebKitSupport/FrameLoaderClientWx.h:
+        * WebKitSupport/InspectorClientWx.h:
+
 2010-08-04  Kevin Ollivier  <kevino at theolliviers.com>
 
         [wx] Build fix for gcc not importing all symbols from convenience libraries.
diff --git a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
index 95ef2e6..0dee4bf 100644
--- a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
+++ b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
@@ -34,6 +34,7 @@
 #include "PluginView.h"
 #include "ResourceResponse.h"
 #include "HTMLPlugInElement.h"
+#include <wtf/Forward.h>
 
 class wxWebFrame;
 class wxWebView;
@@ -45,7 +46,6 @@ namespace WebCore {
     class Element;
     class FormState;
     class NavigationAction;
-    class String;
     class ResourceLoader;
 
     struct LoadErrorResetToken;
diff --git a/WebKit/wx/WebKitSupport/InspectorClientWx.h b/WebKit/wx/WebKitSupport/InspectorClientWx.h
index 698a0f5..799e954 100644
--- a/WebKit/wx/WebKitSupport/InspectorClientWx.h
+++ b/WebKit/wx/WebKitSupport/InspectorClientWx.h
@@ -27,12 +27,12 @@
 #define InspectorClientWx_h
 
 #include "InspectorClient.h"
+#include <wtf/Forward.h>
 
 namespace WebCore {
 
 class Node;
 class Page;
-class String;
 
 class InspectorClientWx : public InspectorClient {
 public:
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index b79d260..6200b58 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,31 @@
+2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+
+        Rubber stamped by Sam Weinig
+
+        Bug 43594 - Add string forwards to Forward.h
+        This allows us to remove forward declarations for these classes from
+        WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
+
+        * UIProcess/PageClient.h:
+        * UIProcess/VisitedLinkProvider.h:
+        * UIProcess/WebContextInjectedBundleClient.h:
+        * UIProcess/WebFrameProxy.h:
+        * UIProcess/WebHistoryClient.h:
+        * UIProcess/WebLoaderClient.h:
+        * UIProcess/WebPolicyClient.h:
+        * UIProcess/WebProcessProxy.h:
+        * UIProcess/WebUIClient.h:
+        * UIProcess/win/WebView.h:
+        * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
+        * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
+        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
+        * WebProcess/Plugins/NPRuntimeObjectMap.h:
+        * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
+        * WebProcess/Plugins/PluginController.h:
+        * WebProcess/WebPage/WebFrame.h:
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebProcess.h:
+
 2010-08-05  Anders Carlsson  <andersca at apple.com>
 
         Reviewed by Sam Weinig.
diff --git a/WebKit2/UIProcess/PageClient.h b/WebKit2/UIProcess/PageClient.h
index fc4bbcf..a4f2d1f 100644
--- a/WebKit2/UIProcess/PageClient.h
+++ b/WebKit2/UIProcess/PageClient.h
@@ -26,8 +26,9 @@
 #ifndef PageClient_h
 #define PageClient_h
 
+#include <wtf/Forward.h>
+
 namespace WebCore {
-    class String;
     class Cursor;
 }
 
diff --git a/WebKit2/UIProcess/VisitedLinkProvider.h b/WebKit2/UIProcess/VisitedLinkProvider.h
index 82d5e50..f095ba5 100644
--- a/WebKit2/UIProcess/VisitedLinkProvider.h
+++ b/WebKit2/UIProcess/VisitedLinkProvider.h
@@ -29,13 +29,10 @@
 #include "RunLoop.h"
 #include "VisitedLinkTable.h"
 #include <WebCore/LinkHash.h>
+#include <wtf/Forward.h>
 #include <wtf/HashSet.h>
 #include <wtf/Noncopyable.h>
 
-namespace WebCore {
-    class String;
-}
-
 namespace WebKit {
 
 class WebContext;
diff --git a/WebKit2/UIProcess/WebContextInjectedBundleClient.h b/WebKit2/UIProcess/WebContextInjectedBundleClient.h
index c19c70a..051eba5 100644
--- a/WebKit2/UIProcess/WebContextInjectedBundleClient.h
+++ b/WebKit2/UIProcess/WebContextInjectedBundleClient.h
@@ -27,10 +27,7 @@
 #define WebContextInjectedBundleClient_h
 
 #include "WKContext.h"
-
-namespace WebCore {
-    class String;
-}
+#include <wtf/Forward.h>
 
 namespace WebKit {
 
diff --git a/WebKit2/UIProcess/WebFrameProxy.h b/WebKit2/UIProcess/WebFrameProxy.h
index 59d6be6..ec20f0c 100644
--- a/WebKit2/UIProcess/WebFrameProxy.h
+++ b/WebKit2/UIProcess/WebFrameProxy.h
@@ -30,6 +30,7 @@
 #include "WebFramePolicyListenerProxy.h"
 #include <WebCore/FrameLoaderTypes.h>
 #include <WebCore/PlatformString.h>
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
 namespace CoreIPC {
@@ -38,10 +39,6 @@ namespace CoreIPC {
     class MessageID;
 }
 
-namespace WebCore {
-    class String;
-}
-
 namespace WebKit {
 
 class WebPageProxy;
diff --git a/WebKit2/UIProcess/WebHistoryClient.h b/WebKit2/UIProcess/WebHistoryClient.h
index 3ce6ad2..7b0eab9 100644
--- a/WebKit2/UIProcess/WebHistoryClient.h
+++ b/WebKit2/UIProcess/WebHistoryClient.h
@@ -27,10 +27,7 @@
 #define WebHistoryClient_h
 
 #include "WKContext.h"
-
-namespace WebCore {
-    class String;
-}
+#include <wtf/Forward.h>
 
 namespace WebKit {
 
diff --git a/WebKit2/UIProcess/WebLoaderClient.h b/WebKit2/UIProcess/WebLoaderClient.h
index 1d07de4..867eb94 100644
--- a/WebKit2/UIProcess/WebLoaderClient.h
+++ b/WebKit2/UIProcess/WebLoaderClient.h
@@ -27,10 +27,7 @@
 #define WebLoaderClient_h
 
 #include "WKPage.h"
-
-namespace WebCore {
-    class StringImpl;
-}
+#include <wtf/Forward.h>
 
 namespace WebKit {
 
diff --git a/WebKit2/UIProcess/WebPolicyClient.h b/WebKit2/UIProcess/WebPolicyClient.h
index 5a6390a..25b4cae 100644
--- a/WebKit2/UIProcess/WebPolicyClient.h
+++ b/WebKit2/UIProcess/WebPolicyClient.h
@@ -28,10 +28,7 @@
 
 #include "WKPage.h"
 #include <WebCore/FrameLoaderTypes.h>
-
-namespace WebCore {
-    class String;
-}
+#include <wtf/Forward.h>
 
 namespace WebKit {
 
diff --git a/WebKit2/UIProcess/WebProcessProxy.h b/WebKit2/UIProcess/WebProcessProxy.h
index 6808b6f..eb97083 100644
--- a/WebKit2/UIProcess/WebProcessProxy.h
+++ b/WebKit2/UIProcess/WebProcessProxy.h
@@ -33,6 +33,7 @@
 #include "ProcessModel.h"
 #include "ResponsivenessTimer.h"
 #include "WebPageProxy.h"
+#include <wtf/Forward.h>
 #include <WebCore/LinkHash.h>
 #include <wtf/HashMap.h>
 #include <wtf/PassRefPtr.h>
@@ -40,7 +41,6 @@
 
 namespace WebCore {
     class KURL;
-    class String;
 };
 
 namespace WebKit {
diff --git a/WebKit2/UIProcess/WebUIClient.h b/WebKit2/UIProcess/WebUIClient.h
index df2e715..8533cd3 100644
--- a/WebKit2/UIProcess/WebUIClient.h
+++ b/WebKit2/UIProcess/WebUIClient.h
@@ -27,12 +27,9 @@
 #define WebUIClient_h
 
 #include "WKPage.h"
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
-namespace WebCore {
-    class String;
-}
-
 namespace WebKit {
 
 class WebFrameProxy;
diff --git a/WebKit2/UIProcess/win/WebView.h b/WebKit2/UIProcess/win/WebView.h
index 0864e61..118f242 100644
--- a/WebKit2/UIProcess/win/WebView.h
+++ b/WebKit2/UIProcess/win/WebView.h
@@ -30,13 +30,10 @@
 #include "PageClient.h"
 #include "WebPageProxy.h"
 #include <WebCore/WindowMessageListener.h>
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
 
-namespace WebCore {
-    class String;
-}
-
 namespace WebKit {
 
 class DrawingAreaProxy;
diff --git a/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h b/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h
index 62bb687..fc6d0a3 100644
--- a/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h
+++ b/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h
@@ -29,12 +29,12 @@
 #include "WKBundlePage.h"
 #include <WebCore/EditorInsertAction.h>
 #include <WebCore/TextAffinity.h>
+#include <wtf/Forward.h>
 
 namespace WebCore {
     class CSSStyleDeclaration;
     class Node;
     class Range;
-    class StringImpl;
 }
 
 namespace WebKit {
diff --git a/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h b/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h
index 59782a5..707cea9 100644
--- a/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h
+++ b/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h
@@ -28,10 +28,7 @@
 
 #include "WKBundlePage.h"
 #include <JavaScriptCore/JSBase.h>
-
-namespace WebCore {
-    class String;
-}
+#include <wtf/Forward.h>
 
 namespace WebKit {
 
diff --git a/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h b/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h
index ba19cd1..cbc8591 100644
--- a/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h
+++ b/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h
@@ -27,10 +27,7 @@
 #define InjectedBundlePageUIClient_h
 
 #include "WKBundlePage.h"
-
-namespace WebCore {
-    class String;
-}
+#include <wtf/Forward.h>
 
 namespace WebKit {
 
diff --git a/WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.h b/WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.h
index 2b8e49f..1de8212 100644
--- a/WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.h
+++ b/WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.h
@@ -26,6 +26,7 @@
 #ifndef NPJSObjectWrapperMap_h
 #define NPJSObjectWrapperMap_h
 
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 
 struct NPObject;
@@ -38,10 +39,6 @@ namespace JSC {
     class JSValue;
 }
 
-namespace WebCore {
-    class String;
-}
-
 namespace WebKit {
 
 class JSNPObject;
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h b/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h
index 983324e..4b6ffac 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h
@@ -29,6 +29,7 @@
 #include "RunLoop.h"
 #include <WebCore/FileSystem.h>
 #include <WebCore/npapi.h>
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
@@ -36,7 +37,6 @@
 
 namespace WebCore {
     class KURL;
-    class String;
 }
 
 namespace WebKit {
diff --git a/WebKit2/WebProcess/Plugins/PluginController.h b/WebKit2/WebProcess/Plugins/PluginController.h
index 9e9ed12..e4611af 100644
--- a/WebKit2/WebProcess/Plugins/PluginController.h
+++ b/WebKit2/WebProcess/Plugins/PluginController.h
@@ -26,6 +26,8 @@
 #ifndef PluginController_h
 #define PluginController_h
 
+#include <wtf/Forward.h>
+
 struct NPObject;
 typedef struct _NPVariant NPVariant;
 
@@ -33,7 +35,6 @@ namespace WebCore {
     class HTTPHeaderMap;
     class IntRect;
     class KURL;
-    class String;
 }
 
 namespace WebKit {
diff --git a/WebKit2/WebProcess/WebPage/WebFrame.h b/WebKit2/WebProcess/WebPage/WebFrame.h
index 6a018ee..3bd86cc 100644
--- a/WebKit2/WebProcess/WebPage/WebFrame.h
+++ b/WebKit2/WebProcess/WebPage/WebFrame.h
@@ -33,13 +33,13 @@
 #include <WebCore/FrameLoaderClient.h>
 #include <WebCore/FrameLoaderTypes.h>
 #include <WebCore/PolicyChecker.h>
+#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
 
 namespace WebCore {
     class Frame;
     class HTMLFrameOwnerElement;
-    class String;
 }
 
 namespace WebKit {
diff --git a/WebKit2/WebProcess/WebPage/WebPage.h b/WebKit2/WebProcess/WebPage/WebPage.h
index 2964a4c..2a88498 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.h
+++ b/WebKit2/WebProcess/WebPage/WebPage.h
@@ -33,6 +33,7 @@
 #include "InjectedBundlePageUIClient.h"
 #include <WebCore/FrameLoaderTypes.h>
 #include <WebCore/IntRect.h>
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassRefPtr.h>
@@ -48,7 +49,6 @@ namespace WebCore {
     class GraphicsContext;
     class KeyboardEvent;
     class Page;
-    class String;
 }
 
 namespace WebKit {
diff --git a/WebKit2/WebProcess/WebProcess.h b/WebKit2/WebProcess/WebProcess.h
index dfcb2ef..ab68e46 100644
--- a/WebKit2/WebProcess/WebProcess.h
+++ b/WebKit2/WebProcess/WebProcess.h
@@ -31,11 +31,11 @@
 #include "SharedMemory.h"
 #include "VisitedLinkTable.h"
 #include <WebCore/LinkHash.h>
+#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 
 namespace WebCore {
     class IntSize;
-    class String;
 }
 
 namespace WebKit {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list