精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

嵌入式瀏覽器Konqueror的技術分析

系統 Linux
Konqueror 是 KDE 桌面系統的一部分,主要用于 Linux 和 BSD家族的操作系統。在微軟的 Windows 系統下,也有零星使用,當然功能相對有限。Konqueror主要用于文件管理、瀏覽,以及網頁瀏覽。Konqueror 按照 GPL 進行發布。本文將帶大家科學分析下Konqueror

Konqueror是一個嵌入式瀏覽器,主要運行在Linux 和 BSD家族的操作系統上,我曾用過一段時間,來隨我看看。

  1  Konqueror/embedded概述

  目前,嵌入式瀏覽器已經逐漸成為高端手機和PDA的標準配置。已經面市的大多數嵌入式瀏覽器是商業版本的,像opera和MS explorer等,而Konqueror/embedded是符合GNU條款的自由軟件。Konqueror/embedded是針對嵌入式Linux,由著名的桌面操作環境KDE下的瀏覽器Konqueror派生出來的。Konqueror/embedded將Konqueror中關于KHTML、SSL、Javascript等內容繼承了下來,同時簡化了Konqueror中很多類的定義,剔除了依賴于KDElib部分,以適應在不同的嵌入式平臺上移植和運行。兩者都是基于Qt的,因此Konqueror/embedded也可以運行在Qt/X11環境下。Konqueror/embedded完整地支持HTML4和css1(部分支持css2)、JavaScript (ECMAScript 262)、cookies、SSL、IPv6;支持和管理兼容XBEL的書簽,并且能夠很好地支持中文網頁瀏覽;可以將Konqueror/embedded作為一個flashplayer、pppdialer或文件管理器使用。2Konqueror/embedded的構成

  圖1Konqueror/embedded層次結構Konqueror/embedded是由底層網路連接、圖形化用戶界面和處理HTML繪制的引擎——KHTML構成的。

  2  I/OSlaves

   I/OSlaves 實現流程底層的通信協議實現是基于KIO/Slave機制來實現的;GUI界面采用了Kparts組件技術和Qt中的基本構件;而作為Konqueror/embedded的核心——KHTML,則運用了文檔對象模型(DOM)所提供的API接口,并在DOM樹上掛接javascript引擎、CSS解析器以及渲染引擎。

  3  Konqueror/embedded中的關鍵技術

  3.1底層通信協議的實現——I/OSlave機制

  在KDE中采用I/OSlaves系統來訪問各種數據。Konqueror/embedded沿用這種方式,通過I/OSlaves和進程間管道通信機制實現完整的瀏覽器功能。在基于Qt/X11的Konqueror中,同樣采用I/OSlaves機制。簡單說來,I/OSlaves就是那些從網絡上獲取文件或目錄的進程,它們依賴桌面通信協議DCOP(Desktop Communications Protocol)與其他進程進行通信;但是,DCOP的實現又依賴于X11 ICE(Inter Client Exchange)庫。在嵌入式平臺上移植體積龐大的X11 lib是不現實的。Konqueror/embedded采用了另外一種進程間的通信機制:通過管道(pipe)實現主進程和其他I/OSlaves子進程之間的通信。

  在KDE1.X之后,KDE的文件管理器和Konqueror等應用程序具有網絡透明的特征,Konqueror/embedded也繼承了這個特性。Konqueror/embedded不管對本地文件還是遠程文件都采用URL(統一資源定位符)進行標識。網絡透明性允許應用程序的用戶使用與處理本地文件相同的方法來處理遠程文件。在KDE的文件選擇器能夠通過諸如 FTP、SMB甚至 Webdav(在 KDE3中)等方式列出遠程目錄。網絡透明性和I/OSlaves機制是靠KIO類來實現的。KIO類提供了幾乎所有的文件管理功能。其中,KIO∷NetAccess提供文件下載、上傳以及臨時文件的創建或刪除等簡單的同步訪問功能。這是一種阻塞調用方式。如果用Konqueror/embedded下載網絡上的數據,在數據沒有完全加載之前,當前進程將會被阻塞。數據流完全加載之后,網頁才可以再次渲染或刷新。KIO∷Job提供較為復雜的異步功能,包括打開、創建、復制、刪除以及重命名等與文件或目錄相關的操作。Konqueror/embedded正是依靠KIO∷Job來實現網頁訪問這樣的異步工作的。一旦某個job被啟動之后,它將運行在后臺,并且不會阻塞父進程。Konqueror/embedded中各種協議,如HTTP、FTP等是由一些獨立的進程來實現的。這些獨立的進程被稱為Slaves。Slave是KIO∷lavebase的子類,KIO∷Slavebase中定義了一些虛函數,不同的Slave必須重載這些接口。Slave以函數庫的形式存在于系統中,提供給相應的job調用。Slaveinterface運行在應用端(job),Slavebase運行在Slave端。一般情況下,創建的job會處在隊列中,當事件循環處理到該job時,KIO為隊列中的job分配適當的Slave。Slave的管理和調度是由調度器scheduler來執行的,scheduler將job隊列加入適當的協議(Slave)中。當該job結束之后,Slave進程不會立即停止,會在空閑區域中等待一定的時間。這種機制的優點在于,如果有幾個job訪問的是同一個主機,那么就不需要重新啟動新的進程,并且不需要再次進行協議握手。在同一時間,面向同一種網絡協議,系統中最多只能啟動3個Slave進程。如果引用該協議的job超過這個數目,那么多余的job將被添加到隊列中,直到又有空閑的Slave進程可用。圖2描述了Konqueror/embedded中關于底層協議(Slave)和任務(job)的實現過程。

  3.2GUI系統的實現——Kparts

  組件技術(1) Konqueror/embedded中的組件

  雖然,Konqueror/embedded的UI界面是直接繼承QMainWindow的,但是,UI界面的功能和布局是由組件來實現的,QMainWindow只是這些組件的宿主。在Konqueror/embedded啟動初始化過程中,首先加載一個特殊的組件——KHTMLPART。KHTMLPART負責其他組件(如Kflashpart、Kplaintextpart等)的加載和管理。采用Kparts組件編程技術能夠使得Konqueror/embedded的功能得到擴展,而不需要重新修改底層代碼,同時增強了Konqueror/embedded的可定制性。 Konqueror/embedded將Web 瀏覽器、flsahpalyer、文本編輯器和簡單音頻播放器都作為Kparts組件嵌入到主窗口中。Kparts組件編程技術能夠通過將圖形組件嵌入應用程序的窗口使需要同一功能的應用程序共享一個組件。Kparts組件分只讀組件和讀寫組件。只讀組件ReadOnlyPart 類為實現任何類型的查看器提供了一個公共框架。如果提供了一個文件的 URL,那么所有這些查看器都可以顯示該文件,并阻止對該文件的任何修改。在Konqueror/embedded中,像Web 瀏覽器、flashpalyer、簡單音頻播放器都屬于只讀組件。另外一種讀寫組件ReadWritePart 類是 ReadOnlyPart 的擴展,它添加了修改和保存文檔的可能性,像Konqueror/embedded中嵌入的文本編輯器,屬于讀寫組件。

  (2) Konqueror/embedded中組件實現技術

  以Konqueror/embedded中文本編輯器組件(Kplaintextpart)為例,組件必須要由三個元素組成,包括窗口構件、組件功能和用戶界面。窗口構件必須是 QWidget 的子代,Konqueror/embedded中的文本編輯器繼承于QmultiLineEdit類;除了窗口構件外,還需要組件提供的功能,Konqueror/embedded的中文本編輯器提供前進、后退、剪切、復制和全選等附加功能;當然還要提供訪問那些功能的用戶界面(操作以及 XML文件)。Konqueror/embedded中的文本編輯器只提供了窗口構件功能的菜單項。在XML格式文件Kplaintextpart.rc中定義其用戶界面的布局,它和應用程序代碼是分開的。當該文本編輯器被嵌入到Konqueror/embedded時,采用稱為XMLGUI的技術將組件菜單和原來的用戶界面合并。

  Konqueror/embedded中的文本編輯器組件構成如圖3所示。

  圖3文本編輯器組件結構Kparts組件的最大特征在于它的可重用性。要做到這一點,就必須將組件編譯到共享庫中。希望動態地打開共享庫的應用程序使用 KLibLoader 類。KLibLoader 處理庫的定位、打開以及調用初始化函數。初始化函數是庫的入口點。這個初始化函數創建一個工廠,由組件的工廠來創建組件。具體的實現方法如圖4所示。

  3.3KHTML繪制引擎的實現

  KHTML引擎作為 Konqueror/embedded的核心,包含了dom、xml、html、css、rendering、misc、ecma七個子目錄。這幾個子目錄的功能分別如圖5所示。

  從這個功能結構圖可以看出,Konqueror/embedded的KHTML引擎是基于XML的DOM技術來構建的,與現在的大部分瀏覽器的架構是相似的。DOM是以層次結構組織的節點或信息片斷的集合。在這種層次結構中可以利用導航儀搜尋特定的信息。同時,DOM還提供了一套API,可以用JAVA,C++或C來實現這些API。

  現在最常用的解析XML文件的方法有四種:文檔對象模型(DOM,Document Object Model)、用于XML的簡單API(SAX,Simple API for XML)、JDOM和用于XML解析的Java API(JAXP,Java API for XML Parsing)。它們有各自的優點和弱點,因而適用在不同的場合。Konqueror/embedded中采用的是DOM技術。它所提供的接口和方法可以對構建的DOM樹的節點進行添加、刪除,甚至可以刪除樹的幾個部分,還可以重新排列樹和添加新的分支;但是,由于DOM構建整個文檔駐留內存的樹,如果文檔很大,就會要求有極大的內存,這對于一般內存不大的嵌入式設備是個挑戰。另外,DOM構建整個文檔的每個節點和元素,如果用戶關心的只是其中的一部分,那么

  圖4組件創建步驟圖5Konqueror/embedded的構成將會引起資源的浪費;同時,DOM是在用戶獲取控制權之前加載整個文檔的,如果文檔很大,將產生明顯的延遲。Konqueror/embedded中,采用DOM技術來解析HTML/XML的最大優點在于,DOM會自動地保存已經解析過的文檔,而不必要在用戶希望瀏覽歷史的時候再重新解析文檔。

  Konqueror/embedded中采用的是DOM2級規范,分為DOM2 Core和DOM2 HTML。相對于DOM Level1,DOM2增加了對XML文檔處理的一些接口和方法:

   視圖(view),提供視圖與文檔的聯系;

   樣式表(style sheet),提供訪問和修改樣式表的方法;

   層疊樣式表(CSS2),提供CSS2兼容的方法;

   事件(events),提供各種事件的接口;

   文檔遍歷(document traversal),提供遍歷文檔層次的接口;

   文檔范圍(document range),提供分割文檔范圍的接口。

#p#

  4  在MC9328MX1上的應用

  4.1Konqueror/embedded的移植

  筆者在自行設計的基于Motorola Dragonball MC9328MX1芯片的開發板上成功移植了Konqueror/embedded。該開發板上運行嵌入式Linux,并以Qt/embedded2.3.7作為圖形引擎庫,上層運行Qtopia1.6。Konqueror/embedded是基于Qt的,并將依賴于Kde部分進行了簡化和包含,因此,移植Konqueror/embedded到該開發板是完全可能的。

  Konqueror/embedded提供了幾十種編譯選項,可以通過增減編譯選項來定制適合不同平臺,具有不同功能的Konqueror/embedded。

  Konqueror/embedded的非核心組件的實現是在addons目錄下,例如如果需要播放Flash支持,必須在編譯選項中加入--enable-add-ons=kflashpart。在該部件中,默認是將聲音關閉的,可以通過修改代碼將聲音開關打開。

  由于MC9328MX1芯片是基于ARM架構的,所以移植的第一步是構建合適的交叉編譯環境。筆者采用的是armlinuxg++編譯器。編譯過程與一般的Linux軟件編譯的過程相似;但是,將Konqueror/embedded編譯成功之后,單獨下載Konqueror/embedded的可執行文件Konqueror到開發板上運行將會出現致命的錯誤。因為Konqueror/embedded的運行需要兩個主要文件——html4.css和charset,是分別關于樣式表解析和字體設置的。

  4.2Konqueror/embedded的漢化

  Konqueror/embedded的漢化可分為兩個部分:一個是Konqueror/embedded本身控制界面的漢化;另一個是Konqueror/embedded對中文網站的訪問支持。和其他基于Qt的應用程序一樣,Konqueror/embedded中對所有用戶可見的文本使用;對所有文字形式的文本使用tr()。tr()將文本標識出來,這樣利用Qt提供的翻譯工具將很容易把這些文本轉化成所需要的語言;同時,Qt提供了兩個宏:QT_TR_NOOP()和QT_TRANSLATE_NOOP()。用它們標示出文本,以便于被lupdate工具提取。具體操作步驟如下:

   在需要翻譯源碼的XXX.pro中加入一項:TRANSLATIONS=XXX.ts 。

   運行lupdate XXX.pro,生成XXX.ts文件。該工具識別出tr()結構和上面描述的QT_*_NOOP宏,產生.ts文件(通常每種語言一個)。

   運行lrelease XXX.pro將生成XXX.qm。這是一個沒有翻譯成其他語言的.qm文件(也可以用Qt Linguist生成),可以把它改名為 XXX_en.qm。

   啟動Qt Linguist將XXX.ts文件導入,將需要翻譯的內容翻譯成中文。翻譯完成之后,點擊File→Release,將文件保存為XXX_zh.qm。

   翻譯文件保存之后,在程序源碼中需要構建Qtranslator實例,利用Qtranslator將翻譯文件加載到圖形界面上。

  在Konqueror/embedded中可以通過修改main.c中的這段代碼來實現UI的漢化:

  QString qmFile= “XXX_zh.qm”

  QTranslator *translator=new QTranslator (&app);

  if (translator->load (qmFile))

  app.installTranslator (translator);

  else

  delete translator;

  為了讓Konqueror/embedded能夠瀏覽中文網頁,需要理解Qt對字符編碼的處理。在Qt中采用Unicode編碼的方式來存儲、描述和運用字符串。讓Konqueror/embedded支持中文頁面瀏覽實際上與讓Qt支持中文字體的概念是一樣的。Qt/embedded/Qtopia中能夠識別以下四種字體格式,并且必須是Unicode編碼的:

   TrueType(TTF)——Scalable

   PostScript Type1(PFA/PFB)——Scalable

   Bitmap Distribution Format fonts(BDF)—— nonScalable

   Qt prendered Font (QPF)——nonScalable

  其中,QPF格式是Qt為了減小字符集體積和減小內存消耗而定義的一種字符存儲格式。在Qt/embedded/Qtopia中,采用這種格式的字符集。

  在Qt/embedded中,提供轉換QPF字體的工具——makeqpf。它是一個基于Qt/embedded的程序,編譯之后運行在QVFB中。我們采用的是Qt/embedded2.3.7版本的makeqpf,運行時需要先啟動QVFB,程序makeqpf會自動查找文件$QTDIR/lib/fonts/fontdir;所以,在此之前需要設置好QTDIR,告訴makeqpf所需要轉換的字符集的各種屬性。將MS Windows下的字符集simsun .ttc復制到$QTDIR/lib/fonts目錄下,改名為simsun .ttf,在文件fontdir中添加如下的一行:

  字符集轉換完成之后,Konqueror/embedded中用來管理屬性的preference類會在重啟之后自動搜索系統可用字符類型,新的字體名稱將會出現在選項欄中,以供選擇。

  5總結

  作為一款全功能的嵌入式瀏覽器,Konqueror/embedded運用了很多KDE程序設計的方法和思路。Kparts組件技術使得Konqueror/embedded具有良好的可擴展性,以適應不同用戶或不同場合的應用;I/OSlave機制讓Konqueror/embedded能夠通過各種網絡協議透明地訪問網絡文件;而作為KHTML引擎的核心——DOM,使得Konqueror/embedded能夠正確地解析和渲染HTML/XML文件,并在DOM結構樹上綁定ECAMScript引擎和CSS解析器。可見在結構上,Konqueror/embedded和其他現代瀏覽器具有相似之處。Konqueror/embedded是基于Qt工具套件的,因此,Konqueror/embedded只能運行在以Qt/embedded為基礎的嵌入式設備上或運行Qt/X11的PC機上,這在一定程度上限制了它的廣泛應用。但是,由于它實現了完整的瀏覽器功能,并且是完全免費的,所以Konqueror/embedded仍然具有很強的吸引力,同時對于其他的嵌入式瀏覽器設計,它所包含的很多設計思想是值得研究和借鑒的。

通過文章的詳細描述,我們可以清楚以技術的眼光看待Konqueror,希望對你們有所幫助!

【編輯推薦】

責任編輯:趙鵬 來源: 網絡轉載
相關推薦

2011-06-29 18:17:20

Konqueror Embedded 瀏覽器

2011-02-23 10:57:27

Konqueror

2009-08-04 09:56:09

Netbeans 6.Netbeans

2023-04-27 07:06:18

2010-02-26 14:17:09

嵌入式

2023-05-04 00:27:40

2010-01-06 09:53:08

嵌入式

2010-03-26 11:23:59

無線嵌入式控制技術

2009-12-22 17:46:56

Fedora 9嵌入式

2017-11-27 15:40:28

Linux內核崩潰錯誤跟蹤

2015-10-16 09:54:52

IE7瀏覽器微軟

2011-07-11 14:12:15

瀏覽器

2011-11-02 16:32:42

2009-05-14 09:28:16

嵌入式面試求職

2011-01-14 13:13:23

嵌入式Linux開發

2010-01-15 09:44:52

嵌入式存儲交換技術

2021-03-04 11:06:05

自助服務

2018-01-29 08:31:32

嵌入式內存技術

2009-08-20 10:57:40

嵌入式開發微軟

2010-04-05 21:57:14

Netscape瀏覽器
點贊
收藏

51CTO技術棧公眾號

日韩精品手机在线观看| 国产大片一区二区| 欧美视频一区二| 亚洲成人自拍| 亚洲h视频在线观看| 在线成人www免费观看视频| 亚洲欧美第一页| 日本一二三四区视频| 国产精品一区二区日韩| 国产日韩三级在线| 99re在线视频上| 中文字幕第四页| 亚洲91中文字幕无线码三区| 欧美精品一区二区三区高清aⅴ| 国产极品美女高潮无套久久久| 激情在线小视频| 2024国产精品视频| 96pao国产成视频永久免费| 99热在线观看免费精品| 天天天综合网| 亚洲欧洲日韩国产| 一级黄色大片免费看| 欧美××××黑人××性爽| 亚洲激情图片小说视频| 相泽南亚洲一区二区在线播放 | 亚洲不卡av一区二区三区| 成人激情视频网| 一区二区三区日本| 欧美丰满少妇xxxbbb| 黄网站欧美内射| 久久精品视频观看| 久久久久久亚洲综合影院红桃| 91观看网站| 亚洲无码久久久久久久| 国产区美女在线| 国产精品自拍网站| 国产精品一区二区三区免费视频| 日韩人妻无码一区二区三区99| 99久久婷婷国产综合精品电影√| 亚洲精品色婷婷福利天堂| 国产精品91av| 国产午夜久久av| 欧美私模裸体表演在线观看| 欧美精品99久久| xxxcom在线观看| 一区二区三区av电影| 综合国产精品久久久| av国产在线观看| 国产日本欧美一区二区| 欧美成ee人免费视频| 免费看黄色一级视频| 国产成人精品亚洲777人妖| 91精品视频一区| 一二区在线观看| 免费在线观看成人| 国产精品永久在线| 中文天堂在线视频| 青青草国产成人av片免费| 国产成人拍精品视频午夜网站| 日本va欧美va国产激情| 亚洲另类视频| 久久九九免费| 成人羞羞网站入口| 91精品国产麻豆国产自产在线| 日韩欧美xxxx| 欧美aaa视频| 欧美在线视频全部完| 9久久婷婷国产综合精品性色| 88xx成人免费观看视频库 | 午夜精品亚洲一区二区三区嫩草| 色视频精品视频在线观看| 91丨porny丨中文| 欧美下载看逼逼| av在线播放网站| ●精品国产综合乱码久久久久| 午夜啪啪免费视频| 51xtv成人影院| 亚洲观看高清完整版在线观看| 777av视频| 欧美momandson| 欧美日韩高清影院| 国产精品二区视频| 理论片一区二区在线| 亚洲欧美制服综合另类| 日韩欧美视频免费观看| 亚洲综合色站| 欧美综合第一页| 在线观看日韩一区二区| 国产伦精品一区二区三区在线观看| 国产精华一区二区三区| 精品视频高清无人区区二区三区| 狠狠综合久久av| 国产精品无码在线播放| 国产精品自拍av| 美女被啪啪一区二区| 天天综合视频在线观看| 亚洲永久免费视频| 可以免费在线看黄的网站| 免费黄色国产视频| 小早川怜子一区二区的演员表| 日韩成人在线观看视频| 亚洲黄色av女优在线观看| 91网站免费入口| 亚洲国产一区二区三区在线播放 | 娇妻被老王脔到高潮失禁视频| 午夜影视一区二区三区| 97se亚洲国产综合自在线| 四虎永久国产精品| 黄页网站在线| 欧美日韩国产高清一区二区三区| 69亚洲乱人伦| 五月精品视频| 日本精品免费观看| www.久久精品.com| 国产免费久久精品| 精品少妇人妻av免费久久洗澡| 成人精品一区二区三区电影| 亚洲高清久久久久久| 疯狂撞击丝袜人妻| 丝袜美腿亚洲一区二区图片| 国产v亚洲v天堂无码| 91caoporn在线| 懂色aⅴ精品一区二区三区蜜月| 国产三级生活片| 国产一区日韩| 38少妇精品导航| 开心激情综合网| 亚洲欧美二区三区| 一女二男3p波多野结衣| 精品盗摄女厕tp美女嘘嘘| 海角国产乱辈乱精品视频| 国产精品久久久久久69| 国产午夜亚洲精品理论片色戒 | 久久精品在线| 国产日韩二区| 超免费在线视频| 日韩视频免费直播| 日韩精品一区二区亚洲av性色| 日韩精品一级二级| 青娱乐一区二区| 亚洲最大网站| 亚洲乱码一区二区| 久久久久久91亚洲精品中文字幕| 成人国产亚洲欧美成人综合网| www国产免费| 视频二区欧美| 欧美激情一二三| 亚洲第一第二区| 亚洲自拍偷拍综合| 在线看黄色的网站| 99热免费精品| 久久婷婷人人澡人人喊人人爽| hd国产人妖ts另类视频| 精品国产乱码久久久久久1区2区| 九九热精品免费视频| 国产成人午夜精品影院观看视频| 免费看污污视频| 我要色综合中文字幕| 日韩中文字幕在线| 中文字幕久热精品视频在线| 一区二区三区四区视频在线观看| 在线手机中文字幕| 亚洲美女视频网站| 日日噜噜噜噜人人爽亚洲精品| 久久综合99re88久久爱| 九色在线视频观看| 国产精品嫩模av在线| 国产成人在线一区二区| 超碰在线超碰在线| 狠狠操综合网| 国产精品一久久香蕉国产线看观看| 国产一级二级三级在线观看| 在线看日本不卡| 91香蕉一区二区三区在线观看| 久久99国产精品久久99| 五月天激情图片| 久久精品国产亚洲blacked| 欧美最顶级丰满的aⅴ艳星| 成人免费在线电影| 欧美一区二区日韩| 精品美女久久久久| 国产精品―色哟哟| av在线天堂网| 视频一区二区三区中文字幕| 永久免费精品视频网站| 波多野结衣一区二区三区免费视频| 91高清在线免费观看| 触手亚洲一区二区三区| 日韩一级黄色片| 国产又黄又猛又粗又爽| 中文字幕日韩一区二区| 中国极品少妇xxxx| 蜜桃视频一区二区三区在线观看| 大片在线观看网站免费收看| 国产精品美女在线观看直播| 国产成人精品综合| 国语对白在线刺激| 中文字幕综合一区| 色欲久久久天天天综合网| 欧美撒尿777hd撒尿| 国产一级av毛片| 国产精品欧美久久久久一区二区| www.欧美com| 免费在线观看精品| 国产免费黄视频| 亚洲乱码电影| 午夜精品福利一区二区| 国产精品成人自拍| 成人激情视频在线观看| 亚洲一区资源| 久久久爽爽爽美女图片| 97视频在线观看网站| 亚洲国产精品久久久久秋霞蜜臀 | 欧美日韩你懂得| 久久久久久久久久久久久久av| 自拍偷在线精品自拍偷无码专区 | 68精品国产免费久久久久久婷婷| 日本中文字幕在线播放| 亚洲日本中文字幕免费在线不卡| 精品国产免费无码久久久| 在线亚洲免费视频| 日韩欧美a级片| 一区二区三区.www| 天天天天天天天天操| 国产亚洲成aⅴ人片在线观看| 久久久久亚洲AV成人无码国产| 国产一区二区三区蝌蚪| 亚洲77777| 日韩专区在线视频| 91视频 -- 69xx| 伊人久久成人| 成年在线观看视频| 亚洲国产日韩欧美在线| 亚洲一区二区在线观| 精品黄色一级片| 日韩欧美电影一区| 亚洲国产精品成人一区二区| 免费一级suv好看的国产网站| 91在线观看视频| www.17c.com喷水少妇| 国产福利视频一区二区三区| 久热在线视频观看| 麻豆精品一区二区av白丝在线| 妓院一钑片免看黄大片| 久久高清免费观看| 女同一区二区| 中文字幕一区二区在线观看视频| а√在线中文网新版地址在线| 日韩亚洲第一页| 在线国产情侣| 最近中文字幕mv在线一区二区三区四区 | 日韩资源在线| 亚洲精品自拍视频| 欧洲视频在线免费观看| 99免费精品在线| 少妇性饥渴无码a区免费| 一区二区三区导航| 噜噜噜久久亚洲精品国产品麻豆| 国产欧美午夜| 成人一级片网站| 日韩国产精品大片| 女同激情久久av久久| 国内成人自拍视频| 欧美xxxxx少妇| 91麻豆国产福利在线观看| 国产手机在线观看| 国产精品日日摸夜夜摸av| 亚洲区一区二区三| 亚洲精品免费一二三区| 九九热只有精品| 精品福利一区二区| 波多野结衣不卡| 欧美精品久久一区| 国产 日韩 欧美 精品| 日韩av网站在线| h网站视频在线观看| 精品国产一区二区三区四区在线观看| 成人看av片| 午夜精品久久17c| 三级在线观看视频| 国产精品欧美日韩久久| 高清av一区| 99久久久精品免费观看国产| 网曝91综合精品门事件在线| 日韩视频在线观看国产| 午夜久久美女| 国产欧美高清在线| 国产精品一区二区三区四区| 黄色性生活一级片| 国产精品国产三级国产普通话99| 精品少妇theporn| 91久久线看在观草草青青| 国产三区在线播放| 亚洲欧美精品一区| av在线官网| 国产精品999999| 国产成人在线中文字幕| 免费在线观看一区二区| 亚洲精品二区三区| 能在线观看的av| 国产精品综合av一区二区国产馆| 亚洲成人网在线播放| 亚洲精品免费在线播放| 成人午夜精品视频| 亚洲成人网av| 乱人伦中文视频在线| 4p变态网欧美系列| 136导航精品福利| 日韩性感在线| 国产亚洲精品自拍| 亚洲精品鲁一鲁一区二区三区| 国产日韩欧美精品一区| 日本一级淫片色费放| 91精品国产福利| 97最新国自产拍视频在线完整在线看| 97在线免费视频| 亚洲高清在线一区| 亚洲天堂av免费在线观看| 久久久久国产一区二区| 制服丝袜第一页在线观看| 亚洲欧美偷拍卡通变态| 伊人成人在线观看| 一区二区三区日韩在线| 神马午夜在线视频| 国产亚洲欧美一区二区三区| 亚洲最新av| 极品粉嫩美女露脸啪啪| 中文一区在线播放| 日韩黄色片网站| 亚洲激情中文字幕| 日日摸日日碰夜夜爽无码| 国产肥老妇视频| 69精品人人人人| av资源种子在线观看| 欧美夜福利tv在线| 精品三级av| 国产精品国产对白熟妇| 国产91丝袜在线播放九色| 欧美黄色免费在线观看| 9191国产精品| 国产黄a三级三级三级av在线看| 国产精品久久久久久久久久尿 | 毛片在线播放a| 国产精品视频不卡| 日韩1区2区| 中文字幕永久有效| 亚洲欧洲日韩女同| av综合在线观看| 色综合色综合网色综合| 午夜免费欧美电影| 女人帮男人橹视频播放| 不卡大黄网站免费看| 国产午夜精品一区二区理论影院 | 成人午夜两性视频| 香蕉视频国产精品| 国产精品熟女一区二区不卡| 亚洲精品高清视频在线观看| 亚洲国产精品久久久久爰性色| 色综合久久久888| 激情视频极品美女日韩| 成人在线免费观看av| 久久久91精品国产一区二区精品 | 久久免费公开视频| 亚洲国产精久久久久久久| 极品av在线| 日本不卡久久| 免费看欧美女人艹b| 二区三区四区视频| 欧美本精品男人aⅴ天堂| 僵尸再翻生在线观看| 欧美日韩国产一区中文午夜| 久久国产精品 国产精品| 麻豆一区二区麻豆免费观看| 日本韩国欧美在线观看| www亚洲一区| 亚洲天堂中文网| 欧美黑人狂野猛交老妇| 亚洲三级精品| 天天干天天操天天做| 亚洲国产精品久久一线不卡| 瑟瑟在线观看| 国产精品三级网站| 亚洲一级特黄| 国产精品入口免费软件| 国产精品xx| 欧美日韩国产黄| 国产一级特黄a大片免费| 中文字幕亚洲在线观看| 中文字幕无线精品亚洲乱码一区 | 欧洲毛片在线视频免费观看| 亚洲无吗一区二区三区| 樱桃国产成人精品视频| 同心难改在线观看| 在线看日本不卡| 国内精品一区视频| 999精品在线观看| 奇米影视一区二区三区小说| 美女视频黄免费| 中文字幕日韩欧美精品在线观看| 大奶一区二区三区|