Hello,
I'm Zhenbo Li, a student in Shanghai JiaoTong University, China. I have been a Wine user for almost 4 years, and I've been preparing for GSoC for several month.
Since 2013, I've translated some wiki pages into Chinese[1], reported nearly 40 bugs[2], involved in Appdb[3], and sent few patches[4]. I'm glad to do more contribution to Wine in 2014.
While using Wine, it is common to face a bug in mshtml[5]. Native iexplore may be a workaround, but it can cause other problems, too. So my idea is to implement some functions in mshtml.dll.
I have a rough plan now, and I wish to get your advice. As I have about 3 months, I want to implement some functions in IHTMLTable, IHTMLTableCol, etc., and write testcaes for them. I've written some draft patches for IHTMLTableRow, and I'll send them to wine-patches after improving them with your advice. I hope I can establish a proper schedule after communicating with my mentor.
I'm also open to any suggestion, and any comment or advice is great appreciated.
Thank you.
FYI, my first name is Zhenbo, and my last(family) name is Li. So Zhenbo Li and Li Zhenbo means the same person lol.
[1]: I contributed to FAQ, RegressionTesting, Bugs, etc. [2]: http://bugs.winehq.org/buglist.cgi?email1=litimetal%40gmail.com&emailrep... [3]: http://appdb.winehq.org/objectManager.php?sClass=maintainerView&iId=2816... [4]: http://source.winehq.org/git/wine.git/?a=search&h=HEAD&st=author&... [5]: http://bugs.winehq.org/buglist.cgi?cmdtype=runnamed&list_id=141898&n...
Sorry, I forgot to mention that my IRC nickname is endle, and you can find me on #winehackers at 20:30 - 23:30 (UTC +8) nearly every day.
As it's time to submit proposal, I'll send mine in this week. I'm open to your suggestions. Thank you.
2014-03-10 12:21 GMT+08:00 Zhenbo Li litimetal@gmail.com:
Hello,
I'm Zhenbo Li, a student in Shanghai JiaoTong University, China. I have been a Wine user for almost 4 years, and I've been preparing for GSoC for several month.
Since 2013, I've translated some wiki pages into Chinese[1], reported nearly 40 bugs[2], involved in Appdb[3], and sent few patches[4]. I'm glad to do more contribution to Wine in 2014.
While using Wine, it is common to face a bug in mshtml[5]. Native iexplore may be a workaround, but it can cause other problems, too. So my idea is to implement some functions in mshtml.dll.
I have a rough plan now, and I wish to get your advice. As I have about 3 months, I want to implement some functions in IHTMLTable, IHTMLTableCol, etc., and write testcaes for them. I've written some draft patches for IHTMLTableRow, and I'll send them to wine-patches after improving them with your advice. I hope I can establish a proper schedule after communicating with my mentor.
I'm also open to any suggestion, and any comment or advice is great appreciated.
Thank you.
FYI, my first name is Zhenbo, and my last(family) name is Li. So Zhenbo Li and Li Zhenbo means the same person lol.
[1]: I contributed to FAQ, RegressionTesting, Bugs, etc. [2]: http://bugs.winehq.org/buglist.cgi?email1=litimetal%40gmail.com&emailrep... [3]: http://appdb.winehq.org/objectManager.php?sClass=maintainerView&iId=2816... [4]: http://source.winehq.org/git/wine.git/?a=search&h=HEAD&st=author&... [5]: http://bugs.winehq.org/buglist.cgi?cmdtype=runnamed&list_id=141898&n...
-- Have a nice day! Zhenbo Li
Hi Zhenbo,
On 03/10/14 05:21, Zhenbo Li wrote:
Hello,
I'm Zhenbo Li, a student in Shanghai JiaoTong University, China. I have been a Wine user for almost 4 years, and I've been preparing for GSoC for several month.
Since 2013, I've translated some wiki pages into Chinese[1], reported nearly 40 bugs[2], involved in Appdb[3], and sent few patches[4]. I'm glad to do more contribution to Wine in 2014.
While using Wine, it is common to face a bug in mshtml[5]. Native iexplore may be a workaround, but it can cause other problems, too. So my idea is to implement some functions in mshtml.dll.
I have a rough plan now, and I wish to get your advice. As I have about 3 months, I want to implement some functions in IHTMLTable, IHTMLTableCol, etc., and write testcaes for them. I've written some draft patches for IHTMLTableRow, and I'll send them to wine-patches after improving them with your advice. I hope I can establish a proper schedule after communicating with my mentor.
I'm also open to any suggestion, and any comment or advice is great appreciated.
I think that MSHTML may make a good GSoC project. The application will probably need some more concrete task. We will also need to see that you're prepared to the task and sending those patches is a good start. Here are some comments to your patches:
+ + ret = nsAString_Init(&val, v); + if (!ret){ + ERR("nsAString_Init(%s) failed!\n", debugstr_w(v)); + return E_FAIL; + }
In case where you control the value assigned to nsAString, like in this case, use nsAString_InitDepend to avoid unneeded alloc and copy. This is also infailable, so no error checks are needed.
+ nsres = nsIDOMHTMLTableRowElement_SetAlign(This->nsrow, &val); + if (NS_FAILED(nsres)){ + ERR("Set Align(%s) failed!\n", debugstr_w(v)); + nsAString_Finish(&val); + return E_FAIL; + } + + nsAString_Finish(&val);
Release the string just after SetAlign call so that you don't need to do that on each branch.
Same for other patches and they are ready to go to wine-patches.
Cheers, Jacek
Thank you very much!
2014-03-11 17:35 GMT+08:00 Jacek Caban jacek@codeweavers.com:
I think that MSHTML may make a good GSoC project. The application will probably need some more concrete task. We will also need to see that you're prepared to the task and sending those patches is a good start.
If I concentrate on implementing most IHTMLTable* functions, would it be a good idea?
Here are some comments to your patches:
- ret = nsAString_Init(&val, v);
- if (!ret){
ERR("nsAString_Init(%s) failed!\n", debugstr_w(v));
return E_FAIL;
- }
In case where you control the value assigned to nsAString, like in this case, use nsAString_InitDepend to avoid unneeded alloc and copy. This is also infailable, so no error checks are needed.
- nsres = nsIDOMHTMLTableRowElement_SetAlign(This->nsrow, &val);
- if (NS_FAILED(nsres)){
ERR("Set Align(%s) failed!\n", debugstr_w(v));
nsAString_Finish(&val);
return E_FAIL;
- }
- nsAString_Finish(&val);
Release the string just after SetAlign call so that you don't need to do that on each branch.
Same for other patches and they are ready to go to wine-patches.
Thank you for your advice. I'll send my fixed patches soon.
Cheers, Jacek
Hi Zhenbo,
On 03/11/14 15:32, Zhenbo Li wrote:
Thank you very much!
2014-03-11 17:35 GMT+08:00 Jacek Caban jacek@codeweavers.com:
I think that MSHTML may make a good GSoC project. The application will probably need some more concrete task. We will also need to see that you're prepared to the task and sending those patches is a good start.
If I concentrate on implementing most IHTMLTable* functions, would it be a good idea?
Sorry for the delay. I'm not sure that's the best strategy for having results that will help users in general. Having all functions implemented is a nice thing, but many of them don't cause problems in real world application and web pages. I think I would prefer testing random web pages and implementing things that they need. This, however, would be tricky to set goals required for GSoC application. Maybe you could come up with a mix of both? Start with selected area (say, IHTMLTable*, not necessarily whole) and move to random APIs required by pages as the project progresses?
Cheers, Jacek
Hi Jacek,
2014-03-14 22:22 GMT+08:00 Jacek Caban jacek@codeweavers.com:
Sorry for the delay. I'm not sure that's the best strategy for having results that will help users in general. Having all functions implemented is a nice thing, but many of them don't cause problems in real world application and web pages. I think I would prefer testing random web pages and implementing things that they need. This, however, would be tricky to set goals required for GSoC application. Maybe you could come up with a mix of both? Start with selected area (say, IHTMLTable*, not necessarily whole) and move to random APIs required by pages as the project progresses?
I think work on both of them is a great idea, And I'm glad to do such job. As you said, it is not easy to set up goals. I have nearly 12 weeks, so my previous plan is to split them into several parts: IHTMLTableCell 3 weeks IHTMLTableCol & IHTMLTableRow 3 weeks IHTMLTableSection 2 weeks IHTMLTable 4 weeks (test-cases included)
I don't know if this meets the need of GSoC. Also, is it necessary to add "fix real work webpage/app problem" in this schedule?
Thank you very much.
Cheers, Jacek
On Fri, Mar 14, 2014 at 8:21 PM, Zhenbo Li litimetal@gmail.com wrote:
Hi Jacek,
2014-03-14 22:22 GMT+08:00 Jacek Caban jacek@codeweavers.com:
Sorry for the delay. I'm not sure that's the best strategy for having results that will help users in general. Having all functions
implemented is
a nice thing, but many of them don't cause problems in real world application and web pages. I think I would prefer testing random web
pages
and implementing things that they need. This, however, would be tricky to set goals required for GSoC application. Maybe you could come up with a
mix
of both? Start with selected area (say, IHTMLTable*, not necessarily
whole)
and move to random APIs required by pages as the project progresses?
I think work on both of them is a great idea, And I'm glad to do such job. As you said, it is not easy to set up goals. I have nearly 12 weeks, so my previous plan is to split them into several parts: IHTMLTableCell 3 weeks IHTMLTableCol & IHTMLTableRow 3 weeks IHTMLTableSection 2 weeks IHTMLTable 4 weeks (test-cases included)
I don't know if this meets the need of GSoC. Also, is it necessary to add "fix real work webpage/app problem" in this schedule?
Thank you very much.
Cheers, Jacek
-- Have a nice day! Zhenbo Li
There are 92 mshtml bugs open in bugzilla, you might browse those for related reports:
https://bugs.winehq.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NE...