From 60e4b31b88110379585c89a98c2d72f0cfaebf66 Mon Sep 17 00:00:00 2001 From: "Michael S. Hoffman" Date: Tue, 17 Jun 2025 22:58:47 -0700 Subject: [PATCH 01/21] flag some links to update --- microsoft-edge/dev-videos/index.md | 4 ++-- .../javascript/background-services.md | 2 +- .../devtools-guide-chromium/performance/index.md | 8 +++++--- .../devtools-guide-chromium/performance/overview.md | 6 ++++-- .../devtools-guide-chromium/performance/reference.md | 4 +++- .../progressive-web-apps/protocol-handlers.md | 2 +- .../devtools-guide-chromium/rendering-tools/index.md | 2 +- microsoft-edge/devtools-guide-chromium/sensors/index.md | 2 +- .../devtools-guide-chromium/speed/get-started.md | 4 +++- .../devtools-guide-chromium/whats-new/2020/06/devtools.md | 2 +- .../devtools-guide-chromium/whats-new/2020/08/devtools.md | 4 +++- 11 files changed, 25 insertions(+), 15 deletions(-) diff --git a/microsoft-edge/dev-videos/index.md b/microsoft-edge/dev-videos/index.md index 1d538f63b1..68f68a3108 100644 --- a/microsoft-edge/dev-videos/index.md +++ b/microsoft-edge/dev-videos/index.md @@ -573,7 +573,7 @@ March 17, 2022 Microsoft Edge provides auto-generated alt text for images that don't include it. Auto-generated alt text helps users of assistive technology such as screen readers discover the meaning or intent of an images on the web. -Many people who are blind or low-vision experience the web primarily through a screen reader: an assistive technology that reads the content of each page aloud. Screen readers depend on having image labels (alternative text or "alt text") provided that allows them to describe visual content - like images and charts - so the user can understand the full content of the page. Alt text is critical for making the web accessible, yet it’s often overlooked. More than half of the images processed by screen readers are missing alt text. +Many people who are blind or low-vision experience the web primarily through a screen reader: an assistive technology that reads the content of each page aloud. Screen readers depend on having image labels (alternative text or "alt text") provided that allows them to describe visual content - like images and charts - so the user can understand the full content of the page. Alt text is critical for making the web accessible, yet it's often overlooked. More than half of the images processed by screen readers are missing alt text. See also: * [Appears to say: Microsoft Edge now provides auto-generated image labels](https://blogs.windows.com/msedgedev/2022/03/17/appears-to-say-microsoft-edge-auto-generated-image-labels/) - blog post @@ -681,7 +681,7 @@ The Microsoft Edge team specified and implemented the new EyeDropper API in coll Many creative applications enable users to pick colors from parts of an app window or even from the entire screen, typically using an eyedropper metaphor. The EyeDropper API enables authors to use a browser-supplied eyedropper in the construction of custom color pickers on the web. See also: -* [Picking colors of any pixel on the screen with the EyeDropper API | web.dev](https://web.dev/eyedropper/) +* [Picking colors of any pixel on the screen with the EyeDropper API | web.dev](https://web.dev/eyedropper/) * [EyeDropper API - Web APIs | MDN developer.mozilla.org](https://developer.mozilla.org/docs/Web/API/EyeDropper_API) diff --git a/microsoft-edge/devtools-guide-chromium/javascript/background-services.md b/microsoft-edge/devtools-guide-chromium/javascript/background-services.md index 6071737e21..a37c888559 100644 --- a/microsoft-edge/devtools-guide-chromium/javascript/background-services.md +++ b/microsoft-edge/devtools-guide-chromium/javascript/background-services.md @@ -109,7 +109,7 @@ After a **service worker** has received a [Push Message](https://developer.mozil ## Payment Handler -The [Payment Handler API](https://web.dev/web-based-payment-apps-overview/) allows web applications to handle payment requests on behalf of users. To log the payment request and response events for 3 days, even when DevTools isn't open: +The [Payment Handler API](https://web.dev/web-based-payment-apps-overview/) allows web applications to handle payment requests on behalf of users. To log the payment request and response events for 3 days, even when DevTools isn't open: 1. Open DevTools by right-clicking the webpage and selecting **Inspect**. Or by pressing **Ctrl+Shift+I** (Windows, Linux) or **Command+Option+I** (macOS). diff --git a/microsoft-edge/devtools-guide-chromium/performance/index.md b/microsoft-edge/devtools-guide-chromium/performance/index.md index d7ab4a68cf..6d9685cbb1 100644 --- a/microsoft-edge/devtools-guide-chromium/performance/index.md +++ b/microsoft-edge/devtools-guide-chromium/performance/index.md @@ -24,9 +24,11 @@ ms.date: 09/04/2023 # Analyze runtime performance (tutorial) + + _Runtime performance_ is how your page performs when it's running, as opposed to loading. The following tutorial teaches you how to use the DevTools **Performance** tool to analyze runtime performance. -The skills you learn in this tutorial are useful for analyzing loading, interactivity, and visual stability of your web content, which are also key indicators for [Core Web Vitals](https://web.dev/vitals/). Each of the Core Web Vitals represents a distinct facet of the user experience, is measurable in the field, and reflects the real-world experience of a critical user-centric outcome. You can see these Core Web Vitals in the **Performance** tool. +The skills you learn in this tutorial are useful for analyzing loading, interactivity, and visual stability of your web content, which are also key indicators for [Core Web Vitals](https://web.dev/vitals/). Each of the Core Web Vitals represents a distinct facet of the user experience, is measurable in the field, and reflects the real-world experience of a critical user-centric outcome. You can see these Core Web Vitals in the **Performance** tool. See also: - [Optimize website speed using Lighthouse](../speed/get-started.md) @@ -186,7 +188,7 @@ Continuing from above: The problem with the unoptimized code is that, in each animation frame, it changes the style for each icon, and then queries the position of each icon on the page. Because the styles changed, the browser doesn't know if each icon position changed, so it has to re-layout the icon in order to compute the new position. + --> @@ -267,7 +269,7 @@ We then adjust the direction of the icon, but this time we don't read `element.o Finally, we set the new position of the icon, but this time we use `element.style.transform` instead of `element.style.top`. Using `element.style.transform` is faster, because the CSS `transform` property can be applied by the browser rendering engine without having to recalculate the layout of the page. When using the `transform` property, the browser considers each icon as an individual layer, and then displays these layers in the correct positions by re-compositing the final image. -To learn more, see [Use transform and opacity changes for animations](https://web.dev/stick-to-compositor-only-properties-and-manage-layer-count/#use-transform-and-opacity-changes-for-animations). +To learn more, see [Use transform and opacity changes for animations](https://web.dev/stick-to-compositor-only-properties-and-manage-layer-count/#use-transform-and-opacity-changes-for-animations). diff --git a/microsoft-edge/devtools-guide-chromium/performance/overview.md b/microsoft-edge/devtools-guide-chromium/performance/overview.md index d764862993..d328b0fbfb 100644 --- a/microsoft-edge/devtools-guide-chromium/performance/overview.md +++ b/microsoft-edge/devtools-guide-chromium/performance/overview.md @@ -25,6 +25,8 @@ ms.date: 03/31/2025 + + Use the **Performance** tool to analyze your website's performance. There are two main views: * The home page shows local metrics as you interact with the current webpage. @@ -162,8 +164,8 @@ Use the **Performance** tool to view Core Web Vitals metrics in the initial, **L | Term | Description | Docs | |---|---|---| -| Web Vitals | A large set of metrics giving unified guidance to delivering a great user experience on the web. | [Web Vitals](https://web.dev/articles/vitals) | -| Core Web Vitals | The subset of Web Vitals that apply to all web pages, and should be measured by all site owners. Each of the Core Web Vitals represents a distinct facet of the user experience, is measurable in the field, and reflects the real-world experience of a critical user-centric outcome. | [Core Web Vitals](https://web.dev/articles/vitals#core-web-vitals) in _Web Vitals_ | +| Web Vitals | A large set of metrics giving unified guidance to delivering a great user experience on the web. | [Web Vitals](https://web.dev/articles/vitals) | +| Core Web Vitals | The subset of Web Vitals that apply to all web pages, and should be measured by all site owners. Each of the Core Web Vitals represents a distinct facet of the user experience, is measurable in the field, and reflects the real-world experience of a critical user-centric outcome. | [Core Web Vitals](https://web.dev/articles/vitals#core-web-vitals) in _Web Vitals_ | | Largest Contentful Paint (LCP) | Measures _loading_ performance. To provide a good user experience, LCP should occur within 2.5 seconds of when the page first starts loading. The render time of the largest image, text block, or video visible in the viewport, relative to when the user first navigated to the page. | [Largest Contentful Paint (LCP)](https://web.dev/articles/lcp), [Optimize LCP](https://web.dev/articles/optimize-lcp) | | Cumulative Layout Shift (CLS) | Measures _visual stability_. To provide a good user experience, pages should maintain a CLS of 0.1. or less. The largest burst of layout shift scores for every unexpected layout shift that occurs during the entire lifecycle of a page. | [Cumulative Layout Shift (CLS)](https://web.dev/articles/cls), [Optimize CLS](https://web.dev/articles/optimize-cls) | | Interaction to Next Paint (INP) | Measures _interactivity_. To provide a good user experience, pages should have a INP of 200 milliseconds or less. The page's overall responsiveness to user interactions, based on the latency of all click, tap, and keyboard interactions that occur throughout the lifespan of a user's visit to a page. | [Interaction to Next Paint (INP)](https://web.dev/articles/inp), [Optimize INP](https://web.dev/articles/optimize-inp) | diff --git a/microsoft-edge/devtools-guide-chromium/performance/reference.md b/microsoft-edge/devtools-guide-chromium/performance/reference.md index b3346e20e7..8e3542a64c 100644 --- a/microsoft-edge/devtools-guide-chromium/performance/reference.md +++ b/microsoft-edge/devtools-guide-chromium/performance/reference.md @@ -24,6 +24,8 @@ ms.date: 02/24/2025 # Performance features reference + + This page is a comprehensive reference of DevTools features that are related to analyzing performance. For a step-by-step tutorial on how to analyze the performance of a page using the **Performance** tool, see [Analyze runtime performance (tutorial)](index.md). @@ -788,7 +790,7 @@ Clear the **Loading**, **Scripting**, **Rendering**, or **Painting** checkboxes In an overlay with vertical lines across the performance trace, you can see important performance markers, such as: * [First Paint (FP)](https://developer.mozilla.org/docs/Glossary/First_paint) -* [First Contentful Paint (FCP)](https://web.dev/articles/fcp) +* [First Contentful Paint (FCP)](https://web.dev/articles/fcp) * [Largest Contentful Paint (LCP)](https://web.dev/articles/lcp) * [DOMContentLoaded Event (DCL)](https://developer.mozilla.org/docs/Web/API/Window/DOMContentLoaded_event) * [Onload Event (L)](https://developer.mozilla.org/docs/Web/API/Window/load_event) diff --git a/microsoft-edge/devtools-guide-chromium/progressive-web-apps/protocol-handlers.md b/microsoft-edge/devtools-guide-chromium/progressive-web-apps/protocol-handlers.md index 0130e5b796..c30f239592 100644 --- a/microsoft-edge/devtools-guide-chromium/progressive-web-apps/protocol-handlers.md +++ b/microsoft-edge/devtools-guide-chromium/progressive-web-apps/protocol-handlers.md @@ -65,4 +65,4 @@ In the following screenshot, the `web+amp://files.freemusicarchive.org/storage-f * [Debug a Progressive Web App (PWA)](./index.md) * [Handle protocols in a PWA](../../progressive-web-apps-chromium/how-to/handle-protocols.md) * [Getting started with Protocol Handlers for your web app](https://blogs.windows.com/msedgedev/2022/01/20/getting-started-url-protocol-handlers-microsoft-edge/) -* [URL protocol handler registration for PWAs](https://web.dev/url-protocol-handler/) +* [URL protocol handler registration for PWAs](https://web.dev/url-protocol-handler/) diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/index.md b/microsoft-edge/devtools-guide-chromium/rendering-tools/index.md index 056d1bd6d4..00ff3a32f9 100644 --- a/microsoft-edge/devtools-guide-chromium/rendering-tools/index.md +++ b/microsoft-edge/devtools-guide-chromium/rendering-tools/index.md @@ -96,7 +96,7 @@ Select a `Recalculate Style` event to view more information about it in the **De ![Long recalculate style](./index-images/rendering-tools-performance-recalculate-style-summary.png) -To reduce the impact of `Recalculate Style` events, minimize use of CSS properties that trigger layout, paint, and composite. These properties have the greatest impact on rendering performance. For more information, see [Stick to Compositor-Only Properties and Manage Layer Count](https://web.dev/stick-to-compositor-only-properties-and-manage-layer-count/) +To reduce the impact of `Recalculate Style` events, minimize use of CSS properties that trigger layout, paint, and composite. These properties have the greatest impact on rendering performance. For more information, see [Stick to Compositor-Only Properties and Manage Layer Count](https://web.dev/stick-to-compositor-only-properties-and-manage-layer-count/). diff --git a/microsoft-edge/devtools-guide-chromium/sensors/index.md b/microsoft-edge/devtools-guide-chromium/sensors/index.md index 70cc0ea2be..36f169b6ae 100644 --- a/microsoft-edge/devtools-guide-chromium/sensors/index.md +++ b/microsoft-edge/devtools-guide-chromium/sensors/index.md @@ -277,7 +277,7 @@ Demos: * [Idle detection demo](https://microsoftedge.github.io/Demos/idle-detection/) Web.dev: -* [User Location](https://web.dev/user-location/) +* [User Location](https://web.dev/user-location/) Emscripten: * [Pthreads support](https://emscripten.org/docs/porting/pthreads.html) diff --git a/microsoft-edge/devtools-guide-chromium/speed/get-started.md b/microsoft-edge/devtools-guide-chromium/speed/get-started.md index 93629ff7b8..37e2a4dfaa 100644 --- a/microsoft-edge/devtools-guide-chromium/speed/get-started.md +++ b/microsoft-edge/devtools-guide-chromium/speed/get-started.md @@ -23,6 +23,8 @@ ms.date: 02/15/2023 limitations under the License. --> # Optimize website speed using Lighthouse + + This tutorial teaches you how to use **Lighthouse** and other tools in DevTools to find ways to make your websites load faster. The **Lighthouse** tool provides links to content that's hosted on third-party websites. Microsoft isn't responsible for and has no control over the content of these sites and any data that may be collected. @@ -230,7 +232,7 @@ For a small app, doing a one-off resize like this might be good enough. But for * Automatically resize images during your build process. -* Create multiple sizes of each image during the build process and then use `srcset` in your code. At runtime, the browser takes care of choosing which size is best for the device. To learn more, see [Responsive images](https://web.dev/responsive-images/) at web.dev. +* Create multiple sizes of each image during the build process and then use `srcset` in your code. At runtime, the browser takes care of choosing which size is best for the device. To learn more, see [Responsive images](https://web.dev/responsive-images/) at web.dev. * Use an image CDN that lets you dynamically resize an image when you request it. diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2020/06/devtools.md b/microsoft-edge/devtools-guide-chromium/whats-new/2020/06/devtools.md index 46e3321f36..f0034ae853 100644 --- a/microsoft-edge/devtools-guide-chromium/whats-new/2020/06/devtools.md +++ b/microsoft-edge/devtools-guide-chromium/whats-new/2020/06/devtools.md @@ -172,7 +172,7 @@ See also: ###### First Meaningful Paint deprecation -First Meaningful Paint (FMP) is deprecated in Lighthouse 6.0. FMP has also been removed from the **Performance** tool. **Largest Contentful Paint** is the recommended replacement for FMP. +First Meaningful Paint (FMP) is deprecated in Lighthouse 6.0. FMP has also been removed from the **Performance** tool. **Largest Contentful Paint** is the recommended replacement for FMP. diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2020/08/devtools.md b/microsoft-edge/devtools-guide-chromium/whats-new/2020/08/devtools.md index 2b48c0c89a..e5b9ea3f67 100644 --- a/microsoft-edge/devtools-guide-chromium/whats-new/2020/08/devtools.md +++ b/microsoft-edge/devtools-guide-chromium/whats-new/2020/08/devtools.md @@ -23,6 +23,8 @@ ms.date: 05/04/2021 limitations under the License. --> # What's New in DevTools (Microsoft Edge 86) + + These are the latest features in the Stable release of Microsoft Edge DevTools. @@ -262,7 +264,7 @@ See also: #### Emulate inactive users -The [Idle Detection API](https://web.dev/idle-detection) allows developers to detect inactive users and react on idle state changes. You can now use DevTools to emulate idle state changes in the **Sensors** tool for both the user state and the screen state instead of waiting for the actual idle state to change. You can open the **Sensors** tool in the [Quick View](../../../customize/index.md#quick-view) panel at the bottom of DevTools. +The [Idle Detection API](https://web.dev/idle-detection) allows developers to detect inactive users and react on idle state changes. You can now use DevTools to emulate idle state changes in the **Sensors** tool for both the user state and the screen state instead of waiting for the actual idle state to change. You can open the **Sensors** tool in the [Quick View](../../../customize/index.md#quick-view) panel at the bottom of DevTools. ![Emulate inactive users](./devtools-images/emulate-idle.png) From ef4620cbbe4438b331ee7fc48a879a469e0c4e97 Mon Sep 17 00:00:00 2001 From: "Michael S. Hoffman" Date: Tue, 17 Jun 2025 23:21:19 -0700 Subject: [PATCH 02/21] /webdriver-chromium/ --- .openpublishing.redirection.json | 20 ++ microsoft-edge/developer/index.yml | 2 +- .../devtools-guide-chromium/ie-mode/index.md | 2 +- .../whats-new/2020/11/devtools.md | 4 +- .../whats-new/2022/02/devtools.md | 2 +- .../whats-new/2022/12/devtools-108.md | 2 +- microsoft-edge/index.yml | 2 +- microsoft-edge/playwright/index.md | 2 +- microsoft-edge/puppeteer/index.md | 4 +- .../test-and-automation.md | 2 +- microsoft-edge/toc.yml | 8 +- .../capabilities-edge-options.md | 208 +++++++++--------- .../contact.md | 0 .../ie-mode-images/iedriver-install.png | Bin .../ie-mode.md | 0 .../microsoft-edge-driver-install.png | Bin .../index-images/microsoft-edge-version.png | Bin .../index.md | 0 microsoft-edge/webview2/how-to/webdriver.md | 8 +- 19 files changed, 143 insertions(+), 123 deletions(-) rename microsoft-edge/{webdriver-chromium => webdriver}/capabilities-edge-options.md (98%) rename microsoft-edge/{webdriver-chromium => webdriver}/contact.md (100%) rename microsoft-edge/{webdriver-chromium => webdriver}/ie-mode-images/iedriver-install.png (100%) rename microsoft-edge/{webdriver-chromium => webdriver}/ie-mode.md (100%) rename microsoft-edge/{webdriver-chromium => webdriver}/index-images/microsoft-edge-driver-install.png (100%) rename microsoft-edge/{webdriver-chromium => webdriver}/index-images/microsoft-edge-version.png (100%) rename microsoft-edge/{webdriver-chromium => webdriver}/index.md (100%) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 97c76f473e..fb5d3d7504 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -1345,6 +1345,26 @@ "redirect_url": "https://github.com/microsoft/edge-selenium-tools/wiki/using-gpg-to-verify-selenium-tools-for-microsoft-edge-releases", "redirect_document_id": false }, + { + "source_path": "./microsoft-edge/webdriver-chromium/capabilities-edge-options.md", + "redirect_url": "/microsoft-edge/webdriver/capabilities-edge-options", + "redirect_document_id": false + }, + { + "source_path": "./microsoft-edge/webdriver-chromium/contact.md", + "redirect_url": "/microsoft-edge/webdriver/contact", + "redirect_document_id": false + }, + { + "source_path": "./microsoft-edge/webdriver-chromium/ie-mode.md", + "redirect_url": "/microsoft-edge/webdriver/ie-mode", + "redirect_document_id": false + }, + { + "source_path": "./microsoft-edge/webdriver-chromium/index.md", + "redirect_url": "/microsoft-edge/webdriver/", + "redirect_document_id": false + }, // /WebDriver: "microsoft / edge-selenium-tools" repo // ============================================================================ // Archived EdgeHTML content diff --git a/microsoft-edge/developer/index.yml b/microsoft-edge/developer/index.yml index 89e9781d91..b78804b951 100644 --- a/microsoft-edge/developer/index.yml +++ b/microsoft-edge/developer/index.yml @@ -219,7 +219,7 @@ landingContent: url: ../puppeteer/index.md - text: Use WebDriver to automate Microsoft Edge - url: ../webdriver-chromium/index.md + url: ../webdriver/index.md - text: webhint extension for Visual Studio Code url: ../visual-studio-code/webhint.md diff --git a/microsoft-edge/devtools-guide-chromium/ie-mode/index.md b/microsoft-edge/devtools-guide-chromium/ie-mode/index.md index 35ac5bc78d..c64b1e600b 100644 --- a/microsoft-edge/devtools-guide-chromium/ie-mode/index.md +++ b/microsoft-edge/devtools-guide-chromium/ie-mode/index.md @@ -75,7 +75,7 @@ Microsoft Edge doesn't support automating IE mode through the `InternetExplorer` If your automation application doesn't require IE mode for the website (or app) content to function correctly, we recommend updating your application to use Microsoft Edge instead of Internet Explorer 11. Many available automation tools support Microsoft Edge, including WebDriver and Playwright. -* To learn more about automating Microsoft Edge using WebDriver, see [Use WebDriver to automate Microsoft Edge](../../webdriver-chromium/index.md). +* To learn more about automating Microsoft Edge using WebDriver, see [Use WebDriver to automate Microsoft Edge](../../webdriver/index.md). * To learn more about using Playwright, see [Use Playwright to automate and test in Microsoft Edge](../../playwright/index.md). Applications that require IE mode for the website (or app) content to function correctly should use the `WebBrowser` control. The `WebBrowser` control uses the Internet Explorer platform (MSHTML/Trident) to render web content, and will work even if the Internet Explorer 11 desktop application isn't available. diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2020/11/devtools.md b/microsoft-edge/devtools-guide-chromium/whats-new/2020/11/devtools.md index 128dba8dc1..d18b0558db 100644 --- a/microsoft-edge/devtools-guide-chromium/whats-new/2020/11/devtools.md +++ b/microsoft-edge/devtools-guide-chromium/whats-new/2020/11/devtools.md @@ -34,12 +34,12 @@ These are the latest features in the Stable release of Microsoft Edge DevTools. Microsoft Edge Dev is now supported on Ubuntu, Debian, Fedora, and openSUSE distributions. Download and install the Microsoft Edge Dev `.deb` or `.rpm` package directly from the [Microsoft Edge Insider site](https://www.microsoft.com/edge/download/insider?platform=linux) or use the standard package management tools of your Linux distribution. -If you are using a Linux environment in your continuous integration and delivery (CI/CD) solutions, Microsoft Edge WebDriver is also available on Linux. To get started automating Microsoft Edge with Microsoft Edge WebDriver, see [Recent versions](https://developer.microsoft.com/microsoft-edge/tools/webdriver#downloads) at the Microsoft Edge WebDriver page. For help with automating Microsoft Edge with Microsoft Edge WebDriver, see [Use WebDriver for test automation](../../../../webdriver-chromium/index.md). +If you are using a Linux environment in your continuous integration and delivery (CI/CD) solutions, Microsoft Edge WebDriver is also available on Linux. To get started automating Microsoft Edge with Microsoft Edge WebDriver, see [Recent versions](https://developer.microsoft.com/microsoft-edge/tools/webdriver#downloads) at the Microsoft Edge WebDriver page. For help with automating Microsoft Edge with Microsoft Edge WebDriver, see [Use WebDriver for test automation](../../../../webdriver/index.md). ![DevTools in Microsoft Edge on Linux](./devtools-images/edge-on-linux.png) See also: -* [Use WebDriver to automate Microsoft Edge](../../../../webdriver-chromium/index.md) +* [Use WebDriver to automate Microsoft Edge](../../../../webdriver/index.md) diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2022/02/devtools.md b/microsoft-edge/devtools-guide-chromium/whats-new/2022/02/devtools.md index b047a25aa9..9cf813e1a7 100644 --- a/microsoft-edge/devtools-guide-chromium/whats-new/2022/02/devtools.md +++ b/microsoft-edge/devtools-guide-chromium/whats-new/2022/02/devtools.md @@ -46,7 +46,7 @@ Update: Starting with Microsoft Edge 131, the Visual Studio Code themes feature Starting June 15, 2022, Internet Explorer 11 will no longer be supported on certain versions of Windows 10. IE mode is a feature of Microsoft Edge for organizations that still need Internet Explorer 11 for compatibility with legacy websites or apps. To support testing of those legacy websites and apps, you can now automate IE mode with Selenium 4 and Internet Explorer Driver. See also: -* [Use Internet Explorer Driver to automate IE mode in Microsoft Edge](../../../../webdriver-chromium/ie-mode.md) +* [Use Internet Explorer Driver to automate IE mode in Microsoft Edge](../../../../webdriver/ie-mode.md) diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2022/12/devtools-108.md b/microsoft-edge/devtools-guide-chromium/whats-new/2022/12/devtools-108.md index 79f6765fb9..d4e0a11a12 100644 --- a/microsoft-edge/devtools-guide-chromium/whats-new/2022/12/devtools-108.md +++ b/microsoft-edge/devtools-guide-chromium/whats-new/2022/12/devtools-108.md @@ -39,7 +39,7 @@ To download Microsoft Edge WebDriver on Apple M1 devices: Thank you for your feedback on this issue! See also: -* [Use WebDriver to automate Microsoft Edge](../../../../webdriver-chromium/index.md) +* [Use WebDriver to automate Microsoft Edge](../../../../webdriver/index.md) * [Microsoft Edge WebDriver](https://developer.microsoft.com/microsoft-edge/tools/webdriver/) * [Issue #17: Support for Apple silicon](https://github.com/MicrosoftEdge/EdgeWebDriver/issues/17) diff --git a/microsoft-edge/index.yml b/microsoft-edge/index.yml index a4471ab847..d0dca20c65 100644 --- a/microsoft-edge/index.yml +++ b/microsoft-edge/index.yml @@ -380,7 +380,7 @@ conceptualContent: itemType: how-to-guide - text: Use WebDriver to automate Microsoft Edge - url: ./webdriver-chromium/index.md + url: ./webdriver/index.md itemType: how-to-guide - text: webhint extension for Visual Studio Code diff --git a/microsoft-edge/playwright/index.md b/microsoft-edge/playwright/index.md index 67f096489a..11d7d315da 100644 --- a/microsoft-edge/playwright/index.md +++ b/microsoft-edge/playwright/index.md @@ -38,7 +38,7 @@ npx playwright install ## Run a basic test -The approach used by Playwright will be familiar to users of other browser-testing frameworks, such as [WebDriver](../webdriver-chromium/index.md) or [Puppeteer](../puppeteer/index.md). You can create an instance of the browser, open a page in the browser, and then manipulate the page by using the [Playwright API](https://playwright.dev/docs/api/class-playwright). +The approach used by Playwright will be familiar to users of other browser-testing frameworks, such as [WebDriver](../webdriver/index.md) or [Puppeteer](../puppeteer/index.md). You can create an instance of the browser, open a page in the browser, and then manipulate the page by using the [Playwright API](https://playwright.dev/docs/api/class-playwright). [Playwright Test](https://playwright.dev/docs/intro), which is Playwright's test-runner, launches a browser and context for you. An isolated page is then passed into every test, as shown in the following, basic test: diff --git a/microsoft-edge/puppeteer/index.md b/microsoft-edge/puppeteer/index.md index 62ee220825..7c7161f299 100644 --- a/microsoft-edge/puppeteer/index.md +++ b/microsoft-edge/puppeteer/index.md @@ -38,7 +38,7 @@ yarn add puppeteer-core ## Launch Microsoft Edge with puppeteer-core -`puppeteer-core` is similar to other browser-testing-frameworks, such as [WebDriver](../webdriver-chromium/index.md). You create an instance of the browser, open a webpage, and then manipulate the webpage by using the Puppeteer API. +`puppeteer-core` is similar to other browser-testing-frameworks, such as [WebDriver](../webdriver/index.md). You create an instance of the browser, open a webpage, and then manipulate the webpage by using the Puppeteer API. To use `puppeteer-core` to launch Microsoft Edge: @@ -107,7 +107,7 @@ The preceding example demonstrates basic automation and testing scenarios that y #### Local articles -* [WebDriver](../webdriver-chromium/index.md) +* [WebDriver](../webdriver/index.md) * [Contact the Microsoft Edge DevTools team](../devtools-guide-chromium/contact.md) to send feedback about using Puppeteer, puppeteer-core, and Microsoft Edge. * [Chrome DevTools Protocol (CDP)](../webview2/concepts/overview-features-apis.md#chrome-devtools-protocol-cdp) in _Overview of WebView2 APIs_ * [Use the Chrome DevTools Protocol (CDP) in WebView2 apps](../webview2/how-to/chromium-devtools-protocol.md) diff --git a/microsoft-edge/test-and-automation/test-and-automation.md b/microsoft-edge/test-and-automation/test-and-automation.md index f092addc72..d243d316b9 100644 --- a/microsoft-edge/test-and-automation/test-and-automation.md +++ b/microsoft-edge/test-and-automation/test-and-automation.md @@ -81,7 +81,7 @@ WebDriver allows you to automate Microsoft Edge by simulating user interaction. * Runs multiple sessions of Microsoft Edge on a specific machine. -See [Use WebDriver to automate Microsoft Edge](../webdriver-chromium/index.md). +See [Use WebDriver to automate Microsoft Edge](../webdriver/index.md). diff --git a/microsoft-edge/toc.yml b/microsoft-edge/toc.yml index 327bff6b1a..9e62d66c8a 100644 --- a/microsoft-edge/toc.yml +++ b/microsoft-edge/toc.yml @@ -1763,16 +1763,16 @@ - name: WebDriver items: - name: Use WebDriver to automate Microsoft Edge - href: ./webdriver-chromium/index.md + href: ./webdriver/index.md - name: Use Internet Explorer Driver to automate IE mode in Microsoft Edge - href: ./webdriver-chromium/ie-mode.md + href: ./webdriver/ie-mode.md - name: Capabilities and EdgeOptions - href: ./webdriver-chromium/capabilities-edge-options.md + href: ./webdriver/capabilities-edge-options.md - name: Contact the Microsoft Edge WebDriver team - href: ./webdriver-chromium/contact.md + href: ./webdriver/contact.md - name: webhint extension for Visual Studio Code href: ./test-and-automation/webhint.md diff --git a/microsoft-edge/webdriver-chromium/capabilities-edge-options.md b/microsoft-edge/webdriver/capabilities-edge-options.md similarity index 98% rename from microsoft-edge/webdriver-chromium/capabilities-edge-options.md rename to microsoft-edge/webdriver/capabilities-edge-options.md index a71302d01a..3a93953b0b 100644 --- a/microsoft-edge/webdriver-chromium/capabilities-edge-options.md +++ b/microsoft-edge/webdriver/capabilities-edge-options.md @@ -1,104 +1,104 @@ ---- -title: Capabilities and EdgeOptions -description: A reference for WebDriver capabilities and Microsoft Edge-specific options supported by EdgeDriver. -author: MSEdgeTeam -ms.author: msedgedevrel -ms.topic: conceptual -ms.service: microsoft-edge -ms.date: 06/09/2022 ---- -# Capabilities and EdgeOptions - -Capabilities are options that you can use to customize and configure an `EdgeDriver` session. To learn about starting a new `EdgeDriver` session, see [Automating Microsoft Edge](index.md#automate-microsoft-edge). This article describes all supported capabilities for Microsoft Edge and provides details about passing the capabilities to `EdgeDriver` sessions. - -Capabilities are passed to a WebDriver session as a JSON map, but it is not necessary or recommended to set them this way. WebDriver testing frameworks (such as [Selenium](https://www.selenium.dev)) provide language bindings which typically have convenience methods so you don't need to configure the JSON map yourself. For example, Selenium configures capabilities through the `EdgeOptions` class. - - -To learn more about how to configure capabilities, consult the documentation for your preferred WebDriver testing framework. For more information, see [Choose a WebDriver testing framework](index.md#choose-a-webdriver-testing-framework). - - - -## Using the EdgeOptions class - -Create an instance of `EdgeOptions`, which provides convenience methods to set Microsoft Edge-specific capabilities. After you configure the `EdgeOptions` object, pass `EdgeOptions` into the `EdgeDriver` constructor. - -```csharp -var options = new EdgeOptions(); -options.AddExtensions("/path/to/extension.crx"); -var driver = new EdgeDriver(options); -``` - -To use capabilities that don't have an associated convenience method, use the `AddAdditionalEdgeOption` method. You must pass the full name of the capability and a value with the correct type. For the full list of accepted capabilities and value types, see [EdgeOptions object](#edgeoptions-object). - -```csharp -options.AddAdditionalEdgeOption("wdpAddress", "remotehost:50080"); -``` - - - -## Recognized Capabilities - -For standard capabilities that `EdgeDriver` accepts, see [Selenium documentation](https://www.selenium.dev/documentation/en/driver_idiosyncrasies/shared_capabilities/) and the [W3C WebDriver standard](https://www.w3.org/TR/webdriver#capabilities). This article only lists capabilities specific to Microsoft Edge. - - - -## EdgeOptions object - -Most Microsoft Edge-specific capabilities are exposed through the `EdgeOptions` object. In some languages, the capabilities are implemented by the `EdgeOptions` class. In other languages, the capabilities are stored under the `ms:edgeOptions` dictionary in `DesiredCapabilities`. - -| Capability | Type | Details | -|:--- |:--- |:--- | -| `args` | list of strings | List of command-line arguments to pass to the Microsoft Edge process on launch. Arguments with an associated value should be separated by an `=` sign (for example, `['start-maximized', 'user-data-dir=/tmp/temp_profile']`). If you're launching a WebView2 app, then these arguments are passed to your app instead of the underlying Microsoft Edge browser process. To pass arguments to the browser process when launching a WebView2 app, use [webviewOptions.additionalBrowserArguments](#webviewoptions-object) instead. | -| `binary` | string | Path to the Microsoft Edge binary to use (on macOS, the path should be the actual binary, not just the app. for example, `/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge`). | -| `debuggerAddress` | string | An address of a debugger server to which to connect, in the form of `hostname/ip:port`, for example `127.0.0.1:38947`. | -| `detach` | boolean | Default value = `false`. If `false`, Microsoft Edge quits when the WebDriver service shuts down, even if the WebDriver local end hasn't closed the session. If `true`, Microsoft Edge only quits if the WebDriver local end closes the session. If `true`, and the WebDriver local end doesn't close the session, `EdgeDriver` doesn't clean up the temporary user data folder used by the Microsoft Edge instance. | -| `excludeSwitches` | list of strings | List of Microsoft Edge command line switches to exclude that EdgeDriver by default passes when starting Microsoft Edge. Avoid the `--` prefix for switches. | -| `extensions` | list of strings | A list of extensions to install on startup. Each item in the list should be a base-64 encoded packed extension (`.crx`). | -| `localState` | dictionary | A dictionary with each entry consisting of the name of the preference and the value. The preferences are applied to the Local State file in the user data folder. | -| `minidumpPath` | string | Directory to store Microsoft Edge minidumps. (Supported only on Linux.) | -| `mobileEmulation` | dictionary | A dictionary with either a value for `deviceName`, or values for `deviceMetrics` and `userAgent`. | -| `perfLoggingPrefs` | dictionary | An optional dictionary that specifies performance logging preferences. For more information, see [perfLoggingPrefs object](#perfloggingprefs-object). | -| `prefs` | dictionary | A dictionary with each entry consisting of the name of the preference and the value. The preferences are only applied to the user profile in use. For examples, see the `Preferences` file in the user data folder of Microsoft Edge. | -| `wdpAddress` | string | An address of a Windows Device Portal server to connect to, in the form of `hostname/ip:port`, for example `127.0.0.1:50080`. For more information, see [Remote Debugging - Windows 10 devices](../devtools-guide-chromium/remote-debugging/windows.md). | -| `wdpPassword` | string | Optional password to use when connecting to a Windows Device Portal server. Required if the server has authentication enabled. | -| `wdpUsername` | string | Optional user name to use when connecting to a Windows Device Portal server. Required if the server has authentication enabled. | -| `wdpProcessId` | integer | The required process ID to use if attaching to a running WebView2 UWP app, for example `36590`. This information can be found in `browserProcessId` on `http:///msedge`. | -| `webviewOptions` | dictionary | An optional dictionary that can be used to configure the WebView2 environment when launching a WebView2 app. For more information, see [webviewOptions object](#webviewoptions-object). | -| `windowsApp` | string | Application user model ID of a Microsoft Edge app package to launch, for example `Microsoft.MicrosoftEdge.Stable_8wekyb3d8bbwe!MSEDGE`. Use `windowsApp` instead of `binary` when connecting to a Windows 10X device or emulator using Windows Device Portal. | -| `windowTypes` | list of strings | A list of window types that are displayed in the list of window handles. For access to Android webview elements, include `webview` in the list. | - - - -## perfLoggingPrefs object - -The `perfLoggingPrefs` dictionary has the following format. All keys are optional. - -| Key | Type | Default value | Details | -|:--- |:--- |:--- |:--- | -| `bufferUsageReportingInterval` | positive integer | 1000 | The requested number of milliseconds between DevTools trace buffer usage events. For example, if 1000, then once per second, DevTools reports how full the trace buffer is. If a report indicates the buffer usage is 100%, a warning is issued. | -| `enableNetwork` | boolean | true | To collect (or not collect) events from Network domain. | -| `enablePage` | boolean | true | To collect (or not collect) events from Page domain. | -| `traceCategories` | string | (empty) | A comma-separated string of Microsoft Edge tracing categories for which trace events should be collected. An unspecified or empty string disables tracing. | - - - -## webviewOptions object - -The `webviewOptions` dictionary is used to configure the WebView2 environment when launching a WebView2 app. It has the following format. All keys are optional. - -| Key | Type | Default value | Details | -|:--- |:--- |:--- |:--- | -| `browserExecutableFolder` | string | (empty) | Path to a folder containing a fixed version WebView2 runtime to use. For more information about using a fixed version runtime distribution with WebView2, see [Distribute a WebView2 app and the WebView2 Runtime](../webview2/concepts/distribution.md#the-fixed-version-runtime-distribution-mode). | -| `userDataFolder` | string | (empty) | Path to the user data folder that WebView2 will use. If `userDataFolder` isn't specified, Microsoft Edge WebDriver will create a temporary user data folder. For more information about managing the user data folder with WebView2, see [Manage the user data folder](../webview2/concepts/user-data-folder.md). | -| `additionalBrowserArguments` | list of strings | | List of command-line arguments that WebView2 will pass to the browser process on launch. Arguments with an associated value should be separated by an `=` sign (for example, `['start-maximized', 'log-level=0']`). | -| `releaseChannelPreference` | string | | Preferred WebView2 evergreen runtime distribution to use. Can be `"stable"` or `"canary"`. | - - -## Returned capabilities - -The following list contains all of the Microsoft Edge-specific capabilities that `EdgeDriver` returns when you create a new session. - -| Capability | Type | Details | -|:--- |:--- |:--- | -| `msedge.msedgedriverVersion` | string | The version of EdgeDriver. | -| `msedge.userDataDir` | string | The path to the user data folder used by the Microsoft Edge instance. | +--- +title: Capabilities and EdgeOptions +description: A reference for WebDriver capabilities and Microsoft Edge-specific options supported by EdgeDriver. +author: MSEdgeTeam +ms.author: msedgedevrel +ms.topic: conceptual +ms.service: microsoft-edge +ms.date: 06/09/2022 +--- +# Capabilities and EdgeOptions + +Capabilities are options that you can use to customize and configure an `EdgeDriver` session. To learn about starting a new `EdgeDriver` session, see [Automating Microsoft Edge](index.md#automate-microsoft-edge). This article describes all supported capabilities for Microsoft Edge and provides details about passing the capabilities to `EdgeDriver` sessions. + +Capabilities are passed to a WebDriver session as a JSON map, but it is not necessary or recommended to set them this way. WebDriver testing frameworks (such as [Selenium](https://www.selenium.dev)) provide language bindings which typically have convenience methods so you don't need to configure the JSON map yourself. For example, Selenium configures capabilities through the `EdgeOptions` class. + + +To learn more about how to configure capabilities, consult the documentation for your preferred WebDriver testing framework. For more information, see [Choose a WebDriver testing framework](index.md#choose-a-webdriver-testing-framework). + + + +## Using the EdgeOptions class + +Create an instance of `EdgeOptions`, which provides convenience methods to set Microsoft Edge-specific capabilities. After you configure the `EdgeOptions` object, pass `EdgeOptions` into the `EdgeDriver` constructor. + +```csharp +var options = new EdgeOptions(); +options.AddExtensions("/path/to/extension.crx"); +var driver = new EdgeDriver(options); +``` + +To use capabilities that don't have an associated convenience method, use the `AddAdditionalEdgeOption` method. You must pass the full name of the capability and a value with the correct type. For the full list of accepted capabilities and value types, see [EdgeOptions object](#edgeoptions-object). + +```csharp +options.AddAdditionalEdgeOption("wdpAddress", "remotehost:50080"); +``` + + + +## Recognized Capabilities + +For standard capabilities that `EdgeDriver` accepts, see [Selenium documentation](https://www.selenium.dev/documentation/en/driver_idiosyncrasies/shared_capabilities/) and the [W3C WebDriver standard](https://www.w3.org/TR/webdriver#capabilities). This article only lists capabilities specific to Microsoft Edge. + + + +## EdgeOptions object + +Most Microsoft Edge-specific capabilities are exposed through the `EdgeOptions` object. In some languages, the capabilities are implemented by the `EdgeOptions` class. In other languages, the capabilities are stored under the `ms:edgeOptions` dictionary in `DesiredCapabilities`. + +| Capability | Type | Details | +|:--- |:--- |:--- | +| `args` | list of strings | List of command-line arguments to pass to the Microsoft Edge process on launch. Arguments with an associated value should be separated by an `=` sign (for example, `['start-maximized', 'user-data-dir=/tmp/temp_profile']`). If you're launching a WebView2 app, then these arguments are passed to your app instead of the underlying Microsoft Edge browser process. To pass arguments to the browser process when launching a WebView2 app, use [webviewOptions.additionalBrowserArguments](#webviewoptions-object) instead. | +| `binary` | string | Path to the Microsoft Edge binary to use (on macOS, the path should be the actual binary, not just the app. for example, `/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge`). | +| `debuggerAddress` | string | An address of a debugger server to which to connect, in the form of `hostname/ip:port`, for example `127.0.0.1:38947`. | +| `detach` | boolean | Default value = `false`. If `false`, Microsoft Edge quits when the WebDriver service shuts down, even if the WebDriver local end hasn't closed the session. If `true`, Microsoft Edge only quits if the WebDriver local end closes the session. If `true`, and the WebDriver local end doesn't close the session, `EdgeDriver` doesn't clean up the temporary user data folder used by the Microsoft Edge instance. | +| `excludeSwitches` | list of strings | List of Microsoft Edge command line switches to exclude that EdgeDriver by default passes when starting Microsoft Edge. Avoid the `--` prefix for switches. | +| `extensions` | list of strings | A list of extensions to install on startup. Each item in the list should be a base-64 encoded packed extension (`.crx`). | +| `localState` | dictionary | A dictionary with each entry consisting of the name of the preference and the value. The preferences are applied to the Local State file in the user data folder. | +| `minidumpPath` | string | Directory to store Microsoft Edge minidumps. (Supported only on Linux.) | +| `mobileEmulation` | dictionary | A dictionary with either a value for `deviceName`, or values for `deviceMetrics` and `userAgent`. | +| `perfLoggingPrefs` | dictionary | An optional dictionary that specifies performance logging preferences. For more information, see [perfLoggingPrefs object](#perfloggingprefs-object). | +| `prefs` | dictionary | A dictionary with each entry consisting of the name of the preference and the value. The preferences are only applied to the user profile in use. For examples, see the `Preferences` file in the user data folder of Microsoft Edge. | +| `wdpAddress` | string | An address of a Windows Device Portal server to connect to, in the form of `hostname/ip:port`, for example `127.0.0.1:50080`. For more information, see [Remote Debugging - Windows 10 devices](../devtools-guide-chromium/remote-debugging/windows.md). | +| `wdpPassword` | string | Optional password to use when connecting to a Windows Device Portal server. Required if the server has authentication enabled. | +| `wdpUsername` | string | Optional user name to use when connecting to a Windows Device Portal server. Required if the server has authentication enabled. | +| `wdpProcessId` | integer | The required process ID to use if attaching to a running WebView2 UWP app, for example `36590`. This information can be found in `browserProcessId` on `http:///msedge`. | +| `webviewOptions` | dictionary | An optional dictionary that can be used to configure the WebView2 environment when launching a WebView2 app. For more information, see [webviewOptions object](#webviewoptions-object). | +| `windowsApp` | string | Application user model ID of a Microsoft Edge app package to launch, for example `Microsoft.MicrosoftEdge.Stable_8wekyb3d8bbwe!MSEDGE`. Use `windowsApp` instead of `binary` when connecting to a Windows 10X device or emulator using Windows Device Portal. | +| `windowTypes` | list of strings | A list of window types that are displayed in the list of window handles. For access to Android webview elements, include `webview` in the list. | + + + +## perfLoggingPrefs object + +The `perfLoggingPrefs` dictionary has the following format. All keys are optional. + +| Key | Type | Default value | Details | +|:--- |:--- |:--- |:--- | +| `bufferUsageReportingInterval` | positive integer | 1000 | The requested number of milliseconds between DevTools trace buffer usage events. For example, if 1000, then once per second, DevTools reports how full the trace buffer is. If a report indicates the buffer usage is 100%, a warning is issued. | +| `enableNetwork` | boolean | true | To collect (or not collect) events from Network domain. | +| `enablePage` | boolean | true | To collect (or not collect) events from Page domain. | +| `traceCategories` | string | (empty) | A comma-separated string of Microsoft Edge tracing categories for which trace events should be collected. An unspecified or empty string disables tracing. | + + + +## webviewOptions object + +The `webviewOptions` dictionary is used to configure the WebView2 environment when launching a WebView2 app. It has the following format. All keys are optional. + +| Key | Type | Default value | Details | +|:--- |:--- |:--- |:--- | +| `browserExecutableFolder` | string | (empty) | Path to a folder containing a fixed version WebView2 runtime to use. For more information about using a fixed version runtime distribution with WebView2, see [Distribute a WebView2 app and the WebView2 Runtime](../webview2/concepts/distribution.md#the-fixed-version-runtime-distribution-mode). | +| `userDataFolder` | string | (empty) | Path to the user data folder that WebView2 will use. If `userDataFolder` isn't specified, Microsoft Edge WebDriver will create a temporary user data folder. For more information about managing the user data folder with WebView2, see [Manage the user data folder](../webview2/concepts/user-data-folder.md). | +| `additionalBrowserArguments` | list of strings | | List of command-line arguments that WebView2 will pass to the browser process on launch. Arguments with an associated value should be separated by an `=` sign (for example, `['start-maximized', 'log-level=0']`). | +| `releaseChannelPreference` | string | | Preferred WebView2 evergreen runtime distribution to use. Can be `"stable"` or `"canary"`. | + + +## Returned capabilities + +The following list contains all of the Microsoft Edge-specific capabilities that `EdgeDriver` returns when you create a new session. + +| Capability | Type | Details | +|:--- |:--- |:--- | +| `msedge.msedgedriverVersion` | string | The version of EdgeDriver. | +| `msedge.userDataDir` | string | The path to the user data folder used by the Microsoft Edge instance. | diff --git a/microsoft-edge/webdriver-chromium/contact.md b/microsoft-edge/webdriver/contact.md similarity index 100% rename from microsoft-edge/webdriver-chromium/contact.md rename to microsoft-edge/webdriver/contact.md diff --git a/microsoft-edge/webdriver-chromium/ie-mode-images/iedriver-install.png b/microsoft-edge/webdriver/ie-mode-images/iedriver-install.png similarity index 100% rename from microsoft-edge/webdriver-chromium/ie-mode-images/iedriver-install.png rename to microsoft-edge/webdriver/ie-mode-images/iedriver-install.png diff --git a/microsoft-edge/webdriver-chromium/ie-mode.md b/microsoft-edge/webdriver/ie-mode.md similarity index 100% rename from microsoft-edge/webdriver-chromium/ie-mode.md rename to microsoft-edge/webdriver/ie-mode.md diff --git a/microsoft-edge/webdriver-chromium/index-images/microsoft-edge-driver-install.png b/microsoft-edge/webdriver/index-images/microsoft-edge-driver-install.png similarity index 100% rename from microsoft-edge/webdriver-chromium/index-images/microsoft-edge-driver-install.png rename to microsoft-edge/webdriver/index-images/microsoft-edge-driver-install.png diff --git a/microsoft-edge/webdriver-chromium/index-images/microsoft-edge-version.png b/microsoft-edge/webdriver/index-images/microsoft-edge-version.png similarity index 100% rename from microsoft-edge/webdriver-chromium/index-images/microsoft-edge-version.png rename to microsoft-edge/webdriver/index-images/microsoft-edge-version.png diff --git a/microsoft-edge/webdriver-chromium/index.md b/microsoft-edge/webdriver/index.md similarity index 100% rename from microsoft-edge/webdriver-chromium/index.md rename to microsoft-edge/webdriver/index.md diff --git a/microsoft-edge/webview2/how-to/webdriver.md b/microsoft-edge/webview2/how-to/webdriver.md index 0a3d2032e4..7b77bef2bf 100644 --- a/microsoft-edge/webview2/how-to/webdriver.md +++ b/microsoft-edge/webview2/how-to/webdriver.md @@ -19,7 +19,7 @@ To create automated tests that simulate user interactions for your WebView2 app, Test authors write tests that use WebDriver commands to tell the browser to perform specific actions. Microsoft Edge WebDriver receives these commands and then asks the browser to perform the requested action. Microsoft Edge WebDriver supports automating both the Microsoft Edge Browser, and WebView2 apps. -For the relationship between the WebDriver protocol, Microsoft Edge WebDriver as an implementation of that protocol, and the Selenium test framework, see [WebDriver overview](../../webdriver-chromium/index.md#relationship-between-webdriver-and-other-software). +For the relationship between the WebDriver protocol, Microsoft Edge WebDriver as an implementation of that protocol, and the Selenium test framework, see [WebDriver overview](../../webdriver/index.md#relationship-between-webdriver-and-other-software). @@ -35,7 +35,7 @@ Once you've cloned the repo, build the project in Visual Studio. It should look ## Step 2: Install Microsoft Edge WebDriver -Follow the instructions to install [Microsoft Edge WebDriver](../../webdriver-chromium/index.md#download-microsoft-edge-webdriver). Microsoft Edge WebDriver is the browser-specific driver required by Selenium to automate and test WebView2. +Follow the instructions to install [Microsoft Edge WebDriver](../../webdriver/index.md#download-microsoft-edge-webdriver). Microsoft Edge WebDriver is the browser-specific driver required by Selenium to automate and test WebView2. Make sure the version of Microsoft Edge WebDriver matches the version of the WebView2 Runtime that your app uses. For the WebView2API Sample to work, make sure your version of the WebView2 Runtime is greater than or equal to the supported version of the latest WebView2 SDK release. @@ -233,7 +233,7 @@ EdgeDriver e = new EdgeDriver(eo); At `localhost:9222` above, the port number given on this line should match the port number that you chose when setting `--remote-debugging-port` above. -For more info about the `DebuggerAddress` property of the `EdgeOptions` object, see [EdgeOptions object](../../webdriver-chromium/capabilities-edge-options.md#edgeoptions-object). +For more info about the `DebuggerAddress` property of the `EdgeOptions` object, see [EdgeOptions object](../../webdriver/capabilities-edge-options.md#edgeoptions-object). @@ -284,4 +284,4 @@ You can override parameters by values that are specified in the WEBVIEW2_ADDITIO * [WebDriver on Selenium documentation](https://www.selenium.dev/documentation/en/webdriver) - How the APIs Selenium drives WebView2 or Microsoft Edge. * [Introduction to Microsoft Edge WebView2](../index.md) - How to use the WebView2 control to embed web content in your native app. -* [Use WebDriver for test automation](../../webdriver-chromium/index.md) - Automating Microsoft Edge. +* [Use WebDriver for test automation](../../webdriver/index.md) - Automating Microsoft Edge. From b2042222290628db7b0231a6460426e5ddfaf69e Mon Sep 17 00:00:00 2001 From: "Michael S. Hoffman" Date: Tue, 17 Jun 2025 23:24:06 -0700 Subject: [PATCH 03/21] Revert "/webdriver-chromium/" This reverts commit ef4620cbbe4438b331ee7fc48a879a469e0c4e97. --- .openpublishing.redirection.json | 20 -- microsoft-edge/developer/index.yml | 2 +- .../devtools-guide-chromium/ie-mode/index.md | 2 +- .../whats-new/2020/11/devtools.md | 4 +- .../whats-new/2022/02/devtools.md | 2 +- .../whats-new/2022/12/devtools-108.md | 2 +- microsoft-edge/index.yml | 2 +- microsoft-edge/playwright/index.md | 2 +- microsoft-edge/puppeteer/index.md | 4 +- .../test-and-automation.md | 2 +- microsoft-edge/toc.yml | 8 +- .../capabilities-edge-options.md | 208 +++++++++--------- .../contact.md | 0 .../ie-mode-images/iedriver-install.png | Bin .../ie-mode.md | 0 .../microsoft-edge-driver-install.png | Bin .../index-images/microsoft-edge-version.png | Bin .../index.md | 0 microsoft-edge/webview2/how-to/webdriver.md | 8 +- 19 files changed, 123 insertions(+), 143 deletions(-) rename microsoft-edge/{webdriver => webdriver-chromium}/capabilities-edge-options.md (98%) rename microsoft-edge/{webdriver => webdriver-chromium}/contact.md (100%) rename microsoft-edge/{webdriver => webdriver-chromium}/ie-mode-images/iedriver-install.png (100%) rename microsoft-edge/{webdriver => webdriver-chromium}/ie-mode.md (100%) rename microsoft-edge/{webdriver => webdriver-chromium}/index-images/microsoft-edge-driver-install.png (100%) rename microsoft-edge/{webdriver => webdriver-chromium}/index-images/microsoft-edge-version.png (100%) rename microsoft-edge/{webdriver => webdriver-chromium}/index.md (100%) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index fb5d3d7504..97c76f473e 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -1345,26 +1345,6 @@ "redirect_url": "https://github.com/microsoft/edge-selenium-tools/wiki/using-gpg-to-verify-selenium-tools-for-microsoft-edge-releases", "redirect_document_id": false }, - { - "source_path": "./microsoft-edge/webdriver-chromium/capabilities-edge-options.md", - "redirect_url": "/microsoft-edge/webdriver/capabilities-edge-options", - "redirect_document_id": false - }, - { - "source_path": "./microsoft-edge/webdriver-chromium/contact.md", - "redirect_url": "/microsoft-edge/webdriver/contact", - "redirect_document_id": false - }, - { - "source_path": "./microsoft-edge/webdriver-chromium/ie-mode.md", - "redirect_url": "/microsoft-edge/webdriver/ie-mode", - "redirect_document_id": false - }, - { - "source_path": "./microsoft-edge/webdriver-chromium/index.md", - "redirect_url": "/microsoft-edge/webdriver/", - "redirect_document_id": false - }, // /WebDriver: "microsoft / edge-selenium-tools" repo // ============================================================================ // Archived EdgeHTML content diff --git a/microsoft-edge/developer/index.yml b/microsoft-edge/developer/index.yml index b78804b951..89e9781d91 100644 --- a/microsoft-edge/developer/index.yml +++ b/microsoft-edge/developer/index.yml @@ -219,7 +219,7 @@ landingContent: url: ../puppeteer/index.md - text: Use WebDriver to automate Microsoft Edge - url: ../webdriver/index.md + url: ../webdriver-chromium/index.md - text: webhint extension for Visual Studio Code url: ../visual-studio-code/webhint.md diff --git a/microsoft-edge/devtools-guide-chromium/ie-mode/index.md b/microsoft-edge/devtools-guide-chromium/ie-mode/index.md index c64b1e600b..35ac5bc78d 100644 --- a/microsoft-edge/devtools-guide-chromium/ie-mode/index.md +++ b/microsoft-edge/devtools-guide-chromium/ie-mode/index.md @@ -75,7 +75,7 @@ Microsoft Edge doesn't support automating IE mode through the `InternetExplorer` If your automation application doesn't require IE mode for the website (or app) content to function correctly, we recommend updating your application to use Microsoft Edge instead of Internet Explorer 11. Many available automation tools support Microsoft Edge, including WebDriver and Playwright. -* To learn more about automating Microsoft Edge using WebDriver, see [Use WebDriver to automate Microsoft Edge](../../webdriver/index.md). +* To learn more about automating Microsoft Edge using WebDriver, see [Use WebDriver to automate Microsoft Edge](../../webdriver-chromium/index.md). * To learn more about using Playwright, see [Use Playwright to automate and test in Microsoft Edge](../../playwright/index.md). Applications that require IE mode for the website (or app) content to function correctly should use the `WebBrowser` control. The `WebBrowser` control uses the Internet Explorer platform (MSHTML/Trident) to render web content, and will work even if the Internet Explorer 11 desktop application isn't available. diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2020/11/devtools.md b/microsoft-edge/devtools-guide-chromium/whats-new/2020/11/devtools.md index d18b0558db..128dba8dc1 100644 --- a/microsoft-edge/devtools-guide-chromium/whats-new/2020/11/devtools.md +++ b/microsoft-edge/devtools-guide-chromium/whats-new/2020/11/devtools.md @@ -34,12 +34,12 @@ These are the latest features in the Stable release of Microsoft Edge DevTools. Microsoft Edge Dev is now supported on Ubuntu, Debian, Fedora, and openSUSE distributions. Download and install the Microsoft Edge Dev `.deb` or `.rpm` package directly from the [Microsoft Edge Insider site](https://www.microsoft.com/edge/download/insider?platform=linux) or use the standard package management tools of your Linux distribution. -If you are using a Linux environment in your continuous integration and delivery (CI/CD) solutions, Microsoft Edge WebDriver is also available on Linux. To get started automating Microsoft Edge with Microsoft Edge WebDriver, see [Recent versions](https://developer.microsoft.com/microsoft-edge/tools/webdriver#downloads) at the Microsoft Edge WebDriver page. For help with automating Microsoft Edge with Microsoft Edge WebDriver, see [Use WebDriver for test automation](../../../../webdriver/index.md). +If you are using a Linux environment in your continuous integration and delivery (CI/CD) solutions, Microsoft Edge WebDriver is also available on Linux. To get started automating Microsoft Edge with Microsoft Edge WebDriver, see [Recent versions](https://developer.microsoft.com/microsoft-edge/tools/webdriver#downloads) at the Microsoft Edge WebDriver page. For help with automating Microsoft Edge with Microsoft Edge WebDriver, see [Use WebDriver for test automation](../../../../webdriver-chromium/index.md). ![DevTools in Microsoft Edge on Linux](./devtools-images/edge-on-linux.png) See also: -* [Use WebDriver to automate Microsoft Edge](../../../../webdriver/index.md) +* [Use WebDriver to automate Microsoft Edge](../../../../webdriver-chromium/index.md) diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2022/02/devtools.md b/microsoft-edge/devtools-guide-chromium/whats-new/2022/02/devtools.md index 9cf813e1a7..b047a25aa9 100644 --- a/microsoft-edge/devtools-guide-chromium/whats-new/2022/02/devtools.md +++ b/microsoft-edge/devtools-guide-chromium/whats-new/2022/02/devtools.md @@ -46,7 +46,7 @@ Update: Starting with Microsoft Edge 131, the Visual Studio Code themes feature Starting June 15, 2022, Internet Explorer 11 will no longer be supported on certain versions of Windows 10. IE mode is a feature of Microsoft Edge for organizations that still need Internet Explorer 11 for compatibility with legacy websites or apps. To support testing of those legacy websites and apps, you can now automate IE mode with Selenium 4 and Internet Explorer Driver. See also: -* [Use Internet Explorer Driver to automate IE mode in Microsoft Edge](../../../../webdriver/ie-mode.md) +* [Use Internet Explorer Driver to automate IE mode in Microsoft Edge](../../../../webdriver-chromium/ie-mode.md) diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2022/12/devtools-108.md b/microsoft-edge/devtools-guide-chromium/whats-new/2022/12/devtools-108.md index d4e0a11a12..79f6765fb9 100644 --- a/microsoft-edge/devtools-guide-chromium/whats-new/2022/12/devtools-108.md +++ b/microsoft-edge/devtools-guide-chromium/whats-new/2022/12/devtools-108.md @@ -39,7 +39,7 @@ To download Microsoft Edge WebDriver on Apple M1 devices: Thank you for your feedback on this issue! See also: -* [Use WebDriver to automate Microsoft Edge](../../../../webdriver/index.md) +* [Use WebDriver to automate Microsoft Edge](../../../../webdriver-chromium/index.md) * [Microsoft Edge WebDriver](https://developer.microsoft.com/microsoft-edge/tools/webdriver/) * [Issue #17: Support for Apple silicon](https://github.com/MicrosoftEdge/EdgeWebDriver/issues/17) diff --git a/microsoft-edge/index.yml b/microsoft-edge/index.yml index d0dca20c65..a4471ab847 100644 --- a/microsoft-edge/index.yml +++ b/microsoft-edge/index.yml @@ -380,7 +380,7 @@ conceptualContent: itemType: how-to-guide - text: Use WebDriver to automate Microsoft Edge - url: ./webdriver/index.md + url: ./webdriver-chromium/index.md itemType: how-to-guide - text: webhint extension for Visual Studio Code diff --git a/microsoft-edge/playwright/index.md b/microsoft-edge/playwright/index.md index 11d7d315da..67f096489a 100644 --- a/microsoft-edge/playwright/index.md +++ b/microsoft-edge/playwright/index.md @@ -38,7 +38,7 @@ npx playwright install ## Run a basic test -The approach used by Playwright will be familiar to users of other browser-testing frameworks, such as [WebDriver](../webdriver/index.md) or [Puppeteer](../puppeteer/index.md). You can create an instance of the browser, open a page in the browser, and then manipulate the page by using the [Playwright API](https://playwright.dev/docs/api/class-playwright). +The approach used by Playwright will be familiar to users of other browser-testing frameworks, such as [WebDriver](../webdriver-chromium/index.md) or [Puppeteer](../puppeteer/index.md). You can create an instance of the browser, open a page in the browser, and then manipulate the page by using the [Playwright API](https://playwright.dev/docs/api/class-playwright). [Playwright Test](https://playwright.dev/docs/intro), which is Playwright's test-runner, launches a browser and context for you. An isolated page is then passed into every test, as shown in the following, basic test: diff --git a/microsoft-edge/puppeteer/index.md b/microsoft-edge/puppeteer/index.md index 7c7161f299..62ee220825 100644 --- a/microsoft-edge/puppeteer/index.md +++ b/microsoft-edge/puppeteer/index.md @@ -38,7 +38,7 @@ yarn add puppeteer-core ## Launch Microsoft Edge with puppeteer-core -`puppeteer-core` is similar to other browser-testing-frameworks, such as [WebDriver](../webdriver/index.md). You create an instance of the browser, open a webpage, and then manipulate the webpage by using the Puppeteer API. +`puppeteer-core` is similar to other browser-testing-frameworks, such as [WebDriver](../webdriver-chromium/index.md). You create an instance of the browser, open a webpage, and then manipulate the webpage by using the Puppeteer API. To use `puppeteer-core` to launch Microsoft Edge: @@ -107,7 +107,7 @@ The preceding example demonstrates basic automation and testing scenarios that y #### Local articles -* [WebDriver](../webdriver/index.md) +* [WebDriver](../webdriver-chromium/index.md) * [Contact the Microsoft Edge DevTools team](../devtools-guide-chromium/contact.md) to send feedback about using Puppeteer, puppeteer-core, and Microsoft Edge. * [Chrome DevTools Protocol (CDP)](../webview2/concepts/overview-features-apis.md#chrome-devtools-protocol-cdp) in _Overview of WebView2 APIs_ * [Use the Chrome DevTools Protocol (CDP) in WebView2 apps](../webview2/how-to/chromium-devtools-protocol.md) diff --git a/microsoft-edge/test-and-automation/test-and-automation.md b/microsoft-edge/test-and-automation/test-and-automation.md index d243d316b9..f092addc72 100644 --- a/microsoft-edge/test-and-automation/test-and-automation.md +++ b/microsoft-edge/test-and-automation/test-and-automation.md @@ -81,7 +81,7 @@ WebDriver allows you to automate Microsoft Edge by simulating user interaction. * Runs multiple sessions of Microsoft Edge on a specific machine. -See [Use WebDriver to automate Microsoft Edge](../webdriver/index.md). +See [Use WebDriver to automate Microsoft Edge](../webdriver-chromium/index.md). diff --git a/microsoft-edge/toc.yml b/microsoft-edge/toc.yml index 9e62d66c8a..327bff6b1a 100644 --- a/microsoft-edge/toc.yml +++ b/microsoft-edge/toc.yml @@ -1763,16 +1763,16 @@ - name: WebDriver items: - name: Use WebDriver to automate Microsoft Edge - href: ./webdriver/index.md + href: ./webdriver-chromium/index.md - name: Use Internet Explorer Driver to automate IE mode in Microsoft Edge - href: ./webdriver/ie-mode.md + href: ./webdriver-chromium/ie-mode.md - name: Capabilities and EdgeOptions - href: ./webdriver/capabilities-edge-options.md + href: ./webdriver-chromium/capabilities-edge-options.md - name: Contact the Microsoft Edge WebDriver team - href: ./webdriver/contact.md + href: ./webdriver-chromium/contact.md - name: webhint extension for Visual Studio Code href: ./test-and-automation/webhint.md diff --git a/microsoft-edge/webdriver/capabilities-edge-options.md b/microsoft-edge/webdriver-chromium/capabilities-edge-options.md similarity index 98% rename from microsoft-edge/webdriver/capabilities-edge-options.md rename to microsoft-edge/webdriver-chromium/capabilities-edge-options.md index 3a93953b0b..a71302d01a 100644 --- a/microsoft-edge/webdriver/capabilities-edge-options.md +++ b/microsoft-edge/webdriver-chromium/capabilities-edge-options.md @@ -1,104 +1,104 @@ ---- -title: Capabilities and EdgeOptions -description: A reference for WebDriver capabilities and Microsoft Edge-specific options supported by EdgeDriver. -author: MSEdgeTeam -ms.author: msedgedevrel -ms.topic: conceptual -ms.service: microsoft-edge -ms.date: 06/09/2022 ---- -# Capabilities and EdgeOptions - -Capabilities are options that you can use to customize and configure an `EdgeDriver` session. To learn about starting a new `EdgeDriver` session, see [Automating Microsoft Edge](index.md#automate-microsoft-edge). This article describes all supported capabilities for Microsoft Edge and provides details about passing the capabilities to `EdgeDriver` sessions. - -Capabilities are passed to a WebDriver session as a JSON map, but it is not necessary or recommended to set them this way. WebDriver testing frameworks (such as [Selenium](https://www.selenium.dev)) provide language bindings which typically have convenience methods so you don't need to configure the JSON map yourself. For example, Selenium configures capabilities through the `EdgeOptions` class. - - -To learn more about how to configure capabilities, consult the documentation for your preferred WebDriver testing framework. For more information, see [Choose a WebDriver testing framework](index.md#choose-a-webdriver-testing-framework). - - - -## Using the EdgeOptions class - -Create an instance of `EdgeOptions`, which provides convenience methods to set Microsoft Edge-specific capabilities. After you configure the `EdgeOptions` object, pass `EdgeOptions` into the `EdgeDriver` constructor. - -```csharp -var options = new EdgeOptions(); -options.AddExtensions("/path/to/extension.crx"); -var driver = new EdgeDriver(options); -``` - -To use capabilities that don't have an associated convenience method, use the `AddAdditionalEdgeOption` method. You must pass the full name of the capability and a value with the correct type. For the full list of accepted capabilities and value types, see [EdgeOptions object](#edgeoptions-object). - -```csharp -options.AddAdditionalEdgeOption("wdpAddress", "remotehost:50080"); -``` - - - -## Recognized Capabilities - -For standard capabilities that `EdgeDriver` accepts, see [Selenium documentation](https://www.selenium.dev/documentation/en/driver_idiosyncrasies/shared_capabilities/) and the [W3C WebDriver standard](https://www.w3.org/TR/webdriver#capabilities). This article only lists capabilities specific to Microsoft Edge. - - - -## EdgeOptions object - -Most Microsoft Edge-specific capabilities are exposed through the `EdgeOptions` object. In some languages, the capabilities are implemented by the `EdgeOptions` class. In other languages, the capabilities are stored under the `ms:edgeOptions` dictionary in `DesiredCapabilities`. - -| Capability | Type | Details | -|:--- |:--- |:--- | -| `args` | list of strings | List of command-line arguments to pass to the Microsoft Edge process on launch. Arguments with an associated value should be separated by an `=` sign (for example, `['start-maximized', 'user-data-dir=/tmp/temp_profile']`). If you're launching a WebView2 app, then these arguments are passed to your app instead of the underlying Microsoft Edge browser process. To pass arguments to the browser process when launching a WebView2 app, use [webviewOptions.additionalBrowserArguments](#webviewoptions-object) instead. | -| `binary` | string | Path to the Microsoft Edge binary to use (on macOS, the path should be the actual binary, not just the app. for example, `/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge`). | -| `debuggerAddress` | string | An address of a debugger server to which to connect, in the form of `hostname/ip:port`, for example `127.0.0.1:38947`. | -| `detach` | boolean | Default value = `false`. If `false`, Microsoft Edge quits when the WebDriver service shuts down, even if the WebDriver local end hasn't closed the session. If `true`, Microsoft Edge only quits if the WebDriver local end closes the session. If `true`, and the WebDriver local end doesn't close the session, `EdgeDriver` doesn't clean up the temporary user data folder used by the Microsoft Edge instance. | -| `excludeSwitches` | list of strings | List of Microsoft Edge command line switches to exclude that EdgeDriver by default passes when starting Microsoft Edge. Avoid the `--` prefix for switches. | -| `extensions` | list of strings | A list of extensions to install on startup. Each item in the list should be a base-64 encoded packed extension (`.crx`). | -| `localState` | dictionary | A dictionary with each entry consisting of the name of the preference and the value. The preferences are applied to the Local State file in the user data folder. | -| `minidumpPath` | string | Directory to store Microsoft Edge minidumps. (Supported only on Linux.) | -| `mobileEmulation` | dictionary | A dictionary with either a value for `deviceName`, or values for `deviceMetrics` and `userAgent`. | -| `perfLoggingPrefs` | dictionary | An optional dictionary that specifies performance logging preferences. For more information, see [perfLoggingPrefs object](#perfloggingprefs-object). | -| `prefs` | dictionary | A dictionary with each entry consisting of the name of the preference and the value. The preferences are only applied to the user profile in use. For examples, see the `Preferences` file in the user data folder of Microsoft Edge. | -| `wdpAddress` | string | An address of a Windows Device Portal server to connect to, in the form of `hostname/ip:port`, for example `127.0.0.1:50080`. For more information, see [Remote Debugging - Windows 10 devices](../devtools-guide-chromium/remote-debugging/windows.md). | -| `wdpPassword` | string | Optional password to use when connecting to a Windows Device Portal server. Required if the server has authentication enabled. | -| `wdpUsername` | string | Optional user name to use when connecting to a Windows Device Portal server. Required if the server has authentication enabled. | -| `wdpProcessId` | integer | The required process ID to use if attaching to a running WebView2 UWP app, for example `36590`. This information can be found in `browserProcessId` on `http:///msedge`. | -| `webviewOptions` | dictionary | An optional dictionary that can be used to configure the WebView2 environment when launching a WebView2 app. For more information, see [webviewOptions object](#webviewoptions-object). | -| `windowsApp` | string | Application user model ID of a Microsoft Edge app package to launch, for example `Microsoft.MicrosoftEdge.Stable_8wekyb3d8bbwe!MSEDGE`. Use `windowsApp` instead of `binary` when connecting to a Windows 10X device or emulator using Windows Device Portal. | -| `windowTypes` | list of strings | A list of window types that are displayed in the list of window handles. For access to Android webview elements, include `webview` in the list. | - - - -## perfLoggingPrefs object - -The `perfLoggingPrefs` dictionary has the following format. All keys are optional. - -| Key | Type | Default value | Details | -|:--- |:--- |:--- |:--- | -| `bufferUsageReportingInterval` | positive integer | 1000 | The requested number of milliseconds between DevTools trace buffer usage events. For example, if 1000, then once per second, DevTools reports how full the trace buffer is. If a report indicates the buffer usage is 100%, a warning is issued. | -| `enableNetwork` | boolean | true | To collect (or not collect) events from Network domain. | -| `enablePage` | boolean | true | To collect (or not collect) events from Page domain. | -| `traceCategories` | string | (empty) | A comma-separated string of Microsoft Edge tracing categories for which trace events should be collected. An unspecified or empty string disables tracing. | - - - -## webviewOptions object - -The `webviewOptions` dictionary is used to configure the WebView2 environment when launching a WebView2 app. It has the following format. All keys are optional. - -| Key | Type | Default value | Details | -|:--- |:--- |:--- |:--- | -| `browserExecutableFolder` | string | (empty) | Path to a folder containing a fixed version WebView2 runtime to use. For more information about using a fixed version runtime distribution with WebView2, see [Distribute a WebView2 app and the WebView2 Runtime](../webview2/concepts/distribution.md#the-fixed-version-runtime-distribution-mode). | -| `userDataFolder` | string | (empty) | Path to the user data folder that WebView2 will use. If `userDataFolder` isn't specified, Microsoft Edge WebDriver will create a temporary user data folder. For more information about managing the user data folder with WebView2, see [Manage the user data folder](../webview2/concepts/user-data-folder.md). | -| `additionalBrowserArguments` | list of strings | | List of command-line arguments that WebView2 will pass to the browser process on launch. Arguments with an associated value should be separated by an `=` sign (for example, `['start-maximized', 'log-level=0']`). | -| `releaseChannelPreference` | string | | Preferred WebView2 evergreen runtime distribution to use. Can be `"stable"` or `"canary"`. | - - -## Returned capabilities - -The following list contains all of the Microsoft Edge-specific capabilities that `EdgeDriver` returns when you create a new session. - -| Capability | Type | Details | -|:--- |:--- |:--- | -| `msedge.msedgedriverVersion` | string | The version of EdgeDriver. | -| `msedge.userDataDir` | string | The path to the user data folder used by the Microsoft Edge instance. | +--- +title: Capabilities and EdgeOptions +description: A reference for WebDriver capabilities and Microsoft Edge-specific options supported by EdgeDriver. +author: MSEdgeTeam +ms.author: msedgedevrel +ms.topic: conceptual +ms.service: microsoft-edge +ms.date: 06/09/2022 +--- +# Capabilities and EdgeOptions + +Capabilities are options that you can use to customize and configure an `EdgeDriver` session. To learn about starting a new `EdgeDriver` session, see [Automating Microsoft Edge](index.md#automate-microsoft-edge). This article describes all supported capabilities for Microsoft Edge and provides details about passing the capabilities to `EdgeDriver` sessions. + +Capabilities are passed to a WebDriver session as a JSON map, but it is not necessary or recommended to set them this way. WebDriver testing frameworks (such as [Selenium](https://www.selenium.dev)) provide language bindings which typically have convenience methods so you don't need to configure the JSON map yourself. For example, Selenium configures capabilities through the `EdgeOptions` class. + + +To learn more about how to configure capabilities, consult the documentation for your preferred WebDriver testing framework. For more information, see [Choose a WebDriver testing framework](index.md#choose-a-webdriver-testing-framework). + + + +## Using the EdgeOptions class + +Create an instance of `EdgeOptions`, which provides convenience methods to set Microsoft Edge-specific capabilities. After you configure the `EdgeOptions` object, pass `EdgeOptions` into the `EdgeDriver` constructor. + +```csharp +var options = new EdgeOptions(); +options.AddExtensions("/path/to/extension.crx"); +var driver = new EdgeDriver(options); +``` + +To use capabilities that don't have an associated convenience method, use the `AddAdditionalEdgeOption` method. You must pass the full name of the capability and a value with the correct type. For the full list of accepted capabilities and value types, see [EdgeOptions object](#edgeoptions-object). + +```csharp +options.AddAdditionalEdgeOption("wdpAddress", "remotehost:50080"); +``` + + + +## Recognized Capabilities + +For standard capabilities that `EdgeDriver` accepts, see [Selenium documentation](https://www.selenium.dev/documentation/en/driver_idiosyncrasies/shared_capabilities/) and the [W3C WebDriver standard](https://www.w3.org/TR/webdriver#capabilities). This article only lists capabilities specific to Microsoft Edge. + + + +## EdgeOptions object + +Most Microsoft Edge-specific capabilities are exposed through the `EdgeOptions` object. In some languages, the capabilities are implemented by the `EdgeOptions` class. In other languages, the capabilities are stored under the `ms:edgeOptions` dictionary in `DesiredCapabilities`. + +| Capability | Type | Details | +|:--- |:--- |:--- | +| `args` | list of strings | List of command-line arguments to pass to the Microsoft Edge process on launch. Arguments with an associated value should be separated by an `=` sign (for example, `['start-maximized', 'user-data-dir=/tmp/temp_profile']`). If you're launching a WebView2 app, then these arguments are passed to your app instead of the underlying Microsoft Edge browser process. To pass arguments to the browser process when launching a WebView2 app, use [webviewOptions.additionalBrowserArguments](#webviewoptions-object) instead. | +| `binary` | string | Path to the Microsoft Edge binary to use (on macOS, the path should be the actual binary, not just the app. for example, `/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge`). | +| `debuggerAddress` | string | An address of a debugger server to which to connect, in the form of `hostname/ip:port`, for example `127.0.0.1:38947`. | +| `detach` | boolean | Default value = `false`. If `false`, Microsoft Edge quits when the WebDriver service shuts down, even if the WebDriver local end hasn't closed the session. If `true`, Microsoft Edge only quits if the WebDriver local end closes the session. If `true`, and the WebDriver local end doesn't close the session, `EdgeDriver` doesn't clean up the temporary user data folder used by the Microsoft Edge instance. | +| `excludeSwitches` | list of strings | List of Microsoft Edge command line switches to exclude that EdgeDriver by default passes when starting Microsoft Edge. Avoid the `--` prefix for switches. | +| `extensions` | list of strings | A list of extensions to install on startup. Each item in the list should be a base-64 encoded packed extension (`.crx`). | +| `localState` | dictionary | A dictionary with each entry consisting of the name of the preference and the value. The preferences are applied to the Local State file in the user data folder. | +| `minidumpPath` | string | Directory to store Microsoft Edge minidumps. (Supported only on Linux.) | +| `mobileEmulation` | dictionary | A dictionary with either a value for `deviceName`, or values for `deviceMetrics` and `userAgent`. | +| `perfLoggingPrefs` | dictionary | An optional dictionary that specifies performance logging preferences. For more information, see [perfLoggingPrefs object](#perfloggingprefs-object). | +| `prefs` | dictionary | A dictionary with each entry consisting of the name of the preference and the value. The preferences are only applied to the user profile in use. For examples, see the `Preferences` file in the user data folder of Microsoft Edge. | +| `wdpAddress` | string | An address of a Windows Device Portal server to connect to, in the form of `hostname/ip:port`, for example `127.0.0.1:50080`. For more information, see [Remote Debugging - Windows 10 devices](../devtools-guide-chromium/remote-debugging/windows.md). | +| `wdpPassword` | string | Optional password to use when connecting to a Windows Device Portal server. Required if the server has authentication enabled. | +| `wdpUsername` | string | Optional user name to use when connecting to a Windows Device Portal server. Required if the server has authentication enabled. | +| `wdpProcessId` | integer | The required process ID to use if attaching to a running WebView2 UWP app, for example `36590`. This information can be found in `browserProcessId` on `http:///msedge`. | +| `webviewOptions` | dictionary | An optional dictionary that can be used to configure the WebView2 environment when launching a WebView2 app. For more information, see [webviewOptions object](#webviewoptions-object). | +| `windowsApp` | string | Application user model ID of a Microsoft Edge app package to launch, for example `Microsoft.MicrosoftEdge.Stable_8wekyb3d8bbwe!MSEDGE`. Use `windowsApp` instead of `binary` when connecting to a Windows 10X device or emulator using Windows Device Portal. | +| `windowTypes` | list of strings | A list of window types that are displayed in the list of window handles. For access to Android webview elements, include `webview` in the list. | + + + +## perfLoggingPrefs object + +The `perfLoggingPrefs` dictionary has the following format. All keys are optional. + +| Key | Type | Default value | Details | +|:--- |:--- |:--- |:--- | +| `bufferUsageReportingInterval` | positive integer | 1000 | The requested number of milliseconds between DevTools trace buffer usage events. For example, if 1000, then once per second, DevTools reports how full the trace buffer is. If a report indicates the buffer usage is 100%, a warning is issued. | +| `enableNetwork` | boolean | true | To collect (or not collect) events from Network domain. | +| `enablePage` | boolean | true | To collect (or not collect) events from Page domain. | +| `traceCategories` | string | (empty) | A comma-separated string of Microsoft Edge tracing categories for which trace events should be collected. An unspecified or empty string disables tracing. | + + + +## webviewOptions object + +The `webviewOptions` dictionary is used to configure the WebView2 environment when launching a WebView2 app. It has the following format. All keys are optional. + +| Key | Type | Default value | Details | +|:--- |:--- |:--- |:--- | +| `browserExecutableFolder` | string | (empty) | Path to a folder containing a fixed version WebView2 runtime to use. For more information about using a fixed version runtime distribution with WebView2, see [Distribute a WebView2 app and the WebView2 Runtime](../webview2/concepts/distribution.md#the-fixed-version-runtime-distribution-mode). | +| `userDataFolder` | string | (empty) | Path to the user data folder that WebView2 will use. If `userDataFolder` isn't specified, Microsoft Edge WebDriver will create a temporary user data folder. For more information about managing the user data folder with WebView2, see [Manage the user data folder](../webview2/concepts/user-data-folder.md). | +| `additionalBrowserArguments` | list of strings | | List of command-line arguments that WebView2 will pass to the browser process on launch. Arguments with an associated value should be separated by an `=` sign (for example, `['start-maximized', 'log-level=0']`). | +| `releaseChannelPreference` | string | | Preferred WebView2 evergreen runtime distribution to use. Can be `"stable"` or `"canary"`. | + + +## Returned capabilities + +The following list contains all of the Microsoft Edge-specific capabilities that `EdgeDriver` returns when you create a new session. + +| Capability | Type | Details | +|:--- |:--- |:--- | +| `msedge.msedgedriverVersion` | string | The version of EdgeDriver. | +| `msedge.userDataDir` | string | The path to the user data folder used by the Microsoft Edge instance. | diff --git a/microsoft-edge/webdriver/contact.md b/microsoft-edge/webdriver-chromium/contact.md similarity index 100% rename from microsoft-edge/webdriver/contact.md rename to microsoft-edge/webdriver-chromium/contact.md diff --git a/microsoft-edge/webdriver/ie-mode-images/iedriver-install.png b/microsoft-edge/webdriver-chromium/ie-mode-images/iedriver-install.png similarity index 100% rename from microsoft-edge/webdriver/ie-mode-images/iedriver-install.png rename to microsoft-edge/webdriver-chromium/ie-mode-images/iedriver-install.png diff --git a/microsoft-edge/webdriver/ie-mode.md b/microsoft-edge/webdriver-chromium/ie-mode.md similarity index 100% rename from microsoft-edge/webdriver/ie-mode.md rename to microsoft-edge/webdriver-chromium/ie-mode.md diff --git a/microsoft-edge/webdriver/index-images/microsoft-edge-driver-install.png b/microsoft-edge/webdriver-chromium/index-images/microsoft-edge-driver-install.png similarity index 100% rename from microsoft-edge/webdriver/index-images/microsoft-edge-driver-install.png rename to microsoft-edge/webdriver-chromium/index-images/microsoft-edge-driver-install.png diff --git a/microsoft-edge/webdriver/index-images/microsoft-edge-version.png b/microsoft-edge/webdriver-chromium/index-images/microsoft-edge-version.png similarity index 100% rename from microsoft-edge/webdriver/index-images/microsoft-edge-version.png rename to microsoft-edge/webdriver-chromium/index-images/microsoft-edge-version.png diff --git a/microsoft-edge/webdriver/index.md b/microsoft-edge/webdriver-chromium/index.md similarity index 100% rename from microsoft-edge/webdriver/index.md rename to microsoft-edge/webdriver-chromium/index.md diff --git a/microsoft-edge/webview2/how-to/webdriver.md b/microsoft-edge/webview2/how-to/webdriver.md index 7b77bef2bf..0a3d2032e4 100644 --- a/microsoft-edge/webview2/how-to/webdriver.md +++ b/microsoft-edge/webview2/how-to/webdriver.md @@ -19,7 +19,7 @@ To create automated tests that simulate user interactions for your WebView2 app, Test authors write tests that use WebDriver commands to tell the browser to perform specific actions. Microsoft Edge WebDriver receives these commands and then asks the browser to perform the requested action. Microsoft Edge WebDriver supports automating both the Microsoft Edge Browser, and WebView2 apps. -For the relationship between the WebDriver protocol, Microsoft Edge WebDriver as an implementation of that protocol, and the Selenium test framework, see [WebDriver overview](../../webdriver/index.md#relationship-between-webdriver-and-other-software). +For the relationship between the WebDriver protocol, Microsoft Edge WebDriver as an implementation of that protocol, and the Selenium test framework, see [WebDriver overview](../../webdriver-chromium/index.md#relationship-between-webdriver-and-other-software). @@ -35,7 +35,7 @@ Once you've cloned the repo, build the project in Visual Studio. It should look ## Step 2: Install Microsoft Edge WebDriver -Follow the instructions to install [Microsoft Edge WebDriver](../../webdriver/index.md#download-microsoft-edge-webdriver). Microsoft Edge WebDriver is the browser-specific driver required by Selenium to automate and test WebView2. +Follow the instructions to install [Microsoft Edge WebDriver](../../webdriver-chromium/index.md#download-microsoft-edge-webdriver). Microsoft Edge WebDriver is the browser-specific driver required by Selenium to automate and test WebView2. Make sure the version of Microsoft Edge WebDriver matches the version of the WebView2 Runtime that your app uses. For the WebView2API Sample to work, make sure your version of the WebView2 Runtime is greater than or equal to the supported version of the latest WebView2 SDK release. @@ -233,7 +233,7 @@ EdgeDriver e = new EdgeDriver(eo); At `localhost:9222` above, the port number given on this line should match the port number that you chose when setting `--remote-debugging-port` above. -For more info about the `DebuggerAddress` property of the `EdgeOptions` object, see [EdgeOptions object](../../webdriver/capabilities-edge-options.md#edgeoptions-object). +For more info about the `DebuggerAddress` property of the `EdgeOptions` object, see [EdgeOptions object](../../webdriver-chromium/capabilities-edge-options.md#edgeoptions-object). @@ -284,4 +284,4 @@ You can override parameters by values that are specified in the WEBVIEW2_ADDITIO * [WebDriver on Selenium documentation](https://www.selenium.dev/documentation/en/webdriver) - How the APIs Selenium drives WebView2 or Microsoft Edge. * [Introduction to Microsoft Edge WebView2](../index.md) - How to use the WebView2 control to embed web content in your native app. -* [Use WebDriver for test automation](../../webdriver/index.md) - Automating Microsoft Edge. +* [Use WebDriver for test automation](../../webdriver-chromium/index.md) - Automating Microsoft Edge. From 25551e5be6b91b1d7a1f80a0e7056fe0bf3f4718 Mon Sep 17 00:00:00 2001 From: Michael Hoffman <45407486+mikehoffms@users.noreply.github.com> Date: Thu, 18 Sep 2025 09:45:45 -0700 Subject: [PATCH 04/21] flag all web.dev --- microsoft-edge/devtools/performance/index.md | 21 +++++++++---------- .../devtools/performance/overview.md | 6 +++--- .../devtools/performance/reference.md | 6 +++--- microsoft-edge/devtools/speed/get-started.md | 8 +++---- .../devtools/whats-new/2020/08/devtools.md | 2 +- .../devtools/whats-new/2021/04/devtools.md | 2 +- .../devtools/whats-new/2021/05/devtools.md | 2 +- .../how-to/handle-protocols.md | 2 +- .../how-to/handle-urls.md | 2 +- .../progressive-web-apps/how-to/push.md | 6 +++--- .../progressive-web-apps/how-to/share.md | 4 ++-- .../how-to/window-controls-overlay.md | 2 +- microsoft-edge/progressive-web-apps/index.md | 2 +- .../progressive-web-apps/whats-new/pwa.md | 2 +- .../web-platform/site-impacting-changes.md | 2 +- 15 files changed, 34 insertions(+), 35 deletions(-) diff --git a/microsoft-edge/devtools/performance/index.md b/microsoft-edge/devtools/performance/index.md index 6d9685cbb1..628688cb55 100644 --- a/microsoft-edge/devtools/performance/index.md +++ b/microsoft-edge/devtools/performance/index.md @@ -186,9 +186,7 @@ Continuing from above: ![The line of code that caused the forced layout](./index-images/sources-app-update.png) The problem with the unoptimized code is that, in each animation frame, it changes the style for each icon, and then queries the position of each icon on the page. Because the styles changed, the browser doesn't know if each icon position changed, so it has to re-layout the icon in order to compute the new position. - + @@ -276,7 +274,7 @@ To learn more, see [Use transform and opacity changes for animations](https://we ## Next steps +To learn more, see [Measure Performance With The RAIL Model](https://web.dev/rail/). todo: mdn link --> To get more comfortable with the **Performance** tool, practice profiling your pages and analyzing the results. @@ -286,15 +284,16 @@ Or, [file an issue on the MicrosoftEdge / DevTools repo](https://github.com/Micr In your feedback, include screenshots or links to reproducible pages, if possible. -There are many ways to improve runtime performance. This article focused on one particular animation bottleneck to give you a focused tour of the **Performance** tool, but it's only one of many bottlenecks you may encounter. +There are many ways to improve runtime performance. This article focused on one particular animation bottleneck to give you a focused tour of the **Performance** tool, but it's only one of many bottlenecks you may encounter. diff --git a/microsoft-edge/devtools/performance/overview.md b/microsoft-edge/devtools/performance/overview.md index d328b0fbfb..1e85fb2982 100644 --- a/microsoft-edge/devtools/performance/overview.md +++ b/microsoft-edge/devtools/performance/overview.md @@ -166,9 +166,9 @@ Use the **Performance** tool to view Core Web Vitals metrics in the initial, **L |---|---|---| | Web Vitals | A large set of metrics giving unified guidance to delivering a great user experience on the web. | [Web Vitals](https://web.dev/articles/vitals) | | Core Web Vitals | The subset of Web Vitals that apply to all web pages, and should be measured by all site owners. Each of the Core Web Vitals represents a distinct facet of the user experience, is measurable in the field, and reflects the real-world experience of a critical user-centric outcome. | [Core Web Vitals](https://web.dev/articles/vitals#core-web-vitals) in _Web Vitals_ | -| Largest Contentful Paint (LCP) | Measures _loading_ performance. To provide a good user experience, LCP should occur within 2.5 seconds of when the page first starts loading. The render time of the largest image, text block, or video visible in the viewport, relative to when the user first navigated to the page. | [Largest Contentful Paint (LCP)](https://web.dev/articles/lcp), [Optimize LCP](https://web.dev/articles/optimize-lcp) | -| Cumulative Layout Shift (CLS) | Measures _visual stability_. To provide a good user experience, pages should maintain a CLS of 0.1. or less. The largest burst of layout shift scores for every unexpected layout shift that occurs during the entire lifecycle of a page. | [Cumulative Layout Shift (CLS)](https://web.dev/articles/cls), [Optimize CLS](https://web.dev/articles/optimize-cls) | -| Interaction to Next Paint (INP) | Measures _interactivity_. To provide a good user experience, pages should have a INP of 200 milliseconds or less. The page's overall responsiveness to user interactions, based on the latency of all click, tap, and keyboard interactions that occur throughout the lifespan of a user's visit to a page. | [Interaction to Next Paint (INP)](https://web.dev/articles/inp), [Optimize INP](https://web.dev/articles/optimize-inp) | +| Largest Contentful Paint (LCP) | Measures _loading_ performance. To provide a good user experience, LCP should occur within 2.5 seconds of when the page first starts loading. The render time of the largest image, text block, or video visible in the viewport, relative to when the user first navigated to the page. | [Largest Contentful Paint (LCP)](https://web.dev/articles/lcp), [Optimize LCP](https://web.dev/articles/optimize-lcp) | +| Cumulative Layout Shift (CLS) | Measures _visual stability_. To provide a good user experience, pages should maintain a CLS of 0.1. or less. The largest burst of layout shift scores for every unexpected layout shift that occurs during the entire lifecycle of a page. | [Cumulative Layout Shift (CLS)](https://web.dev/articles/cls), [Optimize CLS](https://web.dev/articles/optimize-cls) | +| Interaction to Next Paint (INP) | Measures _interactivity_. To provide a good user experience, pages should have a INP of 200 milliseconds or less. The page's overall responsiveness to user interactions, based on the latency of all click, tap, and keyboard interactions that occur throughout the lifespan of a user's visit to a page. | [Interaction to Next Paint (INP)](https://web.dev/articles/inp), [Optimize INP](https://web.dev/articles/optimize-inp) | | local metrics, local data | The LCP, CLS, and INP metrics. They are captured locally on the inspected webpage, and are updated as you interact with the page. | | diff --git a/microsoft-edge/devtools/performance/reference.md b/microsoft-edge/devtools/performance/reference.md index 62fa03602f..d08f18fcac 100644 --- a/microsoft-edge/devtools/performance/reference.md +++ b/microsoft-edge/devtools/performance/reference.md @@ -787,7 +787,7 @@ In an overlay with vertical lines across the performance trace, you can see impo * [First Paint (FP)](https://developer.mozilla.org/docs/Glossary/First_paint) * [First Contentful Paint (FCP)](https://web.dev/articles/fcp) -* [Largest Contentful Paint (LCP)](https://web.dev/articles/lcp) +* [Largest Contentful Paint (LCP)](https://web.dev/articles/lcp) * [DOMContentLoaded Event (DCL)](https://developer.mozilla.org/docs/Web/API/Window/DOMContentLoaded_event) * [Onload Event (L)](https://developer.mozilla.org/docs/Web/API/Window/load_event) @@ -829,7 +829,7 @@ Click an interaction to view more information about it in the **Summary** tab. #### View layout shifts -View layout shifts on the **Layout shifts** track. Shifts are shown as purple diamonds and are grouped in clusters (purple lines) based on their proximity on the timeline. For information about clusters, see [Evolving the CLS metric](https://web.dev/blog/evolving-cls) at web.dev. +View layout shifts on the **Layout shifts** track. Shifts are shown as purple diamonds and are grouped in clusters (purple lines) based on their proximity on the timeline. For information about clusters, see [Evolving the CLS metric](https://web.dev/blog/evolving-cls) at web.dev. @@ -837,7 +837,7 @@ To highlight an element that caused a layout shift in the viewport, hover over t To see more information about a layout shift or shifts in the **Summary** tab with timings, scores, elements, and potential culprits, click the corresponding diamond or cluster. -For more information, see [Cumulative Layout Shift (CLS)](https://web.dev/articles/cls) at web.dev. +For more information, see [Cumulative Layout Shift (CLS)](https://web.dev/articles/cls) at web.dev. diff --git a/microsoft-edge/devtools/speed/get-started.md b/microsoft-edge/devtools/speed/get-started.md index 37e2a4dfaa..1f4e2786d8 100644 --- a/microsoft-edge/devtools/speed/get-started.md +++ b/microsoft-edge/devtools/speed/get-started.md @@ -238,7 +238,7 @@ For a small app, doing a one-off resize like this might be good enough. But for * At least, optimize each image. This can often create huge savings. -_Optimization_ means running an image through a program that reduces the size of the image file. For more tips, see [Optimize your images](https://web.dev/fast/#optimize-your-images) in _Fast load times_ at web.dev. +_Optimization_ means running an image through a program that reduces the size of the image file. For more tips, see [Optimize your images](https://web.dev/fast/#optimize-your-images) in _Fast load times_ at web.dev. #### Reduce unused JavaScript @@ -374,9 +374,9 @@ The webpage uses the remaining CSS files so you can't remove them. However, it's To automatically split your CSS code this way, you can use the _Critical_ tool. To learn more, see the [Critical project repo](https://github.com/addyosmani/critical). -You can then load your non-critical CSS code in a way that doesn't block the initial render of the page. To learn more, see [Defer non-critical CSS](https://web.dev/defer-non-critical-css/) at web.dev. +You can then load your non-critical CSS code in a way that doesn't block the initial render of the page. To learn more, see [Defer non-critical CSS](https://web.dev/defer-non-critical-css/) at web.dev. -It's also good to minify your CSS code and remove unneeded whitespace characters and comments. To learn more, see [Minify CSS](https://web.dev/minify-css/) at web.dev. +It's also good to minify your CSS code and remove unneeded whitespace characters and comments. To learn more, see [Minify CSS](https://web.dev/minify-css/) at web.dev. #### Reduce layout shift by setting explicit width and height on images @@ -393,7 +393,7 @@ To prevent layout shifts caused by loading images on a webpage, do either of the * Define each image's `width` and `height` attributes in the HTML code. * Reserve the space in CSS by using the `aspect-ratio` CSS property. -To learn more, see [Images without dimensions](https://web.dev/optimize-cls/#images-without-dimensions) in _Optimize Cumulative Layout Shift_ at web.dev. +To learn more, see [Images without dimensions](https://web.dev/optimize-cls/#images-without-dimensions) in _Optimize Cumulative Layout Shift_ at web.dev. In the following steps, you use the `aspect-ratio` CSS property to avoid layout shifts: diff --git a/microsoft-edge/devtools/whats-new/2020/08/devtools.md b/microsoft-edge/devtools/whats-new/2020/08/devtools.md index ade7f3a51f..6d56da6777 100644 --- a/microsoft-edge/devtools/whats-new/2020/08/devtools.md +++ b/microsoft-edge/devtools/whats-new/2020/08/devtools.md @@ -379,7 +379,7 @@ See also: ###### Security and isolation information -Secure context, [Cross-Origin-Embedder-Policy (COEP)](https://web.dev/coop-coep), and [Cross-Origin-Opener-Policy (COOP)](https://web.dev/coop-coep) are now displayed in the frame details. +Secure context, [Cross-Origin-Embedder-Policy (COEP)](https://web.dev/coop-coep), and [Cross-Origin-Opener-Policy (COOP)](https://web.dev/coop-coep) are now displayed in the frame details. ![Security and isolation information](./devtools-images/coep-coop.png) diff --git a/microsoft-edge/devtools/whats-new/2021/04/devtools.md b/microsoft-edge/devtools/whats-new/2021/04/devtools.md index a2b2d9cf5e..f30b9fdca3 100644 --- a/microsoft-edge/devtools/whats-new/2021/04/devtools.md +++ b/microsoft-edge/devtools/whats-new/2021/04/devtools.md @@ -98,7 +98,7 @@ In Microsoft Edge version 91 or later, if you're a Progressive Web App or servic For real-time updates on this feature in the Chromium open-source project, see Issue [1066604](https://crbug.com/1066604). See also: -* [Updating the service worker](https://web.dev/service-worker-lifecycle#updates) in _The service worker lifecycle_ at web.dev. +* [Updating the service worker](https://web.dev/service-worker-lifecycle#updates) in _The service worker lifecycle_ at web.dev. * [Service worker improvements](../../../service-workers/index.md) - DevTools debugging tools for Progressive Web Apps and service workers. diff --git a/microsoft-edge/devtools/whats-new/2021/05/devtools.md b/microsoft-edge/devtools/whats-new/2021/05/devtools.md index 5f1e61cd6b..093efc5c4b 100644 --- a/microsoft-edge/devtools/whats-new/2021/05/devtools.md +++ b/microsoft-edge/devtools/whats-new/2021/05/devtools.md @@ -275,7 +275,7 @@ In the **Performance** tool, DevTools now displays **Compute Intersections** in See also: -* [Trust is good, observation is better: Intersection Observer v2](https://web.dev/intersectionobserver-v2) +* [Trust is good, observation is better: Intersection Observer v2](https://web.dev/intersectionobserver-v2) * [Analyze a performance recording](../../../performance/reference.md#analyze-a-performance-recording) For the history of this feature in the Chromium open-source project, see Issue [1199137](https://crbug.com/1199137). diff --git a/microsoft-edge/progressive-web-apps/how-to/handle-protocols.md b/microsoft-edge/progressive-web-apps/how-to/handle-protocols.md index 2f11508f07..03142c29a0 100644 --- a/microsoft-edge/progressive-web-apps/how-to/handle-protocols.md +++ b/microsoft-edge/progressive-web-apps/how-to/handle-protocols.md @@ -51,5 +51,5 @@ You can use the **Application** tool in Microsoft Edge DevTools to verify that M ## See also * [Getting started with Protocol Handlers for your web app](https://blogs.windows.com/msedgedev/2022/01/20/getting-started-url-protocol-handlers-microsoft-edge/) -* [URL protocol handler registration for PWAs](https://web.dev/url-protocol-handler/) +* [URL protocol handler registration for PWAs](https://web.dev/url-protocol-handler/) * [Test Progressive Web App (PWA) protocol handling](../../devtools/progressive-web-apps/protocol-handlers.md) diff --git a/microsoft-edge/progressive-web-apps/how-to/handle-urls.md b/microsoft-edge/progressive-web-apps/how-to/handle-urls.md index 7fffd50e17..10d471392d 100644 --- a/microsoft-edge/progressive-web-apps/how-to/handle-urls.md +++ b/microsoft-edge/progressive-web-apps/how-to/handle-urls.md @@ -18,7 +18,7 @@ This link handling is like how native apps handle links on many operating system link handling vs. url handling: Although the present file name is handle-urls.md, this file was repurposed to cover link handling rather than URL handlers. The PWA URL handlers feature was removed from Chromium. -See also [PWAs as URL Handlers](https://web.dev/pwa-url-handler/). +See also [PWAs as URL Handlers](https://web.dev/pwa-url-handler/). todo: mdn link --> diff --git a/microsoft-edge/progressive-web-apps/how-to/push.md b/microsoft-edge/progressive-web-apps/how-to/push.md index 2f4c6dfc6d..5b73e16018 100644 --- a/microsoft-edge/progressive-web-apps/how-to/push.md +++ b/microsoft-edge/progressive-web-apps/how-to/push.md @@ -109,7 +109,7 @@ The `userVisibleOnly` configuration option of the `registration.pushManager.subs Your application needs VAPID (Voluntary Application Server Identification) keys in order to send push messages from your server to your PWA clients. There are several VAPID key generators available online (for example, [Vapidkeys.com](https://vapidkeys.com)). -Once you have a VAPID key, you can send push messages to your PWA clients by using [the Web Push Protocol](https://web.dev/push-notifications-web-push-protocol/). +Once you have a VAPID key, you can send push messages to your PWA clients by using [the Web Push Protocol](https://web.dev/push-notifications-web-push-protocol/). You can use a library to send push messages from your server, depending on the programming language you use. For example, you can use the [web-push](https://github.com/web-push-libs/web-push) library if your server uses Node.js. Other libraries are available on the [WebPush libraries repo](https://github.com/web-push-libs/). @@ -147,5 +147,5 @@ If your PWA doesn't display a notification when a push message is received, Micr ## See also -* [Push notifications overview](https://web.dev/push-notifications-overview/). -* [How to make PWAs re-engageable using Notifications and Push](https://developer.mozilla.org/docs/Web/Progressive_web_apps/Tutorials/js13kGames/Re-engageable_Notifications_Push). +* [Push notifications overview](https://web.dev/push-notifications-overview/) +* [How to make PWAs re-engageable using Notifications and Push](https://developer.mozilla.org/docs/Web/Progressive_web_apps/Tutorials/js13kGames/Re-engageable_Notifications_Push) diff --git a/microsoft-edge/progressive-web-apps/how-to/share.md b/microsoft-edge/progressive-web-apps/how-to/share.md index 86583a099c..5698562976 100644 --- a/microsoft-edge/progressive-web-apps/how-to/share.md +++ b/microsoft-edge/progressive-web-apps/how-to/share.md @@ -313,5 +313,5 @@ self.addEventListener('fetch', event => { ## See also -* [Integrate with the OS sharing UI with the Web Share API](https://web.dev/web-share/) -* [Receiving shared data with the Web Share Target API](https://web.dev/web-share-target/) +* [Integrate with the OS sharing UI with the Web Share API](https://web.dev/web-share/) +* [Receiving shared data with the Web Share Target API](https://web.dev/web-share-target/) diff --git a/microsoft-edge/progressive-web-apps/how-to/window-controls-overlay.md b/microsoft-edge/progressive-web-apps/how-to/window-controls-overlay.md index 43907809e4..5479b065ef 100644 --- a/microsoft-edge/progressive-web-apps/how-to/window-controls-overlay.md +++ b/microsoft-edge/progressive-web-apps/how-to/window-controls-overlay.md @@ -204,6 +204,6 @@ See [Simulate the Window Controls Overlay API without installing your PWA](../.. * [Simulate the Window Controls Overlay API without installing your PWA](../../devtools/progressive-web-apps/simulate-window-controls-overlay.md) - DevTools feature. * [Window Controls Overlay video tutorial](https://www.youtube.com/watch?v=NvClp35dFVI) -* [Customize the window controls overlay of your PWA's title bar](https://web.dev/window-controls-overlay/) +* [Customize the window controls overlay of your PWA's title bar](https://web.dev/window-controls-overlay/) * [Breaking Out of the Box](https://alistapart.com/article/breaking-out-of-the-box/) * [display_override](https://developer.mozilla.org/docs/Web/Manifest/display_override) at MDN. diff --git a/microsoft-edge/progressive-web-apps/index.md b/microsoft-edge/progressive-web-apps/index.md index dc3a09277b..d48d28b854 100644 --- a/microsoft-edge/progressive-web-apps/index.md +++ b/microsoft-edge/progressive-web-apps/index.md @@ -117,6 +117,6 @@ Read more success stories on the [PWA Stats](https://www.pwastats.com/) website. ## See also * [Progressive Web Apps](https://developer.mozilla.org/docs/Web/Progressive_web_apps) at MDN Web Docs. -* [Progressive Web Apps](https://web.dev/progressive-web-apps/) at web.dev. +* [Progressive Web Apps](https://web.dev/progressive-web-apps/) at web.dev. * [Progressive Web Apps](https://wikipedia.org/wiki/Progressive_web_app) at Wikipedia. * [PWA Q&A](https://www.aaron-gustafson.com/notebook/pwa-qa) diff --git a/microsoft-edge/progressive-web-apps/whats-new/pwa.md b/microsoft-edge/progressive-web-apps/whats-new/pwa.md index 63dbc4483e..27bd44da02 100644 --- a/microsoft-edge/progressive-web-apps/whats-new/pwa.md +++ b/microsoft-edge/progressive-web-apps/whats-new/pwa.md @@ -293,7 +293,7 @@ _2023 update: This feature is no longer an origin trial, and has been removed, s See also: * [Handle links to a PWA](../how-to/handle-urls.md) -* [PWAs as URL Handlers](https://web.dev/pwa-url-handler/) +* [PWAs as URL Handlers](https://web.dev/pwa-url-handler/) diff --git a/microsoft-edge/web-platform/site-impacting-changes.md b/microsoft-edge/web-platform/site-impacting-changes.md index a6917ff000..c0878ccd28 100644 --- a/microsoft-edge/web-platform/site-impacting-changes.md +++ b/microsoft-edge/web-platform/site-impacting-changes.md @@ -73,7 +73,7 @@ This table lists high-impact changes which the Microsoft Edge team is tracking c | Removal of Adobe Flash | v88 | This change is happening in the Chromium project, on which Microsoft Edge is based. For more information, see the [Adobe Flash Chromium Roadmap](https://www.chromium.org/flash-roadmap#TOC-Flash-Support-Removed-from-Chromium-Target:-Chrome-88---Jan-2021-). | | Remove FTP support | v88 | Deprecated but still present starting in Beta v87. In v88, FTP support is removed entirely. This change is happening in the Chromium project, on which Microsoft Edge is based. For more information, see the [Chrome Platform Status Entry](https://chromestatus.com/feature/6246151319715840). Enterprises that have sites that still require FTP support can continue to use FTP by configuring the site to use [IE mode](/deployedge/edge-ie-mode). | | HTTP authentication disallowed when third-party cookies are blocked | v87 | Starting with v87, when cookies are blocked for third-party requests, using either the [BlockThirdPartyCookies](/deployedge/microsoft-edge-policies#blockthirdpartycookies) policy or the toggle in `edge://settings`, HTTP authentication is also disallowed. This change may impact Enterprise Mode [Site List downloads for Internet Explorer mode](/deployedge/edge-ie-mode-policies#configure-using-the-use-the-enterprise-mode-ie-website-list-policy) if the endpoint hosting the list requires the use of HTTP authentication. To allow the use of both cookies and HTTP authentication for Enterprise Mode Site List downloads, add a matching URL pattern to the [CookiesAllowedForURLs](/deployedge/microsoft-edge-policies#cookiesallowedforurls) policy. | -| Deprecate AppCache | v86 (Chrome+1) | This change is happening in the Chromium project, on which Microsoft Edge is based. For more information, see the [WebDev documentation](https://web.dev/appcache-removal). The Microsoft rollout schedule for deprecation is planned for one release after Chrome. Requesting an [AppCache OriginTrial Token](https://developers.chrome.com/origintrials/#/view_trial/1776670052997660673) allows sites to continue to use the deprecated API until v90. | +| Deprecate AppCache | v86 (Chrome+1) | This change is happening in the Chromium project, on which Microsoft Edge is based. See [Preparing for AppCache removal](https://web.dev/appcache-removal) at web.dev. The Microsoft rollout schedule for deprecation is planned for one release after Chrome. Requesting an [AppCache OriginTrial Token](https://developers.chrome.com/origintrials/#/view_trial/1776670052997660673) allows sites to continue to use the deprecated API until v90. | | Referrer Policy: Default to `strict-origin-when-cross-origin` | v86 (Chrome+1) | Deprecated but still present starting in Canary v79, Dev v79. This change is happening in the Chromium project, on which Microsoft Edge is based. For more information, including the planned timeline by Google for this change, see the [Chrome Platform Status entry](https://chromestatus.com/feature/6251880185331712). | | Cookies default to `SameSite=Lax` and `SameSite=None-requires-Secure` | v86 (Chrome+1) | Deprecated but still present starting in Canary v82, Dev v82. This change is happening in the Chromium project, on which Microsoft Edge is based. For more information, including the planned timeline by Google for this change, see the [Chrome Platform Status entry](https://chromestatus.com/feature/5088147346030592). | | Turn off TLS/1.0 and TLS/1.1 | v84 | Versions 1.0 and 1.1 of the TLS protocol used by HTTPS sites are now obsolete and unavailable in modern browsers. | From 8bb7c0d9bf4f360b2904c6599acaf3cf1be0ae7a Mon Sep 17 00:00:00 2001 From: Michael Hoffman <45407486+mikehoffms@users.noreply.github.com> Date: Thu, 18 Sep 2025 20:01:18 -0700 Subject: [PATCH 05/21] flag developer.chrome.com --- .../device-mode/testing-other-browsers.md | 8 +++---- .../devtools/experimental-features/index.md | 6 ++--- .../mark-content-scripts-library-code.md | 2 +- microsoft-edge/devtools/storage/cookies.md | 2 +- .../devtools/whats-new/2021/02/devtools.md | 2 +- .../devtools/whats-new/2022/01/devtools.md | 2 +- .../devtools/whats-new/2022/02/devtools.md | 2 +- .../alternate-distribution-options.md | 2 +- .../extensions/developer-guide/api-support.md | 4 ++-- .../extensions/developer-guide/csp.md | 4 ++-- .../developer-guide/declare-permissions.md | 4 ++-- .../developer-guide/devtools-extension.md | 16 ++++++------- .../extensions/developer-guide/manifest-v3.md | 12 +++++----- ...e-your-extension-from-manifest-v2-to-v3.md | 8 +++---- .../minimize-page-load-time-impact.md | 10 ++++---- .../developer-guide/native-messaging.md | 10 ++++---- .../developer-guide/run-compiled-code.md | 6 ++--- .../extensions/developer-guide/sidebar.md | 24 +++++++++---------- .../getting-started/manifest-format.md | 8 +++---- microsoft-edge/extensions/index.md | 6 ++--- microsoft-edge/origin-trials/index.md | 2 +- .../how-to/background-syncs.md | 2 +- .../progressive-web-apps/whats-new/pwa.md | 2 +- .../web-platform/release-notes/133.md | 6 ++--- .../web-platform/release-notes/134.md | 2 +- .../web-platform/release-notes/136.md | 6 ++--- .../web-platform/release-notes/140.md | 2 +- .../web-platform/site-impacting-changes.md | 4 ++-- .../webview2/concepts/process-model.md | 6 ++--- scripts/web-platform-release-notes.js | 2 +- 30 files changed, 86 insertions(+), 86 deletions(-) diff --git a/microsoft-edge/devtools/device-mode/testing-other-browsers.md b/microsoft-edge/devtools/device-mode/testing-other-browsers.md index 5f6779b73a..904afd8994 100644 --- a/microsoft-edge/devtools/device-mode/testing-other-browsers.md +++ b/microsoft-edge/devtools/device-mode/testing-other-browsers.md @@ -49,9 +49,9 @@ Browser emulators don't emulate differences in web API support or CSS support. Here are some browser emulators you can use to test your website on other browsers: -* [Firefox Responsive Design Mode](https://firefox-source-docs.mozilla.org/devtools-user/responsive_design_mode/index.html). -* [Chrome Device Mode](https://developer.chrome.com/docs/devtools/device-mode). -* [Safari Responsive Design Mode](https://developer.apple.com/documentation/safari-developer-tools/responsive-design-mode). +* [Firefox Responsive Design Mode](https://firefox-source-docs.mozilla.org/devtools-user/responsive_design_mode/index.html) +* [Chrome Device Mode](https://developer.chrome.com/docs/devtools/device-mode) +* [Safari Responsive Design Mode](https://developer.apple.com/documentation/safari-developer-tools/responsive-design-mode) @@ -141,7 +141,7 @@ See [Emulators](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Cross Responsive design: * [Responsive Design Mode](https://firefox-source-docs.mozilla.org/devtools-user/responsive_design_mode/index.html) - Firefox. -* [Simulate mobile devices with device mode](https://developer.chrome.com/docs/devtools/device-mode) - Chrome. +* [Simulate mobile devices with device mode](https://developer.chrome.com/docs/devtools/device-mode) - Chrome. * [Responsive Design Mode](https://developer.apple.com/documentation/safari-developer-tools/responsive-design-mode) - Safari. Android: diff --git a/microsoft-edge/devtools/experimental-features/index.md b/microsoft-edge/devtools/experimental-features/index.md index 69e5d74054..4a97164598 100644 --- a/microsoft-edge/devtools/experimental-features/index.md +++ b/microsoft-edge/devtools/experimental-features/index.md @@ -161,7 +161,7 @@ To select this checkbox and then open the **Protocol monitor** tool: See also: * [Use the Chrome DevTools Protocol (CDP) in WebView2 apps](../../webview2/how-to/chromium-devtools-protocol.md) -* [[Experimental] Protocol monitor](https://developer.chrome.com/blog/new-in-devtools-92#protocol-monitor) in _What's New In DevTools (Chrome 92)_. +* [[Experimental] Protocol monitor](https://developer.chrome.com/blog/new-in-devtools-92#protocol-monitor) in _What's New In DevTools (Chrome 92)_. @@ -361,8 +361,8 @@ In the **Sources** tool's tree view, omits code that's included in the Ignore li See also: * [Add content scripts to the Ignore List](../javascript/guides/mark-content-scripts-library-code.md) -* [Enhanced ignore listing](https://developer.chrome.com/blog/new-in-devtools-120#ignore-listing) -* [Improved Ignore list setting](https://developer.chrome.com/blog/new-in-devtools-108/#ignore-list) +* [Enhanced ignore listing](https://developer.chrome.com/blog/new-in-devtools-120#ignore-listing) +* [Improved Ignore list setting](https://developer.chrome.com/blog/new-in-devtools-108/#ignore-list) Status: * This checkbox is present in Microsoft Edge Canary 140. diff --git a/microsoft-edge/devtools/javascript/guides/mark-content-scripts-library-code.md b/microsoft-edge/devtools/javascript/guides/mark-content-scripts-library-code.md index 578107107a..b64a85b031 100644 --- a/microsoft-edge/devtools/javascript/guides/mark-content-scripts-library-code.md +++ b/microsoft-edge/devtools/javascript/guides/mark-content-scripts-library-code.md @@ -45,7 +45,7 @@ To avoid pausing on extension code: ## See also * [Step 4: Step through the code](../index.md#step-4-step-through-the-code) in _Get started debugging JavaScript_ -* [Content scripts](https://developer.chrome.com/docs/extensions/develop/concepts/content-scripts) in Chrome Extensions docs. +* [Content scripts](https://developer.chrome.com/docs/extensions/develop/concepts/content-scripts) in Chrome Extensions docs. diff --git a/microsoft-edge/devtools/storage/cookies.md b/microsoft-edge/devtools/storage/cookies.md index 9ca3625875..53ba03b12b 100644 --- a/microsoft-edge/devtools/storage/cookies.md +++ b/microsoft-edge/devtools/storage/cookies.md @@ -67,7 +67,7 @@ The **Cookies** table contains the following fields: * **SameParty**. This attribute provides web developers a means to annotate cookies that are allowed to be set or sent in same-party, cross-site contexts. -* **Partition Key**. The _partition key_ of a cookie only exists when the cookie is set in partitioned storage and corresponds to the top-level site where the cookie was initially created. See [Cookies Having Independent Partitioned State (CHIPS) origin trial](https://developer.chrome.com/blog/chips-origin-trial/). +* **Partition Key**. The _partition key_ of a cookie only exists when the cookie is set in partitioned storage and corresponds to the top-level site where the cookie was initially created. See [Cookies Having Independent Partitioned State (CHIPS) origin trial](https://developer.chrome.com/blog/chips-origin-trial/). * **Priority**. Contains `low`, `medium` (default), or `high` if the cookie is using the deprecated [Cookie Priority](https://bugs.chromium.org/p/chromium/issues/detail?id=232693) attribute. diff --git a/microsoft-edge/devtools/whats-new/2021/02/devtools.md b/microsoft-edge/devtools/whats-new/2021/02/devtools.md index b29ef28af2..7548436ba5 100644 --- a/microsoft-edge/devtools/whats-new/2021/02/devtools.md +++ b/microsoft-edge/devtools/whats-new/2021/02/devtools.md @@ -233,7 +233,7 @@ See also: ###### PWA installability warning in the Console -The **Console** now displays a more detailed installability warning message for Progressive Web Apps (PWAs), with a link to [Improving Progressive Web App offline support detection](https://developer.chrome.com/blog/improved-pwa-offline-detection). +The **Console** now displays a more detailed installability warning message for Progressive Web Apps (PWAs), with a link to [Improving Progressive Web App offline support detection](https://developer.chrome.com/blog/improved-pwa-offline-detection). ![PWA installability warning in Console tool](./devtools-images/console-pwa-installability.png) diff --git a/microsoft-edge/devtools/whats-new/2022/01/devtools.md b/microsoft-edge/devtools/whats-new/2022/01/devtools.md index 7e705fe36a..cd172065aa 100644 --- a/microsoft-edge/devtools/whats-new/2022/01/devtools.md +++ b/microsoft-edge/devtools/whats-new/2022/01/devtools.md @@ -104,7 +104,7 @@ See also: Microsoft Edge version 97 also includes the following updates from the Chromium project: * [Refresh device list in Device Mode](https://developer.chrome.com/blog/new-in-devtools-97/#device) -* [Autocomplete with Edit as HTML](https://developer.chrome.com/blog/new-in-devtools-97/#code-completion) +* [Autocomplete with Edit as HTML](https://developer.chrome.com/blog/new-in-devtools-97/#code-completion) * [Improved code debugging experience](https://developer.chrome.com/blog/new-in-devtools-97/#debugging) diff --git a/microsoft-edge/devtools/whats-new/2022/02/devtools.md b/microsoft-edge/devtools/whats-new/2022/02/devtools.md index 9cf813e1a7..a7bf8dd267 100644 --- a/microsoft-edge/devtools/whats-new/2022/02/devtools.md +++ b/microsoft-edge/devtools/whats-new/2022/02/devtools.md @@ -138,7 +138,7 @@ Microsoft Edge version 98 also includes the following updates from the Chromium * [Preview feature: Full-page accessibility tree](https://developer.chrome.com/blog/new-in-devtools-98/#a11y-tree) -* [More precise changes in the Changes tab](https://developer.chrome.com/blog/new-in-devtools-98/#changes) +* [More precise changes in the Changes tab](https://developer.chrome.com/blog/new-in-devtools-98/#changes) * [Ensure your pages are cacheable with the Back/forward cache tab](https://developer.chrome.com/blog/new-in-devtools-98/#bfcache) diff --git a/microsoft-edge/extensions/developer-guide/alternate-distribution-options.md b/microsoft-edge/extensions/developer-guide/alternate-distribution-options.md index 9bf0e5f254..dd23c8d9d6 100644 --- a/microsoft-edge/extensions/developer-guide/alternate-distribution-options.md +++ b/microsoft-edge/extensions/developer-guide/alternate-distribution-options.md @@ -181,7 +181,7 @@ Microsoft Edge Enterprise docs: * [BlockExternalExtensions](/deployedge/microsoft-edge-policies#blockexternalextensions) Chrome Extensions docs: -* [Use alternative installation methods](https://developer.chrome.com/docs/extensions/how-to/distribute/install-extensions) +* [Use alternative installation methods](https://developer.chrome.com/docs/extensions/how-to/distribute/install-extensions) diff --git a/microsoft-edge/extensions/developer-guide/api-support.md b/microsoft-edge/extensions/developer-guide/api-support.md index dfecb3c11f..2f72e0165a 100644 --- a/microsoft-edge/extensions/developer-guide/api-support.md +++ b/microsoft-edge/extensions/developer-guide/api-support.md @@ -14,7 +14,7 @@ Microsoft Edge extensions use a subset of the JavaScript methods for the Chromiu | API | Description | Manifest versions | Platforms | |---|---|---|---| -| [accessibilityFeatures](https://developer.chrome.com/docs/extensions/reference/api/accessibilityFeatures) | Manages the browser's accessibility features. | MV2, MV3 | Windows, Linux, Mac | +| [accessibilityFeatures](https://developer.chrome.com/docs/extensions/reference/api/accessibilityFeatures) | Manages the browser's accessibility features. | MV2, MV3 | Windows, Linux, Mac | | [action](https://developer.chrome.com/docs/extensions/reference/api/action) | Controls the extension's icon in the browser's toolbar. | MV3 | Windows, Linux, Mac, Android | | [alarms](https://developer.chrome.com/docs/extensions/reference/api/alarms) | Schedules code to run periodically or at a specified time in the future. | MV2, MV3 | Windows, Linux, Mac, Android | | [bookmarks](https://developer.chrome.com/docs/extensions/reference/api/bookmarks) | Creates, organizes, and manipulates bookmarks. | MV2, MV3 | Windows, Linux, Mac | @@ -87,7 +87,7 @@ These Extensions APIs are not supported for Microsoft Edge. | API | Notes | |---|---| -| [audio](https://developer.chrome.com/docs/extensions/reference/api/audio) | ChromeOS only. | +| [audio](https://developer.chrome.com/docs/extensions/reference/api/audio) | ChromeOS only. | | [certificateProvider](https://developer.chrome.com/docs/extensions/reference/api/certificateProvider) | ChromeOS only. | | [devtools.recorder](https://developer.chrome.com/docs/extensions/reference/api/devtools/recorder) | Chrome DevTools only. | | [documentScan](https://developer.chrome.com/docs/extensions/reference/api/documentScan) | ChromeOS only. | diff --git a/microsoft-edge/extensions/developer-guide/csp.md b/microsoft-edge/extensions/developer-guide/csp.md index bf3c51f8b6..899d778ac6 100644 --- a/microsoft-edge/extensions/developer-guide/csp.md +++ b/microsoft-edge/extensions/developer-guide/csp.md @@ -38,7 +38,7 @@ In contrast, in a webpage, such a policy is defined via an HTTP header or via a See: * [Content Security Policy (CSP)](https://developer.mozilla.org/docs/Web/HTTP/CSP) at MDN. -* [Manifest - Content Security Policy](https://developer.chrome.com/docs/extensions/reference/manifest/content-security-policy) in _Chrome Extensions_ > _Reference_. +* [Manifest - Content Security Policy](https://developer.chrome.com/docs/extensions/reference/manifest/content-security-policy) in _Chrome Extensions_ > _Reference_. @@ -340,7 +340,7 @@ Since content scripts aren't affected by the CSP of the page, this a great reaso ## See also * [Content Security Policy (CSP)](https://developer.mozilla.org/docs/Web/HTTP/CSP) at MDN. -* [Manifest - Content Security Policy](https://developer.chrome.com/docs/extensions/reference/manifest/content-security-policy) in _Chrome Extensions_ > _Reference_. +* [Manifest - Content Security Policy](https://developer.chrome.com/docs/extensions/reference/manifest/content-security-policy) in _Chrome Extensions_ > _Reference_. diff --git a/microsoft-edge/extensions/developer-guide/declare-permissions.md b/microsoft-edge/extensions/developer-guide/declare-permissions.md index eac86ce61e..f85c100805 100644 --- a/microsoft-edge/extensions/developer-guide/declare-permissions.md +++ b/microsoft-edge/extensions/developer-guide/declare-permissions.md @@ -25,7 +25,7 @@ ms.date: 06/23/2023 To use most of the `chrome.*` APIs, your extension must declare its intent in the `permissions` fields of the manifest. An extension can declare permissions using a permission string from the table that follows, or use a pattern to match similar strings. Permissions help to constrain your extension if it gets compromised by malware. Some permissions are displayed to users for their consent before installation of the extension, or at runtime, as needed; these are Permission Warnings. -If an API requires you to declare permissions in the manifest, see the documentation for that API to understand the needed permissions. For example, the [Storage API](https://developer.chrome.com/docs/extensions/reference/storage/) page describes how to declare the `storage` permission. +If an API requires you to declare permissions in the manifest, see the documentation for that API to understand the needed permissions. For example, the [Storage API](https://developer.chrome.com/docs/extensions/reference/storage/) page describes how to declare the `storage` permission. @@ -74,7 +74,7 @@ The following table lists the currently available permission strings to use in y |:--- |:--- | | `activeTab` | Requests that the extension is granted permissions according to the `activeTab` specification. | | `alarms` | Gives your extension access to the `chrome.alarms` API. | -| `background` | Makes Microsoft Edge start up early and shut down late, so that extensions may have a longer life.
When any installed extension has `background` permission, Microsoft Edge runs invisibly as soon as the user logs into the user's computer, and before the user launches Microsoft Edge. The `background` permission also makes Microsoft Edge continue running, even after its last window is closed, until the user explicitly quits Microsoft Edge.
Disabled extensions are treated as if they aren't installed.
You should use the `background` permission with [background scripts](https://developer.chrome.com/docs/extensions/mv3/background_pages/).| +| `background` | Makes Microsoft Edge start up early and shut down late, so that extensions may have a longer life.
When any installed extension has `background` permission, Microsoft Edge runs invisibly as soon as the user logs into the user's computer, and before the user launches Microsoft Edge. The `background` permission also makes Microsoft Edge continue running, even after its last window is closed, until the user explicitly quits Microsoft Edge.
Disabled extensions are treated as if they aren't installed.
You should use the `background` permission with [background scripts](https://developer.chrome.com/docs/extensions/mv3/background_pages/). | | `bookmarks` | Gives your extension access to the `chrome.bookmarks` API. | | `browsingData` | Gives your extension access to the `chrome.browsingData` API. | | `certificateProvider` | Gives your extension access to the `chrome.certificateProvider` API. | diff --git a/microsoft-edge/extensions/developer-guide/devtools-extension.md b/microsoft-edge/extensions/developer-guide/devtools-extension.md index 5c988a761d..9d1da7dd77 100644 --- a/microsoft-edge/extensions/developer-guide/devtools-extension.md +++ b/microsoft-edge/extensions/developer-guide/devtools-extension.md @@ -191,8 +191,8 @@ To create a basic DevTools extension with a sample panel: ``` Reference: - * [chrome.devtools.panels](https://developer.chrome.com/docs/extensions/reference/devtools_panels/) - * [create()](https://developer.chrome.com/docs/extensions/reference/api/devtools/panels#method-create) + * [chrome.devtools.panels](https://developer.chrome.com/docs/extensions/reference/devtools_panels/) + * [create()](https://developer.chrome.com/docs/extensions/reference/api/devtools/panels#method-create) **devtools.html:** @@ -272,7 +272,7 @@ In this step, you will use extension APIs to display memory information in your ] ``` - The `system-memory` permission is required, in order to use the extension APIs that you'll use later in this tutorial. To learn more about the available APIs and associated permissions, see [API reference](https://developer.chrome.com/docs/extensions/reference/) for extension APIs. + The `system-memory` permission is required, in order to use the extension APIs that you'll use later in this tutorial. To learn more about the available APIs and associated permissions, see [API reference](https://developer.chrome.com/docs/extensions/reference/) for extension APIs. **panel.html:** @@ -350,7 +350,7 @@ To test your changes in Microsoft Edge, reload your extension from the `edge://e ![The new extension panel in DevTools, showing memory information](./devtools-extension-images/devtools-extension-with-memory-info.png) See also: -* [API Reference](https://developer.chrome.com/docs/extensions/reference/) +* [API Reference](https://developer.chrome.com/docs/extensions/reference/) @@ -561,13 +561,13 @@ To test the new `sayHello` button: This completes the tutorial and code walkthrough for creating a DevTools extension that adds a tool tab and panel in DevTools in Microsoft Edge. See also: -* [Content scripts](https://developer.chrome.com/docs/extensions/mv3/content_scripts/) in the Chrome Extensions docs. +* [Content scripts](https://developer.chrome.com/docs/extensions/mv3/content_scripts/) in the Chrome Extensions docs. ## See also * [Samples for Microsoft Edge extensions](../samples.md) -* [Manifest V3](https://developer.chrome.com/docs/extensions/mv3) -* [Extending DevTools](https://developer.chrome.com/docs/extensions/mv3/devtools/) -* [CDP API Reference](https://developer.chrome.com/docs/extensions/reference/) +* [Manifest V3](https://developer.chrome.com/docs/extensions/mv3) +* [Extending DevTools](https://developer.chrome.com/docs/extensions/mv3/devtools/) +* [CDP API Reference](https://developer.chrome.com/docs/extensions/reference/) diff --git a/microsoft-edge/extensions/developer-guide/manifest-v3.md b/microsoft-edge/extensions/developer-guide/manifest-v3.md index 7b1221c9cd..6f21bdc64c 100644 --- a/microsoft-edge/extensions/developer-guide/manifest-v3.md +++ b/microsoft-edge/extensions/developer-guide/manifest-v3.md @@ -22,7 +22,7 @@ In October 2020, Microsoft announced the [decision to embrace Manifest V3](https Manifest V3 is an initiative of the [Chromium project](https://www.chromium.org/Home/). -An overview of the changes involved, as described in [Migrate to Manifest V3](https://developer.chrome.com/docs/extensions/develop/migrate): +An overview of the changes involved, as described in [Migrate to Manifest V3](https://developer.chrome.com/docs/extensions/develop/migrate): * Background pages have been replaced by service workers. @@ -40,8 +40,8 @@ An overview of the changes involved, as described in [Migrate to Manifest V3](ht Chromium has revised the timelines for ending support for Manifest V2. See: -* [Manifest V2 support timeline](https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline) -* [The phase-out timeline](https://developer.chrome.com/blog/resuming-the-transition-to-mv3#the_phase-out_timeline) in _Resuming the transition to Manifest V3_. +* [Manifest V2 support timeline](https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline) +* [The phase-out timeline](https://developer.chrome.com/blog/resuming-the-transition-to-mv3#the_phase-out_timeline) in _Resuming the transition to Manifest V3_. @@ -73,6 +73,6 @@ Microsoft continues to iteratively improve the platform and address the feedback ## See also -* [Migrate to Manifest V3](https://developer.chrome.com/docs/extensions/develop/migrate) -* [Manifest V2 support timeline](https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline) -* [The phase-out timeline](https://developer.chrome.com/blog/resuming-the-transition-to-mv3#the_phase-out_timeline) in _Resuming the transition to Manifest V3_. +* [Migrate to Manifest V3](https://developer.chrome.com/docs/extensions/develop/migrate) +* [Manifest V2 support timeline](https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline) +* [The phase-out timeline](https://developer.chrome.com/blog/resuming-the-transition-to-mv3#the_phase-out_timeline) in _Resuming the transition to Manifest V3_. diff --git a/microsoft-edge/extensions/developer-guide/migrate-your-extension-from-manifest-v2-to-v3.md b/microsoft-edge/extensions/developer-guide/migrate-your-extension-from-manifest-v2-to-v3.md index 7e8e08e704..0db2341837 100644 --- a/microsoft-edge/extensions/developer-guide/migrate-your-extension-from-manifest-v2-to-v3.md +++ b/microsoft-edge/extensions/developer-guide/migrate-your-extension-from-manifest-v2-to-v3.md @@ -10,7 +10,7 @@ ms.date: 05/26/2021 --- # Migrate an extension from Manifest V2 to V3 -This article lists important changes being implemented as part of Manifest V3, which is the next version of the Chromium Extensions platform. For guidance on migrating your extension to Manifest V3, see [Overview of Manifest V3 - Chrome Developers](https://developer.chrome.com/docs/extensions/mv3/intro/mv3-overview/). +This article lists important changes being implemented as part of Manifest V3, which is the next version of the Chromium Extensions platform. For guidance on migrating your extension to Manifest V3, see [Overview of Manifest V3 - Chrome Developers](https://developer.chrome.com/docs/extensions/mv3/intro/mv3-overview/). @@ -20,7 +20,7 @@ Today, some parts of the extensions code are hosted remotely, and aren't include To ensure that the extensions at Microsoft Edge Add-ons are validated, the Microsoft Edge extensions team disallows extensions from using remotely hosted code. This change makes extensions more secure. -Developers will need to package and submit all code that is used by the extension, for validation. Alternatively, you can use the `eval()` function in a [sandboxed environment](https://developer.chrome.com/docs/extensions/mv2/sandboxingEval). +Developers will need to package and submit all code that is used by the extension, for validation. Alternatively, you can use the `eval()` function in a [sandboxed environment](https://developer.chrome.com/docs/extensions/mv2/sandboxingEval). @@ -40,7 +40,7 @@ To perform cross-origin requests, you need to use background scripts to relay re ## Web Request API -The Microsoft Edge extensions team replaces the [Web Request API](https://developer.chrome.com/docs/extensions/reference/webRequest) by the [Declarative Net Request API](https://developer.chrome.com/docs/extensions/reference/declarativeNetRequest), but we continue to keep the observational capabilities of the Web Request API. We recommend using the Declarative Net Request (DNR) APIs only, rather than the Web Request API, except in some specific scenarios where observational capabilities of the Web Request API are required by the extension. +The Microsoft Edge extensions team replaces the [Web Request API](https://developer.chrome.com/docs/extensions/reference/webRequest) by the [Declarative Net Request API](https://developer.chrome.com/docs/extensions/reference/declarativeNetRequest), but we continue to keep the observational capabilities of the Web Request API. We recommend using the Declarative Net Request (DNR) APIs only, rather than the Web Request API, except in some specific scenarios where observational capabilities of the Web Request API are required by the extension. This change will have positive impact on extensions that use feature-rich declarative capabilities. As more extensions transition to the Declarative Net Request APIs, this change will improve user privacy, which contributes to trust in the use of extensions. @@ -50,7 +50,7 @@ Enterprises can continue to use the blocking behavior of the Web Request API for ## Background service workers -Service workers are available for testing in the Canary preview channel of Microsoft Edge. To migrate your extensions from background pages to service workers, see [Migrate to a service worker](https://developer.chrome.com/docs/extensions/develop/migrate/to-service-workers). The Microsoft Edge extensions team is evaluating and investigating the impact that this change brings to both developers and users. +Service workers are available for testing in the Canary preview channel of Microsoft Edge. To migrate your extensions from background pages to service workers, see [Migrate to a service worker](https://developer.chrome.com/docs/extensions/develop/migrate/to-service-workers). The Microsoft Edge extensions team is evaluating and investigating the impact that this change brings to both developers and users. diff --git a/microsoft-edge/extensions/developer-guide/minimize-page-load-time-impact.md b/microsoft-edge/extensions/developer-guide/minimize-page-load-time-impact.md index 05562824a3..a7555745cc 100644 --- a/microsoft-edge/extensions/developer-guide/minimize-page-load-time-impact.md +++ b/microsoft-edge/extensions/developer-guide/minimize-page-load-time-impact.md @@ -133,9 +133,9 @@ If your extension is small enough, you won't need a build tool to split your cod Your extension might not need to run on every webpage that the user visits. To reduce the amount of code that runs when webpages load, configure your extension to load content scripts only on the pages and frames where they are needed. -To configure the pages and frames where your content scripts are loaded, define URL patterns in your extension manifest file by using the `matches` property in the `content_scripts` section. To learn more, see [Inject scripts](https://developer.chrome.com/docs/extensions/develop/concepts/content-scripts#functionality) in _Content scripts_ in the Chrome Extensions documentation. +To configure the pages and frames where your content scripts are loaded, define URL patterns in your extension manifest file by using the `matches` property in the `content_scripts` section. To learn more, see [Inject scripts](https://developer.chrome.com/docs/extensions/develop/concepts/content-scripts#functionality) in _Content scripts_ in the Chrome Extensions documentation. -You can also use the `chrome.scripting` extensions API to programmatically inject your content script into the webpage. This API allows you to inject your content script based on the user's actions, the webpage content, or the extension logic. To learn more, see [chrome.scripting](https://developer.chrome.com/docs/extensions/reference/api/scripting) in the Chrome Extensions documentation. +You can also use the `chrome.scripting` extensions API to programmatically inject your content script into the webpage. This API allows you to inject your content script based on the user's actions, the webpage content, or the extension logic. To learn more, see [chrome.scripting](https://developer.chrome.com/docs/extensions/reference/api/scripting) in the Chrome Extensions documentation. Use the following best practices when configuring where your content scripts are loaded: @@ -264,9 +264,9 @@ onmessage = event => { * [Analyze runtime performance (tutorial)](../../devtools/performance/index.md) Chrome Extension docs: -* [Manifest - content scripts](https://developer.chrome.com/docs/extensions/reference/manifest/content-scripts) -* [chrome.scripting](https://developer.chrome.com/docs/extensions/reference/api/scripting) -* [chrome.storage](https://developer.chrome.com/docs/extensions/reference/api/storage) +* [Manifest - content scripts](https://developer.chrome.com/docs/extensions/reference/manifest/content-scripts) +* [chrome.scripting](https://developer.chrome.com/docs/extensions/reference/api/scripting) +* [chrome.storage](https://developer.chrome.com/docs/extensions/reference/api/storage) MDN: * [Using Web Workers](https://developer.mozilla.org/docs/Web/API/Web_Workers_API/Using_web_workers) diff --git a/microsoft-edge/extensions/developer-guide/native-messaging.md b/microsoft-edge/extensions/developer-guide/native-messaging.md index 9ba11aa131..33b5bd577f 100644 --- a/microsoft-edge/extensions/developer-guide/native-messaging.md +++ b/microsoft-edge/extensions/developer-guide/native-messaging.md @@ -10,7 +10,7 @@ ms.date: 01/09/2024 --- # Native messaging -To communicate with a native Win32 app that's installed on a user's device, an extension uses an API that's similar to the other [message passing](https://developer.chrome.com/docs/extensions/develop/concepts/messaging) APIs. The native app host sends and receives messages with extensions using standard input and standard output. +To communicate with a native Win32 app that's installed on a user's device, an extension uses an API that's similar to the other [message passing](https://developer.chrome.com/docs/extensions/develop/concepts/messaging) APIs. The native app host sends and receives messages with extensions using standard input and standard output. Extensions that use native messaging are installed in Microsoft Edge similar to any other extension. However, native apps aren't installed or managed by Microsoft Edge. @@ -266,19 +266,19 @@ The first argument to the native messaging host is the origin of the caller, usu On Windows, the native messaging host is also passed a command line argument with a handle to the calling Microsoft Edge native window: `--parent-window=`. This lets the native messaging host create native UI windows that are correctly parented. This value will be 0 if the calling context is a service worker. -When a messaging port is created by using [`runtime.connectNative`](https://developer.chrome.com/docs/extensions/reference/runtime/#method-connectNative), Microsoft Edge starts a native messaging host process and keeps it running until the port is destroyed. On the other hand, when a message is sent by using [`runtime.sendNativeMessage`](https://developer.chrome.com/docs/extensions/reference/api/runtime#method-sendNativeMessage), without creating a messaging port, Microsoft Edge starts a new native messaging host process for each message. In that case, the first message that's generated by the host process is handled as a response to the original request, and Microsoft Edge will pass it to the response callback specified when [`runtime.sendNativeMessage`](https://developer.chrome.com/docs/extensions/reference/api/runtime#method-sendNativeMessage) is called. All other messages generated by the native messaging host in that case are ignored. +When a messaging port is created by using [`runtime.connectNative`](https://developer.chrome.com/docs/extensions/reference/runtime/#method-connectNative), Microsoft Edge starts a native messaging host process and keeps it running until the port is destroyed. On the other hand, when a message is sent by using [`runtime.sendNativeMessage`](https://developer.chrome.com/docs/extensions/reference/api/runtime#method-sendNativeMessage), without creating a messaging port, Microsoft Edge starts a new native messaging host process for each message. In that case, the first message that's generated by the host process is handled as a response to the original request, and Microsoft Edge will pass it to the response callback specified when [`runtime.sendNativeMessage`](https://developer.chrome.com/docs/extensions/reference/api/runtime#method-sendNativeMessage) is called. All other messages generated by the native messaging host in that case are ignored. ## Connecting to a native application -Sending and receiving messages to and from a native application is very similar to cross-extension messaging. The main difference is that [`runtime.connectNative`](https://developer.chrome.com/docs/extensions/reference/runtime/#method-connectNative) is used instead of [`runtime.connect`](https://developer.chrome.com/docs/extensions/reference/runtime/#method-connect), and [`runtime.sendNativeMessage`](https://developer.chrome.com/docs/extensions/reference/api/runtime#method-sendNativeMessage) is used instead of [`runtime.sendMessage`](https://developer.chrome.com/docs/extensions/reference/runtime/#method-sendMessage). +Sending and receiving messages to and from a native application is very similar to cross-extension messaging. The main difference is that [`runtime.connectNative`](https://developer.chrome.com/docs/extensions/reference/runtime/#method-connectNative) is used instead of [`runtime.connect`](https://developer.chrome.com/docs/extensions/reference/runtime/#method-connect), and [`runtime.sendNativeMessage`](https://developer.chrome.com/docs/extensions/reference/api/runtime#method-sendNativeMessage) is used instead of [`runtime.sendMessage`](https://developer.chrome.com/docs/extensions/reference/runtime/#method-sendMessage). To use these methods, the `nativeMessaging` permission must be declared in your extensions's manifest file; see [Step 1: Add permissions to the extension manifest](#step-1-add-permissions-to-the-extension-manifest), above. These methods are not available inside content scripts, only inside your extension's pages and service worker. If you want to communicate from a content script to the native application, send the message to your service worker to pass it along to the native application. -The following example creates a [`runtime.Port`](https://developer.chrome.com/docs/extensions/reference/runtime/#type-Port) object that's connected to native messaging host `com.my_company.my_application`, starts listening for messages from that port and sends one outgoing message: +The following example creates a [`runtime.Port`](https://developer.chrome.com/docs/extensions/reference/runtime/#type-Port) object that's connected to native messaging host `com.my_company.my_application`, starts listening for messages from that port and sends one outgoing message: ```javascript var port = chrome.runtime.connectNative('com.my_company.my_application'); @@ -291,7 +291,7 @@ port.onDisconnect.addListener(function () { port.postMessage({text: 'Hello, my_application'}); ``` -Use [`runtime.sendNativeMessage`](https://developer.chrome.com/docs/extensions/reference/api/runtime#method-sendNativeMessage) to send a message to the native application without creating a port; for example: +Use [`runtime.sendNativeMessage`](https://developer.chrome.com/docs/extensions/reference/api/runtime#method-sendNativeMessage) to send a message to the native application without creating a port; for example: ```javascript chrome.runtime.sendNativeMessage( diff --git a/microsoft-edge/extensions/developer-guide/run-compiled-code.md b/microsoft-edge/extensions/developer-guide/run-compiled-code.md index 4e47ced67d..52ec2a3b65 100644 --- a/microsoft-edge/extensions/developer-guide/run-compiled-code.md +++ b/microsoft-edge/extensions/developer-guide/run-compiled-code.md @@ -29,10 +29,10 @@ To enhance web security and performance, Native Client (NaCl) is no longer suppo NaCl is a sandbox for running compiled C and C++ code in browsers efficiently and securely, independently of the user's operating system. WebAssembly (Wasm) is recommended instead of NaCl. See also: -* [Manifest - Nacl Modules](https://developer.chrome.com/docs/extensions/mv2/manifest/nacl-modules) -* [Native Client](https://developer.chrome.com/docs/native-client) - deprecation notice for Chrome browser. +* [Manifest - Nacl Modules](https://developer.chrome.com/docs/extensions/mv2/manifest/nacl-modules) +* [Native Client](https://developer.chrome.com/docs/native-client) - deprecation notice for Chrome browser. To Run compiled code in an extension, we recommend using WebAssembly instead of NaCl. See: -* [WebAssembly Migration Guide](https://developer.chrome.com/docs/native-client/migration) in Chrome docs. +* [WebAssembly Migration Guide](https://developer.chrome.com/docs/native-client/migration) in Chrome docs. * [WebAssembly](https://developer.mozilla.org/docs/WebAssembly) at MDN. * [webassembly.org](https://webassembly.org) diff --git a/microsoft-edge/extensions/developer-guide/sidebar.md b/microsoft-edge/extensions/developer-guide/sidebar.md index 9cd47e6d40..668aaddaf8 100644 --- a/microsoft-edge/extensions/developer-guide/sidebar.md +++ b/microsoft-edge/extensions/developer-guide/sidebar.md @@ -120,9 +120,9 @@ The file you specified as the default, such as `sidebar.html`, appears in all th #### Enable a sidebar for a specific site only -An extension can use [sidepanel.setOptions()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-setOptions) to enable a sidebar on a specific tab. This can be a particular website, so the extension opens in the sidebar when the user goes to this website. +An extension can use [sidepanel.setOptions()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-setOptions) to enable a sidebar on a specific tab. This can be a particular website, so the extension opens in the sidebar when the user goes to this website. -This example uses [chrome.tabs.onUpdated()](https://developer.chrome.com/docs/extensions/reference/tabs/#event-onUpdated) to listen for any updates made to the tab. It checks whether the URL is `www.bing.com` and if so, enables the sidebar. Otherwise, it disables the sidebar. +This example uses [chrome.tabs.onUpdated()](https://developer.chrome.com/docs/extensions/reference/tabs/#event-onUpdated) to listen for any updates made to the tab. It checks whether the URL is `www.bing.com` and if so, enables the sidebar. Otherwise, it disables the sidebar. In `service-worker.js`, in `addListener()`, test `url.origin` to see if it's the desired tab, and then in `sidePanel.setOptions()`, set `enabled` to `true` or `false`: @@ -159,7 +159,7 @@ For a complete example, see [Site-specific side panel example](https://github.co #### Enable the extension's shortcut icon to open the sidebar -To allow users to open the sidebar by clicking the action toolbar icon, use [sidePanel.setPanelBehavior()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-setPanelBehavior). First, declare the `"action"` key in `manifest.json`: +To allow users to open the sidebar by clicking the action toolbar icon, use [sidePanel.setPanelBehavior()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-setPanelBehavior). First, declare the `"action"` key in `manifest.json`: ```json { @@ -185,9 +185,9 @@ chrome.sidePanel #### Switch to a different sidebar -An extension can use [sidepanel.getOptions()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-getOptions) to retrieve the current sidebar, and then enable a different sidebar for a specific tab. +An extension can use [sidepanel.getOptions()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-getOptions) to retrieve the current sidebar, and then enable a different sidebar for a specific tab. -This example sets a sidebar containing a welcome message on [runtime.onInstalled()](https://developer.chrome.com/docs/extensions/reference/runtime/#event-onInstalled). When the user navigates to a different tab, the sidebar is replaced with the browser-level sidebar. +This example sets a sidebar containing a welcome message on [runtime.onInstalled()](https://developer.chrome.com/docs/extensions/reference/runtime/#event-onInstalled). When the user navigates to a different tab, the sidebar is replaced with the browser-level sidebar. ```javascript // service-worker.js: @@ -210,7 +210,7 @@ chrome.tabs.onActivated.addListener(async ({ tabId }) => { #### Opening the sidebar upon user interaction -[sidePanel.open()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-open) allows extensions to open the sidebar through a user gesture, such as clicking the action icon, or through any user interaction on an extension page or content script, such as clicking a button. +[sidePanel.open()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-open) allows extensions to open the sidebar through a user gesture, such as clicking the action icon, or through any user interaction on an extension page or content script, such as clicking a button. The following code shows how to open a global sidebar on the current window when the user clicks on a context menu. When using `sidePanel.open()`, choose the context in which the sidebar should open: * Use `windowId` to open a global sidebar, as shown in the following example. @@ -276,10 +276,10 @@ The extension's icon appears in the toolbar if the user has clicked the **Show i Users can press a keyboard shortcut, if the action command is enabled and the action icon is enabled to open the sidebar. -* To enable the action command, see [Action commands](https://developer.chrome.com/docs/extensions/reference/commands/#action-commands) in _chrome.commands_ in API reference. -* To enable the action icon, see [Open the side panel by clicking the toolbar icon](https://developer.chrome.com/docs/extensions/reference/sidePanel/#open-action-icon) in _chrome.sidePanel_ in API reference. +* To enable the action command, see [Action commands](https://developer.chrome.com/docs/extensions/reference/commands/#action-commands) in _chrome.commands_ in API reference. +* To enable the action icon, see [Open the side panel by clicking the toolbar icon](https://developer.chrome.com/docs/extensions/reference/sidePanel/#open-action-icon) in _chrome.sidePanel_ in API reference. -If the `openPanelOnActionClick()` property of the [PanelBehavior](https://developer.chrome.com/docs/extensions/reference/sidePanel/#type-PanelBehavior) type is set to `true`, the user can open the sidebar by using a keyboard shortcut. To enable this, you specify an action command in the manifest. +If the `openPanelOnActionClick()` property of the [PanelBehavior](https://developer.chrome.com/docs/extensions/reference/sidePanel/#type-PanelBehavior) type is set to `true`, the user can open the sidebar by using a keyboard shortcut. To enable this, you specify an action command in the manifest. @@ -287,9 +287,9 @@ If the `openPanelOnActionClick()` property of the [PanelBehavior](https://develo The sidebar can also be opened through the following interactions: -* Open the sidebar by an extension user gesture, such as clicking the action icon. This approach uses [sidePanel.open()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-open). See [Opening the sidebar upon user interaction](#opening-the-sidebar-upon-user-interaction), above. +* Open the sidebar by an extension user gesture, such as clicking the action icon. This approach uses [sidePanel.open()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-open). See [Opening the sidebar upon user interaction](#opening-the-sidebar-upon-user-interaction), above. -* Open the sidebar by clicking the toolbar icon. This approach uses [sidePanel.setPanelBehavior()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-setPanelBehavior). See [By clicking an icon](#by-clicking-an-icon) in section "Opening the extension in the sidebar", above. +* Open the sidebar by clicking the toolbar icon. This approach uses [sidePanel.setPanelBehavior()](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method-setPanelBehavior). See [By clicking an icon](#by-clicking-an-icon) in section "Opening the extension in the sidebar", above. @@ -307,7 +307,7 @@ For more Sidebar API extensions demos, explore any of the following extensions: ## Types and methods -See [Types](https://developer.chrome.com/docs/extensions/reference/sidePanel/#type) and [Methods](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method) in the _chrome.sidePanel_ API reference page at `developer.chrome.com`. +See [Types](https://developer.chrome.com/docs/extensions/reference/sidePanel/#type) and [Methods](https://developer.chrome.com/docs/extensions/reference/sidePanel/#method) in the _chrome.sidePanel_ API reference page at `developer.chrome.com`. diff --git a/microsoft-edge/extensions/getting-started/manifest-format.md b/microsoft-edge/extensions/getting-started/manifest-format.md index 09a82873b0..8aa0b3022a 100644 --- a/microsoft-edge/extensions/getting-started/manifest-format.md +++ b/microsoft-edge/extensions/getting-started/manifest-format.md @@ -34,7 +34,7 @@ The following code shows the fields that are supported in `manifest.json` for ex ##### [Manifest V3](#tab/v3) -For reference information about each field, see [Manifest file format](https://developer.chrome.com/docs/extensions/reference/manifest) in _Chrome Extensions_ > _Reference_, and then click the links on the fields. +For reference information about each field, see [Manifest file format](https://developer.chrome.com/docs/extensions/reference/manifest) in _Chrome Extensions_ > _Reference_, and then click the links on the fields. ```json { @@ -120,7 +120,7 @@ For reference information about each field, see [Manifest file format](https://d -For reference information about each field, see [Manifest file format (V2)](https://developer.chrome.com/docs/extensions/mv2/manifest) and then select the links on the fields. +For reference information about each field, see [Manifest file format (V2)](https://developer.chrome.com/docs/extensions/mv2/manifest) and then select the links on the fields. ```json { @@ -229,8 +229,8 @@ For reference information about each field, see [Manifest file format (V2)](http * [Migrate an extension from Manifest V2 to V3](../developer-guide/migrate-your-extension-from-manifest-v2-to-v3.md) -* [Manifest file format](https://developer.chrome.com/docs/extensions/reference/manifest) - V3, in _Chrome Extensions_ > _Reference_. -* [Manifest file format (V2)](https://developer.chrome.com/docs/extensions/mv2/manifest) in _Chrome Extensions_ > _Reference_. +* [Manifest file format](https://developer.chrome.com/docs/extensions/reference/manifest) - V3, in _Chrome Extensions_ > _Reference_. +* [Manifest file format (V2)](https://developer.chrome.com/docs/extensions/mv2/manifest) in _Chrome Extensions_ > _Reference_. diff --git a/microsoft-edge/extensions/index.md b/microsoft-edge/extensions/index.md index 963735c36d..dd53188aa2 100644 --- a/microsoft-edge/extensions/index.md +++ b/microsoft-edge/extensions/index.md @@ -45,7 +45,7 @@ The following table isn't exhaustive or definitive; it's just a starting point f |:--- |:--- |:--- | | Safari | No | [Safari App Extensions](https://developer.apple.com/documentation/safariservices/safari_app_extensions) | | Firefox | No | [Browser Extensions](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions) | -| Chrome | Yes | [API Reference](https://developer.chrome.com/extensions) | +| Chrome | Yes | [API Reference](https://developer.chrome.com/extensions) | | Opera | Yes | [Extensions Documentation](https://dev.opera.com/extensions) | | Brave | Yes | Uses [Chrome Web Store](https://chrome.google.com/webstore/category/extensions) | | Microsoft Edge | Yes | [Microsoft Edge Add-ons Developer](https://developer.microsoft.com/microsoft-edge/extensions) | @@ -71,7 +71,7 @@ The following content focuses mostly on Chromium extensions. Occasionally, API parity doesn't exist between Chromium browsers. For example, there are differences in the identity and payment APIs. To make sure your extension meets customer expectations, review API status through the following official browser documentation: -* [Chrome APIs](https://developer.chrome.com/extensions/api_index) +* [Chrome APIs](https://developer.chrome.com/extensions/api_index) * [Extension APIs supported in Opera](https://dev.opera.com/extensions/apis) * [Port Chrome extension to Microsoft Edge](developer-guide/port-chrome-extension.md) @@ -156,7 +156,7 @@ Just because an extension doesn't have a **Featured** badge, doesn't mean the ex External links: * [Build a Safari App extension](https://developer.apple.com/documentation/safariservices/safari_app_extensions/building_a_safari_app_extension) * [Your first extension (Firefox)](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension) -* [Extensions > Get started](https://developer.chrome.com/docs/extensions/get-started/) +* [Extensions > Get started](https://developer.chrome.com/docs/extensions/get-started/) * [Get started (Opera)](https://dev.opera.com/extensions/getting-started) * [Port a Google Chrome extension](https://extensionworkshop.com/documentation/develop/porting-a-google-chrome-extension) diff --git a/microsoft-edge/origin-trials/index.md b/microsoft-edge/origin-trials/index.md index b87563c196..0be7d1ec3a 100644 --- a/microsoft-edge/origin-trials/index.md +++ b/microsoft-edge/origin-trials/index.md @@ -196,4 +196,4 @@ To provide feedback about an origin trial: External: * [Implementing feature detection](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Cross_browser_testing/Feature_detection) - MDN. -* [Get started with origin trials](https://developer.chrome.com/docs/web-platform/origin-trials) - Chrome docs. +* [Get started with origin trials](https://developer.chrome.com/docs/web-platform/origin-trials) - Chrome docs. diff --git a/microsoft-edge/progressive-web-apps/how-to/background-syncs.md b/microsoft-edge/progressive-web-apps/how-to/background-syncs.md index c5b16ac98b..54e7588561 100644 --- a/microsoft-edge/progressive-web-apps/how-to/background-syncs.md +++ b/microsoft-edge/progressive-web-apps/how-to/background-syncs.md @@ -289,7 +289,7 @@ navigator.serviceWorker.ready.then(async registration => { Above, `my-download-id` should be a unique string identifier for this background fetch. `fileUrls` is the list of files to download, this will be an array of string URLs. And `options` is an object that can be used to customize the appearance of the download activity in the browser. -For more information about the `fetch` function, see [BackgroundFetchManager.fetch()](https://developer.mozilla.org/docs/Web/API/BackgroundFetchManager/fetch) and [Introducing Background Fetch](https://developer.chrome.com/blog/background-fetch/). +For more information about the `fetch` function, see [BackgroundFetchManager.fetch()](https://developer.mozilla.org/docs/Web/API/BackgroundFetchManager/fetch) and [Introducing Background Fetch](https://developer.chrome.com/blog/background-fetch/). diff --git a/microsoft-edge/progressive-web-apps/whats-new/pwa.md b/microsoft-edge/progressive-web-apps/whats-new/pwa.md index 27bd44da02..c2a13628e3 100644 --- a/microsoft-edge/progressive-web-apps/whats-new/pwa.md +++ b/microsoft-edge/progressive-web-apps/whats-new/pwa.md @@ -186,7 +186,7 @@ The origin trial has been concluded. The URL Protocol Handlers capability is no See also: * [Protocol handlers origin trial](#protocol-handlers-origin-trial) * [Handle protocols in a PWA](../how-to/handle-protocols.md) -* [URL protocol handler registration for PWAs](https://developer.chrome.com/docs/web-platform/best-practices/url-protocol-handler) in Chrome Dev > Web Platform > Best Practices. +* [URL protocol handler registration for PWAs](https://developer.chrome.com/docs/web-platform/best-practices/url-protocol-handler) in Chrome Dev > Web Platform > Best Practices. diff --git a/microsoft-edge/web-platform/release-notes/133.md b/microsoft-edge/web-platform/release-notes/133.md index a55ae2936c..5740f38aa2 100644 --- a/microsoft-edge/web-platform/release-notes/133.md +++ b/microsoft-edge/web-platform/release-notes/133.md @@ -373,7 +373,7 @@ The Reference Target API allows ID-based references, particularly from