webkit問題匯總

來源:互聯網
上載者:User

1.如何抓包:

tcpdump  -s 0 -w test.pcp 'tcp port 80 and (((ip[2:2] -
((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) !=
0)'

-s 0
:抓完整的包

-w:名字

 

2.
idl檔案是什嗎?

是需要暴露給JS解析引擎的介面。

W3C—WEB IDL
由該工作草案定義的介面定義語言(interface definition language)叫作Web
IDL,它可被用來描述要在Web瀏覽器裡實現的介面。Web
IDL是一種IDL的變體,它所具有的很多特性使之能夠更容易地對Web平台裡的常用指令碼對象的行為進行規定。為了支援過去只能以文字描述的常用功能,該
IDL在很多方面得到了擴充。另外,它還為ECMAScript第3版和Java給出了精確的語言綁定。

 

3. BatchedAttribute和BatchedCallback分別是JS所能調用的屬性和所使用的方法

 

4.JS的屬性和方法註冊到Context流程

ScriptController::executeScript
ScriptController::evaluate
v8::Handle v8Context = V8Proxy::mainWorldContext(m_proxy->frame());
proxy->mainWorldContext();
V8DOMWindowShell::initContextIfNeeded
V8DOMWindowShell::createNewContext
V8DOMWindow::GetShadowObjectTemplate
static v8::Persistent ConfigureShadowObjectTemplate
void batchConfigureAttributes
void configureAttribute
(attribute.onProto ? proto : instance)->SetAccessor(...)

 

5. webkit分為webcore和javascriptcore,v8屬於其中的javascriptcore,google是沒有用webkit的javascriptcore的,但是用了webcore.

 

所以android的webkit代碼裡有2個javascriptcore,v8和js。android是使用了自己的v8代替原來js。

 

6. 初步對比JavaScriptCore、V8、SpiderMonkey等

具體JavaScriptCore、V8、SpiderMonkey、TracMonkey執行效率對比如何,不同的測試方法會有不同的測試結果,在這裡不再闡述。
就個人瞭解而言,覺得JavaScriptCore關於對象的方法、屬性的安全存取控制方面略有欠缺;SpiderMonkey作為最早一批實現Javascript的引擎,其代碼使用C語言來實現,稍現複雜,沒有象後來的實現如JavaScriptCore、V8等借鑒了最新的虛擬機器技術如JVM等;V8作為新近推出的Javascript實現,正與其特點所描述,擁有很多優勢,同時基於C++實現,充分利用了C++ template,代碼相對簡潔,便於學習使用;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.