A browser for WinCE/Windows base WebKit. (zz)

//z 2014-07-30 20:50:22 L.154'11378 BG57IV3@BYH T4078129003.K.F4275397949[T2,L62,R1,V6] is2120

Chrome的QUIC协议

在Google新版的Chrome浏览器中,支持QUIC协议,在 Chrome 浏览器中打开“实验性功能”页面(chrome://flags/),启用“实验性 QUIC 协议”和“经由实验性 QUIC 协议发出的 HTTPS 请求”,重启浏览器后可以正常登陆 Google 相关服务(被DNS污染的除外)。对于被DNS污染的Google服务,还需要设置Hosts的IP,然后通过HTTPS才能访问。

QUIC协议是为了集合TCP、UDP的优点,谷歌公司研制的一种UDP通信的改进版——Quick UDP Internet Connections(QUIC),快速UDP互联网连接,欲了解其具体原理请自行查阅相关信息。




iseebrowser
A browser for WinCE/Windows base WebKit.

最终决定还是直接编译chrome,这个编译很顺利,不用折腾。
apple的webkit在windows下编译困难。

perl版本不对,一直无法生成这四个文件:
//z 2013-10-30 18:33:31 IS2120@BG57IV3 T1960322955.K.F3647599723[T5,L67,R1,V28]
HTMLNames.cpp
HTMLNames.h
XMLNames.cpp
XMLNames.h

PPC2003 and Windows compile:

1. Create system variable 'WEBKITISEEDIR=D:\WebKit.iSee'

2. Download cygwin, intall cygwin to 'D:\cygwin'.

3. Start VS2008, open 'iSee\iSee.project\iSee.sln'.

4. Select platform 'WIN32(Debug)' for windows; Select platform 'Pocket PC 2003(Release)' for Windows CE.

5. Build the project.

6. Create directory 'D:\iSeeBrowser';

7. Copy 'iSee\iSee.project\iSee_EN.xml' to 'D:\iSeeBrowser\iSee.xml'.

8. Copy 'iSee\iSee.project\Pocket PC 2003 (ARMV4)\Release\iSee.exe' to 'D:\iSeeBrowser\iSee.exe'.

9. Copy any TTF font file to 'D:\iSeeBrowser\sunglobe.ttf'.

10.Copy directory 'D:\iSeeBrowser' to a PDA or PPC2003 emulator.

11.Run iSeeBrowser\iSee.exe.

WIN32 Debug:

1. Copy 'iSee\iSee.project\iSee_EN.xml' to 'iSee\iSee.project\Debug\iSee.xml'.

2. Copy any TTF font file to 'iSee\iSee.project\Debug\sunglobe.ttf'.

3. Build and debug the project.

//z 2013-10-27 22:31:39 IS2120@BG57IV3 T310377202 .K.F874598221 [T2,L76,R1,V11]

webkit 的编译
http://blog.csdn.net/jordanxinwang/article/details/12229131
webkit开发笔记
http://wenku.baidu.com/view/bcbcfa49e45c3b3567ec8bd3.html
webkit的一些问题;代码剖析
http://blog.csdn.net/dlmu2001

//z 2013-10-28 18:10:53 IS2120@BG57IV3 T968395953 .K.F1584366671[T4,L148,R5,V28]
折腾了大半天,还是失败了;卡在一个perl脚本上,怎么也过不去。除了需要代码,还需要当时的那个 cygwin 环境。
事过境迁,找到那个环境颇不容易。
2>    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
2>perl -I /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/bindings/scripts /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/dom/make_names.pl --tags /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/html/HTMLTagNames.in --attrs /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/html/HTMLAttributeNames.in
2>perl -I /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/bindings/scripts /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/dom/make_names.pl --attrs /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/xml/xmlattrs.in
2>Can't locate Switch.pm in @INC (@INC contains: /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/bindings/scripts /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/site_perl/5.14 /usr/lib/perl5/vendor_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/i686-cygwin-threads-64int /usr/lib/perl5/5.14 /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/site_perl/5.8 .) at /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/dom/make_names.pl line 36.
2>BEGIN failed--compilation aborted at /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/dom/make_names.pl line 36.
2>/cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/DerivedSources.make:530: recipe for target 'HTMLNames.cpp' failed
2>make: *** [HTMLNames.cpp] Error 2
2>make: *** Waiting for unfinished jobs....
2>Can't locate Switch.pm in @INC (@INC contains: /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/bindings/scripts /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/site_perl/5.14 /usr/lib/perl5/vendor_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/i686-cygwin-threads-64int /usr/lib/perl5/5.14 /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/site_perl/5.8 .) at /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/dom/make_names.pl line 36.
2>BEGIN failed--compilation aborted at /cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/dom/make_names.pl line 36.
2>/cygdrive/d/mydoc/svnRoot/ISEEBR~1/ISEEBR~1//WebCore/DerivedSources.make:535: recipe for target 'XMLNames.cpp' failed
2>make: *** [XMLNames.cpp] Error 2
2>Project : error PRJ0019: A tool returned an error code from "Performing Pre-Build Event..."

还是编译最新的webkit看看哈。
/****************************************************************/
在研究cairo这个2D图形库的时候偶然发现了IseeBrowser这个PPC2003(是否能用在通用WINCE下还有待验证)下的开源浏览器,这是一个网名blackfrog的网友移植的(具体介绍见http://bbs.pdafans.com/thread-604419-1-1.html),它的内核是基于WebKit的。关于Webit很多人都知道,只是官方的代码好多库是Apple自己的,并没有开源;google的浏览器chorme分支也包括WebKit,只是过于庞大移植起来比较费力;QT倒是有WINCE版本的WebKit,不过从网上查到的信息来看运行的时候容易crash(未验证);而IseeBrowser从它的Demo来看只有8MB多,看来作者是对WebKit进行了大刀阔斧的裁剪以适应PPC2003版本(代码从http://code.google.com/p/iseebrowser/下载,不过更新到R7后就停止了),从它的说明来看移植和开发了如下的库:
cairo: 开源的跨平台矢量绘图软件库
expat: XML解析
freetype: 字体引擎
icu: 多语言,不过在R7换成了移植于QT的UNICODE库
libcurl: 实现了各种客户端协议的网络编程库
libiconv: 解决多语言编码处理转换等应用问题库 
libjpeg 
libpng
libxml: 换成了expat
libxslt: XML文件转换到HTML格式
pthread
sqlite3
zlib
wceshunt: 作者自己开发的,实现对部分标准C库和部分Win32函数的模拟
/****************************************************************/
现在言归正传,从code.google上下载了代码后,有一个简单的如何编译的说明文件,参照它进行并做适当调整才能成功编译,步骤及修改之处记录如下
1、工程都是VS2008而我只装了VS2005,要将所有的.sln和.vcproj稍做修改
2、下载cygwin,需要额外再安装bison(版本要低于2.4,否则编译的时候会出错)、gperf、perl、make
3、文档中说明要建立一个环境变量WebKit.iSee,但是没有说明代码放在哪里,如果按照SVN下来的代码目录直接编译是会提示找不到build-generated-files-js.sh或build-generated-files-wc.sh错误,这就是路径的问题。需要将带有“版本说明.txt”这个文件所有目录的所有文件拷贝到WebKit.iSee目录下才行。
4、工程libxslt会出现编译错误,将它unload。原因:部分类型定义和libxml有关联,而libxml换成了expat
5、修改wceshunt中的types.h,根据VS2005实际安装路径修改
6、忽略C4430错误
7、WebCoreSupport中的FrameLoaderClientISee.cpp中的ResourceRequest和系统有重定义问题,需要加上命名空间WebCore;另外有一个WebView.cpp同理

2012-1-17的补充

1、在D盘(根据实际情况定)新建目录iseebrowser(将它做为项目根目录,下同),用TortoiseSvn将代码下载到此目录下(会新建目录“ iseebrowser”,注意前面有一空格)
2、将iSee.sln的“Format Version 10.00”改为“Format Version 9.00”、“Visual Studio 2008”改为“Visual Studio 2005”,将方案中所有子工程文件(vcproj)中关于“Version="9.00"”改为“Version="8.00"”
3、按照项目中文档compile.txt所说建立环境变量WEBKITISEEDIR,相应的在D盘建目录“WebKit.iSee”
4、按照项目中文档compile.txt所说搭建cygwin(官方setup版本2.763、Cygwin DLL版本1.7.9-1),按默认方式安装后需要额外再安装bison(版本要低于2.4,否则编译的时候
会出错)、gperf、perl、make
5、将“版本说明.txt”所在同一目录下的文件(包括四个目录五个文件)拷贝到目录“WebKit.iSee”下,此目录同时也是进行编译的工作目录(从iSee工程的“Pre-Build Event”设置以及脚本build-generated-files-js.sh分析实际上SVN下载后建立的“ iseebrowser”才是真正的编译目录)
6、打开“WebKit.iSee”目录里的sln并在“Configure Manager”中将所有工程选择平台“Pocket PC 2003 (ARMV4)”,为了进行调试我选Debug模式而不是项目中complie.txt所说的Release
7、编译错误:将libxslt工程unload,因为它有大量的错误,这个工程其实是不需要的
8、编译错误:修改wceshunt下的types.h,将路径根据实际情况进行修改
9、编译到工程casqt和sqlite3的时候提示一些头文件找不到,这是因是原项目的一些头文件路径只在Release模式下有设置,如果要用Debug模式必须相应添加
10、编译工程sqlite3提示INVALID_FILE_ATTRIBUTES未定义,原因类似上一点,我在工程中加入USE_WCEEXTS_H宏定义后依然有这个问题,不记得原来是怎么解决的了,先将它unload。到这一步后,除了iSee(原因见下一点)、libxslt、sqlite3其它工程都能顺利编译了。
11、脚本执行错误:从VS2005的调试信息窗口可以看到cygwin执行build-generated-files-js.sh的输出信息,从现象分析应该是perl的版本不对了,因为我现在找不到当时的cygwin编译环境,现在没办法解决这个问题吧。而且这个版本cygwin的bison是2.4.2,我在之前有提到过bison不能高于2.4应该是当时的实测试结果。
12、假设iSee工程能够编译,则现在应该是进行到原贴的第6点了。当iSee编译完后,建立运行环境就参照原项目的complie.txt就可以了


//z 2013-10-31 10:48:52 IS2120@BG57IV3 T4259462413.K.F3926308221[T7,L97,R4,V30]
编译unit_tests时遇到这个错误,将文件另存为utf-8,即可。
error C2001: newline in constant chrome
详见 https://code.google.com/p/chromium/issues/detail?id=61845
Reported by lkw...@gmail.comNov 3, 2010
Chrome Version       : chromium_r64202
URLs (if applicable) :
Other browsers tested:
Add OK or FAIL after other browsers where you have tested this issue:
Safari 5:
Firefox 3.x:
IE 7/8:

What steps will reproduce the problem?
*PC Spec.
OS: Windows7 64bit Kor, Eng
RAM: 8GB
Tool: Visual Studio 2008,2005
chrome version: chromium.r64202

 After the extracted chromium source, if you build a successful build chrome.vcproj.
However, chrome.sln clean up after the full build when an error occurs, such as attachment.
os korean version of the Windows 7 as above, the English version of the same error occurs in Windows 7.
Tools visual studio 2005, 2008 version will also get the same error.
As issues go, or to edit, but the same problem occurs.


What is the expected result?


What happens instead?
...
412>service_process_unittest.cc
412>d:\Work\chromium_r64202\src\third_party\cld\encodings/compact_lang_det/unittest_data.h(11) : error C2001: newline in constant
412>d:\Work\chromium_r64202\src\third_party\cld\encodings/compact_lang_det/unittest_data.h(12) : error C2143: syntax error : missing ';' before 'const'
412>d:\Work\chromium_r64202\src\third_party\cld\encodings/compact_lang_det/unittest_data.h(12) : error C2059: syntax error : 'const'
412>d:\Work\chromium_r64202\src\third_party\cld\encodings/compact_lang_det/unittest_data.h(13) : error C2001: newline in constant
...

Please provide any additional information below. Attach a screenshot if
possible.

Nov 3, 2010
#1 lkw...@gmail.com
I can't attach text file....
Jan 13, 2011
#2 mgt...@gmail.com
It seems that unittest_data.h contains string constants with unicode format (UTF-8), which is not correctly parsed by C++ compiler.
Jan 14, 2011
#3 mgt...@gmail.com
Referred to Issue #15670, this file contains non-ASCII characters, which cannot be compiled under non-western locales, especially under CJKV locales.

For example, my Windows is running with code page 950 (Traditional Chinese BIG-5 encoding), and the following three files report similar error message when doing full build (revision r70859):

chrome/browser/password_manager/password_store_default_unittest.cc
third_party/cld/encodings/compact_lang_det/compact_lang_det_unittest_small.cc
third_party/cld/encodings/compact_lang_det/unittest_data.h

To let VC++ recognize UTF-8 characters in these files, I prepends 3 bytes, 0xef 0xbb 0xbf, to the above three files. The heading 3 bytes indicate that these files are UTF-8 encoding, thus VC++ can therefore recognize the UTF-8 characters, and the compilation is passed!!


password_store_default_unittest.cc 
16.9 KB   View   Download
compact_lang_det_unittest_small.cc 
19.9 KB   View   Download
unittest_data.h 
49.1 KB   View   Download
Aug 10, 2012
#4 bugdro...@chromium.org
Closing old bug as obsolete. Please file a new bug (with details) if this problem is still occurring for you.
Status: IceBox 
Oct 13, 2012
#5 bugdro...@chromium.org
This issue has been closed for some time. No one will pay attention to new comments.
If you are seeing this bug or have new data, please click New Issue to start a new bug.
Labels: Restrict-AddIssueComment-Commit 
Mar 10, 2013
#6 bugdro...@chromium.org
(No comment was entered for this change.)
Labels: -Area-Undefined 

posted @ 2013-10-27 22:31  BiG5  阅读(473)  评论(0编辑  收藏  举报