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

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 13:31:55 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 6dad616a66f84f7644051171f3769a04c4f0049e
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sat Sep 18 20:15:52 2010 +0000

    2010-09-18  Ademar de Souza Reis Jr  <ademar.reis at openbossa.org>
    
            Reviewed by Kenneth Rohde Christiansen.
    
            Enable Platform Strategies on Qt
    
            [Qt] Turn on PLATFORM_STRATEGIES
            https://bugs.webkit.org/show_bug.cgi?id=45831
    
            * wtf/Platform.h: Enable Platform Strategies when building QtWebkit
    2010-09-18  Ademar de Souza Reis Jr  <ademar.reis at openbossa.org>
    
            Reviewed by Kenneth Rohde Christiansen.
    
            Enable Platform Strategies on Qt
    
            [Qt] Turn on PLATFORM_STRATEGIES
            https://bugs.webkit.org/show_bug.cgi?id=45831
    
            * WebCore.pro: Adding/removing implementation files
            * platform/qt/Language.cpp: Added, WebCore::defaultLanguage() was
            moved from platform/qt/Localizations.cpp
            (WebCore::defaultLanguage): Moved from Localizations.cpp
            * platform/qt/Localizations.cpp: Removed (code is now inside
            WebCoreSupport/WebPlatformStrategies.cpp)
            * plugins/qt/PluginDataQt.cpp: Removed (idem)
    2010-09-18  Ademar de Souza Reis Jr  <ademar.reis at openbossa.org>
    
            Reviewed by Kenneth Rohde Christiansen.
    
            Enable Platform Strategies on Qt
    
            [Qt] Turn on PLATFORM_STRATEGIES
            https://bugs.webkit.org/show_bug.cgi?id=45831
    
            * Api/qwebpage.cpp:
            (QWebPagePrivate::QWebPagePrivate): Initialize the PlatformStrategy
            singleton.
            * WebCoreSupport/WebPlatformStrategies.cpp: Added, code was moved
            from platform/qt/Localizations.cpp and plugins/qt/PluginDataQt.cpp
            (WebPlatformStrategies::initialize): create the singleton,
            following the same "pattern" used by Mac and Win ports.
            (WebPlatformStrategies::WebPlatformStrategies):
            (WebPlatformStrategies::createPluginStrategy):
            (WebPlatformStrategies::createLocalizationStrategy):
            (WebPlatformStrategies::createVisitedLinkStrategy):
            (WebPlatformStrategies::refreshPlugins):
            (WebPlatformStrategies::getPluginInfo):
            (WebPlatformStrategies::inputElementAltText):
            (WebPlatformStrategies::resetButtonDefaultLabel):
            (WebPlatformStrategies::searchableIndexIntroduction):
            (WebPlatformStrategies::submitButtonDefaultLabel):
            (WebPlatformStrategies::fileButtonChooseFileLabel):
            (WebPlatformStrategies::fileButtonNoFileSelectedLabel):
            (WebPlatformStrategies::contextMenuItemTagOpenLinkInNewWindow):
            (WebPlatformStrategies::contextMenuItemTagDownloadLinkToDisk):
            (WebPlatformStrategies::contextMenuItemTagCopyLinkToClipboard):
            (WebPlatformStrategies::contextMenuItemTagOpenImageInNewWindow):
            (WebPlatformStrategies::contextMenuItemTagDownloadImageToDisk):
            (WebPlatformStrategies::contextMenuItemTagCopyImageToClipboard):
            (WebPlatformStrategies::contextMenuItemTagOpenFrameInNewWindow):
            (WebPlatformStrategies::contextMenuItemTagCopy):
            (WebPlatformStrategies::contextMenuItemTagGoBack):
            (WebPlatformStrategies::contextMenuItemTagGoForward):
            (WebPlatformStrategies::contextMenuItemTagStop):
            (WebPlatformStrategies::contextMenuItemTagReload):
            (WebPlatformStrategies::contextMenuItemTagCut):
            (WebPlatformStrategies::contextMenuItemTagPaste):
            (WebPlatformStrategies::contextMenuItemTagNoGuessesFound):
            (WebPlatformStrategies::contextMenuItemTagIgnoreSpelling):
            (WebPlatformStrategies::contextMenuItemTagLearnSpelling):
            (WebPlatformStrategies::contextMenuItemTagSearchWeb):
            (WebPlatformStrategies::contextMenuItemTagLookUpInDictionary):
            (WebPlatformStrategies::contextMenuItemTagOpenLink):
            (WebPlatformStrategies::contextMenuItemTagIgnoreGrammar):
            (WebPlatformStrategies::contextMenuItemTagSpellingMenu):
            (WebPlatformStrategies::contextMenuItemTagShowSpellingPanel):
            (WebPlatformStrategies::contextMenuItemTagCheckSpelling):
            (WebPlatformStrategies::contextMenuItemTagCheckSpellingWhileTyping):
            (WebPlatformStrategies::contextMenuItemTagCheckGrammarWithSpelling):
            (WebPlatformStrategies::contextMenuItemTagFontMenu):
            (WebPlatformStrategies::contextMenuItemTagBold):
            (WebPlatformStrategies::contextMenuItemTagItalic):
            (WebPlatformStrategies::contextMenuItemTagUnderline):
            (WebPlatformStrategies::contextMenuItemTagOutline):
            (WebPlatformStrategies::contextMenuItemTagWritingDirectionMenu):
            (WebPlatformStrategies::contextMenuItemTagTextDirectionMenu):
            (WebPlatformStrategies::contextMenuItemTagDefaultDirection):
            (WebPlatformStrategies::contextMenuItemTagLeftToRight):
            (WebPlatformStrategies::contextMenuItemTagRightToLeft):
            (WebPlatformStrategies::contextMenuItemTagInspectElement):
            (WebPlatformStrategies::searchMenuNoRecentSearchesText):
            (WebPlatformStrategies::searchMenuRecentSearchesText):
            (WebPlatformStrategies::searchMenuClearRecentSearchesText):
            (WebPlatformStrategies::AXWebAreaText):
            (WebPlatformStrategies::AXLinkText):
            (WebPlatformStrategies::AXListMarkerText):
            (WebPlatformStrategies::AXImageMapText):
            (WebPlatformStrategies::AXHeadingText):
            (WebPlatformStrategies::AXDefinitionListTermText):
            (WebPlatformStrategies::AXDefinitionListDefinitionText):
            (WebPlatformStrategies::AXButtonActionVerb):
            (WebPlatformStrategies::AXRadioButtonActionVerb):
            (WebPlatformStrategies::AXTextFieldActionVerb):
            (WebPlatformStrategies::AXCheckedCheckBoxActionVerb):
            (WebPlatformStrategies::AXUncheckedCheckBoxActionVerb):
            (WebPlatformStrategies::AXMenuListActionVerb):
            (WebPlatformStrategies::AXMenuListPopupActionVerb):
            (WebPlatformStrategies::AXLinkActionVerb):
            (WebPlatformStrategies::missingPluginText):
            (WebPlatformStrategies::crashedPluginText):
            (WebPlatformStrategies::multipleFileUploadText):
            (WebPlatformStrategies::unknownFileSizeText):
            (WebPlatformStrategies::imageTitle):
            (WebPlatformStrategies::mediaElementLoadingStateText):
            (WebPlatformStrategies::mediaElementLiveBroadcastStateText):
            (WebPlatformStrategies::localizedMediaControlElementString):
            (WebPlatformStrategies::localizedMediaControlElementHelpText):
            (WebPlatformStrategies::localizedMediaTimeDescription):
            (WebPlatformStrategies::validationMessageValueMissingText):
            (WebPlatformStrategies::validationMessageTypeMismatchText):
            (WebPlatformStrategies::validationMessagePatternMismatchText):
            (WebPlatformStrategies::validationMessageTooLongText):
            (WebPlatformStrategies::validationMessageRangeUnderflowText):
            (WebPlatformStrategies::validationMessageRangeOverflowText):
            (WebPlatformStrategies::validationMessageStepMismatchText):
            (WebPlatformStrategies::isLinkVisited):
            (WebPlatformStrategies::addVisitedLink):
            * WebCoreSupport/WebPlatformStrategies.h: Added, based on Mac and Win
            versions.
    2010-09-18  Ademar de Souza Reis Jr  <ademar.reis at openbossa.org>
    
            Reviewed by Kenneth Rohde Christiansen.
    
            Enable Platform Strategies on Qt
    
            [Qt] Turn on PLATFORM_STRATEGIES
            https://bugs.webkit.org/show_bug.cgi?id=45831
    
            * WebKit2.pro: Added Added WebPlatformStrategies.{cpp,h}
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67787 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index 8b2c1e3..8ded00c 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,14 @@
+2010-09-18  Ademar de Souza Reis Jr  <ademar.reis at openbossa.org>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Enable Platform Strategies on Qt
+
+        [Qt] Turn on PLATFORM_STRATEGIES
+        https://bugs.webkit.org/show_bug.cgi?id=45831
+
+        * wtf/Platform.h: Enable Platform Strategies when building QtWebkit
+
 2010-09-17  Oliver Hunt  <oliver at apple.com>
 
         Reviewed by Gavin Barraclough.
diff --git a/JavaScriptCore/wtf/Platform.h b/JavaScriptCore/wtf/Platform.h
index d1c9706..00ab262 100644
--- a/JavaScriptCore/wtf/Platform.h
+++ b/JavaScriptCore/wtf/Platform.h
@@ -1111,7 +1111,7 @@
 #define ENABLE_JSC_ZOMBIES 0
 
 /* FIXME: Eventually we should enable this for all platforms and get rid of the define. */
-#if PLATFORM(MAC) || PLATFORM(WIN)
+#if PLATFORM(MAC) || PLATFORM(WIN) || PLATFORM(QT)
 #define WTF_USE_PLATFORM_STRATEGIES 1
 #endif
 
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 11b19ef..b6e78ac 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-09-18  Ademar de Souza Reis Jr  <ademar.reis at openbossa.org>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Enable Platform Strategies on Qt
+
+        [Qt] Turn on PLATFORM_STRATEGIES
+        https://bugs.webkit.org/show_bug.cgi?id=45831
+
+        * WebCore.pro: Adding/removing implementation files
+        * platform/qt/Language.cpp: Added, WebCore::defaultLanguage() was
+        moved from platform/qt/Localizations.cpp
+        (WebCore::defaultLanguage): Moved from Localizations.cpp
+        * platform/qt/Localizations.cpp: Removed (code is now inside
+        WebCoreSupport/WebPlatformStrategies.cpp)
+        * plugins/qt/PluginDataQt.cpp: Removed (idem)
+
 2010-09-18  Patrick Gansterer  <paroga at paroga.com>
 
         Reviewed by Eric Seidel.
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index 8998355..9a9a3e5 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -1180,6 +1180,8 @@ SOURCES += \
     platform/text/transcoder/FontTranscoder.cpp \
     platform/UUID.cpp \
     platform/Widget.cpp \
+    platform/PlatformStrategies.cpp \
+    platform/LocalizedStrings.cpp \
     plugins/PluginDatabase.cpp \
     plugins/PluginDebug.cpp \
     plugins/PluginPackage.cpp \
@@ -2034,6 +2036,7 @@ HEADERS += \
     platform/text/LineEnding.h \
     platform/LinkHash.h \
     platform/Logging.h \
+    platform/Language.h \
     platform/MIMETypeRegistry.h \
     platform/network/AuthenticationChallengeBase.h \
     platform/network/AuthenticationClient.h \
@@ -2096,6 +2099,8 @@ HEADERS += \
     platform/ThreadTimers.h \
     platform/Timer.h \
     platform/Widget.h \
+    platform/PlatformStrategies.h \
+    platform/LocalizedStrings.h \
     plugins/DOMMimeTypeArray.h \
     plugins/DOMMimeType.h \
     plugins/DOMPluginArray.h \
@@ -2507,6 +2512,7 @@ HEADERS += \
     $$PWD/../WebKit/qt/WebCoreSupport/QtPlatformPlugin.h \
     $$PWD/../WebKit/qt/WebCoreSupport/PopupMenuQt.h \
     $$PWD/../WebKit/qt/WebCoreSupport/SearchPopupMenuQt.h \
+    $$PWD/../WebKit/qt/WebCoreSupport/WebPlatformStrategies.h \
     $$PWD/platform/network/qt/DnsPrefetchHelper.h
 
 v8 {
@@ -2571,7 +2577,6 @@ SOURCES += \
     platform/graphics/qt/SimpleFontDataQt.cpp \
     platform/graphics/qt/TileQt.cpp \
     platform/qt/KURLQt.cpp \
-    platform/qt/Localizations.cpp \
     platform/qt/MIMETypeRegistryQt.cpp \
     platform/qt/PasteboardQt.cpp \
     platform/qt/PlatformKeyboardEventQt.cpp \
@@ -2586,13 +2591,13 @@ SOURCES += \
     platform/qt/SharedTimerQt.cpp \
     platform/qt/SoundQt.cpp \
     platform/qt/LoggingQt.cpp \
+    platform/qt/Language.cpp \
     platform/qt/TemporaryLinkStubsQt.cpp \
     platform/text/qt/TextBoundariesQt.cpp \
     platform/text/qt/TextBreakIteratorQt.cpp \
     platform/text/qt/TextCodecQt.cpp \
     platform/qt/WheelEventQt.cpp \
     platform/qt/WidgetQt.cpp \
-    plugins/qt/PluginDataQt.cpp \
     ../WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp \
     ../WebKit/qt/WebCoreSupport/ChromeClientQt.cpp \
     ../WebKit/qt/WebCoreSupport/ContextMenuClientQt.cpp \
@@ -2609,6 +2614,7 @@ SOURCES += \
     ../WebKit/qt/WebCoreSupport/PopupMenuQt.cpp \
     ../WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp \
     ../WebKit/qt/WebCoreSupport/SearchPopupMenuQt.cpp \
+    ../WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp \
     ../WebKit/qt/Api/qwebframe.cpp \
     ../WebKit/qt/Api/qgraphicswebview.cpp \
     ../WebKit/qt/Api/qwebpage.cpp \
diff --git a/WebCore/platform/qt/Language.cpp b/WebCore/platform/qt/Language.cpp
new file mode 100644
index 0000000..0d2900b
--- /dev/null
+++ b/WebCore/platform/qt/Language.cpp
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 INdT - Instituto Nokia de Tecnologia
+ * 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 met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "Language.h"
+
+#include "PlatformString.h"
+#include <QLocale>
+
+namespace WebCore {
+
+String defaultLanguage()
+{
+    QLocale locale;
+    return locale.name().replace("_", "-");
+}
+
+}
diff --git a/WebCore/platform/qt/Localizations.cpp b/WebCore/platform/qt/Localizations.cpp
deleted file mode 100644
index 454872a..0000000
--- a/WebCore/platform/qt/Localizations.cpp
+++ /dev/null
@@ -1,536 +0,0 @@
-/*
- * Copyright (C) 2007 Staikos Computing Services Inc. <info at staikos.net>
- * Copyright (C) 2007 Apple Inc.  All rights reserved.
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "LocalizedStrings.h"
-
-#include "IntSize.h"
-#include "NotImplemented.h"
-#include "PlatformString.h"
-#include <QCoreApplication>
-#include <QLocale>
-#include <wtf/MathExtras.h>
-
-
-namespace WebCore {
-
-String submitButtonDefaultLabel()
-{
-    return QCoreApplication::translate("QWebPage", "Submit", "default label for Submit buttons in forms on web pages");
-}
-
-String inputElementAltText()
-{
-    return QCoreApplication::translate("QWebPage", "Submit", "Submit (input element) alt text for <input> elements with no alt, title, or value");
-}
-
-String resetButtonDefaultLabel()
-{
-    return QCoreApplication::translate("QWebPage", "Reset", "default label for Reset buttons in forms on web pages");
-}
-
-String defaultLanguage()
-{
-    QLocale locale;
-    return locale.name().replace("_", "-");
-}
-
-String searchableIndexIntroduction()
-{
-    return QCoreApplication::translate("QWebPage", "This is a searchable index. Enter search keywords: ", "text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'");
-}
-
-String fileButtonChooseFileLabel()
-{
-    return QCoreApplication::translate("QWebPage", "Choose File", "title for file button used in HTML forms");
-}
-
-String fileButtonNoFileSelectedLabel()
-{
-    return QCoreApplication::translate("QWebPage", "No file selected", "text to display in file button used in HTML forms when no file is selected");
-}
-
-String contextMenuItemTagOpenLinkInNewWindow()
-{
-    return QCoreApplication::translate("QWebPage", "Open in New Window", "Open in New Window context menu item");
-}
-
-String contextMenuItemTagDownloadLinkToDisk()
-{
-    return QCoreApplication::translate("QWebPage", "Save Link...", "Download Linked File context menu item");
-}
-
-String contextMenuItemTagCopyLinkToClipboard()
-{
-    return QCoreApplication::translate("QWebPage", "Copy Link", "Copy Link context menu item");
-}
-
-String contextMenuItemTagOpenImageInNewWindow()
-{
-    return QCoreApplication::translate("QWebPage", "Open Image", "Open Image in New Window context menu item");
-}
-
-String contextMenuItemTagDownloadImageToDisk()
-{
-    return QCoreApplication::translate("QWebPage", "Save Image", "Download Image context menu item");
-}
-
-String contextMenuItemTagCopyImageToClipboard()
-{
-    return QCoreApplication::translate("QWebPage", "Copy Image", "Copy Link context menu item");
-}
-
-String contextMenuItemTagOpenFrameInNewWindow()
-{
-    return QCoreApplication::translate("QWebPage", "Open Frame", "Open Frame in New Window context menu item");
-}
-
-String contextMenuItemTagCopy()
-{
-    return QCoreApplication::translate("QWebPage", "Copy", "Copy context menu item");
-}
-
-String contextMenuItemTagGoBack()
-{
-    return QCoreApplication::translate("QWebPage", "Go Back", "Back context menu item");
-}
-
-String contextMenuItemTagGoForward()
-{
-    return QCoreApplication::translate("QWebPage", "Go Forward", "Forward context menu item");
-}
-
-String contextMenuItemTagStop()
-{
-    return QCoreApplication::translate("QWebPage", "Stop", "Stop context menu item");
-}
-
-String contextMenuItemTagReload()
-{
-    return QCoreApplication::translate("QWebPage", "Reload", "Reload context menu item");
-}
-
-String contextMenuItemTagCut()
-{
-    return QCoreApplication::translate("QWebPage", "Cut", "Cut context menu item");
-}
-
-String contextMenuItemTagPaste()
-{
-    return QCoreApplication::translate("QWebPage", "Paste", "Paste context menu item");
-}
-
-String contextMenuItemTagNoGuessesFound()
-{
-    return QCoreApplication::translate("QWebPage", "No Guesses Found", "No Guesses Found context menu item");
-}
-
-String contextMenuItemTagIgnoreSpelling()
-{
-    return QCoreApplication::translate("QWebPage", "Ignore", "Ignore Spelling context menu item");
-}
-
-String contextMenuItemTagLearnSpelling()
-{
-    return QCoreApplication::translate("QWebPage", "Add To Dictionary", "Learn Spelling context menu item");
-}
-
-String contextMenuItemTagSearchWeb()
-{
-    return QCoreApplication::translate("QWebPage", "Search The Web", "Search The Web context menu item");
-}
-
-String contextMenuItemTagLookUpInDictionary()
-{
-    return QCoreApplication::translate("QWebPage", "Look Up In Dictionary", "Look Up in Dictionary context menu item");
-}
-
-String contextMenuItemTagOpenLink()
-{
-    return QCoreApplication::translate("QWebPage", "Open Link", "Open Link context menu item");
-}
-
-String contextMenuItemTagIgnoreGrammar()
-{
-    return QCoreApplication::translate("QWebPage", "Ignore", "Ignore Grammar context menu item");
-}
-
-String contextMenuItemTagSpellingMenu()
-{
-    return QCoreApplication::translate("QWebPage", "Spelling", "Spelling and Grammar context sub-menu item");
-}
-
-String contextMenuItemTagShowSpellingPanel(bool show)
-{
-    return show ? QCoreApplication::translate("QWebPage", "Show Spelling and Grammar", "menu item title") :
-                  QCoreApplication::translate("QWebPage", "Hide Spelling and Grammar", "menu item title");
-}
-
-String contextMenuItemTagCheckSpelling()
-{
-    return QCoreApplication::translate("QWebPage", "Check Spelling", "Check spelling context menu item");
-}
-
-String contextMenuItemTagCheckSpellingWhileTyping()
-{
-    return QCoreApplication::translate("QWebPage", "Check Spelling While Typing", "Check spelling while typing context menu item");
-}
-
-String contextMenuItemTagCheckGrammarWithSpelling()
-{
-    return QCoreApplication::translate("QWebPage", "Check Grammar With Spelling", "Check grammar with spelling context menu item");
-}
-
-String contextMenuItemTagFontMenu()
-{
-    return QCoreApplication::translate("QWebPage", "Fonts", "Font context sub-menu item");
-}
-
-String contextMenuItemTagBold()
-{
-    return QCoreApplication::translate("QWebPage", "Bold", "Bold context menu item");
-}
-
-String contextMenuItemTagItalic()
-{
-    return QCoreApplication::translate("QWebPage", "Italic", "Italic context menu item");
-}
-
-String contextMenuItemTagUnderline()
-{
-    return QCoreApplication::translate("QWebPage", "Underline", "Underline context menu item");
-}
-
-String contextMenuItemTagOutline()
-{
-    return QCoreApplication::translate("QWebPage", "Outline", "Outline context menu item");
-}
-
-String contextMenuItemTagWritingDirectionMenu()
-{
-    return QCoreApplication::translate("QWebPage", "Direction", "Writing direction context sub-menu item");
-}
-
-String contextMenuItemTagTextDirectionMenu()
-{
-    return QCoreApplication::translate("QWebPage", "Text Direction", "Text direction context sub-menu item");
-}
-
-String contextMenuItemTagDefaultDirection()
-{
-    return QCoreApplication::translate("QWebPage", "Default", "Default writing direction context menu item");
-}
-
-String contextMenuItemTagLeftToRight()
-{
-    return QCoreApplication::translate("QWebPage", "Left to Right", "Left to Right context menu item");
-}
-
-String contextMenuItemTagRightToLeft()
-{
-    return QCoreApplication::translate("QWebPage", "Right to Left", "Right to Left context menu item");
-}
-
-String contextMenuItemTagInspectElement()
-{
-    return QCoreApplication::translate("QWebPage", "Inspect", "Inspect Element context menu item");
-}
-
-String searchMenuNoRecentSearchesText()
-{
-    return QCoreApplication::translate("QWebPage", "No recent searches", "Label for only item in menu that appears when clicking on the search field image, when no searches have been performed");
-}
-
-String searchMenuRecentSearchesText()
-{
-    return QCoreApplication::translate("QWebPage", "Recent searches", "label for first item in the menu that appears when clicking on the search field image, used as embedded menu title");
-}
-
-String searchMenuClearRecentSearchesText()
-{
-    return QCoreApplication::translate("QWebPage", "Clear recent searches", "menu item in Recent Searches menu that empties menu's contents");
-}
-
-String AXWebAreaText()
-{
-    return String();
-}
-
-String AXLinkText()
-{
-    return String();
-}
-
-String AXListMarkerText()
-{
-    return String();
-}
-
-String AXImageMapText()
-{
-    return String();
-}
-
-String AXHeadingText()
-{
-    return String();
-}
-
-String AXDefinitionListTermText()
-{
-    return String();
-}
-
-String AXDefinitionListDefinitionText()
-{
-    return String();
-}
-
-String AXButtonActionVerb()
-{
-    return String();
-}
-
-String AXRadioButtonActionVerb()
-{
-    return String();
-}
-
-String AXTextFieldActionVerb()
-{
-    return String();
-}
-
-String AXCheckedCheckBoxActionVerb()
-{
-    return String();
-}
-
-String AXUncheckedCheckBoxActionVerb()
-{
-    return String();
-}
-
-String AXLinkActionVerb()
-{
-    return String();
-}
-
-String AXMenuListPopupActionVerb()
-{
-    return String();
-}
-
-String AXMenuListActionVerb()
-{
-    return String();
-}
-
-String missingPluginText()
-{
-    return QCoreApplication::translate("QWebPage", "Missing Plug-in", "Label text to be used when a plug-in is missing");
-}
-
-String crashedPluginText()
-{
-    notImplemented();
-    return String();
-}
-
-String multipleFileUploadText(unsigned)
-{
-    return String();
-}
-
-String unknownFileSizeText()
-{
-    return QCoreApplication::translate("QWebPage", "Unknown", "Unknown filesize FTP directory listing item");
-}
-
-String imageTitle(const String& filename, const IntSize& size)
-{
-    return QCoreApplication::translate("QWebPage", "%1 (%2x%3 pixels)", "Title string for images").arg(filename).arg(size.width()).arg(size.height());
-}
-
-String mediaElementLoadingStateText()
-{
-    return QCoreApplication::translate("QWebPage", "Loading...", "Media controller status message when the media is loading");
-}
-
-String mediaElementLiveBroadcastStateText()
-{
-    return QCoreApplication::translate("QWebPage", "Live Broadcast", "Media controller status message when watching a live broadcast");
-}
-
-#if ENABLE(VIDEO)
-
-String localizedMediaControlElementString(const String& name)
-{
-    if (name == "AudioElement")
-        return QCoreApplication::translate("QWebPage", "Audio Element", "Media controller element");
-    if (name == "VideoElement")
-        return QCoreApplication::translate("QWebPage", "Video Element", "Media controller element");
-    if (name == "MuteButton")
-        return QCoreApplication::translate("QWebPage", "Mute Button", "Media controller element");
-    if (name == "UnMuteButton")
-        return QCoreApplication::translate("QWebPage", "Unmute Button", "Media controller element");
-    if (name == "PlayButton")
-        return QCoreApplication::translate("QWebPage", "Play Button", "Media controller element");
-    if (name == "PauseButton")
-        return QCoreApplication::translate("QWebPage", "Pause Button", "Media controller element");
-    if (name == "Slider")
-        return QCoreApplication::translate("QWebPage", "Slider", "Media controller element");
-    if (name == "SliderThumb")
-        return QCoreApplication::translate("QWebPage", "Slider Thumb", "Media controller element");
-    if (name == "RewindButton")
-        return QCoreApplication::translate("QWebPage", "Rewind Button", "Media controller element");
-    if (name == "ReturnToRealtimeButton")
-        return QCoreApplication::translate("QWebPage", "Return to Real-time Button", "Media controller element");
-    if (name == "CurrentTimeDisplay")
-        return QCoreApplication::translate("QWebPage", "Elapsed Time", "Media controller element");
-    if (name == "TimeRemainingDisplay")
-        return QCoreApplication::translate("QWebPage", "Remaining Time", "Media controller element");
-    if (name == "StatusDisplay")
-        return QCoreApplication::translate("QWebPage", "Status Display", "Media controller element");
-    if (name == "FullscreenButton")
-        return QCoreApplication::translate("QWebPage", "Fullscreen Button", "Media controller element");
-    if (name == "SeekForwardButton")
-        return QCoreApplication::translate("QWebPage", "Seek Forward Button", "Media controller element");
-    if (name == "SeekBackButton")
-        return QCoreApplication::translate("QWebPage", "Seek Back Button", "Media controller element");
-
-    return String();
-}
-
-String localizedMediaControlElementHelpText(const String& name)
-{
-    if (name == "AudioElement")
-        return QCoreApplication::translate("QWebPage", "Audio element playback controls and status display", "Media controller element");
-    if (name == "VideoElement")
-        return QCoreApplication::translate("QWebPage", "Video element playback controls and status display", "Media controller element");
-    if (name == "MuteButton")
-        return QCoreApplication::translate("QWebPage", "Mute audio tracks", "Media controller element");
-    if (name == "UnMuteButton")
-        return QCoreApplication::translate("QWebPage", "Unmute audio tracks", "Media controller element");
-    if (name == "PlayButton")
-        return QCoreApplication::translate("QWebPage", "Begin playback", "Media controller element");
-    if (name == "PauseButton")
-        return QCoreApplication::translate("QWebPage", "Pause playback", "Media controller element");
-    if (name == "Slider")
-        return QCoreApplication::translate("QWebPage", "Movie time scrubber", "Media controller element");
-    if (name == "SliderThumb")
-        return QCoreApplication::translate("QWebPage", "Movie time scrubber thumb", "Media controller element");
-    if (name == "RewindButton")
-        return QCoreApplication::translate("QWebPage", "Rewind movie", "Media controller element");
-    if (name == "ReturnToRealtimeButton")
-        return QCoreApplication::translate("QWebPage", "Return streaming movie to real-time", "Media controller element");
-    if (name == "CurrentTimeDisplay")
-        return QCoreApplication::translate("QWebPage", "Current movie time", "Media controller element");
-    if (name == "TimeRemainingDisplay")
-        return QCoreApplication::translate("QWebPage", "Remaining movie time", "Media controller element");
-    if (name == "StatusDisplay")
-        return QCoreApplication::translate("QWebPage", "Current movie status", "Media controller element");
-    if (name == "FullscreenButton")
-        return QCoreApplication::translate("QWebPage", "Play movie in full-screen mode", "Media controller element");
-    if (name == "SeekForwardButton")
-        return QCoreApplication::translate("QWebPage", "Seek quickly back", "Media controller element");
-    if (name == "SeekBackButton")
-        return QCoreApplication::translate("QWebPage", "Seek quickly forward", "Media controller element");
-
-    ASSERT_NOT_REACHED();
-    return String();
-}
-
-String localizedMediaTimeDescription(float time)
-{
-    if (!isfinite(time))
-        return QCoreApplication::translate("QWebPage", "Indefinite time", "Media time description");
-
-    int seconds = (int)fabsf(time);
-    int days = seconds / (60 * 60 * 24);
-    int hours = seconds / (60 * 60);
-    int minutes = (seconds / 60) % 60;
-    seconds %= 60;
-
-    if (days)
-        return QCoreApplication::translate("QWebPage", "%1 days %2 hours %3 minutes %4 seconds", "Media time description").arg(days).arg(hours).arg(minutes).arg(seconds);
-
-    if (hours)
-        return QCoreApplication::translate("QWebPage", "%1 hours %2 minutes %3 seconds", "Media time description").arg(hours).arg(minutes).arg(seconds);
-
-    if (minutes)
-        return QCoreApplication::translate("QWebPage", "%1 minutes %2 seconds", "Media time description").arg(minutes).arg(seconds);
-
-    return QCoreApplication::translate("QWebPage", "%1 seconds", "Media time description").arg(seconds);
-}
-#endif // ENABLE(VIDEO)
-
-String validationMessageValueMissingText()
-{
-    notImplemented();
-    return String();
-}
-
-String validationMessageTypeMismatchText()
-{
-    notImplemented();
-    return String();
-}
-
-String validationMessagePatternMismatchText()
-{
-    notImplemented();
-    return String();
-}
-
-String validationMessageTooLongText()
-{
-    notImplemented();
-    return String();
-}
-
-String validationMessageRangeUnderflowText()
-{
-    notImplemented();
-    return String();
-}
-
-String validationMessageRangeOverflowText()
-{
-    notImplemented();
-    return String();
-}
-
-String validationMessageStepMismatchText()
-{
-    notImplemented();
-    return String();
-}
-
-}
-// vim: ts=4 sw=4 et
diff --git a/WebCore/plugins/qt/PluginDataQt.cpp b/WebCore/plugins/qt/PluginDataQt.cpp
deleted file mode 100644
index 3dc86d0..0000000
--- a/WebCore/plugins/qt/PluginDataQt.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-    Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
-    Copyright (C) 2008 Collabora Ltd. 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
-    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 "config.h"
-#include "PluginData.h"
-
-#include "PluginDatabase.h"
-#include "PluginPackage.h"
-
-#include "Chrome.h"
-#include "ChromeClientQt.h"
-#include "Page.h"
-#include <qwebpage.h>
-#include <qwebpluginfactory.h>
-
-namespace WebCore {
-
-void PluginData::initPlugins()
-{
-    QWebPage* webPage = static_cast<ChromeClientQt*>(m_page->chrome()->client())->m_webPage;
-    QWebPluginFactory* factory = webPage->pluginFactory();
-    if (factory) {
-
-        QList<QWebPluginFactory::Plugin> qplugins = factory->plugins();
-        for (int i = 0; i < qplugins.count(); ++i) {
-            const QWebPluginFactory::Plugin& qplugin = qplugins.at(i);
-
-            PluginInfo info;
-            info.name = qplugin.name;
-            info.desc = qplugin.description;
-
-            for (int j = 0; j < qplugin.mimeTypes.count(); ++j) {
-                const QWebPluginFactory::MimeType& mimeType = qplugin.mimeTypes.at(j);
-
-                MimeClassInfo mimeInfo;
-                mimeInfo.type = mimeType.name;
-                mimeInfo.desc = mimeType.description;
-                for (int k = 0; k < mimeType.fileExtensions.count(); ++k)
-                  mimeInfo.extensions.append(mimeType.fileExtensions.at(k));
-
-                info.mimes.append(mimeInfo);
-            }
-
-            m_plugins.append(info);
-        }
-    }
-
-    PluginDatabase *db = PluginDatabase::installedPlugins();
-    const Vector<PluginPackage*> &plugins = db->plugins();
-
-    for (unsigned int i = 0; i < plugins.size(); ++i) {
-        PluginInfo info;
-        PluginPackage* package = plugins[i];
-
-        info.name = package->name();
-        info.file = package->fileName();
-        info.desc = package->description();
-
-        const MIMEToDescriptionsMap& mimeToDescriptions = package->mimeToDescriptions();
-        MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end();
-        for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) {
-            MimeClassInfo mime;
-
-            mime.type = it->first;
-            mime.desc = it->second;
-            mime.extensions = package->mimeToExtensions().get(mime.type);
-
-            info.mimes.append(mime);
-        }
-
-        m_plugins.append(info);
-    }
-}
-
-void PluginData::refresh()
-{
-    PluginDatabase *db = PluginDatabase::installedPlugins();
-    db->refresh();
-}
-
-};
diff --git a/WebKit/qt/Api/qwebpage.cpp b/WebKit/qt/Api/qwebpage.cpp
index 1f75fa2..181b3a6 100644
--- a/WebKit/qt/Api/qwebpage.cpp
+++ b/WebKit/qt/Api/qwebpage.cpp
@@ -78,6 +78,7 @@
 #include "HTMLNames.h"
 #include "HitTestResult.h"
 #include "WindowFeatures.h"
+#include "WebPlatformStrategies.h"
 #include "LocalizedStrings.h"
 #include "Cache.h"
 #include "runtime/InitializeThreading.h"
@@ -271,6 +272,8 @@ QWebPagePrivate::QWebPagePrivate(QWebPage *qq)
     WebCore::Font::setCodePath(WebCore::Font::Complex);
 #endif
 
+    WebPlatformStrategies::initialize(qq);
+
     Page::PageClients pageClients;
     pageClients.chromeClient = new ChromeClientQt(q);
     pageClients.contextMenuClient = new ContextMenuClientQt();
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index 74b2f7f..b1c4425 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,108 @@
+2010-09-18  Ademar de Souza Reis Jr  <ademar.reis at openbossa.org>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Enable Platform Strategies on Qt
+
+        [Qt] Turn on PLATFORM_STRATEGIES
+        https://bugs.webkit.org/show_bug.cgi?id=45831
+
+        * Api/qwebpage.cpp:
+        (QWebPagePrivate::QWebPagePrivate): Initialize the PlatformStrategy
+        singleton.
+        * WebCoreSupport/WebPlatformStrategies.cpp: Added, code was moved
+        from platform/qt/Localizations.cpp and plugins/qt/PluginDataQt.cpp
+        (WebPlatformStrategies::initialize): create the singleton,
+        following the same "pattern" used by Mac and Win ports.
+        (WebPlatformStrategies::WebPlatformStrategies):
+        (WebPlatformStrategies::createPluginStrategy):
+        (WebPlatformStrategies::createLocalizationStrategy):
+        (WebPlatformStrategies::createVisitedLinkStrategy):
+        (WebPlatformStrategies::refreshPlugins):
+        (WebPlatformStrategies::getPluginInfo):
+        (WebPlatformStrategies::inputElementAltText):
+        (WebPlatformStrategies::resetButtonDefaultLabel):
+        (WebPlatformStrategies::searchableIndexIntroduction):
+        (WebPlatformStrategies::submitButtonDefaultLabel):
+        (WebPlatformStrategies::fileButtonChooseFileLabel):
+        (WebPlatformStrategies::fileButtonNoFileSelectedLabel):
+        (WebPlatformStrategies::contextMenuItemTagOpenLinkInNewWindow):
+        (WebPlatformStrategies::contextMenuItemTagDownloadLinkToDisk):
+        (WebPlatformStrategies::contextMenuItemTagCopyLinkToClipboard):
+        (WebPlatformStrategies::contextMenuItemTagOpenImageInNewWindow):
+        (WebPlatformStrategies::contextMenuItemTagDownloadImageToDisk):
+        (WebPlatformStrategies::contextMenuItemTagCopyImageToClipboard):
+        (WebPlatformStrategies::contextMenuItemTagOpenFrameInNewWindow):
+        (WebPlatformStrategies::contextMenuItemTagCopy):
+        (WebPlatformStrategies::contextMenuItemTagGoBack):
+        (WebPlatformStrategies::contextMenuItemTagGoForward):
+        (WebPlatformStrategies::contextMenuItemTagStop):
+        (WebPlatformStrategies::contextMenuItemTagReload):
+        (WebPlatformStrategies::contextMenuItemTagCut):
+        (WebPlatformStrategies::contextMenuItemTagPaste):
+        (WebPlatformStrategies::contextMenuItemTagNoGuessesFound):
+        (WebPlatformStrategies::contextMenuItemTagIgnoreSpelling):
+        (WebPlatformStrategies::contextMenuItemTagLearnSpelling):
+        (WebPlatformStrategies::contextMenuItemTagSearchWeb):
+        (WebPlatformStrategies::contextMenuItemTagLookUpInDictionary):
+        (WebPlatformStrategies::contextMenuItemTagOpenLink):
+        (WebPlatformStrategies::contextMenuItemTagIgnoreGrammar):
+        (WebPlatformStrategies::contextMenuItemTagSpellingMenu):
+        (WebPlatformStrategies::contextMenuItemTagShowSpellingPanel):
+        (WebPlatformStrategies::contextMenuItemTagCheckSpelling):
+        (WebPlatformStrategies::contextMenuItemTagCheckSpellingWhileTyping):
+        (WebPlatformStrategies::contextMenuItemTagCheckGrammarWithSpelling):
+        (WebPlatformStrategies::contextMenuItemTagFontMenu):
+        (WebPlatformStrategies::contextMenuItemTagBold):
+        (WebPlatformStrategies::contextMenuItemTagItalic):
+        (WebPlatformStrategies::contextMenuItemTagUnderline):
+        (WebPlatformStrategies::contextMenuItemTagOutline):
+        (WebPlatformStrategies::contextMenuItemTagWritingDirectionMenu):
+        (WebPlatformStrategies::contextMenuItemTagTextDirectionMenu):
+        (WebPlatformStrategies::contextMenuItemTagDefaultDirection):
+        (WebPlatformStrategies::contextMenuItemTagLeftToRight):
+        (WebPlatformStrategies::contextMenuItemTagRightToLeft):
+        (WebPlatformStrategies::contextMenuItemTagInspectElement):
+        (WebPlatformStrategies::searchMenuNoRecentSearchesText):
+        (WebPlatformStrategies::searchMenuRecentSearchesText):
+        (WebPlatformStrategies::searchMenuClearRecentSearchesText):
+        (WebPlatformStrategies::AXWebAreaText):
+        (WebPlatformStrategies::AXLinkText):
+        (WebPlatformStrategies::AXListMarkerText):
+        (WebPlatformStrategies::AXImageMapText):
+        (WebPlatformStrategies::AXHeadingText):
+        (WebPlatformStrategies::AXDefinitionListTermText):
+        (WebPlatformStrategies::AXDefinitionListDefinitionText):
+        (WebPlatformStrategies::AXButtonActionVerb):
+        (WebPlatformStrategies::AXRadioButtonActionVerb):
+        (WebPlatformStrategies::AXTextFieldActionVerb):
+        (WebPlatformStrategies::AXCheckedCheckBoxActionVerb):
+        (WebPlatformStrategies::AXUncheckedCheckBoxActionVerb):
+        (WebPlatformStrategies::AXMenuListActionVerb):
+        (WebPlatformStrategies::AXMenuListPopupActionVerb):
+        (WebPlatformStrategies::AXLinkActionVerb):
+        (WebPlatformStrategies::missingPluginText):
+        (WebPlatformStrategies::crashedPluginText):
+        (WebPlatformStrategies::multipleFileUploadText):
+        (WebPlatformStrategies::unknownFileSizeText):
+        (WebPlatformStrategies::imageTitle):
+        (WebPlatformStrategies::mediaElementLoadingStateText):
+        (WebPlatformStrategies::mediaElementLiveBroadcastStateText):
+        (WebPlatformStrategies::localizedMediaControlElementString):
+        (WebPlatformStrategies::localizedMediaControlElementHelpText):
+        (WebPlatformStrategies::localizedMediaTimeDescription):
+        (WebPlatformStrategies::validationMessageValueMissingText):
+        (WebPlatformStrategies::validationMessageTypeMismatchText):
+        (WebPlatformStrategies::validationMessagePatternMismatchText):
+        (WebPlatformStrategies::validationMessageTooLongText):
+        (WebPlatformStrategies::validationMessageRangeUnderflowText):
+        (WebPlatformStrategies::validationMessageRangeOverflowText):
+        (WebPlatformStrategies::validationMessageStepMismatchText):
+        (WebPlatformStrategies::isLinkVisited):
+        (WebPlatformStrategies::addVisitedLink):
+        * WebCoreSupport/WebPlatformStrategies.h: Added, based on Mac and Win
+        versions.
+
 2010-09-18  Andreas Kling  <andreas.kling at nokia.com>
 
         Reviewed by Antonio Gomes.
diff --git a/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp b/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp
new file mode 100644
index 0000000..948e0cd
--- /dev/null
+++ b/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp
@@ -0,0 +1,675 @@
+/*
+ * Copyright (C) 2007 Staikos Computing Services Inc. <info at staikos.net>
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ * Copyright (C) 2008 Collabora Ltd. All rights reserved.
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 INdT - Instituto Nokia de Tecnologia
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebPlatformStrategies.h"
+
+#include "NotImplemented.h"
+#include <IntSize.h>
+#include <Page.h>
+#include <PageGroup.h>
+#include <PluginDatabase.h>
+#include <QCoreApplication>
+#include <QLocale>
+#include <qwebpage.h>
+#include <qwebpluginfactory.h>
+#include <wtf/MathExtras.h>
+
+using namespace WebCore;
+
+void WebPlatformStrategies::initialize(QWebPage* webPage)
+{
+    DEFINE_STATIC_LOCAL(WebPlatformStrategies, platformStrategies, (webPage));
+    Q_UNUSED(platformStrategies);
+}
+
+WebPlatformStrategies::WebPlatformStrategies(QWebPage* webPage)
+    : m_page(webPage)
+{
+    setPlatformStrategies(this);
+}
+
+
+// PluginStrategy
+
+PluginStrategy* WebPlatformStrategies::createPluginStrategy()
+{
+    return this;
+}
+
+LocalizationStrategy* WebPlatformStrategies::createLocalizationStrategy()
+{
+    return this;
+}
+
+VisitedLinkStrategy* WebPlatformStrategies::createVisitedLinkStrategy()
+{
+    return this;
+}
+
+void WebPlatformStrategies::refreshPlugins()
+{
+    PluginDatabase::installedPlugins()->refresh();
+}
+
+void WebPlatformStrategies::getPluginInfo(Vector<WebCore::PluginInfo>& outPlugins)
+{
+    QWebPluginFactory* factory = m_page->pluginFactory();
+    if (factory) {
+
+        QList<QWebPluginFactory::Plugin> qplugins = factory->plugins();
+        for (int i = 0; i < qplugins.count(); ++i) {
+            const QWebPluginFactory::Plugin& qplugin = qplugins.at(i);
+            PluginInfo info;
+            info.name = qplugin.name;
+            info.desc = qplugin.description;
+
+            for (int j = 0; j < qplugin.mimeTypes.count(); ++j) {
+                const QWebPluginFactory::MimeType& mimeType = qplugin.mimeTypes.at(j);
+
+                MimeClassInfo mimeInfo;
+                mimeInfo.type = mimeType.name;
+                mimeInfo.desc = mimeType.description;
+                for (int k = 0; k < mimeType.fileExtensions.count(); ++k)
+                  mimeInfo.extensions.append(mimeType.fileExtensions.at(k));
+
+                info.mimes.append(mimeInfo);
+            }
+            outPlugins.append(info);
+        }
+    }
+
+    PluginDatabase* db = PluginDatabase::installedPlugins();
+    const Vector<PluginPackage*> &plugins = db->plugins();
+
+    outPlugins.resize(plugins.size());
+
+    for (unsigned int i = 0; i < plugins.size(); ++i) {
+        PluginInfo info;
+        PluginPackage* package = plugins[i];
+
+        info.name = package->name();
+        info.file = package->fileName();
+        info.desc = package->description();
+
+        const MIMEToDescriptionsMap& mimeToDescriptions = package->mimeToDescriptions();
+        MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end();
+        for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) {
+            MimeClassInfo mime;
+
+            mime.type = it->first;
+            mime.desc = it->second;
+            mime.extensions = package->mimeToExtensions().get(mime.type);
+
+            info.mimes.append(mime);
+        }
+
+        outPlugins.append(info);
+    }
+
+}
+
+
+// LocalizationStrategy
+
+String WebPlatformStrategies::inputElementAltText()
+{
+    return QCoreApplication::translate("QWebPage", "Submit", "Submit (input element) alt text for <input> elements with no alt, title, or value");
+}
+
+String WebPlatformStrategies::resetButtonDefaultLabel()
+{
+    return QCoreApplication::translate("QWebPage", "Reset", "default label for Reset buttons in forms on web pages");
+}
+
+String WebPlatformStrategies::searchableIndexIntroduction()
+{
+    return QCoreApplication::translate("QWebPage", "This is a searchable index. Enter search keywords: ", "text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'");
+}
+
+String WebPlatformStrategies::submitButtonDefaultLabel()
+{
+    return QCoreApplication::translate("QWebPage", "Submit", "default label for Submit buttons in forms on web pages");
+}
+
+String WebPlatformStrategies::fileButtonChooseFileLabel()
+{
+    return QCoreApplication::translate("QWebPage", "Choose File", "title for file button used in HTML forms");
+}
+
+String WebPlatformStrategies::fileButtonNoFileSelectedLabel()
+{
+    return QCoreApplication::translate("QWebPage", "No file selected", "text to display in file button used in HTML forms when no file is selected");
+}
+
+String WebPlatformStrategies::contextMenuItemTagOpenLinkInNewWindow()
+{
+    return QCoreApplication::translate("QWebPage", "Open in New Window", "Open in New Window context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagDownloadLinkToDisk()
+{
+    return QCoreApplication::translate("QWebPage", "Save Link...", "Download Linked File context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCopyLinkToClipboard()
+{
+    return QCoreApplication::translate("QWebPage", "Copy Link", "Copy Link context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagOpenImageInNewWindow()
+{
+    return QCoreApplication::translate("QWebPage", "Open Image", "Open Image in New Window context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagDownloadImageToDisk()
+{
+    return QCoreApplication::translate("QWebPage", "Save Image", "Download Image context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCopyImageToClipboard()
+{
+    return QCoreApplication::translate("QWebPage", "Copy Image", "Copy Link context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagOpenFrameInNewWindow()
+{
+    return QCoreApplication::translate("QWebPage", "Open Frame", "Open Frame in New Window context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCopy()
+{
+    return QCoreApplication::translate("QWebPage", "Copy", "Copy context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagGoBack()
+{
+    return QCoreApplication::translate("QWebPage", "Go Back", "Back context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagGoForward()
+{
+    return QCoreApplication::translate("QWebPage", "Go Forward", "Forward context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagStop()
+{
+    return QCoreApplication::translate("QWebPage", "Stop", "Stop context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagReload()
+{
+    return QCoreApplication::translate("QWebPage", "Reload", "Reload context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCut()
+{
+    return QCoreApplication::translate("QWebPage", "Cut", "Cut context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagPaste()
+{
+    return QCoreApplication::translate("QWebPage", "Paste", "Paste context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagNoGuessesFound()
+{
+    return QCoreApplication::translate("QWebPage", "No Guesses Found", "No Guesses Found context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagIgnoreSpelling()
+{
+    return QCoreApplication::translate("QWebPage", "Ignore", "Ignore Spelling context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagLearnSpelling()
+{
+    return QCoreApplication::translate("QWebPage", "Add To Dictionary", "Learn Spelling context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagSearchWeb()
+{
+    return QCoreApplication::translate("QWebPage", "Search The Web", "Search The Web context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary()
+{
+    return QCoreApplication::translate("QWebPage", "Look Up In Dictionary", "Look Up in Dictionary context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagOpenLink()
+{
+    return QCoreApplication::translate("QWebPage", "Open Link", "Open Link context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagIgnoreGrammar()
+{
+    return QCoreApplication::translate("QWebPage", "Ignore", "Ignore Grammar context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagSpellingMenu()
+{
+    return QCoreApplication::translate("QWebPage", "Spelling", "Spelling and Grammar context sub-menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagShowSpellingPanel(bool show)
+{
+    return show ? QCoreApplication::translate("QWebPage", "Show Spelling and Grammar", "menu item title") :
+                  QCoreApplication::translate("QWebPage", "Hide Spelling and Grammar", "menu item title");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCheckSpelling()
+{
+    return QCoreApplication::translate("QWebPage", "Check Spelling", "Check spelling context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCheckSpellingWhileTyping()
+{
+    return QCoreApplication::translate("QWebPage", "Check Spelling While Typing", "Check spelling while typing context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagCheckGrammarWithSpelling()
+{
+    return QCoreApplication::translate("QWebPage", "Check Grammar With Spelling", "Check grammar with spelling context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagFontMenu()
+{
+    return QCoreApplication::translate("QWebPage", "Fonts", "Font context sub-menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagBold()
+{
+    return QCoreApplication::translate("QWebPage", "Bold", "Bold context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagItalic()
+{
+    return QCoreApplication::translate("QWebPage", "Italic", "Italic context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagUnderline()
+{
+    return QCoreApplication::translate("QWebPage", "Underline", "Underline context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagOutline()
+{
+    return QCoreApplication::translate("QWebPage", "Outline", "Outline context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagWritingDirectionMenu()
+{
+    return QCoreApplication::translate("QWebPage", "Direction", "Writing direction context sub-menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagTextDirectionMenu()
+{
+    return QCoreApplication::translate("QWebPage", "Text Direction", "Text direction context sub-menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagDefaultDirection()
+{
+    return QCoreApplication::translate("QWebPage", "Default", "Default writing direction context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagLeftToRight()
+{
+    return QCoreApplication::translate("QWebPage", "Left to Right", "Left to Right context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagRightToLeft()
+{
+    return QCoreApplication::translate("QWebPage", "Right to Left", "Right to Left context menu item");
+}
+
+String WebPlatformStrategies::contextMenuItemTagInspectElement()
+{
+    return QCoreApplication::translate("QWebPage", "Inspect", "Inspect Element context menu item");
+}
+
+String WebPlatformStrategies::searchMenuNoRecentSearchesText()
+{
+    return QCoreApplication::translate("QWebPage", "No recent searches", "Label for only item in menu that appears when clicking on the search field image, when no searches have been performed");
+}
+
+String WebPlatformStrategies::searchMenuRecentSearchesText()
+{
+    return QCoreApplication::translate("QWebPage", "Recent searches", "label for first item in the menu that appears when clicking on the search field image, used as embedded menu title");
+}
+
+String WebPlatformStrategies::searchMenuClearRecentSearchesText()
+{
+    return QCoreApplication::translate("QWebPage", "Clear recent searches", "menu item in Recent Searches menu that empties menu's contents");
+}
+
+String WebPlatformStrategies::AXWebAreaText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXLinkText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXListMarkerText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXImageMapText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXHeadingText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXDefinitionListTermText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXDefinitionListDefinitionText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXButtonActionVerb()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXRadioButtonActionVerb()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXTextFieldActionVerb()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXCheckedCheckBoxActionVerb()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXUncheckedCheckBoxActionVerb()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXMenuListActionVerb()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXMenuListPopupActionVerb()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::AXLinkActionVerb()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::missingPluginText()
+{
+    return QCoreApplication::translate("QWebPage", "Missing Plug-in", "Label text to be used when a plug-in is missing");
+}
+
+String WebPlatformStrategies::crashedPluginText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::multipleFileUploadText(unsigned)
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::unknownFileSizeText()
+{
+    return QCoreApplication::translate("QWebPage", "Unknown", "Unknown filesize FTP directory listing item");
+}
+
+String WebPlatformStrategies::imageTitle(const String& filename, const IntSize& size)
+{
+    return QCoreApplication::translate("QWebPage", "%1 (%2x%3 pixels)", "Title string for images").arg(filename).arg(size.width()).arg(size.height());
+}
+
+String WebPlatformStrategies::mediaElementLoadingStateText()
+{
+    return QCoreApplication::translate("QWebPage", "Loading...", "Media controller status message when the media is loading");
+}
+
+String WebPlatformStrategies::mediaElementLiveBroadcastStateText()
+{
+    return QCoreApplication::translate("QWebPage", "Live Broadcast", "Media controller status message when watching a live broadcast");
+}
+
+#if ENABLE(VIDEO)
+
+String WebPlatformStrategies::localizedMediaControlElementString(const String& name)
+{
+    if (name == "AudioElement")
+        return QCoreApplication::translate("QWebPage", "Audio Element", "Media controller element");
+    if (name == "VideoElement")
+        return QCoreApplication::translate("QWebPage", "Video Element", "Media controller element");
+    if (name == "MuteButton")
+        return QCoreApplication::translate("QWebPage", "Mute Button", "Media controller element");
+    if (name == "UnMuteButton")
+        return QCoreApplication::translate("QWebPage", "Unmute Button", "Media controller element");
+    if (name == "PlayButton")
+        return QCoreApplication::translate("QWebPage", "Play Button", "Media controller element");
+    if (name == "PauseButton")
+        return QCoreApplication::translate("QWebPage", "Pause Button", "Media controller element");
+    if (name == "Slider")
+        return QCoreApplication::translate("QWebPage", "Slider", "Media controller element");
+    if (name == "SliderThumb")
+        return QCoreApplication::translate("QWebPage", "Slider Thumb", "Media controller element");
+    if (name == "RewindButton")
+        return QCoreApplication::translate("QWebPage", "Rewind Button", "Media controller element");
+    if (name == "ReturnToRealtimeButton")
+        return QCoreApplication::translate("QWebPage", "Return to Real-time Button", "Media controller element");
+    if (name == "CurrentTimeDisplay")
+        return QCoreApplication::translate("QWebPage", "Elapsed Time", "Media controller element");
+    if (name == "TimeRemainingDisplay")
+        return QCoreApplication::translate("QWebPage", "Remaining Time", "Media controller element");
+    if (name == "StatusDisplay")
+        return QCoreApplication::translate("QWebPage", "Status Display", "Media controller element");
+    if (name == "FullscreenButton")
+        return QCoreApplication::translate("QWebPage", "Fullscreen Button", "Media controller element");
+    if (name == "SeekForwardButton")
+        return QCoreApplication::translate("QWebPage", "Seek Forward Button", "Media controller element");
+    if (name == "SeekBackButton")
+        return QCoreApplication::translate("QWebPage", "Seek Back Button", "Media controller element");
+
+    return String();
+}
+
+String WebPlatformStrategies::localizedMediaControlElementHelpText(const String& name)
+{
+    if (name == "AudioElement")
+        return QCoreApplication::translate("QWebPage", "Audio element playback controls and status display", "Media controller element");
+    if (name == "VideoElement")
+        return QCoreApplication::translate("QWebPage", "Video element playback controls and status display", "Media controller element");
+    if (name == "MuteButton")
+        return QCoreApplication::translate("QWebPage", "Mute audio tracks", "Media controller element");
+    if (name == "UnMuteButton")
+        return QCoreApplication::translate("QWebPage", "Unmute audio tracks", "Media controller element");
+    if (name == "PlayButton")
+        return QCoreApplication::translate("QWebPage", "Begin playback", "Media controller element");
+    if (name == "PauseButton")
+        return QCoreApplication::translate("QWebPage", "Pause playback", "Media controller element");
+    if (name == "Slider")
+        return QCoreApplication::translate("QWebPage", "Movie time scrubber", "Media controller element");
+    if (name == "SliderThumb")
+        return QCoreApplication::translate("QWebPage", "Movie time scrubber thumb", "Media controller element");
+    if (name == "RewindButton")
+        return QCoreApplication::translate("QWebPage", "Rewind movie", "Media controller element");
+    if (name == "ReturnToRealtimeButton")
+        return QCoreApplication::translate("QWebPage", "Return streaming movie to real-time", "Media controller element");
+    if (name == "CurrentTimeDisplay")
+        return QCoreApplication::translate("QWebPage", "Current movie time", "Media controller element");
+    if (name == "TimeRemainingDisplay")
+        return QCoreApplication::translate("QWebPage", "Remaining movie time", "Media controller element");
+    if (name == "StatusDisplay")
+        return QCoreApplication::translate("QWebPage", "Current movie status", "Media controller element");
+    if (name == "FullscreenButton")
+        return QCoreApplication::translate("QWebPage", "Play movie in full-screen mode", "Media controller element");
+    if (name == "SeekForwardButton")
+        return QCoreApplication::translate("QWebPage", "Seek quickly back", "Media controller element");
+    if (name == "SeekBackButton")
+        return QCoreApplication::translate("QWebPage", "Seek quickly forward", "Media controller element");
+
+    ASSERT_NOT_REACHED();
+    return String();
+}
+
+String WebPlatformStrategies::localizedMediaTimeDescription(float time)
+{
+    if (!isfinite(time))
+        return QCoreApplication::translate("QWebPage", "Indefinite time", "Media time description");
+
+    int seconds = (int)fabsf(time);
+    int days = seconds / (60 * 60 * 24);
+    int hours = seconds / (60 * 60);
+    int minutes = (seconds / 60) % 60;
+    seconds %= 60;
+
+    if (days)
+        return QCoreApplication::translate("QWebPage", "%1 days %2 hours %3 minutes %4 seconds", "Media time description").arg(days).arg(hours).arg(minutes).arg(seconds);
+
+    if (hours)
+        return QCoreApplication::translate("QWebPage", "%1 hours %2 minutes %3 seconds", "Media time description").arg(hours).arg(minutes).arg(seconds);
+
+    if (minutes)
+        return QCoreApplication::translate("QWebPage", "%1 minutes %2 seconds", "Media time description").arg(minutes).arg(seconds);
+
+    return QCoreApplication::translate("QWebPage", "%1 seconds", "Media time description").arg(seconds);
+}
+
+#else // ENABLE(VIDEO)
+// FIXME: #if ENABLE(VIDEO) should be in the base class
+
+String WebPlatformStrategies::localizedMediaControlElementString(const String& name)
+{
+    return String();
+}
+
+String WebPlatformStrategies::localizedMediaControlElementHelpText(const String& name)
+{
+    return String();
+}
+
+String WebPlatformStrategies::localizedMediaTimeDescription(float time)
+{
+    return String();
+}
+
+#endif // ENABLE(VIDEO)
+
+
+String WebPlatformStrategies::validationMessageValueMissingText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::validationMessageTypeMismatchText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::validationMessagePatternMismatchText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::validationMessageTooLongText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::validationMessageRangeUnderflowText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::validationMessageRangeOverflowText()
+{
+    notImplemented();
+    return String();
+}
+
+String WebPlatformStrategies::validationMessageStepMismatchText()
+{
+    notImplemented();
+    return String();
+}
+
+
+// VisitedLinkStrategy
+
+bool WebPlatformStrategies::isLinkVisited(Page* page, LinkHash hash)
+{
+    return page->group().isLinkVisited(hash);
+}
+
+void WebPlatformStrategies::addVisitedLink(Page* page, LinkHash hash)
+{
+    page->group().addVisitedLinkHash(hash);
+}
diff --git a/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h b/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h
new file mode 100644
index 0000000..8ea60d9
--- /dev/null
+++ b/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 INdT - Instituto Nokia de Tecnologia
+ * 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
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebPlatformStrategies_h
+#define WebPlatformStrategies_h
+
+#include <LocalizationStrategy.h>
+#include <PlatformStrategies.h>
+#include <PluginStrategy.h>
+#include <VisitedLinkStrategy.h>
+
+class QWebPage;
+
+class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PluginStrategy, private WebCore::LocalizationStrategy, private WebCore::VisitedLinkStrategy {
+public:
+    static void initialize(QWebPage* webPage);
+
+private:
+    WebPlatformStrategies(QWebPage* webPage);
+
+    // WebCore::PlatformStrategies
+    virtual WebCore::PluginStrategy* createPluginStrategy();
+    virtual WebCore::LocalizationStrategy* createLocalizationStrategy();
+    virtual WebCore::VisitedLinkStrategy* createVisitedLinkStrategy();
+
+    // WebCore::PluginStrategy
+    virtual void refreshPlugins();
+    virtual void getPluginInfo(Vector<WebCore::PluginInfo>&);
+
+    // WebCore::LocalizationStrategy
+    virtual WTF::String inputElementAltText();
+    virtual WTF::String resetButtonDefaultLabel();
+    virtual WTF::String searchableIndexIntroduction();
+    virtual WTF::String submitButtonDefaultLabel();
+    virtual WTF::String fileButtonChooseFileLabel();
+    virtual WTF::String fileButtonNoFileSelectedLabel();
+    virtual WTF::String contextMenuItemTagOpenLinkInNewWindow();
+    virtual WTF::String contextMenuItemTagDownloadLinkToDisk();
+    virtual WTF::String contextMenuItemTagCopyLinkToClipboard();
+    virtual WTF::String contextMenuItemTagOpenImageInNewWindow();
+    virtual WTF::String contextMenuItemTagDownloadImageToDisk();
+    virtual WTF::String contextMenuItemTagCopyImageToClipboard();
+    virtual WTF::String contextMenuItemTagOpenFrameInNewWindow();
+    virtual WTF::String contextMenuItemTagCopy();
+    virtual WTF::String contextMenuItemTagGoBack();
+    virtual WTF::String contextMenuItemTagGoForward();
+    virtual WTF::String contextMenuItemTagStop();
+    virtual WTF::String contextMenuItemTagReload();
+    virtual WTF::String contextMenuItemTagCut();
+    virtual WTF::String contextMenuItemTagPaste();
+    virtual WTF::String contextMenuItemTagNoGuessesFound();
+    virtual WTF::String contextMenuItemTagIgnoreSpelling();
+    virtual WTF::String contextMenuItemTagLearnSpelling();
+    virtual WTF::String contextMenuItemTagSearchWeb();
+    virtual WTF::String contextMenuItemTagLookUpInDictionary();
+    virtual WTF::String contextMenuItemTagOpenLink();
+    virtual WTF::String contextMenuItemTagIgnoreGrammar();
+    virtual WTF::String contextMenuItemTagSpellingMenu();
+    virtual WTF::String contextMenuItemTagShowSpellingPanel(bool show);
+    virtual WTF::String contextMenuItemTagCheckSpelling();
+    virtual WTF::String contextMenuItemTagCheckSpellingWhileTyping();
+    virtual WTF::String contextMenuItemTagCheckGrammarWithSpelling();
+    virtual WTF::String contextMenuItemTagFontMenu();
+    virtual WTF::String contextMenuItemTagBold();
+    virtual WTF::String contextMenuItemTagItalic();
+    virtual WTF::String contextMenuItemTagUnderline();
+    virtual WTF::String contextMenuItemTagOutline();
+    virtual WTF::String contextMenuItemTagWritingDirectionMenu();
+    virtual WTF::String contextMenuItemTagTextDirectionMenu();
+    virtual WTF::String contextMenuItemTagDefaultDirection();
+    virtual WTF::String contextMenuItemTagLeftToRight();
+    virtual WTF::String contextMenuItemTagRightToLeft();
+    virtual WTF::String contextMenuItemTagInspectElement();
+    virtual WTF::String searchMenuNoRecentSearchesText();
+    virtual WTF::String searchMenuRecentSearchesText();
+    virtual WTF::String searchMenuClearRecentSearchesText();
+    virtual WTF::String AXWebAreaText();
+    virtual WTF::String AXLinkText();
+    virtual WTF::String AXListMarkerText();
+    virtual WTF::String AXImageMapText();
+    virtual WTF::String AXHeadingText();
+    virtual WTF::String AXDefinitionListTermText();
+    virtual WTF::String AXDefinitionListDefinitionText();
+    virtual WTF::String AXButtonActionVerb();
+    virtual WTF::String AXRadioButtonActionVerb();
+    virtual WTF::String AXTextFieldActionVerb();
+    virtual WTF::String AXCheckedCheckBoxActionVerb();
+    virtual WTF::String AXUncheckedCheckBoxActionVerb();
+    virtual WTF::String AXMenuListActionVerb();
+    virtual WTF::String AXMenuListPopupActionVerb();
+    virtual WTF::String AXLinkActionVerb();
+    virtual WTF::String missingPluginText();
+    virtual WTF::String crashedPluginText();
+    virtual WTF::String multipleFileUploadText(unsigned numberOfFiles);
+    virtual WTF::String unknownFileSizeText();
+    virtual WTF::String imageTitle(const WTF::String& filename, const WebCore::IntSize&);
+    virtual WTF::String mediaElementLoadingStateText();
+    virtual WTF::String mediaElementLiveBroadcastStateText();
+    virtual WTF::String localizedMediaControlElementString(const WTF::String&);
+    virtual WTF::String localizedMediaControlElementHelpText(const WTF::String&);
+    virtual WTF::String localizedMediaTimeDescription(float);
+    virtual WTF::String validationMessageValueMissingText();
+    virtual WTF::String validationMessageTypeMismatchText();
+    virtual WTF::String validationMessagePatternMismatchText();
+    virtual WTF::String validationMessageTooLongText();
+    virtual WTF::String validationMessageRangeUnderflowText();
+    virtual WTF::String validationMessageRangeOverflowText();
+    virtual WTF::String validationMessageStepMismatchText();
+
+    // WebCore::VisitedLinkStrategy
+    virtual bool isLinkVisited(WebCore::Page*, WebCore::LinkHash);
+    virtual void addVisitedLink(WebCore::Page*, WebCore::LinkHash);
+
+    QWebPage* m_page;
+};
+
+#endif // WebPlatformStrategies_h
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 49f876f..dfa09dd 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,14 @@
+2010-09-18  Ademar de Souza Reis Jr  <ademar.reis at openbossa.org>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Enable Platform Strategies on Qt
+
+        [Qt] Turn on PLATFORM_STRATEGIES
+        https://bugs.webkit.org/show_bug.cgi?id=45831
+
+        * WebKit2.pro: Added Added WebPlatformStrategies.{cpp,h}
+
 2010-09-17  Sam Weinig  <sam at webkit.org>
 
         Reviewed by Jon Honeycutt.
diff --git a/WebKit2/WebKit2.pro b/WebKit2/WebKit2.pro
index 4688007..378eb87 100644
--- a/WebKit2/WebKit2.pro
+++ b/WebKit2/WebKit2.pro
@@ -259,6 +259,7 @@ HEADERS += \
     WebProcess/WebCoreSupport/WebInspectorClient.h \
     WebProcess/WebCoreSupport/WebPopupMenu.h \
     WebProcess/WebCoreSupport/WebSearchPopupMenu.h \
+    WebProcess/WebCoreSupport/WebPlatformStrategies.h \
     WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h \
     WebProcess/WebPage/ChunkedUpdateDrawingArea.h \
     WebProcess/WebPage/DrawingArea.h \
@@ -374,6 +375,7 @@ SOURCES += \
     WebProcess/WebCoreSupport/WebBackForwardControllerClient.cpp \
     WebProcess/WebCoreSupport/WebPopupMenu.cpp \
     WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp \
+    WebProcess/WebCoreSupport/WebPlatformStrategies.cpp \
     WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp \
     WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp \
     WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp \

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list