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

jorlow at chromium.org jorlow at chromium.org
Wed Dec 22 11:38:33 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 4409cc88d1bb73705ba213d6f0f32f09014f8c5a
Author: jorlow at chromium.org <jorlow at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Aug 2 14:53:46 2010 +0000

    2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Speculative revert of 64425 due to Chromium instability
            https://bugs.webkit.org/show_bug.cgi?id=43347
    
            * GNUmakefile.am:
            * WebCore.exp.in:
            * WebCore.gypi:
            * WebCore.pro:
            * WebCore.vcproj/WebCore.vcproj:
            * WebCore.xcodeproj/project.pbxproj:
            * loader/EmptyClients.h:
            * page/Chrome.cpp:
            * page/Chrome.h:
            * page/ChromeClient.h:
            * platform/PopupMenu.h:
            (WebCore::PopupMenu::create):
            (WebCore::PopupMenu::disconnectClient):
            (WebCore::PopupMenu::client):
            (WebCore::PopupMenu::scrollbar):
            (WebCore::PopupMenu::itemHeight):
            (WebCore::PopupMenu::windowRect):
            (WebCore::PopupMenu::popupHandle):
            (WebCore::PopupMenu::setWasClicked):
            (WebCore::PopupMenu::wasClicked):
            (WebCore::PopupMenu::setScrollOffset):
            (WebCore::PopupMenu::scrollOffset):
            (WebCore::PopupMenu::wheelDelta):
            (WebCore::PopupMenu::scrollbarCapturingMouse):
            (WebCore::PopupMenu::setScrollbarCapturingMouse):
            (WebCore::PopupMenu::isActive):
            (WebCore::PopupMenu::scrollbarCornerPresent):
            * platform/SearchPopupMenu.h:
            (WebCore::SearchPopupMenu::create):
            * platform/brew/PopupMenuBrew.cpp:
            (WebCore::PopupMenu::PopupMenu):
            (WebCore::PopupMenu::~PopupMenu):
            (WebCore::PopupMenu::show):
            (WebCore::PopupMenu::hide):
            (WebCore::PopupMenu::updateFromElement):
            (WebCore::PopupMenu::itemWritingDirectionIsNatural):
            * platform/brew/PopupMenuBrew.h: Removed.
            * platform/brew/SearchPopupMenuBrew.cpp:
            (WebCore::SearchPopupMenu::saveRecentSearches):
            (WebCore::SearchPopupMenu::loadRecentSearches):
            (WebCore::SearchPopupMenu::SearchPopupMenu):
            (WebCore::SearchPopupMenu::enabled):
            * platform/brew/SearchPopupMenuBrew.h: Removed.
            * platform/chromium/PopupMenuChromium.cpp:
            (WebCore::PopupMenu::PopupMenu):
            (WebCore::PopupMenu::~PopupMenu):
            (WebCore::PopupMenu::show):
            (WebCore::PopupMenu::hide):
            (WebCore::PopupMenu::updateFromElement):
            (WebCore::PopupMenu::itemWritingDirectionIsNatural):
            * platform/chromium/PopupMenuChromium.h:
            * platform/chromium/SearchPopupMenuChromium.cpp:
            (WebCore::SearchPopupMenu::SearchPopupMenu):
            (WebCore::SearchPopupMenu::enabled):
            (WebCore::SearchPopupMenu::saveRecentSearches):
            (WebCore::SearchPopupMenu::loadRecentSearches):
            * platform/chromium/SearchPopupMenuChromium.h: Removed.
            * platform/efl/PopupMenuEfl.cpp:
            (WebCore::PopupMenu::PopupMenu):
            (WebCore::PopupMenu::~PopupMenu):
            (WebCore::PopupMenu::show):
            (WebCore::PopupMenu::hide):
            (WebCore::PopupMenu::updateFromElement):
            (WebCore::PopupMenu::itemWritingDirectionIsNatural):
            * platform/efl/PopupMenuEfl.h: Removed.
            * platform/efl/SearchPopupMenuEfl.cpp:
            (WebCore::SearchPopupMenu::SearchPopupMenu):
            (WebCore::SearchPopupMenu::saveRecentSearches):
            (WebCore::SearchPopupMenu::loadRecentSearches):
            (WebCore::SearchPopupMenu::enabled):
            * platform/efl/SearchPopupMenuEfl.h: Removed.
            * platform/gtk/PopupMenuGtk.cpp:
            (WebCore::PopupMenu::PopupMenu):
            (WebCore::PopupMenu::~PopupMenu):
            (WebCore::PopupMenu::show):
            (WebCore::PopupMenu::hide):
            (WebCore::PopupMenu::updateFromElement):
            (WebCore::PopupMenu::itemWritingDirectionIsNatural):
            (WebCore::PopupMenu::menuItemActivated):
            (WebCore::PopupMenu::menuUnmapped):
            (WebCore::PopupMenu::menuPositionFunction):
            (WebCore::PopupMenu::menuRemoveItem):
            * platform/gtk/PopupMenuGtk.h: Removed.
            * platform/gtk/SearchPopupMenuGtk.cpp:
            (WebCore::SearchPopupMenu::SearchPopupMenu):
            (WebCore::SearchPopupMenu::saveRecentSearches):
            (WebCore::SearchPopupMenu::loadRecentSearches):
            (WebCore::SearchPopupMenu::enabled):
            * platform/gtk/SearchPopupMenuGtk.h: Removed.
            * platform/haiku/PopupMenuHaiku.cpp:
            (WebCore::PopupMenuHaiku::PopupMenuHaiku):
            (WebCore::PopupMenuHaiku::~PopupMenuHaiku):
            (WebCore::PopupMenu::PopupMenu):
            (WebCore::PopupMenu::~PopupMenu):
            (WebCore::PopupMenu::show):
            (WebCore::PopupMenu::hide):
            (WebCore::PopupMenu::updateFromElement):
            (WebCore::PopupMenu::itemWritingDirectionIsNatural):
            * platform/haiku/PopupMenuHaiku.h: Removed.
            * platform/haiku/SearchPopupMenuHaiku.cpp:
            (WebCore::SearchPopupMenu::SearchPopupMenu):
            (WebCore::SearchPopupMenu::saveRecentSearches):
            (WebCore::SearchPopupMenu::loadRecentSearches):
            (WebCore::SearchPopupMenu::enabled):
            * platform/haiku/SearchPopupMenuHaiku.h: Removed.
            * platform/mac/PopupMenuMac.h: Removed.
            * platform/mac/PopupMenuMac.mm:
            (WebCore::PopupMenu::PopupMenu):
            (WebCore::PopupMenu::~PopupMenu):
            (WebCore::PopupMenu::clear):
            (WebCore::PopupMenu::populate):
            (WebCore::PopupMenu::show):
            (WebCore::PopupMenu::hide):
            (WebCore::PopupMenu::updateFromElement):
            (WebCore::PopupMenu::itemWritingDirectionIsNatural):
            * platform/mac/SearchPopupMenuMac.h: Removed.
            * platform/mac/SearchPopupMenuMac.mm:
            (WebCore::SearchPopupMenu::SearchPopupMenu):
            (WebCore::SearchPopupMenu::enabled):
            (WebCore::SearchPopupMenu::saveRecentSearches):
            (WebCore::SearchPopupMenu::loadRecentSearches):
            * platform/qt/PopupMenuQt.cpp:
            (WebCore::PopupMenu::PopupMenu):
            (WebCore::PopupMenu::~PopupMenu):
            (WebCore::PopupMenu::show):
            (WebCore::PopupMenu::hide):
            (WebCore::PopupMenu::updateFromElement):
            (WebCore::PopupMenu::itemWritingDirectionIsNatural):
            * platform/qt/PopupMenuQt.h: Removed.
            * platform/qt/QtAbstractWebPopup.h:
            * platform/qt/SearchPopupMenuQt.cpp:
            (WebCore::SearchPopupMenu::SearchPopupMenu):
            (WebCore::SearchPopupMenu::saveRecentSearches):
            (WebCore::SearchPopupMenu::loadRecentSearches):
            (WebCore::SearchPopupMenu::enabled):
            * platform/qt/SearchPopupMenuQt.h: Removed.
            * platform/win/PopupMenuWin.cpp:
            (WebCore::PopupMenu::PopupMenu):
            (WebCore::PopupMenu::~PopupMenu):
            (WebCore::PopupMenu::popupClassName):
            (WebCore::PopupMenu::show):
            (WebCore::PopupMenu::hide):
            (WebCore::PopupMenu::calculatePositionAndSize):
            (WebCore::PopupMenu::setFocusedIndex):
            (WebCore::PopupMenu::visibleItems):
            (WebCore::PopupMenu::listIndexAtPoint):
            (WebCore::PopupMenu::focusedIndex):
            (WebCore::PopupMenu::focusFirst):
            (WebCore::PopupMenu::focusLast):
            (WebCore::PopupMenu::down):
            (WebCore::PopupMenu::up):
            (WebCore::PopupMenu::invalidateItem):
            (WebCore::PopupMenu::clientRect):
            (WebCore::PopupMenu::incrementWheelDelta):
            (WebCore::PopupMenu::reduceWheelDelta):
            (WebCore::PopupMenu::scrollToRevealSelection):
            (WebCore::PopupMenu::updateFromElement):
            (WebCore::PopupMenu::itemWritingDirectionIsNatural):
            (WebCore::PopupMenu::paint):
            (WebCore::PopupMenu::valueChanged):
            (WebCore::PopupMenu::invalidateScrollbarRect):
            (WebCore::PopupMenu::registerClass):
            (WebCore::PopupMenu::PopupMenuWndProc):
            (WebCore::PopupMenu::wndProc):
            * platform/win/PopupMenuWin.h: Removed.
            * platform/win/SearchPopupMenuWin.cpp:
            (WebCore::SearchPopupMenu::SearchPopupMenu):
            (WebCore::SearchPopupMenu::enabled):
            (WebCore::SearchPopupMenu::saveRecentSearches):
            (WebCore::SearchPopupMenu::loadRecentSearches):
            * platform/win/SearchPopupMenuWin.h: Removed.
            * platform/wx/PopupMenuWx.cpp:
            (WebCore::PopupMenu::PopupMenu):
            (WebCore::PopupMenu::~PopupMenu):
            (WebCore::PopupMenu::show):
            (WebCore::PopupMenu::OnMenuItemSelected):
            (WebCore::PopupMenu::hide):
            (WebCore::PopupMenu::updateFromElement):
            (WebCore::PopupMenu::itemWritingDirectionIsNatural):
            * platform/wx/PopupMenuWx.h: Removed.
            * platform/wx/SearchPopupMenuWx.cpp:
            (WebCore::SearchPopupMenu::SearchPopupMenu):
            (WebCore::SearchPopupMenu::saveRecentSearches):
            (WebCore::SearchPopupMenu::loadRecentSearches):
            (WebCore::SearchPopupMenu::enabled):
            * platform/wx/SearchPopupMenuWx.h: Removed.
            * rendering/RenderMenuList.cpp:
            (WebCore::RenderMenuList::adjustInnerStyle):
            (WebCore::RenderMenuList::showPopup):
            * rendering/RenderMenuList.h:
            * rendering/RenderTextControlSingleLine.cpp:
            (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
            (WebCore::RenderTextControlSingleLine::addSearchResult):
            (WebCore::RenderTextControlSingleLine::showPopup):
            (WebCore::RenderTextControlSingleLine::hidePopup):
            (WebCore::RenderTextControlSingleLine::updateFromElement):
            (WebCore::RenderTextControlSingleLine::valueChanged):
            * rendering/RenderTextControlSingleLine.h:
    2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Speculative revert of 64425 due to Chromium instability
            https://bugs.webkit.org/show_bug.cgi?id=43347
    
            * src/ChromeClientImpl.cpp:
            * src/ChromeClientImpl.h:
            * tests/PopupMenuTest.cpp:
            (WebKit::SelectPopupMenuTest::SetUp):
    2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Speculative revert of 64425 due to Chromium instability
            https://bugs.webkit.org/show_bug.cgi?id=43347
    
            * WebCoreSupport/ChromeClientEfl.cpp:
            * WebCoreSupport/ChromeClientEfl.h:
    2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Speculative revert of 64425 due to Chromium instability
            https://bugs.webkit.org/show_bug.cgi?id=43347
    
            * WebCoreSupport/ChromeClientGtk.cpp:
            * WebCoreSupport/ChromeClientGtk.h:
    2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Speculative revert of 64425 due to Chromium instability
            https://bugs.webkit.org/show_bug.cgi?id=43347
    
            * WebCoreSupport/ChromeClientHaiku.cpp:
            * WebCoreSupport/ChromeClientHaiku.h:
    2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Speculative revert of 64425 due to Chromium instability
            https://bugs.webkit.org/show_bug.cgi?id=43347
    
            * WebCoreSupport/WebChromeClient.h:
            * WebCoreSupport/WebChromeClient.mm:
    2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Speculative revert of 64425 due to Chromium instability
            https://bugs.webkit.org/show_bug.cgi?id=43347
    
            * WebCoreSupport/ChromeClientQt.cpp:
            * WebCoreSupport/ChromeClientQt.h:
    2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Speculative revert of 64425 due to Chromium instability
            https://bugs.webkit.org/show_bug.cgi?id=43347
    
            * WebCoreSupport/WebChromeClient.cpp:
            * WebCoreSupport/WebChromeClient.h:
            * WebView.cpp:
            (WebView::mouseWheel):
    2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Speculative revert of 64425 due to Chromium instability
            https://bugs.webkit.org/show_bug.cgi?id=43347
    
            * WebKitSupport/ChromeClientWx.cpp:
            * WebKitSupport/ChromeClientWx.h:
    2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Speculative revert of 64425 due to Chromium instability
            https://bugs.webkit.org/show_bug.cgi?id=43347
    
            * WebKit2.xcodeproj/project.pbxproj:
            * WebProcess/WebCoreSupport/WebChromeClient.cpp:
            * WebProcess/WebCoreSupport/WebChromeClient.h:
            * WebProcess/WebCoreSupport/WebPopupMenu.cpp: Removed.
            * WebProcess/WebCoreSupport/WebPopupMenu.h: Removed.
            * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: Removed.
            * WebProcess/WebCoreSupport/WebSearchPopupMenu.h: Removed.
            * win/WebKit2.vcproj:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64462 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index a80d2ef..2ff632a 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,207 @@
+2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Speculative revert of 64425 due to Chromium instability
+        https://bugs.webkit.org/show_bug.cgi?id=43347
+
+        * GNUmakefile.am:
+        * WebCore.exp.in:
+        * WebCore.gypi:
+        * WebCore.pro:
+        * WebCore.vcproj/WebCore.vcproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * loader/EmptyClients.h:
+        * page/Chrome.cpp:
+        * page/Chrome.h:
+        * page/ChromeClient.h:
+        * platform/PopupMenu.h:
+        (WebCore::PopupMenu::create):
+        (WebCore::PopupMenu::disconnectClient):
+        (WebCore::PopupMenu::client):
+        (WebCore::PopupMenu::scrollbar):
+        (WebCore::PopupMenu::itemHeight):
+        (WebCore::PopupMenu::windowRect):
+        (WebCore::PopupMenu::popupHandle):
+        (WebCore::PopupMenu::setWasClicked):
+        (WebCore::PopupMenu::wasClicked):
+        (WebCore::PopupMenu::setScrollOffset):
+        (WebCore::PopupMenu::scrollOffset):
+        (WebCore::PopupMenu::wheelDelta):
+        (WebCore::PopupMenu::scrollbarCapturingMouse):
+        (WebCore::PopupMenu::setScrollbarCapturingMouse):
+        (WebCore::PopupMenu::isActive):
+        (WebCore::PopupMenu::scrollbarCornerPresent):
+        * platform/SearchPopupMenu.h:
+        (WebCore::SearchPopupMenu::create):
+        * platform/brew/PopupMenuBrew.cpp:
+        (WebCore::PopupMenu::PopupMenu):
+        (WebCore::PopupMenu::~PopupMenu):
+        (WebCore::PopupMenu::show):
+        (WebCore::PopupMenu::hide):
+        (WebCore::PopupMenu::updateFromElement):
+        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+        * platform/brew/PopupMenuBrew.h: Removed.
+        * platform/brew/SearchPopupMenuBrew.cpp:
+        (WebCore::SearchPopupMenu::saveRecentSearches):
+        (WebCore::SearchPopupMenu::loadRecentSearches):
+        (WebCore::SearchPopupMenu::SearchPopupMenu):
+        (WebCore::SearchPopupMenu::enabled):
+        * platform/brew/SearchPopupMenuBrew.h: Removed.
+        * platform/chromium/PopupMenuChromium.cpp:
+        (WebCore::PopupMenu::PopupMenu):
+        (WebCore::PopupMenu::~PopupMenu):
+        (WebCore::PopupMenu::show):
+        (WebCore::PopupMenu::hide):
+        (WebCore::PopupMenu::updateFromElement):
+        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+        * platform/chromium/PopupMenuChromium.h:
+        * platform/chromium/SearchPopupMenuChromium.cpp:
+        (WebCore::SearchPopupMenu::SearchPopupMenu):
+        (WebCore::SearchPopupMenu::enabled):
+        (WebCore::SearchPopupMenu::saveRecentSearches):
+        (WebCore::SearchPopupMenu::loadRecentSearches):
+        * platform/chromium/SearchPopupMenuChromium.h: Removed.
+        * platform/efl/PopupMenuEfl.cpp:
+        (WebCore::PopupMenu::PopupMenu):
+        (WebCore::PopupMenu::~PopupMenu):
+        (WebCore::PopupMenu::show):
+        (WebCore::PopupMenu::hide):
+        (WebCore::PopupMenu::updateFromElement):
+        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+        * platform/efl/PopupMenuEfl.h: Removed.
+        * platform/efl/SearchPopupMenuEfl.cpp:
+        (WebCore::SearchPopupMenu::SearchPopupMenu):
+        (WebCore::SearchPopupMenu::saveRecentSearches):
+        (WebCore::SearchPopupMenu::loadRecentSearches):
+        (WebCore::SearchPopupMenu::enabled):
+        * platform/efl/SearchPopupMenuEfl.h: Removed.
+        * platform/gtk/PopupMenuGtk.cpp:
+        (WebCore::PopupMenu::PopupMenu):
+        (WebCore::PopupMenu::~PopupMenu):
+        (WebCore::PopupMenu::show):
+        (WebCore::PopupMenu::hide):
+        (WebCore::PopupMenu::updateFromElement):
+        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+        (WebCore::PopupMenu::menuItemActivated):
+        (WebCore::PopupMenu::menuUnmapped):
+        (WebCore::PopupMenu::menuPositionFunction):
+        (WebCore::PopupMenu::menuRemoveItem):
+        * platform/gtk/PopupMenuGtk.h: Removed.
+        * platform/gtk/SearchPopupMenuGtk.cpp:
+        (WebCore::SearchPopupMenu::SearchPopupMenu):
+        (WebCore::SearchPopupMenu::saveRecentSearches):
+        (WebCore::SearchPopupMenu::loadRecentSearches):
+        (WebCore::SearchPopupMenu::enabled):
+        * platform/gtk/SearchPopupMenuGtk.h: Removed.
+        * platform/haiku/PopupMenuHaiku.cpp:
+        (WebCore::PopupMenuHaiku::PopupMenuHaiku):
+        (WebCore::PopupMenuHaiku::~PopupMenuHaiku):
+        (WebCore::PopupMenu::PopupMenu):
+        (WebCore::PopupMenu::~PopupMenu):
+        (WebCore::PopupMenu::show):
+        (WebCore::PopupMenu::hide):
+        (WebCore::PopupMenu::updateFromElement):
+        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+        * platform/haiku/PopupMenuHaiku.h: Removed.
+        * platform/haiku/SearchPopupMenuHaiku.cpp:
+        (WebCore::SearchPopupMenu::SearchPopupMenu):
+        (WebCore::SearchPopupMenu::saveRecentSearches):
+        (WebCore::SearchPopupMenu::loadRecentSearches):
+        (WebCore::SearchPopupMenu::enabled):
+        * platform/haiku/SearchPopupMenuHaiku.h: Removed.
+        * platform/mac/PopupMenuMac.h: Removed.
+        * platform/mac/PopupMenuMac.mm:
+        (WebCore::PopupMenu::PopupMenu):
+        (WebCore::PopupMenu::~PopupMenu):
+        (WebCore::PopupMenu::clear):
+        (WebCore::PopupMenu::populate):
+        (WebCore::PopupMenu::show):
+        (WebCore::PopupMenu::hide):
+        (WebCore::PopupMenu::updateFromElement):
+        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+        * platform/mac/SearchPopupMenuMac.h: Removed.
+        * platform/mac/SearchPopupMenuMac.mm:
+        (WebCore::SearchPopupMenu::SearchPopupMenu):
+        (WebCore::SearchPopupMenu::enabled):
+        (WebCore::SearchPopupMenu::saveRecentSearches):
+        (WebCore::SearchPopupMenu::loadRecentSearches):
+        * platform/qt/PopupMenuQt.cpp:
+        (WebCore::PopupMenu::PopupMenu):
+        (WebCore::PopupMenu::~PopupMenu):
+        (WebCore::PopupMenu::show):
+        (WebCore::PopupMenu::hide):
+        (WebCore::PopupMenu::updateFromElement):
+        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+        * platform/qt/PopupMenuQt.h: Removed.
+        * platform/qt/QtAbstractWebPopup.h:
+        * platform/qt/SearchPopupMenuQt.cpp:
+        (WebCore::SearchPopupMenu::SearchPopupMenu):
+        (WebCore::SearchPopupMenu::saveRecentSearches):
+        (WebCore::SearchPopupMenu::loadRecentSearches):
+        (WebCore::SearchPopupMenu::enabled):
+        * platform/qt/SearchPopupMenuQt.h: Removed.
+        * platform/win/PopupMenuWin.cpp:
+        (WebCore::PopupMenu::PopupMenu):
+        (WebCore::PopupMenu::~PopupMenu):
+        (WebCore::PopupMenu::popupClassName):
+        (WebCore::PopupMenu::show):
+        (WebCore::PopupMenu::hide):
+        (WebCore::PopupMenu::calculatePositionAndSize):
+        (WebCore::PopupMenu::setFocusedIndex):
+        (WebCore::PopupMenu::visibleItems):
+        (WebCore::PopupMenu::listIndexAtPoint):
+        (WebCore::PopupMenu::focusedIndex):
+        (WebCore::PopupMenu::focusFirst):
+        (WebCore::PopupMenu::focusLast):
+        (WebCore::PopupMenu::down):
+        (WebCore::PopupMenu::up):
+        (WebCore::PopupMenu::invalidateItem):
+        (WebCore::PopupMenu::clientRect):
+        (WebCore::PopupMenu::incrementWheelDelta):
+        (WebCore::PopupMenu::reduceWheelDelta):
+        (WebCore::PopupMenu::scrollToRevealSelection):
+        (WebCore::PopupMenu::updateFromElement):
+        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+        (WebCore::PopupMenu::paint):
+        (WebCore::PopupMenu::valueChanged):
+        (WebCore::PopupMenu::invalidateScrollbarRect):
+        (WebCore::PopupMenu::registerClass):
+        (WebCore::PopupMenu::PopupMenuWndProc):
+        (WebCore::PopupMenu::wndProc):
+        * platform/win/PopupMenuWin.h: Removed.
+        * platform/win/SearchPopupMenuWin.cpp:
+        (WebCore::SearchPopupMenu::SearchPopupMenu):
+        (WebCore::SearchPopupMenu::enabled):
+        (WebCore::SearchPopupMenu::saveRecentSearches):
+        (WebCore::SearchPopupMenu::loadRecentSearches):
+        * platform/win/SearchPopupMenuWin.h: Removed.
+        * platform/wx/PopupMenuWx.cpp:
+        (WebCore::PopupMenu::PopupMenu):
+        (WebCore::PopupMenu::~PopupMenu):
+        (WebCore::PopupMenu::show):
+        (WebCore::PopupMenu::OnMenuItemSelected):
+        (WebCore::PopupMenu::hide):
+        (WebCore::PopupMenu::updateFromElement):
+        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+        * platform/wx/PopupMenuWx.h: Removed.
+        * platform/wx/SearchPopupMenuWx.cpp:
+        (WebCore::SearchPopupMenu::SearchPopupMenu):
+        (WebCore::SearchPopupMenu::saveRecentSearches):
+        (WebCore::SearchPopupMenu::loadRecentSearches):
+        (WebCore::SearchPopupMenu::enabled):
+        * platform/wx/SearchPopupMenuWx.h: Removed.
+        * rendering/RenderMenuList.cpp:
+        (WebCore::RenderMenuList::adjustInnerStyle):
+        (WebCore::RenderMenuList::showPopup):
+        * rendering/RenderMenuList.h:
+        * rendering/RenderTextControlSingleLine.cpp:
+        (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
+        (WebCore::RenderTextControlSingleLine::addSearchResult):
+        (WebCore::RenderTextControlSingleLine::showPopup):
+        (WebCore::RenderTextControlSingleLine::hidePopup):
+        (WebCore::RenderTextControlSingleLine::updateFromElement):
+        (WebCore::RenderTextControlSingleLine::valueChanged):
+        * rendering/RenderTextControlSingleLine.h:
+
 2010-08-02  Markus Goetz  <Markus.Goetz at nokia.com>
 
         Reviewed by Kenneth Rohde Christiansen.
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index c557ab1..d35b74a 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -2465,7 +2465,6 @@ webcoregtk_sources += \
 	WebCore/platform/gtk/PasteboardHelper.h \
 	WebCore/platform/gtk/PlatformScreenGtk.cpp \
 	WebCore/platform/gtk/PopupMenuGtk.cpp \
-	WebCore/platform/gtk/PopupMenuGtk.h \
 	WebCore/platform/gtk/RenderThemeGtk.cpp \
 	WebCore/platform/gtk/RenderThemeGtk.h \
 	WebCore/platform/gtk/ScrollbarGtk.cpp \
@@ -2474,7 +2473,6 @@ webcoregtk_sources += \
 	WebCore/platform/gtk/ScrollbarThemeGtk.h \
 	WebCore/platform/gtk/ScrollViewGtk.cpp \
 	WebCore/platform/gtk/SearchPopupMenuGtk.cpp \
-	WebCore/platform/gtk/SearchPopupMenuGtk.h \
 	WebCore/platform/gtk/SharedBufferGtk.cpp \
 	WebCore/platform/gtk/SharedTimerGtk.cpp \
 	WebCore/platform/gtk/SoundGtk.cpp \
diff --git a/WebCore/WebCore.exp.in b/WebCore/WebCore.exp.in
index ceead31..9f33e36 100644
--- a/WebCore/WebCore.exp.in
+++ b/WebCore/WebCore.exp.in
@@ -250,7 +250,6 @@ __ZN7WebCore12IconDatabase27checkIntegrityBeforeOpeningEv
 __ZN7WebCore12IconDatabase4openERKNS_6StringE
 __ZN7WebCore12IconDatabase5closeEv
 __ZN7WebCore12IconDatabase9setClientEPNS_18IconDatabaseClientE
-__ZN7WebCore12PopupMenuMacC1EPNS_15PopupMenuClientE
 __ZN7WebCore12PrintContext12pagePropertyEPNS_5FrameEPKci
 __ZN7WebCore12PrintContext13numberOfPagesEPNS_5FrameERKNS_9FloatSizeE
 __ZN7WebCore12PrintContext16isPageBoxVisibleEPNS_5FrameEi
@@ -412,7 +411,6 @@ __ZN7WebCore17openTemporaryFileEPKcRi
 __ZN7WebCore18deprecatedParseURLERKNS_6StringE
 __ZN7WebCore18isStartOfParagraphERKNS_15VisiblePositionE
 __ZN7WebCore18pluginScriptObjectEPN3JSC9ExecStateEPNS_13JSHTMLElementE
-__ZN7WebCore18SearchPopupMenuMacC1EPNS_15PopupMenuClientE
 __ZN7WebCore19AnimationController16resumeAnimationsEPNS_8DocumentE
 __ZN7WebCore19AnimationController17suspendAnimationsEPNS_8DocumentE
 __ZN7WebCore19AnimationController20pauseAnimationAtTimeEPNS_12RenderObjectERKNS_6StringEd
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index 20482bb..f502cb4 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -2130,7 +2130,6 @@
             'platform/chromium/ScrollbarThemeChromiumMac.mm',
             'platform/chromium/ScrollbarThemeChromiumWin.cpp',
             'platform/chromium/SearchPopupMenuChromium.cpp',
-            'platform/chromium/SearchPopupMenuChromium.h',
             'platform/chromium/SharedTimerChromium.cpp',
             'platform/chromium/SoundChromiumPosix.cpp',
             'platform/chromium/SoundChromiumWin.cpp',
@@ -2623,7 +2622,6 @@
             'platform/mac/PasteboardMac.mm',
             'platform/mac/PlatformMouseEventMac.mm',
             'platform/mac/PlatformScreenMac.mm',
-            'platform/mac/PopupMenuMac.h',
             'platform/mac/PopupMenuMac.mm',
             'platform/mac/PurgeableBufferMac.cpp',
             'platform/mac/SSLKeyGeneratorMac.mm',
@@ -2631,7 +2629,6 @@
             'platform/mac/ScrollViewMac.mm',
             'platform/mac/ScrollbarThemeMac.h',
             'platform/mac/ScrollbarThemeMac.mm',
-            'platform/mac/SearchPopupMenuMac.h',
             'platform/mac/SearchPopupMenuMac.mm',
             'platform/mac/SharedBufferMac.mm',
             'platform/mac/SharedTimerMac.mm',
@@ -2782,7 +2779,6 @@
             'platform/qt/PlatformMouseEventQt.cpp',
             'platform/qt/PlatformScreenQt.cpp',
             'platform/qt/PopupMenuQt.cpp',
-            'platform/qt/PopupMenuQt.h',
             'platform/qt/QWebPopup.cpp',
             'platform/qt/QWebPopup.h',
             'platform/qt/RenderThemeQt.cpp',
@@ -2793,7 +2789,6 @@
             'platform/qt/ScrollbarThemeQt.cpp',
             'platform/qt/ScrollbarThemeQt.h',
             'platform/qt/SearchPopupMenuQt.cpp',
-            'platform/qt/SearchPopupMenuQt.h',
             'platform/qt/SharedBufferQt.cpp',
             'platform/qt/SharedTimerQt.cpp',
             'platform/qt/SoundQt.cpp',
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index 03af4df..c841f0e 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -1709,7 +1709,6 @@ HEADERS += \
     platform/network/ResourceResponseBase.h \
     platform/PlatformTouchEvent.h \
     platform/PlatformTouchPoint.h \
-    platform/PopupMenu.h \
     platform/qt/ClipboardQt.h \
     platform/qt/QWebPageClient.h \
     platform/qt/QtAbstractWebPopup.h \
@@ -1719,7 +1718,6 @@ HEADERS += \
     platform/Scrollbar.h \
     platform/ScrollbarThemeComposite.h \
     platform/ScrollView.h \
-    platform/SearchPopupMenu.h \
     platform/SharedBuffer.h \
     platform/sql/SQLiteDatabase.h \
     platform/sql/SQLiteFileSystem.h \
@@ -3298,8 +3296,6 @@ HEADERS += \
     ../WebKit2/WebProcess/WebCoreSupport/WebErrors.h \
     ../WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h \
     ../WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.h \
-    ../WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.h \
-    ../WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.h \
     ../WebKit2/WebProcess/WebPage/ChunkedUpdateDrawingArea.h \
     ../WebKit2/WebProcess/WebPage/DrawingArea.h \
     ../WebKit2/WebProcess/WebPage/WebFrame.h \
@@ -3372,8 +3368,6 @@ SOURCES += \
     ../WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp \
     ../WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp \
     ../WebKit2/WebProcess/WebCoreSupport/WebBackForwardControllerClient.cpp \
-    ../WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.cpp \
-    ../WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp \
     ../WebKit2/WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp \
     ../WebKit2/WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp \
     ../WebKit2/WebProcess/WebPage/DrawingArea.cpp \
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index 32220a0..7fe8705 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -23720,10 +23720,6 @@
 					>
 				</File>
 				<File
-					RelativePath="..\platform\win\PopupMenuWin.h"
-					>
-				</File>
-				<File
 					RelativePath="..\platform\win\ScrollbarThemeSafari.cpp"
 					>
 				</File>
@@ -23744,10 +23740,6 @@
 					>
 				</File>
 				<File
-					RelativePath="..\platform\win\SearchPopupMenuWin.h"
-					>
-				</File>
-				<File
 					RelativePath="..\platform\win\SharedBufferWin.cpp"
 					>
 				</File>
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index 8f49726..89da4aa 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -42,7 +42,7 @@
 		065AD4F50B0C2EDA005A2B1D /* ContextMenuClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 065AD4F20B0C2EDA005A2B1D /* ContextMenuClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		065AD4F60B0C2EDA005A2B1D /* ContextMenuController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 065AD4F30B0C2EDA005A2B1D /* ContextMenuController.cpp */; };
 		065AD4F70B0C2EDA005A2B1D /* ContextMenuController.h in Headers */ = {isa = PBXBuildFile; fileRef = 065AD4F40B0C2EDA005A2B1D /* ContextMenuController.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		0668E18B0ADD9624004128E0 /* PopupMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 0668E1890ADD9624004128E0 /* PopupMenu.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		0668E18B0ADD9624004128E0 /* PopupMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 0668E1890ADD9624004128E0 /* PopupMenu.h */; };
 		0668E1900ADD9640004128E0 /* PopupMenuMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0668E18E0ADD9640004128E0 /* PopupMenuMac.mm */; };
 		066C772B0AB603B700238CC4 /* FileChooser.h in Headers */ = {isa = PBXBuildFile; fileRef = 066C772A0AB603B700238CC4 /* FileChooser.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		066C772D0AB603D200238CC4 /* FileChooserMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 066C772C0AB603D200238CC4 /* FileChooserMac.mm */; };
@@ -3596,12 +3596,12 @@
 		AB4CB4EB0B8BDA3D009F40B0 /* JSHTMLSelectElementCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = AB4CB4EA0B8BDA3D009F40B0 /* JSHTMLSelectElementCustom.h */; };
 		AB67D1A8097F3AE300F9392E /* RenderTextControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB67D1A6097F3AE300F9392E /* RenderTextControl.cpp */; };
 		AB67D1A9097F3AE300F9392E /* RenderTextControl.h in Headers */ = {isa = PBXBuildFile; fileRef = AB67D1A7097F3AE300F9392E /* RenderTextControl.h */; };
-		AB7170890B3118080017123E /* SearchPopupMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = AB7170880B3118080017123E /* SearchPopupMenu.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		AB7170890B3118080017123E /* SearchPopupMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = AB7170880B3118080017123E /* SearchPopupMenu.h */; };
 		AB7170A00B31193B0017123E /* SearchPopupMenuMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB71709F0B31193B0017123E /* SearchPopupMenuMac.mm */; };
 		ABAF22080C03B1C700B0BCF0 /* ChromeMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABAF22070C03B1C700B0BCF0 /* ChromeMac.mm */; };
 		ABB5419E0ACDDFE4002820EB /* RenderListBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB5419C0ACDDFE4002820EB /* RenderListBox.cpp */; };
 		ABB5419F0ACDDFE4002820EB /* RenderListBox.h in Headers */ = {isa = PBXBuildFile; fileRef = ABB5419D0ACDDFE4002820EB /* RenderListBox.h */; };
-		ABC128770B33AA6D00C693D5 /* PopupMenuClient.h in Headers */ = {isa = PBXBuildFile; fileRef = ABC128760B33AA6D00C693D5 /* PopupMenuClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		ABC128770B33AA6D00C693D5 /* PopupMenuClient.h in Headers */ = {isa = PBXBuildFile; fileRef = ABC128760B33AA6D00C693D5 /* PopupMenuClient.h */; };
 		ABDDFE790A5C6E7000A3E11D /* RenderMenuList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABDDFE730A5C6E6F00A3E11D /* RenderMenuList.cpp */; };
 		ABDDFE7A0A5C6E7000A3E11D /* RenderMenuList.h in Headers */ = {isa = PBXBuildFile; fileRef = ABDDFE740A5C6E7000A3E11D /* RenderMenuList.h */; };
 		ABFE7E120D32FAF60066F4D2 /* MediaControlElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABFE7E100D32FAF50066F4D2 /* MediaControlElements.cpp */; };
@@ -5022,8 +5022,6 @@
 		D23CA55D0AB0EAAE005108A5 /* JSRangeException.h in Headers */ = {isa = PBXBuildFile; fileRef = D23CA55C0AB0EAAE005108A5 /* JSRangeException.h */; };
 		D23CA55F0AB0EAB6005108A5 /* JSRangeException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D23CA55E0AB0EAB6005108A5 /* JSRangeException.cpp */; };
 		D23CA56C0AB0EB8D005108A5 /* RangeException.h in Headers */ = {isa = PBXBuildFile; fileRef = D23CA56B0AB0EB8D005108A5 /* RangeException.h */; };
-		D39D006D11F8E308006041F2 /* PopupMenuMac.h in Headers */ = {isa = PBXBuildFile; fileRef = D39D006C11F8E308006041F2 /* PopupMenuMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		D39D009D11F907E6006041F2 /* SearchPopupMenuMac.h in Headers */ = {isa = PBXBuildFile; fileRef = D39D009C11F907E6006041F2 /* SearchPopupMenuMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		D8B6152F1032495100C8554A /* Cookie.h in Headers */ = {isa = PBXBuildFile; fileRef = D8B6152E1032495100C8554A /* Cookie.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		DB23C2CB0A508D29002489EB /* IndentOutdentCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DB23C2C90A508D29002489EB /* IndentOutdentCommand.cpp */; };
 		DB23C2CC0A508D29002489EB /* IndentOutdentCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = DB23C2CA0A508D29002489EB /* IndentOutdentCommand.h */; };
@@ -10736,8 +10734,6 @@
 		D23CA55C0AB0EAAE005108A5 /* JSRangeException.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSRangeException.h; sourceTree = "<group>"; };
 		D23CA55E0AB0EAB6005108A5 /* JSRangeException.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSRangeException.cpp; sourceTree = "<group>"; };
 		D23CA56B0AB0EB8D005108A5 /* RangeException.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RangeException.h; sourceTree = "<group>"; };
-		D39D006C11F8E308006041F2 /* PopupMenuMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopupMenuMac.h; sourceTree = "<group>"; };
-		D39D009C11F907E6006041F2 /* SearchPopupMenuMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchPopupMenuMac.h; sourceTree = "<group>"; };
 		D8B6152E1032495100C8554A /* Cookie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cookie.h; sourceTree = "<group>"; };
 		DB23C2C90A508D29002489EB /* IndentOutdentCommand.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IndentOutdentCommand.cpp; sourceTree = "<group>"; };
 		DB23C2CA0A508D29002489EB /* IndentOutdentCommand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IndentOutdentCommand.h; sourceTree = "<group>"; };
@@ -12308,12 +12304,10 @@
 				4B2709810AF2E5E00065127F /* PasteboardMac.mm */,
 				935C476F09AC4D7300A6AAB4 /* PlatformMouseEventMac.mm */,
 				BC94D1070C274F88006BC617 /* PlatformScreenMac.mm */,
-				D39D006C11F8E308006041F2 /* PopupMenuMac.h */,
 				0668E18E0ADD9640004128E0 /* PopupMenuMac.mm */,
 				E4D687760ED7AE3D006EA978 /* PurgeableBufferMac.cpp */,
 				447D69010FA626810015CCB1 /* RuntimeApplicationChecks.h */,
 				447D69020FA626810015CCB1 /* RuntimeApplicationChecks.mm */,
-				D39D009C11F907E6006041F2 /* SearchPopupMenuMac.h */,
 				1CE24F960D7CAF0E007E04C2 /* SchedulePairMac.mm */,
 				BCAA90C20A7EBA60008B1229 /* Scrollbar.cpp */,
 				BC8B853C0E7C7F1100AB6984 /* ScrollbarThemeMac.h */,
@@ -19961,8 +19955,6 @@
 				C572EE0E1201C736007D8F82 /* IDBIndexBackendImpl.h in Headers */,
 				C572EE0F1201C736007D8F82 /* IDBIndexBackendInterface.h in Headers */,
 				C572EE1F1201C9BC007D8F82 /* JSIDBIndex.h in Headers */,
-				D39D006D11F8E308006041F2 /* PopupMenuMac.h in Headers */,
-				D39D009D11F907E6006041F2 /* SearchPopupMenuMac.h in Headers */,
 				379919971200DDF400EA041C /* WOFFFileFormat.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
diff --git a/WebCore/loader/EmptyClients.h b/WebCore/loader/EmptyClients.h
index ba7841c..eca01e8 100644
--- a/WebCore/loader/EmptyClients.h
+++ b/WebCore/loader/EmptyClients.h
@@ -1,7 +1,6 @@
 /*
  * Copyright (C) 2006 Eric Seidel (eric at webkit.org)
  * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -40,9 +39,7 @@
 #include "FrameLoaderClient.h"
 #include "InspectorClient.h"
 #include "PluginHalterClient.h"
-#include "PopupMenu.h"
 #include "ResourceError.h"
-#include "SearchPopupMenu.h"
 
 #if USE(GLES2_RENDERING)
 #include "GLES2Context.h"
@@ -63,25 +60,6 @@
 
 namespace WebCore {
 
-class EmptyPopupMenu : public PopupMenu {
-public:
-    virtual void show(const IntRect&, FrameView*, int) {}
-    virtual void hide() {}
-    virtual void updateFromElement() {}
-    virtual void disconnectClient() {}
-};
-
-class EmptySearchPopupMenu : public SearchPopupMenu {
-public:
-    virtual PopupMenu* popupMenu() { return &m_popup; }
-    virtual void saveRecentSearches(const AtomicString&, const Vector<String>&) {}
-    virtual void loadRecentSearches(const AtomicString&, Vector<String>&) {}
-    virtual bool enabled() { return false; }
-
-private:
-    EmptyPopupMenu m_popup;
-};
-
 class EmptyChromeClient : public ChromeClient {
 public:
     virtual ~EmptyChromeClient() { }
@@ -134,10 +112,6 @@ public:
     virtual bool runJavaScriptPrompt(Frame*, const String&, const String&, String&) { return false; }
     virtual bool shouldInterruptJavaScript() { return false; }
 
-    virtual bool selectItemWritingDirectionIsNatural() { return false; }
-    virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const { return adoptRef(new EmptyPopupMenu()); }
-    virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const { return adoptRef(new EmptySearchPopupMenu()); }
-
     virtual void setStatusbarText(const String&) { }
 
     virtual bool tabsToLinks() const { return false; }
diff --git a/WebCore/page/Chrome.cpp b/WebCore/page/Chrome.cpp
index bff0100..0c66925 100644
--- a/WebCore/page/Chrome.cpp
+++ b/WebCore/page/Chrome.cpp
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies)
+ * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -482,19 +482,5 @@ bool ChromeClient::paintCustomScrollCorner(GraphicsContext*, const FloatRect&)
     return false;
 }
 
-bool Chrome::selectItemWritingDirectionIsNatural()
-{
-    return m_client->selectItemWritingDirectionIsNatural();
-}
-
-PassRefPtr<PopupMenu> Chrome::createPopupMenu(PopupMenuClient* client) const
-{
-    return m_client->createPopupMenu(client);
-}
-
-PassRefPtr<SearchPopupMenu> Chrome::createSearchPopupMenu(PopupMenuClient* client) const
-{
-    return m_client->createSearchPopupMenu(client);
-}
 
 } // namespace WebCore
diff --git a/WebCore/page/Chrome.h b/WebCore/page/Chrome.h
index 30edf28..537468a 100644
--- a/WebCore/page/Chrome.h
+++ b/WebCore/page/Chrome.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -25,8 +24,6 @@
 #include "FileChooser.h"
 #include "FocusDirection.h"
 #include "HostWindow.h"
-#include "PopupMenu.h"
-#include "SearchPopupMenu.h"
 #include <wtf/Forward.h>
 #include <wtf/RefPtr.h>
 
@@ -47,7 +44,6 @@ namespace WebCore {
     class IntRect;
     class Node;
     class Page;
-    class PopupMenuClient;
     class String;
 #if ENABLE(NOTIFICATIONS)
     class NotificationPresenter;
@@ -148,10 +144,6 @@ namespace WebCore {
         NotificationPresenter* notificationPresenter() const; 
 #endif
 
-        bool selectItemWritingDirectionIsNatural();
-        PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const;
-        PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const;
-
     private:
         Page* m_page;
         ChromeClient* m_client;
diff --git a/WebCore/page/ChromeClient.h b/WebCore/page/ChromeClient.h
index 28e0b4f..39a41ae 100644
--- a/WebCore/page/ChromeClient.h
+++ b/WebCore/page/ChromeClient.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2006, 2007, 2008, 2009 Apple, Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -27,10 +26,7 @@
 #include "GraphicsContext.h"
 #include "HTMLParserQuirks.h"
 #include "HostWindow.h"
-#include "PopupMenu.h"
-#include "PopupMenuClient.h"
 #include "ScrollTypes.h"
-#include "SearchPopupMenu.h"
 #include <wtf/Forward.h>
 #include <wtf/PassOwnPtr.h>
 #include <wtf/Vector.h>
@@ -58,7 +54,6 @@ namespace WebCore {
     class Node;
     class Page;
     class SecurityOrigin;
-    class PopupMenuClient;
     class String;
     class Widget;
 
@@ -267,10 +262,6 @@ namespace WebCore {
         virtual void needTouchEvents(bool) = 0;
 #endif
 
-        virtual bool selectItemWritingDirectionIsNatural() = 0;
-        virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const = 0;
-        virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const = 0;
-
     protected:
         virtual ~ChromeClient() { }
     };
diff --git a/WebCore/platform/PopupMenu.h b/WebCore/platform/PopupMenu.h
index 8ebba03..d9d2740 100644
--- a/WebCore/platform/PopupMenu.h
+++ b/WebCore/platform/PopupMenu.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -21,22 +21,180 @@
 #ifndef PopupMenu_h
 #define PopupMenu_h
 
+#include "IntRect.h"
+#include "PopupMenuClient.h"
+#include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 
+#if PLATFORM(MAC)
+#include <wtf/RetainPtr.h>
+#ifdef __OBJC__
+ at class NSPopUpButtonCell;
+#else
+class NSPopUpButtonCell;
+#endif
+#elif PLATFORM(WIN)
+#include "Scrollbar.h"
+#include "ScrollbarClient.h"
+#include <wtf/RefPtr.h>
+typedef struct HWND__* HWND;
+typedef struct HDC__* HDC;
+typedef struct HBITMAP__* HBITMAP;
+#elif PLATFORM(QT)
+namespace WebCore {
+class QtAbstractWebPopup;
+}
+#elif PLATFORM(GTK)
+typedef struct _GtkMenu GtkMenu;
+typedef struct _GtkMenuItem GtkMenuItem;
+typedef struct _GtkWidget GtkWidget;
+#include "GRefPtrGtk.h"
+#include <wtf/HashMap.h>
+#include <glib.h>
+#elif PLATFORM(WX)
+#ifdef __WXMSW__
+#include <wx/msw/winundef.h>
+#endif
+class wxMenu;
+#include <wx/defs.h>
+#include <wx/event.h>
+#elif PLATFORM(CHROMIUM)
+#include "PopupMenuPrivate.h"
+#elif PLATFORM(HAIKU)
+namespace WebCore {
+class PopupMenuHaiku;
+}
+#endif
+
 namespace WebCore {
 
 class FrameView;
-class IntRect;
+class Scrollbar;
 
-class PopupMenu : public RefCounted<PopupMenu> {
+class PopupMenu : public RefCounted<PopupMenu>
+#if PLATFORM(WIN)
+                , private ScrollbarClient
+#endif
+#if PLATFORM(WX)
+                , public wxEvtHandler
+#endif
+{
 public:
-    virtual ~PopupMenu() {}
-    virtual void show(const IntRect&, FrameView*, int index) = 0;
-    virtual void hide() = 0;
-    virtual void updateFromElement() = 0;
-    virtual void disconnectClient() = 0;
+    static PassRefPtr<PopupMenu> create(PopupMenuClient* client) { return adoptRef(new PopupMenu(client)); }
+    ~PopupMenu();
+    
+    void disconnectClient() { m_popupClient = 0; }
+
+    void show(const IntRect&, FrameView*, int index);
+    void hide();
+
+    void updateFromElement();
+    
+    PopupMenuClient* client() const { return m_popupClient; }
+
+    static bool itemWritingDirectionIsNatural();
+
+#if PLATFORM(WIN)
+    Scrollbar* scrollbar() const { return m_scrollbar.get(); }
+
+    static LPCTSTR popupClassName();
+
+    bool up(unsigned lines = 1);
+    bool down(unsigned lines = 1);
+
+    int itemHeight() const { return m_itemHeight; }
+    const IntRect& windowRect() const { return m_windowRect; }
+    IntRect clientRect() const;
+
+    int visibleItems() const;
+
+    int listIndexAtPoint(const IntPoint&) const;
+
+    bool setFocusedIndex(int index, bool hotTracking = false);
+    int focusedIndex() const;
+    void focusFirst();
+    void focusLast();
+
+    void paint(const IntRect& damageRect, HDC = 0);
+
+    HWND popupHandle() const { return m_popup; }
+
+    void setWasClicked(bool b = true) { m_wasClicked = b; }
+    bool wasClicked() const { return m_wasClicked; }
+
+    void setScrollOffset(int offset) { m_scrollOffset = offset; }
+    int scrollOffset() const { return m_scrollOffset; }
+
+    bool scrollToRevealSelection();
+
+    void incrementWheelDelta(int delta);
+    void reduceWheelDelta(int delta);
+    int wheelDelta() const { return m_wheelDelta; }
+
+    bool scrollbarCapturingMouse() const { return m_scrollbarCapturingMouse; }
+    void setScrollbarCapturingMouse(bool b) { m_scrollbarCapturingMouse = b; }
+#endif
+
+protected:
+    PopupMenu(PopupMenuClient*);
+    
+private:
+    PopupMenuClient* m_popupClient;
+    
+#if PLATFORM(MAC)
+    void clear();
+    void populate();
+
+    RetainPtr<NSPopUpButtonCell> m_popup;
+#elif PLATFORM(QT)
+    QtAbstractWebPopup* m_popup;
+#elif PLATFORM(WIN)
+    // ScrollBarClient
+    virtual void valueChanged(Scrollbar*);
+    virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&);
+    virtual bool isActive() const { return true; }
+    virtual bool scrollbarCornerPresent() const { return false; }
+
+    void calculatePositionAndSize(const IntRect&, FrameView*);
+    void invalidateItem(int index);
+
+    static LRESULT CALLBACK PopupMenuWndProc(HWND, UINT, WPARAM, LPARAM);
+    LRESULT wndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
+    static void registerClass();
+
+    RefPtr<Scrollbar> m_scrollbar;
+    HWND m_popup;
+    HDC m_DC;
+    HBITMAP m_bmp;
+    bool m_wasClicked;
+    IntRect m_windowRect;
+    int m_itemHeight;
+    int m_scrollOffset;
+    int m_wheelDelta;
+    int m_focusedIndex;
+    bool m_scrollbarCapturingMouse;
+    bool m_showPopup;
+#elif PLATFORM(GTK)
+    IntPoint m_menuPosition;
+    GRefPtr<GtkMenu> m_popup;
+    HashMap<GtkWidget*, int> m_indexMap;
+    static void menuItemActivated(GtkMenuItem* item, PopupMenu*);
+    static void menuUnmapped(GtkWidget*, PopupMenu*);
+    static void menuPositionFunction(GtkMenu*, gint*, gint*, gboolean*, PopupMenu*);
+    static void menuRemoveItem(GtkWidget*, PopupMenu*);
+#elif PLATFORM(EFL) || PLATFORM(BREWMP)
+    FrameView* m_view;
+#elif PLATFORM(WX)
+    wxMenu* m_menu;
+    void OnMenuItemSelected(wxCommandEvent&);
+#elif PLATFORM(CHROMIUM)
+    PopupMenuPrivate p;
+#elif PLATFORM(HAIKU)
+    PopupMenuHaiku* m_menu;
+#endif
+
 };
 
 }
 
-#endif // PopupMenu_h
+#endif
diff --git a/WebCore/platform/SearchPopupMenu.h b/WebCore/platform/SearchPopupMenu.h
index d1ecd0f..4285cdf 100644
--- a/WebCore/platform/SearchPopupMenu.h
+++ b/WebCore/platform/SearchPopupMenu.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -23,21 +23,24 @@
 
 #include "PopupMenu.h"
 #include <wtf/Vector.h>
-#include <wtf/text/WTFString.h>
 
 namespace WebCore {
 
 class AtomicString;
 
-class SearchPopupMenu : public RefCounted<SearchPopupMenu> {
+class SearchPopupMenu : public PopupMenu {
 public:
-    virtual ~SearchPopupMenu() {}
-    virtual PopupMenu* popupMenu() = 0;
-    virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems) = 0;
-    virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems) = 0;
-    virtual bool enabled() = 0;
+    static PassRefPtr<SearchPopupMenu> create(PopupMenuClient* client) { return adoptRef(new SearchPopupMenu(client)); }
+
+    void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
+    void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems);
+
+    bool enabled();
+    
+private:
+    SearchPopupMenu(PopupMenuClient*);
 };
 
 }
 
-#endif // SearchPopupMenu_h
+#endif
diff --git a/WebCore/platform/brew/PopupMenuBrew.cpp b/WebCore/platform/brew/PopupMenuBrew.cpp
index 18b2b45..eb03c66 100644
--- a/WebCore/platform/brew/PopupMenuBrew.cpp
+++ b/WebCore/platform/brew/PopupMenuBrew.cpp
@@ -4,7 +4,6 @@
  * Copyright (C) 2009-2010 ProFUSION embedded systems
  * Copyright (C) 2009-2010 Samsung Electronics
  * Copyright (C) 2010 Company 100, Inc.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -24,7 +23,7 @@
  */
 
 #include "config.h"
-#include "PopupMenuBrew.h"
+#include "PopupMenu.h"
 
 #include "Chrome.h"
 #include "ChromeClientBrew.h"
@@ -33,25 +32,20 @@
 
 namespace WebCore {
 
-PopupMenuBrew::PopupMenuBrew(PopupMenuClient* menuList)
+PopupMenu::PopupMenu(PopupMenuClient* menuList)
     : m_popupClient(menuList)
     , m_view(0)
 {
 }
 
-PopupMenuBrew::~PopupMenuBrew()
+PopupMenu::~PopupMenu()
 {
     // Tell client to destroy data related to this popup since this object is
     // going away.
     hide();
 }
 
-void PopupMenuBrew::disconnectClient()
-{
-    m_popupClient = 0;
-}
-
-void PopupMenuBrew::show(const IntRect& rect, FrameView* view, int index)
+void PopupMenu::show(const IntRect& rect, FrameView* view, int index)
 {
     ASSERT(m_popupClient);
     ChromeClientBrew* chromeClient = static_cast<ChromeClientBrew*>(view->frame()->page()->chrome()->client());
@@ -61,7 +55,7 @@ void PopupMenuBrew::show(const IntRect& rect, FrameView* view, int index)
     chromeClient->createSelectPopup(m_popupClient, index, rect);
 }
 
-void PopupMenuBrew::hide()
+void PopupMenu::hide()
 {
     ASSERT(m_view);
     ChromeClientBrew* chromeClient = static_cast<ChromeClientBrew*>(m_view->frame()->page()->chrome()->client());
@@ -70,18 +64,14 @@ void PopupMenuBrew::hide()
     chromeClient->destroySelectPopup();
 }
 
-void PopupMenuBrew::updateFromElement()
+void PopupMenu::updateFromElement()
 {
     client()->setTextFromItem(client()->selectedIndex());
 }
 
-// This code must be moved to the concrete brew ChromeClient that is not in repository.
-// I kept this code commented out here to prevent loosing the information of what
-// must be the return value for brew.
-
-// bool PopupMenuBrew::itemWritingDirectionIsNatural()
-// {
-//     return true;
-// }
+bool PopupMenu::itemWritingDirectionIsNatural()
+{
+    return true;
+}
 
 } // namespace WebCore
diff --git a/WebCore/platform/brew/PopupMenuBrew.h b/WebCore/platform/brew/PopupMenuBrew.h
deleted file mode 100644
index 0c171df..0000000
--- a/WebCore/platform/brew/PopupMenuBrew.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef PopupMenuBrew_h
-#define PopupMenuBrew_h
-
-#include "IntRect.h"
-#include "PopupMenu.h"
-#include "PopupMenuClient.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-namespace WebCore {
-
-class FrameView;
-class Scrollbar;
-
-class PopupMenuBrew : public PopupMenu {
-public:
-    PopupMenuBrew(PopupMenuClient*);
-    ~PopupMenuBrew();
-
-    virtual void show(const IntRect&, FrameView*, int index);
-    virtual void hide();
-    virtual void updateFromElement();
-    virtual void disconnectClient();
-
-private:
-    PopupMenuClient* client() const { return m_popupClient; }
-
-    PopupMenuClient* m_popupClient;
-    FrameView* m_view;
-};
-
-}
-
-#endif // PopupMenuBrew_h
diff --git a/WebCore/platform/brew/SearchPopupMenuBrew.cpp b/WebCore/platform/brew/SearchPopupMenuBrew.cpp
index c22cb78..780c7e5 100644
--- a/WebCore/platform/brew/SearchPopupMenuBrew.cpp
+++ b/WebCore/platform/brew/SearchPopupMenuBrew.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2010 Company 100, Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -25,34 +24,29 @@
  */
 
 #include "config.h"
-#include "SearchPopupMenuBrew.h"
+#include "SearchPopupMenu.h"
 
 namespace WebCore {
 
 // Save the past searches stored in 'searchItems' to a database associated with 'name'
-void SearchPopupMenuBrew::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
+void SearchPopupMenu::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
 {
 }
 
 // Load past searches associated with 'name' from the database to 'searchItems'
-void SearchPopupMenuBrew::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
+void SearchPopupMenu::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
 {
 }
 
 // Create a search popup menu - not sure what else we have to do here
-SearchPopupMenuBrew::SearchPopupMenuBrew(PopupMenuClient* client)
-    : m_popup(client)
+SearchPopupMenu::SearchPopupMenu(PopupMenuClient* client)
+    : PopupMenu(client)
 {
 }
 
-bool SearchPopupMenuBrew::enabled()
+bool SearchPopupMenu::enabled()
 {
     return false;
 }
 
-PopupMenu* SearchPopupMenuBrew::popupMenu()
-{
-    return &m_popup;
-}
-
 } // namespace WebCore
diff --git a/WebCore/platform/brew/SearchPopupMenuBrew.h b/WebCore/platform/brew/SearchPopupMenuBrew.h
deleted file mode 100644
index 18ea102..0000000
--- a/WebCore/platform/brew/SearchPopupMenuBrew.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SearchPopupMenuBrew_h
-#define SearchPopupMenuBrew_h
-
-#include "PopupMenuBrew.h"
-#include "SearchPopupMenu.h"
-
-namespace WebCore {
-
-class SearchPopupMenuBrew : public SearchPopupMenu {
-public:
-    SearchPopupMenuBrew(PopupMenuClient*);
-
-    virtual PopupMenu* popupMenu();
-    virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
-    virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems);
-    virtual bool enabled();
-
-private:
-    PopupMenuBrew m_popup;
-};
-
-}
-
-#endif // SearchPopupMenuBrew_h
diff --git a/WebCore/platform/chromium/PopupMenuChromium.cpp b/WebCore/platform/chromium/PopupMenuChromium.cpp
index 9c73a9c..d07ba2e 100644
--- a/WebCore/platform/chromium/PopupMenuChromium.cpp
+++ b/WebCore/platform/chromium/PopupMenuChromium.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (c) 2008, 2009, Google Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  * 
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -49,6 +48,7 @@
 #include "PlatformMouseEvent.h"
 #include "PlatformScreen.h"
 #include "PlatformWheelEvent.h"
+#include "PopupMenu.h"
 #include "RenderTheme.h"
 #include "ScrollbarTheme.h"
 #include "StringTruncator.h"
@@ -1340,20 +1340,20 @@ bool PopupListBox::isPointInBounds(const IntPoint& point)
 }
 
 ///////////////////////////////////////////////////////////////////////////////
-// PopupMenuChromium implementation
+// PopupMenu implementation
 // 
 // Note: you cannot add methods to this class, since it is defined above the 
 //       portability layer. To access methods and properties on the
 //       popup widgets, use |popupWindow| above. 
 
-PopupMenuChromium::PopupMenuChromium(PopupMenuClient* client)
+PopupMenu::PopupMenu(PopupMenuClient* client) 
     : m_popupClient(client)
 {
 }
 
-PopupMenuChromium::~PopupMenuChromium()
+PopupMenu::~PopupMenu()
 {
-    // When the PopupMenuChromium is destroyed, the client could already have been
+    // When the PopupMenu is destroyed, the client could already have been
     // deleted.
     if (p.popup)
         p.popup->listBox()->disconnectClient();
@@ -1364,7 +1364,7 @@ PopupMenuChromium::~PopupMenuChromium()
 // to display, handle the input tracking and menu item selection for the popup.
 // Windows and Linux Chromium let our WebKit port handle the display, while
 // another process manages the popup window and input handling.
-void PopupMenuChromium::show(const IntRect& r, FrameView* v, int index)
+void PopupMenu::show(const IntRect& r, FrameView* v, int index)
 {
     if (!p.popup)
         p.popup = PopupContainer::create(client(), PopupContainer::Select, dropDownSettings);
@@ -1375,21 +1375,20 @@ void PopupMenuChromium::show(const IntRect& r, FrameView* v, int index)
 #endif
 }
 
-void PopupMenuChromium::hide()
+void PopupMenu::hide()
 {
     if (p.popup)
         p.popup->hide();
 }
 
-void PopupMenuChromium::updateFromElement()
+void PopupMenu::updateFromElement()
 {
     p.popup->listBox()->updateFromElement();
 }
 
-
-void PopupMenuChromium::disconnectClient()
-{
-    m_popupClient = 0;
+bool PopupMenu::itemWritingDirectionIsNatural() 
+{ 
+    return false; 
 }
 
 } // namespace WebCore
diff --git a/WebCore/platform/chromium/PopupMenuChromium.h b/WebCore/platform/chromium/PopupMenuChromium.h
index 0d0e23c..a85cf49 100644
--- a/WebCore/platform/chromium/PopupMenuChromium.h
+++ b/WebCore/platform/chromium/PopupMenuChromium.h
@@ -36,8 +36,6 @@
 
 #include "FramelessScrollView.h"
 #include "IntRect.h"
-#include "PopupMenu.h"
-#include "PopupMenuPrivate.h"
 
 namespace WebCore {
 
@@ -203,23 +201,6 @@ private:
     bool m_popupOpen;
 };
 
-class PopupMenuChromium : public PopupMenu {
-public:
-    PopupMenuChromium(PopupMenuClient*);
-    ~PopupMenuChromium();
-
-    virtual void show(const IntRect&, FrameView*, int index);
-    virtual void hide();
-    virtual void updateFromElement();
-    virtual void disconnectClient();
-
-private:
-    PopupMenuClient* client() const { return m_popupClient; }
-
-    PopupMenuClient* m_popupClient;
-    PopupMenuPrivate p;
-};
-
 } // namespace WebCore
 
 #endif
diff --git a/WebCore/platform/chromium/SearchPopupMenuChromium.cpp b/WebCore/platform/chromium/SearchPopupMenuChromium.cpp
index 18e86c6..89bfddd 100644
--- a/WebCore/platform/chromium/SearchPopupMenuChromium.cpp
+++ b/WebCore/platform/chromium/SearchPopupMenuChromium.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (c) 2008, 2009, Google Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  * 
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -30,34 +29,29 @@
  */
 
 #include "config.h"
-#include "SearchPopupMenuChromium.h"
+#include "SearchPopupMenu.h"
 
 #include "AtomicString.h"
 #include "NotImplemented.h"
 
 namespace WebCore {
 
-SearchPopupMenuChromium::SearchPopupMenuChromium(PopupMenuClient* client)
-    : m_popup(client)
+SearchPopupMenu::SearchPopupMenu(PopupMenuClient* client)
+    : PopupMenu(client)
 {
 }
 
-PopupMenu* SearchPopupMenuChromium::popupMenu()
-{
-    return &m_popup;
-}
-
-bool SearchPopupMenuChromium::enabled()
+bool SearchPopupMenu::enabled()
 {
     return false;
 }
 
-void SearchPopupMenuChromium::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
+void SearchPopupMenu::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
 {
     notImplemented();
 }
 
-void SearchPopupMenuChromium::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
+void SearchPopupMenu::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
 {
     notImplemented();
 }
diff --git a/WebCore/platform/chromium/SearchPopupMenuChromium.h b/WebCore/platform/chromium/SearchPopupMenuChromium.h
deleted file mode 100644
index 3a2b98c..0000000
--- a/WebCore/platform/chromium/SearchPopupMenuChromium.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SearchPopupMenuChromium_h
-#define SearchPopupMenuChromium_h
-
-#include "PopupMenuChromium.h"
-#include "SearchPopupMenu.h"
-
-namespace WebCore {
-
-class SearchPopupMenuChromium : public SearchPopupMenu {
-public:
-    SearchPopupMenuChromium(PopupMenuClient*);
-
-    virtual PopupMenu* popupMenu();
-    virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
-    virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems);
-    virtual bool enabled();
-
-private:
-    PopupMenuChromium m_popup;
-};
-
-}
-
-#endif // SearchPopupMenuChromium_h
diff --git a/WebCore/platform/efl/PopupMenuEfl.cpp b/WebCore/platform/efl/PopupMenuEfl.cpp
index 401f24f..9dc6986 100644
--- a/WebCore/platform/efl/PopupMenuEfl.cpp
+++ b/WebCore/platform/efl/PopupMenuEfl.cpp
@@ -3,7 +3,6 @@
  * Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia
  * Copyright (C) 2009-2010 ProFUSION embedded systems
  * Copyright (C) 2009-2010 Samsung Electronics
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -23,30 +22,29 @@
  */
 
 #include "config.h"
-#include "PopupMenuEfl.h"
+#include "PopupMenu.h"
 
 #include "Chrome.h"
 #include "ChromeClientEfl.h"
 #include "FrameView.h"
 #include "NotImplemented.h"
-#include "PopupMenuClient.h"
 
 namespace WebCore {
 
-PopupMenuEfl::PopupMenuEfl(PopupMenuClient* client)
+PopupMenu::PopupMenu(PopupMenuClient* client)
     : m_popupClient(client)
     , m_view(0)
 {
 }
 
-PopupMenuEfl::~PopupMenuEfl()
+PopupMenu::~PopupMenu()
 {
     // Tell client to destroy data related to this popup since this object is
     // going away.
     hide();
 }
 
-void PopupMenuEfl::show(const IntRect& rect, FrameView* view, int index)
+void PopupMenu::show(const IntRect& rect, FrameView* view, int index)
 {
     ASSERT(m_popupClient);
     ChromeClientEfl* chromeClient = static_cast<ChromeClientEfl*>(view->frame()->page()->chrome()->client());
@@ -56,7 +54,7 @@ void PopupMenuEfl::show(const IntRect& rect, FrameView* view, int index)
     chromeClient->createSelectPopup(m_popupClient, index, rect);
 }
 
-void PopupMenuEfl::hide()
+void PopupMenu::hide()
 {
     ASSERT(m_view);
     ChromeClientEfl* chromeClient = static_cast<ChromeClientEfl*>(m_view->frame()->page()->chrome()->client());
@@ -65,14 +63,14 @@ void PopupMenuEfl::hide()
     chromeClient->destroySelectPopup();
 }
 
-void PopupMenuEfl::updateFromElement()
+void PopupMenu::updateFromElement()
 {
     client()->setTextFromItem(client()->selectedIndex());
 }
 
-void PopupMenuEfl::disconnectClient()
+bool PopupMenu::itemWritingDirectionIsNatural()
 {
-    m_popupClient = 0;
+    return true;
 }
 
 }
diff --git a/WebCore/platform/efl/PopupMenuEfl.h b/WebCore/platform/efl/PopupMenuEfl.h
deleted file mode 100644
index 4a2dbfc..0000000
--- a/WebCore/platform/efl/PopupMenuEfl.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef PopupMenuEfl_h
-#define PopupMenuEfl_h
-
-#include "IntRect.h"
-#include "PopupMenu.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-namespace WebCore {
-
-class FrameView;
-class Scrollbar;
-class PopupMenuClient;
-
-class PopupMenuEfl : public PopupMenu {
-public:
-    PopupMenuEfl(PopupMenuClient*);
-    ~PopupMenuEfl();
-
-    virtual void show(const IntRect&, FrameView*, int index);
-    virtual void hide();
-    virtual void updateFromElement();
-    virtual void disconnectClient();
-
-private:
-    PopupMenuClient* client() const { return m_popupClient; }
-
-    PopupMenuClient* m_popupClient;
-    FrameView* m_view;
-};
-
-}
-
-#endif // PopupMenuEfl_h
diff --git a/WebCore/platform/efl/SearchPopupMenuEfl.cpp b/WebCore/platform/efl/SearchPopupMenuEfl.cpp
index caffe54..d18174f 100644
--- a/WebCore/platform/efl/SearchPopupMenuEfl.cpp
+++ b/WebCore/platform/efl/SearchPopupMenuEfl.cpp
@@ -2,7 +2,6 @@
  *  Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia
  *  Copyright (C) 2009-2010 ProFUSION embedded systems
  *  Copyright (C) 2009-2010 Samsung Electronics
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  *  This library is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU Lesser General Public
@@ -20,34 +19,29 @@
  */
 
 #include "config.h"
-#include "SearchPopupMenuEfl.h"
+#include "SearchPopupMenu.h"
 
 #include "NotImplemented.h"
 
 namespace WebCore {
 
-SearchPopupMenuEfl::SearchPopupMenuEfl(PopupMenuClient* client)
-    : m_popup(client)
+SearchPopupMenu::SearchPopupMenu(PopupMenuClient* client)
+    : PopupMenu(client)
 {
     notImplemented();
 }
 
-PopupMenu* SearchPopupMenuEfl::popupMenu()
-{
-    return &m_popup;
-}
-
-void SearchPopupMenuEfl::saveRecentSearches(const AtomicString&, const Vector<String>&)
+void SearchPopupMenu::saveRecentSearches(const AtomicString&, const Vector<String>&)
 {
     notImplemented();
 }
 
-void SearchPopupMenuEfl::loadRecentSearches(const AtomicString&, Vector<String>&)
+void SearchPopupMenu::loadRecentSearches(const AtomicString&, Vector<String>&)
 {
     notImplemented();
 }
 
-bool SearchPopupMenuEfl::enabled()
+bool SearchPopupMenu::enabled()
 {
     notImplemented();
     return true;
diff --git a/WebCore/platform/efl/SearchPopupMenuEfl.h b/WebCore/platform/efl/SearchPopupMenuEfl.h
deleted file mode 100644
index 04cb2e5..0000000
--- a/WebCore/platform/efl/SearchPopupMenuEfl.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SearchPopupMenuEfl_h
-#define SearchPopupMenuEfl_h
-
-#include "PopupMenuEfl.h"
-#include "SearchPopupMenu.h"
-
-namespace WebCore {
-
-class SearchPopupMenuEfl : public SearchPopupMenu {
-public:
-    SearchPopupMenuEfl(PopupMenuClient*);
-
-    virtual PopupMenu* popupMenu();
-    virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
-    virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems);
-    virtual bool enabled();
-
-private:
-    PopupMenuEfl m_popup;
-};
-
-}
-
-#endif // SearchPopupMenuEfl_h
diff --git a/WebCore/platform/gtk/PopupMenuGtk.cpp b/WebCore/platform/gtk/PopupMenuGtk.cpp
index ca067d9..bf8cfb4 100644
--- a/WebCore/platform/gtk/PopupMenuGtk.cpp
+++ b/WebCore/platform/gtk/PopupMenuGtk.cpp
@@ -4,7 +4,6 @@
  * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
  * Copyright (C) 2006 Michael Emmel mike.emmel at gmail.com
  * Copyright (C) 2008 Collabora Ltd.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -24,7 +23,7 @@
  */
 
 #include "config.h"
-#include "PopupMenuGtk.h"
+#include "PopupMenu.h"
 
 #include "FrameView.h"
 #include "GtkVersioning.h"
@@ -35,12 +34,12 @@
 
 namespace WebCore {
 
-PopupMenuGtk::PopupMenuGtk(PopupMenuClient* client)
+PopupMenu::PopupMenu(PopupMenuClient* client)
     : m_popupClient(client)
 {
 }
 
-PopupMenuGtk::~PopupMenuGtk()
+PopupMenu::~PopupMenu()
 {
     if (m_popup) {
         g_signal_handlers_disconnect_matched(m_popup.get(), G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);
@@ -48,7 +47,7 @@ PopupMenuGtk::~PopupMenuGtk()
     }
 }
 
-void PopupMenuGtk::show(const IntRect& rect, FrameView* view, int index)
+void PopupMenu::show(const IntRect& rect, FrameView* view, int index)
 {
     ASSERT(client());
 
@@ -111,43 +110,43 @@ void PopupMenuGtk::show(const IntRect& rect, FrameView* view, int index)
     gtk_menu_popup(m_popup.get(), 0, 0, reinterpret_cast<GtkMenuPositionFunc>(menuPositionFunction), this, 0, gtk_get_current_event_time());
 }
 
-void PopupMenuGtk::hide()
+void PopupMenu::hide()
 {
     ASSERT(m_popup);
     gtk_menu_popdown(m_popup.get());
 }
 
-void PopupMenuGtk::updateFromElement()
+void PopupMenu::updateFromElement()
 {
     client()->setTextFromItem(client()->selectedIndex());
 }
 
-void PopupMenuGtk::disconnectClient()
+bool PopupMenu::itemWritingDirectionIsNatural()
 {
-    m_popupClient = 0;
+    return true;
 }
 
-void PopupMenuGtk::menuItemActivated(GtkMenuItem* item, PopupMenuGtk* that)
+void PopupMenu::menuItemActivated(GtkMenuItem* item, PopupMenu* that)
 {
     ASSERT(that->client());
     ASSERT(that->m_indexMap.contains(GTK_WIDGET(item)));
     that->client()->valueChanged(that->m_indexMap.get(GTK_WIDGET(item)));
 }
 
-void PopupMenuGtk::menuUnmapped(GtkWidget*, PopupMenuGtk* that)
+void PopupMenu::menuUnmapped(GtkWidget*, PopupMenu* that)
 {
     ASSERT(that->client());
     that->client()->popupDidHide();
 }
 
-void PopupMenuGtk::menuPositionFunction(GtkMenu*, gint* x, gint* y, gboolean* pushIn, PopupMenuGtk* that)
+void PopupMenu::menuPositionFunction(GtkMenu*, gint* x, gint* y, gboolean* pushIn, PopupMenu* that)
 {
     *x = that->m_menuPosition.x();
     *y = that->m_menuPosition.y();
     *pushIn = true;
 }
 
-void PopupMenuGtk::menuRemoveItem(GtkWidget* widget, PopupMenuGtk* that)
+void PopupMenu::menuRemoveItem(GtkWidget* widget, PopupMenu* that)
 {
     ASSERT(that->m_popup);
     gtk_container_remove(GTK_CONTAINER(that->m_popup.get()), widget);
diff --git a/WebCore/platform/gtk/PopupMenuGtk.h b/WebCore/platform/gtk/PopupMenuGtk.h
deleted file mode 100644
index fb4e7dd..0000000
--- a/WebCore/platform/gtk/PopupMenuGtk.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef PopupMenuGtk_h
-#define PopupMenuGtk_h
-
-#include "GRefPtrGtk.h"
-#include "IntRect.h"
-#include "PopupMenu.h"
-#include "PopupMenuClient.h"
-#include <glib.h>
-#include <wtf/HashMap.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-typedef struct _GtkMenu GtkMenu;
-typedef struct _GtkMenuItem GtkMenuItem;
-typedef struct _GtkWidget GtkWidget;
-
-namespace WebCore {
-
-class FrameView;
-class Scrollbar;
-
-class PopupMenuGtk : public PopupMenu {
-public:
-    PopupMenuGtk(PopupMenuClient*);
-    ~PopupMenuGtk();
-
-    virtual void show(const IntRect&, FrameView*, int index);
-    virtual void hide();
-    virtual void updateFromElement();
-    virtual void disconnectClient();
-
-private:
-    PopupMenuClient* client() const { return m_popupClient; }
-
-    static void menuItemActivated(GtkMenuItem* item, PopupMenuGtk*);
-    static void menuUnmapped(GtkWidget*, PopupMenuGtk*);
-    static void menuPositionFunction(GtkMenu*, gint*, gint*, gboolean*, PopupMenuGtk*);
-    static void menuRemoveItem(GtkWidget*, PopupMenuGtk*);
-
-    PopupMenuClient* m_popupClient;
-    IntPoint m_menuPosition;
-    GRefPtr<GtkMenu> m_popup;
-    HashMap<GtkWidget*, int> m_indexMap;
-};
-
-}
-
-#endif // PopupMenuGtk_h
diff --git a/WebCore/platform/gtk/SearchPopupMenuGtk.cpp b/WebCore/platform/gtk/SearchPopupMenuGtk.cpp
index dfb84aa..fbaa527 100644
--- a/WebCore/platform/gtk/SearchPopupMenuGtk.cpp
+++ b/WebCore/platform/gtk/SearchPopupMenuGtk.cpp
@@ -1,6 +1,4 @@
 /*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
  *  This library is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU Lesser General Public
  *  License as published by the Free Software Foundation; either
@@ -17,34 +15,29 @@
  */
 
 #include "config.h"
-#include "SearchPopupMenuGtk.h"
+#include "SearchPopupMenu.h"
 
 #include "NotImplemented.h"
 
 namespace WebCore {
 
-SearchPopupMenuGtk::SearchPopupMenuGtk(PopupMenuClient* client)
-    : m_popup(client)
+SearchPopupMenu::SearchPopupMenu(PopupMenuClient* client)
+    : PopupMenu(client)
 {
     notImplemented();
 }
 
-PopupMenu* SearchPopupMenuGtk::popupMenu()
-{
-    return &m_popup;
-}
-
-void SearchPopupMenuGtk::saveRecentSearches(const AtomicString&, const Vector<String>&)
+void SearchPopupMenu::saveRecentSearches(const AtomicString&, const Vector<String>&)
 {
     notImplemented();
 }
 
-void SearchPopupMenuGtk::loadRecentSearches(const AtomicString&, Vector<String>&)
+void SearchPopupMenu::loadRecentSearches(const AtomicString&, Vector<String>&)
 {
     notImplemented();
 }
 
-bool SearchPopupMenuGtk::enabled()
+bool SearchPopupMenu::enabled()
 {
     notImplemented();
     return false;
diff --git a/WebCore/platform/gtk/SearchPopupMenuGtk.h b/WebCore/platform/gtk/SearchPopupMenuGtk.h
deleted file mode 100644
index 74c17b4..0000000
--- a/WebCore/platform/gtk/SearchPopupMenuGtk.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SearchPopupMenuGtk_h
-#define SearchPopupMenuGtk_h
-
-#include "PopupMenuGtk.h"
-#include "SearchPopupMenu.h"
-
-namespace WebCore {
-
-class SearchPopupMenuGtk : public SearchPopupMenu {
-public:
-    SearchPopupMenuGtk(PopupMenuClient*);
-
-    virtual PopupMenu* popupMenu();
-    virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
-    virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems);
-    virtual bool enabled();
-
-private:
-    PopupMenuGtk m_popup;
-};
-
-}
-
-#endif // SearchPopupMenuGtk_h
diff --git a/WebCore/platform/haiku/PopupMenuHaiku.cpp b/WebCore/platform/haiku/PopupMenuHaiku.cpp
index e3edb83..5adbc66 100644
--- a/WebCore/platform/haiku/PopupMenuHaiku.cpp
+++ b/WebCore/platform/haiku/PopupMenuHaiku.cpp
@@ -2,7 +2,6 @@
  * This file is part of the popup menu implementation for <select> elements in WebCore.
  *
  * Copyright (C) 2010 Stephan Aßmus <superstippi at gmx.de>
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -22,7 +21,7 @@
  */
 
 #include "config.h"
-#include "PopupMenuHaiku.h"
+#include "PopupMenu.h"
 
 #include "FrameView.h"
 
@@ -73,9 +72,9 @@ private:
     PopupMenuClient* m_popupClient;
 };
 
-class HaikuPopup : public BPopUpMenu {
+class PopupMenuHaiku : public BPopUpMenu {
 public:
-    HaikuPopup(PopupMenuClient* popupClient)
+    PopupMenuHaiku(PopupMenuClient* popupClient)
         : BPopUpMenu("WebCore Popup", true, false)
         , m_popupClient(popupClient)
         , m_Handler(popupClient)
@@ -87,7 +86,7 @@ public:
         SetAsyncAutoDestruct(false);
     }
 
-    virtual ~HaikuPopup()
+    virtual ~PopupMenuHaiku()
     {
         if (be_app->Lock()) {
             be_app->RemoveHandler(&m_Handler);
@@ -154,39 +153,39 @@ private:
     PopupMenuHandler m_Handler;
 };
 
-PopupMenuHaiku::PopupMenuHaiku(PopupMenuClient* client)
+PopupMenu::PopupMenu(PopupMenuClient* client)
     : m_popupClient(client)
-    , m_menu(new HaikuPopup(client))
+    , m_menu(new PopupMenuHaiku(client))
 {
     // We don't need additional references to the client, since we completely
     // control any sub-objects we create that need it as well.
 }
 
-PopupMenuHaiku::~PopupMenuHaiku()
+PopupMenu::~PopupMenu()
 {
     delete m_menu;
 }
 
-void PopupMenuHaiku::disconnectClient()
-{
-    m_popupClient = 0;
-}
-
-void PopupMenuHaiku::show(const IntRect& rect, FrameView* view, int index)
+void PopupMenu::show(const IntRect& rect, FrameView* view, int index)
 {
     // The menu will update itself from the PopupMenuClient before showing.
     m_menu->show(rect, view, index);
 }
 
-void PopupMenuHaiku::hide()
+void PopupMenu::hide()
 {
     m_menu->hide();
 }
 
-void PopupMenuHaiku::updateFromElement()
+void PopupMenu::updateFromElement()
 {
     client()->setTextFromItem(m_popupClient->selectedIndex());
 }
 
+bool PopupMenu::itemWritingDirectionIsNatural()
+{
+    return false;
+}
+
 } // namespace WebCore
 
diff --git a/WebCore/platform/haiku/PopupMenuHaiku.h b/WebCore/platform/haiku/PopupMenuHaiku.h
deleted file mode 100644
index 9207923..0000000
--- a/WebCore/platform/haiku/PopupMenuHaiku.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef PopupMenuHaiku_h
-#define PopupMenuHaiku_h
-
-#include "IntRect.h"
-#include "PopupMenu.h"
-#include "PopupMenuClient.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-namespace WebCore {
-
-class FrameView;
-class HaikuPopup;
-class Scrollbar;
-
-class PopupMenuHaiku : public PopupMenu {
-public:
-    PopupMenuHaiku(PopupMenuClient*);
-    ~PopupMenuHaiku();
-
-    virtual void show(const IntRect&, FrameView*, int index);
-    virtual void hide();
-    virtual void updateFromElement();
-    virtual void disconnectClient();
-
-private:
-    PopupMenuClient* client() const { return m_popupClient; }
-
-    PopupMenuClient* m_popupClient;
-    HaikuPopup* m_menu;
-};
-
-}
-
-#endif // PopupMenuHaiku_h
diff --git a/WebCore/platform/haiku/SearchPopupMenuHaiku.cpp b/WebCore/platform/haiku/SearchPopupMenuHaiku.cpp
index 44338e5..fd5d96c 100644
--- a/WebCore/platform/haiku/SearchPopupMenuHaiku.cpp
+++ b/WebCore/platform/haiku/SearchPopupMenuHaiku.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2007 Ryan Leavengood <leavengood at gmail.com>
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -19,7 +18,7 @@
  */
 
 #include "config.h"
-#include "SearchPopupMenuHaiku.h"
+#include "SearchPopupMenu.h"
 
 #include "AtomicString.h"
 #include "NotImplemented.h"
@@ -27,31 +26,26 @@
 
 namespace WebCore {
 
-SearchPopupMenuHaiku::SearchPopupMenuHaiku(PopupMenuClient* client)
-    : m_popup(client)
+SearchPopupMenu::SearchPopupMenu(PopupMenuClient* client)
+    : PopupMenu(client)
 {
 }
 
-void SearchPopupMenuHaiku::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
+void SearchPopupMenu::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
 {
     notImplemented();
 }
 
-void SearchPopupMenuHaiku::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
+void SearchPopupMenu::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
 {
     notImplemented();
 }
 
-bool SearchPopupMenuHaiku::enabled()
+bool SearchPopupMenu::enabled()
 {
     notImplemented();
     return false;
 }
 
-PopupMenu* SearchPopupMenuHaiku::popupMenu()
-{
-    return m_popup;
-}
-
 } // namespace WebCore
 
diff --git a/WebCore/platform/haiku/SearchPopupMenuHaiku.h b/WebCore/platform/haiku/SearchPopupMenuHaiku.h
deleted file mode 100644
index 2532d3c..0000000
--- a/WebCore/platform/haiku/SearchPopupMenuHaiku.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SearchPopupMenuHaiku_h
-#define SearchPopupMenuHaiku_h
-
-#include "PopupMenuHaiku.h"
-#include "SearchPopupMenu.h"
-
-namespace WebCore {
-
-class SearchPopupMenuHaiku : public SearchPopupMenu {
-public:
-    SearchPopupMenuHaiku(PopupMenuClient*);
-
-    virtual PopupMenu* popupMenu();
-    virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
-    virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems);
-    virtual bool enabled();
-
-private:
-    PopupMenuHaiku m_popup;
-};
-
-}
-
-#endif // SearchPopupMenuHaiku_h
diff --git a/WebCore/platform/mac/PopupMenuMac.h b/WebCore/platform/mac/PopupMenuMac.h
deleted file mode 100644
index e969fff..0000000
--- a/WebCore/platform/mac/PopupMenuMac.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef PopupMenuMac_h
-#define PopupMenuMac_h
-
-#include "IntRect.h"
-#include "PopupMenu.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-#include <wtf/RetainPtr.h>
-
-class NSPopUpButtonCell;
-
-namespace WebCore {
-
-class PopupMenuClient;
-class FrameView;
-class Scrollbar;
-
-class PopupMenuMac : public PopupMenu {
-public:
-    PopupMenuMac(PopupMenuClient*);
-    ~PopupMenuMac();
-
-    virtual void show(const IntRect&, FrameView*, int index);
-    virtual void hide();
-    virtual void updateFromElement();
-    virtual void disconnectClient();
-
-private:
-    void clear();
-    void populate();
-    PopupMenuClient* client() const { return m_popupClient; }
-
-    PopupMenuClient* m_popupClient;
-    RetainPtr<NSPopUpButtonCell> m_popup;
-};
-
-}
-
-#endif // PopupMenuMac_h
diff --git a/WebCore/platform/mac/PopupMenuMac.mm b/WebCore/platform/mac/PopupMenuMac.mm
index 1bf500b..6c067b9 100644
--- a/WebCore/platform/mac/PopupMenuMac.mm
+++ b/WebCore/platform/mac/PopupMenuMac.mm
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -19,7 +18,7 @@
  */
 
 #import "config.h"
-#import "PopupMenuMac.h"
+#import "PopupMenu.h"
 
 #import "AXObjectCache.h"
 #import "Chrome.h"
@@ -32,7 +31,6 @@
 #import "HTMLOptionElement.h"
 #import "HTMLSelectElement.h"
 #import "Page.h"
-#import "PopupMenuClient.h"
 #import "SimpleFontData.h"
 #import "WebCoreSystemInterface.h"
 
@@ -40,24 +38,24 @@ namespace WebCore {
 
 using namespace HTMLNames;
 
-PopupMenuMac::PopupMenuMac(PopupMenuClient* client)
+PopupMenu::PopupMenu(PopupMenuClient* client)
     : m_popupClient(client)
 {
 }
 
-PopupMenuMac::~PopupMenuMac()
+PopupMenu::~PopupMenu()
 {
     if (m_popup)
         [m_popup.get() setControlView:nil];
 }
 
-void PopupMenuMac::clear()
+void PopupMenu::clear()
 {
     if (m_popup)
         [m_popup.get() removeAllItems];
 }
 
-void PopupMenuMac::populate()
+void PopupMenu::populate()
 {
     if (m_popup)
         clear();
@@ -116,7 +114,7 @@ void PopupMenuMac::populate()
     [[m_popup.get() menu] setMenuChangedMessagesEnabled:messagesEnabled];
 }
 
-void PopupMenuMac::show(const IntRect& r, FrameView* v, int index)
+void PopupMenu::show(const IntRect& r, FrameView* v, int index)
 {
     populate();
     int numItems = [m_popup.get() numberOfItems];
@@ -164,7 +162,7 @@ void PopupMenuMac::show(const IntRect& r, FrameView* v, int index)
     RefPtr<Frame> frame = v->frame();
     NSEvent* event = [frame->eventHandler()->currentNSEvent() retain];
     
-    RefPtr<PopupMenuMac> protector(this);
+    RefPtr<PopupMenu> protector(this);
 
     RetainPtr<NSView> dummyView(AdoptNS, [[NSView alloc] initWithFrame:r]);
     [view addSubview:dummyView.get()];
@@ -196,18 +194,18 @@ void PopupMenuMac::show(const IntRect& r, FrameView* v, int index)
     [event release];
 }
 
-void PopupMenuMac::hide()
+void PopupMenu::hide()
 {
     [m_popup.get() dismissPopUp];
 }
     
-void PopupMenuMac::updateFromElement()
+void PopupMenu::updateFromElement()
 {
 }
 
-void PopupMenuMac::disconnectClient()
+bool PopupMenu::itemWritingDirectionIsNatural()
 {
-    m_popupClient = 0;
+    return true;
 }
 
 }
diff --git a/WebCore/platform/mac/SearchPopupMenuMac.h b/WebCore/platform/mac/SearchPopupMenuMac.h
deleted file mode 100644
index 44f91a0..0000000
--- a/WebCore/platform/mac/SearchPopupMenuMac.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SearchPopupMenuMac_h
-#define SearchPopupMenuMac_h
-
-#include "PopupMenuMac.h"
-#include "SearchPopupMenu.h"
-
-namespace WebCore {
-
-class SearchPopupMenuMac : public SearchPopupMenu {
-public:
-    SearchPopupMenuMac(PopupMenuClient*);
-
-    virtual PopupMenu* popupMenu();
-    virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
-    virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems);
-    virtual bool enabled();
-
-private:
-    PopupMenuMac m_popup;
-};
-
-}
-
-#endif // SearchPopupMenuMac_h
diff --git a/WebCore/platform/mac/SearchPopupMenuMac.mm b/WebCore/platform/mac/SearchPopupMenuMac.mm
index 78b29a7..262734d 100644
--- a/WebCore/platform/mac/SearchPopupMenuMac.mm
+++ b/WebCore/platform/mac/SearchPopupMenuMac.mm
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2006 Apple Computer, Inc.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -19,14 +18,14 @@
  */
 
 #import "config.h"
-#import "SearchPopupMenuMac.h"
+#import "SearchPopupMenu.h"
 
 #import "AtomicString.h"
 
 namespace WebCore {
 
-SearchPopupMenuMac::SearchPopupMenuMac(PopupMenuClient* client)
-    : m_popup(client)
+SearchPopupMenu::SearchPopupMenu(PopupMenuClient* client)
+    : PopupMenu(client)
 {
 }
 
@@ -35,17 +34,12 @@ static NSString* autosaveKey(const String& name)
     return [@"com.apple.WebKit.searchField:" stringByAppendingString:name];
 }
 
-PopupMenu* SearchPopupMenuMac::popupMenu()
-{
-    return &m_popup;
-}
-
-bool SearchPopupMenuMac::enabled()
+bool SearchPopupMenu::enabled()
 {
     return true;
 }
 
-void SearchPopupMenuMac::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
+void SearchPopupMenu::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
 {
     if (name.isEmpty())
         return;
@@ -62,7 +56,7 @@ void SearchPopupMenuMac::saveRecentSearches(const AtomicString& name, const Vect
     }
 }
 
-void SearchPopupMenuMac::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
+void SearchPopupMenu::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
 {
     if (name.isEmpty())
         return;
diff --git a/WebCore/platform/qt/PopupMenuQt.cpp b/WebCore/platform/qt/PopupMenuQt.cpp
index 5590556..315b891 100644
--- a/WebCore/platform/qt/PopupMenuQt.cpp
+++ b/WebCore/platform/qt/PopupMenuQt.cpp
@@ -24,7 +24,7 @@
  */
 
 #include "config.h"
-#include "PopupMenuQt.h"
+#include "PopupMenu.h"
 
 #include "Chrome.h"
 #include "ChromeClientQt.h"
@@ -35,24 +35,18 @@
 
 namespace WebCore {
 
-PopupMenuQt::PopupMenuQt(PopupMenuClient* client)
+PopupMenu::PopupMenu(PopupMenuClient* client)
     : m_popupClient(client)
     , m_popup(0)
 {
 }
 
-PopupMenuQt::~PopupMenuQt()
+PopupMenu::~PopupMenu()
 {
     delete m_popup;
 }
 
-
-void PopupMenuQt::disconnectClient()
-{
-    m_popupClient = 0;
-}
-
-void PopupMenuQt::show(const IntRect& rect, FrameView* view, int index)
+void PopupMenu::show(const IntRect& rect, FrameView* view, int index)
 {
     ChromeClientQt* chromeClient = static_cast<ChromeClientQt*>(
         view->frame()->page()->chrome()->client());
@@ -73,14 +67,19 @@ void PopupMenuQt::show(const IntRect& rect, FrameView* view, int index)
 
 }
 
-void PopupMenuQt::hide()
+void PopupMenu::hide()
 {
     m_popup->hide();
 }
 
-void PopupMenuQt::updateFromElement()
+void PopupMenu::updateFromElement()
+{
+    client()->setTextFromItem(m_popupClient->selectedIndex());
+}
+
+bool PopupMenu::itemWritingDirectionIsNatural()
 {
-    m_popupClient->setTextFromItem(m_popupClient->selectedIndex());
+    return false;
 }
 
 }
diff --git a/WebCore/platform/qt/PopupMenuQt.h b/WebCore/platform/qt/PopupMenuQt.h
deleted file mode 100644
index 25a9f76..0000000
--- a/WebCore/platform/qt/PopupMenuQt.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef PopupMenuQt_h
-#define PopupMenuQt_h
-
-#include "PopupMenu.h"
-
-namespace WebCore {
-
-class FrameView;
-class QtAbstractWebPopup;
-class Scrollbar;
-class PopupMenuClient;
-
-class PopupMenuQt : public PopupMenu {
-public:
-    PopupMenuQt(PopupMenuClient*);
-    ~PopupMenuQt();
-
-    virtual void show(const IntRect&, FrameView*, int index);
-    virtual void hide();
-    virtual void updateFromElement();
-    virtual void disconnectClient();
-
-private:
-    PopupMenuClient* m_popupClient;
-    QtAbstractWebPopup* m_popup;
-};
-
-}
-
-#endif // PopupMenuQt_h
diff --git a/WebCore/platform/qt/QtAbstractWebPopup.h b/WebCore/platform/qt/QtAbstractWebPopup.h
index 5f6f619..dad4997 100644
--- a/WebCore/platform/qt/QtAbstractWebPopup.h
+++ b/WebCore/platform/qt/QtAbstractWebPopup.h
@@ -63,7 +63,7 @@ public:
     QFont font() { return m_popupClient->menuStyle().font().font(); }
 
 private:
-    friend class PopupMenuQt;
+    friend class PopupMenu;
     PopupMenuClient* m_popupClient;
     QWebPageClient* m_pageClient;
     int m_currentIndex;
diff --git a/WebCore/platform/qt/SearchPopupMenuQt.cpp b/WebCore/platform/qt/SearchPopupMenuQt.cpp
index 868b9a7..187a5de 100644
--- a/WebCore/platform/qt/SearchPopupMenuQt.cpp
+++ b/WebCore/platform/qt/SearchPopupMenuQt.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright C 2006 Zack Rusin <zack at kde.org>
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -19,29 +18,26 @@
  */
 
 #include "config.h"
-#include "SearchPopupMenuQt.h"
+#include "SearchPopupMenu.h"
 
-namespace WebCore {
+#include "AtomicString.h"
 
-SearchPopupMenuQt::SearchPopupMenuQt(PopupMenuClient* client)
-    : m_popup(client)
-{
-}
+namespace WebCore {
 
-PopupMenu* SearchPopupMenuQt::popupMenu()
+SearchPopupMenu::SearchPopupMenu(PopupMenuClient* client)
+    : PopupMenu(client)
 {
-    return &m_popup;
 }
 
-void SearchPopupMenuQt::saveRecentSearches(const AtomicString&, const Vector<String>&)
+void SearchPopupMenu::saveRecentSearches(const AtomicString&, const Vector<String>&)
 {
 }
 
-void SearchPopupMenuQt::loadRecentSearches(const AtomicString&, Vector<String>&)
+void SearchPopupMenu::loadRecentSearches(const AtomicString&, Vector<String>&)
 {
 }
 
-bool SearchPopupMenuQt::enabled()
+bool SearchPopupMenu::enabled()
 {
     return true;
 }
diff --git a/WebCore/platform/qt/SearchPopupMenuQt.h b/WebCore/platform/qt/SearchPopupMenuQt.h
deleted file mode 100644
index 5e1c09d..0000000
--- a/WebCore/platform/qt/SearchPopupMenuQt.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SearchPopupMenuQt_h
-#define SearchPopupMenuQt_h
-
-#include "PopupMenuQt.h"
-#include "SearchPopupMenu.h"
-
-namespace WebCore {
-
-class SearchPopupMenuQt : public SearchPopupMenu {
-public:
-    SearchPopupMenuQt(PopupMenuClient*);
-
-    virtual PopupMenu* popupMenu();
-    virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
-    virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems);
-    virtual bool enabled();
-
-private:
-    PopupMenuQt m_popup;
-};
-
-}
-
-#endif // SearchPopupMenuQt_h
diff --git a/WebCore/platform/win/PopupMenuWin.cpp b/WebCore/platform/win/PopupMenuWin.cpp
index aaadc53..4bc6dc7 100644
--- a/WebCore/platform/win/PopupMenuWin.cpp
+++ b/WebCore/platform/win/PopupMenuWin.cpp
@@ -1,7 +1,6 @@
 /*
  * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
  * Copyright (C) 2007-2009 Torch Mobile Inc.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -21,7 +20,7 @@
  */
 
 #include "config.h"
-#include "PopupMenuWin.h"
+#include "PopupMenu.h"
 
 #include "BitmapInfo.h"
 #include "Document.h"
@@ -87,7 +86,7 @@ static void translatePoint(LPARAM& lParam, HWND from, HWND to)
     lParam = MAKELPARAM(pt.x, pt.y);
 }
 
-PopupMenuWin::PopupMenuWin(PopupMenuClient* client)
+PopupMenu::PopupMenu(PopupMenuClient* client)
     : m_popupClient(client)
     , m_scrollbar(0)
     , m_popup(0)
@@ -103,7 +102,7 @@ PopupMenuWin::PopupMenuWin(PopupMenuClient* client)
 {
 }
 
-PopupMenuWin::~PopupMenuWin()
+PopupMenu::~PopupMenu()
 {
     if (m_bmp)
         ::DeleteObject(m_bmp);
@@ -115,17 +114,12 @@ PopupMenuWin::~PopupMenuWin()
         m_scrollbar->setParent(0);
 }
 
-void PopupMenuWin::disconnectClient()
-{
-    m_popupClient = 0;
-}
-
-LPCTSTR PopupMenuWin::popupClassName()
+LPCTSTR PopupMenu::popupClassName()
 {
     return kPopupWindowClassName;
 }
 
-void PopupMenuWin::show(const IntRect& r, FrameView* view, int index)
+void PopupMenu::show(const IntRect& r, FrameView* view, int index)
 {
     calculatePositionAndSize(r, view);
     if (clientRect().isEmpty())
@@ -273,7 +267,7 @@ void PopupMenuWin::show(const IntRect& r, FrameView* view, int index)
     hide();
 }
 
-void PopupMenuWin::hide()
+void PopupMenu::hide()
 {
     if (!m_showPopup)
         return;
@@ -289,7 +283,7 @@ void PopupMenuWin::hide()
     ::PostMessage(m_popup, WM_NULL, 0, 0);
 }
 
-void PopupMenuWin::calculatePositionAndSize(const IntRect& r, FrameView* v)
+void PopupMenu::calculatePositionAndSize(const IntRect& r, FrameView* v)
 {
     // r is in absolute document coordinates, but we want to be in screen coordinates
 
@@ -379,7 +373,7 @@ void PopupMenuWin::calculatePositionAndSize(const IntRect& r, FrameView* v)
     return;
 }
 
-bool PopupMenuWin::setFocusedIndex(int i, bool hotTracking)
+bool PopupMenu::setFocusedIndex(int i, bool hotTracking)
 {
     if (i < 0 || i >= client()->listSize() || i == focusedIndex())
         return false;
@@ -401,22 +395,22 @@ bool PopupMenuWin::setFocusedIndex(int i, bool hotTracking)
     return true;
 }
 
-int PopupMenuWin::visibleItems() const
+int PopupMenu::visibleItems() const
 {
     return clientRect().height() / m_itemHeight;
 }
 
-int PopupMenuWin::listIndexAtPoint(const IntPoint& point) const
+int PopupMenu::listIndexAtPoint(const IntPoint& point) const
 {
     return m_scrollOffset + point.y() / m_itemHeight;
 }
 
-int PopupMenuWin::focusedIndex() const
+int PopupMenu::focusedIndex() const
 {
     return m_focusedIndex;
 }
 
-void PopupMenuWin::focusFirst()
+void PopupMenu::focusFirst()
 {
     if (!client())
         return;
@@ -430,7 +424,7 @@ void PopupMenuWin::focusFirst()
         }
 }
 
-void PopupMenuWin::focusLast()
+void PopupMenu::focusLast()
 {
     if (!client())
         return;
@@ -444,7 +438,7 @@ void PopupMenuWin::focusLast()
         }
 }
 
-bool PopupMenuWin::down(unsigned lines)
+bool PopupMenu::down(unsigned lines)
 {
     if (!client())
         return false;
@@ -463,7 +457,7 @@ bool PopupMenuWin::down(unsigned lines)
     return setFocusedIndex(lastSelectableIndex);
 }
 
-bool PopupMenuWin::up(unsigned lines)
+bool PopupMenu::up(unsigned lines)
 {
     if (!client())
         return false;
@@ -482,7 +476,7 @@ bool PopupMenuWin::up(unsigned lines)
     return setFocusedIndex(lastSelectableIndex);
 }
 
-void PopupMenuWin::invalidateItem(int index)
+void PopupMenu::invalidateItem(int index)
 {
     if (!m_popup)
         return;
@@ -497,7 +491,7 @@ void PopupMenuWin::invalidateItem(int index)
     ::InvalidateRect(m_popup, &r, TRUE);
 }
 
-IntRect PopupMenuWin::clientRect() const
+IntRect PopupMenu::clientRect() const
 {
     IntRect clientRect = m_windowRect;
     clientRect.inflate(-popupWindowBorderWidth);
@@ -505,12 +499,12 @@ IntRect PopupMenuWin::clientRect() const
     return clientRect;
 }
 
-void PopupMenuWin::incrementWheelDelta(int delta)
+void PopupMenu::incrementWheelDelta(int delta)
 {
     m_wheelDelta += delta;
 }
 
-void PopupMenuWin::reduceWheelDelta(int delta)
+void PopupMenu::reduceWheelDelta(int delta)
 {
     ASSERT(delta >= 0);
     ASSERT(delta <= abs(m_wheelDelta));
@@ -523,7 +517,7 @@ void PopupMenuWin::reduceWheelDelta(int delta)
         return;
 }
 
-bool PopupMenuWin::scrollToRevealSelection()
+bool PopupMenu::scrollToRevealSelection()
 {
     if (!m_scrollbar)
         return false;
@@ -543,7 +537,7 @@ bool PopupMenuWin::scrollToRevealSelection()
     return false;
 }
 
-void PopupMenuWin::updateFromElement()
+void PopupMenu::updateFromElement()
 {
     if (!m_popup)
         return;
@@ -555,9 +549,14 @@ void PopupMenuWin::updateFromElement()
         ::UpdateWindow(m_popup);
 }
 
+bool PopupMenu::itemWritingDirectionIsNatural() 
+{ 
+    return true; 
+}
+
 const int separatorPadding = 4;
 const int separatorHeight = 1;
-void PopupMenuWin::paint(const IntRect& damageRect, HDC hdc)
+void PopupMenu::paint(const IntRect& damageRect, HDC hdc)
 {
     if (!m_popup)
         return;
@@ -664,7 +663,7 @@ void PopupMenuWin::paint(const IntRect& damageRect, HDC hdc)
         ::ReleaseDC(m_popup, localDC);
 }
 
-void PopupMenuWin::valueChanged(Scrollbar* scrollBar)
+void PopupMenu::valueChanged(Scrollbar* scrollBar)
 {
     ASSERT(m_scrollbar);
 
@@ -700,7 +699,7 @@ void PopupMenuWin::valueChanged(Scrollbar* scrollBar)
     ::UpdateWindow(m_popup);
 }
 
-void PopupMenuWin::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rect)
+void PopupMenu::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rect)
 {
     IntRect scrollRect = rect;
     scrollRect.move(scrollbar->x(), scrollbar->y());
@@ -708,7 +707,7 @@ void PopupMenuWin::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect&
     ::InvalidateRect(m_popup, &r, false);
 }
 
-void PopupMenuWin::registerClass()
+void PopupMenu::registerClass()
 {
     static bool haveRegisteredWindowClass = false;
 
@@ -744,7 +743,7 @@ void PopupMenuWin::registerClass()
 }
 
 
-LRESULT CALLBACK PopupMenuWin::PopupMenuWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+LRESULT CALLBACK PopupMenu::PopupMenuWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 {
 #if OS(WINCE)
     LONG longPtr = GetWindowLong(hWnd, 0);
@@ -752,7 +751,7 @@ LRESULT CALLBACK PopupMenuWin::PopupMenuWndProc(HWND hWnd, UINT message, WPARAM
     LONG_PTR longPtr = GetWindowLongPtr(hWnd, 0);
 #endif
     
-    if (PopupMenuWin* popup = reinterpret_cast<PopupMenuWin*>(longPtr))
+    if (PopupMenu* popup = reinterpret_cast<PopupMenu*>(longPtr))
         return popup->wndProc(hWnd, message, wParam, lParam);
     
     if (message == WM_CREATE) {
@@ -772,7 +771,7 @@ LRESULT CALLBACK PopupMenuWin::PopupMenuWndProc(HWND hWnd, UINT message, WPARAM
 
 const int smoothScrollAnimationDuration = 5000;
 
-LRESULT PopupMenuWin::wndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+LRESULT PopupMenu::wndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 {
     LRESULT lResult = 0;
 
diff --git a/WebCore/platform/win/PopupMenuWin.h b/WebCore/platform/win/PopupMenuWin.h
deleted file mode 100644
index d4a4255..0000000
--- a/WebCore/platform/win/PopupMenuWin.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef PopupMenuWin_h
-#define PopupMenuWin_h
-
-#include "IntRect.h"
-#include "PopupMenu.h"
-#include "PopupMenuClient.h"
-#include "Scrollbar.h"
-#include "ScrollbarClient.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-#include <wtf/RefPtr.h>
-
-typedef struct HWND__* HWND;
-typedef struct HDC__* HDC;
-typedef struct HBITMAP__* HBITMAP;
-
-namespace WebCore {
-
-class FrameView;
-class Scrollbar;
-
-class PopupMenuWin : public PopupMenu, private ScrollbarClient {
-public:
-    PopupMenuWin(PopupMenuClient*);
-    ~PopupMenuWin();
-
-    virtual void show(const IntRect&, FrameView*, int index);
-    virtual void hide();
-    virtual void updateFromElement();
-    virtual void disconnectClient();
-
-    static LPCTSTR popupClassName();
-
-private:
-    PopupMenuClient* client() const { return m_popupClient; }
-
-    Scrollbar* scrollbar() const { return m_scrollbar.get(); }
-
-    bool up(unsigned lines = 1);
-    bool down(unsigned lines = 1);
-
-    int itemHeight() const { return m_itemHeight; }
-    const IntRect& windowRect() const { return m_windowRect; }
-    IntRect clientRect() const;
-
-    int visibleItems() const;
-
-    int listIndexAtPoint(const IntPoint&) const;
-
-    bool setFocusedIndex(int index, bool hotTracking = false);
-    int focusedIndex() const;
-    void focusFirst();
-    void focusLast();
-
-    void paint(const IntRect& damageRect, HDC = 0);
-
-    HWND popupHandle() const { return m_popup; }
-
-    void setWasClicked(bool b = true) { m_wasClicked = b; }
-    bool wasClicked() const { return m_wasClicked; }
-
-    void setScrollOffset(int offset) { m_scrollOffset = offset; }
-    int scrollOffset() const { return m_scrollOffset; }
-
-    bool scrollToRevealSelection();
-
-    void incrementWheelDelta(int delta);
-    void reduceWheelDelta(int delta);
-    int wheelDelta() const { return m_wheelDelta; }
-
-    bool scrollbarCapturingMouse() const { return m_scrollbarCapturingMouse; }
-    void setScrollbarCapturingMouse(bool b) { m_scrollbarCapturingMouse = b; }
-
-    // ScrollBarClient
-    virtual void valueChanged(Scrollbar*);
-    virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&);
-    virtual bool isActive() const { return true; }
-    virtual bool scrollbarCornerPresent() const { return false; }
-
-    void calculatePositionAndSize(const IntRect&, FrameView*);
-    void invalidateItem(int index);
-
-    static LRESULT CALLBACK PopupMenuWndProc(HWND, UINT, WPARAM, LPARAM);
-    LRESULT wndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
-    static void registerClass();
-
-    PopupMenuClient* m_popupClient;
-    RefPtr<Scrollbar> m_scrollbar;
-    HWND m_popup;
-    HDC m_DC;
-    HBITMAP m_bmp;
-    bool m_wasClicked;
-    IntRect m_windowRect;
-    int m_itemHeight;
-    int m_scrollOffset;
-    int m_wheelDelta;
-    int m_focusedIndex;
-    bool m_scrollbarCapturingMouse;
-    bool m_showPopup;
-};
-
-}
-
-#endif // PopupMenuWin_h
diff --git a/WebCore/platform/win/SearchPopupMenuWin.cpp b/WebCore/platform/win/SearchPopupMenuWin.cpp
index 4a5cb22..f2709bb 100644
--- a/WebCore/platform/win/SearchPopupMenuWin.cpp
+++ b/WebCore/platform/win/SearchPopupMenuWin.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2006, 2007 Apple Inc.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -19,24 +18,19 @@
  */
 
 #include "config.h"
-#include "SearchPopupMenuWin.h"
+#include "SearchPopupMenu.h"
 
 #include "AtomicString.h"
 #include <wtf/RetainPtr.h>
 
 namespace WebCore {
 
-SearchPopupMenuWin::SearchPopupMenuWin(PopupMenuClient* client)
-    : m_popup(client)
+SearchPopupMenu::SearchPopupMenu(PopupMenuClient* client)
+    : PopupMenu(client)
 {
 }
 
-PopupMenu* SearchPopupMenuWin::popupMenu()
-{
-    return &m_popup;
-}
-
-bool SearchPopupMenuWin::enabled()
+bool SearchPopupMenu::enabled()
 {
     return true;
 }
@@ -47,7 +41,7 @@ static RetainPtr<CFStringRef> autosaveKey(const String& name)
     return RetainPtr<CFStringRef>(AdoptCF, key.createCFString());
 }
 
-void SearchPopupMenuWin::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
+void SearchPopupMenu::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
 {
     if (name.isEmpty())
         return;
@@ -67,7 +61,7 @@ void SearchPopupMenuWin::saveRecentSearches(const AtomicString& name, const Vect
     CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
 }
 
-void SearchPopupMenuWin::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
+void SearchPopupMenu::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
 {
     if (name.isEmpty())
         return;
diff --git a/WebCore/platform/win/SearchPopupMenuWin.h b/WebCore/platform/win/SearchPopupMenuWin.h
deleted file mode 100644
index 1e87d76..0000000
--- a/WebCore/platform/win/SearchPopupMenuWin.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SearchPopupMenuWin_h
-#define SearchPopupMenuWin_h
-
-#include "PopupMenuWin.h"
-#include "SearchPopupMenu.h"
-
-namespace WebCore {
-
-class SearchPopupMenuWin : public SearchPopupMenu {
-public:
-    SearchPopupMenuWin(PopupMenuClient*);
-
-    virtual PopupMenu* popupMenu();
-    virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
-    virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems);
-    virtual bool enabled();
-
-private:
-    PopupMenuWin m_popup;
-};
-
-}
-
-#endif // SearchPopupMenuWin_h
diff --git a/WebCore/platform/wx/PopupMenuWx.cpp b/WebCore/platform/wx/PopupMenuWx.cpp
index e88d1e5..9b0deba 100644
--- a/WebCore/platform/wx/PopupMenuWx.cpp
+++ b/WebCore/platform/wx/PopupMenuWx.cpp
@@ -2,7 +2,6 @@
  * This file is part of the popup menu implementation for <select> elements in WebCore.
  *
  * Copyright (C) 2008 Apple Computer, Inc.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -22,7 +21,7 @@
  */
 
 #include "config.h"
-#include "PopupMenuWx.h"
+#include "PopupMenu.h"
 
 #include "Frame.h"
 #include "FrameView.h"
@@ -42,23 +41,18 @@ static int s_menuStartId = wxNewId();
 
 namespace WebCore {
 
-PopupMenuWx::PopupMenuWx(PopupMenuClient* client)
+PopupMenu::PopupMenu(PopupMenuClient* client)
     : m_popupClient(client)
     , m_menu(NULL)
 {
 }
 
-PopupMenuWx::~PopupMenuWx()
+PopupMenu::~PopupMenu()
 {
     delete m_menu;
 }
 
-void PopupMenuWx::disconnectClient()
-{
-    m_popupClient = 0;
-}
-
-void PopupMenuWx::show(const IntRect& r, FrameView* v, int index)
+void PopupMenu::show(const IntRect& r, FrameView* v, int index)
 {
     // just delete and recreate
     delete m_menu;
@@ -84,13 +78,13 @@ void PopupMenuWx::show(const IntRect& r, FrameView* v, int index)
                     m_menu->Append(s_menuStartId + i, client()->itemText(i));
             }
         }
-        nativeWin->Connect(s_menuStartId, s_menuStartId + (size-1), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(PopupMenuWx::OnMenuItemSelected), 0, this);
+        nativeWin->Connect(s_menuStartId, s_menuStartId + (size-1), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(PopupMenu::OnMenuItemSelected), NULL, this);
         nativeWin->PopupMenu(m_menu, r.x() - v->scrollX(), r.y() - v->scrollY());
-        nativeWin->Disconnect(s_menuStartId, s_menuStartId + (size-1), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(PopupMenuWx::OnMenuItemSelected), 0, this);
+        nativeWin->Disconnect(s_menuStartId, s_menuStartId + (size-1), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(PopupMenu::OnMenuItemSelected), NULL, this);
     }
 }
 
-void PopupMenuWx::OnMenuItemSelected(wxCommandEvent& event)
+void PopupMenu::OnMenuItemSelected(wxCommandEvent& event)
 {
     if (client()) {
         client()->valueChanged(event.GetId() - s_menuStartId);
@@ -99,15 +93,20 @@ void PopupMenuWx::OnMenuItemSelected(wxCommandEvent& event)
     // TODO: Do we need to call Disconnect here? Do we have a ref to the native window still?
 }
 
-void PopupMenuWx::hide()
+void PopupMenu::hide()
 {
     // we don't need to do anything here, the native control only exists during the time
     // show is called
 }
 
-void PopupMenuWx::updateFromElement()
+void PopupMenu::updateFromElement()
 {
     client()->setTextFromItem(m_popupClient->selectedIndex());
 }
 
+bool PopupMenu::itemWritingDirectionIsNatural()
+{
+    return false;
+}
+
 }
diff --git a/WebCore/platform/wx/PopupMenuWx.h b/WebCore/platform/wx/PopupMenuWx.h
deleted file mode 100644
index c2573fc..0000000
--- a/WebCore/platform/wx/PopupMenuWx.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef PopupMenuWx_h
-#define PopupMenuWx_h
-
-#include "IntRect.h"
-#include "PopupMenu.h"
-#include "PopupMenuClient.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-#ifdef __WXMSW__
-#include <wx/msw/winundef.h>
-#endif
-class wxMenu;
-#include <wx/defs.h>
-#include <wx/event.h>
-
-namespace WebCore {
-
-class FrameView;
-class Scrollbar;
-
-class PopupMenuWx : public PopupMenu, public wxEvtHandler {
-public:
-    PopupMenuWx(PopupMenuClient*);
-    ~PopupMenuWx();
-
-    virtual void show(const IntRect&, FrameView*, int index);
-    virtual void hide();
-    virtual void updateFromElement();
-    virtual void disconnectClient();
-
-private:
-    void OnMenuItemSelected(wxCommandEvent&);
-    PopupMenuClient* client() const { return m_popupClient; }
-
-    PopupMenuClient* m_popupClient;
-    wxMenu* m_menu;
-};
-
-}
-
-#endif // PopupMenuWx_h
diff --git a/WebCore/platform/wx/SearchPopupMenuWx.cpp b/WebCore/platform/wx/SearchPopupMenuWx.cpp
index a5aeb1b..dbbe339 100644
--- a/WebCore/platform/wx/SearchPopupMenuWx.cpp
+++ b/WebCore/platform/wx/SearchPopupMenuWx.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2009 Apple Inc. All Rights Reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -25,37 +24,32 @@
  */
 
 #include "config.h"
-#include "SearchPopupMenuWx.h"
+#include "SearchPopupMenu.h"
 
 #include "NotImplemented.h"
 
 namespace WebCore {
 
-SearchPopupMenuWx::SearchPopupMenuWx(PopupMenuClient* client)
-    : m_popup(client)
+SearchPopupMenu::SearchPopupMenu(PopupMenuClient* client)
+    : PopupMenu(client)
 {
     notImplemented();
 }
 
-void SearchPopupMenuWx::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
+void SearchPopupMenu::saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems)
 {
     notImplemented();
 }
 
-void SearchPopupMenuWx::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
+void SearchPopupMenu::loadRecentSearches(const AtomicString& name, Vector<String>& searchItems)
 {
     notImplemented();
 }
 
-bool SearchPopupMenuWx::enabled()
+bool SearchPopupMenu::enabled()
 {
     return true;
 }
 
-PopupMenu* SearchPopupMenuWx::popupMenu()
-{
-    return &m_popup;
-}
-
 }
 
diff --git a/WebCore/platform/wx/SearchPopupMenuWx.h b/WebCore/platform/wx/SearchPopupMenuWx.h
deleted file mode 100644
index 6dc77ba..0000000
--- a/WebCore/platform/wx/SearchPopupMenuWx.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef SearchPopupMenuWx_h
-#define SearchPopupMenuWx_h
-
-#include "PopupMenuWx.h"
-#include "SearchPopupMenu.h"
-
-namespace WebCore {
-
-class SearchPopupMenuWx : public SearchPopupMenu {
-public:
-    SearchPopupMenuWx(PopupMenuClient*);
-
-    virtual PopupMenu* popupMenu();
-    virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems);
-    virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems);
-    virtual bool enabled();
-
-private:
-    PopupMenuWx m_popup;
-};
-
-}
-
-#endif // SearchPopupMenuWx_h
diff --git a/WebCore/rendering/RenderMenuList.cpp b/WebCore/rendering/RenderMenuList.cpp
index b6a97a9..ff16e7e 100644
--- a/WebCore/rendering/RenderMenuList.cpp
+++ b/WebCore/rendering/RenderMenuList.cpp
@@ -26,7 +26,6 @@
 #include "RenderMenuList.h"
 
 #include "AXObjectCache.h"
-#include "Chrome.h"
 #include "CSSStyleSelector.h"
 #include "Frame.h"
 #include "FrameView.h"
@@ -89,8 +88,8 @@ void RenderMenuList::adjustInnerStyle()
     m_innerBlock->style()->setPaddingRight(Length(theme()->popupInternalPaddingRight(style()), Fixed));
     m_innerBlock->style()->setPaddingTop(Length(theme()->popupInternalPaddingTop(style()), Fixed));
     m_innerBlock->style()->setPaddingBottom(Length(theme()->popupInternalPaddingBottom(style()), Fixed));
-
-    if (document()->page()->chrome()->selectItemWritingDirectionIsNatural()) {
+        
+    if (PopupMenu::itemWritingDirectionIsNatural()) {
         // Items in the popup will not respect the CSS text-align and direction properties,
         // so we must adjust our own style to match.
         m_innerBlock->style()->setTextAlign(LEFT);
@@ -279,7 +278,7 @@ void RenderMenuList::showPopup()
     // inside the showPopup call and it would fail.
     createInnerBlock();
     if (!m_popup)
-        m_popup = document()->page()->chrome()->createPopupMenu(this);
+        m_popup = PopupMenu::create(this);
     SelectElement* select = toSelectElement(static_cast<Element*>(node()));
     m_popupIsVisible = true;
 
diff --git a/WebCore/rendering/RenderMenuList.h b/WebCore/rendering/RenderMenuList.h
index 512fa9b..aef8d4f 100644
--- a/WebCore/rendering/RenderMenuList.h
+++ b/WebCore/rendering/RenderMenuList.h
@@ -24,7 +24,6 @@
 #ifndef RenderMenuList_h
 #define RenderMenuList_h
 
-#include "PopupMenu.h"
 #include "PopupMenuClient.h"
 #include "RenderFlexibleBox.h"
 
@@ -36,6 +35,7 @@
 
 namespace WebCore {
 
+class PopupMenu;
 class RenderText;
 
 #if ENABLE(NO_LISTBOX_RENDERING)
diff --git a/WebCore/rendering/RenderTextControlSingleLine.cpp b/WebCore/rendering/RenderTextControlSingleLine.cpp
index bcd3729..f40fbf0 100644
--- a/WebCore/rendering/RenderTextControlSingleLine.cpp
+++ b/WebCore/rendering/RenderTextControlSingleLine.cpp
@@ -2,7 +2,6 @@
  * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
  *           (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/) 
  * Copyright (C) 2010 Google Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -24,7 +23,6 @@
 #include "config.h"
 #include "RenderTextControlSingleLine.h"
 
-#include "Chrome.h"
 #include "CSSStyleSelector.h"
 #include "Event.h"
 #include "EventNames.h"
@@ -40,6 +38,7 @@
 #include "RenderLayer.h"
 #include "RenderScrollbar.h"
 #include "RenderTheme.h"
+#include "SearchPopupMenu.h"
 #include "SelectionController.h"
 #include "Settings.h"
 #include "SimpleFontData.h"
@@ -63,7 +62,7 @@ RenderTextControlSingleLine::RenderTextControlSingleLine(Node* node, bool placeh
 RenderTextControlSingleLine::~RenderTextControlSingleLine()
 {
     if (m_searchPopup) {
-        m_searchPopup->popupMenu()->disconnectClient();
+        m_searchPopup->disconnectClient();
         m_searchPopup = 0;
     }
  
@@ -108,7 +107,7 @@ void RenderTextControlSingleLine::addSearchResult()
 
     const AtomicString& name = autosaveName();
     if (!m_searchPopup)
-        m_searchPopup = document()->page()->chrome()->createSearchPopupMenu(this);
+        m_searchPopup = SearchPopupMenu::create(this);
 
     m_searchPopup->saveRecentSearches(name, m_recentSearches);
 }
@@ -126,7 +125,7 @@ void RenderTextControlSingleLine::showPopup()
         return;
 
     if (!m_searchPopup)
-        m_searchPopup = document()->page()->chrome()->createSearchPopupMenu(this);
+        m_searchPopup = SearchPopupMenu::create(this);
 
     if (!m_searchPopup->enabled())
         return;
@@ -146,14 +145,14 @@ void RenderTextControlSingleLine::showPopup()
         m_searchPopup->saveRecentSearches(name, m_recentSearches);
     }
 
-    m_searchPopup->popupMenu()->show(absoluteBoundingBoxRect(true), document()->view(), -1);
+    m_searchPopup->show(absoluteBoundingBoxRect(true), document()->view(), -1);
 }
 
 void RenderTextControlSingleLine::hidePopup()
 {
     ASSERT(node()->isHTMLElement());
     if (m_searchPopup)
-        m_searchPopup->popupMenu()->hide();
+        m_searchPopup->hide();
 }
 
 void RenderTextControlSingleLine::subtreeHasChanged()
@@ -686,7 +685,7 @@ void RenderTextControlSingleLine::updateFromElement()
     }
 
     if (m_searchPopupIsVisible)
-        m_searchPopup->popupMenu()->updateFromElement();
+        m_searchPopup->updateFromElement();
 }
 
 void RenderTextControlSingleLine::cacheSelection(int start, int end)
@@ -884,7 +883,7 @@ void RenderTextControlSingleLine::valueChanged(unsigned listIndex, bool fireEven
             const AtomicString& name = autosaveName();
             if (!name.isEmpty()) {
                 if (!m_searchPopup)
-                    m_searchPopup = document()->page()->chrome()->createSearchPopupMenu(this);
+                    m_searchPopup = SearchPopupMenu::create(this);
                 m_searchPopup->saveRecentSearches(name, m_recentSearches);
             }
         }
diff --git a/WebCore/rendering/RenderTextControlSingleLine.h b/WebCore/rendering/RenderTextControlSingleLine.h
index 4bc80cf..8c7e844 100644
--- a/WebCore/rendering/RenderTextControlSingleLine.h
+++ b/WebCore/rendering/RenderTextControlSingleLine.h
@@ -1,7 +1,6 @@
 /*
  * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
  * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -25,7 +24,6 @@
 
 #include "PopupMenuClient.h"
 #include "RenderTextControl.h"
-#include "SearchPopupMenu.h"
 #include "Timer.h"
 
 namespace WebCore {
@@ -34,6 +32,7 @@ class InputElement;
 class InputFieldSpeechButtonElement;
 class SearchFieldCancelButtonElement;
 class SearchFieldResultsButtonElement;
+class SearchPopupMenu;
 class SpinButtonElement;
 class TextControlInnerElement;
 
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index a389525..94cccbd 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,13 @@
+2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Speculative revert of 64425 due to Chromium instability
+        https://bugs.webkit.org/show_bug.cgi?id=43347
+
+        * src/ChromeClientImpl.cpp:
+        * src/ChromeClientImpl.h:
+        * tests/PopupMenuTest.cpp:
+        (WebKit::SelectPopupMenuTest::SetUp):
+
 2010-07-27  Luiz Agostini  <luiz.agostini at openbossa.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp
index 2a5c32e..fc08b5d 100644
--- a/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2009 Google Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -56,7 +55,6 @@
 #include "NotificationPresenterImpl.h"
 #include "Page.h"
 #include "PopupMenuChromium.h"
-#include "SearchPopupMenuChromium.h"
 #include "ScriptController.h"
 #include "SecurityOrigin.h"
 #include "WebGeolocationService.h"
@@ -775,19 +773,4 @@ void ChromeClientImpl::exitFullscreenForNode(WebCore::Node* node)
         m_webView->client()->exitFullscreenForNode(WebNode(node));
 }
 
-bool ChromeClientImpl::selectItemWritingDirectionIsNatural()
-{
-    return false;
-}
-
-PassRefPtr<PopupMenu> ChromeClientImpl::createPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new PopupMenuChromium(client));
-}
-
-PassRefPtr<SearchPopupMenu> ChromeClientImpl::createSearchPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new SearchPopupMenuChromium(client));
-}
-
 } // namespace WebKit
diff --git a/WebKit/chromium/src/ChromeClientImpl.h b/WebKit/chromium/src/ChromeClientImpl.h
index 7f3febf..fe19b8b 100644
--- a/WebKit/chromium/src/ChromeClientImpl.h
+++ b/WebKit/chromium/src/ChromeClientImpl.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2009 Google Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -33,15 +32,12 @@
 #define ChromeClientImpl_h
 
 #include "ChromeClientChromium.h"
-#include "PopupMenu.h"
-#include "SearchPopupMenu.h"
 
 namespace WebCore {
 class AccessibilityObject;
 class FileChooser;
 class HTMLParserQuirks;
 class PopupContainer;
-class PopupMenuClient;
 class SecurityOrigin;
 struct WindowFeatures;
 }
@@ -172,10 +168,6 @@ public:
     void setCursor(const WebCursorInfo& cursor);
     void setCursorForPlugin(const WebCursorInfo& cursor);
 
-    virtual bool selectItemWritingDirectionIsNatural();
-    virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const;
-    virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const;
-
 private:
     void getPopupMenuInfo(WebCore::PopupContainer*, WebPopupMenuInfo*);
 
diff --git a/WebKit/chromium/tests/PopupMenuTest.cpp b/WebKit/chromium/tests/PopupMenuTest.cpp
index bc49947..44b262d 100644
--- a/WebKit/chromium/tests/PopupMenuTest.cpp
+++ b/WebKit/chromium/tests/PopupMenuTest.cpp
@@ -180,7 +180,7 @@ protected:
     {
         m_webView = static_cast<WebViewImpl*>(WebView::create(&m_webviewClient, 0));
         m_webView->initializeMainFrame(&m_webFrameClient);
-        m_popupMenu = new PopupMenuChromium(&m_popupMenuClient);
+        m_popupMenu = PopupMenu::create(&m_popupMenuClient);
     }
 
     virtual void TearDown()
diff --git a/WebKit/efl/ChangeLog b/WebKit/efl/ChangeLog
index 1efb530..e06bc39 100644
--- a/WebKit/efl/ChangeLog
+++ b/WebKit/efl/ChangeLog
@@ -1,3 +1,11 @@
+2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Speculative revert of 64425 due to Chromium instability
+        https://bugs.webkit.org/show_bug.cgi?id=43347
+
+        * WebCoreSupport/ChromeClientEfl.cpp:
+        * WebCoreSupport/ChromeClientEfl.h:
+
 2010-07-27  Luiz Agostini  <luiz.agostini at openbossa.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
index 21747a1..fa4d37a 100644
--- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
+++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
@@ -5,7 +5,6 @@
  * Copyright (C) 2008 Diego Gonzalez
  * Copyright (C) 2009-2010 ProFUSION embedded systems
  * Copyright (C) 2009-2010 Samsung Electronics
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * All rights reserved.
  *
@@ -49,8 +48,6 @@
 #include "NotImplemented.h"
 #include "PlatformString.h"
 #include "SecurityOrigin.h"
-#include "PopupMenuEfl.h"
-#include "SearchPopupMenuEfl.h"
 #include "ViewportArguments.h"
 #include "WindowFeatures.h"
 #include "ewk_private.h"
@@ -522,19 +519,4 @@ void ChromeClientEfl::didReceiveViewportArguments(Frame* frame, const ViewportAr
     ewk_view_viewport_set(m_view, arguments.width, arguments.height, arguments.initialScale, arguments.minimumScale, arguments.maximumScale, arguments.userScalable);
 }
 
-bool ChromeClientEfl::selectItemWritingDirectionIsNatural()
-{
-    return true;
-}
-
-PassRefPtr<PopupMenu> ChromeClientEfl::createPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new PopupMenuEfl(client));
-}
-
-PassRefPtr<SearchPopupMenu> ChromeClientEfl::createSearchPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new SearchPopupMenuEfl(client));
-}
-
 }
diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.h b/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
index d939ae6..2f3fd3e 100644
--- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
+++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
@@ -3,7 +3,6 @@
  * Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia
  * Copyright (C) 2009-2010 ProFUSION embedded systems
  * Copyright (C) 2009-2010 Samsung Electronics
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -139,10 +138,6 @@ public:
 
     virtual void didReceiveViewportArguments(Frame* frame, const ViewportArguments& arguments) const;
 
-    virtual bool selectItemWritingDirectionIsNatural();
-    virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const;
-    virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const;
-
     Evas_Object* m_view;
     KURL m_hoveredLinkURL;
 };
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index ebe77c2..fd0fd7c 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,11 @@
+2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Speculative revert of 64425 due to Chromium instability
+        https://bugs.webkit.org/show_bug.cgi?id=43347
+
+        * WebCoreSupport/ChromeClientGtk.cpp:
+        * WebCoreSupport/ChromeClientGtk.h:
+
 2010-07-27  Luiz Agostini  <luiz.agostini at openbossa.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
index 081c942..3eb21f8 100644
--- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
@@ -4,7 +4,6 @@
  * Copyright (C) 2008 Nuanti Ltd.
  * Copyright (C) 2008 Alp Toker <alp at atoker.com>
  * Copyright (C) 2008 Gustavo Noronha Silva <gns at gnome.org>
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  *  This library is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU Lesser General Public
@@ -35,9 +34,6 @@
 #include "Icon.h"
 #include "KURL.h"
 #include "PlatformString.h"
-#include "PopupMenuClient.h"
-#include "PopupMenuGtk.h"
-#include "SearchPopupMenuGtk.h"
 #include "SecurityOrigin.h"
 #include "webkitgeolocationpolicydecision.h"
 #include "webkitwebview.h"
@@ -626,19 +622,4 @@ void ChromeClient::cancelGeolocationPermissionRequestForFrame(WebCore::Frame* fr
     g_signal_emit_by_name(webView, "geolocation-policy-decision-cancelled", webFrame);
 }
 
-bool ChromeClient::selectItemWritingDirectionIsNatural()
-{
-    return true;
-}
-
-PassRefPtr<WebCore::PopupMenu> ChromeClient::createPopupMenu(WebCore::PopupMenuClient* client) const
-{
-    return adoptRef(new PopupMenuGtk(client));
-}
-
-PassRefPtr<WebCore::SearchPopupMenu> ChromeClient::createSearchPopupMenu(WebCore::PopupMenuClient* client) const
-{
-    return adoptRef(new SearchPopupMenuGtk(client));
-}
-
 }
diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
index 8c667c4..16a9f5d 100644
--- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2007 Holger Hans Peter Freyther
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -23,15 +22,9 @@
 
 #include "ChromeClient.h"
 #include "KURL.h"
-#include "PopupMenu.h"
-#include "SearchPopupMenu.h"
 
 typedef struct _WebKitWebView WebKitWebView;
 
-namespace WebCore {
-class PopupMenuClient;
-}
-
 namespace WebKit {
 
     class ChromeClient : public WebCore::ChromeClient {
@@ -130,10 +123,6 @@ namespace WebKit {
         virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*);
         virtual void cancelGeolocationPermissionRequestForFrame(WebCore::Frame*, WebCore::Geolocation*);
 
-        virtual bool selectItemWritingDirectionIsNatural();
-        virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const;
-        virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const;
-
     private:
         WebKitWebView* m_webView;
         WebCore::KURL m_hoveredLinkURL;
diff --git a/WebKit/haiku/ChangeLog b/WebKit/haiku/ChangeLog
index a3e769d..3b3de9e 100644
--- a/WebKit/haiku/ChangeLog
+++ b/WebKit/haiku/ChangeLog
@@ -1,3 +1,11 @@
+2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Speculative revert of 64425 due to Chromium instability
+        https://bugs.webkit.org/show_bug.cgi?id=43347
+
+        * WebCoreSupport/ChromeClientHaiku.cpp:
+        * WebCoreSupport/ChromeClientHaiku.h:
+
 2010-07-27  Luiz Agostini  <luiz.agostini at openbossa.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp
index 6c54424..c3cdaa0 100644
--- a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp
+++ b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp
@@ -2,7 +2,6 @@
  * Copyright (C) 2006 Zack Rusin <zack at kde.org>
  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
  * Copyright (C) 2007 Ryan Leavengood <leavengood at gmail.com> All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  *
  * Redistribution and use in source and binary forms, with or without
@@ -37,8 +36,6 @@
 #include "NotImplemented.h"
 #include "PlatformString.h"
 #include "SecurityOrigin.h"
-#include "PopupMenuHaiku.h"
-#include "SearchPopupMenuHaiku.h"
 
 #include <Alert.h>
 #include <String.h>
@@ -389,20 +386,5 @@ PassOwnPtr<HTMLParserQuirks> ChromeClientHaiku::createHTMLParserQuirks()
     return 0;
 }
 
-bool ChromeClientHaiku::selectItemWritingDirectionIsNatural()
-{
-    return false;
-}
-
-PassRefPtr<PopupMenu> ChromeClientHaiku::createPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new PopupMenuHaiku(client));
-}
-
-PassRefPtr<SearchPopupMenu> ChromeClientHaiku::createSearchPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new SearchPopupMenuHaiku(client));
-}
-
 } // namespace WebCore
 
diff --git a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h
index 8201fae..463d667 100644
--- a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h
+++ b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h
@@ -1,7 +1,6 @@
 /*
  * Copyright (C) 2006 Zack Rusin <zack at kde.org>
  * Copyright (C) 2007 Ryan Leavengood <leavengood at gmail.com> All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  *
  * Redistribution and use in source and binary forms, with or without
@@ -129,10 +128,6 @@ namespace WebCore {
 
         void exceededDatabaseQuota(Frame*, const String& databaseName);
 
-        virtual bool selectItemWritingDirectionIsNatural();
-        virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const;
-        virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const;
-
 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
         virtual void reachedMaxAppCacheSize(int64_t spaceNeeded);
         virtual void reachedApplicationCacheOriginQuota(SecurityOrigin*);
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index ae4fb2c..4a8eb7b 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,11 @@
+2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Speculative revert of 64425 due to Chromium instability
+        https://bugs.webkit.org/show_bug.cgi?id=43347
+
+        * WebCoreSupport/WebChromeClient.h:
+        * WebCoreSupport/WebChromeClient.mm:
+
 2010-07-27  Luiz Agostini  <luiz.agostini at openbossa.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/mac/WebCoreSupport/WebChromeClient.h b/WebKit/mac/WebCoreSupport/WebChromeClient.h
index 50c159c..f454c60 100644
--- a/WebKit/mac/WebCoreSupport/WebChromeClient.h
+++ b/WebKit/mac/WebCoreSupport/WebChromeClient.h
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies)
+ * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -168,10 +168,6 @@ public:
     virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*);
     virtual void cancelGeolocationPermissionRequestForFrame(WebCore::Frame*, WebCore::Geolocation*) { }
 
-    virtual bool selectItemWritingDirectionIsNatural();
-    virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const;
-    virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const;
-
 private:
     WebView *m_webView;
 };
diff --git a/WebKit/mac/WebCoreSupport/WebChromeClient.mm b/WebKit/mac/WebCoreSupport/WebChromeClient.mm
index 1a3736e..ac34bc0 100644
--- a/WebKit/mac/WebCoreSupport/WebChromeClient.mm
+++ b/WebKit/mac/WebCoreSupport/WebChromeClient.mm
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies)
+ * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -64,16 +64,12 @@
 #import <WebCore/Page.h>
 #import <WebCore/PlatformScreen.h>
 #import <WebCore/PlatformString.h>
-#import <WebCore/PopupMenuMac.h>
 #import <WebCore/ResourceRequest.h>
-#import <WebCore/SearchPopupMenuMac.h>
 #import <WebCore/Widget.h>
 #import <WebCore/WindowFeatures.h>
 #import <wtf/PassRefPtr.h>
 #import <wtf/Vector.h>
 
-
-
 #if USE(ACCELERATED_COMPOSITING)
 #import <WebCore/GraphicsLayer.h>
 #endif
@@ -741,21 +737,6 @@ void WebChromeClient::formDidBlur(const WebCore::Node* node)
     CallUIDelegate(m_webView, @selector(webView:formDidBlurNode:), kit(const_cast<WebCore::Node*>(node)));
 }
 
-bool WebChromeClient::selectItemWritingDirectionIsNatural()
-{
-    return true;
-}
-
-PassRefPtr<WebCore::PopupMenu> WebChromeClient::createPopupMenu(WebCore::PopupMenuClient* client) const
-{
-    return adoptRef(new PopupMenuMac(client));
-}
-
-PassRefPtr<WebCore::SearchPopupMenu> WebChromeClient::createSearchPopupMenu(WebCore::PopupMenuClient* client) const
-{
-    return adoptRef(new SearchPopupMenuMac(client));
-}
-
 #if USE(ACCELERATED_COMPOSITING)
 
 void WebChromeClient::attachRootGraphicsLayer(Frame* frame, GraphicsLayer* graphicsLayer)
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index 211c9f4..4b5ddad 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,11 @@
+2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Speculative revert of 64425 due to Chromium instability
+        https://bugs.webkit.org/show_bug.cgi?id=43347
+
+        * WebCoreSupport/ChromeClientQt.cpp:
+        * WebCoreSupport/ChromeClientQt.h:
+
 2010-07-27  Luiz Agostini  <luiz.agostini at openbossa.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
index a0bac72..2df8c78 100644
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
@@ -1,7 +1,6 @@
 /*
  * Copyright (C) 2006 Zack Rusin <zack at kde.org>
  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * All rights reserved.
  *
@@ -46,7 +45,6 @@
 #include "NotImplemented.h"
 #include "NotificationPresenterClientQt.h"
 #include "PageClientQt.h"
-#include "PopupMenuQt.h"
 #if defined(Q_WS_MAEMO_5)
 #include "QtMaemoWebPopup.h"
 #else
@@ -54,7 +52,6 @@
 #endif
 #include "QWebPageClient.h"
 #include "ScrollbarTheme.h"
-#include "SearchPopupMenuQt.h"
 #include "SecurityOrigin.h"
 #include "ViewportArguments.h"
 #include "WindowFeatures.h"
@@ -625,19 +622,4 @@ void ChromeClientQt::didReceiveViewportArguments(Frame* frame, const ViewportArg
     emit m_webPage->viewportChangeRequested(hints);
 }
 
-bool ChromeClientQt::selectItemWritingDirectionIsNatural()
-{
-    return false;
-}
-
-PassRefPtr<PopupMenu> ChromeClientQt::createPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new PopupMenuQt(client));
-}
-
-PassRefPtr<SearchPopupMenu> ChromeClientQt::createSearchPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new SearchPopupMenuQt(client));
-}
-
 } // namespace WebCore
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/WebKit/qt/WebCoreSupport/ChromeClientQt.h
index aab2813..98abf5f 100644
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.h
+++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2006 Zack Rusin <zack at kde.org>
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * All rights reserved.
  *
@@ -170,10 +169,6 @@ namespace WebCore {
         virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*);
         virtual void cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*) { }
 
-        virtual bool selectItemWritingDirectionIsNatural();
-        virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const;
-        virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const;
-
         QtAbstractWebPopup* createSelectPopup();
 
         virtual void didReceiveViewportArguments(Frame*, const ViewportArguments&) const;
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index d2bcc72..31f8bce 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,13 @@
+2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Speculative revert of 64425 due to Chromium instability
+        https://bugs.webkit.org/show_bug.cgi?id=43347
+
+        * WebCoreSupport/WebChromeClient.cpp:
+        * WebCoreSupport/WebChromeClient.h:
+        * WebView.cpp:
+        (WebView::mouseWheel):
+
 2010-07-31  Luiz Agostini  <luiz.agostini at openbossa.org>
 
         Build fix: Windows.
diff --git a/WebKit/win/WebCoreSupport/WebChromeClient.cpp b/WebKit/win/WebCoreSupport/WebChromeClient.cpp
index 08d4ee9..4e15be7 100644
--- a/WebKit/win/WebCoreSupport/WebChromeClient.cpp
+++ b/WebKit/win/WebCoreSupport/WebChromeClient.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -57,8 +56,6 @@
 #include <WebCore/NotImplemented.h>
 #include <WebCore/Page.h>
 #include <WebCore/SecurityOrigin.h>
-#include <WebCore/PopupMenuWin.h>
-#include <WebCore/SearchPopupMenuWin.h>
 #include <WebCore/WindowFeatures.h>
 #pragma warning(pop)
 
@@ -877,18 +874,3 @@ void WebChromeClient::exitFullscreenForNode(Node*)
 
 #endif
 
-bool WebChromeClient::selectItemWritingDirectionIsNatural()
-{
-    return true;
-}
-
-PassRefPtr<PopupMenu> WebChromeClient::createPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new PopupMenuWin(client));
-}
-
-PassRefPtr<SearchPopupMenu> WebChromeClient::createSearchPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new SearchPopupMenuWin(client));
-}
-
diff --git a/WebKit/win/WebCoreSupport/WebChromeClient.h b/WebKit/win/WebCoreSupport/WebChromeClient.h
index cea11c7..7a60fb6 100644
--- a/WebKit/win/WebCoreSupport/WebChromeClient.h
+++ b/WebKit/win/WebCoreSupport/WebChromeClient.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -167,10 +166,6 @@ public:
     virtual WebCore::NotificationPresenter* notificationPresenter() const { return reinterpret_cast<WebCore::NotificationPresenter*>(m_notificationsDelegate.get()); }
 #endif
 
-    virtual bool selectItemWritingDirectionIsNatural();
-    virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const;
-    virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const;
-
 private:
     COMPtr<IWebUIDelegate> uiDelegate();
 
diff --git a/WebKit/win/WebView.cpp b/WebKit/win/WebView.cpp
index 8dfb7e7..41ae079 100644
--- a/WebKit/win/WebView.cpp
+++ b/WebKit/win/WebView.cpp
@@ -110,7 +110,6 @@
 #include <WebCore/PluginDatabase.h>
 #include <WebCore/PluginView.h>
 #include <WebCore/PopupMenu.h>
-#include <WebCore/PopupMenuWin.h>
 #include <WebCore/ProgressTracker.h>
 #include <WebCore/RenderLayer.h>
 #include <WebCore/RenderTheme.h>
@@ -1614,9 +1613,9 @@ bool WebView::mouseWheel(WPARAM wParam, LPARAM lParam, bool isMouseHWheel)
         TCHAR className[256];
 
         // Make sure truncation won't affect the comparison.
-        ASSERT(ARRAYSIZE(className) > _tcslen(PopupMenuWin::popupClassName()));
+        ASSERT(ARRAYSIZE(className) > _tcslen(PopupMenu::popupClassName()));
 
-        if (GetClassName(focusedWindow, className, ARRAYSIZE(className)) && !_tcscmp(className, PopupMenuWin::popupClassName())) {
+        if (GetClassName(focusedWindow, className, ARRAYSIZE(className)) && !_tcscmp(className, PopupMenu::popupClassName())) {
             // We don't let the WebView scroll here for two reasons - 1) To match Firefox behavior, 2) If we do scroll, we lose the
             // focus ring around the select menu.
             SetFocus(m_viewWindow);
diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog
index 66cce15..1cd5646 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,3 +1,11 @@
+2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Speculative revert of 64425 due to Chromium instability
+        https://bugs.webkit.org/show_bug.cgi?id=43347
+
+        * WebKitSupport/ChromeClientWx.cpp:
+        * WebKitSupport/ChromeClientWx.h:
+
 2010-07-27  Luiz Agostini  <luiz.agostini at openbossa.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebKit/wx/WebKitSupport/ChromeClientWx.cpp b/WebKit/wx/WebKitSupport/ChromeClientWx.cpp
index 9c90596..764648c 100644
--- a/WebKit/wx/WebKitSupport/ChromeClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/ChromeClientWx.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2007 Kevin Ollivier <kevino at theolliviers.com>
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * All rights reserved.
  *
@@ -40,8 +39,6 @@
 #include "NotImplemented.h"
 #include "PlatformString.h"
 #include "SecurityOrigin.h"
-#include "PopupMenuWx.h"
-#include "SearchPopupMenuWx.h"
 #include "WindowFeatures.h"
 
 #include <stdio.h>
@@ -467,19 +464,4 @@ void ChromeClientWx::requestGeolocationPermissionForFrame(Frame*, Geolocation*)
     notImplemented();
 }
 
-bool ChromeClientWx::selectItemWritingDirectionIsNatural()
-{
-    return false;
-}
-
-PassRefPtr<PopupMenu> ChromeClientWx::createPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new PopupMenuWx(client));
-}
-
-PassRefPtr<SearchPopupMenu> ChromeClientWx::createSearchPopupMenu(PopupMenuClient* client) const
-{
-    return adoptRef(new SearchPopupMenuWx(client));
-}
-
 }
diff --git a/WebKit/wx/WebKitSupport/ChromeClientWx.h b/WebKit/wx/WebKitSupport/ChromeClientWx.h
index 5b60446..52ec0d8 100644
--- a/WebKit/wx/WebKitSupport/ChromeClientWx.h
+++ b/WebKit/wx/WebKitSupport/ChromeClientWx.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2007 Kevin Ollivier <kevino at theolliviers.com>
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * All rights reserved.
  *
@@ -143,10 +142,6 @@ public:
     virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*);
     virtual void cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*) { }
 
-    virtual bool selectItemWritingDirectionIsNatural();
-    virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const;
-    virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const;
-
 private:
     wxWebView* m_webView;
 };
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 52946ee..58d01d0 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,17 @@
+2010-08-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Speculative revert of 64425 due to Chromium instability
+        https://bugs.webkit.org/show_bug.cgi?id=43347
+
+        * WebKit2.xcodeproj/project.pbxproj:
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        * WebProcess/WebCoreSupport/WebChromeClient.h:
+        * WebProcess/WebCoreSupport/WebPopupMenu.cpp: Removed.
+        * WebProcess/WebCoreSupport/WebPopupMenu.h: Removed.
+        * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: Removed.
+        * WebProcess/WebCoreSupport/WebSearchPopupMenu.h: Removed.
+        * win/WebKit2.vcproj:
+
 2010-08-02  Balazs Kelemen  <kb at inf.u-szeged.hu>
 
         Reviewed by Simon Hausmann.
diff --git a/WebKit2/WebKit2.xcodeproj/project.pbxproj b/WebKit2/WebKit2.xcodeproj/project.pbxproj
index 5444e43..15fe421 100644
--- a/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -266,10 +266,6 @@
 		BCF69FA31176D01400471A52 /* WebNavigationData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCF69FA11176D01400471A52 /* WebNavigationData.cpp */; };
 		BCF69FA91176D1CB00471A52 /* WKNavigationData.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF69FA71176D1CB00471A52 /* WKNavigationData.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		BCF69FAA1176D1CB00471A52 /* WKNavigationData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCF69FA81176D1CB00471A52 /* WKNavigationData.cpp */; };
-		D3B9484611FF4B6500032B39 /* WebPopupMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D3B9484211FF4B6500032B39 /* WebPopupMenu.cpp */; };
-		D3B9484711FF4B6500032B39 /* WebPopupMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = D3B9484311FF4B6500032B39 /* WebPopupMenu.h */; };
-		D3B9484811FF4B6500032B39 /* WebSearchPopupMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D3B9484411FF4B6500032B39 /* WebSearchPopupMenu.cpp */; };
-		D3B9484911FF4B6500032B39 /* WebSearchPopupMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = D3B9484511FF4B6500032B39 /* WebSearchPopupMenu.h */; };
 		E1EE53E311F8CFC000CCBEE4 /* InjectedBundlePageEditorClient.h in Headers */ = {isa = PBXBuildFile; fileRef = E1EE53DC11F8CF9F00CCBEE4 /* InjectedBundlePageEditorClient.h */; };
 		E1EE53E711F8CFFB00CCBEE4 /* InjectedBundlePageEditorClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1EE53E611F8CFFB00CCBEE4 /* InjectedBundlePageEditorClient.cpp */; };
 		E1EE55F411F8F18900CCBEE4 /* WKBundleRange.h in Headers */ = {isa = PBXBuildFile; fileRef = E1EE55F311F8F18900CCBEE4 /* WKBundleRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -570,10 +566,6 @@
 		BCF69FA11176D01400471A52 /* WebNavigationData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNavigationData.cpp; sourceTree = "<group>"; };
 		BCF69FA71176D1CB00471A52 /* WKNavigationData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNavigationData.h; sourceTree = "<group>"; };
 		BCF69FA81176D1CB00471A52 /* WKNavigationData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKNavigationData.cpp; sourceTree = "<group>"; };
-		D3B9484211FF4B6500032B39 /* WebPopupMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebPopupMenu.cpp; sourceTree = "<group>"; };
-		D3B9484311FF4B6500032B39 /* WebPopupMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPopupMenu.h; sourceTree = "<group>"; };
-		D3B9484411FF4B6500032B39 /* WebSearchPopupMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebSearchPopupMenu.cpp; sourceTree = "<group>"; };
-		D3B9484511FF4B6500032B39 /* WebSearchPopupMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSearchPopupMenu.h; sourceTree = "<group>"; };
 		E1EE53DC11F8CF9F00CCBEE4 /* InjectedBundlePageEditorClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundlePageEditorClient.h; sourceTree = "<group>"; };
 		E1EE53E611F8CFFB00CCBEE4 /* InjectedBundlePageEditorClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundlePageEditorClient.cpp; sourceTree = "<group>"; };
 		E1EE55F311F8F18900CCBEE4 /* WKBundleRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleRange.h; sourceTree = "<group>"; };
@@ -868,10 +860,6 @@
 				BC032D6D10F4378D0058C15A /* WebInspectorClient.h */,
 				1A3E736011CC2659007BD539 /* WebPlatformStrategies.cpp */,
 				1A3E735F11CC2659007BD539 /* WebPlatformStrategies.h */,
-				D3B9484211FF4B6500032B39 /* WebPopupMenu.cpp */,
-				D3B9484311FF4B6500032B39 /* WebPopupMenu.h */,
-				D3B9484411FF4B6500032B39 /* WebSearchPopupMenu.cpp */,
-				D3B9484511FF4B6500032B39 /* WebSearchPopupMenu.h */,
 			);
 			path = WebCoreSupport;
 			sourceTree = "<group>";
@@ -1337,8 +1325,6 @@
 				BCDB86C11200FB97007254BE /* WebURL.h in Headers */,
 				BCB28CC0120233D9007D99BC /* InjectedBundleMessageKinds.h in Headers */,
 				BCCB75C61203A1CE00222D1B /* WebContextMessageKinds.h in Headers */,
-				D3B9484711FF4B6500032B39 /* WebPopupMenu.h in Headers */,
-				D3B9484911FF4B6500032B39 /* WebSearchPopupMenu.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1540,8 +1526,6 @@
 				1AE4987911FF7FAA0048B464 /* JSNPObject.cpp in Sources */,
 				1AE49A4A11FFA8CE0048B464 /* JSNPMethod.cpp in Sources */,
 				BCDB85831200EC57007254BE /* WKType.cpp in Sources */,
-				D3B9484611FF4B6500032B39 /* WebPopupMenu.cpp in Sources */,
-				D3B9484811FF4B6500032B39 /* WebSearchPopupMenu.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
index f0580ce..4def7c5 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -35,11 +34,9 @@
 #include "WebFrameLoaderClient.h"
 #include "WebPage.h"
 #include "WebPageProxyMessageKinds.h"
-#include "WebPopupMenu.h"
 #include "WebPreferencesStore.h"
 #include "WebProcess.h"
 #include "WebProcessProxyMessageKinds.h"
-#include "WebSearchPopupMenu.h"
 #include <WebCore/FileChooser.h>
 #include <WebCore/Frame.h>
 #include <WebCore/FrameLoader.h>
@@ -478,21 +475,6 @@ void WebChromeClient::formDidBlur(const Node*)
     notImplemented();
 }
 
-bool WebChromeClient::selectItemWritingDirectionIsNatural()
-{
-    return true;
-}
-
-PassRefPtr<WebCore::PopupMenu> WebChromeClient::createPopupMenu(WebCore::PopupMenuClient* client) const
-{
-    return adoptRef(new WebPopupMenu(client));
-}
-
-PassRefPtr<WebCore::SearchPopupMenu> WebChromeClient::createSearchPopupMenu(WebCore::PopupMenuClient* client) const
-{
-    return adoptRef(new WebSearchPopupMenu(client));
-}
-
 PassOwnPtr<HTMLParserQuirks> WebChromeClient::createHTMLParserQuirks()
 {
     notImplemented();
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
index 35b9f96..d26a4ee 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
+++ b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
@@ -1,6 +1,5 @@
 /*
  * Copyright (C) 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -164,10 +163,6 @@ private:
     
     virtual PassOwnPtr<WebCore::HTMLParserQuirks> createHTMLParserQuirks();
 
-    virtual bool selectItemWritingDirectionIsNatural();
-    virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const;
-    virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const;
-
 #if USE(ACCELERATED_COMPOSITING)
     virtual void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*);
     virtual void setNeedsOneShotDrawingSynchronization();
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.cpp b/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.cpp
deleted file mode 100644
index d2f7d32..0000000
--- a/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-#include "WebPopupMenu.h"
-
-#include <WebCore/FrameView.h>
-#include <WebCore/PopupMenuClient.h>
-
-namespace WebKit {
-
-WebPopupMenu::WebPopupMenu(WebCore::PopupMenuClient* client)
-    : m_popupClient(client)
-{
-}
-
-WebPopupMenu::~WebPopupMenu()
-{
-}
-
-
-void WebPopupMenu::disconnectClient()
-{
-    m_popupClient = 0;
-}
-
-void WebPopupMenu::show(const WebCore::IntRect& rect, WebCore::FrameView* view, int index)
-{
-
-}
-
-void WebPopupMenu::hide()
-{
-}
-
-void WebPopupMenu::updateFromElement()
-{
-}
-
-}
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.h b/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.h
deleted file mode 100644
index e2ea3a1..0000000
--- a/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef WebPopupMenu_h
-#define WebPopupMenu_h
-
-#include <WebCore/PopupMenu.h>
-
-namespace WebCore {
-class PopupMenuClient;
-}
-
-namespace WebKit {
-
-class WebPopupMenu : public WebCore::PopupMenu {
-public:
-    WebPopupMenu(WebCore::PopupMenuClient*);
-    ~WebPopupMenu();
-
-    virtual void show(const WebCore::IntRect&, WebCore::FrameView*, int index);
-    virtual void hide();
-    virtual void updateFromElement();
-    virtual void disconnectClient();
-
-private:
-    WebCore::PopupMenuClient* m_popupClient;
-};
-
-}
-
-#endif // WebPopupMenu_h
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp b/WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp
deleted file mode 100644
index b6499cb..0000000
--- a/WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-
-#include "WebSearchPopupMenu.h"
-
-namespace WebKit {
-
-WebSearchPopupMenu::WebSearchPopupMenu(WebCore::PopupMenuClient* client)
-    : m_popup(client)
-{
-}
-
-WebCore::PopupMenu* WebSearchPopupMenu::popupMenu()
-{
-    return &m_popup;
-}
-
-void WebSearchPopupMenu::saveRecentSearches(const WebCore::AtomicString&, const Vector<WebCore::String>&)
-{
-}
-
-void WebSearchPopupMenu::loadRecentSearches(const WebCore::AtomicString&, Vector<WebCore::String>&)
-{
-}
-
-bool WebSearchPopupMenu::enabled()
-{
-    return false;
-}
-
-}
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.h b/WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.h
deleted file mode 100644
index 1b6fc39..0000000
--- a/WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef WebSearchPopupMenu_h
-#define WebSearchPopupMenu_h
-
-#include <WebCore/SearchPopupMenu.h>
-#include "WebPopupMenu.h"
-
-namespace WebKit {
-
-class WebSearchPopupMenu : public WebCore::SearchPopupMenu {
-public:
-    WebSearchPopupMenu(WebCore::PopupMenuClient*);
-
-    virtual WebCore::PopupMenu* popupMenu();
-    virtual void saveRecentSearches(const WebCore::AtomicString& name, const Vector<WebCore::String>& searchItems);
-    virtual void loadRecentSearches(const WebCore::AtomicString& name, Vector<WebCore::String>& searchItems);
-    virtual bool enabled();
-
-private:
-    WebPopupMenu m_popup;
-};
-
-}
-
-#endif // WebSearchPopupMenu_h
diff --git a/WebKit2/win/WebKit2.vcproj b/WebKit2/win/WebKit2.vcproj
index 9c50ca2..a3842fd 100755
--- a/WebKit2/win/WebKit2.vcproj
+++ b/WebKit2/win/WebKit2.vcproj
@@ -583,22 +583,6 @@
 					RelativePath="..\WebProcess\WebCoreSupport\WebInspectorClient.h"
 					>
 				</File>
-				<File
-					RelativePath="..\WebProcess\WebCoreSupport\WebPopupMenu.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\WebProcess\WebCoreSupport\WebPopupMenu.h"
-					>
-				</File>
-				<File
-					RelativePath="..\WebProcess\WebCoreSupport\WebSearchPopupMenu.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\WebProcess\WebCoreSupport\WebSearchPopupMenu.h"
-					>
-				</File>
 				<Filter
 					Name="win"
 					>

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list