168513a70bcd92384395513322f1b801e7bf9c729Steve Block/* 268513a70bcd92384395513322f1b801e7bf9c729Steve Block * Copyright (C) 2010 Apple Inc. All rights reserved. 368513a70bcd92384395513322f1b801e7bf9c729Steve Block * Copyright (C) 2010 INdT - Instituto Nokia de Tecnologia 468513a70bcd92384395513322f1b801e7bf9c729Steve Block * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 568513a70bcd92384395513322f1b801e7bf9c729Steve Block * 668513a70bcd92384395513322f1b801e7bf9c729Steve Block * Redistribution and use in source and binary forms, with or without 768513a70bcd92384395513322f1b801e7bf9c729Steve Block * modification, are permitted provided that the following conditions 868513a70bcd92384395513322f1b801e7bf9c729Steve Block * are met: 968513a70bcd92384395513322f1b801e7bf9c729Steve Block * 1. Redistributions of source code must retain the above copyright 1068513a70bcd92384395513322f1b801e7bf9c729Steve Block * notice, this list of conditions and the following disclaimer. 1168513a70bcd92384395513322f1b801e7bf9c729Steve Block * 2. Redistributions in binary form must reproduce the above copyright 1268513a70bcd92384395513322f1b801e7bf9c729Steve Block * notice, this list of conditions and the following disclaimer in the 1368513a70bcd92384395513322f1b801e7bf9c729Steve Block * documentation and/or other materials provided with the distribution. 1468513a70bcd92384395513322f1b801e7bf9c729Steve Block * 1568513a70bcd92384395513322f1b801e7bf9c729Steve Block * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 1668513a70bcd92384395513322f1b801e7bf9c729Steve Block * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 1768513a70bcd92384395513322f1b801e7bf9c729Steve Block * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1868513a70bcd92384395513322f1b801e7bf9c729Steve Block * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 1968513a70bcd92384395513322f1b801e7bf9c729Steve Block * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2068513a70bcd92384395513322f1b801e7bf9c729Steve Block * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2168513a70bcd92384395513322f1b801e7bf9c729Steve Block * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2268513a70bcd92384395513322f1b801e7bf9c729Steve Block * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2368513a70bcd92384395513322f1b801e7bf9c729Steve Block * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2468513a70bcd92384395513322f1b801e7bf9c729Steve Block * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 2568513a70bcd92384395513322f1b801e7bf9c729Steve Block * THE POSSIBILITY OF SUCH DAMAGE. 2668513a70bcd92384395513322f1b801e7bf9c729Steve Block */ 2768513a70bcd92384395513322f1b801e7bf9c729Steve Block 2868513a70bcd92384395513322f1b801e7bf9c729Steve Block#ifndef WebPlatformStrategies_h 2968513a70bcd92384395513322f1b801e7bf9c729Steve Block#define WebPlatformStrategies_h 3068513a70bcd92384395513322f1b801e7bf9c729Steve Block 3181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include <CookiesStrategy.h> 3268513a70bcd92384395513322f1b801e7bf9c729Steve Block#include <LocalizationStrategy.h> 3368513a70bcd92384395513322f1b801e7bf9c729Steve Block#include <PlatformStrategies.h> 3468513a70bcd92384395513322f1b801e7bf9c729Steve Block#include <PluginStrategy.h> 3568513a70bcd92384395513322f1b801e7bf9c729Steve Block#include <VisitedLinkStrategy.h> 3668513a70bcd92384395513322f1b801e7bf9c729Steve Block 37bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsennamespace WebCore { 38bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenclass Page; 39bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen} 4068513a70bcd92384395513322f1b801e7bf9c729Steve Block 4181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochclass WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore::PluginStrategy, private WebCore::LocalizationStrategy, private WebCore::VisitedLinkStrategy { 4268513a70bcd92384395513322f1b801e7bf9c729Steve Blockpublic: 43bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen static void initialize(); 4468513a70bcd92384395513322f1b801e7bf9c729Steve Block 4568513a70bcd92384395513322f1b801e7bf9c729Steve Blockprivate: 46bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen WebPlatformStrategies(); 4768513a70bcd92384395513322f1b801e7bf9c729Steve Block 4868513a70bcd92384395513322f1b801e7bf9c729Steve Block // WebCore::PlatformStrategies 4981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual WebCore::CookiesStrategy* createCookiesStrategy(); 5068513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WebCore::PluginStrategy* createPluginStrategy(); 5168513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WebCore::LocalizationStrategy* createLocalizationStrategy(); 5268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WebCore::VisitedLinkStrategy* createVisitedLinkStrategy(); 5381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 5481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // WebCore::CookiesStrategy 5581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual void notifyCookiesChanged(); 5668513a70bcd92384395513322f1b801e7bf9c729Steve Block 5768513a70bcd92384395513322f1b801e7bf9c729Steve Block // WebCore::PluginStrategy 5868513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual void refreshPlugins(); 59bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void getPluginInfo(const WebCore::Page*, Vector<WebCore::PluginInfo>&); 6068513a70bcd92384395513322f1b801e7bf9c729Steve Block 6168513a70bcd92384395513322f1b801e7bf9c729Steve Block // WebCore::LocalizationStrategy 6268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String inputElementAltText(); 6368513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String resetButtonDefaultLabel(); 6468513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String searchableIndexIntroduction(); 6568513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String submitButtonDefaultLabel(); 6668513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String fileButtonChooseFileLabel(); 6768513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String fileButtonNoFileSelectedLabel(); 6881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual WTF::String defaultDetailsSummaryText(); 6968513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagOpenLinkInNewWindow(); 7068513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagDownloadLinkToDisk(); 7168513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagCopyLinkToClipboard(); 7268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagOpenImageInNewWindow(); 7368513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagDownloadImageToDisk(); 7468513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagCopyImageToClipboard(); 752fc2651226baac27029e38c9d6ef883fa32084dbSteve Block virtual WTF::String contextMenuItemTagCopyImageUrlToClipboard(); 7668513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagOpenFrameInNewWindow(); 7768513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagCopy(); 7868513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagGoBack(); 7968513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagGoForward(); 8068513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagStop(); 8168513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagReload(); 8268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagCut(); 8368513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagPaste(); 84cad810f21b803229eb11403f9209855525a25d57Steve Block virtual WTF::String contextMenuItemTagSelectAll(); 8568513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagNoGuessesFound(); 8668513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagIgnoreSpelling(); 8768513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagLearnSpelling(); 8868513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagSearchWeb(); 892bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual WTF::String contextMenuItemTagLookUpInDictionary(const String&); 9068513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagOpenLink(); 9168513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagIgnoreGrammar(); 9268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagSpellingMenu(); 9368513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagShowSpellingPanel(bool show); 9468513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagCheckSpelling(); 9568513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagCheckSpellingWhileTyping(); 9668513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagCheckGrammarWithSpelling(); 9768513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagFontMenu(); 9868513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagBold(); 9968513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagItalic(); 10068513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagUnderline(); 10168513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagOutline(); 10268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagWritingDirectionMenu(); 10368513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagTextDirectionMenu(); 10468513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagDefaultDirection(); 10568513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagLeftToRight(); 10668513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagRightToLeft(); 10768513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String contextMenuItemTagInspectElement(); 108bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WTF::String contextMenuItemTagOpenVideoInNewWindow(); 109bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WTF::String contextMenuItemTagOpenAudioInNewWindow(); 110bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WTF::String contextMenuItemTagCopyVideoLinkToClipboard(); 111bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WTF::String contextMenuItemTagCopyAudioLinkToClipboard(); 112bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WTF::String contextMenuItemTagToggleMediaControls(); 113bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WTF::String contextMenuItemTagToggleMediaLoop(); 114bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WTF::String contextMenuItemTagEnterVideoFullscreen(); 115bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WTF::String contextMenuItemTagMediaPlay(); 116bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WTF::String contextMenuItemTagMediaPause(); 117bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual WTF::String contextMenuItemTagMediaMute(); 11868513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String searchMenuNoRecentSearchesText(); 11968513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String searchMenuRecentSearchesText(); 12068513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String searchMenuClearRecentSearchesText(); 12168513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXWebAreaText(); 12268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXLinkText(); 12368513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXListMarkerText(); 12468513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXImageMapText(); 12568513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXHeadingText(); 12668513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXDefinitionListTermText(); 12768513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXDefinitionListDefinitionText(); 12868513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXButtonActionVerb(); 12968513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXRadioButtonActionVerb(); 13068513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXTextFieldActionVerb(); 13168513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXCheckedCheckBoxActionVerb(); 13268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXUncheckedCheckBoxActionVerb(); 13368513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXMenuListActionVerb(); 13468513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXMenuListPopupActionVerb(); 13568513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String AXLinkActionVerb(); 13668513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String missingPluginText(); 13768513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String crashedPluginText(); 13868513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String multipleFileUploadText(unsigned numberOfFiles); 13968513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String unknownFileSizeText(); 14068513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String imageTitle(const WTF::String& filename, const WebCore::IntSize&); 14168513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String mediaElementLoadingStateText(); 14268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String mediaElementLiveBroadcastStateText(); 14368513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String localizedMediaControlElementString(const WTF::String&); 14468513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String localizedMediaControlElementHelpText(const WTF::String&); 14568513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String localizedMediaTimeDescription(float); 14668513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String validationMessageValueMissingText(); 14768513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String validationMessageTypeMismatchText(); 14868513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String validationMessagePatternMismatchText(); 14968513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String validationMessageTooLongText(); 15068513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String validationMessageRangeUnderflowText(); 15168513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String validationMessageRangeOverflowText(); 15268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual WTF::String validationMessageStepMismatchText(); 15368513a70bcd92384395513322f1b801e7bf9c729Steve Block 15468513a70bcd92384395513322f1b801e7bf9c729Steve Block // WebCore::VisitedLinkStrategy 15568513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual bool isLinkVisited(WebCore::Page*, WebCore::LinkHash); 15668513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual void addVisitedLink(WebCore::Page*, WebCore::LinkHash); 15768513a70bcd92384395513322f1b801e7bf9c729Steve Block}; 15868513a70bcd92384395513322f1b801e7bf9c729Steve Block 15968513a70bcd92384395513322f1b801e7bf9c729Steve Block#endif // WebPlatformStrategies_h 160