Changeset 115300 in webkit
- Timestamp:
- Apr 26, 2012 3:58:03 AM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r115295 r115300 1 2012-04-26 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK][WebKit2] Initial windowed plugins implementation 4 https://bugs.webkit.org/show_bug.cgi?id=61065 5 6 Reviewed by Philippe Normand. 7 8 * PluginProcess/PluginControllerProxy.cpp: 9 (WebKit::PluginControllerProxy::createPluginContainer): 10 (WebKit::PluginControllerProxy::windowedPluginGeometryDidChange): 11 * PluginProcess/PluginControllerProxy.h: 12 * UIProcess/API/gtk/WebKitWebViewBase.cpp: 13 (webkitWebViewBaseContainerAdd): Implement GtkContainer::add(). 14 (webkitWebViewBaseContainerRemove): Implement GtkContainer::remove(). 15 (webkitWebViewBaseContainerForall): Implement GtkContainer::forall(). 16 (webkitWebViewBaseChildMoveResize): Set a new geometry for a child widget. 17 (webkitWebViewBaseChildAllocate): Allocate a child widget. 18 (resizeWebKitWebViewBaseFromAllocation): Allocate child widgets. 19 (webkit_web_view_base_class_init): 20 * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Add webkitWebViewBaseSizeAllocate(). 21 * UIProcess/WebPageProxy.h: 22 * UIProcess/WebPageProxy.messages.in: Add createPluginContainer 23 and windowedPluginGeometryDidChange messages. 24 * UIProcess/gtk/WebPageProxyGtk.cpp: 25 (WebKit::pluginWindowMap): 26 (WebKit::pluginContainerPlugRemoved): Remove the socket from the 27 hash map when its plug is removed. 28 (WebKit::WebPageProxy::createPluginContainer): Create a GtkSocket 29 as container widget for windowed plugins. 30 (WebKit::WebPageProxy::windowedPluginGeometryDidChange): Call 31 webkitWebViewBaseSizeAllocate() to update the plugin widget 32 geometry. 33 * UIProcess/qt/WebPageProxyQt.cpp: 34 (WebKit::WebPageProxy::createPluginContainer): 35 (WebKit::WebPageProxy::windowedPluginGeometryDidChange): 36 * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: 37 (WebKit::NetscapePlugin::NetscapePlugin): 38 * WebProcess/Plugins/Netscape/NetscapePlugin.h: 39 * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: 40 (WebKit::socketPlugRemovedCallback): Return TRUE to avoid the 41 socket to be destroyed, since we need to reuse it. 42 (WebKit::NetscapePlugin::platformPostInitializeWindowed): Ask the 43 ui process to create a plugin container. 44 (WebKit::NetscapePlugin::platformPostInitializeWindowless): 45 (WebKit::NetscapePlugin::platformPostInitialize): 46 (WebKit::NetscapePlugin::platformGeometryDidChange): For windowed 47 plugins notify the ui process that the plugin geometry has 48 changed. 49 (WebKit::NetscapePlugin::platformPaint): Do nothing for windowed 50 plugins, the caller already calls callSetWindow(). 51 * WebProcess/Plugins/PluginController.h: 52 * WebProcess/Plugins/PluginProxy.cpp: 53 (WebKit::PluginProxy::createPluginContainer): 54 (WebKit::PluginProxy::windowedPluginGeometryDidChange): 55 * WebProcess/Plugins/PluginProxy.h: 56 * WebProcess/Plugins/PluginProxy.messages.in: 57 * WebProcess/Plugins/PluginView.cpp: 58 (WebKit::PluginView::createPluginContainer): 59 (WebKit::PluginView::windowedPluginGeometryDidChange): 60 * WebProcess/Plugins/PluginView.h: 61 1 62 2012-04-26 Chris Fleizach2 <cfleizach@apple.com> 2 63 -
trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp
r112338 r115300 541 541 } 542 542 543 #if PLUGIN_ARCHITECTURE(X11) 544 uint64_t PluginControllerProxy::createPluginContainer() 545 { 546 uint64_t windowID = 0; 547 m_connection->connection()->sendSync(Messages::PluginProxy::CreatePluginContainer(), Messages::PluginProxy::CreatePluginContainer::Reply(windowID), m_pluginInstanceID); 548 return windowID; 549 } 550 551 void PluginControllerProxy::windowedPluginGeometryDidChange(const IntRect& frameRect, const IntRect& clipRect, uint64_t windowID) 552 { 553 m_connection->connection()->send(Messages::PluginProxy::WindowedPluginGeometryDidChange(frameRect, clipRect, windowID), m_pluginInstanceID); 554 } 555 #endif 556 543 557 } // namespace WebKit 544 558 -
trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.h
r112338 r115300 104 104 virtual void protectPluginFromDestruction(); 105 105 virtual void unprotectPluginFromDestruction(); 106 #if PLUGIN_ARCHITECTURE(X11) 107 virtual uint64_t createPluginContainer(); 108 virtual void windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID); 109 #endif 106 110 107 111 // Message handlers. -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp
r113697 r115300 56 56 #include <gdk/gdk.h> 57 57 #include <gdk/gdkkeysyms.h> 58 #include <wtf/HashMap.h> 58 59 #include <wtf/gobject/GOwnPtr.h> 59 60 #include <wtf/gobject/GRefPtr.h> … … 67 68 using namespace WebCore; 68 69 70 typedef HashMap<GtkWidget*, IntRect> WebKitWebViewChildrenMap; 71 69 72 struct _WebKitWebViewBasePrivate { 73 WebKitWebViewChildrenMap children; 70 74 OwnPtr<PageClientImpl> pageClient; 71 75 RefPtr<WebPageProxy> pageProxy; … … 164 168 static void webkitWebViewBaseContainerAdd(GtkContainer* container, GtkWidget* widget) 165 169 { 170 WebKitWebViewBase* webView = WEBKIT_WEB_VIEW_BASE(container); 171 WebKitWebViewBasePrivate* priv = webView->priv; 172 173 GtkAllocation childAllocation; 174 gtk_widget_get_allocation(widget, &childAllocation); 175 priv->children.set(widget, childAllocation); 176 166 177 gtk_widget_set_parent(widget, GTK_WIDGET(container)); 178 } 179 180 static void webkitWebViewBaseContainerRemove(GtkContainer* container, GtkWidget* widget) 181 { 182 WebKitWebViewBase* webView = WEBKIT_WEB_VIEW_BASE(container); 183 WebKitWebViewBasePrivate* priv = webView->priv; 184 GtkWidget* widgetContainer = GTK_WIDGET(container); 185 186 ASSERT(priv->children.contains(widget)); 187 gboolean wasVisible = gtk_widget_get_visible(widget); 188 gtk_widget_unparent(widget); 189 190 priv->children.remove(widget); 191 if (wasVisible && gtk_widget_get_visible(widgetContainer)) 192 gtk_widget_queue_resize(widgetContainer); 193 } 194 195 static void webkitWebViewBaseContainerForall(GtkContainer* container, gboolean includeInternals, GtkCallback callback, gpointer callbackData) 196 { 197 WebKitWebViewBase* webView = WEBKIT_WEB_VIEW_BASE(container); 198 WebKitWebViewBasePrivate* priv = webView->priv; 199 200 WebKitWebViewChildrenMap children = priv->children; 201 WebKitWebViewChildrenMap::const_iterator end = children.end(); 202 for (WebKitWebViewChildrenMap::const_iterator current = children.begin(); current != end; ++current) 203 (*callback)(current->first, callbackData); 204 } 205 206 void webkitWebViewBaseChildMoveResize(WebKitWebViewBase* webView, GtkWidget* child, const IntRect& childRect) 207 { 208 const IntRect& geometry = webView->priv->children.get(child); 209 210 if (geometry == childRect) 211 return; 212 213 webView->priv->children.set(child, childRect); 214 gtk_widget_queue_resize_no_redraw(GTK_WIDGET(webView)); 167 215 } 168 216 … … 215 263 } 216 264 265 static void webkitWebViewBaseChildAllocate(GtkWidget* child, gpointer userData) 266 { 267 if (!gtk_widget_get_visible(child)) 268 return; 269 270 WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(userData); 271 WebKitWebViewBasePrivate* priv = webViewBase->priv; 272 const IntRect& geometry = priv->children.get(child); 273 if (geometry.isEmpty()) 274 return; 275 276 GtkAllocation childAllocation = geometry; 277 gtk_widget_size_allocate(child, &childAllocation); 278 priv->children.set(child, IntRect()); 279 } 280 217 281 static void resizeWebKitWebViewBaseFromAllocation(WebKitWebViewBase* webViewBase, GtkAllocation* allocation) 218 282 { 219 WebKitWebViewBasePrivate* priv = webViewBase->priv; 220 283 gtk_container_foreach(GTK_CONTAINER(webViewBase), webkitWebViewBaseChildAllocate, webViewBase); 284 285 WebKitWebViewBasePrivate* priv = webViewBase->priv; 221 286 if (priv->pageProxy->drawingArea()) 222 287 priv->pageProxy->drawingArea()->setSize(IntSize(allocation->width, allocation->height), IntSize()); … … 251 316 resizeWebKitWebViewBaseFromAllocation(webViewBase, &allocation); 252 317 webViewBase->priv->needsResizeOnMap = false; 253 254 318 } 255 319 … … 528 592 GtkContainerClass* containerClass = GTK_CONTAINER_CLASS(webkitWebViewBaseClass); 529 593 containerClass->add = webkitWebViewBaseContainerAdd; 594 containerClass->remove = webkitWebViewBaseContainerRemove; 595 containerClass->forall = webkitWebViewBaseContainerForall; 530 596 531 597 g_type_class_add_private(webkitWebViewBaseClass, sizeof(WebKitWebViewBasePrivate)); -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h
r113697 r115300 42 42 void webkitWebViewBaseForwardNextKeyEvent(WebKitWebViewBase*); 43 43 void webkitWebViewBaseStartDrag(WebKitWebViewBase*, const WebCore::DragData&, PassRefPtr<ShareableBitmap> dragImage); 44 void webkitWebViewBaseChildMoveResize(WebKitWebViewBase*, GtkWidget*, const WebCore::IntRect&); 44 45 void webkitWebViewBaseEnterFullScreen(WebKitWebViewBase*); 45 46 void webkitWebViewBaseExitFullScreen(WebKitWebViewBase*); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r115145 r115300 894 894 void setRenderTreeSize(uint64_t treeSize) { m_renderTreeSize = treeSize; } 895 895 896 #if PLUGIN_ARCHITECTURE(X11) 897 void createPluginContainer(uint64_t& windowID); 898 void windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID); 899 #endif 900 896 901 PageClient* m_pageClient; 897 902 WebLoaderClient m_loaderClient; -
trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in
r114367 r115300 287 287 #endif 288 288 289 #if PLUGIN_ARCHITECTURE(X11) 290 # X11 windowed plugin messages 291 CreatePluginContainer() -> (uint64_t windowID) 292 WindowedPluginGeometryDidChange(WebCore::IntRect frameRect, WebCore::IntRect clipRect, uint64_t windowID) 293 #endif 294 289 295 # Search popup menus 290 296 SaveRecentSearches(WTF::String name, Vector<String> searchItems) -
trunk/Source/WebKit2/UIProcess/gtk/WebPageProxyGtk.cpp
r105503 r115300 31 31 #include "NotImplemented.h" 32 32 #include "PageClientImpl.h" 33 #include "WebKitWebViewBasePrivate.h" 34 #include <gtk/gtkx.h> 33 35 34 36 namespace WebKit { … … 65 67 } 66 68 69 typedef HashMap<uint64_t, GtkWidget* > PluginWindowMap; 70 static PluginWindowMap& pluginWindowMap() 71 { 72 DEFINE_STATIC_LOCAL(PluginWindowMap, map, ()); 73 return map; 74 } 75 76 static gboolean pluginContainerPlugRemoved(GtkSocket* socket) 77 { 78 uint64_t windowID = static_cast<uint64_t>(gtk_socket_get_id(socket)); 79 pluginWindowMap().remove(windowID); 80 return FALSE; 81 } 82 83 void WebPageProxy::createPluginContainer(uint64_t& windowID) 84 { 85 GtkWidget* socket = gtk_socket_new(); 86 g_signal_connect(socket, "plug-removed", G_CALLBACK(pluginContainerPlugRemoved), 0); 87 gtk_container_add(GTK_CONTAINER(viewWidget()), socket); 88 gtk_widget_show(socket); 89 90 windowID = static_cast<uint64_t>(gtk_socket_get_id(GTK_SOCKET(socket))); 91 pluginWindowMap().set(windowID, socket); 92 } 93 94 void WebPageProxy::windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID) 95 { 96 GtkWidget* plugin = pluginWindowMap().get(windowID); 97 if (!plugin) 98 return; 99 100 if (gtk_widget_get_realized(plugin)) { 101 GdkRectangle clip = clipRect; 102 cairo_region_t* clipRegion = cairo_region_create_rectangle(&clip); 103 gdk_window_shape_combine_region(gtk_widget_get_window(plugin), clipRegion, 0, 0); 104 cairo_region_destroy(clipRegion); 105 } 106 107 webkitWebViewBaseChildMoveResize(WEBKIT_WEB_VIEW_BASE(viewWidget()), plugin, frameRect); 108 } 109 67 110 } // namespace WebKit -
trunk/Source/WebKit2/UIProcess/qt/WebPageProxyQt.cpp
r105711 r115300 103 103 } 104 104 105 void WebPageProxy::createPluginContainer(uint64_t& windowID) 106 { 107 notImplemented(); 108 } 109 110 void WebPageProxy::windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID) 111 { 112 notImplemented(); 113 } 114 105 115 } // namespace WebKit -
trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
r114295 r115300 90 90 , m_drawable(0) 91 91 , m_pluginDisplay(0) 92 #if PLATFORM(GTK) 93 , m_platformPluginWidget(0) 94 #endif 92 95 #endif 93 96 { -
trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
r114295 r115300 235 235 #endif 236 236 237 #if PLUGIN_ARCHITECTURE(X11) 238 bool platformPostInitializeWindowed(bool needsXEmbed, uint64_t windowID); 239 bool platformPostInitializeWindowless(); 240 #endif 241 237 242 uint64_t m_nextRequestID; 238 243 … … 344 349 Pixmap m_drawable; 345 350 Display* m_pluginDisplay; 351 #if PLATFORM(GTK) 352 GtkWidget* m_platformPluginWidget; 353 #endif 346 354 347 355 public: // Need to call it in the NPN_GetValue browser callback. -
trunk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
r100725 r115300 30 30 #include "NetscapePlugin.h" 31 31 32 #include "PluginController.h" 32 33 #include "WebEvent.h" 33 34 #include <WebCore/GraphicsContext.h> … … 40 41 #include "RefPtrCairo.h" 41 42 #include <cairo/cairo-xlib.h> 43 #include <gtk/gtk.h> 44 #ifndef GTK_API_VERSION_2 45 #include <gtk/gtkx.h> 46 #endif 42 47 #include <gdk/gdkx.h> 43 48 #include <WebCore/GtkVersioning.h> … … 145 150 } 146 151 147 bool NetscapePlugin::platformPostInitialize()148 {149 152 #if PLATFORM(GTK) 150 if (moduleMixesGtkSymbols(m_pluginModule->module())) 151 return false; 152 #endif 153 154 if (m_isWindowed) 155 return false; 156 157 if (!(m_pluginDisplay = getPluginDisplay())) 158 return false; 159 160 NPSetWindowCallbackStruct* callbackStruct = new NPSetWindowCallbackStruct; 161 callbackStruct->type = 0; 153 static gboolean socketPlugRemovedCallback(GtkSocket*) 154 { 155 // Default action is to destroy the GtkSocket, so we just return TRUE here 156 // to be able to reuse the socket. For some obscure reason, newer versions 157 // of flash plugin remove the plug from the socket, probably because the plug 158 // created by the plugin is re-parented. 159 return TRUE; 160 } 161 #endif 162 163 bool NetscapePlugin::platformPostInitializeWindowed(bool needsXEmbed, uint64_t windowID) 164 { 165 m_npWindow.type = NPWindowTypeWindow; 166 if (!needsXEmbed) { 167 notImplemented(); 168 return false; 169 } 170 162 171 Display* display = x11HostDisplay(); 172 173 #if PLATFORM(GTK) 174 // It seems flash needs the socket to be in the same process, 175 // I guess it uses gdk_window_lookup(), so we create a new socket here 176 // containing a plug with the UI process socket embedded. 177 m_platformPluginWidget = gtk_plug_new(static_cast<Window>(windowID)); 178 GtkWidget* socket = gtk_socket_new(); 179 g_signal_connect(socket, "plug-removed", G_CALLBACK(socketPlugRemovedCallback), 0); 180 gtk_container_add(GTK_CONTAINER(m_platformPluginWidget), socket); 181 gtk_widget_show(socket); 182 gtk_widget_show(m_platformPluginWidget); 183 184 m_npWindow.window = GINT_TO_POINTER(gtk_socket_get_id(GTK_SOCKET(socket))); 185 GdkWindow* window = gtk_widget_get_window(socket); 186 NPSetWindowCallbackStruct* callbackStruct = static_cast<NPSetWindowCallbackStruct*>(m_npWindow.ws_info); 187 callbackStruct->display = GDK_WINDOW_XDISPLAY(window); 188 callbackStruct->visual = GDK_VISUAL_XVISUAL(gdk_window_get_visual(window)); 189 callbackStruct->depth = gdk_visual_get_depth(gdk_window_get_visual(window)); 190 callbackStruct->colormap = XCreateColormap(display, GDK_ROOT_WINDOW(), callbackStruct->visual, AllocNone); 191 #endif 192 193 XFlush(display); 194 195 callSetWindow(); 196 197 return true; 198 } 199 200 bool NetscapePlugin::platformPostInitializeWindowless() 201 { 202 Display* display = x11HostDisplay(); 203 m_npWindow.type = NPWindowTypeDrawable; 204 m_npWindow.window = 0; 205 163 206 int depth = displayDepth(); 164 207 #if PLATFORM(QT) 165 208 ASSERT(depth == 16 || depth == 24 || depth == 32); 166 209 #endif 210 NPSetWindowCallbackStruct* callbackStruct = static_cast<NPSetWindowCallbackStruct*>(m_npWindow.ws_info); 167 211 callbackStruct->display = display; 168 212 callbackStruct->depth = depth; … … 183 227 callbackStruct->colormap = XCreateColormap(display, rootWindowID(), visual, AllocNone); 184 228 185 m_npWindow.type = NPWindowTypeDrawable; 186 m_npWindow.window = 0; 229 callSetWindow(); 230 231 return true; 232 } 233 234 bool NetscapePlugin::platformPostInitialize() 235 { 236 #if PLATFORM(GTK) 237 if (moduleMixesGtkSymbols(m_pluginModule->module())) 238 return false; 239 #endif 240 241 uint64_t windowID = 0; 242 bool needsXEmbed = false; 243 if (m_isWindowed) { 244 NPP_GetValue(NPPVpluginNeedsXEmbed, &needsXEmbed); 245 if (needsXEmbed) { 246 windowID = controller()->createPluginContainer(); 247 if (!windowID) 248 return false; 249 } else { 250 notImplemented(); 251 return false; 252 } 253 } 254 255 if (!(m_pluginDisplay = getPluginDisplay())) 256 return false; 257 258 NPSetWindowCallbackStruct* callbackStruct = new NPSetWindowCallbackStruct; 259 callbackStruct->type = 0; 187 260 m_npWindow.ws_info = callbackStruct; 188 261 189 callSetWindow(); 190 191 return true; 262 if (m_isWindowed) 263 return platformPostInitializeWindowed(needsXEmbed, windowID); 264 265 return platformPostInitializeWindowless(); 192 266 } 193 267 … … 214 288 { 215 289 if (m_isWindowed) { 216 notImplemented(); 290 uint64_t windowID = 0; 291 #if PLATFORM(GTK) 292 windowID = static_cast<uint64_t>(GDK_WINDOW_XID(gtk_plug_get_socket_window(GTK_PLUG(m_platformPluginWidget)))); 293 #endif 294 IntRect clipRect(m_clipRect); 295 clipRect.move(-m_frameRectInWindowCoordinates.x(), -m_frameRectInWindowCoordinates.y()); 296 controller()->windowedPluginGeometryDidChange(m_frameRectInWindowCoordinates, clipRect, windowID); 217 297 return; 218 298 } … … 239 319 void NetscapePlugin::platformPaint(GraphicsContext* context, const IntRect& dirtyRect, bool /*isSnapshot*/) 240 320 { 241 if (m_isWindowed) { 242 notImplemented(); 321 if (m_isWindowed) 243 322 return; 244 }245 323 246 324 if (!m_isStarted) { -
trunk/Source/WebKit2/WebProcess/Plugins/PluginController.h
r111822 r115300 144 144 virtual void unprotectPluginFromDestruction() = 0; 145 145 146 #if PLUGIN_ARCHITECTURE(X11) 147 // Create a plugin container for windowed plugins 148 virtual uint64_t createPluginContainer() = 0; 149 virtual void windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID) = 0; 150 #endif 151 146 152 // Helper class for delaying destruction of a plug-in. 147 153 class PluginDestructionProtector { -
trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp
r99243 r115300 524 524 } 525 525 526 #if PLUGIN_ARCHITECTURE(X11) 527 void PluginProxy::createPluginContainer(uint64_t& windowID) 528 { 529 windowID = controller()->createPluginContainer(); 530 } 531 532 void PluginProxy::windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID) 533 { 534 controller()->windowedPluginGeometryDidChange(frameRect, clipRect, windowID); 535 } 536 #endif 537 526 538 void PluginProxy::update(const IntRect& paintedRect) 527 539 { -
trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.h
r112338 r115300 136 136 void setLayerHostingContextID(uint32_t); 137 137 #endif 138 #if PLUGIN_ARCHITECTURE(X11) 139 void createPluginContainer(uint64_t& windowID); 140 void windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID); 141 #endif 138 142 139 143 String m_pluginPath; -
trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.messages.in
r112338 r115300 67 67 SetLayerHostingContextID(uint32_t layerHostingContextID) 68 68 #endif 69 70 #if PLUGIN_ARCHITECTURE(X11) 71 # Create the plugin container for windowed plugins 72 CreatePluginContainer() -> (uint64_t windowID) 73 74 # Update geometry of windowed plugin widget 75 WindowedPluginGeometryDidChange(WebCore::IntRect frameRect, WebCore::IntRect clipRect, uint64_t windowID) 76 #endif 69 77 } 70 78 -
trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp
r114414 r115300 30 30 #include "Plugin.h" 31 31 #include "ShareableBitmap.h" 32 #include "WebCoreArgumentCoders.h" 32 33 #include "WebEvent.h" 33 34 #include "WebPage.h" … … 1252 1253 } 1253 1254 1255 #if PLUGIN_ARCHITECTURE(X11) 1256 uint64_t PluginView::createPluginContainer() 1257 { 1258 uint64_t windowID = 0; 1259 m_webPage->sendSync(Messages::WebPageProxy::CreatePluginContainer(), Messages::WebPageProxy::CreatePluginContainer::Reply(windowID)); 1260 return windowID; 1261 } 1262 1263 void PluginView::windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID) 1264 { 1265 m_webPage->send(Messages::WebPageProxy::WindowedPluginGeometryDidChange(frameRect, clipRect, windowID)); 1266 } 1267 #endif 1268 1254 1269 } // namespace WebKit -
trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h
r114476 r115300 161 161 virtual void protectPluginFromDestruction(); 162 162 virtual void unprotectPluginFromDestruction(); 163 #if PLUGIN_ARCHITECTURE(X11) 164 virtual uint64_t createPluginContainer(); 165 virtual void windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID); 166 #endif 163 167 164 168 // WebFrame::LoadListener
Note: See TracChangeset
for help on using the changeset viewer.