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

Timeline



Apr 2, 2018:

6:03 PM Changeset in webkit [230195] by beidson@apple.com
  • 13 edits in trunk

Process swapping on navigation needs to handle server redirects.
<rdar://problem/38690465> and https://bugs.webkit.org/show_bug.cgi?id=184142

Reviewed by Alex Christensen.

Source/WebKit:

The same rules we apply to process swapping for basic navigations need to apply
to server redirects as well.

There's three interesting cases we need to support that are covered by new API tests:
1 - The initial load in a WKWebView redirects cross-origin.
2 - A WKWebView is showing content from a.com, we start a load to b.com, and that redirects to c.com
3 - A WKWebView is showing content from a.com, we start a load to a.com, that that redirects to b.com.

Supporting all 3 of these brought their own little challenges.

By teaching Navigation objects more about redirects I was able to support all 3 cases.

  • UIProcess/API/APINavigation.cpp:

(API::Navigation::Navigation):
(API::Navigation::setCurrentRequest):
(API::Navigation::appendRedirectionURL):
(API::Navigation::loggingString const):
(API::Navigation::loggingURL const): Deleted.

  • UIProcess/API/APINavigation.h:

(API::Navigation::originalRequest const):
(API::Navigation::currentRequest const):
(API::Navigation::currentRequestProcessIdentifier const):
(API::Navigation::setCurrentRequestIsRedirect):
(API::Navigation::currentRequestIsRedirect const):
(API::Navigation::request const): Deleted.

  • UIProcess/API/Cocoa/WKNavigation.mm:

(-[WKNavigation _request]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess): If this continued navigation is currently in a server

redirect, save off a lambda to synthesize a "did receive server redirect" callback once the new WebProcess is running.

(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame): Possibly ignore this notification if it is really a

cross-origin redirect that is just starting back up in a new WebProcess.

(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::resetStateAfterProcessExited): Do not clear pageLoadState if the process is exitting for

a navigation swap, as we will need to pick up where we left off when the load continues in a new WebProcess.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigation): If a process has never committed any provisional load, it can always

be used to continue a navigation.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::didCommitProvisionalLoad):
(WebKit::WebProcessProxy::hasCommittedAnyProvisionalLoads const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONNavigationDelegate webView:didFinishNavigation:]):
(-[PSONNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[PSONNavigationDelegate webView:didReceiveServerRedirectForProvisionalNavigation:]):
(-[PSONScheme addRedirectFromURLString:toURLString:]):
(-[PSONScheme webView:startURLSchemeTask:]):

5:50 PM Changeset in webkit [230194] by eric.carlson@apple.com
  • 27 edits in trunk/Source

[Extra zoom mode] Replace video with a placeholder image during fullscreen transition
https://bugs.webkit.org/show_bug.cgi?id=184188
<rdar://problem/38940307>

Reviewed by Youenn Fablet.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::willExitFullscreen):

  • html/HTMLMediaElement.h:
  • platform/cocoa/VideoFullscreenChangeObserver.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(VideoFullscreenModelVideoElement::willExitFullscreen):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::updateVideoFullscreenInlineImage):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::updateVideoFullscreenInlineImage):

  • platform/graphics/VideoFullscreenLayerManager.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoFullscreenInlineImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenLayer):

  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm:

(WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer):
(WebCore::VideoFullscreenLayerManagerObjC::updateVideoFullscreenInlineImage):
(WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenLayer):

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::exitFullscreen):
(VideoFullscreenInterfaceAVKit::preparedToExitFullscreen):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::willExitFullscreen):

Source/WebKit:

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenModelContext::willExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::willExitFullscreen):

  • WebProcess/cocoa/VideoFullscreenManager.h:
  • WebProcess/cocoa/VideoFullscreenManager.messages.in:
  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::willExitFullscreen):

5:11 PM Changeset in webkit [230193] by BJ Burg
  • 2 edits in trunk/Source/WebKit

[Cocoa] Fix some internal builds that consume WebDriver atoms
https://bugs.webkit.org/show_bug.cgi?id=184197

Reviewed by Dan Bernstein.

  • WebKit.xcodeproj/project.pbxproj:

Use a Run Script phase to copy WebDriver atoms to WebKit.framework
private headers during the installhdrs phase.

4:12 PM Changeset in webkit [230192] by dbates@webkit.org
  • 7 edits in trunk/Tools

Add infrastructure to relax SSL for allowed hosts in DumpRenderTree and WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=184239

Reviewed by Alexey Proskuryakov.

Adds a new optional command line option --allow-any-certificate-for-allowed-hosts (defaults to disabled)
to allow the allowed hosts to accept any HTTPS certificate. You can specify an allowed host
by using the existing command line option --allowed-host.

Currently both DumpRenderTree and WebKitTestRunner relax SSL certificate validation
for 127.0.0.1 and localhost so that we can run HTTPS tests from these hosts using
a self-signed certificate. They do not relax these restrictions for any allowed host,
specified using the optional command line option --allowed-host. For testing purposes
it is useful to be able to run a local HTTPS server with a self-signed certificate and
mimic a non-localhost hostname (by adding an alias(es) for 127.0.0.1 to /etc/hosts).
We should support relaxing SSL restrictions for such testing purposes.

For example, to allow host example.test to present any HTTPS certificate when running
tests you would invoke:

run-webkit-tests --allowed-host example.test --additional-drt-flag '--allow-any-certificate-for-allowed-hosts'

  • DumpRenderTree/mac/DumpRenderTree.mm:

(initializeGlobalsFromCommandLineOptions): Parse the command line option --allow-any-certificate-for-allowed-hosts.
(dumpRenderTree): Allow any HTTPS certificate from each allowed host.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage): Clear out the existing list of allowed hosts
before appending entries to it to avoid growing the list of allowed hosts without bound. Call
platformAllowAnyHTTPSCertificateForAllowedHosts() to apply SSL relaxation for each allowed host.

  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionAllowAnyHTTPSCertificateForAllowedHosts): Added.
(WTR::handleOptionAllowedHost): Update code as needed now that Options::allowedHosts is a std::set.
(WTR::OptionsHandler::OptionsHandler):

  • WebKitTestRunner/Options.h: Change the data type of allowedHosts from a std::vector to a std::set

so that we can make use of the convenience functon std::set::find() in TestController::canAuthenticateAgainstProtectionSpace().

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
(WTR::TestController::canAuthenticateAgainstProtectionSpace): Allow any HTTPS certificate from each allowed host.

  • WebKitTestRunner/TestController.h:
4:09 PM Changeset in webkit [230191] by Ryan Haddad
  • 13 edits in trunk

Unreviewed, rolling out r230174.

Caused LayoutTests to exit early with assertion failures.

Reverted changeset:

"Process swapping on navigation needs to handle server
redirects."
https://bugs.webkit.org/show_bug.cgi?id=184142
https://trac.webkit.org/changeset/230174

4:05 PM Changeset in webkit [230190] by dbates@webkit.org
  • 3 edits in trunk/Tools

Remove pre-Network Session code path for allowing any HTTPS certificate on Mac and iOS
https://bugs.webkit.org/show_bug.cgi?id=184242

Reviewed by Alexey Proskuryakov.

Following r227364 we use the Network Session (NSURLSession) code path by default in
modern WebKit on Mac and iOS. That is, we no longer use {CF, NS}URLConnection in modern
WebKit on these platforms. So, we can remove code that used NSURLRequest SPI to allow
any HTTPS certificate from localhost and 127.0.0.1 when using {CF, NS}URLConnection.
The equivalent functionality is implemented in TestController::canAuthenticateAgainstProtectionSpace().

  • WebKitTestRunner/InjectedBundle/ios/InjectedBundleIOS.mm:

(WTR::InjectedBundle::platformInitialize):

  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:

(WTR::InjectedBundle::platformInitialize):

2:59 PM Changeset in webkit [230189] by jmarcell@apple.com
  • 2 edits in tags/Safari-606.1.11.2/Source/WebKit

Cherry-pick r230160. rdar://problem/39094484

Fixed the build when BOOL is not bool.
<rdar://problem/39094484>

Reviewed by Jer Noble.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm: (-[WKFullScreenViewController videoControlsManagerDidChange]): Removed the write-only ivar _hasControlsManager, the assignment to which was causing the compiler error.

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

2:14 PM Changeset in webkit [230188] by pvollan@apple.com
  • 2 edits in trunk

Remove references to internal version of WebKitQuartzCoreAdditions in CMake files.
https://bugs.webkit.org/show_bug.cgi?id=184246
<rdar://problem/39116563>

Unreviewed build fix.

  • Source/PlatformWin.cmake:
2:09 PM Changeset in webkit [230187] by sbarati@apple.com
  • 22 edits
    1 copy in trunk/Source

bmalloc should compute its own estimate of its footprint
https://bugs.webkit.org/show_bug.cgi?id=184121

Reviewed by Filip Pizlo.

Source/bmalloc:

This patch makes it so that bmalloc keeps track of its own physical
footprint.

Doing this for IsoHeaps is trivial. It allocates/deallocates fixed
page sizes at a time. IsoHeapImpl just updates a count every time
a page is committed/decommitted.

Making Heap keep its footprint was a bit trickier because of how
LargeRange is constructed. Before this patch, LargeRange kept track
of the amount of physical memory at the start of its range. This
patch extends large range to also keep track of the total physical memory
in the range just for footprint bookkeeping. This was needed to make
Heap's footprint come close to resembling reality, because as we merge and split
large ranges, the start physical size often becomes wildly inaccurate.
The total physical size number stored in LargeRange is still just an
estimate. It's possible that as ranges are split, that the total physical
size split amongst the two ranges doesn't resemble reality. This can
happen when the total physical size is really all in one end of the split,
but we mark it as being proportionally split amongst the resulting two
ranges. In practice, I did not notice this being a problem. The footprint
estimate tracks reality very closely (in my testing, within less than 1MB for
heaps with sizes upwards of 1GB). The other nice thing about total physical
size is that even if it diverges from reality in terms of how memory is
using up physical RAM, it stays internally consistent inside bmalloc's
own data structures.

The main oversight of this patch is how it deals with Wasm memory. All Wasm
memory will be viewed by bmalloc as taking up physical space even when it
may not be. Wasm memory starts off as taking up purely virtual pages. When a
page is first accessed, only then will the OS page it in and cause it to use
physical RAM. I opened a bug to come up with a solution to this problem:
https://bugs.webkit.org/show_bug.cgi?id=184207

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/AvailableMemory.cpp:

(bmalloc::memoryStatus):

  • bmalloc/BPlatform.h:
  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):
(bmalloc::Heap::freeableMemory):
(bmalloc::Heap::footprint):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::deallocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::tryAllocateLarge):
(bmalloc::Heap::shrinkLarge):
(bmalloc::Heap::deallocateLarge):
(bmalloc::Heap::externalCommit):
(bmalloc::Heap::externalDecommit):

  • bmalloc/Heap.h:
  • bmalloc/IsoDirectory.h:
  • bmalloc/IsoDirectoryInlines.h:

(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::didDecommit):
(bmalloc::passedNumPages>::freeableMemory):

  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h:

(bmalloc::IsoHeapImpl<Config>::freeableMemory):
(bmalloc::IsoHeapImpl<Config>::footprint):
(bmalloc::IsoHeapImpl<Config>::didCommit):
(bmalloc::IsoHeapImpl<Config>::didDecommit):

  • bmalloc/LargeRange.h:

(bmalloc::LargeRange::LargeRange):
(bmalloc::LargeRange::startPhysicalSize const):
(bmalloc::LargeRange::setStartPhysicalSize):
(bmalloc::LargeRange::totalPhysicalSize const):
(bmalloc::LargeRange::setTotalPhysicalSize):
(bmalloc::merge):
(bmalloc::LargeRange::split const):
(bmalloc::LargeRange::physicalSize const): Deleted.
(bmalloc::LargeRange::setPhysicalSize): Deleted.

  • bmalloc/PhysicalPageMap.h: Added.

This class is added for debugging purposes. It's useful when hacking
on the code that calculates the footprint to use this map as a sanity
check. It's just a simple implementation that has a set of all the committed pages.

(bmalloc::PhysicalPageMap::commit):
(bmalloc::PhysicalPageMap::decommit):
(bmalloc::PhysicalPageMap::footprint):
(bmalloc::PhysicalPageMap::forEachPhysicalPage):

  • bmalloc/Scavenger.cpp:

(bmalloc::dumpStats):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::freeableMemory):
This is here just for debugging for now. But we should implement an
efficient version of this to use when driving when to run the
scavenger.

(bmalloc::Scavenger::footprint):
(bmalloc::Scavenger::threadRunLoop):

  • bmalloc/Scavenger.h:
  • bmalloc/VMAllocate.h:

(bmalloc::physicalPageSizeSloppy):

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::tryAllocateLargeChunk):

  • bmalloc/bmalloc.cpp:

(bmalloc::api::commitAlignedPhysical):
(bmalloc::api::decommitAlignedPhysical):

  • bmalloc/bmalloc.h:

Source/JavaScriptCore:

  • heap/IsoAlignedMemoryAllocator.cpp:

(JSC::IsoAlignedMemoryAllocator::~IsoAlignedMemoryAllocator):
(JSC::IsoAlignedMemoryAllocator::tryAllocateAlignedMemory):
(JSC::IsoAlignedMemoryAllocator::freeAlignedMemory):

Source/WTF:

  • wtf/FastMalloc.cpp:

(WTF::fastCommitAlignedMemory):
(WTF::fastDecommitAlignedMemory):

  • wtf/FastMalloc.h:
2:06 PM Changeset in webkit [230186] by jmarcell@apple.com
  • 6 edits in tags/Safari-606.1.7.4/Source/WebKit

Cherry-pick r229684. rdar://problem/38516584

Add _useSystemAppearance to WKView
https://bugs.webkit.org/show_bug.cgi?id=183706
<rdar://problem/38516584>

Reviewed by Tim Horton.

Plumb useSystemAppearance and other supporting functions to WKView

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _initializeWithConfiguration:]): (-[WKWebView _useSystemAppearance]): (-[WKWebView _setUseSystemAppearance:]): (-[WKWebView effectiveAppearanceDidChange]):
  • UIProcess/API/mac/WKView.mm: (-[WKView effectiveAppearanceDidChange]): (-[WKView _setUseSystemAppearance:]): (-[WKView _useSystemAppearance]): (-[WKView _setDefaultAppearance:]):
  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::setUseSystemAppearance): (WebKit::WebViewImpl::useSystemAppearance): (WebKit::WebViewImpl::setDefaultAppearance):

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

2:06 PM Changeset in webkit [230185] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.7.4/Source

Cherry-pick r229679. rdar://problem/38385900

Ensure that style is updated when the effective appearance changes
https://bugs.webkit.org/show_bug.cgi?id=183690
<rdar://problem/38385900>

Reviewed by Tim Horton and Wenson Hsieh.

Source/WebCore:

Only exposing a function to outside WebCore, no tests needed.

  • page/Page.h:

Source/WebKit:

Respond to and respect the effective appearance changing.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView effectiveAppearanceDidChange]):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setDefaultAppearance):

Source/WebKitLegacy/mac:

Respond to and respect the effective appearance changing.

  • WebView/WebView.mm: (-[WebView _setUseSystemAppearance:]): (-[WebView effectiveAppearanceDidChange]):

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

2:06 PM Changeset in webkit [230184] by jmarcell@apple.com
  • 28 edits
    2 copies in tags/Safari-606.1.7.4/Source

Cherry-pick r229654. rdar://problem/38382934

Create MediaQueryParserContext to provide additional context for the evaluation of media queries
https://bugs.webkit.org/show_bug.cgi?id=183677

Reviewed by Tim Horton.

We need additional context for parsing media queries to make sure they are parsed correctly and valid.

Source/WebCore:

Not currently testable, will add tests in a later patch.

  • WebCore.xcodeproj/project.pbxproj:
  • css/MediaList.cpp: (WebCore::MediaQuerySet::create): (WebCore::MediaQuerySet::set): (WebCore::MediaQuerySet::add): (WebCore::MediaQuerySet::remove):
  • css/MediaList.h:
  • css/MediaQueryEvaluator.cpp: (WebCore::MediaQueryEvaluator::mediaAttributeMatches):
  • css/MediaQueryExpression.cpp: (WebCore::featureWithValidIdent): (WebCore::featureWithValidDensity): (WebCore::featureWithValidPositiveLength): (WebCore::featureWithPositiveInteger): (WebCore::featureWithPositiveNumber): (WebCore::featureWithZeroOrOne): (WebCore::isFeatureValidWithoutValue): (WebCore::MediaQueryExpression::MediaQueryExpression):
  • css/MediaQueryExpression.h:
  • css/MediaQueryMatcher.cpp: (WebCore::MediaQueryMatcher::matchMedia):
  • css/MediaQueryParserContext.cpp: Added. (WebCore::MediaQueryParserContext::MediaQueryParserContext):
  • css/MediaQueryParserContext.h: Added. (WebCore::MediaQueryParserContext::MediaQueryParserContext):
  • css/StyleMedia.cpp: (WebCore::StyleMedia::matchMedium const):
  • css/StyleRuleImport.cpp: (WebCore::StyleRuleImport::StyleRuleImport): (WebCore::StyleRuleImport::setCSSStyleSheet):
  • css/parser/CSSParser.cpp: (WebCore::CSSParserContext::CSSParserContext): (WebCore::operator==):
  • css/parser/CSSParserImpl.cpp: (WebCore::CSSParserImpl::consumeImportRule): (WebCore::CSSParserImpl::consumeMediaRule):
  • css/parser/MediaQueryParser.cpp: (WebCore::MediaQueryParser::parseMediaQuerySet): (WebCore::MediaQueryParser::parseMediaCondition): (WebCore::MediaQueryParser::MediaQueryParser): (WebCore::MediaQueryData::addExpression):
  • css/parser/MediaQueryParser.h: (WebCore::MediaQueryData::setMediaQueryParserContext):
  • css/parser/SizesAttributeParser.cpp: (WebCore::SizesAttributeParser::parse):
  • dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createCSSStyleSheet):
  • dom/InlineStyleSheetOwner.cpp: (WebCore::InlineStyleSheetOwner::createSheet):
  • dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::setCSSStyleSheet):
  • html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
  • html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::process): (WebCore::HTMLLinkElement::initializeStyleSheet): (WebCore::HTMLLinkElement::setCSSStyleSheet):
  • html/HTMLLinkElement.h:
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::selectNextSourceChild):
  • html/HTMLSourceElement.cpp: (WebCore::HTMLSourceElement::parsedMediaAttribute const):
  • html/HTMLSourceElement.h:
  • html/HTMLStyleElement.cpp: (WebCore::HTMLStyleElement::parseAttribute):
  • html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

Source/WebKitLegacy/mac:

  • DOM/DOM.mm: (-[DOMHTMLLinkElement _mediaQueryMatches]):

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

2:06 PM Changeset in webkit [230183] by jmarcell@apple.com
  • 17 edits in tags/Safari-606.1.7.4/Source

Cherry-pick r229511. rdar://problem/38326388

Media query for default appearance
https://bugs.webkit.org/show_bug.cgi?id=183539
<rdar://problem/38326388>

Reviewed by Tim Horton.

Source/WebCore:

Not currently testable, will add tests in a later patch.

Write a media query to evaluate appearance.

  • css/CSSValueKeywords.in:
  • css/MediaFeatureNames.h:
  • css/MediaQueryEvaluator.cpp: (WebCore::defaultAppearanceEvaluate):
  • css/MediaQueryExpression.cpp: (WebCore::featureWithValidIdent): (WebCore::isFeatureValidWithoutValue):
  • page/Page.h: (WebCore::Page::defaultAppearance const): (WebCore::Page::setDefaultAppearance):

Source/WebKit:

Write a media query to evaluate appearance.

  • Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode const): (WebKit::WebPageCreationParameters::decode):
  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _initializeWithConfiguration:]): (-[WKWebView _setUseSystemAppearance:]):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters): (WebKit::WebPageProxy::setDefaultAppearance):
  • UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::defaultAppearance const):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::m_credentialsMessenger): (WebKit::WebPage::setDefaultAppearance):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Source/WebKitLegacy/mac:

Write a media query to evaluate appearance.

  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]): (-[WebView _setUseSystemAppearance:]):

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

2:06 PM Changeset in webkit [230182] by jmarcell@apple.com
  • 45 edits in tags/Safari-606.1.7.4/Source

Cherry-pick r229448. rdar://problem/36975642

Allow WebViews to disable system appearance
https://bugs.webkit.org/show_bug.cgi?id=183418
<rdar://problem/36975642>

Reviewed by Tim Horton.
Source/WebCore:

Not currently testable, tests will be added in a later patch.

Allow webviews to choose whether or not to follow the default system appearance.

  • css/StyleColor.cpp: (WebCore::StyleColor::colorFromKeyword):
  • css/StyleColor.h:
  • css/StyleResolver.cpp: (WebCore::StyleResolver::colorFromPrimitiveValue const):
  • css/parser/CSSParser.cpp: (WebCore::CSSParser::parseSystemColor):
  • css/parser/CSSParser.h:
  • css/parser/CSSParserMode.h:
  • html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawFocusIfNeededInternal):
  • html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::setStrokeColor): (WebCore::CanvasRenderingContext2DBase::setFillColor):
  • html/canvas/CanvasStyle.cpp: (WebCore::parseColor): (WebCore::parseColorOrCurrentColor): (WebCore::CanvasStyle::createFromString): (WebCore::CanvasStyle::createFromStringWithOverrideAlpha):
  • html/canvas/CanvasStyle.h:
  • page/Page.h: (WebCore::Page::useSystemAppearance const): (WebCore::Page::setUseSystemAppearance):
  • platform/Theme.cpp: (WebCore::Theme::paint):
  • platform/Theme.h:
  • platform/mac/LocalDefaultSystemAppearance.h:
  • platform/mac/LocalDefaultSystemAppearance.mm: (WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance): (WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):
  • platform/mac/ThemeMac.h:
  • platform/mac/ThemeMac.mm: (-[WebCoreThemeView initWithUseSystemAppearance:]): (WebCore::paintToggleButton): (WebCore::paintButton): (WebCore::ThemeMac::ensuredView): (WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext): (WebCore::ThemeMac::paint): (-[WebCoreThemeView init]): Deleted.
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::paint): (WebCore::RenderTheme::systemColor const): (WebCore::RenderTheme::focusRingColor):
  • rendering/RenderTheme.h: (WebCore::RenderTheme::platformFocusRingColor const):
  • rendering/RenderThemeIOS.mm: (WebCore::RenderThemeIOS::systemColor const):
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::documentViewFor const): (WebCore::RenderThemeMac::platformFocusRingColor const): (WebCore::RenderThemeMac::systemColor const): (WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary): (WebCore::RenderThemeMac::paintSliderThumb):
  • rendering/TextPaintStyle.cpp: (WebCore::computeTextPaintStyle):

Source/WebKit:

Allow webviews to choose whether or not to follow the default system appearance.

  • Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode const): (WebKit::WebPageCreationParameters::decode):
  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _useSystemAppearance]): (-[WKWebView _setUseSystemAppearance:]):
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters): (WebKit::WebPageProxy::setUseSystemAppearance):
  • UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::useSystemAppearance const):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setUseSystemAppearance):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Source/WebKitLegacy/mac:

Allow webviews to choose whether or not to follow the default system appearance.

  • WebView/WebView.mm: (-[WebView _setUseSystemAppearance:]): (-[WebView _useSystemAppearance]):
  • WebView/WebViewPrivate.h:

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

2:05 PM Changeset in webkit [230181] by jmarcell@apple.com
  • 2 edits in tags/Safari-606.1.7.4/Source/WebCore

Cherry-pick r229438. rdar://problem/38274894

Ensure default appearance for selection form control
https://bugs.webkit.org/show_bug.cgi?id=183482
<rdar://problem/38274894>

Reviewed by Tim Horton.

The appearance for selection form controls was not set to default.

Not currently testable, will add tests in a later patch.

  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const):

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

2:05 PM Changeset in webkit [230180] by jmarcell@apple.com
  • 2 edits in tags/Safari-606.1.7.4/Source/WebCore

Cherry-pick r229430. rdar://problem/38210306

Ensure system appearance is default for legacy webkit
https://bugs.webkit.org/show_bug.cgi?id=183473
<rdar://problem/38210306>

Reviewed by Tim Horton.

Need to set the appearance on the window for legacy webkit due to differences in drawing.

Not currently testable, will add tests in a later patch.

  • platform/mac/ThemeMac.mm: (WebCore::paintButton):

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

2:05 PM Changeset in webkit [230179] by jmarcell@apple.com
  • 4 edits
    2 adds in tags/Safari-606.1.7.4/Source/WebCore

Cherry-pick r229336. rdar://problem/36975571

Ensure system appearance is default for web content
https://bugs.webkit.org/show_bug.cgi?id=183354
<rdar://problem/36975571>
<rdar://problem/38162381>

Make sure the the system appearance for web content is default, and
consolidate that code to a single class.

Reviewed by Tim Horton.

Not currently testable, will add tests in a future patch.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/LocalDefaultSystemAppearance.h: Added.
  • platform/mac/LocalDefaultSystemAppearance.mm: Added. (WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance): (WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):
  • platform/mac/ThemeMac.mm: (-[WebCoreThemeView init]): (WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::systemColor const):

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

2:05 PM Changeset in webkit [230178] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.7.4/Source

Versioning.

1:34 PM Changeset in webkit [230177] by eric.carlson@apple.com
  • 9 edits in trunk/Source/WebCore

Define AVKit softlink macro
https://bugs.webkit.org/show_bug.cgi?id=184241

Reviewed by Jer Noble.

Source/WebCore:

No new tests, no functional change.

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
  • platform/ios/PlaybackSessionInterfaceAVKit.mm:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:
  • platform/ios/WebAVPlayerController.mm:
  • platform/mac/PlaybackSessionInterfaceMac.mm:
  • platform/mac/VideoFullscreenInterfaceMac.mm:

Source/WebCore/PAL:

  • pal/cf/CoreMediaSoftLink.h:
1:27 PM Changeset in webkit [230176] by Wenson Hsieh
  • 6 edits in trunk/Source

[Extra zoom mode] Update date picker UI to latest specifications
https://bugs.webkit.org/show_bug.cgi?id=184234
<rdar://problem/38804760>

Reviewed by Timothy Hatcher.

Source/WebCore:

Tweak localizable strings. Day, month and year labels should be fully capitalized, and there needs to be a
string for the "Set" button title.

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::datePickerSetButtonTitle):
(WebCore::datePickerDayLabelTitle):
(WebCore::datePickerMonthLabelTitle):
(WebCore::datePickerYearLabelTitle):

  • platform/LocalizedStrings.h:

Source/WebKit:

Rename WKTextFormControlListViewControllerDelegate to WKTextInputListViewControllerDelegate and adjust for the
new initializer of WKDatePickerViewController.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView presentViewControllerForCurrentAssistedNode]):

1:07 PM Changeset in webkit [230175] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

We should not trash the stack pointer on OSR entry.
https://bugs.webkit.org/show_bug.cgi?id=184243
<rdar://problem/39114319>

Reviewed by Filip Pizlo.

In the DFG OSR entry path, we momentarily over-write the stack pointer with
returnValueGPR2. returnValueGPR2 contains a pointer to a side buffer we malloc'ed.
Hence, this assignment is wrong, and it turns out to be unnecessary as well.
The stack pointer does get corrected later in the thunk (generated by
osrEntryThunkGenerator()) that we jump to. This is why we don't see ill-effects
so far.

This bug only poses an issue if interrupts use the user stack for their stack
frame (e.g. linux), and when we do stack alignment tests during debugging.

The fix is simply to remove the assignment.

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • jit/JIT.cpp:

(JSC::JIT::emitEnterOptimizationCheck):

1:05 PM Changeset in webkit [230174] by beidson@apple.com
  • 13 edits in trunk

Process swapping on navigation needs to handle server redirects.
<rdar://problem/38690465> and https://bugs.webkit.org/show_bug.cgi?id=184142

Reviewed by Alex Christensen.

Source/WebKit:

The same rules we apply to process swapping for basic navigations need to apply
to server redirects as well.

There's three interesting cases we need to support that are covered by new API tests:
1 - The initial load in a WKWebView redirects cross-origin.
2 - A WKWebView is showing content from a.com, we start a load to b.com, and that redirects to c.com
3 - A WKWebView is showing content from a.com, we start a load to a.com, that that redirects to b.com.

Supporting all 3 of these brought their own little challenges.

By teaching Navigation objects more about redirects I was able to support all 3 cases.

  • UIProcess/API/APINavigation.cpp:

(API::Navigation::Navigation):
(API::Navigation::setCurrentRequest):
(API::Navigation::appendRedirectionURL):
(API::Navigation::loggingString const):
(API::Navigation::loggingURL const): Deleted.

  • UIProcess/API/APINavigation.h:

(API::Navigation::originalRequest const):
(API::Navigation::currentRequest const):
(API::Navigation::currentRequestProcessIdentifier const):
(API::Navigation::setCurrentRequestIsRedirect):
(API::Navigation::currentRequestIsRedirect const):
(API::Navigation::request const): Deleted.

  • UIProcess/API/Cocoa/WKNavigation.mm:

(-[WKNavigation _request]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess): If this continued navigation is currently in a server

redirect, save off a lambda to synthesize a "did receive server redirect" callback once the new WebProcess is running.

(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame): Possibly ignore this notification if it is really a

cross-origin redirect that is just starting back up in a new WebProcess.

(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::resetStateAfterProcessExited): Do not clear pageLoadState if the process is exitting for

a navigation swap, as we will need to pick up where we left off when the load continues in a new WebProcess.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigation): If a process has never committed any provisional load, it can always

be used to continue a navigation.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::didCommitProvisionalLoad):
(WebKit::WebProcessProxy::hasCommittedAnyProvisionalLoads const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONNavigationDelegate webView:didFinishNavigation:]):
(-[PSONNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[PSONNavigationDelegate webView:didReceiveServerRedirectForProvisionalNavigation:]):
(-[PSONScheme addRedirectFromURLString:toURLString:]):
(-[PSONScheme webView:startURLSchemeTask:]):

12:59 PM Changeset in webkit [230173] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r228260):WebHTMLView beeps at every keydown for Chinese/Japanese/Korean Input Method
https://bugs.webkit.org/show_bug.cgi?id=184231

Reviewed by Alexey Proskuryakov.

The bug was caused by EventHandler::internalKeyEvent calling setDefaultHandled and expecting it to stay true
after dispatching the event even though m_defaultHandled is always cleared after r228260. This results in
EventHandler::internalKeyEvent returning false, and resulting in a beep.

Unfortunately, no new tests since there is no facility to detect this case in layout tests, and we can't
easily emulate or trigger a real input method in API tests.

  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent):

12:42 PM Changeset in webkit [230172] by Said Abou-Hallawa
  • 1 edit
    2 adds in trunk/LayoutTests

Followup(r230063): Add test a layout test for https://bugs.webkit.org/show_bug.cgi?id=183972
https://bugs.webkit.org/show_bug.cgi?id=184162

Reviewed by Daniel Bates.

Without r230063, running run-webkit-tests -g for this test will crash.

  • svg/dom/animated-tearoff-list-remove-target-expected.txt: Added.
  • svg/dom/animated-tearoff-list-remove-target.html: Added.
12:06 PM Changeset in webkit [230171] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[Extra zoom mode] Zoom level is sometimes excessive when zooming to focused form controls
https://bugs.webkit.org/show_bug.cgi?id=184222
<rdar://problem/39063886>

Reviewed by Timothy Hatcher.

Upon interactively focusing an element, we zoom and scroll to reveal that element. The heuristics introduced in
<https://trac.webkit.org/r168744> work by computing a target scale, and then a point to zoom to given that
scale. Currently, this scale is dependent on the computed font size of the form control, such that the form
control would be scaled to have an effective font size of 16.

However, in extra zoom mode, applying these same heuristics (ironically) results in excessive zoom levels, since
scaling the font up to 16 would cause most form controls to zoom so far in that we lose context of surrounding
elements such as labels and other form controls; the fact that the element is highlighted by the focused form
control overlay makes this even more confusing, since part of the focus overlay highlight rect often ends up
outside the viewport.

To fix this, we make a couple of tweaks to focus rect zooming in extra zoom mode. (1) Instead of computing
target zoom level based on font size, try to zoom such that the focused element rect fills up most of the
viewport (similar to double-tap zooming). This ensures that the focused form control overlay's highlight rect
makes sense in most cases, with few exceptions (e.g. the element frame is larger than the viewport). (2)
Introduce a minimum legible font size of 11, and compute the minimium scale needed such that the form control
font would appear to be at least this legible font size. Then, clamp the target scale chosen by (1) to this
minimum scale.

One additional consideration for (1) is that naively scaling to fit the element rect to the viewport (with some
fixed margins) would cause the viewport scale to always change when moving focus between form controls of
different dimensions, even if the current scale is more or less appropriate for all the focusable elements. To
address this, instead of computing a single target zoom scale for an element rect, compute a range of possible
target zoom scales (where the minimum and maximum values depend on the margin we add around the element rect).
If the current scale already falls within this target scale range, then we won't bother adjusting the scale at
all (unless the font size is too small — see (2)). If the current scale falls outside the target scale range, we
then make the minimal adjustment needed to ensure that the element rect fits well within the viewport without
being too small.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):

Move some logic around so that the target scale is computed after computing the visible size. Also renames some
constants local to this function (WKWebViewStandardFontSize, kMinimumHeightToShowContentAboveKeyboard,
UIWebFormAnimationDuration, CaretOffsetFromWindowEdge) such that they now share a consistent naming style.

12:01 PM Changeset in webkit [230170] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.7.4

New tag.

11:59 AM Changeset in webkit [230169] by jer.noble@apple.com
  • 5 edits in trunk/Source

Enable Legacy EME for all WebKit & WebKitLegacy clients
https://bugs.webkit.org/show_bug.cgi?id=184018
<rdar://problem/34887387>

Reviewed by Eric Carlson.

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

11:57 AM Changeset in webkit [230168] by jmarcell@apple.com
  • 1 delete in tags/Safari-606.1.11.3

Delete tag.

11:34 AM Changeset in webkit [230167] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

webkitpy: Use current environment value for GST_DEBUG(_FILE) and DOT_DIR env vars
https://bugs.webkit.org/show_bug.cgi?id=184036

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-04-02
Reviewed by Philippe Normand.

Those variables are for debug purpose and should not change the behaviour
itself, and developers expect them to have effect.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.setup_environ_for_server):

11:09 AM Changeset in webkit [230166] by dbates@webkit.org
  • 3 edits in trunk/Tools

Remove Options constructor and use internal linkage for option handlers
https://bugs.webkit.org/show_bug.cgi?id=184229

Reviewed by Andy Estes.

Use C++11 default initializer syntax to remove the need to explicitly have a constructor
for the struct Options. Use internal linkage for option handler functions as these
are never invoked outside the translation unit they are defined in.

  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionNoTimeout):
(WTR::handleOptionVerbose):
(WTR::handleOptionGcBetweenTests):
(WTR::handleOptionPixelTests):
(WTR::handleOptionPrintSupportedFeatures):
(WTR::handleOptionComplexText):
(WTR::handleOptionAcceleratedDrawing):
(WTR::handleOptionRemoteLayerTree):
(WTR::handleOptionShowWebView):
(WTR::handleOptionShowTouches):
(WTR::handleOptionAllowedHost):
(WTR::handleOptionUnmatched):
(WTR::Options::Options): Deleted.

  • WebKitTestRunner/Options.h:
10:51 AM Changeset in webkit [230165] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.11.3

New tag.

10:49 AM Changeset in webkit [230164] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[MIPS] Optimize JIT code generated by methods with TrustedImm32 operand
https://bugs.webkit.org/show_bug.cgi?id=183740

Patch by Stanislav Ocovaj <stanislav.ocovaj@rt-rk.com> on 2018-04-02
Reviewed by Yusuke Suzuki.

In many macro assembler methods with TrustedImm32 operand a move imm, immTemp (pseudo)instruction is
first generated and a register operand variant of the same method is called to generate the rest
of the code. If the immediate value can fit in 16 bits then we can skip the move instruction and
generate more efficient code using MIPS instructions with immediate operand.

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::slti):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::lshift32):
(JSC::MacroAssemblerMIPS::xor32):
(JSC::MacroAssemblerMIPS::branch8):
(JSC::MacroAssemblerMIPS::compare8):
(JSC::MacroAssemblerMIPS::branch32):
(JSC::MacroAssemblerMIPS::branch32WithUnalignedHalfWords):
(JSC::MacroAssemblerMIPS::branchTest32):
(JSC::MacroAssemblerMIPS::mask8OnTest):
(JSC::MacroAssemblerMIPS::branchTest8):
(JSC::MacroAssemblerMIPS::branchAdd32):
(JSC::MacroAssemblerMIPS::branchNeg32):
(JSC::MacroAssemblerMIPS::compare32):
(JSC::MacroAssemblerMIPS::test8):

10:45 AM Changeset in webkit [230163] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebKit

REGRESSION (229680): Fullscreen video does not work (youtube, netflix)
https://bugs.webkit.org/show_bug.cgi?id=184235

Reviewed by Eric Carlson.

Enable the Fullscreen API by default.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
10:44 AM Changeset in webkit [230162] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[Win] MSVC can't compile WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent
https://bugs.webkit.org/show_bug.cgi?id=184120

Reviewed by Alex Christensen.

It seems that MSVC can't compile the code using this in a
generalized lambda capture in another lambda.

In this case, there is no need to copy protectedThis for the
inner lambda. Move protectedThis of the outer lambda to the
inner as well as callback.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
Moved protectedThis from the outer lambda to the inner.

10:16 AM Changeset in webkit [230161] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit

Build fix after r230121

  • Configurations/WebKit.xcconfig: Disabled framework header postprocessing when building for iOS 11.*
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: Reverted r230159.
9:45 AM Changeset in webkit [230160] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit

Fixed the build when BOOL is not bool.
<rdar://problem/39094484>

Reviewed by Jer Noble.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController videoControlsManagerDidChange]): Removed the write-only ivar

_hasControlsManager, the assignment to which was causing the compiler error.

9:41 AM Changeset in webkit [230159] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: Update availability annotation.
8:40 AM Changeset in webkit [230158] by jer.noble@apple.com
  • 4 edits
    2 adds in trunk

AudioBufferSourceNode start method causes OfflineAudioContext to start running
https://bugs.webkit.org/show_bug.cgi?id=181939
<rdar://problem/36755393>

Reviewed by Eric Carlson.

Source/WebCore:

Test: webaudio/offlineaudiocontext-restriction.html

Don't respect playback restrictions for offline AudioContexts.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::constructCommon):

  • Modules/webaudio/AudioContext.h:

(WebCore::AudioContext::isOfflineContext const):
(WebCore::AudioContext::userGestureRequiredForAudioStart const):
(WebCore::AudioContext::pageConsentRequiredForAudioStart const):
(WebCore::AudioContext::isOfflineContext): Deleted.

LayoutTests:

  • webaudio/offlineaudiocontext-restriction-expected.txt: Added.
  • webaudio/offlineaudiocontext-restriction.html: Added.
7:55 AM Changeset in webkit [230157] by alex
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Unreviewed fixing GTK port X86 32bits compilation after r230152.

  • CMakeLists.txt:
7:42 AM Changeset in webkit [230156] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

[GTK] DragAndDropHandler.cpp should include GUniquePtrGtk.h
https://bugs.webkit.org/show_bug.cgi?id=184119

Reviewed by Daniel Bates.

  • UIProcess/gtk/DragAndDropHandler.cpp:
7:33 AM Changeset in webkit [230155] by alex
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Unreviewed fixing GTK port ARM compilation after r230152.

  • CMakeLists.txt: Properly avoid SSE implementations for ARM.
6:57 AM Changeset in webkit [230154] by alex
  • 2 edits in trunk/Tools

Unreviewed GTK port dependencies fix after r230152.

Add alsa library dependency for gtk.

  • gtk/install-dependencies:
5:45 AM Changeset in webkit [230153] by fred.wang@free.fr
  • 5 edits in trunk/Source/WebKit

Fix warnings for unused lambda captures in Source/WebKit
https://bugs.webkit.org/show_bug.cgi?id=173555

Patch by Frederic Wang <fwang@igalia.com> on 2018-04-02
Reviewed by Konstantin Tokarev.

When release logs are disabled, several lambda captures are unused, causing compilation
failures with -Wunused-lambda-capture. This patch marks the corresponding variables as unused
in order to fix these warnings.

Based on initial patch by: Konstantin Tokarev <Konstantin Tokarev>

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):

4:29 AM Changeset in webkit [230152] by commit-queue@webkit.org
  • 20 edits
    1 copy
    9 adds in trunk

[GTK] Make libwebrtc backend buildable for GTK port
https://bugs.webkit.org/show_bug.cgi?id=178860

Patch by Alejandro G. Castro <alex@igalia.com> on 2018-04-02
Reviewed by Youenn Fablet.

.:

  • Source/CMakeLists.txt: Add the libwebrtc directory to the compilation.
  • Source/cmake/OptionsGTK.cmake: Add the USE_LIBWEBRTC option to

allow compilation of the specific code.

Source/ThirdParty/libwebrtc:

Modified the cmake file and added some assembly code to the
boringssl compilation required for the linux compilation generated
by libwebrtc.

  • CMakeLists.txt: This cmake file was unused so we have modified

it completely to make it work for our port. It was originally
generated from the libwebrtc json file but not anymore. We could
change its structure at some point but current one seems a good
option for the moment.

  • Source/webrtc/base/task_queue_libevent.cc: We use system

libevent for the moment so we needed to adapt the includes in this file.

  • Source/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc:

Readded lines removed by mistake in a previous commit.

Source/WebCore:

This is the first step to add webrtc support to the GTK port using
the libwebrtc backend.

No new tests, no new feature added, it should be tested by current
tests.

  • CMakeLists.txt: Add the new files to the compilation and set the

new includes in the libwebrtc library.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

Reorder the includes alphabetically and add some that are missing.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

Ditto.

  • Sources.txt: Add new file to the compilation.
  • platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:

Added. Initial implementation for GTK and WPE.

  • platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.h:

Added. Ditto.

  • platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp:

Added. Ditto.

  • platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.h:

Added. Ditto.

  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:

Added. Ditto.

  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.h:

Added. Ditto.

  • platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:

Added. Ditto.

  • platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h:

Added. Ditto.

  • platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp: Added includes

for the compilation.

  • platform/mediastream/libwebrtc/LibWebRTCProviderGlib.h: Added, inherit from

the LibWebRTCProvider to adapt for glib.

Source/WebKit:

  • CMakeLists.txt: Add RTC network classes to the compilation and

the libwebrtc includes.

  • PlatformGTK.cmake: Add the libwebrtc directory.
  • SourcesGTK.txt: Add RTC files to the compilation.

Tools:

  • gstreamer/jhbuild.modules: Modified the libvpx module for the

libwebrtc compilation.

  • gtk/install-dependencies: Add libevent as a system requirement.
  • Scripts/webkitpy/style/checker.py: Added libwebrtc to the list of third

party libraries with reduced style checks.

2:09 AM Changeset in webkit [230151] by aakash_jain@apple.com
  • 5 edits in trunk/Websites/perf.webkit.org

Remove deprecated Buildbot 0.8 code from Perf syncing scripts
https://bugs.webkit.org/show_bug.cgi?id=183915

Reviewed by Ryosuke Niwa.

  • server-tests/resources/mock-data.js:

(MockData.buildbotBuildersURLDeprecated): Deleted.
(MockData.mockBuildbotBuildersDeprecated): Deleted.
(MockData.pendingBuildDeprecated): Deleted.
(MockData.runningBuildDeprecated): Deleted.
(MockData.finishedBuildDeprecated): Deleted.

  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntryDeprecated): Deleted.
(BuildbotBuildEntryDeprecated.prototype.initialize): Deleted.
(BuildbotBuildEntryDeprecated.prototype.url): Deleted.
(BuildbotSyncer.prototype.scheduleBuildOnBuildbotDeprecated): Deleted.
(BuildbotSyncer.prototype._pullRecentBuildsDeprecated): Deleted.
(BuildbotSyncer.prototype.pathForPendingBuildsJSONDeprecated): Deleted.
(BuildbotSyncer.prototype.pathForBuildJSONDeprecated): Deleted.
(BuildbotSyncer.prototype.pathForForceBuildDeprecated): Deleted.
(BuildbotSyncer.prototype.url): Deleted.
(BuildbotSyncer.prototype.urlForBuildNumberDeprecated): Deleted.

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable.prototype.getBuilderNameToIDMapDeprecated): Deleted.

  • unit-tests/buildbot-syncer-tests.js:

(smallPendingBuildDeprecated): Deleted.
(smallInProgressBuildDeprecated): Deleted.
(smallFinishedBuildDeprecated): Deleted.
(samplePendingBuildRequestDeprecated): Deleted.
(sampleInProgressBuildDeprecated): Deleted.
(sampleFinishedBuildDeprecated): Deleted.

12:51 AM Changeset in webkit [230150] by Yusuke Suzuki
  • 5 edits in trunk/Source/JavaScriptCore

[DFG] More aggressive removal of duplicate 32bit DFG code
https://bugs.webkit.org/show_bug.cgi?id=184089

Reviewed by Saam Barati.

This patch more aggressively removes duplicate 32bit DFG code
by leveraging JSValueRegs and meta-programmed callOperation.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValWithThis):
(JSC::DFG::SpeculativeJIT::compileArithMinMax):
(JSC::DFG::SpeculativeJIT::compileNewArray):
(JSC::DFG::SpeculativeJIT::compileCheckCell):
(JSC::DFG::SpeculativeJIT::compileGetGlobalVariable):
(JSC::DFG::SpeculativeJIT::compilePutGlobalVariable):
(JSC::DFG::SpeculativeJIT::compileGetClosureVar):
(JSC::DFG::SpeculativeJIT::compilePutClosureVar):
(JSC::DFG::SpeculativeJIT::compileGetByOffset):
(JSC::DFG::SpeculativeJIT::compilePutByOffset):
(JSC::DFG::SpeculativeJIT::compileGetExecutable):
(JSC::DFG::SpeculativeJIT::compileNewArrayBuffer):
(JSC::DFG::SpeculativeJIT::compileToThis):
(JSC::DFG::SpeculativeJIT::compileIdentity):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

Apr 1, 2018:

10:59 PM Changeset in webkit [230149] by Matt Baker
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove dead TabBrowser/TabContentView code
https://bugs.webkit.org/show_bug.cgi?id=184104

Reviewed by Devin Rousso.

  • UserInterface/Base/Main.js:

(WI._tryToRestorePendingTabs):

  • UserInterface/Views/NewTabContentView.js:

(WI.NewTabContentView.prototype.shown):
(WI.NewTabContentView.prototype.hidden):

  • UserInterface/Views/TabBrowser.js:

(WI.TabBrowser.prototype.addTabForContentView):
(WI.TabBrowser.prototype.showTabForContentView):
(WI.TabBrowser._tabBarItemRemoved):

  • UserInterface/Views/TabContentView.js:

(WI.TabContentView.prototype.get parentTabBrowser): Deleted.
(WI.TabContentView.prototype.set parentTabBrowser): Deleted.

10:03 PM Changeset in webkit [230148] by Alan Bujtas
  • 3 edits
    1 add in trunk/Tools

[LayoutReloaded] Use containing block's contentBox left edge when the float is to the right.
https://bugs.webkit.org/show_bug.cgi?id=184230

Reviewed by Antti Koivisto.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext.prototype._mapFloatingPosition):
(InlineFormattingContext):

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/inline-formatting-context-with-floats2.html: Added.
8:18 PM Changeset in webkit [230147] by Yusuke Suzuki
  • 7 edits in trunk/Source/WebCore

Use WTF::Lock instead of GMutex
https://bugs.webkit.org/show_bug.cgi?id=184227

Reviewed by Saam Barati.

Prefer WTF::Lock over GMutex since these locks are just protecting WebKit C++ fields.

No behavior change.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::AudioSourceProviderGStreamer):
(WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer):
(WebCore::AudioSourceProviderGStreamer::provideInput):
(WebCore::AudioSourceProviderGStreamer::handleAudioBuffer):
(WebCore::AudioSourceProviderGStreamer::clearAdapters):

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::paint):
(WebCore::MediaPlayerPrivateGStreamerBase::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
7:04 PM Changeset in webkit [230146] by Brent Fulgham
  • 5 edits in trunk

Show punycode if URL contains hyphen character
https://bugs.webkit.org/show_bug.cgi?id=184221
<rdar://problem/38044633>

Reviewed by Darin Adler.

Source/WebCore:

Revise our "lookalike character" logic to include the hyphen,
non-breaking hyphen, and minus sign.

Test: fast/url/host.html

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::isLookalikeCharacter):

LayoutTests:

  • fast/url/host-expected.txt:
  • fast/url/host.html:
12:46 PM Changeset in webkit [230145] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Raise the for-call inlining threshold to 190 to fix JetStream/richards regression
https://bugs.webkit.org/show_bug.cgi?id=184228

Reviewed by Yusuke Suzuki.

  • runtime/Options.h:
10:57 AM Changeset in webkit [230144] by fpizlo@apple.com
  • 54 edits in trunk/Source

JSObject shouldn't do index masking
https://bugs.webkit.org/show_bug.cgi?id=184194

Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:


Remove index masking, because it's not the way we'll mitigate Spectre.

  • API/tests/JSObjectGetProxyTargetTest.cpp:

(testJSObjectGetProxyTarget):

  • b3/B3LowerToAir.cpp:
  • b3/B3Validate.cpp:
  • b3/B3WasmBoundsCheckValue.cpp:

(JSC::B3::WasmBoundsCheckValue::WasmBoundsCheckValue):
(JSC::B3::WasmBoundsCheckValue::dumpMeta const):

  • b3/B3WasmBoundsCheckValue.h:

(JSC::B3::WasmBoundsCheckValue::bounds const):
(JSC::B3::WasmBoundsCheckValue::pinnedIndexingMask const): Deleted.

  • b3/testb3.cpp:

(JSC::B3::testWasmBoundsCheck):
(JSC::B3::run):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSSALoweringPhase.cpp:

(JSC::DFG::SSALoweringPhase::handleNode):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::loadFromIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileCreateActivation):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::compileNewStringObject):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileNewRegexp):
(JSC::DFG::SpeculativeJIT::compileCreateThis):
(JSC::DFG::SpeculativeJIT::compileNewObject):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::emitAllocateJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObjectWithKnownSize):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewRegexp):
(JSC::FTL::DFG::LowerDFGToB3::allocateObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToB3::pointerIntoTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayMask): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::maskedIndex): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::computeButterflyIndexingMask): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateJSObject):
(JSC::AssemblyHelpers::emitAllocateJSObjectWithKnownSize):
(JSC::AssemblyHelpers::emitAllocateVariableSizedJSObject):
(JSC::AssemblyHelpers::emitAllocateDestructibleObject):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_new_object):
(JSC::JIT::emit_op_create_this):

  • jit/JITOperations.cpp:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/Butterfly.h:

(JSC::ContiguousData::at const):
(JSC::ContiguousData::at):
(JSC::Butterfly::computeIndexingMask const): Deleted.

  • runtime/ButterflyInlines.h:

(JSC::ContiguousData<T>::at const): Deleted.
(JSC::ContiguousData<T>::at): Deleted.

  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::createEmpty):

  • runtime/JSArray.cpp:

(JSC::JSArray::tryCreateUninitializedRestricted):
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::setLength):
(JSC::JSArray::pop):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithAnyIndexingType):
(JSC::JSArray::fillArgList):
(JSC::JSArray::copyToArguments):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::JSArrayBufferView):

  • runtime/JSArrayInlines.h:

(JSC::JSArray::pushInline):

  • runtime/JSFixedArray.h:
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::slowDownAndWasteMemory):

  • runtime/JSObject.cpp:

(JSC::JSObject::getOwnPropertySlotByIndex):
(JSC::JSObject::putByIndex):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertUndecidedToContiguous):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToContiguous):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::createInitialForValueAndSet):
(JSC::JSObject::deletePropertyByIndex):
(JSC::JSObject::getOwnPropertyNames):
(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
(JSC::JSObject::countElements):
(JSC::JSObject::increaseVectorLength):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::reallocateAndShrinkButterfly):
(JSC::JSObject::getEnumerableLength):

  • runtime/JSObject.h:

(JSC::JSObject::canGetIndexQuickly):
(JSC::JSObject::getIndexQuickly):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::setIndexQuickly):
(JSC::JSObject::initializeIndex):
(JSC::JSObject::initializeIndexWithoutBarrier):
(JSC::JSObject::butterflyOffset):
(JSC::JSObject::setButterfly):
(JSC::JSObject::nukeStructureAndSetButterfly):
(JSC::JSObject::JSObject):
(JSC::JSObject::butterflyIndexingMaskOffset): Deleted.
(JSC::JSObject::butterflyIndexingMask const): Deleted.
(JSC::JSObject::setButterflyWithIndexingMask): Deleted.

  • runtime/JSObjectInlines.h:

(JSC::JSObject::prepareToPutDirectWithoutTransition):
(JSC::JSObject::putDirectInternal):

  • runtime/RegExpMatchesArray.h:

(JSC::tryCreateUninitializedRegExpMatchesArray):

  • runtime/Structure.cpp:

(JSC::Structure::flattenDictionaryStructure):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::load):
(JSC::Wasm::B3IRGenerator::store):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::updateCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedMemorySize):
(JSC::Wasm::Instance::offsetOfCachedIndexingMask): Deleted.

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::Memory):
(JSC::Wasm::Memory::grow):

  • wasm/WasmMemory.h:

(JSC::Wasm::Memory::size const):
(JSC::Wasm::Memory::offsetOfSize):
(JSC::Wasm::Memory::indexingMask): Deleted.
(JSC::Wasm::Memory::offsetOfIndexingMask): Deleted.

  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::PinnedRegisterInfo::PinnedRegisterInfo):

  • wasm/WasmMemoryInformation.h:

(JSC::Wasm::PinnedRegisterInfo::toSave const):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

Source/WebCore:

No new tests because no new behavior.

  • bindings/js/JSDOMConvertSequences.h:

(WebCore::Detail::NumericSequenceConverter::convertArray):
(WebCore::Detail::SequenceConverter::convertArray):

10:08 AM Changeset in webkit [230143] by fpizlo@apple.com
  • 3 edits
    2 adds in trunk

JSC crash in JIT code with for-of loop and Array/Set iterators
https://bugs.webkit.org/show_bug.cgi?id=183174

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/hoist-get-by-offset-tower-with-inferred-types.js: Added. This test shows that fixing the bug didn't break hoisting of GetByOffset with inferred types. I confirmed that if I did break it, this test slows down by >7x.

(foo):

  • stress/hoist-get-by-offset-with-control-dependent-inferred-type.js: Added. This test shows that the bug is fixed.

(f):

Source/JavaScriptCore:

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute): Fix the bug by making GetByOffset and friends verify that they are getting the type proof they want at the desired hoisting site.

9:47 AM Changeset in webkit [230142] by Alan Bujtas
  • 3 edits
    1 add in trunk/Tools

[LayoutReloaded] Right floating box reduces available line width.
https://bugs.webkit.org/show_bug.cgi?id=184226

Reviewed by Antti Koivisto.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext.prototype._createNewLine):

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/inline-with-floats-right-left-simple.html: Added.
Note: See TracTimeline for information about the timeline view.