osn-selenium 0.0.0__py3-none-any.whl → 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. osn_selenium/_functions.py +84 -0
  2. osn_selenium/_typehints.py +19 -0
  3. osn_selenium/abstract/executors/cdp/__init__.py +435 -0
  4. osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
  5. osn_selenium/abstract/executors/cdp/animation.py +47 -0
  6. osn_selenium/abstract/executors/cdp/audits.py +39 -0
  7. osn_selenium/abstract/executors/cdp/autofill.py +34 -0
  8. osn_selenium/abstract/executors/cdp/background_service.py +22 -0
  9. osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
  10. osn_selenium/abstract/executors/cdp/browser.py +122 -0
  11. osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
  12. osn_selenium/abstract/executors/cdp/cast.py +31 -0
  13. osn_selenium/abstract/executors/cdp/console.py +18 -0
  14. osn_selenium/abstract/executors/cdp/css.py +197 -0
  15. osn_selenium/abstract/executors/cdp/debugger.py +198 -0
  16. osn_selenium/abstract/executors/cdp/device_access.py +22 -0
  17. osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
  18. osn_selenium/abstract/executors/cdp/dom.py +305 -0
  19. osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
  20. osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
  21. osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
  22. osn_selenium/abstract/executors/cdp/emulation.py +259 -0
  23. osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
  24. osn_selenium/abstract/executors/cdp/extensions.py +31 -0
  25. osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
  26. osn_selenium/abstract/executors/cdp/fetch.py +76 -0
  27. osn_selenium/abstract/executors/cdp/file_system.py +11 -0
  28. osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
  29. osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
  30. osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
  31. osn_selenium/abstract/executors/cdp/input.py +158 -0
  32. osn_selenium/abstract/executors/cdp/inspector.py +14 -0
  33. osn_selenium/abstract/executors/cdp/io.py +24 -0
  34. osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
  35. osn_selenium/abstract/executors/cdp/log.py +27 -0
  36. osn_selenium/abstract/executors/cdp/media.py +14 -0
  37. osn_selenium/abstract/executors/cdp/memory.py +61 -0
  38. osn_selenium/abstract/executors/cdp/network.py +252 -0
  39. osn_selenium/abstract/executors/cdp/overlay.py +166 -0
  40. osn_selenium/abstract/executors/cdp/page.py +347 -0
  41. osn_selenium/abstract/executors/cdp/performance.py +28 -0
  42. osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
  43. osn_selenium/abstract/executors/cdp/preload.py +14 -0
  44. osn_selenium/abstract/executors/cdp/profiler.py +54 -0
  45. osn_selenium/abstract/executors/cdp/pwa.py +46 -0
  46. osn_selenium/abstract/executors/cdp/runtime.py +176 -0
  47. osn_selenium/abstract/executors/cdp/schema.py +11 -0
  48. osn_selenium/abstract/executors/cdp/security.py +26 -0
  49. osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
  50. osn_selenium/abstract/executors/cdp/storage.py +175 -0
  51. osn_selenium/abstract/executors/cdp/system_info.py +24 -0
  52. osn_selenium/abstract/executors/cdp/target.py +125 -0
  53. osn_selenium/abstract/executors/cdp/tethering.py +14 -0
  54. osn_selenium/abstract/executors/cdp/tracing.py +48 -0
  55. osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
  56. osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
  57. osn_selenium/abstract/executors/javascript.py +203 -0
  58. osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
  59. osn_selenium/abstract/instances/action_chains/base.py +25 -0
  60. osn_selenium/abstract/instances/action_chains/click.py +93 -0
  61. osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
  62. osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
  63. osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
  64. osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
  65. osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
  66. osn_selenium/abstract/instances/action_chains/move.py +60 -0
  67. osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
  68. osn_selenium/abstract/instances/action_chains/utils.py +44 -0
  69. osn_selenium/abstract/instances/alert.py +67 -0
  70. osn_selenium/abstract/instances/browser.py +76 -0
  71. osn_selenium/abstract/instances/browsing_context.py +310 -0
  72. osn_selenium/abstract/instances/dialog.py +107 -0
  73. osn_selenium/abstract/instances/fedcm.py +133 -0
  74. osn_selenium/abstract/instances/mobile.py +79 -0
  75. osn_selenium/abstract/instances/network.py +100 -0
  76. osn_selenium/abstract/instances/permissions.py +52 -0
  77. osn_selenium/abstract/instances/script.py +109 -0
  78. osn_selenium/abstract/instances/shadow_root.py +81 -0
  79. osn_selenium/abstract/instances/storage.py +98 -0
  80. osn_selenium/abstract/instances/switch_to.py +104 -0
  81. osn_selenium/abstract/instances/web_driver_wait.py +57 -0
  82. osn_selenium/abstract/instances/web_element.py +395 -0
  83. osn_selenium/abstract/instances/web_extension.py +70 -0
  84. osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
  85. osn_selenium/abstract/webdriver/blink/base.py +80 -0
  86. osn_selenium/abstract/webdriver/blink/casting.py +82 -0
  87. osn_selenium/abstract/webdriver/blink/features.py +51 -0
  88. osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
  89. osn_selenium/abstract/webdriver/blink/logging.py +40 -0
  90. osn_selenium/abstract/webdriver/blink/network.py +45 -0
  91. osn_selenium/abstract/webdriver/blink/settings.py +68 -0
  92. osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
  93. osn_selenium/abstract/webdriver/chrome/base.py +36 -0
  94. osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
  95. osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
  96. osn_selenium/abstract/webdriver/core/__init__.py +16 -0
  97. osn_selenium/abstract/webdriver/core/actions.py +58 -0
  98. osn_selenium/abstract/webdriver/core/auth.py +145 -0
  99. osn_selenium/abstract/webdriver/core/base.py +298 -0
  100. osn_selenium/abstract/webdriver/core/capture.py +84 -0
  101. osn_selenium/abstract/webdriver/core/components.py +82 -0
  102. osn_selenium/abstract/webdriver/core/devtools.py +69 -0
  103. osn_selenium/abstract/webdriver/core/element.py +55 -0
  104. osn_selenium/abstract/webdriver/core/file.py +82 -0
  105. osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
  106. osn_selenium/abstract/webdriver/core/navigation.py +65 -0
  107. osn_selenium/abstract/webdriver/core/script.py +88 -0
  108. osn_selenium/abstract/webdriver/core/settings.py +43 -0
  109. osn_selenium/abstract/webdriver/core/storage.py +81 -0
  110. osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
  111. osn_selenium/abstract/webdriver/core/window.py +237 -0
  112. osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
  113. osn_selenium/abstract/webdriver/edge/base.py +36 -0
  114. osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
  115. osn_selenium/abstract/webdriver/edge/settings.py +110 -0
  116. osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
  117. osn_selenium/abstract/webdriver/yandex/base.py +18 -0
  118. osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
  119. osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
  120. osn_selenium/base_mixin.py +122 -0
  121. osn_selenium/browsers_handler/__init__.py +47 -17
  122. osn_selenium/browsers_handler/_linux.py +226 -0
  123. osn_selenium/browsers_handler/_windows.py +21 -14
  124. osn_selenium/browsers_handler/{types.py → models.py} +5 -2
  125. osn_selenium/dev_tools/_decorators.py +140 -0
  126. osn_selenium/dev_tools/_exception_helpers.py +116 -0
  127. osn_selenium/dev_tools/_functions.py +174 -0
  128. osn_selenium/dev_tools/_system_utils.py +35 -0
  129. osn_selenium/dev_tools/_typehints.py +32 -0
  130. osn_selenium/dev_tools/_validators.py +227 -0
  131. osn_selenium/dev_tools/_wrappers.py +95 -0
  132. osn_selenium/dev_tools/domains/__init__.py +7 -40
  133. osn_selenium/dev_tools/domains/abstract.py +98 -254
  134. osn_selenium/dev_tools/domains/fetch.py +229 -906
  135. osn_selenium/dev_tools/domains_default/fetch.py +40 -28
  136. osn_selenium/dev_tools/filters.py +40 -0
  137. osn_selenium/dev_tools/logger/main.py +226 -0
  138. osn_selenium/dev_tools/logger/models.py +232 -0
  139. osn_selenium/dev_tools/logger/target.py +258 -0
  140. osn_selenium/dev_tools/manager/__init__.py +16 -0
  141. osn_selenium/dev_tools/manager/base.py +147 -0
  142. osn_selenium/dev_tools/manager/lifecycle.py +236 -0
  143. osn_selenium/dev_tools/manager/logging.py +153 -0
  144. osn_selenium/dev_tools/manager/settings.py +89 -0
  145. osn_selenium/dev_tools/manager/targets.py +175 -0
  146. osn_selenium/dev_tools/models.py +49 -0
  147. osn_selenium/dev_tools/settings.py +135 -0
  148. osn_selenium/dev_tools/target/__init__.py +16 -0
  149. osn_selenium/dev_tools/target/base.py +438 -0
  150. osn_selenium/dev_tools/target/detach.py +54 -0
  151. osn_selenium/dev_tools/target/discovery.py +112 -0
  152. osn_selenium/dev_tools/target/events.py +120 -0
  153. osn_selenium/dev_tools/target/fingerprint.py +126 -0
  154. osn_selenium/dev_tools/target/lifecycle.py +179 -0
  155. osn_selenium/dev_tools/target/logging.py +155 -0
  156. osn_selenium/exceptions/__init__.py +1 -0
  157. osn_selenium/exceptions/base.py +9 -0
  158. osn_selenium/exceptions/configuration.py +84 -0
  159. osn_selenium/exceptions/devtools.py +114 -0
  160. osn_selenium/exceptions/flags.py +45 -0
  161. osn_selenium/exceptions/instance.py +92 -0
  162. osn_selenium/exceptions/javascript.py +31 -0
  163. osn_selenium/exceptions/logic.py +31 -0
  164. osn_selenium/exceptions/path.py +77 -0
  165. osn_selenium/exceptions/platform.py +33 -0
  166. osn_selenium/exceptions/protocol.py +86 -0
  167. osn_selenium/exceptions/webdriver.py +44 -0
  168. osn_selenium/exceptions/window.py +63 -0
  169. osn_selenium/executors/__init__.py +1 -0
  170. osn_selenium/executors/sync/__init__.py +1 -0
  171. osn_selenium/executors/sync/cdp/__init__.py +550 -0
  172. osn_selenium/executors/sync/cdp/accessibility.py +74 -0
  173. osn_selenium/executors/sync/cdp/animation.py +50 -0
  174. osn_selenium/executors/sync/cdp/audits.py +48 -0
  175. osn_selenium/executors/sync/cdp/autofill.py +39 -0
  176. osn_selenium/executors/sync/cdp/background_service.py +30 -0
  177. osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
  178. osn_selenium/executors/sync/cdp/browser.py +131 -0
  179. osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
  180. osn_selenium/executors/sync/cdp/cast.py +38 -0
  181. osn_selenium/executors/sync/cdp/console.py +24 -0
  182. osn_selenium/executors/sync/cdp/css.py +187 -0
  183. osn_selenium/executors/sync/cdp/debugger.py +206 -0
  184. osn_selenium/executors/sync/cdp/device_access.py +27 -0
  185. osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
  186. osn_selenium/executors/sync/cdp/dom.py +310 -0
  187. osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
  188. osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
  189. osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
  190. osn_selenium/executors/sync/cdp/emulation.py +270 -0
  191. osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
  192. osn_selenium/executors/sync/cdp/extensions.py +39 -0
  193. osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
  194. osn_selenium/executors/sync/cdp/fetch.py +96 -0
  195. osn_selenium/executors/sync/cdp/file_system.py +18 -0
  196. osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
  197. osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
  198. osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
  199. osn_selenium/executors/sync/cdp/input.py +233 -0
  200. osn_selenium/executors/sync/cdp/inspector.py +21 -0
  201. osn_selenium/executors/sync/cdp/io.py +33 -0
  202. osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
  203. osn_selenium/executors/sync/cdp/log.py +35 -0
  204. osn_selenium/executors/sync/cdp/media.py +21 -0
  205. osn_selenium/executors/sync/cdp/memory.py +62 -0
  206. osn_selenium/executors/sync/cdp/network.py +287 -0
  207. osn_selenium/executors/sync/cdp/overlay.py +174 -0
  208. osn_selenium/executors/sync/cdp/page.py +365 -0
  209. osn_selenium/executors/sync/cdp/performance.py +33 -0
  210. osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
  211. osn_selenium/executors/sync/cdp/preload.py +21 -0
  212. osn_selenium/executors/sync/cdp/profiler.py +58 -0
  213. osn_selenium/executors/sync/cdp/pwa.py +55 -0
  214. osn_selenium/executors/sync/cdp/runtime.py +221 -0
  215. osn_selenium/executors/sync/cdp/schema.py +23 -0
  216. osn_selenium/executors/sync/cdp/security.py +30 -0
  217. osn_selenium/executors/sync/cdp/service_worker.py +56 -0
  218. osn_selenium/executors/sync/cdp/storage.py +151 -0
  219. osn_selenium/executors/sync/cdp/system_info.py +30 -0
  220. osn_selenium/executors/sync/cdp/target.py +147 -0
  221. osn_selenium/executors/sync/cdp/tethering.py +21 -0
  222. osn_selenium/executors/sync/cdp/tracing.py +62 -0
  223. osn_selenium/executors/sync/cdp/web_audio.py +24 -0
  224. osn_selenium/executors/sync/cdp/web_authn.py +82 -0
  225. osn_selenium/executors/sync/javascript.py +79 -0
  226. osn_selenium/executors/trio_threads/__init__.py +1 -0
  227. osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
  228. osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
  229. osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
  230. osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
  231. osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
  232. osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
  233. osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
  234. osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
  235. osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
  236. osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
  237. osn_selenium/executors/trio_threads/cdp/console.py +33 -0
  238. osn_selenium/executors/trio_threads/cdp/css.py +196 -0
  239. osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
  240. osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
  241. osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
  242. osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
  243. osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
  244. osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
  245. osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
  246. osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
  247. osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
  248. osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
  249. osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
  250. osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
  251. osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
  252. osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
  253. osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
  254. osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
  255. osn_selenium/executors/trio_threads/cdp/input.py +242 -0
  256. osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
  257. osn_selenium/executors/trio_threads/cdp/io.py +42 -0
  258. osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
  259. osn_selenium/executors/trio_threads/cdp/log.py +44 -0
  260. osn_selenium/executors/trio_threads/cdp/media.py +30 -0
  261. osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
  262. osn_selenium/executors/trio_threads/cdp/network.py +296 -0
  263. osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
  264. osn_selenium/executors/trio_threads/cdp/page.py +374 -0
  265. osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
  266. osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
  267. osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
  268. osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
  269. osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
  270. osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
  271. osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
  272. osn_selenium/executors/trio_threads/cdp/security.py +43 -0
  273. osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
  274. osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
  275. osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
  276. osn_selenium/executors/trio_threads/cdp/target.py +156 -0
  277. osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
  278. osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
  279. osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
  280. osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
  281. osn_selenium/executors/trio_threads/javascript.py +90 -0
  282. osn_selenium/executors/unified/__init__.py +1 -0
  283. osn_selenium/executors/unified/cdp/__init__.py +1 -0
  284. osn_selenium/executors/unified/cdp/accessibility.py +81 -0
  285. osn_selenium/executors/unified/cdp/animation.py +50 -0
  286. osn_selenium/executors/unified/cdp/audits.py +45 -0
  287. osn_selenium/executors/unified/cdp/autofill.py +41 -0
  288. osn_selenium/executors/unified/cdp/background_service.py +24 -0
  289. osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
  290. osn_selenium/executors/unified/cdp/browser.py +143 -0
  291. osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
  292. osn_selenium/executors/unified/cdp/cast.py +32 -0
  293. osn_selenium/executors/unified/cdp/console.py +18 -0
  294. osn_selenium/executors/unified/cdp/css.py +237 -0
  295. osn_selenium/executors/unified/cdp/debugger.py +243 -0
  296. osn_selenium/executors/unified/cdp/device_access.py +21 -0
  297. osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
  298. osn_selenium/executors/unified/cdp/dom.py +380 -0
  299. osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
  300. osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
  301. osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
  302. osn_selenium/executors/unified/cdp/emulation.py +312 -0
  303. osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
  304. osn_selenium/executors/unified/cdp/extensions.py +45 -0
  305. osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
  306. osn_selenium/executors/unified/cdp/fetch.py +111 -0
  307. osn_selenium/executors/unified/cdp/file_system.py +15 -0
  308. osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
  309. osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
  310. osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
  311. osn_selenium/executors/unified/cdp/input.py +254 -0
  312. osn_selenium/executors/unified/cdp/inspector.py +15 -0
  313. osn_selenium/executors/unified/cdp/io.py +29 -0
  314. osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
  315. osn_selenium/executors/unified/cdp/log.py +29 -0
  316. osn_selenium/executors/unified/cdp/media.py +15 -0
  317. osn_selenium/executors/unified/cdp/memory.py +59 -0
  318. osn_selenium/executors/unified/cdp/network.py +323 -0
  319. osn_selenium/executors/unified/cdp/overlay.py +209 -0
  320. osn_selenium/executors/unified/cdp/page.py +410 -0
  321. osn_selenium/executors/unified/cdp/performance.py +27 -0
  322. osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
  323. osn_selenium/executors/unified/cdp/preload.py +15 -0
  324. osn_selenium/executors/unified/cdp/profiler.py +55 -0
  325. osn_selenium/executors/unified/cdp/pwa.py +55 -0
  326. osn_selenium/executors/unified/cdp/runtime.py +245 -0
  327. osn_selenium/executors/unified/cdp/schema.py +17 -0
  328. osn_selenium/executors/unified/cdp/security.py +27 -0
  329. osn_selenium/executors/unified/cdp/service_worker.py +62 -0
  330. osn_selenium/executors/unified/cdp/storage.py +178 -0
  331. osn_selenium/executors/unified/cdp/system_info.py +24 -0
  332. osn_selenium/executors/unified/cdp/target.py +165 -0
  333. osn_selenium/executors/unified/cdp/tethering.py +15 -0
  334. osn_selenium/executors/unified/cdp/tracing.py +62 -0
  335. osn_selenium/executors/unified/cdp/web_audio.py +18 -0
  336. osn_selenium/executors/unified/cdp/web_authn.py +103 -0
  337. osn_selenium/executors/unified/javascript.py +108 -0
  338. osn_selenium/flags/__init__.py +1 -0
  339. osn_selenium/flags/_functions.py +45 -0
  340. osn_selenium/flags/_typehints.py +34 -0
  341. osn_selenium/flags/_validators.py +101 -0
  342. osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +165 -243
  343. osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +133 -371
  344. osn_selenium/flags/chrome.py +259 -0
  345. osn_selenium/flags/edge.py +259 -0
  346. osn_selenium/flags/models/__init__.py +1 -0
  347. osn_selenium/flags/models/base.py +130 -0
  348. osn_selenium/flags/models/blink.py +263 -0
  349. osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
  350. osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
  351. osn_selenium/flags/models/values.py +44 -0
  352. osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
  353. osn_selenium/flags/yandex.py +259 -0
  354. osn_selenium/instances/__init__.py +1 -0
  355. osn_selenium/instances/_functions.py +242 -0
  356. osn_selenium/instances/_typehints.py +148 -0
  357. osn_selenium/instances/_utils.py +143 -0
  358. osn_selenium/instances/convert.py +287 -0
  359. osn_selenium/instances/protocols.py +105 -0
  360. osn_selenium/instances/sync/__init__.py +1 -0
  361. osn_selenium/instances/sync/action_chains/__init__.py +26 -0
  362. osn_selenium/instances/sync/action_chains/base.py +74 -0
  363. osn_selenium/instances/sync/action_chains/click.py +61 -0
  364. osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
  365. osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
  366. osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
  367. osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
  368. osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
  369. osn_selenium/instances/sync/action_chains/move.py +46 -0
  370. osn_selenium/instances/sync/action_chains/scroll.py +43 -0
  371. osn_selenium/instances/sync/action_chains/utils.py +30 -0
  372. osn_selenium/instances/sync/alert.py +69 -0
  373. osn_selenium/instances/sync/browser.py +72 -0
  374. osn_selenium/instances/sync/browsing_context.py +193 -0
  375. osn_selenium/instances/sync/dialog.py +81 -0
  376. osn_selenium/instances/sync/fedcm.py +92 -0
  377. osn_selenium/instances/sync/mobile.py +75 -0
  378. osn_selenium/instances/sync/network.py +90 -0
  379. osn_selenium/instances/sync/permissions.py +80 -0
  380. osn_selenium/instances/sync/script.py +77 -0
  381. osn_selenium/instances/sync/shadow_root.py +91 -0
  382. osn_selenium/instances/sync/storage.py +91 -0
  383. osn_selenium/instances/sync/switch_to.py +92 -0
  384. osn_selenium/instances/sync/web_driver_wait.py +83 -0
  385. osn_selenium/instances/sync/web_element.py +179 -0
  386. osn_selenium/instances/sync/web_extension.py +77 -0
  387. osn_selenium/instances/trio_threads/__init__.py +1 -0
  388. osn_selenium/instances/trio_threads/action_chains/__init__.py +26 -0
  389. osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
  390. osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
  391. osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
  392. osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
  393. osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
  394. osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
  395. osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
  396. osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
  397. osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
  398. osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
  399. osn_selenium/instances/trio_threads/alert.py +87 -0
  400. osn_selenium/instances/trio_threads/browser.py +90 -0
  401. osn_selenium/instances/trio_threads/browsing_context.py +216 -0
  402. osn_selenium/instances/trio_threads/dialog.py +99 -0
  403. osn_selenium/instances/trio_threads/fedcm.py +110 -0
  404. osn_selenium/instances/trio_threads/mobile.py +93 -0
  405. osn_selenium/instances/trio_threads/network.py +108 -0
  406. osn_selenium/instances/trio_threads/permissions.py +102 -0
  407. osn_selenium/instances/trio_threads/script.py +95 -0
  408. osn_selenium/instances/trio_threads/shadow_root.py +123 -0
  409. osn_selenium/instances/trio_threads/storage.py +109 -0
  410. osn_selenium/instances/trio_threads/switch_to.py +124 -0
  411. osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
  412. osn_selenium/instances/trio_threads/web_element.py +217 -0
  413. osn_selenium/instances/trio_threads/web_extension.py +99 -0
  414. osn_selenium/instances/unified/__init__.py +1 -0
  415. osn_selenium/instances/unified/action_chains/__init__.py +22 -0
  416. osn_selenium/instances/unified/action_chains/base.py +31 -0
  417. osn_selenium/instances/unified/action_chains/click.py +27 -0
  418. osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
  419. osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
  420. osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
  421. osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
  422. osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
  423. osn_selenium/instances/unified/action_chains/move.py +24 -0
  424. osn_selenium/instances/unified/action_chains/scroll.py +21 -0
  425. osn_selenium/instances/unified/action_chains/utils.py +19 -0
  426. osn_selenium/instances/unified/alert.py +29 -0
  427. osn_selenium/instances/unified/browser.py +33 -0
  428. osn_selenium/instances/unified/browsing_context.py +151 -0
  429. osn_selenium/instances/unified/dialog.py +42 -0
  430. osn_selenium/instances/unified/fedcm.py +48 -0
  431. osn_selenium/instances/unified/mobile.py +36 -0
  432. osn_selenium/instances/unified/network.py +50 -0
  433. osn_selenium/instances/unified/permissions.py +43 -0
  434. osn_selenium/instances/unified/script.py +38 -0
  435. osn_selenium/instances/unified/shadow_root.py +46 -0
  436. osn_selenium/instances/unified/storage.py +48 -0
  437. osn_selenium/instances/unified/switch_to.py +49 -0
  438. osn_selenium/instances/unified/web_driver_wait.py +45 -0
  439. osn_selenium/instances/unified/web_element.py +145 -0
  440. osn_selenium/instances/unified/web_extension.py +38 -0
  441. osn_selenium/javascript/__init__.py +1 -0
  442. osn_selenium/javascript/_functions.py +63 -0
  443. osn_selenium/javascript/fingerprint/__init__.py +120 -0
  444. osn_selenium/javascript/fingerprint/_decorators.py +41 -0
  445. osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
  446. osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
  447. osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
  448. osn_selenium/javascript/fingerprint/_functions.py +35 -0
  449. osn_selenium/javascript/fingerprint/_typehints.py +27 -0
  450. osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
  451. osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
  452. osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
  453. osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
  454. osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
  455. osn_selenium/javascript/fingerprint/registry/models.py +41 -0
  456. osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
  457. osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
  458. osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
  459. osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
  460. osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
  461. osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
  462. osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
  463. osn_selenium/javascript/functions.py +44 -0
  464. osn_selenium/javascript/models.py +35 -0
  465. osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
  466. osn_selenium/models.py +139 -0
  467. osn_selenium/webdrivers/_args_helpers.py +181 -0
  468. osn_selenium/webdrivers/_bridges.py +57 -0
  469. osn_selenium/webdrivers/_decorators.py +83 -0
  470. osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
  471. osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
  472. osn_selenium/webdrivers/_executable_tables/models.py +19 -0
  473. osn_selenium/webdrivers/_typehints.py +10 -0
  474. osn_selenium/webdrivers/protocols.py +50 -0
  475. osn_selenium/webdrivers/sync/__init__.py +1 -0
  476. osn_selenium/webdrivers/sync/blink/__init__.py +114 -0
  477. osn_selenium/webdrivers/sync/blink/base.py +128 -0
  478. osn_selenium/webdrivers/sync/blink/casting.py +34 -0
  479. osn_selenium/webdrivers/sync/blink/features.py +28 -0
  480. osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
  481. osn_selenium/webdrivers/sync/blink/logging.py +25 -0
  482. osn_selenium/webdrivers/sync/blink/network.py +28 -0
  483. osn_selenium/webdrivers/sync/blink/settings.py +63 -0
  484. osn_selenium/webdrivers/sync/chrome/__init__.py +67 -0
  485. osn_selenium/webdrivers/sync/chrome/base.py +106 -0
  486. osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
  487. osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
  488. osn_selenium/webdrivers/sync/core/__init__.py +91 -0
  489. osn_selenium/webdrivers/sync/core/actions.py +59 -0
  490. osn_selenium/webdrivers/sync/core/auth.py +77 -0
  491. osn_selenium/webdrivers/sync/core/base.py +167 -0
  492. osn_selenium/webdrivers/sync/core/capture.py +37 -0
  493. osn_selenium/webdrivers/sync/core/comonents.py +57 -0
  494. osn_selenium/webdrivers/sync/core/devtools.py +47 -0
  495. osn_selenium/webdrivers/sync/core/element.py +42 -0
  496. osn_selenium/webdrivers/sync/core/file.py +40 -0
  497. osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
  498. osn_selenium/webdrivers/sync/core/navigation.py +36 -0
  499. osn_selenium/webdrivers/sync/core/script.py +53 -0
  500. osn_selenium/webdrivers/sync/core/settings.py +35 -0
  501. osn_selenium/webdrivers/sync/core/storage.py +48 -0
  502. osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
  503. osn_selenium/webdrivers/sync/core/window.py +99 -0
  504. osn_selenium/webdrivers/sync/edge/__init__.py +67 -0
  505. osn_selenium/webdrivers/sync/edge/base.py +102 -0
  506. osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
  507. osn_selenium/webdrivers/sync/edge/settings.py +58 -0
  508. osn_selenium/webdrivers/sync/yandex/__init__.py +67 -0
  509. osn_selenium/webdrivers/sync/yandex/base.py +99 -0
  510. osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
  511. osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
  512. osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
  513. osn_selenium/webdrivers/trio_threads/blink/__init__.py +124 -0
  514. osn_selenium/webdrivers/trio_threads/blink/base.py +133 -0
  515. osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
  516. osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
  517. osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
  518. osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
  519. osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
  520. osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
  521. osn_selenium/webdrivers/trio_threads/chrome/__init__.py +81 -0
  522. osn_selenium/webdrivers/trio_threads/chrome/base.py +107 -0
  523. osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
  524. osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
  525. osn_selenium/webdrivers/trio_threads/core/__init__.py +109 -0
  526. osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
  527. osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
  528. osn_selenium/webdrivers/trio_threads/core/base.py +191 -0
  529. osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
  530. osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
  531. osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
  532. osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
  533. osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
  534. osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
  535. osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
  536. osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
  537. osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
  538. osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
  539. osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
  540. osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
  541. osn_selenium/webdrivers/trio_threads/edge/__init__.py +81 -0
  542. osn_selenium/webdrivers/trio_threads/edge/base.py +103 -0
  543. osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
  544. osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
  545. osn_selenium/webdrivers/trio_threads/yandex/__init__.py +81 -0
  546. osn_selenium/webdrivers/trio_threads/yandex/base.py +100 -0
  547. osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
  548. osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
  549. osn_selenium/webdrivers/unified/__init__.py +1 -0
  550. osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
  551. osn_selenium/webdrivers/unified/blink/base.py +131 -0
  552. osn_selenium/webdrivers/unified/blink/casting.py +30 -0
  553. osn_selenium/webdrivers/unified/blink/features.py +22 -0
  554. osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
  555. osn_selenium/webdrivers/unified/blink/logging.py +18 -0
  556. osn_selenium/webdrivers/unified/blink/network.py +22 -0
  557. osn_selenium/webdrivers/unified/blink/settings.py +86 -0
  558. osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
  559. osn_selenium/webdrivers/unified/chrome/base.py +54 -0
  560. osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
  561. osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
  562. osn_selenium/webdrivers/unified/core/__init__.py +1 -0
  563. osn_selenium/webdrivers/unified/core/actions.py +43 -0
  564. osn_selenium/webdrivers/unified/core/auth.py +70 -0
  565. osn_selenium/webdrivers/unified/core/base.py +132 -0
  566. osn_selenium/webdrivers/unified/core/capture.py +32 -0
  567. osn_selenium/webdrivers/unified/core/components.py +32 -0
  568. osn_selenium/webdrivers/unified/core/devtools.py +35 -0
  569. osn_selenium/webdrivers/unified/core/element.py +24 -0
  570. osn_selenium/webdrivers/unified/core/file.py +35 -0
  571. osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
  572. osn_selenium/webdrivers/unified/core/navigation.py +31 -0
  573. osn_selenium/webdrivers/unified/core/script.py +32 -0
  574. osn_selenium/webdrivers/unified/core/settings.py +44 -0
  575. osn_selenium/webdrivers/unified/core/storage.py +37 -0
  576. osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
  577. osn_selenium/webdrivers/unified/core/window.py +135 -0
  578. osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
  579. osn_selenium/webdrivers/unified/edge/base.py +52 -0
  580. osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
  581. osn_selenium/webdrivers/unified/edge/settings.py +48 -0
  582. osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
  583. osn_selenium/webdrivers/unified/yandex/base.py +54 -0
  584. osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
  585. osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
  586. osn_selenium-1.0.0.dist-info/METADATA +239 -0
  587. osn_selenium-1.0.0.dist-info/RECORD +608 -0
  588. {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/WHEEL +1 -1
  589. osn_selenium/captcha_workers/__init__.py +0 -26
  590. osn_selenium/dev_tools/_types.py +0 -22
  591. osn_selenium/dev_tools/errors.py +0 -89
  592. osn_selenium/dev_tools/logger.py +0 -558
  593. osn_selenium/dev_tools/manager.py +0 -1551
  594. osn_selenium/dev_tools/utils.py +0 -509
  595. osn_selenium/errors.py +0 -16
  596. osn_selenium/types.py +0 -118
  597. osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
  598. osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
  599. osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
  600. osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
  601. osn_selenium/webdrivers/Blink/protocols.py +0 -330
  602. osn_selenium/webdrivers/Blink/webdriver.py +0 -637
  603. osn_selenium/webdrivers/Chrome/protocols.py +0 -228
  604. osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
  605. osn_selenium/webdrivers/Edge/protocols.py +0 -228
  606. osn_selenium/webdrivers/Edge/webdriver.py +0 -394
  607. osn_selenium/webdrivers/Yandex/protocols.py +0 -211
  608. osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
  609. osn_selenium/webdrivers/_functions.py +0 -504
  610. osn_selenium/webdrivers/types.py +0 -390
  611. osn_selenium-0.0.0.dist-info/METADATA +0 -710
  612. osn_selenium-0.0.0.dist-info/RECORD +0 -57
  613. /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
  614. /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
  615. /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
  616. /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
  617. /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
  618. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
  619. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
  620. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
  621. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
  622. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
  623. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
  624. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
  625. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
  626. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
  627. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
  628. {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,87 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List,
8
+ Optional
9
+ )
10
+ from osn_selenium.executors.unified.cdp.accessibility import (
11
+ UnifiedAccessibilityCDPExecutor
12
+ )
13
+ from osn_selenium.abstract.executors.cdp.accessibility import (
14
+ AbstractAccessibilityCDPExecutor
15
+ )
16
+
17
+
18
+ __all__ = ["AccessibilityCDPExecutor"]
19
+
20
+
21
+ class AccessibilityCDPExecutor(
22
+ UnifiedAccessibilityCDPExecutor,
23
+ TrioThreadMixin,
24
+ AbstractAccessibilityCDPExecutor
25
+ ):
26
+ def __init__(
27
+ self,
28
+ execute_function: Callable[[str, Dict[str, Any]], Any],
29
+ lock: trio.Lock,
30
+ limiter: trio.CapacityLimiter
31
+ ):
32
+ UnifiedAccessibilityCDPExecutor.__init__(self, execute_function=execute_function)
33
+
34
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
35
+
36
+ async def disable(self) -> None:
37
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
38
+
39
+ async def enable(self) -> None:
40
+ return await self.sync_to_trio(sync_function=self._enable_impl)()
41
+
42
+ async def get_ax_node_and_ancestors(
43
+ self,
44
+ node_id: Optional[int] = None,
45
+ backend_node_id: Optional[int] = None,
46
+ object_id: Optional[str] = None
47
+ ) -> List[Dict[str, Any]]:
48
+ return await self.sync_to_trio(sync_function=self._get_ax_node_and_ancestors_impl)(node_id=node_id, backend_node_id=backend_node_id, object_id=object_id)
49
+
50
+ async def get_child_ax_nodes(self, id_: str, frame_id: Optional[str] = None) -> List[Dict[str, Any]]:
51
+ return await self.sync_to_trio(sync_function=self._get_child_ax_nodes_impl)(id_=id_, frame_id=frame_id)
52
+
53
+ async def get_full_ax_tree(self, depth: Optional[int] = None, frame_id: Optional[str] = None) -> List[Dict[str, Any]]:
54
+ return await self.sync_to_trio(sync_function=self._get_full_ax_tree_impl)(depth=depth, frame_id=frame_id)
55
+
56
+ async def get_partial_ax_tree(
57
+ self,
58
+ node_id: Optional[int] = None,
59
+ backend_node_id: Optional[int] = None,
60
+ object_id: Optional[str] = None,
61
+ fetch_relatives: Optional[bool] = None
62
+ ) -> List[Dict[str, Any]]:
63
+ return await self.sync_to_trio(sync_function=self._get_partial_ax_tree_impl)(
64
+ node_id=node_id,
65
+ backend_node_id=backend_node_id,
66
+ object_id=object_id,
67
+ fetch_relatives=fetch_relatives
68
+ )
69
+
70
+ async def get_root_ax_node(self, frame_id: Optional[str] = None) -> Dict[str, Any]:
71
+ return await self.sync_to_trio(sync_function=self._get_root_ax_node_impl)(frame_id=frame_id)
72
+
73
+ async def query_ax_tree(
74
+ self,
75
+ node_id: Optional[int] = None,
76
+ backend_node_id: Optional[int] = None,
77
+ object_id: Optional[str] = None,
78
+ accessible_name: Optional[str] = None,
79
+ role: Optional[str] = None
80
+ ) -> List[Dict[str, Any]]:
81
+ return await self.sync_to_trio(sync_function=self._query_ax_tree_impl)(
82
+ node_id=node_id,
83
+ backend_node_id=backend_node_id,
84
+ object_id=object_id,
85
+ accessible_name=accessible_name,
86
+ role=role
87
+ )
@@ -0,0 +1,63 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List
8
+ )
9
+ from osn_selenium.executors.unified.cdp.animation import (
10
+ UnifiedAnimationCDPExecutor
11
+ )
12
+ from osn_selenium.abstract.executors.cdp.animation import (
13
+ AbstractAnimationCDPExecutor
14
+ )
15
+
16
+
17
+ __all__ = ["AnimationCDPExecutor"]
18
+
19
+
20
+ class AnimationCDPExecutor(
21
+ UnifiedAnimationCDPExecutor,
22
+ TrioThreadMixin,
23
+ AbstractAnimationCDPExecutor
24
+ ):
25
+ def __init__(
26
+ self,
27
+ execute_function: Callable[[str, Dict[str, Any]], Any],
28
+ lock: trio.Lock,
29
+ limiter: trio.CapacityLimiter
30
+ ):
31
+ UnifiedAnimationCDPExecutor.__init__(self, execute_function=execute_function)
32
+
33
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
34
+
35
+ async def disable(self) -> None:
36
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
37
+
38
+ async def enable(self) -> None:
39
+ return await self.sync_to_trio(sync_function=self._enable_impl)()
40
+
41
+ async def get_current_time(self, id_: str) -> float:
42
+ return await self.sync_to_trio(sync_function=self._get_current_time_impl)(id_=id_)
43
+
44
+ async def get_playback_rate(self) -> float:
45
+ return await self.sync_to_trio(sync_function=self._get_playback_rate_impl)()
46
+
47
+ async def release_animations(self, animations: List[str]) -> None:
48
+ return await self.sync_to_trio(sync_function=self._release_animations_impl)(animations=animations)
49
+
50
+ async def resolve_animation(self, animation_id: str) -> Dict[str, Any]:
51
+ return await self.sync_to_trio(sync_function=self._resolve_animation_impl)(animation_id=animation_id)
52
+
53
+ async def seek_animations(self, animations: List[str], current_time: float) -> None:
54
+ return await self.sync_to_trio(sync_function=self._seek_animations_impl)(animations=animations, current_time=current_time)
55
+
56
+ async def set_paused(self, animations: List[str], paused: bool) -> None:
57
+ return await self.sync_to_trio(sync_function=self._set_paused_impl)(animations=animations, paused=paused)
58
+
59
+ async def set_playback_rate(self, playback_rate: float) -> None:
60
+ return await self.sync_to_trio(sync_function=self._set_playback_rate_impl)(playback_rate=playback_rate)
61
+
62
+ async def set_timing(self, animation_id: str, duration: float, delay: float) -> None:
63
+ return await self.sync_to_trio(sync_function=self._set_timing_impl)(animation_id=animation_id, duration=duration, delay=delay)
@@ -0,0 +1,57 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List,
8
+ Optional,
9
+ Tuple
10
+ )
11
+ from osn_selenium.executors.unified.cdp.audits import (
12
+ UnifiedAuditsCDPExecutor
13
+ )
14
+ from osn_selenium.abstract.executors.cdp.audits import (
15
+ AbstractAuditsCDPExecutor
16
+ )
17
+
18
+
19
+ __all__ = ["AuditsCDPExecutor"]
20
+
21
+
22
+ class AuditsCDPExecutor(UnifiedAuditsCDPExecutor, TrioThreadMixin, AbstractAuditsCDPExecutor):
23
+ def __init__(
24
+ self,
25
+ execute_function: Callable[[str, Dict[str, Any]], Any],
26
+ lock: trio.Lock,
27
+ limiter: trio.CapacityLimiter
28
+ ):
29
+ UnifiedAuditsCDPExecutor.__init__(self, execute_function=execute_function)
30
+
31
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
32
+
33
+ async def check_contrast(self, report_aaa: Optional[bool] = None) -> None:
34
+ return await self.sync_to_trio(sync_function=self._check_contrast_impl)(report_aaa=report_aaa)
35
+
36
+ async def check_forms_issues(self) -> List[Dict[str, Any]]:
37
+ return await self.sync_to_trio(sync_function=self._check_forms_issues_impl)()
38
+
39
+ async def disable(self) -> None:
40
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
41
+
42
+ async def enable(self) -> None:
43
+ return await self.sync_to_trio(sync_function=self._enable_impl)()
44
+
45
+ async def get_encoded_response(
46
+ self,
47
+ request_id: str,
48
+ encoding: str,
49
+ quality: Optional[float] = None,
50
+ size_only: Optional[bool] = None
51
+ ) -> Tuple[Optional[str], int, int]:
52
+ return await self.sync_to_trio(sync_function=self._get_encoded_response_impl)(
53
+ request_id=request_id,
54
+ encoding=encoding,
55
+ quality=quality,
56
+ size_only=size_only
57
+ )
@@ -0,0 +1,52 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List,
8
+ Optional
9
+ )
10
+ from osn_selenium.executors.unified.cdp.autofill import (
11
+ UnifiedAutofillCDPExecutor
12
+ )
13
+ from osn_selenium.abstract.executors.cdp.autofill import (
14
+ AbstractAutofillCDPExecutor
15
+ )
16
+
17
+
18
+ __all__ = ["AutofillCDPExecutor"]
19
+
20
+
21
+ class AutofillCDPExecutor(
22
+ UnifiedAutofillCDPExecutor,
23
+ TrioThreadMixin,
24
+ AbstractAutofillCDPExecutor
25
+ ):
26
+ def __init__(
27
+ self,
28
+ execute_function: Callable[[str, Dict[str, Any]], Any],
29
+ lock: trio.Lock,
30
+ limiter: trio.CapacityLimiter
31
+ ):
32
+ UnifiedAutofillCDPExecutor.__init__(self, execute_function=execute_function)
33
+
34
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
35
+
36
+ async def disable(self) -> None:
37
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
38
+
39
+ async def enable(self) -> None:
40
+ return await self.sync_to_trio(sync_function=self._enable_impl)()
41
+
42
+ async def set_addresses(self, addresses: List[Dict[str, Any]]) -> None:
43
+ return await self.sync_to_trio(sync_function=self._set_addresses_impl)(addresses=addresses)
44
+
45
+ async def trigger(
46
+ self,
47
+ field_id: int,
48
+ frame_id: Optional[str] = None,
49
+ card: Optional[Dict[str, Any]] = None,
50
+ address: Optional[Dict[str, Any]] = None
51
+ ) -> None:
52
+ return await self.sync_to_trio(sync_function=self._trigger_impl)(field_id=field_id, frame_id=frame_id, card=card, address=address)
@@ -0,0 +1,40 @@
1
+ import trio
2
+ from typing import Any, Callable, Dict
3
+ from osn_selenium.base_mixin import TrioThreadMixin
4
+ from osn_selenium.executors.unified.cdp.background_service import (
5
+ UnifiedBackgroundServiceCDPExecutor
6
+ )
7
+ from osn_selenium.abstract.executors.cdp.background_service import (
8
+ AbstractBackgroundServiceCDPExecutor
9
+ )
10
+
11
+
12
+ __all__ = ["BackgroundServiceCDPExecutor"]
13
+
14
+
15
+ class BackgroundServiceCDPExecutor(
16
+ UnifiedBackgroundServiceCDPExecutor,
17
+ TrioThreadMixin,
18
+ AbstractBackgroundServiceCDPExecutor
19
+ ):
20
+ def __init__(
21
+ self,
22
+ execute_function: Callable[[str, Dict[str, Any]], Any],
23
+ lock: trio.Lock,
24
+ limiter: trio.CapacityLimiter
25
+ ):
26
+ UnifiedBackgroundServiceCDPExecutor.__init__(self, execute_function=execute_function)
27
+
28
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
29
+
30
+ async def clear_events(self, service: str) -> None:
31
+ return await self.sync_to_trio(sync_function=self._clear_events_impl)(service=service)
32
+
33
+ async def set_recording(self, should_record: bool, service: str) -> None:
34
+ return await self.sync_to_trio(sync_function=self._set_recording_impl)(should_record=should_record, service=service)
35
+
36
+ async def start_observing(self, service: str) -> None:
37
+ return await self.sync_to_trio(sync_function=self._start_observing_impl)(service=service)
38
+
39
+ async def stop_observing(self, service: str) -> None:
40
+ return await self.sync_to_trio(sync_function=self._stop_observing_impl)(service=service)
@@ -0,0 +1,111 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List,
8
+ Optional
9
+ )
10
+ from osn_selenium.executors.unified.cdp.bluetooth_emulation import (
11
+ UnifiedBluetoothEmulationCDPExecutor
12
+ )
13
+ from osn_selenium.abstract.executors.cdp.bluetooth_emulation import (
14
+ AbstractBluetoothEmulationCDPExecutor
15
+ )
16
+
17
+
18
+ __all__ = ["BluetoothEmulationCDPExecutor"]
19
+
20
+
21
+ class BluetoothEmulationCDPExecutor(
22
+ UnifiedBluetoothEmulationCDPExecutor,
23
+ TrioThreadMixin,
24
+ AbstractBluetoothEmulationCDPExecutor
25
+ ):
26
+ def __init__(
27
+ self,
28
+ execute_function: Callable[[str, Dict[str, Any]], Any],
29
+ lock: trio.Lock,
30
+ limiter: trio.CapacityLimiter
31
+ ):
32
+ UnifiedBluetoothEmulationCDPExecutor.__init__(self, execute_function=execute_function)
33
+
34
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
35
+
36
+ async def add_characteristic(
37
+ self,
38
+ service_id: str,
39
+ characteristic_uuid: str,
40
+ properties: Dict[str, Any]
41
+ ) -> str:
42
+ return await self.sync_to_trio(sync_function=self._add_characteristic_impl)(
43
+ service_id=service_id,
44
+ characteristic_uuid=characteristic_uuid,
45
+ properties=properties
46
+ )
47
+
48
+ async def add_descriptor(self, characteristic_id: str, descriptor_uuid: str) -> str:
49
+ return await self.sync_to_trio(sync_function=self._add_descriptor_impl)(characteristic_id=characteristic_id, descriptor_uuid=descriptor_uuid)
50
+
51
+ async def add_service(self, address: str, service_uuid: str) -> str:
52
+ return await self.sync_to_trio(sync_function=self._add_service_impl)(address=address, service_uuid=service_uuid)
53
+
54
+ async def disable(self) -> None:
55
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
56
+
57
+ async def enable(self, state: str, le_supported: bool) -> None:
58
+ return await self.sync_to_trio(sync_function=self._enable_impl)(state=state, le_supported=le_supported)
59
+
60
+ async def remove_characteristic(self, characteristic_id: str) -> None:
61
+ return await self.sync_to_trio(sync_function=self._remove_characteristic_impl)(characteristic_id=characteristic_id)
62
+
63
+ async def remove_descriptor(self, descriptor_id: str) -> None:
64
+ return await self.sync_to_trio(sync_function=self._remove_descriptor_impl)(descriptor_id=descriptor_id)
65
+
66
+ async def remove_service(self, service_id: str) -> None:
67
+ return await self.sync_to_trio(sync_function=self._remove_service_impl)(service_id=service_id)
68
+
69
+ async def set_simulated_central_state(self, state: str) -> None:
70
+ return await self.sync_to_trio(sync_function=self._set_simulated_central_state_impl)(state=state)
71
+
72
+ async def simulate_advertisement(self, entry: Dict[str, Any]) -> None:
73
+ return await self.sync_to_trio(sync_function=self._simulate_advertisement_impl)(entry=entry)
74
+
75
+ async def simulate_characteristic_operation_response(
76
+ self,
77
+ characteristic_id: str,
78
+ type_: str,
79
+ code: int,
80
+ data: Optional[str] = None
81
+ ) -> None:
82
+ return await self.sync_to_trio(sync_function=self._simulate_characteristic_operation_response_impl)(characteristic_id=characteristic_id, type_=type_, code=code, data=data)
83
+
84
+ async def simulate_descriptor_operation_response(
85
+ self,
86
+ descriptor_id: str,
87
+ type_: str,
88
+ code: int,
89
+ data: Optional[str] = None
90
+ ) -> None:
91
+ return await self.sync_to_trio(sync_function=self._simulate_descriptor_operation_response_impl)(descriptor_id=descriptor_id, type_=type_, code=code, data=data)
92
+
93
+ async def simulate_gatt_disconnection(self, address: str) -> None:
94
+ return await self.sync_to_trio(sync_function=self._simulate_gatt_disconnection_impl)(address=address)
95
+
96
+ async def simulate_gatt_operation_response(self, address: str, type_: str, code: int) -> None:
97
+ return await self.sync_to_trio(sync_function=self._simulate_gatt_operation_response_impl)(address=address, type_=type_, code=code)
98
+
99
+ async def simulate_preconnected_peripheral(
100
+ self,
101
+ address: str,
102
+ name: str,
103
+ manufacturer_data: List[Dict[str, Any]],
104
+ known_service_uuids: List[str]
105
+ ) -> None:
106
+ return await self.sync_to_trio(sync_function=self._simulate_preconnected_peripheral_impl)(
107
+ address=address,
108
+ name=name,
109
+ manufacturer_data=manufacturer_data,
110
+ known_service_uuids=known_service_uuids
111
+ )
@@ -0,0 +1,140 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List,
8
+ Optional,
9
+ Tuple
10
+ )
11
+ from osn_selenium.executors.unified.cdp.browser import (
12
+ UnifiedBrowserCDPExecutor
13
+ )
14
+ from osn_selenium.abstract.executors.cdp.browser import (
15
+ AbstractBrowserCDPExecutor
16
+ )
17
+
18
+
19
+ __all__ = ["BrowserCDPExecutor"]
20
+
21
+
22
+ class BrowserCDPExecutor(UnifiedBrowserCDPExecutor, TrioThreadMixin, AbstractBrowserCDPExecutor):
23
+ def __init__(
24
+ self,
25
+ execute_function: Callable[[str, Dict[str, Any]], Any],
26
+ lock: trio.Lock,
27
+ limiter: trio.CapacityLimiter
28
+ ):
29
+ UnifiedBrowserCDPExecutor.__init__(self, execute_function=execute_function)
30
+
31
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
32
+
33
+ async def add_privacy_sandbox_coordinator_key_config(
34
+ self,
35
+ api: str,
36
+ coordinator_origin: str,
37
+ key_config: str,
38
+ browser_context_id: Optional[str] = None
39
+ ) -> None:
40
+ return await self.sync_to_trio(sync_function=self._add_privacy_sandbox_coordinator_key_config_impl)(
41
+ api=api,
42
+ coordinator_origin=coordinator_origin,
43
+ key_config=key_config,
44
+ browser_context_id=browser_context_id
45
+ )
46
+
47
+ async def add_privacy_sandbox_enrollment_override(self, url: str) -> None:
48
+ return await self.sync_to_trio(sync_function=self._add_privacy_sandbox_enrollment_override_impl)(url=url)
49
+
50
+ async def cancel_download(self, guid: str, browser_context_id: Optional[str] = None) -> None:
51
+ return await self.sync_to_trio(sync_function=self._cancel_download_impl)(guid=guid, browser_context_id=browser_context_id)
52
+
53
+ async def close(self) -> None:
54
+ return await self.sync_to_trio(sync_function=self._close_impl)()
55
+
56
+ async def crash(self) -> None:
57
+ return await self.sync_to_trio(sync_function=self._crash_impl)()
58
+
59
+ async def crash_gpu_process(self) -> None:
60
+ return await self.sync_to_trio(sync_function=self._crash_gpu_process_impl)()
61
+
62
+ async def execute_browser_command(self, command_id: str) -> None:
63
+ return await self.sync_to_trio(sync_function=self._execute_browser_command_impl)(command_id=command_id)
64
+
65
+ async def get_browser_command_line(self) -> List[str]:
66
+ return await self.sync_to_trio(sync_function=self._get_browser_command_line_impl)()
67
+
68
+ async def get_histogram(self, name: str, delta: Optional[bool] = None) -> Dict[str, Any]:
69
+ return await self.sync_to_trio(sync_function=self._get_histogram_impl)(name=name, delta=delta)
70
+
71
+ async def get_histograms(self, query: Optional[str] = None, delta: Optional[bool] = None) -> List[Dict[str, Any]]:
72
+ return await self.sync_to_trio(sync_function=self._get_histograms_impl)(query=query, delta=delta)
73
+
74
+ async def get_version(self) -> Tuple[str, str, str, str, str]:
75
+ return await self.sync_to_trio(sync_function=self._get_version_impl)()
76
+
77
+ async def get_window_bounds(self, window_id: int) -> Dict[str, Any]:
78
+ return await self.sync_to_trio(sync_function=self._get_window_bounds_impl)(window_id=window_id)
79
+
80
+ async def get_window_for_target(self, target_id: Optional[str] = None) -> Tuple[int, Dict[str, Any]]:
81
+ return await self.sync_to_trio(sync_function=self._get_window_for_target_impl)(target_id=target_id)
82
+
83
+ async def grant_permissions(
84
+ self,
85
+ permissions: List[str],
86
+ origin: Optional[str] = None,
87
+ browser_context_id: Optional[str] = None
88
+ ) -> None:
89
+ return await self.sync_to_trio(sync_function=self._grant_permissions_impl)(
90
+ permissions=permissions,
91
+ origin=origin,
92
+ browser_context_id=browser_context_id
93
+ )
94
+
95
+ async def reset_permissions(self, browser_context_id: Optional[str] = None) -> None:
96
+ return await self.sync_to_trio(sync_function=self._reset_permissions_impl)(browser_context_id=browser_context_id)
97
+
98
+ async def set_contents_size(
99
+ self,
100
+ window_id: int,
101
+ width: Optional[int] = None,
102
+ height: Optional[int] = None
103
+ ) -> None:
104
+ return await self.sync_to_trio(sync_function=self._set_contents_size_impl)(window_id=window_id, width=width, height=height)
105
+
106
+ async def set_dock_tile(self, badge_label: Optional[str] = None, image: Optional[str] = None) -> None:
107
+ return await self.sync_to_trio(sync_function=self._set_dock_tile_impl)(badge_label=badge_label, image=image)
108
+
109
+ async def set_download_behavior(
110
+ self,
111
+ behavior: str,
112
+ browser_context_id: Optional[str] = None,
113
+ download_path: Optional[str] = None,
114
+ events_enabled: Optional[bool] = None
115
+ ) -> None:
116
+ return await self.sync_to_trio(sync_function=self._set_download_behavior_impl)(
117
+ behavior=behavior,
118
+ browser_context_id=browser_context_id,
119
+ download_path=download_path,
120
+ events_enabled=events_enabled
121
+ )
122
+
123
+ async def set_permission(
124
+ self,
125
+ permission: Dict[str, Any],
126
+ setting: str,
127
+ origin: Optional[str] = None,
128
+ embedded_origin: Optional[str] = None,
129
+ browser_context_id: Optional[str] = None
130
+ ) -> None:
131
+ return await self.sync_to_trio(sync_function=self._set_permission_impl)(
132
+ permission=permission,
133
+ setting=setting,
134
+ origin=origin,
135
+ embedded_origin=embedded_origin,
136
+ browser_context_id=browser_context_id
137
+ )
138
+
139
+ async def set_window_bounds(self, window_id: int, bounds: Dict[str, Any]) -> None:
140
+ return await self.sync_to_trio(sync_function=self._set_window_bounds_impl)(window_id=window_id, bounds=bounds)
@@ -0,0 +1,79 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List,
8
+ Optional,
9
+ Tuple
10
+ )
11
+ from osn_selenium.executors.unified.cdp.cache_storage import (
12
+ UnifiedCacheStorageCDPExecutor
13
+ )
14
+ from osn_selenium.abstract.executors.cdp.cache_storage import (
15
+ AbstractCacheStorageCDPExecutor
16
+ )
17
+
18
+
19
+ __all__ = ["CacheStorageCDPExecutor"]
20
+
21
+
22
+ class CacheStorageCDPExecutor(
23
+ UnifiedCacheStorageCDPExecutor,
24
+ TrioThreadMixin,
25
+ AbstractCacheStorageCDPExecutor
26
+ ):
27
+ def __init__(
28
+ self,
29
+ execute_function: Callable[[str, Dict[str, Any]], Any],
30
+ lock: trio.Lock,
31
+ limiter: trio.CapacityLimiter
32
+ ):
33
+ UnifiedCacheStorageCDPExecutor.__init__(self, execute_function=execute_function)
34
+
35
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
36
+
37
+ async def delete_cache(self, cache_id: str) -> None:
38
+ return await self.sync_to_trio(sync_function=self._delete_cache_impl)(cache_id=cache_id)
39
+
40
+ async def delete_entry(self, cache_id: str, request: str) -> None:
41
+ return await self.sync_to_trio(sync_function=self._delete_entry_impl)(cache_id=cache_id, request=request)
42
+
43
+ async def request_cache_names(
44
+ self,
45
+ security_origin: Optional[str] = None,
46
+ storage_key: Optional[str] = None,
47
+ storage_bucket: Optional[Dict[str, Any]] = None
48
+ ) -> List[Dict[str, Any]]:
49
+ return await self.sync_to_trio(sync_function=self._request_cache_names_impl)(
50
+ security_origin=security_origin,
51
+ storage_key=storage_key,
52
+ storage_bucket=storage_bucket
53
+ )
54
+
55
+ async def request_cached_response(
56
+ self,
57
+ cache_id: str,
58
+ request_url: str,
59
+ request_headers: List[Dict[str, Any]]
60
+ ) -> Dict[str, Any]:
61
+ return await self.sync_to_trio(sync_function=self._request_cached_response_impl)(
62
+ cache_id=cache_id,
63
+ request_url=request_url,
64
+ request_headers=request_headers
65
+ )
66
+
67
+ async def request_entries(
68
+ self,
69
+ cache_id: str,
70
+ skip_count: Optional[int] = None,
71
+ page_size: Optional[int] = None,
72
+ path_filter: Optional[str] = None
73
+ ) -> Tuple[List[Dict[str, Any]], float]:
74
+ return await self.sync_to_trio(sync_function=self._request_entries_impl)(
75
+ cache_id=cache_id,
76
+ skip_count=skip_count,
77
+ page_size=page_size,
78
+ path_filter=path_filter
79
+ )
@@ -0,0 +1,47 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ Optional
8
+ )
9
+ from osn_selenium.executors.unified.cdp.cast import (
10
+ UnifiedCastCDPExecutor
11
+ )
12
+ from osn_selenium.abstract.executors.cdp.cast import (
13
+ AbstractCastCDPExecutor
14
+ )
15
+
16
+
17
+ __all__ = ["CastCDPExecutor"]
18
+
19
+
20
+ class CastCDPExecutor(UnifiedCastCDPExecutor, TrioThreadMixin, AbstractCastCDPExecutor):
21
+ def __init__(
22
+ self,
23
+ execute_function: Callable[[str, Dict[str, Any]], Any],
24
+ lock: trio.Lock,
25
+ limiter: trio.CapacityLimiter
26
+ ):
27
+ UnifiedCastCDPExecutor.__init__(self, execute_function=execute_function)
28
+
29
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
30
+
31
+ async def disable(self) -> None:
32
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
33
+
34
+ async def enable(self, presentation_url: Optional[str] = None) -> None:
35
+ return await self.sync_to_trio(sync_function=self._enable_impl)(presentation_url=presentation_url)
36
+
37
+ async def set_sink_to_use(self, sink_name: str) -> None:
38
+ return await self.sync_to_trio(sync_function=self._set_sink_to_use_impl)(sink_name=sink_name)
39
+
40
+ async def start_desktop_mirroring(self, sink_name: str) -> None:
41
+ return await self.sync_to_trio(sync_function=self._start_desktop_mirroring_impl)(sink_name=sink_name)
42
+
43
+ async def start_tab_mirroring(self, sink_name: str) -> None:
44
+ return await self.sync_to_trio(sync_function=self._start_tab_mirroring_impl)(sink_name=sink_name)
45
+
46
+ async def stop_casting(self, sink_name: str) -> None:
47
+ return await self.sync_to_trio(sync_function=self._stop_casting_impl)(sink_name=sink_name)