精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲在线网站| 在线国产成人影院| 国内精品伊人久久久久av影院| www.久久色.com| 亚洲成人福利在线| 成人影欧美片| 成人97人人超碰人人99| 538国产精品视频一区二区| 亚洲国产天堂av| 影视一区二区三区| 亚洲品质自拍视频网站| 国产精品免费视频一区二区| 天天爽夜夜爽夜夜爽精品| 国产成人精品免费视| 制服丝袜成人动漫| 国产a级片网站| 国产在线资源| 国产乱妇无码大片在线观看| 性色av一区二区三区红粉影视| 天天躁日日躁aaaxxⅹ | 久久久久亚洲精品成人网小说| 日韩少妇一区二区| 国产精品天堂蜜av在线播放 | 亚洲国产精品成人av| 999在线免费视频| 黄色免费网站在线| 91香蕉视频mp4| 2020国产精品久久精品不卡| 国产精品第5页| 中文字幕亚洲综合久久五月天色无吗'' | 快播电影网址老女人久久| 亚洲天堂免费看| 欧美一区二区三区在线免费观看| 国内老熟妇对白hdxxxx| 首页国产欧美日韩丝袜| 最新国产精品视频| 久久精品999| 欧美精品videosex性欧美| 久久精品国产电影| 国产精品19p| 中文字幕一区久| 亚洲一区二区欧美日韩 | 91精品国产毛片武则天| 日本xxxxwww| 黄页视频在线91| 国产精品69精品一区二区三区| 真实国产乱子伦对白在线| 精品久久久久中文字幕小说| 亚洲国产成人精品女人久久久| 日本高清久久久| 日韩电影网站| 午夜精品久久久久久久99水蜜桃| 亚洲自拍偷拍二区| 黄色网址在线播放| 91日韩一区二区三区| 91黄在线观看| 国产精品无码免费播放| 蜜臀av一区二区在线观看| 欧洲精品毛片网站| 久久高清免费视频| 激情综合久久| 欧美激情一区二区三区高清视频| 91久久久久久久久久久久久久| 欧美女王vk| 亚洲深夜福利网站| 我和岳m愉情xxxⅹ视频| 任你躁在线精品免费| 亚洲成人在线网| 四虎成人免费视频| 在线视频亚洲欧美中文| 日韩精品一区二区三区老鸭窝| 亚洲免费看av| 欧美天堂一区| 69堂成人精品免费视频| 国产一级片自拍| 国产亚洲精彩久久| 欧美日韩精品一区视频| 成年人三级黄色片| 亚洲成人高清| 日韩一本二本av| 中文字幕在线播放一区二区| 99精品女人在线观看免费视频| 91精品国产综合久久小美女| 亚洲欧美手机在线| 中文字幕亚洲在线观看| 日韩欧美在线综合网| 五月天av在线播放| 韩国一区二区三区视频| 欧美www视频| 日韩少妇一区二区| 亚洲小说图片视频| 亚洲视频欧洲视频| 色www亚洲国产阿娇yao| 亚洲字幕久久| 97视频在线观看免费高清完整版在线观看| www.天天色| 久久久久久一区二区| 国产精品国产三级国产专播精品人| 91在线你懂的| 懂色av一区二区三区免费看| 成人资源av| 牛牛热在线视频| 国产精品区一区二区三| 在线观看污视频| 第一福利在线视频| 欧美日韩国产区| 国产成人黄色网址| 成人另类视频| 亚洲国产精品成人一区二区| 99久久久久久久久久| 成人综合久久| 韩国国内大量揄拍精品视频| 国产精品51麻豆cm传媒| 国产成都精品91一区二区三| 日产中文字幕在线精品一区| 国产原创视频在线观看| 精品国产成人在线| 日本不卡一区在线| 青青草原在线亚洲| 精品久久国产精品| 6080午夜伦理| 国产一区 二区 三区一级| 精品一区二区不卡| 国产一区久久精品| 欧洲av在线精品| 亚洲视频在线播放免费| 日韩欧美视频专区| 91精品91久久久久久| 亚洲自拍第二页| 91色在线porny| 亚洲爆乳无码精品aaa片蜜桃| 成人欧美magnet| 欧美mv日韩mv国产网站| 国产又粗又猛又爽又黄的视频小说| 欧美 日韩 国产 一区| 国产精品精品一区二区三区午夜版 | 午夜欧美福利视频| 97视频一区| 久久激情视频久久| 欧美国产一级片| 2020日本不卡一区二区视频| 17c丨国产丨精品视频| 欧美aaaaaaaa| 国产亚洲一级高清| 可以免费看的av毛片| 粉嫩嫩av羞羞动漫久久久| 伊人久久大香线蕉午夜av| 女生影院久久| 亚洲女人被黑人巨大进入al| 国产特黄大片aaaa毛片| 国产成人午夜99999| 国产高潮呻吟久久久| 三级成人在线| 亚洲视频777| 中文字幕av影院| 99re热这里只有精品免费视频| 久久久久久av无码免费网站下载| 成人国产精品一区二区网站| 中文字幕亚洲图片| 伊人色综合久久久| 国产欧美一二三区| 91看片在线免费观看| 国产成人精品999在线观看| 欧美亚洲另类视频| 亚洲 美腿 欧美 偷拍| 性久久久久久久久久久久| 韩国三级与黑人| 66国产精品| 91网站免费看| 性欧美videoshd高清| 欧美一级午夜免费电影| 久久无码精品丰满人妻| 国产精品一级黄| 福利在线小视频| 色妞ww精品视频7777| 色综合视频一区中文字幕| 午夜精品小视频| 亚洲一区在线观看免费 | 国产成人综合在线| 男人添女荫道口女人有什么感觉| 国产精品tv| 欧美中文字幕在线观看| aⅴ在线视频男人的天堂 | 五月婷婷中文字幕| 国产丝袜美腿一区二区三区| 手机视频在线观看| 97精品一区| 99re在线视频观看| 两个人看的在线视频www| 亚洲人精品午夜在线观看| 亚洲天堂狠狠干| 亚洲综合精品久久| 鲁大师私人影院在线观看| 丝袜美腿亚洲色图| 一区二区三区四区在线视频| 另类视频一区二区三区| 性欧美激情精品| 成年人视频免费在线观看| 欧美人与性动xxxx| 欧美成人一二三区| 久久综合色一综合色88| 天天综合网日韩| 精品91久久久久| 神马影院我不卡| 欧美国产中文高清| 欧美精品18videos性欧美| 欧美孕妇孕交| 欧美一区二区三区色| 91精品国产乱码久久久张津瑜| 国产日韩欧美一区二区三区综合| 久久久久久久久久毛片| 国产精品入口| 乱子伦一区二区| 国产99久久精品一区二区300| 91日韩在线播放| 在线天堂资源| 欧美精品做受xxx性少妇| 韩国中文字幕hd久久精品| 在线观看成人免费视频| 精品无码久久久久久久| 国产精品婷婷午夜在线观看| 成人在线视频免费播放| 久久精品国产999大香线蕉| www.av毛片| 91高清一区| 四虎永久国产精品| 一区二区三区在线免费看| 国产精品女人久久久久久| 爱情岛亚洲播放路线| 最近中文字幕2019免费| 日韩中文字幕免费在线观看| 91精品福利在线| 欧美激情亚洲综合| 亚洲视频免费在线观看| 一级黄色性视频| 91在线精品一区二区三区| 午夜xxxxx| 美国十次了思思久久精品导航 | 日韩中文字幕亚洲一区二区va在线| 一区二区三区一级片| 精品毛片免费观看| 久久久久久九九九九| 超碰97久久| 91视频免费网站| 色综合久久久| 国产日本欧美一区二区三区| 日本肉肉一区 | 精品国产免费久久久久久尖叫 | 日本成人网址| 亚洲一二在线观看| 国产小视频免费在线观看| 亚洲男人av电影| 天堂资源最新在线| 欧美一区二区三区白人| 国产人妖一区二区三区| 欧美午夜寂寞影院| 中文字幕人妻互换av久久| 欧美综合天天夜夜久久| 日韩欧美一级视频| 欧美日韩国产一区在线| 亚洲 欧美 视频| 欧美色视频日本版| 日韩精品1区2区| 日韩欧美第一页| 成人a v视频| 91精品福利视频| 日本黄色一级视频| 色8久久精品久久久久久蜜| 在线观看免费视频a| 欧美一区午夜视频在线观看| 亚洲欧美另类一区| 亚洲美女又黄又爽在线观看| 午夜激情在线观看| 九九视频这里只有精品| 中文字幕这里只有精品| 国产精品麻豆va在线播放| 国产区一区二| 精品久久sese| 99久久亚洲精品| 久久综合伊人77777尤物| 国产乱码久久久| 日韩免费福利电影在线观看| 人妻少妇一区二区三区| 亚洲欧洲黄色网| 成人免费看片| 18性欧美xxxⅹ性满足| 国产精品无码久久久久| 91久久国产自产拍夜夜嗨| 亚洲涩涩av| 欧美一区二区三区不卡| 国产 日韩 欧美 精品| 亚洲欧美一区二区三区情侣bbw| 欧美日韩欧美| 欧美亚洲在线视频| 动漫一区二区三区| 久久艳妇乳肉豪妇荡乳av| 99久久99久久精品国产片果冰| 国产不卡一区二区视频| 美女免费视频一区二区| 性久久久久久久久久久| 亚洲人亚洲人成电影网站色| 综合网在线观看| 日韩精品一区二区三区在线观看 | 成人av电影免费观看| 波兰性xxxxx极品hd| 色综合视频一区二区三区高清| 性一交一乱一伧老太| 在线观看国产成人av片| 国产精品高颜值在线观看| 成人在线激情视频| 欧美精选视频在线观看| av免费观看大全| 国产一区二区h| 四季av中文字幕| 色综合久久综合网97色综合| 色婷婷激情五月| 久国内精品在线| 国产精品777777在线播放| 日韩精品另类天天更新| 先锋影音久久久| 一级特黄a大片免费| 亚洲制服丝袜在线| jizz国产视频| 久久视频这里只有精品| 欧美成人家庭影院| 视频一区二区三区免费观看| 先锋影音久久久| 野花社区视频在线观看| 性欧美大战久久久久久久久| 亚洲黄色在线免费观看| 九九热这里只有精品6| 国产精品18| 久久香蕉视频网站| 国产成+人+日韩+欧美+亚洲| 久久人妻无码aⅴ毛片a片app| 欧美日韩激情一区二区三区| 9i精品一二三区| 国产精品亚洲综合天堂夜夜| 精品久久影视| 超碰影院在线观看| 国产亚洲精久久久久久| 怡红院av久久久久久久| 亚洲天堂第一页| 国产亚洲一区二区手机在线观看| 日韩av一区二区三区在线| 手机精品视频在线观看| 国产一区二区三区精品在线| 日本精品一区二区三区高清| 精品电影在线| 国产三级精品网站| 91久久国产| 九九九九九国产| 亚洲精品日产精品乱码不卡| 精品人妻少妇AV无码专区| 欧美激情奇米色| 嫩草国产精品入口| 久久精品99国产| 中文一区在线播放| 国产精品嫩草影院精东| 欧美激情xxxx| 一本久久青青| 污污动漫在线观看| 亚洲美女偷拍久久| 后入内射欧美99二区视频| 91产国在线观看动作片喷水| 精品日韩一区| www.日本久久| 婷婷国产v国产偷v亚洲高清| 飘雪影视在线观看免费观看 | 米奇777超碰欧美日韩亚洲| 亚洲男人天堂色| 亚洲摸摸操操av| 无码精品视频一区二区三区| 国产精品三级网站| 欧美成人一区二免费视频软件| 超碰97在线资源站| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 毛片在线视频| 久久99蜜桃综合影院免费观看| 免费高清不卡av| 国产一级特黄a高潮片| 国产精选第一页| 色天使久久综合网天天| 日本在线天堂| 国产精品手机在线| 日韩电影在线观看一区| 免费在线黄色网| 亚洲久久久久久久久久久| 日韩电影免费观看高清完整版在线观看| 玖玖精品在线视频| 337p粉嫩大胆噜噜噜噜噜91av | 精品视频免费观看| 人人狠狠综合久久亚洲| 久久一级黄色片| 在线视频日韩精品| 成人线上播放| 天天干天天色天天干| 一道本成人在线| 超碰97免费在线| 自拍偷拍一区二区三区|