麻豆视频国产_男人天堂电影_午夜影院在线_一级黄色毛片_精品无码久久久久久国产_国产高清自拍

Tango 低代碼引擎沙箱實現解析

Tango 低代碼引擎沙箱實現解析

Tango 基本介紹

Tango 是一個用于快速構建低代碼平臺的低代碼設計器框架,并以源代碼為中心,執行和渲染前端視圖,并為用戶提供低代碼可視化搭建能力,用戶的搭建操作會轉為對源代碼的修改。借助于 Tango 構建的低代碼工具或平臺,可以實現 源碼進,源碼出的效果,無縫與企業內部現有的研發體系進行集成。

開源進展

目前 Tango 設計器引擎部分已經開源,正在積極推進中,可以通過如下的信息了解到我們的最新進展:

  • 開源代碼庫:https://github.com/NetEase/tango
  • 文檔地址:https://netease.github.io/tango-site/
  • 社區討論組:https://github.com/NetEase/tango/discussions

此外,Tango 的文檔現已全面更新,歡迎瀏覽。

Tango 低代碼引擎沙箱實現解析

歡迎大家加入到我們的社區中來,一起參與到 Tango 低代碼引擎的開源建設中。有任何問題都可以通過 Github Issues 反饋給我們,我們會及時跟進處理。

往期系列文章

  • 網易云音樂 RN 低代碼體系建設思考與實踐
  • 手把手帶你走進Babel的編譯世界
  • 網易云音樂低代碼體系建設思考與實踐
  • 云音樂低代碼:基于 CodeSandbox 的沙箱性能優化
  • 云音樂低代碼 ChatGPT 實踐方案與思考
  • 網易云音樂 Tango 低代碼引擎實現揭秘
  • 網易云音樂 Tango 低代碼引擎正式開源
  • 低代碼在云音樂數據業務中的落地實踐與思考

為什么 Tango 需要沙箱

傳統的基于 DSL 的低代碼方案通常需要實現一套對應的 DSL 語法與渲染器,在渲染器內渲染給定的組件、綁定事件等。與此不同,Tango 是基于 AST 驅動的面向源碼的低代碼方案。相較于 DSL 方案,Tango 的寫法更加靈活,但也帶來了支持源代碼實時運行的挑戰。此外,為了與團隊內已有的物料集成,Tango 支持添加業務組件,因此設計器還需要考慮三方依賴的加載與運行。因此,Tango 需要一個獨立的沙箱來運行源碼,提供可以媲美本地開發的代碼運行時。

在初期,Tango 曾調研了幾種方案,如基于 Sea.js 這類 AMD 加載方案。然而,這類方案的問題在于依賴比較固定,需要將依賴預先構建出符合規范的產物(如 UMD 資源),因此不能靈活地添加依賴。至于 SystemJS 和 ViteSandbox 這類 ESM 方案,由于 Tango 期望支持直接使用已有的組件物料,而它們的產物主要以 CommonJS 為主,缺少 ESM 產物。此外,我們后續對沙箱的改造優化大幅減少了沙箱初始化的時間,因此沒有采用該方案。

Tango 目前采用的沙箱方案是基于 CodeSandbox 提供的沙箱能力實現的。它的優勢在于提供了更完整、接近本地開發的運行時環境,支持直接拉取 npm 包并運行。它借助 Babel 將 ESM 和瀏覽器不支持的新語法轉譯為 CommonJS,模擬了 CommonJS 的運行環境,實現了源碼在瀏覽器上直接運行。這樣即便依賴沒有提供可供瀏覽器使用的預構建產物,也能在沙箱內實時轉譯并運行。此外,CodeSandbox 的沙箱運行在一個 iframe 內,可以隔離代碼的運行時環境,避免污染設計器的全局變量

Tango 沙箱的基本結構

CodeSandbox 是一個在線運行 JavaScript 代碼的平臺,它的沙箱借助 Babel 與 Web Worker 等能力,在瀏覽器上實時轉譯與運行代碼。你可以把它的沙箱能力想象成一個在瀏覽器上運行的 webpack,比如它的轉譯器 Transpiler 就和 webpack 的 loader 比較接近。。

由于 CodeSandbox 自己實現了各個模板的轉譯規則,整個轉譯流程均由自己把控,因此它整體上會比 webpack 輕量些。例如 CodeSandbox 在初始化依賴時能忽略掉絕大多數的 devDependencies,從而大幅減少項目的依賴初始化時間與轉譯時間。

結合 Tango 后的沙箱可以簡化為三個部分:

Tango 低代碼引擎沙箱實現解析

  • 沙箱前端組件:一個開箱即用的沙箱組件,只需要傳入代碼和配置就可以完成應用的渲染
  • 在線打包器:提供搭建產物的瀏覽器端構建能力,類似于一個瀏覽器版本的 webpack,最終形態是一個獨立的 iframe
  • 沙箱后端服務:對依賴的資源進行預構建,以及提供資源合并等服務,用來加速沙箱內部的構建打包過程

它的工作流程可以簡述如下:

  • 代碼準備:平臺引用沙箱組件,通過 postMessage 將代碼傳遞給沙箱
  • 依賴初始化:沙箱處理傳入的文件,根據 package.jsondependencies 調用 Packager 打包服務獲取依賴
  • 轉譯代碼:解析代碼的依賴關系,將依賴的代碼通過對應的 Transpiler 轉譯
  • 執行代碼:在沙箱中初始化 html 等,然后從代碼的入口文件開始執行轉譯后的代碼
  • 上述執行周期內和執行完成后,沙箱會拋出事件讓平臺感知

Tango 沙箱的工作流程

本部分主要參考了 CodeSandbox 如何工作? 上篇 的部分內容,并在此基礎上進行了修改。如果你對 CodeSandbox 底層的更多細節感興趣,不妨閱讀下這篇文章。

依賴的初始化

如前所述,CodeSandbox 在內部實現了核心的轉譯邏輯(例如 Babel 與 less 轉譯),整個轉譯流程都由自己控制,因此在初始化依賴時可以相對輕量一些,只需獲取 dependencies 里必要的依賴,忽略掉 devDependencies 以及 @types 開頭的只在本地開發時才會用上的依賴。

CodeSandbox 是如何獲取依賴的呢?CodeSandbox 實現了兩套方案,一套是默認的遠程在線打包方案,另一套是從 unpkg/jsdelivr 等 npm 包資源的 CDN 獲取依賴的兜底方案。

CodeSandbox 設計了一個 Serverless 服務 dependency-packager,這個服務負責在線拉取依賴,然后一次性返回包括子依賴在內的所有需要的文件。當服務接收到接口請求后,會解析 URL 中的包名與版本號,并在服務端執行 yarn install 安裝 npm 包,然后從入口文件開始逐一解析依賴的文件以及各個包之間的依賴關系,最后將被依賴的文件一次性返回。由于該服務僅返回被依賴的文件,在減少網絡請求的資源大小的同時,沙箱可以避免轉譯 .d.ts測試用例這樣運行時不需要的文件。

不過由于 packager 返回的文件是從包的入口文件開始計算的被引入的文件,因此在實際使用中,一些未被引入的文件可能也會被項目使用。當項目引入了被排除的資源時,沙箱會在前端請求 unpkg/jsdelivr 作為兜底方案,從而順利完成轉譯。當然,缺點就是如果缺失的文件比較多,實時獲取的方案會多出很多的網絡請求開銷。因此 CodeSandbox 還使用了 Service Worker 作資源緩存,減少二次復訪的網絡請求。

轉譯與構建

當 CodeSandbox 開始轉譯時,會調用 compile() 方法開始轉譯,整個轉譯流程大致如下:

Tango 低代碼引擎沙箱實現解析

傳入沙箱的參數除了代碼外,還需要傳入 template 參數,該參數用于指定沙箱轉譯時需要使用的 Preset。Preset 就像 webpack 的配置文件一樣,內部定義了如何預處理依賴、不同的文件該使用哪些 Transpiler、在代碼執行前做一些其他的操作等。

Preset 初始化好后,沙箱將初始化一個 Manager 實例,這個 Manager 實例會被 compile() 使用,用于控制整個轉譯流程的生命周期。然后,Manager 會按照上一節提到的方式初始化項目的依賴。如果傳入的依賴發生了變更,沙箱會重新初始化一個新的 Manager 實例,避免運行時被舊的 Manager 依賴影響。

依賴準備好后,傳入沙箱的代碼會被傳入 Manager,Manager 會將代碼實例化為 TranspiledModule,解析各模塊的依賴關系,計算是否被更新或刪除等。然后沙箱將從代碼的入口模塊開始,根據 Preset 里定義的規則,對每一個模塊遞歸調用指定的 Transpiler 轉譯。這里 Transpiler 就像 webpack 的 loader 一樣,負責將文件轉譯為需要的產物。對于復雜的 Transpiler——例如負責轉譯 JavaScript 的 BabelTranspiler——還會使用 Web Worker 隊列來提升轉譯效率。

當相關的模塊都被轉譯好后,Manager 會進入代碼執行階段。

代碼執行

沙箱的運行時模擬了 CommonJS 所需的環境,如 requiremoduleexportsglobal 等方法與變量。當所有需要的模塊都被轉譯好后,Manager 會進入代碼執行階段。代碼執行的核心代碼如下:

const allGlobals: { [key: string]: any } = { require, module, exports, process, global, ...globals,};const allGlobalKeys = Object.keys(allGlobals);const globalsCode = allGlobalKeys.length ? allGlobalKeys.join(', ') : '';const globalsValues = allGlobalKeys.map(k => allGlobals[k]);const newCode = `(function $csb$eval(` globalsCode `){` code `n})`;// @ts-ignore(0, eval)(newCode).apply(allGlobals.global, globalsValues);return module.exports;

沙箱會從入口模塊開始執行,執行時會將代碼封裝為上述的立即執行函數,然后調用 eval() 執行并傳入上述 CommonJS 的方法與變量。若代碼引用了其他文件,執行時調用的 require() 方法會按照相同的邏輯遞歸執行并返回執行后的產物。

經過上述流程后,項目中的代碼就會被轉譯并執行,最終渲染在沙箱里,你就能看到代碼的實際效果了。

沙箱的優化改造

在 Tango 上開發的應用是一個完整的項目,并非像 CodeSandbox 網站上那樣主要用于承載簡單的示例或代碼片段。因此用戶對沙箱自身的構建性能與加載速度有較高的要求,以滿足日常的開發體驗。

關于我們對 CodeSandbox 優化的具體細節,可以參考我們之前的這篇 云音樂低代碼:基于 CodeSandbox 的沙箱性能優化 ,修改后的 CodeSandbox 代碼也可以在 GitHub 上找到。

接入 Tango 沙箱

Tango 低代碼設計器除了需要讓沙箱運行源碼、渲染頁面以外,還需要實現可視化搭建的拖拽能力,因此設計器需要感知到用戶在沙箱內的操作。但是,由于沙箱運行在一個獨立的 iframe 內,并且部署在獨立的域名下,兩者之間是跨域的,因此需要做跨域兼容。通過將設計器平臺與沙箱的 document.domain 均設為相同的父域名,并針對 Chrome 的安全策略 在平臺與沙箱添加 Origin-Agent-Cluster: ?0 的 HTTP 響應頭,就能實現平臺與沙箱的跨域通信。

為了簡化沙箱的使用成本,我們封裝了一個 React 組件 @music163/tango-sandbox 供設計器使用,相關代碼可以在 Tango 的 GitHub 倉庫里找到。它主要分為如下三個部分:

  • IFrameProtocol:負責與沙箱通信。通過監聽 message 事件接收從沙箱傳出的消息,以獲取沙箱主動傳出的生命周期。通過在 iframe 內部調用 postMessage() 方法向沙箱傳遞事件,從而控制沙箱。
  • PreviewManager:負責管理沙箱的基本渲染。其借助上面的 IFrameProtocol 與沙箱通信,當代碼發生變化時,會向沙箱發送 compile 消息,從而觸發沙箱的構建與渲染。
  • Sandbox:用于渲染沙箱的 React 組件。除了掛載沙箱的 iframe 外,還包括了沙箱配置、注冊事件監聽函數、消息傳遞、路由管理等功能。當組件傳入的 props 發生變化時,會相應地更新沙箱代碼、更新 iframe 路由等。

Tango 低代碼引擎通過向 Sandbox 組件傳入 files 來實現代碼的渲染,并傳入 eventHandler 來監聽用戶在沙箱內的拖拽操作,最終實現了設計器的組件拖拽搭建能力。

不過,沙箱獲取依賴的基本能力主要是 CodeSandbox 提供的 packager 與 JSDelivr、unpkg 提供的,如果需要使用團隊內部的私有 registry 就需要將相關服務私有化部署了。限于篇幅就不在此做過多贅述,關于 Tango 沙箱的具體接入文檔,以及上述第三方服務私有化部署需要做的修改,可以參考我們提供的 沙箱接入文檔。

總結

本文簡單介紹了 Tango 低代碼引擎的沙箱能力,并分析了 CodeSandbox 的基本結構和工作流程。通過 CodeSandbox 強大的沙箱能力與優化,Tango 低代碼引擎實現了可視化預覽與搭建能力,為開發者提供了便捷高效的開發體驗。

Tango 開源計劃

目前我們已經完成了 Tango 核心實現的基本代碼庫的開源,包括核心引擎內核、沙箱、設置器、應用框架、物料協議等等,并發布了 RC 版本。在今年,我們將持續推進云音樂低代碼核心能力的開源,包括基本的服務端能力,前端組件庫等,并持續優化和完善開源文檔。并且,隨著其他能力的穩定和時間的成熟,我們還將會持續向社區開源更多的內部實踐。

參考資料

  • CodeSandbox 如何工作? 上篇
  • 云音樂低代碼:基于 CodeSandbox 的沙箱性能優化
  • 搭建一個屬于自己的在線 IDE
  • 網易云音樂 Tango 低代碼引擎實現揭秘

作者:0xcc

來源:微信公眾號:網易云音樂技術團隊

出處:https://mp.weixin.qq.com/s/GqSoZR3bSeuLWiULHt8Zvg

相關新聞

聯系我們
聯系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
主站蜘蛛池模板: 人人玩人人添人人澡97 | 国产xxxx成人精品免费视频频 | 国产麻豆一区二区三区 | 中文字幕日韩一区二区 | 一区二区中文字幕 | 国产精品第一国产精品 | 99精品99| 久久久久久久久久久久99 | 亚洲精品久久久久久久久久久 | 国产剧情一区二区 | 99精品一级欧美片免费播放 | 国产伦精品一区二区三区在线 | 久久99这里只有精品 | 国产乱码精品一区二区三区中文 | 成人国产精品久久久 | 毛片日韩 | 日韩欧美国产一区二区 | 精品免费国产一区二区三区 | 日本久久久久久 | 91亚洲国产| jizz中国日本 | 国内精品视频一区二区三区八戒 | 日韩欧美一区在线 | 人人玩人人添人人澡97 | 欧美一区不卡 | 精品一区二区免费视频 | 国产在线观看二区 | 国产精品日日做人人爱 | 毛片视频网站 | 午夜看看 | 欧美激情五月 | 日日干夜夜操 | 欧美日韩不卡合集视频 | 欧美一区亚洲二区 | 中文字幕在线精品 | а天堂中文官网 | av一二 | 精品国产乱码久久久久久蜜臀 | 波多野结衣 一区二区 | 欧美日韩亚洲在线 | 多p视频 | 欧美日韩精品一区二区在线播放 | 国产成人免费视频网站视频社区 | 欧美一级毛片免费看 | 狠狠操电影 | www.se天堂 | 9999国产精品 | 在线观看亚洲 | 国产综合视频 | 亚洲精品国产高清 | 午夜免费av | 精品一区二区三区免费 | 亚洲精品夜夜夜 | 亚洲国产免费 | 丁香婷婷综合激情五月色 | www久久精品 | 欧美一区二区三区电影 | 亚洲成人免费 | 91精品国产自产精品男人的天堂 | 亚洲一区久久 | 日韩视频中文字幕 | 成人欧美一区二区三区在线播放 | 日本人做爰大片免费观看一老师 | 日韩在线视频一区 | 成人免费高清视频 | 国精产品一区二区三区 | 亚洲aaaaaa特级 | 99热婷婷| 亚洲精品在线播放视频 | 国产精品久久久久aaaa九色 | 亚洲免费网 | 久久999免费视频 | 日韩成人不卡 | 国产成人 综合 亚洲 | 久久天堂 | 国产美女av在线 | 亚洲综合无码一区二区 | 久久久成人精品 | 7777视频 | 操人在线观看 | 自拍亚洲| 亚洲精品无 | 日本一区二区三区免费观看 | 99久久视频| 激情一区二区三区 | 欧美第一视频 | 精品一区不卡 | 国产综合久久久久久鬼色 | 不卡在线 | 中文字幕在线播放不卡 | 香蕉在线影院 | 91精品国产一区二区三区香蕉 | 欧美日韩精品一区 | 欧美视频免费在线观看 | 夜夜草av| 可以在线观看的黄色 | 亚洲欧美中文日韩在线v日本 | 成人综合在线观看 | 午夜免费电影 | 国产伦精品一区二区三区四区视频_ | 天天天操操操 | 国产一区二区三区久久久久久久久 | 自拍亚洲| 免费观看一区二区三区毛片 | 北条麻妃一区二区免费播放 | 日本私人网站在线观看 | 精品视频在线观看 | 精品免费视频 | 亚洲高清免费 | 国产中文字幕在线观看 | 91亚洲国产成人精品性色 | 国产xxx护士爽免费看 | 成人天堂噜噜噜 | 久久人人爽人人爽人人片av不 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 在线视频二区 | 久久久久亚洲国产 | 午夜影视免费观看 | 好姑娘影视在线观看高清 | 免费国产wwwwwww网站 | 亚洲动漫在线观看 | 欧美亚洲一级 | 免费大片黄在线观看 | 亚州成人 | 搡女人真爽免费午夜网站 | 超碰在线播 | 亚洲人免费视频 | 午夜成人在线视频 | 国精产品一区二区三区 | 亚州精品天堂中文字幕 | 日本不卡一区二区三区在线观看 | 欧美成人一区二区三区片免费 | 精品超碰| 色噜噜狠狠狠综合曰曰曰88av | 91精品欧美久久久久久动漫 | a视频在线观看 | 不卡的毛片 | 一区二区三区不卡视频 | 毛片网络 | 日韩在线国产精品 | 国产婷婷在线视频 | 成人作爱视频 | 欧美日韩中文 | 中文在线亚洲 | 婷婷久 | 中文一区二区 | 国产一区二区三区久久久久久久久 | 日本久久久久久 | 国产成人免费 | 久久精品亚洲 | 国产日韩在线视频 | 免费精品 | 精品国产一区探花在线观看 | 黄色小视频在线观看 | 日韩视频久久 | 综合久久综合 | 日韩av电影网 | 久久蜜桃视频 | 成人免费视频观看视频 | 91精品视频一区 | 久久视频一区二区 | 国产欧美日韩在线观看 | 午夜在线小视频 | 免费一区二区三区 | www精品美女久久久tv | 国产精品美女久久久久久免费 | 亚洲国产成人久久综合一区,久久久国产99 | 国产在线精品一区二区 | 亚洲精品久久久久一区二区三区 | 9999久久久久| 日本另类αv欧美另类aⅴ | 青青草久久 | www国产网站| 欧美一二三四成人免费视频 | 91精品视频在线 | 国产精品欧美日韩 | 国产视频网 | 一区二区视频网站 | 男女午夜视频 | 欧美一级精品片在线看 | 欧美一区二区三区精品 | 最新亚洲黄色网址 | 亚洲国产一区二区在线 | 视频1区 | 免费国产一区二区 | 日韩精品第一页 | 另类亚洲专区 | 欧美成在线观看 | 亚洲精品一区二区三区在线 | 91中文字幕| 欧美视频在线一区 | 污视频在线免费观看 | 亚洲视频一区在线播放 | 久久久网 | 91社区在线观看 | 在线欧美a| 国产日韩视频在线播放 | 中文字幕亚洲精品 | 国产高清在线观看 | 欧美日韩国产一区二区 | 中文字幕在线免费视频 | 一级a性色生活片毛片 | 久久久久国产一区二区三区四区 | 欧美久久久久 | 国产欧美专区 | www成人精品 | 亚洲欧美日韩在线 | 国产精品日韩在线观看 | 国产视频久久久久久久 | 久久精品无码一区二区日韩av | 男女黄色免费网站 | 午夜精品视频在线观看 | 亚洲欧美一区二区三区在线 | 涩涩视频在线看 | 中文字幕精品一区二区三区精品 | 成人在线观看免费视频 | 国产精品美女久久久久久不卡 | 一区二区在线视频 | 欧美中文在线 | 欧产日产国产精品一二 | 国产精品99久久久久久久vr | 久久久久免费精品视频 | 91麻豆精品国产91久久久更新时间 | 国产一区二区视频在线观看 | 自拍偷拍在线视频 | 亚洲国产精品99久久久久久久久 | 成人黄色在线视频 | 99亚洲国产精品 | 久久av一区| 亚洲高清视频在线 | 欧美激情国产日韩精品一区18 | 亚洲国产高清高潮精品美女 | 黄色av网站在线观看 | 国产情侣激情 | 大香一网| 一区二区精品 | 久久精品视频网站 | 男女视频一区二区 | 在线中文| 国产一区二区视频在线观看 | 亚洲一区二区三区视频 | 日韩精品免费在线视频 | www.日韩| 午夜精品一区 | 国产精品极品美女在线观看免费 | 成人深夜小视频 | 伊人一区 | 色伊人网 | 成人免费视频观看视频 | 玖草av| 久久黑人 | 日本黄色免费播放 | 午夜草逼 | 大象视频成人在线观看 | 色综合天天天天做夜夜夜夜做 | 免费午夜电影 | 成人黄色片在线观看 | 精品国产91久久 | 亚洲精品一区 | 中国毛片基地 | 亚洲精品一区二区三区 | 自拍偷拍专区 | 成年免费视频 | 一区二区三区久久 | 日韩欧美视频 | 国产区视频 | 一区国产视频 | 四虎小视频 | 午夜精品久久久久久久白皮肤 | 女人久久久久久久 | 久久亚洲精品中文字幕 | 欧美成人精品一区二区三区 | 久久久久91| av在线免费观看网站 | 五月婷婷导航 | 成人h视频在线观看 | 日韩2区 | 91九色porny首页最多播放 | 精品99久久久久久 | 午夜午夜精品一区二区三区文 | 免费视频一区 | 日韩视频一区在线观看 | 欧美精品欧美精品系列 | 7799精品视频天天看 | 天天操天天碰 | 范冰冰一级做a爰片久久毛片 | 影音先锋中文字幕在线 | 看a网址 | 国产亚洲一区二区三区在线观看 | 亚洲国产视频网站 | 精品久久久久久久久久久久久久 | 亚洲欧美在线免费 | 日韩在线观看中文字幕 | 99热手机在线观看 | 日韩91| 毛片一级片 | 超碰人人99 | 成人毛片视频网站 | 国产在视频一区二区三区吞精 | 亚洲精品免费看 | 久久久久亚洲视频 | 亚洲一区中文字幕 | 欧美精品成人一区二区三区四区 | 国产成人午夜高潮毛片 | 免费亚洲视频 | 久久综合久久综合久久 | 亚洲视频在线一区 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 在线第一页 | 不卡一区二区三区四区 | 亚洲三级网站 | 97成人精品视频在线观看 | 看毛片网站 | 免费视频一区 | av在线精品 | 黄色毛片免费看 | 亚洲欧美一区二区三区久久 | 亚洲男人天堂2023 | 日韩在线 | 亚洲精品午夜aaa久久久 | 欧美a级成人淫片免费看 | 亚洲视频在线看 | 在线欧美视频 | 欧美一级精品片在线看 | 国产亚洲一区二区三区在线观看 | 91碰碰| www.久久.com| 欧美日韩在线播放 | 日韩在线中文 | 久久久综合色 | 亚洲成人一区 | 国产精品美女www爽爽爽软件 | 亚洲免费视频在线观看 | 国产福利91精品一区二区 | 成人一区二区电影 | 亚洲视频1 | www久久精品 | 久久婷婷色| 久久午夜电影 | 亚洲精选一区 | aaaaaa黄色片| 欧美日韩国产在线播放 | 久久在线 | 在线观看成人小视频 | 久久免费电影 | 国产精品久久久久久妇女6080 | 国产视频一区二区 | 亚洲在线免费观看 | 欧美一区二区久久久 | 亚洲精选免费视频 | 在线成人亚洲 | 91精品国产乱码久久蜜臀 | 网址av| 国产欧美一区二区精品性色 | 三级黄色片在线免费观看 | 久久精品二区 | 综合二区 | 一级一级一级毛片 | aaa在线免费观看 | 欧美精品久久久久 | 久久久久久精 | 福利精品视频 | 国产精品久久久精品 | 综合网日韩 | 一级片在线观看 | 免费一区 | 日韩av在线免费 | 精品一二三四区 | 日本在线观看视频一区 | 综合久久综合久久 | 国产伦精品一区二区三区在线 | 综合国产 | 亚洲综合区 | 国产精国产精品 | 国产精品99久久久久久宅男 | 国产午夜精品一区二区三区嫩草 | 国产a久久精品一区二区三区 | 一本大道久久a久久精二百 国产精品片aa在线观看 | 久久99精品久久久久久琪琪 | 国产激情性色视频在线观看 | 免费成人激情视频 | 欧美精品欧美精品系列 | 免费三级黄色 | 亚洲视频在线观看一区二区三区 | 欧美在线观看视频 | a在线免费 | 精品国产九九 | 综合久久久久 | 一级特黄网站 | 成人免费视频网站 | 日本一区二区三区免费观看 | 一区二区亚洲视频 | 亚洲一区不卡在线 | 精品91在线 | 欧美精品一区二区三区视频 | 欧美不卡| 国产精品久久久久久久娇妻 | 国产精品69久久久久水密桃 | 欧美天堂在线观看 | 国产精品久久久久久久久 | 黄色网免费看 | 中文字幕一区在线观看视频 | 最近中文字幕免费观看 | 免费黄看片| 中文字幕一区二区在线观看 | 男人的天堂在线视频 | 国产成人一区 | 国产精选一区二区三区不卡催乳 | 久久51| www.久久.com | 欧洲一级黄 | 天天干天天操天天干 | 欧美一级黄色影院 | 一级欧美片| 激情毛片 | 国产一区二区在线看 | 亚洲天堂成人 | 国产乱码精品一区二区三区中文 | 欧美亚洲视频在线观看 | 日本高清精品 | 国产网站在线 | 视频一区在线 | 欧洲成人午夜免费大片 | 黄色一级大片视频 | 亚洲一区二区三区在线免费观看 | 欧美日韩二区三区 | 欧美精品在线看 | 黄色精品一区二区 | 国产精品美女久久久久久久久久久 | 色com| 久久综合久久综合久久综合 | 亚洲精品a区| 97视频在线免费观看 | www日韩| 天天爽夜夜爽夜夜爽精品视频 | 免费国产一区 | www.国产视频 | 亚洲精品a在线观看 | 亚洲国产精品一区 | 国产激情性色视频在线观看 | 91av国产视频 | 成人在线观看免费视频 | 国产成人中文字幕 | 久久久久久久成人 | 亚洲日本精品视频 | 中文字幕亚洲一区 | a级毛片免费高清视频 | 国产精品一区三区 | 成人欧美一区二区三区在线播放 | 日韩一区二区在线播放 | 久久一区 | 亚洲精品系列 | 精品xxxx户外露出视频 | 9999亚洲 | 成年人毛片视频 | 曰本人一级毛片免费完整视频 | 狠狠ri | 日韩免费视频 | 日本一区二区三区四区 | 97狠狠| 成人激情视频在线播放 | 成人免费在线观看视频 | 欧美成人精品一区二区三区 | 久久精品店 | 久久精品在线 | www午夜| 国产成人av一区 | 日韩成人影院在线观看 | 亚洲永久免费观看 | 午夜午夜精品一区二区三区文 | 色网在线观看 | 亚洲永久免费观看 | 91视频88av | 一区综合 | 日本一区二区三区在线视频 | 黄在线看 | 亚洲人免费视频 | 久久久久久亚洲精品视频 | 在线观看成人 | 日韩h视频 | 国产综合久久久久久鬼色 | 国产精品一区久久久 | 亚洲电影免费 | 99久久精品国产一区二区成人 | 国产精品一区二区三区在线 | 日韩超级大片免费看国产国产播放器 | 免费国产一区 | 在线播放亚洲 | 国产精品视频成人 | 久热久热| 午夜视频在线观看网站 | 国产一二三在线 | 好色视频在线观看 | 欧美午夜一区二区三区免费大片 | 99国产精品一区 | 亚洲精品视频区 | 亚洲精品午夜 | 在线手机电影 | 国产精品久久久久久久久久久不卡 | 久久久久久亚洲国产 | 国产一级免费在线观看 | 91精品综合久久久久久五月天 | 美女久久 | 人人干人人看 | 在线观看成人国产 | 天天综合网网欲色 | 99精品全国免费观看视频软件 | 国产一区二区三区在线 | 国产欧美综合一区 | 一区二区三区四区日韩 | 日韩成人一区 | 精品久久久久久久久久久久 | 国产日韩精品视频 | 亚洲日韩欧美一区二区在线 | 黄色片在线免费观看 | 亚洲视频精品在线 | 福利片中文字幕 | 亚洲高清在线观看 | 国产精品久久久久国产a级 91福利网站在线观看 | 色综合久久久久 | 精品欧美一区二区三区久久久 | a在线免费观看 | 成人在线高清 | 亚洲一区中文字幕在线观看 | 精品亚洲成人 | 日韩一级视频 | 精品www| 精品视频久久 | 国产中文视频 | 中文字幕亚洲在线 | 色综合中文 | 三级黄色片在线免费观看 | 亚洲日本乱码一区两区在线观看 | 亚洲久久久 | 欧美激情精品久久久久久 | 亚洲国产精品综合久久久 | 国产日韩精品一区二区 | 成人老司机 | 成人免费网站视频 | 国产视频久久久久 | 激情com | 亚洲天堂久久 | 亚洲精品一区二区网址 | 亚洲欧美第一页 | 国产在线色 | 婷婷色在线| 欧美日本韩国一区二区三区 | 成年人视频在线观看免费 | 久久国产精品99精国产 | 麻豆国产一区二区三区四区 | 亚洲高清av在线 | 国产成人精品久久二区二区 | 久久久久久一区二区 | 国产日韩欧美高清 | 国产视频网 | 久久久国产精品 | 91精品国产综合久久久久久 | 欧美成人精品一区 | 欧美久久综合 | 中文字幕不卡在线88 | 91免费看 | 精品九九九 | 国产精品27页 | 久久精品国产99久久久 | 国产精品一区二区久久久 | 亚洲视频观看 | 亚洲第一精品在线 | 日本在线播放 | 亚洲第一av | 国产综合精品一区二区三区 | 91影院在线观看 | 国产日韩欧美精品一区二区 | 看特级毛片 | 性视频网站免费 | 中文字幕视频在线 | 影音先锋中文字幕在线 | 艹逼逼视频 | 91色爱| 久久精品国产一区二区三区不卡 | 国产精品成人久久久久 | 精品国偷自产国产一区 | 中文在线一区 | 欧美久久精品 | 亚洲激情在线播放 | 99热首页| 欧美色综合一区二区三区 | 成人精品在线 | 国产免费一区二区三区 | 日韩中文在线 | 亚洲色图第八页 | 美女久久久久 | 激情的网站 | a中文字幕 | 中文字幕日韩欧美一区二区三区 | 91麻豆产精品久久久久久 | 欧美第一视频 | 亚洲精品一区国语对白 | 欧美xxxx做受欧美 | 一区二区精品视频 | 欧美在线国产 | 嫩草网站入口 | 日韩三区 | 黄色精品 | 欧美一级在线 | 亚洲精品一区二三区不卡 | 久久国内精品 | 亚洲国产一区二区三区 | 日本免费久久 | 国产精品久久久久久久岛一牛影视 | 欧美日日 | av一区在线观看 | 国产色在线观看 | 九色自拍 | 亚洲成人二区 | 99re视频|