精品欧美一区二区三区在线观看 _久久久久国色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)

丰满少妇久久久| 国产精品久久久久久久久| 欧美人与性动交α欧美精品| 免费毛片在线看片免费丝瓜视频 | 欧美成人久久| 欧美精品一区二区不卡| 美女黄色片视频| 欧美伦理免费在线| 欧美极品xxx| 国产精品加勒比| 正在播放亚洲精品| 亚洲无线视频| 色天天综合狠狠色| wwwxxxx在线观看| 国产经典一区| 亚洲国产aⅴ成人精品无吗| 日韩一区二区三区资源| 亚洲欧美高清视频| 久久精品国产亚洲高清剧情介绍| 国内免费精品永久在线视频| 青青青视频在线免费观看| 欧洲精品一区| 日韩免费视频一区二区| 污污视频网站免费观看| av电影院在线看| 中文字幕在线观看不卡| 日本免费高清一区二区| 黄色小视频免费在线观看| 紧缚捆绑精品一区二区| 国产ts一区二区| 国产乱码久久久久久| 忘忧草精品久久久久久久高清| 国产午夜精品久久久| 黑森林av导航| 一区二区三区视频免费视频观看网站| 欧美视频在线不卡| 免费国产成人av| freexxx性亚洲精品| 依依成人精品视频| 宅男av一区二区三区| av基地在线| 国产色爱av资源综合区| 欧美一卡2卡3卡4卡无卡免费观看水多多 | 91精品国产综合久久蜜臀| 不卡av免费在线| 欧美7777| 91国产精品成人| 激情五月亚洲色图| 欧美精品高清| 91激情五月电影| 亚洲乱码国产一区三区| 美脚恋feet久草欧美| 精品女同一区二区三区在线播放| 妞干网在线观看视频| 福利成人导航| 偷拍日韩校园综合在线| 久久无码高潮喷水| 美女100%一区| 欧美日韩aaaaaa| 羞羞的视频在线| 国产精品一站二站| 日韩欧美在线123| 一二三区视频在线观看| 国产色噜噜噜91在线精品| 亚洲国产欧美一区二区三区同亚洲 | 久草福利在线观看| 在线日韩成人| 日韩av中文字幕在线播放| 午夜不卡久久精品无码免费| 欧美三级午夜理伦三级在线观看| 国产视频久久久久| 公侵犯人妻一区二区三区| re久久精品视频| 麻豆乱码国产一区二区三区| 久久久久久久国产视频| 午夜综合激情| 国产拍精品一二三| 成人无码一区二区三区| 91看片淫黄大片一级| 亚洲ai欧洲av| 激情网站在线| 色婷婷综合久久久中文一区二区| 9l视频白拍9色9l视频| 欧美成人一级| 亚洲精品在线不卡| 永久免费看片视频教学| 亚洲午夜视频| 国产精品美女在线观看| 国产xxxx在线观看| 久久久久亚洲蜜桃| 国产精品一二三在线观看| 在线播放高清视频www| 欧美日韩国产另类一区| 日韩少妇一区二区| 日韩精品久久| …久久精品99久久香蕉国产| 中文字幕av在线免费观看| 懂色一区二区三区免费观看| 亚洲mv在线看| 欧美伦理91| 日韩一区二区在线观看| 免费看污片网站| 国产精品激情| 秋霞午夜一区二区| 亚洲av永久无码国产精品久久| 久久久久久久久岛国免费| 粉嫩av一区二区三区天美传媒 | 好吊日在线视频| 老鸭窝亚洲一区二区三区| 亚洲精品欧美日韩专区| 免费av在线电影| 亚洲综合色噜噜狠狠| 色多多视频在线播放| 国产精品qvod| 久久久精品国产一区二区| 日本免费在线观看视频| 成人免费视频一区二区| 亚洲自拍的二区三区| 在线观看福利电影| 精品少妇一区二区| 91嫩草丨国产丨精品| 蜜臀av性久久久久蜜臀av麻豆| 国产伦精品一区二区三区高清| 里番在线观看网站| 在线观看欧美精品| 国产麻豆天美果冻无码视频| 激情久久五月| 91九色在线观看| 欧洲不卡av| 欧美三级日本三级少妇99| 丰满少妇一区二区| 香蕉久久国产| 久久av一区二区三区亚洲| 91黄页在线观看| 欧美mv日韩mv国产网站| 538精品在线视频| 国内精品伊人久久久久av影院 | 最新日韩在线| 国产91亚洲精品一区二区三区| 国产三区在线观看| 欧美一级艳片视频免费观看| 国产传媒免费在线观看| 国产一区在线看| 日本xxx免费| 国产亚洲久久| 欧美日韩成人在线播放| 午夜精品久久久久久久99老熟妇| 亚洲精品成人在线| 精品人妻一区二区乱码| 国产中文一区| 国产欧美在线一区二区| 美女高潮视频在线看| 亚洲激情视频在线观看| 五月天婷婷久久| 26uuu精品一区二区三区四区在线| 欧美三级一级片| 网曝91综合精品门事件在线| 欧洲成人在线视频| 国产youjizz在线| 欧美日韩高清一区二区三区| 四虎免费在线视频| 国产精品香蕉一区二区三区| 美女扒开大腿让男人桶| 琪琪久久久久日韩精品| 日韩av手机在线观看| 国产天堂在线| 91精品欧美久久久久久动漫| 欧美成人aaaaⅴ片在线看| 久久香蕉国产线看观看99| 噼里啪啦国语在线观看免费版高清版| 久久在线视频| av成人在线电影| 日韩在线伦理| 中文欧美日本在线资源| 国产绿帽刺激高潮对白| 亚洲国产精品自拍| 国产毛片欧美毛片久久久| 久久精品国内一区二区三区| 日韩精品在线观看av| 亚洲免费专区| 成人欧美在线视频| 1区2区在线| 中文字幕无线精品亚洲乱码一区| 999久久久久久| 欧美视频中文字幕在线| 狂野欧美性猛交| 成人午夜碰碰视频| 亚洲色图 在线视频| 中文字幕免费一区二区| 麻豆成人在线播放| gogo大尺度成人免费视频| 91国在线精品国内播放| 欧美jizzhd69巨大| 精品亚洲aⅴ在线观看| 国产裸体永久免费无遮挡| 色综合天天综合网国产成人综合天 | 国产91成人video| 久操免费在线| 亚洲欧美三级伦理| 亚洲av少妇一区二区在线观看| 色综合天天综合色综合av| 一区二区在线观看免费视频| 久久精品一区蜜桃臀影院| 国产精品无码自拍| 免费高清在线一区| 欧美老熟妇喷水| 欧美精品网站| 亚洲草草视频| 亚洲美女久久| 极品尤物一区二区三区| 亚洲一区二区小说| 国产精品99久久久久久人| 国产桃色电影在线播放| xxxxx成人.com| 欧美美女搞黄| 亚洲国产婷婷香蕉久久久久久| 97人妻精品一区二区三区视频 | 丝袜视频国产在线播放| 4438x成人网最大色成网站| 老熟妇一区二区三区| 精品久久久久久久久久久久久| 欧洲猛交xxxx乱大交3| 国产精品区一区二区三区| 在线观看福利片| 91美女视频网站| 国产一线在线观看| 国产成人精品亚洲日本在线桃色| 伊人影院综合在线| 日韩电影在线一区| 久久久久久久激情| 日韩一区二区免费看| 男人添女荫道口女人有什么感觉| 综合一区在线| 中国一级黄色录像| 欧美电影一二区| 亚洲最大色综合成人av| 色男人天堂综合再现| 天堂社区 天堂综合网 天堂资源最新版| 亚洲激情播播| 欧美二区在线看| 自拍亚洲一区| 欧美重口乱码一区二区| 色狼人综合干| 农村寡妇一区二区三区| 亚洲第一福利社区| 欧美少妇一区| 欧美限制电影| 黄频视频在线观看| 亚洲国产老妈| 毛片av在线播放| 狠狠干成人综合网| 久久精品国产sm调教网站演员| 在线日本高清免费不卡| 97国产在线播放| 老牛国产精品一区的观看方式| 黄色一级免费大片| 激情小说亚洲一区| 在线观看你懂的视频| 成人国产精品免费| jizz欧美性20| 欧美激情一二三区| 91 在线视频| 一区二区三区小说| 韩国av中文字幕| 欧洲一区二区三区免费视频| 夜夜躁很很躁日日躁麻豆| 日韩欧美国产一区二区在线播放| 好吊色一区二区三区| 亚洲欧美综合精品久久成人| 在线a人片免费观看视频| 久久亚洲电影天堂| av今日在线| 国产精品久久久久7777婷婷| 91精品福利观看| 国产一区二区三区奇米久涩| 精品视频97| 无码人妻精品一区二区蜜桃百度| 日韩视频三区| 一区二区三区 欧美| 成人丝袜18视频在线观看| www.久久av| 亚洲乱码国产乱码精品精的特点 | 欧美婷婷六月丁香综合色| 国产一区二区在线视频聊天 | 日本一级片在线播放| 国产午夜精品一区二区| 亚洲天堂黄色片| 色综合久久六月婷婷中文字幕| 国产又粗又猛视频| 日韩电影中文字幕一区| 欧美18hd| 国产不卡av在线免费观看| 久久国产精品免费一区二区三区| 久久99导航| 欧美aa国产视频| 99免费视频观看| 成人做爰69片免费看网站| 无码人妻aⅴ一区二区三区69岛| 中文字幕欧美一| 国产精品500部| 日韩欧美国产电影| av在线中文| 欧美在线影院在线视频| 美女久久精品| 亚洲永久激情精品| 亚洲欧美日韩国产综合精品二区| 深夜福利网站在线观看| 国产女人18毛片水真多成人如厕 | 蜜桃av一区| www.四虎精品| 亚洲色图制服丝袜| 亚洲精品毛片一区二区三区| 亚洲成人久久久| 超碰最新在线| 国产日产欧美精品| 免费视频一区三区| 国产v片免费观看| 国产成人精品免费一区二区| 黄色录像一级片| 欧美少妇一区二区| 精品亚洲成a人片在线观看| 97精品久久久中文字幕免费| 日韩在线观看中文字幕| 男同互操gay射视频在线看| 蜜桃传媒麻豆第一区在线观看| 91视频啊啊啊| 亚洲高清一区二区三区| www日本高清| 欧美国产日韩一区| 9国产精品午夜| 99久热在线精品视频| 国产精品99久久久久久久vr| 伊人久久久久久久久久久久久久| 欧美欧美欧美欧美首页| 五月天婷婷在线视频| 国产精品中文字幕在线| 极品美女一区二区三区| 午夜精品久久久内射近拍高清 | 亚洲二区中文字幕| 国产探花在线观看| 国产精品国产精品国产专区蜜臀ah| 欧美1区免费| 国产a√精品区二区三区四区| 亚洲综合视频网| 好男人www在线视频| 久久久久久久久久久亚洲| 91精品国产自产在线丝袜啪| av在线观看地址| kk眼镜猥琐国模调教系列一区二区| 精品少妇久久久久久888优播| 亚洲成人网在线观看| 无遮挡爽大片在线观看视频| 欧美成人综合一区| 三级亚洲高清视频| 中文字幕在线观看二区| 欧美人狂配大交3d怪物一区| 日本中文在线观看| 亚洲xxx视频| 亚洲日本视频| 永久免费看mv网站入口78| 欧美日韩在线观看一区二区| 激情影院在线观看| av成人午夜| 久久久青草婷婷精品综合日韩| 精品一区二区三区蜜桃在线| 欧美人牲a欧美精品| 蜜乳av一区| 免费久久久一本精品久久区| 日本中文在线一区| 杨钰莹一级淫片aaaaaa播放| 亚洲国产成人av在线| 日韩三级影视| 中文字幕精品在线播放| 不卡的av在线播放| 337p粉嫩色噜噜噜大肥臀| 久久精品男人天堂| 成人香蕉社区| 天天操天天摸天天爽| 亚洲精选在线视频| 色吊丝在线永久观看最新版本| 国产精品自产拍在线观| 午夜精品网站| 99久久人妻无码精品系列| 欧美一区欧美二区| 91精品论坛| 青青在线免费视频| 久久久一区二区| 精品人妻伦一区二区三区久久| 欧美重口另类videos人妖| 99久久99久久精品国产片果冰| 日韩免费高清一区二区| 欧美日韩视频在线观看一区二区三区 | 亚洲欧洲制服丝袜| 台湾av在线二三区观看| 成人激情综合网| 亚洲欧美视频一区二区三区| 成人一级黄色大片| 亚洲人成网在线播放| 88久久精品| 国产女同无遮挡互慰高潮91|