Title: [153592] trunk/Source/WebCore
Revision
153592
Author
[email protected]
Date
2013-08-01 11:12:57 -0700 (Thu, 01 Aug 2013)

Log Message

[BlackBerry] Crash at absoluteClippedOverflowRect() in PluginView::calculateClipRect()
https://bugs.webkit.org/show_bug.cgi?id=119401

Patch by Jacky Jiang <[email protected]> on 2013-08-01.
Reviewed by George Staikos.

JIRA 462881
The renderer of the PluginView's element has been detached due to transition
to a new load. We should return an empty contentRect if there even isn't
a renderer. This is a speculative fix based on the stack trace provided.

* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::calculateClipRect):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (153591 => 153592)


--- trunk/Source/WebCore/ChangeLog	2013-08-01 17:59:44 UTC (rev 153591)
+++ trunk/Source/WebCore/ChangeLog	2013-08-01 18:12:57 UTC (rev 153592)
@@ -1,3 +1,18 @@
+2013-08-01  Jacky Jiang  <[email protected]>
+
+        [BlackBerry] Crash at absoluteClippedOverflowRect() in PluginView::calculateClipRect()
+        https://bugs.webkit.org/show_bug.cgi?id=119401
+
+        Reviewed by George Staikos.
+
+        JIRA 462881
+        The renderer of the PluginView's element has been detached due to transition
+        to a new load. We should return an empty contentRect if there even isn't
+        a renderer. This is a speculative fix based on the stack trace provided.
+
+        * plugins/blackberry/PluginViewBlackBerry.cpp:
+        (WebCore::PluginView::calculateClipRect):
+
 2013-08-01  Tim Horton  <[email protected]>
 
         Unavailable plug-in indicator arrow should be inside the rounded rect, not in its own circle

Modified: trunk/Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp (153591 => 153592)


--- trunk/Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp	2013-08-01 17:59:44 UTC (rev 153591)
+++ trunk/Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp	2013-08-01 18:12:57 UTC (rev 153592)
@@ -500,14 +500,15 @@
 {
     FrameView* frameView = toFrameView(parent());
     bool visible = frameView && isVisible();
+    RenderObject* renderer = m_element->renderer();
 
-    if (visible && frameView->width() && frameView->height()) {
+    if (visible && frameView->width() && frameView->height() && renderer) {
         IntSize windowSize = frameView->hostWindow()->platformPageClient()->viewportSize();
 
         // Get the clipped rectangle for this player within the current frame.
         IntRect visibleContentRect;
-        IntRect contentRect = m_element->renderer()->absoluteClippedOverflowRect();
-        FloatPoint contentLocal = m_element->renderer()->absoluteToLocal(FloatPoint(contentRect.location()));
+        IntRect contentRect = renderer->absoluteClippedOverflowRect();
+        FloatPoint contentLocal = renderer->absoluteToLocal(FloatPoint(contentRect.location()));
 
         contentRect.setLocation(roundedIntPoint(contentLocal));
         contentRect.move(frameRect().x(), frameRect().y());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to