diff options
Diffstat (limited to 'WebKit/mac')
-rw-r--r-- | WebKit/mac/ChangeLog | 73 | ||||
-rw-r--r-- | WebKit/mac/Configurations/FeatureDefines.xcconfig | 3 | ||||
-rw-r--r-- | WebKit/mac/Configurations/Version.xcconfig | 2 | ||||
-rw-r--r-- | WebKit/mac/WebCoreSupport/WebContextMenuClient.mm | 75 | ||||
-rw-r--r-- | WebKit/mac/WebCoreSupport/WebEditorClient.mm | 6 | ||||
-rw-r--r-- | WebKit/mac/WebCoreSupport/WebGeolocationControllerClient.h | 1 | ||||
-rw-r--r-- | WebKit/mac/WebCoreSupport/WebPlatformStrategies.h | 108 | ||||
-rw-r--r-- | WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm | 689 | ||||
-rw-r--r-- | WebKit/mac/WebCoreSupport/WebViewFactory.mm | 673 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebView.mm | 18 |
10 files changed, 928 insertions, 720 deletions
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog index 95c460b..013780d 100644 --- a/WebKit/mac/ChangeLog +++ b/WebKit/mac/ChangeLog @@ -1,3 +1,76 @@ +2010-07-26 Steve Block <steveblock@google.com> + + Reviewed by Jeremy Orlow. + + Page clients should be passed to Page constructor via structure of pointers + https://bugs.webkit.org/show_bug.cgi?id=42834 + + * WebView/WebView.mm: + (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]): + +2010-07-27 Kinuko Yasuda <kinuko@chromium.org> + + Reviewed by Ojan Vafai. + + Add FILE_SYSTEM build flag for FileSystem API + https://bugs.webkit.org/show_bug.cgi?id=42915 + + * Configurations/FeatureDefines.xcconfig: + +2010-07-27 Steve Block <steveblock@google.com> + + Reviewed by Jeremy Orlow. + + Client-based Geolocation does not pass enableHighAccuracy option to controller and client + https://bugs.webkit.org/show_bug.cgi?id=40374 + + Stub out setEnableHighAccuracy method for the Mac port. + + * WebCoreSupport/WebGeolocationControllerClient.h: + (WebGeolocationControllerClient::setEnableHighAccuracy): + +2010-07-22 Sam Weinig <sam@webkit.org> + + Reviewed by Maciej Stachowiak. + + Fix for <rdar://problem/8222626> + Send textDidChangeInTextField delegate callback only in response to typing or other forms of user text input. + + The function name no longer perfectly matches the behavior, but I didn't want to break any existing clients. Maybe we + should migrate to a new function name eventually + + * WebCoreSupport/WebEditorClient.mm: + (WebEditorClient::textDidChangeInTextField): + +2010-07-22 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Patch for https://bugs.webkit.org/show_bug.cgi?id=42836 + Add localized strings stubs for WebKit2. + + - Convert WebKit (mac) to use a LocalizationStrategy rather than the WebCoreViewFactory + for localized strings. + + Gets us below 200 tests failing in WebKitTestRunner. + + * WebCoreSupport/WebContextMenuClient.mm: + (fixMenusReceivedFromOldClients): Use LocalizedStrings rather than the factory. + * WebCoreSupport/WebPlatformStrategies.h: + * WebCoreSupport/WebPlatformStrategies.mm: + * WebCoreSupport/WebViewFactory.mm: + +2010-07-21 Brady Eidson <beidson@apple.com> + + Reviewed by Geoffrey Garen. + + Break out "scheme registration" functionality from SecurityOrigin to a SchemeRegistry + https://bugs.webkit.org/show_bug.cgi?id=42783 + + * WebView/WebView.mm: + (+[WebView _registerURLSchemeAsSecure:]): + (+[WebView registerURLSchemeAsLocal:]): + 2010-07-21 Simon Fraser <simon.fraser@apple.com> Reviewed by Anders Carlsson. diff --git a/WebKit/mac/Configurations/FeatureDefines.xcconfig b/WebKit/mac/Configurations/FeatureDefines.xcconfig index 4b363aa..8e33a91 100644 --- a/WebKit/mac/Configurations/FeatureDefines.xcconfig +++ b/WebKit/mac/Configurations/FeatureDefines.xcconfig @@ -55,6 +55,7 @@ ENABLE_EVENTSOURCE = ENABLE_EVENTSOURCE; ENABLE_FILTERS = ENABLE_FILTERS; ENABLE_FILE_READER = ENABLE_FILE_READER; ENABLE_FILE_WRITER = ; +ENABLE_FILE_SYSTEM = ; ENABLE_GEOLOCATION = ENABLE_GEOLOCATION; ENABLE_ICONDATABASE = ENABLE_ICONDATABASE; ENABLE_IMAGE_RESIZER = ; @@ -85,4 +86,4 @@ ENABLE_XHTMLMP = ; ENABLE_XPATH = ENABLE_XPATH; ENABLE_XSLT = ENABLE_XSLT; -FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT); +FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_FILE_SYSTEM) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT); diff --git a/WebKit/mac/Configurations/Version.xcconfig b/WebKit/mac/Configurations/Version.xcconfig index 2749545..c1b6b32 100644 --- a/WebKit/mac/Configurations/Version.xcconfig +++ b/WebKit/mac/Configurations/Version.xcconfig @@ -22,7 +22,7 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. MAJOR_VERSION = 534; -MINOR_VERSION = 3; +MINOR_VERSION = 4; TINY_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION); diff --git a/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm b/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm index e4e069a..f3a85f0 100644 --- a/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm +++ b/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm @@ -43,6 +43,7 @@ #import "WebViewInternal.h" #import <WebCore/ContextMenu.h> #import <WebCore/KURL.h> +#import <WebCore/LocalizedStrings.h> #import <WebCore/RuntimeApplicationChecks.h> #import <WebKit/DOMPrivate.h> @@ -168,77 +169,77 @@ static void fixMenusReceivedFromOldClients(NSMutableArray *newMenuItems, NSMutab if (tag == WebMenuItemTagOther) { // Restore the specific tag for items on which we temporarily set WebMenuItemTagOther to match old behavior. NSString *title = [item title]; - if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagOpenLink]]) + if ([title isEqualToString:contextMenuItemTagOpenLink()]) modernTag = WebMenuItemTagOpenLink; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagIgnoreGrammar]]) + else if ([title isEqualToString:contextMenuItemTagIgnoreGrammar()]) modernTag = WebMenuItemTagIgnoreGrammar; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagSpellingMenu]]) + else if ([title isEqualToString:contextMenuItemTagSpellingMenu()]) modernTag = WebMenuItemTagSpellingMenu; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagShowSpellingPanel:true]] - || [title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagShowSpellingPanel:false]]) + else if ([title isEqualToString:contextMenuItemTagShowSpellingPanel(true)] + || [title isEqualToString:contextMenuItemTagShowSpellingPanel(false)]) modernTag = WebMenuItemTagShowSpellingPanel; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagCheckSpelling]]) + else if ([title isEqualToString:contextMenuItemTagCheckSpelling()]) modernTag = WebMenuItemTagCheckSpelling; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagCheckSpellingWhileTyping]]) + else if ([title isEqualToString:contextMenuItemTagCheckSpellingWhileTyping()]) modernTag = WebMenuItemTagCheckSpellingWhileTyping; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagCheckGrammarWithSpelling]]) + else if ([title isEqualToString:contextMenuItemTagCheckGrammarWithSpelling()]) modernTag = WebMenuItemTagCheckGrammarWithSpelling; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagFontMenu]]) + else if ([title isEqualToString:contextMenuItemTagFontMenu()]) modernTag = WebMenuItemTagFontMenu; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagShowFonts]]) + else if ([title isEqualToString:contextMenuItemTagShowFonts()]) modernTag = WebMenuItemTagShowFonts; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagBold]]) + else if ([title isEqualToString:contextMenuItemTagBold()]) modernTag = WebMenuItemTagBold; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagItalic]]) + else if ([title isEqualToString:contextMenuItemTagItalic()]) modernTag = WebMenuItemTagItalic; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagUnderline]]) + else if ([title isEqualToString:contextMenuItemTagUnderline()]) modernTag = WebMenuItemTagUnderline; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagOutline]]) + else if ([title isEqualToString:contextMenuItemTagOutline()]) modernTag = WebMenuItemTagOutline; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagStyles]]) + else if ([title isEqualToString:contextMenuItemTagStyles()]) modernTag = WebMenuItemTagStyles; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagShowColors]]) + else if ([title isEqualToString:contextMenuItemTagShowColors()]) modernTag = WebMenuItemTagShowColors; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagSpeechMenu]]) + else if ([title isEqualToString:contextMenuItemTagSpeechMenu()]) modernTag = WebMenuItemTagSpeechMenu; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagStartSpeaking]]) + else if ([title isEqualToString:contextMenuItemTagStartSpeaking()]) modernTag = WebMenuItemTagStartSpeaking; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagStopSpeaking]]) + else if ([title isEqualToString:contextMenuItemTagStopSpeaking()]) modernTag = WebMenuItemTagStopSpeaking; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagWritingDirectionMenu]]) + else if ([title isEqualToString:contextMenuItemTagWritingDirectionMenu()]) modernTag = WebMenuItemTagWritingDirectionMenu; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagDefaultDirection]]) + else if ([title isEqualToString:contextMenuItemTagDefaultDirection()]) modernTag = WebMenuItemTagDefaultDirection; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagLeftToRight]]) + else if ([title isEqualToString:contextMenuItemTagLeftToRight()]) modernTag = WebMenuItemTagLeftToRight; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagRightToLeft]]) + else if ([title isEqualToString:contextMenuItemTagRightToLeft()]) modernTag = WebMenuItemTagRightToLeft; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagInspectElement]]) + else if ([title isEqualToString:contextMenuItemTagInspectElement()]) modernTag = WebMenuItemTagInspectElement; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagCorrectSpellingAutomatically]]) + else if ([title isEqualToString:contextMenuItemTagCorrectSpellingAutomatically()]) modernTag = WebMenuItemTagCorrectSpellingAutomatically; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagSubstitutionsMenu]]) + else if ([title isEqualToString:contextMenuItemTagSubstitutionsMenu()]) modernTag = WebMenuItemTagSubstitutionsMenu; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagShowSubstitutions:true]] - || [title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagShowSubstitutions:false]]) + else if ([title isEqualToString:contextMenuItemTagShowSubstitutions(true)] + || [title isEqualToString:contextMenuItemTagShowSubstitutions(false)]) modernTag = WebMenuItemTagShowSubstitutions; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagSmartCopyPaste]]) + else if ([title isEqualToString:contextMenuItemTagSmartCopyPaste()]) modernTag = WebMenuItemTagSmartCopyPaste; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagSmartQuotes]]) + else if ([title isEqualToString:contextMenuItemTagSmartQuotes()]) modernTag = WebMenuItemTagSmartQuotes; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagSmartDashes]]) + else if ([title isEqualToString:contextMenuItemTagSmartDashes()]) modernTag = WebMenuItemTagSmartDashes; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagSmartLinks]]) + else if ([title isEqualToString:contextMenuItemTagSmartLinks()]) modernTag = WebMenuItemTagSmartLinks; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagTextReplacement]]) + else if ([title isEqualToString:contextMenuItemTagTextReplacement()]) modernTag = WebMenuItemTagTextReplacement; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagTransformationsMenu]]) + else if ([title isEqualToString:contextMenuItemTagTransformationsMenu()]) modernTag = WebMenuItemTagTransformationsMenu; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagMakeUpperCase]]) + else if ([title isEqualToString:contextMenuItemTagMakeUpperCase()]) modernTag = WebMenuItemTagMakeUpperCase; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagMakeLowerCase]]) + else if ([title isEqualToString:contextMenuItemTagMakeLowerCase()]) modernTag = WebMenuItemTagMakeLowerCase; - else if ([title isEqualToString:[[WebViewFactory sharedFactory] contextMenuItemTagCapitalize]]) + else if ([title isEqualToString:contextMenuItemTagCapitalize()]) modernTag = WebMenuItemTagCapitalize; else { // We don't expect WebMenuItemTagOther for any items other than the ones we explicitly handle. diff --git a/WebKit/mac/WebCoreSupport/WebEditorClient.mm b/WebKit/mac/WebCoreSupport/WebEditorClient.mm index d2f2706..2c89919 100644 --- a/WebKit/mac/WebCoreSupport/WebEditorClient.mm +++ b/WebKit/mac/WebCoreSupport/WebEditorClient.mm @@ -59,6 +59,7 @@ #import <WebCore/LegacyWebArchive.h> #import <WebCore/PlatformKeyboardEvent.h> #import <WebCore/PlatformString.h> +#import <WebCore/UserTypingGestureIndicator.h> #import <WebCore/WebCoreObjCExtras.h> #import <runtime/InitializeThreading.h> #import <wtf/PassRefPtr.h> @@ -557,12 +558,15 @@ void WebEditorClient::textFieldDidEndEditing(Element* element) FormDelegateLog(inputElement); CallFormDelegate(m_webView, @selector(textFieldDidEndEditing:inFrame:), inputElement, kit(element->document()->frame())); } - + void WebEditorClient::textDidChangeInTextField(Element* element) { if (!element->hasTagName(inputTag)) return; + if (!UserTypingGestureIndicator::processingUserTypingGesture() || UserTypingGestureIndicator::focusedElementAtGestureStart() != element) + return; + DOMHTMLInputElement* inputElement = kit(static_cast<HTMLInputElement*>(element)); FormDelegateLog(inputElement); CallFormDelegate(m_webView, @selector(textDidChangeInTextField:inFrame:), inputElement, kit(element->document()->frame())); diff --git a/WebKit/mac/WebCoreSupport/WebGeolocationControllerClient.h b/WebKit/mac/WebCoreSupport/WebGeolocationControllerClient.h index 3965210..34d6a29 100644 --- a/WebKit/mac/WebCoreSupport/WebGeolocationControllerClient.h +++ b/WebKit/mac/WebCoreSupport/WebGeolocationControllerClient.h @@ -39,6 +39,7 @@ public: void geolocationDestroyed(); void startUpdating(); void stopUpdating(); + void setEnableHighAccuracy(bool) { } WebCore::GeolocationPosition* lastPosition(); diff --git a/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h b/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h index ce8bf9d..0ac4f16 100644 --- a/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h +++ b/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h @@ -28,8 +28,9 @@ #include <WebCore/PlatformStrategies.h> #include <WebCore/PluginStrategy.h> +#include <WebCore/LocalizationStrategy.h> -class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PluginStrategy { +class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PluginStrategy, private WebCore::LocalizationStrategy { public: static void initialize(); @@ -38,10 +39,115 @@ private: // WebCore::PlatformStrategies virtual WebCore::PluginStrategy* createPluginStrategy(); + virtual WebCore::LocalizationStrategy* createLocalizationStrategy(); // WebCore::PluginStrategy virtual void refreshPlugins(); virtual void getPluginInfo(Vector<WebCore::PluginInfo>&); + + // WebCore::LocalizationStrategy + virtual WebCore::String inputElementAltText(); + virtual WebCore::String resetButtonDefaultLabel(); + virtual WebCore::String searchableIndexIntroduction(); + virtual WebCore::String submitButtonDefaultLabel(); + virtual WebCore::String fileButtonChooseFileLabel(); + virtual WebCore::String fileButtonNoFileSelectedLabel(); + virtual WebCore::String copyImageUnknownFileLabel(); +#if ENABLE(CONTEXT_MENUS) + virtual WebCore::String contextMenuItemTagOpenLinkInNewWindow(); + virtual WebCore::String contextMenuItemTagDownloadLinkToDisk(); + virtual WebCore::String contextMenuItemTagCopyLinkToClipboard(); + virtual WebCore::String contextMenuItemTagOpenImageInNewWindow(); + virtual WebCore::String contextMenuItemTagDownloadImageToDisk(); + virtual WebCore::String contextMenuItemTagCopyImageToClipboard(); + virtual WebCore::String contextMenuItemTagOpenFrameInNewWindow(); + virtual WebCore::String contextMenuItemTagCopy(); + virtual WebCore::String contextMenuItemTagGoBack(); + virtual WebCore::String contextMenuItemTagGoForward(); + virtual WebCore::String contextMenuItemTagStop(); + virtual WebCore::String contextMenuItemTagReload(); + virtual WebCore::String contextMenuItemTagCut(); + virtual WebCore::String contextMenuItemTagPaste(); + virtual WebCore::String contextMenuItemTagNoGuessesFound(); + virtual WebCore::String contextMenuItemTagIgnoreSpelling(); + virtual WebCore::String contextMenuItemTagLearnSpelling(); + virtual WebCore::String contextMenuItemTagSearchWeb(); + virtual WebCore::String contextMenuItemTagLookUpInDictionary(); + virtual WebCore::String contextMenuItemTagOpenLink(); + virtual WebCore::String contextMenuItemTagIgnoreGrammar(); + virtual WebCore::String contextMenuItemTagSpellingMenu(); + virtual WebCore::String contextMenuItemTagShowSpellingPanel(bool show); + virtual WebCore::String contextMenuItemTagCheckSpelling(); + virtual WebCore::String contextMenuItemTagCheckSpellingWhileTyping(); + virtual WebCore::String contextMenuItemTagCheckGrammarWithSpelling(); + virtual WebCore::String contextMenuItemTagFontMenu(); + virtual WebCore::String contextMenuItemTagBold(); + virtual WebCore::String contextMenuItemTagItalic(); + virtual WebCore::String contextMenuItemTagUnderline(); + virtual WebCore::String contextMenuItemTagOutline(); + virtual WebCore::String contextMenuItemTagWritingDirectionMenu(); + virtual WebCore::String contextMenuItemTagTextDirectionMenu(); + virtual WebCore::String contextMenuItemTagDefaultDirection(); + virtual WebCore::String contextMenuItemTagLeftToRight(); + virtual WebCore::String contextMenuItemTagRightToLeft(); + virtual WebCore::String contextMenuItemTagSearchInSpotlight(); + virtual WebCore::String contextMenuItemTagShowFonts(); + virtual WebCore::String contextMenuItemTagStyles(); + virtual WebCore::String contextMenuItemTagShowColors(); + virtual WebCore::String contextMenuItemTagSpeechMenu(); + virtual WebCore::String contextMenuItemTagStartSpeaking(); + virtual WebCore::String contextMenuItemTagStopSpeaking(); + virtual WebCore::String contextMenuItemTagCorrectSpellingAutomatically(); + virtual WebCore::String contextMenuItemTagSubstitutionsMenu(); + virtual WebCore::String contextMenuItemTagShowSubstitutions(bool show); + virtual WebCore::String contextMenuItemTagSmartCopyPaste(); + virtual WebCore::String contextMenuItemTagSmartQuotes(); + virtual WebCore::String contextMenuItemTagSmartDashes(); + virtual WebCore::String contextMenuItemTagSmartLinks(); + virtual WebCore::String contextMenuItemTagTextReplacement(); + virtual WebCore::String contextMenuItemTagTransformationsMenu(); + virtual WebCore::String contextMenuItemTagMakeUpperCase(); + virtual WebCore::String contextMenuItemTagMakeLowerCase(); + virtual WebCore::String contextMenuItemTagCapitalize(); + virtual WebCore::String contextMenuItemTagChangeBack(const WebCore::String& replacedString); + virtual WebCore::String contextMenuItemTagInspectElement(); +#endif // ENABLE(CONTEXT_MENUS) + virtual WebCore::String searchMenuNoRecentSearchesText(); + virtual WebCore::String searchMenuRecentSearchesText(); + virtual WebCore::String searchMenuClearRecentSearchesText(); + virtual WebCore::String AXWebAreaText(); + virtual WebCore::String AXLinkText(); + virtual WebCore::String AXListMarkerText(); + virtual WebCore::String AXImageMapText(); + virtual WebCore::String AXHeadingText(); + virtual WebCore::String AXDefinitionListTermText(); + virtual WebCore::String AXDefinitionListDefinitionText(); + virtual WebCore::String AXARIAContentGroupText(const WebCore::String& ariaType); + virtual WebCore::String AXButtonActionVerb(); + virtual WebCore::String AXRadioButtonActionVerb(); + virtual WebCore::String AXTextFieldActionVerb(); + virtual WebCore::String AXCheckedCheckBoxActionVerb(); + virtual WebCore::String AXUncheckedCheckBoxActionVerb(); + virtual WebCore::String AXMenuListActionVerb(); + virtual WebCore::String AXMenuListPopupActionVerb(); + virtual WebCore::String AXLinkActionVerb(); + virtual WebCore::String missingPluginText(); + virtual WebCore::String crashedPluginText(); + virtual WebCore::String multipleFileUploadText(unsigned numberOfFiles); + virtual WebCore::String unknownFileSizeText(); + virtual WebCore::String imageTitle(const WebCore::String& filename, const WebCore::IntSize& size); + virtual WebCore::String mediaElementLoadingStateText(); + virtual WebCore::String mediaElementLiveBroadcastStateText(); + virtual WebCore::String localizedMediaControlElementString(const WebCore::String&); + virtual WebCore::String localizedMediaControlElementHelpText(const WebCore::String&); + virtual WebCore::String localizedMediaTimeDescription(float); + virtual WebCore::String validationMessageValueMissingText(); + virtual WebCore::String validationMessageTypeMismatchText(); + virtual WebCore::String validationMessagePatternMismatchText(); + virtual WebCore::String validationMessageTooLongText(); + virtual WebCore::String validationMessageRangeUnderflowText(); + virtual WebCore::String validationMessageRangeOverflowText(); + virtual WebCore::String validationMessageStepMismatchText(); }; #endif // WebPlatformStrategies_h diff --git a/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm b/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm index d4bb684..6805f5e 100644 --- a/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm +++ b/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm @@ -25,9 +25,11 @@ #import "WebPlatformStrategies.h" +#import "WebLocalizableStrings.h" #import "WebPluginDatabase.h" #import "WebPluginPackage.h" #import <WebCore/BlockExceptions.h> +#import <WebCore/IntSize.h> #import <wtf/StdLibExtras.h> #ifdef BUILDING_ON_TIGER @@ -53,6 +55,11 @@ PluginStrategy* WebPlatformStrategies::createPluginStrategy() return this; } +LocalizationStrategy* WebPlatformStrategies::createLocalizationStrategy() +{ + return this; +} + void WebPlatformStrategies::refreshPlugins() { [[WebPluginDatabase sharedDatabase] refresh]; @@ -72,4 +79,686 @@ void WebPlatformStrategies::getPluginInfo(Vector<WebCore::PluginInfo>& plugins) END_BLOCK_OBJC_EXCEPTIONS; } +// LocalizationStrategy + +String WebPlatformStrategies::inputElementAltText() +{ + return UI_STRING_KEY("Submit", "Submit (input element)", "alt text for <input> elements with no alt, title, or value"); +} + +String WebPlatformStrategies::resetButtonDefaultLabel() +{ + return UI_STRING("Reset", "default label for Reset buttons in forms on web pages"); +} + +String WebPlatformStrategies::searchableIndexIntroduction() +{ + return UI_STRING("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 UI_STRING("Submit", "default label for Submit buttons in forms on web pages"); +} + +String WebPlatformStrategies::fileButtonChooseFileLabel() +{ + return UI_STRING("Choose File", "title for file button used in HTML forms"); +} + +String WebPlatformStrategies::fileButtonNoFileSelectedLabel() +{ + return UI_STRING("no file selected", "text to display in file button used in HTML forms when no file is selected"); +} + +String WebPlatformStrategies::copyImageUnknownFileLabel() +{ + return UI_STRING("unknown", "Unknown filename"); +} + +#if ENABLE(CONTEXT_MENUS) + +String WebPlatformStrategies::contextMenuItemTagOpenLinkInNewWindow() +{ + return UI_STRING("Open Link in New Window", "Open in New Window context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagDownloadLinkToDisk() +{ + return UI_STRING("Download Linked File", "Download Linked File context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagCopyLinkToClipboard() +{ + return UI_STRING("Copy Link", "Copy Link context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagOpenImageInNewWindow() +{ + return UI_STRING("Open Image in New Window", "Open Image in New Window context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagDownloadImageToDisk() +{ + return UI_STRING("Download Image", "Download Image context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagCopyImageToClipboard() +{ + return UI_STRING("Copy Image", "Copy Image context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagOpenFrameInNewWindow() +{ + return UI_STRING("Open Frame in New Window", "Open Frame in New Window context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagCopy() +{ + return UI_STRING("Copy", "Copy context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagGoBack() +{ + return UI_STRING("Back", "Back context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagGoForward() +{ + return UI_STRING("Forward", "Forward context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagStop() +{ + return UI_STRING("Stop", "Stop context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagReload() +{ + return UI_STRING("Reload", "Reload context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagCut() +{ + return UI_STRING("Cut", "Cut context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagPaste() +{ + return UI_STRING("Paste", "Paste context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagNoGuessesFound() +{ + return UI_STRING("No Guesses Found", "No Guesses Found context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagIgnoreSpelling() +{ + return UI_STRING("Ignore Spelling", "Ignore Spelling context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagLearnSpelling() +{ + return UI_STRING("Learn Spelling", "Learn Spelling context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagSearchWeb() +{ + return UI_STRING("Search in Google", "Search in Google context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary() +{ + return UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagOpenLink() +{ + return UI_STRING("Open Link", "Open Link context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagIgnoreGrammar() +{ + return UI_STRING("Ignore Grammar", "Ignore Grammar context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagSpellingMenu() +{ +#ifndef BUILDING_ON_TIGER + return UI_STRING("Spelling and Grammar", "Spelling and Grammar context sub-menu item"); +#else + return UI_STRING("Spelling", "Spelling context sub-menu item"); +#endif +} + +String WebPlatformStrategies::contextMenuItemTagShowSpellingPanel(bool show) +{ +#ifndef BUILDING_ON_TIGER + if (show) + return UI_STRING("Show Spelling and Grammar", "menu item title"); + return UI_STRING("Hide Spelling and Grammar", "menu item title"); +#else + return UI_STRING("Spelling...", "menu item title"); +#endif +} + +String WebPlatformStrategies::contextMenuItemTagCheckSpelling() +{ +#ifndef BUILDING_ON_TIGER + return UI_STRING("Check Document Now", "Check spelling context menu item"); +#else + return UI_STRING("Check Spelling", "Check spelling context menu item"); +#endif +} + +String WebPlatformStrategies::contextMenuItemTagCheckSpellingWhileTyping() +{ +#ifndef BUILDING_ON_TIGER + return UI_STRING("Check Spelling While Typing", "Check spelling while typing context menu item"); +#else + return UI_STRING("Check Spelling as You Type", "Check spelling while typing context menu item"); +#endif +} + +String WebPlatformStrategies::contextMenuItemTagCheckGrammarWithSpelling() +{ + return UI_STRING("Check Grammar With Spelling", "Check grammar with spelling context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagFontMenu() +{ + return UI_STRING("Font", "Font context sub-menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagBold() +{ + return UI_STRING("Bold", "Bold context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagItalic() +{ + return UI_STRING("Italic", "Italic context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagUnderline() +{ + return UI_STRING("Underline", "Underline context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagOutline() +{ + return UI_STRING("Outline", "Outline context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagWritingDirectionMenu() +{ +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) + return UI_STRING("Paragraph Direction", "Paragraph direction context sub-menu item"); +#else + return UI_STRING("Writing Direction", "Writing direction context sub-menu item"); +#endif +} + +String WebPlatformStrategies::contextMenuItemTagTextDirectionMenu() +{ + return UI_STRING("Selection Direction", "Selection direction context sub-menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagDefaultDirection() +{ + return UI_STRING("Default", "Default writing direction context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagLeftToRight() +{ + return UI_STRING("Left to Right", "Left to Right context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagRightToLeft() +{ + return UI_STRING("Right to Left", "Right to Left context menu item"); +} + +#if PLATFORM(MAC) + +String WebPlatformStrategies::contextMenuItemTagSearchInSpotlight() +{ + return UI_STRING("Search in Spotlight", "Search in Spotlight context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagShowFonts() +{ + return UI_STRING("Show Fonts", "Show fonts context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagStyles() +{ + return UI_STRING("Styles...", "Styles context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagShowColors() +{ + return UI_STRING("Show Colors", "Show colors context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagSpeechMenu() +{ + return UI_STRING("Speech", "Speech context sub-menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagStartSpeaking() +{ + return UI_STRING("Start Speaking", "Start speaking context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagStopSpeaking() +{ + return UI_STRING("Stop Speaking", "Stop speaking context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagCorrectSpellingAutomatically() +{ + return UI_STRING("Correct Spelling Automatically", "Correct Spelling Automatically context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagSubstitutionsMenu() +{ + return UI_STRING("Substitutions", "Substitutions context sub-menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagShowSubstitutions(bool show) +{ + if (show) + return UI_STRING("Show Substitutions", "menu item title"); + return UI_STRING("Hide Substitutions", "menu item title"); +} + +String WebPlatformStrategies::contextMenuItemTagSmartCopyPaste() +{ + return UI_STRING("Smart Copy/Paste", "Smart Copy/Paste context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagSmartQuotes() +{ + return UI_STRING("Smart Quotes", "Smart Quotes context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagSmartDashes() +{ + return UI_STRING("Smart Dashes", "Smart Dashes context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagSmartLinks() +{ + return UI_STRING("Smart Links", "Smart Links context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagTextReplacement() +{ + return UI_STRING("Text Replacement", "Text Replacement context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagTransformationsMenu() +{ + return UI_STRING("Transformations", "Transformations context sub-menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagMakeUpperCase() +{ + return UI_STRING("Make Upper Case", "Make Upper Case context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagMakeLowerCase() +{ + return UI_STRING("Make Lower Case", "Make Lower Case context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagCapitalize() +{ + return UI_STRING("Capitalize", "Capitalize context menu item"); +} + +String WebPlatformStrategies::contextMenuItemTagChangeBack(const String& replacedString) +{ + static NSString *formatString = nil; +#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) + static bool lookedUpString = false; + if (!lookedUpString) { + formatString = [[[NSBundle bundleForClass:[NSSpellChecker class]] localizedStringForKey:@"Change Back to \\U201C%@\\U201D" value:nil table:@"MenuCommands"] retain]; + lookedUpString = true; + } +#endif + if (!formatString) + return replacedString; + return [NSString stringWithFormat:formatString, (NSString *)replacedString]; +} + +#endif + +String WebPlatformStrategies::contextMenuItemTagInspectElement() +{ + return UI_STRING("Inspect Element", "Inspect Element context menu item"); +} + +#endif // ENABLE(CONTEXT_MENUS) + +String WebPlatformStrategies::searchMenuNoRecentSearchesText() +{ + return UI_STRING("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 UI_STRING("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 UI_STRING("Clear Recent Searches", "menu item in Recent Searches menu that empties menu's contents"); +} + +String WebPlatformStrategies::AXWebAreaText() +{ + return UI_STRING("HTML content", "accessibility role description for web area"); +} + +String WebPlatformStrategies::AXLinkText() +{ + return UI_STRING("link", "accessibility role description for link"); +} + +String WebPlatformStrategies::AXListMarkerText() +{ + return UI_STRING("list marker", "accessibility role description for list marker"); +} + +String WebPlatformStrategies::AXImageMapText() +{ + return UI_STRING("image map", "accessibility role description for image map"); +} + +String WebPlatformStrategies::AXHeadingText() +{ + return UI_STRING("heading", "accessibility role description for headings"); +} + +String WebPlatformStrategies::AXDefinitionListTermText() +{ + return UI_STRING("term", "term word of a definition"); +} + +String WebPlatformStrategies::AXDefinitionListDefinitionText() +{ + return UI_STRING("definition", "definition phrase"); +} + +String WebPlatformStrategies::AXARIAContentGroupText(const String& ariaType) +{ + if (ariaType == "ARIAApplicationAlert") + return UI_STRING("alert", "An ARIA accessibility group that acts as an alert."); + if (ariaType == "ARIAApplicationAlertDialog") + return UI_STRING("alert dialog", "An ARIA accessibility group that acts as an alert dialog."); + if (ariaType == "ARIAApplicationDialog") + return UI_STRING("dialog", "An ARIA accessibility group that acts as an dialog."); + if (ariaType == "ARIAApplicationLog") + return UI_STRING("log", "An ARIA accessibility group that acts as a console log."); + if (ariaType == "ARIAApplicationMarquee") + return UI_STRING("marquee", "An ARIA accessibility group that acts as a marquee."); + if (ariaType == "ARIAApplicationStatus") + return UI_STRING("application status", "An ARIA accessibility group that acts as a status update."); + if (ariaType == "ARIAApplicationTimer") + return UI_STRING("timer", "An ARIA accessibility group that acts as an updating timer."); + if (ariaType == "ARIADocument") + return UI_STRING("document", "An ARIA accessibility group that acts as a document."); + if (ariaType == "ARIADocumentArticle") + return UI_STRING("article", "An ARIA accessibility group that acts as an article."); + if (ariaType == "ARIADocumentNote") + return UI_STRING("note", "An ARIA accessibility group that acts as a note in a document."); + if (ariaType == "ARIADocumentRegion") + return UI_STRING("region", "An ARIA accessibility group that acts as a distinct region in a document."); + if (ariaType == "ARIALandmarkApplication") + return UI_STRING("application", "An ARIA accessibility group that acts as an application."); + if (ariaType == "ARIALandmarkBanner") + return UI_STRING("banner", "An ARIA accessibility group that acts as a banner."); + if (ariaType == "ARIALandmarkComplementary") + return UI_STRING("complementary", "An ARIA accessibility group that acts as a region of complementary information."); + if (ariaType == "ARIALandmarkContentInfo") + return UI_STRING("content", "An ARIA accessibility group that contains content."); + if (ariaType == "ARIALandmarkMain") + return UI_STRING("main", "An ARIA accessibility group that is the main portion of the website."); + if (ariaType == "ARIALandmarkNavigation") + return UI_STRING("navigation", "An ARIA accessibility group that contains the main navigation elements of a website."); + if (ariaType == "ARIALandmarkSearch") + return UI_STRING("search", "An ARIA accessibility group that contains a search feature of a website."); + if (ariaType == "ARIAUserInterfaceTooltip") + return UI_STRING("tooltip", "An ARIA accessibility group that acts as a tooltip."); + if (ariaType == "ARIATabPanel") + return UI_STRING("tab panel", "An ARIA accessibility group that contains the content of a tab."); + if (ariaType == "ARIADocumentMath") + return UI_STRING("math", "An ARIA accessibility group that contains mathematical symbols."); + return String(); +} + +String WebPlatformStrategies::AXButtonActionVerb() +{ + return UI_STRING("press", "Verb stating the action that will occur when a button is pressed, as used by accessibility"); +} + +String WebPlatformStrategies::AXRadioButtonActionVerb() +{ + return UI_STRING("select", "Verb stating the action that will occur when a radio button is clicked, as used by accessibility"); +} + +String WebPlatformStrategies::AXTextFieldActionVerb() +{ + return UI_STRING("activate", "Verb stating the action that will occur when a text field is selected, as used by accessibility"); +} + +String WebPlatformStrategies::AXCheckedCheckBoxActionVerb() +{ + return UI_STRING("uncheck", "Verb stating the action that will occur when a checked checkbox is clicked, as used by accessibility"); +} + +String WebPlatformStrategies::AXUncheckedCheckBoxActionVerb() +{ + return UI_STRING("check", "Verb stating the action that will occur when an unchecked checkbox is clicked, as used by accessibility"); +} + +String WebPlatformStrategies::AXMenuListActionVerb() +{ + return String(); +} + +String WebPlatformStrategies::AXMenuListPopupActionVerb() +{ + return String(); +} + +String WebPlatformStrategies::AXLinkActionVerb() +{ + return UI_STRING("jump", "Verb stating the action that will occur when a link is clicked, as used by accessibility"); +} + +String WebPlatformStrategies::missingPluginText() +{ + return UI_STRING("Missing Plug-in", "Label text to be used when a plugin is missing"); +} + +String WebPlatformStrategies::crashedPluginText() +{ + return UI_STRING("Plug-in Failure", "Label text to be used if plugin host process has crashed"); +} + +String WebPlatformStrategies::multipleFileUploadText(unsigned numberOfFiles) +{ + return [NSString stringWithFormat:UI_STRING("%d files", "Label to describe the number of files selected in a file upload control that allows multiple files"), numberOfFiles]; +} + +String WebPlatformStrategies::unknownFileSizeText() +{ + return UI_STRING("Unknown", "Unknown filesize FTP directory listing item"); +} + +String WebPlatformStrategies::imageTitle(const String& filename, const IntSize& size) +{ + return [NSString stringWithFormat:UI_STRING("%@ %d×%d pixels", "window title for a standalone image (uses multiplication symbol, not x)"), (NSString *)filename, size.width(), size.height()]; +} + +String WebPlatformStrategies::mediaElementLoadingStateText() +{ + return UI_STRING("Loading...", "Media controller status message when the media is loading"); +} + +String WebPlatformStrategies::mediaElementLiveBroadcastStateText() +{ + return UI_STRING("Live Broadcast", "Media controller status message when watching a live broadcast"); +} + +String WebPlatformStrategies::localizedMediaControlElementString(const String& name) +{ + if (name == "AudioElement") + return UI_STRING("audio element controller", "accessibility role description for audio element controller"); + if (name == "VideoElement") + return UI_STRING("video element controller", "accessibility role description for video element controller"); + if (name == "MuteButton") + return UI_STRING("mute", "accessibility role description for mute button"); + if (name == "UnMuteButton") + return UI_STRING("unmute", "accessibility role description for turn mute off button"); + if (name == "PlayButton") + return UI_STRING("play", "accessibility role description for play button"); + if (name == "PauseButton") + return UI_STRING("pause", "accessibility role description for pause button"); + if (name == "Slider") + return UI_STRING("movie time", "accessibility role description for timeline slider"); + if (name == "SliderThumb") + return UI_STRING("timeline slider thumb", "accessibility role description for timeline thumb"); + if (name == "RewindButton") + return UI_STRING("back 30 seconds", "accessibility role description for seek back 30 seconds button"); + if (name == "ReturnToRealtimeButton") + return UI_STRING("return to realtime", "accessibility role description for return to real time button"); + if (name == "CurrentTimeDisplay") + return UI_STRING("elapsed time", "accessibility role description for elapsed time display"); + if (name == "TimeRemainingDisplay") + return UI_STRING("remaining time", "accessibility role description for time remaining display"); + if (name == "StatusDisplay") + return UI_STRING("status", "accessibility role description for movie status"); + if (name == "FullscreenButton") + return UI_STRING("fullscreen", "accessibility role description for enter fullscreen button"); + if (name == "SeekForwardButton") + return UI_STRING("fast forward", "accessibility role description for fast forward button"); + if (name == "SeekBackButton") + return UI_STRING("fast reverse", "accessibility role description for fast reverse button"); + if (name == "ShowClosedCaptionsButton") + return UI_STRING("show closed captions", "accessibility role description for show closed captions button"); + if (name == "HideClosedCaptionsButton") + return UI_STRING("hide closed captions", "accessibility role description for hide closed captions button"); + + // FIXME: the ControlsPanel container should never be visible in the accessibility hierarchy. + if (name == "ControlsPanel") + return String(); + + ASSERT_NOT_REACHED(); + return String(); +} + +String WebPlatformStrategies::localizedMediaControlElementHelpText(const String& name) +{ + if (name == "AudioElement") + return UI_STRING("audio element playback controls and status display", "accessibility role description for audio element controller"); + if (name == "VideoElement") + return UI_STRING("video element playback controls and status display", "accessibility role description for video element controller"); + if (name == "MuteButton") + return UI_STRING("mute audio tracks", "accessibility help text for mute button"); + if (name == "UnMuteButton") + return UI_STRING("unmute audio tracks", "accessibility help text for un mute button"); + if (name == "PlayButton") + return UI_STRING("begin playback", "accessibility help text for play button"); + if (name == "PauseButton") + return UI_STRING("pause playback", "accessibility help text for pause button"); + if (name == "Slider") + return UI_STRING("movie time scrubber", "accessibility help text for timeline slider"); + if (name == "SliderThumb") + return UI_STRING("movie time scrubber thumb", "accessibility help text for timeline slider thumb"); + if (name == "RewindButton") + return UI_STRING("seek movie back 30 seconds", "accessibility help text for jump back 30 seconds button"); + if (name == "ReturnToRealtimeButton") + return UI_STRING("return streaming movie to real time", "accessibility help text for return streaming movie to real time button"); + if (name == "CurrentTimeDisplay") + return UI_STRING("current movie time in seconds", "accessibility help text for elapsed time display"); + if (name == "TimeRemainingDisplay") + return UI_STRING("number of seconds of movie remaining", "accessibility help text for remaining time display"); + if (name == "StatusDisplay") + return UI_STRING("current movie status", "accessibility help text for movie status display"); + if (name == "SeekBackButton") + return UI_STRING("seek quickly back", "accessibility help text for fast rewind button"); + if (name == "SeekForwardButton") + return UI_STRING("seek quickly forward", "accessibility help text for fast forward button"); + if (name == "FullscreenButton") + return UI_STRING("Play movie in fullscreen mode", "accessibility help text for enter fullscreen button"); + if (name == "ShowClosedCaptionsButton") + return UI_STRING("start displaying closed captions", "accessibility help text for show closed captions button"); + if (name == "HideClosedCaptionsButton") + return UI_STRING("stop displaying closed captions", "accessibility help text for hide closed captions button"); + + ASSERT_NOT_REACHED(); + return String(); +} + +String WebPlatformStrategies::localizedMediaTimeDescription(float time) +{ + if (!isfinite(time)) + return UI_STRING("indefinite time", "accessibility help text for an indefinite media controller time value"); + + 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 [NSString stringWithFormat:UI_STRING("%1$d days %2$d hours %3$d minutes %4$d seconds", "accessibility help text for media controller time value >= 1 day"), days, hours, minutes, seconds]; + else if (hours) + return [NSString stringWithFormat:UI_STRING("%1$d hours %2$d minutes %3$d seconds", "accessibility help text for media controller time value >= 60 minutes"), hours, minutes, seconds]; + else if (minutes) + return [NSString stringWithFormat:UI_STRING("%1$d minutes %2$d seconds", "accessibility help text for media controller time value >= 60 seconds"), minutes, seconds]; + + return [NSString stringWithFormat:UI_STRING("%1$d seconds", "accessibility help text for media controller time value < 60 seconds"), seconds]; +} + +String WebPlatformStrategies::validationMessageValueMissingText() +{ + return UI_STRING("value missing", "Validation message for required form control elements that have no value"); +} + +String WebPlatformStrategies::validationMessageTypeMismatchText() +{ + return UI_STRING("type mismatch", "Validation message for input form controls with a value not matching type"); +} + +String WebPlatformStrategies::validationMessagePatternMismatchText() +{ + return UI_STRING("pattern mismatch", "Validation message for input form controls requiring a constrained value according to pattern"); +} + +String WebPlatformStrategies::validationMessageTooLongText() +{ + return UI_STRING("too long", "Validation message for form control elements with a value longer than maximum allowed length"); +} + +String WebPlatformStrategies::validationMessageRangeUnderflowText() +{ + return UI_STRING("range underflow", "Validation message for input form controls with value lower than allowed minimum"); +} + +String WebPlatformStrategies::validationMessageRangeOverflowText() +{ + return UI_STRING("range overflow", "Validation message for input form controls with value higher than allowed maximum"); +} + +String WebPlatformStrategies::validationMessageStepMismatchText() +{ + return UI_STRING("step mismatch", "Validation message for input form controls with value not respecting the step attribute"); +} diff --git a/WebKit/mac/WebCoreSupport/WebViewFactory.mm b/WebKit/mac/WebCoreSupport/WebViewFactory.mm index a97d5a5..6c7347f 100644 --- a/WebKit/mac/WebCoreSupport/WebViewFactory.mm +++ b/WebKit/mac/WebCoreSupport/WebViewFactory.mm @@ -31,7 +31,6 @@ #import <WebKit/WebFrameInternal.h> #import <WebKit/WebViewInternal.h> #import <WebKit/WebHTMLViewInternal.h> -#import <WebKit/WebLocalizableStrings.h> #import <WebKit/WebNSUserDefaultsExtras.h> #import <WebKit/WebNSObjectExtras.h> #import <WebKit/WebNSViewExtras.h> @@ -64,379 +63,11 @@ ASSERT([[self sharedFactory] isKindOfClass:self]); } -- (NSString *)inputElementAltText -{ - return UI_STRING_KEY("Submit", "Submit (input element)", "alt text for <input> elements with no alt, title, or value"); -} - -- (NSString *)resetButtonDefaultLabel -{ - return UI_STRING("Reset", "default label for Reset buttons in forms on web pages"); -} - -- (NSString *)searchableIndexIntroduction -{ - return UI_STRING("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'"); -} - -- (NSString *)submitButtonDefaultLabel -{ - return UI_STRING("Submit", "default label for Submit buttons in forms on web pages"); -} - -- (NSString *)fileButtonChooseFileLabel -{ - return UI_STRING("Choose File", "title for file button used in HTML forms"); -} - -- (NSString *)fileButtonNoFileSelectedLabel -{ - return UI_STRING("no file selected", "text to display in file button used in HTML forms when no file is selected"); -} - -- (NSString *)copyImageUnknownFileLabel -{ - return UI_STRING("unknown", "Unknown filename"); -} - -- (NSString *)searchMenuNoRecentSearchesText -{ - return UI_STRING("No recent searches", "Label for only item in menu that appears when clicking on the search field image, when no searches have been performed"); -} - -- (NSString *)searchMenuRecentSearchesText -{ - return UI_STRING("Recent Searches", "label for first item in the menu that appears when clicking on the search field image, used as embedded menu title"); -} - -- (NSString *)searchMenuClearRecentSearchesText -{ - return UI_STRING("Clear Recent Searches", "menu item in Recent Searches menu that empties menu's contents"); -} - - (NSString *)defaultLanguageCode { return [NSUserDefaults _webkit_preferredLanguageCode]; } -- (NSString *)contextMenuItemTagOpenLinkInNewWindow -{ - return UI_STRING("Open Link in New Window", "Open in New Window context menu item"); -} - -- (NSString *)contextMenuItemTagDownloadLinkToDisk -{ - return UI_STRING("Download Linked File", "Download Linked File context menu item"); -} - -- (NSString *)contextMenuItemTagCopyLinkToClipboard -{ - return UI_STRING("Copy Link", "Copy Link context menu item"); -} - -- (NSString *)contextMenuItemTagOpenImageInNewWindow -{ - return UI_STRING("Open Image in New Window", "Open Image in New Window context menu item"); -} - -- (NSString *)contextMenuItemTagDownloadImageToDisk -{ - return UI_STRING("Download Image", "Download Image context menu item"); -} - -- (NSString *)contextMenuItemTagCopyImageToClipboard -{ - return UI_STRING("Copy Image", "Copy Image context menu item"); -} - -- (NSString *)contextMenuItemTagOpenFrameInNewWindow -{ - return UI_STRING("Open Frame in New Window", "Open Frame in New Window context menu item"); -} - -- (NSString *)contextMenuItemTagCopy -{ - return UI_STRING("Copy", "Copy context menu item"); -} - -- (NSString *)contextMenuItemTagGoBack -{ - return UI_STRING("Back", "Back context menu item"); -} - -- (NSString *)contextMenuItemTagGoForward -{ - return UI_STRING("Forward", "Forward context menu item"); -} - -- (NSString *)contextMenuItemTagStop -{ - return UI_STRING("Stop", "Stop context menu item"); -} - -- (NSString *)contextMenuItemTagReload -{ - return UI_STRING("Reload", "Reload context menu item"); -} - -- (NSString *)contextMenuItemTagCut -{ - return UI_STRING("Cut", "Cut context menu item"); -} - -- (NSString *)contextMenuItemTagPaste -{ - return UI_STRING("Paste", "Paste context menu item"); -} - -- (NSString *)contextMenuItemTagNoGuessesFound -{ - return UI_STRING("No Guesses Found", "No Guesses Found context menu item"); -} - -- (NSString *)contextMenuItemTagIgnoreSpelling -{ - return UI_STRING("Ignore Spelling", "Ignore Spelling context menu item"); -} - -- (NSString *)contextMenuItemTagLearnSpelling -{ - return UI_STRING("Learn Spelling", "Learn Spelling context menu item"); -} - -- (NSString *)contextMenuItemTagSearchInSpotlight -{ - return UI_STRING("Search in Spotlight", "Search in Spotlight context menu item"); -} - -- (NSString *)contextMenuItemTagSearchWeb -{ - return UI_STRING("Search in Google", "Search in Google context menu item"); -} - -- (NSString *)contextMenuItemTagLookUpInDictionary -{ - return UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item"); -} - -- (NSString *)contextMenuItemTagOpenLink -{ - return UI_STRING("Open Link", "Open Link context menu item"); -} - -- (NSString *)contextMenuItemTagIgnoreGrammar -{ - return UI_STRING("Ignore Grammar", "Ignore Grammar context menu item"); -} - -- (NSString *)contextMenuItemTagSpellingMenu -{ -#ifndef BUILDING_ON_TIGER - return UI_STRING("Spelling and Grammar", "Spelling and Grammar context sub-menu item"); -#else - return UI_STRING("Spelling", "Spelling context sub-menu item"); -#endif -} - -- (NSString *)contextMenuItemTagShowSpellingPanel:(bool)show -{ -#ifndef BUILDING_ON_TIGER - if (show) - return UI_STRING("Show Spelling and Grammar", "menu item title"); - return UI_STRING("Hide Spelling and Grammar", "menu item title"); -#else - return UI_STRING("Spelling...", "menu item title"); -#endif -} - -- (NSString *)contextMenuItemTagCheckSpelling -{ -#ifndef BUILDING_ON_TIGER - return UI_STRING("Check Document Now", "Check spelling context menu item"); -#else - return UI_STRING("Check Spelling", "Check spelling context menu item"); -#endif -} - -- (NSString *)contextMenuItemTagCheckSpellingWhileTyping -{ -#ifndef BUILDING_ON_TIGER - return UI_STRING("Check Spelling While Typing", "Check spelling while typing context menu item"); -#else - return UI_STRING("Check Spelling as You Type", "Check spelling while typing context menu item"); -#endif -} - -- (NSString *)contextMenuItemTagCheckGrammarWithSpelling -{ - return UI_STRING("Check Grammar With Spelling", "Check grammar with spelling context menu item"); -} - -- (NSString *)contextMenuItemTagFontMenu -{ - return UI_STRING("Font", "Font context sub-menu item"); -} - -- (NSString *)contextMenuItemTagShowFonts -{ - return UI_STRING("Show Fonts", "Show fonts context menu item"); -} - -- (NSString *)contextMenuItemTagBold -{ - return UI_STRING("Bold", "Bold context menu item"); -} - -- (NSString *)contextMenuItemTagItalic -{ - return UI_STRING("Italic", "Italic context menu item"); -} - -- (NSString *)contextMenuItemTagUnderline -{ - return UI_STRING("Underline", "Underline context menu item"); -} - -- (NSString *)contextMenuItemTagOutline -{ - return UI_STRING("Outline", "Outline context menu item"); -} - -- (NSString *)contextMenuItemTagStyles -{ - return UI_STRING("Styles...", "Styles context menu item"); -} - -- (NSString *)contextMenuItemTagShowColors -{ - return UI_STRING("Show Colors", "Show colors context menu item"); -} - -- (NSString *)contextMenuItemTagSpeechMenu -{ - return UI_STRING("Speech", "Speech context sub-menu item"); -} - -- (NSString *)contextMenuItemTagStartSpeaking -{ - return UI_STRING("Start Speaking", "Start speaking context menu item"); -} - -- (NSString *)contextMenuItemTagStopSpeaking -{ - return UI_STRING("Stop Speaking", "Stop speaking context menu item"); -} - -- (NSString *)contextMenuItemTagWritingDirectionMenu -{ -#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) - return UI_STRING("Paragraph Direction", "Paragraph direction context sub-menu item"); -#else - return UI_STRING("Writing Direction", "Writing direction context sub-menu item"); -#endif -} - -- (NSString *)contextMenuItemTagTextDirectionMenu -{ - return UI_STRING("Selection Direction", "Selection direction context sub-menu item"); -} - -- (NSString *)contextMenuItemTagDefaultDirection -{ - return UI_STRING("Default", "Default writing direction context menu item"); -} - -- (NSString *)contextMenuItemTagLeftToRight -{ - return UI_STRING("Left to Right", "Left to Right context menu item"); -} - -- (NSString *)contextMenuItemTagRightToLeft -{ - return UI_STRING("Right to Left", "Right to Left context menu item"); -} - -- (NSString *)contextMenuItemTagCorrectSpellingAutomatically -{ - return UI_STRING("Correct Spelling Automatically", "Correct Spelling Automatically context menu item"); -} - -- (NSString *)contextMenuItemTagSubstitutionsMenu -{ - return UI_STRING("Substitutions", "Substitutions context sub-menu item"); -} - -- (NSString *)contextMenuItemTagShowSubstitutions:(bool)show -{ - if (show) - return UI_STRING("Show Substitutions", "menu item title"); - return UI_STRING("Hide Substitutions", "menu item title"); -} - -- (NSString *)contextMenuItemTagSmartCopyPaste -{ - return UI_STRING("Smart Copy/Paste", "Smart Copy/Paste context menu item"); -} - -- (NSString *)contextMenuItemTagSmartQuotes -{ - return UI_STRING("Smart Quotes", "Smart Quotes context menu item"); -} - -- (NSString *)contextMenuItemTagSmartDashes -{ - return UI_STRING("Smart Dashes", "Smart Dashes context menu item"); -} - -- (NSString *)contextMenuItemTagSmartLinks -{ - return UI_STRING("Smart Links", "Smart Links context menu item"); -} - -- (NSString *)contextMenuItemTagTextReplacement -{ - return UI_STRING("Text Replacement", "Text Replacement context menu item"); -} - -- (NSString *)contextMenuItemTagTransformationsMenu -{ - return UI_STRING("Transformations", "Transformations context sub-menu item"); -} - -- (NSString *)contextMenuItemTagMakeUpperCase -{ - return UI_STRING("Make Upper Case", "Make Upper Case context menu item"); -} - -- (NSString *)contextMenuItemTagMakeLowerCase -{ - return UI_STRING("Make Lower Case", "Make Lower Case context menu item"); -} - -- (NSString *)contextMenuItemTagCapitalize -{ - return UI_STRING("Capitalize", "Capitalize context menu item"); -} - -- (NSString *)contextMenuItemTagChangeBack:(NSString *)replacedString -{ - static NSString *formatString = nil; -#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) - static bool lookedUpString = false; - if (!lookedUpString) { - formatString = [[[NSBundle bundleForClass:[NSSpellChecker class]] localizedStringForKey:@"Change Back to \\U201C%@\\U201D" value:nil table:@"MenuCommands"] retain]; - lookedUpString = true; - } -#endif - return formatString ? [NSString stringWithFormat:formatString, replacedString] : replacedString; -} - -- (NSString *)contextMenuItemTagInspectElement -{ - return UI_STRING("Inspect Element", "Inspect Element context menu item"); -} - - (BOOL)objectIsTextMarker:(id)object { return object != nil && CFGetTypeID(object) == WKGetAXTextMarkerTypeID(); @@ -507,308 +138,4 @@ WKUnregisterUniqueIdForElement(element); } -- (NSString *)AXWebAreaText -{ - return UI_STRING("HTML content", "accessibility role description for web area"); -} - -- (NSString *)AXLinkText -{ - return UI_STRING("link", "accessibility role description for link"); -} - -- (NSString *)AXListMarkerText -{ - return UI_STRING("list marker", "accessibility role description for list marker"); -} - -- (NSString *)AXImageMapText -{ - return UI_STRING("image map", "accessibility role description for image map"); -} - -- (NSString *)AXHeadingText -{ - return UI_STRING("heading", "accessibility role description for headings"); -} - -- (NSString *)AXDefinitionListTermText -{ - return UI_STRING("term", "term word of a definition"); -} - -- (NSString *)AXDefinitionListDefinitionText -{ - return UI_STRING("definition", "definition phrase"); -} - -- (NSString *)AXARIAContentGroupText:(NSString *)ariaType -{ - if ([ariaType isEqualToString:@"ARIAApplicationAlert"]) - return UI_STRING("alert", "An ARIA accessibility group that acts as an alert."); - if ([ariaType isEqualToString:@"ARIAApplicationAlertDialog"]) - return UI_STRING("alert dialog", "An ARIA accessibility group that acts as an alert dialog."); - if ([ariaType isEqualToString:@"ARIAApplicationDialog"]) - return UI_STRING("dialog", "An ARIA accessibility group that acts as an dialog."); - if ([ariaType isEqualToString:@"ARIAApplicationLog"]) - return UI_STRING("log", "An ARIA accessibility group that acts as a console log."); - if ([ariaType isEqualToString:@"ARIAApplicationMarquee"]) - return UI_STRING("marquee", "An ARIA accessibility group that acts as a marquee."); - if ([ariaType isEqualToString:@"ARIAApplicationStatus"]) - return UI_STRING("application status", "An ARIA accessibility group that acts as a status update."); - if ([ariaType isEqualToString:@"ARIAApplicationTimer"]) - return UI_STRING("timer", "An ARIA accessibility group that acts as an updating timer."); - if ([ariaType isEqualToString:@"ARIADocument"]) - return UI_STRING("document", "An ARIA accessibility group that acts as a document."); - if ([ariaType isEqualToString:@"ARIADocumentArticle"]) - return UI_STRING("article", "An ARIA accessibility group that acts as an article."); - if ([ariaType isEqualToString:@"ARIADocumentNote"]) - return UI_STRING("note", "An ARIA accessibility group that acts as a note in a document."); - if ([ariaType isEqualToString:@"ARIADocumentRegion"]) - return UI_STRING("region", "An ARIA accessibility group that acts as a distinct region in a document."); - if ([ariaType isEqualToString:@"ARIALandmarkApplication"]) - return UI_STRING("application", "An ARIA accessibility group that acts as an application."); - if ([ariaType isEqualToString:@"ARIALandmarkBanner"]) - return UI_STRING("banner", "An ARIA accessibility group that acts as a banner."); - if ([ariaType isEqualToString:@"ARIALandmarkComplementary"]) - return UI_STRING("complementary", "An ARIA accessibility group that acts as a region of complementary information."); - if ([ariaType isEqualToString:@"ARIALandmarkContentInfo"]) - return UI_STRING("content", "An ARIA accessibility group that contains content."); - if ([ariaType isEqualToString:@"ARIALandmarkMain"]) - return UI_STRING("main", "An ARIA accessibility group that is the main portion of the website."); - if ([ariaType isEqualToString:@"ARIALandmarkNavigation"]) - return UI_STRING("navigation", "An ARIA accessibility group that contains the main navigation elements of a website."); - if ([ariaType isEqualToString:@"ARIALandmarkSearch"]) - return UI_STRING("search", "An ARIA accessibility group that contains a search feature of a website."); - if ([ariaType isEqualToString:@"ARIAUserInterfaceTooltip"]) - return UI_STRING("tooltip", "An ARIA accessibility group that acts as a tooltip."); - if ([ariaType isEqualToString:@"ARIATabPanel"]) - return UI_STRING("tab panel", "An ARIA accessibility group that contains the content of a tab."); - if ([ariaType isEqualToString:@"ARIADocumentMath"]) - return UI_STRING("math", "An ARIA accessibility group that contains mathematical symbols."); - return nil; -} - -- (NSString *)AXButtonActionVerb -{ - return UI_STRING("press", "Verb stating the action that will occur when a button is pressed, as used by accessibility"); -} - -- (NSString *)AXRadioButtonActionVerb -{ - return UI_STRING("select", "Verb stating the action that will occur when a radio button is clicked, as used by accessibility"); -} - -- (NSString *)AXTextFieldActionVerb -{ - return UI_STRING("activate", "Verb stating the action that will occur when a text field is selected, as used by accessibility"); -} - -- (NSString *)AXCheckedCheckBoxActionVerb -{ - return UI_STRING("uncheck", "Verb stating the action that will occur when a checked checkbox is clicked, as used by accessibility"); -} - -- (NSString *)AXUncheckedCheckBoxActionVerb -{ - return UI_STRING("check", "Verb stating the action that will occur when an unchecked checkbox is clicked, as used by accessibility"); -} - -- (NSString *)AXLinkActionVerb -{ - return UI_STRING("jump", "Verb stating the action that will occur when a link is clicked, as used by accessibility"); -} - -- (NSString *)AXMenuListPopupActionVerb -{ - return nil; -} - -- (NSString *)AXMenuListActionVerb -{ - return nil; -} - -- (NSString *)missingPluginText -{ - return UI_STRING("Missing Plug-in", "Label text to be used when a plugin is missing"); -} - -- (NSString *)crashedPluginText -{ - return UI_STRING("Plug-in Failure", "Label text to be used if plugin host process has crashed"); -} - -- (NSString *)multipleFileUploadTextForNumberOfFiles:(unsigned)numberOfFiles -{ - return [NSString stringWithFormat:UI_STRING("%d files", "Label to describe the number of files selected in a file upload control that allows multiple files"), numberOfFiles]; -} - -- (NSString *)unknownFileSizeText -{ - return UI_STRING("Unknown", "Unknown filesize FTP directory listing item"); -} - -- (NSString*)imageTitleForFilename:(NSString*)filename width:(int)width height:(int)height -{ - return [NSString stringWithFormat:UI_STRING("%@ %d×%d pixels", "window title for a standalone image (uses multiplication symbol, not x)"), filename, width, height]; -} - -- (NSString*)mediaElementLoadingStateText -{ - return UI_STRING("Loading...", "Media controller status message when the media is loading"); -} - -- (NSString*)mediaElementLiveBroadcastStateText -{ - return UI_STRING("Live Broadcast", "Media controller status message when watching a live broadcast"); -} - -- (NSString*)localizedMediaControlElementString:(NSString*)name -{ - if ([name isEqualToString:@"AudioElement"]) - return UI_STRING("audio element controller", "accessibility role description for audio element controller"); - if ([name isEqualToString:@"VideoElement"]) - return UI_STRING("video element controller", "accessibility role description for video element controller"); - - // FIXME: the ControlsPanel container should never be visible in the accessibility hierarchy. - if ([name isEqualToString:@"ControlsPanel"]) - return @""; - - if ([name isEqualToString:@"MuteButton"]) - return UI_STRING("mute", "accessibility role description for mute button"); - if ([name isEqualToString:@"UnMuteButton"]) - return UI_STRING("unmute", "accessibility role description for turn mute off button"); - if ([name isEqualToString:@"PlayButton"]) - return UI_STRING("play", "accessibility role description for play button"); - if ([name isEqualToString:@"PauseButton"]) - return UI_STRING("pause", "accessibility role description for pause button"); - if ([name isEqualToString:@"Slider"]) - return UI_STRING("movie time", "accessibility role description for timeline slider"); - if ([name isEqualToString:@"SliderThumb"]) - return UI_STRING("timeline slider thumb", "accessibility role description for timeline thumb"); - if ([name isEqualToString:@"RewindButton"]) - return UI_STRING("back 30 seconds", "accessibility role description for seek back 30 seconds button"); - if ([name isEqualToString:@"ReturnToRealtimeButton"]) - return UI_STRING("return to realtime", "accessibility role description for return to real time button"); - if ([name isEqualToString:@"CurrentTimeDisplay"]) - return UI_STRING("elapsed time", "accessibility role description for elapsed time display"); - if ([name isEqualToString:@"TimeRemainingDisplay"]) - return UI_STRING("remaining time", "accessibility role description for time remaining display"); - if ([name isEqualToString:@"StatusDisplay"]) - return UI_STRING("status", "accessibility role description for movie status"); - if ([name isEqualToString:@"FullscreenButton"]) - return UI_STRING("fullscreen", "accessibility role description for enter fullscreen button"); - if ([name isEqualToString:@"SeekForwardButton"]) - return UI_STRING("fast forward", "accessibility role description for fast forward button"); - if ([name isEqualToString:@"SeekBackButton"]) - return UI_STRING("fast reverse", "accessibility role description for fast reverse button"); - if ([name isEqualToString:@"ShowClosedCaptionsButton"]) - return UI_STRING("show closed captions", "accessibility role description for show closed captions button"); - if ([name isEqualToString:@"HideClosedCaptionsButton"]) - return UI_STRING("hide closed captions", "accessibility role description for hide closed captions button"); - - ASSERT_NOT_REACHED(); - return @""; -} - -- (NSString*)localizedMediaControlElementHelpText:(NSString*)name -{ - if ([name isEqualToString:@"AudioElement"]) - return UI_STRING("audio element playback controls and status display", "accessibility role description for audio element controller"); - if ([name isEqualToString:@"VideoElement"]) - return UI_STRING("video element playback controls and status display", "accessibility role description for video element controller"); - - if ([name isEqualToString:@"MuteButton"]) - return UI_STRING("mute audio tracks", "accessibility help text for mute button"); - if ([name isEqualToString:@"UnMuteButton"]) - return UI_STRING("unmute audio tracks", "accessibility help text for un mute button"); - if ([name isEqualToString:@"PlayButton"]) - return UI_STRING("begin playback", "accessibility help text for play button"); - if ([name isEqualToString:@"PauseButton"]) - return UI_STRING("pause playback", "accessibility help text for pause button"); - if ([name isEqualToString:@"Slider"]) - return UI_STRING("movie time scrubber", "accessibility help text for timeline slider"); - if ([name isEqualToString:@"SliderThumb"]) - return UI_STRING("movie time scrubber thumb", "accessibility help text for timeline slider thumb"); - if ([name isEqualToString:@"RewindButton"]) - return UI_STRING("seek movie back 30 seconds", "accessibility help text for jump back 30 seconds button"); - if ([name isEqualToString:@"ReturnToRealtimeButton"]) - return UI_STRING("return streaming movie to real time", "accessibility help text for return streaming movie to real time button"); - if ([name isEqualToString:@"CurrentTimeDisplay"]) - return UI_STRING("current movie time in seconds", "accessibility help text for elapsed time display"); - if ([name isEqualToString:@"TimeRemainingDisplay"]) - return UI_STRING("number of seconds of movie remaining", "accessibility help text for remaining time display"); - if ([name isEqualToString:@"StatusDisplay"]) - return UI_STRING("current movie status", "accessibility help text for movie status display"); - if ([name isEqualToString:@"SeekBackButton"]) - return UI_STRING("seek quickly back", "accessibility help text for fast rewind button"); - if ([name isEqualToString:@"SeekForwardButton"]) - return UI_STRING("seek quickly forward", "accessibility help text for fast forward button"); - if ([name isEqualToString:@"FullscreenButton"]) - return UI_STRING("Play movie in fullscreen mode", "accessibility help text for enter fullscreen button"); - if ([name isEqualToString:@"ShowClosedCaptionsButton"]) - return UI_STRING("start displaying closed captions", "accessibility help text for show closed captions button"); - if ([name isEqualToString:@"HideClosedCaptionsButton"]) - return UI_STRING("stop displaying closed captions", "accessibility help text for hide closed captions button"); - ASSERT_NOT_REACHED(); - return @""; -} - -- (NSString*)localizedMediaTimeDescription:(float)time -{ - if (!isfinite(time)) - return UI_STRING("indefinite time", "accessibility help text for an indefinite media controller time value"); - - 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 [NSString stringWithFormat:UI_STRING("%1$d days %2$d hours %3$d minutes %4$d seconds", "accessibility help text for media controller time value >= 1 day"), days, hours, minutes, seconds]; - else if (hours) - return [NSString stringWithFormat:UI_STRING("%1$d hours %2$d minutes %3$d seconds", "accessibility help text for media controller time value >= 60 minutes"), hours, minutes, seconds]; - else if (minutes) - return [NSString stringWithFormat:UI_STRING("%1$d minutes %2$d seconds", "accessibility help text for media controller time value >= 60 seconds"), minutes, seconds]; - - return [NSString stringWithFormat:UI_STRING("%1$d seconds", "accessibility help text for media controller time value < 60 seconds"), seconds]; -} - -- (NSString *)validationMessageValueMissingText -{ - return UI_STRING("value missing", "Validation message for required form control elements that have no value"); -} - -- (NSString *)validationMessageTypeMismatchText -{ - return UI_STRING("type mismatch", "Validation message for input form controls with a value not matching type"); -} - -- (NSString *)validationMessagePatternMismatchText -{ - return UI_STRING("pattern mismatch", "Validation message for input form controls requiring a constrained value according to pattern"); -} - -- (NSString *)validationMessageTooLongText -{ - return UI_STRING("too long", "Validation message for form control elements with a value longer than maximum allowed length"); -} - -- (NSString *)validationMessageRangeUnderflowText -{ - return UI_STRING("range underflow", "Validation message for input form controls with value lower than allowed minimum"); -} - -- (NSString *)validationMessageRangeOverflowText -{ - return UI_STRING("range overflow", "Validation message for input form controls with value higher than allowed maximum"); -} - -- (NSString *)validationMessageStepMismatchText -{ - return UI_STRING("step mismatch", "Validation message for input form controls with value not respecting the step attribute"); -} - @end diff --git a/WebKit/mac/WebView/WebView.mm b/WebKit/mac/WebView/WebView.mm index f7b83ea..3d878bc 100644 --- a/WebKit/mac/WebView/WebView.mm +++ b/WebKit/mac/WebView/WebView.mm @@ -141,6 +141,7 @@ #import <WebCore/RenderWidget.h> #import <WebCore/ResourceHandle.h> #import <WebCore/RuntimeApplicationChecks.h> +#import <WebCore/SchemeRegistry.h> #import <WebCore/ScriptController.h> #import <WebCore/ScriptValue.h> #import <WebCore/SecurityOrigin.h> @@ -671,12 +672,17 @@ static bool shouldEnableLoadDeferring() didOneTimeInitialization = true; } + Page::PageClients pageClients; + pageClients.chromeClient = new WebChromeClient(self); + pageClients.contextMenuClient = new WebContextMenuClient(self); + pageClients.editorClient = new WebEditorClient(self); + pageClients.dragClient = new WebDragClient(self); + pageClients.inspectorClient = new WebInspectorClient(self); + pageClients.pluginHalterClient = new WebPluginHalterClient(self); #if ENABLE(CLIENT_BASED_GEOLOCATION) - WebGeolocationControllerClient* geolocationControllerClient = new WebGeolocationControllerClient(self); -#else - WebGeolocationControllerClient* geolocationControllerClient = 0; + pageClients.geolocationControllerClient = new WebGeolocationControllerClient(self); #endif - _private->page = new Page(new WebChromeClient(self), new WebContextMenuClient(self), new WebEditorClient(self), new WebDragClient(self), new WebInspectorClient(self), new WebPluginHalterClient(self), geolocationControllerClient, 0, 0); + _private->page = new Page(pageClients); _private->page->setCanStartMedia([self window]); _private->page->settings()->setLocalStorageDatabasePath([[self preferences] _localStorageDatabasePath]); @@ -2500,7 +2506,7 @@ static PassOwnPtr<Vector<String> > toStringVector(NSArray* patterns) + (void)_registerURLSchemeAsSecure:(NSString *)scheme { - SecurityOrigin::registerURLSchemeAsSecure(scheme); + SchemeRegistry::registerURLSchemeAsSecure(scheme); } @end @@ -2734,7 +2740,7 @@ static PassOwnPtr<Vector<String> > toStringVector(NSArray* patterns) + (void)registerURLSchemeAsLocal:(NSString *)protocol { - SecurityOrigin::registerURLSchemeAsLocal(protocol); + SchemeRegistry::registerURLSchemeAsLocal(protocol); } - (id)_initWithArguments:(NSDictionary *) arguments |