[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da
andersca at apple.com
andersca at apple.com
Wed Dec 22 18:33:28 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 5279e242836d2e9af150f6192a080a64f9e79088
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Dec 13 23:01:44 2010 +0000
Pass the complex text input state all the way to the UI process
https://bugs.webkit.org/show_bug.cgi?id=50980
Reviewed by Darin Adler.
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::setComplexTextInputEnabled):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setComplexTextInputEnabled):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
(WebKit::NetscapePlugin::pluginComplexTextInputIdentifier):
* WebProcess/Plugins/Plugin.h:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::pluginComplexTextInputIdentifier):
(WebKit::PluginProxy::setComplexTextInputEnabled):
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginProxy.messages.in:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::setComplexTextInputEnabled):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73968 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index ab56ff9..1f382d6 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,28 @@
+2010-12-13 Anders Carlsson <andersca at apple.com>
+
+ Reviewed by Darin Adler.
+
+ Pass the complex text input state all the way to the UI process
+ https://bugs.webkit.org/show_bug.cgi?id=50980
+
+ * PluginProcess/PluginControllerProxy.cpp:
+ (WebKit::PluginControllerProxy::setComplexTextInputEnabled):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::setComplexTextInputEnabled):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/Plugins/Netscape/NetscapePlugin.h:
+ * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
+ (WebKit::NetscapePlugin::pluginComplexTextInputIdentifier):
+ * WebProcess/Plugins/Plugin.h:
+ * WebProcess/Plugins/PluginProxy.cpp:
+ (WebKit::PluginProxy::pluginComplexTextInputIdentifier):
+ (WebKit::PluginProxy::setComplexTextInputEnabled):
+ * WebProcess/Plugins/PluginProxy.h:
+ * WebProcess/Plugins/PluginProxy.messages.in:
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::setComplexTextInputEnabled):
+
2010-12-13 Sam Weinig <sam at webkit.org>
Reviewed by Anders Carlsson.
diff --git a/WebKit2/PluginProcess/PluginControllerProxy.cpp b/WebKit2/PluginProcess/PluginControllerProxy.cpp
index 5cb67ba..352e1ad 100644
--- a/WebKit2/PluginProcess/PluginControllerProxy.cpp
+++ b/WebKit2/PluginProcess/PluginControllerProxy.cpp
@@ -241,7 +241,8 @@ void PluginControllerProxy::setComplexTextInputEnabled(bool complexTextInputEnab
return;
m_isComplexTextInputEnabled = complexTextInputEnabled;
- // FIXME: Let the web process know that this plug-in wants complex text input enabled.
+
+ m_connection->connection()->send(Messages::PluginProxy::SetComplexTextInputEnabled(complexTextInputEnabled), m_pluginInstanceID);
}
String PluginControllerProxy::proxiesForURL(const String& urlString)
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index 7751ce3..8a89d1a 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -1675,4 +1675,11 @@ void WebPageProxy::didFinishLoadingDataForCustomRepresentation(const CoreIPC::Da
m_pageClient->didFinishLoadingDataForCustomRepresentation(dataReference);
}
+#if PLATFORM(MAC)
+void WebPageProxy::setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled)
+{
+ // FIXME: Call the page client.
+}
+#endif
+
} // namespace WebKit
diff --git a/WebKit2/UIProcess/WebPageProxy.h b/WebKit2/UIProcess/WebPageProxy.h
index 51eeefe..6344697 100644
--- a/WebKit2/UIProcess/WebPageProxy.h
+++ b/WebKit2/UIProcess/WebPageProxy.h
@@ -395,6 +395,8 @@ private:
void didFinishLoadingDataForCustomRepresentation(const CoreIPC::DataReference& data);
+ void setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled);
+
PageClient* m_pageClient;
WebLoaderClient m_loaderClient;
WebPolicyClient m_policyClient;
diff --git a/WebKit2/UIProcess/WebPageProxy.messages.in b/WebKit2/UIProcess/WebPageProxy.messages.in
index acdcf0d..446b907 100644
--- a/WebKit2/UIProcess/WebPageProxy.messages.in
+++ b/WebKit2/UIProcess/WebPageProxy.messages.in
@@ -151,4 +151,9 @@ messages -> WebPageProxy {
# Databases
ExceededDatabaseQuota(uint64_t frameID, WTF::String originIdentifier, WTF::String databaseName, WTF::String databaseDisplayName, uint64_t currentQuota, uint64_t currentUsage, uint64_t expectedUsage) -> (uint64_t newQuota)
+
+ # Complex text input support for plug-ins.
+#if PLATFORM(MAC)
+ SetComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled)
+#endif
}
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
index f92cec9..29e71d1 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
@@ -161,6 +161,8 @@ private:
virtual void windowFocusChanged(bool);
virtual void windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates);
virtual void windowVisibilityChanged(bool);
+
+ virtual uint64_t pluginComplexTextInputIdentifier() const;
#endif
virtual void privateBrowsingStateChanged(bool);
diff --git a/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm b/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm
index c619e74..0cd4e5b 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm
+++ b/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm
@@ -709,7 +709,14 @@ void NetscapePlugin::windowVisibilityChanged(bool)
{
// FIXME: Implement.
}
-
+
+uint64_t NetscapePlugin::pluginComplexTextInputIdentifier() const
+{
+ // This is never called for NetscapePlugin.
+ ASSERT_NOT_REACHED();
+ return 0;
+}
+
PlatformLayer* NetscapePlugin::pluginLayer()
{
return static_cast<PlatformLayer*>(m_pluginLayer.get());
diff --git a/WebKit2/WebProcess/Plugins/Plugin.h b/WebKit2/WebProcess/Plugins/Plugin.h
index fd0c09a..57b0d91 100644
--- a/WebKit2/WebProcess/Plugins/Plugin.h
+++ b/WebKit2/WebProcess/Plugins/Plugin.h
@@ -150,6 +150,9 @@ public:
// Tells the plug-in about window visibility changes.
virtual void windowVisibilityChanged(bool) = 0;
+
+ // Get the per complex text input identifier.
+ virtual uint64_t pluginComplexTextInputIdentifier() const = 0;
#endif
// Called when the private browsing state for this plug-in changes.
diff --git a/WebKit2/WebProcess/Plugins/PluginProxy.cpp b/WebKit2/WebProcess/Plugins/PluginProxy.cpp
index d4cebd5..31db464 100644
--- a/WebKit2/WebProcess/Plugins/PluginProxy.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginProxy.cpp
@@ -317,6 +317,12 @@ void PluginProxy::windowVisibilityChanged(bool isVisible)
{
m_connection->connection()->send(Messages::PluginControllerProxy::WindowVisibilityChanged(isVisible), m_pluginInstanceID);
}
+
+uint64_t PluginProxy::pluginComplexTextInputIdentifier() const
+{
+ return m_pluginInstanceID;
+}
+
#endif
void PluginProxy::privateBrowsingStateChanged(bool isPrivateBrowsingEnabled)
@@ -406,6 +412,13 @@ void PluginProxy::setStatusbarText(const String& statusbarText)
{
m_pluginController->setStatusbarText(statusbarText);
}
+
+#if PLATFORM(MAC)
+void PluginProxy::setComplexTextInputEnabled(bool complexTextInputEnabled)
+{
+ m_pluginController->setComplexTextInputEnabled(complexTextInputEnabled);
+}
+#endif
void PluginProxy::update(const IntRect& paintedRect)
{
diff --git a/WebKit2/WebProcess/Plugins/PluginProxy.h b/WebKit2/WebProcess/Plugins/PluginProxy.h
index dc69737..a2b65d0 100644
--- a/WebKit2/WebProcess/Plugins/PluginProxy.h
+++ b/WebKit2/WebProcess/Plugins/PluginProxy.h
@@ -95,6 +95,7 @@ private:
virtual void windowFocusChanged(bool);
virtual void windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates);
virtual void windowVisibilityChanged(bool);
+ virtual uint64_t pluginComplexTextInputIdentifier() const;
#endif
virtual void privateBrowsingStateChanged(bool);
@@ -115,6 +116,9 @@ private:
void cancelStreamLoad(uint64_t streamID);
void cancelManualStreamLoad();
void setStatusbarText(const String& statusbarText);
+#if PLATFORM(MAC)
+ void setComplexTextInputEnabled(bool);
+#endif
RefPtr<PluginProcessConnection> m_connection;
uint64_t m_pluginInstanceID;
diff --git a/WebKit2/WebProcess/Plugins/PluginProxy.messages.in b/WebKit2/WebProcess/Plugins/PluginProxy.messages.in
index 5ef324b..81761ee 100644
--- a/WebKit2/WebProcess/Plugins/PluginProxy.messages.in
+++ b/WebKit2/WebProcess/Plugins/PluginProxy.messages.in
@@ -55,6 +55,11 @@ messages -> PluginProxy {
# Set the status bar text.
SetStatusbarText(WTF::String statusbarText)
+
+#if PLATFORM(MAC)
+ # Change whether complext text input is enabled for this plug-in.
+ SetComplexTextInputEnabled(bool complexTextInputEnabled)
+#endif
}
#endif
diff --git a/WebKit2/WebProcess/Plugins/PluginView.cpp b/WebKit2/WebProcess/Plugins/PluginView.cpp
index 86c3d2c..c12b414 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginView.cpp
@@ -29,6 +29,7 @@
#include "Plugin.h"
#include "WebEvent.h"
#include "WebPage.h"
+#include "WebPageProxyMessages.h"
#include <WebCore/Chrome.h>
#include <WebCore/CookieJar.h>
#include <WebCore/DocumentLoader.h>
@@ -870,10 +871,9 @@ HWND PluginView::nativeParentWindow()
#endif
#if PLATFORM(MAC)
-void PluginView::setComplexTextInputEnabled(bool)
+void PluginView::setComplexTextInputEnabled(bool complexTextInputEnabled)
{
- // This should never be called.
- ASSERT_NOT_REACHED();
+ m_webPage->send(Messages::WebPageProxy::SetComplexTextInputEnabled(m_plugin->pluginComplexTextInputIdentifier(), complexTextInputEnabled));
}
#endif
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list