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

jberlin at webkit.org jberlin at webkit.org
Wed Dec 22 11:47:01 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit d6cf213a50a73ef89c1a310752caecc84fa0fab7
Author: jberlin at webkit.org <jberlin at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Aug 6 18:49:23 2010 +0000

    2010-08-06  Jessie Berlin  <jberlin at apple.com>
    
            Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
            Unreviewed.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64861 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index 64d366d..95140ae 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,5 +1,13 @@
 2010-08-06  Jessie Berlin  <jberlin at apple.com>
 
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
+
+        * JavaScriptCore.xcodeproj/project.pbxproj:
+        * wtf/Forward.h:
+
+2010-08-06  Jessie Berlin  <jberlin at apple.com>
+
         Windows Build Fix (continued). Unreviewed.
 
         * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
diff --git a/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj b/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
index d85264d..4809218 100644
--- a/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
+++ b/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
@@ -2319,7 +2319,6 @@
 			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 c9644db..448de7d 100644
--- a/JavaScriptCore/wtf/Forward.h
+++ b/JavaScriptCore/wtf/Forward.h
@@ -31,8 +31,6 @@ 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;
@@ -43,18 +41,4 @@ 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 c9b6e36..0b3c66d 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,234 @@
+2010-08-06  Jessie Berlin  <jberlin at apple.com>
+
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
+
+        * 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-04  Zhenyao Mo  <zmo at google.com>
 
         Reviewed by Dimitri Glazkov.
diff --git a/WebCore/accessibility/AXObjectCache.h b/WebCore/accessibility/AXObjectCache.h
index f4f7b3d..f18d08a 100644
--- a/WebCore/accessibility/AXObjectCache.h
+++ b/WebCore/accessibility/AXObjectCache.h
@@ -29,7 +29,6 @@
 #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>
@@ -46,6 +45,7 @@ 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 dc3c3ee..3511f0f 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 c500283..c4c9315 100644
--- a/WebCore/accessibility/AccessibilityListBoxOption.h
+++ b/WebCore/accessibility/AccessibilityListBoxOption.h
@@ -31,7 +31,6 @@
 
 #include "AccessibilityObject.h"
 #include "HTMLElement.h"
-#include <wtf/Forward.h>
 
 namespace WebCore {
 
@@ -39,6 +38,7 @@ 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 14a27e6..c517855 100644
--- a/WebCore/accessibility/AccessibilityObject.h
+++ b/WebCore/accessibility/AccessibilityObject.h
@@ -34,7 +34,6 @@
 #include "Range.h"
 #include "VisiblePosition.h"
 #include "VisibleSelection.h"
-#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 #include <wtf/Vector.h>
 
@@ -88,6 +87,7 @@ 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 52664a5..c05bc2d 100644
--- a/WebCore/accessibility/AccessibilityRenderObject.h
+++ b/WebCore/accessibility/AccessibilityRenderObject.h
@@ -31,7 +31,6 @@
 
 #include "AccessibilityObject.h"
 #include "RenderObject.h"
-#include <wtf/Forward.h>
 
 namespace WebCore {
     
@@ -53,6 +52,7 @@ 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 40f6639..42edf2a 100644
--- a/WebCore/accessibility/AccessibilityTable.h
+++ b/WebCore/accessibility/AccessibilityTable.h
@@ -30,7 +30,6 @@
 #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
@@ -40,6 +39,7 @@
 
 namespace WebCore {
 
+class String;
 class AccessibilityTableCell;
 class AccessibilityTableHeaderContainer;
     
diff --git a/WebCore/bindings/cpp/WebDOMCString.h b/WebCore/bindings/cpp/WebDOMCString.h
index c921895..e02a587 100644
--- a/WebCore/bindings/cpp/WebDOMCString.h
+++ b/WebCore/bindings/cpp/WebDOMCString.h
@@ -22,9 +22,12 @@
 #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 400c483..ca09ee8 100644
--- a/WebCore/bindings/cpp/WebDOMString.h
+++ b/WebCore/bindings/cpp/WebDOMString.h
@@ -22,7 +22,11 @@
 #define WebDOMString_h
 
 #include <WebDOMCString.h>
-#include <wtf/Forward.h>
+
+namespace WebCore {
+class String;
+class AtomicString;
+}
 
 class WebDOMStringPrivate;
 
diff --git a/WebCore/bindings/gobject/ConvertToUTF8String.h b/WebCore/bindings/gobject/ConvertToUTF8String.h
index 37132e7..02b6416 100644
--- a/WebCore/bindings/gobject/ConvertToUTF8String.h
+++ b/WebCore/bindings/gobject/ConvertToUTF8String.h
@@ -21,9 +21,8 @@
 #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 35b68fc..832c5e0 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 7086a89..3f2502d 100644
--- a/WebCore/bindings/js/JSDOMBinding.h
+++ b/WebCore/bindings/js/JSDOMBinding.h
@@ -30,7 +30,6 @@
 #include <runtime/Completion.h>
 #include <runtime/Lookup.h>
 #include <runtime/WeakGCMap.h>
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 namespace JSC {
@@ -45,6 +44,7 @@ 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 f4f1ef9..2726996 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 8396ae1..62ebef1 100644
--- a/WebCore/bindings/js/JSMessagePortCustom.h
+++ b/WebCore/bindings/js/JSMessagePortCustom.h
@@ -33,12 +33,13 @@
 
 #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 c23a43d..574c782 100644
--- a/WebCore/bindings/js/JavaScriptCallFrame.h
+++ b/WebCore/bindings/js/JavaScriptCallFrame.h
@@ -30,12 +30,13 @@
 
 #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 8dae637..80155e4 100644
--- a/WebCore/bindings/js/ScriptController.h
+++ b/WebCore/bindings/js/ScriptController.h
@@ -26,7 +26,6 @@
 #include "ScriptControllerBase.h"
 #include "ScriptInstance.h"
 #include <runtime/Protect.h>
-#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 
 #if PLATFORM(MAC)
@@ -58,6 +57,7 @@ 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 b39d2c9..8b98e49 100644
--- a/WebCore/bindings/js/ScriptProfile.h
+++ b/WebCore/bindings/js/ScriptProfile.h
@@ -29,7 +29,6 @@
 
 #if ENABLE(JAVASCRIPT_DEBUGGER)
 #include "ScriptProfileNode.h"
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
@@ -41,6 +40,7 @@ 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 de4e307..2144169 100644
--- a/WebCore/bindings/js/ScriptSourceProvider.h
+++ b/WebCore/bindings/js/ScriptSourceProvider.h
@@ -28,10 +28,11 @@
 #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 558ad33..ad0ae95 100644
--- a/WebCore/bindings/js/ScriptString.h
+++ b/WebCore/bindings/js/ScriptString.h
@@ -35,10 +35,11 @@
 #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 be7da4d..60c3b04 100644
--- a/WebCore/bindings/js/WorkerScriptController.h
+++ b/WebCore/bindings/js/WorkerScriptController.h
@@ -30,7 +30,6 @@
 #if ENABLE(WORKERS)
 
 #include <runtime/Protect.h>
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/Threading.h>
 
@@ -43,6 +42,7 @@ 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 dabe90c..877a3b6 100644
--- a/WebCore/bindings/objc/DOMImplementationFront.h
+++ b/WebCore/bindings/objc/DOMImplementationFront.h
@@ -37,6 +37,7 @@ 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 c8b6f42..003885f 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 cd20cda..04a15f6 100644
--- a/WebCore/bindings/v8/ScriptController.h
+++ b/WebCore/bindings/v8/ScriptController.h
@@ -39,7 +39,6 @@
 
 #include <v8.h>
 
-#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
@@ -53,6 +52,7 @@ 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 2ccb410..f4eaff2 100644
--- a/WebCore/bindings/v8/V8DOMWindowShell.h
+++ b/WebCore/bindings/v8/V8DOMWindowShell.h
@@ -32,7 +32,6 @@
 #define V8DOMWindowShell_h
 
 #include "WrapperTypeInfo.h"
-#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -42,6 +41,7 @@ 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 0eefa22..841c249 100644
--- a/WebCore/bindings/v8/V8Proxy.h
+++ b/WebCore/bindings/v8/V8Proxy.h
@@ -42,7 +42,6 @@
 #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>
 
@@ -60,6 +59,7 @@ 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 2b82f4d..cbe7a7b 100644
--- a/WebCore/bindings/v8/V8Utilities.h
+++ b/WebCore/bindings/v8/V8Utilities.h
@@ -31,7 +31,6 @@
 #ifndef V8Utilities_h
 #define V8Utilities_h
 
-#include <wtf/Forward.h>
 #include <v8.h>
 
 namespace WebCore {
@@ -41,6 +40,7 @@ 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 9677252..cf84438 100644
--- a/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
+++ b/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.h
@@ -41,6 +41,7 @@
 
 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 9d61c8c..6af8fb6 100644
--- a/WebCore/bridge/c/c_utility.h
+++ b/WebCore/bridge/c/c_utility.h
@@ -30,7 +30,10 @@
 
 #include "npruntime_internal.h"
 #include <runtime/JSValue.h>
-#include <wtf/Forward.h>
+
+namespace WebCore {
+    class String;
+}
 
 namespace JSC {
 
diff --git a/WebCore/css/CSSFontSelector.h b/WebCore/css/CSSFontSelector.h
index d9cce1c..af454bd 100644
--- a/WebCore/css/CSSFontSelector.h
+++ b/WebCore/css/CSSFontSelector.h
@@ -28,18 +28,19 @@
 
 #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 331815e..2e33377 100644
--- a/WebCore/css/CSSHelper.h
+++ b/WebCore/css/CSSHelper.h
@@ -22,10 +22,10 @@
 #ifndef CSSHelper_h
 #define CSSHelper_h
 
-#include <wtf/Forward.h>
-
 namespace WebCore {
 
+    class String;
+
     // 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
     // includes trimming leading and trailing control characters (including whitespace), removing
diff --git a/WebCore/css/CSSOMUtils.h b/WebCore/css/CSSOMUtils.h
index 749cb25..6602b35 100644
--- a/WebCore/css/CSSOMUtils.h
+++ b/WebCore/css/CSSOMUtils.h
@@ -31,7 +31,6 @@
 #ifndef CSSOMUtils_h
 #define CSSOMUtils_h
 
-#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 #include <wtf/unicode/Unicode.h>
 
@@ -39,6 +38,8 @@
 
 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 b11c7f0..a71c8c6 100644
--- a/WebCore/css/CSSPrimitiveValue.h
+++ b/WebCore/css/CSSPrimitiveValue.h
@@ -24,7 +24,6 @@
 
 #include "CSSValue.h"
 #include "Color.h"
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
@@ -35,6 +34,7 @@ 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 e91ca9d..f1eb0c0 100644
--- a/WebCore/css/MediaList.h
+++ b/WebCore/css/MediaList.h
@@ -22,7 +22,6 @@
 #define MediaList_h
 
 #include "StyleBase.h"
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/Vector.h>
 
@@ -31,6 +30,7 @@ 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 296c8fb..fbd7beb 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 a486511..ecdc1cf 100644
--- a/WebCore/css/StyleSheetList.h
+++ b/WebCore/css/StyleSheetList.h
@@ -21,7 +21,6 @@
 #ifndef StyleSheetList_h
 #define StyleSheetList_h
 
-#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/Vector.h>
@@ -31,6 +30,7 @@ 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 2836942..f58406f 100644
--- a/WebCore/css/WebKitCSSKeyframesRule.h
+++ b/WebCore/css/WebKitCSSKeyframesRule.h
@@ -27,7 +27,6 @@
 #define WebKitCSSKeyframesRule_h
 
 #include "CSSRule.h"
-#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 #include "AtomicString.h"
 
@@ -35,6 +34,7 @@ namespace WebCore {
 
 class CSSRuleList;
 class WebKitCSSKeyframeRule;
+class String;
 
 typedef int ExceptionCode;
 
diff --git a/WebCore/dom/CheckedRadioButtons.h b/WebCore/dom/CheckedRadioButtons.h
index de7b712..5a57955 100644
--- a/WebCore/dom/CheckedRadioButtons.h
+++ b/WebCore/dom/CheckedRadioButtons.h
@@ -21,12 +21,13 @@
 #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 a20f7d2..c3d5658 100644
--- a/WebCore/dom/DOMImplementation.h
+++ b/WebCore/dom/DOMImplementation.h
@@ -24,7 +24,6 @@
 #ifndef DOMImplementation_h
 #define DOMImplementation_h
 
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -36,6 +35,7 @@ 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 55d2e33..8945eb0 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 db133b7..f97c38f 100644
--- a/WebCore/dom/DynamicNodeList.h
+++ b/WebCore/dom/DynamicNodeList.h
@@ -31,6 +31,7 @@
 
 namespace WebCore {
 
+    class AtomicString;
     class Element;
     class Node;
 
diff --git a/WebCore/dom/EventTarget.h b/WebCore/dom/EventTarget.h
index 406c2fd..1ff9031 100644
--- a/WebCore/dom/EventTarget.h
+++ b/WebCore/dom/EventTarget.h
@@ -41,6 +41,7 @@
 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 10426e5..65332b8 100644
--- a/WebCore/dom/MessagePort.h
+++ b/WebCore/dom/MessagePort.h
@@ -31,7 +31,6 @@
 #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>
@@ -40,10 +39,12 @@
 
 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 f308a29..192cb92 100644
--- a/WebCore/dom/MessagePortChannel.h
+++ b/WebCore/dom/MessagePortChannel.h
@@ -36,7 +36,6 @@
 #include "SerializedScriptValue.h"
 
 #include <wtf/OwnPtr.h>
-#include <wtf/Forward.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -49,6 +48,7 @@ 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 b7f5bfc..4f109b4 100644
--- a/WebCore/dom/NameNodeList.h
+++ b/WebCore/dom/NameNodeList.h
@@ -26,10 +26,11 @@
 
 #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 b808ad7..e3c1910 100644
--- a/WebCore/dom/Node.h
+++ b/WebCore/dom/Node.h
@@ -30,18 +30,20 @@
 #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 d4e18aa..99a0662 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 b98a3f2..e4b1566 100644
--- a/WebCore/dom/OptionGroupElement.h
+++ b/WebCore/dom/OptionGroupElement.h
@@ -21,11 +21,10 @@
 #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 d2da307..2ec98ae 100644
--- a/WebCore/dom/ScriptExecutionContext.h
+++ b/WebCore/dom/ScriptExecutionContext.h
@@ -29,7 +29,6 @@
 
 #include "Console.h"
 #include "KURL.h"
-#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/HashSet.h>
 #include <wtf/PassOwnPtr.h>
@@ -52,6 +51,7 @@ 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 f00bb67..3831ac4 100644
--- a/WebCore/dom/SelectElement.h
+++ b/WebCore/dom/SelectElement.h
@@ -23,7 +23,6 @@
 #define SelectElement_h
 
 #include "Event.h"
-#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
@@ -35,6 +34,7 @@ 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 1fac0df..db90111 100644
--- a/WebCore/dom/ViewportArguments.h
+++ b/WebCore/dom/ViewportArguments.h
@@ -26,11 +26,10 @@
 #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 ed20f89..9e0784a 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 4029ea2..3b68efb 100644
--- a/WebCore/editing/HTMLInterchange.h
+++ b/WebCore/editing/HTMLInterchange.h
@@ -26,10 +26,9 @@
 #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 8612440..e60ada9 100644
--- a/WebCore/editing/htmlediting.h
+++ b/WebCore/editing/htmlediting.h
@@ -39,6 +39,7 @@ 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 dbf8b80..5428097 100644
--- a/WebCore/editing/markup.h
+++ b/WebCore/editing/markup.h
@@ -38,6 +38,7 @@ 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 df1d1fa..70a5af7 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 6c24858..f071d4a 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 8a7ec75..ed72863 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 efc3248..a15d558 100644
--- a/WebCore/html/DateComponents.h
+++ b/WebCore/html/DateComponents.h
@@ -32,11 +32,12 @@
 #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 b5eccd4..a15cd59 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 8523d4a..0bdbcee 100644
--- a/WebCore/html/FileStreamProxy.h
+++ b/WebCore/html/FileStreamProxy.h
@@ -35,7 +35,6 @@
 #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>
@@ -46,6 +45,7 @@ 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 38b07f9..f4bb905 100644
--- a/WebCore/html/FormDataList.h
+++ b/WebCore/html/FormDataList.h
@@ -23,7 +23,6 @@
 
 #include "Blob.h"
 #include "TextEncoding.h"
-#include <wtf/Forward.h>
 #include <wtf/text/CString.h>
 
 namespace WebCore {
@@ -37,7 +36,7 @@ public:
         appendString(key);
         appendString(value);
     }
-    void appendData(const String& key, const CString& value)
+    void appendData(const String& key, const WTF::CString& value)
     {
         appendString(key);
         appendString(value);
@@ -53,7 +52,7 @@ public:
     const TextEncoding& encoding() const { return m_encoding; }
 
 private:
-    void appendString(const CString&);
+    void appendString(const WTF::CString&);
     void appendString(const String&);
 
     TextEncoding m_encoding;
diff --git a/WebCore/html/HTMLCollection.h b/WebCore/html/HTMLCollection.h
index 4359724..eea1777 100644
--- a/WebCore/html/HTMLCollection.h
+++ b/WebCore/html/HTMLCollection.h
@@ -31,9 +31,12 @@
 
 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 cf668c6..62d031f 100644
--- a/WebCore/html/HTMLElementStack.h
+++ b/WebCore/html/HTMLElementStack.h
@@ -26,7 +26,6 @@
 #ifndef HTMLElementStack_h
 #define HTMLElementStack_h
 
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
@@ -34,6 +33,7 @@
 
 namespace WebCore {
 
+class AtomicString;
 class Element;
 class QualifiedName;
 
diff --git a/WebCore/html/HTMLFormattingElementList.h b/WebCore/html/HTMLFormattingElementList.h
index aca05bb..135163c 100644
--- a/WebCore/html/HTMLFormattingElementList.h
+++ b/WebCore/html/HTMLFormattingElementList.h
@@ -32,6 +32,7 @@
 
 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 50de710..176bbfb 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 9261da6..df47e73 100644
--- a/WebCore/html/HTMLQuoteElement.h
+++ b/WebCore/html/HTMLQuoteElement.h
@@ -24,11 +24,12 @@
 #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 5b40a93..a129520 100644
--- a/WebCore/html/HTMLScriptRunnerHost.h
+++ b/WebCore/html/HTMLScriptRunnerHost.h
@@ -26,10 +26,9 @@
 #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 ce044ea..2f5013a 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 7550f9b..0a77652 100644
--- a/WebCore/html/canvas/CanvasGradient.h
+++ b/WebCore/html/canvas/CanvasGradient.h
@@ -28,12 +28,13 @@
 #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 09714a0..eb79866 100644
--- a/WebCore/html/canvas/CanvasNumberArray.h
+++ b/WebCore/html/canvas/CanvasNumberArray.h
@@ -26,7 +26,6 @@
 #ifndef CanvasNumberArray_h
 #define CanvasNumberArray_h
 
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
@@ -34,6 +33,8 @@
 
 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 91e0794..6c012d1 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 b2d88f4..d07f5ac 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 2a05d71..5691201 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,6 +44,7 @@ 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 acd8b28..61900bb 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 cbbbc53..c20eb10 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 f6556d7..642f093 100644
--- a/WebCore/inspector/InspectorValues.h
+++ b/WebCore/inspector/InspectorValues.h
@@ -36,7 +36,6 @@
 #include "PlatformString.h"
 #include "StringHash.h"
 
-#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
@@ -45,6 +44,7 @@ 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 5973402..539b000 100644
--- a/WebCore/inspector/ScriptDebugListener.h
+++ b/WebCore/inspector/ScriptDebugListener.h
@@ -33,10 +33,11 @@
 #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 40a6a06..be3f87e 100644
--- a/WebCore/loader/CachedResourceClient.h
+++ b/WebCore/loader/CachedResourceClient.h
@@ -26,7 +26,6 @@
 #define CachedResourceClient_h
 
 #include <wtf/FastAllocBase.h>
-#include <wtf/Forward.h>
 
 #if ENABLE(XBL)
 namespace XBL {
@@ -40,6 +39,7 @@ 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 c44963b..4a904d6 100644
--- a/WebCore/loader/CrossOriginAccessControl.h
+++ b/WebCore/loader/CrossOriginAccessControl.h
@@ -24,13 +24,12 @@
  *
  */
 
-#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 ebf3a25..9800b9a 100644
--- a/WebCore/loader/DocumentThreadableLoader.h
+++ b/WebCore/loader/DocumentThreadableLoader.h
@@ -34,7 +34,6 @@
 #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>
@@ -44,6 +43,7 @@ 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 35eee32..7ef1dbc 100644
--- a/WebCore/loader/FrameLoaderClient.h
+++ b/WebCore/loader/FrameLoaderClient.h
@@ -75,6 +75,7 @@ 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 0203e08..e9d04dc 100644
--- a/WebCore/loader/RedirectScheduler.h
+++ b/WebCore/loader/RedirectScheduler.h
@@ -33,7 +33,6 @@
 
 #include "Event.h"
 #include "Timer.h"
-#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
@@ -43,6 +42,7 @@ 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 df08870..4bdb787 100644
--- a/WebCore/loader/SubframeLoader.h
+++ b/WebCore/loader/SubframeLoader.h
@@ -40,6 +40,7 @@
 
 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 de0614a..b398756 100644
--- a/WebCore/loader/appcache/DOMApplicationCache.h
+++ b/WebCore/loader/appcache/DOMApplicationCache.h
@@ -33,7 +33,6 @@
 #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>
@@ -41,8 +40,10 @@
 
 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 c3b9464..bf1d5c6 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 c210d7d..1811214 100644
--- a/WebCore/loader/icon/IconDatabaseClient.h
+++ b/WebCore/loader/icon/IconDatabaseClient.h
@@ -29,7 +29,6 @@
 #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
@@ -37,6 +36,8 @@
  
 namespace WebCore {
 
+class String;
+
 class IconDatabaseClient : public Noncopyable {
 public:
     virtual ~IconDatabaseClient() { }
diff --git a/WebCore/notifications/NotificationPresenter.h b/WebCore/notifications/NotificationPresenter.h
index 9602199..e3e7ee2 100644
--- a/WebCore/notifications/NotificationPresenter.h
+++ b/WebCore/notifications/NotificationPresenter.h
@@ -42,6 +42,7 @@ 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 5ee8897..30edf28 100644
--- a/WebCore/page/Chrome.h
+++ b/WebCore/page/Chrome.h
@@ -48,6 +48,7 @@ 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 d0bdd1e..28e0b4f 100644
--- a/WebCore/page/ChromeClient.h
+++ b/WebCore/page/ChromeClient.h
@@ -46,6 +46,7 @@ class NSResponder;
 
 namespace WebCore {
 
+    class AtomicString;
     class Element;
     class FileChooser;
     class FloatRect;
@@ -58,6 +59,7 @@ 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 ab62525..d057ff9 100644
--- a/WebCore/page/Console.h
+++ b/WebCore/page/Console.h
@@ -33,7 +33,6 @@
 #include "PlatformString.h"
 #include "ScriptProfile.h"
 
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -45,6 +44,7 @@ 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 f91536b..1997cd0 100644
--- a/WebCore/page/ContextMenuClient.h
+++ b/WebCore/page/ContextMenuClient.h
@@ -27,7 +27,6 @@
 #define ContextMenuClient_h
 
 #include "PlatformMenuDescription.h"
-#include <wtf/Forward.h>
 
 namespace WebCore {
     class ContextMenu;
@@ -35,6 +34,7 @@ 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 b0421c7..0287e44 100644
--- a/WebCore/page/DOMSelection.h
+++ b/WebCore/page/DOMSelection.h
@@ -39,6 +39,7 @@ 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 93e27ff..ff5bf94 100644
--- a/WebCore/page/EditorClient.h
+++ b/WebCore/page/EditorClient.h
@@ -58,6 +58,7 @@ 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 ca19a0c..242601b 100644
--- a/WebCore/page/EventHandler.h
+++ b/WebCore/page/EventHandler.h
@@ -45,6 +45,7 @@ class NSView;
 
 namespace WebCore {
 
+class AtomicString;
 class Clipboard;
 class Cursor;
 class Event;
@@ -65,6 +66,7 @@ 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 cc32404..9765c6f 100644
--- a/WebCore/page/FrameView.h
+++ b/WebCore/page/FrameView.h
@@ -47,6 +47,7 @@ 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 dd57180..c7f7e49 100644
--- a/WebCore/page/GeolocationPositionCache.h
+++ b/WebCore/page/GeolocationPositionCache.h
@@ -26,7 +26,6 @@
 #ifndef GeolocationPositionCache_h
 #define GeolocationPositionCache_h
 
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
 
@@ -34,6 +33,7 @@
 namespace WebCore {
 
 class Geoposition;
+class String;
 
 class GeolocationPositionCache {
   public:
diff --git a/WebCore/page/History.h b/WebCore/page/History.h
index e885847..66a6a03 100644
--- a/WebCore/page/History.h
+++ b/WebCore/page/History.h
@@ -27,7 +27,6 @@
 #define History_h
 
 #include "KURL.h"
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -35,6 +34,7 @@ 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 808eff9..065bde1 100644
--- a/WebCore/page/Location.h
+++ b/WebCore/page/Location.h
@@ -29,7 +29,6 @@
 #ifndef Location_h
 #define Location_h
 
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -37,6 +36,7 @@ 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 d44a0d8..3a07126 100644
--- a/WebCore/page/Navigator.h
+++ b/WebCore/page/Navigator.h
@@ -21,7 +21,6 @@
 #define Navigator_h
 
 #include "NavigatorBase.h"
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
@@ -33,6 +32,7 @@ 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 8f576e3..4c09f47 100644
--- a/WebCore/page/NavigatorBase.h
+++ b/WebCore/page/NavigatorBase.h
@@ -26,10 +26,10 @@
 #ifndef NavigatorBase_h
 #define NavigatorBase_h
 
-#include <wtf/Forward.h>
-
 namespace WebCore {
 
+    class String;
+
     class NavigatorBase {
     public:
         String appName() const;
diff --git a/WebCore/page/PluginHalterClient.h b/WebCore/page/PluginHalterClient.h
index 12d37cc..0251547 100644
--- a/WebCore/page/PluginHalterClient.h
+++ b/WebCore/page/PluginHalterClient.h
@@ -26,11 +26,10 @@
 #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 ceda892..ed1cfa4 100644
--- a/WebCore/page/PrintContext.h
+++ b/WebCore/page/PrintContext.h
@@ -21,7 +21,6 @@
 #ifndef PrintContext_h
 #define PrintContext_h
 
-#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
@@ -32,6 +31,7 @@ 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 58f4efe..2ce0eea 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 143984d..1b21a11 100644
--- a/WebCore/page/SpeechInputListener.h
+++ b/WebCore/page/SpeechInputListener.h
@@ -33,10 +33,10 @@
 
 #if ENABLE(INPUT_SPEECH)
 
-#include <wtf/Forward.h>
-
 namespace WebCore {
 
+class String;
+
 // Interface to be implemented by the element which invokes SpeechInput.
 class SpeechInputListener {
 public:
diff --git a/WebCore/page/animation/AnimationController.h b/WebCore/page/animation/AnimationController.h
index 4528dae..d184b45 100644
--- a/WebCore/page/animation/AnimationController.h
+++ b/WebCore/page/animation/AnimationController.h
@@ -36,12 +36,14 @@ 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 4793708..fb1abee 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 6f7bb25..80805c4 100644
--- a/WebCore/platform/CrossThreadCopier.h
+++ b/WebCore/platform/CrossThreadCopier.h
@@ -31,7 +31,6 @@
 #ifndef CrossThreadCopier_h
 #define CrossThreadCopier_h
 
-#include <wtf/Forward.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
@@ -44,6 +43,7 @@ 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 483e2d0..aafc09a 100644
--- a/WebCore/platform/DragImage.h
+++ b/WebCore/platform/DragImage.h
@@ -28,7 +28,6 @@
 
 #include "IntSize.h"
 #include "FloatSize.h"
-#include <wtf/Forward.h>
 
 #if PLATFORM(MAC)
 #include <wtf/RetainPtr.h>
@@ -65,7 +64,8 @@ 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 617470b..42aaaef 100644
--- a/WebCore/platform/FileSystem.h
+++ b/WebCore/platform/FileSystem.h
@@ -47,7 +47,6 @@
 
 #include "PlatformString.h"
 #include <time.h>
-#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 
 typedef const struct __CFData* CFDataRef;
@@ -64,6 +63,11 @@ typedef HINSTANCE HMODULE;
 typedef struct _IFile IFile;
 #endif
 
+namespace WTF {
+class CString;
+}
+using WTF::CString;
+
 namespace WebCore {
 
 // PlatformModule
@@ -151,12 +155,12 @@ String directoryName(const String&);
 
 Vector<String> listDirectory(const String& path, const String& filter = String());
 
-CString fileSystemRepresentation(const String&);
+WTF::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.
-CString openTemporaryFile(const char* prefix, PlatformFileHandle&);
+WTF::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 4c92755..1d59c21 100644
--- a/WebCore/platform/Language.h
+++ b/WebCore/platform/Language.h
@@ -26,10 +26,10 @@
 #ifndef Language_h
 #define Language_h
 
-#include <wtf/Forward.h>
-
 namespace WebCore {
 
+    class String;
+
     String defaultLanguage();
 
 }
diff --git a/WebCore/platform/Length.h b/WebCore/platform/Length.h
index a3b1eda..4f36577 100644
--- a/WebCore/platform/Length.h
+++ b/WebCore/platform/Length.h
@@ -23,11 +23,12 @@
 
 #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 a499a8e..2756654 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 178cfa2..741fbbd 100644
--- a/WebCore/platform/LocalizationStrategy.h
+++ b/WebCore/platform/LocalizationStrategy.h
@@ -28,10 +28,9 @@
 
 #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 04042b6..ddc4869 100644
--- a/WebCore/platform/LocalizedStrings.h
+++ b/WebCore/platform/LocalizedStrings.h
@@ -26,10 +26,9 @@
 #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 df3c6fd..45b6d23 100644
--- a/WebCore/platform/Logging.h
+++ b/WebCore/platform/Logging.h
@@ -27,7 +27,6 @@
 #define Logging_h
 
 #include <wtf/Assertions.h>
-#include <wtf/Forward.h>
 
 #ifndef LOG_CHANNEL_PREFIX
 #define LOG_CHANNEL_PREFIX Log
@@ -35,6 +34,8 @@
 
 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 7773624..7ee8e81 100644
--- a/WebCore/platform/Pasteboard.h
+++ b/WebCore/platform/Pasteboard.h
@@ -63,6 +63,11 @@ typedef struct HWND__* HWND;
 #include "PasteboardPrivate.h"
 #endif
 
+namespace WTF {
+class CString;
+}
+using WTF::CString;
+
 namespace WebCore {
 
 #if PLATFORM(MAC)
@@ -79,6 +84,7 @@ 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 2b41380..976f28c 100644
--- a/WebCore/platform/PopupMenuClient.h
+++ b/WebCore/platform/PopupMenuClient.h
@@ -24,7 +24,6 @@
 
 #include "PopupMenuStyle.h"
 #include "ScrollTypes.h"
-#include <wtf/Forward.h>
 
 namespace WebCore {
 
@@ -33,6 +32,7 @@ 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 f199fab..d1ecd0f 100644
--- a/WebCore/platform/SearchPopupMenu.h
+++ b/WebCore/platform/SearchPopupMenu.h
@@ -22,12 +22,13 @@
 #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 0eb0c69..e118ccb 100644
--- a/WebCore/platform/Widget.h
+++ b/WebCore/platform/Widget.h
@@ -94,7 +94,6 @@ typedef PlatformWidget PlatformPageClient;
 #include "IntRect.h"
 #include "IntSize.h"
 
-#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
@@ -106,6 +105,9 @@ 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 8cbb2e1..a930b43 100644
--- a/WebCore/platform/cf/BinaryPropertyList.h
+++ b/WebCore/platform/cf/BinaryPropertyList.h
@@ -28,11 +28,12 @@
 
 #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 4bbd14c..acfefe1 100644
--- a/WebCore/platform/chromium/ChromiumBridge.h
+++ b/WebCore/platform/chromium/ChromiumBridge.h
@@ -38,7 +38,6 @@
 #include "PasteboardPrivate.h"
 #include "PluginData.h"
 
-#include <wtf/Forward.h>
 #include <wtf/HashSet.h>
 #include <wtf/Vector.h>
 
@@ -74,6 +73,7 @@ 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 9fdad42..7514280 100644
--- a/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
+++ b/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
@@ -28,11 +28,10 @@
  * 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 d6e206e..8d486ad 100644
--- a/WebCore/platform/cocoa/KeyEventCocoa.h
+++ b/WebCore/platform/cocoa/KeyEventCocoa.h
@@ -26,10 +26,10 @@
 #ifndef KeyEventCocoa_h
 #define KeyEventCocoa_h
 
-#include <wtf/Forward.h>
-
 namespace WebCore {
 
+class String;
+
 String keyIdentifierForCharCode(unichar charCode);
 
 int windowsKeyCodeForKeyCode(uint16_t keyCode);
diff --git a/WebCore/platform/graphics/Color.h b/WebCore/platform/graphics/Color.h
index b4efcb5..d41e361 100644
--- a/WebCore/platform/graphics/Color.h
+++ b/WebCore/platform/graphics/Color.h
@@ -27,7 +27,6 @@
 #define Color_h
 
 #include <wtf/FastAllocBase.h>
-#include <wtf/Forward.h>
 #include <wtf/unicode/Unicode.h>
 
 #if PLATFORM(CG)
@@ -56,6 +55,7 @@ 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 e6845d9..1a3ba69 100644
--- a/WebCore/platform/graphics/FontCache.h
+++ b/WebCore/platform/graphics/FontCache.h
@@ -31,7 +31,6 @@
 #define FontCache_h
 
 #include <limits.h>
-#include <wtf/Forward.h>
 #include <wtf/Vector.h>
 #include <wtf/unicode/Unicode.h>
 
@@ -43,6 +42,7 @@
 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 ee94a98..76927f5 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 156bf10..9b520b9 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 1e73f25..769207a 100644
--- a/WebCore/platform/graphics/GraphicsTypes.h
+++ b/WebCore/platform/graphics/GraphicsTypes.h
@@ -26,10 +26,10 @@
 #ifndef GraphicsTypes_h
 #define GraphicsTypes_h
 
-#include <wtf/Forward.h>
-
 namespace WebCore {
 
+    class String;
+
     // 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
     // Mac OS X Tiger platform code to map one to the other.
diff --git a/WebCore/platform/graphics/Icon.h b/WebCore/platform/graphics/Icon.h
index c83685f..3390679 100644
--- a/WebCore/platform/graphics/Icon.h
+++ b/WebCore/platform/graphics/Icon.h
@@ -49,6 +49,7 @@ 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 a54c721..cb5d63f 100644
--- a/WebCore/platform/graphics/ImageBuffer.h
+++ b/WebCore/platform/graphics/ImageBuffer.h
@@ -32,7 +32,6 @@
 #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>
@@ -43,6 +42,7 @@ 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 b7efb99..5f0cc26 100644
--- a/WebCore/platform/graphics/ImageSource.h
+++ b/WebCore/platform/graphics/ImageSource.h
@@ -27,7 +27,6 @@
 #ifndef ImageSource_h
 #define ImageSource_h
 
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/Vector.h>
 
@@ -61,6 +60,7 @@ 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 d6beacf..6945872 100644
--- a/WebCore/platform/graphics/MediaPlayer.h
+++ b/WebCore/platform/graphics/MediaPlayer.h
@@ -35,7 +35,6 @@
 #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>
@@ -89,6 +88,7 @@ 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 cb2196d..40aeacb 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 43ba889..86b77f8 100644
--- a/WebCore/platform/graphics/Path.h
+++ b/WebCore/platform/graphics/Path.h
@@ -30,7 +30,6 @@
 
 #include <algorithm>
 #include <wtf/FastAllocBase.h>
-#include <wtf/Forward.h>
 
 #if PLATFORM(CG)
 typedef struct CGPath PlatformPath;
@@ -79,6 +78,7 @@ 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 6791d38..0a8532b 100644
--- a/WebCore/platform/graphics/StringTruncator.h
+++ b/WebCore/platform/graphics/StringTruncator.h
@@ -29,11 +29,10 @@
 #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 a72a6a4..2816427 100644
--- a/WebCore/platform/graphics/cairo/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/cairo/FontCustomPlatformData.h
@@ -22,7 +22,6 @@
 #define FontCustomPlatformData_h
 
 #include "FontRenderingMode.h"
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 typedef struct _cairo_font_face cairo_font_face_t;
@@ -31,6 +30,7 @@ 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 fc6b9f1..d271f5b 100644
--- a/WebCore/platform/graphics/cairo/FontPlatformData.h
+++ b/WebCore/platform/graphics/cairo/FontPlatformData.h
@@ -28,7 +28,6 @@
 #ifndef FontPlatformData_h
 #define FontPlatformData_h
 
-#include <wtf/Forward.h>
 #include <cairo.h>
 #include "FontDescription.h"
 #include "GlyphBuffer.h"
@@ -51,6 +50,8 @@ 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 b261f87..1da8916 100644
--- a/WebCore/platform/graphics/cg/FontPlatformData.h
+++ b/WebCore/platform/graphics/cg/FontPlatformData.h
@@ -26,7 +26,6 @@
 
 #include "RefCountedGDIHandle.h"
 #include "StringImpl.h"
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RetainPtr.h>
@@ -37,6 +36,7 @@ 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 bff8162..76b4160 100644
--- a/WebCore/platform/graphics/cg/ImageSourceCG.h
+++ b/WebCore/platform/graphics/cg/ImageSourceCG.h
@@ -27,10 +27,11 @@
 #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 d451c9c..03e1b8c 100644
--- a/WebCore/platform/graphics/chromium/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/chromium/FontCustomPlatformData.h
@@ -33,7 +33,6 @@
 #define FontCustomPlatformData_h
 
 #include "FontRenderingMode.h"
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 #if OS(WINDOWS)
@@ -47,6 +46,7 @@ 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 1d6cc8e..40e7bcf 100644
--- a/WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h
+++ b/WebCore/platform/graphics/chromium/FontPlatformDataChromiumWin.h
@@ -35,7 +35,6 @@
 #include "config.h"
 
 #include "StringImpl.h"
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
@@ -46,6 +45,7 @@ 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 de12832..e2abe2e 100644
--- a/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h
+++ b/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h
@@ -33,7 +33,6 @@
 
 #include "FontRenderStyle.h"
 #include "StringImpl.h"
-#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 #include <wtf/text/CString.h>
 #include <SkPaint.h>
@@ -46,6 +45,7 @@ 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 f2f684b..d65bdbc 100644
--- a/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
+++ b/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
@@ -25,7 +25,6 @@
 
 #if ENABLE(VIDEO)
 
-#include <wtf/Forward.h>
 #include "MediaPlayerPrivate.h"
 #include "Timer.h"
 
@@ -43,6 +42,7 @@ 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 a7dfe37..9db6cc6 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 90440d5..f2cd2cc 100644
--- a/WebCore/platform/graphics/mac/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/mac/FontCustomPlatformData.h
@@ -23,7 +23,6 @@
 
 #include "FontRenderingMode.h"
 #include <CoreFoundation/CFBase.h>
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 typedef struct CGFont* CGFontRef;
@@ -34,6 +33,7 @@ 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 c7a355d..f4c92be 100644
--- a/WebCore/platform/graphics/mac/FontPlatformData.h
+++ b/WebCore/platform/graphics/mac/FontPlatformData.h
@@ -39,13 +39,14 @@ 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 019a6bc..6837059 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 79daa6b..9355142 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 d19a8a5..46ddbb5 100644
--- a/WebCore/platform/graphics/win/FontCustomPlatformData.h
+++ b/WebCore/platform/graphics/win/FontCustomPlatformData.h
@@ -23,7 +23,6 @@
 
 #include "FontRenderingMode.h"
 #include "PlatformString.h"
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 typedef struct CGFont* CGFontRef;
@@ -32,6 +31,7 @@ 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 2dbea51..75fe3d1 100644
--- a/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h
+++ b/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h
@@ -21,7 +21,6 @@
 #ifndef FontCustomPlatformDataCairo_h
 #define FontCustomPlatformDataCairo_h
 
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 #include <cairo.h>
@@ -30,6 +29,7 @@ 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 9c449dd..7bf796c 100644
--- a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h
+++ b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h
@@ -31,7 +31,6 @@
 #include "GraphicsLayer.h"
 #include "MediaPlayerPrivate.h"
 #include "Timer.h"
-#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/RetainPtr.h>
 
@@ -48,6 +47,7 @@ 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 ab9b1f0..ecdb9da 100644
--- a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h
+++ b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h
@@ -32,7 +32,6 @@
 #include "Timer.h"
 #include <QTMovie.h>
 #include <QTMovieGWorld.h>
-#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/RetainPtr.h>
 
@@ -51,6 +50,7 @@ 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 0b973b8..bb49f75 100644
--- a/WebCore/platform/graphics/wince/FontPlatformData.h
+++ b/WebCore/platform/graphics/wince/FontPlatformData.h
@@ -27,7 +27,6 @@
 
 #include "FontDescription.h"
 #include "StringImpl.h"
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 
 typedef struct tagTEXTMETRICW TEXTMETRIC;
@@ -36,6 +35,7 @@ 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 e86b8a9..a657e3e 100644
--- a/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h
+++ b/WebCore/platform/graphics/wince/MediaPlayerPrivateWince.h
@@ -29,7 +29,6 @@
 
 #if ENABLE(VIDEO)
 
-#include <wtf/Forward.h>
 #include "MediaPlayerPrivate.h"
 #include "Timer.h"
 #include <wtf/OwnPtr.h>
@@ -39,6 +38,7 @@ 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 b02e0f4..05f9b21 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 a7dfe37..9db6cc6 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 0b2af6f..952368e 100644
--- a/WebCore/platform/graphics/wx/FontPlatformData.h
+++ b/WebCore/platform/graphics/wx/FontPlatformData.h
@@ -32,7 +32,6 @@
 #include "FontDescription.h"
 #include "AtomicString.h"
 #include "StringImpl.h"
-#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 #include <wtf/text/CString.h>
 
@@ -57,6 +56,8 @@ 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 7bd62e5..0e241bb 100644
--- a/WebCore/platform/mac/PasteboardHelper.h
+++ b/WebCore/platform/mac/PasteboardHelper.h
@@ -42,6 +42,7 @@ 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 21d9c80..1eeec3c 100644
--- a/WebCore/platform/network/DNS.h
+++ b/WebCore/platform/network/DNS.h
@@ -26,10 +26,10 @@
 #ifndef DNS_h
 #define DNS_h
 
-#include <wtf/Forward.h>
-
 namespace WebCore {
 
+    class String;
+
 #if !USE(SOUP)
     void prefetchDNS(const String& hostname);
 #endif
diff --git a/WebCore/platform/network/FormData.h b/WebCore/platform/network/FormData.h
index a1964e3..fdb27f2 100644
--- a/WebCore/platform/network/FormData.h
+++ b/WebCore/platform/network/FormData.h
@@ -21,7 +21,6 @@
 #define FormData_h
 
 #include "PlatformString.h"
-#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
 
@@ -88,7 +87,7 @@ class FormData : public RefCounted<FormData> {
 public:
     static PassRefPtr<FormData> create();
     static PassRefPtr<FormData> create(const void*, size_t);
-    static PassRefPtr<FormData> create(const CString&);
+    static PassRefPtr<FormData> create(const WTF::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 87d0ef3..26b90af 100644
--- a/WebCore/platform/network/FormDataBuilder.h
+++ b/WebCore/platform/network/FormDataBuilder.h
@@ -22,9 +22,13 @@
 #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;
@@ -36,15 +40,15 @@ public:
 
     // Helper functions used by HTMLFormElement/WMLGoElement for multi-part form data
     static Vector<char> generateUniqueBoundaryString();
-    static void beginMultiPartHeader(Vector<char>&, const CString& boundary, const CString& name);
-    static void addBoundaryToMultiPartHeader(Vector<char>&, const CString& boundary, bool isLastBoundary = false);
+    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 addFilenameToMultiPartHeader(Vector<char>&, const TextEncoding&, const String& filename);
-    static void addContentTypeToMultiPartHeader(Vector<char>&, const CString& mimeType);
+    static void addContentTypeToMultiPartHeader(Vector<char>&, const WTF::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 CString& key, const CString& value);
-    static void encodeStringAsFormData(Vector<char>&, const CString&);
+    static void addKeyValuePairAsFormData(Vector<char>&, const WTF::CString& key, const WTF::CString& value);
+    static void encodeStringAsFormData(Vector<char>&, const WTF::CString&);
 
 private:
     FormDataBuilder() {}
diff --git a/WebCore/platform/network/HTTPParsers.h b/WebCore/platform/network/HTTPParsers.h
index 9d6971b..bb2a9e5 100644
--- a/WebCore/platform/network/HTTPParsers.h
+++ b/WebCore/platform/network/HTTPParsers.h
@@ -30,10 +30,9 @@
 #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 a99bff0..4ef852b 100644
--- a/WebCore/platform/text/Hyphenation.h
+++ b/WebCore/platform/text/Hyphenation.h
@@ -26,11 +26,12 @@
 #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 edffb8f..9c3e2aa 100644
--- a/WebCore/platform/text/LineEnding.h
+++ b/WebCore/platform/text/LineEnding.h
@@ -32,22 +32,24 @@
 #ifndef LineEnding_h
 #define LineEnding_h
 
-#include <wtf/Forward.h>
+namespace WTF {
+class CString;
+}
 
 namespace WebCore {
 
 // Normalize all line-endings in the given string to CRLF.
-CString normalizeLineEndingsToCRLF(const CString&);
+WTF::CString normalizeLineEndingsToCRLF(const WTF::CString&);
 
 // Normalize all line-endings in the given string to CR.
-CString normalizeLineEndingsToCR(const CString&);
+WTF::CString normalizeLineEndingsToCR(const WTF::CString&);
 
 // Normalize all line-endings in the given string to LF.
-CString normalizeLineEndingsToLF(const CString&);
+WTF::CString normalizeLineEndingsToLF(const WTF::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.)
-CString normalizeLineEndingsToNative(const CString&);
+WTF::CString normalizeLineEndingsToNative(const WTF::CString&);
 
 } // namespace WebCore
 
diff --git a/WebCore/platform/text/TextCodec.h b/WebCore/platform/text/TextCodec.h
index c6af38a..591e3a6 100644
--- a/WebCore/platform/text/TextCodec.h
+++ b/WebCore/platform/text/TextCodec.h
@@ -28,7 +28,6 @@
 #define TextCodec_h
 
 #include <memory>
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/Vector.h>
@@ -68,7 +67,7 @@ namespace WebCore {
         }
         
         virtual String decode(const char*, size_t length, bool flush, bool stopOnError, bool& sawError) = 0;
-        virtual CString encode(const UChar*, size_t length, UnencodableHandling) = 0;
+        virtual WTF::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 675625b..3429bb5 100644
--- a/WebCore/platform/text/TextEncoding.h
+++ b/WebCore/platform/text/TextEncoding.h
@@ -27,11 +27,17 @@
 #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) { }
@@ -69,7 +75,7 @@ namespace WebCore {
             return decode(str, length, false, ignored);
         }
         String decode(const char*, size_t length, bool stopOnError, bool& sawError) const;
-        CString encode(const UChar*, size_t length, UnencodableHandling) const;
+        WTF::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 e7e4cc0..f5e512c 100644
--- a/WebCore/platform/text/TextStream.h
+++ b/WebCore/platform/text/TextStream.h
@@ -26,12 +26,13 @@
 #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 bdbf189..c32a49d 100644
--- a/WebCore/platform/win/BString.h
+++ b/WebCore/platform/win/BString.h
@@ -26,8 +26,6 @@
 #ifndef BString_h
 #define BString_h
 
-#include <wtf/Forward.h>
-
 #if PLATFORM(CF)
 typedef const struct __CFString * CFStringRef;
 #endif
@@ -40,7 +38,9 @@ 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 1a29e7e..fe01499 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 133115d..bdfb013 100644
--- a/WebCore/platform/win/WCDataObject.h
+++ b/WebCore/platform/win/WCDataObject.h
@@ -26,13 +26,14 @@
 #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 7efc1f3..7b72946 100644
--- a/WebCore/platform/win/WebCoreTextRenderer.h
+++ b/WebCore/platform/win/WebCoreTextRenderer.h
@@ -23,14 +23,13 @@
  * 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 cefdb48..a010e33 100644
--- a/WebCore/plugins/DOMMimeType.h
+++ b/WebCore/plugins/DOMMimeType.h
@@ -20,7 +20,6 @@
 #ifndef DOMMimeType_h
 #define DOMMimeType_h
 
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
 #include <wtf/RefCounted.h>
@@ -30,6 +29,7 @@
 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 ed078bb..2ccbfa0 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 9700ab5..f86234a 100644
--- a/WebCore/plugins/DOMPlugin.h
+++ b/WebCore/plugins/DOMPlugin.h
@@ -21,14 +21,15 @@
 #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 cc70572..0adb70a 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 e35fb61..15f2eb8 100644
--- a/WebCore/rendering/CounterNode.h
+++ b/WebCore/rendering/CounterNode.h
@@ -22,7 +22,6 @@
 #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,
@@ -36,6 +35,7 @@
 
 namespace WebCore {
 
+class AtomicString;
 class RenderObject;
 
 class CounterNode : public Noncopyable {
diff --git a/WebCore/rendering/HitTestResult.h b/WebCore/rendering/HitTestResult.h
index 3a42719..e0ffe54 100644
--- a/WebCore/rendering/HitTestResult.h
+++ b/WebCore/rendering/HitTestResult.h
@@ -24,7 +24,6 @@
 #include "IntRect.h"
 #include "IntSize.h"
 #include "TextDirection.h"
-#include <wtf/Forward.h>
 #include <wtf/ListHashSet.h>
 #include <wtf/RefPtr.h>
 
@@ -37,6 +36,7 @@ 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 8b80f37..ba73c50 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 f46f053..92c82e1 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 722736b..645ccc0 100644
--- a/WebCore/rendering/RenderTreeAsText.h
+++ b/WebCore/rendering/RenderTreeAsText.h
@@ -26,13 +26,12 @@
 #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 2859bd5..66aca9a 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 5c3565e..2c261f8 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 df1b341..ac82b1c 100644
--- a/WebCore/rendering/style/RenderStyle.h
+++ b/WebCore/rendering/style/RenderStyle.h
@@ -73,7 +73,6 @@
 #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>
@@ -109,6 +108,7 @@ 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 66bc5d8..af6e016 100644
--- a/WebCore/storage/DatabaseAuthorizer.h
+++ b/WebCore/storage/DatabaseAuthorizer.h
@@ -36,6 +36,8 @@
 
 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 2e0497f..b43123c 100644
--- a/WebCore/storage/DatabaseTrackerClient.h
+++ b/WebCore/storage/DatabaseTrackerClient.h
@@ -30,11 +30,10 @@
 
 #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 3eb1fd5..2eb200b 100644
--- a/WebCore/storage/SQLTransaction.h
+++ b/WebCore/storage/SQLTransaction.h
@@ -48,6 +48,7 @@ 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 e66c876..025215b 100644
--- a/WebCore/storage/SQLTransactionSync.h
+++ b/WebCore/storage/SQLTransactionSync.h
@@ -46,6 +46,7 @@ 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 c81481a..06cc97b 100644
--- a/WebCore/storage/Storage.h
+++ b/WebCore/storage/Storage.h
@@ -36,6 +36,7 @@ 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 deb8036..96b5972 100644
--- a/WebCore/storage/chromium/DatabaseObserver.h
+++ b/WebCore/storage/chromium/DatabaseObserver.h
@@ -33,12 +33,11 @@
 
 #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 307c66a..216882c 100644
--- a/WebCore/svg/SVGAnimatedTemplate.h
+++ b/WebCore/svg/SVGAnimatedTemplate.h
@@ -23,7 +23,6 @@
 
 #if ENABLE(SVG)
 #include "SVGAnimatedPropertyTraits.h"
-#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 
 namespace WebCore {
@@ -34,6 +33,7 @@ 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 ad2fb60..e0f7170 100644
--- a/WebCore/svg/SVGDocumentExtensions.h
+++ b/WebCore/svg/SVGDocumentExtensions.h
@@ -25,7 +25,6 @@
 #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>
@@ -34,6 +33,7 @@ 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 5b5408d..ef6a715 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 bd893d8..fdc34be 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 fa29356..75e58dc 100644
--- a/WebCore/svg/SVGNumberList.h
+++ b/WebCore/svg/SVGNumberList.h
@@ -23,11 +23,12 @@
 
 #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 853c7b1..649654f 100644
--- a/WebCore/svg/SVGPointList.h
+++ b/WebCore/svg/SVGPointList.h
@@ -24,11 +24,12 @@
 #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 9ed27fe..4c28a19 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 37148f9..e1bed99 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 b638c0a..7204e8e 100644
--- a/WebCore/svg/SVGTests.h
+++ b/WebCore/svg/SVGTests.h
@@ -22,7 +22,6 @@
 #define SVGTests_h
 
 #if ENABLE(SVG)
-#include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 
 namespace WebCore {
@@ -30,6 +29,7 @@ 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 5bb5e85..27ed924 100644
--- a/WebCore/svg/SVGTransformList.h
+++ b/WebCore/svg/SVGTransformList.h
@@ -24,11 +24,12 @@
 #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 8979eb1..2972c8b 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 c4bc90f..50da27e 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 05b3767..cbe6e14 100644
--- a/WebCore/websockets/ThreadableWebSocketChannel.h
+++ b/WebCore/websockets/ThreadableWebSocketChannel.h
@@ -33,7 +33,6 @@
 
 #if ENABLE(WEB_SOCKETS)
 
-#include <wtf/Forward.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassRefPtr.h>
 
@@ -41,6 +40,7 @@ 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 4099615..bc36c1b 100644
--- a/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h
+++ b/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.h
@@ -35,13 +35,14 @@
 
 #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 15508b4..2c95ff9 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 893b4c6..a90c6dc 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 fe435ee..c385a1b 100644
--- a/WebCore/websockets/WebSocketHandshakeResponse.h
+++ b/WebCore/websockets/WebSocketHandshakeResponse.h
@@ -35,10 +35,11 @@
 
 #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 c75c975..8277be4 100644
--- a/WebCore/wml/WMLErrorHandling.h
+++ b/WebCore/wml/WMLErrorHandling.h
@@ -21,12 +21,11 @@
 #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 614bc94..ed1ce8e 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 3bd0f81..18c6ba4 100644
--- a/WebCore/wml/WMLVariables.h
+++ b/WebCore/wml/WMLVariables.h
@@ -21,12 +21,11 @@
 #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 2ce4422..c2eaff4 100644
--- a/WebCore/workers/DefaultSharedWorkerRepository.h
+++ b/WebCore/workers/DefaultSharedWorkerRepository.h
@@ -35,7 +35,6 @@
 
 #include "ExceptionCode.h"
 #include "StringHash.h"
-#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassOwnPtr.h>
@@ -51,6 +50,7 @@ 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 d654070..49f3941 100644
--- a/WebCore/workers/SharedWorkerRepository.h
+++ b/WebCore/workers/SharedWorkerRepository.h
@@ -34,7 +34,6 @@
 #if ENABLE(SHARED_WORKERS)
 
 #include "ExceptionCode.h"
-#include <wtf/Forward.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/PassRefPtr.h>
 
@@ -44,6 +43,7 @@ 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 2470b71..69ae92e 100644
--- a/WebCore/workers/Worker.h
+++ b/WebCore/workers/Worker.h
@@ -37,7 +37,6 @@
 #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>
@@ -46,6 +45,7 @@
 namespace WebCore {
 
     class ScriptExecutionContext;
+    class String;
     class WorkerContextProxy;
     class WorkerScriptLoader;
 
diff --git a/WebCore/workers/WorkerContextProxy.h b/WebCore/workers/WorkerContextProxy.h
index 4420c78..e1ca139 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 219dab4..fe1bf51 100644
--- a/WebCore/workers/WorkerLoaderProxy.h
+++ b/WebCore/workers/WorkerLoaderProxy.h
@@ -34,11 +34,12 @@
 #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 5200e35..52c31ad 100644
--- a/WebCore/workers/WorkerLocation.h
+++ b/WebCore/workers/WorkerLocation.h
@@ -30,13 +30,14 @@
 #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 33937ce..296fa42 100644
--- a/WebCore/workers/WorkerMessagingProxy.h
+++ b/WebCore/workers/WorkerMessagingProxy.h
@@ -33,7 +33,6 @@
 #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>
@@ -44,6 +43,7 @@ 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 6a8fcef..063dc81 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 e44afce..cb33308 100644
--- a/WebCore/workers/WorkerThread.h
+++ b/WebCore/workers/WorkerThread.h
@@ -30,7 +30,6 @@
 #if ENABLE(WORKERS)
 
 #include "WorkerRunLoop.h"
-#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -39,6 +38,7 @@ 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 744bae8..5036d22 100644
--- a/WebCore/xml/DOMParser.h
+++ b/WebCore/xml/DOMParser.h
@@ -19,12 +19,13 @@
 #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 7a605fb..7640643 100644
--- a/WebCore/xml/XMLHttpRequestUpload.h
+++ b/WebCore/xml/XMLHttpRequestUpload.h
@@ -30,7 +30,6 @@
 #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>
@@ -39,6 +38,7 @@
 
 namespace WebCore {
 
+    class AtomicStringImpl;
     class ScriptExecutionContext;
     class XMLHttpRequest;
 
diff --git a/WebCore/xml/XPathEvaluator.h b/WebCore/xml/XPathEvaluator.h
index 70322a4..c8e456e 100644
--- a/WebCore/xml/XPathEvaluator.h
+++ b/WebCore/xml/XPathEvaluator.h
@@ -29,7 +29,6 @@
 
 #if ENABLE(XPATH)
 
-#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 #include <wtf/PassRefPtr.h>
 
@@ -38,6 +37,7 @@ 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 633ec80..a2b75d7 100644
--- a/WebCore/xml/XPathExpression.h
+++ b/WebCore/xml/XPathExpression.h
@@ -29,7 +29,6 @@
 
 #if ENABLE(XPATH)
 
-#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 #include <wtf/PassRefPtr.h>
 
@@ -38,6 +37,7 @@ 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 7b7fd2e..04b5f80 100644
--- a/WebCore/xml/XPathNSResolver.h
+++ b/WebCore/xml/XPathNSResolver.h
@@ -29,11 +29,12 @@
 
 #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 cbb51f5..3b91d66 100644
--- a/WebCore/xml/XPathResult.h
+++ b/WebCore/xml/XPathResult.h
@@ -30,7 +30,6 @@
 #if ENABLE(XPATH)
 
 #include "XPathValue.h"
-#include <wtf/Forward.h>
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
@@ -39,6 +38,7 @@ 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 cfb34dc..30f21ae 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 74e50e1..bf131ab 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,10 +1,7 @@
-2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+2010-08-06  Jessie Berlin  <jberlin 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::).
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
 
         * WebKit.xcodeproj/project.pbxproj:
 
diff --git a/WebKit/WebKit.xcodeproj/project.pbxproj b/WebKit/WebKit.xcodeproj/project.pbxproj
index bad03b6..52d5b6c 100644
--- a/WebKit/WebKit.xcodeproj/project.pbxproj
+++ b/WebKit/WebKit.xcodeproj/project.pbxproj
@@ -1616,7 +1616,6 @@
 			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 4c86ba4..b4102bf 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,17 @@
+2010-08-06  Jessie Berlin  <jberlin at apple.com>
+
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
+
+        * 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-06  Pavel Feldman  <pfeldman at chromium.org>
 
         Reviewed by Yury Semikhatsky.
diff --git a/WebKit/chromium/public/WebCString.h b/WebKit/chromium/public/WebCString.h
index d5c47ab..2c1e137 100644
--- a/WebKit/chromium/public/WebCString.h
+++ b/WebKit/chromium/public/WebCString.h
@@ -34,7 +34,7 @@
 #include "WebCommon.h"
 
 #if WEBKIT_IMPLEMENTATION
-#include <wtf/Forward.h>
+namespace WTF { class CString; }
 #else
 #include <string>
 #endif
diff --git a/WebKit/chromium/public/WebString.h b/WebKit/chromium/public/WebString.h
index 3a3590d..2c9664e 100644
--- a/WebKit/chromium/public/WebString.h
+++ b/WebKit/chromium/public/WebString.h
@@ -34,7 +34,10 @@
 #include "WebCommon.h"
 
 #if WEBKIT_IMPLEMENTATION
-#include <wtf/Forward.h>
+namespace WebCore {
+class String;
+class AtomicString;
+}
 #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 a1275b5..253ab3f 100644
--- a/WebKit/chromium/src/DOMUtilitiesPrivate.h
+++ b/WebKit/chromium/src/DOMUtilitiesPrivate.h
@@ -31,8 +31,6 @@
 #ifndef DOMUtilitiesPrivate_h
 #define DOMUtilitiesPrivate_h
 
-#include <wtf/Forward.h>
-
 namespace WebCore {
 class Element;
 class HTMLInputElement;
@@ -41,6 +39,7 @@ 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 6f4a6c6..d8b13fd 100644
--- a/WebKit/chromium/src/DebuggerAgentImpl.h
+++ b/WebKit/chromium/src/DebuggerAgentImpl.h
@@ -32,7 +32,6 @@
 #define DebuggerAgentImpl_h
 
 #include <v8.h>
-#include <wtf/Forward.h>
 #include <wtf/HashSet.h>
 #include <wtf/Noncopyable.h>
 
@@ -41,6 +40,7 @@ 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 387ee92..dbb600a 100644
--- a/WebKit/chromium/src/DebuggerAgentManager.h
+++ b/WebKit/chromium/src/DebuggerAgentManager.h
@@ -34,7 +34,6 @@
 #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>
@@ -42,6 +41,7 @@
 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 5b42492..fb8eb70 100644
--- a/WebKit/chromium/src/WebDevToolsAgentImpl.h
+++ b/WebKit/chromium/src/WebDevToolsAgentImpl.h
@@ -36,7 +36,6 @@
 #include "WebDevToolsAgentPrivate.h"
 
 #include <v8.h>
-#include <wtf/Forward.h>
 #include <wtf/OwnPtr.h>
 
 namespace WebCore {
@@ -44,6 +43,7 @@ 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 47644ea..f03c54e 100644
--- a/WebKit/chromium/src/WebDevToolsFrontendImpl.h
+++ b/WebKit/chromium/src/WebDevToolsFrontendImpl.h
@@ -34,7 +34,6 @@
 #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>
@@ -45,6 +44,7 @@ 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 64715c1..8f6a99f 100644
--- a/WebKit/chromium/src/WebPageSerializerImpl.h
+++ b/WebKit/chromium/src/WebPageSerializerImpl.h
@@ -34,7 +34,6 @@
 #include "PlatformString.h"
 #include "StringBuilder.h"
 #include "StringHash.h"
-#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 #include <wtf/Vector.h>
 
@@ -48,6 +47,7 @@ namespace WebCore {
 class Document;
 class Element;
 class Node;
+class String;
 class TextEncoding;
 }
 
diff --git a/WebKit/efl/ChangeLog b/WebKit/efl/ChangeLog
index 158874d..b97e523 100644
--- a/WebKit/efl/ChangeLog
+++ b/WebKit/efl/ChangeLog
@@ -1,10 +1,7 @@
-2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+2010-08-06  Jessie Berlin  <jberlin 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::).
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
 
         * WebCoreSupport/InspectorClientEfl.h:
 
diff --git a/WebKit/efl/WebCoreSupport/InspectorClientEfl.h b/WebKit/efl/WebCoreSupport/InspectorClientEfl.h
index 0c283d8..1ca646d 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 a493c0d..92c8f95 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,10 +1,7 @@
-2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+2010-08-06  Jessie Berlin  <jberlin 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::).
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
 
         * WebCoreSupport/InspectorClientGtk.h:
 
diff --git a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
index ec56bd5..fc9b6d8 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 460e9ba..fd95435 100644
--- a/WebKit/haiku/ChangeLog
+++ b/WebKit/haiku/ChangeLog
@@ -1,10 +1,7 @@
-2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+2010-08-06  Jessie Berlin  <jberlin 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::).
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
 
         * WebCoreSupport/FrameLoaderClientHaiku.h:
         * WebCoreSupport/InspectorClientHaiku.h:
diff --git a/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h b/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
index dfe5747..073c0c3 100644
--- a/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
+++ b/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
@@ -33,7 +33,6 @@
 #include "FrameLoaderClient.h"
 #include "KURL.h"
 #include "ResourceResponse.h"
-#include <wtf/Forward.h>
 
 class BMessenger;
 class WebView;
@@ -45,6 +44,7 @@ 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 5763d12..3828d04 100644
--- a/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
+++ b/WebKit/haiku/WebCoreSupport/InspectorClientHaiku.h
@@ -31,11 +31,12 @@
 #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 bf82d58..3aa976c 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,15 @@
+2010-08-06  Jessie Berlin  <jberlin at apple.com>
+
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
+
+        * Plugins/Hosted/NetscapePluginInstanceProxy.h:
+        * Plugins/WebBaseNetscapePluginView.h:
+        * WebCoreSupport/WebFrameLoaderClient.h:
+        * WebCoreSupport/WebIconDatabaseClient.h:
+        * WebCoreSupport/WebPluginHalterClient.h:
+        * WebView/WebViewInternal.h:
+
 2010-08-05  Joseph Pecoraro  <joepeck at webkit.org>
 
         Reviewed by David Kilzer.
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
index d657430..9ca5b5a 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
@@ -32,13 +32,16 @@
 #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 9a29cc2..4c8ea84 100644
--- a/WebKit/mac/Plugins/WebBaseNetscapePluginView.h
+++ b/WebKit/mac/Plugins/WebBaseNetscapePluginView.h
@@ -31,7 +31,6 @@
 
 #import "WebNetscapePluginPackage.h"
 #import "WebPluginContainerCheck.h"
-#import <wtf/Forward.h>
 #import <wtf/OwnPtr.h>
 #import <wtf/PassRefPtr.h>
 #import <wtf/RefPtr.h>
@@ -42,6 +41,10 @@
 @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 9f2b6a2..d750a10 100644
--- a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
+++ b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
@@ -43,6 +43,7 @@ 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 3fbe3e6..e908242 100644
--- a/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
+++ b/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
@@ -27,7 +27,10 @@
  */
 
 #import <WebCore/IconDatabaseClient.h>
-#import <wtf/Forward.h>
+
+namespace WebCore {
+    class String;
+}
 
 class WebIconDatabaseClient : public WebCore::IconDatabaseClient {
 public:
diff --git a/WebKit/mac/WebCoreSupport/WebPluginHalterClient.h b/WebKit/mac/WebCoreSupport/WebPluginHalterClient.h
index 6e28665..a0d398d 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 71a2660..f95d3d3 100644
--- a/WebKit/mac/WebView/WebViewInternal.h
+++ b/WebKit/mac/WebView/WebViewInternal.h
@@ -36,9 +36,8 @@
 #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 36bf9d1..5e00e41 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,11 @@
+2010-08-06  Jessie Berlin  <jberlin at apple.com>
+
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
+
+        * WebCoreSupport/FrameLoaderClientQt.h:
+        * WebCoreSupport/InspectorClientQt.h:
+
 2010-08-06  Luiz Agostini  <luiz.agostini at openbossa.org>
 
         Reviewed by Kenneth Rohde Christiansen.
diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
index dfb94cc..ec672f5 100644
--- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
+++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
@@ -40,7 +40,6 @@
 #include "ResourceResponse.h"
 #include <QUrl>
 #include <qobject.h>
-#include <wtf/Forward.h>
 class QWebFrame;
 
 namespace WebCore {
@@ -50,6 +49,7 @@ 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 9526c88..c996f55 100644
--- a/WebKit/qt/WebCoreSupport/InspectorClientQt.h
+++ b/WebKit/qt/WebCoreSupport/InspectorClientQt.h
@@ -35,7 +35,6 @@
 #include "OwnPtr.h"
 #include "PassOwnPtr.h"
 #include <QtCore/QString>
-#include <wtf/Forward.h>
 
 class QWebPage;
 class QWebView;
@@ -43,6 +42,7 @@ 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 0ad6fb1..22c20e4 100644
--- a/WebKit/win/COMVariantSetter.h
+++ b/WebKit/win/COMVariantSetter.h
@@ -29,7 +29,10 @@
 #include <WebCore/BString.h>
 #include <WebCore/COMPtr.h>
 #include <wtf/Assertions.h>
-#include <wtf/Forward.h>
+
+namespace WebCore {
+    class String;
+}
 
 template<typename T> struct COMVariantSetter {};
 
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index 3fe44d2..b3bd959 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-06  Jessie Berlin  <jberlin at apple.com>
+
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
+
+        * COMVariantSetter.h:
+        * MarshallingHelpers.h:
+        * WebCoreSupport/WebContextMenuClient.h:
+        * WebCoreSupport/WebPluginHalterClient.h:
+        * WebHistory.h:
+
 2010-08-05  Jessie Berlin  <jberlin at apple.com>
 
         Reviewed by Jon Honeycutt.
diff --git a/WebKit/win/MarshallingHelpers.h b/WebKit/win/MarshallingHelpers.h
index 170bf9e..bbde61f 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 ad1be1e..153e30e 100644
--- a/WebKit/win/WebCoreSupport/WebContextMenuClient.h
+++ b/WebKit/win/WebCoreSupport/WebContextMenuClient.h
@@ -26,6 +26,9 @@
 #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 856799a..da3d28a 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 6988ccf..9d8acb3 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 faf54f2..0dfe91f 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,10 +1,7 @@
-2010-08-05  Gavin Barraclough  <barraclough at apple.com>
+2010-08-06  Jessie Berlin  <jberlin 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::).
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
 
         * WebKitSupport/FrameLoaderClientWx.h:
         * WebKitSupport/InspectorClientWx.h:
diff --git a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
index 0dee4bf..95ef2e6 100644
--- a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
+++ b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
@@ -34,7 +34,6 @@
 #include "PluginView.h"
 #include "ResourceResponse.h"
 #include "HTMLPlugInElement.h"
-#include <wtf/Forward.h>
 
 class wxWebFrame;
 class wxWebView;
@@ -46,6 +45,7 @@ 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 799e954..698a0f5 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 afff3eb..113d969 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,28 @@
+2010-08-06  Jessie Berlin  <jberlin at apple.com>
+
+        Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
+        Unreviewed.
+
+        * 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  Sam Weinig  <sam at webkit.org>
 
         Reviewed by Anders Carlsson.
diff --git a/WebKit2/UIProcess/PageClient.h b/WebKit2/UIProcess/PageClient.h
index a4f2d1f..fc4bbcf 100644
--- a/WebKit2/UIProcess/PageClient.h
+++ b/WebKit2/UIProcess/PageClient.h
@@ -26,9 +26,8 @@
 #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 f095ba5..82d5e50 100644
--- a/WebKit2/UIProcess/VisitedLinkProvider.h
+++ b/WebKit2/UIProcess/VisitedLinkProvider.h
@@ -29,10 +29,13 @@
 #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 051eba5..c19c70a 100644
--- a/WebKit2/UIProcess/WebContextInjectedBundleClient.h
+++ b/WebKit2/UIProcess/WebContextInjectedBundleClient.h
@@ -27,7 +27,10 @@
 #define WebContextInjectedBundleClient_h
 
 #include "WKContext.h"
-#include <wtf/Forward.h>
+
+namespace WebCore {
+    class String;
+}
 
 namespace WebKit {
 
diff --git a/WebKit2/UIProcess/WebFrameProxy.h b/WebKit2/UIProcess/WebFrameProxy.h
index ec20f0c..59d6be6 100644
--- a/WebKit2/UIProcess/WebFrameProxy.h
+++ b/WebKit2/UIProcess/WebFrameProxy.h
@@ -30,7 +30,6 @@
 #include "WebFramePolicyListenerProxy.h"
 #include <WebCore/FrameLoaderTypes.h>
 #include <WebCore/PlatformString.h>
-#include <wtf/Forward.h>
 #include <wtf/PassRefPtr.h>
 
 namespace CoreIPC {
@@ -39,6 +38,10 @@ 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 7b0eab9..3ce6ad2 100644
--- a/WebKit2/UIProcess/WebHistoryClient.h
+++ b/WebKit2/UIProcess/WebHistoryClient.h
@@ -27,7 +27,10 @@
 #define WebHistoryClient_h
 
 #include "WKContext.h"
-#include <wtf/Forward.h>
+
+namespace WebCore {
+    class String;
+}
 
 namespace WebKit {
 
diff --git a/WebKit2/UIProcess/WebLoaderClient.h b/WebKit2/UIProcess/WebLoaderClient.h
index 867eb94..1d07de4 100644
--- a/WebKit2/UIProcess/WebLoaderClient.h
+++ b/WebKit2/UIProcess/WebLoaderClient.h
@@ -27,7 +27,10 @@
 #define WebLoaderClient_h
 
 #include "WKPage.h"
-#include <wtf/Forward.h>
+
+namespace WebCore {
+    class StringImpl;
+}
 
 namespace WebKit {
 
diff --git a/WebKit2/UIProcess/WebPolicyClient.h b/WebKit2/UIProcess/WebPolicyClient.h
index 25b4cae..5a6390a 100644
--- a/WebKit2/UIProcess/WebPolicyClient.h
+++ b/WebKit2/UIProcess/WebPolicyClient.h
@@ -28,7 +28,10 @@
 
 #include "WKPage.h"
 #include <WebCore/FrameLoaderTypes.h>
-#include <wtf/Forward.h>
+
+namespace WebCore {
+    class String;
+}
 
 namespace WebKit {
 
diff --git a/WebKit2/UIProcess/WebProcessProxy.h b/WebKit2/UIProcess/WebProcessProxy.h
index eb97083..6808b6f 100644
--- a/WebKit2/UIProcess/WebProcessProxy.h
+++ b/WebKit2/UIProcess/WebProcessProxy.h
@@ -33,7 +33,6 @@
 #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>
@@ -41,6 +40,7 @@
 
 namespace WebCore {
     class KURL;
+    class String;
 };
 
 namespace WebKit {
diff --git a/WebKit2/UIProcess/WebUIClient.h b/WebKit2/UIProcess/WebUIClient.h
index 8533cd3..df2e715 100644
--- a/WebKit2/UIProcess/WebUIClient.h
+++ b/WebKit2/UIProcess/WebUIClient.h
@@ -27,9 +27,12 @@
 #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 118f242..0864e61 100644
--- a/WebKit2/UIProcess/win/WebView.h
+++ b/WebKit2/UIProcess/win/WebView.h
@@ -30,10 +30,13 @@
 #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 fc6d0a3..62bb687 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 707cea9..59782a5 100644
--- a/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h
+++ b/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h
@@ -28,7 +28,10 @@
 
 #include "WKBundlePage.h"
 #include <JavaScriptCore/JSBase.h>
-#include <wtf/Forward.h>
+
+namespace WebCore {
+    class String;
+}
 
 namespace WebKit {
 
diff --git a/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h b/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h
index cbc8591..ba19cd1 100644
--- a/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h
+++ b/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h
@@ -27,7 +27,10 @@
 #define InjectedBundlePageUIClient_h
 
 #include "WKBundlePage.h"
-#include <wtf/Forward.h>
+
+namespace WebCore {
+    class String;
+}
 
 namespace WebKit {
 
diff --git a/WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.h b/WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.h
index 1de8212..2b8e49f 100644
--- a/WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.h
+++ b/WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.h
@@ -26,7 +26,6 @@
 #ifndef NPJSObjectWrapperMap_h
 #define NPJSObjectWrapperMap_h
 
-#include <wtf/Forward.h>
 #include <wtf/HashMap.h>
 
 struct NPObject;
@@ -39,6 +38,10 @@ 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 4b6ffac..983324e 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h
@@ -29,7 +29,6 @@
 #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>
@@ -37,6 +36,7 @@
 
 namespace WebCore {
     class KURL;
+    class String;
 }
 
 namespace WebKit {
diff --git a/WebKit2/WebProcess/Plugins/PluginController.h b/WebKit2/WebProcess/Plugins/PluginController.h
index e4611af..9e9ed12 100644
--- a/WebKit2/WebProcess/Plugins/PluginController.h
+++ b/WebKit2/WebProcess/Plugins/PluginController.h
@@ -26,8 +26,6 @@
 #ifndef PluginController_h
 #define PluginController_h
 
-#include <wtf/Forward.h>
-
 struct NPObject;
 typedef struct _NPVariant NPVariant;
 
@@ -35,6 +33,7 @@ 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 89eb925..ea80134 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 2a88498..2964a4c 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.h
+++ b/WebKit2/WebProcess/WebPage/WebPage.h
@@ -33,7 +33,6 @@
 #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>
@@ -49,6 +48,7 @@ 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 ab68e46..dfcb2ef 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