Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upReturn ErrorStatus from webdriver_handlers #23951
Conversation
highfive
commented
Aug 11, 2019
|
Heads up! This PR modifies the following files:
|
highfive
commented
Aug 11, 2019
|
@bors-servo try=wpt |
…andlers, r=<try> Return ErrorStatus from webdriver_handlers <!-- Please describe your changes on the following line: --> With `webdriver 0.40`, `ErrorStatus` implements `Deserialize`. Now we can accommodate for multiple errors occuring in `webdriver_handlers`. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors <!-- Either: --> <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23951) <!-- Reviewable:end -->
|
|
|
Hmm, it looks like |
|
r? @jdm |
Right, find_node_by_unique_id only traverses the elements of the active document, which by definition will not find any stale elements. Maybe it's enough to assume that if find_node_by_unique_id returns None then it's a stale element reference? |
|
Another option would be to store a HashSet of unique IDs ever created in ScriptThread and use that to determine if a element is stale or if there is no such node at all. |
|
These changes generally look fine. I would recommend going with the hashset approach and making find_node_by_unique_id return Result so you can differentiate between stale and nonexistent elements. |
|
I have one question regarding the HashSet approach. I looked over |
|
Rather than a mutation observer, I was imagining that get_unique_id would add an entry to the hash set when it generates an id. |
|
@bors-servo try=wpt |
…andlers, r=<try> Return ErrorStatus from webdriver_handlers <!-- Please describe your changes on the following line: --> With `webdriver 0.40`, `ErrorStatus` implements `Deserialize`. Now we can accommodate for multiple errors occuring in `webdriver_handlers`. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors <!-- Either: --> <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23951) <!-- Reviewable:end -->
|
@bors-servo try=wpt |
…andlers, r=<try> Return ErrorStatus from webdriver_handlers <!-- Please describe your changes on the following line: --> With `webdriver 0.40`, `ErrorStatus` implements `Deserialize`. Now we can accommodate for multiple errors occuring in `webdriver_handlers`. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors <!-- Either: --> <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23951) <!-- Reviewable:end -->
|
|
|
@bors-servo try=wpt |
…andlers, r=<try> Return ErrorStatus from webdriver_handlers <!-- Please describe your changes on the following line: --> With `webdriver 0.40`, `ErrorStatus` implements `Deserialize`. Now we can accommodate for multiple errors occuring in `webdriver_handlers`. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors <!-- Either: --> <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23951) <!-- Reviewable:end -->
|
|
|
@bors-servo r+ |
|
|
…andlers, r=jdm Return ErrorStatus from webdriver_handlers <!-- Please describe your changes on the following line: --> With `webdriver 0.40`, `ErrorStatus` implements `Deserialize`. Now we can accommodate for multiple errors occuring in `webdriver_handlers`. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors <!-- Either: --> <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23951) <!-- Reviewable:end -->
|
|
|
@bors-servo retry |
|
|
…andlers, r=jdm Return ErrorStatus from webdriver_handlers <!-- Please describe your changes on the following line: --> With `webdriver 0.40`, `ErrorStatus` implements `Deserialize`. Now we can accommodate for multiple errors occuring in `webdriver_handlers`. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors <!-- Either: --> <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23951) <!-- Reviewable:end -->
|
|
georgeroman commentedAug 11, 2019
•
edited by SimonSapin
With
webdriver 0.40,ErrorStatusimplementsDeserialize. Now we can accommodate for multiple errors occuring inwebdriver_handlers../mach build -ddoes not report any errors./mach test-tidydoes not report any errorsThis change is