Timeline
Jan 24, 2017:
- 11:49 PM Changeset in webkit [211137] by
-
- 4 edits in trunk
REGRESSION (r208902): URLWithUserTypedString returns nil with file URLs
https://bugs.webkit.org/show_bug.cgi?id=167402
Source/WebCore:
<rdar://problem/29896656>
Reviewed by Ryosuke Niwa.
Covered by a new API test.
- platform/mac/WebCoreNSURLExtras.mm:
(WebCore::mapHostNameWithRange):
uidna_IDNToASCII succeeds when length is 0.
uidna_nameToASCII fails when length is 0.
This causes bad things to happen with file URLs, which have no host, so their host length is 0.
This makes us match behavior before r208902.
Tools:
Reviewed by Ryosuke Niwa.
- TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST):
- 10:30 PM Changeset in webkit [211136] by
-
- 3 edits in trunk/LayoutTests
LayoutTest media/modern-media-controls/airplay-support/airplay-support.html is failing
https://bugs.webkit.org/show_bug.cgi?id=164323
Reviewed by Jon Lee.
Make media/modern-media-controls/airplay-support/airplay-support.html more robust by following
the same pattern used in media/airplay-target-availability.html which proved to be robust.
- media/modern-media-controls/airplay-support/airplay-support.html:
- platform/mac/TestExpectations:
- 9:02 PM Changeset in webkit [211135] by
-
- 13 edits in trunk
Add simple line layout toggle to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=167405
Reviewed by Andreas Kling.
Source/WebKit/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences simpleLineLayoutEnabled]):
(-[WebPreferences setSimpleLineLayoutEnabled:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKit2:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _simpleLineLayoutEnabled]):
(-[WKPreferences _setSimpleLineLayoutEnabled:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
Tools:
- MiniBrowser/mac/SettingsController.h:
- MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleSimpleLineLayoutEnabled:]):
(-[SettingsController simpleLineLayoutEnabled]):
- MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController didChangeSettings]):
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController didChangeSettings]):
- 8:25 PM Changeset in webkit [211134] by
-
- 3 edits in trunk/Tools
WKR does not include my nick when commit-queue lands my patch
https://bugs.webkit.org/show_bug.cgi?id=167388
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-24
Reviewed by Ryosuke Niwa.
- Scripts/webkitpy/tool/commands/newcommitbot.py:
(NewCommitBot._summarize_commit_log):
- Scripts/webkitpy/tool/commands/newcommitbot_unittest.py:
Perform nickname insertion before grabbing "Patch by" details.
This way we can include the nickname with the full name.
- 8:23 PM Changeset in webkit [211133] by
-
- 36 edits in trunk
Fold USER_TIMING into WEB_TIMING and make it a RuntimeEnabledFeature
https://bugs.webkit.org/show_bug.cgi?id=167394
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-24
Reviewed by Ryosuke Niwa.
.:
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsWin.cmake:
- Source/cmake/WebKitFeatures.cmake:
- Source/cmake/tools/vsprops/FeatureDefines.props:
- Source/cmake/tools/vsprops/FeatureDefinesCairo.props:
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
- runtime/CommonIdentifiers.h:
Source/WebCore:
All of the Performance Timing specifications are highly coupled.
So let make WEB_TIMING encompass them all:
- High Resolution Time (window.performance)
- Performance Timeline (PerformanceEntry, PerformanceObserver)
- Navigation Timing ("navigation" entries)
- Resource Timing ("resource" entries)
- User Timing ("mark" / "measure" entries)
We can then turn on and off individual pieces as runtime features,
such as Resource Timing, User Timing, and Performance Observer.
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
Add User Timing files that are now included in WEB_TIMING builds.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setUserTimingEnabled):
(WebCore::RuntimeEnabledFeatures::userTimingEnabled):
Add a runtime feature for user timing. Disabled by default.
- Configurations/FeatureDefines.xcconfig:
- PAL/Configurations/FeatureDefines.xcconfig:
- bindings/js/JSPerformanceEntryCustom.cpp:
(WebCore::toJSNewlyCreated):
- page/Performance.cpp:
(WebCore::Performance::getEntries):
(WebCore::Performance::getEntriesByType):
(WebCore::Performance::getEntriesByName):
(WebCore::Performance::mark):
(WebCore::Performance::clearMarks):
(WebCore::Performance::measure):
(WebCore::Performance::clearMeasures):
(WebCore::Performance::webkitMark): Deleted.
(WebCore::Performance::webkitClearMarks): Deleted.
(WebCore::Performance::webkitMeasure): Deleted.
(WebCore::Performance::webkitClearMeasures): Deleted.
- page/Performance.h:
- page/Performance.idl:
- page/PerformanceMark.h:
- page/PerformanceMark.idl:
- page/PerformanceMeasure.h:
- page/PerformanceMeasure.idl:
- page/PerformanceUserTiming.cpp:
- page/PerformanceUserTiming.h:
Convert USER_TIMING to WEB_TIMING.
Drop webkit prefixed legacy names.
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Source/WTF:
- wtf/FeatureDefines.h:
Tools:
- Scripts/webkitperl/FeatureList.pm:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
LayoutTests:
- platform/gtk/fast/dom/Window/window-properties-performance-expected.txt:
Although this test is skipped on gtk, update the results.
- 6:59 PM Changeset in webkit [211132] by
-
- 4 edits in trunk/LayoutTests
LayoutTest media/modern-media-controls/placard-support/placard-support-airplay.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=164298
Patch by Antoine Quint <Antoine Quint> on 2017-01-24
Reviewed by Jon Lee.
Make media/modern-media-controls/placard-support/placard-support-airplay.html more robust by
following the same pattern used in media/airplay-target-availability.html which proved to be robust.
- media/modern-media-controls/placard-support/placard-support-airplay-expected.txt:
- media/modern-media-controls/placard-support/placard-support-airplay.html:
- platform/mac/TestExpectations:
- 6:59 PM Changeset in webkit [211131] by
-
- 4 edits in trunk
LayoutTest media/modern-media-controls/tracks-panel/tracks-panel-hide.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=167311
Patch by Antoine Quint <Antoine Quint> on 2017-01-24
Reviewed by Dean Jackson.
Source/WebCore:
Ensure we have a chance to start the transition (on the next frame) before registering for an event
tracking its completion.
- Modules/modern-media-controls/controls/tracks-panel.js:
(TracksPanel.prototype.hide):
LayoutTests:
This test should no longer be flaky, so let's no mark it as such anymore.
- platform/mac/TestExpectations:
- 6:56 PM Changeset in webkit [211130] by
-
- 3 edits in trunk/LayoutTests
Work around a crash when running media/modern-media-controls/pip-support/pip-support-enabled.html
https://bugs.webkit.org/show_bug.cgi?id=167381
Patch by Antoine Quint <Antoine Quint> on 2017-01-24
Reviewed by Dean Jackson.
The test at media/modern-media-controls/pip-support/pip-support-enabled.html would crash because the test that
preceded it, media/modern-media-controls/pip-support/pip-support-click.html, would not exit the PiP presentation mode
before exiting the test. We now exit PiP before proceeding to the next test which avoid hitting the assertion
and the crash in Debug builds.
- media/modern-media-controls/pip-support/pip-support-click.html:
- platform/mac-wk1/TestExpectations:
- 6:52 PM Changeset in webkit [211129] by
-
- 4 edits1 add in trunk
Atomics.store should return the int-converted value according to toInteger
https://bugs.webkit.org/show_bug.cgi?id=167399
Reviewed by Saam Barati.
JSTests:
- stress/atomics-add-uint32.js: Added.
- stress/atomics-store-return.js: Fix the test to match what the spec wants.
Source/JavaScriptCore:
I keep getting this wrong, but I think I've finally done it right. What we want is for
Atomics.store to return the value it was passed after toInteger, which doesn't clip the value to
any kind of range. It does get truncated to double.
This changes the code to pass those "integers" as doubles. It doesn't matter that this is slow,
since all of these code paths are slow due to their need to check everything. We'll take care of
that by making them intrinsic later.
- runtime/AtomicsObject.cpp:
(JSC::atomicsFuncAdd):
(JSC::atomicsFuncAnd):
(JSC::atomicsFuncCompareExchange):
(JSC::atomicsFuncExchange):
(JSC::atomicsFuncLoad):
(JSC::atomicsFuncOr):
(JSC::atomicsFuncStore):
(JSC::atomicsFuncSub):
(JSC::atomicsFuncXor):
- 6:40 PM Changeset in webkit [211128] by
-
- 4 edits1 add in trunk
[JSC] Optimize Number#toString with Int52
https://bugs.webkit.org/show_bug.cgi?id=167303
Reviewed by Sam Weinig.
JSTests:
- stress/to-string-with-int52.js: Added.
(shouldBe):
Source/JavaScriptCore:
In kraken crypto-sha256-iterative, we frequently call Number.prototype.toString with
Int52. In that case, toString handles it in the generic double path. But we should
have a fast path for this since it can be represented in int64_t.
The stanford-crypto-sha256-iterative shows 1.6% performance improvement (on Linux machine hanayamata).
Collected 100 samples per benchmark/VM, with 100 VM invocations per benchmark. Emitted a call to gc() between
sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.
baseline patched
stanford-crypto-sha256-iterative 32.853+-0.075 32.325+-0.055 definitely 1.0163x faster
- runtime/JSCJSValue.h:
- runtime/NumberPrototype.cpp:
(JSC::int52ToStringWithRadix):
(JSC::toStringWithRadix):
- 6:18 PM Changeset in webkit [211127] by
-
- 4 edits in trunk
[WebRTC] Use HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE for libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=167353
Patch by Youenn Fablet <youenn@apple.com> on 2017-01-24
Reviewed by Alex Christensen.
Source/ThirdParty/libwebrtc:
- CMakeLists.txt:
Tools:
- Scripts/webkitpy/libwebrtc/generate_cmake.py:
(CMakeGenerator.initialize_targets):
- 5:44 PM Changeset in webkit [211126] by
-
- 4 edits in trunk/Source
[iOS WK2] Avoid IOSurface readback for snapshot creation
https://bugs.webkit.org/show_bug.cgi?id=167397
rdar://problem/30174873
Reviewed by Tim Horton.
Source/WebCore:
Export sinkIntoImage().
- platform/graphics/cocoa/IOSurface.h:
Source/WebKit2:
Use IOSurface::sinkIntoImage() for snapshots, to avoid GPU readback.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
- 5:43 PM Changeset in webkit [211125] by
-
- 3 edits6 adds in trunk
Bug 167392: REGRESSION(r210531): Relax same-volume display requirement for iOS
https://bugs.webkit.org/show_bug.cgi?id=167392
<rdar://problem/30074665>
Reviewed by Brady Eidson.
Source/WebCore:
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::canDisplay): Exclude the new check when building on iOS.
LayoutTests:
Rebaseline two tests for ios-simulator, now that they exclude the cross-volume file check..
- platform/ios-simulator/fast/xmlhttprequest: Added.
- platform/ios-simulator/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Added.
- platform/ios-simulator/storage: Added.
- platform/ios-simulator/storage/domstorage: Added.
- platform/ios-simulator/storage/domstorage/sessionstorage: Added.
- platform/ios-simulator/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Added.
- 5:04 PM Changeset in webkit [211124] by
-
- 2 edits in trunk/Source/JavaScriptCore
InferredTypeTable entry manipulation is not TOCTOU race safe
https://bugs.webkit.org/show_bug.cgi?id=167344
Reviewed by Filip Pizlo.
Made the accesses to table values safe from Time of Check,
Time of Use races with local temporary values.
Fixed point that we set an entry in the table to access the
current table entry instead of using the local entry. In that case,
we reload the now changed entry.
- runtime/InferredTypeTable.cpp:
(JSC::InferredTypeTable::visitChildren):
(JSC::InferredTypeTable::get):
(JSC::InferredTypeTable::willStoreValue):
(JSC::InferredTypeTable::makeTop):
- 4:55 PM Changeset in webkit [211123] by
-
- 3 edits in trunk/Tools
WKR should not confuse Miguel Gomez with Andres Gomez
https://bugs.webkit.org/show_bug.cgi?id=167389
Reviewed by Lucas Forschler.
Andres's email is a substring of Miguel's, causing WKR to credit Miguel's commits to
"mAndres Gomez". Fix this.
- Scripts/webkitpy/tool/commands/newcommitbot.py:
(NewCommitBot._summarize_commit_log): Be stricter about matching emails. SVN logs include a
space on each side of the email address, so expect both spaces to be there before
considering the email for replacement.
- Scripts/webkitpy/tool/commands/newcommitbot_unittest.py: Add a test.
- 4:53 PM Changeset in webkit [211122] by
-
- 3 edits1 add in trunk
Atomics.store should return the int-converted value, not the value that it stored
https://bugs.webkit.org/show_bug.cgi?id=167395
Reviewed by Saam Barati.
JSTests:
- stress/atomics-store-return.js: Added.
Source/JavaScriptCore:
Previously the code was based around passing a lambda that operated over the native type of the
operation (so for example int8_t if we were doing things to Int8Arrays). But to support this
behavior of store, we need it to be able to control how it converts its result to JSValue and it
needs to see its argument as an int32_t. It turns out that it's easy for all of the functions in
AtomicsObject.cpp to also adopt this protocol since the conversion to JSValue is just jsNumber()
from the native type in those cases, and the conversion from int32_t is done for free in
std::atomic.
- runtime/AtomicsObject.cpp:
(JSC::atomicsFuncAdd):
(JSC::atomicsFuncAnd):
(JSC::atomicsFuncCompareExchange):
(JSC::atomicsFuncExchange):
(JSC::atomicsFuncLoad):
(JSC::atomicsFuncOr):
(JSC::atomicsFuncStore):
(JSC::atomicsFuncSub):
(JSC::atomicsFuncXor):
- 4:49 PM Changeset in webkit [211121] by
-
- 7 edits in trunk/Source/WebKit2
Script gets touch events even after navigation swipe begins
https://bugs.webkit.org/show_bug.cgi?id=167383
<rdar://problem/22938927>
Reviewed by Simon Fraser.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isNavigationSwipeGestureRecognizer:]):
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/Cocoa/ViewGestureController.h:
- UIProcess/ios/ViewGestureControllerIOS.mm:
(-[WKSwipeTransitionController isNavigationSwipeGestureRecognizer:]):
(WebKit::ViewGestureController::isNavigationSwipeGestureRecognizer):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]):
Require the navigation swipe gesture recognizer to fail before the
UIWebTouchEventsGestureRecognizer can recognize. This way, the page
doesn't get touch events during the swipe, which previously led to
e.g. carousels scrolling while swiping.
- 4:15 PM Changeset in webkit [211120] by
-
- 9 edits in trunk/Source/WebCore
Add memory footprint reporting using diagnostic logging.
<https://webkit.org/b/167285>
<rdar://problem/30151767>
Reviewed by Chris Dumez.
Add some basic logging of physical memory footprint post-load and post-backgrounding.
The logging works similarly to the CPU usage logging, though with slightly longer
delays to allow the measurement to stabilize.
- page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::memoryUsageKey):
(WebCore::DiagnosticLoggingKeys::memoryUsageToDiagnosticLoggingKey):
- page/DiagnosticLoggingKeys.h:
- page/PerformanceLogging.cpp:
(WebCore::PerformanceLogging::physicalFootprint):
- page/PerformanceLogging.h:
- page/PerformanceMonitor.cpp:
(WebCore::PerformanceMonitor::PerformanceMonitor):
(WebCore::PerformanceMonitor::didFinishLoad):
(WebCore::PerformanceMonitor::activityStateChanged):
(WebCore::PerformanceMonitor::measurePostLoadMemoryUsage):
(WebCore::PerformanceMonitor::measurePostBackgroundingMemoryUsage):
- page/PerformanceMonitor.h:
- page/Settings.h:
(WebCore::Settings::isPostLoadMemoryUsageMeasurementEnabled):
(WebCore::Settings::isPostBackgroundingMemoryUsageMeasurementEnabled):
- page/cocoa/PerformanceLoggingCocoa.mm:
(WebCore::PerformanceLogging::physicalFootprint):
- 4:09 PM Changeset in webkit [211119] by
-
- 2 edits in trunk/LayoutTests
Marking macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html as flaky on macOS WK1.
https://bugs.webkit.org/show_bug.cgi?id=163598
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 3:49 PM Changeset in webkit [211118] by
-
- 6 edits4 deletes in trunk
Remove always true unsafePluginPastingEnabled setting
https://bugs.webkit.org/show_bug.cgi?id=167360
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-24
Reviewed by Andreas Kling.
Source/WebCore:
Setting added by Chromium and never used by other ports.
- dom/ScriptableDocumentParser.cpp:
(WebCore::ScriptableDocumentParser::ScriptableDocumentParser):
- page/Settings.in:
LayoutTests:
- editing/pasteboard/paste-noplugin-expected.txt: Removed.
- editing/pasteboard/paste-noplugin-xhtml-expected.txt: Removed.
- editing/pasteboard/paste-noplugin-xhtml.xhtml: Removed.
- editing/pasteboard/paste-noplugin.html: Removed.
- platform/efl/TestExpectations:
- platform/wk2/TestExpectations:
- 3:29 PM Changeset in webkit [211117] by
-
- 4 edits in branches/safari-603-branch
Merge r211086. rdar://problem/29948645
- 3:29 PM Changeset in webkit [211116] by
-
- 7 edits2 adds in branches/safari-603-branch
Merge r211070. rdar://problem/30121809
- 3:29 PM Changeset in webkit [211115] by
-
- 11 edits2 adds in branches/safari-603-branch/Source/JavaScriptCore
Merge r211069. rdar://problem/30173274
- 3:25 PM Changeset in webkit [211114] by
-
- 3 edits in trunk/Source/WebCore
When Safari reloads pages with Flash objects after Flash is installed, placeholders don't paint (but do work!)
https://bugs.webkit.org/show_bug.cgi?id=167391
rdar://problem/29857388
Reviewed by Sam Weinig.
- page/Page.cpp:
(WebCore::Page::refreshPlugins):
Remove an unused variable.
- plugins/PluginInfoProvider.cpp:
(WebCore::PluginInfoProvider::refresh):
Make sure to call refreshPlugins(). Instead of reloading subframes, just reload all the main frames with
subframes that contain plug-ins.
- 3:24 PM Changeset in webkit [211113] by
-
- 3 edits1 add in trunk
-0 is a valid array index and AtomicsObject should know this
https://bugs.webkit.org/show_bug.cgi?id=167386
Reviewed by Mark Lam.
JSTests:
- stress/atomics-neg-zero.js: Added.
Source/JavaScriptCore:
- runtime/AtomicsObject.cpp: The bug title really says it all.
- 2:40 PM Changeset in webkit [211112] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r211091.
https://bugs.webkit.org/show_bug.cgi?id=167384
introduces a subtle bug in InferredTypeTable, huge
Octane/deltablue regression (Requested by pizlo on #webkit).
Reverted changeset:
"InferredTypeTable entry manipulation is not TOCTOU race safe"
https://bugs.webkit.org/show_bug.cgi?id=167344
http://trac.webkit.org/changeset/211091
- 2:07 PM Changeset in webkit [211111] by
-
- 2 edits in trunk/Source/JavaScriptCore
Enable the stochastic space-time scheduler on the larger multicores
https://bugs.webkit.org/show_bug.cgi?id=167382
<rdar://problem/30173375>
Rubber stamped by Saam Barati
This looks like a 1.3% JetStream speed-up thanks to a 28% splay-latency improvement. This new
scheduler seems to prevent all of the same pathologies as the old one prevented. But instead of
periodically suspending the mutator, this new one will only suspend after an iteration of the
constraint fixpoint. The length of that suspension length is random with the distribution being
governed by mutatorUtilization. Once resumed, the mutator gets to run unimpeded until draining
stalls.
I'm enabling it on platforms as I benchmark those platforms. It's possible that we will want to
use a different scheduler on different platforms.
- runtime/Options.cpp:
(JSC::overrideDefaults):
- 1:54 PM Changeset in webkit [211110] by
-
- 9 edits in trunk/Source/JavaScriptCore
JSArray::tryCreateUninitialized should be called JSArray::tryCreateForInitializationPrivate
https://bugs.webkit.org/show_bug.cgi?id=167334
Rubber-stamped by Filip Pizlo.
- dfg/DFGOperations.cpp:
- ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
- runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncSplice):
(JSC::arrayProtoPrivateFuncConcatMemcpy):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSArray.cpp:
(JSC::JSArray::tryCreateForInitializationPrivate):
(JSC::JSArray::fastSlice):
(JSC::JSArray::tryCreateUninitialized): Deleted.
- runtime/JSArray.h:
(JSC::JSArray::tryCreateForInitializationPrivate):
(JSC::constructArray):
(JSC::constructArrayNegativeIndexed):
(JSC::JSArray::tryCreateUninitialized): Deleted.
- runtime/RegExpMatchesArray.cpp:
(JSC::createEmptyRegExpMatchesArray):
- runtime/RegExpMatchesArray.h:
(JSC::createRegExpMatchesArray):
- 1:45 PM Changeset in webkit [211109] by
-
- 8 edits in trunk/Source/WebCore
Clean up Performance IDL interfaces so they are easier to read
https://bugs.webkit.org/show_bug.cgi?id=167378
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-24
Reviewed by Sam Weinig.
- page/Performance.idl:
- page/PerformanceEntry.idl:
- page/PerformanceMark.idl:
- page/PerformanceMeasure.idl:
Update spec links and use a typedef to match specs.
- page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::workerStart):
- page/PerformanceResourceTiming.h:
- page/PerformanceResourceTiming.idl:
Add the workerStart property which always returns 0 for non-workers.
- 1:38 PM Changeset in webkit [211108] by
-
- 12 edits4 adds in trunk
Simple line layout: Add support for hyphen: auto.
https://bugs.webkit.org/show_bug.cgi?id=167297
<rdar://problem/30119463>
Reviewed by Antti Koivisto.
Source/WebCore:
Implement hyphen: auto for simple line layout.
Tests: fast/text/simple-line-hyphens-with-text-align.html
fast/text/simple-line-hyphens-with-word-letter-spacing.html
- platform/text/Hyphenation.h:
(WebCore::enoughWidthForHyphenation):
- rendering/RenderTreeAsText.cpp:
(WebCore::writeSimpleLine):
(WebCore::write):
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForStyle):
(WebCore::SimpleLineLayout::LineState::appendFragmentAndCreateRunIfNeeded): Inherit the hyphen attribute from the
run-to-be-appended. Ensure that we don't append additional runs when the last run has hyphen.
(WebCore::SimpleLineLayout::splitFragmentToFitLine): Before calling into the lastHyphenPosition() we need to
ensure that the hyphen would surely fit (even on the splitting position).
(WebCore::SimpleLineLayout::createLineRuns): Probe hypenation for overhanging non-whitespace runs.
(WebCore::SimpleLineLayout::printReason):
- rendering/SimpleLineLayout.h:
(WebCore::SimpleLineLayout::Run::Run):
- rendering/SimpleLineLayoutFlowContents.h:
(WebCore::SimpleLineLayout::FlowContents::Segment::toSegmentPosition):
(WebCore::SimpleLineLayout::FlowContents::Segment::toRenderPosition):
- rendering/SimpleLineLayoutResolver.cpp:
(WebCore::SimpleLineLayout::RunResolver::Run::Run):
(WebCore::SimpleLineLayout::RunResolver::Run::constructStringForHyphenIfNeeded):
(WebCore::SimpleLineLayout::RunResolver::Run::text):
- rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::hasHyphen):
- rendering/SimpleLineLayoutTextFragmentIterator.cpp:
(WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style):
(WebCore::SimpleLineLayout::TextFragmentIterator::nextBreakablePosition):
(WebCore::SimpleLineLayout::TextFragmentIterator::nextNonWhitespacePosition):
(WebCore::SimpleLineLayout::TextFragmentIterator::textWidth):
(WebCore::SimpleLineLayout::TextFragmentIterator::lastHyphenPosition): We only check the actual run for hyphenation ignoring
the neighboring runs. This might need to be changed in the future.
(WebCore::SimpleLineLayout::TextFragmentIterator::runWidth):
- rendering/SimpleLineLayoutTextFragmentIterator.h:
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::TextFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::hasHyphen):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::operator==):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::split):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::splitWithHyphen):
- rendering/line/BreakingContext.h:
(WebCore::tryHyphenating):
LayoutTests:
- fast/text/simple-line-hyphens-with-text-align-expected.html: Added.
- fast/text/simple-line-hyphens-with-text-align.html: Added.
- fast/text/simple-line-hyphens-with-word-letter-spacing-expected.html: Added.
- fast/text/simple-line-hyphens-with-word-letter-spacing.html: Added.
- 1:23 PM Changeset in webkit [211107] by
-
- 4 edits in branches/safari-603-branch
Merge r211067. rdar://problem/29319962
- 1:22 PM Changeset in webkit [211106] by
-
- 3 edits2 adds in branches/safari-603-branch
Merge r211065. rdar://problem/29784295
- 1:22 PM Changeset in webkit [211105] by
-
- 4 edits in branches/safari-603-branch
Merge r211058. rdar://problem/29526875
- 1:22 PM Changeset in webkit [211104] by
-
- 3 edits in branches/safari-603-branch/Source/WebKit2
Merge r211054. rdar://problem/28891161
- 1:22 PM Changeset in webkit [211103] by
-
- 22 edits2 moves in branches/safari-603-branch
Merge r211045. rdar://problem/29486368
- 1:22 PM Changeset in webkit [211102] by
-
- 5 edits in branches/safari-603-branch/Source/JavaScriptCore
Merge r211043. rdar://problem/30134434
- 1:22 PM Changeset in webkit [211101] by
-
- 2 edits in branches/safari-603-branch/Source/WebCore
Merge r211028. rdar://problem/30060378
- 1:22 PM Changeset in webkit [211100] by
-
- 27 edits2 adds in branches/safari-603-branch
Merge r211007. rdar://problem/28620919
- 1:22 PM Changeset in webkit [211099] by
-
- 4 edits in branches/safari-603-branch/Source/JavaScriptCore
Merge r210971. rdar://problem/30115838
- 1:22 PM Changeset in webkit [211098] by
-
- 4 edits in branches/safari-603-branch/Source
Merge r210603. rdar://problem/29839194
- 1:03 PM Changeset in webkit [211097] by
-
- 16 edits3 adds in trunk
Pass down website autoplay policies to media elements
https://bugs.webkit.org/show_bug.cgi?id=167355
Patch by Matt Rajca <mrajca@apple.com> on 2017-01-24
Reviewed by Alex Christensen.
Source/WebCore:
Autoplay policies can be specified at the global web view preferences level or on a per-page
basis during navigation. This patch ensures that policies specified on a per-page basis hold
precedence over global policies. If no policies are specified during navigation, global
policies are used. A WebsiteAutoplayPolicy::Default option has been added to let clients
explicitly specify web view defaults should be used.
- dom/Document.cpp:
(WebCore::Document::audioPlaybackRequiresUserGesture):
(WebCore::Document::videoPlaybackRequiresUserGesture):
- dom/Document.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::playInternal):
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::audioPlaybackRequiresUserGesture):
(WebCore::DocumentLoader::setAudioPlaybackRequiresUserGesture):
(WebCore::DocumentLoader::videoPlaybackRequiresUserGesture):
(WebCore::DocumentLoader::setVideoPlaybackRequiresUserGesture):
Source/WebKit2:
Autoplay policies can be specified at the global web view preferences level or on a per-page
basis during navigation. This patch ensures that policies specified on a per-page basis hold
precedence over global policies. If no policies are specified during navigation, global
policies are used. A WebsiteAutoplayPolicy::Default option has been added to let clients
explicitly specify web view defaults should be used.
- Shared/WebsitePolicies.h:
- UIProcess/API/C/WKWebsitePolicies.cpp:
(WKWebsitePoliciesGetAutoplayPolicy):
(WKWebsitePoliciesSetAutoplayPolicy):
- UIProcess/API/C/WKWebsitePolicies.h:
- UIProcess/API/Cocoa/_WKWebsitePolicies.h:
- UIProcess/API/Cocoa/_WKWebsitePolicies.mm:
(-[_WKWebsitePolicies setAutoplayPolicy:]):
(-[_WKWebsitePolicies autoplayPolicy]):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2/autoplay-check.html: Renamed from Tools/TestWebKitAPI/Tests/WebKit2/autoplayCheck.html to match our naming conventions.
- TestWebKitAPI/Tests/WebKit2/autoplay-no-audio-check.html: Added.
- TestWebKitAPI/Tests/WebKit2/test-without-audio-track.mp4: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm:
(-[AutoplayPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
(TEST):
- 12:49 PM Changeset in webkit [211096] by
-
- 3 edits in trunk/LayoutTests
More modern-media-controls LayoutTest gardening.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 12:44 PM Changeset in webkit [211095] by
-
- 16 edits2 adds in trunk
AX: Speak Selection does not work in an iframe
https://bugs.webkit.org/show_bug.cgi?id=166794
<rdar://problem/29913013>
Reviewed by Chris Fleizach.
Source/WebKit2:
Making sure WebPage::getSelectionOrContentsAsString() is getting the
selection content in the right frame.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _accessibilityRetrieveSpeakSelectionContent]):
(-[WKWebView _accessibilityDidGetSpeakSelectionContent:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView accessibilityRetrieveSpeakSelectionContent]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getSelectionOrContentsAsString):
Tools:
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::retrieveSpeakSelectionContent):
(WTR::UIScriptController::accessibilitySpeakSelectionContent):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::retrieveSpeakSelectionContent):
(WTR::UIScriptController::accessibilitySpeakSelectionContent):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView dealloc]):
(-[TestRunnerWKWebView _accessibilityDidGetSpeakSelectionContent:]):
(-[TestRunnerWKWebView accessibilityRetrieveSpeakSelectionContentWithCompletionHandler:]):
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::retrieveSpeakSelectionContent):
(WTR::UIScriptController::accessibilitySpeakSelectionContent):
LayoutTests:
- accessibility/ios-simulator/speak-selection-content-expected.txt: Added.
- accessibility/ios-simulator/speak-selection-content.html: Added.
- platform/ios-simulator-wk1/TestExpectations:
- 11:55 AM Changeset in webkit [211094] by
-
- 3 edits in trunk/Source/WebKit2
Make _WKFullscreenDelegate available to users of the WebKit2 C-API.
https://bugs.webkit.org/show_bug.cgi?id=165255
Reviewed by Anders Carlsson.
Add a getter and setter to WKPagePrivate allowing clients to set/get the
_WKFullscreenDelegate associated with the page.
- UIProcess/API/C/mac/WKPagePrivateMac.h:
- UIProcess/API/C/mac/WKPagePrivateMac.mm:
(WKPageSetFullscreenDelegate):
(WKPageGetFullscreenDelegate):
- 11:09 AM Changeset in webkit [211093] by
-
- 3 edits in trunk/LayoutTests
modern-media-controls LayoutTest gardening.
https://bugs.webkit.org/show_bug.cgi?id=167266
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 11:08 AM Changeset in webkit [211092] by
-
- 7 edits in trunk
Remove always true selectionIncludesAltImageText setting
https://bugs.webkit.org/show_bug.cgi?id=167358
Reviewed by Alex Christensen.
Source/WebCore:
- editing/Editor.cpp:
(WebCore::Editor::selectedTextForDataTransfer):
- page/Settings.in:
LayoutTests:
- editing/pasteboard/copy-image-with-alt-text-expected.txt:
- editing/pasteboard/copy-image-with-alt-text.html:
- platform/efl/TestExpectations:
- 10:57 AM Changeset in webkit [211091] by
-
- 2 edits in trunk/Source/JavaScriptCore
InferredTypeTable entry manipulation is not TOCTOU race safe
https://bugs.webkit.org/show_bug.cgi?id=167344
Reviewed by Filip Pizlo.
Made the accesses to table values safe from Time of Check,
Time of Use races with local temporary values.
- runtime/InferredTypeTable.cpp:
(JSC::InferredTypeTable::visitChildren):
(JSC::InferredTypeTable::get):
(JSC::InferredTypeTable::willStoreValue):
(JSC::InferredTypeTable::makeTop):
- 10:27 AM Changeset in webkit [211090] by
-
- 2 edits in trunk/LayoutTests
Marking media/modern-media-controls/media-controller/media-controller-resize.html as flaky on macOS WK1.
https://bugs.webkit.org/show_bug.cgi?id=164571
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 10:17 AM Changeset in webkit [211089] by
-
- 2 edits in trunk/LayoutTests
WPT LayoutTest gardening for ios-simulator.
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 10:15 AM Changeset in webkit [211088] by
-
- 2 edits in trunk/Source/WTF
VS2015 supports ref qualifiers
https://bugs.webkit.org/show_bug.cgi?id=167368
Reviewed by Sam Weinig.
- wtf/Compiler.h: Enable
WTF_COMPILER_SUPPORTS_CXX_REFERENCE_QUALIFIED_FUNCTIONS for VS2015
- 9:44 AM Changeset in webkit [211087] by
-
- 7 edits in trunk
StringView.split() should use an iterator design pattern instead of allocating a Vector
https://bugs.webkit.org/show_bug.cgi?id=163225
Reviewed by Darin Adler.
Source/WebCore:
Update code to use the new iterator-style StringView.split().
- platform/URLParser.cpp:
Source/WTF:
Implement StringView.split() using an iterator design.
Using an iterator design avoids the need to allocate a Vector of StringView objects,
which is space-inefficient and error prone as the returned Vector may outlive the
lifetime of the underlying string associated with the split (as StringView is a non-
owning reference to a string).
StringView.split() now returns a StringView::SplitResult object that implements begin()/end()
to support iterating over StringView substrings delimited by the specified separator
character. For example, to iterate over the 'c'-separated substrings of a StringView v,
you can write:
for (StringView substring : v.split('c'))
Do something with substring.
- wtf/text/StringView.cpp:
(WTF::StringView::SplitResult::Iterator::findNextSubstring): Advances the iterator to point to the
next substring.
(WTF::StringView::split): Modified to return a SplitResult::Iterator object instead of a Vector<StringView>.
- wtf/text/StringView.h:
(WTF::StringView::SplitResult::SplitResult):
(WTF::StringView::SplitResult::Iterator::Iterator):
(WTF::StringView::SplitResult::Iterator::operator*):
(WTF::StringView::SplitResult::Iterator::operator==):
(WTF::StringView::SplitResult::Iterator::operator!=):
Implements the iterator interface.
Tools:
Add unit tests for StringView.split().
- TestWebKitAPI/Tests/WTF/StringView.cpp:
(TestWebKitAPI::stringViewFromLiteral): Moved to the top of the file so that it can be
used in the StringView.split() unit tests.
(TestWebKitAPI::stringViewFromUTF8): Ditto.
(TestWebKitAPI::vectorFromSplitResult): Convenience function to convert a StringView::SplitResult
object to a Vector of String objects.
(TestWebKitAPI::TEST): Added the following tests:
- WTF.StringViewSplitEmptyAndNullStrings
- WTF.StringViewSplitBasic
- WTF.StringViewSplitWithConsecutiveSeparators
- 9:29 AM Changeset in webkit [211086] by
-
- 4 edits in trunk
The Score Esports crashes on launch
https://bugs.webkit.org/show_bug.cgi?id=167338
rdar://problem/29948645
Reviewed by Dan Bernstein.
Source/WebKit2:
- Shared/Cocoa/WKObject.mm:
(+[WKObject conformsToProtocol:]):
Add a class method implementation in case an app ends up calling +[WKObject conformsToProtocol:] for some reason.
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKObject.mm:
(TestWebKitAPI::TEST):
Add a test.
- 9:01 AM Changeset in webkit [211085] by
-
- 3 edits in trunk/Source/WebCore
Remove always true openGLMultisamplingEnabled setting
https://bugs.webkit.org/show_bug.cgi?id=167364
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-24
Reviewed by Sam Weinig.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
- page/Settings.in:
- 8:25 AM Changeset in webkit [211084] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Do not paint non composited content into the window when using the threaded compositor
https://bugs.webkit.org/show_bug.cgi?id=167367
Reviewed by Carlos Garcia Campos.
When using the threaded compositor we need to send the non composited content for compositing as well,
not painting it directly into the window.
No new tests.
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintsIntoWindow):
- 6:10 AM Changeset in webkit [211083] by
-
- 2 edits in trunk/Source/WebKit2
[Coordinated Graphics] Ensure that we're in AC mode before trying to create GraphicsLayers
https://bugs.webkit.org/show_bug.cgi?id=167365
Reviewed by Carlos Garcia Campos.
When entering AC on demand, the RenderLayerCompositor wants to create the root GraphicsLayer before the
AcceleratedDrawingArea is in AC mode. This means there's no LayerTreeHost to request the GraphicsLayerFactory,
so no layers are created. Ensure that we are in AC mode before requesting the GraphicsLayerFactory.
No behaviour change, no new tests.
- WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::graphicsLayerFactory):
- 3:48 AM Changeset in webkit [211082] by
-
- 3 edits in trunk/Source/WebCore
Remove always true allowCustomScrollbarInMainFrame setting
https://bugs.webkit.org/show_bug.cgi?id=167362
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-24
Reviewed by Andreas Kling.
Setting added by Chromium and never used by other ports.
- page/FrameView.cpp:
(WebCore::FrameView::createScrollbar):
- page/Settings.in:
- 2:29 AM Changeset in webkit [211081] by
-
- 4 edits2 deletes in trunk
Remove always true syncXHRInDocumentsEnabled setting
https://bugs.webkit.org/show_bug.cgi?id=167359
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-24
Reviewed by Alex Christensen.
Source/WebCore:
Setting added by Chromium and never used by other ports.
- page/Settings.in:
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open):
LayoutTests:
- fast/xmlhttprequest/xmlhttprequest-sync-disabled-expected.txt: Removed.
- fast/xmlhttprequest/xmlhttprequest-sync-disabled.html: Removed.
- 2:04 AM Changeset in webkit [211080] by
-
- 3 edits in trunk/Source/WebCore
Remove always true antialiased2dCanvasEnabled setting
https://bugs.webkit.org/show_bug.cgi?id=167361
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-24
Reviewed by Andreas Kling.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer):
- page/Settings.in:
Jan 23, 2017:
- 11:48 PM Changeset in webkit [211079] by
-
- 13 edits4 adds in trunk
[GTK] Add API to WebKitWebsiteDataManager to handle website data
https://bugs.webkit.org/show_bug.cgi?id=146589
Reviewed by Michael Catanzaro.
Source/WebKit2:
Add WebKitWebsiteData boxed type to wrap a WebsiteDataRecord and new methods to WebKitWebsiteDataManager to
fetch, remove and clear website data.
- PlatformGTK.cmake: Add new files to compilation.
- UIProcess/API/gtk/WebKitWebsiteData.cpp: Added.
(_WebKitWebsiteData::_WebKitWebsiteData):
(recordContainsSupportedDataTypes): Helper function to check if the WebsiteDataRecord contains any type exposed
by our API.
(toWebKitWebsiteDataTypes): Convert from WebKit::WebsiteDataType to the GTK+ public API types.
(webkitWebsiteDataCreate): Create a new WebKitWebsiteData for the given WebsiteDataRecord if it contains any
supported type.
(webkitWebsiteDataGetRecord): Returns the wrapped WebsiteDataRecord.
(webkit_website_data_ref):
(webkit_website_data_unref):
(webkit_website_data_get_name): Return the display name.
(webkit_website_data_get_types): Returns the mask of types.
(webkit_website_data_get_size): Returns the size for the given types.
- UIProcess/API/gtk/WebKitWebsiteData.h: Added.
- UIProcess/API/gtk/WebKitWebsiteDataManager.cpp:
(toWebsiteDataTypes): Convert from GTK+ public API types to WebKit::WebsiteDataType.
(webkit_website_data_manager_fetch): Fetch website data of the given types.
(webkit_website_data_manager_fetch_finish):
(webkit_website_data_manager_remove): Remove the website data of the given types for the given WebKitWebsiteData list.
(webkit_website_data_manager_remove_finish):
(webkit_website_data_manager_clear): Clear all website data of the given types modified since the given time span.
(webkit_website_data_manager_clear_finish):
- UIProcess/API/gtk/WebKitWebsiteDataManager.h:
- UIProcess/API/gtk/WebKitWebsiteDataPrivate.h: Added.
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section.
- UIProcess/API/gtk/webkit2.h: Inlcude WebKitWebsiteData.h
Tools:
Add about:data handler to MiniBrowser to manually test the website data API. Also add unit tests to test all the
new API, moving the WebKitWebsiteDataManager configuration API to the new file too.
- MiniBrowser/gtk/BrowserWindow.c:
(webViewDecidePolicy):
(newTabCallback):
- MiniBrowser/gtk/main.c:
(createBrowserTab):
(aboutDataRequestFree):
(aboutDataRequestNew):
(aboutDataRequestForView):
(websiteDataRemovedCallback):
(websiteDataClearedCallback):
(aboutDataScriptMessageReceivedCallback):
(domainListFree):
(aboutDataFillTable):
(gotWebsiteDataCallback):
(aboutDataHandleRequest):
(aboutURISchemeRequestCallback):
(main):
- TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:
(serverCallback):
(beforeAll):
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebsiteData.cpp: Added.
(serverCallback):
(WebsiteDataTest::WebsiteDataTest):
(WebsiteDataTest::~WebsiteDataTest):
(WebsiteDataTest::fetch):
(WebsiteDataTest::remove):
(WebsiteDataTest::clear):
(testWebsiteDataConfiguration):
(testWebsiteDataCache):
(testWebsiteDataStorage):
(testWebsiteDataDatabases):
(testWebsiteDataAppcache):
(beforeAll):
(afterAll):
- 10:52 PM Changeset in webkit [211078] by
-
- 10 edits15 adds in trunk
Add the support for nomodule attribute on script element
https://bugs.webkit.org/show_bug.cgi?id=166987
Reviewed by Sam Weinig.
Source/WebCore:
As discussed on https://github.com/whatwg/html/pull/2261, we should have
the way to suppress classic script execution when our user agent have
modules support. With such a feature, developers can write the code like,
<script type="module" src="./app.js"></script>
<script nomodule src="./bundled-app.js"></script>
In the above code, if the user agent does not support modules, the bundled-app.js
will be executed. On the other hand, if the user agent supports modules, we should
ignore the script tag which has thenomoduleattribute.
This way allows us to support the legacy browsers while using modules.
In WebKit, we already support modules. Thus, we should ignore the classic script
attributednomodule.
We also rename asyncAttributeValue and deferAttributeValue to hasAsyncAttribute and
hasDeferAttribute.
Tests: js/dom/modules/nomodule-has-no-effect-on-module-inline.html
js/dom/modules/nomodule-has-no-effect-on-module-src.html
js/dom/modules/nomodule-prevents-execution-classic-script-inline.html
js/dom/modules/nomodule-prevents-execution-classic-script-src.html
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::prepareScript):
- dom/ScriptElement.h:
- html/HTMLAttributeNames.in:
- html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::hasAsyncAttribute):
(WebCore::HTMLScriptElement::hasDeferAttribute):
(WebCore::HTMLScriptElement::hasNoModuleAttribute):
(WebCore::HTMLScriptElement::asyncAttributeValue): Deleted.
(WebCore::HTMLScriptElement::deferAttributeValue): Deleted.
- html/HTMLScriptElement.h:
- html/HTMLScriptElement.idl:
- svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::hasAsyncAttribute):
(WebCore::SVGScriptElement::hasDeferAttribute):
(WebCore::SVGScriptElement::hasNoModuleAttribute):
(WebCore::SVGScriptElement::asyncAttributeValue): Deleted.
(WebCore::SVGScriptElement::deferAttributeValue): Deleted.
- svg/SVGScriptElement.h:
LayoutTests:
- js/dom/modules/nomodule-dynamic-classic-inline-expected.txt: Added.
- js/dom/modules/nomodule-dynamic-classic-inline.html: Added.
- js/dom/modules/nomodule-dynamic-classic-src-expected.txt: Added.
- js/dom/modules/nomodule-dynamic-classic-src.html: Added.
- js/dom/modules/nomodule-has-no-effect-on-module-inline-expected.txt: Added.
- js/dom/modules/nomodule-has-no-effect-on-module-inline.html: Added.
- js/dom/modules/nomodule-has-no-effect-on-module-src-expected.txt: Added.
- js/dom/modules/nomodule-has-no-effect-on-module-src.html: Added.
- js/dom/modules/nomodule-prevents-execution-classic-script-inline-expected.txt: Added.
- js/dom/modules/nomodule-prevents-execution-classic-script-inline.html: Added.
- js/dom/modules/nomodule-prevents-execution-classic-script-src-expected.txt: Added.
- js/dom/modules/nomodule-prevents-execution-classic-script-src.html: Added.
- js/dom/modules/nomodule-reflect-expected.txt: Added.
- js/dom/modules/nomodule-reflect.html: Added.
- js/dom/modules/script-tests/error-classic-script.js: Added.
- 10:07 PM Changeset in webkit [211077] by
-
- 2 edits in trunk/LayoutTests
[EFL] Update timeout tests in media/modern-media-controls
Unreviewed EFL gardening.
- platform/efl/TestExpectations: Dozens of modern-media-controls tests are timeout.
- 10:01 PM Changeset in webkit [211076] by
-
- 2 edits in trunk/Source/WebKit2
Maintain ordering when doing speculative loads
https://bugs.webkit.org/show_bug.cgi?id=167324
Forgot to implement a review comment.
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:
(WebKit::NetworkCache::makeSubresourceInfoVector):
Allocated initial capacity and use uncheckedAppend.
- 7:19 PM Changeset in webkit [211075] by
-
- 22 edits7 adds in trunk/Source
Web Inspector: Provide a way to trigger a Garbage Collection
https://bugs.webkit.org/show_bug.cgi?id=167345
<rdar://problem/30102853>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-23
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
- inspector/protocol/Console.json:
- inspector/protocol/Debugger.json:
- inspector/protocol/Heap.json:
- inspector/protocol/Runtime.json:
These domains are supported by Worker backends. Label them.
- inspector/scripts/codegen/generate_js_backend_commands.py:
(JSBackendCommandsGenerator.generate_domain):
- inspector/scripts/codegen/models.py:
(Protocol.parse_domain):
(Domain.init):
(Domains):
Parse "workerSupported" and include a line in BackendCommands.js
that calls to InspectorBackend.workerSupportedDomain().
- inspector/scripts/tests/generic/domain-availability.json: Added.
- inspector/scripts/tests/generic/expected/domain-availability.json-result: Added.
- inspector/scripts/tests/generic/expected/worker-supported-domains.json-result: Added.
- inspector/scripts/tests/generic/worker-supported-domains.json: Added.
Tests for domain "workerSupported" and "availability" properties.
Source/WebCore:
- inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
Include a HeapAgent so we can do Heap.gc on Workers.
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
New "Garbage collect" tooltip.
- Versions/Inspector-iOS-10.3.json:
- UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
Update 10.3 so it generates its list of supported domains for workers.
Note that the Heap domain is not be available in this backend but it is now.
- UserInterface/Protocol/Connection.js:
(InspectorBackend.WorkerConnection):
- UserInterface/Protocol/HeapObserver.js:
(WebInspector.HeapObserver.prototype.garbageCollected):
- UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass):
(InspectorBackendClass.prototype.get workerSupportedDomains):
(InspectorBackendClass.prototype.workerSupportedDomain):
- UserInterface/Images/NavigationItemClear.svg: Added.
- UserInterface/Images/NavigationItemGarbageCollect.svg: Added.
New image for Garbage Collection. Better image for clearing.
- UserInterface/Images/gtk/NavigationItemClear.svg: Added.
Copy the Trash icon for Clear for gtk.
- UserInterface/Protocol/Target.js:
(WebInspector.Target.prototype.get HeapAgent):
- UserInterface/Protocol/WorkerTarget.js:
(WebInspector.WorkerTarget):
Include Heap agent for Workers.
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype.get navigationItems):
(WebInspector.LogContentView.prototype._garbageCollect):
Add garbage collect button which triggers gc on all capable targets.
- UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
Update the Clear icon to an improved icon.
- UserInterface/Controllers/HeapManager.js:
(WebInspector.HeapManager.prototype.garbageCollected):
Timelines only shows Main Target events, do not show GC events for Workers.
- 7:12 PM Changeset in webkit [211074] by
-
- 15 edits in trunk/Source/WebCore
Cleanup WEB_TIMING code
https://bugs.webkit.org/show_bug.cgi?id=167339
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-23
Reviewed by Alex Christensen.
Stylistic cleanup to WEB_TIMING related code.
- bindings/js/JSPerformanceEntryCustom.cpp:
- loader/ResourceTimingInformation.cpp:
- loader/ResourceTimingInformation.h:
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didFinishLoading):
- page/Performance.cpp:
(WebCore::Performance::getEntries):
(WebCore::Performance::getEntriesByType):
(WebCore::Performance::setResourceTimingBufferSize):
(WebCore::Performance::isResourceTimingBufferFull):
- page/Performance.h:
- page/PerformanceMark.h:
- page/PerformanceMeasure.h:
- page/PerformanceNavigation.h:
- page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::resourceTimeToDocumentMilliseconds):
- page/PerformanceResourceTiming.h:
- page/PerformanceTiming.cpp:
(WebCore::PerformanceTiming::documentLoader):
(WebCore::PerformanceTiming::documentTiming):
(WebCore::PerformanceTiming::loadTiming):
- page/PerformanceTiming.h:
- platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
- 6:30 PM Changeset in webkit [211073] by
-
- 3 edits in trunk/LayoutTests
LayoutTest gardening for modern-media-tests.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 6:19 PM Changeset in webkit [211072] by
-
- 5 edits1 delete in trunk
Unreviewed, rolling out r211062.
https://bugs.webkit.org/show_bug.cgi?id=167354
broke API tests (Requested by alexchristensen on #webkit).
Reverted changeset:
"Pass down website autoplay policies to media elements"
https://bugs.webkit.org/show_bug.cgi?id=167132
http://trac.webkit.org/changeset/211062
- 4:17 PM Changeset in webkit [211071] by
-
- 2 edits in trunk/LayoutTests
Remove conflicting TestExpectations for font variations tests.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:15 PM Changeset in webkit [211070] by
-
- 7 edits2 adds in trunk
https://bugs.webkit.org/show_bug.cgi?id=167247
JSC: operationSpreadGeneric uses the wrong global object for the builtin function and slow_path_spread consults the wrong global object to prove if the iterator protocol is unobservable
<rdar://problem/30121809>
Reviewed by Filip Pizlo.
JSTests:
- stress/spread-consults-correct-global-object.js: Added.
(assert):
(spread):
- stress/spread-correct-global-object-on-exception.js: Added.
(assert):
(spread):
(const.objectText.let.o.Symbol.iterator):
(catch):
Source/JavaScriptCore:
There were two bugs in the different tiers with respect to how
spread handled global objects.
The first was in the LLInt/baseline inside slow_path_spread:
We consulted the lexical global object instead of the thing we're
spreading's global object to determine if the array iterator protocol
is unobservable. This is wrong if the incoming array is from a different
global object. We must consult the incoming array's global object
to determine if it can be spread using the fast path.
The second was in operationSpreadGeneric in the DFG/FTL:
We were always using the incoming array's global object, even
when going down the slow path. This is wrong because we were
fetching the builtin iteration function helper from the incoming
array's global object, which meant that if the iterator function
were to throw an exception, it could leak objects from a different
global object. We should be executing the iterator function with
the lexical global object.
- dfg/DFGOperations.cpp:
- jsc.cpp:
(GlobalObject::finishCreation):
(functionGlobalObjectForObject):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSArray.h:
- runtime/JSArrayInlines.h:
(JSC::JSArray::isIteratorProtocolFastAndNonObservable):
- 4:01 PM Changeset in webkit [211069] by
-
- 11 edits2 adds in trunk/Source/JavaScriptCore
Land the stochastic space-time scheduler disabled
https://bugs.webkit.org/show_bug.cgi?id=167249
Reviewed by Saam Barati.
The space-time scheduler is pretty weird. It uses a periodic scheduler where the next period is
simply determined by an integer multiple of time since when the scheduler last snapped phase. It
snaps phase after constraint solving. Both the snapping of the phase after constraint solving and
the periodicity appear to be necessary for good performance. For example, if the space-time
scheduler decided that it was in the resume part of the phase just by virtue of having just
resumed, then it would be empirically worse than our scheduler which asks "what time is it?" to
decide whether it should be suspended or resumed even if it just suspended or resumed. I've spent
a lot of time wondering why these two features are essential, and I think I found a reason.
What's happening is that sometimes the GC has an overrun and its increment takes longer than it
should have. The current scheduler forgives overruns when constraint solving, which seems to
make sense because it cannot control whether constraint solving runs with the mutator resumed or
suspended. It has to be suspended currently. Snapping phase after constraint solving accomplishes
this. What's more surprising is how important it is to manage deadline misses during draining.
The relevant kind of deadline miss is when doing mutator-suspended draining to catch up to the
retreating wavefront. Deadline misses while doing this can happen systematically in some
workloads, like JetStream/hash-map and some test in Speedometer. It's because they have some
ginormous object and it takes like ~3ms+-1.5ms just to scan it. The space-time scheduler's use
of time to decide what to do saves the day here: after the deadline miss, the scheduler will
initially realize that it missed its deadline to resume the mutator. But as soon as it does this
it asks: "based on current time since phase snap, what should I do?". In the case of a deadline
miss, this question is essentially a weighted coin flip because of the high noise in the amount
of time that it takes to do things in the GC. If you overrun, you will probably overrun by
multiple milliseconds, which is enough that where you land in the space-time scheduler's timeline
is random. The likelihood that you land in the "resume mutator" part of the timeline has a
probability that is roughly the same as what the space-time scheduler calls mutator utilization.
This is a super weird property. I did not intend for it to have this property, but it appears to
be the most important property of this scheduler.
Based on this, it seems that the fact that the space-time scheduler could suspend the mutator
before draining runs out of work doesn't accomplish anything. As soon as you resume the
mutator, you have a retreating wavefront to worry about. But if the collector is happily scanning
things then it's almost certain that the collector will outpace the mutator. Also, anything that
the mutator asks us to revisit is deferred anyway.
In the past I've tried to replace the scheduler in one patch and this turned out to be annoying
because even a poorly conceived scheduler should be iterated on. This patch lands a new scheduler
called the StochasticSpaceTime scheduler. It replaces two of the known-good features of the old
scheduler: (1) it forgives constraint pauses and (2) after deadline overrun its choice is random,
weighted by the mutator utilization target. Unlike the old scheduler, this one will only suspend
the mutator when the draining terminates, but it may pause for any amount of time after an
iteration of constraint solving. It computes the targetPause by measuring constraint solving time
and multiplying by the pauseScale (0.3 by default). If smaller then minimumPause (0.3ms by
default), then it uses minimumPause instead. The stochastic scheduler will then definitely do at
least targetPause worth of suspended draining after the constraint solving iteration, and then
it will decide whether or not to do another one at random. The probability that it will choose to
resume is exactly mutatorUtilization, which is computed exactly as before. Therefore, the
probability of resumption starts at 0.7 and goes down as memory usage rises. Conversely, the
probability that we will stay suspended starts at 0.3 and goes up from there.
This new scheduler looks like it might be a 25% improvement on splay-latency. It also looks like
a small progression on hash-map. Hash-map is a great test of one of the worst cases of retreating
wavefront, since it is repeatedly storing to a ginormous array. This array is sure to take a
while to scan, and to complete, the GC must be smart enough to visit any new objects it finds
while scanning the array immediately after scanning that array. This new scheduler means that
after scanning the array, the probability that you will scan whatever you found in it starts at
0.3 and rises as the program allocates. It's sure to be 0.3, and not 0.3k, because after the
wavefront stops advancing, the only object on the mark stack after a constraint iteration will be
that array. Since there is sure to be a 0.3ms or longer pause, the GC will be sure to start
visiting this object. The GC can then complete if it just allows enough time after this to scan
whatever new objects it finds. If scanning the array overruns the deadline (and it almost
certainly will) then the probability that the GC keeps the mutator suspended is simply
1 - mutatorUtilization.
This scheduler is disabled by default. You can enable it with
--useStochasticMutatorScheduler=true.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- heap/Heap.cpp:
(JSC::Heap::Heap):
(JSC::Heap::markToFixpoint):
- heap/Heap.h:
- heap/MarkingConstraintSet.cpp:
(JSC::MarkingConstraintSet::didStartMarking):
(JSC::MarkingConstraintSet::executeConvergenceImpl):
(JSC::MarkingConstraintSet::resetStats): Deleted.
(JSC::MarkingConstraintSet::executeBootstrap): Deleted.
- heap/MarkingConstraintSet.h:
- heap/MutatorScheduler.cpp:
(JSC::MutatorScheduler::didReachTermination):
(JSC::MutatorScheduler::synchronousDrainingDidStall):
- heap/MutatorScheduler.h:
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::didReachTermination):
(JSC::SlotVisitor::drainFromShared):
- heap/StochasticSpaceTimeMutatorScheduler.cpp: Added.
(JSC::StochasticSpaceTimeMutatorScheduler::Snapshot::Snapshot):
(JSC::StochasticSpaceTimeMutatorScheduler::Snapshot::now):
(JSC::StochasticSpaceTimeMutatorScheduler::Snapshot::bytesAllocatedThisCycle):
(JSC::StochasticSpaceTimeMutatorScheduler::StochasticSpaceTimeMutatorScheduler):
(JSC::StochasticSpaceTimeMutatorScheduler::~StochasticSpaceTimeMutatorScheduler):
(JSC::StochasticSpaceTimeMutatorScheduler::state):
(JSC::StochasticSpaceTimeMutatorScheduler::beginCollection):
(JSC::StochasticSpaceTimeMutatorScheduler::didStop):
(JSC::StochasticSpaceTimeMutatorScheduler::willResume):
(JSC::StochasticSpaceTimeMutatorScheduler::didReachTermination):
(JSC::StochasticSpaceTimeMutatorScheduler::didExecuteConstraints):
(JSC::StochasticSpaceTimeMutatorScheduler::synchronousDrainingDidStall):
(JSC::StochasticSpaceTimeMutatorScheduler::timeToStop):
(JSC::StochasticSpaceTimeMutatorScheduler::timeToResume):
(JSC::StochasticSpaceTimeMutatorScheduler::log):
(JSC::StochasticSpaceTimeMutatorScheduler::endCollection):
(JSC::StochasticSpaceTimeMutatorScheduler::setResumeTime):
(JSC::StochasticSpaceTimeMutatorScheduler::bytesAllocatedThisCycleImpl):
(JSC::StochasticSpaceTimeMutatorScheduler::bytesSinceBeginningOfCycle):
(JSC::StochasticSpaceTimeMutatorScheduler::maxHeadroom):
(JSC::StochasticSpaceTimeMutatorScheduler::headroomFullness):
(JSC::StochasticSpaceTimeMutatorScheduler::mutatorUtilization):
- heap/StochasticSpaceTimeMutatorScheduler.h: Added.
- runtime/Options.cpp:
(JSC::overrideDefaults):
- runtime/Options.h:
- 3:37 PM Changeset in webkit [211068] by
-
- 4 edits in trunk/Source/WebKit2
Maintain ordering when doing speculative loads
https://bugs.webkit.org/show_bug.cgi?id=167324
Reviewed by Chris Dumez.
We currently randomize the ordering of speculative loads because they are serialized as a hash map.
It would be better to load in the same order as the requests were originally issued as that is
likely to match the order the document needs them.
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:
(WebKit::NetworkCache::SubresourceInfo::encode):
(WebKit::NetworkCache::SubresourceInfo::decode):
Include key into SubresourceInfo.
(WebKit::NetworkCache::makeSubresourcesVector):
Deduplicate the entries.
(WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry):
(WebKit::NetworkCache::SubresourcesEntry::updateSubresourceLoads):
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:
(WebKit::NetworkCache::SubresourceInfo::SubresourceInfo):
(WebKit::NetworkCache::SubresourceInfo::key):
(WebKit::NetworkCache::SubresourceInfo::setTransient):
(WebKit::NetworkCache::SubresourcesEntry::subresources):
Keep the resources in a Vector instead of a HashMap to maintain order.
- 3:26 PM Changeset in webkit [211067] by
-
- 4 edits in trunk
URLParser should fail to parse percent-encoded invalid UTF-8 sequences
https://bugs.webkit.org/show_bug.cgi?id=167330
Source/WebCore:
<rdar://problem/29319962>
Reviewed by Tim Horton.
Covered by new API tests.
- platform/URLParser.cpp:
(WebCore::containsOnlyASCII):
(WebCore::URLParser::parseHostAndPort):
If UTF-8 decoding fails after percent-decoding the host, fail to parse.
This matches Chrome and Firefox, and it was proposed to the spec in https://github.com/whatwg/url/issues/215
Tools:
Reviewed by Tim Horton.
- TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::TEST_F):
- 3:22 PM Changeset in webkit [211066] by
-
- 2 edits in trunk/Source/JavaScriptCore
Added a comment to clarify an assertion.
Rubber-stamped by Filip Pizlo.
- runtime/JSCellInlines.h:
(JSC::JSCell::classInfo):
- 3:13 PM Changeset in webkit [211065] by
-
- 3 edits2 adds in trunk
SharedArrayBuffer plus WebGL should not equal CRASH
https://bugs.webkit.org/show_bug.cgi?id=167329
Reviewed by Saam Barati.
Source/JavaScriptCore:
DOM unwrapping methods should return null rather than crashing. The code expects an
unshared buffer, so we should return null when it's shared. The caller can then decide
if they like null or not.
- runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::toWrapped):
LayoutTests:
This test used to crash and now it doesn't. It throws some exception.
- js/shared-array-buffer-webgl-expected.txt: Added.
- js/shared-array-buffer-webgl.html: Added.
- 3:06 PM Changeset in webkit [211064] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: long press on New Tab Tab Item should show context menu with recently closed tabs that are still closed
https://bugs.webkit.org/show_bug.cgi?id=166901
Patch by Devin Rousso <Devin Rousso> on 2017-01-23
Reviewed by Joseph Pecoraro.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/TabBar.js:
(WebInspector.TabBar.Event):
(WebInspector.TabBar.prototype._handleNewTabContextMenu):
Add listener dispatch for contextmenu event on New Tab tab item.
(WebInspector.TabBar.prototype.get newTabTabBarItem): Deleted.
Unused.
- UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype._tabBarItemAdded):
(WebInspector.TabBrowser.prototype._tabBarItemRemoved):
(WebInspector.TabBrowser.prototype._handleNewTabContextMenu): Added.
Create an array that keeps track of tabs as they are closed, and populate the contextmenu
of the New Tab tab item with entries for each of these tabs.
- 2:49 PM Changeset in webkit [211063] by
-
- 2 edits in trunk/Source/JavaScriptCore
ObjCCallbackFunction::destroy() should not use jsCast().
https://bugs.webkit.org/show_bug.cgi?id=167322
Reviewed by Filip Pizlo.
Since r210829, it is no longer correct for object destructors to use jsCast().
Fixed ObjCCallbackFunction::destroy() to use a static_cast instead.
- API/ObjCCallbackFunction.mm:
(JSC::ObjCCallbackFunction::destroy):
- 2:25 PM Changeset in webkit [211062] by
-
- 4 edits1 add in trunk
Pass down website autoplay policies to media elements
https://bugs.webkit.org/show_bug.cgi?id=167132
Patch by Matt Rajca <mrajca@apple.com> on 2017-01-23
Reviewed by Alex Christensen.
The playbackRequiresUserGesture APIs are already covered by tests. This patch adds API tests
for autoplay website policies.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
- 2:24 PM Changeset in webkit [211061] by
-
- 16 edits in trunk/Source/WebInspectorUI
Web Inspector: tree elements with depth > 1 should have context menu "expand all"/"collapse all" commands
https://bugs.webkit.org/show_bug.cgi?id=135590
Patch by Devin Rousso <Devin Rousso> on 2017-01-23
Reviewed by Timothy Hatcher.
Rework the context menu event handlers for all TreeOutline and TreeElement instances such
that the TreeOutline handles the event listener and creates the context menu object and the
TreeElement populates the list with items. This is necessary due to the way in which
children are laid out, as there is padding on either side of the element that would not
trigger a context menu event.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype.ondetach):
(WebInspector.BreakpointTreeElement.prototype.populateContextMenu):
(WebInspector.BreakpointTreeElement.prototype.oncontextmenu): Deleted.
- UserInterface/Views/ContextMenuUtilities.js:
(WebInspector.appendContextMenuItemsForSourceCode):
- UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
- UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline):
(WebInspector.DOMTreeOutline.prototype.populateContextMenu):
(WebInspector.DOMTreeOutline.prototype._onmousedown):
(WebInspector.DOMTreeOutline.prototype._onmousemove):
(WebInspector.DOMTreeOutline.prototype._ondragstart):
(WebInspector.DOMTreeOutline.prototype._ondragover):
(WebInspector.DOMTreeOutline.prototype._ondrop):
(WebInspector.DOMTreeOutline.prototype._treeElementFromEvent): Deleted.
(WebInspector.DOMTreeOutline.prototype._contextMenuEventFired): Deleted.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement):
- UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement.prototype.onattach):
- UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.onattach):
(WebInspector.GeneralTreeElement.prototype.ondetach): Deleted.
- UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype.populateContextMenu):
(WebInspector.ObjectTreeBaseTreeElement.prototype._logSymbolProperty):
(WebInspector.ObjectTreeBaseTreeElement.prototype._logValue):
(WebInspector.ObjectTreeBaseTreeElement.prototype.oncontextmenu): Deleted.
(WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler): Deleted.
- UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype.populateContextMenu):
(WebInspector.ResourceTreeElement.prototype.onattach): Deleted.
(WebInspector.ResourceTreeElement.prototype._handleContextMenuEvent): Deleted.
- UserInterface/Views/ThreadTreeElement.js:
(WebInspector.ThreadTreeElement.prototype.populateContextMenu):
(WebInspector.ThreadTreeElement.prototype.oncontextmenu): Deleted.
- UserInterface/Views/TreeElement.js:
(WebInspector.TreeElement.prototype.populateContextMenu):
(WebInspector.TreeElement):
- UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline):
(WebInspector.TreeOutline.prototype.treeElementFromEvent):
(WebInspector.TreeOutline.prototype.populateContextMenu):
(WebInspector.TreeOutline._generateStyleRulesIfNeeded):
- UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype.onattach):
(WebInspector.VisualStyleSelectorTreeItem.prototype.populateContextMenu):
(WebInspector.VisualStyleSelectorTreeItem.prototype._highlightNodesWithSelector):
(WebInspector.VisualStyleSelectorTreeItem.prototype._hideDOMNodeHighlight):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent): Deleted.
- UserInterface/Views/WorkerTreeElement.js:
(WebInspector.WorkerTreeElement.prototype.populateContextMenu):
(WebInspector.WorkerTreeElement.prototype.onattach):
(WebInspector.WorkerTreeElement.prototype._handleContextMenuEvent): Deleted.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._contextMenuInDataTable):
Add "Expand All"/"Collapse All" context menu items.
- 1:41 PM Changeset in webkit [211060] by
-
- 22 edits7 adds6 deletes in trunk/LayoutTests
Migrate font variations tests to using David Jonathan Ross's Boxis font
https://bugs.webkit.org/show_bug.cgi?id=167222
Reviewed by Dean Jackson.
He extremely generously made this font for doing testing of variation fonts,
and worked with us to licence it appropriately so it can be used in WebKit
directly.
Thanks so much to DJR!!!!
I also took this opportunity to make the tests in animations/font-variations
more robust.
- animations/font-variations/font-variation-settings-expected.html: Removed.
- animations/font-variations/font-variation-settings-expected.txt: Added.
- animations/font-variations/font-variation-settings-order-expected.html: Removed.
- animations/font-variations/font-variation-settings-order-expected.txt: Added.
- animations/font-variations/font-variation-settings-order.html:
- animations/font-variations/font-variation-settings-unlike-expected.html: Removed.
- animations/font-variations/font-variation-settings-unlike-expected.txt: Added.
- animations/font-variations/font-variation-settings-unlike.html:
- animations/font-variations/font-variation-settings.html:
- animations/font-variations/resources/Boxis-VF.ttf: Added.
- fast/backgrounds/background-repeat-x-y.html: Removed.
- fast/text/variations/advances.html:
- fast/text/variations/case-axis-names-expected.html:
- fast/text/variations/case-axis-names.html:
- fast/text/variations/default-value-expected.html:
- fast/text/variations/default-value.html:
- fast/text/variations/duplicate-axis-expected.html: Removed.
- fast/text/variations/duplicate-axis.html: Removed.
- fast/text/variations/duplicate-expected.html:
- fast/text/variations/duplicate.html:
- fast/text/variations/exist-expected-mismatch.html:
- fast/text/variations/exist.html:
- fast/text/variations/getComputedStyle-expected.txt:
- fast/text/variations/getComputedStyle.html:
- fast/text/variations/inheritance-expected.html:
- fast/text/variations/inheritance.html:
- fast/text/variations/order-expected.html:
- fast/text/variations/order.html:
- fast/text/variations/outofbounds-expected-mismatch.html:
- fast/text/variations/outofbounds.html:
- fast/text/variations/resources/Boxis-VF.ttf: Added.
- platform/mac/TestExpectations:
- 1:31 PM Changeset in webkit [211059] by
-
- 2 edits in trunk/LayoutTests
Marking media/modern-media-controls/tracks-panel/tracks-panel-hide.html as flaky on macOS debug.
https://bugs.webkit.org/show_bug.cgi?id=167311
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 1:30 PM Changeset in webkit [211058] by
-
- 4 edits in trunk
Make URLs with non-special schemes and a query or fragment but no slash after the host more compatible
https://bugs.webkit.org/show_bug.cgi?id=167317
Source/WebCore:
<rdar://problem/29526875>
Reviewed by Sam Weinig.
This is currently being added to the URL spec in https://github.com/whatwg/url/issues/212
Covered by new API tests.
- platform/URLParser.cpp:
(WebCore::URLParser::parse):
Only add a slash if there wasn't one if the URL has a special scheme.
This new behavior matches the old behavior of URL::parse.
Tools:
Reviewed by Sam Weinig.
- TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::TEST_F):
- 1:27 PM Changeset in webkit [211057] by
-
- 6 edits in trunk/Source/WebInspectorUI
Web Inspector: color picker should feature an editable CSS value
https://bugs.webkit.org/show_bug.cgi?id=124356
Patch by Devin Rousso <Devin Rousso> on 2017-01-23
Reviewed by Timothy Hatcher.
- UserInterface/Views/ColorPicker.css:
(.color-picker):
(.color-picker.hide-inputs):
(.color-picker > .color-inputs):
(.color-picker > .color-inputs > div):
(.color-picker > .color-inputs > div[hidden]):
(.color-picker > .color-inputs input):
- UserInterface/Views/ColorPicker.js:
(WebInspector.ColorPicker.createColorInput):
(WebInspector.ColorPicker):
(WebInspector.ColorPicker.prototype.set color):
(WebInspector.ColorPicker.prototype.set enableColorComponentInputs):
(WebInspector.ColorPicker.prototype._updateColor):
(WebInspector.ColorPicker.prototype._handleFormatChange):
(WebInspector.ColorPicker.prototype._showColorComponentInputs.updateColorInput):
(WebInspector.ColorPicker.prototype._showColorComponentInputs):
(WebInspector.ColorPicker.prototype._handleColorInputInput):
Add an input element (with a label for the component name and its units) for each component
as part of the current color format (e.g. R, G, B, A). If any of these inputs are changed
then the color is also changed and the "ColorChanged" event is fired.
- UserInterface/Controllers/CodeMirrorColorEditingController.js:
(WebInspector.CodeMirrorColorEditingController.prototype.popoverWillPresent):
- UserInterface/Views/InlineSwatch.js:
(WebInspector.InlineSwatch.prototype._swatchElementClicked):
Add FormatChanged event that fires whenever a new color is set with a different format or
the color value is set for the first time (there is no old format to compare to). This is
needed because if the format becomes RGB, RGBA, HSL, or HSLA from something not in that list
then the size of the containing popover needs to change since the newly added color inputs
will be displayed.
- UserInterface/Views/GradientEditor.js:
(WebInspector.GradientEditor):
Prevent the color inputs from displaying at all, since there aren't individual swatches for
each color in a gradient.
- 1:22 PM Changeset in webkit [211056] by
-
- 2 edits in trunk/LayoutTests
Marking media/modern-media-controls/placard-support/placard-support-pip.html as a flaky crash on Sierra WK1.
https://bugs.webkit.org/show_bug.cgi?id=167320
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 1:16 PM Changeset in webkit [211055] by
-
- 8 edits in trunk/Source/WebCore
Convert langAttributeAwareFormControlUIEnabled to a Setting
https://bugs.webkit.org/show_bug.cgi?id=167279
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-23
Reviewed by Sam Weinig.
- dom/Document.cpp:
(WebCore::Document::getCachedLocale):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
Convert to use Settings instead of RuntimeEnabledFeatures.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::langAttributeAwareFormControlUIEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setLangAttributeAwareFormControlUIEnabled): Deleted.
- page/Settings.in:
Move to Settings.
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled): Deleted.
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
Remove the manual interface for the RuntimeEnabledFeature.
An identical interface is generated from Settings.in!
- 1:08 PM Changeset in webkit [211054] by
-
- 3 edits in trunk/Source/WebKit2
Web Inspector: Asserts seen opening and closing Remote Web Inspector windows
https://bugs.webkit.org/show_bug.cgi?id=167316
<rdar://problem/28891161>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-23
Reviewed by Alexey Proskuryakov.
- UIProcess/RemoteWebInspectorProxy.cpp:
(WebKit::RemoteWebInspectorProxy::createFrontendPageAndWindow):
Assume read access, like the local web inspector, to Web Inspector resources.
- WebProcess/WebPage/RemoteWebInspectorUI.cpp:
(WebKit::RemoteWebInspectorUI::closeWindow):
Clear ourselves as the inspector frontend client when closing.
- 1:00 PM Changeset in webkit [211053] by
-
- 2 edits in trunk/LayoutTests
Add Sierra flag to TestExpectation for media/modern-media-controls/placard-support/placard-support-pip.html.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 12:58 PM Changeset in webkit [211052] by
-
- 8 edits in trunk/Source
When Safari reloads pages with Flash objects after Flash is installed, placeholders don't paint (but do work!)
https://bugs.webkit.org/show_bug.cgi?id=167268
rdar://problem/29857388
Reviewed by Sam Weinig.
Source/WebCore:
- page/Page.cpp:
(WebCore::Page::refreshPlugins):
Call PluginInfoProvider::refresh instead.
(WebCore::Page::clearPluginData):
Add new setter.
- page/Page.h:
Declare new members.
- plugins/PluginInfoProvider.cpp:
(WebCore::PluginInfoProvider::refresh):
Put the logic to clear plug-in data and reload frames here.
- plugins/PluginInfoProvider.h:
Add new members.
Source/WebKit2:
- WebProcess/Plugins/WebPluginInfoProvider.h:
Make refreshPlugins() private.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::refreshPlugins):
Call the newly added PluginInfoProvider::refresh().
- 12:55 PM Changeset in webkit [211051] by
-
- 2 edits in trunk/LayoutTests
Marking media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=167275
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 12:29 PM Changeset in webkit [211050] by
-
- 2 edits in trunk/Source/ThirdParty
gtest fails to link on Linux due to missing -lpthread
https://bugs.webkit.org/show_bug.cgi?id=167313
- gtest/CMakeLists.txt: Remove find_package(Threads) that was added in my last commit.
This is assumed to already happen in the platform cmake options file.
- 12:21 PM Changeset in webkit [211049] by
-
- 5 edits in trunk/Source/WebKit2
Use priorities in speculative revalidation
https://bugs.webkit.org/show_bug.cgi?id=167314
Reviewed by Chris Dumez.
We currently do all speculative cache operations with 'Medium' priority
and network operations with 'Low'. We should use the actual request priorities instead.
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::constructRevalidationRequest):
Use priority when constructing validation request.
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage):
Use priority when retrieving from cache.
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:
(WebKit::NetworkCache::SubresourceInfo::encode):
(WebKit::NetworkCache::SubresourceInfo::decode):
Save and restore the priority.
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:
(WebKit::NetworkCache::SubresourceInfo::SubresourceInfo):
(WebKit::NetworkCache::SubresourceInfo::priority):
- 12:15 PM Changeset in webkit [211048] by
-
- 2 edits in trunk/Tools
svn-create-patch should emit properties when files are moved or copied
https://bugs.webkit.org/show_bug.cgi?id=167264
Reviewed by Daniel Bates.
- Scripts/svn-create-patch:
(manufacturePatchForAdditionWithHistory): Diff the source file against nothing to get properties.
- 11:32 AM Changeset in webkit [211047] by
-
- 4 edits in trunk
[WebRTC] Filter libwebrtc link flags
https://bugs.webkit.org/show_bug.cgi?id=167287
Patch by Youenn Fablet <youenn@apple.com> on 2017-01-23
Reviewed by Alex Christensen.
Source/ThirdParty/libwebrtc:
- CMakeLists.txt:
Tools:
- Scripts/webkitpy/libwebrtc/generate_cmake.py:
(CMakeGenerator._compute_link_flags):
(CMakeGenerator._compute_link_flags.keep_flag):
(CMakeGenerator._generate_compile_target_options):
- 11:32 AM Changeset in webkit [211046] by
-
- 8 edits1 add in trunk
[WebRTC] Make VP8 optional in libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=167257
Patch by Youenn Fablet <youennf@gmail.com> on 2017-01-23
Reviewed by Darin Adler.
Source/ThirdParty/libwebrtc:
Reusing strategy used to have VP9 optional for VP8 codec.
- CMakeLists.txt: Updated tocompile and link vp8_noop.cc
- Source/webrtc/media/engine/webrtcvideoengine2.cc:
- Source/webrtc/modules/video_coding/codecs/vp8/include/vp8.h:
- Source/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc:
- Source/webrtc/modules/video_coding/codecs/vp8/vp8_noop.cc: Added.
- Source/webrtc/video/video_encoder.cc:
Tools:
- Scripts/webkitpy/libwebrtc/generate_cmake.py:
(CMakeGenerator.remove_libvpx): Adding vp8_noop.cc to the build system.
- 11:23 AM Changeset in webkit [211045] by
-
- 22 edits2 moves in trunk
Source/WebCore:
REGRESSION (r208149): Video details does not apear and missing scrubber in Control Center
https://bugs.webkit.org/show_bug.cgi?id=167233
Reviewed by Alex Christensen.
Test: In TestWebKitAPI, NowPlayingControlsTests.NowPlayingControlsIOS
In r208149, we introduced a new media type, Video, and renamed the old type to
VideoAudio (to be able to distinguish between video-with-audio and silent-video).
But we missed one place where that type needs to be renamed.
For testing purposes, overload methods from PlatformMediaSessionManager which WebKit2 uses
to report the current now playing session and it's information.
- platform/audio/ios/MediaSessionManagerIOS.h:
- platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::nowPlayingEligibleSession):
(WebCore::MediaSessionManageriOS::updateNowPlayingInfo):
Source/WebKit2:
Video details does not apear and missing scrubber in Control Center
https://bugs.webkit.org/show_bug.cgi?id=167233
Reviewed by Alex Christensen.
Make requestActiveNowPlayingSessionInfo() and handleActiveNowPlayingSessionInfoResponse()
work in PLATFORM(IOS).
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _requestActiveNowPlayingSessionInfo]):
(-[WKWebView _handleActiveNowPlayingSessionInfoResponse:title:duration:elapsedTime:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestActiveNowPlayingSessionInfo):
(WebKit::WebPageProxy::handleActiveNowPlayingSessionInfoResponse):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::handleActiveNowPlayingSessionInfoResponse):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::requestActiveNowPlayingSessionInfo):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::requestActiveNowPlayingSessionInfo): Deleted.
Tools:
Video details does not apear and missing scrubber in Control Center
https://bugs.webkit.org/show_bug.cgi?id=167233
Reviewed by Alex Christensen.
Refactor TestWKWebViewMac to work on PLATFORM(IOS). Add a new test to
NowPlayingControlTests for iOS.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/NowPlayingControlsTests.mm:
(-[NowPlayingTestWebView setWindowVisible:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit2Cocoa/SnapshotStore.mm:
- TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewCandidateTests.mm:
- TestWebKitAPI/cocoa/TestWKWebView.h: Renamed from Tools/TestWebKitAPI/mac/TestWKWebViewMac.h.
- TestWebKitAPI/cocoa/TestWKWebView.mm: Renamed from Tools/TestWebKitAPI/mac/TestWKWebViewMac.mm.
(SOFT_LINK_CLASS):
(-[TestMessageHandler addMessage:withHandler:]):
(-[TestMessageHandler userContentController:didReceiveScriptMessage:]):
(simulated_forceClickAssociatedEventsMask):
(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebViewHostWindow isKeyWindow]):
(-[TestWKWebViewHostWindow makeKeyWindow]):
(-[TestWKWebViewHostWindow resignKeyWindow]):
(-[TestWKWebView initWithFrame:]):
(-[TestWKWebView initWithFrame:configuration:]):
(-[TestWKWebView _setUpTestWindow:]):
(-[TestWKWebView performAfterReceivingMessage:action:]):
(-[TestWKWebView loadTestPageNamed:]):
(-[TestWKWebView synchronouslyLoadTestPageNamed:]):
(-[TestWKWebView stringByEvaluatingJavaScript:]):
(-[TestWKWebView waitForMessage:]):
(-[TestWKWebView performAfterLoading:]):
(-[TestWKWebView mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebView typeCharacter:]):
- 10:45 AM Changeset in webkit [211044] by
-
- 2 edits in trunk/Source/ThirdParty
gtest fails to link on Linux due to missing -lpthread
https://bugs.webkit.org/show_bug.cgi?id=167313
Reviewed by Alex Christensen.
- gtest/CMakeLists.txt: Add call to find_package(Threads) before testing CMAKE_USE_PTHREADS_INIT.
Without the find_package call, CMAKE_USE_PTHREADS_INIT was always false for me. Also explicitly
define GTEST_HAS_PTHREAD to 0 when CMAKE_USE_PTHREADS_INIT is false to prevent gtest-port.h from
setting GTEST_HAS_PTHREAD based on the platform.
- 10:45 AM Changeset in webkit [211043] by
-
- 5 edits in trunk/Source/JavaScriptCore
IntlObject uses JSArray::tryCreateUninitialized in an unsafe way
https://bugs.webkit.org/show_bug.cgi?id=167288
Reviewed by Filip Pizlo.
Refactored the following "create" methods into a "tryCreate" method and a
"create" wrapper: JSArray::create(), Butterfly::create() and
createArrayButterfly().
Changed IntlObject.cpp to use JSArray::tryCreate() as it is simpler to use
by not requiring the caller to be GC savey. The performance benefits of
tryCreateUninitialized() are not needed by the IntlObject c++ code.
Did not add a new test as the bug caused LayoutTests/js/intl.html to fail
reliably with the JSC option values scribbleFreeCells=true,
collectContinuously=true and JSC_useGenerationalGC=false.
- runtime/Butterfly.h:
- runtime/ButterflyInlines.h:
(JSC::Butterfly::tryCreate): Added.
(JSC::Butterfly::create):
- runtime/IntlObject.cpp:
(JSC::canonicalizeLocaleList):
(JSC::lookupSupportedLocales):
(JSC::intlObjectFuncGetCanonicalLocales):
- runtime/JSArray.h:
(JSC::createContiguousArrayButterfly): Deleted.
(JSC::tryCreateArrayButterfly): Added.
(JSC::createArrayButterfly):
(JSC::JSArray::tryCreate): Added.
(JSC::JSArray::create):
- 10:39 AM Changeset in webkit [211042] by
-
- 12 edits in trunk/Source
REGRESSION (r211033): ASSERTION FAILED: m_ptr in com.apple.WebCore: WTF::RefPtr<WebCore::Element>::operator* const + 70
https://bugs.webkit.org/show_bug.cgi?id=167308
<rdar://problem/30144964>
Unreviewed, do a partial revert of r211033 to fix assertion.
Source/WebCore:
No new tests, already covered by:
fullscreen/exit-full-screen-iframe.html
- dom/Document.cpp:
(WebCore::Document::webkitExitFullscreen):
- page/ChromeClient.h:
Source/WebKit/mac:
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::exitFullScreenForElement):
Source/WebKit/win:
- WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::exitFullScreenForElement):
Source/WebKit2:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exitFullScreenForElement):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- 10:30 AM Changeset in webkit [211041] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r210941): LayoutTest scrollingcoordinator/ios/sync-layer-positions-after-scroll.html failing
https://bugs.webkit.org/show_bug.cgi?id=167262
Unreviewed test gardening.
Fix to interpolation code caused a different result.
- scrollingcoordinator/ios/sync-layer-positions-after-scroll-expected.txt:
- 10:20 AM Changeset in webkit [211040] by
-
- 2 edits in trunk/Source/WebCore
[GTK] asserting on unknown locale for hyphenation is wrong
https://bugs.webkit.org/show_bug.cgi?id=167312
Reviewed by Carlos Garcia Campos.
The fact that we hit the assert on a test called 'hyphenation-unknown-locale' is already
a strong indication we should not have it. In addition to that, Carlos Lopez pointed out
a similar assert was removed from the Mac codepaths when the test was introduced.
- platform/text/hyphen/HyphenationLibHyphen.cpp:
(WebCore::lastHyphenLocation): early return when a locale that is not available is provided
for hyphenation, instead of asserting.
- 9:40 AM Changeset in webkit [211039] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed attempt to fix the iOS build after r211033.
- dom/Node.cpp:
(WebCore::Node::defaultEventHandler):
- 3:28 AM Changeset in webkit [211038] by
-
- 2 edits in trunk/Source/WebKit2
urlParserEnabled parameter is only encoded for COCOA ports
https://bugs.webkit.org/show_bug.cgi?id=167238
Reviewed by Alex Christensen.
This leads to URLParser being enabled on the UI process, since it is
the default, but disabled on the WebProcess, which is the default for
WebProcessCreationParameters, casuing asserts like on tests such as these
due to differences in parsing:
- fast/loader/redirect-to-invalid-url-using-javascript-calls-policy-delegate.html
- fast/loader/window-open-to-invalid-url-calls-policy-delegate.html
- http/tests/inspector/network/copy-as-curl.html
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): encode urlParserEnabled
(WebKit::WebProcessCreationParameters::decode): decode urlParserEnabled
- 2:41 AM Changeset in webkit [211037] by
-
- 3 edits in trunk/Source/JavaScriptCore
JavaScriptCore has a weak external symbol in it
https://bugs.webkit.org/show_bug.cgi?id=167282
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-23
Reviewed by Yusuke Suzuki.
- debugger/Debugger.cpp:
(JSC::Debugger::ProfilingClient::~ProfilingClient):
- debugger/Debugger.h:
Avoid possible weak external symbol.
- 1:54 AM Changeset in webkit [211036] by
-
- 5 edits in trunk/Source
Remove allowWindowOpenWithoutUserGesture setting
https://bugs.webkit.org/show_bug.cgi?id=167301
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-01-23
Reviewed by Darin Adler.
Source/WebCore:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::allowPopUp):
- page/Settings.in:
Source/WebKit/mac:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Use the equivalent existing setting.