⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Aug 1, 2016:

11:51 PM Changeset in webkit [204017] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source/JavaScriptCore

Merge r204010. rdar://problem/27534844

11:51 PM Changeset in webkit [204016] by bshafiei@apple.com
  • 3 edits
    4 adds in branches/safari-602-branch

Merge r203990. rdar://problem/27534844

11:51 PM Changeset in webkit [204015] by bshafiei@apple.com
  • 5 edits
    3 adds in branches/safari-602-branch

Merge r203985. rdar://problem/26310261

11:46 PM Changeset in webkit [204014] by commit-queue@webkit.org
  • 34 edits in trunk/Source/WebCore

[Fetch API] Pass directly FetchRequest fetch options to ThreadableLoader
https://bugs.webkit.org/show_bug.cgi?id=160407

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-01
Reviewed by Sam Weinig.

No change of behavior.

Added a ResourceLoaderOptions constructor that takes a FetchOptions as input.
Removed setters and getters of ResourceLoaderOptions as it is a struct.
Updated member fields accordingly.

Updated code accordingly.
Removed explicit option setting if it is the same as the default value.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start):

  • css/CSSFontFaceSrcValue.cpp:

(WebCore::CSSFontFaceSrcValue::cachedFont):

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::cachedImageSet):

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::cachedImage):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScript):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource):

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::validatePreflightResponse):
(WebCore::CrossOriginPreflightChecker::startPreflight):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::ResourceLoader):
(WebCore::ResourceLoader::init):
(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::setDefersLoading):
(WebCore::ResourceLoader::setDataBufferingPolicy):
(WebCore::ResourceLoader::addDataOrBuffer):
(WebCore::ResourceLoader::willSendRequestInternal):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::didReceiveDataOrBuffer):
(WebCore::ResourceLoader::didFinishLoadingOnePart):
(WebCore::ResourceLoader::cleanupForError):
(WebCore::ResourceLoader::shouldUseCredentialStorage):
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
(WebCore::ResourceLoader::setSendCallbackPolicy):
(WebCore::ResourceLoader::shouldSniffContent):
(WebCore::ResourceLoader::shouldIncludeCertificateInfo):

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::sendLoadCallbacks): Deleted.
(WebCore::ResourceLoaderOptions::setSendLoadCallbacks): Deleted.
(WebCore::ResourceLoaderOptions::sniffContent): Deleted.
(WebCore::ResourceLoaderOptions::setSniffContent): Deleted.
(WebCore::ResourceLoaderOptions::dataBufferingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setDataBufferingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::allowCredentials): Deleted.
(WebCore::ResourceLoaderOptions::setAllowCredentials): Deleted.
(WebCore::ResourceLoaderOptions::securityCheck): Deleted.
(WebCore::ResourceLoaderOptions::setSecurityCheck): Deleted.
(WebCore::ResourceLoaderOptions::certificateInfoPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setCertificateInfoPolicy): Deleted.
(WebCore::ResourceLoaderOptions::contentSecurityPolicyImposition): Deleted.
(WebCore::ResourceLoaderOptions::setContentSecurityPolicyImposition): Deleted.
(WebCore::ResourceLoaderOptions::defersLoadingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setDefersLoadingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::cachingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setCachingPolicy): Deleted.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::load):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::setDataBufferingPolicy):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::shouldSendResourceLoadCallbacks):
(WebCore::CachedResource::dataBufferingPolicy):
(WebCore::CachedResource::allowsCaching):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequest):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::allowsCaching):

  • loader/cache/CachedResourceRequestInitiators.cpp:

(WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):

  • loader/cache/CachedResourceRequestInitiators.h:
  • loader/mac/ResourceLoaderMac.mm:

(WebCore::ResourceLoader::willCacheResponse):
(WebCore::ResourceLoader::didReceiveDataArray):

  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • style/StylePendingResources.cpp:

(WebCore::Style::loadPendingImage):
(WebCore::Style::loadPendingSVGFilters):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::requestImageResource):

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::loadFont):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::updateExternalDocument):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

11:42 PM Changeset in webkit [204013] by Carlos Garcia Campos
  • 31 edits
    1 move
    3 adds
    1 delete in trunk/Source

[GTK] Move the redirected XComposite window to the web process
https://bugs.webkit.org/show_bug.cgi?id=160389

Reviewed by Žan Doberšek.

Source/WebCore:

Add helper methods to PlatformDisplayX11 to query X extensions supported by the display.

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::supportsXComposite):
(WebCore::PlatformDisplayX11::supportsXDamage):

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit2:

In the current code, the UI process creates the redirected window that the web process uses to render
accelerated contents. The redirected window is sent to the web process as native surface handle, and using
XDamage extension the UI process takes a pixmap of the redirected window to render into the widget when there
are updates. This requires several points of synchronization between UI and web processes. When the web view is
resized, the UI process first resizes the redirected window and then sends a new backing store ID to the web
process. The time between the redirected window is resized and the web process renders the new contents the UI
process keeps rendering the previous contents with the previous size in the new window with the new size. This
makes the resize process slow, and it produces rendering artifacts quite often. The redirected window is created
when the web view is realized, to be able to inherit the XVisual from the parent window, and the native window
handle is sent to the web process. The time until the window is realized, the web process doesn't have a context
to render into, so the UI process simply renders an empty page. When the web view is unrealized, for example if
the web view is reparented, the redirected window is destroyed, and a sync message is sent to the web process to
destroy the current gl context and stop drawing. This needs to happen synchronously, because the UI process
can't remove the redirected window until the web process has stopped rendering into it. This makes also the
reparenting process quite unstable and risky.
To all those synchronization points we now have to add the synchronization with the compositing thread when
using the threaded compositor. The threaded compositor made resizing, reparenting, etc. even worse. We can't
avoid the synchronization with the threaded compositor, but we can reduce the synchronization points and improve
the current ones by moving the redirected window to the web process. In this case is web process who creates the
redirected window, so we can be sure that it always has a valid native surface handle to render into. This means
we no longer need the IPC message to send the native surface handle from the UI process to the web process, nor
the sync message to destroy it either. This also means we no longer need to wait until the view is realized to
start rendering accelerated contents, and we don't need to stop when it's unrealized either. We don't really
need to inherit the XVisual from the parent window if the redirected window always uses always a RGBA visual
when available. That way we always render into a transparent window that is composed into the web view
widget. And when the web view is resized, we no longer need to destroy the GL context either, because we use the
same redirected window as the native handle, but create a new pixmap that is what we send to the UI process as
layer tree context ID. The layer tree context ID is already sent to the UI process by the drawing area as part
of the backing store update process, so we don't need any new IPC message for this. When the web view is
resized, the UI process sends a backing store state update message to the web process that updates its size,
relayouts and then renders the new contents, so that when the update backing store state reply gets to the UI
process, we already have a new pixmap with the new contents updated. This makes resizing smooth again, and
avoids flickering and rendering artifacts. And finally all this also prevents several race conditions that were
causing X errors and web process crashes.

  • PlatformGTK.cmake:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::create): Make it possible to optionally pass a native surface handle for
compositing to the ThreadedCompositor contructor.
(WebKit::ThreadedCompositor::ThreadedCompositor): Initialize the native surface handle and make the scene active
after the thread initialization if we already have a valid handle.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::enterAcceleratedCompositingMode): Pass the layer tree context ID to the web view.
(WebKit::PageClientImpl::updateAcceleratedCompositingMode): Notify the web view about the update.
(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSetAcceleratedCompositingPixmap): Helper function to update the pixmap used to render the
accelerated contents.
(webkitWebViewBaseRealize): Remove the code to create the redirected window.
(webkitWebViewBaseUnrealize): Remove the code to destroy the redirected window.
(webkitWebViewBaseDispose): Reset the accelerated compositing pixmap.
(webkitWebViewRenderAcceleratedCompositingResults): Use the accelerated compositing pixmap surface.
(webkitWebViewBaseSizeAllocate): Remove the code to resize the redirected window.
(webkitWebViewBaseEnterAcceleratedCompositingMode): Update the accelerated compositing pixmap.
(webkitWebViewBaseUpdateAcceleratedCompositingMode): Ditto.
(webkitWebViewBaseExitAcceleratedCompositingMode): Reset the accelerated compositing pixmap.
(webkitWebViewBaseDidRelaunchWebProcess): Remove the code to send native surface handle to the web process.
(webkitWebViewBasePageClosed): Reset the accelerated compositing pixmap.
(_WebKitWebViewBasePrivate::updateViewStateTimerFired): Deleted.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/DrawingAreaProxy.h:
  • UIProcess/DrawingAreaProxy.messages.in:
  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState): Handle the case when the layer tree context ID
changes without leaving the accelerated compositing mode, calling updateAcceleratedCompositingMode().
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode): Let the web view know we are leaving accelerated
compositing mode even when it's forced, since in case of web process crash we need to leave the accelerated
compositing mode in the UI process.
(WebKit::DrawingAreaProxyImpl::willEnterAcceleratedCompositingMode): This message was added only to prepare the
redirected window when the web process was about to enter accelerated compositing mode, so it's no longer needed.
(WebKit::DrawingAreaProxyImpl::setNativeSurfaceHandleForCompositing): This is now only used when building
without redirected XComposite window support.

  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willEnterAcceleratedCompositingMode): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/efl/WebView.h:
  • UIProcess/gtk/RedirectedXCompositeWindow.cpp: Removed.
  • UIProcess/gtk/XDamageNotifier.cpp: Helper class to be notified about XDamage events.

(WebKit::XDamageNotifier::singleton):
(WebKit::XDamageNotifier::XDamageNotifier):
(WebKit::XDamageNotifier::add):
(WebKit::XDamageNotifier::remove):
(WebKit::XDamageNotifier::filterXDamageEvent):
(WebKit::XDamageNotifier::notify):

  • UIProcess/gtk/XDamageNotifier.h: Added.
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode): Remove code to send
WillEnterAcceleratedCompositingMode message.
(WebKit::AcceleratedDrawingArea::setNativeSurfaceHandleForCompositing): This is now only used when building
without redirected XComposite window support.

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Create a redirected window and
pass the window ID as native surface handle to the threaded compositor. Use the redirected window pixmap as
layer tree context.
(WebKit::ThreadedCoordinatedLayerTreeHost::invalidate): Destroy the redirected window.
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Resize the redirected window and
update the layer tree context.
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange): Ditto.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::LayerTreeHostGtk): Create a redirected window and texture mapper that uses the window
ID as native surface handle. Use the redirected window pixmap as layer tree context.
(WebKit::LayerTreeHostGtk::makeContextCurrent): Use the redirected window as native handle.
(WebKit::LayerTreeHostGtk::invalidate): Destroy the redirected window.
(WebKit::LayerTreeHostGtk::sizeDidChange): Resize the redirected window and update the layer tree context.
(WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged): Ditto.
(WebKit::LayerTreeHostGtk::createTextureMapper): Helper function to create the texture mapper.
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing): Use createTextureMapper().

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
  • WebProcess/WebPage/gtk/RedirectedXCompositeWindow.cpp: Added.

(WebKit::RedirectedXCompositeWindow::create):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::resize):

  • WebProcess/WebPage/gtk/RedirectedXCompositeWindow.h: Renamed from Source/WebKit2/UIProcess/gtk/RedirectedXCompositeWindow.h.

(WebKit::RedirectedXCompositeWindow::window):
(WebKit::RedirectedXCompositeWindow::pixmap):

11:00 PM Changeset in webkit [204012] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

10:40 PM Changeset in webkit [204011] by Carlos Garcia Campos
  • 10 edits in trunk/Source/WebKit2

Database Process: ASSERTION FAILED: filePaths.size() == result.handles().size() with SANDBOX_EXTENSIONS disabled
https://bugs.webkit.org/show_bug.cgi?id=160398

Reviewed by Brady Eidson.

Same assert as in bug #160188, but this time in preregisterSandboxExtensionsIfNecessary.

  • DatabaseProcess/DatabaseProcess.cpp:
  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/DatabaseProcess.messages.in:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::handleGetResult):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):

  • UIProcess/Databases/DatabaseProcessProxy.cpp:
  • UIProcess/Databases/DatabaseProcessProxy.h:
  • UIProcess/Databases/DatabaseProcessProxy.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::preregisterSandboxExtensionsIfNecessary):

10:38 PM Changeset in webkit [204010] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

REGRESSION (r203990): JSC Debug test stress/arity-check-ftl-throw.js failing
https://bugs.webkit.org/show_bug.cgi?id=160438

Reviewed by Mark Lam.

In r203990 I fixed a bug where CommonSlowPaths.h/arityCheckFor() was basically failing at
catching stack overflow due to large parameter count. It would only catch regular old stack
overflow, like if the frame pointer was already past the limit.

This had a secondary problem: unfortunately all of our tests for what happens when you overflow
the stack due to large parameter count were not going down that path at all, so we haven't had
test coverage for this in ages. There were bugs in all tiers of the engine when handling this
case.

We need to be able to roll back the topCallFrame on paths that are meant to throw an exception
from the caller. Otherwise, we'd crash in StackVisitor because it would see a busted stack
frame. Rolling back like this "just works" except when the caller is the VM entry frame. I had
some choices here. I could have forced anyone who is rolling back to always skip VM entry
frames. They can't do it in a way that changes the value of VM::topVMEntryFrame, which is what
a stack frame roll back normally does, since exception unwinding needs to see the current value
of topVMEntryFrame. So, we have a choice to either try to magically avoid all of the paths that
look at topCallFrame, or give topCallFrame a state that unambiguously signals that we are
sitting right on top of a VM entry frame without having succeeded at making a JS call. The only
place that really needs to know is StackVisitor, which wants to start scanning at topCallFrame.
To signal this, I could have either made topCallFrame point to the real top JS call frame
without also rolling back topVMEntryFrame, or I could make topCallFrame == topVMEntryFrame. The
latter felt somehow cleaner. I filed a bug (https://bugs.webkit.org/show_bug.cgi?id=160441) for
converting topCallFrame to a void*, which would give us a chance to harden the rest of the
engine against this case.

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::StackVisitor):
We may do ShadowChicken processing, which invokes StackVisitor, when we have topCallFrame
pointing at topVMEntryFrame. This teaches StackVisitor how to handle this case. I believe that
StackVisitor is the only place that needs to be taught about this at this time, because it's
one of the few things that access topCallFrame along this special path.

  • jit/JITOperations.cpp: Roll back the top call frame.
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL): Roll back the top call frame.

10:02 PM Changeset in webkit [204009] by commit-queue@webkit.org
  • 5 edits in trunk/Source

[JSC][ARM64] Fix branchTest32/64 taking an immediate as mask
https://bugs.webkit.org/show_bug.cgi?id=160439

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-01
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::branchTest64):

  • b3/air/AirOpcode.opcodes:

Fix the ARM64 codegen to lower BitImm64 without using a scratch register.

Source/WTF:

  • wtf/MathExtras.h:

(getLSBSet):
This was not working at all for MacroAssembler.
Since TrustedImm32/64 are signed integers, the arithmetic shift would
never get rid of the top bit and we get an infinite loop.

8:59 PM Changeset in webkit [204008] by commit-queue@webkit.org
  • 11 edits in trunk

_WKDownloadDelegate.didReceiveResponse should be called before decideDestinationWithSuggestedFilename
https://bugs.webkit.org/show_bug.cgi?id=160437
<rdar://problem/27578272>

Patch by Alex Christensen <achristensen@webkit.org> on 2016-08-01
Reviewed by Brady Eidson.

Source/WebKit2:

This preserves the behavior of the NSURLConnection/NSURLDownload code path.
decideDestinationWithSuggestedFilename might need some information from the didReceiveResponse callback
in order to decide what the suggested filename should be.

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::didReceiveAuthenticationChallenge):
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::setPendingDownloadID):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):

  • NetworkProcess/NetworkLoad.h:

(WebKit::NetworkLoad::pendingDownloadID):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::pendingDownloadCanceled):
(WebKit::NetworkProcess::findPendingDownloadLocation):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:

(-[DownloadDelegate _download:didReceiveResponse:]):
(-[DownloadDelegate _download:decideDestinationWithSuggestedFilename:allowOverwrite:]):
(runTest):
Add a boolean to make sure that didReceiveResponse is called before decideDestinationWithSuggestedFilename.

6:50 PM Changeset in webkit [204007] by clopez@igalia.com
  • 2 edits in trunk/Tools

[Tools] The GDB backtrace report tool don't checks the gdb return code.
https://bugs.webkit.org/show_bug.cgi?id=160414

Reviewed by Michael Catanzaro.

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator._wait_for_corefile):

6:44 PM Changeset in webkit [204006] by akling@apple.com
  • 5 edits in trunk/Source/WebCore

Shrink MediaQuerySets to fit after parsing.
<https://webkit.org/b/160419>

Reviewed by Antti Koivisto.

Add shrinkToFit() helpers to MediaQuerySet and MediaQuery
and call it after parsing to remove extra capacity from their
internal vectors.

This reduces memory usage by 1.24MB on theverge.com.

  • css/CSSParser.cpp:

(WebCore::CSSParser::createMediaRule):

  • css/MediaList.cpp:

(WebCore::MediaQuerySet::parse):
(WebCore::MediaQuerySet::shrinkToFit):

  • css/MediaList.h:
  • css/MediaQuery.h:

(WebCore::MediaQuery::shrinkToFit):

6:39 PM Changeset in webkit [204005] by timothy_horton@apple.com
  • 5 edits
    2 adds in trunk

<attachment> action label doesn't wrap, but needs to for some localizations
https://bugs.webkit.org/show_bug.cgi?id=160431
<rdar://problem/27526464>

Reviewed by Simon Fraser.

Test: fast/attachment/attachment-wrapping-action.html

  • rendering/RenderThemeIOS.mm:

(WebCore::AttachmentInfo::buildWrappedLines):
(WebCore::AttachmentInfo::AttachmentInfo):
(WebCore::AttachmentInfo::buildTitleLines): Deleted.
Rework buildTitleLines into buildWrappedLines so that we have a
generic way to add lines that wrap up to N lines and then center-truncate.

Make use of it for the action text, and follow the same rules/width as
the title text already does.

  • fast/attachment/attachment-wrapping-action-expected-mismatch.html: Added.
  • fast/attachment/attachment-wrapping-action.html: Added.

Add a test that ensures that the action label wraps by filling one with
non-breaking and breaking spaces, which will wrap onto two lines, and one
with just a single space, which will always fit in one line, and ensuring
that they do not match.

5:31 PM Changeset in webkit [204004] by Chris Dumez
  • 3 edits in trunk/LayoutTests

[iOS] Fix fast/events/touch/document-create-touch-list-ios.html
https://bugs.webkit.org/show_bug.cgi?id=160429

Reviewed by Ryosuke Niwa.

Fix several bugs in fast/events/touch/document-create-touch-list-ios.html:

  1. Use proper parameters to TouchEvent.initTouchEvent() so that it no longer throws.
  2. For the check testing passing bad parameters to createTouchList(), print PASS if it throws instead of FAIL since this is the expected behavior.
  • fast/events/touch/document-create-touch-list-ios-expected.txt:
  • fast/events/touch/script-tests/document-create-touch-list-ios.js:

(catch): Deleted.

5:27 PM Changeset in webkit [204003] by ap@apple.com
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r204002.

2016-08-01 Alexey Proskuryakov <ap@apple.com>

Sierra test expectations gardening for editing/input/password-echo-textnode.html.

  • platform/mac/TestExpectations:
5:19 PM Changeset in webkit [204002] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Sierra test expectations gardening for editing/input/password-echo-textnode.html.

  • platform/mac/TestExpectations:
5:11 PM Changeset in webkit [204001] by andersca@apple.com
  • 4 edits in trunk/Source

Source/WebCore:
Build fix.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit/mac:
Bring back a file - it needs to be copied by WebCore.

  • MigrateHeaders.make:
4:51 PM Changeset in webkit [204000] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Remove another file.

  • MigrateHeaders.make:
4:47 PM Changeset in webkit [203999] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.45

New tag.

4:45 PM Changeset in webkit [203998] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Roll out r203799. rdar://problem/27556788

4:37 PM Changeset in webkit [203997] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Remove a file.

  • MigrateHeaders.make:
4:22 PM Changeset in webkit [203996] by fpizlo@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[B3] Fusing immediates into test instructions should work again
https://bugs.webkit.org/show_bug.cgi?id=160073

Reviewed by Sam Weinig.

When we introduced BitImm, we forgot to change the Branch(BitAnd(value, constant))
fusion. This emits test instructions, so it should use BitImm for the constant. But it
was still using Imm! This meant that isValidForm() always returned false.

This fixes the code path to use BitImm, and turns off our use of BitImm64 on x86 since
it provides no benefit on x86 and has some risk (the code appears to play fast and loose
with the scratch register).

This is not an obvious progression on anything, so I added comprehensive tests to
testb3, which check that we selected the optimal instruction in a variety of situations.
We should add more tests like this!

Rolling this back in after fixing ARM64. The bug was that branchTest32|64 on ARM64 doesn't
actually support BitImm or BitImm64, at least not yet. Disabling that in AirOpcodes makes
this patch not a regression on ARM64. That change was reviewed by Benjamin Poulain.

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::successorBlock):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare):

  • b3/B3LowerToAir.h:
  • b3/air/AirArg.cpp:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::castToType):
(JSC::B3::Air::Arg::asNumber):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::size):
(JSC::B3::Air::Code::at):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirValidate.h:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

(JSC::B3::compile):
(JSC::B3::compileAndRun):
(JSC::B3::lowerToAirForTesting):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::testBranchBitAndImmFusion):
(JSC::B3::zero):
(JSC::B3::run):

4:21 PM Changeset in webkit [203995] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Another build fix.

  • WebCore.xcodeproj/project.pbxproj:
4:04 PM Changeset in webkit [203994] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Don't set width:calc(100% - 0px); left:0px on console messages
https://bugs.webkit.org/show_bug.cgi?id=160428
<rdar://problem/27646033>

Reviewed by Timothy Hatcher.

Console messages inside console.group() are indented. Console messages outside of
console.group() aren't and there is no reason to set inline styles that do nothing
on each one of them.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):

3:51 PM Changeset in webkit [203993] by andersca@apple.com
  • 11 edits
    13 copies
    1 move
    4 adds in trunk/Source/WebCore

Freeze the last of the HTML Objective-C bindings
https://bugs.webkit.org/show_bug.cgi?id=160430

Reviewed by Tim Horton.

Also, remove a bunch of form validation related methods that were never exposed/used.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMBlob.h: Added.
  • bindings/objc/DOMBlob.mm: Added.
  • bindings/objc/DOMBlobInternal.h: Added.
  • bindings/objc/DOMDOMTokenList.h: Added.
  • bindings/objc/DOMDOMTokenList.mm: Added.
  • bindings/objc/DOMDOMTokenListInternal.h: Added.
  • bindings/objc/DOMFile.h: Added.
  • bindings/objc/DOMFile.mm: Added.
  • bindings/objc/DOMFileInternal.h: Added.
  • bindings/objc/DOMFileList.h: Added.
  • bindings/objc/DOMFileList.mm: Added.
  • bindings/objc/DOMFileListInternal.h: Added.
  • bindings/objc/DOMHTMLButtonElement.mm:
  • bindings/objc/DOMHTMLFieldSetElement.mm:
  • bindings/objc/DOMHTMLInputElement.mm:
  • bindings/objc/DOMHTMLInputElementPrivate.h:
  • bindings/objc/DOMHTMLObjectElement.mm:
  • bindings/objc/DOMHTMLSelectElement.mm:
  • bindings/objc/DOMHTMLTextAreaElement.mm:
  • bindings/objc/DOMHTMLTextAreaElementPrivate.h:
  • bindings/objc/DOMMediaError.h: Added.
  • bindings/objc/DOMMediaError.mm: Added.
  • bindings/objc/DOMMediaErrorInternal.h: Added.
  • bindings/objc/DOMTimeRanges.h: Added.
  • bindings/objc/DOMTimeRanges.mm: Added.
  • bindings/objc/DOMTimeRangesInternal.h: Added.
3:44 PM Changeset in webkit [203992] by Ryan Haddad
  • 3 edits
    1 copy
    1 add in trunk/LayoutTests

Land updated baseline for rdar://problem/27611932.

  • editing/mac/attributed-string/font-style-variant-effect-expected.txt:
  • platform/mac-elcapitan/editing/mac/attributed-string/font-style-variant-effect-expected.txt: Copied from LayoutTests/editing/mac/attributed-string/font-style-variant-effect-expected.txt.
  • platform/mac-wk1/TestExpectations:
3:31 PM Changeset in webkit [203991] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Grid column resizer elements positioned incorrectly
https://bugs.webkit.org/show_bug.cgi?id=160311
<rdar://problem/27595586>

Reviewed by Brian Burg.

Perform a resize layout on a newly shown tab content view if the tab
browser was resized before showing the tab.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.layout):
Mark all recent tab content views (except for the current view)
as needing a resize layout.

(WebInspector.TabBrowser.prototype._tabBarItemSelected):
If the tab browser was resized while the view was hidden, update the
view's layout for the new content view container size.

3:20 PM Changeset in webkit [203990] by fpizlo@apple.com
  • 4 edits
    1 add in trunk

Rationalize varargs stack overflow checks
https://bugs.webkit.org/show_bug.cgi?id=160425

Reviewed by Michael Saboff.

  • ftl/FTLLink.cpp:

(JSC::FTL::link): AboveOrEqual 0 is a tautology. The code meant GreaterThanOrEqual, since the error code is -1.

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor): Use roundUpToMultipleOf(), which is almost certainly what we meant when we said %.

2:32 PM Changeset in webkit [203989] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build.

  • WebCore.xcodeproj/project.pbxproj:
2:16 PM Changeset in webkit [203988] by andersca@apple.com
  • 5 edits
    173 adds in trunk/Source

Freeze all the DOMHTML* Objective-C bindings
https://bugs.webkit.org/show_bug.cgi?id=160424

Reviewed by Tim Horton.

Source/WebCore:

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMHTMLAnchorElement.h: Added.
  • bindings/objc/DOMHTMLAnchorElement.mm: Added.
  • bindings/objc/DOMHTMLAnchorElementInternal.h: Added.
  • bindings/objc/DOMHTMLAppletElement.h: Added.
  • bindings/objc/DOMHTMLAppletElement.mm: Added.
  • bindings/objc/DOMHTMLAppletElementInternal.h: Added.
  • bindings/objc/DOMHTMLAreaElement.h: Added.
  • bindings/objc/DOMHTMLAreaElement.mm: Added.
  • bindings/objc/DOMHTMLAreaElementInternal.h: Added.
  • bindings/objc/DOMHTMLBRElement.h: Added.
  • bindings/objc/DOMHTMLBRElement.mm: Added.
  • bindings/objc/DOMHTMLBRElementInternal.h: Added.
  • bindings/objc/DOMHTMLBaseElement.h: Added.
  • bindings/objc/DOMHTMLBaseElement.mm: Added.
  • bindings/objc/DOMHTMLBaseElementInternal.h: Added.
  • bindings/objc/DOMHTMLBaseFontElement.h: Added.
  • bindings/objc/DOMHTMLBaseFontElement.mm: Added.
  • bindings/objc/DOMHTMLBaseFontElementInternal.h: Added.
  • bindings/objc/DOMHTMLBodyElement.h: Added.
  • bindings/objc/DOMHTMLBodyElement.mm: Added.
  • bindings/objc/DOMHTMLBodyElementInternal.h: Added.
  • bindings/objc/DOMHTMLButtonElement.h: Added.
  • bindings/objc/DOMHTMLButtonElement.mm: Added.
  • bindings/objc/DOMHTMLButtonElementInternal.h: Added.
  • bindings/objc/DOMHTMLCanvasElement.h: Added.
  • bindings/objc/DOMHTMLCanvasElement.mm: Added.
  • bindings/objc/DOMHTMLCanvasElementInternal.h: Added.
  • bindings/objc/DOMHTMLCollection.h: Added.
  • bindings/objc/DOMHTMLCollection.mm: Added.
  • bindings/objc/DOMHTMLCollectionInternal.h: Added.
  • bindings/objc/DOMHTMLDListElement.h: Added.
  • bindings/objc/DOMHTMLDListElement.mm: Added.
  • bindings/objc/DOMHTMLDListElementInternal.h: Added.
  • bindings/objc/DOMHTMLDirectoryElement.h: Added.
  • bindings/objc/DOMHTMLDirectoryElement.mm: Added.
  • bindings/objc/DOMHTMLDirectoryElementInternal.h: Added.
  • bindings/objc/DOMHTMLDivElement.h: Added.
  • bindings/objc/DOMHTMLDivElement.mm: Added.
  • bindings/objc/DOMHTMLDivElementInternal.h: Added.
  • bindings/objc/DOMHTMLDocument.h: Added.
  • bindings/objc/DOMHTMLDocument.mm: Added.
  • bindings/objc/DOMHTMLDocumentInternal.h: Added.
  • bindings/objc/DOMHTMLElement.h: Added.
  • bindings/objc/DOMHTMLElement.mm: Added.
  • bindings/objc/DOMHTMLElementInternal.h: Added.
  • bindings/objc/DOMHTMLEmbedElement.h: Added.
  • bindings/objc/DOMHTMLEmbedElement.mm: Added.
  • bindings/objc/DOMHTMLEmbedElementInternal.h: Added.
  • bindings/objc/DOMHTMLFieldSetElement.h: Added.
  • bindings/objc/DOMHTMLFieldSetElement.mm: Added.
  • bindings/objc/DOMHTMLFieldSetElementInternal.h: Added.
  • bindings/objc/DOMHTMLFontElement.h: Added.
  • bindings/objc/DOMHTMLFontElement.mm: Added.
  • bindings/objc/DOMHTMLFontElementInternal.h: Added.
  • bindings/objc/DOMHTMLFormElement.h: Added.
  • bindings/objc/DOMHTMLFormElement.mm: Added.
  • bindings/objc/DOMHTMLFormElementInternal.h: Added.
  • bindings/objc/DOMHTMLFrameElement.h: Added.
  • bindings/objc/DOMHTMLFrameElement.mm: Added.
  • bindings/objc/DOMHTMLFrameElementInternal.h: Added.
  • bindings/objc/DOMHTMLFrameSetElement.h: Added.
  • bindings/objc/DOMHTMLFrameSetElement.mm: Added.
  • bindings/objc/DOMHTMLFrameSetElementInternal.h: Added.
  • bindings/objc/DOMHTMLHRElement.h: Added.
  • bindings/objc/DOMHTMLHRElement.mm: Added.
  • bindings/objc/DOMHTMLHRElementInternal.h: Added.
  • bindings/objc/DOMHTMLHeadElement.h: Added.
  • bindings/objc/DOMHTMLHeadElement.mm: Added.
  • bindings/objc/DOMHTMLHeadElementInternal.h: Added.
  • bindings/objc/DOMHTMLHeadingElement.h: Added.
  • bindings/objc/DOMHTMLHeadingElement.mm: Added.
  • bindings/objc/DOMHTMLHeadingElementInternal.h: Added.
  • bindings/objc/DOMHTMLHtmlElement.h: Added.
  • bindings/objc/DOMHTMLHtmlElement.mm: Added.
  • bindings/objc/DOMHTMLHtmlElementInternal.h: Added.
  • bindings/objc/DOMHTMLIFrameElement.h: Added.
  • bindings/objc/DOMHTMLIFrameElement.mm: Added.
  • bindings/objc/DOMHTMLIFrameElementInternal.h: Added.
  • bindings/objc/DOMHTMLImageElement.h: Added.
  • bindings/objc/DOMHTMLImageElement.mm: Added.
  • bindings/objc/DOMHTMLImageElementInternal.h: Added.
  • bindings/objc/DOMHTMLInputElement.h: Added.
  • bindings/objc/DOMHTMLInputElement.mm: Added.
  • bindings/objc/DOMHTMLInputElementInternal.h: Added.
  • bindings/objc/DOMHTMLInputElementPrivate.h: Added.
  • bindings/objc/DOMHTMLLIElement.h: Added.
  • bindings/objc/DOMHTMLLIElement.mm: Added.
  • bindings/objc/DOMHTMLLIElementInternal.h: Added.
  • bindings/objc/DOMHTMLLabelElement.h: Added.
  • bindings/objc/DOMHTMLLabelElement.mm: Added.
  • bindings/objc/DOMHTMLLabelElementInternal.h: Added.
  • bindings/objc/DOMHTMLLegendElement.h: Added.
  • bindings/objc/DOMHTMLLegendElement.mm: Added.
  • bindings/objc/DOMHTMLLegendElementInternal.h: Added.
  • bindings/objc/DOMHTMLLinkElement.h: Added.
  • bindings/objc/DOMHTMLLinkElement.mm: Added.
  • bindings/objc/DOMHTMLLinkElementInternal.h: Added.
  • bindings/objc/DOMHTMLMapElement.h: Added.
  • bindings/objc/DOMHTMLMapElement.mm: Added.
  • bindings/objc/DOMHTMLMapElementInternal.h: Added.
  • bindings/objc/DOMHTMLMarqueeElement.h: Added.
  • bindings/objc/DOMHTMLMarqueeElement.mm: Added.
  • bindings/objc/DOMHTMLMarqueeElementInternal.h: Added.
  • bindings/objc/DOMHTMLMediaElement.h: Added.
  • bindings/objc/DOMHTMLMediaElement.mm: Added.
  • bindings/objc/DOMHTMLMediaElementInternal.h: Added.
  • bindings/objc/DOMHTMLMenuElement.h: Added.
  • bindings/objc/DOMHTMLMenuElement.mm: Added.
  • bindings/objc/DOMHTMLMenuElementInternal.h: Added.
  • bindings/objc/DOMHTMLMetaElement.h: Added.
  • bindings/objc/DOMHTMLMetaElement.mm: Added.
  • bindings/objc/DOMHTMLMetaElementInternal.h: Added.
  • bindings/objc/DOMHTMLModElement.h: Added.
  • bindings/objc/DOMHTMLModElement.mm: Added.
  • bindings/objc/DOMHTMLModElementInternal.h: Added.
  • bindings/objc/DOMHTMLOListElement.h: Added.
  • bindings/objc/DOMHTMLOListElement.mm: Added.
  • bindings/objc/DOMHTMLOListElementInternal.h: Added.
  • bindings/objc/DOMHTMLObjectElement.h: Added.
  • bindings/objc/DOMHTMLObjectElement.mm: Added.
  • bindings/objc/DOMHTMLObjectElementInternal.h: Added.
  • bindings/objc/DOMHTMLObjectElementPrivate.h: Added.
  • bindings/objc/DOMHTMLOptGroupElement.h: Added.
  • bindings/objc/DOMHTMLOptGroupElement.mm: Added.
  • bindings/objc/DOMHTMLOptGroupElementInternal.h: Added.
  • bindings/objc/DOMHTMLOptionElement.h: Added.
  • bindings/objc/DOMHTMLOptionElement.mm: Added.
  • bindings/objc/DOMHTMLOptionElementInternal.h: Added.
  • bindings/objc/DOMHTMLOptionsCollection.h: Added.
  • bindings/objc/DOMHTMLOptionsCollection.mm: Added.
  • bindings/objc/DOMHTMLOptionsCollectionInternal.h: Added.
  • bindings/objc/DOMHTMLParagraphElement.h: Added.
  • bindings/objc/DOMHTMLParagraphElement.mm: Added.
  • bindings/objc/DOMHTMLParagraphElementInternal.h: Added.
  • bindings/objc/DOMHTMLParamElement.h: Added.
  • bindings/objc/DOMHTMLParamElement.mm: Added.
  • bindings/objc/DOMHTMLParamElementInternal.h: Added.
  • bindings/objc/DOMHTMLPreElement.h: Added.
  • bindings/objc/DOMHTMLPreElement.mm: Added.
  • bindings/objc/DOMHTMLPreElementInternal.h: Added.
  • bindings/objc/DOMHTMLQuoteElement.h: Added.
  • bindings/objc/DOMHTMLQuoteElement.mm: Added.
  • bindings/objc/DOMHTMLQuoteElementInternal.h: Added.
  • bindings/objc/DOMHTMLScriptElement.h: Added.
  • bindings/objc/DOMHTMLScriptElement.mm: Added.
  • bindings/objc/DOMHTMLScriptElementInternal.h: Added.
  • bindings/objc/DOMHTMLSelectElement.h: Added.
  • bindings/objc/DOMHTMLSelectElement.mm: Added.
  • bindings/objc/DOMHTMLSelectElementInternal.h: Added.
  • bindings/objc/DOMHTMLStyleElement.h: Added.
  • bindings/objc/DOMHTMLStyleElement.mm: Added.
  • bindings/objc/DOMHTMLStyleElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableCaptionElement.h: Added.
  • bindings/objc/DOMHTMLTableCaptionElement.mm: Added.
  • bindings/objc/DOMHTMLTableCaptionElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableCellElement.h: Added.
  • bindings/objc/DOMHTMLTableCellElement.mm: Added.
  • bindings/objc/DOMHTMLTableCellElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableColElement.h: Added.
  • bindings/objc/DOMHTMLTableColElement.mm: Added.
  • bindings/objc/DOMHTMLTableColElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableElement.h: Added.
  • bindings/objc/DOMHTMLTableElement.mm: Added.
  • bindings/objc/DOMHTMLTableElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableRowElement.h: Added.
  • bindings/objc/DOMHTMLTableRowElement.mm: Added.
  • bindings/objc/DOMHTMLTableRowElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableSectionElement.h: Added.
  • bindings/objc/DOMHTMLTableSectionElement.mm: Added.
  • bindings/objc/DOMHTMLTableSectionElementInternal.h: Added.
  • bindings/objc/DOMHTMLVideoElement.h: Added.
  • bindings/objc/DOMHTMLVideoElement.mm: Added.
  • bindings/objc/DOMHTMLVideoElementInternal.h: Added.

Source/WebKit/mac:

Don't migrate DOMHTMLEmbedElementPrivate.h - it was just an empty header.

  • MigrateHeaders.make:
2:06 PM Changeset in webkit [203987] by Chris Dumez
  • 4 edits
    1 delete in trunk

Make wpt server generate its certificates in layout test results folder
https://bugs.webkit.org/show_bug.cgi?id=160422

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-01
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • resources/_wpt_certs/.gitignore: Removed.
  • resources/_wpt_certs/localhost.key: Removed.
  • resources/_wpt_certs/localhost.pem: Removed.
  • resources/config.json:

Tools:

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._copy_webkit_test_files): Setting certificate folder to layout tests results directory.

2:03 PM Changeset in webkit [203986] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Waterfall graph in Network tab shows too much whitespace/dead time
https://bugs.webkit.org/show_bug.cgi?id=160373

Reviewed by Timothy Hatcher.

Track the start and end time separate from the ruler to remove
leading/trailing whitespace in the graph. Also prevent network
record bars from being clipped.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.get zeroTime):
Set equal to the ruler start time.
(WebInspector.NetworkGridContentView.prototype.reset):
Reset start and end time.
(WebInspector.NetworkGridContentView.prototype.layout):
Set the initial values for ruler start/zero time if needed.
(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
Set the start time if needed.
Reduce debounce from 250ms to 150ms. This prevents the current time from
exceeding the end time by as wide a margin, while keeping the current
time "timer" from being restarted too frequently.

(WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
Update the ruler end time and schedule a layout.
Add padding equal to the time needed to draw a network bar at minimum width
to prevent bars from being clipped.

1:49 PM Changeset in webkit [203985] by Antti Koivisto
  • 5 edits
    3 adds in trunk

REGRESSION(r198943): drop-down menu navigation on fiddlevideo.com doesn't appear on iOS, works on OS X
https://bugs.webkit.org/show_bug.cgi?id=160406
Source/WebCore:

rdar://problem/26310261

Reviewed by Simon Fraser.

On iOS we generate synthetic mouse events from taps. Click event is generated on tap only if the move event
doesn't produce visible changes to the document. This is important to make certain types of drop down menus
work.

The information on mutations is passed via WKContentObservation side channel which is updated from varous parts
of the code. Newly visible elements are detected CheckForVisibilityChangeOnRecalcStyle during style resolution.
This got broken by the style refactoring because it assumes that renderer is mutated along with style computation.
However mutation is now a separate step performed by RenderTreeUpdater.

Fix by moving CheckForVisibilityChange to RenderTreeUpdater.

Test: fast/content-observation/click-event-suppression-on-content-change.html

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::Parent::Parent):
(WebCore::RenderTreeUpdater::updateElementRenderer):
(WebCore::RenderTreeUpdater::tearDownRenderer):
(WebCore::elementImplicitVisibility):
(WebCore::CheckForVisibilityChange::CheckForVisibilityChange):
(WebCore::CheckForVisibilityChange::~CheckForVisibilityChange):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::elementImplicitVisibility): Deleted.
(WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::CheckForVisibilityChangeOnRecalcStyle): Deleted.
(WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::~CheckForVisibilityChangeOnRecalcStyle): Deleted.

LayoutTests:

Reviewed by Simon Fraser.

This stuff has had zero test coverage. Adding a basic UIScript based test.

  • TestExpectations:
  • fast/content-observation/click-event-suppression-on-content-change-expected.txt: Added.
  • fast/content-observation/click-event-suppression-on-content-change.html: Added.
1:48 PM Changeset in webkit [203984] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] A video element that does not pause after exiting from fullscreen should be allowed to continue playing inline
https://bugs.webkit.org/show_bug.cgi?id=160416
<rdar://problem/27409854>

Reviewed by Alex Christensen.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::exitFullscreen): If playback normally requires fullscreen but the
element was not paused when exiting from fullscreen, set the 'playsinline' attribute so we won't
force fullscreen if playback is paused and resumes, and set the 'controls' attribute so the
user can control playback.

1:34 PM Changeset in webkit [203983] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • WebCore.xcodeproj/project.pbxproj:
12:49 PM Changeset in webkit [203982] by eric.carlson@apple.com
  • 19 edits
    2 adds in trunk

[Mac][iOS] Adopt MediaRemote "seek to playback position"
https://bugs.webkit.org/show_bug.cgi?id=160405
<rdar://problem/27547583>

Reviewed by Dean Jackson.

Source/WebCore:

Test: media/remote-control-command-seek.html

  • Modules/webaudio/AudioContext.h: Update for didReceiveRemoteControlCommand argument change.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): Support SeekToPlaybackPositionCommand.
Drive by fix, support Stop command.
(WebCore::HTMLMediaElement::supportsSeeking): New.

  • html/HTMLMediaElement.h:
  • platform/RemoteCommandListener.h:

(WebCore::RemoteCommandListenerClient::didReceiveRemoteControlCommand): Add command argument.
(WebCore::RemoteCommandListenerClient::supportsSeeking): New.
(WebCore::RemoteCommandListener::updateSupportedCommands): Ditto.
(WebCore::RemoteCommandListener::client): Ditto.

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::didReceiveRemoteControlCommand): Add command argument.
(WebCore::PlatformMediaSession::supportsSeeking): New, pass through to client.

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::setCurrentSession): Tell remote command listener to
update supported commands.
(WebCore::PlatformMediaSessionManager::currentSession): Make const.
(WebCore::PlatformMediaSessionManager::didReceiveRemoteControlCommand): Add command argument.
(WebCore::PlatformMediaSessionManager::supportsSeeking): New, pass through to session.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/ios/RemoteCommandListenerIOS.h:

(WebCore::RemoteCommandListenerIOS::createWeakPtr):

  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): Support changePlaybackPositionCommand.
(WebCore::RemoteCommandListenerIOS::~RemoteCommandListenerIOS): Remove seekToTime target.
(WebCore::RemoteCommandListenerIOS::updateSupportedCommands): Update changePlaybackPositionCommand.

  • platform/mac/MediaRemoteSoftLink.cpp:
  • platform/mac/MediaRemoteSoftLink.h:
  • platform/mac/RemoteCommandListenerMac.h:
  • platform/mac/RemoteCommandListenerMac.mm:

(WebCore::RemoteCommandListenerMac::updateSupportedCommands): New, split out of constructor.
(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac): Split setup logic out into
updateSupportedCommands. Support MRMediaRemoteCommandSeekToPlaybackPosition. Don't assert when
receiving an unsupported command, it happens. Return error when a command isn't supported or
fails.

  • testing/Internals.cpp:

(WebCore::Internals::postRemoteControlCommand): Add command argument parameter. Support
seektoplaybackposition.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • media/remote-control-command-seek-expected.txt: Added.
  • media/remote-control-command-seek.html: Added.
12:35 PM Changeset in webkit [203981] by andersca@apple.com
  • 4 edits
    6 adds in trunk/Source/WebCore

Freeze DOMHTMLTitleElement and DOMHTMLUListElement bindings
https://bugs.webkit.org/show_bug.cgi?id=160415

Reviewed by Sam Weinig.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMHTMLTitleElement.h: Added.
  • bindings/objc/DOMHTMLTitleElement.mm: Added.
  • bindings/objc/DOMHTMLTitleElementInternal.h: Added.
  • bindings/objc/DOMHTMLUListElement.h: Added.
  • bindings/objc/DOMHTMLUListElement.mm: Added.
  • bindings/objc/DOMHTMLUListElementInternal.h: Added.
11:51 AM Changeset in webkit [203980] by bshafiei@apple.com
  • 5 edits
    2 adds in branches/safari-602-branch

Merge r203976. rdar://problem/27580049

11:48 AM Changeset in webkit [203979] by sbarati@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Sub should be a Math IC
https://bugs.webkit.org/show_bug.cgi?id=160270

Reviewed by Mark Lam.

This makes Sub an IC like Mul and Add. I'm seeing the following
improvements of average Sub size on Unity and JetStream:

| JetStream | Unity 3D |

------| -------------

Old | 202 bytes | 205 bytes |

------| -------------

New | 134 bytes | 134 bytes |

------------------------------------

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::addJITSubIC):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::dumpMathICStats):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::stubInfoBegin):
(JSC::CodeBlock::stubInfoEnd):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithSub):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArithAddOrSub):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_sub):
(JSC::JIT::emitSlow_op_sub):
(JSC::JIT::emit_op_pow):

  • jit/JITMathIC.h:
  • jit/JITMathICForwards.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):
(JSC::JITSubGenerator::isLeftOperandValidConstant):
(JSC::JITSubGenerator::isRightOperandValidConstant):
(JSC::JITSubGenerator::arithProfile):
(JSC::JITSubGenerator::didEmitFastPath): Deleted.
(JSC::JITSubGenerator::endJumpList): Deleted.
(JSC::JITSubGenerator::slowPathJumpList): Deleted.

11:45 AM Changeset in webkit [203978] by commit-queue@webkit.org
  • 5 edits in trunk/PerformanceTests

Add an option to run the MotionMark tests with classic tile size (512x512)
https://bugs.webkit.org/show_bug.cgi?id=160371

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-08-01
Reviewed by Darin Adler.

Setting the body to large size (3000x3000) and overflow to scroll forces
the classic tile size (512x512). This option does not affect the canvas
tests because the canvas is displayed on one tile regardless of its size.

  • Animometer/developer.html:
  • Animometer/resources/debug-runner/animometer.css:

(body.showing-test-container.tiles-big):
(body.showing-test-container.tiles-classic):

  • Animometer/resources/debug-runner/animometer.js:
  • Animometer/resources/runner/animometer.js:

(window.benchmarkController.startBenchmark):

11:30 AM Changeset in webkit [203977] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Update Apache configuration for Arch Linux
https://bugs.webkit.org/show_bug.cgi?id=160408

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2016-08-01
Reviewed by Ryosuke Niwa.

Arch Linux now ships Apache 2.4 and PHP 7, so the configuration file
used for the layout tests is updated to be compatible with the newer
versions.

  • http/conf/archlinux-httpd.conf: Updated.
11:05 AM WebKitGTK/2.12.x edited by Konstantin Tokarev
(diff)
11:00 AM Changeset in webkit [203976] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION (r196383): Drop down CSS menus not working on cnet.com, apmex.com
https://bugs.webkit.org/show_bug.cgi?id=160390

Reviewed by Simon Fraser.

Source/WebCore:

The case here is that we have a rule like

.enableHover:hover .child { ... }

and the "enableHover" class is added dynamically. The class change invalidation optimization code would figure out
that nothing needs to be invalidated as the class change doesn't make the rule match (since :hover doesn't match).

However for event driven hover to actually work the hover element needs to have its childrenAffectedByHover bit set.
This bits is set when the selector match is attempted, whether it actually matches or not. Since we optimized away
the style invalidation we never set the bit either.

Fix by treating :hover as always matching (==ignored) when collecting rules for invalidation optimization purposes.
Dynamic pseudo elements are already treated this way for similar reasons.

Test: fast/selectors/hover-invalidation-descendant-dynamic.html

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

Match always in CollectingRulesIgnoringVirtualPseudoElements mode (now slightly misnamed).

This mode is used for optimization purposes in StyleInvalidationAnalysis (which we care about here) and
StyleSharingResolver. The change is fine for both.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):

Same change for the slow path selector checker.

LayoutTests:

  • fast/selectors/hover-invalidation-descendant-dynamic-expected.txt: Added.
  • fast/selectors/hover-invalidation-descendant-dynamic.html: Added.
10:49 AM Changeset in webkit [203975] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Function Call on NULL Object
https://bugs.webkit.org/show_bug.cgi?id=160325

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-08-01
Reviewed by Darin Adler.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage): Changed removeAllWebNotificationPermissions() call to static function call.

  • WebKitTestRunner/InjectedBundle/TestRunner.h: Made all web-notification functions static.
10:49 AM Changeset in webkit [203974] by Darin Adler
  • 3 edits
    4 adds in trunk/Source/WebCore

[Cocoa] Freeze Objective-C bindings and stop autogenerating them: Step 1 - Convert a single file
https://bugs.webkit.org/show_bug.cgi?id=160386

Reviewed by Anders Carlsson.

No behavior change, no tests changed. I tested this locally by putting "#error" into the
files in the DerivedSources directory to make sure the build doesn't use those files even
if there are stale copies still sitting there.

Moving the bindings from WebCore to the legacy part of WebKit is something we also want to
do, but that is quite challenging to do one file at a time, so we will do that later.

For this first file, I did some hand edits to make the code in a the file a little less
peculiar. It's still awkward to have all those JSMainThreadNullState in there; should double
check that we really need them.

An important follow up step will be to cut down on the bindings. We have lots of bindings
that are only in the Private.h header, and it would be good to find a way to cut down on those.
And on iOS we would like eliminate these bindings entirely since they are not API there.

  • DerivedSources.make: Moved HTMLTextAreaElement from a list we use for both JavaScript and

Objective-C DOM bindings to a list we use only for JavaScript bindings.

  • WebCore.xcodeproj/project.pbxproj: Removed references to generated DOMHTMLTextAreaElement

files and instead reference the checked-in copies.

  • bindings/objc/DOMHTMLTextAreaElement.h: Added.
  • bindings/objc/DOMHTMLTextAreaElement.mm: Added.
  • bindings/objc/DOMHTMLTextAreaElementInternal.h: Added.
  • bindings/objc/DOMHTMLTextAreaElementPrivate.h: Added.
6:34 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:44 AM Changeset in webkit [203973] by fred.wang@free.fr
  • 8 edits
    2 copies in trunk/Source/WebCore

Introduce a RenderMathMLFencedOperator class
https://bugs.webkit.org/show_bug.cgi?id=160245

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-01
Reviewed by Darin Adler.

We introduce a class to handle all the code specific to anonymous mfenced operators. In
particular many members of the RenderMathMLOperator class are going to be removed while
fixing bug 156537 but they may still need to stored and exposed in some way by mfenced
operators.

No new tests, behavior is unchanged.

  • CMakeLists.txt: Add RenderMathMLFencedOperator.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderMathMLFencedOperator): Function to allow casting to
RenderMathMLFencedOperator.

  • rendering/mathml/RenderMathMLFenced.cpp: Use RenderMathMLFencedOperator instead of

RenderMathMLOperator and use the new name updateOperatorContent.
(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::createMathMLOperator):
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):

  • rendering/mathml/RenderMathMLFenced.h: Use RenderMathMLFencedOperator instead of

RenderMathMLOperator.

  • rendering/mathml/RenderMathMLFencedOperator.cpp: New class derived from RenderMathMLOperator

(WebCore::RenderMathMLFencedOperator::RenderMathMLFencedOperator): Init form and operator
flags with the specified parameters and init the text content.
(WebCore::RenderMathMLFencedOperator::updateOperatorContent): We move the
RenderMathMLOperator::updateTokenContent function used by anonymous operators here. It is
renamed to avoid build errors due to conflicts with the other
RenderMathMLOperator::updateTokenContent function.

  • rendering/mathml/RenderMathMLFencedOperator.h: New class for anonymous mfenced operators

with getter and setter for the m_textContent. Also override RenderMathMLFencedOperator to
allow casting to RenderMathMLFencedOperator.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::RenderMathMLOperator): Simplify the constructors. Some
initializations is moved in RenderMathMLOperator.h while other code is moved to
RenderMathMLFencedOperator.
(WebCore::RenderMathMLOperator::textContent): No need to handle the anonymous case here since
it is handled in RenderMathMLFencedOperator.
(WebCore::RenderMathMLOperator::updateTokenContent): We delete the version used for anonymous
operators and move it into RenderMathMLFencedOperator.

  • rendering/mathml/RenderMathMLOperator.h: Make the class and some members overridable and

exposed to the derived RenderMathMLFencedOperator class. We also move initialization of some
members here.

12:28 AM Changeset in webkit [203972] by keith_miller@apple.com
  • 6 edits
    1 move
    1 add in trunk

We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
https://bugs.webkit.org/show_bug.cgi?id=160372

Rubber stamped by Geoffrey Garen.

This patch moves all the JavaScript tests from Source/JavaScriptCore/tests to
a new top level directory, JSTests. Having the tests in the Source directory
was both confusing and inconvenient for people that just want to checkout the
source code of WebKit. Since there is no other obvious place to put all the
JavaScript tests a new top level directory seemed the most sensible.

  • JSTests/: Copied from Source/JavaScriptCore/tests.
  • Source/JavaScriptCore/tests/: Deleted.
  • Scripts/import-test262-tests:
  • Scripts/run-javascriptcore-tests:
  • Scripts/update-javascriptcore-test-res:
12:02 AM Changeset in webkit [203971] by commit-queue@webkit.org
  • 21 edits in trunk/Source/WebCore

Reduce the number of ResourceRequest copies in DocumentThreadableLoader
https://bugs.webkit.org/show_bug.cgi?id=160338

Patch by Youenn Fablet <youennf@gmail.com> on 2016-08-01
Reviewed by Darin Adler.

No observable change of behavior.

Updating one of CachedResourceReques constructor to take a ResourceRequest&&.
This allows reducing a ResourceRequest copy in DocumentThreadableLoader.
Updating DocumentLoader and MediaResourceLoader accordingly (future optimization steps may look at making these
two loaders more efficient with regards to Resource Request).

Updating ThreadableLoader to take a ResourceRequest&&.
This allows reducing the number of copies in DocumentThreadableLoader.
Updating clients of ThreadableLoader accordingly.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start):

  • dom/Document.cpp:

(WebCore::Document::didLoadResourceSynchronously):

  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::didLoadResourceSynchronously):

  • dom/ScriptExecutionContext.h:
  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadResourceSynchronously):
(WebCore::DocumentThreadableLoader::create):
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/DocumentThreadableLoader.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource):

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create):
(WebCore::ThreadableLoader::loadResourceSynchronously):

  • loader/ThreadableLoader.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

  • loader/WorkerThreadableLoader.h:

(WebCore::WorkerThreadableLoader::create):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::CachedResourceRequest):

  • loader/cache/CachedResourceRequest.h:
  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Jul 31, 2016:

11:51 PM Changeset in webkit [203970] by bshafiei@apple.com
  • 13 edits
    2 adds in branches/safari-602-branch

Merge r203842. rdar://problem/27553464

11:51 PM Changeset in webkit [203969] by bshafiei@apple.com
  • 3 edits
    4 adds in branches/safari-602-branch

Merge r203931. rdar://problem/27317407

11:51 PM Changeset in webkit [203968] by bshafiei@apple.com
  • 5 edits
    2 adds in branches/safari-602-branch

Merge r203928. rdar://problem/27179484

11:51 PM Changeset in webkit [203967] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203924. rdar://problem/27355214

11:51 PM Changeset in webkit [203966] by bshafiei@apple.com
  • 6 edits in branches/safari-602-branch

Merge r203916. rdar://problem/27594995

11:51 PM Changeset in webkit [203965] by bshafiei@apple.com
  • 11 edits
    2 adds in branches/safari-602-branch

Merge r203913. rdar://problem/27558003

11:51 PM Changeset in webkit [203964] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203909. rdar://problem/27078089

11:51 PM Changeset in webkit [203963] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203905. rdar://problem/27610246

11:51 PM Changeset in webkit [203962] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Merge r203799. rdar://problem/27556788

11:00 PM Changeset in webkit [203961] by commit-queue@webkit.org
  • 5 edits in trunk

Fetch Response built-ins should use @makeThisTypeError
https://bugs.webkit.org/show_bug.cgi?id=160290

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-31
Reviewed by Darin Adler.

Source/WebCore:

Covered by updated test.

Fixed type error checks.
Making use of @makeThisTypeError to have the correct error message.
Updating arrayBuffer, blob, json and text to return rejected promises in lieu of throwing
in case the 'this' value is not q Response object.

  • Modules/fetch/FetchResponse.js:

(clone): Updated instanceof check and making use of @makeThisTypeError.
(arrayBuffer): Ditto.
(blob): Ditto.
(formData): Ditto.
(json): Ditto.
(text): Ditto.

LayoutTests:

  • fetch/fetch-error-messages-expected.txt:
  • fetch/fetch-error-messages.html:
10:43 PM Changeset in webkit [203960] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Implement missing WebCore::moveFile() using GLib functions
https://bugs.webkit.org/show_bug.cgi?id=160363

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2016-07-31
Reviewed by Carlos Garcia Campos.

  • platform/glib/FileSystemGlib.cpp:

(WebCore::moveFile): Function added.

7:13 PM Changeset in webkit [203959] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.44.0.1/Source

Versioning.

7:11 PM Changeset in webkit [203958] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.44.0.1

New tag.

5:37 PM Changeset in webkit [203957] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Should check Test262Error correctly
https://bugs.webkit.org/show_bug.cgi?id=159862

Reviewed by Saam Barati.

Test262Error in the harness does not have "name" property.
Rather than checking "name" property, peforming instanceof is better to check the class of the exception.

  • jsc.cpp:

(checkUncaughtException):

  • runtime/JSObject.h:
  • tests/test262.yaml:
4:36 PM Changeset in webkit [203956] by Chris Dumez
  • 29 edits in trunk/Source/WebCore

Drop [StrictTypeChecking] in cases where it is a no-op
https://bugs.webkit.org/show_bug.cgi?id=160387

Reviewed by Darin Adler.

Drop [StrictTypeChecking] in cases where it is a no-op. After r203949 & r203950,
[StrictTypeChecking] only has an impact when used on operation parameters of
string types and is currently used as a workaround for bugs in our overload
resolution algorithm.

  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpSender.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestTypedefs.idl:
  • html/canvas/ANGLEInstancedArrays.idl:
  • html/canvas/OESVertexArrayObject.idl:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLDebugShaders.idl:
  • html/canvas/WebGLLoseContext.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
  • svg/SVGAngle.idl:
  • svg/SVGColor.idl:
  • svg/SVGLength.idl:
  • svg/SVGLengthList.idl:
  • svg/SVGMatrix.idl:
  • svg/SVGNumberList.idl:
  • svg/SVGPaint.idl:
  • svg/SVGPathSegList.idl:
  • svg/SVGPoint.idl:
  • svg/SVGPointList.idl:
  • svg/SVGStringList.idl:
  • svg/SVGTransform.idl:
  • svg/SVGTransformList.idl:
1:02 PM Changeset in webkit [203955] by n_wang@apple.com
  • 9 edits
    2 adds in trunk

AX: Add a check for touch event listener on iOS accessibility object
https://bugs.webkit.org/show_bug.cgi?id=160388

Reviewed by Chris Fleizach.

Source/WebCore:

dispatchTouchEvent() is not working correctly within AXPress() sometimes. Need to
investigate it more in the future. Now, adding a check for the touch event listener
on the object's node so that iOS can handle dispatching the touch event instead.

Test: accessibility/ios-simulator/has-touch-event-listener.html

  • accessibility/AccessibilityObject.h:
  • accessibility/ios/AccessibilityObjectIOS.mm:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
(WebCore::AccessibilityObject::hasTouchEventListener):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(appendStringToResult):
(-[WebAccessibilityObjectWrapper _accessibilityHasTouchEventListener]):
(-[WebAccessibilityObjectWrapper _accessibilityValueIsAutofilled]):

Tools:

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::boolAttributeValue):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::boolAttributeValue):

LayoutTests:

  • accessibility/ios-simulator/has-touch-event-listener-expected.txt: Added.
  • accessibility/ios-simulator/has-touch-event-listener.html: Added.
1:31 AM Changeset in webkit [203954] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK][Unix] Implement missing WebKit::SharedMemory::create() function
https://bugs.webkit.org/show_bug.cgi?id=160364

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2016-07-31
Reviewed by Carlos Garcia Campos.

The WebKit::SharedMemory::create() function is missing for the Unix
platform, which is also used by the GTK+ port. The latter is going
to need this in place to use the common content filtering code.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::accessModeMMap): Added helper function to convert a
SharedMemory::Protection value into flags useable with mmap().
(WebKit::SharedMemory::create): Added. Implementation reuses code
existing in the SharedMemory::allocate() function.
(WebKit::SharedMemory::allocate): Reimplemented in terms of
SharedMemory::create().

12:04 AM Changeset in webkit [203953] by Yusuke Suzuki
  • 11 edits
    1 copy
    3 adds in trunk/Source/JavaScriptCore

[ES6] Module binding can be exported by multiple names
https://bugs.webkit.org/show_bug.cgi?id=160343

Reviewed by Saam Barati.

ES6 Module can export the same local binding by using multiple names.
For example,

`
var value = 42;

export { value };
export { value as value2 };
`

Currently, we only allowed one local binding to be exported with one name. So, in the above case,
the local binding "value" is exported as "value2" and "value" name is not exported. This is wrong.

To fix this issue, we collect the correspondence (local name => exported name) to the local bindings
in the parser. Previously, we only maintained the exported local bindings in the parser. And utilize
this information when creating the export entries in ModuleAnalyzer.

And this patch also moves ModuleScopeData from the Scope object to the Parser class since exported
names should be managed per-module, not per-scope.

This change fixes several test262 failures.

(JSC::ModuleAnalyzer::exportVariable):
(JSC::ModuleAnalyzer::analyze):
(JSC::ModuleAnalyzer::exportedBinding): Deleted.
(JSC::ModuleAnalyzer::declareExportAlias): Deleted.

  • parser/ModuleAnalyzer.h:
  • parser/ModuleScopeData.h: Copied from Source/JavaScriptCore/parser/ModuleAnalyzer.h.

(JSC::ModuleScopeData::create):
(JSC::ModuleScopeData::exportedBindings):
(JSC::ModuleScopeData::exportName):
(JSC::ModuleScopeData::exportBinding):

  • parser/Nodes.cpp:

(JSC::ProgramNode::ProgramNode):
(JSC::ModuleProgramNode::ModuleProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode):

  • parser/Nodes.h:

(JSC::ModuleProgramNode::moduleScopeData):

  • parser/NodesAnalyzeModule.cpp:

(JSC::ExportDefaultDeclarationNode::analyzeModule):
(JSC::ExportNamedDeclarationNode::analyzeModule): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClassDeclaration):
(JSC::Parser<LexerType>::parseExportSpecifier):
(JSC::Parser<LexerType>::parseExportDeclaration):

  • parser/Parser.h:

(JSC::Parser::exportName):
(JSC::Parser<LexerType>::parse):
(JSC::ModuleScopeData::create): Deleted.
(JSC::ModuleScopeData::exportedBindings): Deleted.
(JSC::ModuleScopeData::exportName): Deleted.
(JSC::ModuleScopeData::exportBinding): Deleted.
(JSC::Scope::Scope): Deleted.
(JSC::Scope::setSourceParseMode): Deleted.
(JSC::Scope::moduleScopeData): Deleted.
(JSC::Scope::setIsModule): Deleted.

  • tests/modules/aliased-names.js: Added.
  • tests/modules/aliased-names/main.js: Added.

(change):

  • tests/stress/modules-syntax-error-with-names.js:

(export.Cocoa):
(SyntaxError.Cannot.export.a.duplicate.name):

  • tests/test262.yaml:
Note: See TracTimeline for information about the timeline view.