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

Qt Webkit中瀏覽器插件設(shè)計(jì)實(shí)現(xiàn)

移動(dòng)開發(fā)
QtWebkit中插件可以有兩種,一種Mime必須是application/x-qt-plugin或者application/x-qt-styled-widget,而另外一種則無需固定,可以是除了前面的兩種以外任意其它Mime類型。

Qt Webkit瀏覽器插件設(shè)計(jì)實(shí)現(xiàn)是我們要介紹的內(nèi)容,我們都知道瀏覽器中有一套由Netscape瀏覽器傳承下來的插件接口,包括webkit,firefox都是支持的,但是那個(gè)開發(fā)起來比較困難,并且是平臺(tái)相關(guān)的,借助于Qt的跨平臺(tái)的特性,可以方便地為Qt開發(fā)出一套跨平臺(tái)的插件

QtWebkit中插件可以有兩種,一種Mime必須是application/x-qt-plugin或者application/x-qt-styled-widget,而另外一種則無需固定,可以是除了前面的兩種以外任意其它Mime類型。

前一種相對(duì)來說開發(fā)起來比較容易,只需重新實(shí)現(xiàn)

  1. QObject * QWebPage::createPlugin (   
  2. const QString   
  3. & classid, const QUrl   
  4. & url, const QStringList   
  5. & paramNames, const QStringList &paramValues   

這個(gè)函數(shù)即可,這個(gè)函數(shù)會(huì)把HTML文件中的參數(shù)都傳遞進(jìn)來

下面是一個(gè)例子:

  1. class PluginPage : public QWebPage  
  2. {  
  3. public:  
  4. PluginPage(QObject *parent = 0)  
  5. : QWebPage(parent) {}  
  6. protected:  
  7. virtual QObject *createPlugin(const QString &classid, const QUrl &url,  
  8. const QStringList &paramNames,  
  9. const QStringList &paramValues)  
  10. {  
  11. QObject *result = 0;  
  12. if (classid == "pushbutton")  
  13. result = new QPushButton();  
  14. else if (classid == "lineedit")  
  15. result = new QLineEdit();  
  16. if (result)  
  17. result->setObjectName(classid);  
  18. //可以進(jìn)行一些處理  
  19. return result;  
  20. }  
  21. }; 

這樣下面的網(wǎng)頁就可以一個(gè)pushbutton了:

  1. <html> 
  2. <body> 
  3. <object type='application/x-qt-plugin' classid='pushbutton' id='mybutton'/> 
  4. </body> 
  5. </html> 

并且還可以在JavaScript訪問到QPushbutton,例如:

document.getElementById('mybutton').text將會(huì)返回按鈕上的字符串。

前一節(jié)介紹的插件設(shè)計(jì)方式中雖然方便,但是其Mime類型只能是application/x-qt-plugin或者application/x-qt-styled-widget,這個(gè)有時(shí)候可能滿足不了實(shí)際應(yīng)用需求,那么另一種就沒有這種限制,那可以是任意Mime類型的。這種設(shè)計(jì)需要重新實(shí)現(xiàn)QWebPluginFactory這個(gè)純虛基類。先看看他的聲明:

前一節(jié)介紹的插件設(shè)計(jì)方式中雖然方便,但是其Mime類型只能是application/x-qt-plugin或者application/x-qt-styled-widget,這個(gè)有時(shí)候可能滿足不了實(shí)際應(yīng)用需求,那么另一種就沒有這種限制,那可以是任意Mime類型的。這種設(shè)計(jì)需要重新實(shí)現(xiàn)QWebPluginFactory這個(gè)純虛基類。先看看他的聲明:

  1. class QWEBKIT_EXPORT QWebPluginFactory : public QObject {  
  2. ……  
  3. public:  
  4. struct Plugin {  
  5. QString name;  
  6. QString description;  
  7. QList<MimeType> mimeTypes;  
  8. };  
  9. explicit QWebPluginFactory(QObject* parent = 0);  
  10. virtual ~QWebPluginFactory();  
  11. virtual QList<Plugin> plugins() const = 0;  
  12. virtual void refreshPlugins();  
  13. virtual QObject *create(const QString& mimeType,  
  14. const QUrl&,  
  15. const QStringList& argumentNames,  
  16. const QStringList& argumentValues) const = 0;  
  17. virtual bool extension(Extension extension, const ExtensionOption* option = 0, ExtensionReturn* output = 0);  
  18. virtual bool supportsExtension(Extension extension) const;  
  19. ……  
  20. }; 

重點(diǎn)要實(shí)現(xiàn)的接口是plugins,用于獲取plugin的列表,用于webkit內(nèi)部判斷該mime類型是否被支持,如果可以支持,那么就會(huì)調(diào)用create來創(chuàng)建這個(gè)插件,而具體打開哪個(gè)文件以及參數(shù)都會(huì)傳遞進(jìn)來。

后兩個(gè)extension和supportsExtension接口暫時(shí)沒有發(fā)現(xiàn)有什么用處,暫不考慮。

因此重新實(shí)現(xiàn)的WebPluginFactory如下:

  1. class WebPluginFactory: public QWebPluginFactory  
  2. {  
  3.     public:  
  4.         WebPluginFactory(QObject *parent = 0);  
  5.         ~WebPluginFactory(){};  
  6.         QList<QWebPluginFactory::Plugin> plugins()const ;  
  7.         void refreshPlugins();  
  8.         QObject *create(const QString &mimeType,  
  9.                 const QUrl &url,  
  10.                 const QStringList &argumentNames,  
  11.                const QStringList &argumentValues) const ;  
  12.         bool extension(QWebPluginFactory::Extension extension, const QWebPluginFactory::ExtensionOption *option = 0
  13. QWebPluginFactory::ExtensionReturn *output = 0);  
  14.         bool supportsExtension(QWebPluginFactory::Extension extension) const;  
  15.     private:  
  16.         // 用于將載入的插件記錄下來  
  17.         mutable QList<QList<QWebPluginFactory::Plugin> > pluginslist;  
  18.         mutable QList<WebKitPluginInteface *> interfaces;  
  19. }; 

具體實(shí)現(xiàn)主要是create和plugins兩個(gè)函數(shù):

  1. QList<QWebPluginFactory::Plugin> WebPluginFactory::plugins() const  
  2. {  
  3.     const char * s=getenv("BROWSER_PLUGIN_DIR");  
  4.     static bool isFirst=true;  
  5.     if(!isFirst)  
  6.     {  
  7.         return pluginslist;  
  8.     }  
  9.     isFirst=false;  
  10.     QString spath;  
  11.     if(s)  
  12.     sspath=s;  
  13.     else  
  14. {  
  15. spath=".";  
  16. }  
  17.     QDir dir(spath);  
  18.     QStringList filters;  
  19.     QString abspath=dir.absolutePath();  
  20. filters<<"libqtweb*.so"; //查找下面的擴(kuò)張,linux下是so,windows下則應(yīng)該是dll,  
  21.     QStringList files=dir.entryList(filters);  
  22.     foreach(QString file,files)  
  23.     {  
  24.         file=dir.filePath(file);  
  25.         QPluginLoader loader(file,0);  
  26.         QObject * objloader.instance();  
  27. //下面是載入自定義的接口,只有這樣才能支持動(dòng)態(tài)插件創(chuàng)建,如果固定死了,將不利于擴(kuò)展,后一節(jié)會(huì)介紹這部分內(nèi)容  
  28.         WebKitPluginInteface * interfaceqobject_cast<WebKitPluginInteface*> (obj);  
  29.         if(interface==0)  
  30.        {  
  31.             //ignore error when loading so ;  
  32.             continue;  
  33.         }  
  34.         interface->plugins();  
  35.         plugins.append(interface->plugins());  
  36.         pluginslist.append(interface->plugins());  
  37.         interfaces.append(interface);  
  38.     }  
  39.     return plugins;  
  40. }  
  41. void WebPluginFactory::refreshPlugins()  
  42. {  
  43.     Reload();  
  44. }  
  45. QObject * WebPluginFactory::create(const QString &mimeType,  
  46.         const QUrl &url,  
  47.         const QStringList &argumentNames,  
  48.         const QStringList &argumentValues) const  
  49. {  
  50.     for(int i=0;i<pluginslist.size();i++)  
  51.     {  
  52.         for( int j=0;j< pluginslist[i].size();j++)  
  53.         {  
  54.             foreach(WebPluginFactory::MimeType mt, pluginslist[i][j].mimeTypes)  
  55.             {  
  56.                 if(mt.name == mimeType) //查找到,創(chuàng)建實(shí)例  
  57.                     return interfaces[i]->create( mimeType, url, argumentNames, argumentValues);  
  58.             }  
  59.         }  
  60.     }  
  61.     return NULL; //如果沒有,直接返回NULL,webkit會(huì)進(jìn)行處理的  

這兩個(gè)最主要的接口都是圍繞著mimetype進(jìn)行的,通過返回的列表告訴webkit插件支持什么類型的文件,而create則根據(jù)mimetype來識(shí)別文件類型,然后創(chuàng)建相應(yīng)的插件。

下一節(jié)會(huì)簡單的創(chuàng)建一個(gè)插件來演示如何創(chuàng)建一個(gè)插件。

上一篇講到可以通過擴(kuò)展QWebPage接口進(jìn)行動(dòng)態(tài)載入插件,但是插件的接口并沒有明確,這一篇通過介紹自定義的接口來實(shí)現(xiàn)插件的動(dòng)態(tài)載入。

首先是接口的定義:

  1. class WebKitPluginInteface  
  2. {  
  3.     public:  
  4.         virtual ~WebKitPluginInteface(){};  
  5.         virtual QList<QWebPluginFactory::Plugin> plugins()const =0;  
  6.         virtual QObject *create(const QString &mimeType,  
  7.                 const QUrl &url,  
  8.                 const QStringList &argumentNames,  
  9.                 const QStringList &argumentValues) const =0;  
  10. };  
  11.  
  12. Q_DECLARE_INTERFACE(WebKitPluginInteface, "baizx.cnblogs.com/1.0") 

這樣自定義的插件就可以通過實(shí)現(xiàn)這個(gè)接口來實(shí)現(xiàn)定制的插件。下面是一個(gè)例子:

  1. class TestPlugin :public QObject,public WebKitPluginInteface  
  2. {  
  3. Q_OBJECT  
  4. Q_INTERFACES(WebKitPluginInteface)  
  5.     public:  
  6.         TestPlugin(QObject * parent=0): WebkitPlugin(parent){};  
  7.         virtual ~TestPlugin(){};  
  8.         virtual QList<QWebPluginFactory::Plugin> plugins()const ;  
  9.         virtual QObject *create(const QString &mimeType,  
  10.                 const QUrl &url,  
  11.                 const QStringList &argumentNames,  
  12.                 const QStringList &argumentValues) const ;  
  13. };  
  14.  
  15. QList<QWebPluginFactory::Plugin> TestPlugin::plugins()const  
  16. {  
  17.     QList<QWebPluginFactory::Plugin> plugins ;  
  18.     QWebPluginFactory::Plugin plugin;  
  19.     QWebPluginFactory::MimeType mimeType;  
  20.     QStringList strings;  
  21.     plugin.name="testplugin";  
  22.     plugin.description="testplugin !!!";  
  23.     mimeType.name="application/x-textedit";  
  24.     mimeType.description="test textedit";  
  25.     strings.append(".etxt");  
  26.     mimeType.fileExtensions=strings;  
  27.     QList<QWebPluginFactory::MimeType> mimeTypes;  
  28.     mimeTypes.append(mimeType);  
  29.     plugin.mimeTypes=mimeTypes;  
  30.     plugins.append(plugin);  
  31.     return plugins;  
  32. }  
  33.  
  34. QObject *TestPlugin::create(const QString &mimeType,  
  35.                 const QUrl &url,  
  36.                 const QStringList &argumentNames,  
  37.                 const QStringList &argumentValues) const  
  38. {  
  39.     QTextEdit * editnew QTextEdit();  
  40. edit->setObjectName("我是插件");  
  41.     edit->setPlainText(mimeType + url.toString() );  
  42.     Q_UNUSED(argumentNames);  
  43.     Q_UNUSED(argumentValues);  
  44.     return edit;  

這樣一個(gè)簡單的插件就創(chuàng)建完畢了,具體實(shí)際應(yīng)用中可能會(huì)用到很到參數(shù),并且會(huì)載入實(shí)際的內(nèi)容,這里只是一個(gè)演示。

小結(jié):Qt Webkit瀏覽器插件設(shè)計(jì)實(shí)現(xiàn)的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-09-09 18:43:13

Qt Webkit瀏覽器

2011-08-29 14:27:33

QTWebkit瀏覽器

2010-07-21 15:06:33

2011-06-10 17:10:32

Qt GUI 瀏覽器

2011-09-01 14:04:45

QT Webkit插件

2013-03-06 11:10:12

WebKit瀏覽器

2013-10-31 14:31:09

2011-08-08 09:25:55

2009-11-11 13:00:05

GNOME瀏覽器Webkit內(nèi)核

2011-09-09 17:39:58

WebKit瀏覽器

2010-04-28 10:39:43

Webkit瀏覽器內(nèi)核

2011-06-10 16:44:17

Qt 瀏覽器

2013-11-22 09:58:36

2011-06-14 11:48:38

Webkit QT

2016-09-21 14:24:37

3D全景瀏覽器瀏覽器

2009-11-12 09:21:20

Chrome瀏覽器插件

2009-06-22 14:06:00

java瀏覽器

2011-09-01 15:22:16

Qt WebKitWebKit

2013-02-18 10:39:53

OperaWebkit瀏覽器

2010-01-21 09:02:51

搜狗瀏覽器Webkit
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲综合视频在线| 麻豆精品视频在线观看视频| 欧美成人精品3d动漫h| 成人免费在线网| 手机av免费在线观看| 丝袜美腿高跟呻吟高潮一区| 久久精品99久久久久久久久| 日韩精品xxx| 欧美日韩美女| 亚洲欧美日韩一区二区| 国产伦精品一区二区三区照片91| 久久久久99精品成人片三人毛片| 第一sis亚洲原创| 欧美大片一区二区三区| 一本色道无码道dvd在线观看| 亚洲成a人v欧美综合天堂麻豆| 国产乱人伦偷精品视频不卡 | 国产精品v亚洲精品v日韩精品| 亚洲精品成人网| 久久久精品高清| 日本不卡1234视频| 亚洲女女做受ⅹxx高潮| 欧美黄色直播| 丰满人妻av一区二区三区| 日韩精品一级中文字幕精品视频免费观看| 欧美精品在线免费| 久久久久亚洲AV成人无在| 国产精品网站在线看| 欧美另类z0zxhd电影| 国产一区二区在线视频播放| 福利在线视频网站| 国产精品久久久久久久久免费相片 | 337p日本欧洲亚洲大胆色噜噜| 日本在线观看免费视频| 都市激情国产精品| 亚洲精品国产无天堂网2021| 亚洲不卡中文字幕| 三级小视频在线观看| 国产精品一卡二| 国产免费一区视频观看免费| 在线观看日本网站| 欧美午夜一区| 久久国产精品久久国产精品| 蜜桃av免费观看| 九九精品在线| 亚洲毛片一区二区| 国产精品无码永久免费不卡| 国产精品中文字幕制服诱惑| 日韩欧美在线观看一区二区三区| 亚洲欧美日韩三级| 97欧美成人| 欧美在线观看视频一区二区三区| 18禁免费无码无遮挡不卡网站| xxxx在线视频| 亚洲成人免费看| 国产青青在线视频| 成年人在线网站| 天天av天天翘天天综合网| 国产资源在线视频| 周于希免费高清在线观看| 懂色av影视一区二区三区| 亚洲熟妇无码一区二区三区| 成人ssswww在线播放| 午夜久久久影院| 国产一级爱c视频| 国产精品论坛| 欧美日韩中文字幕日韩欧美| 青青视频在线播放| 日韩精品三区| 欧美视频在线不卡| 天堂视频免费看| 国产一区二区三区精品在线观看| 欧美一区三区四区| 欧美xxxxx少妇| 日韩电影不卡一区| 国产午夜一区二区| 精品国产视频一区二区三区| 欧美精品国产一区| 欧美一级淫片videoshd| 影音先锋在线国产| 蜜桃视频在线观看一区二区| 亚洲一区二区三区四区在线播放| 精品女同一区二区三区| av资源站一区| 免费成人av网站| 午夜精品一区| 亚洲一区二区精品久久av| 欧美精品一区免费| 国产精品伊人| 欧美成人在线直播| 成人性生交大免费看| 99精品美女| 国模吧一区二区| 一级久久久久久| 国产成a人亚洲精品| 蜜桃av噜噜一区二区三区| yourporn在线观看中文站| 亚洲品质自拍视频| 少妇高潮喷水在线观看| 国产精品久久乐| 精品播放一区二区| 亚洲不卡的av| 中文日韩欧美| 91免费精品国偷自产在线| 天堂av2024| 国产精品久久久久久久久免费丝袜 | 亚洲大片精品永久免费| 污污的网站18| 欧美一级三级| 久久久国产影院| 亚洲永久精品在线观看| 国产成人av影院| 亚洲v国产v在线观看| 松下纱荣子在线观看| 欧美男男青年gay1069videost | 国产麻豆91视频| 337p粉嫩大胆色噜噜噜噜亚洲| 中文字幕日韩精品一区二区| 粉嫩一区二区| 精品少妇一区二区三区在线播放 | 精品国产一区探花在线观看 | 日本综合字幕| 亚洲精品成人免费| 麻豆一区二区三区精品视频| 久久99蜜桃精品| 亚欧精品在线| 在线精品亚洲欧美日韩国产| 精品国产不卡一区二区三区| 五月婷婷综合激情网| 三级一区在线视频先锋| 国产在线精品一区二区三区》| caopo在线| 欧美美女一区二区在线观看| 一区二区三区伦理片| av成人天堂| www.av一区视频| 超碰在线观看免费| 91.麻豆视频| 国产第一页精品| 日韩成人免费在线| 欧美一区视久久| 一二三四视频在线中文| 亚洲国产精彩中文乱码av| 免费网站看av| 国产精品影视网| 日韩中文字幕亚洲精品欧美| 四虎视频在线精品免费网址| 中文字幕少妇一区二区三区| 亚洲 国产 日韩 欧美| 国产亚洲1区2区3区| 国产肥臀一区二区福利视频| 欧美wwwsss9999| 456国产精品| 色哟哟在线观看| 日本韩国欧美一区| 国产av自拍一区| 日韩精品1区2区3区| 色女人综合av| 久久免费影院| 麻豆乱码国产一区二区三区| 国产免费叼嘿网站免费| 一区二区三区毛片| 国产大学生视频| 国产亚洲亚洲| 日产精品一线二线三线芒果| 777午夜精品电影免费看| 在线播放亚洲激情| 国产又黄又爽视频| 亚洲综合一二三区| 国产xxxxxxxxx| 久久精品国产清高在天天线| 五月天丁香综合久久国产| yiren22亚洲综合| 欧美成人黄色小视频| 成人久久精品人妻一区二区三区| 亚洲成a人在线观看| 美国黄色一级毛片| 蜜芽一区二区三区| 国产免费xxx| 欧美成人午夜77777| 国产精品1234| av在线官网| 亚洲精品国产综合久久| 中文字幕 视频一区| 亚洲视频图片小说| 好吊色视频一区二区三区| 丝袜诱惑制服诱惑色一区在线观看 | 手机av在线免费观看| 在线观看日韩毛片| 国产av 一区二区三区| 91视频在线观看免费| 99视频在线视频| 好吊一区二区三区| 性欧美.com| 久久99国产精品久久99大师| 国产精品都在这里| 女囚岛在线观看| 中文字幕日韩在线观看| 免费看国产片在线观看| 欧美影院午夜播放| 国产一级在线免费观看| 中文字幕av一区二区三区免费看| 乳色吐息在线观看| 国产日韩一区二区三区在线| 日本特级黄色大片| 九九亚洲视频| 国产精品久久久久久免费观看| 韩国三级一区| 97精品视频在线| 二区在线播放| 最近中文字幕日韩精品| 天天躁日日躁狠狠躁伊人| 欧美肥胖老妇做爰| 亚洲欧美一二三区| 亚洲成a天堂v人片| 免费中文字幕在线观看| 国产精品嫩草影院com| 素人fc2av清纯18岁| 国产凹凸在线观看一区二区| 黑森林精品导航| 亚久久调教视频| 老子影院午夜伦不卡大全| 久久一级电影| 日韩精品极品视频在线观看免费| 精品人人人人| 99久久自偷自偷国产精品不卡| 欧美综合影院| 国产精品电影网| 欧美电影免费观看| 国产91av在线| av剧情在线观看| 欧美激情综合亚洲一二区| 国产盗摄在线观看| 丝袜情趣国产精品| 国产h在线观看| 亚洲精品网址在线观看| 色呦呦中文字幕| 亚洲成色777777女色窝| 亚洲第一色网站| 日韩欧美国产高清| 国产日韩在线观看一区| 在线不卡中文字幕| 一区二区www| 欧美日韩视频第一区| 中国a一片一级一片| 在线观看成人免费视频| 久久久久久久久久一级| 日本道免费精品一区二区三区| 亚洲不卡视频在线观看| 欧美性xxxxxxx| 中文字幕一区二区人妻视频| 色综合久久综合网97色综合| 丰满少妇xoxoxo视频| 色综合视频一区二区三区高清| 国产精品suv一区| 91黄色小视频| 亚洲一级特黄毛片| 91精品国产综合久久精品app| 国产精品伊人久久| 日韩视频在线你懂得| 日本精品一二区| 日韩福利视频在线观看| 精品无吗乱吗av国产爱色| 一区二区三区四区在线观看视频 | 美日韩精品免费视频| 91精品久久| 欧美精品999| 午夜伦理福利在线| 国产精品第一视频| 在线欧美激情| 国产在线视频欧美一区二区三区| 天天躁日日躁狠狠躁欧美| 欧美午夜精品理论片a级大开眼界| 波多野结衣一区| ijzzijzzij亚洲大全| 亚洲国产影院| 日韩一级片播放| 激情欧美日韩一区二区| 中文字幕第九页| 国产网站一区二区| 亚洲天堂黄色片| 午夜精品成人在线视频| 波多野结衣日韩| 91精品国产色综合久久不卡蜜臀| 人人妻人人澡人人爽久久av| 亚洲欧美中文日韩在线| 欧美日本一道| 97视频在线看| 日韩三级成人| 国产一区精品视频| 欧美gvvideo网站| 麻豆tv在线播放| 精品亚洲成a人| 男男做爰猛烈叫床爽爽小说| 国产蜜臀av在线一区二区三区| 久久r这里只有精品| 日韩欧美国产黄色| 精品免费久久久| 伊人久久五月天| ririsao久久精品一区| 国产精品视频久久久| jazzjazz国产精品久久| 亚洲a∨一区二区三区| 亚洲狠狠婷婷| 欧美激情国内自拍| 久久综合成人精品亚洲另类欧美| 中文字幕亚洲欧美日韩| 一本久久a久久免费精品不卡| 国产黄色美女视频| 一区二区三区无码高清视频| 国精产品一区一区三区mba下载| 国产精品电影网站| 日韩aaa久久蜜桃av| 青青草综合在线| 久久av资源网| 免费在线观看污| 大伊人狠狠躁夜夜躁av一区| va视频在线观看| 最近更新的2019中文字幕| 小草在线视频免费播放| 亚洲aa中文字幕| 成人写真视频| 人妻丰满熟妇av无码区app| av午夜一区麻豆| 久久久久久久久久久网 | 97在线视频免费观看| 精品一区二区三区在线观看视频| 色综合666| 国产欧美午夜| 中文在线字幕观看| 亚洲精品少妇30p| 91激情在线观看| 中文字幕成人精品久久不卡| 自拍偷拍欧美视频| 久久久影院一区二区三区| 在线观看视频日韩| www.com日本| 亚洲国产中文字幕在线视频综合 | 日韩天堂在线| 欧美日韩精品综合| 久久影院亚洲| 久久久久久九九九九九| 欧美性xxxxx| 精品av中文字幕在线毛片| 日韩av电影在线播放| 亚洲另类av| 91淫黄看大片| 国产欧美精品一区二区三区四区| 久久精品视频2| 在线激情影院一区| 婷婷激情成人| 久久天天东北熟女毛茸茸| 国产精品一区二区果冻传媒| 国产乱国产乱老熟300| 日韩欧美黄色影院| 欧美韩日亚洲| 久久国产精品 国产精品| 亚洲一区二区免费看| 强伦人妻一区二区三区| 91久久精品午夜一区二区| а天堂8中文最新版在线官网| 国产精品人人做人人爽| 欧美疯狂party性派对| 999热精品视频| 亚洲.国产.中文慕字在线| 婷婷婷国产在线视频| 国产不卡av在线免费观看| 欧美一区2区| 欧美日韩精品区别| 亚洲最快最全在线视频| 天堂av网在线| 国产精品日韩在线播放| 91精品国产自产在线观看永久∴| 91蝌蚪视频在线| 婷婷久久综合九色国产成人| 黑人与亚洲人色ⅹvideos| 国产欧美久久一区二区| 欧美国产综合| 蜜桃精品成人影片| 欧美日韩一区中文字幕| 欧美人体视频xxxxx| 欧美黑人3p| 国产美女娇喘av呻吟久久| 日本中文字幕免费| 一区二区av在线| 视频一区中文字幕精品| 欧美牲交a欧美牲交aⅴ免费下载| 中文字幕一区二区三区在线观看| www.天堂在线| 国产97色在线|日韩| 亚洲一本二本| 这里只有久久精品| 欧美一级一区二区| 刘亦菲一区二区三区免费看| 在线观看国产一区| 91一区一区三区| 国产视频手机在线| 奇米成人av国产一区二区三区| 国产精品久久占久久| 黄色在线观看av|