[GTK] Suppress errors about using gdk_threads_enter gdk_threads_leave
https://bugs.webkit.org/show_bug.cgi?id=130517

Reviewed by Sergio Villar Senin.

Source/WebCore:

* plugins/gtk/gtk2xtbin.c: Use GCC suppression to suppress errors about deprecations.

Source/WebKit2:

* UIProcess/API/gtk/WebKitWebView.cpp: Use GCC suppression to suppress errors about deprecations.
* UIProcess/gtk/WebPopupMenuProxyGtk.cpp: Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166035 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed buildfix after r165983 for non Cocoa platforms

Renamed WKPreferencesPrivate.h to WKPreferencesRefPrivate.h

* TestWebKitAPI/Tests/WebKit2/ScrollPinningBehaviors.cpp:
* TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp:
* WebKitTestRunner/TestController.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166036 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][GTK] Get CMake to find Freetype2 properly
https://bugs.webkit.org/show_bug.cgi?id=130150

Reviewed by Martin Robinson.

Newer versions of CMake are not able to find Freetype2 correctly.
FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
freetype2 repo, because a completely different version number is found in freetype2.pc.

.:

* Source/cmake/FindFreetype2.cmake: Added.
* Source/cmake/OptionsEfl.cmake:
* Source/cmake/OptionsGTK.cmake:

Source/WebCore:

* PlatformEfl.cmake:
* PlatformGTK.cmake:

Source/WebKit:

* PlatformEfl.cmake:

Source/WebKit2:

* PlatformEfl.cmake:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166037 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add option for hiding Confidence Interval Delta on the performance tests results page
https://bugs.webkit.org/show_bug.cgi?id=130483

Reviewed by Ryosuke Niwa.

I've found it useful to hide the confidence interval delta from the results table
sometimes, for example on copying data, or for a clearer look. This patch introduces
a new button for it on the local results page.

* resources/results-template.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166038 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move to using std::unique_ptr for EFL objects.
https://bugs.webkit.org/show_bug.cgi?id=129853

Patch by Hyowon Kim <hw1008.kim@samsung.com> on 2014-03-20
Reviewed by Gyuyoung Kim.

EflUniquePtr is a template alias of std::unique_ptr
with a custom deleter for each Efl Objects, which is motivated by GUniquePtr.
This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr.

Source/WebCore:

No new tests. No new functionality.

* platform/efl/EflScreenUtilities.h:
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
(WebCore::RenderThemeEfl::loadTheme):
* platform/efl/RenderThemeEfl.h:
* platform/graphics/Icon.h:
* platform/graphics/efl/EvasGLContext.h:
(WebCore::EvasGLContext::create):
* platform/graphics/efl/EvasGLSurface.h:
(WebCore::EvasGLSurface::create):

Source/WebKit/efl:

* WebCoreSupport/AcceleratedCompositingContextEfl.cpp:
(WebCore::AcceleratedCompositingContext::initialize):
* WebCoreSupport/AcceleratedCompositingContextEfl.h:
* WebCoreSupport/BatteryClientEfl.h:
* WebCoreSupport/DumpRenderTreeSupportEfl.h:
* WebCoreSupport/EditorClientEfl.h:
* WebCoreSupport/FrameNetworkingContextEfl.h:
* WebCoreSupport/NavigatorContentUtilsClientEfl.h:
* ewk/ewk_view.cpp:
(_ewk_view_editor_command_string_get):
* tests/UnitTestUtils/EWKTestView.cpp:
(EWKUnitTests::EWKTestView::init):
* tests/UnitTestUtils/EWKTestView.h:

Source/WebKit2:

* Platform/Module.h:
* Platform/efl/ModuleEfl.cpp:
(WebKit::Module::load):
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
* UIProcess/API/efl/EwkView.h:
* UIProcess/efl/InputMethodContextEfl.cpp:
(WebKit::InputMethodContextEfl::InputMethodContextEfl):
(WebKit::InputMethodContextEfl::createIMFContext):
* UIProcess/efl/InputMethodContextEfl.h:
(WebKit::InputMethodContextEfl::create):

Source/WTF:

* wtf/OwnPtrCommon.h:
* wtf/PlatformEfl.cmake:
* wtf/RunLoop.h:
* wtf/efl/MainThreadEfl.cpp:
(WTF::pipeObject):
(WTF::initializeMainThreadPlatform):
* wtf/efl/OwnPtrEfl.cpp: Removed.
* wtf/efl/RunLoopEfl.cpp:
(WTF::RunLoop::RunLoop):
* wtf/efl/UniquePtrEfl.h: Added.
(WTF::EflPtrDeleter::operator()):

Tools:

* DumpRenderTree/efl/DumpRenderTree.cpp:
(main):
* ImageDiff/efl/ImageDiff.cpp:
(initEfl):
(main):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166039 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: add frontend controller and models for replay sessions
https://bugs.webkit.org/show_bug.cgi?id=130145

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/scripts/CodeGeneratorInspector.py: Add the conditional Replay domain.

Source/WebInspectorUI:

Upstream the frontend models and controller for web replay. The replay manager
syncs with the backend controller's replay state and replay sessions by using
the same state machines and transitions.

Session and segment models update their data asynchronously using promises.

* UserInterface/Base/Main.js:
(WebInspector.loaded): Add the replay manager.
* UserInterface/Base/Test.js:
(WebInspector.loaded): Add the replay manager.
(InspectorTest.debugLog): Fix a bug in the unescape/escape trick.
(InspectorTest.addResult): Don't try to add results until the test page has loaded.
(InspectorTest.testPageDidLoad): Clear the isReloading flag.
(InspectorTest.reloadPage): Reimplement using promises. Return a promise.
* UserInterface/Base/Utilities.js: Implement Map.take in the obvious way.
* UserInterface/Controllers/ReplayManager.js: Added.
(WebInspector.ReplayManager):
(WebInspector):
(WebInspector.ReplayManager.prototype.get sessionState):
(WebInspector.ReplayManager.prototype.get segmentState):
(WebInspector.ReplayManager.prototype.get activeSessionIdentifier):
(WebInspector.ReplayManager.prototype.get activeSegmentIdentifier):
(WebInspector.ReplayManager.prototype.get playbackSpeed):
(WebInspector.ReplayManager.prototype.set playbackSpeed):
(WebInspector.ReplayManager.prototype.get currentPosition):
(WebInspector.ReplayManager.prototype.getSession.get var):
(WebInspector.ReplayManager.prototype.getSegment.get var):
(WebInspector.ReplayManager.prototype.captureStarted):
(WebInspector.ReplayManager.prototype.captureStopped):
(WebInspector.ReplayManager.prototype.playbackStarted):
(WebInspector.ReplayManager.prototype.playbackHitPosition):
(WebInspector.ReplayManager.prototype.playbackPaused):
(WebInspector.ReplayManager.prototype.playbackFinished):
(WebInspector.ReplayManager.prototype.sessionCreated.set catch):
(WebInspector.ReplayManager.prototype.sessionCreated.this):
(WebInspector.ReplayManager.prototype.sessionCreated):
(WebInspector.ReplayManager.prototype.sessionModified):
(WebInspector.ReplayManager.prototype.sessionRemoved.then):
(WebInspector.ReplayManager.prototype.sessionRemoved):
(WebInspector.ReplayManager.prototype.segmentCreated.set this):
(WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
(WebInspector.ReplayManager.prototype.segmentCompleted):
(WebInspector.ReplayManager.prototype.segmentRemoved.then):
(WebInspector.ReplayManager.prototype.segmentRemoved):
(WebInspector.ReplayManager.prototype.segmentLoaded):
(WebInspector.ReplayManager.prototype.segmentUnloaded):
(WebInspector.ReplayManager.prototype.startCapturing):
(WebInspector.ReplayManager.prototype.stopCapturing):
(WebInspector.ReplayManager.prototype.replayToMarkIndex):
(WebInspector.ReplayManager.prototype.replayToCompletion):
(WebInspector.ReplayManager.prototype.pausePlayback):
(WebInspector.ReplayManager.prototype.stopPlayback):
(WebInspector.ReplayManager.prototype._changeSessionState):
(WebInspector.ReplayManager.prototype._changeSegmentState):
* UserInterface/Main.html:
* UserInterface/Models/ReplaySession.js: Added.
(WebInspector.ReplaySession):
(WebInspector.ReplaySession.fromPayload):
(WebInspector.ReplaySession.prototype.get segments):
(WebInspector.ReplaySession.prototype.segmentsChanged):
(WebInspector.ReplaySession.prototype._updateFromPayload):
* UserInterface/Models/ReplaySessionSegment.js: Added.
(WebInspector.IncompleteSessionSegment):
(WebInspector.IncompleteSessionSegment.prototype.get isComplete):
(WebInspector.ReplaySessionSegment):
(WebInspector.ReplaySessionSegment.prototype.get isComplete):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype._promise): Add a promise-returning method for
invoking backend commands that return a result asynchronously.
* UserInterface/Protocol/ReplayObserver.js: Added.
(WebInspector.ReplayPosition):
(WebInspector.ReplayPosition.fromProtocol):
(WebInspector.ReplayObserver):
(WebInspector.ReplayObserver.prototype.captureStarted):
(WebInspector.ReplayObserver.prototype.captureStopped):
(WebInspector.ReplayObserver.prototype.playbackStarted):
(WebInspector.ReplayObserver.prototype.playbackHitPosition):
(WebInspector.ReplayObserver.prototype.playbackPaused):
(WebInspector.ReplayObserver.prototype.playbackFinished):
(WebInspector.ReplayObserver.prototype.inputSuppressionChanged):
(WebInspector.ReplayObserver.prototype.sessionCreated):
(WebInspector.ReplayObserver.prototype.sessionModified):
(WebInspector.ReplayObserver.prototype.sessionRemoved):
(WebInspector.ReplayObserver.prototype.sessionLoaded):
(WebInspector.ReplayObserver.prototype.segmentCreated):
(WebInspector.ReplayObserver.prototype.segmentRemoved):
(WebInspector.ReplayObserver.prototype.segmentCompleted):
(WebInspector.ReplayObserver.prototype.segmentLoaded):
(WebInspector.ReplayObserver.prototype.segmentUnloaded):
* UserInterface/Test.html:

LayoutTests:

Add tests for existing nondeterministic inputs handled in JSC.
They are skipped for all platforms until WEB_REPLAY is enabled.

The new mechanism here is the single-segment replay reftest. It will
load the test page once to inject test code into the inspector. Then,
the reftest will reload the test page and start capturing. The test
page performs some nondeterministic computation before the load event.
Then, the inspector test dumps the computed nondeterministic state.
Capturing is stopped, and the session is replayed once. When the load
event fires on the replayed page execution, the nondeterministic states
from capturing and replaying are compared. They should be the same.

* inspector/replay/javascript-random-seed-expected.txt: Added.
* inspector/replay/javascript-random-seed.html: Added.
* inspector/replay/replay-test.js: Added. This contains the bulk of
the replay-specific testing logic for the added tests.

(InspectorTestProxy.registerInitializer.):
(InspectorTestProxy.registerInitializer):

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