Skip to content

Commit

Permalink
added extension support. via config object .add_extension() + some tw…
Browse files Browse the repository at this point in the history
…eaks
  • Loading branch information
ultrafunkamsterdam committed Mar 3, 2024
1 parent 313f5a5 commit d717f1f
Show file tree
Hide file tree
Showing 135 changed files with 862 additions and 261 deletions.
Binary file modified docs/_build/doctrees/environment.pickle
Binary file not shown.
Binary file modified docs/_build/doctrees/index.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/accessibility.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/animation.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/audits.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/autofill.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/background_service.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/browser.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/cache_storage.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/cast.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/console.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/css.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/database.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/debugger.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/device_access.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/device_orientation.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/dom.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/dom_debugger.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/dom_snapshot.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/dom_storage.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/emulation.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/event_breakpoints.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/fed_cm.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/fetch.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/headless_experimental.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/heap_profiler.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/indexed_db.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/input_.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/inspector.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/io.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/layer_tree.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/log.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/media.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/memory.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/network.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/overlay.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/page.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/performance.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/performance_timeline.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/preload.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/profiler.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/runtime.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/schema.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/security.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/service_worker.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/storage.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/system_info.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/target.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/tethering.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/tracing.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/web_audio.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/cdp/web_authn.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/classes/browser.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/classes/element.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/classes/others_and_helpers.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/classes/tab.doctree
Binary file not shown.
Binary file modified docs/_build/doctrees/nodriver/quickstart.doctree
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/_build/html/_modules/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" />

<!-- Generated with Sphinx 7.2.6 and Furo 2024.01.29 -->
<!-- Generated with Sphinx 7.2.6 and Furo 2023.09.10 -->
<title>Overview: module code - nodriver documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=135e06be" />
Expand Down
6 changes: 5 additions & 1 deletion docs/_build/html/_modules/nodriver/core/browser.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="../../../genindex.html" /><link rel="search" title="Search" href="../../../search.html" />

<!-- Generated with Sphinx 7.2.6 and Furo 2024.01.29 -->
<!-- Generated with Sphinx 7.2.6 and Furo 2023.09.10 -->
<title>nodriver.core.browser - nodriver documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../../../_static/styles/furo.css?v=135e06be" />
Expand Down Expand Up @@ -580,8 +580,12 @@ <h1>Source code for nodriver.core.browser</h1><div class="highlight"><pre>
<span class="p">)</span>
<span class="p">)</span>

<span class="k">if</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> <span class="s1">&#39;_extensions&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span> <span class="c1"># noqa</span>
<span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--load-extension=</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="s1">&#39;,&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="nb">str</span><span class="p">(</span><span class="n">_</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">_extensions</span><span class="p">))</span> <span class="c1"># noqa</span>

<span class="n">exe</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">browser_executable_path</span>
<span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">()</span>

<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
<span class="s2">&quot;starting</span><span class="se">\n\t</span><span class="s2">executable :</span><span class="si">%s</span><span class="se">\n\n</span><span class="s2">arguments:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">exe</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">params</span><span class="p">)</span>
<span class="p">)</span>
Expand Down
39 changes: 36 additions & 3 deletions docs/_build/html/_modules/nodriver/core/config.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="../../../genindex.html" /><link rel="search" title="Search" href="../../../search.html" />

<!-- Generated with Sphinx 7.2.6 and Furo 2024.01.29 -->
<!-- Generated with Sphinx 7.2.6 and Furo 2023.09.10 -->
<title>nodriver.core.config - nodriver documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../../../_static/styles/furo.css?v=135e06be" />
Expand Down Expand Up @@ -263,11 +263,13 @@ <h1>Source code for nodriver.core.config</h1><div class="highlight"><pre>
<span></span><span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">pathlib</span>
<span class="kn">import</span> <span class="nn">secrets</span>
<span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">import</span> <span class="nn">tempfile</span>
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Union</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Optional</span>
<span class="kn">from</span> <span class="nn">types</span> <span class="kn">import</span> <span class="n">MethodType</span>

<span class="kn">import</span> <span class="nn">zipfile</span>
<span class="kn">import</span> <span class="nn">tempfile</span>
<span class="kn">from</span> <span class="nn">._contradict</span> <span class="kn">import</span> <span class="n">ContraDict</span>

<span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span>
Expand Down Expand Up @@ -351,7 +353,7 @@ <h1>Source code for nodriver.core.config</h1><div class="highlight"><pre>
<span class="bp">self</span><span class="o">.</span><span class="n">sandbox</span> <span class="o">=</span> <span class="n">sandbox</span>
<span class="bp">self</span><span class="o">.</span><span class="n">host</span> <span class="o">=</span> <span class="kc">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">port</span> <span class="o">=</span> <span class="kc">None</span>

<span class="bp">self</span><span class="o">.</span><span class="n">_extensions</span> <span class="o">=</span> <span class="p">[]</span>
<span class="c1"># when using posix-ish operating system and running as root</span>
<span class="c1"># you must use no_sandbox = True, which in case is corrected here</span>
<span class="k">if</span> <span class="n">is_posix</span> <span class="ow">and</span> <span class="n">is_root</span><span class="p">()</span> <span class="ow">and</span> <span class="n">sandbox</span><span class="p">:</span>
Expand Down Expand Up @@ -400,6 +402,37 @@ <h1>Source code for nodriver.core.config</h1><div class="highlight"><pre>
<span class="k">def</span> <span class="nf">uses_custom_data_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_custom_data_dir</span>


<div class="viewcode-block" id="Config.add_extension">
<a class="viewcode-back" href="../../../nodriver/classes/others_and_helpers.html#nodriver.Config.add_extension">[docs]</a>
<span class="k">def</span> <span class="nf">add_extension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">extension_path</span><span class="p">:</span> <span class="n">PathLike</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> adds an extension to load, you could point extension_path</span>
<span class="sd"> to a folder (containing the manifest), or extension file (crx)</span>

<span class="sd"> :param extension_path:</span>
<span class="sd"> :type extension_path:</span>
<span class="sd"> :return:</span>
<span class="sd"> :rtype:</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">path</span> <span class="o">=</span> <span class="n">pathlib</span><span class="o">.</span><span class="n">Path</span><span class="p">(</span><span class="n">extension_path</span><span class="p">)</span>

<span class="k">if</span> <span class="ow">not</span> <span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
<span class="k">raise</span> <span class="ne">FileNotFoundError</span><span class="p">(</span><span class="s2">&quot;could not find anything here: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">path</span><span class="p">))</span>

<span class="k">if</span> <span class="n">path</span><span class="o">.</span><span class="n">is_file</span><span class="p">():</span>
<span class="n">tf</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">mkdtemp</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;extension_&#39;</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="n">secrets</span><span class="o">.</span><span class="n">token_hex</span><span class="p">(</span><span class="mi">4</span><span class="p">))</span>
<span class="k">with</span> <span class="n">zipfile</span><span class="o">.</span><span class="n">ZipFile</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">z</span><span class="p">:</span>
<span class="n">z</span><span class="o">.</span><span class="n">extractall</span><span class="p">(</span><span class="n">tf</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_extensions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tf</span><span class="p">)</span>

<span class="k">elif</span> <span class="n">path</span><span class="o">.</span><span class="n">is_dir</span><span class="p">():</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">path</span><span class="o">.</span><span class="n">rglob</span><span class="p">(</span><span class="s1">&#39;manifest.*&#39;</span><span class="p">):</span>
<span class="n">path</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">parent</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_extensions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">path</span><span class="p">)</span></div>



<span class="k">def</span> <span class="fm">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
<span class="k">if</span> <span class="n">item</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
<span class="k">return</span>
Expand Down
Loading

0 comments on commit d717f1f

Please sign in to comment.