Timeline
Jul 20, 2016:
- 11:51 PM Changeset in webkit [203494] by
-
- 11 edits1 add in trunk
[XHR] Cache response JS object in case of arraybuffer and blob response types
https://bugs.webkit.org/show_bug.cgi?id=128903
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-20
Reviewed by Alex Christensen.
Source/WebCore:
Covered by existing and modified tests.
Making response getter a JS builtin that caches response in @response private slot.
Handling invalidation of cached response with @responseCacheIsValid new private method.
Handling creation of cached response with @retrieveResponse new private method which reuses most of
JSXMLHttpRequest::response previous code.
Caching of responses is activated whenever load ended without any error for blob and arraybuffer response types.
Caching of response for document is also activated in case the response getter is used but not if responseXML getter is used.
- CMakeLists.txt: Adding XMLHttpRequest.js.
- DerivedSources.make: Ditto.
- bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::retrieveResponse): Implements creation of to-be-cached response.
(WebCore::JSXMLHttpRequest::response): Deleted.
- bindings/js/WebCoreBuiltinNames.h: Adding new private names.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::didCacheResponse): Renamed from didCacheResponseJSON as all response types are now cached.
(WebCore::XMLHttpRequest::didCacheResponseJSON): Deleted.
- xml/XMLHttpRequest.h:
- xml/XMLHttpRequest.idl:
LayoutTests:
- http/tests/xmlhttprequest/onabort-response-getters-expected.txt:
- http/tests/xmlhttprequest/onabort-response-getters.html:
- 11:41 PM Changeset in webkit [203493] by
-
- 4 edits in trunk/Source/WebKit2
[GTK][Threaded Compositor] Web Process crash when the page is closed before the web view is realized
https://bugs.webkit.org/show_bug.cgi?id=159918
Reviewed by Michael Catanzaro.
When the web view is unrealized, we send a sync message to the web process to destroy the native surface handle
for compositing, and then we actually destroy the redirected window. But if the page is closed explicitly before
the web view is unrealized, the drawing area proxy is destroyed so that when the web view is unrealized we can't
notify the web process that keeps trying to render to a now deleted window handle. That produces a BadDrawable
X error and the web process crashes.
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::pageClosed): Call webkitWebViewBasePageClosed().
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBasePageClosed): If the web view is still realized, destroy the native surface handle and the
redirected window.
- UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Add webkitWebViewBasePageClosed().
- 11:38 PM Changeset in webkit [203492] by
-
- 1 edit10 adds in trunk/Websites/webkit.org
Unreviewed, new demo files for an up-coming blog post.
Patch by Frederic Wang <fwang@igalia.com> on 2016-07-20
- demos/mathml/demo2016/LICENSE-amiri.txt: Added.
- demos/mathml/demo2016/LICENSE-latinmodern-math.txt: Added.
- demos/mathml/demo2016/LICENSE-libertinusmath.txt: Added.
- demos/mathml/demo2016/README.txt: Added.
- demos/mathml/demo2016/amiri-regular.woff: Added.
- demos/mathml/demo2016/index.html: Added.
- demos/mathml/demo2016/latinmodern-math.woff: Added.
- demos/mathml/demo2016/libertinusmath-regular.woff: Added.
- demos/mathml/demo2016/webfonts.css: Added.
(@namespace url('http://www.w3.org/1999/xhtml');):
(@font-face):
(m|math, m|mtext):
(m|math.libertinus):
(m|math.arabic):
- 11:23 PM Changeset in webkit [203491] by
-
- 14 edits14 adds in trunk
Switching on symbols should be fast
https://bugs.webkit.org/show_bug.cgi?id=158892
Reviewed by Keith Miller.
Source/JavaScriptCore:
This does two things: fixes some goofs in our lowering of symbol equality and adds a new phase
to B3 to infer switch statements from linear chains of branches.
This changes how we compile equality to Symbols to constant-fold the load of the Symbol's UID.
This is necessary for making switches on Symbols inferrable. This also gives us the ability to
efficiently compile strict equality comparisons of SymbolUse and UntypedUse.
This adds a new phase to B3, which finds chains of branches that test for (in)equality on the
same value and constants, and turns them into a Switch. This can turn O(n) code into
O(log n) code, or even O(1) code if the switch cases are dense.
This can make a big difference in JS. Say you write a switch in which the case statements are
variable resolutions. The bytecode generator cannot use a bytecode switch in this case, since
we're required to evaluate the resolutions in order. But in DFG IR, we will often turn those
variable resolutions into constants, since we do that for any immutable singleton. This means
that B3 will see a chain of Branches: the else case of one Branch will point to a basic block
that does nothing but Branch on equality on the same value as the first Branch.
The inference algorithm is quite simple. The basic building block is the ability to summarize
a block's switch behavior. For a block that ends in a switch, this is just the collection of
switch cases. For a block that ends in a branch, we recognize Branch(Equal(value, const)),
Branch(NotEqual(value, const)), and Branch(value). Each of these are summarized as if they
were one-case switches. We infer a new switch if both some block and its sole predecessor
can be described as switches on the same value, nothing shady is going on (like loops), and
the block in question does no work other than this switch. In that case, the block is killed
and its cases (which we get from the summary) are added to the predecessor's switch. This
algorithm runs to fixpoint.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- b3/B3Generate.cpp:
(JSC::B3::generateToAir):
- b3/B3InferSwitches.cpp: Added.
(JSC::B3::inferSwitches):
- b3/B3InferSwitches.h: Added.
- b3/B3Procedure.h:
(JSC::B3::Procedure::cfg):
- b3/B3ReduceStrength.cpp:
- b3/B3Value.cpp:
(JSC::B3::Value::performSubstitution):
(JSC::B3::Value::isFree):
(JSC::B3::Value::dumpMeta):
- b3/B3Value.h:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCheckIdent):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::lowSymbol):
(JSC::FTL::DFG::LowerDFGToB3::lowSymbolUID):
(JSC::FTL::DFG::LowerDFGToB3::lowNonNullObject):
LayoutTests:
- js/regress/bigswitch-indirect-expected.txt: Added.
- js/regress/bigswitch-indirect-symbol-expected.txt: Added.
- js/regress/bigswitch-indirect-symbol-or-undefined-expected.txt: Added.
- js/regress/bigswitch-indirect-symbol-or-undefined.html: Added.
- js/regress/bigswitch-indirect-symbol.html: Added.
- js/regress/bigswitch-indirect.html: Added.
- js/regress/implicit-bigswitch-indirect-symbol-expected.txt: Added.
- js/regress/implicit-bigswitch-indirect-symbol.html: Added.
- js/regress/script-tests/bigswitch-indirect-symbol-or-undefined.js: Added.
(foo):
- js/regress/script-tests/bigswitch-indirect-symbol.js: Added.
(foo):
- js/regress/script-tests/bigswitch-indirect.js: Added.
(foo):
- js/regress/script-tests/implicit-bigswitch-indirect-symbol.js: Added.
(foo):
- 11:12 PM Changeset in webkit [203490] by
-
- 14 edits in trunk/Source/WebCore
Remove crossOriginRequestPolicy from ThreadableLoaderOptions
https://bugs.webkit.org/show_bug.cgi?id=159417
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-20
Reviewed by Alex Christensen.
No observable change.
- Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::start): DenyCrossOriginRequests -> FetchOptions::Mode::SameOrigin.
- fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::start): DenyCrossOriginRequests -> FetchOptions::Mode::SameOrigin.
- inspector/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::loadResource): AllowCrossOriginRequests -> FetchOptions::Mode::NoCors.
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Ditto.
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest): UseAccessControl -> FetchOptions::Mode::Cors.
(WebCore::DocumentThreadableLoader::redirectReceived): Ditto.
(WebCore::DocumentThreadableLoader::didReceiveResponse): Ditto.
(WebCore::DocumentThreadableLoader::loadRequest): Use NoCors as option passed to ResourceLoader. This allows
desactivating ResourceLoader CORS checks as they are done in DocumentThreadableLoader right now. In the future,
these checks should be moved to ResourceLoader and DocumentThreadableLoader should directly pass the fetch mode
option.
(WebCore::DocumentThreadableLoader::isAllowedRedirect): AllowCrossOriginRequests -> FetchOptions::Mode::NoCors.
- loader/ThreadableLoader.cpp:
(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): Removing CrossOriginRequestPolicy.
- loader/ThreadableLoader.h: Ditto.
- loader/WorkerThreadableLoader.cpp:
(WebCore::LoaderTaskOptions::LoaderTaskOptions): Ditto.
- page/EventSource.cpp:
(WebCore::EventSource::connect): UseAccessControl -> FetchOptions::Mode::Cors.
- workers/Worker.cpp:
(WebCore::Worker::create): DenyCrossOriginRequests -> FetchOptions::Mode::SameOrigin.
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::importScripts): AllowCrossOriginRequests -> FetchOptions::Mode::NoCors.
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
- workers/WorkerScriptLoader.h:
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):
- 11:09 PM Changeset in webkit [203489] by
-
- 4 edits in trunk/Tools
Bots should run built-ins generator tests
https://bugs.webkit.org/show_bug.cgi?id=159971
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-20
Reviewed by Alexey Proskuryakov.
- BuildSlaveSupport/build.webkit.org-config/master.cfg:
(RunBuiltinsTests): New step to run built-in generator tests.
(TestFactory.init): Adding an additional step for bultin generator tests.
- BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Rebasing expectations.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: Adding additional step for proper display.
- 10:24 PM Changeset in webkit [203488] by
-
- 9 edits1 add in trunk/Source/JavaScriptCore
FTL snippet generators should be able to request a different register for output and input
https://bugs.webkit.org/show_bug.cgi?id=160010
rdar://problem/27439330
Reviewed by Saam Barati.
The BitOr and BitXor snippet generators have problems if the register for the right input is
the same as the register for the result. We could fix those generators, but I'm not convinced
that the other snippet generators don't have this bug. So, the approach that this patch takes
is to teach the FTL to request that B3 to use a different register for the result than for
any input to the snippet patchpoint.
Air already has the ability to let any instruction do an EarlyDef, which means exactly this.
But B3 did not expose this via ValueRep. This patch exposes this in ValueRep as
SomeEarlyRegister. That's most of the change.
This adds a testb3 test for SomeEarlyRegister and a regression test for this particular
problem. The regression test failed on trunk JSC before this.
- b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::lower):
- b3/B3PatchpointSpecial.cpp:
(JSC::B3::PatchpointSpecial::forEachArg):
(JSC::B3::PatchpointSpecial::admitsStack):
- b3/B3StackmapSpecial.cpp:
(JSC::B3::StackmapSpecial::forEachArgImpl):
(JSC::B3::StackmapSpecial::isArgValidForRep):
- b3/B3Validate.cpp:
- b3/B3ValueRep.cpp:
(JSC::B3::ValueRep::addUsedRegistersTo):
(JSC::B3::ValueRep::dump):
(WTF::printInternal):
- b3/B3ValueRep.h:
(JSC::B3::ValueRep::ValueRep):
(JSC::B3::ValueRep::reg):
(JSC::B3::ValueRep::isAny):
(JSC::B3::ValueRep::isReg):
(JSC::B3::ValueRep::isSomeRegister): Deleted.
- b3/testb3.cpp:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitRightShiftSnippet):
- tests/stress/ftl-bit-xor-right-result-interference.js: Added.
- 8:30 PM Changeset in webkit [203487] by
-
- 5 edits2 adds in trunk
Fix null handling of several Document attributes
https://bugs.webkit.org/show_bug.cgi?id=159997
Reviewed by Ryosuke Niwa.
Source/WebCore:
Fix null handling of the following Document attributes: title, cookie
and domain.
In WebKit, they were all marked as [TreatNullAs=EmptyString], which
does not match the specification:
Details for each attribute:
- title: null is now treated as the string "null", thus setting the document title to "null". This matches Firefox and Chrome.
- cookie: adds a "null" cookie instead of being a no-op. This matches
both Firefox and Chrome.
- domain: Calls setDomain(String("null")) instead of
setDomain(String()). This throws an exception because "null"
is not a suffix of the effective domain name. The behavior
is the same in Firefox and Chrome. Previously, we were
already throwing an exception since setting the domain to
the empty string throws, as per the specification.
Test: http/testsdom/document-attributes-null-handling.html
- dom/Document.idl:
LayoutTests:
Add test coverage.
- http/tests/dom/document-attributes-null-handling-expected.txt: Added.
- http/tests/dom/document-attributes-null-handling.html: Added.
- fast/dom/document-attribute-js-null-expected.txt:
- fast/dom/document-attribute-js-null.html:
- 8:25 PM Changeset in webkit [203486] by
-
- 5 edits in trunk/Websites/perf.webkit.org
Perf dashboard always re-generate measurement set JSON
https://bugs.webkit.org/show_bug.cgi?id=159951
Reviewed by Chris Dumez.
The bug was caused by manifest.json reporting the last modified date of a measurement set in floating point,
and a measurement set JSON reporting it as an integer. Fixed the bug by always using an integer.
- public/api/measurement-set.php:
(main): Return 404 when the results is empty.
(MeasurementSetFetcher::execute_query): Use "extract(epoch from commit_time)" like ManifestGenerator to improve
the generation speed. This is ~10% runtime improvement.
(MeasurementSetFetcher::format_map): Updated to reflect the above change.
(MeasurementSetFetcher::parse_revisions_array): Ditto.
- public/include/manifest.php:
(ManifestGenerator::platforms): Fixed the bug by coercing lastModified to integer (instead of float).
- server-tests/api-measurement-set-tests.js: Added a test case for returning empty results, and a test case for
making sure lastModified dates in manifest.json and measurement sets match.
- tools/js/remote.js:
(RemoteAPI.prototype.sendHttpRequest): Reject the promise when HTTP status code is not 200.
- 7:09 PM Changeset in webkit [203485] by
-
- 2 edits in trunk/Tools
Revert temporary fix r203417
https://bugs.webkit.org/show_bug.cgi?id=160001
Reviewed by Alexey Proskuryakov.
- EWSTools/start-queue-mac.sh: Revert the temporary fix.
- 5:45 PM Changeset in webkit [203484] by
-
- 23 edits2 adds in trunk
Unreviewed, rolling out r203471.
https://bugs.webkit.org/show_bug.cgi?id=160003
many iOS-simulator tests are failing (Requested by litherum on
#webkit).
Reverted changeset:
"[iPhone] Playing a video on tudou.com plays only sound, no
video"
https://bugs.webkit.org/show_bug.cgi?id=159967
http://trac.webkit.org/changeset/203471
- 5:36 PM Changeset in webkit [203483] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION (r203189): Webpage snapshots are partially or fully blank when edge swiping back
https://bugs.webkit.org/show_bug.cgi?id=160000
rdar://problem/27455589
Reviewed by Zalan Bujtas.
r203189 triggered a call to -_updateContentRectsWithState: in the middle of a swipe,
during which we'd compute the visible rect of the view as having zero width, causing us
to not create tiles.
-_navigationGestureDidBegin already snapshots the visibleContentRect in _frozenVisibleContentRect,
but -_visibleContentRect then clipped that with ancestor views, causing the issue.
Fix by having -_visibleContentRect just return _frozenVisibleContentRect if we have one.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _visibleContentRect]):
- 5:23 PM Changeset in webkit [203482] by
-
- 3 edits in trunk/Source/WebCore
iOS: Cannot paste images in RTF content
https://bugs.webkit.org/show_bug.cgi?id=159964
<rdar://problem/27442806>
Reviewed by Enrica Casucci.
The bug was caused by setDefersLoading(true) not deferring image loading for the parsed fragment.
Worked around this bug by disabling image loading while parsing the document fragment.
- editing/ios/EditorIOS.mm:
(WebCore::Editor::createFragmentAndAddResources):
- 5:15 PM Changeset in webkit [203481] by
-
- 4 edits in trunk/Source/WebCore
Address a small FIXME in IDB code.
https://bugs.webkit.org/show_bug.cgi?id=159999
Reviewed by Andy Estes.
No new tests (No behavior change).
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
- Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
(WebCore::IDBResourceIdentifier::IDBResourceIdentifier): Deleted.
- Modules/indexeddb/shared/IDBResourceIdentifier.h:
- 4:28 PM Changeset in webkit [203480] by
-
- 7 edits in trunk/Source/WebCore
Remove some "modernFoo"s from IndexedDB code.
https://bugs.webkit.org/show_bug.cgi?id=159985
Reviewed by Andy Estes.
No new tests (No known behavior change).
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::~IDBCursor):
(WebCore::IDBCursor::sourcesDeleted):
(WebCore::IDBCursor::effectiveObjectStore):
(WebCore::IDBCursor::transaction):
(WebCore::IDBCursor::direction):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::uncheckedIterateCursor):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):
- Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::IDBIndex):
(WebCore::IDBIndex::~IDBIndex):
(WebCore::IDBIndex::hasPendingActivity):
(WebCore::IDBIndex::name):
(WebCore::IDBIndex::objectStore):
(WebCore::IDBIndex::keyPath):
(WebCore::IDBIndex::unique):
(WebCore::IDBIndex::multiEntry):
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::doGetKey):
(WebCore::IDBIndex::markAsDeleted):
- Modules/indexeddb/IDBIndex.h:
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::transaction):
(WebCore::IDBObjectStore::deleteFunction): Deleted.
(WebCore::IDBObjectStore::modernDelete): Deleted.
- Modules/indexeddb/IDBObjectStore.h:
- bindings/js/JSIDBIndexCustom.cpp:
(WebCore::JSIDBIndex::visitAdditionalChildren):
- 4:28 PM Changeset in webkit [203479] by
-
- 2 edits in trunk/Tools
REGRESSION(r148588): ews classes might get garbage collected
https://bugs.webkit.org/show_bug.cgi?id=159990
Reviewed by Ryosuke Niwa.
- Scripts/webkitpy/tool/commands/init.py: Store the loaded ews classes
in a variable so that they do not get garbage collected.
- 4:24 PM Changeset in webkit [203478] by
-
- 2 edits2 adds in trunk/Tools
Add API test for layout constraints after exit fullscreen
https://bugs.webkit.org/show_bug.cgi?id=159900
Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-20
Reviewed by Jon Lee.
Added Fullscreen.LaytoutConstraints API test.
Tests fix from https://bugs.webkit.org/show_bug.cgi?id=159731
This test compares layout constraints on the web view before and after fullscreen to make sure
they are preserved.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenLayoutConstraints.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenLayoutConstraints.mm: Added.
(-[FullscreenStateChangeMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
- 4:23 PM Changeset in webkit [203477] by
-
- 2 edits in trunk/Tools
Disable two failing API tests.
Unreviewed test gardening.
- TestWebKitAPI/Tests/mac/CandidateTests.mm:
(TestWebKitAPI::TEST):
- 4:14 PM Changeset in webkit [203476] by
-
- 5 edits2 adds in trunk/LayoutTests
Fix timeout of imported/w3c/WebCryptoAPI/idlharness.html
https://bugs.webkit.org/show_bug.cgi?id=159979
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Add missing resources.
- WebCryptoAPI/idlharness-expected.txt:
- WebCryptoAPI/idlharness.html:
- resources/WebIDLParser.js: Added.
(tokenise):
(WebIDLParseError):
(WebIDLParseError.prototype.toString):
(error):
(consume):
(ws):
(all_ws):
(integer_type):
(float_type):
(primitive_type):
(const_value):
(type_suffix):
(single_type):
(union_type):
(type):
(argument):
(argument_list):
(type_pair):
(simple_extended_attr):
(extended_attrs):
(default_):
(const_):
(inheritance):
(operation_rest):
(callback):
(attribute):
(return_type):
(operation):
(identifiers):
(serialiser):
(iterable_type):
(readonly_iterable_type):
(iterable):
(interface_):
(partial):
(dictionary):
(exception):
(enum_):
(parse):
- resources/idlharness.js: Added.
(constValue):
(minOverloadLength):
(throwOrReject):
(awaitNCallbacks):
(return.fround):
(fround):
(self.IdlArray):
(IdlArray.prototype.add_idls):
(IdlArray.prototype.add_untested_idls):
(IdlArray.prototype.internal_add_idls):
(IdlArray.prototype.add_objects):
(IdlArray.prototype.prevent_multiple_testing):
(IdlArray.prototype.recursively_get_implements):
(exposed_in):
(IdlArray.prototype.test):
(IdlArray.prototype.assert_type_is):
(IdlObject):
(IdlObject.prototype.test):
(IdlObject.prototype.has_extended_attribute):
(IdlInterface):
(IdlInterface.prototype.is_callback):
(IdlInterface.prototype.has_constants):
(IdlInterface.prototype.is_global):
(IdlInterface.prototype.test):
(IdlInterface.prototype.test_self):
(IdlInterface.prototype.test_member_const):
(IdlInterface.prototype.test_member_attribute):
(IdlInterface.prototype.test_member_operation):
(IdlInterface.prototype.do_member_operation_asserts):
(IdlInterface.prototype.test_member_stringifier):
(IdlInterface.prototype.test_members):
(IdlInterface.prototype.test_object):
(IdlInterface.prototype.test_primary_interface_of):
(IdlInterface.prototype.test_interface_of):
(IdlInterface.prototype.has_stringifier):
(IdlInterface.prototype.do_interface_attribute_asserts):
(IdlInterfaceMember):
(create_suitable_object):
(IdlEnum):
(IdlTypedef):
LayoutTests:
Remove the skip tuple of the test.
- 4:07 PM Changeset in webkit [203475] by
-
- 3 edits2 adds in trunk
Stop using valueToStringWithNullCheck() in JSCSSStyleDeclaration::putDelegate()
https://bugs.webkit.org/show_bug.cgi?id=159982
Reviewed by Ryosuke Niwa.
Source/WebCore:
valueToStringWithNullCheck() treats null as the null String() which is
legacy / non standard behavior. The specification says we should treat
null as the empty string:
Therefore, we should be using valueToStringTreatingNullAsEmptyString() instead.
In practice, there is no web-exposed behavior change because
MutableStyleProperties::setProperty() removes the property wether the
value is the null String or the empty String.
This behavior is correct since the specification says that we should
remove the property if the value is the empty string:
I added test coverage to make sure we behave according to specification.
This test is passing in Firefox, Chrome and in WebKit (before and after
my change).
Test: fast/css/CSSStyleDeclaration-property-setter.html
- bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::putDelegate):
LayoutTests:
Add layout test coverage for JSCSSStyleDeclaration::putDelegate(),
covering cases like setting to null or the empty String, to make
sure we behave according to specification.
- fast/css/CSSStyleDeclaration-property-setter-expected.txt: Added.
- fast/css/CSSStyleDeclaration-property-setter.html: Added.
- 4:06 PM Changeset in webkit [203474] by
-
- 7 edits in trunk
Fix null handling of HTMLFrameElement.marginWidth / marginHeight
https://bugs.webkit.org/show_bug.cgi?id=159987
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline now that more checks are passing.
- web-platform-tests/html/dom/reflection-obsolete-expected.txt:
Source/WebCore:
Fix null handling of HTMLFrameElement.marginWidth / marginHeight:
We are supposed to treat null as the empty string but we treat it as
the string "null".
Firefox and Chrome both match the specification.
No new tests, updated existing tests.
- html/HTMLFrameElement.idl:
LayoutTests:
Update existing test to reflect the expected behavior change.
- fast/dom/element-attribute-js-null-expected.txt:
- fast/dom/element-attribute-js-null.html:
- 3:56 PM Changeset in webkit [203473] by
-
- 2 edits in trunk/Source/WebCore
Pausing autoplayed media should not remove all restrictions for that media element
https://bugs.webkit.org/show_bug.cgi?id=159988
Reviewed by Jon Lee.
Localizes the removal of behavior restrictions introduced in r203464 upon pausing an
autoplaying video to just affect the hiding or showing of the media controller. This
prevents pages from using Javascript to start playing autoplaying videos that have
been paused by the user.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::pause):
- 3:45 PM Changeset in webkit [203472] by
-
- 2 edits in branches/safari-602-branch/Tools
Merge follow-up patch for rdar://problem/27360961.
- 3:41 PM Changeset in webkit [203471] by
-
- 23 edits2 deletes in trunk
[iPhone] Playing a video on tudou.com plays only sound, no video
https://bugs.webkit.org/show_bug.cgi?id=159967
<rdar://problem/26964090>
Reviewed by Jon Lee.
Source/WebCore:
WebKit recently starting honoring the playsinline and webkit-playsinline
attribute on iPhones. However, because these attributes previously did
nothing, some sites (such as Todou) were setting them on their content
and expecting that they are not honored. In this specific case, the
video is absolutely positioned to be 1 pixel x 1 pixel.
Previously, with iOS 9, apps could set the allowsInlineMediaPlayback
property on their WKWebView, which would honor the webkit-playsinline
attribute. Safari on iPhones didn't do this.
In order to not break these existing apps, it's important that the
allowsInlineMediaPlayback preference still allows webkit-playsinline
videos to play inline in apps using WKWebView. However, in Safari, these
videos should play fullscreen. (Todou videos have webkit-playsinline
but not playsinline.)
Therefore, in Safari, videos with playsinline should be inline, but
videos with webkit-playsinline should be fullscreen. In apps using
WKWebViews, if the app sets allowsInlineMediaPlayback, then videos with
playsinline should be inline, and videos with webkit-playsinline should
also be inline. Videos on iPad and Mac should all be inline by default.
We can create some truth tables for the cases which need to be covered:
All apps on Mac / iPad:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Inline
Present | Not present | Inline
Not Present | Present | Inline
Present | Present | Inline
Safari on iPhone:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Fullscreen
Present | Not present | Inline
Not Present | Present | Fullscreen
Present | Present | Inline
App on iPhone which sets allowsInlineMediaPlayback:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Fullscreen
Present | Not present | Inline
Not Present | Present | Inline
Present | Present | Inline
The way to distinguish Safari from another app is to create an SPI
boolean preference which Safari can set. This is already how the
iPhone and iPad are differentiated using the requiresPlayInlineAttribute
which Safari sets but other apps don't. However, this preference is
no longer sufficient because Safari should now be discriminating
between the playsinline and webkit-playsinline attributes. Therefore,
this preference should be extended to two boolean preferences, which
this patch adds:
allowsInlineMediaPlaybackWithPlaysInlineAttribute
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute
Safari on iPhone will set
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute to true,
and allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute to
false. Other apps on iPhone will get their defaults values (because they
are SPI) which means they will both be true. On iPad and Mac, apps will
use the defaults values where both are false.
This patch adds support for these two preferences, but does not remove
the existing inlineMediaPlaybackRequiresPlaysInlineAttribute preference.
I will remove the exising preference as soon as I update Safari to migrate
off of it.
Test: media/video-playsinline.html
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
- page/Settings.cpp:
- page/Settings.in:
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
Source/WebKit/mac:
Add the two preferences to WebPreferences.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WebPreferences setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WebPreferences allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WebPreferences setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKit2:
Add the two preferences to WKWebViewConfiguration and WKPreferences to cover both
the Obj-C API and the C SPI.
- Shared/WebPreferencesDefinitions.h:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
LayoutTests:
- media/video-playsinline.html: Updated.
- media/video-webkit-playsinline-expected.txt: Removed.
- media/video-webkit-playsinline.html: Removed.
- 3:03 PM Changeset in webkit [203470] by
-
- 5 edits in trunk/Source/WebCore
Get rid of custom bindings code for XMLHttpRequest.open()
https://bugs.webkit.org/show_bug.cgi?id=159984
Reviewed by Ryosuke Niwa.
Get rid of custom bindings code for XMLHttpRequest.open() as the
bindings generator is able to generate it.
Relevant specification:
The issue is that legacy content prevents treating the 'async' argument
being undefined identical from it being omitted. However, this can be
achieved by using overloading in IDL, like in the specification.
No new tests, already covered by the following tests:
- http/tests/xmlhttprequest/basic-auth.html
- http/tests/xmlhttprequest/open-async-overload.html
- bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::SendFunctor::SendFunctor): Deleted.
(WebCore::SendFunctor::line): Deleted.
(WebCore::SendFunctor::column): Deleted.
(WebCore::SendFunctor::url): Deleted.
(WebCore::SendFunctor::operator()): Deleted.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open):
- xml/XMLHttpRequest.h:
- xml/XMLHttpRequest.idl:
- 2:21 PM Changeset in webkit [203469] by
-
- 83 edits in trunk/Source/WebCore
Mark overriden methods in WebCore/svg final classes as final
https://bugs.webkit.org/show_bug.cgi?id=159966
Patch by Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> on 2016-07-20
Reviewed by Michael Catanzaro.
Update WebCore/svg classes so that overriden methods in final classes are marked final.
- svg/SVGAElement.h:
- svg/SVGAltGlyphDefElement.h:
- svg/SVGAltGlyphItemElement.h:
- svg/SVGAnimateTransformElement.h:
- svg/SVGAnimatedColor.h:
- svg/SVGCircleElement.h:
- svg/SVGClipPathElement.h:
- svg/SVGCursorElement.h:
- svg/SVGDefsElement.h:
- svg/SVGDescElement.h:
- svg/SVGEllipseElement.h:
- svg/SVGFEMergeNodeElement.h:
- svg/SVGFilterElement.h:
- svg/SVGFontElement.h:
- svg/SVGFontFaceElement.h:
- svg/SVGFontFaceFormatElement.h:
- svg/SVGFontFaceNameElement.h:
- svg/SVGFontFaceSrcElement.h:
- svg/SVGFontFaceUriElement.h:
- svg/SVGForeignObjectElement.h:
- svg/SVGGElement.h:
- svg/SVGGlyphElement.h:
- svg/SVGGlyphRefElement.h:
- svg/SVGHKernElement.h:
- svg/SVGImageElement.h:
- svg/SVGLineElement.h:
- svg/SVGMPathElement.h:
- svg/SVGMaskElement.h:
- svg/SVGMetadataElement.h:
- svg/SVGMissingGlyphElement.h:
- svg/SVGPathBuilder.h:
- svg/SVGPathByteStreamBuilder.h:
- svg/SVGPathByteStreamSource.h:
- svg/SVGPathElement.h:
- svg/SVGPathSegArcAbs.h:
- svg/SVGPathSegArcRel.h:
- svg/SVGPathSegClosePath.h:
- svg/SVGPathSegCurvetoCubicAbs.h:
- svg/SVGPathSegCurvetoCubicRel.h:
- svg/SVGPathSegCurvetoCubicSmoothAbs.h:
- svg/SVGPathSegCurvetoCubicSmoothRel.h:
- svg/SVGPathSegCurvetoQuadraticAbs.h:
- svg/SVGPathSegCurvetoQuadraticRel.h:
- svg/SVGPathSegCurvetoQuadraticSmoothAbs.h:
- svg/SVGPathSegCurvetoQuadraticSmoothRel.h:
- svg/SVGPathSegLinetoAbs.h:
- svg/SVGPathSegLinetoHorizontalAbs.h:
- svg/SVGPathSegLinetoHorizontalRel.h:
- svg/SVGPathSegLinetoRel.h:
- svg/SVGPathSegLinetoVerticalAbs.h:
- svg/SVGPathSegLinetoVerticalRel.h:
- svg/SVGPathSegListBuilder.h:
- svg/SVGPathSegListSource.h:
- svg/SVGPathSegMovetoAbs.h:
- svg/SVGPathSegMovetoRel.h:
- svg/SVGPathStringSource.h:
- svg/SVGPathTraversalStateBuilder.h:
- svg/SVGPatternElement.h:
- svg/SVGRectElement.h:
- svg/SVGScriptElement.h:
- svg/SVGStopElement.h:
- svg/SVGStyleElement.h:
- svg/SVGSwitchElement.h:
- svg/SVGTRefElement.cpp:
- svg/SVGTitleElement.h:
- svg/SVGToOTFFontConversion.cpp:
- svg/SVGUnknownElement.h:
- svg/SVGVKernElement.h:
- svg/SVGViewElement.h:
- svg/SVGZoomEvent.h:
- svg/animation/SVGSMILElement.cpp:
- svg/graphics/SVGImage.h:
- svg/graphics/SVGImageClients.h:
- svg/graphics/SVGImageForContainer.h:
- svg/graphics/filters/SVGFEImage.h:
- svg/graphics/filters/SVGFilter.h:
- svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
- svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
- svg/properties/SVGAnimatedPropertyTearOff.h:
- svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
- svg/properties/SVGMatrixTearOff.h:
- svg/properties/SVGPathSegListPropertyTearOff.h:
- 1:28 PM Changeset in webkit [203468] by
-
- 2 edits in trunk/Tools
Fix the build after 41dade3
- 1:03 PM Changeset in webkit [203467] by
-
- 2 edits in trunk/Source/WebKit2
Fix a linking failure caused by NetworkCache::Data::~Data()
https://bugs.webkit.org/show_bug.cgi?id=159931
Linking is failed with clang 3.6. It says WebKit::NetworkCache::Data::~Data is undefined.
It is fixed by adding a destructor for NetworkCache::Data.
Reviewed by Alex Christensen.
- NetworkProcess/cache/NetworkCacheData.h:
(WebKit::NetworkCache::Data::~Data):
- 1:00 PM Changeset in webkit [203466] by
-
- 2 edits in trunk/Source/WTF
Remove unnecessary if check from ParkingLot.cpp
https://bugs.webkit.org/show_bug.cgi?id=159961
Patch by Rajeev Misra <rajeevmisraforapple@gmail.com> on 2016-07-20
Reviewed by Alex Christensen.
A good practice is to have as less conditional statement
or special cases as possible in code. This change
simply removes a unnecessary "if" statement for
condition which was already evaluated by switch/case
and thus there was no need to evaluate again.
- wtf/ParkingLot.cpp:
- 12:42 PM Changeset in webkit [203465] by
-
- 19 edits in trunk/Source/WebCore
Transition most IDB interfaces from ScriptExecutionContext to ExecState.
https://bugs.webkit.org/show_bug.cgi?id=159975
Reviewed by Alex Christensen.
No new tests (No known behavior change).
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::deleteFunction):
- Modules/indexeddb/IDBCursor.h:
- Modules/indexeddb/IDBCursor.idl:
- Modules/indexeddb/IDBDatabase.idl:
- Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::cmp):
- Modules/indexeddb/IDBFactory.h:
- Modules/indexeddb/IDBFactory.idl:
- Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::getKey):
(WebCore::IDBIndex::doGetKey):
- Modules/indexeddb/IDBIndex.h:
- Modules/indexeddb/IDBIndex.idl:
- Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::only): Deleted.
- Modules/indexeddb/IDBKeyRange.h:
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::putOrAdd):
(WebCore::IDBObjectStore::deleteFunction):
(WebCore::IDBObjectStore::doDelete):
(WebCore::IDBObjectStore::modernDelete):
(WebCore::IDBObjectStore::clear):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::count):
(WebCore::IDBObjectStore::doCount):
- Modules/indexeddb/IDBObjectStore.h:
- Modules/indexeddb/IDBObjectStore.idl:
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::requestOpenCursor):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestGetValue):
(WebCore::IDBTransaction::requestGetKey):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::requestPutOrAdd):
- Modules/indexeddb/IDBTransaction.h:
- inspector/InspectorIndexedDBAgent.cpp:
- 12:25 PM Changeset in webkit [203464] by
-
- 5 edits1 add in trunk
Media controls don't appear when pausing a small autoplaying video
https://bugs.webkit.org/show_bug.cgi?id=159972
<rdar://problem/27180657>
Reviewed by Beth Dakin.
Source/WebCore:
When pausing an autoplaying video, remove behavior restrictions for the
initial user gesture and show media controls.
New WebKit API test. See VideoControlsManagerSingleSmallAutoplayingVideo.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::pause):
Tools:
Adds a new test that verifies media controls show up when pausing a small autoplayed video. Also adds mechanisms
for simulating basic user interaction in VideoControlsManager.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:
(-[WKWebView mouseDownAtPoint:]):
(-[DidPlayMessageHandler userContentController:didReceiveScriptMessage:]):
(-[OnLoadMessageHandler initWithWKWebView:handler:]):
(-[OnLoadMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit2Cocoa/autoplaying-video-with-audio.html: Added.
- 12:21 PM Changeset in webkit [203463] by
-
- 7 edits in trunk
Fix null handling of HTMLMediaElement.mediaGroup
https://bugs.webkit.org/show_bug.cgi?id=159974
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
Rebaseline now that more checks are passing.
- web-platform-tests/html/dom/reflection-embedded-expected.txt:
Source/WebCore:
Fix null handling of HTMLMediaElement.mediaGroup to match the specification:
null is supposed to be treated as the String "null". This patch aligns
our behavior with the specification. I tested Firefox and Chrome but both
do not have this attribute on HTMLMediaElement.
Also remove support for [TreatNullAs=LegacyNullString] from our bindings
generator as HTMLMediaElement.mediaGroup was the last user.
No new tests, rebaselined existing test.
- bindings/scripts/CodeGeneratorJS.pm:
(JSValueToNative):
- bindings/scripts/IDLAttributes.txt:
- html/HTMLMediaElement.idl:
- 11:59 AM Changeset in webkit [203462] by
-
- 2 edits in trunk/Source/WebKit2
Explain the default value of WKWebViewConfiguration's ignoresViewportScaleLimits
https://bugs.webkit.org/show_bug.cgi?id=159978
<rdar://problem/27453189>
Reviewed by Dan Bernstein.
- UIProcess/API/Cocoa/WKWebViewConfiguration.h:
This defaults to NO.
- 11:10 AM Changeset in webkit [203461] by
-
- 8 copies1 add in releases/Apple/Safari Technology Preview 9
Added a tag for Safari Technology Preview release 9.
- 11:01 AM Changeset in webkit [203460] by
-
- 4 edits2 adds in trunk
CSSStyleDeclaration.setProperty() should be able to unset "important" on a property
https://bugs.webkit.org/show_bug.cgi?id=159959
Reviewed by Alexey Proskuryakov.
Source/WebCore:
CSSStyleDeclaration.setProperty() should be able to unsert "important"
on a property as per the latest specification:
- https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty
- https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-camel-cased-attribute
Firefox and Chrome match the specification here but WebKit was ignoring calls
to setProperty() if there is already an "important" property wit this name
and if the new property does not have the "important" flag set.
This behavior was added a long time ago via Bug 60007. However, it does not
match the latest specification or other browsers.
Test: fast/css/CSSStyleDeclaration-setProperty-unset-important.html
- css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::addParsedProperty):
Drop code that was added via Bug 60007 as this behavior no longer matches the
specification or other browsers. The layout test added in Bug 60007 fails in
other browsers and was updated in this patch to match the specification.
LayoutTests:
- fast/css/CSSStyleDeclaration-setProperty-unset-important-expected.txt: Added.
- fast/css/CSSStyleDeclaration-setProperty-unset-important.html: Added.
Add layout test coverage.
- fast/css/important-js-override.html:
The test covered our 'wrong' behavior and was failing in Firefox / Chrome.
I updated the test to match the behavior in the specification. The test
now passed in Chrome and Firefox.
- 10:55 AM Changeset in webkit [203459] by
-
- 13 edits2 deletes in trunk
Unreviewed, rolling out r203423.
https://bugs.webkit.org/show_bug.cgi?id=159977
The test for this change is failing on Mac Release WK2
(Requested by ryanhaddad on #webkit).
Reverted changeset:
"HTMLVideoElement frames do not update on iOS when src is a
MediaStream blob"
https://bugs.webkit.org/show_bug.cgi?id=159833
http://trac.webkit.org/changeset/203423
Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-20
- 10:54 AM Changeset in webkit [203458] by
-
- 2 edits in trunk/LayoutTests
Land test expectations for rdar://problem/27434307.
- platform/mac/TestExpectations:
- 10:18 AM Changeset in webkit [203457] by
-
- 2 edits in trunk/Tools
[Win] MathML fonts are not found.
https://bugs.webkit.org/show_bug.cgi?id=159920
Reviewed by Alex Christensen.
When looking up a font in the registry, use the /v option of the Windows 'reg query' command to query
for a specific registry key value.
- Scripts/webkitdirs.pm:
(fontExists):
- 9:44 AM WebKitGTK/2.12.x edited by
- (diff)
- 9:37 AM Changeset in webkit [203456] by
-
- 4 edits2 adds in trunk
Fix null handling of HTMLSelectElement.value attribute
https://bugs.webkit.org/show_bug.cgi?id=159925
Reviewed by Benjamin Poulain.
Source/WebCore:
Fix null handling of HTMLSelectElement.value attribute:
We were treating null as the null String which would end up setting
selectedIndex to -1. However, we should treat null as the String "null"
which would set the selectedIndex to the index of the <option> element
whose value is "null".
Firefox and Chrome match the specification.
Test: fast/dom/HTMLSelectElement/value-null-handling.html
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setValue):
- html/HTMLSelectElement.idl:
LayoutTests:
Add layout test coverage. I have verified that this test is passing in
both Firefox and Chrome.
- fast/dom/HTMLSelectElement/value-null-handling-expected.txt: Added.
- fast/dom/HTMLSelectElement/value-null-handling.html: Added.
- 8:50 AM Changeset in webkit [203455] by
-
- 2 edits in trunk/LayoutTests
Consolidating duplicate TestExpectations for fast/images/animated-png.html.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 8:41 AM Changeset in webkit [203454] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Pausing when Debugger tab is closed opens tab in wrong state
https://bugs.webkit.org/show_bug.cgi?id=159946
<rdar://problem/27429886>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-20
Reviewed by Timothy Hatcher.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
At the end of construction, update the UI to match the current state
of the world. Such as updating the UI if we are paused, or if the
Timeline is capturing and we are temporarily disabling breakpoints.
- 8:40 AM Changeset in webkit [203453] by
-
- 5 edits in trunk/Tools
Improve prepare-ChangeLog for @media blocks
https://bugs.webkit.org/show_bug.cgi?id=159907
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-20
Reviewed by Timothy Hatcher.
- Scripts/prepare-ChangeLog:
(get_selector_line_ranges_for_css):
Get a range for @media blocks just like a selector.
Start Line = line with '{'
End line = line with '}'
Name = "@media ..."
- Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning-expected.txt:
Improved error messages for unbalanced portions.
- Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests-expected.txt:
- Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests.css:
(.media-query::before):
(@media only screen and (max-width: 980px)):
(.media-query a):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.both a):
(.both b):
(.media-query b):
(.media-query::after):
- 7:50 AM Changeset in webkit [203452] by
-
- 6 edits1 add in trunk/Source/JavaScriptCore
CrashOnOverflow in JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets
https://bugs.webkit.org/show_bug.cgi?id=159954
Reviewed by Benjamin Poulain.
YarrPatternConstructor::setupAlternativeOffsets() is using the checked arithmetic class
Checked<>, for offset calculations. However the default use will just crash on
overflow. Instead we should stop processing and propagate the error up the call stack.
Consolidated explicit error string with the common RegExp parsing error logic.
Moved that logic to YarrPattern as that seems like a better common place to put it.
- jit/JITOperations.cpp:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- tests/stress/regress-159954.js: New test.
- yarr/YarrParser.h:
(JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
(JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
(JSC::Yarr::Parser::Parser):
(JSC::Yarr::Parser::isIdentityEscapeAnError):
(JSC::Yarr::Parser::parseEscape):
(JSC::Yarr::Parser::parseCharacterClass):
(JSC::Yarr::Parser::parseParenthesesBegin):
(JSC::Yarr::Parser::parseParenthesesEnd):
(JSC::Yarr::Parser::parseQuantifier):
(JSC::Yarr::Parser::parseTokens):
(JSC::Yarr::Parser::parse):
- yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPatternConstructor::disjunction):
(JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):
(JSC::Yarr::YarrPatternConstructor::setupOffsets):
(JSC::Yarr::YarrPattern::errorMessage):
(JSC::Yarr::YarrPattern::compile):
- yarr/YarrPattern.h:
(JSC::Yarr::YarrPattern::reset):
- 6:07 AM Changeset in webkit [203451] by
-
- 2 edits in trunk/Source/WebKit2
[Linux] MemoryPressureMonitor fallback code to get memory available in older linux kernels doesn't work
https://bugs.webkit.org/show_bug.cgi?id=159970
Reviewed by Antonio Gomes.
We are failing to detect zones when parsing /proc/zoneinfo.
- UIProcess/linux/MemoryPressureMonitor.cpp:
(WebKit::lowWatermarkPages): Use strncmp since we want to know whether the line starts with "Node".
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor): Stop the polling if we fail to get the memory available,
because that means it's not sopported in the system for whatever reason.
- 6:02 AM Changeset in webkit [203450] by
-
- 4 edits in trunk/Source/WebCore
PostResolutionCallbackDisabler can resume pending requests while a ResourceLoadSuspender is alive
https://bugs.webkit.org/show_bug.cgi?id=159962
<rdar://problem/21439264>
Reviewed by David Kilzer.
PostResolutionCallbackDisabler can resume pending requests while a ResourceLoadSuspender
is alive. We have both PostResolutionCallbackDisabler and ResourceLoadSuspender that
call LoaderStrategy::suspendPendingRequests() / LoaderStrategy::resumePendingRequests().
However, PostResolutionCallbackDisabler and ResourceLoadSuspender are not aware of each
other. It is therefore possible for a PostResolutionCallbackDisabler object to get
destroyed, causing LoaderStrategy::resumePendingRequests() to be called while a
ResourceLoadSuspender object is alive.
This leads to hard to investigate crashes where we end up re-entering WebKit and killing
the style resolver.
This patch drops ResourceLoadSuspender and uses PostResolutionCallbackDisabler instead.
There was only one user of ResourceLoadSuspender and PostResolutionCallbackDisabler
is better because it manages a resolutionNestingDepth counter internally to make sure
it only calls LoaderStrategy::resumePendingRequests() once all
PostResolutionCallbackDisabler instances are destroyed.
No new tests, there is no easy way to reproduce the crashes.
- dom/Document.cpp:
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
- loader/LoaderStrategy.cpp:
(WebCore::ResourceLoadSuspender::ResourceLoadSuspender): Deleted.
(WebCore::ResourceLoadSuspender::~ResourceLoadSuspender): Deleted.
- loader/LoaderStrategy.h:
- 5:17 AM Changeset in webkit [203449] by
-
- 5 edits in trunk/Source/WebKit2
[Threaded Compositor] Web Process crash when the layer tree host is destroyed
https://bugs.webkit.org/show_bug.cgi?id=159922
Reviewed by Sergio Villar Senin.
It happens when the layer tree host is destroyed after the didChangeVisibleRect is scheduled to be run in the
main thread, but before it's actually dispatched. In that case the threaded compositor client points to a
deleted object and crashes when trying to dereference it.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::~ThreadedCompositor): Add an assert to ensure invalidate is always called before
the object is deleted.
(WebKit::ThreadedCompositor::invalidate): Terminate the compositing thread and nullify the client.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Return early if the client is null when the task is
dispatched in the main thread.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: Add invalidate().
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::invalidate): Invalidate the ThreadedCompositor and chain up.
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
- 3:55 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 1:50 AM Changeset in webkit [203448] by
-
- 2 edits in trunk/Tools
Fix expectedFailErrorHandler in run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=159811
Reviewed by Yusuke Suzuki.
- Scripts/run-jsc-stress-tests:
- 1:49 AM Changeset in webkit [203447] by
-
- 2 edits in trunk/Tools
Unreviewed Mac cmake buildfix after r203426. Just for fun.
- TestWebKitAPI/PlatformMac.cmake:
- 12:30 AM Changeset in webkit [203446] by
-
- 2 edits in trunk
JSC JIT Broken on ARMv7 Traditional (without Thumb2)
https://bugs.webkit.org/show_bug.cgi?id=159880
Reviewed by Carlos Garcia Campos.
- Source/cmake/OptionsCommon.cmake: Use the BFD linker on ARM traditional because of a gold linker bug.
Jul 19, 2016:
- 11:23 PM Changeset in webkit [203445] by
-
- 10 edits1 copy in trunk/Source/WebCore
[Fetch API] Add a JS builtin to implement https://fetch.spec.whatwg.org/#concept-headers-fill
https://bugs.webkit.org/show_bug.cgi?id=159932
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-19
Reviewed by Alex Christensen.
Covered by existing tests.
Refactoring Headers initializeWith to use the new built-in internal that implements
https://fetch.spec.whatwg.org/#concept-headers-fill.
Refactoring Response constructor to put more checks in the JS builtin fucntion called within constructor.
Making use of the new built-in internal that implements https://fetch.spec.whatwg.org/#concept-headers-fill.
- CMakeLists.txt: Adding FetchHeadersInternals.js
- DerivedSources.make: Ditto.
- Modules/fetch/FetchHeaders.js:
(initializeFetchHeaders): Using fillFetchHeaders new built-in internal.
- Modules/fetch/FetchInternals.js: Added.
(fillFetchHeaders):
- Modules/fetch/FetchResponse.cpp: Refactoring to do more in the JS built-in. Splitting of initializeWith so
that the checks are done in the order defined by the spec.
(WebCore::FetchResponse::setStatus):
(WebCore::FetchResponse::initializeWith):
(WebCore::isNullBodyStatus): Deleted.
- Modules/fetch/FetchResponse.h:
- Modules/fetch/FetchResponse.idl:
- Modules/fetch/FetchResponse.js:
(initializeFetchResponse): New built-in internal.
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- 10:13 PM Changeset in webkit [203444] by
-
- 5 edits in trunk
Fix null handling of SVGScriptElement.type attribute
https://bugs.webkit.org/show_bug.cgi?id=159927
Reviewed by Benjamin Poulain.
Source/WebCore:
Fix null handling of SVGScriptElement.type attribute:
We were treating null as the null String which would end up removing
the 'type' content attribute. However, we should treat null as the
String "null".
Firefox and Chrome match the specification.
No new tests, updated existing test.
- svg/SVGScriptElement.idl:
LayoutTests:
Rebaseline existing test to reflect the behavior change.
- svg/dom/svg-element-attribute-js-null-expected.txt:
- svg/dom/svg-element-attribute-js-null.xhtml:
- 10:09 PM Changeset in webkit [203443] by
-
- 5 edits2 adds in trunk
Fix null handling of several HTMLDocument attributes
https://bugs.webkit.org/show_bug.cgi?id=159923
Reviewed by Benjamin Poulain.
LayoutTests/imported/w3c:
Rebaseline now that more checks are passing.
- web-platform-tests/html/dom/reflection-sections-expected.txt:
Source/WebCore:
Fix null handling of several HTMLDocument attributes:
- https://html.spec.whatwg.org/multipage/dom.html#document
- https://html.spec.whatwg.org/multipage/obsolete.html#document-partial
In particular, null handling was incorrect in WebKit for 'dir',
'bgColor', 'fgColor', 'alinkColor', 'linkColor' and 'vlinkColor'.
Firefox and Chrome match the specification.
Test: fast/dom/HTMLDocument/null-handling.html
- html/HTMLDocument.idl:
LayoutTests:
Add layout test coverage. I have verified that this test is passing in
both Firefox and Chrome.
- fast/dom/HTMLDocument/null-handling-expected.txt: Added.
- fast/dom/HTMLDocument/null-handling.html: Added.
- 8:23 PM Changeset in webkit [203442] by
-
- 2 edits in trunk/Source/WebKit2
Web Automation: WebAutomationSessionProxy's HashMaps should support '0' as valid keys
https://bugs.webkit.org/show_bug.cgi?id=159957
<rdar://problem/27376446>
Reviewed by Joseph Pecoraro.
- WebProcess/Automation/WebAutomationSessionProxy.h:
Use UnsignedWithZeroKeyHashTraits to avoid problems with zero as a key.
- 6:45 PM Changeset in webkit [203441] by
-
- 13 edits in trunk
Document.createElementNS() / createAttributeNS() parameters should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=159938
Reviewed by Benjamin Poulain.
LayoutTests/imported/w3c:
Rebaseline several W3C tests now that more checks are passing.
- web-platform-tests/dom/interfaces-expected.txt:
- web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
Document.createElementNS() / createAttributeNS() parameters should be mandatory:
They were optional in WebKit. However, Firefox and Chrome both match the
specification.
No new tests, rebaselined existing tests.
- dom/Document.idl:
LayoutTests:
Update / rebaseline existing tests to reflect the behavior change.
- fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
- fast/dom/Document/createElementNS-namespace-err-expected.txt:
- fast/dom/Document/script-tests/createAttributeNS-namespace-err.js:
- fast/dom/Document/script-tests/createElementNS-namespace-err.js:
- fast/dom/attribute-downcast-right.html:
- 6:45 PM Changeset in webkit [203440] by
-
- 5 edits in trunk
The default testing mode should not involve disabling the FTL JIT
https://bugs.webkit.org/show_bug.cgi?id=159929
Rubber stamped by Mark Lam and Saam Barati.
Source/JavaScriptCore:
Use the new powers to make some tests run only in the default configuration (i.e. FTL,
concurrent JIT).
- tests/mozilla/mozilla-tests.yaml:
Tools:
It used to be the case that most actively maintained ports did not have the FTL JIT enabled.
Heck, for most of the FTL's initial development, it wasn't enabled anywhere. So, testing the
FTL was not the default. You had to enable it with an option.
For some reason we have kept this arrangement even though the FTL JIT is now the default on
all of the major ports. This has become a serious pain. For example, it's useful to be able
to say that a test should only run in the default config that is representative of what a
normal user would see if they ran JSC. Clearly, this would be a config that does not
explicitly disable the FTL JIT on the command line. However, if you try to specify this then
your test won't run at all if the --ftl-jit option is not passed. That's dangerous!
So, this change gets rid of all of this logic. I think it's better to get rid of it then to
try to fix it, because:
- I don't know what the fix would look like. Presumably it would ensure that ports that don't have the FTL enabled never run any tests that explicitly disable the FTL, since that doesn't do anything. The code is not really structured to allow this.
- It benefits a minority of clients. Three build bots run tests in a config that has the FTL disabled in testing. On the other hand there are already build bots that do FTL tests despite having the FTL disabled by virtue of being a 32-bit platform. So, maybe rather than preserving this broken feature, we should create something that (a) acknowledges the fact that the FTL is the default on those platforms that support it and (b) avoids running no-ftl tests on precisely those platforms that don't have FTL.
- To the extent that some bots benefited from disabling FTL tests, they were doing it by relying on a feature that was never meant to stick around. The FTL JIT is meant to be the default configuration. Disabling the FTL JIT is the non-default. So, we shouldn't be pretending that the FTL JIT is not the default just because some bots used that as an optimization.
This change allows me to speed up some debug tests and paint some bots green.
- Scripts/run-javascriptcore-tests:
(runJSCStressTests):
- Scripts/run-jsc-stress-tests:
- 6:29 PM Changeset in webkit [203439] by
-
- 3 edits4 adds in trunk
Use getElementById for attribute matching if the attribute name is html's id
https://bugs.webkit.org/show_bug.cgi?id=159960
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-19
Reviewed by Chris Dumez.
Source/WebCore:
Elliott Sprehn discovered YUI makes heavy uses of querySelector with [id=value]
(https://bugs.chromium.org/p/chromium/issues/detail?id=627242).
If we are not in quirks mode, IdForStyleResolution has the same value
as the Id attribute. We can use the same optimization for both cases.
Tests: fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks.html
fast/selectors/id-attribute-querySelector-used-as-id-selector.html
- dom/SelectorQuery.cpp:
(WebCore::canBeUsedForIdFastPath):
(WebCore::findIdMatchingType):
(WebCore::SelectorDataList::SelectorDataList):
(WebCore::selectorForIdLookup):
(WebCore::filterRootById):
LayoutTests:
- fast/selectors/id-attribute-querySelector-used-as-id-selector-expected.txt: Added.
- fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks-expected.txt: Added.
- fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks.html: Added.
- fast/selectors/id-attribute-querySelector-used-as-id-selector.html: Added.
- 6:27 PM Changeset in webkit [203438] by
-
- 7 edits2 adds in trunk
Drop SVGElement.xmlbase attribute
https://bugs.webkit.org/show_bug.cgi?id=159926
Reviewed by Benjamin Poulain.
Source/WebCore:
Drop SVGElement.xmlbase attribute as it is no longer part of the
specification:
Both Firefox and Chrome have already dropped support for
SVGElement.xmlbase.
Chrome's intent to remove:
https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/TfwMq4d25hk/C-v_iC_wKfAJ
Test: svg/dom/SVGElement-xmlbase.html
- svg/SVGElement.cpp:
(WebCore::SVGElement::removedFrom): Deleted.
- svg/SVGElement.h:
- svg/SVGElement.idl:
LayoutTests:
- svg/dom/SVGElement-xmlbase-expected.txt: Added.
- svg/dom/SVGElement-xmlbase.html: Added.
Check that SVGElement.xmlbase does not exist.
- svg/dom/svg-element-attribute-js-null-expected.txt:
- svg/dom/svg-element-attribute-js-null.xhtml:
Drop obsolete testing for SVGElement.xmlbase.
- 6:20 PM Changeset in webkit [203437] by
-
- 5 edits2 adds in trunk
Align CSSStyleDeclaration.setProperty() with the specification
https://bugs.webkit.org/show_bug.cgi?id=159955
Reviewed by Benjamin Poulain.
Source/WebCore:
Align CSSStyleDeclaration.setProperty() with the specification:
In particular, the following changes were needed:
- The 'value' parameter should not be optional
- The 'priority' parameter should treat null as the empty string rather than the string "null".
- The 'priority' parameter's default value should be the empty string, not the string "undefined".
- CSSStyleDeclaration.setProperty() should return early if 'priority' is not the empty string and is not an ASCII case-insensitive match for the string "important".
Chrome matches the specification entirely.
Firefox matches the specification with the exception that it does a
case-sensitive match for "important".
Test: fast/css/CSSStyleDeclaration-setProperty.html
- css/CSSStyleDeclaration.idl:
- css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::setProperty):
LayoutTests:
Add layout test coverage.
- fast/css/CSSStyleDeclaration-setProperty-expected.txt: Added.
- fast/css/CSSStyleDeclaration-setProperty.html: Added.
- fast/css/shorthand-priority.html:
- 5:29 PM Changeset in webkit [203436] by
-
- 2 edits in trunk/Tools
Fix API test after r203426.
https://bugs.webkit.org/show_bug.cgi?id=159949
- TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:
(TEST):
If there is website data already on disk, the initial count after putting the AppCache data in place will not be exactly 1.
This is no problem. We want to verify that it is a nonzero number and that it decrements by one when we remove the 1 AppCache data.
- 5:09 PM Changeset in webkit [203435] by
-
- 6 edits in trunk
Move WebKitErrorFrameLoadBlockedByContentFilter from WebKitErrors.h to WebKitErrorsPrivate.h
https://bugs.webkit.org/show_bug.cgi?id=159956
Reviewed by Dan Bernstein.
Source/WebKit/mac:
- Misc/WebKitErrors.h: Moved definition of WebKitErrorFrameLoadBlockedByContentFilter from here ...
- Misc/WebKitErrorsPrivate.h: to here.
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm: Included WKErrorRef.h.
(-[LoadAlternateNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
Used kWKErrorCodeFrameLoadBlockedByContentFilter instead of WebKitErrorFrameLoadBlockedByContentFilter.
- TestWebKitAPI/Tests/mac/ContentFiltering.mm: Included WebKitErrorsPrivate.h instead of WebKitErrors.h.
- 4:38 PM Changeset in webkit [203434] by
-
- 5 edits56 adds in trunk
CSP: Improve support for multiple policies to more closely conform to the CSP Level 2 spec.
https://bugs.webkit.org/show_bug.cgi?id=159841
<rdar://problem/27381684>
Reviewed by Brent Fulgham.
Source/WebCore:
Implement a first pass at sending multiple violation reports so as to more closely
conform to section Enforcing multiple policies of the Content Security Policy Level 2 spec.,
<https://w3c.github.io/webappsec-csp/2/> (Editor's Draft, 25 April 2016).
Tests: http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only.html
http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only.html
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies.html
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allPoliciesWithDispositionAllow): Added. Returns whether the resource
is allowed by all of the policies with the specified disposition.
(WebCore::ContentSecurityPolicy::allPoliciesAllow): Added. Returns whether the resource is allowed by
all of the enforced policies.
(WebCore::ContentSecurityPolicy::findHashOfContentInPolicies): Formerly named foundHashOfContentInAllPolicies.
Modified to return a ("has found hash in all enforced policies, "has found hash in all report-only policies)-pair
so that we can differentiate whether the hash violated an enforced policy or a report-only policy.
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs): Write in terms of ContentSecurityPolicy::allPoliciesAllow().
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers): Ditto.
(WebCore::ContentSecurityPolicy::allowScriptWithNonce): For now only accept a nonce if it is allowed by
all enforced policies. As a side effect of this change is that we only send a CSP violation report when a
nonce violates a report-only policy only if the nonce also violates one or more enforced policies. We will
address this limitation in <https://bugs.webkit.org/show_bug.cgi?id=159830>.
(WebCore::ContentSecurityPolicy::allowStyleWithNonce): Ditto.
(WebCore::ContentSecurityPolicy::allowInlineScript): Differentiate between a hash/'unsafe-inline' that
matches/is contained in all enforce policies and a hash/'unsafe-inline' that matches/is contained in all
report-only policies so that we only allow the resource for the former. As a side effect of this change
we may report that a resource violated a policy even if it contained the hash. See <https://bugs.webkit.org/show_bug.cgi?id=159832>
for more details.
(WebCore::ContentSecurityPolicy::allowInlineStyle): Ditto.
(WebCore::ContentSecurityPolicy::allowEval): Write in terms of ContentSecurityPolicy::allPoliciesAllow().
(WebCore::ContentSecurityPolicy::allowFrameAncestors): Ditto.
(WebCore::ContentSecurityPolicy::allowPluginType): Ditto.
(WebCore::ContentSecurityPolicy::allowScriptFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowObjectFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildContextFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowImageFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowStyleFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFontFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowMediaFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowConnectToSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFormAction): Ditto.
(WebCore::ContentSecurityPolicy::allowBaseURI): Ditto.
(WebCore::ContentSecurityPolicy::foundHashOfContentInAllPolicies): Deleted.
- page/csp/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::violatedDirectiveInAnyPolicy): Deleted.
LayoutTests:
- http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-enforced-policy-and-not-in-report-only.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-enforced-policy-and-not-in-report-only.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only.html: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html: Added.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-multiple-policies-expected.txt: Update expected result to reflect additional console
messages. We will remove these extraneous console messages as part of the fix for <https://bugs.webkit.org/show_bug.cgi?id=159832>.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only.html: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies.html: Added.
- 4:30 PM Changeset in webkit [203433] by
-
- 5 edits in tags/Safari-602.1.42.1/Source
Versioning.
- 4:28 PM Changeset in webkit [203432] by
-
- 1 copy in tags/Safari-602.1.42.1
New tag.
- 4:27 PM Changeset in webkit [203431] by
-
- 8 edits in branches/safari-602-branch/Source/JavaScriptCore
Merged r203419. rdar://problem/27420308
- 4:26 PM Changeset in webkit [203430] by
-
- 2 edits in branches/safari-602-branch/Source/WebCore
Merged r203404. rdar://problem/27420308
- 4:06 PM Changeset in webkit [203429] by
-
- 2 edits in trunk/Tools
Add regression test for r203392
https://bugs.webkit.org/show_bug.cgi?id=159949
Reviewed by Brady Eidson.
- TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:
(fileSize):
(swizzledBundleIdentifierWebBookmarksD):
(defaultApplicationCacheDirectory):
(TEST):
(swizzledBundleIdentifierMobileSafari): Deleted.
This actually tests that webbookmarksd uses the path quirk in WebsiteDataStore::defaultApplicationCacheDirectory.
I wanted to verify that it uses the same path as MobileSafari, but swizzling out the bundleIdentifier twice caused
problems with the static bools that are set once in RuntimeApplicationChecks.mm.
- 3:55 PM Changeset in webkit [203428] by
-
- 6 edits in trunk
Fix null handling of HTMLScriptElement.text attribute
https://bugs.webkit.org/show_bug.cgi?id=159943
Reviewed by Benjamin Poulain.
LayoutTests/imported/w3c:
Rebaseline W3C test now that one more check is passing.
- web-platform-tests/html/semantics/scripting-1/the-script-element/script-text-expected.txt:
Source/WebCore:
Fix null handling of HTMLScriptElement.text attribute:
We should treat null as the "null" String but we were treating it as
the empty string.
Firefox and Chrome match the specification.
No new tests, rebaselined existing test.
- html/HTMLScriptElement.idl:
- 3:55 PM Changeset in webkit [203427] by
-
- 5 edits2 adds in trunk
autocapitalize attribute should not use [TreatNullAs=LegacyNullString]
https://bugs.webkit.org/show_bug.cgi?id=159934
Reviewed by Benjamin Poulain.
Source/WebCore:
autocapitalize attribute should not use [TreatNullAs=LegacyNullString]. This is
non-standard and we want to drop support for it from the bindings generator.
Instead, use [TreatNullAs=EmptyString] in order to maintain existing behavior
given that both a missing/empty attribute result in using the default
autocapitalization mode and that autocapitalize returns the empty string by
default.
Test: platform/ios-simulator/ios/fast/forms/autocapitalize-null.html
- html/HTMLFormElement.idl:
- html/HTMLInputElement.idl:
- html/HTMLTextAreaElement.idl:
LayoutTests:
Add layout test coverage.
- platform/ios-simulator/ios/fast/forms/autocapitalize-null-expected.txt: Added.
- platform/ios-simulator/ios/fast/forms/autocapitalize-null.html: Added.
- 3:51 PM Changeset in webkit [203426] by
-
- 3 edits2 moves3 adds in trunk/Tools
Add regression test for r203392
https://bugs.webkit.org/show_bug.cgi?id=159949
Reviewed by Brady Eidson.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-shm: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-wal: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:
(TEST):
(fileSize):
(swizzledBundleIdentifierMobileSafari):
(swizzledBundleIdentifierWebBookmarksD):
(defaultApplicationCacheDirectory):
- TestWebKitAPI/cocoa/InstanceMethodSwizzler.h: Copied from TestWebKitAPI/mac/InstanceMethodSwizzler.h.
- TestWebKitAPI/cocoa/InstanceMethodSwizzler.mm: Copied from TestWebKitAPI/mac/InstanceMethodSwizzler.mm.
- TestWebKitAPI/mac/InstanceMethodSwizzler.h: Removed.
- TestWebKitAPI/mac/InstanceMethodSwizzler.mm: Removed.
- 3:50 PM Changeset in webkit [203425] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r203415): ASSERTION FAILED: !m_layoutRoot->container() !m_layoutRoot->container()->needsLayout() https://bugs.webkit.org/show_bug.cgi?id=159952
Reviewed by Simon Fraser.
Update ASSERTs to reflect new functionality, that is, now we can end up in a state
where the container (RenderView) of one of the dirty subtrees is dirty.
See r203415.
Covered by editing/pasteboard/drag-drop-input-in-svg.svg
- page/FrameView.cpp:
(WebCore::FrameView::scheduleRelayoutOfSubtree):
- 3:43 PM Changeset in webkit [203424] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(202927): The first slide is the only displayed slide when Quicklooking a Keynote file
https://bugs.webkit.org/show_bug.cgi?id=159948
<rdar://problem/27391012>
Reviewed by Simon Fraser.
There is an iOS bug (<rdar://problem/27416744>) that is causing us
to not always get a color space on CGContextRefs. Investigation of this
exposed some optimizations we can take when we are creating ImageBuffers.
In particular, if we have a bitmap context or an IOSurfaceContext we
can simply copy their color space using API. Otherwise we stick with
the existing CGContextCopyDeviceColorSpace.
Lastly, if for some reason we are unable to copy the device color space,
we should fall back to sRGB.
- platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer):
- platform/spi/cg/CoreGraphicsSPI.h: Add some SPI and enums.
- 3:35 PM Changeset in webkit [203423] by
-
- 13 edits2 adds in trunk
HTMLVideoElement frames do not update on iOS when src is a MediaStream blob
https://bugs.webkit.org/show_bug.cgi?id=159833
<rdar://problem/27379487>
Patch by George Ruan <gruan@apple.com> on 2016-07-19
Reviewed by Eric Carlson.
Source/WebCore:
Test: fast/mediastream/MediaStream-video-element-displays-buffer.html
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/avfoundation/MediaSampleAVFObjC.h: Change create to return a Ref<T> instead
of RefPtr<T>
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: Make observer of
MediaStreamTrackPrivate and make MediaPlayer use an AVSampleBufferDisplayLayer instead of CALayer.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC): Clean up
observers and AVSampleBufferDisplayLayer
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable): Ensures AVSampleBufferDisplayLayer
is available.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueAudioSampleBufferFromTrack): Placeholder.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Responsible
for enqueuing sample buffers to the active video track.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Ensures that an AVSampleBufferDisplayLayer
exists.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayer): Destroys the AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer): Replace CALayer with AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferUpdated): Called from MediaStreamTrackPrivate when a
new SampleBuffer is available.
(WebCore::updateTracksOfType): Manage adding and removing self as observer from tracks.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks): Replace CALayer with AVSampleBufferDisplayLayer
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::acceleratedRenderingStateChanged): Copied from
MediaPlayerPrivateMediaSourceAVFObjC.mm
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Deleted process of updating CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateIntrinsicSize): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers): Deleted.
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::updateActiveVideoTrack): Remove redundant check.
- platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::sourceHasMoreMediaData): Called from RealtimeMediaSource when a new SampleBuffer
is available.
- platform/mediastream/MediaStreamTrackPrivate.h:
(WebCore::MediaStreamTrackPrivate::Observer::sampleBufferUpdated): Relays to MediaPlayerPrivateMediaStream that
a new SampleBuffer is available to enqueue to the AVSampleBufferDisplayLayer.
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::mediaDataUpdated): Relays to all observers that a new SampleBuffer is available.
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::processNewFrame): Calls mediaDataUpdated when a new SampleBuffer is captured.
LayoutTests:
- fast/mediastream/MediaStream-video-element-displays-buffer-expected.txt: Added.
- fast/mediastream/MediaStream-video-element-displays-buffer.html: Added. Checks that
a video element with a mediastream source displays frames that are neither black or transparent.
- fast/mediastream/resources/getUserMedia-helper.js:
(setupVideoElementWithStream): Sets up video element with global variable mediastream.
- 2:55 PM Changeset in webkit [203422] by
-
- 3 edits in trunk/Source/WebCore
Get rid of a #define private public hack in WebCore
https://bugs.webkit.org/show_bug.cgi?id=159953
Reviewed by Dan Bernstein.
Use @package instead.
- bindings/objc/DOMInternal.h:
- bindings/objc/DOMObject.h:
- 2:27 PM Changeset in webkit [203421] by
-
- 3 edits1 add in trunk
Test262 should have a file with the revision and url
https://bugs.webkit.org/show_bug.cgi?id=159937
Reviewed by Mark Lam.
Source/JavaScriptCore:
The file.
- tests/test262/test262-Revision.txt: Added.
Tools:
The import script should update the information from
the path to the test262 repository it gets.
- Scripts/import-test262-tests:
- 2:14 PM Changeset in webkit [203420] by
-
- 2 edits in trunk/Source/WebCore
Fix SharedBuffer leak in MockContentFilter::replacementData().
<https://webkit.org/b/159945>
Reviewed by Andy Estes.
Spotted on leaks bot. This code was pretty explicit about how it's going to leak.
Since this is in the mock filter, it only affected layout tests.
- testing/MockContentFilter.cpp:
(WebCore::MockContentFilter::replacementData):
- 1:52 PM Changeset in webkit [203419] by
-
- 8 edits in trunk/Source/JavaScriptCore
WebCore-7602.1.42 fails to build: error: private field 'm_vm' is not used
https://bugs.webkit.org/show_bug.cgi?id=159944
rdar://problem/27420308
Reviewed by Dan Bernstein.
Wrap the m_vm declaration and initialization in conditional guards.
- Scripts/builtins/builtins_generate_internals_wrapper_header.py:
(generate_members):
- Scripts/builtins/builtins_generate_internals_wrapper_implementation.py:
(BuiltinsInternalsWrapperImplementationGenerator.generate_constructor):
Add guards.
- Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
Update expected results.
- 1:43 PM Changeset in webkit [203418] by
-
- 2 edits in trunk/LayoutTests
Land test expectations for rdar://problem/27356144.
- platform/mac/TestExpectations:
- 1:32 PM Changeset in webkit [203417] by
-
- 2 edits in trunk/Tools
Temporary workaround for iOS EWS failing after the fix for bug 159539.
To be deleted once the root cause is found and addressed.
- EWSTools/start-queue-mac.sh:
- 1:15 PM Changeset in webkit [203416] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION (r203348-r203368): ASSERTION FAILED: from.isCell() && from.asCell()->JSCell::inherits(std::remove_pointer<To>::type::info())
https://bugs.webkit.org/show_bug.cgi?id=159930
Reviewed by Geoffrey Garen.
The problem is that the 32-bit DFG can flush the scope register as an unboxed cell, but the
Register::scope() method was causing us to assert that it's a JSValue with proper cell
boxing. We could have forced the DFG to flush it as a boxed JSValue, but I don't think that
would have made anything better. This fixes the issue by teaching Register::scope() that it
might see unboxed cells.
- runtime/JSScope.h:
(JSC::Register::scope):
(JSC::ExecState::lexicalGlobalObject):
- 1:10 PM Changeset in webkit [203415] by
-
- 3 edits2 adds in trunk
theguardian.co.uk crossword puzzles are sometimes not displaying text
https://bugs.webkit.org/show_bug.cgi?id=159924
<rdar://problem/27409483>
Reviewed by Simon Fraser.
Source/WebCore:
This patch fixes the case when
- 2 disjoint subtrees are dirty
- RenderView is also dirty.
and we end up not laying out one of the 2 subtrees.
In FrameView::scheduleRelayoutOfSubtree, we assume that when the RenderView is dirty
we already have a pending full layout which means that any previous subtree layouts have already been
converted to full layouts.
However this assumption is incorrect. RenderView can get dirty without checking if there's
already a pending subtree layout.
One option to solve this problem would be to override RenderObject::setNeedsLayout in RenderView
so that when the RenderView gets dirty, we could also convert any pending subtree layout to full layout.
However RenderObject::setNeedsLayout is a hot function and making it virtual would impact performance.
The other option is to always normalize subtree layouts in FrameView::scheduleRelayoutOfSubtree().
This patch implements the second option.
Test: fast/misc/subtree-layouts.html
- page/FrameView.cpp:
(WebCore::FrameView::scheduleRelayoutOfSubtree):
LayoutTests:
- fast/misc/subtree-layouts-expected.html: Added.
- fast/misc/subtree-layouts.html: Added.
- 1:07 PM Changeset in webkit [203414] by
-
- 7 edits in trunk/Source
Some payment authorization status values should keep the sheet active
https://bugs.webkit.org/show_bug.cgi?id=159936
rdar://problem/26756701
Reviewed by Tim Horton.
Source/WebCore:
- Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::completePayment):
Keep the sheet active if the status isn't a final state status.
- Modules/applepay/PaymentAuthorizationStatus.h:
(WebCore::isFinalStateStatus):
Add a new helper function that returns whether a given payment authorization status is "final",
meaning that once that status has been passed to completePayment, the session is finished.
Source/WebKit2:
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
(WebKit::WebPaymentCoordinatorProxy::completePaymentSession):
If the status isn't a final state status, bounce the current state back to active.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
Rename the _authorized ivar to _didReachFinalState.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewControllerDidFinish:]):
(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentSession):
Set _didReachFinalState based on the return value of isFinalStateStatus.
- 12:20 PM Changeset in webkit [203413] by
-
- 5 edits in trunk/Source/JavaScriptCore
B3 methods that mutate the successors array should take FrequentedBlock by value
https://bugs.webkit.org/show_bug.cgi?id=159935
Reviewed by Michael Saboff.
This bug was found by ASan testing. setSuccessors() takes a const FrequentedBlock&, and the
caller that caused the ASan crash was doing:
block->setSuccessors(block->notTaken())
So, inside setSuccessors(), after we resize() the successors array, the const
FrequentedBlock& points to nonsense.
The fix is to pass FrequentedBlock by value in all of these kinds of methods.
No new tests, but ASan testing catches this instantly for anything that triggers CFG
simplification in B3. So like half of our tests.
- b3/B3BasicBlock.cpp:
(JSC::B3::BasicBlock::clearSuccessors):
(JSC::B3::BasicBlock::appendSuccessor):
(JSC::B3::BasicBlock::setSuccessors):
- b3/B3BasicBlock.h:
(JSC::B3::BasicBlock::successors):
(JSC::B3::BasicBlock::successorBlock):
- b3/B3Value.cpp:
(JSC::B3::Value::replaceWithPhi):
(JSC::B3::Value::replaceWithJump):
(JSC::B3::Value::replaceWithOops):
- b3/B3Value.h:
- 11:14 AM Changeset in webkit [203412] by
-
- 4 edits2 adds in trunk
AX: Incorrect behavior for word related text marker functions when there's collapsed whitespace
https://bugs.webkit.org/show_bug.cgi?id=159910
Reviewed by Chris Fleizach.
Source/WebCore:
We are getting a bad CharacterOffset when there's collapsed whitespace. Added a TraverseOptionValidateOffset
option to make sure we are getting the correct CharacterOffset based on the corresponding Range offset. And
fixed a word navigation issue based on that.
Test: accessibility/mac/text-marker-word-nav-collapsed-whitespace.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::rangeForNodeContents):
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::rightWordRange):
(WebCore::AXObjectCache::previousBoundary):
- accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::isNodeInUse):
LayoutTests:
- accessibility/mac/text-marker-word-nav-collapsed-whitespace-expected.txt: Added.
- accessibility/mac/text-marker-word-nav-collapsed-whitespace.html: Added.
- 10:27 AM Changeset in webkit [203411] by
-
- 7 edits in trunk
[Streams API] ReadableStreamController methods should throw if its stream is not readable
https://bugs.webkit.org/show_bug.cgi?id=159871
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-19
Reviewed by Xabier Rodriguez-Calvar.
LayoutTests/imported/w3c:
- web-platform-tests/streams/readable-streams/bad-underlying-sources.https-expected.txt:
Source/WebCore:
Spec now mandates close and enqueue to throw if ReadableStream is not readable.
Covered by rebased and/or modified tests.
- Modules/streams/ReadableStreamController.js:
(enqueue): Throwing a TypeError if controlled stream is not readable.
(close): Ditto.
LayoutTests:
- streams/reference-implementation/pipe-to-options.html: Updated test case according whatwg original test.
- streams/reference-implementation/readable-stream-templated.html: Ditto.
- 10:23 AM Changeset in webkit [203410] by
-
- 2 edits in trunk/Websites/webkit.org
Adjust margins for first-line floating elements and add preset floating video sizing
https://bugs.webkit.org/show_bug.cgi?id=159898
Reviewed by Benjamin Poulain.
- wp-content/themes/webkit/style.css:
(article video.alignright):
(article .alignright:first-child):
(@media only screen and (max-width: 690px)):
(article .alignright:first-child):
(@media only screen and (max-width: 415px)):
(article video.alignright):
(article .alignright:first-child):
- 9:10 AM Changeset in webkit [203409] by
-
- 3 edits6 adds in trunk
Bubbles appear split for a brief moment in Messages
https://bugs.webkit.org/show_bug.cgi?id=159915
rdar://problem/27182267
Reviewed by David Hyatt.
Source/WebCore:
RenderView::repaintRootContents() had a long-standing bug in WebView when the
view is scrolled. repaint() uses visualOverflowRect() but, for the
RenderView, the visualOverflowRect() is the initial containing block
which is anchored at 0,0. When the view is scrolled it's clipped out and
calls to repaintRootContents() have no effect.
Change repaintRootContents() to use layoutOverflowRect(). ScrollView::repaintContentRectangle()
will clip it to the view if necessary.
Test: fast/repaint/scrolled-view-full-repaint.html
- rendering/RenderView.cpp:
(WebCore::RenderView::repaintRootContents):
LayoutTests:
- fast/repaint/scrolled-view-full-repaint-expected.txt: Added.
- fast/repaint/scrolled-view-full-repaint.html: Added.
- platform/ios-simulator-wk1/fast/repaint/scrolled-view-full-repaint-expected.txt: Added.
- platform/mac-wk1/fast/repaint/scrolled-view-full-repaint-expected.txt: Added.
- 9:08 AM Changeset in webkit [203408] by
-
- 44 edits1 add in trunk/LayoutTests/imported/w3c
Refresh WPT tests up to 98ec1ad
https://bugs.webkit.org/show_bug.cgi?id=159879
Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-19
Reviewed by Alex Christensen.
This refresh concerns fetch API tests with a number of test fixes.
Rebasing both window and worker expectations.
- resources/TestRepositories:
- web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt:
- web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt:
- web-platform-tests/fetch/api/basic/mode-same-origin-worker.html:
- web-platform-tests/fetch/api/basic/mode-same-origin.html:
- web-platform-tests/fetch/api/basic/mode-same-origin.js:
- web-platform-tests/fetch/api/cors/cors-basic-worker.html:
- web-platform-tests/fetch/api/cors/cors-basic.html:
- web-platform-tests/fetch/api/cors/cors-basic.js:
(cors):
- web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
- web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-cookies-worker.html:
- web-platform-tests/fetch/api/cors/cors-cookies.html:
- web-platform-tests/fetch/api/cors/cors-cookies.js:
(corsCookies):
- web-platform-tests/fetch/api/cors/cors-no-preflight-worker.html:
- web-platform-tests/fetch/api/cors/cors-no-preflight.html:
- web-platform-tests/fetch/api/cors/cors-no-preflight.js:
(corsNoPreflight):
- web-platform-tests/fetch/api/cors/cors-origin-worker.html:
- web-platform-tests/fetch/api/cors/cors-origin.html:
- web-platform-tests/fetch/api/cors/cors-origin.js:
(corsOrigin):
- web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker.html:
- web-platform-tests/fetch/api/cors/cors-preflight-redirect.html:
- web-platform-tests/fetch/api/cors/cors-preflight-redirect.js:
- web-platform-tests/fetch/api/cors/cors-preflight-referrer-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker.html:
- web-platform-tests/fetch/api/cors/cors-preflight-referrer.html:
- web-platform-tests/fetch/api/cors/cors-preflight-referrer.js:
(corsPreflightReferrer):
- web-platform-tests/fetch/api/cors/cors-preflight-status-worker.html:
- web-platform-tests/fetch/api/cors/cors-preflight-status.html:
- web-platform-tests/fetch/api/cors/cors-preflight-status.js:
- web-platform-tests/fetch/api/cors/cors-redirect-credentials.html:
- web-platform-tests/fetch/api/cors/cors-redirect-credentials.js:
- web-platform-tests/fetch/api/cors/cors-redirect-worker.html:
- web-platform-tests/fetch/api/cors/cors-redirect.html:
- web-platform-tests/fetch/api/cors/cors-redirect.js:
- web-platform-tests/fetch/api/request/request-cache.html:
- web-platform-tests/fetch/api/request/resources/w3c-import.log:
- web-platform-tests/fetch/api/resources/get-host-info.sub.js: Added.
(get_host_info):
- web-platform-tests/fetch/api/resources/utils.js:
(validateBufferFromString):
- web-platform-tests/fetch/api/resources/w3c-import.log:
- web-platform-tests/fetch/api/response/response-clone-expected.txt:
- web-platform-tests/fetch/api/response/response-clone.html:
- web-platform-tests/fetch/api/response/response-consume-stream-expected.txt:
- 7:33 AM Changeset in webkit [203407] by
-
- 2 edits in trunk/Tools
[win] Fixup the register name for STIX Math and Latin Modern Math
Unreviewed follow-up of r203406
Patch by Frederic Wang <fwang@igalia.com> on 2016-07-19
- Scripts/webkitdirs.pm:
(checkInstalledTools):
- 7:18 AM Changeset in webkit [203406] by
-
- 2 edits in trunk/Tools
[win] Update the list of MathML fonts
https://bugs.webkit.org/show_bug.cgi?id=156838
The set of recommended math fonts is now described at
https://trac.webkit.org/wiki/MathML/Fonts
We update the Perl script to use the latest list of fonts.
Patch by Frederic Wang <fwang@igalia.com> on 2016-07-19
Reviewed by Brent Fulgham.
- Scripts/webkitdirs.pm:
(checkInstalledTools):
- 7:12 AM Changeset in webkit [203405] by
-
- 4 edits in trunk/LayoutTests
[Release WK2] LayoutTest imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm failing
https://bugs.webkit.org/show_bug.cgi?id=159724
Unreviewed.
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-19
- TestExpectations: Marking test as failure,passs,crash.
- platform/ios-simulator-wk2/TestExpectations: Removing specific expectation.
- platform/mac-wk2/TestExpectations: Ditto.
- 7:12 AM Changeset in webkit [203404] by
-
- 2 edits in trunk/Source/WebCore
<rdar://problem/27420308> WebCore-7602.1.42 fails to build: error: unused parameter 'vm'
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals): Fixed the !ENABLE(STREAMS_API) build.
- 3:56 AM Changeset in webkit [203403] by
-
- 5 edits in trunk
[Win] The test fast/scrolling/overflow-scroll-past-max.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=159342
Reviewed by Darin Adler.
Source/WebKit/win:
- WebFrame.h: Link fix.
Tools:
Implement required functions in event sender.
- DumpRenderTree/PlatformWin.cmake:
- DumpRenderTree/win/EventSender.cpp:
(monitorWheelEvents): Added.
(callAfterScrollingCompletes): Added.
- 12:59 AM Changeset in webkit [203402] by
-
- 8 edits in trunk
[Streams API] Make ReadableStream properties not enumerable
https://bugs.webkit.org/show_bug.cgi?id=159868
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-19
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/streams/readable-streams/general.https-expected.txt:
- web-platform-tests/streams/readable-streams/readable-stream-reader.https-expected.txt:
Source/WebCore:
Covered by rebased tests.
Uopdating IDL definitions to mark all functions/attributes as not enumerable.
Updating IDL constructor definitions to correctly compute constructor length.
Updating built-in implementation to correctly compute pipeTo length to 1 (second parameter being optional).
- Modules/streams/ReadableStream.idl:
- Modules/streams/ReadableStream.js:
- Modules/streams/ReadableStreamController.idl:
- Modules/streams/ReadableStreamReader.idl:
- 12:41 AM Changeset in webkit [203401] by
-
- 4 edits2 adds in trunk
form.enctype / encoding / method should treat null as "null" string
https://bugs.webkit.org/show_bug.cgi?id=159916
Reviewed by Ryosuke Niwa.
Source/WebCore:
form.enctype / encoding / method should treat null as "null" string:
Previously, WebKit would treat null as the null String, which would
end up removing the existing attribute.
Firefox and Chrome match the specification.
Test: fast/dom/HTMLFormElement/null-handling.html
- html/HTMLFormElement.h:
- html/HTMLFormElement.idl:
LayoutTests:
Add layout test coverage.
- fast/dom/HTMLFormElement/null-handling-expected.txt: Added.
- fast/dom/HTMLFormElement/null-handling.html: Added.
- 12:38 AM Changeset in webkit [203400] by
-
- 9 edits1 add in trunk
Add new aliases to http test server
https://bugs.webkit.org/show_bug.cgi?id=159878
Patch by Youenn Fablet <youenn@apple.com> on 2016-07-19
Reviewed by Darin Adler.
Tools:
Adding testharness.css, testharness.js and testharnessreport.js new aliases to http test servers.
Adding explicitly these links to perl script.
Extracting default alias in an aliases.json file.
Reading that file from python scripts to initialize aliases from that file.
Python script changes covered by unit tests and changed layout test.
- Scripts/webkitperl/httpd.pm:
(getDefaultConfigForTestDirectory): Adding 3 new aliases
- Scripts/webkitpy/layout_tests/servers/aliases.json: Added.
- Scripts/webkitpy/layout_tests/servers/apache_http_server.py:
(LayoutTestApacheHttpd.init): Setting upper class tests_dir member if needed and according constructor parameter.
Adding -c directives for each alias.
- Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py:
(TestLayoutTestApacheHttpd.test_start_cmd): Adding aliases.json mock-up file.
- Scripts/webkitpy/layout_tests/servers/http_server.py:
(Lighttpd.init): Setting upper class tests_dir member if needed and according constructor parameter.
Adding alias directive for each alias.
(Lighttpd._prepare_config):
- Scripts/webkitpy/layout_tests/servers/http_server_base.py:
(HttpServerBase.init): Adding tests_dir member with a default value being layout tests directory.
(HttpServerBase.aliases): Computing of alias from the json file, paths to the real files being relative to
layout tests directory.
- Scripts/webkitpy/layout_tests/servers/http_server_unittest.py:
(TestHttpServer.test_start_cmd): Adding aliases.json mock-up file and updating test expectation.
(TestHttpServer.test_win32_start_and_stop): Adding aliases.json mock-up file.
LayoutTests:
- http/tests/xmlhttprequest/set-bad-headervalue.html: Updating testharness.js and testharnessreport.js links to
ensure these new links are working on test servers.