[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