Android history unforking pt 1: Add Android specific files and #if PLATFORM(ANDROID) guarded code in WebCore/history/HistoryItem.cpp
This should be upstreamed to webkit.org

Change-Id: I3f822d5a6579080658242f846214e1c3fe31fa01
diff --git a/WebCore/history/HistoryItem.h b/WebCore/history/HistoryItem.h
index 21d2293..d153a1f 100644
--- a/WebCore/history/HistoryItem.h
+++ b/WebCore/history/HistoryItem.h
@@ -36,16 +36,16 @@
 typedef struct objc_object* id;
 #endif
 
-#ifdef ANDROID_HISTORY_CLIENT
-#include "WebHistory.h"
-#endif
-
 #if PLATFORM(QT)
 #include <QVariant>
 #include <QByteArray>
 #include <QDataStream>
 #endif
 
+#if PLATFORM(ANDROID)
+#include "AndroidWebHistoryBridge.h"
+#endif
+
 namespace WebCore {
 
 class CachedPage;
@@ -183,15 +183,15 @@
     QDataStream& saveState(QDataStream& out, int version) const;
 #endif
 
+#if PLATFORM(ANDROID)
+    void setBridge(AndroidWebHistoryBridge* bridge);
+    AndroidWebHistoryBridge* bridge() const;
+#endif
+
 #ifndef NDEBUG
     int showTree() const;
     int showTreeWithIndent(unsigned indentLevel) const;
 #endif
-    
-#ifdef ANDROID_HISTORY_CLIENT
-    void setBridge(android::WebHistoryItem* bridge) { m_bridge = adoptRef(bridge); }
-    android::WebHistoryItem* bridge() const { return m_bridge.get(); }
-#endif
 
     void adoptVisitCounts(Vector<int>& dailyCounts, Vector<int>& weeklyCounts);
     const Vector<int>& dailyVisitCounts() const { return m_dailyVisitCounts; }
@@ -252,14 +252,15 @@
     RetainPtr<id> m_viewState;
     OwnPtr<HashMap<String, RetainPtr<id> > > m_transientProperties;
 #endif
-        
-#ifdef ANDROID_HISTORY_CLIENT
-    RefPtr<android::WebHistoryItem> m_bridge;
-#endif
 
 #if PLATFORM(QT)
     QVariant m_userData;
 #endif
+
+#if PLATFORM(ANDROID)
+    RefPtr<AndroidWebHistoryBridge> m_bridge;
+#endif
+
 }; //class HistoryItem
 
 } //namespace WebCore
diff --git a/WebCore/history/android/AndroidWebHistoryBridge.h b/WebCore/history/android/AndroidWebHistoryBridge.h
new file mode 100644
index 0000000..338f37c
--- /dev/null
+++ b/WebCore/history/android/AndroidWebHistoryBridge.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2009, The Android Open Source Project
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef AndroidWebHistoryBridge_h
+#define AndroidWebHistoryBridge_h
+
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class HistoryItem;
+
+class AndroidWebHistoryBridge : public RefCounted<AndroidWebHistoryBridge> {
+public:
+    AndroidWebHistoryBridge()
+        : m_scale(100)
+        , m_screenWidthScale(100)
+        , m_active(false)
+        , m_historyItem(0) { }
+    virtual ~AndroidWebHistoryBridge() { }
+    virtual void updateHistoryItem(HistoryItem* item) = 0;
+
+    void setScale(int s) { m_scale = s; }
+    void setScreenWidthScale(int s) { m_screenWidthScale = s; }
+    int scale() const { return m_scale; }
+    int screenWidthScale() const { return m_screenWidthScale; }
+    HistoryItem* historyItem() const { return m_historyItem; }
+    void setActive() { m_active = true; }
+
+protected:
+    int m_scale;
+    int m_screenWidthScale;
+    bool m_active;
+    HistoryItem* m_historyItem;
+};
+
+} // namespace WebCore
+
+#endif // AndroidWebHistoryBridge_h
diff --git a/WebCore/history/android/HistoryItemAndroid.cpp b/WebCore/history/android/HistoryItemAndroid.cpp
new file mode 100644
index 0000000..7c0f4ba
--- /dev/null
+++ b/WebCore/history/android/HistoryItemAndroid.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2009, The Android Open Source Project
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "HistoryItem.h"
+
+namespace WebCore {
+
+class AndroidWebHistoryBridge;
+
+AndroidWebHistoryBridge* HistoryItem::bridge() const
+{
+    if (!m_bridge)
+        return 0;
+    return m_bridge.get();
+}
+
+void HistoryItem::setBridge(AndroidWebHistoryBridge* bridge)
+{
+    m_bridge = adoptRef(bridge);
+}
+
+} // namespace WebCore
+