Source/WebKit2/ChangeLog

 12011-03-10 Oleg Romashin <romaxa@gmail.com>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 Make Qt port compiling with ENABLE_PLUGIN_PROCESS=1, part2
 6 Make ComplexTextInput compiling for Qt
 7 Cover with ifdef MachPort related functionality
 8 https://bugs.webkit.org/show_bug.cgi?id=55719
 9
 10 * PluginProcess/PluginControllerProxy.cpp:
 11 (WebKit::PluginControllerProxy::sendComplexTextInput):
 12 * PluginProcess/PluginControllerProxy.h:
 13 * PluginProcess/PluginProcess.cpp:
 14 (WebKit::PluginProcess::initializePluginProcess):
 15 * PluginProcess/WebProcessConnection.cpp:
 16 (WebKit::WebProcessConnection::createPlugin):
 17 * PluginProcess/mac/PluginProcessMac.mm:
 18 (WebKit::PluginProcess::platformInitialize):
 19 (WebKit::PluginProcess::createWebProcessConnection):
 20 * PluginProcess/qt/PluginProcessQt.cpp:
 21 (WebKit::PluginProcess::createWebProcessConnection):
 22 * UIProcess/API/qt/qwkpage.cpp:
 23 (QWKPagePrivate::setComplexTextInputEnabled):
 24 * UIProcess/API/qt/qwkpage_p.h:
 25 * UIProcess/PageClient.h:
 26 * UIProcess/Plugins/PluginProcessProxy.cpp:
 27 (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
 28 (WebKit::PluginProcessProxy::didCreateWebProcessConnection):
 29 * UIProcess/Plugins/PluginProcessProxy.h:
 30 * UIProcess/Plugins/PluginProcessProxy.messages.in:
 31 * UIProcess/WebPageProxy.cpp:
 32 (WebKit::WebPageProxy::sendComplexTextInputToPlugin):
 33 * UIProcess/WebPageProxy.h:
 34 * UIProcess/WebPageProxy.messages.in:
 35 * UIProcess/gtk/WebView.cpp:
 36 (WebKit::WebView::setComplexTextInputEnabled):
 37 * UIProcess/gtk/WebView.h:
 38 * UIProcess/win/WebView.cpp:
 39 (WebKit::WebView::setComplexTextInputEnabled):
 40 * UIProcess/win/WebView.h:
 41 * WebProcess/Plugins/Netscape/NetscapePlugin.h:
 42 * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
 43 (WebKit::NetscapePlugin::sendComplexTextInput):
 44 (WebKit::NetscapePlugin::pluginComplexTextInputIdentifier):
 45 * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
 46 (WebKit::NetscapePlugin::sendComplexTextInput):
 47 (WebKit::NetscapePlugin::pluginComplexTextInputIdentifier):
 48 * WebProcess/Plugins/Plugin.h:
 49 * WebProcess/Plugins/PluginController.h:
 50 * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
 51 (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
 52 * WebProcess/Plugins/PluginProxy.cpp:
 53 (WebKit::PluginProxy::setComplexTextInputEnabled):
 54 * WebProcess/Plugins/PluginProxy.h:
 55 * WebProcess/Plugins/PluginProxy.messages.in:
 56 * WebProcess/Plugins/PluginView.cpp:
 57 * WebProcess/Plugins/PluginView.h:
 58 * WebProcess/WebPage/WebPage.cpp:
 59 * WebProcess/WebPage/WebPage.h:
 60 (WebKit::WebPage::accessibilityPosition):
 61 * WebProcess/WebPage/WebPage.messages.in:
 62 * WebProcess/WebPage/qt/WebPageQt.cpp:
 63 (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
 64 (WebKit::WebPage::sendComplexTextInputToPlugin):
 65 * WebProcess/WebPage/win/WebPageWin.cpp:
 66 (WebKit::WebPage::sendComplexTextInputToPlugin):
 67
1682011-03-10 Sam Weinig <sam@webkit.org>
269
370 Reviewed by Mark Rowe.
80782

Source/WebKit2/PluginProcess/PluginControllerProxy.cpp

@@void PluginControllerProxy::setComplexTe
264264 m_connection->connection()->send(Messages::PluginProxy::SetComplexTextInputEnabled(complexTextInputEnabled), m_pluginInstanceID);
265265}
266266
 267#if PLATFORM(MAC)
267268mach_port_t PluginControllerProxy::compositingRenderServerPort()
268269{
269270 return PluginProcess::shared().compositingRenderServerPort();
270271}
 272#endif
271273
272274String PluginControllerProxy::proxiesForURL(const String& urlString)
273275{

@@void PluginControllerProxy::windowVisibi
478480{
479481 m_plugin->windowVisibilityChanged(isVisible);
480482}
 483#endif
481484
482485void PluginControllerProxy::sendComplexTextInput(const String& textInput)
483486{
484487 m_plugin->sendComplexTextInput(textInput);
485488}
486489
487 #endif
488 
489490void PluginControllerProxy::privateBrowsingStateChanged(bool isPrivateBrowsingEnabled)
490491{
491492 m_plugin->privateBrowsingStateChanged(isPrivateBrowsingEnabled);
80780

Source/WebKit2/PluginProcess/PluginControllerProxy.h

@@private:
9090 virtual bool isAcceleratedCompositingEnabled();
9191 virtual void pluginProcessCrashed();
9292
93 #if PLATFORM(MAC)
9493 virtual void setComplexTextInputEnabled(bool);
 94#if PLATFORM(MAC)
9595 virtual mach_port_t compositingRenderServerPort();
9696#endif
9797

@@private:
130130 void windowFocusChanged(bool);
131131 void windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates);
132132 void windowVisibilityChanged(bool);
133  void sendComplexTextInput(const String& textInput);
134133#endif
 134 void sendComplexTextInput(const String& textInput);
135135
136136 void privateBrowsingStateChanged(bool);
137137

@@private:
172172 // Whether the plug-in has canceled the manual stream load.
173173 bool m_pluginCanceledManualStreamLoad;
174174
175 #if PLATFORM(MAC)
176175 // Whether complex text input is enabled for this plug-in.
177176 bool m_isComplexTextInputEnabled;
178177
 178#if PLATFORM(MAC)
179179 // For CA plug-ins, this holds the information needed to export the layer hierarchy to the UI process.
180180 RetainPtr<WKCARemoteLayerClientRef> m_remoteLayerClient;
181181#endif
80780

Source/WebKit2/PluginProcess/PluginProcess.cpp

2929#if ENABLE(PLUGIN_PROCESS)
3030
3131#include "ArgumentCoders.h"
32 #include "MachPort.h"
3332#include "NetscapePluginModule.h"
3433#include "PluginProcessProxyMessages.h"
3534#include "PluginProcessCreationParameters.h"

@@void PluginProcess::initializePluginProc
125124 platformInitialize(parameters);
126125}
127126
128 void PluginProcess::createWebProcessConnection()
129 {
130  // FIXME: This is platform specific!
131 
132  // Create the listening port.
133  mach_port_t listeningPort;
134  mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &listeningPort);
135 
136  // Create a listening connection.
137  RefPtr<WebProcessConnection> connection = WebProcessConnection::create(listeningPort);
138  m_webProcessConnections.append(connection.release());
139 
140  CoreIPC::MachPort clientPort(listeningPort, MACH_MSG_TYPE_MAKE_SEND);
141  m_connection->send(Messages::PluginProcessProxy::DidCreateWebProcessConnection(clientPort), 0);
142 
143  // Stop the shutdown timer.
144  m_shutdownTimer.stop();
145 }
146 
147127void PluginProcess::getSitesWithData(uint64_t callbackID)
148128{
149129 Vector<String> sites;
80780

Source/WebKit2/PluginProcess/WebProcessConnection.cpp

@@void WebProcessConnection::createPlugin(
167167 // Now try to initialize the plug-in.
168168 result = pluginControllerProxyPtr->initialize(parameters);
169169
 170#if PLATFORM(MAC)
170171 if (result) {
171172 remoteLayerClientID = pluginControllerProxyPtr->remoteLayerClientID();
172173 return;
173174 }
 175#endif
174176
175177 // We failed to initialize, remove the plug-in controller. This could cause us to be deleted.
176178 removePluginControllerProxy(pluginControllerProxyPtr);
80780

Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm

3131// FIXME (WebKit2) <rdar://problem/8728860> WebKit2 needs to be localized
3232#define UI_STRING(__str, __desc) [NSString stringWithUTF8String:__str]
3333
 34#include "MachPort.h"
3435#import "NetscapePlugin.h"
3536#import "PluginProcessShim.h"
3637#import "PluginProcessCreationParameters.h"

@@void PluginProcess::platformInitialize(c
103104 WKSetVisibleApplicationName((CFStringRef)applicationName);
104105}
105106
 107void PluginProcess::createWebProcessConnection()
 108{
 109 // Create the listening port.
 110 mach_port_t listeningPort;
 111 mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &listeningPort);
 112
 113 // Create a listening connection.
 114 RefPtr<WebProcessConnection> connection = WebProcessConnection::create(listeningPort);
 115 m_webProcessConnections.append(connection.release());
 116
 117 CoreIPC::MachPort clientPort(listeningPort, MACH_MSG_TYPE_MAKE_SEND);
 118 m_connection->send(Messages::PluginProcessProxy::DidCreateWebProcessConnection(clientPort), 0);
 119
 120 // Stop the shutdown timer.
 121 m_shutdownTimer.stop();
 122}
 123
106124} // namespace WebKit
107125
108126#endif // ENABLE(PLUGIN_PROCESS)
80780

Source/WebKit2/PluginProcess/qt/PluginProcessQt.cpp

@@void PluginProcess::platformInitialize(c
3939 notImplemented();
4040}
4141
 42void PluginProcess::createWebProcessConnection()
 43{
 44 notImplemented();
 45}
 46
4247} // namespace WebKit
4348
4449#endif // ENABLE(PLUGIN_PROCESS)
80780

Source/WebKit2/UIProcess/PageClient.h

@@public:
126126 virtual HWND nativeWindow() = 0;
127127#endif
128128
129 #if PLATFORM(MAC)
130129 virtual void setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled) = 0;
 130#if PLATFORM(MAC)
131131 virtual void setAutodisplay(bool) = 0;
132132 virtual CGContextRef containingWindowGraphicsContext() = 0;
133133 virtual void didPerformDictionaryLookup(const String&, double scaleFactor, const DictionaryPopupInfo&) = 0;
80780

Source/WebKit2/UIProcess/WebPageProxy.cpp

@@void WebPageProxy::selectionStateChanged
20512051 m_selectionState = selectionState;
20522052}
20532053
2054 #if PLATFORM(MAC)
20552054// Complex text input support for plug-ins.
20562055void WebPageProxy::sendComplexTextInputToPlugin(uint64_t pluginComplexTextInputIdentifier, const String& textInput)
20572056{

@@void WebPageProxy::sendComplexTextInputT
20602059
20612060 process()->send(Messages::WebPage::SendComplexTextInputToPlugin(pluginComplexTextInputIdentifier, textInput), m_pageID);
20622061}
2063 #endif
20642062
20652063#if PLATFORM(WIN)
20662064void WebPageProxy::didChangeCompositionSelection(bool hasComposition)

@@void WebPageProxy::didFinishLoadingDataF
28142812 m_pageClient->didFinishLoadingDataForCustomRepresentation(suggestedFilename, dataReference);
28152813}
28162814
2817 #if PLATFORM(MAC)
28182815void WebPageProxy::setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled)
28192816{
28202817 m_pageClient->setComplexTextInputEnabled(pluginComplexTextInputIdentifier, complexTextInputEnabled);
28212818}
28222819
 2820#if PLATFORM(MAC)
28232821void WebPageProxy::setAutodisplay(bool newState)
28242822{
28252823 m_pageClient->setAutodisplay(newState);
80780

Source/WebKit2/UIProcess/WebPageProxy.h

@@public:
263263 void getMarkedRange(uint64_t& location, uint64_t& length);
264264 uint64_t characterIndexForPoint(const WebCore::IntPoint);
265265 WebCore::IntRect firstRectForCharacterRange(uint64_t, uint64_t);
266  void sendComplexTextInputToPlugin(uint64_t pluginComplexTextInputIdentifier, const String& textInput);
267266 CGContextRef containingWindowGraphicsContext();
268267#endif
 268
 269 void sendComplexTextInputToPlugin(uint64_t pluginComplexTextInputIdentifier, const String& textInput);
 270
269271#if PLATFORM(WIN)
270272 void didChangeCompositionSelection(bool);
271273 void confirmComposition(const String&);

@@private:
639641
640642 void didFinishLoadingDataForCustomRepresentation(const String& suggestedFilename, const CoreIPC::DataReference&);
641643
642 #if PLATFORM(MAC)
643644 void setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled);
644 #endif
645645
646646 static String standardUserAgent(const String& applicationName = String());
647647
80780

Source/WebKit2/UIProcess/WebPageProxy.messages.in

@@messages -> WebPageProxy {
180180 # Geolocation messages
181181 RequestGeolocationPermissionForFrame(uint64_t geolocationID, uint64_t frameID, WTF::String originIdentifier)
182182
183 #if PLATFORM(MAC)
184183 # Plug-in complex text input support messages
185184 SetComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled)
186 #endif
187185
188186#if PLATFORM(MAC)
189187 # Speech messages
80780

Source/WebKit2/UIProcess/API/qt/qwkpage.cpp

@@void QWKPagePrivate::paint(QPainter* pai
275275 painter->fillRect(area, Qt::white);
276276}
277277
 278void
 279QWKPagePrivate::setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled)
 280{
 281 notImplemented();
 282}
 283
278284void QWKPagePrivate::keyPressEvent(QKeyEvent* ev)
279285{
280286 page->handleKeyboardEvent(NativeWebKeyboardEvent(ev));
80780

Source/WebKit2/UIProcess/API/qt/qwkpage_p.h

@@public:
9292 virtual double customRepresentationZoomFactor() { return 1; }
9393 virtual void setCustomRepresentationZoomFactor(double) { }
9494 virtual void didChangeScrollbarsForMainFrame() const { }
 95 virtual void setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled);
9596
9697 virtual void flashBackingStoreUpdates(const Vector<WebCore::IntRect>& updateRects);
9798
80780

Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp

2828
2929#if ENABLE(PLUGIN_PROCESS)
3030
 31#if PLATFORM(MAC)
3132#include "MachPort.h"
 33#endif
3234#include "PluginProcessCreationParameters.h"
3335#include "PluginProcessManager.h"
3436#include "PluginProcessMessages.h"

@@void PluginProcessProxy::pluginProcessCr
130132 CoreIPC::ArgumentEncoder* reply = m_pendingConnectionReplies.first().second;
131133 m_pendingConnectionReplies.removeFirst();
132134
133  // FIXME: This is Mac specific.
 135#if PLATFORM(MAC)
134136 reply->encode(CoreIPC::MachPort(0, MACH_MSG_TYPE_MOVE_SEND));
 137#else
 138 // FIXME: Implement.
 139 ASSERT_NOT_REACHED();
 140#endif
135141 replyWebProcessProxy->connection()->sendSyncReply(reply);
136142 }
137143

@@void PluginProcessProxy::didFinishLaunch
198204 m_numPendingConnectionRequests = 0;
199205}
200206
 207#if PLATFORM(MAC)
201208void PluginProcessProxy::didCreateWebProcessConnection(const CoreIPC::MachPort& machPort)
202209{
203210 ASSERT(!m_pendingConnectionReplies.isEmpty());

@@void PluginProcessProxy::didCreateWebPro
207214 CoreIPC::ArgumentEncoder* reply = m_pendingConnectionReplies.first().second;
208215 m_pendingConnectionReplies.removeFirst();
209216
210  // FIXME: This is Mac specific.
211217 reply->encode(CoreIPC::MachPort(machPort.port(), MACH_MSG_TYPE_MOVE_SEND));
212218 replyWebProcessProxy->connection()->sendSyncReply(reply);
213219}
 220#endif
214221
215222void PluginProcessProxy::didGetSitesWithData(const Vector<String>& sites, uint64_t callbackID)
216223{
80780

Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h

@@private:
7777
7878 // Message handlers
7979 void didReceivePluginProcessProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
 80#if PLATFORM(MAC)
8081 void didCreateWebProcessConnection(const CoreIPC::MachPort&);
 82#endif
8183 void didGetSitesWithData(const Vector<String>& sites, uint64_t callbackID);
8284 void didClearSiteData(uint64_t callbackID);
8385
80780

Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.messages.in

2323#if ENABLE(PLUGIN_PROCESS)
2424
2525messages -> PluginProcessProxy {
26  # FIXME: This is platform specific
 26#if PLATFORM(MAC)
2727 DidCreateWebProcessConnection(CoreIPC::MachPort connectionIdentifier)
 28#endif
2829
2930 DidGetSitesWithData(Vector<WTF::String> sites, uint64_t callbackID)
3031 DidClearSiteData(uint64_t callbackID)
80780

Source/WebKit2/UIProcess/gtk/WebView.cpp

@@void WebView::didChangeScrollbarsForMain
299299{
300300}
301301
 302void WebView::setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled)
 303{
 304 notImplemented();
 305}
 306
302307void WebView::flashBackingStoreUpdates(const Vector<IntRect>&)
303308{
304309 notImplemented();
80780

Source/WebKit2/UIProcess/gtk/WebView.h

@@private:
101101 virtual PassRefPtr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy*);
102102 virtual void setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut);
103103 virtual void didChangeScrollbarsForMainFrame() const;
 104 virtual void setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled);
104105 virtual void flashBackingStoreUpdates(const Vector<WebCore::IntRect>& updateRects);
105106
106107#if USE(ACCELERATED_COMPOSITING)
80780

Source/WebKit2/UIProcess/win/WebView.cpp

@@void WebView::didChangeScrollbarsForMain
11931193{
11941194}
11951195
 1196void WebView::setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled)
 1197{
 1198}
 1199
11961200void WebView::setIsInWindow(bool isInWindow)
11971201{
11981202 m_isInWindow = isInWindow;
80780

Source/WebKit2/UIProcess/win/WebView.h

@@private:
175175 virtual void setCustomRepresentationZoomFactor(double);
176176 WebCore::DragOperation keyStateToDragOperation(DWORD grfKeyState) const;
177177 virtual void didChangeScrollbarsForMainFrame() const;
 178 virtual void setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled);
178179
179180 virtual HWND nativeWindow();
180181
80780

Source/WebKit2/WebProcess/Plugins/Plugin.h

@@public:
154154
155155 // Tells the plug-in about window visibility changes.
156156 virtual void windowVisibilityChanged(bool) = 0;
 157#endif
157158
158159 // Get the per complex text input identifier.
159160 virtual uint64_t pluginComplexTextInputIdentifier() const = 0;
160161
161162 // Send the complex text input to the plug-in.
162163 virtual void sendComplexTextInput(const String& textInput) = 0;
163 #endif
164164
165165 // Called when the private browsing state for this plug-in changes.
166166 virtual void privateBrowsingStateChanged(bool) = 0;
80780

Source/WebKit2/WebProcess/Plugins/PluginController.h

@@public:
8888 virtual HWND nativeParentWindow() = 0;
8989#endif
9090
91 #if PLATFORM(MAC)
9291 // Tells the controller that complex text input be enabled or disabled for the plug-in.
9392 virtual void setComplexTextInputEnabled(bool) = 0;
9493
 94#if PLATFORM(MAC)
9595 // Returns the mach port of the compositing render server.
9696 virtual mach_port_t compositingRenderServerPort() = 0;
9797#endif
80780

Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.cpp

3030
3131#include "ArgumentDecoder.h"
3232#include "ArgumentEncoder.h"
 33#if PLATFORM(MAC)
3334#include "MachPort.h"
 35#endif
3436#include "PluginProcessConnection.h"
3537#include "WebCoreArgumentCoders.h"
3638#include "WebProcess.h"

@@PluginProcessConnection* PluginProcessCo
6163 }
6264
6365 CoreIPC::Connection::Identifier connectionIdentifier;
 66#if PLATFORM(MAC)
6467 CoreIPC::MachPort connectionMachPort;
6568 if (!WebProcess::shared().connection()->deprecatedSendSync(WebProcessProxyLegacyMessage::GetPluginProcessConnection, 0, CoreIPC::In(pluginPath), CoreIPC::Out(connectionMachPort)))
6669 return 0;
6770
6871 connectionIdentifier = connectionMachPort.port();
 72#else
 73 // FIXME: Implement.
 74 connectionIdentifier = 0;
 75 ASSERT_NOT_REACHED();
 76#endif
6977 if (!connectionIdentifier)
7078 return 0;
7179
80780

Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp

@@void PluginProxy::windowVisibilityChange
337337{
338338 m_connection->connection()->send(Messages::PluginControllerProxy::WindowVisibilityChanged(isVisible), m_pluginInstanceID);
339339}
 340#endif
340341
341342uint64_t PluginProxy::pluginComplexTextInputIdentifier() const
342343{

@@void PluginProxy::sendComplexTextInput(c
348349 m_connection->connection()->send(Messages::PluginControllerProxy::SendComplexTextInput(textInput), m_pluginInstanceID);
349350}
350351
351 #endif
352 
353352void PluginProxy::privateBrowsingStateChanged(bool isPrivateBrowsingEnabled)
354353{
355354 m_connection->connection()->send(Messages::PluginControllerProxy::PrivateBrowsingStateChanged(isPrivateBrowsingEnabled), m_pluginInstanceID);

@@void PluginProxy::setStatusbarText(const
440439 m_pluginController->setStatusbarText(statusbarText);
441440}
442441
443 #if PLATFORM(MAC)
444442void PluginProxy::setComplexTextInputEnabled(bool complexTextInputEnabled)
445443{
446444 m_pluginController->setComplexTextInputEnabled(complexTextInputEnabled);
447445}
448 #endif
449446
450447void PluginProxy::update(const IntRect& paintedRect)
451448{
80780

Source/WebKit2/WebProcess/Plugins/PluginProxy.h

@@private:
9292 virtual void windowFocusChanged(bool);
9393 virtual void windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates);
9494 virtual void windowVisibilityChanged(bool);
 95#endif
9596 virtual uint64_t pluginComplexTextInputIdentifier() const;
9697 virtual void sendComplexTextInput(const String& textInput);
97 #endif
9898
9999 virtual void privateBrowsingStateChanged(bool);
100100

@@private:
114114 void cancelStreamLoad(uint64_t streamID);
115115 void cancelManualStreamLoad();
116116 void setStatusbarText(const String& statusbarText);
117 #if PLATFORM(MAC)
118117 void setComplexTextInputEnabled(bool);
119 #endif
120118
121119 String m_pluginPath;
122120
80780

Source/WebKit2/WebProcess/Plugins/PluginProxy.messages.in

@@messages -> PluginProxy {
5656 # Set the status bar text.
5757 SetStatusbarText(WTF::String statusbarText)
5858
59 #if PLATFORM(MAC)
6059 # Change whether complext text input is enabled for this plug-in.
6160 SetComplexTextInputEnabled(bool complexTextInputEnabled)
62 #endif
6361}
6462
6563#endif
80780

Source/WebKit2/WebProcess/Plugins/PluginView.cpp

@@void PluginView::windowAndViewFramesChan
397397
398398 m_plugin->windowAndViewFramesChanged(windowFrameInScreenCoordinates, viewFrameInWindowCoordinates);
399399}
 400#endif
400401
401402bool PluginView::sendComplexTextInput(uint64_t pluginComplexTextInputIdentifier, const String& textInput)
402403{

@@bool PluginView::sendComplexTextInput(ui
410411 return true;
411412}
412413
413 #endif
414 
415414void PluginView::initializePlugin()
416415{
417416 if (m_isInitialized)

@@HWND PluginView::nativeParentWindow()
989988}
990989#endif
991990
992 #if PLATFORM(MAC)
993991void PluginView::setComplexTextInputEnabled(bool complexTextInputEnabled)
994992{
995993 m_webPage->send(Messages::WebPageProxy::SetComplexTextInputEnabled(m_plugin->pluginComplexTextInputIdentifier(), complexTextInputEnabled));
996994}
997995
 996#if PLATFORM(MAC)
998997mach_port_t PluginView::compositingRenderServerPort()
999998{
1000999 return WebProcess::shared().compositingRenderServerPort();
80780

Source/WebKit2/WebProcess/Plugins/PluginView.h

@@public:
6464 void setWindowIsVisible(bool);
6565 void setWindowIsFocused(bool);
6666 void windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates);
67  bool sendComplexTextInput(uint64_t pluginComplexTextInputIdentifier, const String& textInput);
6867#endif
 68 bool sendComplexTextInput(uint64_t pluginComplexTextInputIdentifier, const String& textInput);
6969
7070private:
7171 PluginView(PassRefPtr<WebCore::HTMLPlugInElement>, PassRefPtr<Plugin>, const Plugin::Parameters& parameters);

@@private:
132132#if PLATFORM(WIN)
133133 virtual HWND nativeParentWindow();
134134#endif
135 #if PLATFORM(MAC)
136135 virtual void setComplexTextInputEnabled(bool);
 136#if PLATFORM(MAC)
137137 virtual mach_port_t compositingRenderServerPort();
138138#endif
139139 virtual String proxiesForURL(const String&);
80780

Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h

@@private:
172172 virtual void windowFocusChanged(bool);
173173 virtual void windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates);
174174 virtual void windowVisibilityChanged(bool);
 175#endif
175176
176177 virtual uint64_t pluginComplexTextInputIdentifier() const;
177178 virtual void sendComplexTextInput(const String& textInput);
178 #endif
179179
180180 virtual void privateBrowsingStateChanged(bool);
181181
80780

Source/WebKit2/WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp

@@bool NetscapePlugin::platformHandleKeybo
291291 return false;
292292}
293293
 294void NetscapePlugin::sendComplexTextInput(const String& textInput)
 295{
 296 notImplemented();
 297}
 298
 299uint64_t NetscapePlugin::pluginComplexTextInputIdentifier() const
 300{
 301 notImplemented();
 302 // Just return a dummy value; this is only called for in-process plug-ins
 303 return static_cast<uint64_t>(reinterpret_cast<uintptr_t>(this));
 304}
 305
294306} // namespace WebKit
80780

Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp

@@bool NetscapePlugin::platformHandleKeybo
307307 return false;
308308}
309309
 310void NetscapePlugin::sendComplexTextInput(const String& textInput)
 311{
 312 notImplemented();
 313}
 314
 315uint64_t NetscapePlugin::pluginComplexTextInputIdentifier() const
 316{
 317 notImplemented();
 318 // Just return a dummy value; this is only called for in-process plug-ins
 319 return static_cast<uint64_t>(reinterpret_cast<uintptr_t>(this));
 320}
 321
310322} // namespace WebKit
80780

Source/WebKit2/WebProcess/WebPage/WebPage.cpp

109109#endif
110110
111111#if ENABLE(PLUGIN_PROCESS)
112 // FIXME: This is currently Mac-specific!
 112#if PLATFORM(MAC)
113113#include "MachPort.h"
114114#endif
 115#endif
115116
116117#if PLATFORM(QT)
117118#include "HitTestResult.h"
80780

Source/WebKit2/WebProcess/WebPage/WebPage.h

@@public:
292292
293293 static void getLocationAndLengthFromRange(WebCore::Range*, uint64_t& location, uint64_t& length);
294294
 295 void sendComplexTextInputToPlugin(uint64_t pluginComplexTextInputIdentifier, const String& textInput);
 296
295297#if PLATFORM(MAC)
296298 void registerUIProcessAccessibilityTokens(const CoreIPC::DataReference& elemenToken, const CoreIPC::DataReference& windowToken);
297299 AccessibilityWebPageObject* accessibilityRemoteObject();
298300 WebCore::IntPoint accessibilityPosition() const { return m_accessibilityPosition; }
299 
300  void sendComplexTextInputToPlugin(uint64_t pluginComplexTextInputIdentifier, const String& textInput);
301 
302301 void getMarkedRange(uint64_t& location, uint64_t& length);
303302 void characterIndexForPoint(const WebCore::IntPoint point, uint64_t& result);
304303 void firstRectForCharacterRange(uint64_t location, uint64_t length, WebCore::IntRect& resultRect);
80780

Source/WebKit2/WebProcess/WebPage/WebPage.messages.in

@@messages -> WebPage {
171171 SetCanRunBeforeUnloadConfirmPanel(bool canRunBeforeUnloadConfirmPanel)
172172 SetCanRunModal(bool canRunModal)
173173
174 #if PLATFORM(MAC)
175174 # Complex text input support for plug-ins.
176175 SendComplexTextInputToPlugin(uint64_t pluginComplexTextInputIdentifier, String textInput)
177176
 177#if PLATFORM(MAC)
178178 SetWindowIsVisible(bool windowIsVisible)
179179 WindowAndViewFramesChanged(WebCore::IntRect windowFrameInScreenCoordinates, WebCore::IntRect viewFrameInWindowCoordinates, WebCore::IntPoint accessibilityViewCoordinates)
180180 GetMarkedRange() -> (uint64_t location, uint64_t length)
80780

Source/WebKit2/WebProcess/WebPage/qt/WebPageQt.cpp

3131#include <WebCore/FocusController.h>
3232#include <WebCore/Frame.h>
3333#include <WebCore/KeyboardEvent.h>
 34#include <WebCore/NotImplemented.h>
3435#include <WebCore/Page.h>
3536#include <WebCore/PlatformKeyboardEvent.h>
3637#include <WebCore/Settings.h>

@@bool WebPage::performDefaultBehaviorForK
265266 return true;
266267}
267268
 269void WebPage::sendComplexTextInputToPlugin(uint64_t pluginComplexTextInputIdentifier, const String& textInput)
 270{
 271 // FIXME: Implement
 272 notImplemented();
 273}
 274
268275bool WebPage::platformHasLocalDataForURL(const WebCore::KURL&)
269276{
270277 // FIXME: Implement
80780

Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp

@@void WebPage::getSelectedText(String& te
342342 text = selectedRange->text();
343343}
344344
 345void WebPage::sendComplexTextInputToPlugin(uint64_t pluginComplexTextInputIdentifier, const String& textInput)
 346{
 347 // FIXME: Implement
 348}
 349
345350} // namespace WebKit
80780