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