GenXdev.Webbrowser-Help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>-</maml:name>
      <command:verb></command:verb>
      <command:noun></command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object[]
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>-</maml:name>
      <command:verb></command:verb>
      <command:noun></command:noun>
    </command:details>
    <maml:description>
      <maml:para>Imports bookmarks into Microsoft Edge or Google Chrome from either a CSV file or
a collection of bookmark objects. The bookmarks are added to the browser&apos;s
bookmark bar or specified folders. Firefox import is not currently supported.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <command:name></command:name>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <command:name></command:name>
        <command:parameter required="false" position="1">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <command:name></command:name>
        <command:parameter required="false" position="1">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>The path to a CSV file containing bookmarks to import. The CSV should have
columns for Name, URL, Folder, DateAdded, and DateModified.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>1</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>An array of bookmark objects to import. Each object should have properties for
Name, URL, Folder, DateAdded, and DateModified.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>1</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>Switch to import bookmarks into Google Chrome.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>Switch to import bookmarks into Microsoft Edge.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>Switch to indicate Firefox as target (currently not supported).</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
    </command:parameters>
    <command:examples>
      <command:example>
        <maml:title></maml:title>
        <dev:code></dev:code>
        <dev:remarks>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title></maml:title>
        <dev:code></dev:code>
        <dev:remarks>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>-</maml:name>
      <command:verb></command:verb>
      <command:noun></command:noun>
    </command:details>
    <maml:description>
      <maml:para>Executes JavaScript code in a selected browser tab with support for async/await,
promises, and data synchronization between PowerShell and the browser context.
Can execute code from strings, files, or URLs.

This function provides comprehensive access to browser APIs including IndexedDB,
localStorage, sessionStorage, and other web platform features. It includes
built-in error handling, timeout management, and support for yielding multiple
results from generator functions.

The function uses Chrome DevTools Protocol (CDP) debugging connections, which
provides privileged access that bypasses standard JavaScript security restrictions.
This enables access to storage APIs, cross-origin resources (within the same tab),
and other browser features that would normally be restricted in standard web contexts.

Key capabilities:
- Async/await and Promise support
- Generator functions with yield support
- Data synchronization via $Global:Data
- Privileged access to browser storage APIs
- Bypasses same-origin policy restrictions for current page storage
- IndexedDB enumeration and data extraction
- DOM manipulation and web API access
- Error handling and timeout management</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <command:name></command:name>
        <command:parameter required="false" position="1">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
        <command:parameter required="false" position="named">
          <maml:name></maml:name>
          <command:parameterValue></command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>JavaScript code to execute. Can be string content, file paths, or URLs.
Accepts pipeline input.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>true (ByValue, ByPropertyName)</dev:pipelineInput>
        <dev:position>1</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>Adds debugger statement before executing to enable debugging.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>Prevents automatic tab selection if no tab is currently selected.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>Selects Microsoft Edge browser for execution.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>Selects Google Chrome browser for execution.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>Browser page object for execution when using ByReference mode.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
      <command:parameter>
        <maml:name></maml:name>
        <maml:description>
          <maml:para>Session reference object when using ByReference mode.</maml:para>
        </maml:description>
        <command:parameterValue required="false"></command:parameterValue>
        <dev:defaultValue></dev:defaultValue>
        <dev:variableLength>false</dev:variableLength>
        <dev:globbing>false</dev:globbing>
        <dev:pipelineInput>false</dev:pipelineInput>
        <dev:position>named</dev:position>
        <dev:aliases></dev:aliases>
      </command:parameter>
    </command:parameters>
    <maml:alertSet>
      <maml:alert><maml:para>Requires the Windows 10+ Operating System</maml:para></maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title></maml:title>
        <dev:code></dev:code>
        <dev:remarks>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title></maml:title>
        <dev:code></dev:code>
        <dev:remarks>
          <maml:para>Synchronizing data
Select-WebbrowserTab -Force;
$Global:Data = @{ files= (Get-ChildItem *.* -file | % FullName)};

[int] $number = Invoke-WebbrowserEvaluation &quot;

    document.body.innerHTML = JSON.stringify(data.files);
    data.title = document.title;
    return 123;
&quot;;

Write-Host &quot;
    Document title : $($Global:Data.title)
    return value : $Number
&quot;;</maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title></maml:title>
        <dev:code></dev:code>
        <dev:remarks>
          <maml:para>Support for promises
Select-WebbrowserTab -Force;
Invoke-WebbrowserEvaluation &quot;
    let myList = [];
    return new Promise((resolve) =&gt; {
        let i = 0;
        let a = setInterval(() =&gt; {
            myList.push(++i);
            if (i == 10) {
                clearInterval(a);
                resolve(myList);
            }
        }, 1000);
    });
&quot;</maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title></maml:title>
        <dev:code></dev:code>
        <dev:remarks>
          <maml:para>Support for promises and more

this function returns all rows of all tables/datastores of all databases of indexedDb in the selected tab
beware, not all websites use indexedDb, it could return an empty set

Select-WebbrowserTab -Force;
Set-WebbrowserTabLocation &quot;https://www.youtube.com/&quot;
Start-Sleep 3
$AllIndexedDbData = Invoke-WebbrowserEvaluation &quot;

    // enumerate all indexedDB databases
    for (let db of await indexedDB.databases()) {

        // request to open database
        let openRequest = await indexedDB.open(db.name);

        // wait for eventhandlers to be called
        await new Promise((resolve,reject) =&gt; {
            openRequest.onsuccess = resolve;
            openRequest.onerror = reject
        });

        // obtain reference
        let openedDb = openRequest.result;

        // initialize result
        let result = { DatabaseName: db.name, Version: db.version, Stores: [] }

        // itterate object store names
        for (let i = 0; i &lt; openedDb.objectStoreNames.length; i++) {

            // reference
            let storeName = openedDb.objectStoreNames[i];

            // start readonly transaction
            let tr = openedDb.transaction(storeName);

            // get objectstore handle
            let store = tr.objectStore(storeName);

            // request all data
            let getRequest = store.getAll();

            // await result
            await new Promise((resolve,reject) =&gt; {
                getRequest.onsuccess = resolve;
                getRequest.onerror = reject;
            });

            // add result
            result.Stores.push({ StoreName: storeName, Data: getRequest.result});
        }

        // stream this database contents to the PowerShell pipeline, and continue
        yield result;
    }
&quot;;

$AllIndexedDbData | Out-Host

# SECURITY NOTE: This basic example works because the module uses Chrome DevTools
# Protocol (CDP) debugging access, which bypasses normal JavaScript security
# restrictions. Standard web pages cannot access IndexedDB from other origins,
# but this debugging connection has the same privileges as the website itself.
# See the enhanced example below for more details on security considerations.</maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title></maml:title>
        <dev:code></dev:code>
        <dev:remarks>
          <maml:para>Enhanced IndexedDB enumeration with metadata and error handling

This enhanced approach provides more comprehensive IndexedDB data extraction including
database counts, error handling, and metadata. Unlike the basic example above, this
version handles security restrictions, provides detailed store information, and
includes record counts without necessarily retrieving all data.

Select-WebbrowserTab -Force;
Set-WebbrowserTabLocation &quot;https://www.youtube.com/&quot;
Start-Sleep 3
$EnhancedIndexedDbData = Invoke-WebbrowserEvaluation &quot;

    // Enhanced IndexedDB enumeration with comprehensive error handling
    let results = [];

    for (let dbInfo of await indexedDB.databases()) {
        try {
            // Open database with timeout
            let db = await new Promise((resolve, reject) =&gt; {
                let req = indexedDB.open(dbInfo.name);
                req.onsuccess = () =&gt; resolve(req.result);
                req.onerror = () =&gt; reject(req.error);
                setTimeout(() =&gt; reject(new Error(&apos;Database open timeout&apos;)), 5000);
            });

            let dbResult = {
                DatabaseName: dbInfo.name,
                Version: dbInfo.version,
                ObjectStoreCount: db.objectStoreNames.length,
                Stores: []
            };

            // Process each object store
            for (let i = 0; i &lt; db.objectStoreNames.length; i++) {
                let storeName = db.objectStoreNames[i];
                try {
                    let transaction = db.transaction(storeName, &apos;readonly&apos;);
                    let store = transaction.objectStore(storeName);

                    // Get record count (faster than retrieving all data)
                    let count = await new Promise((resolve, reject) =&gt; {
                        let req = store.count();
                        req.onsuccess = () =&gt; resolve(req.result);
                        req.onerror = () =&gt; reject(req.error);
                        setTimeout(() =&gt; reject(new Error(&apos;Count timeout&apos;)), 3000);
                    });

                    dbResult.Stores.push({
                        StoreName: storeName,
                        RecordCount: count,
                        KeyPath: store.keyPath,
                        AutoIncrement: store.autoIncrement,
                        IndexNames: Array.from(store.indexNames)
                    });

                } catch (storeError) {
                    dbResult.Stores.push({
                        StoreName: storeName,
                        Error: storeError.message
                    });
                }
            }

            results.push(dbResult);
            db.close();

        } catch (dbError) {
            results.push({
                DatabaseName: dbInfo.name,
                Error: dbError.message
            });
        }
    }

    yield results;
&quot;;

$EnhancedIndexedDbData | ConvertTo-Json -Depth 10

# Key differences from the basic example:
# 1. Includes error handling for database access issues
# 2. Provides metadata (KeyPath, AutoIncrement, IndexNames)
# 3. Gets record counts without retrieving all data (more efficient)
# 4. Handles timeout scenarios
# 5. Returns structured information about database schema
# 6. More suitable for large databases where retrieving all data would be slow

# SECURITY CONSIDERATIONS FOR INDEXEDDB ACCESS:
# Both examples work because this module uses Chrome DevTools Protocol (CDP) through
# the debugging port, which bypasses standard JavaScript security restrictions:
#
# Standard JavaScript Limitations:
# - Same-origin policy restricts access to IndexedDB from other origins
# - Some databases may be hidden or protected by browser security features
# - Cross-origin database access is typically blocked
# - Service worker databases may have additional protection
#
# How this example bypasses restrictions:
# - Uses CDP debugging connection (--remote-debugging-port) for privileged access
# - Executes in the context of the actual page, not a sandboxed environment
# - Has the same permissions as the website itself for its own storage
# - Can access all databases created by the current origin/domain
#
# Limitations Even With CDP:
# - Cannot access databases from other origins/domains in the same browser
# - Cannot access databases from other browser profiles or private browsing
# - Some browser extensions may create isolated storage not accessible via JavaScript
#
# Alternative Approaches for Maximum Access:
# - Use GenXdev.Webbrowser with multiple tabs from different origins
# - Combine with file system access to browser profile directories (when possible)
# - Use browser automation to navigate between different domains
# - Consider using CDP Storage domain directly (advanced, not implemented in basic examples)</maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title></maml:title>
        <dev:code></dev:code>
        <dev:remarks>
          <maml:para>Support for yielded pipeline results
Select-WebbrowserTab -Force;
Invoke-WebbrowserEvaluation &quot;

    for (let i = 0; i &lt; 10; i++) {

        await (new Promise((resolve) =&gt; setTimeout(resolve, 1000)));

        yield i;
    }
&quot;;</maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title></maml:title>
        <dev:code></dev:code>
        <dev:remarks>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title></maml:title>
        <dev:code></dev:code>
        <dev:remarks>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>-</maml:name>
      <command:verb></command:verb>
      <command:noun></command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>-</maml:name>
      <command:verb></command:verb>
      <command:noun></command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>-</maml:name>
      <command:verb></command:verb>
      <command:noun></command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>-</maml:name>
      <command:verb></command:verb>
      <command:noun></command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String
System.Management.Automation.PSObject
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>-</maml:name>
      <command:verb></command:verb>
      <command:noun></command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Approve-FirefoxDebugging</maml:name>
      <command:verb>Approve</command:verb>
      <command:noun>FirefoxDebugging</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Void
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Clear-WebbrowserTabSiteApplicationData</maml:name>
      <command:verb>Clear</command:verb>
      <command:noun>WebbrowserTabSiteApplicationData</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Void
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Close-Webbrowser</maml:name>
      <command:verb>Close</command:verb>
      <command:noun>Webbrowser</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Close-WebbrowserTab</maml:name>
      <command:verb>Close</command:verb>
      <command:noun>WebbrowserTab</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Void
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Export-BrowserBookmarks</maml:name>
      <command:verb>Export</command:verb>
      <command:noun>BrowserBookmarks</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Void
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Find-BrowserBookmark</maml:name>
      <command:verb>Find</command:verb>
      <command:noun>BrowserBookmark</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSObject
System.String
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Get-ChromeRemoteDebuggingPort</maml:name>
      <command:verb>Get</command:verb>
      <command:noun>ChromeRemoteDebuggingPort</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Int32
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Get-ChromiumRemoteDebuggingPort</maml:name>
      <command:verb>Get</command:verb>
      <command:noun>ChromiumRemoteDebuggingPort</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Int32
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Get-ChromiumSessionReference</maml:name>
      <command:verb>Get</command:verb>
      <command:noun>ChromiumSessionReference</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSObject
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Get-DefaultWebbrowser</maml:name>
      <command:verb>Get</command:verb>
      <command:noun>DefaultWebbrowser</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Collections.Hashtable
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Get-EdgeRemoteDebuggingPort</maml:name>
      <command:verb>Get</command:verb>
      <command:noun>EdgeRemoteDebuggingPort</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Int32
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Get-Webbrowser</maml:name>
      <command:verb>Get</command:verb>
      <command:noun>Webbrowser</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Collections.Hashtable[]
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Get-WebbrowserTabDomNodes</maml:name>
      <command:verb>Get</command:verb>
      <command:noun>WebbrowserTabDomNodes</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSObject
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Import-GenXdevBookmarkletMenu</maml:name>
      <command:verb>Import</command:verb>
      <command:noun>GenXdevBookmarkletMenu</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Set-BrowserVideoFullscreen</maml:name>
      <command:verb>Set</command:verb>
      <command:noun>BrowserVideoFullscreen</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Set-RemoteDebuggerPortInBrowserShortcuts</maml:name>
      <command:verb>Set</command:verb>
      <command:noun>RemoteDebuggerPortInBrowserShortcuts</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Set-WebbrowserTabLocation</maml:name>
      <command:verb>Set</command:verb>
      <command:noun>WebbrowserTabLocation</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Void
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Connect-PlaywrightViaDebuggingPort</maml:name>
      <command:verb>Connect</command:verb>
      <command:noun>PlaywrightViaDebuggingPort</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSObject
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Get-PlaywrightProfileDirectory</maml:name>
      <command:verb>Get</command:verb>
      <command:noun>PlaywrightProfileDirectory</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.String
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Resume-WebbrowserTabVideo</maml:name>
      <command:verb>Resume</command:verb>
      <command:noun>WebbrowserTabVideo</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Stop-WebbrowserVideos</maml:name>
      <command:verb>Stop</command:verb>
      <command:noun>WebbrowserVideos</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <maml:name>Unprotect-WebbrowserTab</maml:name>
      <command:verb>Unprotect</command:verb>
      <command:noun>WebbrowserTab</command:noun>
    </command:details>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None
</maml:name>
        </dev:type>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Void
</maml:name>
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:relatedLinks />
  </command:command>
</helpItems>