1/*
2 * Copyright (C) 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2010 INdT - Instituto Nokia de Tecnologia
4 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
17 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
19 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
25 * THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#ifndef WebPlatformStrategies_h
29#define WebPlatformStrategies_h
30
31#include <CookiesStrategy.h>
32#include <LocalizationStrategy.h>
33#include <PlatformStrategies.h>
34#include <PluginStrategy.h>
35#include <VisitedLinkStrategy.h>
36
37namespace WebCore {
38class Page;
39}
40
41class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore::PluginStrategy, private WebCore::LocalizationStrategy, private WebCore::VisitedLinkStrategy {
42public:
43    static void initialize();
44
45private:
46    WebPlatformStrategies();
47
48    // WebCore::PlatformStrategies
49    virtual WebCore::CookiesStrategy* createCookiesStrategy();
50    virtual WebCore::PluginStrategy* createPluginStrategy();
51    virtual WebCore::LocalizationStrategy* createLocalizationStrategy();
52    virtual WebCore::VisitedLinkStrategy* createVisitedLinkStrategy();
53
54    // WebCore::CookiesStrategy
55    virtual void notifyCookiesChanged();
56
57    // WebCore::PluginStrategy
58    virtual void refreshPlugins();
59    virtual void getPluginInfo(const WebCore::Page*, Vector<WebCore::PluginInfo>&);
60
61    // WebCore::LocalizationStrategy
62    virtual WTF::String inputElementAltText();
63    virtual WTF::String resetButtonDefaultLabel();
64    virtual WTF::String searchableIndexIntroduction();
65    virtual WTF::String submitButtonDefaultLabel();
66    virtual WTF::String fileButtonChooseFileLabel();
67    virtual WTF::String fileButtonNoFileSelectedLabel();
68    virtual WTF::String defaultDetailsSummaryText();
69    virtual WTF::String contextMenuItemTagOpenLinkInNewWindow();
70    virtual WTF::String contextMenuItemTagDownloadLinkToDisk();
71    virtual WTF::String contextMenuItemTagCopyLinkToClipboard();
72    virtual WTF::String contextMenuItemTagOpenImageInNewWindow();
73    virtual WTF::String contextMenuItemTagDownloadImageToDisk();
74    virtual WTF::String contextMenuItemTagCopyImageToClipboard();
75    virtual WTF::String contextMenuItemTagCopyImageUrlToClipboard();
76    virtual WTF::String contextMenuItemTagOpenFrameInNewWindow();
77    virtual WTF::String contextMenuItemTagCopy();
78    virtual WTF::String contextMenuItemTagGoBack();
79    virtual WTF::String contextMenuItemTagGoForward();
80    virtual WTF::String contextMenuItemTagStop();
81    virtual WTF::String contextMenuItemTagReload();
82    virtual WTF::String contextMenuItemTagCut();
83    virtual WTF::String contextMenuItemTagPaste();
84    virtual WTF::String contextMenuItemTagSelectAll();
85    virtual WTF::String contextMenuItemTagNoGuessesFound();
86    virtual WTF::String contextMenuItemTagIgnoreSpelling();
87    virtual WTF::String contextMenuItemTagLearnSpelling();
88    virtual WTF::String contextMenuItemTagSearchWeb();
89    virtual WTF::String contextMenuItemTagLookUpInDictionary(const String&);
90    virtual WTF::String contextMenuItemTagOpenLink();
91    virtual WTF::String contextMenuItemTagIgnoreGrammar();
92    virtual WTF::String contextMenuItemTagSpellingMenu();
93    virtual WTF::String contextMenuItemTagShowSpellingPanel(bool show);
94    virtual WTF::String contextMenuItemTagCheckSpelling();
95    virtual WTF::String contextMenuItemTagCheckSpellingWhileTyping();
96    virtual WTF::String contextMenuItemTagCheckGrammarWithSpelling();
97    virtual WTF::String contextMenuItemTagFontMenu();
98    virtual WTF::String contextMenuItemTagBold();
99    virtual WTF::String contextMenuItemTagItalic();
100    virtual WTF::String contextMenuItemTagUnderline();
101    virtual WTF::String contextMenuItemTagOutline();
102    virtual WTF::String contextMenuItemTagWritingDirectionMenu();
103    virtual WTF::String contextMenuItemTagTextDirectionMenu();
104    virtual WTF::String contextMenuItemTagDefaultDirection();
105    virtual WTF::String contextMenuItemTagLeftToRight();
106    virtual WTF::String contextMenuItemTagRightToLeft();
107    virtual WTF::String contextMenuItemTagInspectElement();
108    virtual WTF::String contextMenuItemTagOpenVideoInNewWindow();
109    virtual WTF::String contextMenuItemTagOpenAudioInNewWindow();
110    virtual WTF::String contextMenuItemTagCopyVideoLinkToClipboard();
111    virtual WTF::String contextMenuItemTagCopyAudioLinkToClipboard();
112    virtual WTF::String contextMenuItemTagToggleMediaControls();
113    virtual WTF::String contextMenuItemTagToggleMediaLoop();
114    virtual WTF::String contextMenuItemTagEnterVideoFullscreen();
115    virtual WTF::String contextMenuItemTagMediaPlay();
116    virtual WTF::String contextMenuItemTagMediaPause();
117    virtual WTF::String contextMenuItemTagMediaMute();
118    virtual WTF::String searchMenuNoRecentSearchesText();
119    virtual WTF::String searchMenuRecentSearchesText();
120    virtual WTF::String searchMenuClearRecentSearchesText();
121    virtual WTF::String AXWebAreaText();
122    virtual WTF::String AXLinkText();
123    virtual WTF::String AXListMarkerText();
124    virtual WTF::String AXImageMapText();
125    virtual WTF::String AXHeadingText();
126    virtual WTF::String AXDefinitionListTermText();
127    virtual WTF::String AXDefinitionListDefinitionText();
128    virtual WTF::String AXButtonActionVerb();
129    virtual WTF::String AXRadioButtonActionVerb();
130    virtual WTF::String AXTextFieldActionVerb();
131    virtual WTF::String AXCheckedCheckBoxActionVerb();
132    virtual WTF::String AXUncheckedCheckBoxActionVerb();
133    virtual WTF::String AXMenuListActionVerb();
134    virtual WTF::String AXMenuListPopupActionVerb();
135    virtual WTF::String AXLinkActionVerb();
136    virtual WTF::String missingPluginText();
137    virtual WTF::String crashedPluginText();
138    virtual WTF::String multipleFileUploadText(unsigned numberOfFiles);
139    virtual WTF::String unknownFileSizeText();
140    virtual WTF::String imageTitle(const WTF::String& filename, const WebCore::IntSize&);
141    virtual WTF::String mediaElementLoadingStateText();
142    virtual WTF::String mediaElementLiveBroadcastStateText();
143    virtual WTF::String localizedMediaControlElementString(const WTF::String&);
144    virtual WTF::String localizedMediaControlElementHelpText(const WTF::String&);
145    virtual WTF::String localizedMediaTimeDescription(float);
146    virtual WTF::String validationMessageValueMissingText();
147    virtual WTF::String validationMessageTypeMismatchText();
148    virtual WTF::String validationMessagePatternMismatchText();
149    virtual WTF::String validationMessageTooLongText();
150    virtual WTF::String validationMessageRangeUnderflowText();
151    virtual WTF::String validationMessageRangeOverflowText();
152    virtual WTF::String validationMessageStepMismatchText();
153
154    // WebCore::VisitedLinkStrategy
155    virtual bool isLinkVisited(WebCore::Page*, WebCore::LinkHash);
156    virtual void addVisitedLink(WebCore::Page*, WebCore::LinkHash);
157};
158
159#endif // WebPlatformStrategies_h
160