<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[201956] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/201956">201956</a></dd>
<dt>Author</dt> <dd>enrica@apple.com</dd>
<dt>Date</dt> <dd>2016-06-10 17:21:16 -0700 (Fri, 10 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>REGRESSION(<a href="http://trac.webkit.org/projects/webkit/changeset/198177">r198177</a>): Cannot paste an image when the pasteboard format is mime type.
https://bugs.webkit.org/show_bug.cgi?id=158590
rdar://problem/25471371

Reviewed by Darin Adler.

Source/WebCore:

When creating a fragment from an image resource, the resource needs to
be added to the document loader before setting the src attribute to the
image element, otherwise loading is triggered and the loading fails.
In <a href="http://trac.webkit.org/projects/webkit/changeset/198177">r198177</a> the order of the operations was changed causing the bug.
This patch adds support to test the scenario where the image in the pasteboard
is available only as mime type (not WebArchive or RTFD), a situation that occurs
more frequently on iOS.

Test: editing/pasteboard/image-in-iframe.html

* editing/ios/EditorIOS.mm:
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
* editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readWebArchive):
(WebCore::Editor::WebContentReader::readRTFD):
(WebCore::Editor::WebContentReader::readRTF):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
* page/Settings.cpp:
(WebCore::Settings::setImagesEnabled):
(WebCore::Settings::setPreferMimeTypeForImages):
(WebCore::Settings::setForcePendingWebGLPolicy):
* page/Settings.h:
(WebCore::Settings::areImagesEnabled):
(WebCore::Settings::preferMimeTypeForImages):
(WebCore::Settings::arePluginsEnabled):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
(WebCore::InternalSettings::setPreferMimeTypeForImages):
(WebCore::InternalSettings::setImagesEnabled):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

LayoutTests:

* editing/pasteboard/image-in-iframe-expected.txt: Added.
* editing/pasteboard/image-in-iframe.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreeditingiosEditorIOSmm">trunk/Source/WebCore/editing/ios/EditorIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmacEditorMacmm">trunk/Source/WebCore/editing/mac/EditorMac.mm</a></li>
<li><a href="#trunkSourceWebCorepageSettingscpp">trunk/Source/WebCore/page/Settings.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSettingsh">trunk/Source/WebCore/page/Settings.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalSettingscpp">trunk/Source/WebCore/testing/InternalSettings.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalSettingsh">trunk/Source/WebCore/testing/InternalSettings.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalSettingsidl">trunk/Source/WebCore/testing/InternalSettings.idl</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestseditingpasteboardimageiniframeexpectedtxt">trunk/LayoutTests/editing/pasteboard/image-in-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestseditingpasteboardimageiniframehtml">trunk/LayoutTests/editing/pasteboard/image-in-iframe.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (201955 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-06-11 00:20:05 UTC (rev 201955)
+++ trunk/LayoutTests/ChangeLog        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-06-10  Enrica Casucci  &lt;enrica@apple.com&gt;
+
+        REGRESSION(r198177): Cannot paste an image when the pasteboard format is mime type.
+        https://bugs.webkit.org/show_bug.cgi?id=158590
+        rdar://problem/25471371
+
+        Reviewed by Darin Adler.
+
+        * editing/pasteboard/image-in-iframe-expected.txt: Added.
+        * editing/pasteboard/image-in-iframe.html: Added.
+
</ins><span class="cx"> 2016-06-10  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Marking imported/blink/storage/indexeddb/blob-delete-objectstore-db.html as flaky on Yosemite Release WK2
</span></span></pre></div>
<a id="trunkLayoutTestseditingpasteboardimageiniframeexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/editing/pasteboard/image-in-iframe-expected.txt (0 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/pasteboard/image-in-iframe-expected.txt                                (rev 0)
+++ trunk/LayoutTests/editing/pasteboard/image-in-iframe-expected.txt        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x276
+  RenderBlock {HTML} at (0,0) size 800x276
+    RenderBody {BODY} at (8,8) size 784x260
+      RenderBlock {DIV} at (0,0) size 502x102 [border: (1px solid #FF0000)]
+        RenderImage {IMG} at (1,1) size 76x103
+      RenderBlock (anonymous) at (0,102) size 784x158
+        RenderIFrame {IFRAME} at (0,0) size 304x154 [border: (2px inset #000000)]
+          layer at (0,0) size 300x150
+            RenderView at (0,0) size 300x150
+          layer at (0,0) size 300x150
+            RenderBlock {HTML} at (0,0) size 300x150
+              RenderBody {BODY} at (0,0) size 300x150
+                RenderImage {IMG} at (0,0) size 76x103
+        RenderText {#text} at (0,0) size 0x0
+        RenderText {#text} at (0,0) size 0x0
+caret: position 1 of child 0 {IMG} of child 1 {DIV} of body
</ins></span></pre></div>
<a id="trunkLayoutTestseditingpasteboardimageiniframehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/editing/pasteboard/image-in-iframe.html (0 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/pasteboard/image-in-iframe.html                                (rev 0)
+++ trunk/LayoutTests/editing/pasteboard/image-in-iframe.html        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;body&gt;
+&lt;div id=&quot;destination&quot; contenteditable=&quot;true&quot; style=&quot;width: 500px; height: 100px; border: solid red 1px&quot;&gt;&lt;/div&gt;
+&lt;iframe id=&quot;iframe&quot; src=&quot;../resources/abe.png&quot; onload=&quot;selectInFrame()&quot;&gt;&lt;/iframe&gt;
+&lt;/body&gt;
+&lt;script&gt;
+    function selectInFrame() {
+        if (window.internals)
+            window.internals.settings.setPreferMIMETypeForImages(true);
+        var iframe = document.getElementById(&quot;iframe&quot;);
+        var iframeDocument = iframe.contentDocument;
+        var destination = document.getElementById(&quot;destination&quot;);
+        iframeDocument.body.focus();
+        iframeDocument.execCommand(&quot;SelectAll&quot;);
+        iframeDocument.execCommand(&quot;Copy&quot;);
+        destination.focus();
+        document.execCommand(&quot;Paste&quot;);
+    }
+&lt;/script&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (201955 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-06-11 00:20:05 UTC (rev 201955)
+++ trunk/Source/WebCore/ChangeLog        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -1,3 +1,44 @@
</span><ins>+2016-06-10  Enrica Casucci  &lt;enrica@apple.com&gt;
+
+        REGRESSION(r198177): Cannot paste an image when the pasteboard format is mime type.
+        https://bugs.webkit.org/show_bug.cgi?id=158590
+        rdar://problem/25471371
+
+        Reviewed by Darin Adler.
+
+        When creating a fragment from an image resource, the resource needs to
+        be added to the document loader before setting the src attribute to the
+        image element, otherwise loading is triggered and the loading fails.
+        In r198177 the order of the operations was changed causing the bug.
+        This patch adds support to test the scenario where the image in the pasteboard
+        is available only as mime type (not WebArchive or RTFD), a situation that occurs
+        more frequently on iOS.
+
+        Test: editing/pasteboard/image-in-iframe.html
+
+        * editing/ios/EditorIOS.mm:
+        (WebCore::Editor::createFragmentForImageResourceAndAddResource):
+        * editing/mac/EditorMac.mm:
+        (WebCore::Editor::WebContentReader::readWebArchive):
+        (WebCore::Editor::WebContentReader::readRTFD):
+        (WebCore::Editor::WebContentReader::readRTF):
+        (WebCore::Editor::createFragmentForImageResourceAndAddResource):
+        * page/Settings.cpp:
+        (WebCore::Settings::setImagesEnabled):
+        (WebCore::Settings::setPreferMimeTypeForImages):
+        (WebCore::Settings::setForcePendingWebGLPolicy):
+        * page/Settings.h:
+        (WebCore::Settings::areImagesEnabled):
+        (WebCore::Settings::preferMimeTypeForImages):
+        (WebCore::Settings::arePluginsEnabled):
+        * testing/InternalSettings.cpp:
+        (WebCore::InternalSettings::Backup::restoreTo):
+        (WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
+        (WebCore::InternalSettings::setPreferMimeTypeForImages):
+        (WebCore::InternalSettings::setImagesEnabled):
+        * testing/InternalSettings.h:
+        * testing/InternalSettings.idl:
+
</ins><span class="cx"> 2016-06-10  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix WinCairo build after r201943
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingiosEditorIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ios/EditorIOS.mm (201955 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ios/EditorIOS.mm        2016-06-11 00:20:05 UTC (rev 201955)
+++ trunk/Source/WebCore/editing/ios/EditorIOS.mm        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -38,6 +38,7 @@
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><span class="cx"> #include &quot;FrameLoaderClient.h&quot;
</span><span class="cx"> #include &quot;HTMLConverter.h&quot;
</span><ins>+#include &quot;HTMLImageElement.h&quot;
</ins><span class="cx"> #include &quot;HTMLInputElement.h&quot;
</span><span class="cx"> #include &quot;HTMLNames.h&quot;
</span><span class="cx"> #include &quot;HTMLParserIdioms.h&quot;
</span><span class="lines">@@ -579,15 +580,15 @@
</span><span class="cx">     if (!resource)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; imageElement = m_frame.document()-&gt;createElement(HTMLNames::imgTag, false);
-
</del><span class="cx">     NSURL *URL = resource-&gt;url();
</span><del>-    imageElement-&gt;setAttribute(HTMLNames::srcAttr, [URL isFileURL] ? [URL absoluteString] : resource-&gt;url());
</del><ins>+    String resourceURL = [URL isFileURL] ? [URL absoluteString] : resource-&gt;url();
</ins><span class="cx"> 
</span><del>-    // FIXME: The code in createFragmentAndAddResources calls setDefersLoading(true). Don't we need that here?
</del><span class="cx">     if (DocumentLoader* loader = m_frame.loader().documentLoader())
</span><span class="cx">         loader-&gt;addArchiveResource(resource.releaseNonNull());
</span><span class="cx"> 
</span><ins>+    auto imageElement = HTMLImageElement::create(*m_frame.document());
+    imageElement-&gt;setAttributeWithoutSynchronization(HTMLNames::srcAttr, resourceURL);
+
</ins><span class="cx">     auto fragment = m_frame.document()-&gt;createDocumentFragment();
</span><span class="cx">     fragment-&gt;appendChild(imageElement);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmacEditorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/mac/EditorMac.mm (201955 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/mac/EditorMac.mm        2016-06-11 00:20:05 UTC (rev 201955)
+++ trunk/Source/WebCore/editing/mac/EditorMac.mm        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -44,6 +44,7 @@
</span><span class="cx"> #import &quot;HTMLAttachmentElement.h&quot;
</span><span class="cx"> #import &quot;HTMLConverter.h&quot;
</span><span class="cx"> #import &quot;HTMLElement.h&quot;
</span><ins>+#include &quot;HTMLImageElement.h&quot;
</ins><span class="cx"> #import &quot;HTMLNames.h&quot;
</span><span class="cx"> #import &quot;LegacyWebArchive.h&quot;
</span><span class="cx"> #import &quot;MIMETypeRegistry.h&quot;
</span><span class="lines">@@ -56,6 +57,7 @@
</span><span class="cx"> #import &quot;RenderBlock.h&quot;
</span><span class="cx"> #import &quot;RenderImage.h&quot;
</span><span class="cx"> #import &quot;RuntimeApplicationChecks.h&quot;
</span><ins>+#import &quot;Settings.h&quot;
</ins><span class="cx"> #import &quot;Sound.h&quot;
</span><span class="cx"> #import &quot;StyleProperties.h&quot;
</span><span class="cx"> #import &quot;Text.h&quot;
</span><span class="lines">@@ -474,6 +476,9 @@
</span><span class="cx"> 
</span><span class="cx"> bool Editor::WebContentReader::readWebArchive(SharedBuffer* buffer)
</span><span class="cx"> {
</span><ins>+    if (frame.settings().preferMIMETypeForImages())
+        return false;
+
</ins><span class="cx">     if (!frame.document())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="lines">@@ -560,12 +565,18 @@
</span><span class="cx"> 
</span><span class="cx"> bool Editor::WebContentReader::readRTFD(SharedBuffer&amp; buffer)
</span><span class="cx"> {
</span><ins>+    if (frame.settings().preferMIMETypeForImages())
+        return false;
+
</ins><span class="cx">     fragment = frame.editor().createFragmentAndAddResources(adoptNS([[NSAttributedString alloc] initWithRTFD:buffer.createNSData().get() documentAttributes:nullptr]).get());
</span><span class="cx">     return fragment;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Editor::WebContentReader::readRTF(SharedBuffer&amp; buffer)
</span><span class="cx"> {
</span><ins>+    if (frame.settings().preferMIMETypeForImages())
+        return false;
+
</ins><span class="cx">     fragment = frame.editor().createFragmentAndAddResources(adoptNS([[NSAttributedString alloc] initWithRTF:buffer.createNSData().get() documentAttributes:nullptr]).get());
</span><span class="cx">     return fragment;
</span><span class="cx"> }
</span><span class="lines">@@ -623,13 +634,13 @@
</span><span class="cx">     if (!resource)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    auto imageElement = document().createElement(HTMLNames::imgTag, false);
-    imageElement-&gt;setAttribute(HTMLNames::srcAttr, resource-&gt;url().string());
-
-    // FIXME: The code in createFragmentAndAddResources calls setDefersLoading(true). Don't we need that here?
</del><ins>+    String resourceURL = resource-&gt;url().string();
</ins><span class="cx">     if (DocumentLoader* loader = m_frame.loader().documentLoader())
</span><span class="cx">         loader-&gt;addArchiveResource(resource.releaseNonNull());
</span><span class="cx"> 
</span><ins>+    auto imageElement = HTMLImageElement::create(*m_frame.document());
+    imageElement-&gt;setAttributeWithoutSynchronization(HTMLNames::srcAttr, resourceURL);
+
</ins><span class="cx">     auto fragment = document().createDocumentFragment();
</span><span class="cx">     fragment-&gt;appendChild(imageElement);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageSettingscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Settings.cpp (201955 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Settings.cpp        2016-06-11 00:20:05 UTC (rev 201955)
+++ trunk/Source/WebCore/page/Settings.cpp        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -419,6 +419,11 @@
</span><span class="cx">     m_setImageLoadingSettingsTimer.startOneShot(0);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void Settings::setPreferMIMETypeForImages(bool preferMIMETypeForImages)
+{
+    m_preferMIMETypeForImages = preferMIMETypeForImages;
+}
+
</ins><span class="cx"> void Settings::setForcePendingWebGLPolicy(bool forced)
</span><span class="cx"> {
</span><span class="cx">     m_forcePendingWebGLPolicy = forced;
</span></span></pre></div>
<a id="trunkSourceWebCorepageSettingsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Settings.h (201955 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Settings.h        2016-06-11 00:20:05 UTC (rev 201955)
+++ trunk/Source/WebCore/page/Settings.h        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -143,6 +143,9 @@
</span><span class="cx">     WEBCORE_EXPORT void setImagesEnabled(bool);
</span><span class="cx">     bool areImagesEnabled() const { return m_areImagesEnabled; }
</span><span class="cx"> 
</span><ins>+    WEBCORE_EXPORT void setPreferMIMETypeForImages(bool);
+    bool preferMIMETypeForImages() const { return m_preferMIMETypeForImages; }
+
</ins><span class="cx">     WEBCORE_EXPORT void setPluginsEnabled(bool);
</span><span class="cx">     bool arePluginsEnabled() const { return m_arePluginsEnabled; }
</span><span class="cx"> 
</span><span class="lines">@@ -320,6 +323,7 @@
</span><span class="cx">     bool m_isJavaEnabledForLocalFiles : 1;
</span><span class="cx">     bool m_loadsImagesAutomatically : 1;
</span><span class="cx">     bool m_areImagesEnabled : 1;
</span><ins>+    bool m_preferMIMETypeForImages : 1;
</ins><span class="cx">     bool m_arePluginsEnabled : 1;
</span><span class="cx">     bool m_isScriptEnabled : 1;
</span><span class="cx">     bool m_needsAdobeFrameReloadingQuirk : 1;
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalSettingscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/InternalSettings.cpp (201955 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/InternalSettings.cpp        2016-06-11 00:20:05 UTC (rev 201955)
+++ trunk/Source/WebCore/testing/InternalSettings.cpp        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -157,6 +157,7 @@
</span><span class="cx">     settings.setCanvasUsesAcceleratedDrawing(m_originalCanvasUsesAcceleratedDrawing);
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setLangAttributeAwareFormControlUIEnabled(m_langAttributeAwareFormControlUIEnabled);
</span><span class="cx">     settings.setImagesEnabled(m_imagesEnabled);
</span><ins>+    settings.setPreferMIMETypeForImages(m_preferMIMETypeForImages);
</ins><span class="cx">     settings.setMinimumDOMTimerInterval(m_minimumTimerInterval);
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">     settings.setShouldDisplaySubtitles(m_shouldDisplaySubtitles);
</span><span class="lines">@@ -469,6 +470,12 @@
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setLangAttributeAwareFormControlUIEnabled(enabled);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void InternalSettings::setPreferMIMETypeForImages(bool preferMIMETypeForImages, ExceptionCode &amp;ec)
+{
+    InternalSettingsGuardForSettings();
+    settings()-&gt;setPreferMIMETypeForImages(preferMIMETypeForImages);
+}
+
</ins><span class="cx"> void InternalSettings::setImagesEnabled(bool enabled, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     InternalSettingsGuardForSettings();
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalSettingsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/InternalSettings.h (201955 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/InternalSettings.h        2016-06-11 00:20:05 UTC (rev 201955)
+++ trunk/Source/WebCore/testing/InternalSettings.h        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -79,6 +79,7 @@
</span><span class="cx">         bool m_originalUsesOverlayScrollbars;
</span><span class="cx">         bool m_langAttributeAwareFormControlUIEnabled;
</span><span class="cx">         bool m_imagesEnabled;
</span><ins>+        bool m_preferMIMETypeForImages;
</ins><span class="cx">         std::chrono::milliseconds m_minimumTimerInterval;
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">         bool m_shouldDisplaySubtitles;
</span><span class="lines">@@ -139,6 +140,7 @@
</span><span class="cx">     void setCanStartMedia(bool, ExceptionCode&amp;);
</span><span class="cx">     void setWirelessPlaybackDisabled(bool);
</span><span class="cx">     void setEditingBehavior(const String&amp;, ExceptionCode&amp;);
</span><ins>+    void setPreferMIMETypeForImages(bool, ExceptionCode&amp;);
</ins><span class="cx">     void setShouldDisplayTrackKind(const String&amp; kind, bool enabled, ExceptionCode&amp;);
</span><span class="cx">     bool shouldDisplayTrackKind(const String&amp; kind, ExceptionCode&amp;);
</span><span class="cx">     void setStorageBlockingPolicy(const String&amp;, ExceptionCode&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalSettingsidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/InternalSettings.idl (201955 => 201956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/InternalSettings.idl        2016-06-11 00:20:05 UTC (rev 201955)
+++ trunk/Source/WebCore/testing/InternalSettings.idl        2016-06-11 00:21:16 UTC (rev 201956)
</span><span class="lines">@@ -63,6 +63,7 @@
</span><span class="cx">     [RaisesException] void setEditingBehavior(DOMString behavior);
</span><span class="cx">     [RaisesException] void setShouldConvertPositionStyleOnCopy(boolean convert);
</span><span class="cx">     void setLangAttributeAwareFormControlUIEnabled(boolean enabled);
</span><ins>+    [RaisesException] void setPreferMIMETypeForImages(boolean preferMimeTypeForImage);
</ins><span class="cx"> 
</span><span class="cx">     // Other switches
</span><span class="cx">     [RaisesException] void setStorageBlockingPolicy(DOMString policy);
</span></span></pre>
</div>
</div>

</body>
</html>