Title: [229676] tags/Safari-606.1.9.3/Source/WebKit

Diff

Modified: tags/Safari-606.1.9.3/Source/WebKit/ChangeLog (229675 => 229676)


--- tags/Safari-606.1.9.3/Source/WebKit/ChangeLog	2018-03-16 18:33:48 UTC (rev 229675)
+++ tags/Safari-606.1.9.3/Source/WebKit/ChangeLog	2018-03-16 18:38:04 UTC (rev 229676)
@@ -1,3 +1,26 @@
+2018-03-16  Jason Marcell  <[email protected]>
+
+        Cherry-pick r229629. rdar://problem/38439218
+
+    2018-03-15  Brent Fulgham  <[email protected]>
+
+            REGRESSION(r229484): Plugins often require CGS Connections to draw
+            https://bugs.webkit.org/show_bug.cgi?id=183663
+            <rdar://problem/38439218>
+
+            Reviewed by Per Arne Vollan.
+
+            Flash requires an active CGSConnection to work properly. Since we don't want the WebContent
+            process to have on, create a new plugin process-specific layer host creation method that
+            gives this access.
+
+            * Platform/mac/LayerHostingContext.h:
+            * Platform/mac/LayerHostingContext.mm:
+            (WebKit::LayerHostingContext::createForExternalPluginHostingProcess): Added.
+            * PluginProcess/mac/PluginControllerProxyMac.mm:
+            (WebKit::PluginControllerProxy::updateLayerHostingContext): Use the new creation
+            method.
+
 2018-03-13  Jason Marcell  <[email protected]>
 
         Revert r229512. rdar://problem/38435829

Modified: tags/Safari-606.1.9.3/Source/WebKit/Platform/mac/LayerHostingContext.h (229675 => 229676)


--- tags/Safari-606.1.9.3/Source/WebKit/Platform/mac/LayerHostingContext.h	2018-03-16 18:33:48 UTC (rev 229675)
+++ tags/Safari-606.1.9.3/Source/WebKit/Platform/mac/LayerHostingContext.h	2018-03-16 18:38:04 UTC (rev 229676)
@@ -46,7 +46,10 @@
     static std::unique_ptr<LayerHostingContext> createForPort(const WebCore::MachSendRight& serverPort);
 #if HAVE(OUT_OF_PROCESS_LAYER_HOSTING)
     static std::unique_ptr<LayerHostingContext> createForExternalHostingProcess();
+#if PLATFORM(MAC)
+    static std::unique_ptr<LayerHostingContext> createForExternalPluginHostingProcess();
 #endif
+#endif
 
     LayerHostingContext();
     ~LayerHostingContext();

Modified: tags/Safari-606.1.9.3/Source/WebKit/Platform/mac/LayerHostingContext.mm (229675 => 229676)


--- tags/Safari-606.1.9.3/Source/WebKit/Platform/mac/LayerHostingContext.mm	2018-03-16 18:33:48 UTC (rev 229675)
+++ tags/Safari-606.1.9.3/Source/WebKit/Platform/mac/LayerHostingContext.mm	2018-03-16 18:38:04 UTC (rev 229676)
@@ -72,7 +72,17 @@
     
     return layerHostingContext;
 }
+
+#if PLATFORM(MAC)
+std::unique_ptr<LayerHostingContext> LayerHostingContext::createForExternalPluginHostingProcess()
+{
+    auto layerHostingContext = std::make_unique<LayerHostingContext>();
+    layerHostingContext->m_layerHostingMode = LayerHostingMode::OutOfProcess;
+    layerHostingContext->m_context = [CAContext contextWithCGSConnection:CGSMainConnectionID() options:@{ kCAContextCIFilterBehavior : @"ignore" }];
+    return layerHostingContext;
+}
 #endif
+#endif // HAVE(OUT_OF_PROCESS_LAYER_HOSTING)
 
 LayerHostingContext::LayerHostingContext()
 {

Modified: tags/Safari-606.1.9.3/Source/WebKit/PluginProcess/mac/PluginControllerProxyMac.mm (229675 => 229676)


--- tags/Safari-606.1.9.3/Source/WebKit/PluginProcess/mac/PluginControllerProxyMac.mm	2018-03-16 18:33:48 UTC (rev 229675)
+++ tags/Safari-606.1.9.3/Source/WebKit/PluginProcess/mac/PluginControllerProxyMac.mm	2018-03-16 18:38:04 UTC (rev 229676)
@@ -130,7 +130,7 @@
             break;
 #if HAVE(OUT_OF_PROCESS_LAYER_HOSTING)
         case LayerHostingMode::OutOfProcess:
-            m_layerHostingContext = LayerHostingContext::createForExternalHostingProcess();
+            m_layerHostingContext = LayerHostingContext::createForExternalPluginHostingProcess();
             break;
 #endif
     }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to