WebKit-https.git
5 years agoWebRTC: Navigator.webkitGetUserMedia() requires three arguments
adam.bergkvist@ericsson.com [Mon, 22 Jun 2015 08:36:38 +0000 (08:36 +0000)]
WebRTC: Navigator.webkitGetUserMedia() requires three arguments
https://bugs.webkit.org/show_bug.cgi?id=146022

Reviewed by Eric Carlson.

Source/WebCore:

Updated custom binding to make the third error callback argument
mandatory. Updated and unskipped three tests (for the GTK+ port).

* bindings/js/JSNavigatorCustom.cpp:
(WebCore::JSNavigator::webkitGetUserMedia):

LayoutTests:

Updated and unskipped three existing tests.

* fast/mediastream/argument-types-expected.txt:
* fast/mediastream/getusermedia-expected.txt:
* fast/mediastream/getusermedia.html:
* fast/mediastream/script-tests/argument-types.js:
* platform/gtk/TestExpectations:

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

5 years agoUnreviewed. Fix GTK+ build after r185818.
carlosgc@webkit.org [Mon, 22 Jun 2015 07:57:58 +0000 (07:57 +0000)]
Unreviewed. Fix GTK+ build after r185818.

Actually rollout r185320.

* platform/network/soup/DNSSoup.cpp:
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
(WebCore::DNSResolveQueue::platformResolve):
(WebCore::gotProxySettingsCallback): Deleted.
(WebCore::DNSResolveQueue::platformMaybeResolveHost): Deleted.

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

5 years agoPage load performance regression due to bugs.webkit.org/show_bug.cgi?id=145542
barraclough@apple.com [Mon, 22 Jun 2015 06:32:13 +0000 (06:32 +0000)]
Page load performance regression due to bugs.webkit.org/show_bug.cgi?id=145542
https://bugs.webkit.org/show_bug.cgi?id=146198

Unreviewed rollout.

Source/WebCore:

* platform/network/DNSResolveQueue.cpp:
(WebCore::DNSResolveQueue::DNSResolveQueue):
(WebCore::DNSResolveQueue::isUsingProxy):
(WebCore::DNSResolveQueue::add):
(WebCore::DNSResolveQueue::timerFired):
* platform/network/DNSResolveQueue.h:
* platform/network/cf/DNSCFNet.cpp:
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
(WebCore::clientCallback):
(WebCore::DNSResolveQueue::platformResolve):
(WebCore::proxyIsEnabledInSystemPreferences): Deleted.
(WebCore::isUsingProxy): Deleted.
(WebCore::DNSResolveQueue::platformMaybeResolveHost): Deleted.
* platform/network/soup/DNSSoup.cpp:

Source/WebKit2:

* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_prefetch_dns):

Source/WTF:

* wtf/glib/GUniquePtr.h:

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

5 years agoWKApplicationCacheManagerDeleteEntriesForOrigin() has wrong WebsiteDataTypes.
commit-queue@webkit.org [Mon, 22 Jun 2015 04:48:04 +0000 (04:48 +0000)]
WKApplicationCacheManagerDeleteEntriesForOrigin() has wrong WebsiteDataTypes.
https://bugs.webkit.org/show_bug.cgi?id=146180

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-21
Reviewed by Sam Weinig.

Modify to use correct WebsiteDataTypes in WKApplicationCacheManagerDeleteEntriesForOrigin()

* UIProcess/API/C/WKApplicationCacheManager.cpp:
(WKApplicationCacheManagerDeleteEntriesForOrigin):

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

5 years agoREGRESSION (r172975): navigator.language unable to tell region for Traditional Chines...
ap@apple.com [Mon, 22 Jun 2015 04:25:18 +0000 (04:25 +0000)]
REGRESSION (r172975): navigator.language unable to tell region for Traditional Chinese users
https://bugs.webkit.org/show_bug.cgi?id=146121
rdar://problem/21395180

Reviewed by Darin Adler.

Source/WebCore:

Revert to previous behavior, which is wrong in many ways, but not as wrong as the new one.

* platform/mac/Language.mm:
(WebCore::httpStyleLanguageCode):
(WebCore::platformUserPreferredLanguages):
* platform/spi/cf/CFBundleSPI.h:

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/mac/NavigatorLanguage.mm: Added.
(-[NavigatorLanguageDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::overrideAppleLanguages):
(TestWebKitAPI::languageForSystemLanguage):
(TestWebKitAPI::TEST):

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

5 years agofast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html is slow on Mavericks...
ddkilzer@apple.com [Mon, 22 Jun 2015 03:25:48 +0000 (03:25 +0000)]
fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html is slow on Mavericks WK1 Debug builds

The Flakiness Dashboard says that this test times out, but only
on Mavericks WK1 Debug builds (and the leaks bot):

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fcanvas%2Fwebgl%2Ftex-image-and-sub-image-2d-with-video.html>

* platform/mac-wk1/TestExpectations: Mark test as slow on
Mavericks Debug builds:
- fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html

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

5 years ago<rdar://problem/21444762> REGRESSION (r184215): Plug-in services crash on launch...
mitz@apple.com [Sun, 21 Jun 2015 23:44:07 +0000 (23:44 +0000)]
<rdar://problem/21444762> REGRESSION (r184215): Plug-in services crash on launch on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=146195

Reviewed by Sam Weinig.

* Configurations/PluginService.32.xcconfig: Changed the Yosemite definition of
INFOPLIST_FILE such that it would also apply to the macosx10.10.internal SDK.
* Configurations/PluginService.64.xcconfig: Ditto.

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

5 years agoGive Node::didNotifySubtreeInsertions() a better name
aestes@apple.com [Sun, 21 Jun 2015 21:14:51 +0000 (21:14 +0000)]
Give Node::didNotifySubtreeInsertions() a better name
https://bugs.webkit.org/show_bug.cgi?id=146170

Reviewed by Darin Adler.

didNotifySubtreeInsertions() is not a good name. It sounds like we are notifying the subtree insertions, which doesn't make sense.

This function is really about notifying the Node that the subtree it's a part of has finished being inserted into the DOM
(i.e. all nodes have received their call to insertedInto()). Change the name to finishedInsertingSubtree() to better reflect this.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::notifyChildInserted):
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
* dom/Element.cpp:
(WebCore::Element::addShadowRoot):
* dom/Node.h:
(WebCore::Node::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::Node::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::ScriptElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.
* dom/ScriptElement.h:
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::insertedInto):
(WebCore::HTMLFrameElementBase::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.
* html/HTMLFrameElementBase.h:
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::insertedInto):
(WebCore::HTMLScriptElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::HTMLScriptElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.
* html/HTMLScriptElement.h:
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::insertedInto):
(WebCore::SVGFEImageElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGFEImageElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.
* svg/SVGFEImageElement.h:
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::insertedInto):
(WebCore::SVGMPathElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGMPathElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.
* svg/SVGMPathElement.h:
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::insertedInto):
(WebCore::SVGScriptElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGScriptElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.
* svg/SVGScriptElement.h:
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::insertedInto):
(WebCore::SVGTRefElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGTRefElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.
* svg/SVGTRefElement.h:
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::insertedInto):
(WebCore::SVGTextPathElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGTextPathElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.
* svg/SVGTextPathElement.h:
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::insertedInto):
(WebCore::SVGSMILElement::finishedInsertingSubtree): Renamed from didNotifySubtreeInsertions.
(WebCore::SVGSMILElement::didNotifySubtreeInsertions): Renamed to finishedInsertingSubtree.
* svg/animation/SVGSMILElement.h:

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

5 years agofast/fixed-layout/fixed-layout.html times out on Apple WK2 bots
ddkilzer@apple.com [Sun, 21 Jun 2015 16:44:41 +0000 (16:44 +0000)]
fast/fixed-layout/fixed-layout.html times out on Apple WK2 bots

The Flakiness Dashboard says this test times out on Apple
WebKit2 platforms by not calling testRunner.notifyDone():

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Ffixed-layout%2Ffixed-layout.html>

* fast/css-grid-layout/flex-content-sized-columns-resize.html:
Use the same mechanism here that was just added in r185811.
* fast/fixed-layout/fixed-layout.html: Switch to using a
zero-delay timer instead of document.body.offsetTop.

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

5 years agoREGRESSION (r185809): fast/css-grid-layout/flex-content-sized-columns-resize.html...
ddkilzer@apple.com [Sun, 21 Jun 2015 16:16:05 +0000 (16:16 +0000)]
REGRESSION (r185809): fast/css-grid-layout/flex-content-sized-columns-resize.html hangs on WK1

Since window.resize() occurs in the same runloop as the load on
WK1, testRunner.notifyDone() would never get called.

* fast/css-grid-layout/flex-content-sized-columns-resize.html:
Call document.body.offsetTop to ensure layout occurs at the
initial window size before calling window.resize().

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

5 years agoBuild fix.
mitz@apple.com [Sun, 21 Jun 2015 16:01:51 +0000 (16:01 +0000)]
Build fix.

* Shared/API/Cocoa/WKFoundation.h: Don’t use generics if the SDK doesn’t support them.

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

5 years agofast/css-grid-layout/flex-content-sized-columns-resize.html is flaky
ddkilzer@apple.com [Sun, 21 Jun 2015 15:57:04 +0000 (15:57 +0000)]
fast/css-grid-layout/flex-content-sized-columns-resize.html is flaky

The Flakiness Dashboard says this test is flaky on Apple and EFL
WebKit2 platforms:

<http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fcss-grid-layout%2Fflex-content-sized-columns-resize.html>

It currently doesn't wait for window.resize() to complete, which
is likely the source of flakiness.

* fast/css-grid-layout/flex-content-sized-columns-resize.html:
Switch to using notifyDone() inside a window.onresize function,
and make the test work in a web browser without TestRunner.

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

5 years ago[SOUP] Use GTask in WebKitSoupRequestInputStream
mcatanzaro@igalia.com [Sun, 21 Jun 2015 13:19:19 +0000 (13:19 +0000)]
[SOUP] Use GTask in WebKitSoupRequestInputStream
https://bugs.webkit.org/show_bug.cgi?id=146184

Reviewed by Carlos Garcia Campos.

Replace deprecated use of GSimpleAsyncResult with GTask.

* WebProcess/soup/WebKitSoupRequestInputStream.cpp:
(AsyncReadData::AsyncReadData):
(webkitSoupRequestInputStreamReadAsyncResultComplete):
(webkitSoupRequestInputStreamPendingReadAsyncComplete):
(webkitSoupRequestInputStreamReadAsync):
(webkitSoupRequestInputStreamReadFinish):

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

5 years agoFix format strings in NetworkCache.cpp and NetworkCacheStatistics.cpp and WebIDBServe...
mcatanzaro@igalia.com [Sun, 21 Jun 2015 13:15:57 +0000 (13:15 +0000)]
Fix format strings in NetworkCache.cpp and NetworkCacheStatistics.cpp and WebIDBServerConnection.cpp
https://bugs.webkit.org/show_bug.cgi?id=146172

Reviewed by Darin Adler.

Use the correct %"PRIu64" and %"PRIi64" for uint64_t and int64_t, instead of %llu and %lli.

* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCache::Statistics::recordRetrievalFailure):
(WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry):
(WebKit::NetworkCache::Statistics::recordRevalidationSuccess):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::deleteDatabase):
(WebKit::WebIDBServerConnection::didDeleteDatabase):
(WebKit::WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata):
(WebKit::WebIDBServerConnection::didGetOrEstablishIDBDatabaseMetadata):
(WebKit::WebIDBServerConnection::openTransaction):
(WebKit::WebIDBServerConnection::didOpenTransaction):
(WebKit::WebIDBServerConnection::beginTransaction):
(WebKit::WebIDBServerConnection::didBeginTransaction):
(WebKit::WebIDBServerConnection::commitTransaction):
(WebKit::WebIDBServerConnection::didCommitTransaction):
(WebKit::WebIDBServerConnection::resetTransaction):
(WebKit::WebIDBServerConnection::didResetTransaction):
(WebKit::WebIDBServerConnection::rollbackTransaction):
(WebKit::WebIDBServerConnection::didRollbackTransaction):
(WebKit::WebIDBServerConnection::createObjectStore):
(WebKit::WebIDBServerConnection::didCreateObjectStore):
(WebKit::WebIDBServerConnection::createIndex):
(WebKit::WebIDBServerConnection::didCreateIndex):
(WebKit::WebIDBServerConnection::deleteIndex):
(WebKit::WebIDBServerConnection::didDeleteIndex):
(WebKit::WebIDBServerConnection::get):
(WebKit::WebIDBServerConnection::put):
(WebKit::WebIDBServerConnection::didPutRecord):
(WebKit::WebIDBServerConnection::didGetRecord):
(WebKit::WebIDBServerConnection::didOpenCursor):
(WebKit::WebIDBServerConnection::didAdvanceCursor):
(WebKit::WebIDBServerConnection::didIterateCursor):
(WebKit::WebIDBServerConnection::count):
(WebKit::WebIDBServerConnection::didCount):
(WebKit::WebIDBServerConnection::deleteRange):
(WebKit::WebIDBServerConnection::didDeleteRange):
(WebKit::WebIDBServerConnection::clearObjectStore):
(WebKit::WebIDBServerConnection::didClearObjectStore):
(WebKit::WebIDBServerConnection::deleteObjectStore):
(WebKit::WebIDBServerConnection::didDeleteObjectStore):
(WebKit::WebIDBServerConnection::changeDatabaseVersion):
(WebKit::WebIDBServerConnection::didChangeDatabaseVersion):
(WebKit::WebIDBServerConnection::openCursor):
(WebKit::WebIDBServerConnection::cursorAdvance):
(WebKit::WebIDBServerConnection::cursorIterate):

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

5 years ago[CMake] Ignore warnings from system headers when compiling Tools
mcatanzaro@igalia.com [Sun, 21 Jun 2015 13:15:54 +0000 (13:15 +0000)]
[CMake] Ignore warnings from system headers when compiling Tools
https://bugs.webkit.org/show_bug.cgi?id=146185

Reviewed by Martin Robinson.

Use the SYSTEM argument to the include_directories() command to silence compiler warnings
from system headers that we don't control.

* DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt:
* ImageDiff/CMakeLists.txt: Also, remove an EFL include directory from here...
* ImageDiff/PlatformEfl.cmake: ...and put it here where it belongs.
* ImageDiff/PlatformGTK.cmake:
* MiniBrowser/efl/CMakeLists.txt:
* MiniBrowser/gtk/CMakeLists.txt:
* TestWebKitAPI/PlatformEfl.cmake:
* TestWebKitAPI/PlatformGTK.cmake:
* TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
* WebKitTestRunner/CMakeLists.txt:
* WebKitTestRunner/PlatformEfl.cmake:
* WebKitTestRunner/PlatformGTK.cmake:

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

5 years agolibwebkit2gtk fails to link without opengl
commit-queue@webkit.org [Sun, 21 Jun 2015 10:06:14 +0000 (10:06 +0000)]
libwebkit2gtk fails to link without opengl
https://bugs.webkit.org/show_bug.cgi?id=138332

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-06-21
Reviewed by Carlos Garcia Campos.

.:

* Source/cmake/OptionsGTK.cmake: USE(TEXTURE_MAPPER) must be
enabled regardless of whether OpenGL is, because certain symbols
such as WebCore::GraphicsLayer::create() need to be built.

Source/WebCore:

* CMakeLists.txt: The third-party ANGLE directories need to be
included even if ENABLE(GRAPHICS_CONTEXT_3D) is false. They must
be included after the OpenGL headers as the comment says.
* platform/graphics/texmap/BitmapTexturePool.cpp: Remove
reference to no longer existent header file.

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

5 years agoDeselection of text causes a noticeable jump on force touch machines
timothy_horton@apple.com [Sun, 21 Jun 2015 06:43:14 +0000 (06:43 +0000)]
Deselection of text causes a noticeable jump on force touch machines
https://bugs.webkit.org/show_bug.cgi?id=146173
<rdar://problem/20992842>

Reviewed by Sam Weinig.

Source/WebCore:

When we have a TextIndicator of type Crossfade, we end up putting
a layer with the blue highlight + text painted into it on top of the
content, and cross-fading that layer to the yellow-highlighted text.

This is necessary for BounceAndCrossfade TextIndicators, because the
blue highlight has to bounce, but is not necessary for Crossfade-only
ones; we can just fade in the yellow highlight on top of the
existing blue page highlight, and all is well.

So, get rid of the Crossfade TextIndicator type and use FadeIn, separately
keeping track of whether or not we can add a margin (we still can't
add a margin to TextIndicators that indicate the page's current selection,
because the blue highlight cannot have the margin applied to it, and we
want the bounds to match exactly).

* page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithRange):
If the range is the same as the selection, turn off the margin.
We were previously doing this based on the presentation transition, but now
there's no difference in presentation transition in this case.

(WebCore::TextIndicator::createWithSelectionInFrame):
(WebCore::TextIndicator::wantsBounce):
(WebCore::TextIndicator::wantsContentCrossfade):
(WebCore::TextIndicator::wantsFadeIn):
(WebCore::TextIndicator::wantsManualAnimation):
* page/TextIndicator.h:
Get rid of TextIndicatorPresentationTransition::Crossfade.

(WebCore::TextIndicator::setWantsMargin):
(WebCore::TextIndicator::wantsMargin):
Keep track of whether we want a margin.

* page/mac/TextIndicatorWindow.mm:
(-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
Determine if we should use a margin based on wantsMargin instead of the
presentation transition.

Source/WebKit/mac:

* WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _animationControllerForText]):
Get rid of TextIndicatorPresentationTransition::Crossfade.

Source/WebKit2:

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
Encode/decode wantsMargin.

* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performImmediateActionHitTestAtLocation):
(WebKit::textIndicatorTransitionForImmediateAction): Deleted.
Get rid of TextIndicatorPresentationTransition::Crossfade.

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

5 years ago[Cocoa] Actually use Objective-C lightweight generics when the compiler supports...
mitz@apple.com [Sun, 21 Jun 2015 03:27:20 +0000 (03:27 +0000)]
[Cocoa] Actually use Objective-C lightweight generics when the compiler supports them
https://bugs.webkit.org/show_bug.cgi?id=146183

Reviewed by Sam Weinig.

* Shared/API/Cocoa/WKFoundation.h: When the compiler supports Objective-C generics, define
WK_ARRAY and WK_SET to use them. Also added a definition of WK_DICTIONARY.

* UIProcess/API/Cocoa/WKWebViewPrivate.h: Use WK_DICTIONARY for the options dictionary of
-_loadRequest:withOptions:.

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): Made the completion
halder type match the declaration, now that NSArray and WK_ARRAY(WKWebsiteDataRecord *) are
not the same.

* mac/postprocess-framework-headers.sh: Also rewrite WK_DICTIONARY.

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

5 years ago[EFL][GTK] Define GLIB_VERSION_MIN_REQUIRED and require glib 2.36 for GTK
mcatanzaro@igalia.com [Sat, 20 Jun 2015 23:00:45 +0000 (23:00 +0000)]
[EFL][GTK] Define GLIB_VERSION_MIN_REQUIRED and require glib 2.36 for GTK
https://bugs.webkit.org/show_bug.cgi?id=146181

Reviewed by Martin Robinson.

.:

Bump our GLib requirement to 2.36 to reflect reality, since we are using GTask.

* Source/cmake/OptionsGTK.cmake:

Source/WTF:

Define GLIB_VERSION_MIN_REQUIRED to avoid deprecation warnings.

* wtf/Platform.h:

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

5 years ago[GTK] Define GDK_VERSION_MIN_REQUIRED when compiling MiniBrowser
mcatanzaro@igalia.com [Sat, 20 Jun 2015 22:50:58 +0000 (22:50 +0000)]
[GTK] Define GDK_VERSION_MIN_REQUIRED when compiling MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=146186

Reviewed by Martin Robinson.

Define GDK_VERSION_MIN_REQUIRED when compiling MiniBrowser to silence several dozen
deprecation warnings. (MiniBrowser is unique in that it does not include wtf/Platform.h.)

* MiniBrowser/gtk/CMakeLists.txt:

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

5 years agoWeb Inspector: Unable to select parent element in the DOM tree path bar
nvasilyev@apple.com [Sat, 20 Jun 2015 22:47:39 +0000 (22:47 +0000)]
Web Inspector: Unable to select parent element in the DOM tree path bar
https://bugs.webkit.org/show_bug.cgi?id=145810

Reviewed by Timothy Hatcher.

* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype.get selectionPathComponents):
* UserInterface/Views/HierarchicalPathComponent.js:
(WebInspector.HierarchicalPathComponent.prototype.get selectedPathComponent):
(WebInspector.HierarchicalPathComponent.prototype._selectElementMouseUp):
(WebInspector.HierarchicalPathComponent.prototype._selectElementSelectionChanged):
(WebInspector.HierarchicalPathComponent):
(WebInspector.HierarchicalPathComponent.prototype._selectElementMouseDown): Deleted.

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

5 years ago[WK2][iOS] Avoid synchronous IPC on view state change when the content is not visible
cdumez@apple.com [Sat, 20 Jun 2015 20:50:35 +0000 (20:50 +0000)]
[WK2][iOS] Avoid synchronous IPC on view state change when the content is not visible
https://bugs.webkit.org/show_bug.cgi?id=146179
<rdar://problem/20923432>

Reviewed by Tim Horton.

After r170787, viewStateChange() would cause a synchronous IPC between
the UIProcess and the WebProcess when the view becomes visible. This
was to avoid painting empty / black tiles when unsuspending the
WebProcess on tab switch, in the event volatile IOSurfaces were purged.

However, this sync IPC can have performance implications and is not
needed when the content is not actually visible yet (e.g.
hideContentUntilNextUpdate() was called, or the tab was killed).

This patch avoids the synchronous IPC when the content is hidden and
exposes a private API on WKWebView so that clients can ask for the
content to be hidden until the next update. This would allow for
clients to avoid the synchronous IPC if they don't need the content
to be displayed synchronously (e.g. the view is obscured).

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _hideContentUntilNextUpdate]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::hasVisibleContent):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchViewStateChange):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::isContentHidden):

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

5 years agoREGRESSION (r185779): fast/canvas/{canvas-toDataURL-crash,pattern-too-large-to-create...
ddkilzer@apple.com [Sat, 20 Jun 2015 16:48:11 +0000 (16:48 +0000)]
REGRESSION (r185779): fast/canvas/{canvas-toDataURL-crash,pattern-too-large-to-create}.html are broken

This layout test started failing after the fix for:

    Extremely large canvas crashes on pre-El Capitan machines
    https://bugs.webkit.org/show_bug.cgi?id=146169
    <rdar://problem/21410046>

Different limits require different test results for each
platform.  This is the same fix for these tests as r185793.

* fast/canvas/canvas-toDataURL-crash-expected.txt: Update.
* fast/canvas/pattern-too-large-to-create-expected.txt: Update.
- Set limit to 268435456.

* platform/ios-simulator/fast/canvas/canvas-toDataURL-crash-expected.txt: Copied from LayoutTests/fast/canvas/canvas-toDataURL-crash-expected.txt.
* platform/ios-simulator/fast/canvas/pattern-too-large-to-create-expected.txt: Copied from LayoutTests/fast/canvas/pattern-too-large-to-create-expected.txt.
- Set limit to 16777216.

* platform/mac-yosemite/fast/canvas/canvas-toDataURL-crash-expected.txt: Copied from LayoutTests/fast/canvas/canvas-toDataURL-crash-expected.txt.
* platform/mac-yosemite/fast/canvas/pattern-too-large-to-create-expected.txt: Copied from LayoutTests/fast/canvas/pattern-too-large-to-create-expected.txt.
- Set limit to 67108864.

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

5 years agofast/canvas/webgl/tex-image-and-uniform-binding-bugs.html is slow on Mavericks WK1...
ddkilzer@apple.com [Sat, 20 Jun 2015 16:30:26 +0000 (16:30 +0000)]
fast/canvas/webgl/tex-image-and-uniform-binding-bugs.html is slow on Mavericks WK1 Debug builds

The Flakiness Dashboard says that this test times out, but only
on Mavericks WK1 Debug builds:

<https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fcanvas%2Fwebgl%2Ftex-image-and-uniform-binding-bugs.html>

* platform/mac-wk1/TestExpectations: Mark test as slow on
Mavericks Debug builds:
- fast/canvas/webgl/tex-image-and-uniform-binding-bugs.html

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

5 years agoediting/selection/leak-document-with-selection-inside.html is flaky
ddkilzer@apple.com [Sat, 20 Jun 2015 16:16:15 +0000 (16:16 +0000)]
editing/selection/leak-document-with-selection-inside.html is flaky
<http://webkit.org/b/146182>

* TestExpectations: Mark as flaky:
- editing/selection/leak-document-with-selection-inside.html

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

5 years agoCheck for SHA1 certificates ignores subresources
mcatanzaro@igalia.com [Sat, 20 Jun 2015 16:06:23 +0000 (16:06 +0000)]
Check for SHA1 certificates ignores subresources
https://bugs.webkit.org/show_bug.cgi?id=146159

Reviewed by Dan Bernstein.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame): Call
PageLoadState::didDisplayOrRunInsecureContent if a certificate chain contains a non-root
SHA1 certificate when the frame is not the main frame.

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

5 years agoAdded availability information to a recently-added delegate method.
mitz@apple.com [Sat, 20 Jun 2015 15:57:03 +0000 (15:57 +0000)]
Added availability information to a recently-added delegate method.

Suggested by Alexey Proskuryakov and Anders Carlsson.

* UIProcess/API/Cocoa/WKUIDelegate.h: Annotated -webViewDidClose:.

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

5 years agoREGRESSION (r185779): fast/canvas/canvas-too-large-to-draw.html is still broken
ddkilzer@apple.com [Sat, 20 Jun 2015 15:10:33 +0000 (15:10 +0000)]
REGRESSION (r185779): fast/canvas/canvas-too-large-to-draw.html is still broken

This layout test started failing after the fix for:

    Extremely large canvas crashes on pre-El Capitan machines
    https://bugs.webkit.org/show_bug.cgi?id=146169
    <rdar://problem/21410046>

Different limits require different test results for each
platform.  Also update the line number from 35 to 36 since the
html test file was modified in r185792.

* fast/canvas/canvas-too-large-to-draw-expected.txt:
- Update limit to 16384x16384 for El Capitan (and other ports)
  and update line number.
* platform/ios-simulator/fast/canvas/canvas-too-large-to-draw-expected.txt: Added.
- New results with 4096x4096 limit for iOS.
* platform/mac-yosemite/fast/canvas/canvas-too-large-to-draw-expected.txt: Added.
- New results with 8192x8192 limit for Mac OS X 10.10.x and older.

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

5 years agoREGRESSION (r185779): fast/canvas/canvas-too-large-to-draw.html broken prior to El...
ddkilzer@apple.com [Sat, 20 Jun 2015 14:26:05 +0000 (14:26 +0000)]
REGRESSION (r185779): fast/canvas/canvas-too-large-to-draw.html broken prior to El Capitan

This layout test started failing after the fix for:

    Extremely large canvas crashes on pre-El Capitan machines
    https://bugs.webkit.org/show_bug.cgi?id=146169
    <rdar://problem/21410046>

* fast/canvas/canvas-too-large-to-draw.html: Update test for new
expectations after r185779.

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

5 years ago[ES6] Destructuring assignment need to accept iterables
utatane.tea@gmail.com [Sat, 20 Jun 2015 11:04:27 +0000 (11:04 +0000)]
[ES6] Destructuring assignment need to accept iterables
https://bugs.webkit.org/show_bug.cgi?id=144111

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch makes that destructuring assignments to array binding patterns accept iterables.
Previously, it just access the indexed properties.
After this patch, it iterates the given value by using ES6 iterator protocol.

The iteration becomes different from the for-of case.
1. Since there's no break/continue case, finally scope is not necessary.
2. When the error is raised, the close status of the iterator becomes true. So IteratorClose is not called for that.
3. Since the array binding patterns requires a limited count of iterations (if there is no rest(...rest) case), IteratorClose is called when the iteration does not consume the all values of the iterator.
4. Since the array binding patterns requires a specified count of iterations, iterator's next call is skipped when iterator becomes closed.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitIteratorClose):
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::ArrayPatternNode::bindValue):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::finishArrayPattern):
* parser/Nodes.h:
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseDeconstructionPattern):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::operatorStackPop):
* tests/stress/destructuring-assignment-accepts-iterables.js: Added.
(shouldBe):
(shouldThrow):
(.set shouldThrow):

LayoutTests:

From this patch, we use iterators for destructuring assignments to array binding patterns.
So test results become different.

* js/destructuring-assignment-expected.txt:
* js/parser-syntax-check-expected.txt:
* js/script-tests/destructuring-assignment.js:

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

5 years ago[EFL] Do not consider test directories when DEVELOPER_MODE is OFF
ryuan.choi@navercorp.com [Sat, 20 Jun 2015 09:18:43 +0000 (09:18 +0000)]
[EFL] Do not consider test directories when DEVELOPER_MODE is OFF
https://bugs.webkit.org/show_bug.cgi?id=146171

Reviewed by Gyuyoung Kim.

.:

* Source/cmake/OptionsEfl.cmake:
Exposed ENABLE_DEVELOPER_MODE to Compiler and CMake definition when DEVELOPER_MODE is ON.

Source/WebCore:

* platform/efl/EflInspectorUtilities.cpp:
(WebCore::inspectorResourcePath): Only used WEB_INSPECTOR_DIR which CMake decides properly.

Source/WebKit2:

* PlatformEfl.cmake:
Do not define SOURCE_DIR when DEVELOPER_MODE is OFF for seccomp filter
not to allow jhbuild directory.
* Shared/efl/ProcessExecutablePathEfl.cpp:
(WebKit::findProcessPath): Guard test code to ENABLE(DEVELOPER_MODE).

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

5 years agoWeb Inspector: Duplication of style attribute in rules panel for shadow content
commit-queue@webkit.org [Sat, 20 Jun 2015 06:20:21 +0000 (06:20 +0000)]
Web Inspector: Duplication of style attribute in rules panel for shadow content
https://bugs.webkit.org/show_bug.cgi?id=146176

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-06-19
Reviewed by Timothy Hatcher.

* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
The styleText can be non-empty for a readonly editor if the editor is for
the style attribute of a shadow dom node. Instead of assuming it is empty
we can just clear the editor ourselves and regenerate from properties.

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

5 years ago[CMake] FindGTK3.cmake should not modify the values of build options
mcatanzaro@igalia.com [Sat, 20 Jun 2015 02:41:09 +0000 (02:41 +0000)]
[CMake] FindGTK3.cmake should not modify the values of build options
https://bugs.webkit.org/show_bug.cgi?id=144613

Reviewed by Martin Robinson.

* Source/cmake/FindGTK3.cmake: Do not check or set the value of ENABLE_X11_TARGET and
ENABLE_WAYLAND_TARGET. Instead, simply define the variables GTK3_SUPPORTS_X11 and
GTK3_SUPPORTS_WAYLAND as appropriate. Also, rename GTK_SUPPORTS_GESTURES to
GTK3_SUPPORTS_GESTURES for consistency.
* Source/cmake/OptionsGTK.cmake: Fail the build if the appropriate GTK+ backend is not
available. It's not possible to automatically select a backend correctly anymore, since all
options are set at the same time.

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

5 years agoExtremely large canvas crashes on pre-El Capitan machines
dino@apple.com [Sat, 20 Jun 2015 01:46:17 +0000 (01:46 +0000)]
Extremely large canvas crashes on pre-El Capitan machines
https://bugs.webkit.org/show_bug.cgi?id=146169
<rdar://problem/21410046>

Update expected results.

* fast/canvas/canvas-toDataURL-crash-expected.txt:
* fast/canvas/canvas-too-large-to-draw-expected.txt:
* fast/canvas/pattern-too-large-to-create-expected.txt:

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

5 years agoFix absolute value warning in LocalizedStringsGtk.cpp
mcatanzaro@igalia.com [Sat, 20 Jun 2015 01:24:55 +0000 (01:24 +0000)]
Fix absolute value warning in LocalizedStringsGtk.cpp
https://bugs.webkit.org/show_bug.cgi?id=145919

Reviewed by Martin Robinson.

Use abs(static_cast<int>(time)) rather than static_cast<int>(abs(time)) to avoid clang's
warnings about passing a float to abs() instead of std::abs(). Also, because casting an int
to an int is silly.

* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::localizedMediaTimeDescription):

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

5 years agoBuild fix after r146125.
rniwa@webkit.org [Sat, 20 Jun 2015 00:51:52 +0000 (00:51 +0000)]
Build fix after r146125.

* Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
(OSXSafariDriver):
(OSXSafariDriver.prepareEnv):

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

5 years agoWeb Inspector: Highlight currently edited CSS selector
commit-queue@webkit.org [Sat, 20 Jun 2015 00:48:28 +0000 (00:48 +0000)]
Web Inspector: Highlight currently edited CSS selector
https://bugs.webkit.org/show_bug.cgi?id=145658

Patch by Devin Rousso <drousso@apple.com> on 2015-06-19
Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/protocol/DOM.json: Added highlightSelector to show highlight over multiple nodes.

Source/WebCore:

Test: inspector/dom/highlight-multiple-shapes.html

* inspector/InspectorController.cpp:
(WebCore::InspectorController::buildObjectForHighlightedNode):
* inspector/InspectorController.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::highlightSelector): Gets a list of all nodes matching a given selector string and highlights each of them.
* inspector/InspectorDOMAgent.h:
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::hideHighlight):
(WebCore::InspectorOverlay::highlightNodeList): Loops through a given NodeList to create highlightObjects for each of them.
(WebCore::InspectorOverlay::shouldShowOverlay):
(WebCore::buildObjectForElementData): Don't show flow fragments when highlighting multiple nodes.
(WebCore::InspectorOverlay::buildHighlightObjectForNode):
(WebCore::InspectorOverlay::buildObjectForHighlightedNode): Now returns an array containing the highlightObject for each highligthed node.
(WebCore::InspectorOverlay::drawNodeHighlight): Now sends an array to the InspectorOverlayPage.js to provide support for highlighting multiple nodes.
* inspector/InspectorOverlay.h:
* inspector/InspectorOverlayPage.js: Now expects an array as its parameter and loops through it to highlight each node given.
If the parameter array contains more than one element, do not draw the textbox containing info on that node.
(drawNodeHighlight):

Source/WebInspectorUI:

* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection): Added event listeners on the selector text for mouseover and mouseout.
(WebInspector.CSSStyleDeclarationSection.prototype._highlightNodesWithSelector): Selector text mouseover action that highlights all nodes that match the selector string in the corresponding frame.
(WebInspector.CSSStyleDeclarationSection.prototype._hideHighlightOnNodesWithSelector): Selector text mouseout action that clears all highlights on matching nodes.
* UserInterface/Views/DOMNode.js:
(WebInspector.DOMNode): If the payload contains a frameId, then save it.
(WebInspector.DOMNode.frameIdentifier):

LayoutTests:

* inspector/dom/highlightSelector-expected.txt: Added.
* inspector/dom/highlightSelector-iframe.html: Added.
* inspector/dom/highlightSelector.html: Added.

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

5 years ago[SOUP] Define SOUP_VERSION_MIN_REQUIRED
mcatanzaro@igalia.com [Sat, 20 Jun 2015 00:14:20 +0000 (00:14 +0000)]
[SOUP] Define SOUP_VERSION_MIN_REQUIRED
https://bugs.webkit.org/show_bug.cgi?id=146165

Reviewed by Martin Robinson.

Define SOUP_VERSION_MIN_REQUIRED to avoid deprecation warnings.

* wtf/Platform.h:

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

5 years agoUnreviewed, fix a small indentation goof.
fpizlo@apple.com [Fri, 19 Jun 2015 23:55:25 +0000 (23:55 +0000)]
Unreviewed, fix a small indentation goof.

* JetStream/cdjs/motion.js:
(Motion.prototype.findIntersection):

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

5 years agoCrash under WebCore::PageConsoleClient::addMessage attempting to log insecure content...
commit-queue@webkit.org [Fri, 19 Jun 2015 23:51:49 +0000 (23:51 +0000)]
Crash under WebCore::PageConsoleClient::addMessage attempting to log insecure content message in ImageDocument
https://bugs.webkit.org/show_bug.cgi?id=146096

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-06-19
Reviewed by Timothy Hatcher.

Was able to reproduce this using a user stylesheet with an http css font
on a pdf (ImageDocument) main document loaded over https. Was unable to
create a reliable test for this scenario.

* page/PageConsoleClient.cpp:
(WebCore::getParserLocationForConsoleMessage):
The scriptableDocumentParser could be null, such as in an ImageDocument.

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

5 years agoJetStream should include a JavaScript version of the CDx real-time benchmark
fpizlo@apple.com [Fri, 19 Jun 2015 23:49:38 +0000 (23:49 +0000)]
JetStream should include a JavaScript version of the CDx real-time benchmark
https://bugs.webkit.org/show_bug.cgi?id=146156

Reviewed by Geoffrey Garen.

This adds a JavaScript port of the CDx real-time benchmark to JetStream, and retires
the cordic test because it was previously the smallest and probably least interesting.

The new test, "cdjs", is mostly a faithful rewrite of the Java code into JavaScript.
I got the Java code from https://www.cs.purdue.edu/sss/projects/cdx/.

There are some differences:

- It uses RedBlackTree's for all sets and maps rather than hashtables. This is clearly
  more in the spirit of real-time than the CDx benchmark. FWIW, CDx used to use trees
  and I don't know why that changed in the latest version.

- CDjs doesn't attempt to avoid memory allocations, unlike the real-time Java version.
  I wrote the code that I wanted to write for aesthetics, rather than the code that I
  would have written if I tried to write the fastest code possible. Again, I believe
  that this is in the spirit of CDj - it's meant to test what would happen if you wrote
  real-timey stuff in a high level language and actually took advantage of that
  language to be more productive.

The test score reflects the average latency of the worst 10 samples out of 200 samples.
The simulation uses 1000 aircraft, flying along paths that result in some detected
collisions every once in a while. The benchmark validates its results by checking the
total number of collisions detected.

Apart from the integration into the JetStream harness, the CDjs directory contains a
fully self-contained benchmark that could be run either in the jsc shell or in browser.

This new code uses the same 3-clause BSD license as the Purdue code, and gives
attribution to Purdue in almost all files. I believe that is appropriate since I wrote
most of the JS files by looking at the Purdue Java code and trascribing to JavaScript.
In some cases, I even copy-pasted the Java code, like the complicated math for
four-dimensional intersections and voxel hashing.

* JetStream/CDjsSetup.js: Added.
* JetStream/Octane2Setup.js:
* JetStream/Reference.js:
* JetStream/cdjs: Added.
* JetStream/cdjs/benchmark.js: Added.
(benchmark):
* JetStream/cdjs/call_sign.js: Added.
(CallSign):
(CallSign.prototype.compareTo):
(CallSign.prototype.toString):
* JetStream/cdjs/collision.js: Added.
(Collision):
(Collision.prototype.toString):
* JetStream/cdjs/collision_detector.js: Added.
(CollisionDetector):
(CollisionDetector.prototype.handleNewFrame.get for):
(CollisionDetector.prototype.handleNewFrame):
* JetStream/cdjs/constants.js: Added.
* JetStream/cdjs/main.html: Added.
* JetStream/cdjs/main.js: Added.
* JetStream/cdjs/motion.js: Added.
(Motion):
(Motion.prototype.toString):
(Motion.prototype.delta):
(Motion.prototype.findIntersection):
* JetStream/cdjs/motion_test.js: Added.
(checkDoesIntersect):
(checkDoesNotIntersect):
(makeMotion):
* JetStream/cdjs/red_black_tree.js: Added.
(RedBlackTree):
(RedBlackTree.):
* JetStream/cdjs/red_black_tree_test.js: Added.
(test):
(test.):
* JetStream/cdjs/reduce_collision_set.js: Added.
(drawMotionOnVoxelMap):
(drawMotionOnVoxelMap.):
(.get reduceCollisionSet):
* JetStream/cdjs/reduce_collision_set_test.js: Added.
(makeMotion):
(keys):
(test):
* JetStream/cdjs/simulator.js: Added.
(Simulator):
(Simulator.prototype.simulate):
* JetStream/cdjs/util.js: Added.
(compareNumbers):
(averageAbovePercentile):
(currentTime):
(else.currentTime):
* JetStream/cdjs/vector_2d.js: Added.
(Vector2D):
(Vector2D.prototype.plus):
(Vector2D.prototype.minus):
(Vector2D.prototype.toString):
(Vector2D.prototype.compareTo):
* JetStream/cdjs/vector_3d.js: Added.
(Vector3D):
(Vector3D.prototype.plus):
(Vector3D.prototype.minus):
(Vector3D.prototype.dot):
(Vector3D.prototype.squaredMagnitude):
(Vector3D.prototype.magnitude):
(Vector3D.prototype.times):
(Vector3D.prototype.as2D):
(Vector3D.prototype.toString):
* JetStream/create.rb:
* JetStream/index-TEMPLATE.html:
* JetStream/sunspider/cordic.js: Removed.

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

5 years agoExtremely large canvas crashes on pre-El Capitan machines
dino@apple.com [Fri, 19 Jun 2015 23:45:35 +0000 (23:45 +0000)]
Extremely large canvas crashes on pre-El Capitan machines
https://bugs.webkit.org/show_bug.cgi?id=146169
<rdar://problem/21410046>

Reviewed by Tim Horton.

Source/WebCore:

On machines before El Capitan, make the maximum canvas size
8k by 8k.

Covered by existing tests.

* html/HTMLCanvasElement.cpp:

LayoutTests:

Un-skip fast/canvas/canvas-too-large-to-draw.html.

* platform/mac/TestExpectations:

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

5 years agoSelection services cannot be invoked when force click is enabled
timothy_horton@apple.com [Fri, 19 Jun 2015 23:40:32 +0000 (23:40 +0000)]
Selection services cannot be invoked when force click is enabled
https://bugs.webkit.org/show_bug.cgi?id=146166
<rdar://problem/21468362>

Reviewed by Darin Adler.

* page/mac/ServicesOverlayController.h:
Turn Highlight::Type into something we can use for dirty flags.

* page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::Highlight::createForSelection):
(WebCore::ServicesOverlayController::Highlight::createForTelephoneNumber):
(WebCore::ServicesOverlayController::ServicesOverlayController):
(WebCore::ServicesOverlayController::selectionRectsDidChange):
(WebCore::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
(WebCore::ServicesOverlayController::invalidateHighlightsOfType):
(WebCore::ServicesOverlayController::buildPotentialHighlightsIfNeeded):
(WebCore::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
(WebCore::ServicesOverlayController::buildSelectionHighlight):
(WebCore::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight):
(WebCore::ServicesOverlayController::determineActiveHighlight):
(WebCore::ServicesOverlayController::didScrollFrame):
(WebCore::ServicesOverlayController::handleClick):
Coalesce highlight rebuilding so that things (like TextIndicator creation)
that change the selection and then reset it immediately don't cause us
to lose the active highlight.

This also means that if the selection changes multiple times in a runloop
(easily possible from script), we won't waste a lot of time rebuilding highlights.

(WebCore::ServicesOverlayController::didRebuildPotentialHighlights):
Merged into buildPotentialHighlightsIfNeeded.

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

5 years agoWeb Inspector: TimelineAgent needs to handle nested runloops
mattbaker@apple.com [Fri, 19 Jun 2015 23:35:53 +0000 (23:35 +0000)]
Web Inspector: TimelineAgent needs to handle nested runloops
https://bugs.webkit.org/show_bug.cgi?id=145090

Reviewed by Joseph Pecoraro.

Source/WebCore:

Previously nested run loops caused InspectorTimelineAgent to prematurely pop the current run loop record. This
patch adds a counter to track the run loop nesting level, and rendering frame records are only pushed/popped
when the nesting level is zero. Run loop entry/exit notifications received while the debugger is paused do not
affect the nesting level.

* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::internalStop):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:

LayoutTests:

* TestExpectations:
Unskip tests after improvements to nested runloop handling in InspectorTimelineAgent.

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

5 years agoFollow-up fix to r185766.
bfulgham@apple.com [Fri, 19 Jun 2015 23:33:39 +0000 (23:33 +0000)]
Follow-up fix to r185766.
https://bugs.webkit.org/show_bug.cgi?id=22132

Reviewed by Zalan Bujtas.

Suggested by Darin Adler in the bug.

* platform/graphics/filters/FETile.cpp:
(WebCore::FETile::platformApplySoftware): Use WTF::move when passing
the new tileImageCopy RefPtr.

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

5 years agoREGRESSION(r185475): [Mac] ASSERT() when clicking on text using web fonts with force...
mmaxfield@apple.com [Fri, 19 Jun 2015 23:33:36 +0000 (23:33 +0000)]
REGRESSION(r185475): [Mac] ASSERT() when clicking on text using web fonts with force touch trackpad
https://bugs.webkit.org/show_bug.cgi?id=145890
<rdar://problem/21390877>

Reviewed by Darin Adler and Tim Horton.

The best place to stop the serialization of unserializable fonts is inside WebKit2's IPC code. We want
this logic to occur when encoding an NSAttributedString, rather than when encoding an NSDictionary,
because changing the shape of an NSAttributedString is less likely to result in problems rather than
changing the shape of an NSDictionary.

* Shared/mac/ArgumentCodersMac.mm:
(IPC::fontIsSerializable):
(IPC::filterUnserializableValues):
(IPC::encode):

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

5 years ago[SOUP] Fix return-type-c-linkage warning after r185553
mcatanzaro@igalia.com [Fri, 19 Jun 2015 23:25:51 +0000 (23:25 +0000)]
[SOUP] Fix return-type-c-linkage warning after r185553
https://bugs.webkit.org/show_bug.cgi?id=146014

Reviewed by Martin Robinson.

Source/WebCore:

* platform/network/soup/WebKitSoupRequestGeneric.cpp:
(webkitSoupRequestGenericGetRequest): Return a pointer rather than a reference.
* platform/network/soup/WebKitSoupRequestGeneric.h: webkitSoupRequestGenericGetRequest now
returns a pointer rather than a reference.

Source/WebKit2:

* Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp:
(WebKit::CustomProtocolManagerImpl::start): webkitSoupRequestGenericGetRequest now returns
a pointer rather than a reference.

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

5 years agoGardening: fix build for EWS bots.
mark.lam@apple.com [Fri, 19 Jun 2015 22:40:25 +0000 (22:40 +0000)]
Gardening: fix build for EWS bots.

Not reviewed.

* runtime/JSArray.cpp:
(JSC::JSArray::setLengthWithArrayStorage):

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

5 years agoCrash in com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::FTL::fixFuncti...
msaboff@apple.com [Fri, 19 Jun 2015 22:28:18 +0000 (22:28 +0000)]
Crash in com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::FTL::fixFunctionBasedOnStackMaps + 17225
https://bugs.webkit.org/show_bug.cgi?id=146133

Reviewed by Geoffrey Garen.

When generating code to put in inline caching areas, if there isn't enough space,
then create and link to an out of line area.  We connect the inline code to this
out of line code area by planting a jump from the inline area to the out of line
code and appending a jump at the end of the out of line code bck to the instruction
following the inline area.  We fill the unused inline area with nops, primarily to
ensure the disassembler doesn't get confused.

* ftl/FTLCompile.cpp:
(generateInlineIfPossibleOutOfLineIfNot): New function that determines if there is enough space
in the inline code area for the code to link.  If so, it links inline, otherwise it links the
code out of line and plants appropriate jumps to/from the out of line code.
(generateICFastPath):
(generateCheckInICFastPath):
(fixFunctionBasedOnStackMaps):
Use generateInlineIfPossibleOutOfLineIfNot() to link code intended for inline cache space.

* ftl/FTLJITFinalizer.cpp:
(JSC::FTL::JITFinalizer::finalizeFunction):
* ftl/FTLJITFinalizer.h:
(JSC::FTL::OutOfLineCodeInfo::OutOfLineCodeInfo):
Added code to finalize any out of line LinkBuffer created by generateInlineIfPossibleOutOfLineIfNot().

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

5 years agoPlayed <audio> looks invisible against the gray background
dino@apple.com [Fri, 19 Jun 2015 22:24:55 +0000 (22:24 +0000)]
Played <audio> looks invisible against the gray background
https://bugs.webkit.org/show_bug.cgi?id=146164
<rdar://problem/21014284>

Reviewed by Brent Fulgham.

The plus-darker blend mode was not allowing any white to
show through in the rendering. We don't need this for
audio controls, where we draw on an opaque grey background.

* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-panel): Darken the color of the controls a
little to make white stand out more.
(audio::-webkit-media-controls-timeline): Remove the plus-darker blending.
(video::-webkit-media-controls-timeline): Apply blending only to video.

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

5 years agoWebKit crash while loading nytimes at JavaScriptCore: JSC::ExecutableAllocator::alloc...
ggaren@apple.com [Fri, 19 Jun 2015 22:03:06 +0000 (22:03 +0000)]
WebKit crash while loading nytimes at JavaScriptCore: JSC::ExecutableAllocator::allocate + 276
https://bugs.webkit.org/show_bug.cgi?id=146163
<rdar://problem/20392986>

Reviewed by Michael Saboff.

There's no good way to test this in our test harness because we don't
have a way to simulate executable memory pressure, and doing so would
cause the cases that still use JITCompilationMustSucceed to crash.

Instead, I tested by manually forcing all regexp JIT compilation to
fail and running the JavaScriptCore tests.

* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::compile): Allow compilation to fail. We can
fall back to the regexp interpreter if we need to.

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

5 years agoVarious assertion failures occur when executing script in the midst of DOM insertion
aestes@apple.com [Fri, 19 Jun 2015 21:55:55 +0000 (21:55 +0000)]
Various assertion failures occur when executing script in the midst of DOM insertion
https://bugs.webkit.org/show_bug.cgi?id=132482

Reviewed by Darin Adler.

Source/WebCore:

Prior to this change, when an element containing a <script> child was inserted into a document, the script was
executed in ScriptElement::insertedInto(). That script can access nodes that follow it in the newly-inserted
hierarchy but are not yet fully inserted, leading to at least the following problems:

    - The script could remove a node that is not yet marked as in the document.
    - The script could remove a named <map> that has yet to be added to TreeScope::m_imageMapsByName.
    - The script could remove a form control that has yet to be added to FormController::m_formElementsWithState.

These scenarios all result in assertion failures. This change ensures that each node in the newly-inserted
hierarchy is fully inserted before executing any scripts.

Tests: fast/dom/element-removed-while-inserting-parent-crash.html
       fast/dom/named-map-removed-while-inserting-parent-crash.html
       fast/forms/form-control-removed-while-inserting-parent-crash.html
       svg/dom/element-removed-while-inserting-parent-crash.html

* dom/ScriptElement.cpp:
(WebCore::ScriptElement::shouldNotifySubtreeInsertions): Renamed from insertedInto().
Returned true in the case where insertedInto() would've called prepareScript().
(WebCore::ScriptElement::didNotifySubtreeInsertions): Called prepareScript().
(WebCore::ScriptElement::insertedInto): Renamed to shouldNotifySubtreeInsertions().
* dom/ScriptElement.h:
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::insertedInto): If shouldNotifySubtreeInsertions() is true, returned InsertionShouldCallDidNotifySubtreeInsertions.
Otherwise, returned InsertionDone.
(WebCore::HTMLScriptElement::didNotifySubtreeInsertions): Called ScriptElement::didNotifySubtreeInsertions().
* html/HTMLScriptElement.h:
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::insertedInto): Did the same as HTMLScriptElement::insertedInto().
(WebCore::SVGScriptElement::didNotifySubtreeInsertions): Called ScriptElement::didNotifySubtreeInsertions().
* svg/SVGScriptElement.h:

LayoutTests:

Wrote named-map-removed-while-inserting-parent-crash.html by reducing the test case attached to bug 132482.
The remaining tests were taken from blink r132482.

* fast/dom/element-removed-while-inserting-parent-crash-expected.txt: Added.
* fast/dom/element-removed-while-inserting-parent-crash.html: Added.
* fast/dom/named-map-removed-while-inserting-parent-crash-expected.txt: Added.
* fast/dom/named-map-removed-while-inserting-parent-crash.html: Added.
* fast/forms/form-control-removed-while-inserting-parent-crash-expected.txt: Added.
* fast/forms/form-control-removed-while-inserting-parent-crash.html: Added.
* svg/dom/element-removed-while-inserting-parent-crash-expected.txt: Added.
* svg/dom/element-removed-while-inserting-parent-crash.html: Added.

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

5 years agoEmploy explicit operator bool() instead of using the UnspecifiedBoolType workaround.
mark.lam@apple.com [Fri, 19 Jun 2015 21:17:54 +0000 (21:17 +0000)]
Employ explicit operator bool() instead of using the UnspecifiedBoolType workaround.
https://bugs.webkit.org/show_bug.cgi?id=146154

Reviewed by Darin Adler.

* assembler/MacroAssemblerCodeRef.h:
(JSC::MacroAssemblerCodePtr::dataLocation):
(JSC::MacroAssemblerCodePtr::operator bool):
(JSC::MacroAssemblerCodePtr::operator==):
(JSC::MacroAssemblerCodeRef::tryToDisassemble):
(JSC::MacroAssemblerCodeRef::operator bool):
(JSC::MacroAssemblerCodeRef::dump):
(JSC::MacroAssemblerCodePtr::operator UnspecifiedBoolType*): Deleted.
(JSC::MacroAssemblerCodeRef::operator UnspecifiedBoolType*): Deleted.

* bytecode/CodeOrigin.cpp:
(JSC::CodeOrigin::isApproximatelyEqualTo):
- Fixed a bug here where we were expecting to compare Executable pointers, but
  ended up comparing a (UnspecifiedBoolType*)1 with another
  (UnspecifiedBoolType*)1.

* bytecode/LLIntCallLinkInfo.h:
(JSC::LLIntCallLinkInfo::~LLIntCallLinkInfo):
(JSC::LLIntCallLinkInfo::isLinked):
(JSC::LLIntCallLinkInfo::unlink):
* dfg/DFGBlockWorklist.h:
(JSC::DFG::BlockWith::BlockWith):
(JSC::DFG::BlockWith::operator bool):
(JSC::DFG::BlockWithOrder::BlockWithOrder):
(JSC::DFG::BlockWithOrder::operator bool):
(JSC::DFG::BlockWith::operator UnspecifiedBoolType*): Deleted.
(JSC::DFG::BlockWithOrder::operator UnspecifiedBoolType*): Deleted.
* dfg/DFGIntegerRangeOptimizationPhase.cpp:
* dfg/DFGLazyNode.h:
(JSC::DFG::LazyNode::operator!):
(JSC::DFG::LazyNode::operator bool):
(JSC::DFG::LazyNode::operator UnspecifiedBoolType*): Deleted.
* heap/CopyWriteBarrier.h:
(JSC::CopyWriteBarrier::operator!):
(JSC::CopyWriteBarrier::operator bool):
(JSC::CopyWriteBarrier::get):
(JSC::CopyWriteBarrier::operator UnspecifiedBoolType*): Deleted.
* heap/Handle.h:
(JSC::HandleBase::operator!):
(JSC::HandleBase::operator bool):
(JSC::HandleBase::slot):
(JSC::HandleBase::operator UnspecifiedBoolType*): Deleted.
* heap/Strong.h:
(JSC::Strong::operator!):
(JSC::Strong::operator bool):
(JSC::Strong::swap):
(JSC::Strong::operator UnspecifiedBoolType*): Deleted.
* jit/JITWriteBarrier.h:
(JSC::JITWriteBarrierBase::operator bool):
(JSC::JITWriteBarrierBase::operator!):
(JSC::JITWriteBarrierBase::setFlagOnBarrier):
(JSC::JITWriteBarrierBase::operator UnspecifiedBoolType*): Deleted.
* runtime/JSArray.cpp:
(JSC::JSArray::setLengthWithArrayStorage):
* runtime/JSCJSValue.h:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::JSValue):
(JSC::JSValue::operator bool):
(JSC::JSValue::operator==):
(JSC::JSValue::operator UnspecifiedBoolType*): Deleted.
* runtime/JSObject.h:
(JSC::JSObject::hasSparseMap):
* runtime/PropertyDescriptor.h:
(JSC::PropertyDescriptor::writablePresent):
(JSC::PropertyDescriptor::enumerablePresent):
(JSC::PropertyDescriptor::configurablePresent):
(JSC::PropertyDescriptor::setterPresent):
(JSC::PropertyDescriptor::getterPresent):
* runtime/WriteBarrier.h:
(JSC::WriteBarrierBase::slot):
(JSC::WriteBarrierBase::operator bool):
(JSC::WriteBarrierBase::operator!):
(JSC::WriteBarrierBase<Unknown>::tagPointer):
(JSC::WriteBarrierBase<Unknown>::payloadPointer):
(JSC::WriteBarrierBase<Unknown>::operator bool):
(JSC::WriteBarrierBase<Unknown>::operator!):
(JSC::WriteBarrierBase::operator UnspecifiedBoolType*): Deleted.
(JSC::WriteBarrierBase<Unknown>::operator UnspecifiedBoolType*): Deleted.

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

5 years agoRename WKSecurityOrigin.h/cpp to WKSecurityOriginRef.h/cpp.
beidson@apple.com [Fri, 19 Jun 2015 20:47:33 +0000 (20:47 +0000)]
Rename WKSecurityOrigin.h/cpp to WKSecurityOriginRef.h/cpp.
https://bugs.webkit.org/show_bug.cgi?id=146152

Reviewed by Dan Bernstein.

Source/WebKit2:

* CMakeLists.txt:

* Shared/API/c/WKSecurityOriginRef.cpp: Renamed from Source/WebKit2/Shared/API/c/WKSecurityOrigin.cpp.
* Shared/API/c/WKSecurityOriginRef.h: Renamed from Source/WebKit2/Shared/API/c/WKSecurityOrigin.h.

* UIProcess/API/efl/ewk_security_origin.cpp:
* UIProcess/API/efl/ewk_storage_manager.cpp:

* WebKit2.xcodeproj/project.pbxproj:

Tools:

* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
* WebKitTestRunner/WebNotificationProvider.cpp:

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

5 years agoAll calls of ImageBuffer::create should null check the return value
bfulgham@apple.com [Fri, 19 Jun 2015 20:45:54 +0000 (20:45 +0000)]
All calls of ImageBuffer::create should null check the return value
https://bugs.webkit.org/show_bug.cgi?id=22132

Reviewed by Zalan Bujtas.

ImageBuffer::create returns nullptr for a number of reasons, and should be
expected to do so. We missed this check in a few places, resulting in
crashes on some systems. Likewise, ImageBuffer::copyImage may return nullptr
in normal use and should be checked.

Source/WebCore:

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern): Add nullptr check for create and copyImage. Remove
extra call to 'setImageObserver'.
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::drawPattern): Add nullptr check for copyImage.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::drawPattern): Add nullptr checks for copyImage.
* platform/graphics/filters/FETile.cpp:
(WebCore::FETile::platformApplySoftware): Add nullptr check for copyImage.
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::asImageBuffer): Add nullptr check for create.
(WebCore::FilterEffect::openCLImageToImageBuffer): Ditto.
* platform/graphics/texmap/BitmapTexture.cpp:
(WebCore::BitmapTexture::updateContents): Add nullptr checks for create and copyImage.
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer): Add nullptr check for copyImage.

Source/WebKit/mac:

* WebCoreSupport/WebContextMenuClient.mm:
(WebContextMenuClient::imageForCurrentSharingServicePickerItem): Add nullptr check
for copyImage.

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

5 years agoAdd a JSC symlink in /System/Library/PrivateFrameworks
andersca@apple.com [Fri, 19 Jun 2015 20:40:11 +0000 (20:40 +0000)]
Add a JSC symlink in /System/Library/PrivateFrameworks
https://bugs.webkit.org/show_bug.cgi?id=146158
rdar://problem/21465968

Reviewed by Dan Bernstein.

* JavaScriptCore.xcodeproj/project.pbxproj:

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

5 years agoGardening: build fixes for GTK and EFL for CheckedArithmetic change.
mark.lam@apple.com [Fri, 19 Jun 2015 20:26:22 +0000 (20:26 +0000)]
Gardening: build fixes for GTK and EFL for CheckedArithmetic change.

Not reviewed.

* wtf/CheckedArithmetic.h:
(WTF::Checked::operator<):
(WTF::Checked::operator<=):
(WTF::Checked::operator>):
(WTF::Checked::operator>=):

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

5 years agoGet CAContext directly for CALayer instead of walking the layer tree.
commit-queue@webkit.org [Fri, 19 Jun 2015 19:28:52 +0000 (19:28 +0000)]
Get CAContext directly for CALayer instead of walking the layer tree.
https://bugs.webkit.org/show_bug.cgi?id=146138
<rdar://problem/21455974>

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-19
Reviewed by Darin Adler.

This will get the context directly from the CALayer instead of getting all CAContexts, walking the layer tree
to the root and comparing that against each CAContext's root layer.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):

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

5 years ago[iOS] scrollIntoViewIfNeeded is not working with scroll-snap points
bfulgham@apple.com [Fri, 19 Jun 2015 19:24:59 +0000 (19:24 +0000)]
[iOS] scrollIntoViewIfNeeded is not working with scroll-snap points
https://bugs.webkit.org/show_bug.cgi?id=145318
<rdar://problem/21081501>

Reviewed by Simon Fraser.

Source/WebCore:

Use the ScrollController in iOS to track the scroll snap point state.
We do not need the animation implementation or timers since the actual
animation is handled by UIKit.

This change lets us communicate the current offset into the scroll snap
offset vector between the WebProcess and RemoteScrollingTree so that
both sides stay in sync regardless of whether user gestures or style
updates have caused us to shift to a different snap point.

* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Set the
current horizontal and vertical scroll snap offset indices.
(WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode): Ditto.
* page/scrolling/AsyncScrollingCoordinator.h: Mark the setActiveScrollSnapIndices
for export so that it can be reached by the UIProcess.
* page/scrolling/ScrollingCoordinator.h: Keep track of horizontal and
vertical scroll snap offset indices.
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::setCurrentHorizontalSnapPointIndex): Added.
(WebCore::ScrollingStateScrollingNode::setCurrentVerticalSnapPointIndex): Added.
* page/scrolling/ScrollingStateScrollingNode.h:
(WebCore::ScrollingStateScrollingNode::currentHorizontalSnapPointIndex): Added.
(WebCore::ScrollingStateScrollingNode::currentVerticalSnapPointIndex): Added.
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren): Update the scroll snap
point offset indices if either has changed.
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::currentHorizontalSnapPointIndex): Added.
(WebCore::ScrollingTreeScrollingNode::currentVerticalSnapPointIndex): Added.
(WebCore::ScrollingTreeScrollingNode::setCurrentHorizontalSnapPointIndex): Added.
(WebCore::ScrollingTreeScrollingNode::setCurrentVerticalSnapPointIndex): Added.
* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange): New method
to handle notifications about scroll snap index changes from the UIProcess.
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/ios/ScrollingTreeIOS.cpp:
(WebCore::ScrollingTreeIOS::currentSnapPointIndicesDidChange): New method
to handle notifications about scroll snap index changes from the UIProcess.
* page/scrolling/ios/ScrollingTreeIOS.h:
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren): Update scroll
snap point current offset indices if they have changed.
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollOffsetOnAxis): Remove unneeded
PLATFORM(MAC) macro.
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::ScrollAnimator): We have a ScrollController if we are
supporting scroll snap points or rubber banding.
(WebCore::ScrollAnimator::processWheelEventForScrollSnap): This method is not needed
for iOS builds.
(WebCore::ScrollAnimator::updateActiveScrollSnapIndexForOffset): Enable this on iOS.
(WebCore::ScrollAnimator::updateScrollSnapState): Renamed from 'updateScrollAnimatorsAndTimers'
and enabled on iOS.
(WebCore::ScrollAnimator::updateScrollAnimatorsAndTimers): Deleted.
* platform/ScrollAnimator.h: Enable some scroll snap methods on iOS.
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::handleWheelEvent): Enable scroll snap index bookkeeping on iOS, too.
(WebCore::ScrollableArea::updateScrollSnapState): Revise to call 'updateScrollSnapState' instead
of 'updateScrollAnimatorsAndTimers'.
* platform/cocoa/ScrollController.h: Enable some methods on iOS. Reorder methods to
reduce the number of macros needed to do so.
* platform/cocoa/ScrollController.mm:
(systemUptime): Only build for Mac.
(WebCore::ScrollController::ScrollController): Disable rubber band-specific members on iOS.
(WebCore::ScrollController::handleWheelEvent): Only build this on Mac.
(WebCore::ScrollController::isRubberBandInProgress): Always return 'false' on iOS.
(WebCore::ScrollController::startSnapRubberbandTimer): Only build this on Mac.
(WebCore::ScrollController::shouldRubberBandInHorizontalDirection): Ditto.
(WebCore::ScrollController::scrollSnapPointState): Enable on iOS.
(WebCore::ScrollController::hasActiveScrollSnapTimerForAxis): Only build on Mac.
(WebCore::ScrollController::updateScrollSnapState): renamed from 'updateScrollAnimatorsAndTimers'
(WebCore::ScrollController::startScrollSnapTimer): Only build on Mac.
(WebCore::ScrollController::initializeGlideParameters): Ditto.
(WebCore::ScrollController::activeScrollSnapIndexForAxis): Enable on iOS.
(WebCore::ScrollController::setActiveScrollSnapIndicesForOffset): Ditto.
(WebCore::ScrollController::beginScrollSnapAnimation): Only build on Mac.
(WebCore::ScrollController::computeGlideDelta): Ditto.
(WebCore::ScrollController::updateScrollAnimatorsAndTimers): Deleted.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): Capture any changes in scroll
snap offset indices.

Source/WebKit2:

* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateScrollingNode>::encode): Handle scroll snap point offset indices.
(ArgumentCoder<ScrollingStateScrollingNode>::decode): Ditto.
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::currentSnapPointIndicesDidChange): Added. Send message
to WebProcess when scroll snap indices have changed.
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
* UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::currentSnapPointIndicesDidChange): Added. Notify the
RemoteScrollingCoordinatorProxy when scroll snap indices have changed.
* UIProcess/Scrolling/RemoteScrollingTree.h:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(-[WKOverflowScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Revised.
Identify changes in the current scroll snap point offset index (in either the horizontal or vertical
directions), and send a notification when this happens.
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::currentSnapPointIndicesDidChange): Added. Notify the
Scrolling Tree when indices changed.
* UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::adjustTargetContentOffsetForSnapping): Revised. Always compute
the new scroll snap offset index (even when we will rubber band).
* WebProcess/Scrolling/RemoteScrollingCoordinator.h:
* WebProcess/Scrolling/RemoteScrollingCoordinator.messages.in: Add a new message to relay changes in scroll
snap index.
* WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::currentSnapPointIndicesChangedForNode): Added.

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

5 years agoFullscreen view should not update bounds of video when in PiP.
commit-queue@webkit.org [Fri, 19 Jun 2015 19:10:51 +0000 (19:10 +0000)]
Fullscreen view should not update bounds of video when in PiP.
https://bugs.webkit.org/show_bug.cgi?id=146134

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-19
Reviewed by Darin Adler.

Don't update bounds on video layer when it is not a child.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVVideoLayer setBounds:]):

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

5 years agoRevert switch to _synchronizedDrawingFence.
commit-queue@webkit.org [Fri, 19 Jun 2015 19:10:31 +0000 (19:10 +0000)]
Revert switch to _synchronizedDrawingFence.
https://bugs.webkit.org/show_bug.cgi?id=146136
<rdar://problem/21227992>

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-19
Reviewed by Simon Fraser.

Revert _synchronizedDrawingFence code path that leaks a port.

* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):

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

5 years agoWeb Inspector: Overlapping dashboard views causing lots of layers in source view
commit-queue@webkit.org [Fri, 19 Jun 2015 19:07:24 +0000 (19:07 +0000)]
Web Inspector: Overlapping dashboard views causing lots of layers in source view
https://bugs.webkit.org/show_bug.cgi?id=146153

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-06-19
Reviewed by Darin Adler.

* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard:not(.visible)):
Hide non-visible dashboard views. The !important is used
to override more specific toolbar .dashboard.foo styles.

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

5 years agoRemove the useless LayoutTests/platform/wincairo/TestExpectations file
ossy@webkit.org [Fri, 19 Jun 2015 18:57:15 +0000 (18:57 +0000)]
Remove the useless LayoutTests/platform/wincairo/TestExpectations file
https://bugs.webkit.org/show_bug.cgi?id=146105

Reviewed by Darin Adler.

* platform/wincairo/TestExpectations: Removed.

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

5 years agoWeb Inspector: Make rule icon toggle all properties for that selector on and off
joepeck@webkit.org [Fri, 19 Jun 2015 18:49:19 +0000 (18:49 +0000)]
Web Inspector: Make rule icon toggle all properties for that selector on and off
https://bugs.webkit.org/show_bug.cgi?id=146031

Patch by Devin Rousso <drousso@apple.com> on 2015-06-19
Reviewed by Timothy Hatcher.

* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section > .header > .icon.toggle-able:hover):
(.style-declaration-section.rule-disabled > .header > .icon):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection): Added event listener to selector icon to toggle commenting of all properties for that rule.
(WebInspector.CSSStyleDeclarationSection.prototype._toggleRuleOnOff): Adds or removes comments to all properties for that rule.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties.uncommentProperties):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties): Uncomments all properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.commentAllProperties): Comments out all properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCheckboxChanged): Moved comment logic to its own function.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCommentCheckboxChanged): Moved uncomment logic to its own function.

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

5 years agoRenderRubyText requires RenderRubyRun parent.
zalan@apple.com [Fri, 19 Jun 2015 18:18:05 +0000 (18:18 +0000)]
RenderRubyText requires RenderRubyRun parent.
https://bugs.webkit.org/show_bug.cgi?id=146148
rdar://problem/21423319

Reviewed by Simon Fraser.

RenderRubyText expects its parent to be RenderRubyRun and since a
a non-block <rt> requires anonymous wrapper, we should check whether
the display type is actually block.

Source/WebCore:

Test: fast/ruby/crash-when-ruby-rt-is-non-block.html

* html/RubyTextElement.cpp:
(WebCore::RubyTextElement::createElementRenderer):

LayoutTests:

* fast/ruby/crash-when-ruby-rt-is-non-block-expected.txt: Added.
* fast/ruby/crash-when-ruby-rt-is-non-block.html: Added.

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

5 years agoCheckedArithmetic's operator bool() and operator==() is broken.
mark.lam@apple.com [Fri, 19 Jun 2015 17:46:02 +0000 (17:46 +0000)]
CheckedArithmetic's operator bool() and operator==() is broken.
https://bugs.webkit.org/show_bug.cgi?id=146129

Reviewed by Geoffrey Garen and Oliver Hunt.

Source/WTF:

The existing operator UnspecifiedBoolType*() in CheckedArithmetic is erroneously
allowing the Checked value to be implicitly casted into pointer types.  This is
because it is doing a reinterpret_cast<UnspecifiedBoolType*>(1) whereas the idiom
relies on the address of a member e.g. &Checked::m_value.  As a result,
ImageBufferData::putData() was getting an implicit cast of a Checked value to
(void*)1 and doing incorrect pointer comparisons on it.

Also, 2 of CheckedArithmetic's operator==() will crash if used on an overflowed
value, while a 3rd one does not.  The 3rd one should be consistent and also crash
if used on an overflowed Checked value.

In this fix, we replace operator UnspecifiedBoolType*() with an explicit operator
bool().  We also add the missing operators <, <=, >, and >=.  That takes care of
the comparisons in ImageBufferData::putData().

* wtf/CheckedArithmetic.h:
(WTF::CrashOnOverflow::overflowed):
(WTF::CrashOnOverflow::crash):
(WTF::RecordOverflow::crash):

(WTF::Checked::operator!):
(WTF::Checked::operator bool):
(WTF::Checked::unsafeGet):
- Don't call CRASH() directly.  Delegate to the handler.

(WTF::Checked::operator==):
- Should call the handler's crash() to be consistent with the other 2 versions of
  operator== which will crash in unsafeGet() if used on an overflowed Checked
  value.

(WTF::Checked::operator<):
(WTF::Checked::operator<=):
(WTF::Checked::operator>):
(WTF::Checked::operator>=):
- Add missing operators.

(WTF::Checked::operator UnspecifiedBoolType*): Deleted.

Tools:

Added API tests for operator ==, !=, <, <=, >, and >=, and tested for both normal
and overflow scenarios in usage of the Checked arithmetic class.

* TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:
(TestWebKitAPI::OverflowCrashLogger::overflowed):
(TestWebKitAPI::OverflowCrashLogger::clearOverflow):
(TestWebKitAPI::OverflowCrashLogger::crash):
(TestWebKitAPI::OverflowCrashLogger::reset):
(TestWebKitAPI::OverflowCrashLogger::hasOverflowed):
(TestWebKitAPI::OverflowCrashLogger::overflowCount):
(TestWebKitAPI::OverflowCrashLogger::didCrash):
- crash logger for verifying that a crash occurs when expected.

(TestWebKitAPI::resetOverflow):
- convenience function for resetting a test value to an initial overflowed state
  before a crash.  We will use this value in the overflow testing.

(TestWebKitAPI::CheckedArithmeticTester::run):
- Added new tests for all the comparison operators.

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

5 years agocancelPreviousPerformRequestsWithTarget for -resolveBounds in wrong class.
commit-queue@webkit.org [Fri, 19 Jun 2015 17:38:24 +0000 (17:38 +0000)]
cancelPreviousPerformRequestsWithTarget for -resolveBounds in wrong class.
https://bugs.webkit.org/show_bug.cgi?id=146140

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-19
Reviewed by Eric Carlson.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebCALayerHostWrapper dealloc]): Added.
(-[WebAVVideoLayer dealloc]): Deleted.

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

5 years agoAddress review feedback from Darin.
andersca@apple.com [Fri, 19 Jun 2015 17:27:06 +0000 (17:27 +0000)]
Address review feedback from Darin.

* Shared/mac/HangDetectionDisablerMac.mm:
(WebKit::clientsMayIgnoreEvents):

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

5 years ago[WinCairo] Null pointer crash in BitmapTexture::updateContents.
peavo@outlook.com [Fri, 19 Jun 2015 17:13:27 +0000 (17:13 +0000)]
[WinCairo] Null pointer crash in BitmapTexture::updateContents.
https://bugs.webkit.org/show_bug.cgi?id=146147

Reviewed by Brent Fulgham.

Added null pointer check.

* platform/graphics/texmap/BitmapTexture.cpp:
(WebCore::BitmapTexture::updateContents):

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

5 years agoDisable SpinTracer detection while loading sync XHR
andersca@apple.com [Fri, 19 Jun 2015 17:08:28 +0000 (17:08 +0000)]
Disable SpinTracer detection while loading sync XHR
https://bugs.webkit.org/show_bug.cgi?id=146150
rdar://problem/21462023

Reviewed by Dan Bernstein.

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::loadResourceSynchronously):

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

5 years agoUpdate font and font-family keyword completions
jonlee@apple.com [Fri, 19 Jun 2015 16:58:14 +0000 (16:58 +0000)]
Update font and font-family keyword completions
https://bugs.webkit.org/show_bug.cgi?id=144558
<rdar://problem/20795292>

Reviewed by Timothy Hatcher.

* UserInterface/Models/CSSKeywordCompletions.js: Replace -webkit-system-font and
-apple-system-font with -apple-system, which is the recommended token for getting the
system font. Also add -title{1,2,3} for font, as they were missing, but already exist
in font-family.

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

5 years agoSpintracer treats the web process as hung when it's showing JavaScript dialogs in...
andersca@apple.com [Fri, 19 Jun 2015 16:53:49 +0000 (16:53 +0000)]
Spintracer treats the web process as hung when it's showing JavaScript dialogs in the UI process
https://bugs.webkit.org/show_bug.cgi?id=146124
rdar://problem/21449395

Reviewed by Geoffrey Garen.

Add a HangDetectionDisabler RAII object and use it for JavaScript panels.

* Shared/HangDetectionDisabler.h: Added.
(WebKit::HangDetectionDisabler::HangDetectionDisabler):
(WebKit::HangDetectionDisabler::~HangDetectionDisabler):
* Shared/mac/HangDetectionDisablerMac.mm: Added.
(WebKit::clientsMayIgnoreEvents):
(WebKit::setClientsMayIgnoreEvents):
(WebKit::HangDetectionDisabler::HangDetectionDisabler):
(WebKit::HangDetectionDisabler::~HangDetectionDisabler):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):

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

5 years agoFixed the build for platforms that don’t have SafariServices.
mitz@apple.com [Fri, 19 Jun 2015 16:05:54 +0000 (16:05 +0000)]
Fixed the build for platforms that don’t have SafariServices.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView previewViewControllerForPosition:inSourceView:]):
(-[WKContentView commitPreviewViewController:]):
(-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]):

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

5 years agoFix the Windows build after r185721
peavo@outlook.com [Fri, 19 Jun 2015 13:31:52 +0000 (13:31 +0000)]
Fix the Windows build after r185721
https://bugs.webkit.org/show_bug.cgi?id=146146

Reviewed by Csaba Osztrogonác.

Speculative buildfix.

* DumpRenderTree/win/UIDelegate.h:
(UIDelegate::unused4): Added.
(UIDelegate::webViewShouldInterruptJavaScript): Deleted.

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

5 years agoUnreviewed. Add myself as a committer.
dpino@igalia.com [Fri, 19 Jun 2015 11:10:55 +0000 (11:10 +0000)]
Unreviewed. Add myself as a committer.

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

5 years agoRemove unnecessary svn:executable flags
ossy@webkit.org [Fri, 19 Jun 2015 09:52:57 +0000 (09:52 +0000)]
Remove unnecessary svn:executable flags
https://bugs.webkit.org/show_bug.cgi?id=146107

Reviewed by Alexey Proskuryakov.

webkit-patch landed only the changelog changes in r185744.

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

5 years agoRemove unnecessary svn:executable flags
ossy@webkit.org [Fri, 19 Jun 2015 09:43:44 +0000 (09:43 +0000)]
Remove unnecessary svn:executable flags
https://bugs.webkit.org/show_bug.cgi?id=146107

Reviewed by Alexey Proskuryakov.

.:

* ManualTests/iframe_notifications/iframe-reparenting-close-window-child.html: Removed property svn:executable.
* ManualTests/iframe_notifications/iframe-reparenting-close-window-iframe.html: Removed property svn:executable.
* ManualTests/iframe_notifications/iframe-reparenting-close-window.html: Removed property svn:executable.
* ManualTests/select-menu-list-wrongly-positioned.html: Removed property svn:executable.
* ManualTests/svg-text-float-not-removed-crash.html: Removed property svn:executable.

Source/WebCore:

* html/canvas/CanvasRenderingContext2D.cpp: Removed property svn:executable.
* mathml/MathMLMencloseElement.cpp: Removed property svn:executable.
* mathml/MathMLMencloseElement.h: Removed property svn:executable.
* platform/efl/RenderThemeEfl.cpp: Removed property svn:executable.
* rendering/mathml/RenderMathMLMenclose.cpp: Removed property svn:executable.
* rendering/mathml/RenderMathMLMenclose.h: Removed property svn:executable.

Source/WebKit2:

* UIProcess/API/efl/EwkView.cpp: Removed property svn:executable.

Tools:

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/images/favicon-green.png: Removed property svn:executable.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/images/favicon-red.png: Removed property svn:executable.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/External/daterangepicker.css: Removed property svn:executable.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/External/jquery.daterangepicker.js: Removed property svn:executable.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/External/moment.min.js: Removed property svn:executable.
* BuildSlaveSupport/build.webkit.org-config/templates/root.html: Removed property svn:executable.
* CygwinDownloader/cygwin-downloader.zip: Removed property svn:executable.
* DumpRenderTree/ForwardingHeaders/runtime/JSExportMacros.h: Removed property svn:executable.
* DumpRenderTree/win/TextInputController.cpp: Removed property svn:executable.
* DumpRenderTree/win/TextInputController.h: Removed property svn:executable.
* DumpRenderTree/win/TextInputControllerWin.cpp: Removed property svn:executable.
* Scripts/webkitpy/port/base_unittest.py: Removed property svn:executable.
* Scripts/webkitpy/port/driver.py: Removed property svn:executable.
* Scripts/webkitpy/w3c/test_parser.py: Removed property svn:executable.

Websites/perf.webkit.org:

* public/js/helper-classes.js: Removed property svn:executable.
* public/js/jquery.flot.plugins.js: Removed property svn:executable.
* public/v2/app.css: Removed property svn:executable.
* public/v2/app.js: Removed property svn:executable.
* public/v2/chart-pane.css: Removed property svn:executable.
* public/v2/data.js: Removed property svn:executable.
* public/v2/index.html: Removed property svn:executable.
* public/v2/js/d3/LICENSE: Removed property svn:executable.
* public/v2/js/d3/d3.js: Removed property svn:executable.
* public/v2/js/d3/d3.min.js: Removed property svn:executable.
* public/v2/js/ember-data.js: Removed property svn:executable.
* public/v2/js/ember.js: Removed property svn:executable.
* public/v2/js/handlebars.js: Removed property svn:executable.
* public/v2/js/jquery.min.js: Removed property svn:executable.
* public/v2/js/statistics.js: Removed property svn:executable.
* public/v2/manifest.js: Removed property svn:executable.
* public/v2/popup.js: Removed property svn:executable.

Websites/webkit.org:

* blog-files/inspector/css_as_authored.png: Removed property svn:executable.
* blog-files/inspector/css_autocomplete.png: Removed property svn:executable.
* blog-files/inspector/css_rule_diff.png: Removed property svn:executable.
* blog-files/inspector/css_unknown_properties.png: Removed property svn:executable.
* blog-files/inspector/warning_10x10.png: Removed property svn:executable.
* demos/regions/pizza-regions-manifesto-regionstyling.html: Removed property svn:executable.
* demos/regions/pizza-regions-manifesto.html: Removed property svn:executable.
* demos/regions/yellow-pizza.jpg: Removed property svn:executable.

LayoutTests:

* fast/block/float/intruding-float-not-removed-writing-mode.xhtml: Removed property svn:executable.
* fast/canvas/script-tests/canvas-image-shadow.js: Removed property svn:executable.
* fast/css-grid-layout/resources/display-grid-set-get.js: Removed property svn:executable.
* fast/css-grid-layout/resources/grid-columns-rows-get-set.js: Removed property svn:executable.
* fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js: Removed property svn:executable.
* fast/css/readonly-pseudoclass-common-element.html: Removed property svn:executable.
* fast/css/readwrite-pseudoclass-editable.html: Removed property svn:executable.
* fast/dom/HTMLObjectElement/beforeload-set-text-crash.xhtml: Removed property svn:executable.
* fast/dom/resources/node-move-to-new-document-crash.svg: Removed property svn:executable.
* fast/dom/text-node-attach-crash.xhtml: Removed property svn:executable.
* fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled: Removed property svn:executable.
* fast/frames/resources/subframe-load-crash.svg: Removed property svn:executable.
* fast/text/split-text-crash.xhtml: Removed property svn:executable.
* http/tests/appcache/resources/abort-cache-onchecking.manifest: Removed property svn:executable.
* http/tests/appcache/resources/abort-cache-onchecking.text: Removed property svn:executable.
* http/tests/appcache/resources/abort-cache-ondownloading-resource-404.manifest: Removed property svn:executable.
* http/tests/appcache/resources/abort-cache-ondownloading.manifest: Removed property svn:executable.
* http/tests/appcache/resources/abort-cache-ondownloading.text: Removed property svn:executable.
* http/tests/appcache/resources/abort-cache-onprogress-1.text: Removed property svn:executable.
* http/tests/appcache/resources/abort-cache-onprogress-2.text: Removed property svn:executable.
* http/tests/appcache/resources/abort-cache-onprogress-3.text: Removed property svn:executable.
* http/tests/appcache/resources/abort-cache-onprogress-4.text: Removed property svn:executable.
* http/tests/xmlhttprequest/methods-async-expected.txt: Removed property svn:executable.
* http/tests/xmlhttprequest/methods-expected.txt: Removed property svn:executable.
* http/tests/xmlhttprequest/workers/methods-async-expected.txt: Removed property svn:executable.
* http/tests/xmlhttprequest/workers/methods-expected.txt: Removed property svn:executable.
* platform/efl/mathml/presentation/menclose-notation-default-longdiv-expected.png: Removed property svn:executable.
* platform/gtk/mathml/presentation/menclose-notation-default-longdiv-expected.png: Removed property svn:executable.
* platform/mac/fast/css-generated-content/nested-tables-with-before-after-content-crash-expected.png: Removed property svn:executable.
* platform/mac/mathml/presentation/menclose-notation-default-longdiv-expected.png: Removed property svn:executable.
* platform/win/fast/canvas/fallback-content-expected.txt: Removed property svn:executable.
* platform/win/fast/dom/tabindex-clamp-expected.txt: Removed property svn:executable.
* platform/win/fast/events/ondrop-text-html-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/basic-textareas-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/basic-textareas-quirks-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/button-inner-block-reuse-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/control-clip-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/fieldset-align-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/fieldset-legend-padding-unclipped-fieldset-border-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/fieldset-with-float-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/float-before-fieldset-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/focus-selection-textarea-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/indeterminate-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/input-appearance-readonly-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/input-appearance-visibility-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/input-first-letter-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/input-readonly-dimmed-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/input-spaces-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/input-text-click-outside-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/input-type-text-min-width-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/input-width-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/listbox-onchange-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/menulist-option-wrap-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/menulist-separator-painting-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/negativeLineHeight-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/onselect-textarea-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/placeholder-pseudo-style-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/range/input-appearance-range-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/range/range-thumb-height-percentage-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/range/slider-padding-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/range/slider-thumb-shared-style-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/range/slider-thumb-stylability-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/range/thumbslider-no-parent-slider-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/search-cancel-button-style-sharing-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/search-display-none-cancel-button-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/search-rtl-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/search-vertical-alignment-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/select-background-none-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/select-empty-option-height-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/select-size-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/select-style-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/select-visual-hebrew-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/selectlist-minsize-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/stuff-on-my-optgroup-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/textAreaLineHeight-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/textarea-align-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/textarea-metrics-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/textarea-placeholder-pseudo-style-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/textarea-scroll-height-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/textarea-scrolled-type-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/textarea-setinnerhtml-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/textfield-overflow-by-value-update-expected.txt: Removed property svn:executable.
* platform/win/fast/forms/textfield-overflow-expected.txt: Removed property svn:executable.
* platform/win/fast/html/details-no-summary4-expected.txt: Removed property svn:executable.
* platform/win/fast/html/details-open-javascript-expected.txt: Removed property svn:executable.
* platform/win/fast/html/details-open2-expected.txt: Removed property svn:executable.
* platform/win/fast/html/details-open4-expected.txt: Removed property svn:executable.
* platform/win/fast/repaint/slider-thumb-drag-release-expected.txt: Removed property svn:executable.
* platform/win/fast/repaint/slider-thumb-float-expected.txt: Removed property svn:executable.
* platform/win/fast/replaced/table-percent-height-expected.txt: Removed property svn:executable.
* platform/win/fast/replaced/three-selects-break-expected.txt: Removed property svn:executable.
* platform/win/fast/transforms/transformed-focused-text-input-expected.txt: Removed property svn:executable.
* platform/win/inverted-colors/non-composited-expected.png: Removed property svn:executable.
* platform/win/inverted-colors/resources/gradient.png: Removed property svn:executable.
* platform/win/js/dom/constructor-length-expected.txt: Removed property svn:executable.
* platform/win/platform/win/accessibility/option-element-position-and-size-expected.txt: Removed property svn:executable.
* platform/win/tables/mozilla/bugs/bug131020-expected.png: Removed property svn:executable.
* platform/wk2/http/tests/media/video-auth-expected.txt: Removed property svn:executable.
* svg/animations/animate-beginElementAt.svg: Removed property svn:executable.
* svg/animations/animate-calcMode-spline-crash-bad-array-length.xhtml: Removed property svn:executable.
* svg/custom/assert-empty-layout-attributes.svg: Removed property svn:executable.
* svg/custom/crash-text-in-textpath.svg: Removed property svn:executable.
* svg/custom/intersection-list-crash.svg: Removed property svn:executable.
* svg/custom/resources/crash-textPath-attributes-iframe.svg: Removed property svn:executable.
* svg/custom/symbol-viewport-element-crash.svg: Removed property svn:executable.
* svg/custom/text-node-in-text-invalidated.svg: Removed property svn:executable.
* svg/dom/resources/SVGStyledElement-pendingResource-crash.svg: Removed property svn:executable.
* svg/text/font-size-null-assertion.svg: Removed property svn:executable.

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

5 years agoDisable tests on the WinCairo buildbot
ossy@webkit.org [Fri, 19 Jun 2015 08:33:29 +0000 (08:33 +0000)]
Disable tests on the WinCairo buildbot
https://bugs.webkit.org/show_bug.cgi?id=146106

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:

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

5 years ago[WK2] Fix unused-private-field warning in WebProcess/Plugins/PluginView.<h|cpp>
ossy@webkit.org [Fri, 19 Jun 2015 08:22:09 +0000 (08:22 +0000)]
[WK2] Fix unused-private-field warning in WebProcess/Plugins/PluginView.<h|cpp>
https://bugs.webkit.org/show_bug.cgi?id=145252

Reviewed by Tim Horton.

Source/WebKit2:

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::PluginView): Added the necessary ifdef guard.
* WebProcess/Plugins/PluginView.h: Added the necessary ifdef guard.
* WebProcess/WebPage/WebPage.h: Moved the definition of ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC to WTF.

Source/WTF:

* wtf/FeatureDefines.h: Moved the definition of ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC
here from Source/WebKit2/WebProcess/WebPage/WebPage.h

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

5 years agoWeb Inspector: Avoid getOwnPropertyNames/Symbols on very large lists
commit-queue@webkit.org [Fri, 19 Jun 2015 08:05:54 +0000 (08:05 +0000)]
Web Inspector: Avoid getOwnPropertyNames/Symbols on very large lists
https://bugs.webkit.org/show_bug.cgi?id=146141

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-06-19
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._propertyDescriptors):
Avoid calling getOwnPropertyNames/Symbols on very large lists. Instead
just generate property descriptors for the first 100 indexes. Note
this would behave poorly for sparse arrays with a length > 100, but
general support for lists with more than 100 elements is poor. See:
<https://webkit.org/b/143589> Web Inspector: Better handling for large collections in Object Trees

Source/WebInspectorUI:

* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
When building completions for a large array, instead of building a list of all the indices
just send a single number back to the frontend and let it generate a list for completion.
We should do even better and avoid building a lookup table here for completion of an index.

LayoutTests:

* inspector/model/remote-object-expected.txt:
* inspector/model/remote-object.html:
There were existing progressions (0 => -1).
There were existing regressions (RegExp properties moving to prototype with descriptors on the prototype).
Add a test for a very large list that would have caused out of memory / hang.

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

5 years ago[EFL] Fix the minibrowser after r185725
commit-queue@webkit.org [Fri, 19 Jun 2015 07:58:54 +0000 (07:58 +0000)]
[EFL] Fix the minibrowser after r185725
https://bugs.webkit.org/show_bug.cgi?id=146135

Patch by Hunseop Jeong <hs85.jeong@samsung.com> on 2015-06-19
Reviewed by Gyuyoung Kim.

Removed the HAVE_ECORE_X guard in MiniBrowser because it is an unnecessary guard
for the elm_config_accel_preference_set() to set the config of acceleration preference.

* MiniBrowser/efl/main.c:
(elm_main): Deleted the HAVE_ECORE_X guard.

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

5 years agoBindings generator should generate code to catch exception and reject promises for...
youenn.fablet@crf.canon.fr [Fri, 19 Jun 2015 07:33:35 +0000 (07:33 +0000)]
Bindings generator should generate code to catch exception and reject promises for Promise-based APIs
https://bugs.webkit.org/show_bug.cgi?id=146060

Reviewed by Darin Adler.

The binding generator splits the function that binds JS to the DOM class implementation in two for functions returning promise.
The first function, called from JS, is responsible of casting this to the expected JSXXX class.
If casting fails, an exception is raised. Otherwise, it calls the second function.
After calling the second function, it checks whether an exception is raised, in which case it returns a rejected promise.
The second function is responsible of argument conversion and calling the DOM class function.

Covered by expectations and AudioContext promise still working.
A test case is added for a promise returning function taking a typed argument as input (if argument value cannot be typed, the promise is rejected).
A second test case is a promise-returning function that can raise an exception. In that case the DOMException is used as rejection value.

As can be seen from generated code, this generalized code adds a mandatory check (is there an exception?) at the end of the function.
This check is done even in cases we know there will be no exception.
This may be covered by another patch if this optimization is thought useful enough.

* bindings/js/JSDOMPromise.cpp:
(WebCore::rejectPromiseWithExceptionIfAny): Utility method for the binding code.
(WebCore::callPromiseFunction): Ditto.
* bindings/js/JSDOMPromise.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateFunctionCastedThis): Extracted from GenerateImplementationFunctionCall to reuse it in case of promise-returning functions.
(GenerateImplementationFunctionCall):
(GenerateCallbackImplementation): Deleted.
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunction):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgument):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithException):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionPromise):
* bindings/scripts/test/TestObj.idl:

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

5 years agoDo not store configuration parameters twice in WebProcessPool
carlosgc@webkit.org [Fri, 19 Jun 2015 05:59:43 +0000 (05:59 +0000)]
Do not store configuration parameters twice in WebProcessPool
https://bugs.webkit.org/show_bug.cgi?id=146102

Reviewed by Sam Weinig.

Since we are copying the given WebProcessPoolConfiguration and
keeping it as a member, we don't need to keep an additional copy
of its contents as extra members. This also prevents
inconsistencies between the values in the configuration and the
members when any of them are modified by WebProcessPool API.

* UIProcess/API/APIProcessPoolConfiguration.h: Return a const
reference instead of a temporary in methods returning a String.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::updateProcessSuppressionState):
(WebKit::WebProcessPool::platformInitializeWebProcess):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setProcessModel):
(WebKit::WebProcessPool::setMaximumNumberOfProcesses):
(WebKit::WebProcessPool::networkingProcessConnection):
(WebKit::WebProcessPool::languageChanged):
(WebKit::WebProcessPool::setUsesNetworkProcess):
(WebKit::WebProcessPool::usesNetworkProcess):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::ensureDatabaseProcess):
(WebKit::WebProcessPool::ensureSharedWebProcess):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::postMessageToInjectedBundle):
(WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation):
(WebKit::WebProcessPool::setCacheModel):
(WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost):
(WebKit::WebProcessPool::requestWebContentStatistics):
(WebKit::WebProcessPool::requestNetworkingStatistics):
* UIProcess/WebProcessPool.h:
(WebKit::WebProcessPool::sendToNetworkingProcess):
(WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary):
(WebKit::WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary):
(WebKit::WebProcessPool::sendToOneProcess):
* UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess):

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

5 years ago[EFL] Unreviewed, gardening on June 19th.
gyuyoung.kim@webkit.org [Fri, 19 Jun 2015 05:48:24 +0000 (05:48 +0000)]
[EFL] Unreviewed, gardening on June 19th.

Mark fast/css/named-images.html to Missing. Additionally accessibility/math-multiscript-attributes.html
and accessibility/transformed-element.html are treated as failure.

* platform/efl/TestExpectations:

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

5 years agoWeb Inspector: Rendering Frames timeline selection should snap to frame boundaries
mattbaker@apple.com [Fri, 19 Jun 2015 04:45:34 +0000 (04:45 +0000)]
Web Inspector: Rendering Frames timeline selection should snap to frame boundaries
https://bugs.webkit.org/show_bug.cgi?id=146120

Reviewed by Timothy Hatcher.

* UserInterface/Views/RenderingFrameTimelineOverview.js:
Enable snapping to frame boundaries.

* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):
Updated filtering to account for ruler snapping.

* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.get snapInterval):
(WebInspector.TimelineRuler.prototype.set snapInterval):
(WebInspector.TimelineRuler.prototype.set selectionStartTime):
(WebInspector.TimelineRuler.prototype.set selectionEndTime):
(WebInspector.TimelineRuler.prototype._snapValue):
(WebInspector.TimelineRuler.prototype._handleMouseMove):
Added support for snapping to a specified interval.

* UserInterface/Views/TimelineSidebarPanel.js:
Removed unnecessary code.

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

5 years agoDisable UIWindow for fullscreen video for selected clients.
commit-queue@webkit.org [Fri, 19 Jun 2015 03:46:06 +0000 (03:46 +0000)]
Disable UIWindow for fullscreen video for selected clients.
https://bugs.webkit.org/show_bug.cgi?id=145852

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-18
Reviewed by Simon Fraser.

Disable UIWindow for fullscreen video doesn't work everywhere (rdar://problem/21315993), so just disable it when creating a UIWindow won't work.
Fix some interface hiding and layout problems that showed up in the non UIWindow code path.

* platform/RuntimeApplicationChecksIOS.h:
* platform/RuntimeApplicationChecksIOS.mm: Remove iAD bundle identifier.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setupFullscreen): Opt out of UIWindow when hosted in another process. And fix view parenting for non-window case.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen): Fix for AVKit exit fullscreen complaining about -needsLayout.

(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline):
(WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::willStopOptimizedFullscreen):
(WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen):
These hide and show the view controller where we hide and show the window.

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

5 years agoExtend capability of run-benchmark script to support mobile device
commit-queue@webkit.org [Fri, 19 Jun 2015 02:32:40 +0000 (02:32 +0000)]
Extend capability of run-benchmark script to support mobile device
https://bugs.webkit.org/show_bug.cgi?id=146125

Patch by Dewei Zhu <dewei_zhu@apple.com> on 2015-06-18
Reviewed by Ryosuke Niwa.

Extend capability of run-benchmark to support mobile device, and move majority of run-benchmark script code to
benchmark_runner directory, and make run-benchmark a wrapping script. Also correct a typo.

* Scripts/run-benchmark:
(main): Deleted.
* Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(BenchmarkRunner.__init__):
(BenchmarkRunner.execute):
* Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
(BrowserDriver.prepareEnv):
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
(OSXBrowserDriver.prepareEnv):
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
(OSXSafariDriver.prepareEnv):
* Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
(HTTPServerDriver.getReturnCode):
(HTTPServerDriver):
(HTTPServerDriver.setDeviceID):
* Scripts/webkitpy/benchmark_runner/run_benchmark.py: Copied from Tools/Scripts/run-benchmark.
(parse_args):
(start):
(main):
* Scripts/webkitpy/benchmark_runner/utils.py:
(getPathFromProjectRoot):

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

5 years agoProvide a way for web developers to draw a Theme-specific Wireless Playback icon
dino@apple.com [Fri, 19 Jun 2015 01:13:37 +0000 (01:13 +0000)]
Provide a way for web developers to draw a Theme-specific Wireless Playback icon
https://bugs.webkit.org/show_bug.cgi?id=146123
<rdar://problem/21119287>

Reviewed by Simon Fraser.

Source/WebCore:

Implement a -webkit-named-image() CSS <image> generator that allows a site to
request artwork by name and get the platform variant. At the moment
we only support "wireless-playback" which returns a generic image everywhere
but Cocoa platforms, where we render the AirPlay icon.

In order to do this I added a ThemeCocoa to share any Theme code between
Mac and iOS.

Test: fast/css/named-icons.html

* WebCore.xcodeproj/project.pbxproj: Add new files CSSNamedImageValue, NamedImageGeneratedImage and ThemeCocoa.

* css/CSSImageGeneratorValue.cpp: Handle the new NamedImageClass in the switch statements for downcasting.
(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::isFixedSize):
(WebCore::CSSImageGeneratorValue::isPending):
(WebCore::CSSImageGeneratorValue::knownToBeOpaque):

* css/CSSNamedImageValue.cpp: New class. Just holds a name String.
(WebCore::CSSNamedImageValue::customCSSText):
(WebCore::CSSNamedImageValue::image):
(WebCore::CSSNamedImageValue::equals):
* css/CSSNamedImageValue.h:
(WebCore::CSSNamedImageValue::create):
(WebCore::CSSNamedImageValue::isFixedSize):
(WebCore::CSSNamedImageValue::isPending):
(WebCore::CSSNamedImageValue::CSSNamedImageValue):

* css/CSSParser.cpp:
(WebCore::CSSParser::isGeneratedImageValue): Allow "-webkit-named-image(".
(WebCore::CSSParser::parseGeneratedImage): Call parseNamedImage if we hit named-icon.
(WebCore::CSSParser::parseNamedImage): Parse the function looking for a CSS ident.
* css/CSSParser.h:

* css/CSSValue.cpp: Handle NamedImageClass in the various switch statements.
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
(WebCore::CSSValue::isNamedImageValue): Helper to detect the correct CSSValue subclass.

* platform/Theme.cpp:
(WebCore::Theme::drawNamedImage): Draw a generic wireless playback icon.
* platform/Theme.h: Add drawNamedImage.

* platform/cocoa/ThemeCocoa.cpp: New shared base class for ThemeMac and ThemeIOS.
(WebCore::fitContextToBox):
(WebCore::ThemeCocoa::drawNamedImage): Draw an AirPlay icon for wireless playback.
* platform/cocoa/ThemeCocoa.h:

* platform/graphics/CrossfadeGeneratedImage.h: Drive-by removal of unnecessary forward class definition.

* platform/graphics/ImageBuffer.h: Add NamedImageGeneratedImage as a friend class.

* platform/graphics/NamedImageGeneratedImage.cpp: New class. Calls into the Theme to render the artwork.
(WebCore::NamedImageGeneratedImage::NamedImageGeneratedImage):
(WebCore::NamedImageGeneratedImage::draw):
(WebCore::NamedImageGeneratedImage::drawPattern):
* platform/graphics/NamedImageGeneratedImage.h:

* platform/ios/ThemeIOS.h: Inherit from ThemeCocoa.
* platform/mac/ThemeMac.h: Ditto.

LayoutTests:

Test the new -webkit-named-image CSS generator. Only "wireless-playback"
is supported for now, and has platform-specific results for Cocoa.

* fast/css/named-images-expected.png: Added.
* fast/css/named-images.html: Added.
* platform/mac/fast/css/named-images-expected.png: Added.
* platform/mac/fast/css/named-images-expected.txt: Added.

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

5 years ago[CSS3] Add support for the word-break:keep-all CSS property
mmaxfield@apple.com [Thu, 18 Jun 2015 23:59:19 +0000 (23:59 +0000)]
[CSS3] Add support for the word-break:keep-all CSS property
https://bugs.webkit.org/show_bug.cgi?id=123782

Reviewed by Darin Adler.

Source/WebCore:

Add support for word-break:keep-all CSS property by CSS3 spec:
http://www.w3.org/TR/2013/WD-css-text-3-20131010/#word-break-property

Test: fast/text/word-break-keep-all.html

* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EWordBreak):
* css/CSSValueKeywords.in:
* rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):
* rendering/break_lines.h:
(WebCore::nextBreakablePositionKeepingAllWords):
(WebCore::nextBreakablePositionKeepingAllWordsIgnoringNBSP):
(WebCore::isBreakable):
* rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::optimalLineBreakLocationForTrailingWord):
* rendering/style/RenderStyleConstants.h:

LayoutTests:

* fast/text/word-break-keep-all.html: Added.
* platform/mac/fast/text/word-break-keep-all-expected.png: Added.
* platform/mac/fast/text/word-break-keep-all-expected.txt: Added.

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

5 years ago[DFG] Avoid OSR exit in the middle of string concatenation
utatane.tea@gmail.com [Thu, 18 Jun 2015 23:45:06 +0000 (23:45 +0000)]
[DFG] Avoid OSR exit in the middle of string concatenation
https://bugs.webkit.org/show_bug.cgi?id=145820

Reviewed by Filip Pizlo.

DFG attempt to compile ValueAdd with String type into MakeRope(left, ToString(ToPrimitive(right))).

So when right is speculated as SpecObject, ToPrimitive(SpecObject) is speculated as SpecString.
It leads ToString to become Identity with a speculated type check.

However, ToPrimitive and ToString are originated from the same bytecode. And ToPrimitive may have
an observable side effect when the given parameter is an object (calling object.{toString,valueOf}).

So when object.toString() returns a number (it is allowed in the ES spec), ToPrimitive performs
observable `object.toString()` calling. But ToString is converted into a speculated type check for
SpecString and it raises OSR exit. And we exit to the original ValueAdd's bytecode position and
it redundantly performs an observable ToPrimitive execution.

To fix this, this patch avoid fixing up for newly introduced ToString node.
Since fix up phase is not iterated repeatedly, by avoiding fixing up when generating the node,
we can avoid conversion from ToString to Check.

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::attemptToMakeFastStringAdd):
* tests/stress/toprimitive-speculated-types.js: Added.
(shouldBe):
(raw):
(Counter):

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

5 years agoUpdate AVKit usage of pip
jonlee@apple.com [Thu, 18 Jun 2015 23:42:22 +0000 (23:42 +0000)]
Update AVKit usage of pip
https://bugs.webkit.org/show_bug.cgi?id=146095
<rdar://problem/21386853>

Reviewed by Eric Carlson.

Source/WebCore:

- Rename enum VideoFullscreenModeOptimized to VideoFullscreenModePictureInPicture
- Rename MediaElementSession::allowsAlternateFullscreen to allowsPictureInPicture
- Rename Settings::allowsAlternateFullscreen to allowsPictureInPictureMediaPlayback
- Update AVKit calls and AVKitSPI.h
- Rename WebVideoFullscreenInterfaceAVKit delegate functions and member variables

* html/HTMLMediaElement.cpp:
* html/HTMLVideoElement.cpp:
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::allowsPictureInPicture): Renamed.
(WebCore::MediaElementSession::allowsAlternateFullscreen): Deleted.
* html/MediaElementSession.h:
* page/Settings.cpp:
* page/Settings.in:
* platform/graphics/MediaPlayerEnums.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
* platform/ios/WebVideoFullscreenInterfaceAVKit.h: Remove unused setIsOptimized.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
* platform/spi/cocoa/AVKitSPI.h: Remove unused typedef.
* platform/spi/mac/AVFoundationSPI.h:

Source/WebKit/mac:

- Rename preference key
- Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback

* WebCoreSupport/WebSystemInterface.mm:
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences allowsAlternateFullscreen]): Call allowsPictureInPictureMediaPlayback.
(-[WebPreferences setAllowsAlternateFullscreen:]):
(-[WebPreferences allowsPictureInPictureMediaPlayback]): Added.
(-[WebPreferences setAllowsPictureInPictureMediaPlayback:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:

Source/WebKit2:

- Rename preference key
- Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp: Remove unused preference calls.
(WKPreferencesSetAllowsAlternateFullscreen): Deleted.
(WKPreferencesGetAllowsAlternateFullscreen): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isShowingVideoPictureInPicture]): Renamed.
(-[WKWebView _isShowingVideoOptimized]): Deleted.
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): Renamed.
(-[WKWebView _mayAutomaticallyShowVideoOptimized]): Deleted.
(shouldAllowPictureInPictureMediaPlayback): Renamed.
(shouldAllowAlternateFullscreen): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/ios/PageClientImplIOS.mm:
* UIProcess/ios/WebVideoFullscreenManagerProxy.h: Rename local variables.
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture): Renamed.
(WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized): Deleted.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/ios/WebVideoFullscreenManager.mm:

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

5 years agoFix crash when entering fullscreen during exit fullscreen animation.
commit-queue@webkit.org [Thu, 18 Jun 2015 23:38:55 +0000 (23:38 +0000)]
Fix crash when entering fullscreen during exit fullscreen animation.
https://bugs.webkit.org/show_bug.cgi?id=146117

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-06-18
Reviewed by Simon Fraser.

Source/WebCore:

Because enterFullscreen can be called during exitFullscreen animation, the exit fullscreen teardown
should not imply a fullscreen state change on video element.

* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::exitFullscreen): May be called from mainThread
(-[WebVideoFullscreenController exitFullscreen]): May be called from mainThread
* platform/ios/WebVideoFullscreenModelVideoElement.mm:
(WebVideoFullscreenModelVideoElement::setVideoElement):
Changing associated video element does not imply fullscreen mode change.

Source/WebKit2:

A partial teardown left the LayerHostingContext in a bad state when attempting to reuse the model and interface
objects. Instead, complete the teardown and don't reuse the objects.

* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::didEnterFullscreen): WebThreadRun is a no-op in WK2. Use dispatch_async.
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Do complete teardown before entering fullscreen again.

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

5 years ago[EFL] Use SET_AND_EXPOSE_TO_BUILD instead of definitions
ryuan.choi@navercorp.com [Thu, 18 Jun 2015 23:35:24 +0000 (23:35 +0000)]
[EFL] Use SET_AND_EXPOSE_TO_BUILD instead of definitions
https://bugs.webkit.org/show_bug.cgi?id=146108

Reviewed by Gyuyoung Kim.

* Source/cmake/OptionsEfl.cmake:

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

5 years agoWeb Inspector: Add a filter for CSS properties in the Styles sidebar
commit-queue@webkit.org [Thu, 18 Jun 2015 22:24:37 +0000 (22:24 +0000)]
Web Inspector: Add a filter for CSS properties in the Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=145536

Patch by Devin Rousso <drousso@apple.com> on 2015-06-18
Reviewed by Timothy Hatcher.

* UserInterface/Base/Utilities.js: Added function to Strings that returns an array of all matching indexes of a given string.
(.value):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
(WebInspector.CSSStyleDeclarationSection.prototype.findMatchingPropertiesAndSelectors): Loops through the property list and selectors of each section to find matches to the filtered text.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.findMatchingProperties): Searches through the properties list to find and highlight all matching properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.removeNonMatchingProperties): Removes all properties that do not match and highlights the specific matched text in matching properties.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.resetFilteredProperties): Restores all properties to full visibility and removes any highlighting.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Classes are added to selections of the text editor of that partiular selection contains text which matches the filter (see CSSStyleDetailsSidebarPanel.css for different classes).
(WebInspector.CSSStyleDeclarationTextEditor.prototype._iterateOverProperties): If a filter is active, find properties matching the filter instead of all properties.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content.has-filter-bar + .filter-bar):
(.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .filter-bar):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel): Added a filter bar to the CSS sidebar.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels): Switching panels preserves and applies filter bar text.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._filterDidChange): Function called when the filter bar text changes that calls the current panel's filterDidChange function if it exists.
* UserInterface/Views/FilterBar.js: Added function and variable to check if the text in the filter bar had changed.
* UserInterface/Views/MetricsStyleDetailsPanel.js:
(WebInspector.MetricsStyleDetailsPanel.prototype.refresh): Now calls superclass refresh.
(WebInspector.MetricsStyleDetailsPanel): Added delegate variable to constructor.
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label ~ .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .new-rule):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-non-matching) ~ .label:not(.filter-section-non-matching)):
(.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .style-declaration-section):
(.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .no-filter-results):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results > .no-filter-results-message):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel): Added delegate variable to constructor.
(WebInspector.RulesStyleDetailsPanel.prototype.refresh): Now calls superclass refresh.
(WebInspector.RulesStyleDetailsPanel.prototype.filterDidChange): Function to search through the computed styles list and highlight all matched properties and selectors of the filter bar text, turning all non matching properties slightly opaque (unless a selector for that property is a match).
(WebInspector.StyleDetailsPanel): Added delegate variable to constructor.
(WebInspector.StyleDetailsPanel.prototype.refresh): Added event dispatch for panel refresh.

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

5 years agoWeb Inspector: improve generated types for objects passed to backend commands
joepeck@webkit.org [Thu, 18 Jun 2015 22:07:15 +0000 (22:07 +0000)]
Web Inspector: improve generated types for objects passed to backend commands
https://bugs.webkit.org/show_bug.cgi?id=146091

Patch by Brian J. Burg <burg@cs.washington.edu> on 2015-06-18
Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

The main change is that objects passed in will have a type like const T& or const T*,
rather than const RefPtr<T>&&. These protocol objects are owned by the generated dispatcher
methods and only exist to pass data to backend command implementations. So, there is no
reason for callees to add a reference or take ownership of these inputs.

Some small improvements were made in the code generator to standardize how these
expressions are generated for parameters. Optional in parameters are now prefixed with
'opt_in_' to make the generated method signatures and implementations clearer.

* inspector/InspectorValues.cpp:
(Inspector::InspectorArrayBase::get): Add const qualifier.
* inspector/InspectorValues.h:
* inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::parseLocation):
(Inspector::InspectorDebuggerAgent::setBreakpoint):
(Inspector::InspectorDebuggerAgent::continueToLocation):
* inspector/agents/InspectorDebuggerAgent.h:
* inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::callFunctionOn):
(Inspector::InspectorRuntimeAgent::saveResult):
(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):
* inspector/agents/InspectorRuntimeAgent.h:

* inspector/scripts/codegen/cpp_generator.py: Always generate PrimitiveType('array').
(CppGenerator.cpp_type_for_unchecked_formal_in_parameter): Alter the type signature
for an unchecked input to use pointers or references.

* inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
(CppBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):
(CppBackendDispatcherHeaderGenerator._generate_async_handler_declaration_for_command):
Local variables for optional parameters now have the 'opt_' prefix.

* inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
(CppBackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command):
Local variables for optional parameters now have the 'opt_' prefix.
Split parameterName and parameterKey into two separate template variables to avoid mixups.

* inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:

Source/WebCore:

Update type signatures for backend command implementations. In a few cases, clean
up relevant helper function signatures and copy data out of parameter objects where
the code previously held onto a reference.

No new tests, no behavior changed.

* inspector/InspectorCSSAgent.cpp:
(WebCore::computePseudoClassMask):
(WebCore::InspectorCSSAgent::setStyleText):
(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::forcePseudoState):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::parseColor):
(WebCore::parseConfigColor):
(WebCore::parseQuad):
(WebCore::InspectorDOMAgent::performSearch):
(WebCore::InspectorDOMAgent::setSearchingForNode):
(WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
(WebCore::InspectorDOMAgent::setInspectModeEnabled):
(WebCore::InspectorDOMAgent::highlightRect):
(WebCore::InspectorDOMAgent::highlightQuad):
(WebCore::InspectorDOMAgent::innerHighlightQuad):
(WebCore::InspectorDOMAgent::highlightNode):
(WebCore::InspectorDOMAgent::highlightFrame):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::findStorageArea):
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::requestData):
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorReplayAgent.cpp:
(WebCore::InspectorReplayAgent::replayToPosition):
* inspector/InspectorReplayAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::setExtraHTTPHeaders):
Clean up extraHTTPHeaders to copy header key/values out of the InspectorObject, rather
than retaining the protocol object indefinitely. This matches the ownership scheme used
everywhere else.

* inspector/InspectorResourceAgent.h:
* inspector/InspectorStyleSheet.h:
(WebCore::InspectorCSSId::InspectorCSSId):
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::sendMessageToWorker):
* inspector/InspectorWorkerAgent.h:

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

5 years agoRemove shouldInterruptJavaScript
andersca@apple.com [Thu, 18 Jun 2015 20:59:12 +0000 (20:59 +0000)]
Remove shouldInterruptJavaScript
https://bugs.webkit.org/show_bug.cgi?id=146118

Reviewed by Antti Koivisto.

Source/WebCore:

The WebKit SPI methods for deciding whether JavaScript execution should be interrupted hasn't been used
for many releases. Furthermore, they don't make sense in the multi-process architecture since it's still possible
to interrupt execution (by closing the browser tab or window) from the UI process.

* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::shouldInterruptScript):
* loader/EmptyClients.h:
* page/Chrome.cpp:
(WebCore::Chrome::shouldInterruptJavaScript): Deleted.
* page/Chrome.h:
* page/ChromeClient.h:

Source/WebKit/mac:

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::shouldInterruptJavaScript): Deleted.
* WebView/WebUIDelegatePrivate.h:

Source/WebKit/win:

* Interfaces/IWebUIDelegatePrivate.idl:
* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::shouldInterruptJavaScript): Deleted.
* WebCoreSupport/WebChromeClient.h:

Source/WebKit2:

* UIProcess/API/APIUIClient.h:
(API::UIClient::shouldInterruptJavaScript): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient): Deleted.
* UIProcess/API/C/WKPageUIClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::shouldInterruptJavaScript): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::shouldInterruptJavaScript): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.h:

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

5 years agoWeb Inspector: Ability to Copy entire CSS Rule from Styles Sidebar
commit-queue@webkit.org [Thu, 18 Jun 2015 20:44:01 +0000 (20:44 +0000)]
Web Inspector: Ability to Copy entire CSS Rule from Styles Sidebar
https://bugs.webkit.org/show_bug.cgi?id=138812

Patch by Devin Rousso <drousso@apple.com> on 2015-06-18
Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection): Right clicking on the header of a rule will replcae the default context menu to allow copying of the entire rule to the clipboard.
(WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent): Creates a new context menu to copy the entire CSS rule.
(WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString): Generates a string representing the formatted CSS rule.

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

5 years ago[CSS JIT][ARMv7] The pseudo element early exit trashes r6
benjamin@webkit.org [Thu, 18 Jun 2015 20:29:37 +0000 (20:29 +0000)]
[CSS JIT][ARMv7] The pseudo element early exit trashes r6
https://bugs.webkit.org/show_bug.cgi?id=146078

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-18
Reviewed by Alex Christensen.

The pseudo element early failure runs before we generate the prologue.
The reason is that we can often exit immediately on function entry, before
we even touch any memory.

On ARMv7, we don't have many spare registers so the MacroAssembler
uses r6 as a scratch register and the client code is expected to save
it.

In the early failure case, we were not pushing r6 before using the MacroAssembler
and its value could be trashed.

This patch push the macro assembler registers separately from the prologue.

For restoring the registers, a new function generateFunctionEnding() encapsulate
the pop() and ret().

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::pushMacroAssemblerRegisters):
(WebCore::SelectorCompiler::SelectorCodeGenerator::popMacroAssemblerRegisters):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

* cssjit/StackAllocator.h:
(WebCore::StackAllocator::operator=):
We have a new case for the stack allocator: some stack changes are conditional
at compile time instead of runtime. This is easy to deal with by overriding
the stack if a path is not taken at compile time.

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

5 years agoREGRESSION: js/dom/navigator-plugins-crash.html asserts a lot
conrad_shultz@apple.com [Thu, 18 Jun 2015 19:38:15 +0000 (19:38 +0000)]
REGRESSION: js/dom/navigator-plugins-crash.html asserts a lot
https://bugs.webkit.org/show_bug.cgi?id=144399

* TestExpectations:
Revert change marking navigator-plugins-crash.html as flaky now that the underlying bug has been addressed.

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

5 years agoREGRESSION: js/dom/navigator-plugins-crash.html asserts a lot
conrad_shultz@apple.com [Thu, 18 Jun 2015 19:32:15 +0000 (19:32 +0000)]
REGRESSION: js/dom/navigator-plugins-crash.html asserts a lot
https://bugs.webkit.org/show_bug.cgi?id=144399

Reviewed by Darin Adler.

Earlier work made the array of web-visible plug-ins dynamic, but allowed DOMPlugin (and, indirectly by extension,
DOMMimeType) to continue keeping a reference to a plug-in in terms of an index into that array. This superficially
appeared correct since DOMPlugin immutably holds onto a PluginData instance, which in turn immutably holds onto a
Page instance. PluginStrategy::getWebVisiblePluginInfo() is passed this Page, which is used to determine the contents
of the plugin array. The expectation was that keeping an index would still be safe since the Page is not changing,
but this is not strictly correct since relevant attributes of the Page and/or the available plugins may still change.

It's not entirely clear why the test failures are intermittent and occur only on certain configurations, but address
them by eliminating the incorrect storage of indexes in favor of keeping copies of the relevant plugin info itself.

* plugins/DOMMimeType.cpp:
(WebCore::DOMMimeType::DOMMimeType):
Instead of storing the MIME type index, retrieve and store the MIME class info and plugin info.
(WebCore::DOMMimeType::type):
Directly access the m_mimeClassInfo member.
(WebCore::DOMMimeType::suffixes):
Ditto.
(WebCore::DOMMimeType::description):
Ditto.
(WebCore::DOMMimeType::enabledPlugin):
Directly access the m_pluginInfo member.
(WebCore::DOMMimeType::mimeClassInfo): Deleted.

* plugins/DOMMimeType.h:
Update member variables.

* plugins/DOMPlugin.cpp:
(WebCore::DOMPlugin::DOMPlugin):
Instead of storing the plugin index, store the plugin info directly.
(WebCore::DOMPlugin::name):
Directly access m_pluginInfo.
(WebCore::DOMPlugin::filename):
Ditto.
(WebCore::DOMPlugin::description):
Ditto.
(WebCore::DOMPlugin::length):
Ditto.
(WebCore::DOMPlugin::item):
Access m_pluginInfo directly; find the matching plug-in based on matching PluginInfo (for which an overloaded
comparator is supplied below).
(WebCore::DOMPlugin::pluginInfo): Deleted.

* plugins/DOMPlugin.h:
Update member variables.
(WebCore::DOMPlugin::create):
Accept a PluginInfo instead of a plugin index.

* plugins/DOMPluginArray.cpp:
(WebCore::DOMPluginArray::item):
(WebCore::DOMPluginArray::namedItem):

* plugins/PluginData.h:
(WebCore::operator==):
Added; compare PluginInfo structs on the basis of member equality.

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