<!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>[201200] branches/safari-602.1.32-branch</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/201200">201200</a></dd>
<dt>Author</dt> <dd>bshafiei@apple.com</dd>
<dt>Date</dt> <dd>2016-05-19 16:48:01 -0700 (Thu, 19 May 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/201187">r201187</a>. rdar://problem/25314776</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#branchessafari602132branchLayoutTestsChangeLog">branches/safari-602.1.32-branch/LayoutTests/ChangeLog</a></li>
<li><a href="#branchessafari602132branchLayoutTestsmediavideotestjs">branches/safari-602.1.32-branch/LayoutTests/media/video-test.js</a></li>
<li><a href="#branchessafari602132branchSourceWebCoreChangeLog">branches/safari-602.1.32-branch/Source/WebCore/ChangeLog</a></li>
<li><a href="#branchessafari602132branchSourceWebCorehtmlHTMLMediaElementcpp">branches/safari-602.1.32-branch/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#branchessafari602132branchSourceWebCorepageSettingsin">branches/safari-602.1.32-branch/Source/WebCore/page/Settings.in</a></li>
<li><a href="#branchessafari602132branchSourceWebCoretestingInternalSettingscpp">branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.cpp</a></li>
<li><a href="#branchessafari602132branchSourceWebCoretestingInternalSettingsh">branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.h</a></li>
<li><a href="#branchessafari602132branchSourceWebCoretestingInternalSettingsidl">branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.idl</a></li>
<li><a href="#branchessafari602132branchSourceWebKitmacChangeLog">branches/safari-602.1.32-branch/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#branchessafari602132branchSourceWebKitmacWebViewWebPreferenceKeysPrivateh">branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h</a></li>
<li><a href="#branchessafari602132branchSourceWebKitmacWebViewWebPreferencesmm">branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferences.mm</a></li>
<li><a href="#branchessafari602132branchSourceWebKitmacWebViewWebPreferencesPrivateh">branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferencesPrivate.h</a></li>
<li><a href="#branchessafari602132branchSourceWebKitmacWebViewWebViewmm">branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebView.mm</a></li>
<li><a href="#branchessafari602132branchSourceWebKit2ChangeLog">branches/safari-602.1.32-branch/Source/WebKit2/ChangeLog</a></li>
<li><a href="#branchessafari602132branchSourceWebKit2SharedWebPreferencesDefinitionsh">branches/safari-602.1.32-branch/Source/WebKit2/Shared/WebPreferencesDefinitions.h</a></li>
<li><a href="#branchessafari602132branchSourceWebKit2UIProcessAPICocoaWKWebViewmm">branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm</a></li>
<li><a href="#branchessafari602132branchSourceWebKit2UIProcessAPICocoaWKWebViewConfigurationmm">branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm</a></li>
<li><a href="#branchessafari602132branchSourceWebKit2UIProcessAPICocoaWKWebViewConfigurationPrivateh">branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h</a></li>
<li><a href="#branchessafari602132branchSourceWebKit2WebProcessWebPageWebPagecpp">branches/safari-602.1.32-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#branchessafari602132branchLayoutTestsmediamediafullscreenreturntoinlineexpectedtxt">branches/safari-602.1.32-branch/LayoutTests/media/media-fullscreen-return-to-inline-expected.txt</a></li>
<li><a href="#branchessafari602132branchLayoutTestsmediamediafullscreenreturntoinlinehtml">branches/safari-602.1.32-branch/LayoutTests/media/media-fullscreen-return-to-inline.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="branchessafari602132branchLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/LayoutTests/ChangeLog (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/LayoutTests/ChangeLog        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/LayoutTests/ChangeLog        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -1,5 +1,22 @@
</span><span class="cx"> 2016-05-19  Babak Shafiei  &lt;bshafiei@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Merge r201187. rdar://problem/25314776
+
+    2016-05-19  Jer Noble  &lt;jer.noble@apple.com&gt;
+
+            [IOS] Add setting to allow playback to continue inline after exiting fullscreen.
+            https://bugs.webkit.org/show_bug.cgi?id=157912
+
+            Reviewed by Eric Carlson.
+
+            * media/media-fullscreen-return-to-inline-expected.txt: Added.
+            * media/media-fullscreen-return-to-inline.html: Added.
+            * media/video-test.js:
+            (runWithKeyDown.eventName.window.testRunner.eventSender.keyDown.string_appeared_here.string_appeared_here.thunk):
+            (runWithKeyDown):
+
+2016-05-19  Babak Shafiei  &lt;bshafiei@apple.com&gt;
+
</ins><span class="cx">         Merge r201189. rdar://problem/24577706
</span><span class="cx"> 
</span><span class="cx">     2016-05-19  Enrica Casucci  &lt;enrica@apple.com&gt;
</span></span></pre></div>
<a id="branchessafari602132branchLayoutTestsmediamediafullscreenreturntoinlineexpectedtxt"></a>
<div class="addfile"><h4>Added: branches/safari-602.1.32-branch/LayoutTests/media/media-fullscreen-return-to-inline-expected.txt (0 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/LayoutTests/media/media-fullscreen-return-to-inline-expected.txt                                (rev 0)
+++ branches/safari-602.1.32-branch/LayoutTests/media/media-fullscreen-return-to-inline-expected.txt        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+
+RUN(internals.settings.setAllowsInlineMediaPlayback(false))
+RUN(internals.settings.setAllowsInlineMediaPlaybackAfterFullscreen(false))
+RUN(video.src = findMediaFile(&quot;video&quot;, &quot;content/test&quot;))
+EVENT(canplaythrough)
+RUN(video.play())
+EVENT(webkitfullscreenchange)
+RUN(video.webkitExitFullscreen())
+EVENT(pause)
+RUN(internals.settings.setAllowsInlineMediaPlaybackAfterFullscreen(true))
+RUN(video.play())
+EVENT(webkitfullscreenchange)
+RUN(video.webkitExitFullscreen())
+EVENT(webkitfullscreenchange)
+EXPECTED (video.paused == 'false') OK
+END OF TEST
+
</ins></span></pre></div>
<a id="branchessafari602132branchLayoutTestsmediamediafullscreenreturntoinlinehtml"></a>
<div class="addfile"><h4>Added: branches/safari-602.1.32-branch/LayoutTests/media/media-fullscreen-return-to-inline.html (0 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/LayoutTests/media/media-fullscreen-return-to-inline.html                                (rev 0)
+++ branches/safari-602.1.32-branch/LayoutTests/media/media-fullscreen-return-to-inline.html        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -0,0 +1,56 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;title&gt;media-fullscreen-return-to-inline&lt;/title&gt;
+
+    &lt;script src=&quot;video-test.js&quot;&gt;&lt;/script&gt;
+    &lt;script src=&quot;media-file.js&quot;&gt;&lt;/script&gt;
+
+    &lt;script&gt;
+    function go()
+    {
+        findMediaElement();
+        run('internals.settings.setAllowsInlineMediaPlayback(false)');
+        run('internals.settings.setAllowsInlineMediaPlaybackAfterFullscreen(false)');
+        run('video.src = findMediaFile(&quot;video&quot;, &quot;content/test&quot;)');
+        waitForEventOnce('canplaythrough', canplaythrough);
+    }
+
+    function canplaythrough()
+    {
+        runWithKeyDown('video.play()');
+        waitForEventOnce('webkitfullscreenchange', beginfullscreen1);
+    }
+
+    function beginfullscreen1()
+    {
+        run('video.webkitExitFullscreen()');
+        waitForEventOnce('pause', pause);
+    }
+
+    function pause()
+    {
+        run('internals.settings.setAllowsInlineMediaPlaybackAfterFullscreen(true)');
+        runWithKeyDown('video.play()');
+        waitForEventOnce('webkitfullscreenchange', beginfullscreen2);
+    }
+
+    function beginfullscreen2()
+    {
+        run('video.webkitExitFullscreen()');
+        waitForEventOnce('webkitfullscreenchange', endfullscreen);
+    }
+
+    function endfullscreen()
+    {
+        testExpected('video.paused', false);
+        endTest();
+    }
+    &lt;/script&gt;
+
+&lt;/head&gt;
+
+&lt;body onload=&quot;go()&quot;&gt;
+    &lt;video controls&gt;&lt;/video&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="branchessafari602132branchLayoutTestsmediavideotestjs"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/LayoutTests/media/video-test.js (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/LayoutTests/media/video-test.js        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/LayoutTests/media/video-test.js        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -396,7 +396,10 @@
</span><span class="cx"> 
</span><span class="cx">     function thunk() {
</span><span class="cx">         document.removeEventListener(eventName, thunk, false);
</span><del>-        fn();
</del><ins>+        if (typeof fn === 'function')
+            fn();
+        else
+            run(fn);
</ins><span class="cx">     }
</span><span class="cx">     document.addEventListener(eventName, thunk, false);
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebCore/ChangeLog (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebCore/ChangeLog        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebCore/ChangeLog        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -1,5 +1,24 @@
</span><span class="cx"> 2016-05-19  Babak Shafiei  &lt;bshafiei@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Merge r201187. rdar://problem/25314776
+
+    2016-05-19  Jer Noble  &lt;jer.noble@apple.com&gt;
+
+            [IOS] Add setting to allow playback to continue inline after exiting fullscreen.
+            https://bugs.webkit.org/show_bug.cgi?id=157912
+
+            Reviewed by Eric Carlson.
+
+            Test: media/media-fullscreen-return-to-inline.html
+
+            Allow playback to continue when exiting fullscreen via settings.
+
+            * html/HTMLMediaElement.cpp:
+            (WebCore::HTMLMediaElement::exitFullscreen):
+            * page/Settings.in:
+
+2016-05-19  Babak Shafiei  &lt;bshafiei@apple.com&gt;
+
</ins><span class="cx">         Merge r201119. rdar://problem/26225793
</span><span class="cx"> 
</span><span class="cx">     2016-05-18  Eric Carlson  &lt;eric.carlson@apple.com&gt;
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebCore/html/HTMLMediaElement.cpp (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebCore/html/HTMLMediaElement.cpp        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebCore/html/HTMLMediaElement.cpp        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -5342,7 +5342,7 @@
</span><span class="cx">     if (hasMediaControls())
</span><span class="cx">         mediaControls()-&gt;exitedFullscreen();
</span><span class="cx">     if (document().page() &amp;&amp; is&lt;HTMLVideoElement&gt;(*this)) {
</span><del>-        if (m_mediaSession-&gt;requiresFullscreenForVideoPlayback(*this))
</del><ins>+        if (m_mediaSession-&gt;requiresFullscreenForVideoPlayback(*this) &amp;&amp; (!document().settings() || !document().settings()-&gt;allowsInlineMediaPlaybackAfterFullscreen()))
</ins><span class="cx">             pauseInternal();
</span><span class="cx"> 
</span><span class="cx">         if (document().page()-&gt;chrome().client().supportsVideoFullscreen(oldVideoFullscreenMode)) {
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebCorepageSettingsin"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebCore/page/Settings.in (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebCore/page/Settings.in        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebCore/page/Settings.in        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -130,6 +130,7 @@
</span><span class="cx"> audioPlaybackRequiresUserGesture initial=defaultAudioPlaybackRequiresUserGesture
</span><span class="cx"> mainContentUserGestureOverrideEnabled initial=false
</span><span class="cx"> allowsInlineMediaPlayback initial=defaultAllowsInlineMediaPlayback
</span><ins>+allowsInlineMediaPlaybackAfterFullscreen initial=true
</ins><span class="cx"> inlineMediaPlaybackRequiresPlaysInlineAttribute initial=defaultInlineMediaPlaybackRequiresPlaysInlineAttribute
</span><span class="cx"> allowsPictureInPictureMediaPlayback initial=defaultAllowsPictureInPictureMediaPlayback
</span><span class="cx"> mediaControlsScaleWithPageZoom initial=defaultMediaControlsScaleWithPageZoom
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebCoretestingInternalSettingscpp"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.cpp (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.cpp        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.cpp        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -103,6 +103,7 @@
</span><span class="cx">     , m_allowsAirPlayForMediaPlayback(settings.allowsAirPlayForMediaPlayback())
</span><span class="cx"> #endif
</span><span class="cx">     , m_allowsInlineMediaPlayback(settings.allowsInlineMediaPlayback())
</span><ins>+    , m_allowsInlineMediaPlaybackAfterFullscreen(settings.allowsInlineMediaPlaybackAfterFullscreen())
</ins><span class="cx">     , m_inlineMediaPlaybackRequiresPlaysInlineAttribute(settings.inlineMediaPlaybackRequiresPlaysInlineAttribute())
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE_IN_WORKERS)
</span><span class="cx">     , m_indexedDBWorkersEnabled(RuntimeEnabledFeatures::sharedFeatures().indexedDBWorkersEnabled())
</span><span class="lines">@@ -175,6 +176,7 @@
</span><span class="cx">     settings.setTouchEventEmulationEnabled(m_touchEventEmulationEnabled);
</span><span class="cx"> #endif
</span><span class="cx">     settings.setAllowsInlineMediaPlayback(m_allowsInlineMediaPlayback);
</span><ins>+    settings.setAllowsInlineMediaPlaybackAfterFullscreen(m_allowsInlineMediaPlaybackAfterFullscreen);
</ins><span class="cx">     settings.setInlineMediaPlaybackRequiresPlaysInlineAttribute(m_inlineMediaPlaybackRequiresPlaysInlineAttribute);
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setPluginReplacementEnabled(m_pluginReplacementEnabled);
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE_IN_WORKERS)
</span><span class="lines">@@ -541,6 +543,12 @@
</span><span class="cx">     settings()-&gt;setAllowsInlineMediaPlayback(allows);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void InternalSettings::setAllowsInlineMediaPlaybackAfterFullscreen(bool allows, ExceptionCode&amp; ec)
+{
+    InternalSettingsGuardForSettings();
+    settings()-&gt;setAllowsInlineMediaPlaybackAfterFullscreen(allows);
+}
+
</ins><span class="cx"> void InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute(bool requires, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     InternalSettingsGuardForSettings();
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebCoretestingInternalSettingsh"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.h (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.h        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.h        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -103,6 +103,7 @@
</span><span class="cx">         bool m_allowsAirPlayForMediaPlayback;
</span><span class="cx"> #endif
</span><span class="cx">         bool m_allowsInlineMediaPlayback;
</span><ins>+        bool m_allowsInlineMediaPlaybackAfterFullscreen;
</ins><span class="cx">         bool m_inlineMediaPlaybackRequiresPlaysInlineAttribute;
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE_IN_WORKERS)
</span><span class="cx">         bool m_indexedDBWorkersEnabled;
</span><span class="lines">@@ -154,6 +155,7 @@
</span><span class="cx">     void setShouldConvertPositionStyleOnCopy(bool, ExceptionCode&amp;);
</span><span class="cx">     void setScrollingTreeIncludesFrames(bool, ExceptionCode&amp;);
</span><span class="cx">     void setAllowsInlineMediaPlayback(bool, ExceptionCode&amp;);
</span><ins>+    void setAllowsInlineMediaPlaybackAfterFullscreen(bool, ExceptionCode&amp;);
</ins><span class="cx">     void setInlineMediaPlaybackRequiresPlaysInlineAttribute(bool, ExceptionCode&amp;);
</span><span class="cx">     void setIndexedDBWorkersEnabled(bool, ExceptionCode&amp;);
</span><span class="cx">     String userInterfaceDirectionPolicy(ExceptionCode&amp;);
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebCoretestingInternalSettingsidl"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.idl (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.idl        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebCore/testing/InternalSettings.idl        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -73,6 +73,7 @@
</span><span class="cx"> 
</span><span class="cx">     [RaisesException] void setMinimumTimerInterval(unrestricted double intervalInSeconds);
</span><span class="cx">     [RaisesException] void setAllowsInlineMediaPlayback(boolean allows);
</span><ins>+    [RaisesException] void setAllowsInlineMediaPlaybackAfterFullscreen(boolean allows);
</ins><span class="cx">     [RaisesException] void setInlineMediaPlaybackRequiresPlaysInlineAttribute(boolean requires);
</span><span class="cx"> 
</span><span class="cx">     [RaisesException] void setIndexedDBWorkersEnabled(boolean requires);
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit/mac/ChangeLog (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit/mac/ChangeLog        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit/mac/ChangeLog        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -1,5 +1,28 @@
</span><span class="cx"> 2016-05-19  Babak Shafiei  &lt;bshafiei@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Merge r201187. rdar://problem/25314776
+
+    2016-05-19  Jer Noble  &lt;jer.noble@apple.com&gt;
+
+            [IOS] Add setting to allow playback to continue inline after exiting fullscreen.
+            https://bugs.webkit.org/show_bug.cgi?id=157912
+
+            Reviewed by Eric Carlson.
+
+            Add a preference to control whether media should be allowed to continue playing inline when
+            exiting fullscreen.
+
+            * WebView/WebPreferenceKeysPrivate.h:
+            * WebView/WebPreferences.mm:
+            (+[WebPreferences initialize]):
+            (-[WebPreferences allowsInlineMediaPlaybackAfterFullscreen]):
+            (-[WebPreferences setAllowsInlineMediaPlaybackAfterFullscreen:]):
+            * WebView/WebPreferencesPrivate.h:
+            * WebView/WebView.mm:
+            (-[WebView _preferencesChanged:]):
+
+2016-05-19  Babak Shafiei  &lt;bshafiei@apple.com&gt;
+
</ins><span class="cx">         Merge r201189. rdar://problem/24577706
</span><span class="cx"> 
</span><span class="cx">     2016-05-19  Enrica Casucci  &lt;enrica@apple.com&gt;
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKitmacWebViewWebPreferenceKeysPrivateh"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -125,6 +125,7 @@
</span><span class="cx"> #define WebKitRequiresUserGestureForAudioPlaybackPreferenceKey @&quot;WebKitAudioPlaybackRequiresUserGesture&quot;
</span><span class="cx"> #define WebKitMainContentUserGestureOverrideEnabledPreferenceKey @&quot;WebKitMainContentUserGestureOverrideEnabled&quot;
</span><span class="cx"> #define WebKitAllowsInlineMediaPlaybackPreferenceKey @&quot;WebKitMediaPlaybackAllowsInline&quot;
</span><ins>+#define WebKitAllowsInlineMediaPlaybackAfterFullscreenPreferenceKey @&quot;WebKitAllowsInlineMediaPlaybackAfterFullscreen&quot;
</ins><span class="cx"> #define WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey @&quot;InlineMediaPlaybackRequiresPlaysInlineAttribute&quot;
</span><span class="cx"> #define WebKitInvisibleAutoplayNotPermittedKey @&quot;InvisibleAutoplayNotPermitted&quot;
</span><span class="cx"> #define WebKitAllowsPictureInPictureMediaPlaybackPreferenceKey @&quot;WebKitAllowsPictureInPictureMediaPlayback&quot;
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKitmacWebViewWebPreferencesmm"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferences.mm (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferences.mm        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferences.mm        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -397,6 +397,7 @@
</span><span class="cx">     bool attachmentElementEnabled = MacApplication::isAppleMail();
</span><span class="cx"> #else
</span><span class="cx">     bool allowsInlineMediaPlayback = WebCore::deviceClass() == MGDeviceClassiPad;
</span><ins>+    bool allowsInlineMediaPlaybackAfterFullscreen = WebCore::deviceClass() != MGDeviceClassiPad;
</ins><span class="cx">     bool requiresPlaysInlineAttribute = !allowsInlineMediaPlayback;
</span><span class="cx">     bool attachmentElementEnabled = IOSApplication::isMobileMail();
</span><span class="cx"> #endif
</span><span class="lines">@@ -523,6 +524,7 @@
</span><span class="cx">         [NSNumber numberWithBool:attachmentElementEnabled], WebKitAttachmentElementEnabledPreferenceKey,
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx">         [NSNumber numberWithBool:YES],  WebKitAllowsInlineMediaPlaybackPreferenceKey,
</span><ins>+        [NSNumber numberWithBool:NO],   WebKitAllowsInlineMediaPlaybackAfterFullscreenPreferenceKey,
</ins><span class="cx">         [NSNumber numberWithBool:NO],  WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey,
</span><span class="cx">         [NSNumber numberWithBool:YES],  WebKitMediaControlsScaleWithPageZoomPreferenceKey,
</span><span class="cx">         [NSNumber numberWithBool:NO],   WebKitWebAudioEnabledPreferenceKey,
</span><span class="lines">@@ -535,6 +537,7 @@
</span><span class="cx">         [NSNumber numberWithBool:YES],  WebKitMediaDataLoadsAutomaticallyPreferenceKey,
</span><span class="cx"> #else
</span><span class="cx">         [NSNumber numberWithBool:allowsInlineMediaPlayback],   WebKitAllowsInlineMediaPlaybackPreferenceKey,
</span><ins>+        [NSNumber numberWithBool:allowsInlineMediaPlaybackAfterFullscreen],   WebKitAllowsInlineMediaPlaybackAfterFullscreenPreferenceKey,
</ins><span class="cx">         [NSNumber numberWithBool:requiresPlaysInlineAttribute], WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey,
</span><span class="cx">         [NSNumber numberWithBool:NO],   WebKitMediaControlsScaleWithPageZoomPreferenceKey,
</span><span class="cx">         [NSNumber numberWithUnsignedInt:AudioSession::None],  WebKitAudioSessionCategoryOverride,
</span><span class="lines">@@ -2681,6 +2684,16 @@
</span><span class="cx">     [self _setBoolValue:flag forKey:WebKitAttachmentElementEnabledPreferenceKey];
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (BOOL)allowsInlineMediaPlaybackAfterFullscreen
+{
+    return [self _boolValueForKey:WebKitAllowsInlineMediaPlaybackAfterFullscreenPreferenceKey];
+}
+
+- (void)setAllowsInlineMediaPlaybackAfterFullscreen:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitAllowsInlineMediaPlaybackAfterFullscreenPreferenceKey];
+}
+
</ins><span class="cx"> - (BOOL)mockCaptureDevicesEnabled
</span><span class="cx"> {
</span><span class="cx">     return [self _boolValueForKey:WebKitMockCaptureDevicesEnabledPreferenceKey];
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKitmacWebViewWebPreferencesPrivateh"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferencesPrivate.h        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebPreferencesPrivate.h        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -493,5 +493,7 @@
</span><span class="cx"> @property (nonatomic) BOOL javaScriptMarkupEnabled;
</span><span class="cx"> @property (nonatomic) BOOL mediaDataLoadsAutomatically;
</span><span class="cx"> @property (nonatomic) BOOL attachmentElementEnabled;
</span><ins>+@property (nonatomic) BOOL allowsInlineMediaPlaybackAfterFullscreen;
</ins><span class="cx"> 
</span><ins>+
</ins><span class="cx"> @end
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKitmacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebView.mm (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebView.mm        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit/mac/WebView/WebView.mm        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -2327,6 +2327,7 @@
</span><span class="cx">     settings.setAudioPlaybackRequiresUserGesture(mediaPlaybackRequiresUserGesture || [preferences audioPlaybackRequiresUserGesture]);
</span><span class="cx">     settings.setMainContentUserGestureOverrideEnabled([preferences overrideUserGestureRequirementForMainContent]);
</span><span class="cx">     settings.setAllowsInlineMediaPlayback([preferences mediaPlaybackAllowsInline]);
</span><ins>+    settings.setAllowsInlineMediaPlaybackAfterFullscreen([preferences allowsInlineMediaPlaybackAfterFullscreen]);
</ins><span class="cx">     settings.setInlineMediaPlaybackRequiresPlaysInlineAttribute([preferences inlineMediaPlaybackRequiresPlaysInlineAttribute]);
</span><span class="cx">     settings.setInvisibleAutoplayNotPermitted([preferences invisibleAutoplayNotPermitted]);
</span><span class="cx">     settings.setAllowsPictureInPictureMediaPlayback([preferences allowsPictureInPictureMediaPlayback] &amp;&amp; shouldAllowPictureInPictureMediaPlayback());
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit2/ChangeLog (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit2/ChangeLog        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit2/ChangeLog        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -1,5 +1,44 @@
</span><span class="cx"> 2016-05-19  Babak Shafiei  &lt;bshafiei@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Merge r201187. rdar://problem/25314776
+
+    2016-05-19  Jer Noble  &lt;jer.noble@apple.com&gt;
+
+            [IOS] Add setting to allow playback to continue inline after exiting fullscreen.
+            https://bugs.webkit.org/show_bug.cgi?id=157912
+
+            Reviewed by Eric Carlson.
+
+            Add a preference and configuration property to control whether media should be allowed to continue
+            playing inline when exiting fullscreen.
+
+            * Shared/WebPreferencesDefinitions.h:
+            * UIProcess/API/Cocoa/WKWebView.mm:
+            (-[WKWebView _initializeWithConfiguration:]):
+            * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+            (-[WKWebViewConfiguration init]):
+            (-[WKWebViewConfiguration encodeWithCoder:]):
+            (-[WKWebViewConfiguration initWithCoder:]):
+            (-[WKWebViewConfiguration copyWithZone:]):
+            (-[WKWebViewConfiguration _allowsInlineMediaPlaybackAfterFullscreen]):
+            (-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackAfterFullscreen:]):
+            * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
+            * UIProcess/mac/WKFullScreenWindowController.mm:
+            (disableScreenUpdates):
+            (enableScreenUpdates):
+            (-[WKFullScreenWindowController enterFullScreen:]):
+            (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
+            (-[WKFullScreenWindowController exitFullScreen]):
+            (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
+            (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
+            (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]):
+            (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
+            (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):
+            * WebProcess/WebPage/WebPage.cpp:
+            (WebKit::WebPage::updatePreferences):
+
+2016-05-19  Babak Shafiei  &lt;bshafiei@apple.com&gt;
+
</ins><span class="cx">         Merge r201189. rdar://problem/24577706
</span><span class="cx"> 
</span><span class="cx">     2016-05-19  Enrica Casucci  &lt;enrica@apple.com&gt;
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKit2SharedWebPreferencesDefinitionsh"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit2/Shared/WebPreferencesDefinitions.h (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit2/Shared/WebPreferencesDefinitions.h        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit2/Shared/WebPreferencesDefinitions.h        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -71,6 +71,7 @@
</span><span class="cx"> #define DEFAULT_SHOULD_RESPECT_IMAGE_ORIENTATION true
</span><span class="cx"> #define DEFAULT_PASSWORD_ECHO_ENABLED true
</span><span class="cx"> #define DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK false
</span><ins>+#define DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK_AFTER_FULLSCREEN true
</ins><span class="cx"> #define DEFAULT_INLINE_MEDIA_PLAYBACK_REQUIRES_PLAYS_INLINE_ATTRIBUTE true
</span><span class="cx"> #define DEFAULT_INVISIBLE_AUTOPLAY_NOT_PERMITTED true
</span><span class="cx"> #define DEFAULT_MEDIA_DATA_LOADS_AUTOMATICALLY false
</span><span class="lines">@@ -86,6 +87,7 @@
</span><span class="cx"> #define DEFAULT_SHOULD_RESPECT_IMAGE_ORIENTATION false
</span><span class="cx"> #define DEFAULT_PASSWORD_ECHO_ENABLED false
</span><span class="cx"> #define DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK true
</span><ins>+#define DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK_AFTER_FULLSCREEN false
</ins><span class="cx"> #define DEFAULT_INLINE_MEDIA_PLAYBACK_REQUIRES_PLAYS_INLINE_ATTRIBUTE false
</span><span class="cx"> #define DEFAULT_INVISIBLE_AUTOPLAY_NOT_PERMITTED false
</span><span class="cx"> #define DEFAULT_MEDIA_DATA_LOADS_AUTOMATICALLY true
</span><span class="lines">@@ -155,6 +157,7 @@
</span><span class="cx">     macro(RequiresUserGestureForAudioPlayback, requiresUserGestureForAudioPlayback, Bool, bool, DEFAULT_REQUIRES_USER_GESTURE_FOR_AUDIO_PLAYBACK, &quot;&quot;, &quot;&quot;) \
</span><span class="cx">     macro(MainContentUserGestureOverrideEnabled, mainContentUserGestureOverrideEnabled, Bool, bool, false, &quot;&quot;, &quot;&quot;) \
</span><span class="cx">     macro(AllowsInlineMediaPlayback, allowsInlineMediaPlayback, Bool, bool, DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK, &quot;&quot;, &quot;&quot;) \
</span><ins>+    macro(AllowsInlineMediaPlaybackAfterFullscreen, allowsInlineMediaPlaybackAfterFullscreen, Bool, bool, DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK_AFTER_FULLSCREEN, &quot;&quot;, &quot;&quot;) \
</ins><span class="cx">     macro(InlineMediaPlaybackRequiresPlaysInlineAttribute, inlineMediaPlaybackRequiresPlaysInlineAttribute, Bool, bool, DEFAULT_INLINE_MEDIA_PLAYBACK_REQUIRES_PLAYS_INLINE_ATTRIBUTE, &quot;&quot;, &quot;&quot;) \
</span><span class="cx">     macro(InvisibleAutoplayNotPermitted, invisibleAutoplayNotPermitted, Bool, bool, DEFAULT_INVISIBLE_AUTOPLAY_NOT_PERMITTED, &quot;&quot;, &quot;&quot;) \
</span><span class="cx">     macro(MediaDataLoadsAutomatically, mediaDataLoadsAutomatically, Bool, bool, DEFAULT_MEDIA_DATA_LOADS_AUTOMATICALLY, &quot;&quot;, &quot;&quot;) \
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKit2UIProcessAPICocoaWKWebViewmm"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -455,6 +455,7 @@
</span><span class="cx">     pageConfiguration-&gt;setAlwaysRunsAtForegroundPriority([_configuration _alwaysRunsAtForegroundPriority]);
</span><span class="cx"> 
</span><span class="cx">     pageConfiguration-&gt;preferenceValues().set(WebKit::WebPreferencesKey::allowsInlineMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsInlineMediaPlayback]));
</span><ins>+    pageConfiguration-&gt;preferenceValues().set(WebKit::WebPreferencesKey::allowsInlineMediaPlaybackAfterFullscreenKey(), WebKit::WebPreferencesStore::Value(!![_configuration _allowsInlineMediaPlaybackAfterFullscreen]));
</ins><span class="cx">     pageConfiguration-&gt;preferenceValues().set(WebKit::WebPreferencesKey::inlineMediaPlaybackRequiresPlaysInlineAttributeKey(), WebKit::WebPreferencesStore::Value(!![_configuration _inlineMediaPlaybackRequiresPlaysInlineAttribute]));
</span><span class="cx">     pageConfiguration-&gt;preferenceValues().set(WebKit::WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsPictureInPictureMediaPlayback] &amp;&amp; shouldAllowPictureInPictureMediaPlayback()));
</span><span class="cx">     pageConfiguration-&gt;preferenceValues().set(WebKit::WebPreferencesKey::userInterfaceDirectionPolicyKey(), WebKit::WebPreferencesStore::Value(static_cast&lt;uint32_t&gt;(WebCore::UserInterfaceDirectionPolicy::Content)));
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKit2UIProcessAPICocoaWKWebViewConfigurationmm"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -108,6 +108,7 @@
</span><span class="cx">     BOOL _alwaysRunsAtForegroundPriority;
</span><span class="cx">     BOOL _allowsInlineMediaPlayback;
</span><span class="cx">     BOOL _inlineMediaPlaybackRequiresPlaysInlineAttribute;
</span><ins>+    BOOL _allowsInlineMediaPlaybackAfterFullscreen;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     BOOL _invisibleAutoplayNotPermitted;
</span><span class="lines">@@ -135,6 +136,7 @@
</span><span class="cx">     _allowsPictureInPictureMediaPlayback = YES;
</span><span class="cx">     _allowsInlineMediaPlayback = WebCore::deviceClass() == MGDeviceClassiPad;
</span><span class="cx">     _inlineMediaPlaybackRequiresPlaysInlineAttribute = !_allowsInlineMediaPlayback;
</span><ins>+    _allowsInlineMediaPlaybackAfterFullscreen = !_allowsInlineMediaPlayback;
</ins><span class="cx">     _mediaDataLoadsAutomatically = NO;
</span><span class="cx">     if (linkedOnOrAfter(WebKit::LibraryVersion::FirstWithMediaTypesRequiringUserActionForPlayback))
</span><span class="cx">         _mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeAudio;
</span><span class="lines">@@ -203,6 +205,7 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     [coder encodeInteger:self.dataDetectorTypes forKey:@&quot;dataDetectorTypes&quot;];
</span><span class="cx">     [coder encodeBool:self.allowsInlineMediaPlayback forKey:@&quot;allowsInlineMediaPlayback&quot;];
</span><ins>+    [coder encodeBool:self._allowsInlineMediaPlaybackAfterFullscreen forKey:@&quot;allowsInlineMediaPlaybackAfterFullscreen&quot;];
</ins><span class="cx">     [coder encodeBool:self.mediaTypesRequiringUserActionForPlayback forKey:@&quot;mediaTypesRequiringUserActionForPlayback&quot;];
</span><span class="cx">     [coder encodeInteger:self.selectionGranularity forKey:@&quot;selectionGranularity&quot;];
</span><span class="cx">     [coder encodeBool:self.allowsPictureInPictureMediaPlayback forKey:@&quot;allowsPictureInPictureMediaPlayback&quot;];
</span><span class="lines">@@ -228,6 +231,7 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     self.dataDetectorTypes = [coder decodeIntegerForKey:@&quot;dataDetectorTypes&quot;];
</span><span class="cx">     self.allowsInlineMediaPlayback = [coder decodeBoolForKey:@&quot;allowsInlineMediaPlayback&quot;];
</span><ins>+    self._allowsInlineMediaPlaybackAfterFullscreen = [coder decodeBoolForKey:@&quot;allowsInlineMediaPlaybackAfterFullscreen&quot;];
</ins><span class="cx">     self.mediaTypesRequiringUserActionForPlayback = [coder decodeBoolForKey:@&quot;mediaTypesRequiringUserActionForPlayback&quot;];
</span><span class="cx">     self.selectionGranularity = static_cast&lt;WKSelectionGranularity&gt;([coder decodeIntegerForKey:@&quot;selectionGranularity&quot;]);
</span><span class="cx">     self.allowsPictureInPictureMediaPlayback = [coder decodeBoolForKey:@&quot;allowsPictureInPictureMediaPlayback&quot;];
</span><span class="lines">@@ -275,6 +279,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     configuration-&gt;_allowsInlineMediaPlayback = self-&gt;_allowsInlineMediaPlayback;
</span><ins>+    configuration-&gt;_allowsInlineMediaPlaybackAfterFullscreen = self-&gt;_allowsInlineMediaPlaybackAfterFullscreen;
</ins><span class="cx">     configuration-&gt;_inlineMediaPlaybackRequiresPlaysInlineAttribute = self-&gt;_inlineMediaPlaybackRequiresPlaysInlineAttribute;
</span><span class="cx">     configuration-&gt;_allowsPictureInPictureMediaPlayback = self-&gt;_allowsPictureInPictureMediaPlayback;
</span><span class="cx">     configuration-&gt;_alwaysRunsAtForegroundPriority = _alwaysRunsAtForegroundPriority;
</span><span class="lines">@@ -563,6 +568,16 @@
</span><span class="cx"> {
</span><span class="cx">     _inlineMediaPlaybackRequiresPlaysInlineAttribute = requires;
</span><span class="cx"> }
</span><ins>+
+- (BOOL)_allowsInlineMediaPlaybackAfterFullscreen
+{
+    return _allowsInlineMediaPlaybackAfterFullscreen;
+}
+
+- (void)_setAllowsInlineMediaPlaybackAfterFullscreen:(BOOL)allows
+{
+    _allowsInlineMediaPlaybackAfterFullscreen = allows;
+}
</ins><span class="cx"> #endif // PLATFORM(IOS)
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)_invisibleAutoplayNotPermitted
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKit2UIProcessAPICocoaWKWebViewConfigurationPrivateh"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -58,6 +58,7 @@
</span><span class="cx"> #if TARGET_OS_IPHONE
</span><span class="cx"> @property (nonatomic, setter=_setAlwaysRunsAtForegroundPriority:) BOOL _alwaysRunsAtForegroundPriority WK_AVAILABLE(NA, 9_0);
</span><span class="cx"> @property (nonatomic, setter=_setInlineMediaPlaybackRequiresPlaysInlineAttribute:) BOOL _inlineMediaPlaybackRequiresPlaysInlineAttribute WK_AVAILABLE(NA, WK_IOS_TBA);
</span><ins>+@property (nonatomic, setter=_setAllowsInlineMediaPlaybackAfterFullscreen:) BOOL _allowsInlineMediaPlaybackAfterFullscreen  WK_AVAILABLE(NA, WK_IOS_TBA);
</ins><span class="cx"> #else
</span><span class="cx"> @property (nonatomic, setter=_setShowsURLsInToolTips:) BOOL _showsURLsInToolTips WK_AVAILABLE(WK_MAC_TBA, NA);
</span><span class="cx"> @property (nonatomic, setter=_setServiceControlsEnabled:) BOOL _serviceControlsEnabled WK_AVAILABLE(WK_MAC_TBA, NA);
</span></span></pre></div>
<a id="branchessafari602132branchSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: branches/safari-602.1.32-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (201199 => 201200)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-602.1.32-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2016-05-19 23:32:13 UTC (rev 201199)
+++ branches/safari-602.1.32-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2016-05-19 23:48:01 UTC (rev 201200)
</span><span class="lines">@@ -2928,6 +2928,7 @@
</span><span class="cx">     settings.setAudioPlaybackRequiresUserGesture(requiresUserGestureForMedia || store.getBoolValueForKey(WebPreferencesKey::requiresUserGestureForAudioPlaybackKey()));
</span><span class="cx">     settings.setMainContentUserGestureOverrideEnabled(store.getBoolValueForKey(WebPreferencesKey::mainContentUserGestureOverrideEnabledKey()));
</span><span class="cx">     settings.setAllowsInlineMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::allowsInlineMediaPlaybackKey()));
</span><ins>+    settings.setAllowsInlineMediaPlaybackAfterFullscreen(store.getBoolValueForKey(WebPreferencesKey::allowsInlineMediaPlaybackAfterFullscreenKey()));
</ins><span class="cx">     settings.setInlineMediaPlaybackRequiresPlaysInlineAttribute(store.getBoolValueForKey(WebPreferencesKey::inlineMediaPlaybackRequiresPlaysInlineAttributeKey()));
</span><span class="cx">     settings.setInvisibleAutoplayNotPermitted(store.getBoolValueForKey(WebPreferencesKey::invisibleAutoplayNotPermittedKey()));
</span><span class="cx">     settings.setMediaDataLoadsAutomatically(store.getBoolValueForKey(WebPreferencesKey::mediaDataLoadsAutomaticallyKey()));
</span></span></pre>
</div>
</div>

</body>
</html>