Timeline
Apr 12, 2017:
- 11:55 PM Changeset in webkit [215316] by
-
- 52 edits in trunk
[Mac] Future-proof .xcconfig files
https://bugs.webkit.org/show_bug.cgi?id=170802
Reviewed by Tim Horton.
Source/bmalloc:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/JavaScriptCore:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
- Configurations/FeatureDefines.xcconfig:
- Configurations/Version.xcconfig:
Source/ThirdParty/ANGLE:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
- Configurations/opus.xcconfig:
Source/WebCore:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
- Configurations/FeatureDefines.xcconfig:
- Configurations/Version.xcconfig:
Source/WebCore/PAL:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
- Configurations/FeatureDefines.xcconfig:
- Configurations/Version.xcconfig:
Source/WebInspectorUI:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
- Configurations/Version.xcconfig:
Source/WebKit/mac:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
- Configurations/FeatureDefines.xcconfig:
- Configurations/Version.xcconfig:
Source/WebKit2:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
- Configurations/FeatureDefines.xcconfig:
- Configurations/Version.xcconfig:
Source/WTF:
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Tools:
- DumpRenderTree/mac/Configurations/Base.xcconfig:
- DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
- MiniBrowser/Configurations/Base.xcconfig:
- MiniBrowser/Configurations/DebugRelease.xcconfig:
- TestWebKitAPI/Configurations/Base.xcconfig:
- TestWebKitAPI/Configurations/DebugRelease.xcconfig:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- WebKitTestRunner/Configurations/Base.xcconfig:
- WebKitTestRunner/Configurations/DebugRelease.xcconfig:
- 11:38 PM Changeset in webkit [215315] by
-
- 26 edits4 adds2 deletes in trunk
QuotaExceededError when saving to localStorage in private mode.
https://bugs.webkit.org/show_bug.cgi?id=157010
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (Covered by changes to existing test).
LocalStorage in private browsing is now effectively SessionStorage.
It's ephemeral, per-tab, and copied over to tabs window.open()'ed from the current.
- loader/EmptyClients.cpp:
(WebCore::EmptyStorageNamespaceProvider::createEphemeralLocalStorageNamespace):
- page/Chrome.cpp:
(WebCore::Chrome::createWindow):
- page/Page.cpp:
(WebCore::Page::ephemeralLocalStorage):
(WebCore::Page::setEphemeralLocalStorage):
- page/Page.h:
- page/SecurityOriginData.h:
- storage/Storage.cpp:
(WebCore::Storage::length):
(WebCore::Storage::key):
(WebCore::Storage::getItem):
(WebCore::Storage::setItem):
(WebCore::Storage::removeItem):
(WebCore::Storage::clear):
(WebCore::Storage::contains):
(WebCore::Storage::isDisabledByPrivateBrowsing): Deleted.
- storage/StorageMap.h:
- storage/StorageNamespaceProvider.cpp:
(WebCore::StorageNamespaceProvider::localStorageArea):
- storage/StorageNamespaceProvider.h:
- storage/StorageType.h:
(WebCore::isLocalStorage):
(WebCore::isPersistentLocalStorage):
Source/WebKit:
- Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::close):
- Storage/StorageNamespaceImpl.h:
- Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace):
- Storage/WebStorageNamespaceProvider.h:
Source/WebKit2:
- WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):
- WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::storageArea):
(WebKit::StorageNamespaceImpl::ephemeralLocalStorageArea):
(WebKit::StorageNamespaceImpl::copy):
- WebProcess/Storage/StorageNamespaceImpl.h:
- WebProcess/Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace):
- WebProcess/Storage/WebStorageNamespaceProvider.h:
LayoutTests:
- platform/mac-wk2/TestExpectations:
- storage/domstorage/localstorage/private-browsing-affects-storage-expected.txt:
- storage/domstorage/localstorage/private-browsing-affects-storage.html:
- storage/domstorage/localstorage/resources/private-browsing-1.html: Added.
- storage/domstorage/localstorage/resources/private-browsing-2.html: Added.
- storage/domstorage/localstorage/resources/private-browsing-3.html: Added.
- storage/domstorage/localstorage/resources/private-browsing-storage-2.html: Added.
- storage/domstorage/sessionstorage/private-browsing-affects-storage-expected.txt: Removed.
- storage/domstorage/sessionstorage/private-browsing-affects-storage.html: Removed.
- 10:49 PM Changeset in webkit [215314] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] Suppress font download dialog in new matching algorithm
https://bugs.webkit.org/show_bug.cgi?id=169015
Reviewed by Alexey Proskuryakov.
Not testable.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontDatabase::lookupPostScriptName):
- 9:29 PM Changeset in webkit [215313] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed, fix build failure on Ubuntu LTS GTK bot
https://bugs.webkit.org/show_bug.cgi?id=170781
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
- 8:12 PM Changeset in webkit [215312] by
-
- 12 edits1 add in trunk
test262: test262/test/built-ins/NativeErrors/EvalError/proto.js
https://bugs.webkit.org/show_bug.cgi?id=170668
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-12
Reviewed by Keith Miller.
JSTests:
- ChakraCore.yaml:
- ChakraCore/test/Lib/error.baseline-jsc: Added.
This test does not match the spec.
- test262.yaml:
Source/JavaScriptCore:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
The Prototype of NativeError Constructor's should be the %Error%.
https://tc39.github.io/ecma262/#sec-properties-of-the-nativeerror-constructors
LayoutTests:
- ietestcenter/Javascript/15.2.3.2-2-12-expected.txt:
- ietestcenter/Javascript/15.2.3.2-2-13-expected.txt:
- ietestcenter/Javascript/15.2.3.2-2-14-expected.txt:
- ietestcenter/Javascript/15.2.3.2-2-15-expected.txt:
- ietestcenter/Javascript/15.2.3.2-2-16-expected.txt:
- ietestcenter/Javascript/15.2.3.2-2-17-expected.txt:
These tests are now out of date.
- 7:51 PM Changeset in webkit [215311] by
-
- 9 edits in trunk
test262: test262/test/language/literals/regexp/u-dec-esc.js
https://bugs.webkit.org/show_bug.cgi?id=170687
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-12
Reviewed by Michael Saboff.
JSTests:
- test262.yaml:
Source/JavaScriptCore:
- yarr/YarrParser.h:
(JSC::Yarr::Parser::parseEscape):
- yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPattern::errorMessage):
(JSC::Yarr::YarrPattern::compile):
- yarr/YarrPattern.h:
In unicoe patterns, invalid backreferences are an error.
LayoutTests:
- js/regexp-unicode-expected.txt:
- js/script-tests/regexp-unicode.js:
Extend test to test invalid backreferences.
- 7:26 PM Changeset in webkit [215310] by
-
- 6 edits2 adds in trunk/Source/JavaScriptCore
Move common stack allocation utilities out of AirAllocateStackByGraphColoring.cpp
https://bugs.webkit.org/show_bug.cgi?id=170799
Reviewed by Michael Saboff and Keith Miller.
When I added stack allocation to allocateRegistersByLinearScan, I reused a handful of
utility functions from AirAllocateStackByGraphColoring.cpp. I accomplished this by
putting their declarations in AirAllocateStackByGraphColoring.h.
That was pretty weird.
This patch moves a family of stack allocation helper functions out of
AirAllocateStackByGraphColoring.cpp and into the new AirStackAllocation.h|cpp. The
linear scan stack allocator no longer has to include the other stack allocator's
header, which addresses my OCD.
I moved the functions transitively reachable from the two functions that the linear
scan allocator needed. This forced me to give them better names (i.e. no "fooBarImpl")
and short descriptive comments. I think that such comments are useful in code that is
doing a convoluted version of some theoretical concept.
No behavior change.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
- b3/air/AirAllocateStackByGraphColoring.cpp:
(JSC::B3::Air::allocateStackByGraphColoring):
(JSC::B3::Air::allocateEscapedStackSlots): Deleted.
(JSC::B3::Air::updateFrameSizeBasedOnStackSlots): Deleted.
- b3/air/AirAllocateStackByGraphColoring.h:
- b3/air/AirStackAllocation.cpp: Added.
(JSC::B3::Air::attemptAssignment):
(JSC::B3::Air::assign):
(JSC::B3::Air::allocateAndGetEscapedStackSlotsWithoutChangingFrameSize):
(JSC::B3::Air::allocateEscapedStackSlots):
(JSC::B3::Air::updateFrameSizeBasedOnStackSlots):
- b3/air/AirStackAllocation.h: Added.
- 5:40 PM Changeset in webkit [215309] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r215242-215243): [ios-simulator] API test WebKit1.AudioSessionCategoryIOS is failing
https://bugs.webkit.org/show_bug.cgi?id=170777
<rdar://problem/31592877>
Reviewed by Jer Noble.
No new tests, fixes an existing test.
- platform/audio/cocoa/MediaSessionManagerCocoa.cpp:
(PlatformMediaSessionManager::updateSessionState): Pass parameters to lambda by reference.
- 5:36 PM Changeset in webkit [215308] by
-
- 1 copy in tags/Safari-603.2.3
Tag Safari-603.2.3.
- 5:34 PM Changeset in webkit [215307] by
-
- 1 delete in tags/Safari-603.2.3
Deleting tag.
- 4:41 PM Changeset in webkit [215306] by
-
- 7 edits in trunk/Source
Versioning.
- 4:37 PM Changeset in webkit [215305] by
-
- 1 copy in tags/Safari-604.1.17
Tag Safari-604.1.17.
- 4:07 PM Changeset in webkit [215304] by
-
- 3 edits in trunk/Source/WebKit2
[MediaStream] rename -[WKWebView _stopMediaCapture]
https://bugs.webkit.org/show_bug.cgi?id=170791
<rdar://problem/31589204>
Reviewed by Youenn Fablet.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _muteMediaCapture]):
(-[WKWebView _stopMediaCapture]): Deleted.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- 3:49 PM Changeset in webkit [215303] by
-
- 5 edits in branches/safari-603-branch/Source
Versioning.
- 3:44 PM Changeset in webkit [215302] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed build fix.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectPaymentMethod:handler:]):
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingMethod:handler:]):
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingContact:handler:]):
(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection):
(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection):
(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection):
- 3:44 PM Changeset in webkit [215301] by
-
- 6 edits in trunk/LayoutTests
Move expectation for compositing/iframes/iframe-size-from-zero.htm to top level
Unreviewed test gardening.
- TestExpectations: Marked compositing/iframes/iframe-size-from-zero.html as flaky.
- platform/ios-wk1/TestExpectations: Move test expectation to top level.
- platform/mac-wk1/TestExpectations: Ditto.
- platform/win/TestExpectations: Ditto.
- platform/wk2/TestExpectations: Ditto.
- 3:34 PM Changeset in webkit [215300] by
-
- 2 edits in trunk/Source/WebCore
[MediaStream] Set correct audio session category when capturing audio
https://bugs.webkit.org/show_bug.cgi?id=170736
<rdar://problem/31559405>
Unreviewed, update an assertion I missed in r215242.
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::PlatformMediaSession):
- 3:26 PM Changeset in webkit [215299] by
-
- 5 edits in trunk
Remove unused SharedBuffer::wrapCFDataArray
https://bugs.webkit.org/show_bug.cgi?id=170794
Reviewed by Brady Eidson.
Source/WebCore:
It's unused since r215280.
- platform/SharedBuffer.h:
- platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::wrapCFDataArray): Deleted.
Tools:
- TestWebKitAPI/Tests/WebCore/cocoa/SharedBuffer.mm:
(TestWebKitAPI::TEST_F):
- 3:23 PM Changeset in webkit [215298] by
-
- 3 edits in trunk/Source/WebKit2
[WK2] Add a C-API for creating a WKContextConfigurationRef with legacy options.
https://bugs.webkit.org/show_bug.cgi?id=170790
Reviewed by Alex Christensen.
- UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationCreate):
(WKContextConfigurationCreateWithLegacyOptions):
- UIProcess/API/C/WKContextConfigurationRef.h:
- 3:06 PM Changeset in webkit [215297] by
-
- 10 edits in trunk/Source/WebKit2
[WK2] Do not pass microphone sandbox extension to WebProcess if capturing is happening in UIProcess.
https://bugs.webkit.org/show_bug.cgi?id=170781
Reviewed by Alex Christensen.
Simultaneously, allow clients to configure whether capturing will occur in the UIProcess through
_WKProcessPoolConfiguration.
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationShouldCaptureAudioInUIProcess):
(WKContextConfigurationSetShouldCaptureAudioInUIProcess):
- UIProcess/API/C/WKContextConfigurationRef.h:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _shouldCaptureAudioInUIProcess]):
(-[WKWebViewConfiguration _setShouldCaptureAudioInUIProcess:]):
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration shouldCaptureAudioInUIProcess]):
(-[_WKProcessPoolConfiguration setShouldCaptureAudioInUIProcess:]):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
- 2:59 PM Changeset in webkit [215296] by
-
- 1 copy in tags/Safari-603.2.3
Tag Safari-603.2.3.
- 2:51 PM Changeset in webkit [215295] by
-
- 2 edits in trunk/Source/WebKit/mac
Build fix.
- WebView/WebViewData.h:
- 2:46 PM Changeset in webkit [215294] by
-
- 2 edits in trunk/Source/WebKit2
Add some missing NetworkResourceLoader logging
https://bugs.webkit.org/show_bug.cgi?id=170139
Reviewed by Alex Christensen.
Once execution enters the lambda in
NetworkResourceLoader::retrieveCacheEntry, there is little indication
of which exit point was taken. If flow enters into startNetworkLoad,
we'll get some logging from that function, but not from the others.
Add some logging so that we know what the result was from looking up
the resource in the cache.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
- 2:34 PM Changeset in webkit [215293] by
-
- 4 edits in branches/safari-603-branch
Cherry-pick r215117. rdar://problem/31512298
- 2:22 PM Changeset in webkit [215292] by
-
- 22 edits2 moves2 adds2 deletes in trunk
B3 -O1 should not allocateStackByGraphColoring
https://bugs.webkit.org/show_bug.cgi?id=170742
Reviewed by Keith Miller.
One of B3 -O1's longest running phases is allocateStackByGraphColoring. One approach to
this would be to make that phase cheaper. But it's weird that this phase reruns
liveness after register allocation already ran liveness. If only it could reuse the
liveness computed by register allocation then it would run a lot faster. At -O2, we do
not want this, since we run phases between register allocation and stack allocation,
and those phases are free to change the liveness of spill slots (in fact,
fixObviousSpills will both shorten and lengthen live ranges because of load and store
elimination, respectively). But at -O1, we don't really need to run any phases between
register and stack allocation.
This changes Air's backend in the following ways:
- Linear scan does stack allocation. This means that we don't need to run allocateStackByGraphColoring at all. In reality, we reuse some of its innards, but we don't run the expensive part of it (liveness->interference->coalescing->coloring). This is a speed-up because we only run liveness once and reuse it for both register and stack allocation.
- Phases that previously ran between register and stack allocation are taken care of, each in its own special way:
-> handleCalleSaves: this is now a utility function called by both
allocateStackByGraphColoring and allocateRegistersAndStackByLinearScan.
-> fixObviousSpills: we didn't run this at -O1, so nothing needs to be done.
-> lowerAfterRegAlloc: this needed to be able to run before stack allocation because
it could change register usage (vis a vis callee saves) and it could introduce
spill slots. I changed this phase to have a secondary mode for when it runs after
stack allocation.
- The part of allocateStackByGraphColoring that lowered stack addresses and took care of the call arg area is now a separate phase called lowerStackArgs. We run this phase regardless of optimization level. It's a cheap and general lowering.
This also removes spillEverything, because we never use that phase, we never test it,
and it got in the way in this refactoring.
This is a 21% speed-up on wasm -O1 compile times. This does not significantly change
-O1 throughput. We had already disabled allocateStack's most important optimization
(spill coalescing). This probably regresses average stack frame size, but I didn't
measure by how much. Stack frame size is really not that important. The algorithm in
allocateStackByGraphColoring is about much more than optimal frame size; it also
tries to avoid having to zero-extend 32-bit spills, it kills dead code, and of course
it coalesces.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- b3/B3Procedure.cpp:
(JSC::B3::Procedure::calleeSaveRegisterAtOffsetList):
(JSC::B3::Procedure::calleeSaveRegisters): Deleted.
- b3/B3Procedure.h:
- b3/B3StackmapGenerationParams.cpp:
(JSC::B3::StackmapGenerationParams::unavailableRegisters):
- b3/air/AirAllocateRegistersAndStackByLinearScan.cpp: Copied from Source/JavaScriptCore/b3/air/AirAllocateRegistersByLinearScan.cpp.
(JSC::B3::Air::allocateRegistersAndStackByLinearScan):
(JSC::B3::Air::allocateRegistersByLinearScan): Deleted.
- b3/air/AirAllocateRegistersAndStackByLinearScan.h: Copied from Source/JavaScriptCore/b3/air/AirAllocateRegistersByLinearScan.h.
- b3/air/AirAllocateRegistersByLinearScan.cpp: Removed.
- b3/air/AirAllocateRegistersByLinearScan.h: Removed.
- b3/air/AirAllocateStackByGraphColoring.cpp:
(JSC::B3::Air::allocateEscapedStackSlots):
(JSC::B3::Air::updateFrameSizeBasedOnStackSlots):
(JSC::B3::Air::allocateStackByGraphColoring):
- b3/air/AirAllocateStackByGraphColoring.h:
- b3/air/AirArg.cpp:
(JSC::B3::Air::Arg::stackAddr):
- b3/air/AirArg.h:
(JSC::B3::Air::Arg::stackAddr): Deleted.
- b3/air/AirCode.cpp:
(JSC::B3::Air::Code::addStackSlot):
(JSC::B3::Air::Code::setCalleeSaveRegisterAtOffsetList):
(JSC::B3::Air::Code::calleeSaveRegisterAtOffsetList):
(JSC::B3::Air::Code::dump):
- b3/air/AirCode.h:
(JSC::B3::Air::Code::setStackIsAllocated):
(JSC::B3::Air::Code::stackIsAllocated):
(JSC::B3::Air::Code::calleeSaveRegisters):
- b3/air/AirGenerate.cpp:
(JSC::B3::Air::prepareForGeneration):
(JSC::B3::Air::generate):
- b3/air/AirHandleCalleeSaves.cpp:
(JSC::B3::Air::handleCalleeSaves):
- b3/air/AirHandleCalleeSaves.h:
- b3/air/AirLowerAfterRegAlloc.cpp:
(JSC::B3::Air::lowerAfterRegAlloc):
- b3/air/AirLowerStackArgs.cpp: Added.
(JSC::B3::Air::lowerStackArgs):
- b3/air/AirLowerStackArgs.h: Added.
- b3/testb3.cpp:
(JSC::B3::testPinRegisters):
- ftl/FTLCompile.cpp:
(JSC::FTL::compile):
- jit/RegisterAtOffsetList.h:
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompile):
- 2:11 PM Changeset in webkit [215291] by
-
- 19 edits in trunk/LayoutTests
canvas/2d.gradient.* LayoutTests failing
https://bugs.webkit.org/show_bug.cgi?id=170757
<rdar://problem/31177990>
Reviewed by Antoine Quint.
Add a fudge factor to the gradient tests, since we can
now produce noisy (nicer looking) gradients. There might
be 1 or 2 bits of difference per pixel.
- canvas/philip/tests.js:
(_assertPixelWithGradientNoise):
- canvas/philip/tests/2d.gradient.linear.transform.1.html:
- canvas/philip/tests/2d.gradient.linear.transform.2.html:
- canvas/philip/tests/2d.gradient.linear.transform.3.html:
- canvas/philip/tests/2d.gradient.radial.cone.bottom.html:
- canvas/philip/tests/2d.gradient.radial.cone.cylinder.html:
- canvas/philip/tests/2d.gradient.radial.cone.front.html:
- canvas/philip/tests/2d.gradient.radial.cone.shape1.html:
- canvas/philip/tests/2d.gradient.radial.cone.top.html:
- canvas/philip/tests/2d.gradient.radial.inside1.html:
- canvas/philip/tests/2d.gradient.radial.inside2.html:
- canvas/philip/tests/2d.gradient.radial.inside3.html:
- canvas/philip/tests/2d.gradient.radial.outside1.html:
- canvas/philip/tests/2d.gradient.radial.outside2.html:
- canvas/philip/tests/2d.gradient.radial.outside3.html:
- canvas/philip/tests/2d.gradient.radial.touch2.html:
- fast/canvas/script-tests/canvas-gradient-on-compositing.js:
- fast/canvas/canvas-gradient-on-compositing-expected.html:
- 2:08 PM Changeset in webkit [215290] by
-
- 6 edits in trunk/Source
Tweak WebCore::setMetadataURL function
https://bugs.webkit.org/show_bug.cgi?id=170786
Reviewed by Beth Dakin.
Source/WebCore:
Get rid of the "referrer" parameter, it isn't used. Make the remaining parameters const. Swap the
urlString and path parameters since that makes more sense. Use String instead of NSString in the call to WKSetMetadataURL.
- platform/FileSystem.cpp:
(WebCore::setMetadataURL): Deleted.
- platform/FileSystem.h:
- platform/mac/FileSystemMac.mm:
(WebCore::setMetadataURL):
Source/WebKit2:
Update for WebCore changes.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::namesOfPromisedFilesDroppedAtDestination):
- 2:04 PM Changeset in webkit [215289] by
-
- 2 edits in trunk/Source/WebKit2
[WK2][Mac] Stop allowing access to disk arbitration process
https://bugs.webkit.org/show_bug.cgi?id=170517
<rdar://problem/31071151>
Reviewed by Alex Christensen.
- WebProcess/com.apple.WebProcess.sb.in:
- 1:55 PM Changeset in webkit [215288] by
-
- 2 edits in trunk/Source/WebKit/mac
Should always override -[WebStorageManager init].
https://bugs.webkit.org/show_bug.cgi?id=170787
-and corresponding-
rdar://problem/31371835
Reviewed by Anders Carlsson.
- Storage/WebStorageManager.mm:
(-[WebStorageManager init]):
- 1:54 PM Changeset in webkit [215287] by
-
- 20 edits2 adds in trunk
Well-known variations should clamp to the values listed in the @font-face block
https://bugs.webkit.org/show_bug.cgi?id=169260
Reviewed by Dean Jackson.
Source/WebCore:
Most of this patch is plumbing the variation ranges from the CSSFontFace object
to preparePlatformFont() where variation values get applied.
Beyond that, there is one other piece of this patch - a nonspecified value in an
@font-face block shouldn't perform any clamping, but a specified value should be
clamped. This means that we need to retain whether or not a value is specified.
This patch does this by migrating CSSFontFace from using FontSelectionCapabilities
to using FontSelectionSpecifiedCapabilities, which has its internals behind
std::optionals which represent whether or not the value was specified. For the
purposes of font selection, these unspecified values are replaced with default
values.
Test: fast/text/variations/font-face-clamp.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::font):
- css/CSSFontFace.h:
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::font):
- css/CSSFontFaceSource.h:
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
- loader/cache/CachedFont.cpp:
(WebCore::CachedFont::createFont):
(WebCore::CachedFont::platformDataFromCustomData):
- loader/cache/CachedFont.h:
- loader/cache/CachedSVGFont.cpp:
(WebCore::CachedSVGFont::createFont):
(WebCore::CachedSVGFont::platformDataFromCustomData):
- loader/cache/CachedSVGFont.h:
- platform/graphics/FontCache.cpp:
(WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
(WebCore::FontPlatformDataCacheKey::operator==):
(WebCore::FontPlatformDataCacheKeyHash::hash):
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::fontForFamily):
- platform/graphics/FontCache.h:
(WebCore::FontCache::fontForFamily):
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::createFontPlatformDataForTesting):
- platform/graphics/FontSelectionAlgorithm.h:
(WebCore::FontSelectionRange::uniqueValue):
(WebCore::FontSelectionCapabilities::operator==):
(WebCore::FontSelectionCapabilities::operator!=):
(WebCore::FontSelectionSpecifiedCapabilities::computeFontSelectionCapabilities):
(WebCore::FontSelectionSpecifiedCapabilities::operator==):
(WebCore::FontSelectionSpecifiedCapabilities::operator!=):
(WebCore::FontSelectionSpecifiedCapabilities::operator=):
(WebCore::FontSelectionSpecifiedCapabilities::computeWeight):
(WebCore::FontSelectionSpecifiedCapabilities::computeWidth):
(WebCore::FontSelectionSpecifiedCapabilities::computeSlope):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::preparePlatformFont):
(WebCore::fontWithFamily):
(WebCore::FontCache::createFontPlatformData):
(WebCore::FontCache::systemFallbackForCharacters):
- platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::lastResortFallbackFont):
- platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):
- platform/graphics/mac/FontCustomPlatformData.h:
LayoutTests:
- fast/text/variations/font-face-clamp-expected.html: Added.
- fast/text/variations/font-face-clamp.html: Added.
- 1:47 PM Changeset in webkit [215286] by
-
- 2 edits in trunk/LayoutTests
Remove two passing canvas tests from ios expectations
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 1:22 PM Changeset in webkit [215285] by
-
- 2 edits in trunk/Source/WebKit2
32-bit build fix.
- UIProcess/API/mac/WKView.mm:
(-[WKView _mediaPlaybackControlsView]):
- 1:20 PM Changeset in webkit [215284] by
-
- 2 edits in trunk/Source/WebCore
Speculative open source build fix.
- platform/spi/cocoa/AVKitSPI.h:
- 1:04 PM Changeset in webkit [215283] by
-
- 3 edits in trunk/Source/WebKit2
More 32-bit build fix.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mediaPlaybackControlsView]):
(-[WKWebView _addMediaPlaybackControlsView:]):
- UIProcess/API/mac/WKView.mm:
(-[WKView _mediaPlaybackControlsView]):
(-[WKView _addMediaPlaybackControlsView:]):
- 12:56 PM Changeset in webkit [215282] by
-
- 3 edits in trunk/Source/WebKit2
Another 32 bit build fix.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::mediaPlaybackControlsView):
- 12:49 PM Changeset in webkit [215281] by
-
- 2 edits in trunk/Source/WebKit/mac
Speculative build fix.
- WebView/WebViewData.h:
- 12:40 PM Changeset in webkit [215280] by
-
- 17 edits1 delete in trunk/Source
Stop using didReceiveDataArray callback on El Capitan
https://bugs.webkit.org/show_bug.cgi?id=170780
Reviewed by Brady Eidson.
Source/WebCore:
didReceiveDataArray was an optimization that improved performance on iOS but is not needed any more.
The only platform where this is used is El Capitan, and didReceiveData works fine on that platform.
I've left some cleanup still to be done in SharedBuffer, and doing that is the motivation for this change.
- WebCore.xcodeproj/project.pbxproj:
- loader/ResourceLoader.h:
- loader/SubresourceLoader.h:
- loader/cf/SubresourceLoaderCF.cpp: Removed.
- loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::didReceiveDataArray): Deleted.
- platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::supportsDataArray): Deleted.
(WebCore::ResourceHandleClient::didReceiveDataArray): Deleted.
- platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegate::makeConnectionClient):
(WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveDataArrayCallback): Deleted.
- platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
- platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray): Deleted.
- platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
- platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveDataArray): Deleted.
- platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
- platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveDataArray:]): Deleted.
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveDataArray:]): Deleted.
Source/WebKit2:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::supportsDataArray): Deleted.
(WebKit::NetworkLoad::didReceiveDataArray): Deleted.
- NetworkProcess/NetworkLoad.h:
- 12:28 PM Changeset in webkit [215279] by
-
- 2 edits in trunk/Source/WebKit2
Speculative build fix.
- UIProcess/API/Cocoa/WKViewPrivate.h:
- 12:17 PM Changeset in webkit [215278] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: LayoutTest webrtc/negotiatedneeded-event-addStream.html is frequently crashing
https://bugs.webkit.org/show_bug.cgi?id=170754
<rdar://problem/31573169>
Unreviewed.
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-12
- TestExpectations: Marking test as crashing.
- 12:12 PM Changeset in webkit [215277] by
-
- 2 edits in trunk/Source/WebCore
Attempted build fix.
- platform/spi/cocoa/AVKitSPI.h:
- 12:08 PM Changeset in webkit [215276] by
-
- 2 edits in branches/safari-603-branch/Source/WebKit2
Cherry-pick 214376. rdar://problem/31502340
- 12:02 PM Changeset in webkit [215275] by
-
- 2 edits in trunk/Source/WebKit2
Attempted build fix.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- 11:38 AM Changeset in webkit [215274] by
-
- 14 edits in trunk/Source
Adopt AVKit name change from AVFunctionBar* to AVTouchBar*
https://bugs.webkit.org/show_bug.cgi?id=170693
-and corresponding-
rdar://problem/31230018
Source/WebCore:
Reviewed by San Weinig.
Since the new names only apply to some versions of macOS, this patch uses typedefs
for the older OS’s. SO:
AVFunctionBarScrubber is now AVTouchBarScrubber
AVFunctionBarPlaybackControlsProvider is now AVTouchBarPlaybackControlsProvider
AVFunctionBarMediaSelectionOption is now AVTouchBarMediaSelectionOption
And the protocol AVFunctionBarPlaybackControlsControlling is now
AVTouchBarPlaybackControlsControlling
- platform/mac/WebPlaybackControlsManager.h:
- platform/mac/WebPlaybackControlsManager.mm:
(-[WebPlaybackControlsManager audioFunctionBarMediaSelectionOptions]):
(-[WebPlaybackControlsManager setAudioFunctionBarMediaSelectionOptions:]):
(-[WebPlaybackControlsManager currentAudioFunctionBarMediaSelectionOption]):
(-[WebPlaybackControlsManager setCurrentAudioFunctionBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager legibleFunctionBarMediaSelectionOptions]):
(-[WebPlaybackControlsManager setLegibleFunctionBarMediaSelectionOptions:]):
(-[WebPlaybackControlsManager currentLegibleFunctionBarMediaSelectionOption]):
(-[WebPlaybackControlsManager setCurrentLegibleFunctionBarMediaSelectionOption:]):
(mediaSelectionOptions):
Here is where the typedefs and #define are declared.
- platform/spi/cocoa/AVKitSPI.h:
Source/WebKit/mac:
Reviewed by Sam Weinig.
Since the new names only apply to some versions of macOS, this patch uses typedefs
for the older OS’s. SO:
AVFunctionBarScrubber is now AVTouchBarScrubber
AVFunctionBarPlaybackControlsProvider is now AVTouchBarPlaybackControlsProvider
AVFunctionBarMediaSelectionOption is now AVTouchBarMediaSelectionOption
And the protocol AVFunctionBarPlaybackControlsControlling is now
AVTouchBarPlaybackControlsControlling
Soft links and allocations cannot use the typedefs.
- WebView/WebView.mm:
(-[WebView updateMediaTouchBar]):
- WebView/WebViewData.h:
Source/WebKit2:
Reviewed by Sam Weinig.
Since the new names only apply to some versions of macOS, this patch uses typedefs
for the older OS’s. SO:
AVFunctionBarScrubber is now AVTouchBarScrubber
AVFunctionBarPlaybackControlsProvider is now AVTouchBarPlaybackControlsProvider
AVFunctionBarMediaSelectionOption is now AVTouchBarMediaSelectionOption
And the protocol AVFunctionBarPlaybackControlsControlling is now
AVTouchBarPlaybackControlsControlling
Use the new name.
- UIProcess/API/Cocoa/WKViewPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mediaPlaybackControlsView]):
(-[WKWebView _addMediaPlaybackControlsView:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/mac/WKView.mm:
(-[WKView _mediaPlaybackControlsView]):
(-[WKView _addMediaPlaybackControlsView:]):
- UIProcess/Cocoa/WebViewImpl.h:
Soft links and allocations cannot use the typedefs.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::mediaPlaybackControlsView):
(WebKit::WebViewImpl::updateMediaTouchBar):
- 11:10 AM Changeset in webkit [215273] by
-
- 2 edits in trunk/Source/WebKit2
[MediaStream] Audio source in UI process not identified as capture source
https://bugs.webkit.org/show_bug.cgi?id=170776
Reviewed by Youenn Fablet.
- WebProcess/cocoa/UserMediaCaptureManager.cpp: Override isCaptureSource.
- 10:35 AM Changeset in webkit [215272] by
-
- 4 edits1 add in trunk
Implement Object.isFrozen() and Object.isSealed() per ECMA spec
https://bugs.webkit.org/show_bug.cgi?id=170753
Reviewed by Mark Lam.
JSTests:
Added JSC baseline and enabled defineIndexProperty test.
Note that JSC differs from Chakra in that a JSC doesn't use indexed
properties placed on the Array prototype when sorting the indexed
properties of an Object. This is behavior is considered undefined
in the standard.
- ChakraCore.yaml:
- ChakraCore/test/es5/defineIndexProperty.baseline-jsc: Added.
Source/JavaScriptCore:
- runtime/ObjectConstructor.cpp:
(JSC::testIntegrityLevel): Added local helper as described in the ECMA standard.
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
Eliminated incomplete special handling of JSFinalObjects.
(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):
Refactored to use the new testIntegrityLevel() helper.
- 10:23 AM Changeset in webkit [215271] by
-
- 3 edits in trunk/Source/WebKit2
Allow iOS to toggle webRTCAPI legacy flag.
https://bugs.webkit.org/show_bug.cgi?id=170735
Patch by Andrew Gold <agold@apple.com> on 2017-04-12
Reviewed by Eric Carlson.
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _webRTCLegacyAPIEnabled]):
(-[WKPreferences _setWebRTCLegacyAPIEnabled:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- 10:19 AM Changeset in webkit [215270] by
-
- 7 edits in trunk/Source
Use HAVE(MACHINE_CONTEXT) instead of USE(MACHINE_CONTEXT)
https://bugs.webkit.org/show_bug.cgi?id=170770
Rubber stamped by Mark Lam.
Source/JavaScriptCore:
- heap/MachineStackMarker.cpp:
(JSC::MachineThreads::MachineThread::Registers::framePointer):
(JSC::MachineThreads::MachineThread::Registers::instructionPointer):
(JSC::MachineThreads::MachineThread::Registers::llintPC):
- runtime/MachineContext.h:
(JSC::MachineContext::stackPointer):
(JSC::MachineContext::framePointer):
(JSC::MachineContext::instructionPointer):
(JSC::MachineContext::argumentPointer<1>):
(JSC::MachineContext::llintInstructionPointer):
Source/WTF:
- wtf/Platform.h:
- wtf/PlatformRegisters.h:
- wtf/ThreadingPthreads.cpp:
(WTF::Thread::getRegisters):
- 9:59 AM Changeset in webkit [215269] by
-
- 8 edits in trunk/Source
[JSC] Clean up heap/MachineStackMarker by introducing USE(MACHINE_CONTEXT)
https://bugs.webkit.org/show_bug.cgi?id=170770
Reviewed by Mark Lam.
Source/JavaScriptCore:
We use USE(MACHINE_CONTEXT) to clean up runtime/MachineContext.h. And
we clean up heap/MachineStackMarker.cpp by using MachineContext functions.
- heap/MachineStackMarker.cpp:
(JSC::MachineThreads::MachineThread::Registers::stackPointer):
(JSC::MachineThreads::MachineThread::Registers::framePointer):
(JSC::MachineThreads::MachineThread::Registers::instructionPointer):
(JSC::MachineThreads::MachineThread::Registers::llintPC):
- heap/MachineStackMarker.h:
- runtime/MachineContext.h:
(JSC::MachineContext::stackPointer):
(JSC::MachineContext::framePointer):
(JSC::MachineContext::instructionPointer):
(JSC::MachineContext::argumentPointer<1>):
(JSC::MachineContext::llintInstructionPointer):
Source/WTF:
We add a new define USE_MACHINE_CONTEXT, which becomes true if mcontext_t exists
and we know the way to retrieve values from mcontext_t.
- wtf/Platform.h:
- wtf/PlatformRegisters.h:
- wtf/ThreadingPthreads.cpp:
(WTF::Thread::getRegisters):
- 8:52 AM Changeset in webkit [215268] by
-
- 3 edits in trunk/Source/WebCore
Fix WinCairo build after r215265
https://bugs.webkit.org/show_bug.cgi?id=170502
m_threadId was removed in the header but not in the constructor implementation.
Initializer lists are our friends.
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownloadManager::CurlDownloadManager):
(WebCore::CurlDownload::CurlDownload): Deleted.
- platform/network/curl/CurlDownload.h:
- 5:33 AM Changeset in webkit [215267] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, build fix for Win and GTK
https://bugs.webkit.org/show_bug.cgi?id=170758
- platform/posix/SharedBufferPOSIX.cpp:
(WebCore::SharedBuffer::createFromReadingFile):
- platform/win/SharedBufferWin.cpp:
(WebCore::SharedBuffer::createFromReadingFile):
- 5:16 AM Changeset in webkit [215266] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed, build fix for GTK port after r215262
https://bugs.webkit.org/show_bug.cgi?id=170758
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::didRead):
- 5:08 AM Changeset in webkit [215265] by
-
- 94 edits3 moves2 adds in trunk
[WTF] Introduce Thread class and use RefPtr<Thread> and align Windows Threading implementation semantics to Pthread one
https://bugs.webkit.org/show_bug.cgi?id=170502
Reviewed by Mark Lam.
Source/JavaScriptCore:
- API/tests/CompareAndSwapTest.cpp:
(testCompareAndSwap):
- JavaScriptCore.xcodeproj/project.pbxproj:
- b3/air/testair.cpp:
- b3/testb3.cpp:
(JSC::B3::run):
- bytecode/SuperSampler.cpp:
(JSC::initializeSuperSampler):
- dfg/DFGWorklist.cpp:
- disassembler/Disassembler.cpp:
- heap/Heap.cpp:
(JSC::Heap::lastChanceToFinalize):
(JSC::Heap::notifyIsSafeToCollect):
- heap/Heap.h:
- heap/MachineStackMarker.cpp:
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::removeThread):
(JSC::MachineThreads::removeThreadIfFound):
(JSC::MachineThreads::MachineThread::MachineThread):
(JSC::MachineThreads::MachineThread::getRegisters):
(JSC::MachineThreads::MachineThread::Registers::stackPointer):
(JSC::MachineThreads::MachineThread::Registers::framePointer):
(JSC::MachineThreads::MachineThread::Registers::instructionPointer):
(JSC::MachineThreads::MachineThread::Registers::llintPC):
(JSC::MachineThreads::MachineThread::captureStack):
(JSC::MachineThreads::tryCopyOtherThreadStack):
(JSC::MachineThreads::tryCopyOtherThreadStacks):
(pthreadSignalHandlerSuspendResume): Deleted.
(JSC::threadData): Deleted.
(JSC::MachineThreads::Thread::Thread): Deleted.
(JSC::MachineThreads::Thread::createForCurrentThread): Deleted.
(JSC::MachineThreads::Thread::operator==): Deleted.
(JSC::MachineThreads::machineThreadForCurrentThread): Deleted.
(JSC::MachineThreads::ThreadData::ThreadData): Deleted.
(JSC::MachineThreads::ThreadData::~ThreadData): Deleted.
(JSC::MachineThreads::ThreadData::suspend): Deleted.
(JSC::MachineThreads::ThreadData::resume): Deleted.
(JSC::MachineThreads::ThreadData::getRegisters): Deleted.
(JSC::MachineThreads::ThreadData::Registers::stackPointer): Deleted.
(JSC::MachineThreads::ThreadData::Registers::framePointer): Deleted.
(JSC::MachineThreads::ThreadData::Registers::instructionPointer): Deleted.
(JSC::MachineThreads::ThreadData::Registers::llintPC): Deleted.
(JSC::MachineThreads::ThreadData::freeRegisters): Deleted.
(JSC::MachineThreads::ThreadData::captureStack): Deleted.
- heap/MachineStackMarker.h:
(JSC::MachineThreads::MachineThread::suspend):
(JSC::MachineThreads::MachineThread::resume):
(JSC::MachineThreads::MachineThread::threadID):
(JSC::MachineThreads::MachineThread::stackBase):
(JSC::MachineThreads::MachineThread::stackEnd):
(JSC::MachineThreads::threadsListHead):
(JSC::MachineThreads::Thread::operator!=): Deleted.
(JSC::MachineThreads::Thread::suspend): Deleted.
(JSC::MachineThreads::Thread::resume): Deleted.
(JSC::MachineThreads::Thread::getRegisters): Deleted.
(JSC::MachineThreads::Thread::freeRegisters): Deleted.
(JSC::MachineThreads::Thread::captureStack): Deleted.
(JSC::MachineThreads::Thread::platformThread): Deleted.
(JSC::MachineThreads::Thread::stackBase): Deleted.
(JSC::MachineThreads::Thread::stackEnd): Deleted.
- jit/ICStats.cpp:
(JSC::ICStats::ICStats):
(JSC::ICStats::~ICStats):
- jit/ICStats.h:
- jsc.cpp:
(functionDollarAgentStart):
(startTimeoutThreadIfNeeded):
- runtime/JSLock.cpp:
(JSC::JSLock::lock):
- runtime/JSLock.h:
(JSC::JSLock::ownerThread):
(JSC::JSLock::currentThreadIsHoldingLock):
- runtime/SamplingProfiler.cpp:
(JSC::FrameWalker::isValidFramePointer):
(JSC::SamplingProfiler::SamplingProfiler):
(JSC::SamplingProfiler::createThreadIfNecessary):
(JSC::SamplingProfiler::takeSample):
- runtime/SamplingProfiler.h:
- runtime/VM.h:
(JSC::VM::ownerThread):
- runtime/VMTraps.cpp:
(JSC::findActiveVMAndStackBounds):
(JSC::VMTraps::SignalSender::send):
(JSC::VMTraps::fireTrap):
Source/WebCore:
Mechanical change. Use Thread:: APIs.
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::IDBServer):
- Modules/indexeddb/server/IDBServer.h:
- Modules/webaudio/AsyncAudioDecoder.cpp:
(WebCore::AsyncAudioDecoder::AsyncAudioDecoder):
(WebCore::AsyncAudioDecoder::~AsyncAudioDecoder):
(WebCore::AsyncAudioDecoder::runLoop):
- Modules/webaudio/AsyncAudioDecoder.h:
- Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::uninitialize):
(WebCore::OfflineAudioDestinationNode::startRendering):
- Modules/webaudio/OfflineAudioDestinationNode.h:
- Modules/webdatabase/Database.cpp:
(WebCore::Database::securityOrigin):
- Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::start):
(WebCore::DatabaseThread::databaseThread):
(WebCore::DatabaseThread::recordDatabaseOpen):
(WebCore::DatabaseThread::recordDatabaseClosed):
- Modules/webdatabase/DatabaseThread.h:
(WebCore::DatabaseThread::getThreadID):
- bindings/js/GCController.cpp:
(WebCore::GCController::garbageCollectOnAlternateThreadForDebugging):
- fileapi/AsyncFileStream.cpp:
(WebCore::callOnFileThread):
- loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::open):
(WebCore::IconDatabase::close):
- loader/icon/IconDatabase.h:
- page/ResourceUsageThread.cpp:
(WebCore::ResourceUsageThread::createThreadIfNeeded):
- page/ResourceUsageThread.h:
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::ScrollingThread):
(WebCore::ScrollingThread::isCurrentThread):
(WebCore::ScrollingThread::createThreadIfNeeded):
(WebCore::ScrollingThread::threadCallback):
- page/scrolling/ScrollingThread.h:
- platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::HRTFDatabaseLoader):
(WebCore::HRTFDatabaseLoader::loadAsynchronously):
(WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):
- platform/audio/HRTFDatabaseLoader.h:
- platform/audio/ReverbConvolver.cpp:
(WebCore::ReverbConvolver::ReverbConvolver):
(WebCore::ReverbConvolver::~ReverbConvolver):
- platform/audio/ReverbConvolver.h:
- platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(ResourceHandleStreamingClient::ResourceHandleStreamingClient):
(ResourceHandleStreamingClient::~ResourceHandleStreamingClient):
- platform/network/cf/LoaderRunLoopCF.cpp:
(WebCore::loaderRunLoop):
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownloadManager::startThreadIfNeeded):
(WebCore::CurlDownloadManager::stopThread):
- platform/network/curl/CurlDownload.h:
- platform/network/curl/SocketStreamHandleImpl.h:
- platform/network/curl/SocketStreamHandleImplCurl.cpp:
(WebCore::SocketStreamHandleImpl::startThread):
(WebCore::SocketStreamHandleImpl::stopThread):
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::start):
(WebCore::WorkerThread::workerThread):
- workers/WorkerThread.h:
(WebCore::WorkerThread::threadID):
Source/WebKit:
Mechanical change. Use Thread:: APIs.
- Storage/StorageThread.cpp:
(WebCore::StorageThread::StorageThread):
(WebCore::StorageThread::~StorageThread):
(WebCore::StorageThread::start):
(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):
- Storage/StorageThread.h:
Source/WebKit2:
Mechanical change. Use Thread:: APIs.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::IOChannel::readSyncInThread):
- Platform/IPC/Connection.cpp:
(IPC::Connection::processIncomingMessage):
- Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
- UIProcess/linux/MemoryPressureMonitor.cpp:
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Source/WTF:
This patch is refactoring of WTF Threading mechanism to merge JavaScriptCore's threading extension to WTF Threading.
Previously, JavaScriptCore requires richer threading features (such as suspending and resuming threads), and they
are implemented for PlatformThread in JavaScriptCore. But these features should be implemented in WTF Threading side
instead of maintaining JSC's own threading features too. This patch removes these features from JSC and move it to
WTF Threading.
However, current WTF Threading has one problem: Windows version of WTF Threading has different semantics from Pthreads
one. In Windows WTF Threading, we cannot perform any operation after the target thread is detached: WTF Threading stop
tracking the state of the thread once the thread is detached. But this is not the same to Pthreads one. In Pthreads,
pthread_detach just means that the resource of the thread will be destroyed automatically. While some operations like
pthread_join will be rejected, some operations like pthread_kill will be accepted.
The problem is that detached thread can be suspended and resumed in JSC. For example, in jsc.cpp, we start the worker
thread and detach it immediately. In worker thread, we will create VM and thus concurrent GC will suspend and resume
the detached thread. However, in Windows WTF Threading, we have no reference to the detached thread. Thus we cannot
perform suspend and resume operations onto the detached thread.
To solve the problem, we change Windows Threading mechanism drastically to align it to the Pthread semantics. In the
new Threading, we have RefPtr<Thread> class. It holds a handle to a platform thread. We can perform threading operations
with this class. For example, Thread::suspend is offered. And we use destructor of the thread local variable to release
the resources held by RefPtr<Thread>. In Windows, Thread::detach does nothing because the resource will be destroyed
automatically by RefPtr<Thread>.
To do so, we introduce ThreadHolder for Windows. This is similar to the previous ThreadIdentifierData for Pthreads.
It holds RefPtr<Thread> in the thread local storage (technically, it is Fiber Local Storage in Windows). Thread::current()
will return this reference.
The problematic situation is that the order of the deallocation of the thread local storage is not defined. So we should
not touch thread local storage in the destructor of the thread local storage. To avoid such edge cases, we have
currentThread() / Thread::currentID() APIs. They are safe to be called even in the destructor of the other thread local
storage. And in Windows, in the FLS destructor, we will create the thread_local variable to defer the destruction of
the ThreadHolder. We ensure that this destructor is called after the other FLS destructors are called in Windows 10.
This patch is performance neutral.
- WTF.xcodeproj/project.pbxproj:
- benchmarks/ConditionSpeedTest.cpp:
- benchmarks/LockFairnessTest.cpp:
- benchmarks/LockSpeedTest.cpp:
- wtf/AutomaticThread.cpp:
(WTF::AutomaticThread::start):
- wtf/CMakeLists.txt:
- wtf/MainThread.h:
- wtf/MemoryPressureHandler.h:
- wtf/ParallelJobsGeneric.cpp:
(WTF::ParallelEnvironment::ThreadPrivate::tryLockFor):
(WTF::ParallelEnvironment::ThreadPrivate::workerThread):
- wtf/ParallelJobsGeneric.h:
(WTF::ParallelEnvironment::ThreadPrivate::ThreadPrivate): Deleted.
- wtf/ParkingLot.cpp:
(WTF::ParkingLot::forEachImpl):
- wtf/ParkingLot.h:
(WTF::ParkingLot::forEach):
- wtf/PlatformRegisters.h: Renamed from Source/JavaScriptCore/runtime/PlatformThread.h.
- wtf/RefPtr.h:
(WTF::RefPtr::RefPtr):
- wtf/ThreadFunctionInvocation.h:
(WTF::ThreadFunctionInvocation::ThreadFunctionInvocation):
- wtf/ThreadHolder.cpp: Added.
(WTF::ThreadHolder::~ThreadHolder):
(WTF::ThreadHolder::initialize):
- wtf/ThreadHolder.h: Renamed from Source/WTF/wtf/ThreadIdentifierDataPthreads.h.
(WTF::ThreadHolder::thread):
(WTF::ThreadHolder::ThreadHolder):
- wtf/ThreadHolderPthreads.cpp: Renamed from Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp.
(WTF::ThreadHolder::initializeOnce):
(WTF::ThreadHolder::current):
(WTF::ThreadHolder::destruct):
- wtf/ThreadHolderWin.cpp: Added.
(WTF::threadMapMutex):
(WTF::threadMap):
(WTF::ThreadHolder::initializeOnce):
(WTF::ThreadHolder::current):
(WTF::ThreadHolder::destruct):
- wtf/ThreadSpecific.h:
- wtf/Threading.cpp:
(WTF::Thread::normalizeThreadName):
(WTF::threadEntryPoint):
(WTF::Thread::create):
(WTF::Thread::setCurrentThreadIsUserInteractive):
(WTF::Thread::setCurrentThreadIsUserInitiated):
(WTF::Thread::setGlobalMaxQOSClass):
(WTF::Thread::adjustedQOSClass):
(WTF::Thread::dump):
(WTF::initializeThreading):
(WTF::normalizeThreadName): Deleted.
(WTF::createThread): Deleted.
(WTF::setCurrentThreadIsUserInteractive): Deleted.
(WTF::setCurrentThreadIsUserInitiated): Deleted.
(WTF::setGlobalMaxQOSClass): Deleted.
(WTF::adjustedQOSClass): Deleted.
- wtf/Threading.h:
(WTF::Thread::id):
(WTF::Thread::operator==):
(WTF::Thread::operator!=):
(WTF::Thread::joinableState):
(WTF::Thread::didBecomeDetached):
(WTF::Thread::didJoin):
(WTF::Thread::hasExited):
(WTF::currentThread):
- wtf/ThreadingPthreads.cpp:
(WTF::Thread::Thread):
(WTF::Thread::~Thread):
(WTF::Thread::signalHandlerSuspendResume):
(WTF::Thread::initializePlatformThreading):
(WTF::initializeCurrentThreadEvenIfNonWTFCreated):
(WTF::wtfThreadEntryPoint):
(WTF::Thread::createInternal):
(WTF::Thread::initializeCurrentThreadInternal):
(WTF::Thread::changePriority):
(WTF::Thread::waitForCompletion):
(WTF::Thread::detach):
(WTF::Thread::current):
(WTF::Thread::currentID):
(WTF::Thread::signal):
(WTF::Thread::resume):
(WTF::Thread::getRegisters):
(WTF::Thread::didExit):
(WTF::Thread::establish):
(WTF::PthreadState::PthreadState): Deleted.
(WTF::PthreadState::joinableState): Deleted.
(WTF::PthreadState::pthreadHandle): Deleted.
(WTF::PthreadState::didBecomeDetached): Deleted.
(WTF::PthreadState::didExit): Deleted.
(WTF::PthreadState::didJoin): Deleted.
(WTF::PthreadState::hasExited): Deleted.
(WTF::threadMapMutex): Deleted.
(WTF::initializeThreading): Deleted.
(WTF::threadMap): Deleted.
(WTF::identifierByPthreadHandle): Deleted.
(WTF::establishIdentifierForPthreadHandle): Deleted.
(WTF::pthreadHandleForIdentifierWithLockAlreadyHeld): Deleted.
(WTF::createThreadInternal): Deleted.
(WTF::initializeCurrentThreadInternal): Deleted.
(WTF::changeThreadPriority): Deleted.
(WTF::waitForThreadCompletion): Deleted.
(WTF::detachThread): Deleted.
(WTF::threadDidExit): Deleted.
(WTF::currentThread): Deleted.
(WTF::signalThread): Deleted.
- wtf/ThreadingWin.cpp:
(WTF::Thread::Thread):
(WTF::Thread::~Thread):
(WTF::Thread::initializeCurrentThreadInternal):
(WTF::Thread::initializePlatformThreading):
(WTF::wtfThreadEntryPoint):
(WTF::Thread::createInternal):
(WTF::Thread::changePriority):
(WTF::Thread::waitForCompletion):
(WTF::Thread::detach):
(WTF::Thread::resume):
(WTF::Thread::getRegisters):
(WTF::Thread::current):
(WTF::Thread::currentID):
(WTF::Thread::didExit):
(WTF::Thread::establish):
(WTF::initializeCurrentThreadInternal): Deleted.
(WTF::threadMapMutex): Deleted.
(WTF::initializeThreading): Deleted.
(WTF::threadMap): Deleted.
(WTF::storeThreadHandleByIdentifier): Deleted.
(WTF::threadHandleForIdentifier): Deleted.
(WTF::clearThreadHandleForIdentifier): Deleted.
(WTF::createThreadInternal): Deleted.
(WTF::changeThreadPriority): Deleted.
(WTF::waitForThreadCompletion): Deleted.
(WTF::detachThread): Deleted.
(WTF::currentThread): Deleted.
- wtf/WorkQueue.cpp:
(WTF::WorkQueue::concurrentApply):
- wtf/WorkQueue.h:
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::dispatchQOSClass):
- wtf/generic/WorkQueueGeneric.cpp:
(WorkQueue::platformInitialize):
(WorkQueue::platformInvalidate):
- wtf/linux/MemoryPressureHandlerLinux.cpp:
(WTF::MemoryPressureHandler::EventFDPoller::EventFDPoller):
(WTF::MemoryPressureHandler::EventFDPoller::~EventFDPoller):
- wtf/win/MainThreadWin.cpp:
(WTF::initializeMainThreadPlatform):
Tools:
Mechanical change. Use Thread:: APIs.
- DumpRenderTree/JavaScriptThreading.cpp:
(runJavaScriptThread):
(startJavaScriptThreads):
(stopJavaScriptThreads):
- DumpRenderTree/mac/DumpRenderTree.mm:
(testThreadIdentifierMap):
- TestWebKitAPI/Tests/WTF/Condition.cpp:
- TestWebKitAPI/Tests/WTF/Lock.cpp:
(TestWebKitAPI::runLockTest):
- TestWebKitAPI/Tests/WTF/ParkingLot.cpp:
- 3:14 AM Changeset in webkit [215264] by
-
- 1 edit2 adds in trunk/LayoutTests
[css-grid] Replaced elements don't properly resolve percentage heights
https://bugs.webkit.org/show_bug.cgi?id=159670
Reviewed by Darin Adler.
The issue was fixed in r213149 (bug #168657), but the Blink test was not imported.
This patch only adds the test to avoid regressions in the future.
- fast/css-grid-layout/grid-item-with-percent-height-replaced-element-expected.txt: Added.
- fast/css-grid-layout/grid-item-with-percent-height-replaced-element.html: Added.
- 3:09 AM Changeset in webkit [215263] by
-
- 15 edits2 adds in trunk
Cache small media resources in disk cache
https://bugs.webkit.org/show_bug.cgi?id=170676
<rdar://problem/31532649>
Reviewed by Andreas Kling.
Source/WebCore:
Test: http/tests/cache/disk-cache/disk-cache-media-small.html
Testing support. Functional changes are in WebKit2.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):
(WebCore::HTMLMediaElement::lastMediaResourceLoaderForTesting):
- html/HTMLMediaElement.h:
- loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::MediaResourceLoader):
(WebCore::MediaResourceLoader::addResponseForTesting):
(WebCore::MediaResource::responseReceived):
- loader/MediaResourceLoader.h:
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]):
We can now receive cached responses.
- testing/Internals.cpp:
(WebCore::responseSourceToString):
(WebCore::Internals::xhrResponseSource):
(WebCore::Internals::mediaResponseSources):
(WebCore::Internals::mediaResponseContentRanges):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit2:
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeRetrieveDecision):
Allow retrieving media resources.
(WebKit::NetworkCache::expectedTotalResourceSizeFromContentRange):
(WebKit::NetworkCache::expectedTotalResourceSize):
(WebKit::NetworkCache::makeStoreDecision):
Store media resource if we can figure out its total size and it is less than 5MB
(and it is cacheable by the usual rules).
LayoutTests:
- http/tests/cache/disk-cache/disk-cache-media-small-expected.txt: Added.
- http/tests/cache/disk-cache/disk-cache-media-small.html: Added.
- 2:25 AM Changeset in webkit [215262] by
-
- 23 edits in trunk
Modernize vector adoption
https://bugs.webkit.org/show_bug.cgi?id=170758
Patch by Alex Christensen <achristensen@webkit.org> on 2017-04-12
Reviewed by Geoffrey Garen.
Source/WebCore:
- Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::extractKeyIDsKeyids):
- Modules/indexeddb/IDBGetResult.cpp:
(WebCore::IDBGetResult::dataFromBuffer):
- Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::decode):
- Modules/indexeddb/server/IDBSerialization.cpp:
(WebCore::serializeIDBKeyData):
(WebCore::decodeKey):
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
- Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::font):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::loadCache):
- loader/archive/mhtml/MHTMLParser.cpp:
(WebCore::MHTMLParser::parseNextPart):
- loader/cache/CachedFont.cpp:
(WebCore::CachedFont::createCustomFontData):
- loader/cache/CachedSVGFont.cpp:
(WebCore::CachedSVGFont::ensureCustomFontData):
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::create):
(WebCore::utf8Buffer):
(WebCore::SharedBuffer::adoptVector): Deleted.
- platform/SharedBuffer.h:
- platform/ThreadSafeDataBuffer.h:
(WebCore::ThreadSafeDataBufferImpl::ThreadSafeDataBufferImpl):
(WebCore::ThreadSafeDataBuffer::create):
(WebCore::ThreadSafeDataBuffer::ThreadSafeDataBuffer):
(WebCore::ThreadSafeDataBuffer::decode):
(): Deleted.
(WebCore::ThreadSafeDataBuffer::adoptVector): Deleted.
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::registerBlobURL):
- platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::decodeBase64):
(WebCore::DataURLDecoder::decodeEscaped):
Source/WebKit2:
- NetworkProcess/capture/NetworkCaptureEvent.cpp:
(WebKit::NetworkCapture::JSONCoder<WebCore::SharedBuffer>::decode):
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::bufferForType):
Tools:
- TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:
(TestWebKitAPI::TEST_F):
- 1:01 AM Changeset in webkit [215261] by
-
- 14 edits6 adds in trunk
Implement stroke-color CSS property.
https://bugs.webkit.org/show_bug.cgi?id=169352
Reviewed by Jon Lee.
Source/WebCore:
Support setting text stroke color using the CSS property stroke-color, see https://drafts.fxtf.org/paint/.
Text stroke color can currently be set with the -webkit-text-stroke-color property. To make sure this still
works, I added a check to determine if the stroke-color property has been explicitly set. If it has not been
set, we fall back to the value of the -webkit-text-stroke-color property.
Tests: fast/css/stroke-color-fallback.html
fast/css/stroke-color.html
fast/css/visited-link-stroke-color.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
- css/CSSProperties.json:
- css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyValueStrokeColor):
- css/StyleResolver.cpp:
(WebCore::isValidVisitedLinkProperty):
- css/parser/CSSParserFastPaths.cpp:
(WebCore::isColorPropertyID):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
- rendering/TextDecorationPainter.cpp:
(WebCore::decorationColor):
- rendering/TextPaintStyle.cpp:
(WebCore::computeTextPaintStyle):
(WebCore::computeTextSelectionPaintStyle):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline):
(WebCore::RenderStyle::colorIncludingFallback):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::strokeColor):
(WebCore::RenderStyle::setStrokeColor):
(WebCore::RenderStyle::setVisitedLinkStrokeColor):
(WebCore::RenderStyle::visitedLinkStrokeColor):
(WebCore::RenderStyle::setHasExplicitlySetStrokeColor):
(WebCore::RenderStyle::hasExplicitlySetStrokeColor):
- rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
- rendering/style/StyleRareInheritedData.h:
LayoutTests:
- fast/css/stroke-color-expected.html: Added.
- fast/css/stroke-color-fallback-expected.html: Added.
- fast/css/stroke-color-fallback.html: Added.
- fast/css/stroke-color.html: Added.
- fast/css/visited-link-stroke-color-expected.html: Added.
- fast/css/visited-link-stroke-color.html: Added.
- 12:29 AM Changeset in webkit [215260] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed GTK+ debug build fix. Drop an unused debug-only member
variable in the CompositingRunLoop class.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
Apr 11, 2017:
- 11:50 PM Changeset in webkit [215259] by
-
- 21 edits2 adds in trunk/Source
[GTK] Use the DisplayRefreshMonitor facilities
https://bugs.webkit.org/show_bug.cgi?id=170599
Reviewed by Carlos Garcia Campos.
Source/WebCore:
- CMakeLists.txt: Add missing files to the build.
- platform/graphics/DisplayRefreshMonitor.cpp: Build fixes.
(WebCore::DisplayRefreshMonitor::createDefaultDisplayRefreshMonitor):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::updatePlatformLayer): Mark the
platform layer as updated in the layer's CoordinatedGraphicsState.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
Source/WebKit2:
ThreadedCompositor gains a DisplayRefreshMonitor member that it can use
to better coordinate display refresh callbacks on the main thread. Still,
because currently the GTK+ port doesn't have a reliable way of notifying
the ThreadedCompositor of a vsync event, a timer targeting 60FPS is used
in order to keep the updates at a reasonable rate. When the timer is fired,
the ThreadedCompositor decides how to proceed based on state changes that
might have occurred during composition or whether there's any display
refresh callbacks that require handling on the main thread.
CompositingRunLoop now stores its state in an atomic variable that's then
inspected whenever a new update is scheduled or completed. When scheduled,
if there's no update in progress, a new update is requested through the
timer. If there's already an update in progress, a new update is marked
as pending after the current one completes. In that case, when the update
is completed, a new update is requested through the timer.
ThreadedDisplayRefreshMonitor is used to coordinate updates between the
main and the composition thread whenever the CoordinatedGraphics state
demands it, or whenever there are clients registered to that monitor that
require an update (e.g. a requestAnimationFrame() callback). After the
update on the composition thread is finished, and the DisplayRefreshMonitor
object requires an update, a callback at the same priority as the layer
flush timer is scheduled on the main thread. In that callback we handle
any clients registered for this DisplayRefreshMonitor before proceeding
to handle any changes to the CoordinatedGraphics scene. In case the
DisplayRefreshMonitor clients or the layer flushes already queued up
any changes to the state, we immediately ask the ThreadedCompositor for
an update.
- PlatformGTK.cmake:
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::updateViewport):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::CompositingRunLoop):
(WebKit::CompositingRunLoop::isActive):
(WebKit::CompositingRunLoop::scheduleUpdate):
(WebKit::CompositingRunLoop::stopUpdates):
(WebKit::CompositingRunLoop::updateCompleted):
(WebKit::CompositingRunLoop::updateTimerFired):
(WebKit::CompositingRunLoop::isCurrent):
(WebKit::CompositingRunLoop::startUpdateTimer): Deleted.
(WebKit::CompositingRunLoop::stopUpdateTimer): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
(): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::updateViewport):
(WebKit::ThreadedCompositor::scheduleDisplayImmediately):
(WebKit::ThreadedCompositor::renderLayerTree):
(WebKit::ThreadedCompositor::sceneUpdateFinished):
(WebKit::ThreadedCompositor::updateSceneState):
(WebKit::ThreadedCompositor::displayRefreshMonitor):
(WebKit::ThreadedCompositor::renderNextFrameIfNeeded):
(WebKit::ThreadedCompositor::completeCoordinatedUpdateIfNeeded):
(WebKit::ThreadedCompositor::coordinateUpdateCompletionWithClient):
(WebKit::ThreadedCompositor::performFrameCompletion):
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp: Added.
(WebKit::ThreadedDisplayRefreshMonitor::ThreadedDisplayRefreshMonitor):
(WebKit::ThreadedDisplayRefreshMonitor::requestRefreshCallback):
(WebKit::ThreadedDisplayRefreshMonitor::requiresDisplayRefreshCallback):
(WebKit::ThreadedDisplayRefreshMonitor::dispatchDisplayRefreshCallback):
(WebKit::ThreadedDisplayRefreshMonitor::invalidate):
(WebKit::ThreadedDisplayRefreshMonitor::displayRefreshCallback):
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.h: Copied from Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h.
- WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::createDisplayRefreshMonitor):
- WebProcess/WebPage/AcceleratedDrawingArea.h:
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::createDisplayRefreshMonitor):
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
- WebProcess/WebPage/LayerTreeHost.h:
(WebKit::LayerTreeHost::createDisplayRefreshMonitor):
Source/WTF:
- wtf/Platform.h: Enable USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR for the GTK+ port.
- wtf/glib/RunLoopSourcePriority.h: Add the DisplayRefreshMonitorTimer entry that
matches the value of LayerFlushTimer.
- 11:12 PM Changeset in webkit [215258] by
-
- 5 edits in branches/safari-603-branch
Cherry-pick 214358. rdar://problem/31502340
- 9:37 PM Changeset in webkit [215257] by
-
- 3 edits1 add in trunk/Websites/perf.webkit.org
Retrying an A/B testing does not set the repetition count in some cases
https://bugs.webkit.org/show_bug.cgi?id=170695
Reviewed by Joseph Pecoraro.
When selecting an existing A/B test group, the analysis task page automatically sets the repetition count
of its retry to be that of the original test group. However, this information wasn't being passed correctly
to the code that actually created a test group. As a result, the retried test group's repetition count does
not match that of the original group or the number shown to the user on UI.
Fixed the bug by updating this._repetitionCount in setRepetitionCount.
- browser-tests/index.html:
- browser-tests/test-group-form-tests.js: Added. Added tests.
(.createTestGroupFormWithContext): Added.
- public/v3/components/test-group-form.js:
(TestGroupForm.prototype.setRepetitionCount):
(TestGroupForm.formContent):
(TestGroupForm):
- 8:05 PM Changeset in webkit [215256] by
-
- 5 edits4 adds in trunk/Source/WebInspectorUI
Web Inspector: checkboxes in Settings screen use inappropriate layout
https://bugs.webkit.org/show_bug.cgi?id=166993
<rdar://problem/30002272>
Reviewed by Devin Rousso.
- Localizations/en.lproj/localizedStrings.js:
New checkbox setting strings.
- UserInterface/Main.html:
New settings view classes.
- UserInterface/Views/GeneralSettingsView.js: Added.
(WebInspector.GeneralSettingsView):
(WebInspector.GeneralSettingsView.prototype.initialLayout):
Move settings UI creation from SettingsTabContentView.
- UserInterface/Views/SettingEditor.js: Added.
Basic setting editor UI for the following input types: checkbox,
number, and select. In the future it may be useful to include
additional types, such as radio buttons.
(WebInspector.SettingEditor):
(WebInspector.SettingEditor.createForSetting):
(WebInspector.SettingEditor.prototype.get element):
(WebInspector.SettingEditor.prototype.get type):
(WebInspector.SettingEditor.prototype.get label):
(WebInspector.SettingEditor.prototype.get value):
(WebInspector.SettingEditor.prototype.set value):
(WebInspector.SettingEditor.prototype._createEditorElement):
- UserInterface/Views/SettingsGroup.js: Added.
A container holding editors for one or more WebInspector.Settings.
Every editor belongs to a group. SettingsView provides convenience
methods for adding settings and groups, so create instances directly
shouldn't normally be necessary.
(WebInspector.SettingsGroup):
(WebInspector.SettingsGroup.prototype.get element):
(WebInspector.SettingsGroup.prototype.addSetting):
(WebInspector.SettingsGroup.prototype.addCustomSetting):
- UserInterface/Views/SettingsTabContentView.css:
Refactored styles to more closely match Xcode settings UI.
Eliminated redundant use of "setting" from CSS class names.
(.content-view.settings):
(.content-view.settings .navigation-bar .item.radio.button.text-only):
(.content-view.settings .navigation-bar .item.radio.button.text-only.selected):
(.content-view.settings > .settings-view > .separator):
(.content-view.settings > .settings-view > .container):
(.content-view.settings > .settings-view > .container > .title):
(body[dir=ltr] .content-view.settings > .settings-view > .container > .title):
(body[dir=rtl] .content-view.settings > .settings-view > .container > .title):
(.content-view.settings > .settings-view > .container > .editor-group):
(.content-view.settings > .settings-view > .container > .editor-group > .editor input):
(.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
(body[dir=ltr] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
(body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
(.content-view.settings > .settings-view > .container > .editor-group > .editor select):
(.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
(body[dir=ltr] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
(body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
(.content-view.settings > .header): Deleted.
(.content-view.settings > .separator): Deleted.
(.content-view.settings > .setting-container): Deleted.
(.content-view.settings > .setting-container.combined): Deleted.
(.content-view.settings > .setting-container > .setting-name): Deleted.
(body[dir=ltr] .content-view.settings > .setting-container > .setting-name): Deleted.
(body[dir=rtl] .content-view.settings > .setting-container > .setting-name): Deleted.
(.content-view.settings > .setting-container > .setting-value-controller): Deleted.
(.content-view.settings > .setting-container > .setting-value-controller input): Deleted.
(.content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]): Deleted.
(body[dir=ltr] .content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]): Deleted.
(body[dir=rtl] .content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]): Deleted.
(.content-view.settings > .setting-container > .setting-value-controller select): Deleted.
(.content-view.settings > .setting-container > .setting-value-controller input[type="number"]): Deleted.
(body[dir=ltr] .content-view.settings > .setting-container > .setting-value-controller input[type="number"]): Deleted.
(body[dir=rtl] .content-view.settings > .setting-container > .setting-value-controller input[type="number"]): Deleted.
- UserInterface/Views/SettingsTabContentView.js:
To better organize the growing number of settings, multiple settings views
are now supported, with a navigation bar for switching between them. For
now there is a single "General" setting view, and and the navigation bar
is hidden. Adding a second view will cause the bar to be shown.
(WebInspector.SettingsTabContentView):
(WebInspector.SettingsTabContentView.prototype.get type):
(WebInspector.SettingsTabContentView.prototype.get selectedSettingsView):
(WebInspector.SettingsTabContentView.prototype.set selectedSettingsView):
(WebInspector.SettingsTabContentView.prototype.addSettingsView):
(WebInspector.SettingsTabContentView.prototype._navigationItemSelected):
(WebInspector.SettingsTabContentView.prototype.layout): Deleted.
No longer needed.
- UserInterface/Views/SettingsView.js: Added.
Base class for displaying editing UI for a collection of related
WebInspector.Setting objects.
(WebInspector.SettingsView):
(WebInspector.SettingsView.prototype.get identifier):
(WebInspector.SettingsView.prototype.get displayName):
A string suitable for display in a NavigationBar showing a list of
SettingsViews (e.g. "General", "Text Editing", "Fonts & Colors", etc).
(WebInspector.SettingsView.prototype.addSetting):
Add UI for a setting, consisting of a title, an editor appropriate for
the setting's value type, and optional label and formatting options.
For example:
addSetting("Setting 1:", new WebInspector.Setting(…, true), "Item one")
addSetting("Setting 2:", new WebInspector.Setting(…, 1), "units")
will create a checkbox and number input field:
Setting 1: [x] Item one
Setting 2: [ 1] units
(WebInspector.SettingsView.prototype.addCustomSetting):
Add UI for a specific editor type, with optional formatting options.
A setting can be updated in response to changes in the editor's value.
(WebInspector.SettingsView.prototype.addGroup):
Add a group, for listing multiple settings under one title. For example:
group = addGroup("Title:")
group.addSetting(new WebInspector.Setting(…, true), "Item one")
group.addSetting(new WebInspector.Setting(…, false), "Item two")
will create two checkboxes under the same title:
Title: [x] Item one
[ ] Item two
(WebInspector.SettingsView.prototype.addSeparator):
Add vertical space between two settings or groups.
- 4:24 PM Changeset in webkit [215255] by
-
- 14 edits in trunk/Source/WebKit2
Modernize and clean up code
https://bugs.webkit.org/show_bug.cgi?id=170752
Reviewed by Sam Weinig.
- NetworkProcess/NetworkResourceLoader.h:
- Shared/WebPreferencesStore.h:
- UIProcess/API/APIHitTestResult.cpp:
(API::HitTestResult::create):
- UIProcess/API/APIHitTestResult.h:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesCreate):
(WKPreferencesCreateWithIdentifier):
(WKPreferencesCreateCopy):
- UIProcess/Authentication/AuthenticationChallengeProxy.h:
- UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::createWithLegacyDefaults):
(WebKit::WebPreferences::copy):
- UIProcess/WebPreferences.h:
- WebProcess/Network/WebLoaderStrategy.h:
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::requestCheckingOfString):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::addTextCheckingRequest):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::rangeForBlockAtPoint):
(WebKit::WebPage::expandedRangeFromHandle):
(WebKit::WebPage::contractedRangeFromHandle):
(WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle):
(WebKit::WebPage::changeBlockSelection):
(WebKit::WebPage::rangeForGranularityAtPoint):
(WebKit::WebPage::computePagesForPrintingAndDrawToPDF):
- 4:03 PM Changeset in webkit [215254] by
-
- 2 edits in trunk/Source/WebCore
[Modern Media Controls] Allow modern-media-controls to be provided through WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=170722
<rdar://problem/31553089>
Patch by Antoine Quint <Antoine Quint> on 2017-04-11
Reviewed by Dean Jackson.
If modern media controls source files are provided through WebKitAdditions, use these instead
of the sources found in the WebCore module.
- WebCore.xcodeproj/project.pbxproj:
- 3:48 PM Changeset in webkit [215253] by
-
- 2 edits in trunk/LayoutTests
LayoutTest webrtc/video-mute.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=170704
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-11
Reviewed by Eric Carlson.
- webrtc/video-mute.html: Trying to make it less flaky.
- 3:47 PM Changeset in webkit [215252] by
-
- 2 edits2 adds in trunk/LayoutTests
[WK1] Add captureStream test with webrtc
https://bugs.webkit.org/show_bug.cgi?id=170746
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-11
Reviewed by Eric Carlson.
- platform/mac-wk1/TestExpectations: Activating this new test in WK1.
- webrtc/captureCanvas-webrtc-expected.txt: Added.
- webrtc/captureCanvas-webrtc.html: Added.
- 3:47 PM Changeset in webkit [215251] by
-
- 14 edits in trunk/LayoutTests
Migrating webrtc tests to latest API
https://bugs.webkit.org/show_bug.cgi?id=170709
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-11
Reviewed by Eric Carlson.
- webrtc/audio-peer-connection-webaudio.html:
- webrtc/libwebrtc/descriptionGetters.html:
- webrtc/negotiatedneeded-event-addStream.html:
- webrtc/peer-connection-audio-mute.html:
- webrtc/peer-connection-audio-mute2.html:
- webrtc/peer-connection-remote-audio-mute.html:
- webrtc/peer-connection-remote-audio-mute2.html:
- webrtc/release-after-getting-track.html:
- webrtc/video-disabled-black.html:
- webrtc/video-mute.html:
- webrtc/video-remote-mute.html:
- webrtc/video-with-receiver.html:
- webrtc/video.html:
- 2:30 PM Changeset in webkit [215250] by
-
- 12 edits in trunk
Disable outdated WritableStream API
https://bugs.webkit.org/show_bug.cgi?id=170749
<rdar://problem/31446233>
Reviewed by Tim Horton.
The API we implement is no longer accurate. Disable it until we
are compatible with the new specification
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- 1:39 PM Changeset in webkit [215249] by
-
- 4 edits in trunk
Consider the current document when allowing autoplay quirks.
https://bugs.webkit.org/show_bug.cgi?id=170744
Reviewed by Eric Carlson.
Added API test.
In addition to checking if the top-level document supports autoplay quirks, we should check
if the current document supports quirks. This allows all embedded YouTube videos (which use
iframes) to play correctly if the client allows autoplay quirks on youtube.com.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::dispatchPlayPauseEventsIfNeedsQuirks):
- 12:51 PM Changeset in webkit [215248] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r215245.
This change broke internal builds.
Reverted changeset:
"[Modern Media Controls] Allow modern-media-controls to be
provided through WebKitAdditions"
https://bugs.webkit.org/show_bug.cgi?id=170722
http://trac.webkit.org/changeset/215245
- 12:13 PM Changeset in webkit [215247] by
-
- 8 edits3 adds1 delete in trunk
[Cocoa] WebKit unnecessarily soft-links CorePrediction
https://bugs.webkit.org/show_bug.cgi?id=170644
Reviewed by Sam Weinig.
Source/WebKit2:
- Configurations/BaseTarget.xcconfig: Defined HAVE_CORE_PREDICTION and added HAVE_CORE_PREDICTION to the preprocessor defintions when the former is YES.
- Configurations/WebKit.xcconfig: Have the linker link against CorePrediction where available. On macOS, use weak linking, because CorePrediction is not available in the Base System.
- Platform/classifier/cocoa/CorePredictionSoftLink.h: Removed.
- Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.cpp: Guarded with #if HAVE(CORE_PREDICTION).
(WebKit::isNullFunctionPointer): Added this helper.
(WebKit::ResourceLoadStatisticsClassifierCocoa::canUseCorePrediction): Replaced
dlopen()-based runtime check with a null check.
- Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.h: Guarded with #if HAVE(CORE_PREDICTION).
- Platform/spi/Cocoa/CorePredictionSPI.h: Added.
- UIProcess/WebResourceLoadStatisticsStore.h: Updated guards to include HAVE(CORE_PREDICTION).
- WebKit2.xcodeproj/project.pbxproj: pdated file references for removal and addition.
WebKitLibraries:
- WebKitPrivateFrameworkStubs/iOS/10/CorePrediction.framework: Added this framework stub.
- WebKitPrivateFrameworkStubs/iOS/10/CorePrediction.framework/CorePrediction.tbd: Added.
- 11:43 AM Changeset in webkit [215246] by
-
- 11 edits3 copies3 adds in trunk
Add SPI for handling geolocation authorization requests
https://bugs.webkit.org/show_bug.cgi?id=170362
rdar://problem/17508627
Patch by David Quesada <david_quesada@apple.com> on 2017-04-11
Reviewed by Alex Christensen.
Source/WebKit2:
Add a new WKUIDelegate method for the WKGeolocationProviderIOS to call when a web page
requests geolocation access. To support testing this change, make it possible to override
the CoreLocation abstraction WKGeolocationProviderIOS uses. There is now a configurable
object on the process pool that implements a protocol for providing location updates for
web views in the process pool. If the client doesn't provide this object,
WKGeolocationProviderIOS falls back to an object that wraps the existing WebKit1
WebGeolocationCoreLocationProvider and conforms to the new protocol.
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
- Shared/WebGeolocationPosition.h:
(WebKit::WebGeolocationPosition::create):
- UIProcess/API/C/WKGeolocationPosition.cpp:
(WKGeolocationPositionCreate_b):
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _coreLocationProvider]):
(-[WKProcessPool _setCoreLocationProvider:]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/API/Cocoa/_WKGeolocationCoreLocationProvider.h: Copied from Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp.
- UIProcess/API/Cocoa/_WKGeolocationPosition.h: Copied from Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp.
- UIProcess/API/Cocoa/_WKGeolocationPosition.mm: Added.
(WebKit::if):
(-[_WKGeolocationPosition dealloc]):
(-[_WKGeolocationPosition _apiObject]):
- UIProcess/API/Cocoa/_WKGeolocationPositionInternal.h: Copied from Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp.
(WebKit::wrapper):
- UIProcess/ios/WKGeolocationProviderIOS.mm:
(kit):
(-[WKGeolocationProviderIOS initWithProcessPool:]):
(-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
(-[WKGeolocationProviderIOS positionChanged:]):
(-[WKLegacyCoreLocationProvider setListener:]):
(-[WKLegacyCoreLocationProvider requestGeolocationAuthorization]):
(-[WKLegacyCoreLocationProvider start]):
(-[WKLegacyCoreLocationProvider stop]):
(-[WKLegacyCoreLocationProvider setEnableHighAccuracy:]):
(-[WKLegacyCoreLocationProvider geolocationAuthorizationGranted]):
(-[WKLegacyCoreLocationProvider geolocationAuthorizationDenied]):
(-[WKLegacyCoreLocationProvider positionChanged:]):
(-[WKLegacyCoreLocationProvider errorOccurred:]):
(-[WKLegacyCoreLocationProvider resetGeolocation]):
Implement a new class that bridges the currently used WebGeolocationCoreLocationProvider
to conform to the _WKGeolocationCoreLocationProvider protocol that WKGeolocationProviderIOS
expects.
- WebKit2.xcodeproj/project.pbxproj:
Tools:
Add API tests for the new WKUIDelegate SPI for allowing or denying websites permission
to use geolocation. Adopt the new WKProcessPool._coreLocationProvider property to
provide a stub object to simulate the various configurations of geolocation permissions:
- The app doesn't have permission to use geolocation.
- The app is allowed to use geolocation, but the UI delegate denies the web view permission.
- The app is allowed to use geolocation, and the UI delegate allows the web view permission.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/Geolocation.mm: Added.
(-[TestCoreLocationProvider setListener:]):
(-[TestCoreLocationProvider requestGeolocationAuthorization]):
(-[TestCoreLocationProvider start]):
(-[TestCoreLocationProvider stop]):
(-[TestCoreLocationProvider setEnableHighAccuracy:]):
(expectException):
(-[GeolocationTestUIDelegate _webView:requestGeolocationAuthorizationForURL:frame:decisionHandler:]):
(-[GeolocationTestUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit2Cocoa/GeolocationGetCurrentPositionResult.html: Added.
- 11:41 AM Changeset in webkit [215245] by
-
- 2 edits in trunk/Source/WebCore
[Modern Media Controls] Allow modern-media-controls to be provided through WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=170722
<rdar://problem/31553089>
Patch by Antoine Quint <Antoine Quint> on 2017-04-11
Reviewed by Dean Jackson.
If modern media controls source files are provided through WebKitAdditions, use these instead
of the sources found in the WebCore module.
- WebCore.xcodeproj/project.pbxproj:
- 11:39 AM Changeset in webkit [215244] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, build fix for CF ports after r215241
https://bugs.webkit.org/show_bug.cgi?id=170725
- heap/GCActivityCallback.cpp:
(JSC::GCActivityCallback::nextFireTime):
- 11:29 AM Changeset in webkit [215243] by
-
- 5 edits1 add in trunk
Change autoplay state to "prevented" when media is paused due to restrictions.
https://bugs.webkit.org/show_bug.cgi?id=170686
Reviewed by Alex Christensen.
Source/WebCore:
Added API tests.
Currently, the autoplay state is set to "prevented" when playback is about to begin without
user interaction and there are restrictions in place. We should also be setting this flag when
autoplay is allowed but due to a change in audio tracks, for example, it gets paused.
This patch also moves some common logic into setPlaybackWithoutUserGesture without changing behavior.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack):
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
(WebCore::HTMLMediaElement::setPlaybackWithoutUserGesture):
(WebCore::HTMLMediaElement::updateShouldPlay):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2/autoplay-muted-with-controls.html: Added test.
- TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm:
(TEST):
- 11:27 AM Changeset in webkit [215242] by
-
- 9 edits in trunk/Source
[MediaStream] Set correct audio session category when capturing audio
https://bugs.webkit.org/show_bug.cgi?id=170736
<rdar://problem/31559405>
Reviewed by Jer Noble.
Source/WebCore:
No new tests yet, filed bug 170737.
- Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream): Initialize m_mediaSession.
(WebCore::MediaStream::statusDidChange): Call canProduceAudioChanged.
(WebCore::MediaStream::mediaType): New. Return MediaStreamCapturingAudio when actively
capturing audio.
(WebCore::MediaStream::presentationType):
(WebCore::MediaStream::characteristics):
(WebCore::MediaStream::mayResumePlayback):
(WebCore::MediaStream::suspendPlayback):
(WebCore::MediaStream::sourceApplicationIdentifier):
(WebCore::MediaStream::canProduceAudio):
- Modules/mediastream/MediaStream.h:
- platform/audio/PlatformMediaSession.h: Add MediaStreamCapturingAudio.
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::has): Adjust assert for MediaStreamCapturingAudio.
(WebCore::PlatformMediaSessionManager::count): Ditto.
- platform/audio/cocoa/MediaSessionManagerCocoa.cpp:
(PlatformMediaSessionManager::updateSessionState): Set small preferred buffer size when
capturing audio. Set audio session category to PlayAndRecord whenever there is a media
stream that is capturing audio.
Source/WebKit2:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isPlayingMediaDidChange):
- 11:25 AM Changeset in webkit [215241] by
-
- 11 edits in trunk
[WebCore][JSC] ResourceUsageData.{timeOfNextEdenCollection,timeOfNextFullCollection} should be MonotonicTime
https://bugs.webkit.org/show_bug.cgi?id=170725
Reviewed by Sam Weinig.
Source/JavaScriptCore:
This patch makes GCActivityCallback return MonotonicTime instead of raw double value.
- heap/GCActivityCallback.cpp:
(JSC::GCActivityCallback::nextFireTime):
- heap/GCActivityCallback.h:
Source/WebCore:
Use MonotonicTime instead of raw doubles.
Currently, large part of data structures and helper functions are the same in
ResourceUsageOverlayCocoa.mm and ResourceUsageOverlayLinux.cpp. This should be
unified in a separate patch.
- page/ResourceUsageData.h:
- page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::gcTimerString):
(WebCore::ResourceUsageOverlay::platformDraw):
- page/linux/ResourceUsageOverlayLinux.cpp:
(WebCore::gcTimerString):
Source/WTF:
Make MonotonicTime more constexpr friendly mainly to annotate MonotonicTime::nan() as constexpr.
- wtf/MonotonicTime.h:
(WTF::MonotonicTime::MonotonicTime):
(WTF::MonotonicTime::fromRawSeconds):
(WTF::MonotonicTime::infinity):
(WTF::MonotonicTime::nan):
(WTF::MonotonicTime::secondsSinceEpoch):
(WTF::MonotonicTime::operator bool):
(WTF::MonotonicTime::operator+):
(WTF::MonotonicTime::operator-):
(WTF::MonotonicTime::operator==):
(WTF::MonotonicTime::operator!=):
(WTF::MonotonicTime::operator<):
(WTF::MonotonicTime::operator>):
(WTF::MonotonicTime::operator<=):
(WTF::MonotonicTime::operator>=):
Tools:
- TestWebKitAPI/Tests/WTF/Time.cpp:
(TestWebKitAPI::TEST):
- 10:34 AM Changeset in webkit [215240] by
-
- 2 edits in trunk/Source/WebKit/mac
[iOS] Simple HTML documents should allow non-markup JavaScript
https://bugs.webkit.org/show_bug.cgi?id=170734
Reviewed by Sam Weinig.
- WebView/WebView.mm:
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]): Enabled scripting
but disabled scripting markup.
- 10:27 AM Changeset in webkit [215239] by
-
- 9 edits in trunk
Activate WebRTC data channel tests for WK1
https://bugs.webkit.org/show_bug.cgi?id=170710
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-11
Reviewed by Eric Carlson.
Source/WebCore:
Covered by existing and activated tests.
Making LibWebRTCProvider::factory not static.
For that purpose LibWebRTCMediaEndpoint now stores its peer connection factory reference.
Making LibWebRTCProvider use libebrtc networking by default.
Removing some no longer needed checks related to libwebrtc availability.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint):
(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::doCreateOffer):
(WebCore::LibWebRTCMediaEndpoint::doCreateAnswer):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::factory):
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
Source/WebKit2:
- WebProcess/Network/webrtc/LibWebRTCProvider.h: Making sure networking is not done in the Web process.
LayoutTests:
- platform/mac-wk1/TestExpectations:
- 10:06 AM Changeset in webkit [215238] by
-
- 53 edits in trunk
MediaStream id should be equal to msid
https://bugs.webkit.org/show_bug.cgi?id=170712
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-11
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/datachannel-emptystring-expected.txt:
- web-platform-tests/webrtc/no-media-call-expected.txt:
- web-platform-tests/webrtc/promises-call-expected.txt:
- web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt:
Source/WebCore:
Covered by rebased tests.
Setting MediaStream id to libwebrtc mediastream label.
Refactoring to use more Ref<> in MediaStream code.
Making PeerConnection use the libwebrtc backend by default for layout tests instead of the mock.
- Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create):
(WebCore::createTrackPrivateVector):
(WebCore::MediaStream::MediaStream):
- Modules/mediastream/MediaStream.h:
- Modules/mediastream/MediaStreamRegistry.cpp:
(WebCore::MediaStreamRegistry::lookUp):
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::allow):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::load):
- platform/graphics/MediaPlayer.h:
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::MediaStreamPrivate):
- platform/mediastream/MediaStreamPrivate.h:
(WebCore::MediaStreamPrivate::create):
- testing/Internals.cpp:
(WebCore::Internals::Internals):
LayoutTests:
Removing no longer needed/Adding needed calls to useMockRTCPeerConnectionFactory.
- fast/mediastream/RTCPeerConnection-inspect-answer.html:
- fast/mediastream/RTCPeerConnection-inspect-offer.html:
- fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html:
- fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html:
- fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html:
- fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html:
- fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html:
- webrtc/audio-peer-connection-webaudio.html:
- webrtc/audio-replace-track.html:
- webrtc/connection-state.html:
- webrtc/datachannel/basic.html:
- webrtc/datachannel/bufferedAmountLowThreshold.html:
- webrtc/datachannel/datachannel-gc.html:
- webrtc/datachannel/datachannel-stats.html:
- webrtc/datachannel/filter-ice-candidate.html:
- webrtc/ephemeral-certificates-and-cnames.html:
- webrtc/libwebrtc/descriptionGetters.html:
- webrtc/negotiatedneeded-event-addStream.html:
- webrtc/no-port-zero-in-upd-candidates.html:
- webrtc/peer-connection-audio-mute.html:
- webrtc/peer-connection-audio-mute2.html:
- webrtc/peer-connection-remote-audio-mute.html:
- webrtc/peer-connection-remote-audio-mute2.html:
- webrtc/release-after-getting-track.html:
- webrtc/video-disabled-black.html:
- webrtc/video-getParameters.html:
- webrtc/video-mediastreamtrack-stats.html:
- webrtc/video-mute.html:
- webrtc/video-remote-mute.html:
- webrtc/video-replace-track-to-null.html:
- webrtc/video-replace-track.html:
- webrtc/video-stats.html:
- webrtc/video-with-receiver.html:
- webrtc/video.html:
- 10:03 AM Changeset in webkit [215237] by
-
- 2 edits in trunk/Source/JavaScriptCore
[jsc] Add missing MacroAssemblerMIPS::or32() implementation
https://bugs.webkit.org/show_bug.cgi?id=169714
Patch by Guillaume Emont <guijemont@igalia.com> on 2017-04-11
Reviewed by Michael Catanzaro.
- assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::or32):
Added or32(TrustedImm32, Address).
- 10:00 AM Changeset in webkit [215236] by
-
- 6 edits in trunk
AX: Web article navigation does not work (article rotor for Facebook, Twitter, Messages etc.)
https://bugs.webkit.org/show_bug.cgi?id=170330
<rdar://problem/31366105>
Reviewed by Joanmarie Diggs.
Source/WebCore:
Add a search ability for the "article" role.
Test: accessibility/mac/search-predicate-article.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
- accessibility/AccessibilityObject.h:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(createAccessibilitySearchKeyMap):
LayoutTests:
- accessibility/mac/search-predicate-article-expected.txt:
- accessibility/mac/search-predicate-article.html:
- 9:54 AM Changeset in webkit [215235] by
-
- 7 edits in trunk
test262: test262/test/annexB/language/comments/multi-line-html-close.js
https://bugs.webkit.org/show_bug.cgi?id=170648
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-11
Reviewed by Keith Miller.
JSTests:
- test262.yaml:
Source/JavaScriptCore:
- parser/Lexer.cpp:
(JSC::Lexer<T>::lex):
A multi-line comment that contains a line terminator is itself treated
like a line terminator. An HTML Close Comment that comes after it can
therefore treat it like it is at the start of a line, because it was
immediately preceeded by the equivalent of a line terminator.
LayoutTests:
- js/parser-xml-close-comment-expected.txt:
- js/script-tests/parser-xml-close-comment.js:
Update test coverage for JavaScript HTML comments.
- 9:38 AM Changeset in webkit [215234] by
-
- 24 edits1 add in trunk
test262: test262/test/built-ins/Array/S15.4.3_A2.2.js
https://bugs.webkit.org/show_bug.cgi?id=170652
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-11
Reviewed by Michael Saboff.
JSTests:
- stress/native-constructors-length.js: Added.
(assertLengthDescriptorAttributes):
Add a quick test for the length properties of all native constructors.
- ChakraCore/test/es5/enumerable.baseline-jsc:
Rebaseline expectations for this test.
- test262.yaml:
Source/JavaScriptCore:
- runtime/ArrayConstructor.cpp:
(JSC::ArrayConstructor::finishCreation):
- runtime/BooleanConstructor.cpp:
(JSC::BooleanConstructor::finishCreation):
- runtime/DateConstructor.cpp:
(JSC::DateConstructor::finishCreation):
- runtime/FunctionConstructor.cpp:
(JSC::FunctionConstructor::finishCreation):
- runtime/JSArrayBufferConstructor.cpp:
(JSC::JSArrayBufferConstructor::finishCreation):
- runtime/NumberConstructor.cpp:
(JSC::NumberConstructor::finishCreation):
- runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::finishCreation):
- runtime/RegExpConstructor.cpp:
(JSC::RegExpConstructor::finishCreation):
- runtime/StringConstructor.cpp:
(JSC::StringConstructor::finishCreation):
- runtime/SymbolConstructor.cpp:
(JSC::SymbolConstructor::finishCreation):
Ensure the "length" property on these native constructors is configurable (deletable).
LayoutTests:
- ietestcenter/Javascript/15.2.3.3-4-186-expected.txt:
- ietestcenter/Javascript/15.2.3.3-4-191-expected.txt:
- ietestcenter/Javascript/15.2.3.3-4-194-expected.txt:
- ietestcenter/Javascript/15.2.3.3-4-201-expected.txt:
- ietestcenter/Javascript/15.3.3.2-1-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.3/S15.4.3_A2.2-expected.txt:
- sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.5/15.9.5.1_Date.prototype.constructor/S15.9.5.1_A3_T2-expected.txt:
These tests expected the opposite, they are now out of date.
- 9:26 AM Changeset in webkit [215233] by
-
- 17 edits in trunk/Source
AX: PDF plugin needs to support PDF-DOM Mode
https://bugs.webkit.org/show_bug.cgi?id=170589
Reviewed by Tim Horton.
Source/WebCore:
Provide WebCore support for accessibility connect to PDF document.
This includes the ability to connect a PDF annotation created node within WebKit to
its PDFAnnotation parent (through use of shadowPluginParent).
- accessibility/AXObjectCache.h:
- accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXPostNotificationWithUserInfo):
- accessibility/mac/WebAccessibilityObjectWrapperMac.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper shadowPluginParent]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
- html/HTMLAttributeNames.in:
- plugins/PluginViewBase.h:
(WebCore::PluginViewBase::accessibilityShadowPluginParentForElement):
Source/WebKit2:
Provide access to DOM objects with PDF document. This mean:
1) Support a different set of attributes for WKPDFPluginAccessibilityObject.
WKPDFPluginAccessibilityObject is now a group instead of forwarding attribute calls to the pdf layer.
2) Connect the focused UI element to the active annotation if possible.
3) Mark the PDF associated nodes with an attribute so they can be identified later so their correct parent can be found.
- WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:
- WebProcess/Plugins/PDF/PDFPlugin.h:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFPluginAccessibilityObject pdfLayerController]):
(-[WKPDFPluginAccessibilityObject setPdfLayerController:]):
(-[WKPDFPluginAccessibilityObject convertRectToScreenSpace:]):
(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]):
(-[WKPDFPluginAccessibilityObject accessibilityAttributeNames]):
(-[WKPDFPluginAccessibilityObject accessibilityActionNames]):
(-[WKPDFPluginAccessibilityObject accessibilityParameterizedAttributeNames]):
(-[WKPDFPluginAccessibilityObject accessibilityFocusedUIElement]):
(-[WKPDFPluginAccessibilityObject accessibilityAssociatedControlForAnnotation:]):
(-[WKPDFPluginAccessibilityObject accessibilityHitTest:]):
(WebKit::PDFPlugin::convertFromRootViewToPDFView):
(WebKit::PDFPlugin::convertFromPDFViewToScreen):
(WebKit::PDFPlugin::pluginHandlesContentOffsetForAccessibilityHitTest):
(WebKit::PDFPlugin::axObjectCache):
(WebKit::PDFPlugin::accessibilityShadowPluginParentForElement):
- WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
(WebKit::PDFPluginAnnotation::attach):
- WebProcess/Plugins/Plugin.h:
(WebKit::Plugin::accessibilityShadowPluginParentForElement):
(WebKit::Plugin::pluginHandlesContentOffsetForAccessibilityHitTest):
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::accessibilityShadowPluginParentForElement):
- WebProcess/Plugins/PluginView.h:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
- 8:59 AM Changeset in webkit [215232] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, build fix for Windows after r215228 part 2
https://bugs.webkit.org/show_bug.cgi?id=170723
Since GCActivityCallback class is annotated exported, we do not need to annotate each member.
- heap/GCActivityCallback.h:
- 8:51 AM Changeset in webkit [215231] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r215153): Request Animation Frame broken when building without REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR
https://bugs.webkit.org/show_bug.cgi?id=170719
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-04-11
Reviewed by Žan Doberšek.
This is because when not using the display refresh monitor, the timer is always used, not only when throttling,
but since r215153 the rAF timer is always aligned to 30ms.
Fixes: fast/animation/request-animation-frame-too-rapid.html
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::scheduleAnimation): Only do the timer alignment when throttling.
- 8:47 AM Changeset in webkit [215230] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, build fix for Windows port after r215228
https://bugs.webkit.org/show_bug.cgi?id=170723
- wtf/win/RunLoopWin.cpp:
(WTF::RunLoop::TimerBase::timerFired):
- 8:10 AM Changeset in webkit [215229] by
-
- 14 edits in trunk
[link preload] Double downloads of preloaded content when it's in MemoryCache
https://bugs.webkit.org/show_bug.cgi?id=170122
Reviewed by Antti Koivisto.
Source/WebCore:
No new tests, but unflaked http/tests/preload/single_download_preload_headers_charset.html.
The test was flaky because it appears as if MemoryCache is not being evicted between runs,
and running multiple iterations of the test resulted in preloaded being taken out of MemoryCache
and not having the unknown encoding flag. In those cases, the result was a double download and
a failed test.
- loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::setEncoding): Set the m_encodingSet flag.
- loader/TextResourceDecoder.h: Added an m_encodingSet flag initialized to false.
- loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::setEncoding): Assert that stylesheets don't maintain decoded text.
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::CachedResource): Remove initialization of hasUnknownEncoding flag.
- loader/cache/CachedResource.h:
(WebCore::CachedResource::hasUnknownEncoding): Remove.
(WebCore::CachedResource::setHasUnknownEncoding): Remove.
(WebCore::CachedResource::CachedResource): Remove initialization of hasUnknownEncoding flag.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy): Set the encoding in case it changed.
LayoutTests:
- TestExpectations: Removed flakiness label from the header preload charset test.
- fast/loader/cache-encoding-expected.txt: Changed expectation.
- fast/loader/cache-encoding.html: Modified behavior to stick with the first decoded string.
- http/tests/preload/preload-encoding-expected.txt: Changed expectation.
- http/tests/preload/preload-encoding.html: Modified behavior to stick with the first decoded string.
- imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-01-expected.txt: This test refers to the same file
twice and expects different decoding for it each time. This is the behavior that we modified, and therefore the test expectation is changed as well.
- 8:09 AM WebKitGTK/2.16.x edited by
- (diff)
- 8:08 AM WebKitGTK/2.16.x edited by
- (diff)
- 7:56 AM Changeset in webkit [215228] by
-
- 19 edits in trunk/Source
[JSC][GTK] Use RunLoop::Timer in GTK port
https://bugs.webkit.org/show_bug.cgi?id=170723
Reviewed by Carlos Garcia Campos.
Source/JavaScriptCore:
This patch makes GTK port use RunLoop::Timer for JSRunLoopTimer.
Only Cocoa-based ports use platform-specific Timer because it
has additional feature that changes RunLoop to the WebThread one.
And we enable Heap timers in all the ports including JSCOnly port.
- heap/EdenGCActivityCallback.cpp:
(JSC::EdenGCActivityCallback::lastGCLength):
- heap/EdenGCActivityCallback.h:
- heap/FullGCActivityCallback.cpp:
(JSC::FullGCActivityCallback::lastGCLength):
- heap/FullGCActivityCallback.h:
- heap/GCActivityCallback.cpp:
(JSC::GCActivityCallback::GCActivityCallback):
(JSC::GCActivityCallback::doWork):
(JSC::GCActivityCallback::scheduleTimer):
(JSC::GCActivityCallback::cancelTimer):
(JSC::GCActivityCallback::nextFireTime):
(JSC::GCActivityCallback::didAllocate):
- heap/GCActivityCallback.h:
- heap/IncrementalSweeper.cpp:
(JSC::IncrementalSweeper::doWork):
(JSC::IncrementalSweeper::doSweep):
- heap/IncrementalSweeper.h:
- heap/StopIfNecessaryTimer.cpp:
(JSC::StopIfNecessaryTimer::scheduleSoon):
- runtime/JSRunLoopTimer.cpp:
(JSC::JSRunLoopTimer::setRunLoop):
(JSC::JSRunLoopTimer::scheduleTimer):
(JSC::JSRunLoopTimer::cancelTimer):
(JSC::JSRunLoopTimer::JSRunLoopTimer):
(JSC::JSRunLoopTimer::~JSRunLoopTimer):
(JSC::JSRunLoopTimer::timerDidFireCallback):
- runtime/JSRunLoopTimer.h:
- runtime/PromiseDeferredTimer.cpp:
(JSC::PromiseDeferredTimer::scheduleWorkSoon):
Source/WTF:
Add secondsUntilFire method. And add setName and setPriority
for GTK RunLoop::Timer.
- wtf/RunLoop.h:
- wtf/cf/RunLoopCF.cpp:
(WTF::RunLoop::TimerBase::secondsUntilFire):
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::TimerBase::secondsUntilFire):
- wtf/glib/RunLoopGLib.cpp:
(WTF::RunLoop::TimerBase::setName):
(WTF::RunLoop::TimerBase::secondsUntilFire):
- wtf/win/RunLoopWin.cpp:
(WTF::RunLoop::TimerBase::timerFired):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::TimerBase::isActive):
(WTF::RunLoop::TimerBase::secondsUntilFire):
- 6:19 AM Changeset in webkit [215227] by
-
- 6 edits in trunk/Source/WebCore
REGRESSION(r215211): [GTK] Lots of image related tests are timing out, causing the test bot to exit early
https://bugs.webkit.org/show_bug.cgi?id=170727
Reviewed by Carlos Garcia Campos.
Since r215211 ImageDecoder::isSizeAvailable() calls encodedDataStatus() in the different decoder implementations,
and those implementations force a partial decoding of the image if the size is not available yet. But
ImageDecoder::isSizeAvailable() was already being used inside the decoders assuming that it wasn't going to
force this partial decoding. Due to this, there are some situations where the partial decoding is not
desired but it's happening anyway. For example, the check in setSize(), which causes the partial decoding
to happen again and again because no value is actually set to the animation size (which causes the timouts
in the test bot).
To avoid this, replace all the calls to ImageDecoder::isSizeAvailable() inside the decoders with calls to
ImageDecoder::encodedDataStatus(), which doesn't force the partial decoding.
Covered by existent tests.
- platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::setSize):
- platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::decodeAtIndex):
- platform/image-decoders/jpeg/JPEGImageDecoder.h:
- platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageReader::decode):
(WebCore::PNGImageDecoder::frameBufferAtIndex):
- platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::decode):
- 5:44 AM Changeset in webkit [215226] by
-
- 2 edits in trunk/Source/JavaScriptCore
[jsc][mips] Add missing MacroAssembler functions after r214187
https://bugs.webkit.org/show_bug.cgi?id=170089
Patch by Guillaume Emont <guijemont@igalia.com> on 2017-04-11
Reviewed by Yusuke Suzuki.
- assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::loadFloat): Added.
(JSC::MacroAssemblerMIPS::storeFloat): Added.
- 4:19 AM Changeset in webkit [215225] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] Attach popup menu to web view widget
https://bugs.webkit.org/show_bug.cgi?id=145866
Use gtk_menu_attach_to_widget() to let GTK+ know that popup menus belong to a certain web view.
This improves the positioning choices that the toolkit can do, and solves a long-standing issue
that caused long popup menus to hang outside of the available display area under Wayland.
Based on a patch by Jonas Ådahl <jadahl@gmail.com>.
Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2017-04-11
Reviewed by Carlos Garcia Campos.
- UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
(WebKit::WebPopupMenuProxyGtk::showPopupMenu):
- 3:22 AM Changeset in webkit [215224] by
-
- 7 edits in trunk/Source/WebCore
REGRESSION(r215211): [GTK] Lots of image related tests are crashing, causing the test bot to exit early
https://bugs.webkit.org/show_bug.cgi?id=170721
Reviewed by Carlos Garcia Campos.
r215211 caused an infinite loop because of calls between ImageDecoder::isSizeAvailable() and the specializations of
ImageDecoder::encodedDataStatus(). Change the different decoders so ImageDecoder::encodedDataStatus doesn't call
ImageDecoder::isSizeAvailable().
Covered by existent tests.
- platform/image-decoders/bmp/BMPImageDecoder.cpp:
(WebCore::BMPImageDecoder::encodedDataStatus):
- platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::encodedDataStatus):
- platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::encodedDataStatus):
- platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageDecoder::encodedDataStatus):
- platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::encodedDataStatus):
- platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::encodedDataStatus):
- 2:34 AM Changeset in webkit [215223] by
-
- 9 edits in trunk/Source
[JSC] Enable JSRunLoopTimer for JSCOnly and Windows
https://bugs.webkit.org/show_bug.cgi?id=170655
Reviewed by Carlos Garcia Campos.
Source/JavaScriptCore:
- runtime/JSRunLoopTimer.cpp:
(JSC::JSRunLoopTimer::JSRunLoopTimer):
(JSC::JSRunLoopTimer::scheduleTimer):
(JSC::JSRunLoopTimer::cancelTimer):
- runtime/JSRunLoopTimer.h:
Source/WTF:
This patch makes RunLoop::Timer in Generic and Windows thread-safe to use it
in JSC's JSRunLoopTimer. Eventually, we would like to replace JSRunLoopTimer's
platform-dependent implementation to WTF::RunLoop::Timer.
- wtf/RunLoop.h:
- wtf/cf/RunLoopCF.cpp:
(WTF::RunLoop::TimerBase::start):
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::TimerBase::ScheduledTask::EarliestSchedule::operator()):
(WTF::RunLoop::populateTasks):
(WTF::RunLoop::runImpl):
(WTF::RunLoop::schedule):
(WTF::RunLoop::scheduleAndWakeUp):
(WTF::RunLoop::TimerBase::~TimerBase):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::TimerBase::stop):
(WTF::RunLoop::TimerBase::isActive):
- wtf/glib/RunLoopGLib.cpp:
(WTF::RunLoop::TimerBase::TimerBase):
- wtf/win/RunLoopWin.cpp:
(WTF::RunLoop::TimerBase::timerFired):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::TimerBase::stop):
(WTF::RunLoop::TimerBase::isActive):
- 2:20 AM Changeset in webkit [215222] by
-
- 4 edits in trunk/LayoutTests
[css-grid] Fix fast/css-grid-layout/grid-simplified-layout-positioned.html
https://bugs.webkit.org/show_bug.cgi?id=167538
Reviewed by Darin Adler.
fast/css-grid-layout/grid-simplified-layout-positioned.html was flacky
as the caret was not always painted in the test runner.
The test was checking for a crash in simplified layout (see bug #163450)
and has nothing to do with the caret or "autofocus" behavior.
"autofocus" was needed to get the crash, so this change modifies
the test to blur the element, so the caret is not painted anymore.
- fast/css-grid-layout/grid-simplified-layout-positioned-expected.html:
Don't focus the input element.
- fast/css-grid-layout/grid-simplified-layout-positioned.html: Blur
the input element to avoid showing the caret.
- platform/mac-wk2/TestExpectations: Remove file from expectations.
- 1:29 AM Changeset in webkit [215221] by
-
- 2 edits in trunk
[CMake] OpenWebRTC libraries path isn't properly deduced
https://bugs.webkit.org/show_bug.cgi?id=170670
Reviewed by Carlos Garcia Campos.
When using OpenWebRTC installation that's outside of the usual Jhbuild
installation directories, the library paths are ignored because the
dependency libraries are simply gathered from the pkg-config file.
Instead, the pkg-config data should be used to search for the correct
paths to the header and library locations. Both libopenwebrtc and
libopenwebrtc_gst libraries are needed, so the two library paths are
concatenated into the OPENWEBRTC_LIBRARIES variable.
- Source/cmake/FindOpenWebRTC.cmake:
- 1:27 AM Changeset in webkit [215220] by
-
- 3 edits in trunk/Source/WTF
REGRESSION(r213645): It made JSC tests super slow and timeout on AArch64 Linux
https://bugs.webkit.org/show_bug.cgi?id=169510
Reviewed by Saam Barati.
Add the
volatilequalifiers for ASM statements that set up ldxr and stxr
instruction calls when HAVE(LL_SC) is enabled for aarch64 platforms.
This avoids indefinite execution when running GCC-compiled JSC on Linux.
Specific bug or expected behavior that differs from Clang wasn't determined.
HAVE(LL_SC) is re-enabled on non-Darwin aarch64 platforms.
- wtf/Atomics.h:
- wtf/Platform.h: