WebKit内核源代码分析(三)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WebCore ጱ ፻ॢ Qt 3፻ॢጱ ళ/ጱÑ ?3 ᢚ č
Page::settings '
č
Ý QwebSetting
ళ/ Page
#
2.3 Chrome
Ć/ ੰาੰ ਜ਼ ᒬ ǜ ॼ ጱ ”WebKit ጱ Chrome ď
ChromeClient”
2.4 ॥
ľ
Ð
E
ɲčɴ 63ᡌCȶ
"Ù>ᡰöĪ'dzÑ Qt
ล, üɬྏ č Frame ፻ॢ Page
ᣩি&č Page ፻ॢጱ ȑ čళ/ጱॢ
blog.csdn.net/dlmu2001
2
QWebPagePrivate ጱ
QWebPage >ᡰ QWebPagePrivate ᐿ Page >ø% / Ý Page
4
࠳
Ð Ó WebKit ጱɹࢉ browser '&
ʯ
ᡰÐ RIM ጱč ᐰ"ࡃÐÝ
PageGroup
ጱ setting ྞ
3 ੳ ࡵ'ɥ Ó webkit '& ÐÔɹࢉ ċȚÑÐ ࡵÙ Ü/Ñčጱ
ķÐ༈EࡵċȚ / Ó webkit ጱ
ď User StyleSheet ጱᬫઉÐ63
RenderTheme:
EditorClient:č3ᡌüȚ፻ॢ
RenderThemeQt & RenderTheme าੰጱ० Ǐ
ď ᐯ าੰ Qt
ข ী D ŷ
blog.csdn.net/dlmu2001
PageGroup ྞ Group ఉȃ
డÜ/ጱ User Script
Script ď User StyleSheet ํ Document Ùጱ Path࠳D >ᡰ GroupSettings
čÔ User 3
PageGroup ᐿࡃ Local Storage ď Index DB ፻ॢጱ Ðſጱ Page Ǐ
üȚPage
'ɥ
blog.csdn.net/dlmu2001
3
2.
ॢ
2.1 PageGroup
PageGroup డÑ&/' DZ ጱ Page ɲ ጱȑ& /'
ÐÔ०ྞॠčጱ ɲ
"ᒮ 3ጱ Page 3ŝᐡጱ ࡾ༈à Ô ਢť localStorage ጱ
User ScriptUser StyleSheet &ᐿఉ WebKit ८ ࠳ ʯʦา
ᡎ Client
BackForwardController:ɲčɴŷิ HistoryItem: Plugin ጱࣞ
Ðďᗆఝ॥
ŝ ઉడ &
PluginData:ํࢉ፻ॢ''ċȚč PluginDatabase PluginHalter:/'ิ Plugin ጱ ďʅſľ ŭÞࡃ ิ ࢉጱ (
ɲ
InspectorController:Inspector ิ ፻ॢ
ContextMenuController:CÑ෦ȶิ
ጱ
ľం०ɾč
GeolocationController: Əৢิ DeviceMotionController: DeviceOrientationController: SpeechInputClient: ProgressTracker:ɲిɞ< Frame:Ð Page /ᕪ ৩ิ ༈ิ
& WebKit Eʅ
ጱÐ
ॢC
:WebKit ८ ƛࡼ
,WebCore,Page,FrameWebKit
1.
ɳ
ጱ Ð6&ࡾ E /">ᡰ3 ᡎ ȑÐ / E ƛ Page ċȚਢྞ
Ð url Ð
&/' ళ ጱ E 3Inspector
E ࡾĪ, CSS ďํࢉ Ô/"ਜ਼Ñጱ৩
shouldTrackVisitedLinks &ÐEጱ ੫ʅ
/ PageGroup::setShouldTrackVisitedLinks ਜ਼
ɞ<ఉ ʯጱาੰ
& lazy าੰ
ᐿࡃ PageGroup ጱฌᨽడŭÞࡃ group าੰ ' m_group Ñ / InitGroup ' GroupName ጱ PageGroup / ྞ 3 GroupName
SharedGraphicsContext3D ŭ Þ ࡃ createDrawingBuffer ' DragController:෭Ŧิ Chrome ጱᐐ෭ŦüȚčྞॢ
ȑü
blog.csdn.net/dlmu2001
6
ǜࡾč
FocusController:+ჼิ ᒬ:+ჼઅ frame ী# "ࡾ/ Page ᐿ+ჼิƎઉᢓÑᡰ
addPage าੰü PageGroup ጱ m_pages üఉ ʯʦา % true & ጱ༭ಶ ྞ 6
PageGroup ࡾč
>ᡰ
/ጱ༭ / addVisitedLink '
url
ಀē॥ Page
"ྞళ/ᐿÐ ጱ Ðళ/ ॥ 3 false č Ó ጱళ/
SelectionController : Page ጱᢚ੩ŷȄ ᣩিᢚ੩ŷ ጱ SelectionController ጱ༭ +ჼ(
& Ó Frame ጱ Frame ጱ Selection ጱᐯం"Ü/ Page
SharedGraphicsContext3D:ॠÕ 3D Ī࠳Ñ ࡃ 2D & ü > ጱ 2D canvas ጱ DrawingBuffer ጱ DrawingBuffer
Ǝ ጱč PageGroup ፻ॢጱŷ ళ/ าੰ #ǜጱ &Ðళ/ tab
IndexDB
addVisitedLink
ྞॢ tab
ᡄċȚጱ&Ðళ/lj Ð PageGroup ʅč
ÓčÐ PageGroup ǜƎ mailing group
blog.csdn.net/dlmu2001
č ጱ createMainFrame QwebFrameData ጱ
Frame::create হ Frame
> ø % ࡾ Page ฌ ᨽ ਜ਼ %
Ý QwebFrame ȑ
QWebPage
ጱฌᨽడ
>ᡰ
/ࡃ
Page డ ྞ
ࡼ
>ᡰᐡઉ॥
ጱ༈Ŀ Ǐࡃ
1
WebKit ८ ƛࡼ ি ࠲
ᐋǜ(tomorrow.cyz@gmail.com)
$
Ð url ྞÐ
ጱ
&/' ళ ጱ ë८
Leabharlann BaiduE ࡾĪ, CSS ďํࢉ ጱÐ4ઉ E Page
ľ
Ð6&ࡾ
Ð
E
E
/">ᡰ3 ᡎ ȑÐ / E ƛ Page ċȚਢ
Ð Ó Page
ጱ༭/ŝÐ
blog.csdn.net/dlmu2001
5
m_singlePageGroup ᐿడฌᨽ ᐰ m_group č PageGroup / m_group 'ᐿ
/ࡃ setGroupNameʅſ PageGroup ༭
ࡾE
ጱ
2.2 Setting
Page::settings '
č
Ý QwebSetting
ళ/ Page
#
2.3 Chrome
Ć/ ੰาੰ ਜ਼ ᒬ ǜ ॼ ጱ ”WebKit ጱ Chrome ď
ChromeClient”
2.4 ॥
ľ
Ð
E
ɲčɴ 63ᡌCȶ
"Ù>ᡰöĪ'dzÑ Qt
ล, üɬྏ č Frame ፻ॢ Page
ᣩি&č Page ፻ॢጱ ȑ čళ/ጱॢ
blog.csdn.net/dlmu2001
2
QWebPagePrivate ጱ
QWebPage >ᡰ QWebPagePrivate ᐿ Page >ø% / Ý Page
4
࠳
Ð Ó WebKit ጱɹࢉ browser '&
ʯ
ᡰÐ RIM ጱč ᐰ"ࡃÐÝ
PageGroup
ጱ setting ྞ
3 ੳ ࡵ'ɥ Ó webkit '& ÐÔɹࢉ ċȚÑÐ ࡵÙ Ü/Ñčጱ
ķÐ༈EࡵċȚ / Ó webkit ጱ
ď User StyleSheet ጱᬫઉÐ63
RenderTheme:
EditorClient:č3ᡌüȚ፻ॢ
RenderThemeQt & RenderTheme าੰጱ० Ǐ
ď ᐯ าੰ Qt
ข ী D ŷ
blog.csdn.net/dlmu2001
PageGroup ྞ Group ఉȃ
డÜ/ጱ User Script
Script ď User StyleSheet ํ Document Ùጱ Path࠳D >ᡰ GroupSettings
čÔ User 3
PageGroup ᐿࡃ Local Storage ď Index DB ፻ॢጱ Ðſጱ Page Ǐ
üȚPage
'ɥ
blog.csdn.net/dlmu2001
3
2.
ॢ
2.1 PageGroup
PageGroup డÑ&/' DZ ጱ Page ɲ ጱȑ& /'
ÐÔ०ྞॠčጱ ɲ
"ᒮ 3ጱ Page 3ŝᐡጱ ࡾ༈à Ô ਢť localStorage ጱ
User ScriptUser StyleSheet &ᐿఉ WebKit ८ ࠳ ʯʦา
ᡎ Client
BackForwardController:ɲčɴŷิ HistoryItem: Plugin ጱࣞ
Ðďᗆఝ॥
ŝ ઉడ &
PluginData:ํࢉ፻ॢ''ċȚč PluginDatabase PluginHalter:/'ิ Plugin ጱ ďʅſľ ŭÞࡃ ิ ࢉጱ (
ɲ
InspectorController:Inspector ิ ፻ॢ
ContextMenuController:CÑ෦ȶิ
ጱ
ľం०ɾč
GeolocationController: Əৢิ DeviceMotionController: DeviceOrientationController: SpeechInputClient: ProgressTracker:ɲిɞ< Frame:Ð Page /ᕪ ৩ิ ༈ิ
& WebKit Eʅ
ጱÐ
ॢC
:WebKit ८ ƛࡼ
,WebCore,Page,FrameWebKit
1.
ɳ
ጱ Ð6&ࡾ E /">ᡰ3 ᡎ ȑÐ / E ƛ Page ċȚਢྞ
Ð url Ð
&/' ళ ጱ E 3Inspector
E ࡾĪ, CSS ďํࢉ Ô/"ਜ਼Ñጱ৩
shouldTrackVisitedLinks &ÐEጱ ੫ʅ
/ PageGroup::setShouldTrackVisitedLinks ਜ਼
ɞ<ఉ ʯጱาੰ
& lazy าੰ
ᐿࡃ PageGroup ጱฌᨽడŭÞࡃ group าੰ ' m_group Ñ / InitGroup ' GroupName ጱ PageGroup / ྞ 3 GroupName
SharedGraphicsContext3D ŭ Þ ࡃ createDrawingBuffer ' DragController:෭Ŧิ Chrome ጱᐐ෭ŦüȚčྞॢ
ȑü
blog.csdn.net/dlmu2001
6
ǜࡾč
FocusController:+ჼิ ᒬ:+ჼઅ frame ী# "ࡾ/ Page ᐿ+ჼิƎઉᢓÑᡰ
addPage าੰü PageGroup ጱ m_pages üఉ ʯʦา % true & ጱ༭ಶ ྞ 6
PageGroup ࡾč
>ᡰ
/ጱ༭ / addVisitedLink '
url
ಀē॥ Page
"ྞళ/ᐿÐ ጱ Ðళ/ ॥ 3 false č Ó ጱళ/
SelectionController : Page ጱᢚ੩ŷȄ ᣩিᢚ੩ŷ ጱ SelectionController ጱ༭ +ჼ(
& Ó Frame ጱ Frame ጱ Selection ጱᐯం"Ü/ Page
SharedGraphicsContext3D:ॠÕ 3D Ī࠳Ñ ࡃ 2D & ü > ጱ 2D canvas ጱ DrawingBuffer ጱ DrawingBuffer
Ǝ ጱč PageGroup ፻ॢጱŷ ళ/ าੰ #ǜጱ &Ðళ/ tab
IndexDB
addVisitedLink
ྞॢ tab
ᡄċȚጱ&Ðళ/lj Ð PageGroup ʅč
ÓčÐ PageGroup ǜƎ mailing group
blog.csdn.net/dlmu2001
č ጱ createMainFrame QwebFrameData ጱ
Frame::create হ Frame
> ø % ࡾ Page ฌ ᨽ ਜ਼ %
Ý QwebFrame ȑ
QWebPage
ጱฌᨽడ
>ᡰ
/ࡃ
Page డ ྞ
ࡼ
>ᡰᐡઉ॥
ጱ༈Ŀ Ǐࡃ
1
WebKit ८ ƛࡼ ি ࠲
ᐋǜ(tomorrow.cyz@gmail.com)
$
Ð url ྞÐ
ጱ
&/' ళ ጱ ë८
Leabharlann BaiduE ࡾĪ, CSS ďํࢉ ጱÐ4ઉ E Page
ľ
Ð6&ࡾ
Ð
E
E
/">ᡰ3 ᡎ ȑÐ / E ƛ Page ċȚਢ
Ð Ó Page
ጱ༭/ŝÐ
blog.csdn.net/dlmu2001
5
m_singlePageGroup ᐿడฌᨽ ᐰ m_group č PageGroup / m_group 'ᐿ
/ࡃ setGroupNameʅſ PageGroup ༭
ࡾE
ጱ
2.2 Setting