<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>137988</bug_id>
          
          <creation_ts>2014-10-22 16:41:44 -0700</creation_ts>
          <short_desc>[iOS WK2] Protect WKWebView dynamic viewport change against empty sizes</short_desc>
          <delta_ts>2014-10-24 12:19:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1043592</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-22 16:41:44 -0700</bug_when>
    <thetext>[iOS WK2] Protect WKWebView dynamic viewport change against empty sizes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043595</commentid>
    <comment_count>1</comment_count>
      <attachid>240305</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-22 16:51:58 -0700</bug_when>
    <thetext>Created attachment 240305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043604</commentid>
    <comment_count>2</comment_count>
      <attachid>240305</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-10-22 17:18:38 -0700</bug_when>
    <thetext>Comment on attachment 240305
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=240305&amp;action=review

&gt; Source/WebKit2/ChangeLog:21
&gt; +        For the target values, things are trickier. We do not know what the values are gonna be before we execute

going to be

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:2227
&gt; +    if (CGRectIsEmpty(newBounds) || newMinimumLayoutSize.isEmpty() || newMinimumLayoutSizeForMinimalUI.isEmpty() || CGRectIsEmpty(futureUnobscuredRectInSelfCoordinates)) {
&gt; +        _dynamicViewportUpdateMode = DynamicViewportUpdateMode::NotResizing;

Maybe you should assert here. It seems odd to pass empty rects to things like setViewportConfigurationMinimumLayoutSize</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043643</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-22 19:26:54 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:2227
&gt; &gt; +    if (CGRectIsEmpty(newBounds) || newMinimumLayoutSize.isEmpty() || newMinimumLayoutSizeForMinimalUI.isEmpty() || CGRectIsEmpty(futureUnobscuredRectInSelfCoordinates)) {
&gt; &gt; +        _dynamicViewportUpdateMode = DynamicViewportUpdateMode::NotResizing;
&gt; 
&gt; Maybe you should assert here. It seems odd to pass empty rects to things
&gt; like setViewportConfigurationMinimumLayoutSize

That&apos;s a good point, there is not valid use case for empty layout size here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043646</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-22 19:40:02 -0700</bug_when>
    <thetext>Committed r175081: &lt;http://trac.webkit.org/changeset/175081&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044022</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-10-24 12:19:12 -0700</bug_when>
    <thetext>*** Bug 136522 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240305</attachid>
            <date>2014-10-22 16:51:58 -0700</date>
            <delta_ts>2014-10-22 17:18:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137988-20141022165205.patch</filename>
            <type>text/plain</type>
            <size>5557</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODM2YTg4NjM3OTc3ZDJk
YTRmZThkNTI0OTRlNzg3YWY2NDBmOTczOC4uZmJkOTFkZGVkOTExMjc4NzFjNzJiOGYxNWUxYmEy
ZWM3ODlmOTU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTEwLTIyICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBQ
cm90ZWN0IFdLV2ViVmlldyBkeW5hbWljIHZpZXdwb3J0IGNoYW5nZSBhZ2FpbnN0IGVtcHR5IHNp
emVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc5
ODgKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMTc3ODUxNjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBk
YXRlczpdKToKKyAgICAgICAgVGhlIGFsZ29yaXRobSBiZWhpbmQgZHluYW1pYyBzaXplIHVwZGF0
ZSBmaW5kcyB0aGUgYmVzdCBjb250ZW50IGFyZWEgdG8gcHV0IGluIHRoZSB2aWV3cG9ydAorICAg
ICAgICBhZnRlciBhIHZpZXdwb3J0IGNoYW5nZS4gSWYgYW4gaW5pdGlhbCBzaXplIG9yIGEgdGFy
Z2V0IHNpemUgaXMgZW1wdHksIGl0IGlzIGltcG9zc2libGUgdG8KKyAgICAgICAgY29tcHV0ZSBh
IHJlYXNvbmFibGUgYXJlYSB0byBrZWVwIGluIHRoZSB2aWV3LiBXZSBlbmQgdXAgaGFuZGxpbmcg
TmFOIHNjYWxlcworICAgICAgICBhbmQvb3Igc2l6ZXMgYW5kIENvcmVBbmltYXRpb24gcmFpc2Vz
IGFuIGV4Y2VwdGlvbiB3aGVuIGFwcGx5aW5nIHRoYXQgdmFsdWUuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGQgZWFybHkgZXhpdHMgd2hlbiB0aGF0IG9jY3VycyBhbmQgZmFsbGJhY2sgdG8gdGhl
IGNvbW1vbiBjb2RlLgorCisgICAgICAgIE9uIElucHV0LCB0aGluZ3MgYXJlIGVhc3kuIElmIGFu
eSBvZiB0aGUgaW5pdGlhbCB2YWx1ZXMgaXMgZW1wdHksIHdlIGp1c3QgZXhlY3V0ZSB0aGUgdXBk
YXRlQmxvY2sKKyAgICAgICAgd2l0aG91dCBhdHRlbXB0aW5nIGFueSBvZiB0aGUgZHluYW1pYyBi
ZWhhdmlvcnMuCisKKyAgICAgICAgRm9yIHRoZSB0YXJnZXQgdmFsdWVzLCB0aGluZ3MgYXJlIHRy
aWNraWVyLiBXZSBkbyBub3Qga25vdyB3aGF0IHRoZSB2YWx1ZXMgYXJlIGdvbm5hIGJlIGJlZm9y
ZSB3ZSBleGVjdXRlCisgICAgICAgIHRoZSBibG9jay4gQnV0IG9uY2Ugd2UgZXhlY3V0ZWQgdGhl
IGJsb2NrLCB3ZSBoYXZlIGFscmVhZHkgc2tpcHBlZCBhbGwgdGhlIHNldHRlcnMgdGhhdCBjYWxs
IHRoZSB3ZWIgcHJvY2Vzcy4KKworICAgICAgICBUbyBoYW5kbGUgdGhhdCwgZXZlcnkgdmFsdWUg
aXMgc2V0IG1hbnVhbGx5IG9uIFdlYlBhZ2VQcm94eS4gVGhpcyBpcyBhIGJpdCB1bmZvcnR1bmF0
ZSBiZWNhdXNlIHRoZSBzZXR0ZXJzCisgICAgICAgIGdldCB5ZXQgYW5vdGhlciBlbnRyeSBwb2lu
dC4KKwogMjAxNC0xMC0yMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIGNvbnN0IGZyb20gV0tVUkxSZXF1ZXN0UmVmIHBhcmFtZXRlciB0byBXS0NvbnRl
eHREb3dubG9hZFVSTFJlcXVlc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBjMmMyODQ2YWEyOTk0Yjg3MmU2MThjYWE3MjQ2NmVm
MWU4ZDg1ODkxLi4xMmVkYWM5YTVkNzNiZmRkODljOTUyNGViNzE0M2FmMjU3MzRjNjI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
MjE5NywyMCArMjE5NywyMSBAQCBzdGF0aWMgaW5saW5lIFdlYktpdDo6RmluZE9wdGlvbnMgdG9G
aW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmRPcHRpb25zKQogCiAtICh2b2lkKV9iZWdp
bkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiB7
Ci0gICAgaWYgKF9jdXN0b21Db250ZW50VmlldyB8fCAhX2hhc0NvbW1pdHRlZExvYWRGb3JNYWlu
RnJhbWUpIHsKKyAgICBDR1JlY3Qgb2xkQm91bmRzID0gc2VsZi5ib3VuZHM7CisgICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IG9sZFVub2JzY3VyZWRDb250ZW50UmVjdCA9IF9wYWdlLT51bm9ic2N1cmVk
Q29udGVudFJlY3QoKTsKKworICAgIGlmIChfY3VzdG9tQ29udGVudFZpZXcgfHwgIV9oYXNDb21t
aXR0ZWRMb2FkRm9yTWFpbkZyYW1lIHx8IENHUmVjdElzRW1wdHkob2xkQm91bmRzKSB8fCBvbGRV
bm9ic2N1cmVkQ29udGVudFJlY3QuaXNFbXB0eSgpKSB7CiAgICAgICAgIHVwZGF0ZUJsb2NrKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9k
ZSA9IER5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6OlJlc2l6aW5nV2l0aEFuaW1hdGlvbjsKIAot
ICAgIENHUmVjdCBvbGRCb3VuZHMgPSBzZWxmLmJvdW5kczsKICAgICBXZWJDb3JlOjpGbG9hdFNp
emUgb2xkTWluaW11bUxheW91dFNpemUgPSBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZShzZWxmLCBv
bGRCb3VuZHMpOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBvbGRNaW5pbXVtTGF5b3V0U2l6ZUZv
ck1pbmltYWxVSSA9IGFjdGl2ZU1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJKHNlbGYsIG9s
ZE1pbmltdW1MYXlvdXRTaXplKTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgb2xkTWF4aW11bVVu
b2JzY3VyZWRTaXplID0gYWN0aXZlTWF4aW11bVVub2JzY3VyZWRTaXplKHNlbGYsIG9sZEJvdW5k
cyk7CiAgICAgaW50MzJfdCBvbGRPcmllbnRhdGlvbiA9IGFjdGl2ZU9yaWVudGF0aW9uKHNlbGYp
OwogICAgIFVJRWRnZUluc2V0cyBvbGRPYnNjdXJlZEluc2V0cyA9IF9vYnNjdXJlZEluc2V0czsK
LSAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgb2xkVW5vYnNjdXJlZENvbnRlbnRSZWN0ID0gX3BhZ2Ut
PnVub2JzY3VyZWRDb250ZW50UmVjdCgpOwogCiAgICAgdXBkYXRlQmxvY2soKTsKIApAQCAtMjIy
MCw2ICsyMjIxLDIyIEBAIHN0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b0ZpbmRP
cHRpb25zKF9XS0ZpbmRPcHRpb25zIHdrRmluZE9wdGlvbnMpCiAgICAgV2ViQ29yZTo6RmxvYXRT
aXplIG5ld01heGltdW1Vbm9ic2N1cmVkU2l6ZSA9IGFjdGl2ZU1heGltdW1Vbm9ic2N1cmVkU2l6
ZShzZWxmLCBuZXdCb3VuZHMpOwogICAgIGludDMyX3QgbmV3T3JpZW50YXRpb24gPSBhY3RpdmVP
cmllbnRhdGlvbihzZWxmKTsKICAgICBVSUVkZ2VJbnNldHMgbmV3T2JzY3VyZWRJbnNldHMgPSBf
b2JzY3VyZWRJbnNldHM7CisgICAgQ0dSZWN0IGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29v
cmRpbmF0ZXMgPSBVSUVkZ2VJbnNldHNJbnNldFJlY3QobmV3Qm91bmRzLCBfb2JzY3VyZWRJbnNl
dHMpOworCisgICAgaWYgKENHUmVjdElzRW1wdHkobmV3Qm91bmRzKSB8fCBuZXdNaW5pbXVtTGF5
b3V0U2l6ZS5pc0VtcHR5KCkgfHwgbmV3TWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUkuaXNF
bXB0eSgpIHx8IENHUmVjdElzRW1wdHkoZnV0dXJlVW5vYnNjdXJlZFJlY3RJblNlbGZDb29yZGlu
YXRlcykpIHsKKyAgICAgICAgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgPSBEeW5hbWljVmll
d3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZzsKKyAgICAgICAgW3NlbGYgX2ZyYW1lT3JCb3Vu
ZHNDaGFuZ2VkXTsKKyAgICAgICAgaWYgKF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZSkKKyAg
ICAgICAgICAgIF9wYWdlLT5zZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6
ZShXZWJDb3JlOjpGbG9hdFNpemUobmV3TWluaW11bUxheW91dFNpemUpKTsKKyAgICAgICAgaWYg
KF9vdmVycmlkZXNNaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSkKKyAgICAgICAgICAgIF9w
YWdlLT5zZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxV
SShXZWJDb3JlOjpGbG9hdFNpemUobmV3TWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUkpKTsK
KyAgICAgICAgaWYgKF9vdmVycmlkZXNNYXhpbXVtVW5vYnNjdXJlZFNpemUpCisgICAgICAgICAg
ICBfcGFnZS0+c2V0TWF4aW11bVVub2JzY3VyZWRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShuZXdN
YXhpbXVtVW5vYnNjdXJlZFNpemUpKTsKKyAgICAgICAgaWYgKF9vdmVycmlkZXNJbnRlcmZhY2VP
cmllbnRhdGlvbikKKyAgICAgICAgICAgIF9wYWdlLT5zZXREZXZpY2VPcmllbnRhdGlvbihuZXdP
cmllbnRhdGlvbik7CisgICAgICAgIFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzXTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGlmIChDR1JlY3RFcXVhbFRvUmVjdChvbGRC
b3VuZHMsIG5ld0JvdW5kcykKICAgICAgICAgJiYgb2xkTWluaW11bUxheW91dFNpemUgPT0gbmV3
TWluaW11bUxheW91dFNpemUKQEAgLTIyNTQsNyArMjI3MSw2IEBAIHN0YXRpYyBpbmxpbmUgV2Vi
S2l0OjpGaW5kT3B0aW9ucyB0b0ZpbmRPcHRpb25zKF9XS0ZpbmRPcHRpb25zIHdrRmluZE9wdGlv
bnMpCiAgICAgLy8gQ29tcHV0ZSBhIG5ldyBwb3NpdGlvbiB0byBrZWVwIHRoZSBjb250ZW50IGNl
bnRlcmVkLgogICAgIENHUG9pbnQgb3JpZ2luYWxDb250ZW50Q2VudGVyID0gb2xkVW5vYnNjdXJl
ZENvbnRlbnRSZWN0LmNlbnRlcigpOwogICAgIENHUG9pbnQgb3JpZ2luYWxDb250ZW50Q2VudGVy
SW5TZWxmQ29vcmRpbmF0ZXMgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6b3JpZ2luYWxDb250ZW50Q2Vu
dGVyIGZyb21WaWV3Ol9jb250ZW50Vmlldy5nZXQoKV07Ci0gICAgQ0dSZWN0IGZ1dHVyZVVub2Jz
Y3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0ZXMgPSBVSUVkZ2VJbnNldHNJbnNldFJlY3QobmV3Qm91
bmRzLCBfb2JzY3VyZWRJbnNldHMpOwogICAgIENHUG9pbnQgZnV0dXJlVW5vYnNjdXJlZFJlY3RD
ZW50ZXJJblNlbGZDb29yZGluYXRlcyA9IENHUG9pbnRNYWtlKGZ1dHVyZVVub2JzY3VyZWRSZWN0
SW5TZWxmQ29vcmRpbmF0ZXMub3JpZ2luLnggKyBmdXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNv
b3JkaW5hdGVzLnNpemUud2lkdGggLyAyLCBmdXR1cmVVbm9ic2N1cmVkUmVjdEluU2VsZkNvb3Jk
aW5hdGVzLm9yaWdpbi55ICsgZnV0dXJlVW5vYnNjdXJlZFJlY3RJblNlbGZDb29yZGluYXRlcy5z
aXplLmhlaWdodCAvIDIpOwogCiAgICAgQ0dQb2ludCBvcmlnaW5hbENvbnRlbnRPZmZzZXQgPSBb
X3Njcm9sbFZpZXcgY29udGVudE9mZnNldF07Cg==
</data>
<flag name="review"
          id="265082"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>