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,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)()