Title: [266792] branches/safari-610-branch/Source/WebKit
Revision
266792
Author
[email protected]
Date
2020-09-09 11:23:27 -0700 (Wed, 09 Sep 2020)

Log Message

Cherry-pick r266756. rdar://problem/68584247

    Crashtracer inside PDFPlugin::createScrollbar.
    <rdar://problem/68474062> and https://bugs.webkit.org/show_bug.cgi?id=216286

    Reviewed by Tim Horton.

    To quote Tim from r264945:
    No new tests; timing is such that I can't reproduce without inserting
    intentional delays into the main thread hops, which is further than
    I'm willing to go for a test.

    This is a speculative fix due to the aforementioned reproducibility issue.

    * WebProcess/Plugins/PDF/PDFPlugin.mm:
    (WebKit::PDFPlugin::createScrollbar): Plugin hasn't been destroyed, and there's still a PluginView,
      but the PluginView isn't in a frame. So null check that.

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266756 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-610-branch/Source/WebKit/ChangeLog (266791 => 266792)


--- branches/safari-610-branch/Source/WebKit/ChangeLog	2020-09-09 18:23:23 UTC (rev 266791)
+++ branches/safari-610-branch/Source/WebKit/ChangeLog	2020-09-09 18:23:27 UTC (rev 266792)
@@ -1,3 +1,44 @@
+2020-09-09  Alan Coon  <[email protected]>
+
+        Cherry-pick r266756. rdar://problem/68584247
+
+    Crashtracer inside PDFPlugin::createScrollbar.
+    <rdar://problem/68474062> and https://bugs.webkit.org/show_bug.cgi?id=216286
+    
+    Reviewed by Tim Horton.
+    
+    To quote Tim from r264945:
+    No new tests; timing is such that I can't reproduce without inserting
+    intentional delays into the main thread hops, which is further than
+    I'm willing to go for a test.
+    
+    This is a speculative fix due to the aforementioned reproducibility issue.
+    
+    * WebProcess/Plugins/PDF/PDFPlugin.mm:
+    (WebKit::PDFPlugin::createScrollbar): Plugin hasn't been destroyed, and there's still a PluginView,
+      but the PluginView isn't in a frame. So null check that.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266756 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-09-08  Brady Eidson  <[email protected]>
+
+            Crashtracer inside PDFPlugin::createScrollbar.
+            <rdar://problem/68474062> and https://bugs.webkit.org/show_bug.cgi?id=216286
+
+            Reviewed by Tim Horton.
+
+            To quote Tim from r264945:
+            No new tests; timing is such that I can't reproduce without inserting
+            intentional delays into the main thread hops, which is further than
+            I'm willing to go for a test.
+
+            This is a speculative fix due to the aforementioned reproducibility issue.
+
+            * WebProcess/Plugins/PDF/PDFPlugin.mm:
+            (WebKit::PDFPlugin::createScrollbar): Plugin hasn't been destroyed, and there's still a PluginView,
+              but the PluginView isn't in a frame. So null check that.
+
 2020-09-03  Alan Coon  <[email protected]>
 
         Cherry-pick r266265. rdar://problem/68168939

Modified: branches/safari-610-branch/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm (266791 => 266792)


--- branches/safari-610-branch/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm	2020-09-09 18:23:23 UTC (rev 266791)
+++ branches/safari-610-branch/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm	2020-09-09 18:23:27 UTC (rev 266792)
@@ -1309,6 +1309,7 @@
         [m_containerLayer addSublayer:m_verticalScrollbarLayer.get()];
     }
     didAddScrollbar(widget.ptr(), orientation);
+
     if (auto* frame = m_frame.coreFrame()) {
         if (Page* page = frame->page()) {
             if (page->isMonitoringWheelEvents())
@@ -1315,7 +1316,14 @@
                 scrollAnimator().setWheelEventTestMonitor(page->wheelEventTestMonitor());
         }
     }
-    pluginView()->frame()->view()->addChild(widget);
+
+    // Is it ever possible that the code above and the code below can ever get at different Frames?
+    // Can't we settle on one Frame accessor?
+    if (auto* frame = pluginView()->frame()) {
+        if (auto* frameView = frame->view())
+            frameView->addChild(widget);
+    }
+
     return widget;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to