-
-
Notifications
You must be signed in to change notification settings - Fork 8.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[rust] Automated Edge management (#11681 and #11683) #12835
Conversation
Codecov ReportAll modified lines are covered by tests ✅
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## trunk #12835 +/- ##
=======================================
Coverage 56.51% 56.51%
=======================================
Files 86 86
Lines 5255 5255
Branches 187 187
=======================================
Hits 2970 2970
Misses 2098 2098
Partials 187 187 ☔ View full report in Codecov by Sentry. |
I wonder if we should be doing anything different to support non-admin installs (download msi and point to it in warning message), but this is probably the most correct obvious thing. I'm sure if people want more help they'll complain to us about it. 😂 |
e87ad2b
to
623acd5
Compare
@bonigarcia can you deconflict the files and we'll merge this. |
This reverts commit bdcf7e4.
623acd5
to
2cf7a07
Compare
I've rebased this branch. If CI is happy, it is ready to be merged. |
Something failing in RBE. Trying some things... |
Got the RBE tests to pass finally. But looks like something is broken for Windows. Looks rust build related. |
And it has magically fixed. Merging... |
@titusfortner: Did you discover the cause of the failure in the RBE build? In the end, it was not related to Rust, right? |
It went away after I updated the branch 🤷♂️ |
…) (SeleniumHQ#12835) * [rust] Automated Edge management (macOS) (SeleniumHQ#11681) * [rust] Check also unstable versions for Edge management * [rust] Include logic to check fixed versions of Edge * [rust] Get browser url again if empty * [rust] Include logic for stable label * [rust] Automated Edge management (Linux) (SeleniumHQ#11681 and SeleniumHQ#11683) * [rust] Fix paths used to extract edge * [rust] Clean extract label and fix searched version * [rust] Refactor logic for downloading browsers in a common function * [rust] Install Edge in Windows through the MSI installer * [rust] Check admin permissions in Windows before downloading MSI installer * [rust] Use browser version in functions for requesting online repos * [rust] Refactor common logic when unavailable download or discovery * [rust] Fix condition checking Firefox nightly in mac * [rust] Update cargo bazel lock file * [rust] Separate function to ensure empty parent path before moving files --------- Co-authored-by: titusfortner <[email protected]> Co-authored-by: Titus Fortner <[email protected]>
Description
This PR implements Edge's automated browser management feature for the latest (stable) and given versions (unstable -beta, dev, nightly- and fixed versions -e.g., 116, 117, etc.-).
This feature for macOS and Linux works the same way as CfT and Firefox. In other words, the managed versions are stored in the cache folder. For instance:
In macOS:
In Linux:
Nevertheless, the the Edge installer for Windows is distributed as an MSI file. I intended to extract the Edge binary from there, as I did with Firefox. But, the MSI installer has a different format this time, which I cannot extract. This Stack Overflow question summarizes the problem I'm facing.
Therefore, the only alternative I found is to install Edge in Windows through its MSI installer, requiring administrator permissions. So this is the way in which it is implemented in this PR. Some examples:
In Windows (without admin permissions):
In Windows (with admin permissions):
Motivation and Context
It has been tested on:
Types of changes
Checklist