osn-selenium 0.0.0__py3-none-any.whl → 1.1.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 (635) hide show
  1. osn_selenium/_base_models.py +41 -0
  2. osn_selenium/_cdp_import.py +253 -0
  3. osn_selenium/_functions.py +84 -0
  4. osn_selenium/_typehints.py +19 -0
  5. osn_selenium/abstract/executors/cdp/__init__.py +435 -0
  6. osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
  7. osn_selenium/abstract/executors/cdp/animation.py +47 -0
  8. osn_selenium/abstract/executors/cdp/audits.py +39 -0
  9. osn_selenium/abstract/executors/cdp/autofill.py +34 -0
  10. osn_selenium/abstract/executors/cdp/background_service.py +22 -0
  11. osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
  12. osn_selenium/abstract/executors/cdp/browser.py +122 -0
  13. osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
  14. osn_selenium/abstract/executors/cdp/cast.py +31 -0
  15. osn_selenium/abstract/executors/cdp/console.py +18 -0
  16. osn_selenium/abstract/executors/cdp/css.py +197 -0
  17. osn_selenium/abstract/executors/cdp/debugger.py +198 -0
  18. osn_selenium/abstract/executors/cdp/device_access.py +22 -0
  19. osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
  20. osn_selenium/abstract/executors/cdp/dom.py +305 -0
  21. osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
  22. osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
  23. osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
  24. osn_selenium/abstract/executors/cdp/emulation.py +259 -0
  25. osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
  26. osn_selenium/abstract/executors/cdp/extensions.py +31 -0
  27. osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
  28. osn_selenium/abstract/executors/cdp/fetch.py +76 -0
  29. osn_selenium/abstract/executors/cdp/file_system.py +11 -0
  30. osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
  31. osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
  32. osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
  33. osn_selenium/abstract/executors/cdp/input.py +158 -0
  34. osn_selenium/abstract/executors/cdp/inspector.py +14 -0
  35. osn_selenium/abstract/executors/cdp/io.py +24 -0
  36. osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
  37. osn_selenium/abstract/executors/cdp/log.py +27 -0
  38. osn_selenium/abstract/executors/cdp/media.py +14 -0
  39. osn_selenium/abstract/executors/cdp/memory.py +61 -0
  40. osn_selenium/abstract/executors/cdp/network.py +252 -0
  41. osn_selenium/abstract/executors/cdp/overlay.py +166 -0
  42. osn_selenium/abstract/executors/cdp/page.py +347 -0
  43. osn_selenium/abstract/executors/cdp/performance.py +28 -0
  44. osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
  45. osn_selenium/abstract/executors/cdp/preload.py +14 -0
  46. osn_selenium/abstract/executors/cdp/profiler.py +54 -0
  47. osn_selenium/abstract/executors/cdp/pwa.py +46 -0
  48. osn_selenium/abstract/executors/cdp/runtime.py +176 -0
  49. osn_selenium/abstract/executors/cdp/schema.py +11 -0
  50. osn_selenium/abstract/executors/cdp/security.py +26 -0
  51. osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
  52. osn_selenium/abstract/executors/cdp/storage.py +175 -0
  53. osn_selenium/abstract/executors/cdp/system_info.py +24 -0
  54. osn_selenium/abstract/executors/cdp/target.py +125 -0
  55. osn_selenium/abstract/executors/cdp/tethering.py +14 -0
  56. osn_selenium/abstract/executors/cdp/tracing.py +48 -0
  57. osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
  58. osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
  59. osn_selenium/abstract/executors/cdp.py +63 -0
  60. osn_selenium/abstract/executors/javascript.py +203 -0
  61. osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
  62. osn_selenium/abstract/instances/action_chains/base.py +25 -0
  63. osn_selenium/abstract/instances/action_chains/click.py +93 -0
  64. osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
  65. osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
  66. osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
  67. osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
  68. osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
  69. osn_selenium/abstract/instances/action_chains/move.py +60 -0
  70. osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
  71. osn_selenium/abstract/instances/action_chains/utils.py +44 -0
  72. osn_selenium/abstract/instances/alert.py +67 -0
  73. osn_selenium/abstract/instances/browser.py +76 -0
  74. osn_selenium/abstract/instances/browsing_context.py +310 -0
  75. osn_selenium/abstract/instances/dialog.py +107 -0
  76. osn_selenium/abstract/instances/fedcm.py +133 -0
  77. osn_selenium/abstract/instances/mobile.py +79 -0
  78. osn_selenium/abstract/instances/network.py +100 -0
  79. osn_selenium/abstract/instances/permissions.py +52 -0
  80. osn_selenium/abstract/instances/script.py +109 -0
  81. osn_selenium/abstract/instances/shadow_root.py +81 -0
  82. osn_selenium/abstract/instances/storage.py +98 -0
  83. osn_selenium/abstract/instances/switch_to.py +104 -0
  84. osn_selenium/abstract/instances/web_driver_wait.py +57 -0
  85. osn_selenium/abstract/instances/web_element.py +395 -0
  86. osn_selenium/abstract/instances/web_extension.py +70 -0
  87. osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
  88. osn_selenium/abstract/webdriver/blink/base.py +80 -0
  89. osn_selenium/abstract/webdriver/blink/casting.py +82 -0
  90. osn_selenium/abstract/webdriver/blink/features.py +51 -0
  91. osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
  92. osn_selenium/abstract/webdriver/blink/logging.py +40 -0
  93. osn_selenium/abstract/webdriver/blink/network.py +45 -0
  94. osn_selenium/abstract/webdriver/blink/settings.py +68 -0
  95. osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
  96. osn_selenium/abstract/webdriver/chrome/base.py +36 -0
  97. osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
  98. osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
  99. osn_selenium/abstract/webdriver/core/__init__.py +16 -0
  100. osn_selenium/abstract/webdriver/core/actions.py +58 -0
  101. osn_selenium/abstract/webdriver/core/auth.py +145 -0
  102. osn_selenium/abstract/webdriver/core/base.py +298 -0
  103. osn_selenium/abstract/webdriver/core/capture.py +84 -0
  104. osn_selenium/abstract/webdriver/core/components.py +82 -0
  105. osn_selenium/abstract/webdriver/core/devtools.py +69 -0
  106. osn_selenium/abstract/webdriver/core/element.py +55 -0
  107. osn_selenium/abstract/webdriver/core/file.py +82 -0
  108. osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
  109. osn_selenium/abstract/webdriver/core/navigation.py +65 -0
  110. osn_selenium/abstract/webdriver/core/script.py +88 -0
  111. osn_selenium/abstract/webdriver/core/settings.py +43 -0
  112. osn_selenium/abstract/webdriver/core/storage.py +81 -0
  113. osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
  114. osn_selenium/abstract/webdriver/core/window.py +237 -0
  115. osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
  116. osn_selenium/abstract/webdriver/edge/base.py +36 -0
  117. osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
  118. osn_selenium/abstract/webdriver/edge/settings.py +110 -0
  119. osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
  120. osn_selenium/abstract/webdriver/yandex/base.py +18 -0
  121. osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
  122. osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
  123. osn_selenium/base_mixin.py +122 -0
  124. osn_selenium/browsers_handler/__init__.py +47 -17
  125. osn_selenium/browsers_handler/_linux.py +226 -0
  126. osn_selenium/browsers_handler/_windows.py +21 -14
  127. osn_selenium/browsers_handler/{types.py → models.py} +5 -2
  128. osn_selenium/dev_tools/_decorators.py +149 -0
  129. osn_selenium/dev_tools/_exception_helpers.py +116 -0
  130. osn_selenium/dev_tools/_functions.py +174 -0
  131. osn_selenium/dev_tools/_system_utils.py +35 -0
  132. osn_selenium/dev_tools/_typehints.py +35 -0
  133. osn_selenium/dev_tools/_validators.py +227 -0
  134. osn_selenium/dev_tools/_wrappers.py +92 -0
  135. osn_selenium/dev_tools/domains/__init__.py +7 -40
  136. osn_selenium/dev_tools/domains/abstract.py +98 -254
  137. osn_selenium/dev_tools/domains/fetch.py +229 -906
  138. osn_selenium/dev_tools/domains_default/fetch.py +40 -28
  139. osn_selenium/dev_tools/filters.py +40 -0
  140. osn_selenium/dev_tools/logger/main.py +214 -0
  141. osn_selenium/dev_tools/logger/models.py +232 -0
  142. osn_selenium/dev_tools/logger/target.py +278 -0
  143. osn_selenium/dev_tools/manager/__init__.py +16 -0
  144. osn_selenium/dev_tools/manager/base.py +124 -0
  145. osn_selenium/dev_tools/manager/lifecycle.py +236 -0
  146. osn_selenium/dev_tools/manager/logging.py +153 -0
  147. osn_selenium/dev_tools/manager/settings.py +89 -0
  148. osn_selenium/dev_tools/manager/targets.py +175 -0
  149. osn_selenium/dev_tools/models.py +49 -0
  150. osn_selenium/dev_tools/settings.py +139 -0
  151. osn_selenium/dev_tools/target/__init__.py +16 -0
  152. osn_selenium/dev_tools/target/base.py +427 -0
  153. osn_selenium/dev_tools/target/detach.py +54 -0
  154. osn_selenium/dev_tools/target/discovery.py +112 -0
  155. osn_selenium/dev_tools/target/events.py +120 -0
  156. osn_selenium/dev_tools/target/fingerprint.py +126 -0
  157. osn_selenium/dev_tools/target/lifecycle.py +184 -0
  158. osn_selenium/dev_tools/target/logging.py +163 -0
  159. osn_selenium/exceptions/__init__.py +1 -0
  160. osn_selenium/exceptions/base.py +9 -0
  161. osn_selenium/exceptions/configuration.py +84 -0
  162. osn_selenium/exceptions/dependencies.py +60 -0
  163. osn_selenium/exceptions/devtools.py +114 -0
  164. osn_selenium/exceptions/flags.py +45 -0
  165. osn_selenium/exceptions/instance.py +92 -0
  166. osn_selenium/exceptions/javascript.py +31 -0
  167. osn_selenium/exceptions/logic.py +31 -0
  168. osn_selenium/exceptions/path.py +77 -0
  169. osn_selenium/exceptions/platform.py +33 -0
  170. osn_selenium/exceptions/protocol.py +86 -0
  171. osn_selenium/exceptions/webdriver.py +44 -0
  172. osn_selenium/exceptions/window.py +63 -0
  173. osn_selenium/executors/__init__.py +1 -0
  174. osn_selenium/executors/sync/__init__.py +1 -0
  175. osn_selenium/executors/sync/cdp/__init__.py +550 -0
  176. osn_selenium/executors/sync/cdp/accessibility.py +74 -0
  177. osn_selenium/executors/sync/cdp/animation.py +50 -0
  178. osn_selenium/executors/sync/cdp/audits.py +48 -0
  179. osn_selenium/executors/sync/cdp/autofill.py +39 -0
  180. osn_selenium/executors/sync/cdp/background_service.py +30 -0
  181. osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
  182. osn_selenium/executors/sync/cdp/browser.py +131 -0
  183. osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
  184. osn_selenium/executors/sync/cdp/cast.py +38 -0
  185. osn_selenium/executors/sync/cdp/console.py +24 -0
  186. osn_selenium/executors/sync/cdp/css.py +187 -0
  187. osn_selenium/executors/sync/cdp/debugger.py +206 -0
  188. osn_selenium/executors/sync/cdp/device_access.py +27 -0
  189. osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
  190. osn_selenium/executors/sync/cdp/dom.py +310 -0
  191. osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
  192. osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
  193. osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
  194. osn_selenium/executors/sync/cdp/emulation.py +270 -0
  195. osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
  196. osn_selenium/executors/sync/cdp/extensions.py +39 -0
  197. osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
  198. osn_selenium/executors/sync/cdp/fetch.py +96 -0
  199. osn_selenium/executors/sync/cdp/file_system.py +18 -0
  200. osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
  201. osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
  202. osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
  203. osn_selenium/executors/sync/cdp/input.py +233 -0
  204. osn_selenium/executors/sync/cdp/inspector.py +21 -0
  205. osn_selenium/executors/sync/cdp/io.py +33 -0
  206. osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
  207. osn_selenium/executors/sync/cdp/log.py +35 -0
  208. osn_selenium/executors/sync/cdp/media.py +21 -0
  209. osn_selenium/executors/sync/cdp/memory.py +62 -0
  210. osn_selenium/executors/sync/cdp/network.py +287 -0
  211. osn_selenium/executors/sync/cdp/overlay.py +174 -0
  212. osn_selenium/executors/sync/cdp/page.py +365 -0
  213. osn_selenium/executors/sync/cdp/performance.py +33 -0
  214. osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
  215. osn_selenium/executors/sync/cdp/preload.py +21 -0
  216. osn_selenium/executors/sync/cdp/profiler.py +58 -0
  217. osn_selenium/executors/sync/cdp/pwa.py +55 -0
  218. osn_selenium/executors/sync/cdp/runtime.py +221 -0
  219. osn_selenium/executors/sync/cdp/schema.py +23 -0
  220. osn_selenium/executors/sync/cdp/security.py +30 -0
  221. osn_selenium/executors/sync/cdp/service_worker.py +56 -0
  222. osn_selenium/executors/sync/cdp/storage.py +151 -0
  223. osn_selenium/executors/sync/cdp/system_info.py +30 -0
  224. osn_selenium/executors/sync/cdp/target.py +147 -0
  225. osn_selenium/executors/sync/cdp/tethering.py +21 -0
  226. osn_selenium/executors/sync/cdp/tracing.py +62 -0
  227. osn_selenium/executors/sync/cdp/web_audio.py +24 -0
  228. osn_selenium/executors/sync/cdp/web_authn.py +82 -0
  229. osn_selenium/executors/sync/cdp.py +100 -0
  230. osn_selenium/executors/sync/javascript.py +79 -0
  231. osn_selenium/executors/trio_threads/__init__.py +1 -0
  232. osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
  233. osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
  234. osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
  235. osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
  236. osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
  237. osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
  238. osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
  239. osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
  240. osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
  241. osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
  242. osn_selenium/executors/trio_threads/cdp/console.py +33 -0
  243. osn_selenium/executors/trio_threads/cdp/css.py +196 -0
  244. osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
  245. osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
  246. osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
  247. osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
  248. osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
  249. osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
  250. osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
  251. osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
  252. osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
  253. osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
  254. osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
  255. osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
  256. osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
  257. osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
  258. osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
  259. osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
  260. osn_selenium/executors/trio_threads/cdp/input.py +242 -0
  261. osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
  262. osn_selenium/executors/trio_threads/cdp/io.py +42 -0
  263. osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
  264. osn_selenium/executors/trio_threads/cdp/log.py +44 -0
  265. osn_selenium/executors/trio_threads/cdp/media.py +30 -0
  266. osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
  267. osn_selenium/executors/trio_threads/cdp/network.py +296 -0
  268. osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
  269. osn_selenium/executors/trio_threads/cdp/page.py +374 -0
  270. osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
  271. osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
  272. osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
  273. osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
  274. osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
  275. osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
  276. osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
  277. osn_selenium/executors/trio_threads/cdp/security.py +43 -0
  278. osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
  279. osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
  280. osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
  281. osn_selenium/executors/trio_threads/cdp/target.py +156 -0
  282. osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
  283. osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
  284. osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
  285. osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
  286. osn_selenium/executors/trio_threads/cdp.py +104 -0
  287. osn_selenium/executors/trio_threads/javascript.py +90 -0
  288. osn_selenium/executors/unified/__init__.py +1 -0
  289. osn_selenium/executors/unified/cdp/__init__.py +1 -0
  290. osn_selenium/executors/unified/cdp/accessibility.py +81 -0
  291. osn_selenium/executors/unified/cdp/animation.py +50 -0
  292. osn_selenium/executors/unified/cdp/audits.py +45 -0
  293. osn_selenium/executors/unified/cdp/autofill.py +41 -0
  294. osn_selenium/executors/unified/cdp/background_service.py +24 -0
  295. osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
  296. osn_selenium/executors/unified/cdp/browser.py +143 -0
  297. osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
  298. osn_selenium/executors/unified/cdp/cast.py +32 -0
  299. osn_selenium/executors/unified/cdp/console.py +18 -0
  300. osn_selenium/executors/unified/cdp/css.py +237 -0
  301. osn_selenium/executors/unified/cdp/debugger.py +243 -0
  302. osn_selenium/executors/unified/cdp/device_access.py +21 -0
  303. osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
  304. osn_selenium/executors/unified/cdp/dom.py +380 -0
  305. osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
  306. osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
  307. osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
  308. osn_selenium/executors/unified/cdp/emulation.py +312 -0
  309. osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
  310. osn_selenium/executors/unified/cdp/extensions.py +45 -0
  311. osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
  312. osn_selenium/executors/unified/cdp/fetch.py +111 -0
  313. osn_selenium/executors/unified/cdp/file_system.py +15 -0
  314. osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
  315. osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
  316. osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
  317. osn_selenium/executors/unified/cdp/input.py +254 -0
  318. osn_selenium/executors/unified/cdp/inspector.py +15 -0
  319. osn_selenium/executors/unified/cdp/io.py +29 -0
  320. osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
  321. osn_selenium/executors/unified/cdp/log.py +29 -0
  322. osn_selenium/executors/unified/cdp/media.py +15 -0
  323. osn_selenium/executors/unified/cdp/memory.py +59 -0
  324. osn_selenium/executors/unified/cdp/network.py +323 -0
  325. osn_selenium/executors/unified/cdp/overlay.py +209 -0
  326. osn_selenium/executors/unified/cdp/page.py +410 -0
  327. osn_selenium/executors/unified/cdp/performance.py +27 -0
  328. osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
  329. osn_selenium/executors/unified/cdp/preload.py +15 -0
  330. osn_selenium/executors/unified/cdp/profiler.py +55 -0
  331. osn_selenium/executors/unified/cdp/pwa.py +55 -0
  332. osn_selenium/executors/unified/cdp/runtime.py +245 -0
  333. osn_selenium/executors/unified/cdp/schema.py +17 -0
  334. osn_selenium/executors/unified/cdp/security.py +27 -0
  335. osn_selenium/executors/unified/cdp/service_worker.py +62 -0
  336. osn_selenium/executors/unified/cdp/storage.py +178 -0
  337. osn_selenium/executors/unified/cdp/system_info.py +24 -0
  338. osn_selenium/executors/unified/cdp/target.py +165 -0
  339. osn_selenium/executors/unified/cdp/tethering.py +15 -0
  340. osn_selenium/executors/unified/cdp/tracing.py +62 -0
  341. osn_selenium/executors/unified/cdp/web_audio.py +18 -0
  342. osn_selenium/executors/unified/cdp/web_authn.py +103 -0
  343. osn_selenium/executors/unified/javascript.py +104 -0
  344. osn_selenium/flags/__init__.py +1 -0
  345. osn_selenium/flags/_functions.py +45 -0
  346. osn_selenium/flags/_typehints.py +34 -0
  347. osn_selenium/flags/_validators.py +101 -0
  348. osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +159 -245
  349. osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +130 -374
  350. osn_selenium/flags/chrome.py +259 -0
  351. osn_selenium/flags/edge.py +259 -0
  352. osn_selenium/flags/models/__init__.py +1 -0
  353. osn_selenium/flags/models/base.py +130 -0
  354. osn_selenium/flags/models/blink.py +263 -0
  355. osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
  356. osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
  357. osn_selenium/flags/models/values.py +44 -0
  358. osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
  359. osn_selenium/flags/yandex.py +259 -0
  360. osn_selenium/instances/__init__.py +1 -0
  361. osn_selenium/instances/_functions.py +242 -0
  362. osn_selenium/instances/_typehints.py +148 -0
  363. osn_selenium/instances/_utils.py +143 -0
  364. osn_selenium/instances/convert.py +287 -0
  365. osn_selenium/instances/protocols.py +105 -0
  366. osn_selenium/instances/sync/__init__.py +1 -0
  367. osn_selenium/instances/sync/action_chains/__init__.py +32 -0
  368. osn_selenium/instances/sync/action_chains/base.py +74 -0
  369. osn_selenium/instances/sync/action_chains/click.py +61 -0
  370. osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
  371. osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
  372. osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
  373. osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
  374. osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
  375. osn_selenium/instances/sync/action_chains/move.py +46 -0
  376. osn_selenium/instances/sync/action_chains/scroll.py +43 -0
  377. osn_selenium/instances/sync/action_chains/utils.py +30 -0
  378. osn_selenium/instances/sync/alert.py +69 -0
  379. osn_selenium/instances/sync/browser.py +72 -0
  380. osn_selenium/instances/sync/browsing_context.py +193 -0
  381. osn_selenium/instances/sync/dialog.py +81 -0
  382. osn_selenium/instances/sync/fedcm.py +92 -0
  383. osn_selenium/instances/sync/mobile.py +75 -0
  384. osn_selenium/instances/sync/network.py +90 -0
  385. osn_selenium/instances/sync/permissions.py +80 -0
  386. osn_selenium/instances/sync/script.py +77 -0
  387. osn_selenium/instances/sync/shadow_root.py +113 -0
  388. osn_selenium/instances/sync/storage.py +91 -0
  389. osn_selenium/instances/sync/switch_to.py +92 -0
  390. osn_selenium/instances/sync/web_driver_wait.py +83 -0
  391. osn_selenium/instances/sync/web_element.py +179 -0
  392. osn_selenium/instances/sync/web_extension.py +77 -0
  393. osn_selenium/instances/trio_threads/__init__.py +1 -0
  394. osn_selenium/instances/trio_threads/action_chains/__init__.py +32 -0
  395. osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
  396. osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
  397. osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
  398. osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
  399. osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
  400. osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
  401. osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
  402. osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
  403. osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
  404. osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
  405. osn_selenium/instances/trio_threads/alert.py +87 -0
  406. osn_selenium/instances/trio_threads/browser.py +90 -0
  407. osn_selenium/instances/trio_threads/browsing_context.py +216 -0
  408. osn_selenium/instances/trio_threads/dialog.py +99 -0
  409. osn_selenium/instances/trio_threads/fedcm.py +110 -0
  410. osn_selenium/instances/trio_threads/mobile.py +93 -0
  411. osn_selenium/instances/trio_threads/network.py +108 -0
  412. osn_selenium/instances/trio_threads/permissions.py +102 -0
  413. osn_selenium/instances/trio_threads/script.py +95 -0
  414. osn_selenium/instances/trio_threads/shadow_root.py +154 -0
  415. osn_selenium/instances/trio_threads/storage.py +109 -0
  416. osn_selenium/instances/trio_threads/switch_to.py +124 -0
  417. osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
  418. osn_selenium/instances/trio_threads/web_element.py +217 -0
  419. osn_selenium/instances/trio_threads/web_extension.py +99 -0
  420. osn_selenium/instances/unified/__init__.py +1 -0
  421. osn_selenium/instances/unified/action_chains/__init__.py +22 -0
  422. osn_selenium/instances/unified/action_chains/base.py +31 -0
  423. osn_selenium/instances/unified/action_chains/click.py +27 -0
  424. osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
  425. osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
  426. osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
  427. osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
  428. osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
  429. osn_selenium/instances/unified/action_chains/move.py +24 -0
  430. osn_selenium/instances/unified/action_chains/scroll.py +21 -0
  431. osn_selenium/instances/unified/action_chains/utils.py +19 -0
  432. osn_selenium/instances/unified/alert.py +29 -0
  433. osn_selenium/instances/unified/browser.py +33 -0
  434. osn_selenium/instances/unified/browsing_context.py +151 -0
  435. osn_selenium/instances/unified/dialog.py +42 -0
  436. osn_selenium/instances/unified/fedcm.py +48 -0
  437. osn_selenium/instances/unified/mobile.py +36 -0
  438. osn_selenium/instances/unified/network.py +50 -0
  439. osn_selenium/instances/unified/permissions.py +43 -0
  440. osn_selenium/instances/unified/script.py +38 -0
  441. osn_selenium/instances/unified/shadow_root.py +46 -0
  442. osn_selenium/instances/unified/storage.py +48 -0
  443. osn_selenium/instances/unified/switch_to.py +49 -0
  444. osn_selenium/instances/unified/web_driver_wait.py +45 -0
  445. osn_selenium/instances/unified/web_element.py +145 -0
  446. osn_selenium/instances/unified/web_extension.py +38 -0
  447. osn_selenium/javascript/__init__.py +1 -0
  448. osn_selenium/javascript/_functions.py +63 -0
  449. osn_selenium/javascript/fingerprint/__init__.py +120 -0
  450. osn_selenium/javascript/fingerprint/_decorators.py +41 -0
  451. osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
  452. osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
  453. osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
  454. osn_selenium/javascript/fingerprint/_functions.py +35 -0
  455. osn_selenium/javascript/fingerprint/_typehints.py +27 -0
  456. osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
  457. osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
  458. osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
  459. osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
  460. osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
  461. osn_selenium/javascript/fingerprint/registry/models.py +41 -0
  462. osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
  463. osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
  464. osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
  465. osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
  466. osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
  467. osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
  468. osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
  469. osn_selenium/javascript/functions.py +44 -0
  470. osn_selenium/javascript/models.py +35 -0
  471. osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
  472. osn_selenium/models.py +94 -0
  473. osn_selenium/trio_threads_mixin.py +159 -0
  474. osn_selenium/webdrivers/_args_helpers.py +181 -0
  475. osn_selenium/webdrivers/_bridges.py +57 -0
  476. osn_selenium/webdrivers/_decorators.py +83 -0
  477. osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
  478. osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
  479. osn_selenium/webdrivers/_executable_tables/models.py +19 -0
  480. osn_selenium/webdrivers/_typehints.py +10 -0
  481. osn_selenium/webdrivers/protocols.py +50 -0
  482. osn_selenium/webdrivers/sync/__init__.py +1 -0
  483. osn_selenium/webdrivers/sync/blink/__init__.py +124 -0
  484. osn_selenium/webdrivers/sync/blink/base.py +140 -0
  485. osn_selenium/webdrivers/sync/blink/casting.py +34 -0
  486. osn_selenium/webdrivers/sync/blink/features.py +28 -0
  487. osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
  488. osn_selenium/webdrivers/sync/blink/logging.py +25 -0
  489. osn_selenium/webdrivers/sync/blink/network.py +28 -0
  490. osn_selenium/webdrivers/sync/blink/settings.py +63 -0
  491. osn_selenium/webdrivers/sync/chrome/__init__.py +102 -0
  492. osn_selenium/webdrivers/sync/chrome/base.py +118 -0
  493. osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
  494. osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
  495. osn_selenium/webdrivers/sync/core/__init__.py +100 -0
  496. osn_selenium/webdrivers/sync/core/actions.py +59 -0
  497. osn_selenium/webdrivers/sync/core/auth.py +77 -0
  498. osn_selenium/webdrivers/sync/core/base.py +175 -0
  499. osn_selenium/webdrivers/sync/core/capture.py +37 -0
  500. osn_selenium/webdrivers/sync/core/comonents.py +57 -0
  501. osn_selenium/webdrivers/sync/core/devtools.py +47 -0
  502. osn_selenium/webdrivers/sync/core/element.py +42 -0
  503. osn_selenium/webdrivers/sync/core/file.py +40 -0
  504. osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
  505. osn_selenium/webdrivers/sync/core/navigation.py +36 -0
  506. osn_selenium/webdrivers/sync/core/script.py +53 -0
  507. osn_selenium/webdrivers/sync/core/settings.py +35 -0
  508. osn_selenium/webdrivers/sync/core/storage.py +48 -0
  509. osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
  510. osn_selenium/webdrivers/sync/core/window.py +99 -0
  511. osn_selenium/webdrivers/sync/edge/__init__.py +102 -0
  512. osn_selenium/webdrivers/sync/edge/base.py +114 -0
  513. osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
  514. osn_selenium/webdrivers/sync/edge/settings.py +58 -0
  515. osn_selenium/webdrivers/sync/yandex/__init__.py +102 -0
  516. osn_selenium/webdrivers/sync/yandex/base.py +111 -0
  517. osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
  518. osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
  519. osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
  520. osn_selenium/webdrivers/trio_threads/blink/__init__.py +134 -0
  521. osn_selenium/webdrivers/trio_threads/blink/base.py +143 -0
  522. osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
  523. osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
  524. osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
  525. osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
  526. osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
  527. osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
  528. osn_selenium/webdrivers/trio_threads/chrome/__init__.py +114 -0
  529. osn_selenium/webdrivers/trio_threads/chrome/base.py +119 -0
  530. osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
  531. osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
  532. osn_selenium/webdrivers/trio_threads/core/__init__.py +115 -0
  533. osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
  534. osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
  535. osn_selenium/webdrivers/trio_threads/core/base.py +199 -0
  536. osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
  537. osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
  538. osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
  539. osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
  540. osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
  541. osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
  542. osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
  543. osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
  544. osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
  545. osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
  546. osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
  547. osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
  548. osn_selenium/webdrivers/trio_threads/edge/__init__.py +114 -0
  549. osn_selenium/webdrivers/trio_threads/edge/base.py +115 -0
  550. osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
  551. osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
  552. osn_selenium/webdrivers/trio_threads/yandex/__init__.py +114 -0
  553. osn_selenium/webdrivers/trio_threads/yandex/base.py +112 -0
  554. osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
  555. osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
  556. osn_selenium/webdrivers/unified/__init__.py +1 -0
  557. osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
  558. osn_selenium/webdrivers/unified/blink/base.py +135 -0
  559. osn_selenium/webdrivers/unified/blink/casting.py +30 -0
  560. osn_selenium/webdrivers/unified/blink/features.py +22 -0
  561. osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
  562. osn_selenium/webdrivers/unified/blink/logging.py +18 -0
  563. osn_selenium/webdrivers/unified/blink/network.py +22 -0
  564. osn_selenium/webdrivers/unified/blink/settings.py +86 -0
  565. osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
  566. osn_selenium/webdrivers/unified/chrome/base.py +58 -0
  567. osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
  568. osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
  569. osn_selenium/webdrivers/unified/core/__init__.py +1 -0
  570. osn_selenium/webdrivers/unified/core/actions.py +43 -0
  571. osn_selenium/webdrivers/unified/core/auth.py +70 -0
  572. osn_selenium/webdrivers/unified/core/base.py +139 -0
  573. osn_selenium/webdrivers/unified/core/capture.py +32 -0
  574. osn_selenium/webdrivers/unified/core/components.py +32 -0
  575. osn_selenium/webdrivers/unified/core/devtools.py +35 -0
  576. osn_selenium/webdrivers/unified/core/element.py +24 -0
  577. osn_selenium/webdrivers/unified/core/file.py +35 -0
  578. osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
  579. osn_selenium/webdrivers/unified/core/navigation.py +31 -0
  580. osn_selenium/webdrivers/unified/core/script.py +32 -0
  581. osn_selenium/webdrivers/unified/core/settings.py +44 -0
  582. osn_selenium/webdrivers/unified/core/storage.py +37 -0
  583. osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
  584. osn_selenium/webdrivers/unified/core/window.py +135 -0
  585. osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
  586. osn_selenium/webdrivers/unified/edge/base.py +56 -0
  587. osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
  588. osn_selenium/webdrivers/unified/edge/settings.py +48 -0
  589. osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
  590. osn_selenium/webdrivers/unified/yandex/base.py +58 -0
  591. osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
  592. osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
  593. osn_selenium-1.1.0.dist-info/METADATA +252 -0
  594. osn_selenium-1.1.0.dist-info/RECORD +615 -0
  595. {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/WHEEL +1 -1
  596. osn_selenium/captcha_workers/__init__.py +0 -26
  597. osn_selenium/dev_tools/_types.py +0 -22
  598. osn_selenium/dev_tools/errors.py +0 -89
  599. osn_selenium/dev_tools/logger.py +0 -558
  600. osn_selenium/dev_tools/manager.py +0 -1551
  601. osn_selenium/dev_tools/utils.py +0 -509
  602. osn_selenium/errors.py +0 -16
  603. osn_selenium/types.py +0 -118
  604. osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
  605. osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
  606. osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
  607. osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
  608. osn_selenium/webdrivers/Blink/protocols.py +0 -330
  609. osn_selenium/webdrivers/Blink/webdriver.py +0 -637
  610. osn_selenium/webdrivers/Chrome/protocols.py +0 -228
  611. osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
  612. osn_selenium/webdrivers/Edge/protocols.py +0 -228
  613. osn_selenium/webdrivers/Edge/webdriver.py +0 -394
  614. osn_selenium/webdrivers/Yandex/protocols.py +0 -211
  615. osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
  616. osn_selenium/webdrivers/_functions.py +0 -504
  617. osn_selenium/webdrivers/types.py +0 -390
  618. osn_selenium-0.0.0.dist-info/METADATA +0 -710
  619. osn_selenium-0.0.0.dist-info/RECORD +0 -57
  620. /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
  621. /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
  622. /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
  623. /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
  624. /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
  625. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
  626. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
  627. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
  628. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
  629. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
  630. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
  631. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
  632. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
  633. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
  634. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
  635. {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,230 @@
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.runtime import (
12
+ UnifiedRuntimeCDPExecutor
13
+ )
14
+ from osn_selenium.abstract.executors.cdp.runtime import (
15
+ AbstractRuntimeCDPExecutor
16
+ )
17
+
18
+
19
+ __all__ = ["RuntimeCDPExecutor"]
20
+
21
+
22
+ class RuntimeCDPExecutor(UnifiedRuntimeCDPExecutor, TrioThreadMixin, AbstractRuntimeCDPExecutor):
23
+ def __init__(
24
+ self,
25
+ execute_function: Callable[[str, Dict[str, Any]], Any],
26
+ lock: trio.Lock,
27
+ limiter: trio.CapacityLimiter
28
+ ):
29
+ UnifiedRuntimeCDPExecutor.__init__(self, execute_function=execute_function)
30
+
31
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
32
+
33
+ async def add_binding(
34
+ self,
35
+ name: str,
36
+ execution_context_id: Optional[int] = None,
37
+ execution_context_name: Optional[str] = None
38
+ ) -> None:
39
+ return await self.sync_to_trio(sync_function=self._add_binding_impl)(
40
+ name=name,
41
+ execution_context_id=execution_context_id,
42
+ execution_context_name=execution_context_name
43
+ )
44
+
45
+ async def await_promise(
46
+ self,
47
+ promise_object_id: str,
48
+ return_by_value: Optional[bool] = None,
49
+ generate_preview: Optional[bool] = None
50
+ ) -> Tuple[Dict[str, Any], Optional[Dict[str, Any]]]:
51
+ return await self.sync_to_trio(sync_function=self._await_promise_impl)(
52
+ promise_object_id=promise_object_id,
53
+ return_by_value=return_by_value,
54
+ generate_preview=generate_preview
55
+ )
56
+
57
+ async def call_function_on(
58
+ self,
59
+ function_declaration: str,
60
+ object_id: Optional[str] = None,
61
+ arguments: Optional[List[Dict[str, Any]]] = None,
62
+ silent: Optional[bool] = None,
63
+ return_by_value: Optional[bool] = None,
64
+ generate_preview: Optional[bool] = None,
65
+ user_gesture: Optional[bool] = None,
66
+ await_promise: Optional[bool] = None,
67
+ execution_context_id: Optional[int] = None,
68
+ object_group: Optional[str] = None,
69
+ throw_on_side_effect: Optional[bool] = None,
70
+ unique_context_id: Optional[str] = None,
71
+ serialization_options: Optional[Dict[str, Any]] = None
72
+ ) -> Tuple[Dict[str, Any], Optional[Dict[str, Any]]]:
73
+ return await self.sync_to_trio(sync_function=self._call_function_on_impl)(
74
+ function_declaration=function_declaration,
75
+ object_id=object_id,
76
+ arguments=arguments,
77
+ silent=silent,
78
+ return_by_value=return_by_value,
79
+ generate_preview=generate_preview,
80
+ user_gesture=user_gesture,
81
+ await_promise=await_promise,
82
+ execution_context_id=execution_context_id,
83
+ object_group=object_group,
84
+ throw_on_side_effect=throw_on_side_effect,
85
+ unique_context_id=unique_context_id,
86
+ serialization_options=serialization_options
87
+ )
88
+
89
+ async def compile_script(
90
+ self,
91
+ expression: str,
92
+ source_url: str,
93
+ persist_script: bool,
94
+ execution_context_id: Optional[int] = None
95
+ ) -> Tuple[Optional[str], Optional[Dict[str, Any]]]:
96
+ return await self.sync_to_trio(sync_function=self._compile_script_impl)(
97
+ expression=expression,
98
+ source_url=source_url,
99
+ persist_script=persist_script,
100
+ execution_context_id=execution_context_id
101
+ )
102
+
103
+ async def disable(self) -> None:
104
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
105
+
106
+ async def discard_console_entries(self) -> None:
107
+ return await self.sync_to_trio(sync_function=self._discard_console_entries_impl)()
108
+
109
+ async def enable(self) -> None:
110
+ return await self.sync_to_trio(sync_function=self._enable_impl)()
111
+
112
+ async def evaluate(
113
+ self,
114
+ expression: str,
115
+ object_group: Optional[str] = None,
116
+ include_command_line_api: Optional[bool] = None,
117
+ silent: Optional[bool] = None,
118
+ context_id: Optional[int] = None,
119
+ return_by_value: Optional[bool] = None,
120
+ generate_preview: Optional[bool] = None,
121
+ user_gesture: Optional[bool] = None,
122
+ await_promise: Optional[bool] = None,
123
+ throw_on_side_effect: Optional[bool] = None,
124
+ timeout: Optional[float] = None,
125
+ disable_breaks: Optional[bool] = None,
126
+ repl_mode: Optional[bool] = None,
127
+ allow_unsafe_eval_blocked_by_csp: Optional[bool] = None,
128
+ unique_context_id: Optional[str] = None,
129
+ serialization_options: Optional[Dict[str, Any]] = None
130
+ ) -> Tuple[Dict[str, Any], Optional[Dict[str, Any]]]:
131
+ return await self.sync_to_trio(sync_function=self._evaluate_impl)(
132
+ expression=expression,
133
+ object_group=object_group,
134
+ include_command_line_api=include_command_line_api,
135
+ silent=silent,
136
+ context_id=context_id,
137
+ return_by_value=return_by_value,
138
+ generate_preview=generate_preview,
139
+ user_gesture=user_gesture,
140
+ await_promise=await_promise,
141
+ throw_on_side_effect=throw_on_side_effect,
142
+ timeout=timeout,
143
+ disable_breaks=disable_breaks,
144
+ repl_mode=repl_mode,
145
+ allow_unsafe_eval_blocked_by_csp=allow_unsafe_eval_blocked_by_csp,
146
+ unique_context_id=unique_context_id,
147
+ serialization_options=serialization_options
148
+ )
149
+
150
+ async def get_exception_details(self, error_object_id: str) -> Optional[Dict[str, Any]]:
151
+ return await self.sync_to_trio(sync_function=self._get_exception_details_impl)(error_object_id=error_object_id)
152
+
153
+ async def get_heap_usage(self) -> Tuple[float, float, float, float]:
154
+ return await self.sync_to_trio(sync_function=self._get_heap_usage_impl)()
155
+
156
+ async def get_isolate_id(self) -> str:
157
+ return await self.sync_to_trio(sync_function=self._get_isolate_id_impl)()
158
+
159
+ async def get_properties(
160
+ self,
161
+ object_id: str,
162
+ own_properties: Optional[bool] = None,
163
+ accessor_properties_only: Optional[bool] = None,
164
+ generate_preview: Optional[bool] = None,
165
+ non_indexed_properties_only: Optional[bool] = None
166
+ ) -> Tuple[
167
+ List[Dict[str, Any]],
168
+ Optional[List[Dict[str, Any]]],
169
+ Optional[List[Dict[str, Any]]],
170
+ Optional[Dict[str, Any]]
171
+ ]:
172
+ return await self.sync_to_trio(sync_function=self._get_properties_impl)(
173
+ object_id=object_id,
174
+ own_properties=own_properties,
175
+ accessor_properties_only=accessor_properties_only,
176
+ generate_preview=generate_preview,
177
+ non_indexed_properties_only=non_indexed_properties_only
178
+ )
179
+
180
+ async def global_lexical_scope_names(self, execution_context_id: Optional[int] = None) -> List[str]:
181
+ return await self.sync_to_trio(sync_function=self._global_lexical_scope_names_impl)(execution_context_id=execution_context_id)
182
+
183
+ async def query_objects(self, prototype_object_id: str, object_group: Optional[str] = None) -> Dict[str, Any]:
184
+ return await self.sync_to_trio(sync_function=self._query_objects_impl)(prototype_object_id=prototype_object_id, object_group=object_group)
185
+
186
+ async def release_object(self, object_id: str) -> None:
187
+ return await self.sync_to_trio(sync_function=self._release_object_impl)(object_id=object_id)
188
+
189
+ async def release_object_group(self, object_group: str) -> None:
190
+ return await self.sync_to_trio(sync_function=self._release_object_group_impl)(object_group=object_group)
191
+
192
+ async def remove_binding(self, name: str) -> None:
193
+ return await self.sync_to_trio(sync_function=self._remove_binding_impl)(name=name)
194
+
195
+ async def run_if_waiting_for_debugger(self) -> None:
196
+ return await self.sync_to_trio(sync_function=self._run_if_waiting_for_debugger_impl)()
197
+
198
+ async def run_script(
199
+ self,
200
+ script_id: str,
201
+ execution_context_id: Optional[int] = None,
202
+ object_group: Optional[str] = None,
203
+ silent: Optional[bool] = None,
204
+ include_command_line_api: Optional[bool] = None,
205
+ return_by_value: Optional[bool] = None,
206
+ generate_preview: Optional[bool] = None,
207
+ await_promise: Optional[bool] = None
208
+ ) -> Tuple[Dict[str, Any], Optional[Dict[str, Any]]]:
209
+ return await self.sync_to_trio(sync_function=self._run_script_impl)(
210
+ script_id=script_id,
211
+ execution_context_id=execution_context_id,
212
+ object_group=object_group,
213
+ silent=silent,
214
+ include_command_line_api=include_command_line_api,
215
+ return_by_value=return_by_value,
216
+ generate_preview=generate_preview,
217
+ await_promise=await_promise
218
+ )
219
+
220
+ async def set_async_call_stack_depth(self, max_depth: int) -> None:
221
+ return await self.sync_to_trio(sync_function=self._set_async_call_stack_depth_impl)(max_depth=max_depth)
222
+
223
+ async def set_custom_object_formatter_enabled(self, enabled: bool) -> None:
224
+ return await self.sync_to_trio(sync_function=self._set_custom_object_formatter_enabled_impl)(enabled=enabled)
225
+
226
+ async def set_max_call_stack_size_to_capture(self, size: int) -> None:
227
+ return await self.sync_to_trio(sync_function=self._set_max_call_stack_size_to_capture_impl)(size=size)
228
+
229
+ async def terminate_execution(self) -> None:
230
+ return await self.sync_to_trio(sync_function=self._terminate_execution_impl)()
@@ -0,0 +1,32 @@
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.schema import (
10
+ UnifiedSchemaCDPExecutor
11
+ )
12
+ from osn_selenium.abstract.executors.cdp.schema import (
13
+ AbstractSchemaCDPExecutor
14
+ )
15
+
16
+
17
+ __all__ = ["SchemaCDPExecutor"]
18
+
19
+
20
+ class SchemaCDPExecutor(UnifiedSchemaCDPExecutor, TrioThreadMixin, AbstractSchemaCDPExecutor):
21
+ def __init__(
22
+ self,
23
+ execute_function: Callable[[str, Dict[str, Any]], Any],
24
+ lock: trio.Lock,
25
+ limiter: trio.CapacityLimiter
26
+ ):
27
+ UnifiedSchemaCDPExecutor.__init__(self, execute_function=execute_function)
28
+
29
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
30
+
31
+ async def get_domains(self) -> List[Dict[str, Any]]:
32
+ return await self.sync_to_trio(sync_function=self._get_domains_impl)()
@@ -0,0 +1,43 @@
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.security import (
5
+ UnifiedSecurityCDPExecutor
6
+ )
7
+ from osn_selenium.abstract.executors.cdp.security import (
8
+ AbstractSecurityCDPExecutor
9
+ )
10
+
11
+
12
+ __all__ = ["SecurityCDPExecutor"]
13
+
14
+
15
+ class SecurityCDPExecutor(
16
+ UnifiedSecurityCDPExecutor,
17
+ TrioThreadMixin,
18
+ AbstractSecurityCDPExecutor
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
+ UnifiedSecurityCDPExecutor.__init__(self, execute_function=execute_function)
27
+
28
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
29
+
30
+ async def disable(self) -> None:
31
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
32
+
33
+ async def enable(self) -> None:
34
+ return await self.sync_to_trio(sync_function=self._enable_impl)()
35
+
36
+ async def handle_certificate_error(self, event_id: int, action: str) -> None:
37
+ return await self.sync_to_trio(sync_function=self._handle_certificate_error_impl)(event_id=event_id, action=action)
38
+
39
+ async def set_ignore_certificate_errors(self, ignore: bool) -> None:
40
+ return await self.sync_to_trio(sync_function=self._set_ignore_certificate_errors_impl)(ignore=ignore)
41
+
42
+ async def set_override_certificate_errors(self, override: bool) -> None:
43
+ return await self.sync_to_trio(sync_function=self._set_override_certificate_errors_impl)(override=override)
@@ -0,0 +1,69 @@
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.service_worker import (
5
+ UnifiedServiceWorkerCDPExecutor
6
+ )
7
+ from osn_selenium.abstract.executors.cdp.service_worker import (
8
+ AbstractServiceWorkerCDPExecutor
9
+ )
10
+
11
+
12
+ __all__ = ["ServiceWorkerCDPExecutor"]
13
+
14
+
15
+ class ServiceWorkerCDPExecutor(
16
+ UnifiedServiceWorkerCDPExecutor,
17
+ TrioThreadMixin,
18
+ AbstractServiceWorkerCDPExecutor
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
+ UnifiedServiceWorkerCDPExecutor.__init__(self, execute_function=execute_function)
27
+
28
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
29
+
30
+ async def deliver_push_message(self, origin: str, registration_id: str, data: str) -> None:
31
+ return await self.sync_to_trio(sync_function=self._deliver_push_message_impl)(origin=origin, registration_id=registration_id, data=data)
32
+
33
+ async def disable(self) -> None:
34
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
35
+
36
+ async def dispatch_periodic_sync_event(self, origin: str, registration_id: str, tag: str) -> None:
37
+ return await self.sync_to_trio(sync_function=self._dispatch_periodic_sync_event_impl)(origin=origin, registration_id=registration_id, tag=tag)
38
+
39
+ async def dispatch_sync_event(self, origin: str, registration_id: str, tag: str, last_chance: bool) -> None:
40
+ return await self.sync_to_trio(sync_function=self._dispatch_sync_event_impl)(
41
+ origin=origin,
42
+ registration_id=registration_id,
43
+ tag=tag,
44
+ last_chance=last_chance
45
+ )
46
+
47
+ async def enable(self) -> None:
48
+ return await self.sync_to_trio(sync_function=self._enable_impl)()
49
+
50
+ async def set_force_update_on_page_load(self, force_update_on_page_load: bool) -> None:
51
+ return await self.sync_to_trio(sync_function=self._set_force_update_on_page_load_impl)(force_update_on_page_load=force_update_on_page_load)
52
+
53
+ async def skip_waiting(self, scope_url: str) -> None:
54
+ return await self.sync_to_trio(sync_function=self._skip_waiting_impl)(scope_url=scope_url)
55
+
56
+ async def start_worker(self, scope_url: str) -> None:
57
+ return await self.sync_to_trio(sync_function=self._start_worker_impl)(scope_url=scope_url)
58
+
59
+ async def stop_all_workers(self) -> None:
60
+ return await self.sync_to_trio(sync_function=self._stop_all_workers_impl)()
61
+
62
+ async def stop_worker(self, version_id: str) -> None:
63
+ return await self.sync_to_trio(sync_function=self._stop_worker_impl)(version_id=version_id)
64
+
65
+ async def unregister(self, scope_url: str) -> None:
66
+ return await self.sync_to_trio(sync_function=self._unregister_impl)(scope_url=scope_url)
67
+
68
+ async def update_registration(self, scope_url: str) -> None:
69
+ return await self.sync_to_trio(sync_function=self._update_registration_impl)(scope_url=scope_url)
@@ -0,0 +1,162 @@
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.storage import (
12
+ UnifiedStorageCDPExecutor
13
+ )
14
+ from osn_selenium.abstract.executors.cdp.storage import (
15
+ AbstractStorageCDPExecutor
16
+ )
17
+
18
+
19
+ __all__ = ["StorageCDPExecutor"]
20
+
21
+
22
+ class StorageCDPExecutor(UnifiedStorageCDPExecutor, TrioThreadMixin, AbstractStorageCDPExecutor):
23
+ def __init__(
24
+ self,
25
+ execute_function: Callable[[str, Dict[str, Any]], Any],
26
+ lock: trio.Lock,
27
+ limiter: trio.CapacityLimiter
28
+ ):
29
+ UnifiedStorageCDPExecutor.__init__(self, execute_function=execute_function)
30
+
31
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
32
+
33
+ async def clear_cookies(self, browser_context_id: Optional[str] = None) -> None:
34
+ return await self.sync_to_trio(sync_function=self._clear_cookies_impl)(browser_context_id=browser_context_id)
35
+
36
+ async def clear_data_for_origin(self, origin: str, storage_types: str) -> None:
37
+ return await self.sync_to_trio(sync_function=self._clear_data_for_origin_impl)(origin=origin, storage_types=storage_types)
38
+
39
+ async def clear_data_for_storage_key(self, storage_key: str, storage_types: str) -> None:
40
+ return await self.sync_to_trio(sync_function=self._clear_data_for_storage_key_impl)(storage_key=storage_key, storage_types=storage_types)
41
+
42
+ async def clear_shared_storage_entries(self, owner_origin: str) -> None:
43
+ return await self.sync_to_trio(sync_function=self._clear_shared_storage_entries_impl)(owner_origin=owner_origin)
44
+
45
+ async def clear_trust_tokens(self, issuer_origin: str) -> bool:
46
+ return await self.sync_to_trio(sync_function=self._clear_trust_tokens_impl)(issuer_origin=issuer_origin)
47
+
48
+ async def delete_shared_storage_entry(self, owner_origin: str, key: str) -> None:
49
+ return await self.sync_to_trio(sync_function=self._delete_shared_storage_entry_impl)(owner_origin=owner_origin, key=key)
50
+
51
+ async def delete_storage_bucket(self, bucket: Dict[str, Any]) -> None:
52
+ return await self.sync_to_trio(sync_function=self._delete_storage_bucket_impl)(bucket=bucket)
53
+
54
+ async def get_affected_urls_for_third_party_cookie_metadata(self, first_party_url: str, third_party_urls: List[str]) -> List[str]:
55
+ return await self.sync_to_trio(
56
+ sync_function=self._get_affected_urls_for_third_party_cookie_metadata_impl
57
+ )(first_party_url=first_party_url, third_party_urls=third_party_urls)
58
+
59
+ async def get_cookies(self, browser_context_id: Optional[str] = None) -> List[Dict[str, Any]]:
60
+ return await self.sync_to_trio(sync_function=self._get_cookies_impl)(browser_context_id=browser_context_id)
61
+
62
+ async def get_interest_group_details(self, owner_origin: str, name: str) -> Any:
63
+ return await self.sync_to_trio(sync_function=self._get_interest_group_details_impl)(owner_origin=owner_origin, name=name)
64
+
65
+ async def get_related_website_sets(self) -> List[Dict[str, Any]]:
66
+ return await self.sync_to_trio(sync_function=self._get_related_website_sets_impl)()
67
+
68
+ async def get_shared_storage_entries(self, owner_origin: str) -> List[Dict[str, Any]]:
69
+ return await self.sync_to_trio(sync_function=self._get_shared_storage_entries_impl)(owner_origin=owner_origin)
70
+
71
+ async def get_shared_storage_metadata(self, owner_origin: str) -> Dict[str, Any]:
72
+ return await self.sync_to_trio(sync_function=self._get_shared_storage_metadata_impl)(owner_origin=owner_origin)
73
+
74
+ async def get_storage_key(self, frame_id: Optional[str] = None) -> str:
75
+ return await self.sync_to_trio(sync_function=self._get_storage_key_impl)(frame_id=frame_id)
76
+
77
+ async def get_storage_key_for_frame(self, frame_id: str) -> str:
78
+ return await self.sync_to_trio(sync_function=self._get_storage_key_for_frame_impl)(frame_id=frame_id)
79
+
80
+ async def get_trust_tokens(self) -> List[Dict[str, Any]]:
81
+ return await self.sync_to_trio(sync_function=self._get_trust_tokens_impl)()
82
+
83
+ async def get_usage_and_quota(self, origin: str) -> Tuple[float, float, bool, List[Dict[str, Any]]]:
84
+ return await self.sync_to_trio(sync_function=self._get_usage_and_quota_impl)(origin=origin)
85
+
86
+ async def override_quota_for_origin(self, origin: str, quota_size: Optional[float] = None) -> None:
87
+ return await self.sync_to_trio(sync_function=self._override_quota_for_origin_impl)(origin=origin, quota_size=quota_size)
88
+
89
+ async def reset_shared_storage_budget(self, owner_origin: str) -> None:
90
+ return await self.sync_to_trio(sync_function=self._reset_shared_storage_budget_impl)(owner_origin=owner_origin)
91
+
92
+ async def run_bounce_tracking_mitigations(self) -> List[str]:
93
+ return await self.sync_to_trio(sync_function=self._run_bounce_tracking_mitigations_impl)()
94
+
95
+ async def send_pending_attribution_reports(self) -> int:
96
+ return await self.sync_to_trio(sync_function=self._send_pending_attribution_reports_impl)()
97
+
98
+ async def set_attribution_reporting_local_testing_mode(self, enabled: bool) -> None:
99
+ return await self.sync_to_trio(sync_function=self._set_attribution_reporting_local_testing_mode_impl)(enabled=enabled)
100
+
101
+ async def set_attribution_reporting_tracking(self, enable: bool) -> None:
102
+ return await self.sync_to_trio(sync_function=self._set_attribution_reporting_tracking_impl)(enable=enable)
103
+
104
+ async def set_cookies(
105
+ self,
106
+ cookies: List[Dict[str, Any]],
107
+ browser_context_id: Optional[str] = None
108
+ ) -> None:
109
+ return await self.sync_to_trio(sync_function=self._set_cookies_impl)(cookies=cookies, browser_context_id=browser_context_id)
110
+
111
+ async def set_interest_group_auction_tracking(self, enable: bool) -> None:
112
+ return await self.sync_to_trio(sync_function=self._set_interest_group_auction_tracking_impl)(enable=enable)
113
+
114
+ async def set_interest_group_tracking(self, enable: bool) -> None:
115
+ return await self.sync_to_trio(sync_function=self._set_interest_group_tracking_impl)(enable=enable)
116
+
117
+ async def set_protected_audience_k_anonymity(self, owner: str, name: str, hashes: List[str]) -> None:
118
+ return await self.sync_to_trio(sync_function=self._set_protected_audience_k_anonymity_impl)(owner=owner, name=name, hashes=hashes)
119
+
120
+ async def set_shared_storage_entry(
121
+ self,
122
+ owner_origin: str,
123
+ key: str,
124
+ value: str,
125
+ ignore_if_present: Optional[bool] = None
126
+ ) -> None:
127
+ return await self.sync_to_trio(sync_function=self._set_shared_storage_entry_impl)(
128
+ owner_origin=owner_origin,
129
+ key=key,
130
+ value=value,
131
+ ignore_if_present=ignore_if_present
132
+ )
133
+
134
+ async def set_shared_storage_tracking(self, enable: bool) -> None:
135
+ return await self.sync_to_trio(sync_function=self._set_shared_storage_tracking_impl)(enable=enable)
136
+
137
+ async def set_storage_bucket_tracking(self, storage_key: str, enable: bool) -> None:
138
+ return await self.sync_to_trio(sync_function=self._set_storage_bucket_tracking_impl)(storage_key=storage_key, enable=enable)
139
+
140
+ async def track_cache_storage_for_origin(self, origin: str) -> None:
141
+ return await self.sync_to_trio(sync_function=self._track_cache_storage_for_origin_impl)(origin=origin)
142
+
143
+ async def track_cache_storage_for_storage_key(self, storage_key: str) -> None:
144
+ return await self.sync_to_trio(sync_function=self._track_cache_storage_for_storage_key_impl)(storage_key=storage_key)
145
+
146
+ async def track_indexed_db_for_origin(self, origin: str) -> None:
147
+ return await self.sync_to_trio(sync_function=self._track_indexed_db_for_origin_impl)(origin=origin)
148
+
149
+ async def track_indexed_db_for_storage_key(self, storage_key: str) -> None:
150
+ return await self.sync_to_trio(sync_function=self._track_indexed_db_for_storage_key_impl)(storage_key=storage_key)
151
+
152
+ async def untrack_cache_storage_for_origin(self, origin: str) -> None:
153
+ return await self.sync_to_trio(sync_function=self._untrack_cache_storage_for_origin_impl)(origin=origin)
154
+
155
+ async def untrack_cache_storage_for_storage_key(self, storage_key: str) -> None:
156
+ return await self.sync_to_trio(sync_function=self._untrack_cache_storage_for_storage_key_impl)(storage_key=storage_key)
157
+
158
+ async def untrack_indexed_db_for_origin(self, origin: str) -> None:
159
+ return await self.sync_to_trio(sync_function=self._untrack_indexed_db_for_origin_impl)(origin=origin)
160
+
161
+ async def untrack_indexed_db_for_storage_key(self, storage_key: str) -> None:
162
+ return await self.sync_to_trio(sync_function=self._untrack_indexed_db_for_storage_key_impl)(storage_key=storage_key)
@@ -0,0 +1,43 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List,
8
+ Tuple
9
+ )
10
+ from osn_selenium.executors.unified.cdp.system_info import (
11
+ UnifiedSystemInfoCDPExecutor
12
+ )
13
+ from osn_selenium.abstract.executors.cdp.system_info import (
14
+ AbstractSystemInfoCDPExecutor
15
+ )
16
+
17
+
18
+ __all__ = ["SystemInfoCDPExecutor"]
19
+
20
+
21
+ class SystemInfoCDPExecutor(
22
+ UnifiedSystemInfoCDPExecutor,
23
+ TrioThreadMixin,
24
+ AbstractSystemInfoCDPExecutor
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
+ UnifiedSystemInfoCDPExecutor.__init__(self, execute_function=execute_function)
33
+
34
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
35
+
36
+ async def get_feature_state(self, feature_state: str) -> bool:
37
+ return await self.sync_to_trio(sync_function=self._get_feature_state_impl)(feature_state=feature_state)
38
+
39
+ async def get_info(self) -> Tuple[Dict[str, Any], str, str, str]:
40
+ return await self.sync_to_trio(sync_function=self._get_info_impl)()
41
+
42
+ async def get_process_info(self) -> List[Dict[str, Any]]:
43
+ return await self.sync_to_trio(sync_function=self._get_process_info_impl)()