Skip to content

Commit

Permalink
Updating IE prebuilt to 3.9.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
jimevans committed Feb 9, 2018
1 parent f9d99f0 commit 081313e
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 4 deletions.
34 changes: 34 additions & 0 deletions cpp/iedriverserver/CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,40 @@ available via the project downloads page. Changes in "revision" field indicate
private releases checked into the prebuilts directory of the source tree, but
not made generally available on the downloads page.

v3.9.0.1
========
* Made JavaScript execution asynchronous for executeScript in IE.

Prior to this change, the execution of JavaScript via the executeScript
method was synchronous. This would mean that if the script passed into the
driver called the JavaScript `alert()`, `confirm()`, or `prompt()`
functions, the WebDriver code would hang until the dialog was manually
dismissed. Moving this to asynchronous execution allows the driver to be
compliant with the W3C WebDriver Specification, that mandates that user
prompts triggered by executeScript should be able to be handled by the
WebDriver alert handling functions. However, this spec compliance comes at
several costs.

The first cost is complexity. The IE driver uses COM interfaces to
communicate with Internet Explorer. COM is inherently single-threaded, and
requires a fair amount of manipulation to allow accessing the objects on
separate threads. This leads to requiring a fairly complex system of
communication and synchronization between the threads to give the illusion
of a synchronous script execution.

The second cost is performance. Because of the need for synchronization,
this change **may** introduce a performance hit in the IE driver. This is
unfortunate, but unavoidable. The benefit of having user-initiated
JavaScript not block and hang WebDriver code far outweighs whatever
relatively small performance hit has been introduced.

Finally, there is every chance that, despite all efforts to the contrary,
it's possible that there are new regressions introduced by this change.
Multiple test suites have been run using this change, and none have
failed thus far due to the changes herein. Claims that this change is
causing a specific failure should be accompanied by a full test case, or
issues reported against this change will be summarily closed.

v3.9.0.0
========
* Refactor IE user-initiated JavaScript execution to use JSON objects.
Expand Down
8 changes: 4 additions & 4 deletions cpp/iedriverserver/IEDriverServer.rc
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ END
//

VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,9,0,0
PRODUCTVERSION 3,9,0,0
FILEVERSION 3,9,0,1
PRODUCTVERSION 3,9,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
Expand All @@ -68,12 +68,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Software Freedom Conservancy"
VALUE "FileDescription", "Command line server for the IE driver"
VALUE "FileVersion", "3.9.0.0"
VALUE "FileVersion", "3.9.0.1"
VALUE "InternalName", "IEDriverServer.exe"
VALUE "LegalCopyright", "Copyright (C) 2017"
VALUE "OriginalFilename", "IEDriverServer.exe"
VALUE "ProductName", "Selenium WebDriver"
VALUE "ProductVersion", "3.9.0.0"
VALUE "ProductVersion", "3.9.0.1"
END
END
BLOCK "VarFileInfo"
Expand Down
Binary file modified cpp/prebuilt/Win32/Release/IEDriverServer.exe
Binary file not shown.
Binary file modified cpp/prebuilt/x64/Release/IEDriverServer.exe
Binary file not shown.

0 comments on commit 081313e

Please sign in to comment.