[GTK] Add WestonDriver, use it when appropriate
https://bugs.webkit.org/show_bug.cgi?id=119100

Reviewed by Dirk Pranke.

Introduce the WestonDriver, a Driver-implementing class that sets up an instance of Weston, the Wayland compositor,
and sets up an environment that enables the test runner to run inside it.

The design very much mimics the XvfbDriver class. It is currently used by the GTK port when the WAYLAND_DISPLAY
environment variable is set, that is when NRWT is being run under a Wayland display.

* Scripts/webkitpy/port/base.py:
(Port.to.setup_environ_for_server): Also copy the XDG_RUNTIME_DIR env from the original environment for Linux-using ports.
* Scripts/webkitpy/port/gtk.py:
(GtkPort):
(GtkPort._driver_class): Make the method memoized - the display type is not going to change during the testing, so we
should only check once for the presence of the WAYLAND_DISPLAY env and determine the proper driver class to use based on that.
(GtkPort.check_sys_deps): Call the static check_driver method on the class as returned by the _driver_class method
instead of hard-coding the XvfbDriver class in the check.
* Scripts/webkitpy/port/westondriver.py: Added.
(WestonDriver):
(WestonDriver.check_driver): Similarly to XvfbDriver, this checks for existance of the weston executable.
(WestonDriver.__init__): Again, like in XvfbDriver, we use a small delay between launching the Weston display and launching the driver.
(WestonDriver._start): Sets up the driver-specific temporary directory, launches the Weston display, sets up the environment for the
driver and then launches the driver in said environment, using the driver's Weston display.
(WestonDriver.stop): Cleans up the Weston instance and the temporary directory.
(WestonDriver._ensure_driver_tmpdir_subdirectory): A helper function that creates a subdirectory in the driver's temporary directory
and returns the absolute path to it.
* Scripts/webkitpy/port/xvfbdriver.py:
(XvfbDriver.check_driver): Renamed from check_xvfb.
(XvfbDriver._start): Access the FileSystem object through the Port's Host object, instead of the Port's private member.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153439 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reintroduce convenience CheckedInt*, CheckedUint* types
https://bugs.webkit.org/show_bug.cgi?id=119213

Reviewed by Oliver Hunt.

Reintroduce CheckedInt* and CheckedUint* types that were previously provided for convenience
through the CheckedInt header that was removed in r153095. The types are now based on the
Checked class, using the RecordOverflow class as the overflow handler.

* wtf/CheckedArithmetic.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Speculative implementation of missing GraphicsContext3D methods on Windows.
https://bugs.webkit.org/show_bug.cgi?id=119167

Reviewed by Dean Jackson.

* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* platform/graphics/win/GraphicsContext3DWin.cpp: Added.
(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::setContextLostCallback):
(WebCore::GraphicsContext3D::setErrorMessageCallback):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::platformGraphicsContext3D):
(WebCore::GraphicsContext3D::platformTexture):
(WebCore::GraphicsContext3D::isGLES2Compliant):
(WebCore::GraphicsContext3D::platformLayer):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153441 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Moved GLTransportSurface.h and .cpp out of efl-specific directory.
https://bugs.webkit.org/show_bug.cgi?id=119163

Reviewed by Alexis Menard.

* PlatformEfl.cmake: Changed directory of GLTransportSurface.cpp.
* platform/graphics/surfaces/GLTransportSurface.cpp: Copied from WebCore/platform/graphics/surfaces/efl/GLTransportSurface.cpp.
* platform/graphics/surfaces/GLTransportSurface.h: Copied from WebCore/platform/graphics/surfaces/efl/GLTransportSurface.h.
* platform/graphics/surfaces/efl/GLTransportSurface.cpp: Removed.
* platform/graphics/surfaces/efl/GLTransportSurface.h: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153443 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r152860.
http://trac.webkit.org/changeset/152860
https://bugs.webkit.org/show_bug.cgi?id=119227

Disable WinEWS tests until tests stop crashing (Requested by
rfong on #webkit).

* Scripts/webkitpy/common/config/ews.json:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153444 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix crash due to unexpected Node deletion during MutationObserver registration book-keeping
https://bugs.webkit.org/show_bug.cgi?id=119124

Reviewed by Sam Weinig.

Merge https://chromium.googlesource.com/chromium/blink/+/b6afb927695b3acf2c75c25f05e99682660993e2

No new tests since I could not reproduce the crash with the test attached in the Blink change.

The bug was caused by Node::unregisterMutationObserver removing the MutationObserverRegistration
that holds the last ref to the node. Avoid that by explicitly allocating a local RefPtr to the node
in MutationObserverRegistration::unregister. Also rename it to unregisterAndDelete to clarify
the semantics and make it a static member function to be even safer.

* dom/MutationObserver.cpp:
(WebCore::MutationObserver::disconnect):
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::unregisterAndDelete):
* dom/MutationObserverRegistration.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153447 268f45cc-cd09-0410-ab3c-d52691b4dbfc
TextTrackRepresentation captions often disappear then appear again.
https://bugs.webkit.org/show_bug.cgi?id=119228

Reviewed by Simon Fraser.

Calling updateTextTrackDisplay() will cause the entire DOM subtree containing the active cues
to be torn down and rebuilt. Only call into this method when text tracks have actually changed.

Add an enum parameter to configureTextTrackDisplay() which allows the caller to specify that
method should assume that the list of visible text tracks has changed, forcing a call to
updateTextTrackDisplay().

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Remove the unnecessary call to updateTextTrackDisplay().
(WebCore::HTMLMediaElement::textTrackModeChanged): Pass AssumeVisibleTextTracksChanged to configureTextTrackDisplay().
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Check the passed flags and exit early only if
    AssumeVisibleTextTracksChanged is not set.
* html/HTMLMediaElement.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153448 268f45cc-cd09-0410-ab3c-d52691b4dbfc