Title: [117140] branches/safari-536-branch/Source/WebCore

Diff

Modified: branches/safari-536-branch/Source/WebCore/ChangeLog (117139 => 117140)


--- branches/safari-536-branch/Source/WebCore/ChangeLog	2012-05-15 20:20:23 UTC (rev 117139)
+++ branches/safari-536-branch/Source/WebCore/ChangeLog	2012-05-15 20:22:36 UTC (rev 117140)
@@ -1,5 +1,27 @@
 2012-05-15  Lucas Forschler  <[email protected]>
 
+    Merge 116794
+
+    2012-05-11  Anders Carlsson  <[email protected]>
+
+            REGRESSION(r116687): [Chromium] plugins/embed-attributes-style.html shows a garbled string
+            https://bugs.webkit.org/show_bug.cgi?id=86170
+
+            Reviewed by Andreas Kling.
+
+            The string we are passing to the TextRun constructor needs to stay alive for longer so revert back to the old
+            behavior where we store it as a member variable.
+
+            * rendering/RenderEmbeddedObject.cpp:
+            (WebCore::unavailablePluginReplacementText):
+            (WebCore):
+            (WebCore::RenderEmbeddedObject::setPluginUnavailabilityReason):
+            (WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
+            * rendering/RenderEmbeddedObject.h:
+            (RenderEmbeddedObject):
+
+2012-05-15  Lucas Forschler  <[email protected]>
+
     Merge 116695
 
     2012-05-10  Anders Carlsson  <[email protected]>

Modified: branches/safari-536-branch/Source/WebCore/rendering/RenderEmbeddedObject.cpp (117139 => 117140)


--- branches/safari-536-branch/Source/WebCore/rendering/RenderEmbeddedObject.cpp	2012-05-15 20:20:23 UTC (rev 117139)
+++ branches/safari-536-branch/Source/WebCore/rendering/RenderEmbeddedObject.cpp	2012-05-15 20:22:36 UTC (rev 117140)
@@ -102,11 +102,28 @@
 }
 #endif
 
+static String unavailablePluginReplacementText(RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason)
+{
+    switch (pluginUnavailabilityReason) {
+    case RenderEmbeddedObject::PluginMissing:
+        return missingPluginText();
+    case RenderEmbeddedObject::PluginCrashed:
+        return crashedPluginText();
+    case RenderEmbeddedObject::InsecurePluginVersion:
+        return insecurePluginVersionText();
+    }
+
+    ASSERT_NOT_REACHED();
+    return String();
+}
+
 void RenderEmbeddedObject::setPluginUnavailabilityReason(PluginUnavailabilityReason pluginUnavailabilityReason)
 {
     ASSERT(!m_showsUnavailablePluginIndicator);
     m_showsUnavailablePluginIndicator = true;
     m_pluginUnavailabilityReason = pluginUnavailabilityReason;
+
+    m_unavailablePluginReplacementText = unavailablePluginReplacementText(pluginUnavailabilityReason);
 }
 
 bool RenderEmbeddedObject::showsUnavailablePluginIndicator() const
@@ -193,8 +210,8 @@
     fontDescription.setComputedSize(fontDescription.specifiedSize());
     font = Font(fontDescription, 0, 0);
     font.update(0);
-    
-    run = TextRun(unavailablePluginReplacementText());
+
+    run = TextRun(m_unavailablePluginReplacementText);
     textWidth = font.width(run);
     
     replacementTextRect.setSize(FloatSize(textWidth + replacementTextRoundedRectLeftRightTextMargin * 2, replacementTextRoundedRectHeight));
@@ -207,21 +224,6 @@
     return true;
 }
 
-String RenderEmbeddedObject::unavailablePluginReplacementText() const
-{
-    switch (m_pluginUnavailabilityReason) {
-    case PluginMissing:
-        return missingPluginText();
-    case PluginCrashed:
-        return crashedPluginText();
-    case InsecurePluginVersion:
-        return insecurePluginVersionText();
-    }
-
-    ASSERT_NOT_REACHED();
-    return String();
-}
-
 void RenderEmbeddedObject::layout()
 {
     ASSERT(needsLayout());

Modified: branches/safari-536-branch/Source/WebCore/rendering/RenderEmbeddedObject.h (117139 => 117140)


--- branches/safari-536-branch/Source/WebCore/rendering/RenderEmbeddedObject.h	2012-05-15 20:20:23 UTC (rev 117139)
+++ branches/safari-536-branch/Source/WebCore/rendering/RenderEmbeddedObject.h	2012-05-15 20:22:36 UTC (rev 117140)
@@ -78,12 +78,12 @@
     bool isInUnavailablePluginIndicator(MouseEvent*) const;
     bool isInUnavailablePluginIndicator(const LayoutPoint&) const;
     bool getReplacementTextGeometry(const LayoutPoint& accumulatedOffset, FloatRect& contentRect, Path&, FloatRect& replacementTextRect, Font&, TextRun&, float& textWidth) const;
-    String unavailablePluginReplacementText() const;
 
     bool m_hasFallbackContent; // FIXME: This belongs on HTMLObjectElement.
 
     bool m_showsUnavailablePluginIndicator;
     PluginUnavailabilityReason m_pluginUnavailabilityReason;
+    String m_unavailablePluginReplacementText;
     bool m_unavailablePluginIndicatorIsPressed;
     bool m_mouseDownWasInUnavailablePluginIndicator;
 };
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to