summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/chromium/src/ChromeClientImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/chromium/src/ChromeClientImpl.cpp')
-rw-r--r--Source/WebKit/chromium/src/ChromeClientImpl.cpp38
1 files changed, 30 insertions, 8 deletions
diff --git a/Source/WebKit/chromium/src/ChromeClientImpl.cpp b/Source/WebKit/chromium/src/ChromeClientImpl.cpp
index a63a625..4b68c18 100644
--- a/Source/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/Source/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -34,7 +34,6 @@
#include "AXObjectCache.h"
#include "AccessibilityObject.h"
-#include "CharacterNames.h"
#include "Console.h"
#include "Cursor.h"
#include "DatabaseTracker.h"
@@ -70,6 +69,7 @@
#include "WebFileChooserCompletionImpl.h"
#include "WebFrameClient.h"
#include "WebFrameImpl.h"
+#include "WebIconLoadingCompletionImpl.h"
#include "WebInputEvent.h"
#include "WebKit.h"
#include "WebNode.h"
@@ -86,6 +86,7 @@
#include "WebWindowFeatures.h"
#include "WindowFeatures.h"
#include "WrappedResourceRequest.h"
+#include <wtf/unicode/CharacterNames.h>
using namespace WebCore;
@@ -501,6 +502,13 @@ IntRect ChromeClientImpl::windowResizerRect() const
return result;
}
+#if ENABLE(REGISTER_PROTOCOL_HANDLER)
+void ChromeClientImpl::registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title)
+{
+ notImplemented();
+}
+#endif
+
void ChromeClientImpl::invalidateWindow(const IntRect&, bool)
{
notImplemented();
@@ -669,9 +677,13 @@ void ChromeClientImpl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileCh
chooserCompletion->didChooseFile(WebVector<WebString>());
}
-void ChromeClientImpl::chooseIconForFiles(const Vector<WTF::String>&, WebCore::FileChooser*)
+void ChromeClientImpl::chooseIconForFiles(const Vector<String>& filenames, FileChooser* fileChooser)
{
- notImplemented();
+ if (!m_webView->client())
+ return;
+ WebIconLoadingCompletionImpl* iconCompletion = new WebIconLoadingCompletionImpl(fileChooser);
+ if (!m_webView->client()->queryIconForFiles(filenames, iconCompletion))
+ iconCompletion->didLoadIcon(WebData());
}
void ChromeClientImpl::popupOpened(PopupContainer* popupContainer,
@@ -732,24 +744,29 @@ void ChromeClientImpl::getPopupMenuInfo(PopupContainer* popupContainer,
{
const Vector<PopupItem*>& inputItems = popupContainer->popupData();
- WebVector<WebPopupMenuInfo::Item> outputItems(inputItems.size());
+ WebVector<WebMenuItemInfo> outputItems(inputItems.size());
for (size_t i = 0; i < inputItems.size(); ++i) {
const PopupItem& inputItem = *inputItems[i];
- WebPopupMenuInfo::Item& outputItem = outputItems[i];
+ WebMenuItemInfo& outputItem = outputItems[i];
outputItem.label = inputItem.label;
outputItem.enabled = inputItem.enabled;
+ if (inputItem.textDirection == WebCore::RTL)
+ outputItem.textDirection = WebTextDirectionRightToLeft;
+ else
+ outputItem.textDirection = WebTextDirectionLeftToRight;
+ outputItem.hasTextDirectionOverride = inputItem.hasTextDirectionOverride;
switch (inputItem.type) {
case PopupItem::TypeOption:
- outputItem.type = WebPopupMenuInfo::Item::Option;
+ outputItem.type = WebMenuItemInfo::Option;
break;
case PopupItem::TypeGroup:
- outputItem.type = WebPopupMenuInfo::Item::Group;
+ outputItem.type = WebMenuItemInfo::Group;
break;
case PopupItem::TypeSeparator:
- outputItem.type = WebPopupMenuInfo::Item::Separator;
+ outputItem.type = WebMenuItemInfo::Separator;
break;
default:
ASSERT_NOT_REACHED();
@@ -848,6 +865,11 @@ bool ChromeClientImpl::selectItemWritingDirectionIsNatural()
return false;
}
+bool ChromeClientImpl::selectItemAlignmentFollowsMenuWritingDirection()
+{
+ return true;
+}
+
PassRefPtr<PopupMenu> ChromeClientImpl::createPopupMenu(PopupMenuClient* client) const
{
if (WebViewImpl::useExternalPopupMenus())