<?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>76781</bug_id>
          
          <creation_ts>2012-01-21 04:40:33 -0800</creation_ts>
          <short_desc>Port RunLoop to WinCE</short_desc>
          <delta_ts>2012-02-13 10:09:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>78340</dependson>
    
    <dependson>78341</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>aroben</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>540122</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-01-21 04:40:33 -0800</bug_when>
    <thetext>Port RunLoop to WinCE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540123</commentid>
    <comment_count>1</comment_count>
      <attachid>123445</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-01-21 04:42:26 -0800</bug_when>
    <thetext>Created attachment 123445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540556</commentid>
    <comment_count>2</comment_count>
      <attachid>123445</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2012-01-23 08:23:44 -0800</bug_when>
    <thetext>Comment on attachment 123445
Patch

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

&gt; Source/WebCore/platform/win/RunLoopWin.cpp:44
&gt; +#if OS(WINCE)
&gt; +    LONG longPtr = ::GetWindowLong(hWnd, 0);
&gt; +#else
&gt;      LONG_PTR longPtr = ::GetWindowLongPtr(hWnd, 0);
&gt; -    
&gt; +#endif

Maybe we should take a different approach here. wtf/MathExtras.h and wtf/StringExtras.h have shim functions that provide compatibility between various compilers/runtimes. Maybe we should have a WindowsExtras.h (maybe in WTF, maybe in WebCore/platform) that does the same thing to bridge the gap between WinCE and other versions of Windows? For example, WindowsExtras.h could have an inline GetWIndowLongPtr function that is defined only on WinCE that just calls through to GetWindowLong. We could do the same thing for SetWindowLong[Ptr]. And we could even have a WinCE-only HWND_MESSAGE that is just 0. What do you think? Seems like that would make it easier to fix these kinds of issues in the future (by just including WindowsExtras.h).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540693</commentid>
    <comment_count>3</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-01-23 11:33:18 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 123445 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=123445&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/win/RunLoopWin.cpp:44
&gt; &gt; +#if OS(WINCE)
&gt; &gt; +    LONG longPtr = ::GetWindowLong(hWnd, 0);
&gt; &gt; +#else
&gt; &gt;      LONG_PTR longPtr = ::GetWindowLongPtr(hWnd, 0);
&gt; &gt; -    
&gt; &gt; +#endif
&gt; 
&gt; Maybe we should take a different approach here. wtf/MathExtras.h and wtf/StringExtras.h have shim functions that provide compatibility between various compilers/runtimes. Maybe we should have a WindowsExtras.h (maybe in WTF, maybe in WebCore/platform) that does the same thing to bridge the gap between WinCE and other versions of Windows? For example, WindowsExtras.h could have an inline GetWIndowLongPtr function that is defined only on WinCE that just calls through to GetWindowLong. We could do the same thing for SetWindowLong[Ptr]. And we could even have a WinCE-only HWND_MESSAGE that is just 0. What do you think? Seems like that would make it easier to fix these kinds of issues in the future (by just including WindowsExtras.h).

I&apos;d prefere a solution with WindowsExtras.h too, but I&apos;m not a big fan of &quot;implementing&quot; a function with the same name on WinCE. IMHO a wrapper function witch does the correct stuff for both platform would be better. This function can do the cast to LONG_PTR on Win32 then too. Defining HWND_MESSAGE to 0 should be ok and can be done via an #ifndef HWND_MESSAGE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540735</commentid>
    <comment_count>4</comment_count>
      <attachid>123445</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2012-01-23 12:12:48 -0800</bug_when>
    <thetext>Comment on attachment 123445
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/win/RunLoopWin.cpp:44
&gt;&gt;&gt; +#endif
&gt;&gt; 
&gt;&gt; Maybe we should take a different approach here. wtf/MathExtras.h and wtf/StringExtras.h have shim functions that provide compatibility between various compilers/runtimes. Maybe we should have a WindowsExtras.h (maybe in WTF, maybe in WebCore/platform) that does the same thing to bridge the gap between WinCE and other versions of Windows? For example, WindowsExtras.h could have an inline GetWIndowLongPtr function that is defined only on WinCE that just calls through to GetWindowLong. We could do the same thing for SetWindowLong[Ptr]. And we could even have a WinCE-only HWND_MESSAGE that is just 0. What do you think? Seems like that would make it easier to fix these kinds of issues in the future (by just including WindowsExtras.h).
&gt; 
&gt; I&apos;d prefere a solution with WindowsExtras.h too, but I&apos;m not a big fan of &quot;implementing&quot; a function with the same name on WinCE. IMHO a wrapper function witch does the correct stuff for both platform would be better. This function can do the cast to LONG_PTR on Win32 then too. Defining HWND_MESSAGE to 0 should be ok and can be done via an #ifndef HWND_MESSAGE.

What specifically concerns you about implementing GetWindowLongPtr on WinCE? A differently-named-and-typed wrapper function could be good if it made the code clearer; what do you suggest as a name and signature?

We tend not to use macros for constants, so I&apos;d recommend a &quot;const HWND HWND_MESSAGE = 0;&quot;, similar to constants like piFloat in MathExtras.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553977</commentid>
    <comment_count>5</comment_count>
      <attachid>126485</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-02-10 02:55:36 -0800</bug_when>
    <thetext>Created attachment 126485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555351</commentid>
    <comment_count>6</comment_count>
      <attachid>126485</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 10:09:10 -0800</bug_when>
    <thetext>Comment on attachment 126485
Patch

Clearing flags on attachment: 126485

Committed r107585: &lt;http://trac.webkit.org/changeset/107585&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555352</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 10:09:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123445</attachid>
            <date>2012-01-21 04:42:26 -0800</date>
            <delta_ts>2012-02-10 02:55:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76781.patch</filename>
            <type>text/plain</type>
            <size>2906</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzNzljYWY1Li5iYjAyMWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDEtMjEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUG9ydCBSdW5Mb29wIHRvIFdpbkNFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6UnVuTG9vcFduZFByb2MpOgorICAgICAgICAoV2ViQ29y
ZTo6UnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorCiAyMDEyLTAxLTIxICBKb2NoZW4gRWlzaW5n
ZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGhpc3RvcnkucmVwbGFjZVN0YXRl
IHNob3VsZCB1cGRhdGUgdGhlIEhpc3RvcnlJdGVtIHRvIHVzZSBhIEdFVCBtZXRob2QgaWYgcHJl
dmlvdXNseSBub24tR0VUIChQT1NUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxv
b3BXaW4uY3BwCmluZGV4IDEyMGMyNTIuLjg0OGM3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKQEAgLTM3LDggKzM3LDEyIEBAIHN0YXRpYyBjb25zdCBM
UFdTVFIga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lID0gTCJSdW5Mb29wTWVzc2FnZVdp
bmRvdyI7CiAKIExSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcDo6UnVuTG9vcFduZFByb2MoSFdORCBo
V25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiB7CisjaWYg
T1MoV0lOQ0UpCisgICAgTE9ORyBsb25nUHRyID0gOjpHZXRXaW5kb3dMb25nKGhXbmQsIDApOwor
I2Vsc2UKICAgICBMT05HX1BUUiBsb25nUHRyID0gOjpHZXRXaW5kb3dMb25nUHRyKGhXbmQsIDAp
OwotICAgIAorI2VuZGlmCisKICAgICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8UnVuTG9vcCo+KGxvbmdQdHIpKQogICAgICAgICByZXR1cm4gcnVuTG9vcC0+d25kUHJv
YyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CiAKQEAgLTQ2LDcgKzUwLDExIEBAIExS
RVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcDo6UnVuTG9vcFduZFByb2MoSFdORCBoV25kLCBVSU5UIG1l
c3NhZ2UsIFdQQVJBTSB3UGFyYW0sCiAgICAgICAgIExQQ1JFQVRFU1RSVUNUIGNyZWF0ZVN0cnVj
dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJhbSk7CiAKICAgICAgICAg
Ly8gQXNzb2NpYXRlIHRoZSBSdW5Mb29wIHdpdGggdGhlIHdpbmRvdy4KKyNpZiBPUyhXSU5DRSkK
KyAgICAgICAgOjpTZXRXaW5kb3dMb25nKGhXbmQsIDAsIChMT05HKWNyZWF0ZVN0cnVjdC0+bHBD
cmVhdGVQYXJhbXMpOworI2Vsc2UKICAgICAgICAgOjpTZXRXaW5kb3dMb25nUHRyKGhXbmQsIDAs
IChMT05HX1BUUiljcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1zKTsKKyNlbmRpZgogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTg3LDIyICs5NSwyNyBAQCBib29sIFJ1bkxvb3A6OnJl
Z2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcygpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMg
cmVhbGx5IG9ubHkgbmVlZHMgdG8gYmUgY2FsbGVkIG9uY2UuCiAKLSAgICBXTkRDTEFTU0VYIHdp
bmRvd0NsYXNzID0geyAwIH07Ci0gICAgd2luZG93Q2xhc3MuY2JTaXplICAgICAgICAgID0gc2l6
ZW9mKHdpbmRvd0NsYXNzKTsKKyAgICBXTkRDTEFTUyB3aW5kb3dDbGFzcyA9IHsgMCB9OwogICAg
IHdpbmRvd0NsYXNzLmxwZm5XbmRQcm9jICAgICA9IFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jOwog
ICAgIHdpbmRvd0NsYXNzLmNiV25kRXh0cmEgICAgICA9IHNpemVvZihSdW5Mb29wKik7CiAgICAg
d2luZG93Q2xhc3MubHBzekNsYXNzTmFtZSAgID0ga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NO
YW1lOwogCi0gICAgcmV0dXJuICEhOjpSZWdpc3RlckNsYXNzRXgoJndpbmRvd0NsYXNzKTsKKyAg
ICByZXR1cm4gISE6OlJlZ2lzdGVyQ2xhc3MoJndpbmRvd0NsYXNzKTsKIH0KIAogUnVuTG9vcDo6
UnVuTG9vcCgpCiB7CiAgICAgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7CiAK
KyNpZiBPUyhXSU5DRSkKKyAgICBIV05EIGhXbmRQYXJlbnQgPSAwOworI2Vsc2UKKyAgICBIV05E
IGhXbmRQYXJlbnQgPSBIV05EX01FU1NBR0U7CisjZW5kaWYKKwogICAgIG1fcnVuTG9vcE1lc3Nh
Z2VXaW5kb3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUs
IDAsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENXX1VT
RURFRkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhXbmRQYXJlbnQsIDAsIDAsIHRoaXMp
OwogICAgIEFTU0VSVCg6OklzV2luZG93KG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cpKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126485</attachid>
            <date>2012-02-10 02:55:36 -0800</date>
            <delta_ts>2012-02-13 10:09:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76781b.patch</filename>
            <type>text/plain</type>
            <size>1351</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MjdkNjNkLi5hY2MwZWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDItMTAgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUG9ydCBSdW5Mb29wIHRvIFdpbkNFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNz
KToKKwogMjAxMi0wMi0xMCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbV0lOXSBBZGQgYWJzdHJhY3Rpb24gZm9yIEhXTkRfTUVTU0FHRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwCmluZGV4IGRmOGM3ZTYuLjE1ZmVl
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKQEAgLTg2
LDEzICs4NiwxMiBAQCBib29sIFJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dD
bGFzcygpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgcmVhbGx5IG9ubHkgbmVlZHMgdG8gYmUgY2Fs
bGVkIG9uY2UuCiAKLSAgICBXTkRDTEFTU0VYIHdpbmRvd0NsYXNzID0geyAwIH07Ci0gICAgd2lu
ZG93Q2xhc3MuY2JTaXplICAgICAgICAgID0gc2l6ZW9mKHdpbmRvd0NsYXNzKTsKKyAgICBXTkRD
TEFTUyB3aW5kb3dDbGFzcyA9IHsgMCB9OwogICAgIHdpbmRvd0NsYXNzLmxwZm5XbmRQcm9jICAg
ICA9IFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jOwogICAgIHdpbmRvd0NsYXNzLmNiV25kRXh0cmEg
ICAgICA9IHNpemVvZihSdW5Mb29wKik7CiAgICAgd2luZG93Q2xhc3MubHBzekNsYXNzTmFtZSAg
ID0ga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lOwogCi0gICAgcmV0dXJuICEhOjpSZWdp
c3RlckNsYXNzRXgoJndpbmRvd0NsYXNzKTsKKyAgICByZXR1cm4gISE6OlJlZ2lzdGVyQ2xhc3Mo
JndpbmRvd0NsYXNzKTsKIH0KIAogUnVuTG9vcDo6UnVuTG9vcCgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>