Hello, everyone I'm Zhenbo Li, a college student who participated in GSoC 2014 for mshtml.dll. I'm glad to continue working on mshtml this year. My idea is to implement IHTMLXMLHttpRequest+IHTMLStorage(sessionStorage) as my project.
1.IHTMLXMLHttpRequest ================== XMLHttpRequest is used heavily in AJAX programming.[1] Wine has implemented most of it in msxml component, but it's a stub in mshtml. Most js code doesn't treat wine IE as IE6 or earlier, so they will not choost ActiveX[2] to work around it(like Firebug Lite[3]) My current implementation only works fine for absolute urls[4]. I've located the first obstacle: typedef struct { //... IUri *base_uri; //... } httprequest; After finding a way to pass base_uri from mshtml.dll to msxml3.dll, Wine Gecko should support IHTMLXMLHttpRequest for relative urls[5].
2. sessionStorage =============== IHTMLStorage[6] is used widely, including Firebug Lite[3]. A well-implemented IHTMLStorage interface should support both sessionStorage and localStorage. I tried to write both of them, but found that it may be necessary to adjust wine-gecko code to support that(Thank Jacek). Therefore, implementing sessionStorage can be the first step of implementing localStorage. This is my idea for GSoC 2015, I appreciate for any comment. Thank you.
[1]: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest [2]: http://en.wikipedia.org/wiki/XMLHttpRequest#Support_in_Internet_Explorer_ver... [3]: https://getfirebug.com/firebuglite [4]: http://lzbtesthustoj1000.u.qiniudn.com/xmlhttprequest_absolute_path.html [5]: http://lzbtesthustoj1000.u.qiniudn.com/new_xmlhttp.html [6]: https://msdn.microsoft.com/en-us/library/cc288313%28v=vs.85%29.aspx
2015-03-17 11:48 GMT+08:00 Zhenbo Li litimetal@gmail.com:
- sessionStorage
=============== IHTMLStorage[6] is used widely, including Firebug Lite[3]. A well-implemented IHTMLStorage interface should support both sessionStorage and localStorage. I tried to write both of them, but found that it may be necessary to adjust wine-gecko code to support that(Thank Jacek). Therefore, implementing sessionStorage can be the first step of implementing localStorage.
I've talked to Jacek in IRC. As sessionStorage may be too tricky for GSoC, I've come up with a new idea: IHTMLOptionElement + IHTMLSelectElement
If we can implement them, many websites which need filling forms can work better on Wine Gecko. I've submitted a few patches for them last year, and I think I can cope with them well this year.
Thank you for reading my mail :-)