Title: [116794] trunk/Source/WebCore
- Revision
- 116794
- Author
- [email protected]
- Date
- 2012-05-11 12:40:30 -0700 (Fri, 11 May 2012)
Log Message
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):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (116793 => 116794)
--- trunk/Source/WebCore/ChangeLog 2012-05-11 19:21:53 UTC (rev 116793)
+++ trunk/Source/WebCore/ChangeLog 2012-05-11 19:40:30 UTC (rev 116794)
@@ -1,3 +1,21 @@
+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-11 Simon Fraser <[email protected]>
CVDisplayLink keeps running after a single requestAnimationFrame
Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp (116793 => 116794)
--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp 2012-05-11 19:21:53 UTC (rev 116793)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp 2012-05-11 19:40:30 UTC (rev 116794)
@@ -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: trunk/Source/WebCore/rendering/RenderEmbeddedObject.h (116793 => 116794)
--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.h 2012-05-11 19:21:53 UTC (rev 116793)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.h 2012-05-11 19:40:30 UTC (rev 116794)
@@ -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