Timeline
Sep 29, 2017:
- 11:45 PM Changeset in webkit [222679] by
-
- 56 edits in trunk/Source/WebCore
Use smart pointers for creating, adding and removing renderers
https://bugs.webkit.org/show_bug.cgi?id=177603
Reviewed by Zalan Bujtas.
With this patch RenderObject ownership is consistently managed using RenderPtrs. It also
clarifies that in-tree renderers are always owned by the parent renderer.
- renderers are constructed with createRenderer<> which returns RenderPtr
- addChild and related functions take RenderPtrs
- removeChild is replaced with takeChild that returns a RenderPtr
- only addChildInternal/takeChildInternal deal with raw ownder renderer pointers.
There are still a few exception left, noted below, to be fixed later.
- dom/Document.cpp:
(WebCore::Document::webkitWillEnterFullScreenForElement):
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildToContinuation):
(WebCore::RenderBlock::addChild):
(WebCore::RenderBlock::addChildIgnoringContinuation):
(WebCore::RenderBlock::makeChildrenNonInline):
(WebCore::RenderBlock::dropAnonymousBoxChild):
(WebCore::RenderBlock::takeChild):
(WebCore::RenderBlock::createAnonymousBlockWithStyleAndDisplay):
(WebCore::RenderBlock::removeChild): Deleted.
- rendering/RenderBlock.h:
(WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
(WebCore::RenderBlock::createAnonymousBoxWithSameTypeAs const):
(WebCore::RenderBlock::createAnonymousBlock const):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::addChild):
(WebCore::RenderBlockFlow::takeChild):
(WebCore::RenderBlockFlow::removeChild): Deleted.
- rendering/RenderBlockFlow.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::splitAnonymousBoxesAroundChild):
- rendering/RenderBox.h:
(WebCore::RenderBox::createAnonymousBoxWithSameTypeAs const):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::moveChildTo):
- rendering/RenderButton.cpp:
(WebCore::RenderButton::addChild):
(WebCore::RenderButton::takeChild):
(WebCore::RenderButton::setText):
(WebCore::RenderButton::removeChild): Deleted.
- rendering/RenderButton.h:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::addChild):
(WebCore::RenderElement::takeChild):
(WebCore::RenderElement::removeAndDestroyChild):
(WebCore::RenderElement::destroyLeftoverChildren):
Keep the existing behavior and leak the firstLetter renderer. The comment claims they get destroyed by RenderTextFragment.
To be cleaned up later.
(WebCore::RenderElement::insertChildInternal):
(WebCore::RenderElement::takeChildInternal):
(WebCore::RenderElement::handleDynamicFloatPositionChange):
(WebCore::RenderElement::removeChild): Deleted.
(WebCore::RenderElement::removeChildInternal): Deleted.
- rendering/RenderElement.h:
(WebCore::RenderElement::addChildIgnoringContinuation):
- rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreen::willBeDestroyed):
(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
Split wrapRenderer() into two functions, wrapNewRenderer() and wrapExistingRenderer().
The first one deals with adding new renderers to the tree while the latter mutates
existing render tree in-place.
(WebCore::RenderFullScreen::unwrapRenderer):
(WebCore::RenderFullScreen::createPlaceholder):
(WebCore::RenderFullScreen::wrapRenderer): Deleted.
- rendering/RenderFullScreen.h:
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::addChild):
(WebCore::RenderGrid::takeChild):
(WebCore::RenderGrid::removeChild): Deleted.
- rendering/RenderGrid.h:
- rendering/RenderInline.cpp:
(WebCore::RenderInline::addChild):
(WebCore::RenderInline::addChildIgnoringContinuation):
(WebCore::RenderInline::splitInlines):
(WebCore::RenderInline::splitFlow):
(WebCore::RenderInline::addChildToContinuation):
(WebCore::RenderInline::childBecameNonInline):
- rendering/RenderInline.h:
- rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::createInnerBlock):
(RenderMenuList::addChild):
(RenderMenuList::takeChild):
(RenderMenuList::setText):
(RenderMenuList::removeChild): Deleted.
- rendering/RenderMenuList.h:
- rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::evacuateAndDestroy):
(WebCore::RenderMultiColumnFlow::processPossibleSpannerDescendant):
(WebCore::RenderMultiColumnFlow::fragmentedFlowDescendantInserted):
Keep the existing behavior and leak the placeholder renderer.
To be cleaned up later.
(WebCore::RenderMultiColumnFlow::handleSpannerRemoval):
Keep the existing behavior and leak the placeholder renderer.
To be cleaned up later.
- rendering/RenderMultiColumnSpannerPlaceholder.cpp:
(WebCore::RenderMultiColumnSpannerPlaceholder::createAnonymous):
- rendering/RenderMultiColumnSpannerPlaceholder.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::removeFromParentAndDestroy):
(WebCore::RenderObject::willBeDestroyed):
(WebCore::RenderObject::destroy):
(WebCore::RenderObject::removeFromParent): Deleted.
- rendering/RenderObject.h:
- rendering/RenderQuote.cpp:
(WebCore::RenderQuote::updateTextRenderer):
- rendering/RenderRuby.cpp:
(WebCore::createAnonymousRubyInlineBlock):
(WebCore::RenderRubyAsInline::addChild):
(WebCore::RenderRubyAsInline::takeChild):
(WebCore::RenderRubyAsBlock::addChild):
(WebCore::RenderRubyAsBlock::takeChild):
(WebCore::RenderRubyAsInline::removeChild): Deleted.
(WebCore::RenderRubyAsBlock::removeChild): Deleted.
- rendering/RenderRuby.h:
- rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveInlineChildren):
- rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::rubyBaseSafe):
(WebCore::RenderRubyRun::addChild):
(WebCore::RenderRubyRun::takeChild):
(WebCore::RenderRubyRun::createRubyBase const):
(WebCore::RenderRubyRun::staticCreateRubyRun):
(WebCore::RenderRubyRun::removeChild): Deleted.
- rendering/RenderRubyRun.h:
- rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild):
(WebCore::RenderTable::createTableWithStyle):
(WebCore::RenderTable::createAnonymousWithParentRenderer):
- rendering/RenderTable.h:
(WebCore::RenderTable::createAnonymousBoxWithSameTypeAs const):
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::createTableCellWithStyle):
(WebCore::RenderTableCell::createAnonymousWithParentRenderer):
- rendering/RenderTableCell.h:
(WebCore::RenderTableCell::createAnonymousBoxWithSameTypeAs const):
- rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::addChild):
(WebCore::RenderTableRow::createTableRowWithStyle):
(WebCore::RenderTableRow::createAnonymousWithParentRenderer):
- rendering/RenderTableRow.h:
(WebCore::RenderTableRow::createAnonymousBoxWithSameTypeAs const):
- rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addChild):
(WebCore::RenderTableSection::createTableSectionWithStyle):
(WebCore::RenderTableSection::createAnonymousWithParentRenderer):
- rendering/RenderTableSection.h:
(WebCore::RenderTableSection::createAnonymousBoxWithSameTypeAs const):
- rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):
- rendering/mathml/RenderMathMLFenced.h:
- rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::addChild):
(WebCore::RenderSVGContainer::takeChild):
(WebCore::RenderSVGContainer::removeChild): Deleted.
- rendering/svg/RenderSVGContainer.h:
- rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::addChild):
(WebCore::RenderSVGInline::takeChild):
(WebCore::RenderSVGInline::removeChild): Deleted.
- rendering/svg/RenderSVGInline.h:
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::addChild):
(WebCore::RenderSVGRoot::takeChild):
(WebCore::RenderSVGRoot::removeChild): Deleted.
- rendering/svg/RenderSVGRoot.h:
- rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::addChild):
(WebCore::RenderSVGText::takeChild):
(WebCore::RenderSVGText::removeChild): Deleted.
- rendering/svg/RenderSVGText.h:
- style/RenderTreePosition.h:
(WebCore::RenderTreePosition::insert):
- style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::createTextRenderer):
- style/RenderTreeUpdaterFirstLetter.cpp:
(WebCore::updateFirstLetterStyle):
(WebCore::createFirstLetterRenderer):
- style/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::createContentRenderers):
- style/RenderTreeUpdaterListItem.cpp:
(WebCore::RenderTreeUpdater::ListItem::updateMarker):
- style/RenderTreeUpdaterMultiColumn.cpp:
(WebCore::RenderTreeUpdater::MultiColumn::createFragmentedFlow):
- 10:07 PM Changeset in webkit [222678] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Styles Redesign: support undo/redo of manual edits
https://bugs.webkit.org/show_bug.cgi?id=177314
Reviewed by Joseph Pecoraro.
Make sure Command-Z and Command-Shift-Z undo changes in the styles sidebar
when not focused on a contentEditable field.
- UserInterface/Views/EditingSupport.js:
(WI.isEventTargetAnEditableField):
Make sure WI._undoKeyboardShortcut doesn't call WI.undo() when editing inside of a contentEditable element.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor):
Call style setter to setup event listeners during instantiation.
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set style):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
Update style declaration section when it isn't focused.
This is the same logic as in the old styles sidebar (CSSStyleDeclarationTextEditor style setter).
- 9:31 PM Changeset in webkit [222677] by
-
- 8 edits in trunk/Source/WebCore
Remove redundant RenderObject::selectionRoot and dependencies
https://bugs.webkit.org/show_bug.cgi?id=177696
Reviewed by Ryosuke Niwa.
There's only one selection root (RenderView).
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionState):
(WebCore::InlineTextBox::selectionStartEnd const):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::selectionRoot const): Deleted.
(WebCore::RenderObject::selectionStartEnd const): Deleted.
- rendering/RenderObject.h:
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::isSelected const):
- rendering/RenderText.cpp:
(WebCore::RenderText::collectSelectionRectsForLineBoxes):
- rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::setSelectionState):
- rendering/RenderView.h:
- rendering/SelectionSubtreeRoot.h:
- 7:11 PM Changeset in webkit [222676] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
Follow-up to https://trac.webkit.org/r222239 to fix crashes.
rdar://problem/34705779
Addressing review comments that I somehow landed without.
- WebView/WebHTMLView.mm: Undo adding #if guards around -_web_uniqueWebDataURL
- 6:16 PM Changeset in webkit [222675] by
-
- 18 edits14 adds in trunk
[DFG] Support ArrayPush with multiple args
https://bugs.webkit.org/show_bug.cgi?id=175823
Reviewed by Saam Barati.
JSTests:
- microbenchmarks/array-push-0.js: Added.
(arrayPush0):
- microbenchmarks/array-push-1.js: Added.
(arrayPush1):
- microbenchmarks/array-push-2.js: Added.
(arrayPush2):
- microbenchmarks/array-push-3.js: Added.
(arrayPush3):
- stress/array-push-multiple-contiguous.js: Added.
(shouldBe):
(test):
- stress/array-push-multiple-double-nan.js: Added.
(shouldBe):
(test):
- stress/array-push-multiple-double.js: Added.
(shouldBe):
(test):
- stress/array-push-multiple-int32.js: Added.
(shouldBe):
(test):
- stress/array-push-multiple-many-contiguous.js: Added.
(shouldBe):
(test):
- stress/array-push-multiple-many-double.js: Added.
(shouldBe):
(test):
- stress/array-push-multiple-many-int32.js: Added.
(shouldBe):
(test):
- stress/array-push-multiple-many-storage.js: Added.
(shouldBe):
(test):
- stress/array-push-multiple-storage.js: Added.
(shouldBe):
(test):
- stress/array-push-with-force-exit.js: Added.
(target.createBuiltin):
Source/JavaScriptCore:
Reviewed by Saam Barati.
This patch implements ArrayPush(with multiple arguments) in DFG and FTL. Previously, they are not handled
by ArrayPush. Then they go to generic direct call to Array#push and it does in slow path. This patch
extends ArrayPush to push multiple arguments in a bulk push manner.
The problem of ArrayPush is that we need to perform ArrayPush atomically: If OSR exit occurs in the middle
of ArrayPush, we incorrectly push pushed elements twice. Once we start pushing values, we should not exit.
But we do not want to iterate elements twice, once for type checks and once for actually pushing it. It
could move elements between registers and memory back and forth.
This patch achieves the above goal by separating type checks from ArrayPush. When starting ArrayPush, type
checks for elements are already done by separately emitted Check nodes.
We also add JSArray::pushInline for DFG operations just calling JSArray::push. And we also use it in
arrayProtoFuncPush's fast path.
This patch significantly improves performance of
push(multiple args).
baseline patched
Microbenchmarks:
array-push-0 461.8455+-28.9995 151.3438+-6.5653 definitely 3.0516x faster
array-push-1 133.8845+-7.0349 ? 136.1775+-5.8327 ? might be 1.0171x slower
array-push-2 675.6555+-13.4645 145.8747+-6.4621 definitely 4.6318x faster
array-push-3 849.5284+-15.2540 253.4421+-9.1249 definitely 3.3520x faster
baseline patched
SixSpeed:
spread-literal.es5 90.3482+-6.6514 24.8123+-2.3304 definitely 3.6413x faster
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArrayPush):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStoreBarrierInsertionPhase.cpp:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
- jit/JITOperations.h:
- runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncPush):
- runtime/JSArray.cpp:
(JSC::JSArray::push):
- runtime/JSArray.h:
- runtime/JSArrayInlines.h:
(JSC::JSArray::pushInline):
- 5:54 PM Changeset in webkit [222674] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION: ASSERTION FAILED: m_provisionalURL.isEmpty() in WebKit::FrameLoadState::didStartProvisionalLoad
https://bugs.webkit.org/show_bug.cgi?id=177491
Patch by Alex Christensen <achristensen@webkit.org> on 2017-09-29
Reviewed by Andy Estes.
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::setUpWillSubmitFormListener):
(WebKit::WebFrame::continueWillSubmitForm):
(WebKit::WebFrame::invalidatePolicyListener):
Speculative fix for a flaky assertion.
Restore the clearing of the policy listeners we used to have when form submission was treated as a policy.
- 5:35 PM Changeset in webkit [222673] by
-
- 21 edits in trunk
http/tests/preconnect/link-rel-preconnect-https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=177673
Reviewed by Alex Christensen.
Source/WebCore:
No new tests, unskipped test that is now passing consistently.
- loader/LinkLoader.cpp:
(WebCore::LinkLoader::loadLink):
- loader/LoaderStrategy.h:
Source/WebKit:
Update PreconnectTask to query the client when a certificate needs to be
validated. This allows WebKitTestRunner to ignore invalid certificates
and this causes http/tests/preconnect/link-rel-preconnect-https.html
to pass consistently.
To avoid duplicating code, PreconnectTask now uses NetworkLoad internally
instead of using a NetworkDataTask directly.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::preconnectTo):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::generateCanAuthenticateIdentifier):
(WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::preconnectTo):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/PreconnectTask.cpp:
(WebKit::PreconnectTask::PreconnectTask):
(WebKit::PreconnectTask::~PreconnectTask):
(WebKit::PreconnectTask::willSendRedirectedRequest):
(WebKit::PreconnectTask::didReceiveResponse):
(WebKit::PreconnectTask::didReceiveBuffer):
(WebKit::PreconnectTask::didFinishLoading):
(WebKit::PreconnectTask::didFailLoading):
(WebKit::PreconnectTask::didSendData):
(WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync):
(WebKit::PreconnectTask::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::PreconnectTask::frameID const):
(WebKit::PreconnectTask::pageID const):
- NetworkProcess/PreconnectTask.h:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::preconnectTo):
- WebProcess/Network/WebLoaderStrategy.h:
Source/WebKitLegacy:
- WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::preconnectTo):
- WebCoreSupport/WebResourceLoadScheduler.h:
LayoutTests:
- http/tests/preconnect/link-rel-preconnect-https-expected.txt:
Rebaseline test now that it is passing.
- platform/wk2/TestExpectations:
Uskip test as it should no longer be flaky.
- 5:29 PM Changeset in webkit [222672] by
-
- 5 edits in trunk
Expose WebPreferences::webGLEnabled through WKPreferences
https://bugs.webkit.org/show_bug.cgi?id=177692
<rdar://problem/24110556>
Reviewed by Andy Estes.
Source/WebKit:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setWebGLEnabled:]):
(-[WKPreferences _webGLEnabled]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:
(-[AlertSaver alert]):
(-[AlertSaver webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):
- 4:48 PM Changeset in webkit [222671] by
-
- 7 edits1 add in trunk
Custom GetterSetterAccessCase does not use the correct slotBase when making call
https://bugs.webkit.org/show_bug.cgi?id=177639
Reviewed by Geoffrey Garen.
JSTests:
- stress/custom-get-set-inline-caching-one-level-up-proto-chain.js: Added.
(assert):
(Class):
(items.forEach):
(set get for):
Source/JavaScriptCore:
The bug occurred when you had a custom set value. Custom set/get
values are passed the property holder, not the base of the access.
If we had an object chain like this:
o = {proto: thingWithCustomSetValue}
We would end up not providing thingWithCustomSetValue as the argument
to the PutValueFunc. The reason is, we would use generateConditionsForPrototypePropertyHitCustom
for custom sets. This would return to us an empty ConditionSet, because
the property holder was only one level up the prototype chain. The reason
is, it didn't generate a condition for the slot holder, because the
protocol for custom set/get is that if an object responds to a custom
setter/getter, it will continue to respond to that getter/setter for
the lifetime of that object. Therefore, it's not strictly necessary to
generate an OPC for the slot base for custom accesses. However, AccessCase
uses !m_conditionSet.isEmtpy() to indicate that the IC is doing a prototype
access. With the above object "o", we were doing a prototype access, but we
had an empty condition set. This lead us to passing the base instead of
the property holder to the custom set value function, which is incorrect.
With custom getters, we never called to into the generateConditionsForPrototypePropertyHitCustom
API. Gets would always call into generateConditionsForPrototypePropertyHit, which
will generate an OPC on the slot base, even if it isn't strictly necessary for custom accessors.
This patch simply removes generateConditionsForPrototypePropertyHitCustom
and aligns the set case with the get case. It makes us properly detect
when we're doing a prototype access with the above object "o". If we find
that generateConditionsForPrototypePropertyHitCustom was a worthwhile
optimization to have, we can re-introduce it. We'll just need to pipe through
a new notion of when we're doing prototype accesses that doesn't rely solely
on !m_conditionSet.isEmpty().
- bytecode/ObjectPropertyConditionSet.cpp:
(JSC::generateConditionsForPrototypePropertyHitCustom): Deleted.
- bytecode/ObjectPropertyConditionSet.h:
- jit/Repatch.cpp:
(JSC::tryCachePutByID):
- jsc.cpp:
(JSTestCustomGetterSetter::JSTestCustomGetterSetter):
(JSTestCustomGetterSetter::create):
(JSTestCustomGetterSetter::createStructure):
(customGetAccessor):
(customGetValue):
(customSetAccessor):
(customSetValue):
(JSTestCustomGetterSetter::finishCreation):
(GlobalObject::finishCreation):
(functionLoadGetterFromGetterSetter):
(functionCreateCustomTestGetterSetter):
- runtime/PropertySlot.h:
(JSC::PropertySlot::setCustomGetterSetter):
- 4:42 PM Changeset in webkit [222670] by
-
- 3 edits in trunk/Source/WebCore
Extract logic to compute text to render into common function
https://bugs.webkit.org/show_bug.cgi?id=177607
Reviewed by Zalan Bujtas.
Currently we duplicate the logic to compute the text to render
throughout InlineTextBox. Instead we should move this common
code into a member function. This will allow us to audit the
the code paths that render text and ensure such code paths
account for hyphenation and combined text, if applicable.
Note that a TextRun does not own the text. The caller owns it.
No functionality changed. So, no new tests.
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::localSelectionRect const): Modified to
use text() and createTextRun() to compute the text to render
and the text run for it.
(WebCore::InlineTextBox::paint): Ditto.
(WebCore::InlineTextBox::paintSelection): Ditto. Additionally query
lineStyle() for the style of the line instead of requiring it to be
passed as an argument.
(WebCore::InlineTextBox::paintTextSubrangeBackground): Modified
to use text() and createTextRun() to compute the text to render
and the text run for it.
(WebCore::InlineTextBox::paintDocumentMarker): Ditto.
(WebCore::InlineTextBox::offsetForPosition const): Ditto.
(WebCore::InlineTextBox::positionForOffset const): Ditto.
(WebCore::InlineTextBox::createTextRun const): Added; formerly named constructTextRun.
(WebCore::InlineTextBox::text const): Added.
(WebCore::InlineTextBox::substringToRender const): Deleted.
(WebCore::InlineTextBox::hyphenatedStringForTextRun const): Deleted.
(WebCore::InlineTextBox::constructTextRun const): Deleted.
- rendering/InlineTextBox.h:
(WebCore::InlineTextBox::substringToRender): Deleted.
(WebCore::InlineTextBox::hyphenatedStringForTextRun): Deleted.
(WebCore::InlineTextBox::constructTextRun): Deleted; renamed to createTextRun.
- 3:50 PM Changeset in webkit [222669] by
-
- 4 edits in trunk/Source/WebCore
Remove SelectionSubtreeRoot::RenderSubtreesMap
https://bugs.webkit.org/show_bug.cgi?id=177685
Reviewed by Andy Estes.
This is in preparation of removing redundant SelectionSubtreeRoot.
(Now that we removed regions, RenderView is the only selection root)
No change in functionality.
- rendering/RenderView.cpp:
(WebCore::RenderView::selectionBounds const):
(WebCore::RenderView::subtreeSelectionBounds const):
(WebCore::RenderView::repaintSelection const):
(WebCore::RenderView::repaintSubtreeSelection const):
(WebCore::RenderView::setSelection):
(WebCore::isValidObjectForNewSelection):
(WebCore::RenderView::clearSubtreeSelection const):
(WebCore::RenderView::applySubtreeSelection):
(WebCore::RenderView::updateSelectionForSubtrees): Deleted.
- rendering/RenderView.h:
- rendering/SelectionSubtreeRoot.h:
- 3:25 PM Changeset in webkit [222668] by
-
- 13 edits3 deletes in trunk
Unreviewed, rolling out r222652.
This broke an internal build.
Reverted changeset:
"Build libwebrtc unit tests executables"
https://bugs.webkit.org/show_bug.cgi?id=177211
http://trac.webkit.org/changeset/222652
- 3:08 PM Changeset in webkit [222667] by
-
- 10 edits in trunk/Source/WebKit
[WK2][NETWORK_SESSION] Move some authentication-related code to avoid duplication
https://bugs.webkit.org/show_bug.cgi?id=177667
Reviewed by Alex Christensen.
Move some authentication-related code to avoid duplication.
This is a preparation code supporting Download authentication
as Download uses a NSURLSessionDownloadTask and not a
NetworkDataTask.
- NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::setSuggestedFilename):
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::allowsSpecificHTTPSCertificateForHost):
- NetworkProcess/NetworkSession.h:
- NetworkProcess/PreconnectTask.cpp:
(WebKit::PreconnectTask::didReceiveChallenge):
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::didReceiveChallenge):
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(WebKit::certificatesMatch):
(WebKit::NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost):
- 2:35 PM Changeset in webkit [222666] by
-
- 5 edits1 add in trunk
Fix WKWebViewConfigurationPrivate after r222663
https://bugs.webkit.org/show_bug.cgi?id=177644
Source/WebKit:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/Configuration.mm: Added.
(TEST):
- 2:19 PM Changeset in webkit [222665] by
-
- 5 edits3 adds in trunk/Source/WebCore
[Curl] Extract a features to manage HTTP communication from ResourceHandle
https://bugs.webkit.org/show_bug.cgi?id=175148
Patch by Basuke Suzuki <Basuke Suzuki> on 2017-09-29
Reviewed by Alex Christensen.
- platform/Curl.cmake:
- platform/network/curl/CurlRequest.cpp: Added.
(WebCore::CurlRequest::CurlRequest):
(WebCore::CurlRequest::setUserPass):
(WebCore::CurlRequest::start):
(WebCore::CurlRequest::startWithJobManager):
(WebCore::CurlRequest::cancel):
(WebCore::CurlRequest::suspend):
(WebCore::CurlRequest::resume):
(WebCore::CurlRequest::callDelegate):
(WebCore::CurlRequest::setupTransfer):
(WebCore::CurlRequest::willSetupSslCtx):
(WebCore::CurlRequest::willSendData):
(WebCore::CurlRequest::didReceiveHeader):
(WebCore::CurlRequest::didReceiveData):
(WebCore::CurlRequest::didCompleteTransfer):
(WebCore::CurlRequest::didCancelTransfer):
(WebCore::CurlRequest::resolveBlobReferences):
(WebCore::CurlRequest::setupPUT):
(WebCore::CurlRequest::setupPOST):
(WebCore::CurlRequest::setupFormData):
(WebCore::CurlRequest::invokeDidReceiveResponseForFile):
(WebCore::CurlRequest::invokeDidReceiveResponse):
(WebCore::CurlRequest::setPaused):
(WebCore::CurlRequest::willSetupSslCtxCallback):
(WebCore::CurlRequest::willSendDataCallback):
(WebCore::CurlRequest::didReceiveHeaderCallback):
(WebCore::CurlRequest::didReceiveDataCallback):
- platform/network/curl/CurlRequest.h: Added.
(WebCore::CurlRequest::~CurlRequest):
(WebCore::CurlRequest::setDelegate):
(WebCore::CurlRequest::isSyncRequest):
(WebCore::CurlRequest::getNetworkLoadMetrics):
- platform/network/curl/CurlRequestDelegate.h: Added.
- platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::platformSetDefersLoading):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceHandle::receivedCancellation):
- platform/network/curl/ResourceHandleCurlDelegate.cpp:
(WebCore::ResourceHandleCurlDelegate::ResourceHandleCurlDelegate):
(WebCore::ResourceHandleCurlDelegate::~ResourceHandleCurlDelegate):
(WebCore::ResourceHandleCurlDelegate::start):
(WebCore::ResourceHandleCurlDelegate::cancel):
(WebCore::ResourceHandleCurlDelegate::setDefersLoading):
(WebCore::ResourceHandleCurlDelegate::setAuthentication):
(WebCore::ResourceHandleCurlDelegate::dispatchSynchronousJob):
(WebCore::ResourceHandleCurlDelegate::createCurlRequest):
(WebCore::ResourceHandleCurlDelegate::cancelledOrClientless):
(WebCore::ResourceHandleCurlDelegate::curlDidReceiveResponse):
(WebCore::ResourceHandleCurlDelegate::curlDidReceiveBuffer):
(WebCore::ResourceHandleCurlDelegate::curlDidComplete):
(WebCore::ResourceHandleCurlDelegate::curlDidFailWithError):
(WebCore::ResourceHandleCurlDelegate::response):
(WebCore::ResourceHandleCurlDelegate::getCredential):
(WebCore::ResourceHandleCurlDelegate::retain): Deleted.
(WebCore::ResourceHandleCurlDelegate::release): Deleted.
(WebCore::ResourceHandleCurlDelegate::setupTransfer): Deleted.
(WebCore::ResourceHandleCurlDelegate::didCompleteTransfer): Deleted.
(WebCore::ResourceHandleCurlDelegate::didCancelTransfer): Deleted.
(WebCore::ResourceHandleCurlDelegate::setupAuthentication): Deleted.
(WebCore::ResourceHandleCurlDelegate::didReceiveAllHeaders): Deleted.
(WebCore::ResourceHandleCurlDelegate::didReceiveContentData): Deleted.
(WebCore::ResourceHandleCurlDelegate::handleLocalReceiveResponse): Deleted.
(WebCore::ResourceHandleCurlDelegate::prepareSendData): Deleted.
(WebCore::ResourceHandleCurlDelegate::didFinish): Deleted.
(WebCore::ResourceHandleCurlDelegate::didFail): Deleted.
(WebCore::ResourceHandleCurlDelegate::setupPOST): Deleted.
(WebCore::ResourceHandleCurlDelegate::setupPUT): Deleted.
(WebCore::ResourceHandleCurlDelegate::getFormElementsCount): Deleted.
(WebCore::ResourceHandleCurlDelegate::setupFormData): Deleted.
(WebCore::ResourceHandleCurlDelegate::applyAuthentication): Deleted.
(WebCore::ResourceHandleCurlDelegate::getNetworkLoadMetrics): Deleted.
(WebCore::ResourceHandleCurlDelegate::willSetupSslCtx): Deleted.
(WebCore::ResourceHandleCurlDelegate::didReceiveHeader): Deleted.
(WebCore::ResourceHandleCurlDelegate::didReceiveData): Deleted.
(WebCore::ResourceHandleCurlDelegate::willSendData): Deleted.
(WebCore::ResourceHandleCurlDelegate::willSetupSslCtxCallback): Deleted.
(WebCore::ResourceHandleCurlDelegate::didReceiveHeaderCallback): Deleted.
(WebCore::ResourceHandleCurlDelegate::didReceiveDataCallback): Deleted.
(WebCore::ResourceHandleCurlDelegate::willSendDataCallback): Deleted.
- platform/network/curl/ResourceHandleCurlDelegate.h:
- 2:14 PM Changeset in webkit [222664] by
-
- 32 edits1 copy4 moves1 add in trunk/Source
Split some logic out of VisitedLinkStore and make it reusable
https://bugs.webkit.org/show_bug.cgi?id=177575
Reviewed by Alex Christensen.
Source/WebCore:
Rename LinkHash to SharedStringHash to make it more reusable.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/StyleResolver.cpp:
- dom/VisitedLinkState.cpp:
(WebCore::linkHashForElement):
(WebCore::VisitedLinkState::invalidateStyleForLink):
(WebCore::VisitedLinkState::determineLinkStateSlowCase):
- dom/VisitedLinkState.h:
- html/HTMLAnchorElement.h:
(WebCore::HTMLAnchorElement::visitedLinkHash const):
- loader/EmptyClients.cpp:
- loader/HistoryController.cpp:
(WebCore::addVisitedLink):
- page/Page.cpp:
(WebCore::Page::invalidateStylesForLink):
- page/Page.h:
- page/VisitedLinkStore.cpp:
(WebCore::VisitedLinkStore::invalidateStylesForLink):
- page/VisitedLinkStore.h:
- platform/SharedStringHash.cpp: Renamed from Source/WebCore/platform/LinkHash.cpp.
(WebCore::needsTrailingSlash):
(WebCore::computeSharedStringHashInline):
(WebCore::computeSharedStringHash):
- platform/SharedStringHash.h: Renamed from Source/WebCore/platform/LinkHash.h.
(WebCore::SharedStringHashHash::hash):
(WebCore::SharedStringHashHash::equal):
(WebCore::SharedStringHashHash::avoidDeletedValue):
Source/WebKit:
Split some logic out of VisitedLinkStore and make it reusable for other purposes than
visited links and from other processes than the UIProcess.
The plan is to reuse the new SharedStringHashStore for Service Worker registration
on StorageProcess side and querying on WebContent process side.
- CMakeLists.txt:
- Shared/SharedStringHashStore.cpp: Added.
(WebKit::nextPowerOf2):
(WebKit::tableSizeForKeyCount):
(WebKit::SharedStringHashStore::SharedStringHashStore):
(WebKit::SharedStringHashStore::createSharedMemoryHandle):
(WebKit::SharedStringHashStore::add):
(WebKit::SharedStringHashStore::clear):
(WebKit::SharedStringHashStore::resizeTable):
(WebKit::SharedStringHashStore::pendingSharedStringHashesTimerFired):
- Shared/SharedStringHashStore.h: Copied from Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.h.
(WebKit::SharedStringHashStore::Client::~Client):
(WebKit::SharedStringHashStore::isEmpty const):
- Shared/SharedStringHashTable.cpp: Renamed from Source/WebKit/Shared/VisitedLinkTable.cpp.
(WebKit::SharedStringHashTable::SharedStringHashTable):
(WebKit::SharedStringHashTable::~SharedStringHashTable):
(WebKit::SharedStringHashTable::setSharedMemory):
(WebKit::SharedStringHashTable::add):
(WebKit::SharedStringHashTable::contains const):
(WebKit::SharedStringHashTable::clear):
- Shared/SharedStringHashTable.h: Renamed from Source/WebKit/Shared/VisitedLinkTable.h.
- UIProcess/API/C/WKContext.cpp:
(WKContextAddVisitedLink):
- UIProcess/API/Cocoa/_WKVisitedLinkStore.mm:
(-[_WKVisitedLinkStore addVisitedLinkWithURL:]):
- UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::VisitedLinkStore):
(WebKit::VisitedLinkStore::addProcess):
(WebKit::VisitedLinkStore::addVisitedLinkHash):
(WebKit::VisitedLinkStore::removeAll):
(WebKit::VisitedLinkStore::addVisitedLinkHashFromPage):
(WebKit::VisitedLinkStore::sendStoreHandleToProcess):
(WebKit::VisitedLinkStore::didInvalidateSharedMemory):
(WebKit::VisitedLinkStore::didAddSharedStringHashes):
- UIProcess/VisitedLinkStore.h:
- UIProcess/WebProcessPool.cpp:
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::isLinkVisited):
(WebKit::VisitedLinkTableController::addVisitedLink):
(WebKit::VisitedLinkTableController::visitedLinkStateChanged):
- WebProcess/WebPage/VisitedLinkTableController.h:
- WebProcess/WebPage/VisitedLinkTableController.messages.in:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebVisitedLinkStore.h:
- WebCoreSupport/WebVisitedLinkStore.mm:
(WebVisitedLinkStore::addVisitedLink):
(WebVisitedLinkStore::removeVisitedLink):
(WebVisitedLinkStore::isLinkVisited):
(WebVisitedLinkStore::addVisitedLinkHash):
Source/WebKitLegacy/win:
- WebCoreSupport/WebVisitedLinkStore.cpp:
(WebVisitedLinkStore::addVisitedLink):
(WebVisitedLinkStore::isLinkVisited):
(WebVisitedLinkStore::addVisitedLinkHash):
- WebCoreSupport/WebVisitedLinkStore.h:
- 1:50 PM Changeset in webkit [222663] by
-
- 4 edits in trunk/Source/WebKit
Add WKWebViewConfiguration SPI equivalent to WKPageConfigurationSetBackgroundCPULimit
https://bugs.webkit.org/show_bug.cgi?id=177644
<rdar://problem/34338698>
Reviewed by Geoffrey Garen.
WKPageConfigurationSetBackgroundCPULimit is a setter of a std::optional<double> with no accessor.
It's never set to 0 in practice, so I guess the ObjC equivalent is a double that is zero or nonzero.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _setCPULimit:]):
(-[WKWebViewConfiguration _cpuLimit]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- 12:54 PM Changeset in webkit [222662] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Open Resource Dialog icons are blurry (24x24 instead of 32x32)
https://bugs.webkit.org/show_bug.cgi?id=177631
<rdar://problem/34729636>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-09-29
Reviewed by Matt Baker.
- UserInterface/Views/OpenResourceDialog.css:
(.open-resource-dialog > .tree-outline.large .item):
(.open-resource-dialog > .tree-outline.large .item .icon):
(.open-resource-dialog .tree-outline.large .item .titles):
Make the rows large enough to fit the full 32x32 icon instead of a blurry 24x24.
- 12:47 PM Changeset in webkit [222661] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught exception with populate find keyboard shortcut
https://bugs.webkit.org/show_bug.cgi?id=177672
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-09-29
Reviewed by Matt Baker.
- UserInterface/Base/Main.js:
The focusedContentView can be null so bail if that is the case.
- 12:32 PM Changeset in webkit [222660] by
-
- 2 edits in trunk/Source/WebCore
[WinCairo] Fix build after rev 222610
https://bugs.webkit.org/show_bug.cgi?id=177674
Reviewed by Per Arne Vollan.
No new tests. No change in behavior.
- platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
- 11:53 AM Changeset in webkit [222659] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Remove unused pre-iOS 11 codepaths for writing to the pasteboard
https://bugs.webkit.org/show_bug.cgi?id=177669
Reviewed by Tim Horton.
Now that PlatformPasteboardIOS codepaths for writing data on drag and copy have been unified to both use
NSItemProviders, we can remove the legacy codepath that called -setItems on UIPasteboard, since nothing uses it
any more. No change in behavior.
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write):
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
(WebCore::PlatformPasteboard::allowReadingURLAtIndex const):
(WebCore::PlatformPasteboard::readURL):
(WebCore::richTextRepresentationsForPasteboardWebContent): Deleted.
- 11:49 AM Changeset in webkit [222658] by
-
- 18 edits13 deletes in trunk
Unreviewed, rolling out r222563, r222565, and r222581.
https://bugs.webkit.org/show_bug.cgi?id=177675
"It causes a crash when playing youtube videos" (Requested by
saamyjoon on #webkit).
Reverted changesets:
"[DFG] Support ArrayPush with multiple args"
https://bugs.webkit.org/show_bug.cgi?id=175823
http://trac.webkit.org/changeset/222563
"Unreviewed, build fix after r222563"
https://bugs.webkit.org/show_bug.cgi?id=175823
http://trac.webkit.org/changeset/222565
"Unreviewed, fix x86 breaking due to exhausted registers"
https://bugs.webkit.org/show_bug.cgi?id=175823
http://trac.webkit.org/changeset/222581
- 11:48 AM Changeset in webkit [222657] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, temporarily mark http/tests/preconnect/link-rel-preconnect-https.html as flaky.
- platform/wk2/TestExpectations:
- 11:46 AM Changeset in webkit [222656] by
-
- 25 edits9 adds in trunk
Image pasting is not working on tineye.com / gmail.com / GitHub.com due to lack of support for DataTransfer.items
https://bugs.webkit.org/show_bug.cgi?id=170449
<rdar://problem/31432525>
Reviewed by Wenson Hsieh.
Source/WebCore:
The bug was caused by image types in NSPasteboard or UIPasteboard not being treated as file items in dataTransfer.
Because there is no Web API to get binary data out of dataTransfer unlike text data, we need to treat any image
data as files even if they're entirely in the memory.
This patch introduces the notion of pasteboard types to be treated as files and expose them on dataTransfer.files
as well as dataTransfer.items of type "file". Because in-memory images are stored as TIFF in macOS and websites
don't typically support image/tiff, we convert all such in-memory TIFF images into PNG images ourselves for
a better web compatibility. This is done inside read(PasteboardFileReader&) in PasteboardCocoa.mm.
Note that PasteboardFileReader cannot directly have RefPtr<File> as a member variable as code in WebCore/platform
including Pasteboard code is not supposed to depend on WebCore types. WebCorePasteboardFileReader, a subclass of
PasteboardFileReader was introduced to resolve this reverse dependency.
In addition, this patch removes the restriction on dataTransfer.items that it only includes files of the supported
MIME types. This was unwarranted since 1. we don't have any restriction on what an user can drag & drop into a web
page via input element so there is no security benefit in this, and 2. the user should be able to copy & paste
whatever file he/she desires regardless of the MIME type on websites like Google Drive.
Tests: PasteImage
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- WebCore/PlatformMac.cmake:
- dom/DataTransfer.cpp:
(WebCore::DataTransfer::types const): Now excludes image/gif, image/png, image/jpeg, and image/tiff.
(WebCore::DataTransfer::files const): Add fake files we create for in-memory images but only when there are no real
files in the pasteboard since it's expensive to copy image data across UI/Web processes to create a blob URL.
- dom/DataTransferItemList.cpp:
(WebCore::DataTransferItemList::ensureItems const): Just expose every file type. If the user had decided to paste
a file, it's okay for the page to access that file regardless of whether it's a zip file, JPEG image, etc...
- editing/WebCorePasteboardFileReader.cpp:
(WebCorePasteboardFileReader::~WebCorePasteboardFileReader):
(WebCorePasteboardFileReader::read):
- editing/WebCorePasteboardFileReader.h:
(WebCorePasteboardFileReader):
- platform/Pasteboard.cpp:
(WebCore::PasteboardImage::PasteboardImage): Moved from platform specific translation units.
(WebCore::PasteboardImage::~PasteboardImage): Ditto.
- platform/Pasteboard.h:
(PasteboardFileReader): Added.
(* platform/StaticPasteboard.h:
(StaticPasteboard::typesForBindings): Added.
(StaticPasteboard::typesTreatedAsFiles): Added. Returns an empty list we don't support the web content writing image
files into pasteboard at the moment.
- platform/cocoa/PasteboardCocoa.mm: Added.
(WebCore::PasteboardWebContent::PasteboardWebContent): Moved from PasteboardMac.mm and PasteboardIOS.mm.
(WebCore::PasteboardWebContent::~PasteboardWebContent):
(WebCore::cocoaTypeToImageType): Added.
(WebCore::imageTypeToMIMEType): Added. Pretends to have image/png when the Cocoa type is image/tiff since most of
websites don't support image/tiff.
(WebCore::imageTypeToFakeFilename): Added.
(WebCore::mimeTypeToImageType): Added.
(WebCore::Pasteboard::shouldTreatCocoaTypeAsFile): Added. Pasteboard::typesForBindings excludes the type for which
this function returns true.
(WebCore::Pasteboard::typesTreatedAsFiles): Returns the list of all in-memory image types in the pasteboard.
(WebCore::Pasteboard::read): Added. On macOS, we convert TIFF to PNG for web compatibility. We don't do this rather
memory intensive coercion on iOS where most of apps like Photos put PNG file into the pasteboard in the first place.
- platform/gtk/PasteboardGtk.cpp:
(WebCore::PasteboardImage::PasteboardImage): Deleted.
(WebCore::PasteboardImage::~PasteboardImage): Deleted.
(WebCore::Pasteboard::read):
(WebCore::Pasteboard::typesForBindings): Renamed from types.
(WebCore::Pasteboard::typesTreatedAsFiles):
- platform/ios/PasteboardIOS.mm:
(WebCore::addHTMLClipboardTypesForCocoaType):
(WebCore::Pasteboard::typesForBindings):
(WebCore::PasteboardWebContent::PasteboardWebContent): Deleted.
(WebCore::PasteboardWebContent::~PasteboardWebContent): Deleted.
(WebCore::PasteboardImage::PasteboardImage): Deleted.
(WebCore::PasteboardImage::~PasteboardImage): Deleted.
(WebCore::Pasteboard::types): Deleted.
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::safeTypeForDOMToReadAndWriteForPlatformType): Add "Files" to dataTransfer.types when there is an in-memory
image type in the pasteboard.
- platform/mac/PasteboardMac.mm:
(WebCore::PasteboardWebContent::PasteboardWebContent): Deleted.
(WebCore::PasteboardWebContent::~PasteboardWebContent): Deleted.
(WebCore::PasteboardImage::PasteboardImage): Deleted.
(WebCore::PasteboardImage::~PasteboardImage): Deleted.
(WebCore::addHTMLClipboardTypesForCocoaType): Moved the check for the legacy NeXT plain text check here. Also add
"Files" to dataTransfer.types when there is an in-memory image type in the pasteboard.
(WebCore::Pasteboard::typesForBindings): Renamed from types.
- platform/mac/PlatformPasteboardMac.mm:
(WebCore::safeTypeForDOMToReadAndWriteForPlatformType): Ditto to add "Files".
- platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::typesForBindings): Renamed from types.
(WebCore::Pasteboard::typesTreatedAsFiles):
(WebCore::Pasteboard::read):
- platform/wpe/PasteboardWPE.cpp:
(WebCore::Pasteboard::typesForBindings): Renamed from types.
(WebCore::Pasteboard::typesTreatedAsFiles):
(WebCore::Pasteboard::read):
Source/WebKit:
Add sandbox extensions for files in the pasteboard to make copying & pasting image files work.
This is what we do for drag & drop but we should consider adding a mechanism to rekoke the extension in the future.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType): Add sandbox extensions to the pasted files.
- UIProcess/WebPasteboardProxy.h:
- UIProcess/WebPasteboardProxy.messages.in:
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::getPathnamesForType): Consume the sandbox tokens sent by the UI process permanently
since WebCore will now create File objects for these pasted files.
Tools:
Added an API test to paste an image from pasteboard. The test is shared between iOS and macOS.
The tests to paste image files are only enabled on macOS since putting files into pasteboard isn't a thing on iOS.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm: Added.
(writeImageDataToPasteboard):
(writeBundleFileToPasteboard):
- TestWebKitAPI/Tests/WebKitCocoa/paste-image.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-100px.tiff: Added.
- TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-200px.png: Added.
- TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-400px.gif: Added.
- TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-600px.jpg: Added.
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm: Rebaselined the test now that types contain "Files".
- 11:37 AM Changeset in webkit [222655] by
-
- 2 edits in trunk/LayoutTests
Re-enable more pasteboard tests on iOS after r222595
https://bugs.webkit.org/show_bug.cgi?id=177637
Reviewed by Wenson Hsieh.
- platform/ios/TestExpectations:
- 11:33 AM Changeset in webkit [222654] by
-
- 14 edits in trunk
[iOS WK2] Implement -[WKContentView hasText] for compatibility with the UITextInput protocol
https://bugs.webkit.org/show_bug.cgi?id=177662
<rdar://problem/33410373>
Reviewed by Tim Horton.
Source/WebCore:
Adds a new TextIterator helper function to determine whether a Range has any plain text.
Tests: EditorStateTests.ContentViewHasTextInContentEditableElement
EditorStateTests.ContentViewHasTextInTextarea
- editing/TextIterator.cpp:
(WebCore::hasAnyPlainText):
Add a new helper to determine whether a Range contains any plain text. While inspired by and very similar to the
plainText() helper function, this variant does not create a new string buffer when invoked, and is therefore
more efficient for the purposes of determining whether there is any plain text at all.
- editing/TextIterator.h:
Source/WebKit:
Implements -[WKContentView hasText] by propagating a flag through post-layout editor state.
- Shared/EditorState.cpp:
(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):
- Shared/EditorState.h:
Add a new flag to EditorState indicating whether or not the current editable root containing the selection has
any plain text. Add IPC support for this new flag.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView hasText]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::computeEditableRootHasContentAndPlainText):
Add a new helper to compute whether or not the editable root has any content, and any plain text. This
is used as the last cached value for -hasText on WKContentView that we will deliver to UIKit. Some important
things to note here:
- If post layout data already indicates that we have selected some plain text, or that there is a plain text character near the selection, just set the flags to true and bail, since the editable root necessarily has content that is plain text.
- If hasContent is false, don't even bother computing hasPlainText, because it must also be false.
- Otherwise, use hasAnyPlainText to compute the value of hasPlainText, which is a faster variant of plainText.
These optimizations help us avoid doing extra work at all when running Speedometer, apart from checking the
values of a few PostLayoutData flags. This also fixes the value of hasContent, which was previously always false
if we had a range selection rather than a caret selection even when the editable root has content, because the
logic to compute the value of hasContent only existed in the branch where we have a caret selection.
(WebKit::WebPage::platformEditorState const):
Tools:
Add EditorState API tests to check that the value of -[WKContentView hasText] is correct when editing both plain
and rich text areas.
- TestWebKitAPI/EditingTestHarness.h:
- TestWebKitAPI/EditingTestHarness.mm:
(-[EditingTestHarness insertParagraph]):
(-[EditingTestHarness insertText:]):
(-[EditingTestHarness insertHTML:]):
(-[EditingTestHarness selectAll]):
(-[EditingTestHarness deleteBackwards]):
- TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm:
Add versions of EditingTestHarness helpers that don't require us to expect any editor state after executing the
edit command.
(TestWebKitAPI::checkContentViewHasTextWithFailureDescription):
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/TestWKWebView.h:
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView textInputContentView]):
- 10:50 AM Changeset in webkit [222653] by
-
- 11 edits in trunk/Source/WebCore
Add WeakPtr support to RenderObject.
https://bugs.webkit.org/show_bug.cgi?id=177429
<rdar://problem/34625212>
Reviewed by Dean Jackson.
This is in preparation to start using weak pointers extensively in rendering.
No change in functionality.
- loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadPlugin):
- page/FrameView.cpp:
(WebCore::FrameView::updateEmbeddedObject):
- rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::fragmentedFlowDescendantInserted):
- rendering/RenderMultiColumnSpannerPlaceholder.h:
- rendering/RenderObject.cpp:
- rendering/RenderObject.h:
(WebCore::RenderObject::createWeakPtr):
- rendering/RenderView.cpp:
(WebCore::RenderView::RepaintRegionAccumulator::RepaintRegionAccumulator):
(WebCore::RenderView::RepaintRegionAccumulator::~RepaintRegionAccumulator):
- rendering/RenderView.h:
- rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidgetGeometry):
(WebCore::RenderWidget::setWidget):
(WebCore::RenderWidget::updateWidgetPosition):
- rendering/RenderWidget.h:
(WebCore::RenderWidget::createWeakPtr): Deleted.
- 10:05 AM Changeset in webkit [222652] by
-
- 13 edits3 adds in trunk
Build libwebrtc unit tests executables
https://bugs.webkit.org/show_bug.cgi?id=177211
Patch by Youenn Fablet <youenn@apple.com> on 2017-09-29
Reviewed by Alex Christensen.
.:
- WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
Source/ThirdParty/libwebrtc:
Adding support for a new target called unittests that will be several executables.
Each executable run unit tests dedicated to a part of libwebrtc.
Adding one target/executable per unit test suite.
Adding one composite target to build all unit test targets.
Adding a target to build a static libwebrtctest library.
The static libwebrtctest library is then linked to each unit test executable which is also linked to libwebrtc dylib.
Some unit tests require a default codec (VP8) that is disabled in libwebrtc.
This ends up making some tests crashing.
An additional work should follow to execute only the meaningful subset of tests.
- Configurations/libwebrtc-base.xcconfig: Added.
- Configurations/libwebrtc-test-static.xcconfig: Added.
- Configurations/rtc_pc_unittests.xcconfig: Added.
- Source/third_party/gflags/gen/posix/include/private/config.h:
- Source/webrtc/modules/audio_coding/neteq/tools/neteq_test.cc: Replacing FATAL by RTC_FATAL.
- Source/webrtc/sdk/objc/Framework/Classes/Common/helpers.mm: Removing UIKit dependency.
- Source/webrtc/test/gmock.h: Using googletest version instead of checking in testing folder.
- Source/webrtc/test/gtest.h: Ditto.
- Source/webrtc/test/rtp_file_reader.cc: Replacing FATAL by RTC_FATAL.
- libwebrtc.xcodeproj/project.pbxproj:
- 9:47 AM Changeset in webkit [222651] by
-
- 6 edits in trunk/Source
Unreviewed, rolling out r222625.
https://bugs.webkit.org/show_bug.cgi?id=177664
causes crashes on iOS (Requested by pizlo-mbp on #webkit).
Reverted changeset:
"Enable gigacage on iOS"
https://bugs.webkit.org/show_bug.cgi?id=177586
http://trac.webkit.org/changeset/222625
- 5:33 AM Changeset in webkit [222650] by
-
- 2 edits in trunk/Tools
Update my status.
Unreviewed.
- Scripts/webkitpy/common/config/contributors.json:
- 3:22 AM Changeset in webkit [222649] by
-
- 12 edits in trunk/Source/WebCore
[GStreamer] Refactor media player to use MediaTime consistently
https://bugs.webkit.org/show_bug.cgi?id=174817
Reviewed by Xabier Rodriguez-Calvar.
Make consistent use of the MediaTime class in the GStreamer media
player implementations.
This patch is authored by Charlie Turner <cturner@igalia.com> plus
some minor modifications by Enrique: migration of m_cachedPosition,
usage of m_seekTime as MediaTime in the MSE player and more logging
using toString().
Covered by existing tests.
- platform/graphics/gstreamer/GStreamerUtilities.cpp:
(WebCore::toGstUnsigned64Time): Scales MediaTime to the precision used
by GStreamer and returns a value compatible with GstClockTime.
(WebCore::toGstClockTime): Deleted.
- platform/graphics/gstreamer/GStreamerUtilities.h:
(WebCore::toGstClockTime): Inlined, now it takes MediaTime and converts
to GstClockTime.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
Several changes to use MediaTime instead of float and to log MediaTime
values converting them toString().
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::durationMediaTime const):
(WebCore::MediaPlayerPrivateGStreamer::currentMediaTime const):
(WebCore::MediaPlayerPrivateGStreamer::seek): Uses MediaTime.
(WebCore::MediaPlayerPrivateGStreamer::doSeek):
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamer::buffered const):
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
(WebCore::MediaPlayerPrivateGStreamer::maxMediaTimeSeekable const):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded const):
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress const):
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
(WebCore::MediaPlayerPrivateGStreamer::durationChanged):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable const): Deleted.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Changed
seek(), playBackposition(), m_cachedPosition, m_durationAtEOS,
m_seekTime and m_timeOfOverlappingSeek to be of MediaTime type.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
Prefer the methods based on MediaTime over those based on fload/double.
(WebCore::MediaPlayerPrivateGStreamerBase::maxTimeLoaded const):
- platform/graphics/gstreamer/mse/GStreamerMediaSample.cpp:
(WebCore::GStreamerMediaSample::offsetTimestampsBy): toGstClockTime()
now can handle MediaTime.
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
Several changes to use MediaTime instead of float and to log MediaTime
values converting them toString().
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::notifySeekNeedsDataForTime):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::maybeFinishSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::isTimeBuffered const):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::currentMediaTime const):
(WebCore::MediaPlayerPrivateGStreamerMSE::maxTimeSeekable const):
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
seek() now takes a MediaTime argument.
- platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
(WebCore::PlaybackPipeline::enqueueSample): Use MediaTime values in
MediaSample.
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcQueryWithParent): Use MediaTime values in
durationMediaTime().
- 12:34 AM Changeset in webkit [222648] by
-
- 8 edits in trunk/Websites/perf.webkit.org
Update syncing script to be able to build binary for commit set with owned commits.
https://bugs.webkit.org/show_bug.cgi?id=177225
Reviewed by Ryosuke Niwa.
Added support for syncing script to be able to schedule builds to build binary for owned commits.
Introduces 'ifRepositorySet' and 'ownedRevisions' in 'buildProperties'.
'ifRepositorySet' will conditionaly set a build property if at least one of the repositories it specified requires build.
'ownedRevisions' specifies owned commits revision informations.
- public/v3/models/commit-set.js:
(CommitSet): Added '_ownerRepositoryToOwnedRepositoriesMap'.
(CommitSet.prototype.updateSingleton): Reset '_ownerRepositoryToOwnedRepositoriesMap'.
(CommitSet.prototype._updateFromObject): Only update '_repositoryToCommitOwnerMap' and '_ownerRepositoryToOwnedRepositoriesMap' when 'commitOwner' exists.
(CommitSet.prototype.ownerCommitForRepository): Returns a sorted list of top level repositories.
(CommitSet.prototype.ownedRepositoriesForOwnerRepository): Returns owned repositories given a owner repository.
(CustomCommitSet.prototype.ownerCommitForRepository): Returns a sorted list of top level repositories.
- public/v3/models/triggerable.js:
(prototype.accepts): It should only check against top-level repositories. Removed a deprecated 'FIXME'.
- server-tests/tools-sync-buildbot-integration-tests.js: Added unit test for building owned commits binary.
(createTriggerable): Added conditional 'ifRepositorySet' and 'ownedRevisions' in the repository groups.
- tools/js/buildbot-syncer.js:
(BuildbotSyncer.prototype._propertiesForBuildRequest):
Added logic to conditionaly create build property for 'ifRepositorySet'.
Added logic to create 'ownedRevisions' based on the owner repositories it specified.
(BuildbotSyncer._parseRepositoryGroup): Build property template should be able to handle 'ifRepositorySet' and 'ownedRevisions'.
- unit-tests/buildbot-syncer-tests.js: Added unit tests for 'ifRepositorySet' and 'ownedRevisions'.
- unit-tests/commit-set-tests.js: Added unit tests for 'topLevelRepositoriesSortedByNamePreferringOnesWithURL'.
- unit-tests/resources/mock-v3-models.js: Added a repository group contains 'ios', 'webkit' and 'ownerRepository'.
Sep 28, 2017:
- 10:37 PM Changeset in webkit [222647] by
-
- 5 edits9 adds1 delete in trunk/Source/WebCore
Re-write Settings generation in python for some reason
https://bugs.webkit.org/show_bug.cgi?id=177621
Patch by Sam Weinig <sam@webkit.org> on 2017-09-28
Reviewed by Tim Horton.
Re-writes and splits up generation of InternalSettingsGenerated.{h|cpp|idl}
and SettingsMacros.h in python in preparation for larger changes.
- DerivedSources.make:
- Scripts/GenerateSettings: Added.
- Scripts/GenerateSettings.py: Added.
- Scripts/GenerateSettings/GenerateInternalSettingsHeaderFile.py: Added.
- Scripts/GenerateSettings/GenerateInternalSettingsIDLFile.py: Added.
- Scripts/GenerateSettings/GenerateInternalSettingsImplementationFile.py: Added.
- Scripts/GenerateSettings/GenerateSettings.py: Added.
- Scripts/GenerateSettings/GenerateSettingsMacrosHeader.py: Added.
- Scripts/GenerateSettings/Settings.py: Added.
- Scripts/GenerateSettings/init.py: Added.
- WebCore.xcodeproj/project.pbxproj:
- page/make_settings.pl: Removed.
- 8:07 PM Changeset in webkit [222646] by
-
- 2 edits in trunk/Source/WebKit
Fix the macOS CMake build
- CMakeLists.txt:
- 7:42 PM Changeset in webkit [222645] by
-
- 1 edit1 copy in trunk/Websites/browserbench.org
Merge the latest version of Speedometer 2.0 to browserbench.org against at r222534.
Rubber-stamped by Saam Barati (a while ago).
- Speedometer2.0: Replaced with PerformanceTests/Speedometer.
- 7:35 PM Changeset in webkit [222644] by
-
- 2 edits in trunk/LayoutTests
[GTK] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=177635
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 7:22 PM Changeset in webkit [222643] by
-
- 10 edits in trunk/LayoutTests
Clean up Long Press Selection Tests
https://bugs.webkit.org/show_bug.cgi?id=177636
Reviewed by Tim Horton.
Clean up tests to use better methods of finding selection locations so that
tests are more robust and less likely to be affected by unrelated changes.
- fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html:
- fast/events/touch/ios/long-press-then-drag-left-to-change-selected-text.html:
- fast/events/touch/ios/long-press-then-drag-right-to-change-selected-text.html:
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html:
- fast/events/touch/ios/long-press-to-select-and-tap-to-clear-expected.txt:
- fast/events/touch/ios/long-press-to-select-and-tap-to-clear.html:
- fast/events/touch/ios/long-press-to-select-text-expected.txt:
- fast/events/touch/ios/long-press-to-select-text.html:
- fast/events/touch/ios/resources/basic-gestures.js:
(longPressAtPoint):
(tapAtPoint):
(touchAndDragFromPointToPoint):
(pressAtPoint): Deleted.
(dragFromPointToPoint): Deleted.
- 7:01 PM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 5:15 PM Changeset in webkit [222642] by
-
- 3 edits in trunk/Source/WebCore
Simplify PLATFORM ifdefs within Editor around writing selections
https://bugs.webkit.org/show_bug.cgi?id=177624
Reviewed by Alex Christensen.
No new tests. No change in behavior.
- editing/Editor.cpp:
(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::copyImage):
- editing/Editor.h:
- 5:15 PM Changeset in webkit [222641] by
-
- 2 edits in trunk/Tools
Unreviewed, rolling out r222639.
https://bugs.webkit.org/show_bug.cgi?id=177630
Breaks AppleWin build (Requested by dolmstead on #webkit).
Reverted changeset:
"[WinCairo][MiniBrowser] Add ca-bundle to display secure
pages."
https://bugs.webkit.org/show_bug.cgi?id=168486
http://trac.webkit.org/changeset/222639
- 5:13 PM Changeset in webkit [222640] by
-
- 7 edits10 adds in trunk
AX: [ATK] object:state-changed notifications missing for multiple ARIA attributes
https://bugs.webkit.org/show_bug.cgi?id=177542
Source/WebCore:
Add new notification types to AXObjectCache in order to support the notifications
needed, post the notifications to all platforms, emit the signals for ATK.
Reviewed by Chris Fleizach.
Tests: accessibility/gtk/aria-disabled-changed-notification.html
accessibility/gtk/aria-expanded-changed-notification.html
accessibility/gtk/aria-pressed-changed-notification.html
accessibility/gtk/aria-readonly-changed-notification.html
accessibility/gtk/aria-required-changed-notification.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::handleAttributeChanged):
- accessibility/AXObjectCache.h:
- accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
Tools:
Add platform support for the notifications. Also add support for getting the
boolean argument indicating whether the state has been set or unset.
Reviewed by Chris Fleizach.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
LayoutTests:
Reviewed by Chris Fleizach.
- accessibility/gtk/aria-disabled-changed-notification-expected.txt: Added.
- accessibility/gtk/aria-disabled-changed-notification.html: Added.
- accessibility/gtk/aria-expanded-changed-notification-expected.txt: Added.
- accessibility/gtk/aria-expanded-changed-notification.html: Added.
- accessibility/gtk/aria-pressed-changed-notification-expected.txt: Added.
- accessibility/gtk/aria-pressed-changed-notification.html: Added.
- accessibility/gtk/aria-readonly-changed-notification-expected.txt: Added.
- accessibility/gtk/aria-readonly-changed-notification.html: Added.
- accessibility/gtk/aria-required-changed-notification-expected.txt: Added.
- accessibility/gtk/aria-required-changed-notification.html: Added.
- 4:52 PM Changeset in webkit [222639] by
-
- 2 edits in trunk/Tools
[WinCairo][MiniBrowser] Add ca-bundle to display secure pages.
Copy cacert.pem file into bundle directory.
https://bugs.webkit.org/show_bug.cgi?id=168486
Patch by Basuke Suzuki <Basuke Suzuki> on 2017-09-28
Reviewed by Brent Fulgham.
- MiniBrowser/win/CMakeLists.txt:
- 4:32 PM Changeset in webkit [222638] by
-
- 4 edits in trunk
test262: Unexpected passes after r222617 and r222618.
https://bugs.webkit.org/show_bug.cgi?id=177622
<rdar://problem/34725960>
Reviewed by Saam Barati.
JSTests:
Update test262.yaml for tests that are now passing.
- test262.yaml:
Source/JavaScriptCore:
Now that these tests are marked as "normal", we will run them and discover a few
missing exception checks. This patch also adds those missing exception checks.
- runtime/DatePrototype.cpp:
(JSC::fillStructuresUsingDateArgs):
- 4:08 PM Changeset in webkit [222637] by
-
- 11 edits in trunk/Source/WebCore
Remove TextRun::setCharactersLength() and TextRun::charactersLength()
https://bugs.webkit.org/show_bug.cgi?id=177620
Reviewed by Zalan Bujtas.
The purpose of TextRun::setCharactersLength() and TextRun::charactersLength() predate the
use of WidthIterator to safely iterate over characters in a TextRun that may contain
surrogate halves due to how it was created (without thought of surrogate pairs). Historically
TextRun::charactersLength() complemented TextRun::length() and represented the length of the
text to render ignoring and respecting truncation, respectively. We not longer need either
of these member functions with the advent of WidthIterator.
No functionality changed. So, no new tests.
- platform/graphics/ComplexTextController.cpp:
(WebCore::TextLayout::constructTextRun):
- platform/graphics/TextRun.cpp: Remove one unsigned field from ExpectedTextRunSize as we
reduced the size of TextRun with the removal of TextRun::m_charactersLength.
- platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::charactersLength const): Deleted.
(WebCore::TextRun::setCharactersLength): Deleted.
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::constructTextRun const):
- rendering/InlineTextBox.h:
(WebCore::InlineTextBox::constructTextRun): Deleted overload that took const RenderStyle& style
and StringView.
- rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache const):
(WebCore::maxWordFragmentWidth):
(WebCore::RenderText::computePreferredLogicalWidths):
(WebCore::RenderText::width const):
- rendering/line/BreakingContext.h:
(WebCore::textWidth):
(WebCore::tryHyphenating):
- rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::constructTextRun const):
- rendering/svg/SVGTextMetrics.cpp:
(WebCore::SVGTextMetrics::constructTextRun):
- rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair const): Use TextRun::length().
(WebCore::SVGTextMetricsBuilder::advance): Ditto.
- 4:04 PM Changeset in webkit [222636] by
-
- 2 edits in trunk/Source/WebInspectorUI
WebInspector: Uncaught Exception: TypeError: this._delegate.completionControllerCSSFunctionValuesNeeded is not a function.
https://bugs.webkit.org/show_bug.cgi?id=177619
Reviewed by Joseph Pecoraro.
- UserInterface/Controllers/CodeMirrorCompletionController.js:
(WI.CodeMirrorCompletionController.prototype._generateCSSCompletions):
Remove accidentaltypeofkeyword.
- 3:22 PM Changeset in webkit [222635] by
-
- 2 edits in trunk/LayoutTests
Skip failing preconnect tests on Windows.
https://bugs.webkit.org/show_bug.cgi?id=177626
Unreviewed test gardening.
- platform/win/TestExpectations:
- 2:43 PM Changeset in webkit [222634] by
-
- 1 edit5 adds in trunk/Tools
check in AWS Lambda code used for WebKitArchiveSupport
https://bugs.webkit.org/show_bug.cgi?id=177614
Rubber-stamped by Alexey Proskuryakov.
- WebKitArchiveSupport/lambda: Added.
- WebKitArchiveSupport/lambda/delete-minified-s3-archive-from-dynamodb.py: Added.
(lambda_handler):
- WebKitArchiveSupport/lambda/delete-s3-archive-from-dynamodb.py: Added.
(lambda_handler):
- WebKitArchiveSupport/lambda/register-archive-in-dynamodb.py: Added.
(lambda_handler):
- WebKitArchiveSupport/lambda/register-minified-s3-archive-in-dynamodb.py: Added.
(lambda_handler):
- 2:31 PM Changeset in webkit [222633] by
-
- 5 edits in trunk
WeakPtrFactory should allow downcasting
https://bugs.webkit.org/show_bug.cgi?id=177389
<rdar://problem/34604174>
Reviewed by Geoffrey Garen.
Source/WTF:
In this patch, WeakPtrFactory is enhanced with the ability to create WeakPtrs
of its owner's sub classes and have them point to the same WeakReference.
- wtf/WeakPtr.h:
(WTF::WeakPtr::WeakPtr):
We cannot determine the base class of type T, thus no friends. It is made public
such that WeakPtrFactory with a base class type U can create a derived type T
WeakPtr.
(WTF::WeakPtrFactory::createWeakPtr const):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
(TestWebKitAPI::Base::foo):
(TestWebKitAPI::Base::createWeakPtr):
(TestWebKitAPI::Derived::foo):
(TestWebKitAPI::TEST):
- 2:13 PM Changeset in webkit [222632] by
-
- 2 edits in trunk/LayoutTests
Mark http/tests/storageAccess/request-storage-access-top-frame.html as flaky on iOS.
https://bugs.webkit.org/show_bug.cgi?id=177617
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 1:41 PM Changeset in webkit [222631] by
-
- 11 edits in trunk/Tools
Add debug flag to WebKitTestRunner to show where touches are being generated
https://bugs.webkit.org/show_bug.cgi?id=177583
Reviewed by Tim Horton and Wenson Hsieh.
Add a flag, and the ability to paint a dot where the HIDEventGenerator is creating fake touches to
send through UIKit. This will help in debugging touch tests, because it will be easier to see if
one is actually sending the touches at the locations that they expect. This will help differentiate between
problems in the locations of the touches, and other problems that can come up when writing tests.
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args):
- Scripts/webkitpy/port/driver.py:
(Driver.cmd_line):
- WebKitTestRunner/Options.cpp:
(WTR::Options::Options):
(WTR::handleOptionShowTouches):
(WTR::OptionsHandler::OptionsHandler):
- WebKitTestRunner/Options.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize):
- WebKitTestRunner/TestController.h:
(WTR::TestController::shouldShowTouches const):
- WebKitTestRunner/TestOptions.h:
- WebKitTestRunner/ios/HIDEventGenerator.h:
- WebKitTestRunner/ios/HIDEventGenerator.mm:
(-[DebugTouchView pointInside:withEvent:]):
(-[HIDEventGenerator setShouldShowTouches:]):
(-[HIDEventGenerator initDebugViews]):
(-[HIDEventGenerator updateDebugUI:withPoint:isTouching:]):
(-[HIDEventGenerator _createIOHIDEventWithInfo:]):
(-[HIDEventGenerator _createIOHIDEventType:]):
(-[HIDEventGenerator _updateTouchPoints:count:]):
(-[HIDEventGenerator touchDownAtPoints:touchCount:]):
(-[HIDEventGenerator liftUpAtPoints:touchCount:]):
(-[HIDEventGenerator moveToPoints:touchCount:duration:]):
(-[HIDEventGenerator markerEventReceived:]):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
- WebKitTestRunner/ios/mainIOS.mm:
(-[WebKitTestRunnerApp _runTestController]):
- 1:18 PM Changeset in webkit [222630] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Remove Error icon in error message for resources it looks poor
https://bugs.webkit.org/show_bug.cgi?id=177613
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-09-28
Reviewed by Matt Baker.
- UserInterface/Views/Main.css:
(.message-text-view.error::before): Deleted.
- 1:12 PM Changeset in webkit [222629] by
-
- 2 edits in trunk/LayoutTests
Mark imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=177615
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 1:07 PM Changeset in webkit [222628] by
-
- 2 edits in tags/Safari-605.1.8/Source/WTF
Cherry-pick r222593. rdar://problem/34695516
- 1:03 PM Changeset in webkit [222627] by
-
- 10 edits1 delete in trunk
Remove constant() in favor of env()
https://bugs.webkit.org/show_bug.cgi?id=177581
<rdar://problem/34701321>
Reviewed by Dean Jackson.
Source/WebCore:
No new tests, removing a feature.
- css/CSSValueKeywords.in:
- css/CSSVariableData.cpp:
(WebCore::CSSVariableData::checkVariablesForCyclesWithRange const):
(WebCore::CSSVariableData::resolveTokenRange const):
- css/parser/CSSVariableParser.cpp:
(WebCore::classifyBlock):
Source/WebInspectorUI:
- UserInterface/Models/CSSCompletions.js:
- UserInterface/Models/CSSKeywordCompletions.js:
(WI.CSSKeywordCompletions.forProperty):
(WI.CSSKeywordCompletions.forFunction):
LayoutTests:
- fast/css/variables/constants/invalid-constant-name-fallback-expected.html: Removed.
- fast/css/variables/constants/invalid-constant-name-fallback.html: Removed.
- fast/css/variables/constants/ios/safe-area-inset-set-expected.html: Removed.
- fast/css/variables/constants/ios/safe-area-inset-set.html: Removed.
- fast/css/variables/constants/safe-area-inset-cannot-override-expected.html: Removed.
- fast/css/variables/constants/safe-area-inset-cannot-override.html: Removed.
- fast/css/variables/constants/safe-area-inset-zero-expected.html: Removed.
- fast/css/variables/constants/safe-area-inset-zero.html: Removed.
- 1:01 PM Changeset in webkit [222626] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, fix a test name in TestExpectations.
- platform/mac-wk1/TestExpectations:
- 12:50 PM Changeset in webkit [222625] by
-
- 6 edits in trunk/Source
Enable gigacage on iOS
https://bugs.webkit.org/show_bug.cgi?id=177586
Reviewed by Michael Saboff.
Source/bmalloc:
This enables Gigacage on iOS using a much smaller cage size. It's not necessary for it to be so
small, but this is a good conservative starting point to start to exercise the code.
- bmalloc/Gigacage.h:
Source/JavaScriptCore:
The hardest part of enabling Gigacage on iOS is that it requires loading global variables whil
executing JS, so the LLInt needs to know how to load from global variables on all platforms that
have Gigacage. So, this teaches ARM64 how to load from global variables.
- offlineasm/arm64.rb:
- offlineasm/asm.rb:
- offlineasm/instructions.rb:
- 12:35 PM Changeset in webkit [222624] by
-
- 3 edits in trunk/Source/WebKit
Revise deployment target macros from r222620
Rubber-stamped by Wenson Hsieh.
- WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::pdfDocumentDidLoad):
- 12:22 PM Changeset in webkit [222623] by
-
- 8 edits in trunk
Add ports 6679 and 6697 (IRC SSL) to port blacklist
https://bugs.webkit.org/show_bug.cgi?id=177544
<rdar://problem/34666525>
Reviewed by Alex Christensen.
Source/WebCore:
Test: security/block-test.html
- platform/URL.cpp:
(WebCore::portAllowed): Also block port 6679.
LayoutTests:
Update test and expectations for new port.
- security/block-test-expected.txt:
- security/block-test.html:
- platform/gtk/security/block-test-expected.txt:
- platform/mac/security/block-test-expected.txt:
- platform/wpe/security/block-test-expected.txt:
- 11:52 AM Changeset in webkit [222622] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, speculative Windows build fix after r222613.
- dom/StringCallback.idl:
- 11:50 AM Changeset in webkit [222621] by
-
- 3 edits in trunk/Source/WebCore
Small cleanup in RenderMenuList::didUpdateActiveOption
https://bugs.webkit.org/show_bug.cgi?id=177610
Reviewed by Dean Jackson.
No change in functionality.
- rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::RenderMenuList):
(RenderMenuList::didUpdateActiveOption):
- rendering/RenderMenuList.h:
- 11:40 AM Changeset in webkit [222620] by
-
- 3 edits in trunk/Source/WebKit
Request for PDF URL targets for specific pages, sections, etc.
https://bugs.webkit.org/show_bug.cgi?id=177582
<rdar://problem/5692679>
Patch by Aishwarya Nirmal <anirmal@apple.com> on 2017-09-28
Reviewed by Tim Horton.
This change sets the URL fragment for scroll anchoring in PDFs.
- WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::pdfDocumentDidLoad):
- 11:37 AM Changeset in webkit [222619] by
-
- 18 edits1 move in trunk/Source
[PAL] Move HysteresisActivity into PAL
https://bugs.webkit.org/show_bug.cgi?id=177516
Patch by Ross Kirsling <Ross Kirsling> on 2017-09-28
Reviewed by Alex Christensen.
Source/WebCore:
- WebCore.xcodeproj/project.pbxproj:
- platform/UserActivity.cpp:
(WebCore::UserActivity::UserActivity):
(WebCore::UserActivity::hysteresisUpdated):
- platform/UserActivity.h:
- platform/graphics/cairo/BackingStoreBackendCairoImpl.cpp:
(WebCore::BackingStoreBackendCairoImpl::BackingStoreBackendCairoImpl):
- platform/graphics/cairo/BackingStoreBackendCairoImpl.h:
- platform/ios/WebSQLiteDatabaseTrackerClient.h:
- platform/ios/WebSQLiteDatabaseTrackerClient.mm:
(WebCore::WebSQLiteDatabaseTrackerClient::WebSQLiteDatabaseTrackerClient):
(WebCore::WebSQLiteDatabaseTrackerClient::hysteresisUpdated):
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/HysteresisActivity.h: Renamed from Source/WebCore/platform/HysteresisActivity.h.
Source/WebKit:
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::PendingFrameLoad):
- Shared/WebSQLiteDatabaseTracker.cpp:
(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
(WebKit::WebSQLiteDatabaseTracker::hysteresisUpdated):
- Shared/WebSQLiteDatabaseTracker.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_pageScrolledHysteresis):
(WebKit::m_userActivityHysteresis):
(WebKit::WebPage::updateUserActivity):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
- WebProcess/WebProcess.h:
- 11:25 AM Changeset in webkit [222618] by
-
- 2 edits in trunk/Tools
[Re-landing] Turn on exception scope verification for JSC tests.
https://bugs.webkit.org/show_bug.cgi?id=162351
<rdar://problem/29563911>
Reviewed by Saam Barati.
Update: I'm re-landing this patch now that test262 exception check validation
failures have been fixed in r222617. testapi still has some validation failures,
but this patch does not affect testapi.
Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
run-jsc-stress-tests. This turns on exception scope verification on JSC test
runs (which currently does not include testapi).
Some stats on time to run JSC stress and mozilla tests:
- Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
- Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
- Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
- Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s
The stats shows that (2) and (3) has effectively no time difference. Hence, the
cost of enabling --validateExceptionChecks=true is not significant.
It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
21% slower than (3). To avoid making debug test runs a lot slower, we'll leave
--dumpSimulatedThrows=true off. We can manually add that when we see a regression
and need to debug the issue. Otherwise, we wont pay the price for it.
- Scripts/run-jsc-stress-tests:
- 11:09 AM Changeset in webkit [222617] by
-
- 14 edits in trunk/Source/JavaScriptCore
Add missing exception checks and book-keeping for exception check validation.
https://bugs.webkit.org/show_bug.cgi?id=177609
<rdar://problem/34717972>
Reviewed by Keith Miller.
This resolves exception check validation failures when running test262 tests and
a few other tests.
- API/APIUtils.h:
(handleExceptionIfNeeded):
- API/JSObjectRef.cpp:
(JSObjectMakeFunction):
(JSObjectMakeArray):
(JSObjectMakeDate):
(JSObjectMakeError):
(JSObjectMakeRegExp):
(JSObjectSetPrototype):
(JSObjectGetProperty):
(JSObjectSetProperty):
(JSObjectGetPropertyAtIndex):
(JSObjectSetPropertyAtIndex):
(JSObjectDeleteProperty):
(JSObjectCallAsFunction):
(JSObjectCallAsConstructor):
- API/JSTypedArray.cpp:
(JSObjectMakeTypedArray):
(JSObjectMakeTypedArrayWithBytesNoCopy):
(JSObjectMakeTypedArrayWithArrayBuffer):
(JSObjectMakeTypedArrayWithArrayBufferAndOffset):
(JSObjectMakeArrayBufferWithBytesNoCopy):
- API/JSValueRef.cpp:
(JSValueIsEqual):
(JSValueIsInstanceOfConstructor):
(JSValueCreateJSONString):
(JSValueToNumber):
(JSValueToStringCopy):
(JSValueToObject):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf):
- runtime/DatePrototype.cpp:
(JSC::fillStructuresUsingTimeArgs):
(JSC::setNewValueFromDateArgs):
(JSC::dateProtoFuncSetYear):
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewWithArguments):
- runtime/JSModuleEnvironment.cpp:
(JSC::JSModuleEnvironment::put):
- runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):
- runtime/ProxyObject.cpp:
(JSC::ProxyObject::toStringName):
- runtime/StringPrototype.cpp:
(JSC::stringProtoFuncCharAt):
(JSC::stringProtoFuncCharCodeAt):
(JSC::stringProtoFuncIndexOf):
(JSC::stringProtoFuncLastIndexOf):
(JSC::stringProtoFuncSlice):
(JSC::stringProtoFuncSplitFast):
(JSC::stringProtoFuncSubstr):
- 10:56 AM Changeset in webkit [222616] by
-
- 4 edits in trunk/LayoutTests
[mac-wk1] Layout test webrtc/datachannel/bufferedAmountLowThreshold tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=177462
Patch by Youenn Fablet <youenn@apple.com> on 2017-09-28
Reviewed by Alex Christensen.
- webrtc/datachannel/bufferedAmountLowThreshold-default.html: Filling buffer until bufferedAmount is bug enough to trigger bufferedAmountLow event.
- webrtc/datachannel/bufferedAmountLowThreshold-expected.txt:
- webrtc/datachannel/bufferedAmountLowThreshold.html: Removing test that is inherently flaky on bots that are not fast enough
to continue filling the webrtc data channel buffer.
- 10:37 AM Changeset in webkit [222615] by
-
- 2 edits in trunk/Source/WTF
Sync SYSTEM_MALLOC implementation of Gigacage
https://bugs.webkit.org/show_bug.cgi?id=177569
Reviewed by Mark Lam.
- wtf/Gigacage.h:
(Gigacage::basePtr):
(Gigacage::basePtrs):
- 10:34 AM Changeset in webkit [222614] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
Build fix for High Sierra 32 bit Mac
https://bugs.webkit.org/show_bug.cgi?id=177551
<rdar://problem/34690283>
Reviewed by Alexey Proskuryakov.
Some assertions have been removed from the SDK. Replace these assertions with equivalent
WTF assert code. Since the files in this patch are using tabs, some style changes were
also made.
- Carbon/CarbonWindowAdapter.mm:
(+[CarbonWindowAdapter frameViewClassForStyleMask:]):
(-[CarbonWindowAdapter initWithContentRect:styleMask:backing:defer:]):
(-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]):
(-[CarbonWindowAdapter setViewsNeedDisplay:]):
(-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:]):
(-[CarbonWindowAdapter dealloc]):
(-[CarbonWindowAdapter windowRef]):
(-[CarbonWindowAdapter _hasWindowRef]):
(-[CarbonWindowAdapter _managesWindowRef]):
(-[CarbonWindowAdapter _removeWindowRef]):
(-[CarbonWindowAdapter _carbonWindowClass]):
(-[CarbonWindowAdapter reconcileToCarbonWindowBounds]):
(-[CarbonWindowAdapter sendSuperEvent:]):
(-[CarbonWindowAdapter relinquishFocus]):
(-[CarbonWindowAdapter _cancelKey:]):
(-[CarbonWindowAdapter _commonAwake]):
(-[CarbonWindowAdapter _destroyRealWindow:]):
(-[CarbonWindowAdapter _oldPlaceWindow:]):
(-[CarbonWindowAdapter _termWindowIfOwner]):
(-[CarbonWindowAdapter _windowMovedToRect:]):
(-[CarbonWindowAdapter constrainFrameRect:toScreen:]):
(-[CarbonWindowAdapter selectKeyViewFollowingView:]):
(-[CarbonWindowAdapter selectKeyViewPrecedingView:]):
(-[CarbonWindowAdapter canBecomeKeyWindow]):
(-[CarbonWindowAdapter canBecomeMainWindow]):
(-[CarbonWindowAdapter encodeWithCoder:]):
(-[CarbonWindowAdapter initWithCoder:]):
(-[CarbonWindowAdapter setContentView:]):
(-[CarbonWindowAdapter worksWhenModal]):
(-[CarbonWindowAdapter _setModalWindowLevel]):
(-[CarbonWindowAdapter _clearModalWindowLevel]):
(-[CarbonWindowAdapter carbonHICommandIDFromActionSelector:]):
(-[CarbonWindowAdapter sendCarbonProcessHICommandEvent:]):
(-[CarbonWindowAdapter sendCarbonUpdateHICommandStatusEvent:withMenuRef:andMenuItemIndex:]):
(-[CarbonWindowAdapter _handleRootBoundsChanged]):
(-[CarbonWindowAdapter _handleContentBoundsChanged]):
(-[CarbonWindowAdapter _handleCarbonEvent:callRef:]):
(NSCarbonWindowHandleEvent):
(-[CarbonWindowAdapter _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:]):
(-[CarbonWindowAdapter _growBoxRect]):
- Carbon/HIWebView.mm:
(HIWebViewGetWebView):
(HIWebViewConstructor):
(HIWebViewDestructor):
(HIWebViewRegisterClass):
(GetBehaviors):
(Draw):
(HitTest):
(GetRegion):
(GetWindowRef):
(CreateNSEventAdoptingCGEvent):
(CopyEventCGEvent):
(CreateNSEventWithCarbonClickEvent):
(Click):
(CreateNSEventWithCarbonEvent):
(MouseUp):
(CreateNSEventWithCarbonMouseMoveEvent):
(MouseMoved):
(MouseDragged):
(MouseWheelMoved):
(ContextMenuClick):
(GetKind):
(BoundsChanged):
(OwningWindowChanged):
(WindowHandler):
(SyncFrame):
(SetFocusPart):
(AdvanceFocus):
(RelinquishFocus):
(ActiveStateChanged):
(ProcessCommand):
(UpdateCommandStatus):
(_NSSelectorForHICommand):
(HIWebViewEventHandler):
(StartUpdateObserver):
(StopUpdateObserver):
(UpdateObserver):
- 10:05 AM Changeset in webkit [222613] by
-
- 56 edits17 adds in trunk
Add support for <link rel=preconnect>
https://bugs.webkit.org/show_bug.cgi?id=177474
<rdar://problem/33141380>
Reviewed by Alex Christensen.
Source/WebCore:
Add support for <link rel=preconnect>:
It is currently only enabled for WK2 on MacOS High Sierra+
and iOS 11+.
Tests: fast/dom/HTMLLinkElement/preconnect-support.html
http/tests/preconnect/link-rel-preconnect-http.html
http/tests/preconnect/link-rel-preconnect-https.html
- bindings/js/JSDOMExceptionHandling.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackHeaderContent):
- bindings/scripts/IDLAttributes.json:
- dom/Document.cpp:
(WebCore::Document::addConsoleMessage):
(WebCore::Document::setConsoleMessageListener):
- dom/Document.h:
- dom/StringCallback.idl:
- html/DOMTokenList.cpp:
(WebCore::DOMTokenList::DOMTokenList):
(WebCore::DOMTokenList::supports):
- html/DOMTokenList.h:
(WebCore::DOMTokenList::DOMTokenList):
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::relList):
- html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::sandbox):
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::parseAttribute):
(WebCore::HTMLLinkElement::relList):
- html/LinkRelAttribute.cpp:
(WebCore::LinkRelAttribute::LinkRelAttribute):
(WebCore::LinkRelAttribute::isSupported):
- html/LinkRelAttribute.h:
- html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
- loader/LinkLoader.cpp:
(WebCore::LinkLoader::loadLinksFromHeader):
(WebCore::LinkLoader::loadLink):
- loader/LoaderStrategy.h:
- page/Settings.in:
- testing/Internals.cpp:
(WebCore::Internals::Internals):
(WebCore::Internals::setConsoleMessageListener):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebCore/PAL:
Add new CFNetwork SPI for preconnecting.
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
Add support for <link rel=preconnect>:
Also add corresponding native private API.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::preconnectTo):
(WebKit::NetworkConnectionToWebProcess::didFinishPreconnection):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::create):
- NetworkProcess/NetworkLoadParameters.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::preconnectTo):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/PreconnectTask.cpp: Added.
(WebKit::PreconnectTask::PreconnectTask):
(WebKit::PreconnectTask::~PreconnectTask):
(WebKit::PreconnectTask::willPerformHTTPRedirection):
(WebKit::PreconnectTask::didReceiveChallenge):
(WebKit::PreconnectTask::didReceiveResponseNetworkSession):
(WebKit::PreconnectTask::didReceiveData):
(WebKit::PreconnectTask::didCompleteWithError):
(WebKit::PreconnectTask::didSendData):
(WebKit::PreconnectTask::wasBlocked):
(WebKit::PreconnectTask::cannotShowURL):
(WebKit::PreconnectTask::didFinish):
- NetworkProcess/PreconnectTask.h: Copied from Source/WebKit/NetworkProcess/NetworkLoadParameters.h.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- Shared/WebCoreArgumentCoders.h:
- Shared/WebPreferencesDefinitions.h:
- UIProcess/API/C/WKContext.cpp:
(WKContextPreconnectToServer):
- UIProcess/API/C/WKContextPrivate.h:
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _preconnectToServer:]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::preconnectToServer):
- UIProcess/WebProcessPool.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didFinishPreconnection):
- WebProcess/Network/NetworkProcessConnection.h:
- WebProcess/Network/NetworkProcessConnection.messages.in:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::networkProcessCrashed):
(WebKit::generateLoadIdentifier):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):
(WebKit::WebLoaderStrategy::didFinishPreconnection):
- WebProcess/Network/WebLoaderStrategy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- config.h:
Source/WebKitLegacy:
- WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::preconnectTo):
- WebCoreSupport/WebResourceLoadScheduler.h:
LayoutTests:
- fast/dom/HTMLLinkElement/preconnect-support-expected.txt: Added.
- fast/dom/HTMLLinkElement/preconnect-support.html: Added.
- http/tests/preconnect/link-rel-preconnect-http-expected.txt: Added.
- http/tests/preconnect/link-rel-preconnect-http.html: Added.
- http/tests/preconnect/link-rel-preconnect-https-expected.txt: Added.
- http/tests/preconnect/link-rel-preconnect-https.html: Added.
Add layout test coverage.
- platform/mac-elcapitan-wk2/fast/dom/HTMLLinkElement/preconnect-support-expected.txt: Added.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk1/fast/dom/HTMLLinkElement/preconnect-support-expected.txt: Added.
- platform/mac-wk2/TestExpectations:
Skip or land failure expectations for platforms where the feature is disabled.
- 9:31 AM Changeset in webkit [222612] by
-
- 4 edits in trunk/Source/WebCore
AX: Defer RenderListBox selectionChanged event until after layout is done.
https://bugs.webkit.org/show_bug.cgi?id=177589
<rdar://problem/34705785>
Reviewed by Chris Fleizach.
Defer AX update when the selection changed event is followed by a layout.
Covered by existing tests.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
(WebCore::AXObjectCache::deferSelectedChildrenChangedIfNeeded):
- accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::deferSelectedChildrenChangedIfNeeded):
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::selectionChanged):
- 8:53 AM Changeset in webkit [222611] by
-
- 2 edits in trunk/LayoutTests
Update TestExpectations for two http/tests/xmlhttprequest/response-* tests.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 7:54 AM Changeset in webkit [222610] by
-
- 8 edits in trunk/Source
[Cairo] Remove the cairo_glyph_t complexity from GlyphBuffer
https://bugs.webkit.org/show_bug.cgi?id=177598
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Remove the decade-old use of cairo_glyph_t as the underlying type for
Glyph. The former spans 24 bytes in size, while the latte is just 2
bytes. The x and y coordinate attributes of cairo_glyph_t were only
used in FontCascade::drawGlyphs() implementation, where they were
overridden even if the same GlyphBuffer object was used here repeatedly.
FontCascade::drawGlyphs() now creates a new Vector<cairo_glyph_t> object
and fills it only with the glyph index and coordinates data for glyphs
that will actually be drawn. This will likely in the future be leveraged
to pack the necessary data and perform the drawing operations in
parallelized tasks. GlyphBuffer usages that before required USE(CAIRO)
special-casing can now be simplified.
This also removes the need for <cairo.h> header inclusion in the
GlyphBuffer.h header. This further removes Cairo header inclusion in
roughly 600 build targets.
No new tests -- no change in behavior.
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::widthForSimpleText const):
- platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::glyphAt const):
(WebCore::GlyphBuffer::add):
- platform/graphics/cairo/FontCairo.cpp:
(WebCore::drawGlyphsToContext):
(WebCore::drawGlyphsShadow):
(WebCore::FontCascade::drawGlyphs):
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const):
Source/WebKit:
- Shared/API/c/cairo/WKImageCairo.cpp: Explicitly include the <cairo.h>
header here now that it's not included in GlyphBuffer.h.
- WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: Ditto.
- 7:53 AM Changeset in webkit [222609] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r222606.
The debug assertion hit in these API tests should be fixed by
r222608.
Reverted changeset:
"REGRESSION(r222595): Assertion failure in
_preLoadedDataConformingToType"
https://bugs.webkit.org/show_bug.cgi?id=177599
http://trac.webkit.org/changeset/222606
- 7:47 AM Changeset in webkit [222608] by
-
- 2 edits in trunk/Source/WebCore
[iOS WK2] DataTransfer DataInteractionTests debug assert under -_preLoadedDataConformingToType:forItemProviderAtIndex:
https://bugs.webkit.org/show_bug.cgi?id=177594
Reviewed by Tim Horton.
Currently, some API tests added in r222595 currently hit debug assertions under -preloadedDataConformingToType:
forItemProviderAtIndex:. This is because the page may call DataTransfer.types, which now calls into
PlatformPasteboard::typesSafeForDOMToReadAndWrite(). This calls on the AbstractPasteboard (either the
UIPasteboard or WebItemProviderPasteboard, in the case of drag and drop) to fetch the custom WebKit pasteboard
data blob, if it exists. For WebItemProviderPasteboard, this ends up calling into -[WebItemProviderPasteboard
_preLoadedDataConformingToType:forItemProviderAtIndex:], which was previously only called after loading data off
of the item providers. There's an existing sanity check in this preloaded data helper to make sure that the
number of load results is equal to the number of item providers loaded from, but this sanity check only makes
sense *after* the drop has happened, not before, since we should only attempt to read dropped data after any
data at all has been dropped.
We need to check whether or not this custom data blob exists in PlatformPasteboard::typesSafeForDOMToReadAndWrite
to fetch the list of DOM-exposed types to propagate back to the page. So to fix this, we make the helper methods
for fetching dropped data (-dataForPasteboardType:inItemSet: and -valuesForPasteboardType:inItemSet:) fail
gracefully when invoked prior to drop, when PlatformPasteboard::typesSafeForDOMToReadAndWrite is invoked.
No new tests; fixes iOS drag and drop API tests that currently hit this debug assertion.
- platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderPasteboard dataForPasteboardType:inItemSet:]):
(-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]):
- 4:20 AM Changeset in webkit [222607] by
-
- 1 edit in trunk/Source/JavaScriptCore/ChangeLog
Unreviewed fix of description in Changelog.
- 2:30 AM Changeset in webkit [222606] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r222595): Assertion failure in _preLoadedDataConformingToType
https://bugs.webkit.org/show_bug.cgi?id=177599
Temporarily remove the debug assertion to make API tests not crash since the relevant API tests are passing.
- platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderPasteboard _preLoadedDataConformingToType:forItemProviderAtIndex:]):