Timeline



Jul 4, 2017:

9:44 PM Changeset in webkit [219125] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

Unreviewed, review follow-up after r218961

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::updateFromSettings):

5:59 PM Changeset in webkit [219124] by Yusuke Suzuki
  • 4 edits in trunk/Source/WTF

[WTF] Make double-conversion's cache data constant and drop double_conversion::initialize()
https://bugs.webkit.org/show_bug.cgi?id=174124

Reviewed by Saam Barati.

We annotate double-conversion's cache data as const and constexpr. And move it out of function.
Since they are not involving global constructors, they are compiled as rodata and initialized
without calling double_conversion::initialize().

And we drop double_conversion::initialize() function since it is no longer necessary.

  • wtf/Threading.cpp:

(WTF::initializeThreading):

  • wtf/dtoa/cached-powers.cc:
  • wtf/dtoa/cached-powers.h:
3:07 PM Changeset in webkit [219123] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

RenderThemeCocoa::mediaControlsFormattedStringForDuration is leaking NSDateComponentsFormatters
https://bugs.webkit.org/show_bug.cgi?id=174138

Reviewed by Ryosuke Niwa.

Saw a random spin here during media playback. Looks like we are leaking.

  • rendering/RenderThemeCocoa.h:
  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::mediaControlsFormattedStringForDuration):

Reuse NSDateComponentsFormatter.

2:53 PM BugsWebKitOrgImprovements edited by Michael Catanzaro
CC reviews on bugs when leaving a review (diff)
2:34 PM BugsWebKitOrgImprovements edited by sam@webkit.org
(diff)
1:14 PM Changeset in webkit [219122] by Michael Catanzaro
  • 1 edit
    2 deletes in trunk/Tools

Remove unused EFL logo from bot watcher dashboard
https://bugs.webkit.org/show_bug.cgi?id=174136

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/EFL.png: Removed.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/EFL@2x.png: Removed.
10:58 AM Changeset in webkit [219121] by Antti Koivisto
  • 6 edits in trunk

FrameView should not set RenderView::logicalWidth directly for printing
https://bugs.webkit.org/show_bug.cgi?id=174135

Reviewed by Zalan Bujtas.

Source/WebCore:

Renderer logicalWidth should be set by layout. Direct override by RenderView when printing means
that we don't layout children in all cases when the width changes. This is currently mostly hidden
by spurious layouts but causes problems when trying to fix other things that reduces those.

  • page/FrameView.cpp:

(WebCore::FrameView::forceLayoutForPagination):

Instead of calling setLogicalWidth directly call the new setPageLogicalSize that sets both the width
and the height uniformly.

  • rendering/RenderView.cpp:

(WebCore::RenderView::updateLogicalWidth):

Use pageLogicalSize->width() in printing state instead of skipping the logical width update entirely.
This ensures that the layout will progress to children when the page logical width changes.

(WebCore::RenderView::initializeLayoutState):
(WebCore::RenderView::layout):
(WebCore::RenderView::pageOrViewLogicalHeight):
(WebCore::RenderView::setPageLogicalSize):

  • rendering/RenderView.h:

Replace the existing m_pageLogicalHeight with std::optional m_pageLogicalSize.

LayoutTests:

  • platform/mac/printing/width-overflow-expected.txt:

This is a progression, view and root element sizes now match.
Printing output is not affected.

10:51 AM Changeset in webkit [219120] by Michael Catanzaro
  • 3 edits in trunk/Tools

[GTK] Add more GTK bots to dashboard
https://bugs.webkit.org/show_bug.cgi?id=174129

Reviewed by Carlos Alberto Lopez Perez.

We have a bunch of GTK bots that I never look at because they're not on the dashboard. Add
them.

This also changes the sort order to put WPE above GTK so that it's not buried under all the
less-essential GTK bots.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

10:43 AM Changeset in webkit [219119] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

[WTF] Initialize srandom and srand with cryptographically random number
https://bugs.webkit.org/show_bug.cgi?id=174123

Reviewed by Mark Lam.

Use cryptographically random number instead of current time as a seed.

  • wtf/RandomNumberSeed.h:

(WTF::initializeRandomNumberGenerator):

7:02 AM Changeset in webkit [219118] by Michael Catanzaro
  • 4 edits
    3 adds in trunk/Tools

[WPE] Add WPE to bot watcher dashboard
https://bugs.webkit.org/show_bug.cgi?id=174119

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/CREDIT: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WPE.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WPE@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(table.queue-grid tr.platform.linux-wpe img.logo):

4:43 AM Changeset in webkit [219117] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Xcode duplicate UUID for DisallowCType.h and DispatchPtr.h
https://bugs.webkit.org/show_bug.cgi?id=174117

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-07-04
Reviewed by Alexey Proskuryakov.

  • WTF.xcodeproj/project.pbxproj:

Give DisallowCType.h and DispatchPtr.h different UUIDs.

4:12 AM Changeset in webkit [219116] by calvaris@igalia.com
  • 3 edits in trunk/Source/WebCore

[EME] Solve a couple of compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=174020

Reviewed by Michael Catanzaro.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::isPersistentType): Added default return and
assertion.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::updateKeyStatuses): This warning was
already solved but I think adding an assertion for the default
case can help catch errors in the future.

1:03 AM Changeset in webkit [219115] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Cleanup some StringBuilder use
https://bugs.webkit.org/show_bug.cgi?id=174118

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-07-04
Reviewed by Andreas Kling.

Source/JavaScriptCore:

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • tools/FunctionOverrides.cpp:

(JSC::parseClause):

  • wasm/WasmOMGPlan.cpp:
  • wasm/WasmPlan.cpp:
  • wasm/WasmValidate.cpp:

Source/WebCore:

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::filterICECandidate):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::compileGlobalDisplayNoneStyleSheet):

  • css/CSSFontStyleRangeValue.cpp:

(WebCore::CSSFontStyleRangeValue::customCSSText):

  • css/CSSFontStyleValue.cpp:

(WebCore::CSSFontStyleValue::customCSSText):

  • css/CSSGridAutoRepeatValue.cpp:

(WebCore::CSSGridAutoRepeatValue::customCSSText):

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseFontFaceDescriptor):

  • dom/Attr.cpp:
  • html/canvas/WebGPURenderingContext.cpp:
  • html/parser/HTMLParserIdioms.cpp:
  • platform/network/ParsedContentType.cpp:
  • platform/network/cocoa/CookieCocoa.mm:
  • platform/text/mac/LocaleMac.mm:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::getAllResponseHeaders):

Source/WebKit2:

  • NetworkProcess/capture/NetworkCaptureManager.cpp:

(WebKit::NetworkCapture::Manager::hashToPath):

  • UIProcess/WebPageProxy.cpp:

Jul 3, 2017:

10:18 PM Changeset in webkit [219114] by sbarati@apple.com
  • 7 edits in trunk

LayoutTest workers/bomb.html is a Crash
https://bugs.webkit.org/show_bug.cgi?id=167757
<rdar://problem/33086462>

Reviewed by Keith Miller.

Source/JavaScriptCore:

VMTraps::SignalSender was accessing VM fields even after
the VM was destroyed. This happened when the SignalSender
thread was in the middle of its work() function while VMTraps
was notified that the VM was shutting down. The VM would proceed
to run its destructor even after the SignalSender thread finished
doing its work. This means that the SignalSender thread was accessing
VM field eve after VM was destructed (including itself, since it is
transitively owned by the VM). The VM must wait for the SignalSender
thread to shutdown before it can continue to destruct itself.

  • runtime/VMTraps.cpp:

(JSC::VMTraps::willDestroyVM):

Source/WTF:

  • wtf/AutomaticThread.cpp:

(WTF::AutomaticThreadCondition::waitFor):

  • wtf/AutomaticThread.h:

LayoutTests:

  • platform/mac-wk2/TestExpectations:
9:33 PM Changeset in webkit [219113] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit2

[iOS DnD] [WK2] Callout bar should reappear after dragging ends for a text selection
https://bugs.webkit.org/show_bug.cgi?id=174116
<rdar://problem/33017845>

Reviewed by Ryosuke Niwa.

-willStartScrollingOverflow -didEndScrollingOverflow are helper methods on both the UIWKTextInteractionAssistant
and UIWebSelectionAssistant that handle hiding selection and callout bar UI during overflow scrolling and making
it reappear after scrolling ends. However, these hooks do not contain logic specific to scrolling, and simply
tell the inner UIWebSelectionView to either show or hide and are safe to invoke outside of the context of
scrolling.

This patch invokes these hooks when beginning a drag on a selection, and when a dragging ends, if it called
-willStartScrollingOverflow to begin with. We should rename these in the future to be something along the lines
of -hideSelectionViewAndControls and -showSelectionViewAndControls, respectively, and adopt these new names in
WebKit. We also move logic to hide the callout out of -itemsForBeginningSession: and into
-willAnimateLiftWithAnimator:, when the lift actually begins.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cleanUpDragSourceSessionState]):
(-[WKContentView _restoreCalloutBarIfNeeded]):
(-[WKContentView dragInteraction:itemsForBeginningSession:]):
(-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):
(-[WKContentView dragInteraction:session:didEndWithOperation:]):

9:08 PM Changeset in webkit [219112] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Fix a typo pointed out by Andreas Kling.

  • public/v3/components/instant-file-uploader.js:

(InstantFileUploader.prototype._uploadFiles):

  • public/v3/models/uploaded-file.js:

(UploadedFile.fetchUploadedFileWithIdenticalHash): Renamed from fetchUnloadedFileWithIdenticalHash.

6:34 PM Changeset in webkit [219111] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFGBytecodeParser op_to_this does not access the correct instruction offset for to this status
https://bugs.webkit.org/show_bug.cgi?id=174110

Reviewed by Michael Saboff.

  • dfg/DFGByteCodeParser.cpp:

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

5:21 PM WebIDLToDo edited by sam@webkit.org
(diff)
5:16 PM Changeset in webkit [219110] by Lucas Forschler
  • 2 edits in trunk/Tools

https://bugs.webkit.org/show_bug.cgi?id=174105

Reviewed by Stephanie Lewis.

  • BuildSlaveSupport/built-product-archive:

(main): Add a -minify parser option
(createZip): Pass along the optional Minify argument if requested
(minifySource): This will trim down archives, logic limited to Mac platform.

5:10 PM Changeset in webkit [219109] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a new assertion to object allocation sinking phase
https://bugs.webkit.org/show_bug.cgi?id=174107

Rubber stamped by Filip Pizlo.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
4:44 PM Changeset in webkit [219108] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Null RenderLayer* deref in FrameView::adjustTiledBackingCoverage()
https://bugs.webkit.org/show_bug.cgi?id=174106
<rdar://problem/33085838>

Reviewed by Tim Horton.

I haven't been able to reproduce this crash locally, but I have seen
video of someone who can, so here's a null check for the RenderView::layer()
which could be null if we're called between RenderView construction
and the first callback to RenderLayerModelObject::styleDidChange().

  • page/FrameView.cpp:

(WebCore::FrameView::adjustTiledBackingCoverage):

4:34 PM Changeset in webkit [219107] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Removed expectations and skipped workers/bomb.html on mac.
https://bugs.webkit.org/show_bug.cgi?id=167757

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
4:19 PM Changeset in webkit [219106] by mrajca@apple.com
  • 19 edits in trunk

Add/remove appropriate media element behavior restrictions when updateWebsitePolicies is called
https://bugs.webkit.org/show_bug.cgi?id=174103

Reviewed by Alex Christensen.

Source/WebCore:

Test: Added API test.

Added support for updating rate change behavior restrictions on media elements that have already
been created.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateRateChangeRestrictions):

  • html/HTMLMediaElement.h:
  • page/Page.cpp:

(WebCore::Page::updateMediaElementRateChangeRestrictions):

  • page/Page.h:

Source/WebKit2:

Currently, when -[WKWebView evaluateJavaScript:completionHandler:] is invoked, we end up simulating
a user gesture unconditionally. This is not desireable for some tests, so I added a private variant
of this method that takes a boolean that is ultimately passed to executeScript for the
forceUserGesture parameter (instead of unconditionally passing true).

  • UIProcess/API/C/WKPage.cpp:

(WKPageRunJavaScriptInMainFrame):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView evaluateJavaScript:completionHandler:]):
(-[WKWebView _evaluateJavaScript:forceUserGesture:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptInMainFrame):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScriptInMainFrame):
(WebKit::WebPage::updateWebsitePolicies): Update behavior restrictions on any existing media elements.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Added an API test.

  • TestWebKitAPI/Tests/WebKit2/autoplay-check.html: Expose a pause method.
  • TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm:

(TEST): Added test.

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView stringByEvaluatingJavaScript:]): Don't simulate a user gesture when invoking the script.

4:12 PM Changeset in webkit [219105] by commit-queue@webkit.org
  • 19 edits in trunk/Source

Unreviewed, rolling out r219060.
https://bugs.webkit.org/show_bug.cgi?id=174108

crashing constantly when initializing UIWebView (Requested by
thorton on #webkit).

Reverted changeset:

"WTF::Thread should have the threads stack bounds."
https://bugs.webkit.org/show_bug.cgi?id=173975
http://trac.webkit.org/changeset/219060

4:12 PM Changeset in webkit [219104] by Matt Lewis
  • 23 edits
    7 copies
    16 moves
    84 adds
    116 deletes in trunk

Unreviewed, rolling out r219103.

Caused multiple build failures.

Reverted changeset:

"Remove copy of ICU headers from WebKit"
https://bugs.webkit.org/show_bug.cgi?id=116407
http://trac.webkit.org/changeset/219103

3:54 PM Changeset in webkit [219103] by Jonathan Bedard
  • 23 edits
    132 adds
    3 deletes in trunk

Remove copy of ICU headers from WebKit
https://bugs.webkit.org/show_bug.cgi?id=116407

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2017-07-03
Reviewed by Alex Christensen.

Source/JavaScriptCore:

Use WTF's copy of ICU headers.

  • Configurations/Base.xcconfig:
  • icu/unicode/localpointer.h: Removed.
  • icu/unicode/parseerr.h: Removed.
  • icu/unicode/platform.h: Removed.
  • icu/unicode/ptypes.h: Removed.
  • icu/unicode/putil.h: Removed.
  • icu/unicode/uchar.h: Removed.
  • icu/unicode/ucnv.h: Removed.
  • icu/unicode/ucnv_err.h: Removed.
  • icu/unicode/ucol.h: Removed.
  • icu/unicode/uconfig.h: Removed.
  • icu/unicode/ucurr.h: Removed.
  • icu/unicode/uenum.h: Removed.
  • icu/unicode/uiter.h: Removed.
  • icu/unicode/uloc.h: Removed.
  • icu/unicode/umachine.h: Removed.
  • icu/unicode/unorm.h: Removed.
  • icu/unicode/unorm2.h: Removed.
  • icu/unicode/urename.h: Removed.
  • icu/unicode/uscript.h: Removed.
  • icu/unicode/uset.h: Removed.
  • icu/unicode/ustring.h: Removed.
  • icu/unicode/utf.h: Removed.
  • icu/unicode/utf16.h: Removed.
  • icu/unicode/utf8.h: Removed.
  • icu/unicode/utf_old.h: Removed.
  • icu/unicode/utypes.h: Removed.
  • icu/unicode/uvernum.h: Removed.
  • icu/unicode/uversion.h: Removed.
  • runtime/IntlCollator.cpp:
  • runtime/IntlDateTimeFormat.cpp:
  • runtime/JSGlobalObject.cpp:
  • runtime/StringPrototype.cpp:

Source/WebCore:

Use WTF's copy of ICU headers.

No new tests because there is no behavior change.

  • Configurations/WebCore.xcconfig:
  • icu/unicode/bytestream.h: Removed.
  • icu/unicode/localpointer.h: Removed.
  • icu/unicode/parseerr.h: Removed.
  • icu/unicode/platform.h: Removed.
  • icu/unicode/ptypes.h: Removed.
  • icu/unicode/putil.h: Removed.
  • icu/unicode/rep.h: Removed.
  • icu/unicode/std_string.h: Removed.
  • icu/unicode/strenum.h: Removed.
  • icu/unicode/stringpiece.h: Removed.
  • icu/unicode/ubrk.h: Removed.
  • icu/unicode/uchar.h: Removed.
  • icu/unicode/ucnv.h: Removed.
  • icu/unicode/ucnv_err.h: Removed.
  • icu/unicode/ucol.h: Removed.
  • icu/unicode/uconfig.h: Removed.
  • icu/unicode/ucurr.h: Removed.
  • icu/unicode/uenum.h: Removed.
  • icu/unicode/uiter.h: Removed.
  • icu/unicode/uloc.h: Removed.
  • icu/unicode/umachine.h: Removed.
  • icu/unicode/unistr.h: Removed.
  • icu/unicode/unorm.h: Removed.
  • icu/unicode/unorm2.h: Removed.
  • icu/unicode/uobject.h: Removed.
  • icu/unicode/urename.h: Removed.
  • icu/unicode/uscript.h: Removed.
  • icu/unicode/uset.h: Removed.
  • icu/unicode/ustring.h: Removed.
  • icu/unicode/utext.h: Removed.
  • icu/unicode/utf.h: Removed.
  • icu/unicode/utf16.h: Removed.
  • icu/unicode/utf8.h: Removed.
  • icu/unicode/utf_old.h: Removed.
  • icu/unicode/utypes.h: Removed.
  • icu/unicode/uvernum.h: Removed.
  • icu/unicode/uversion.h: Removed.

Source/WebKit/mac:

Use WTF's copy of ICU headers.

  • Configurations/WebKitLegacy.xcconfig:
  • icu/unicode/localpointer.h: Removed.
  • icu/unicode/parseerr.h: Removed.
  • icu/unicode/platform.h: Removed.
  • icu/unicode/ptypes.h: Removed.
  • icu/unicode/putil.h: Removed.
  • icu/unicode/uchar.h: Removed.
  • icu/unicode/uconfig.h: Removed.
  • icu/unicode/ucurr.h: Removed.
  • icu/unicode/uidna.h: Removed.
  • icu/unicode/uiter.h: Removed.
  • icu/unicode/umachine.h: Removed.
  • icu/unicode/unorm.h: Removed.
  • icu/unicode/unorm2.h: Removed.
  • icu/unicode/urename.h: Removed.
  • icu/unicode/uscript.h: Removed.
  • icu/unicode/ustring.h: Removed.
  • icu/unicode/utf.h: Removed.
  • icu/unicode/utf16.h: Removed.
  • icu/unicode/utf8.h: Removed.
  • icu/unicode/utf_old.h: Removed.
  • icu/unicode/utypes.h: Removed.
  • icu/unicode/uvernum.h: Removed.
  • icu/unicode/uversion.h: Removed.

Source/WebKit2:

Use WTF's copy of ICU headers.

  • Configurations/BaseTarget.xcconfig:

Source/WTF:

Add an extra rsync command to CopyWTFHeaders which copies the ICU headers
to DSTROOT/usr/local/include/. These headers already live inside a
"unicode" folder, so an example path of a header is
DSTROOT/usr/local/include/unicode/uchar.h. This is already in the search
path of the other WebKit projects, so those other projects can remove
their explicit listing of the old place these headers lived.

Also add the remaining ICU 55.1 headers which the other projects (like
WebCore) need. Revert any local changes to these headers in favor of
using the GCC_PREPROCESSOR_DEFINITIONS build setting. This is so we can
compile the same way against unmodified headers.

  • Configurations/Base.xcconfig:
  • Configurations/CopyWTFHeaders.xcconfig:
  • WTF.xcodeproj/project.pbxproj:
  • icu/unicode/alphaindex.h: Added.
  • icu/unicode/appendable.h: Added.
  • icu/unicode/basictz.h: Added.
  • icu/unicode/brkiter.h: Added.

(BreakIterator::isBufferClone):

  • icu/unicode/bytestrie.h: Added.
  • icu/unicode/bytestriebuilder.h: Added.
  • icu/unicode/calendar.h: Added.

(Calendar::createInstance):
(Calendar::roll):
(Calendar::internalSet):
(Calendar::weekNumber):

  • icu/unicode/caniter.h: Added.
  • icu/unicode/chariter.h: Renamed from Source/WebCore/icu/unicode/chariter.h.
  • icu/unicode/choicfmt.h: Added.
  • icu/unicode/coleitr.h: Added.

(CollationElementIterator::primaryOrder):
(CollationElementIterator::secondaryOrder):
(CollationElementIterator::tertiaryOrder):
(CollationElementIterator::isIgnorable):

  • icu/unicode/coll.h: Added.
  • icu/unicode/compactdecimalformat.h: Added.
  • icu/unicode/curramt.h: Added.

(CurrencyAmount::getCurrency):
(CurrencyAmount::getISOCurrency):

  • icu/unicode/currpinf.h: Added.

(CurrencyPluralInfo::operator!=):

  • icu/unicode/currunit.h: Added.

(CurrencyUnit::getISOCurrency):

  • icu/unicode/datefmt.h: Added.
  • icu/unicode/dbbi.h: Added.
  • icu/unicode/dcfmtsym.h: Added.

(DecimalFormatSymbols::getSymbol):
(DecimalFormatSymbols::getConstSymbol):
(DecimalFormatSymbols::setSymbol):
(DecimalFormatSymbols::getLocale):
(DecimalFormatSymbols::getCurrencyPattern):

  • icu/unicode/decimfmt.h: Added.

(DecimalFormat::getConstSymbol):

  • icu/unicode/docmain.h: Added.
  • icu/unicode/dtfmtsym.h: Added.
  • icu/unicode/dtintrv.h: Added.

(DateInterval::getFromDate):
(DateInterval::getToDate):
(DateInterval::operator!=):

  • icu/unicode/dtitvfmt.h: Added.

(DateIntervalFormat::operator!=):

  • icu/unicode/dtitvinf.h: Added.

(DateIntervalInfo::operator!=):

  • icu/unicode/dtptngen.h: Added.
  • icu/unicode/dtrule.h: Added.
  • icu/unicode/enumset.h: Added.

(EnumSet::EnumSet):
(EnumSet::~EnumSet):
(EnumSet::clear):
(EnumSet::add):
(EnumSet::remove):
(EnumSet::contains):
(EnumSet::set):
(EnumSet::get):
(EnumSet::isValidEnum):
(EnumSet::isValidValue):
(EnumSet::operator=):
(EnumSet::getAll):
(EnumSet::flag):

  • icu/unicode/errorcode.h: Added.
  • icu/unicode/fieldpos.h: Added.

(FieldPosition::operator=):
(FieldPosition::operator==):
(FieldPosition::operator!=):

  • icu/unicode/filteredbrk.h: Added.
  • icu/unicode/fmtable.h: Added.

(Formattable::getDate):
(Formattable::getString):
(Formattable::getLong):
(Formattable::toUFormattable):
(Formattable::fromUFormattable):

  • icu/unicode/format.h: Added.
  • icu/unicode/fpositer.h: Added.
  • icu/unicode/gender.h: Added.
  • icu/unicode/gregocal.h: Added.
  • icu/unicode/icudataver.h: Added.
  • icu/unicode/icuplug.h: Added.
  • icu/unicode/idna.h: Added.
  • icu/unicode/listformatter.h: Added.

(ListFormatData::ListFormatData):

  • icu/unicode/locdspnm.h: Added.

(LocaleDisplayNames::createInstance):

  • icu/unicode/locid.h: Added.

(Locale::operator!=):
(Locale::getCountry):
(Locale::getLanguage):
(Locale::getScript):
(Locale::getVariant):
(Locale::getName):
(Locale::isBogus):

  • icu/unicode/measfmt.h: Added.
  • icu/unicode/measunit.h: Added.
  • icu/unicode/measure.h: Added.

(Measure::getNumber):
(Measure::getUnit):

  • icu/unicode/messagepattern.h: Added.
  • icu/unicode/msgfmt.h: Added.
  • icu/unicode/normalizer2.h: Added.
  • icu/unicode/normlzr.h: Added.

(Normalizer::operator!= ):
(Normalizer::quickCheck):
(Normalizer::isNormalized):
(Normalizer::compare):

  • icu/unicode/numfmt.h: Added.

(NumberFormat::isParseIntegerOnly):
(NumberFormat::isLenient):

  • icu/unicode/numsys.h: Added.
  • icu/unicode/parsepos.h: Added.

(ParsePosition::operator=):
(ParsePosition::operator==):
(ParsePosition::operator!=):
(ParsePosition::getIndex):
(ParsePosition::setIndex):
(ParsePosition::getErrorIndex):
(ParsePosition::setErrorIndex):

  • icu/unicode/plurfmt.h: Added.
  • icu/unicode/plurrule.h: Added.
  • icu/unicode/rbbi.h: Added.

(RuleBasedBreakIterator::operator!=):

  • icu/unicode/rbnf.h: Added.

(RuleBasedNumberFormat::isLenient):
(RuleBasedNumberFormat::getDefaultRuleSet):

  • icu/unicode/rbtz.h: Added.
  • icu/unicode/regex.h: Added.
  • icu/unicode/region.h: Added.
  • icu/unicode/reldatefmt.h: Added.
  • icu/unicode/resbund.h: Added.
  • icu/unicode/schriter.h: Added.
  • icu/unicode/scientificnumberformatter.h: Added.
  • icu/unicode/search.h: Added.

(SearchIterator::operator!=):

  • icu/unicode/selfmt.h: Added.
  • icu/unicode/simpletz.h: Added.

(SimpleTimeZone::setStartRule):
(SimpleTimeZone::setEndRule):
(SimpleTimeZone::getOffset):

  • icu/unicode/smpdtfmt.h: Added.

(SimpleDateFormat::get2DigitYearStart):

  • icu/unicode/sortkey.h: Added.

(CollationKey::operator!=):
(CollationKey::isBogus):
(CollationKey::getByteArray):

  • icu/unicode/stringtriebuilder.h: Added.
  • icu/unicode/stsearch.h: Added.
  • icu/unicode/symtable.h: Added.
  • icu/unicode/tblcoll.h: Added.
  • icu/unicode/timezone.h: Added.

(TimeZone::getID):
(TimeZone::setID):

  • icu/unicode/tmunit.h: Added.
  • icu/unicode/tmutamt.h: Added.

(TimeUnitAmount::operator!=):

  • icu/unicode/tmutfmt.h: Added.

(TimeUnitFormat::operator!=):

  • icu/unicode/translit.h: Added.

(Transliterator::getMaximumContextLength):
(Transliterator::setID):
(Transliterator::integerToken):
(Transliterator::pointerToken):

  • icu/unicode/tzfmt.h: Added.
  • icu/unicode/tznames.h: Added.
  • icu/unicode/tzrule.h: Added.
  • icu/unicode/tztrans.h: Added.
  • icu/unicode/ubidi.h: Added.
  • icu/unicode/ucal.h: Renamed from Source/JavaScriptCore/icu/unicode/ucal.h.
  • icu/unicode/ucasemap.h: Added.
  • icu/unicode/ucat.h: Added.
  • icu/unicode/ucharstrie.h: Added.
  • icu/unicode/ucharstriebuilder.h: Added.
  • icu/unicode/uchriter.h: Added.
  • icu/unicode/uclean.h: Added.
  • icu/unicode/ucnv_cb.h: Renamed from Source/WebCore/icu/unicode/ucnv_cb.h.
  • icu/unicode/ucnvsel.h: Added.
  • icu/unicode/ucoleitr.h: Renamed from Source/WebCore/icu/unicode/ucoleitr.h.
  • icu/unicode/uconfig.h:
  • icu/unicode/ucsdet.h: Renamed from Source/WebCore/icu/unicode/ucsdet.h.
  • icu/unicode/udat.h: Renamed from Source/JavaScriptCore/icu/unicode/udat.h.
  • icu/unicode/udata.h: Added.
  • icu/unicode/udateintervalformat.h: Added.
  • icu/unicode/udatpg.h: Renamed from Source/JavaScriptCore/icu/unicode/udatpg.h.
  • icu/unicode/udisplaycontext.h: Renamed from Source/JavaScriptCore/icu/unicode/udisplaycontext.h.
  • icu/unicode/ufieldpositer.h: Renamed from Source/JavaScriptCore/icu/unicode/ufieldpositer.h.
  • icu/unicode/uformattable.h: Renamed from Source/JavaScriptCore/icu/unicode/uformattable.h.
  • icu/unicode/ugender.h: Added.
  • icu/unicode/uidna.h: Renamed from Source/WebCore/icu/unicode/uidna.h.
  • icu/unicode/uldnames.h: Added.
  • icu/unicode/ulistformatter.h: Added.
  • icu/unicode/ulocdata.h: Added.
  • icu/unicode/umisc.h: Renamed from Source/JavaScriptCore/icu/unicode/umisc.h.
  • icu/unicode/umsg.h: Added.
  • icu/unicode/unifilt.h: Added.
  • icu/unicode/unifunct.h: Added.
  • icu/unicode/unimatch.h: Added.
  • icu/unicode/unirepl.h: Added.
  • icu/unicode/uniset.h: Added.

(UnicodeSet::operator!=):
(UnicodeSet::isFrozen):
(UnicodeSet::containsSome):
(UnicodeSet::isBogus):
(UnicodeSet::fromUSet):
(UnicodeSet::toUSet):
(UnicodeSet::span):
(UnicodeSet::spanBack):

  • icu/unicode/unum.h: Renamed from Source/JavaScriptCore/icu/unicode/unum.h.
  • icu/unicode/unumsys.h: Renamed from Source/JavaScriptCore/icu/unicode/unumsys.h.
  • icu/unicode/upluralrules.h: Added.
  • icu/unicode/uregex.h: Added.
  • icu/unicode/uregion.h: Added.
  • icu/unicode/urep.h: Added.
  • icu/unicode/ures.h: Added.

(ures_getUnicodeString):
(ures_getNextUnicodeString):
(ures_getUnicodeStringByIndex):
(ures_getUnicodeStringByKey):

  • icu/unicode/usearch.h: Renamed from Source/WebCore/icu/unicode/usearch.h.
  • icu/unicode/usetiter.h: Added.

(UnicodeSetIterator::isString):
(UnicodeSetIterator::getCodepoint):
(UnicodeSetIterator::getCodepointEnd):

  • icu/unicode/ushape.h: Renamed from Source/WebCore/icu/unicode/ushape.h.
  • icu/unicode/usprep.h: Added.
  • icu/unicode/ustdio.h: Added.
  • icu/unicode/ustream.h: Added.
  • icu/unicode/ustringtrie.h: Added.
  • icu/unicode/utf32.h: Added.
  • icu/unicode/utmscale.h: Added.
  • icu/unicode/utrace.h: Added.
  • icu/unicode/utrans.h: Added.
  • icu/unicode/utypes.h:
  • icu/unicode/vtzone.h: Added.

Tools:

Use WTF's copy of ICU headers.

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
3:46 PM Changeset in webkit [219102] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

REGRESSION(Variation Fonts): Specifying Skia by PostScript name does not yield the expected result
https://bugs.webkit.org/show_bug.cgi?id=174079
<rdar://problem/33040854>

Reviewed by Alex Christensen.

Source/WebCore:

Because Skia is a variation font, its PostScript name contains values to apply to its variation
axes. However, WebKit's variation code was overwriting these intrinsive values with ones specified
by CSS. Therefore, the intrinsic ones were being ignored. The solution is just to pass a flag from
the lookup code to the variations code describing if the font was created via a PostScript name,
and to not apply the CSS properties to it if it was.

Test: fast/text/variations/skia-postscript-name.html

  • platform/graphics/FontCache.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::preparePlatformFont):
(WebCore::platformFontLookupWithFamily):
(WebCore::fontWithFamily):

LayoutTests:

  • fast/text/variations/skia-postscript-name-expected-mismatch.html: Added.
  • fast/text/variations/skia-postscript-name.html: Added.
  • platform/ios-simulator/TestExpectations:
3:29 PM Changeset in webkit [219101] by keith_miller@apple.com
  • 2 edits in trunk/Source/WTF

Fix ifndef in Assertions.h
https://bugs.webkit.org/show_bug.cgi?id=174104

Reviewed by Saam Barati.

The ifndef should have been checking for
CRASH_WITH_SECURITY_IMPLICATION_AND_INFO since that is what the
ifndef defines.

  • wtf/Assertions.h:
3:28 PM Changeset in webkit [219100] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Update expectations for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=172437

Unreviewed test gardening, update test expectations for failing tests.

  • platform/win/TestExpectations:
3:17 PM Changeset in webkit [219099] by beidson@apple.com
  • 22 edits in trunk

Switch all WebKit API related to favicons from WebIconDatabase over to new WebCore::IconLoader mechanism.
https://bugs.webkit.org/show_bug.cgi?id=174073

Reviewed by Andy Estes.

Source/WebCore:

Covered by existing API test.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startIconLoading):

  • loader/EmptyClients.cpp:
  • loader/FrameLoaderClient.h:

Source/WebKit/mac:

WebView now keeps a direct copy of its main frame icon as a member variable.
It populates that variable by finding exactly one Favicon LinkIcon from WebCore and loading it.

This change causes a progression in KVO observation of the mainFrameIcon property as we now
have both the old icon and new icon at the time it changes.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::prepareForDataSourceReplacement):
(WebFrameLoaderClient::getLoadDecisionForIcons):
(WebFrameLoaderClient::finishedLoadingIcon):
(WebFrameLoaderClient::dispatchDidReceiveIcon): Deleted.
(WebFrameLoaderClient::registerForIconNotification): Deleted.

  • WebView/WebView.mm:

(+[WebView _setIconLoadingEnabled:]):
(+[WebView _isIconLoadingEnabled]):
(-[WebView mainFrameIcon]):
(-[WebView _setMainFrameIcon:]):
(-[WebView _receivedIconChangedNotification:]): Deleted.
(-[WebView _registerForIconNotification:]): Deleted.
(-[WebView _dispatchDidReceiveIconFromWebFrame:]): Deleted.

  • WebView/WebViewData.h:
  • WebView/WebViewInternal.h:
  • WebView/WebViewPrivate.h:

Source/WebKit/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDidReceiveIcon): Deleted.
(WebFrameLoaderClient::registerForIconNotification): Deleted.

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::getLoadDecisionForIcons):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveIcon): Deleted.
(WebKit::WebFrameLoaderClient::registerForIconNotification): Deleted.
(WebKit::WebFrameLoaderClient::getLoadDecisionForIcon): Deleted.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Tools:

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setIconDatabaseEnabled): Call new SPI for this setting instead of WebIconDatabase stuff.

  • TestWebKitAPI/Tests/mac/WebViewIconLoading.mm:

(-[MainFrameIconKVO observeValueForKeyPath:ofObject:change:context:]):

LayoutTests:

  • http/tests/security/contentSecurityPolicy/block-favicon-expected.txt: Updated results to actually catch the load being blocked due to CSP.
2:51 PM Changeset in webkit [219098] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add better crash logging for allocation sinking phase
https://bugs.webkit.org/show_bug.cgi?id=174102
<rdar://problem/33112092>

Rubber stamped by Filip Pizlo.

I'm trying to gather better information from crashlogs about why
we're crashing in the allocation sinking phase. I'm adding a allocation
sinking specific RELEASE_ASSERT as well as marking a few functions as
NEVER_INLINE to have the stack traces in the crash trace contain more
actionable information.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
2:49 PM Changeset in webkit [219097] by commit-queue@webkit.org
  • 16 edits in trunk/Source

[WebIDL] Remove more unnecessary uses of the preprocessor in idl files
https://bugs.webkit.org/show_bug.cgi?id=174083

Patch by Sam Weinig <sam@webkit.org> on 2017-07-03
Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_NAVIGATOR_STANDALONE.

Source/WebCore:

Purge as much preprocessor use as possible.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_NAVIGATOR_STANDALONE.

  • animation/Animatable.idl:

Remove unnecessary check for LANGUAGE_OBJECTIVE_C. We no longer generate those bindings.

  • html/MediaError.idl:

Use [Conditional] rather than the preprocessor.

  • page/Navigator.idl:

Use [Conditional] rather than the preprocessor with the new ENABLE_NAVIGATOR_STANDALONE.

  • testing/Internals.cpp:
  • testing/Internals.h:

Expose setQuickLookPassword on all platforms, as it doesn't hurt since it is only for testing,
but make the implementation do nothing.

  • testing/Internals.idl:

Use [Conditional] rather than the preprocessor.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_NAVIGATOR_STANDALONE.

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_NAVIGATOR_STANDALONE.

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_NAVIGATOR_STANDALONE.

2:44 PM Changeset in webkit [219096] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked media/track/track-cues-sorted-before-dispatch.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=168092

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
2:43 PM Changeset in webkit [219095] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Curl] Fix compilation errors
https://bugs.webkit.org/show_bug.cgi?id=174085

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2017-07-03
Reviewed by Alex Christensen.

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlContext::initCookieSession):

  • platform/network/curl/CurlContext.h:
2:38 PM Changeset in webkit [219094] by Matt Lewis
  • 4 edits
    1 delete in trunk

Unreviewed, rolling out r219083.

The revision caused an API failure on all testing platforms.

Reverted changeset:

"[MediaStream] Protect request and web view during gUM client
callback"
https://bugs.webkit.org/show_bug.cgi?id=174096
http://trac.webkit.org/changeset/219083

2:16 PM Changeset in webkit [219093] by rniwa@webkit.org
  • 2 edits
    1 add in trunk/Websites/perf.webkit.org

Add an admin page to manage uploaded files
https://bugs.webkit.org/show_bug.cgi?id=174089

Reviewed by Andreas Kling.

Add an admin page to see the disk usage per user as well as the total, and to prune any zombie files (ones marked
as deleted but aren't actually deleted in the filesystem).

  • public/admin/files.php: Added.

(format_size): Added.

  • public/include/admin-header.php:
2:14 PM Changeset in webkit [219092] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Roots uploaded by bots don't get author specified properly
https://bugs.webkit.org/show_bug.cgi?id=174087

Reviewed by Andreas Kling.

When a root file is uploaded from the bot, we manually specify the remote user to upload_file_in_transaction.
However, this was getting ignored by create_uploaded_file_from_form_data since it was always calling
remote_user_name to get the user name off of $_SERVER.

Fixed the bug by passing in the user name from upload_file_in_transaction to create_uploaded_file_from_form_data.

  • public/include/uploaded-file-helpers.php:

(create_uploaded_file_from_form_data): Take the remote user as an argument instead of calling remote_user_name.
(upload_file_in_transaction):

  • server-tests/api-upload-root-tests.js: Updated an existing test cases to make sure root files' author is set.

(createTestGroupWihPatch): Manually override the author of a test group for testing.

2:13 PM Changeset in webkit [219091] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Prune unused uploaded files when the file quota is reached
https://bugs.webkit.org/show_bug.cgi?id=174086

Reviewed by Andreas Kling.

Made /privileged-api/uploaded-file and /api/upload-root automatically delete old uploaded files when
uploading a new file results in the file quota to be exceeded. Also added the notion of the total quota
to avoid running out of a disk when there are hundreds of users each uploading near their quota.

  • config.json: Added a sample total disk quota of 100GB.
  • public/include/uploaded-file-helpers.php:

(query_file_usage_for_user): Renamed from query_total_file_size.
(query_total_file_usage): Added.
(upload_file_in_transaction):
(delete_file): Added.
(prune_old_files): Added.

  • server-tests/privileged-api-upload-file-tests.js: Added tests for deleting old uploaded files as well as

tests for the total quota.

  • server-tests/resources/test-server.js:

(TestServer.prototype.testConfig): Added uploadTotalQuotaInMB to the test configuration.

2:01 PM Changeset in webkit [219090] by commit-queue@webkit.org
  • 7 edits in trunk

WebAudioSourceProviderAVFObjC should not reconfigure for each data call
https://bugs.webkit.org/show_bug.cgi?id=174101

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-03
Reviewed by Eric Carlson.

Source/WebCore:

Covered by manual testing, in particular
https://webrtc.github.io/samples/src/content/peerconnection/webaudio-output/
and https://webrtc.github.io/samples/src/content/getusermedia/volume/.
Also improved LayoutTests web audio peer connection tests to make them more robust.

Before the patch, reconfiguration of the web audio provider was happening for every audioSamplesAvailable call.
It is now happening only when the format of the audio samples is changing.
Changed some member fields from uinque_ptr to optional as a minor improvement.

  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h:
  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:

(WebCore::WebAudioSourceProviderAVFObjC::provideInput):
(WebCore::WebAudioSourceProviderAVFObjC::prepare):
(WebCore::WebAudioSourceProviderAVFObjC::unprepare):
(WebCore::WebAudioSourceProviderAVFObjC::audioSamplesAvailable):

LayoutTests:

  • TestExpectations:
  • webrtc/peer-connection-audio-mute2.html:
  • webrtc/peer-connection-remote-audio-mute2.html:
1:17 PM Changeset in webkit [219089] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Stop using dispatch_async in ResourceHandleCFURLConnectionDelegateWithOperationQueue
https://bugs.webkit.org/show_bug.cgi?id=174059

Reviewed by Andy Estes.

Use dispatch_async_f and callOnMainThread instead.
No change in behavior.
This will allow me to use this code on Windows.

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):

1:15 PM Changeset in webkit [219088] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: Properly number duplicated crashlogs
https://bugs.webkit.org/show_bug.cgi?id=172002

Reviewed by Aakash Jain.

  • Scripts/webkitpy/common/system/crashlogs.py:

(CrashLogs._find_all_logs_darwin): Number multiple crash logs for a single process with
an increasing integer.

  • Scripts/webkitpy/common/system/crashlogs_unittest.py:

(CrashLogsTest.create_crash_logs_darwin): Create duplicated crashlog for testing.
(CrashLogsTest.test_find_all_log_darwin): Now 7 Darwin logs instead of 5.
(CrashLogsTest.test_duplicate_log_darwin): Test that duplicated logs are correctly numbered.

12:47 PM Changeset in webkit [219087] by rniwa@webkit.org
  • 11 edits
    1 add in trunk

WebContent processes crash when the network process crashes with pending connection requests
https://bugs.webkit.org/show_bug.cgi?id=174065
<rdar://problem/30359835>

Reviewed by Tim Horton.

Source/WebKit2:

The bug was caused by the UI process clearing away pending network connection requests whenever the existing
network process crashed. This resulted in WebContent process killing itself inside ensureNetworkProcessConnection.

Fixed the bug by re-launching a new network process when this happens. We don't try to re-launch a new process
if the previous attempt to launch a network process had failed.

This patch splits NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch into networkProcessFailedToLaunch
and networkProcessCrashed to differentiate those two cases, and invoke the respective callbacks in WebProcessPool.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _networkProcessIdentifier]): Added.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::networkProcessCrashed): Added.
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch): Split into the two following functions.
(WebKit::NetworkProcessProxy::networkProcessFailedToLaunch): Extracted from networkProcessCrashedOrFailedToLaunch.
(WebKit::NetworkProcessProxy::clearCallbackStates): Extracted from networkProcessCrashedOrFailedToLaunch
(WebKit::NetworkProcessProxy::didClose): Call networkProcessCrashed.
(WebKit::NetworkProcessProxy::didFinishLaunching): Call networkProcessFailedToLaunch.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::networkProcessCrashed): Start a new network process when there are pending connection
requests the crached network failed to fullfil.
(WebKit::WebProcessPool::networkProcessFailedToLaunch):

  • UIProcess/WebProcessPool.h:

Tools:

Add a API to ensure UI process tries to relaunch a new network process when the network process
crashes with pending network connection requests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/NetworkProcessCrashWithPendingConnection.mm: Added.
  • TestWebKitAPI/cocoa/TestNavigationDelegate.h:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:

(-[TestNavigationDelegate webViewWebContentProcessDidTerminate:]): Added.

12:11 PM Changeset in webkit [219086] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Rebase test after r219024
https://bugs.webkit.org/show_bug.cgi?id=174051

  • fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame-expected.txt:
12:04 PM Changeset in webkit [219085] by Jonathan Bedard
  • 3 edits
    3 adds in trunk/LayoutTests

Run webgl tests on iOS ports
https://bugs.webkit.org/show_bug.cgi?id=173000

Unreviewed test gardening.

  • platform/ios-device/TestExpectations: Garden webgl tests.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/ios/TestExpectations: Ditto.
  • platform/ios/fast/canvas/webgl: Added.
  • platform/ios/fast/canvas/webgl/css-webkit-canvas-expected.txt: Added.
  • platform/ios/fast/canvas/webgl/css-webkit-canvas-repaint-expected.txt: Added.
11:55 AM Changeset in webkit [219084] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Expose unobscuredSafeAreaInsets on WebView
https://bugs.webkit.org/show_bug.cgi?id=174075
<rdar://problem/33096997>

Reviewed by Beth Dakin.

  • WebView/WebView.mm:

(-[WebView _setUnobscuredSafeAreaInsets:]):
(-[WebView _unobscuredSafeAreaInsets]):

  • WebView/WebViewPrivate.h:

Expose unobscuredSafeAreaInsets as a new private property on WebView,
similar to how it is exposed in WebKit2.

11:55 AM Changeset in webkit [219083] by eric.carlson@apple.com
  • 4 edits
    1 add in trunk

[MediaStream] Protect request and web view during gUM client callback
https://bugs.webkit.org/show_bug.cgi?id=174096
<rdar://problem/32833102>

Reviewed by Youenn Fablet.

Source/WebKit2:

Retain the message and WebView during asynchronous calls so they won't be
released if a navigation happens during a call to the UA for getUserMedia
or enumerateMediaDevices.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::requestUserMediaAuthorizationForDevices):
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):
(WebKit::UIDelegate::UIClient::checkUserMediaPermissionForOrigin):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/GetUserMediaNavigation.mm: New test.
11:36 AM Changeset in webkit [219082] by aestes@apple.com
  • 24 edits
    5 adds in trunk

[Xcode] Add an experimental setting to build with ccache
https://bugs.webkit.org/show_bug.cgi?id=173875

Reviewed by Tim Horton.

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/JavaScriptCore:

  • Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/ThirdParty/ANGLE:

  • Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/ThirdParty/libwebrtc:

  • Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/WebCore:

  • Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/WebCore/PAL:

  • Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/WebKit/mac:

  • Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/WebKit2:

  • Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Source/WTF:

  • Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

Tools:

On systems that already have ccache(1) installed, this patch adds experimental support for
it to Xcode builds. It can be enabled with the WK_USE_CCACHE build setting.

When ccache is enabled, CC is overridden to invoke Tools/ccache/ccache-clang. This script
finds the "-isysroot" argument to determine the active SDK, uses xcrun(1) and the SDK to
find the toolchain from which to run clang, and then invokes ccache with the required
arguments.

ccache is invoked with CCACHE_SLOPPINESS="pch_defines,time_macros", which is required for
precompiled headers to work properly [1].

LDPLUSPLUS is overridden to invoke Tools/ccache/ccache-clang++. It behaves the same as
ccache-clang, except it tells ccache to execute clang++ instead of clang. This is important
during linking.

[1] https://ccache.samba.org/manual.html#_precompiled_headers

  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.
  • MiniBrowser/Configurations/DebugRelease.xcconfig: Ditto.
  • MobileMiniBrowser/Configurations/DebugRelease.xcconfig: Ditto.
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig: Ditto.
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig: Ditto.
  • ccache/README.md: Added.
  • ccache/ccache-clang: Added.
  • ccache/ccache-clang++: Added.
  • ccache/ccache.xcconfig: Added. Overrides CC and LDPLUSPLUS when WK_USE_CACHE=YES.
11:35 AM Changeset in webkit [219081] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r218910): Crash inside textMarkerDataForFirstPositionInTextControl
https://bugs.webkit.org/show_bug.cgi?id=174077
<rdar://problem/33083972>

Reviewed by Chris Fleizach.

Source/WebCore:

The bug was caused by textMarkerDataForFirstPositionInTextControl assuming that
there is always a root editable element (a.k.a. editing host) in the text control.
When the text control is readonly or disabled, this is not the case.

Fixed the bug by adding an early exit when there is no editing host.

Test: accessibility/mac/input-type-change-crash.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl):

LayoutTests:

Added a regression test for changing the input element's type during editing.

  • accessibility/mac/input-type-change-crash-expected.txt: Added.
  • accessibility/mac/input-type-change-crash.html: Added.
11:31 AM Changeset in webkit [219080] by sbarati@apple.com
  • 4 edits in trunk/LayoutTests

Unreviewed. Mark workers/bomb.html as flaky.

  • platform/ios-device/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
11:23 AM Changeset in webkit [219079] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Skip unshiftCountSlowCase-correct-postCapacity.js on debug builds since it takes a long time to run.

  • stress/unshiftCountSlowCase-correct-postCapacity.js:
11:21 AM Changeset in webkit [219078] by Devin Rousso
  • 13 edits
    11 adds
    2 deletes in trunk

Web Inspector: Support listing WebGL2 and WebGPU contexts
https://bugs.webkit.org/show_bug.cgi?id=173396

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/Canvas.json:
  • inspector/scripts/codegen/generator.py:

(Generator.stylized_name_for_enum_value):
Add cases for handling new Canvas.ContextType protocol enumerations:

  • "webgl2" maps to WebGL2
  • "webgpu" maps to WebGPU

Source/WebCore:

Tests: inspector/canvas/create-context-2d.html

inspector/canvas/create-context-webgl.html
inspector/canvas/create-context-webgl2.html
inspector/canvas/create-context-webgpu.html

Split "inspector/canvas/create-canvas-contexts.html" into a test for each context type.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getContextWebGPU):

  • inspector/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::buildObjectForCanvas):

Source/WebInspectorUI:

  • UserInterface/Models/Canvas.js:

(WebInspector.Canvas.fromPayload):
(WebInspector.Canvas.displayNameForContextType):

LayoutTests:

  • inspector/canvas/create-canvas-contexts-expected.txt: Removed.
  • inspector/canvas/create-canvas-contexts.html: Removed.
  • inspector/canvas/create-context-2d-expected.txt: Added.
  • inspector/canvas/create-context-2d.html: Added.
  • inspector/canvas/create-context-webgl-expected.txt: Added.
  • inspector/canvas/create-context-webgl.html: Added.
  • inspector/canvas/create-context-webgl2-expected.txt: Added.
  • inspector/canvas/create-context-webgl2.html: Added.
  • inspector/canvas/create-context-webgpu-expected.txt: Added.
  • inspector/canvas/create-context-webgpu.html: Added.
  • inspector/canvas/resources/create-context-utilities.css: Added.

(.canvas):

  • inspector/canvas/resources/create-context-utilities.js: Added.

(createAttachedCanvas):
(createDetachedCanvas):
(createCSSCanvas):
(destroyCanvases):
(TestPage.registerInitializer.awaitCanvasAdded):
(TestPage.registerInitializer.awaitCanvasRemoved):
(TestPage.registerInitializer.window.initializeTestSuite):
(TestPage.registerInitializer.window.addSimpleTestCase):
(TestPage.registerInitializer.window.addCSSCanvasTestCase):

  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:

Split the existing canvas lifecycle tests into one for each context type. This allows
platforms that don't support certain context types to ignore just those tests (e.g. WebGPU).

10:22 AM Changeset in webkit [219077] by matthew_hanson@apple.com
  • 7 edits in branches/safari-604.1.28-branch/Source

Versioning.

10:20 AM Changeset in webkit [219076] by achristensen@apple.com
  • 4 edits in trunk

REGRESSION(r215096) Queries of URLs with non-special schemes should not percent-encode single quotes
https://bugs.webkit.org/show_bug.cgi?id=174051

Reviewed by Tim Horton.

Source/WebCore:

In r215096 I added ' to the set of characters to be percent-encoded in queries,
but for interoperability and compatibility we need to do this only for special schemes, like http.

Covered by new API tests.

  • platform/URLParser.cpp:

(WebCore::isC0Control):
(WebCore::shouldPercentEncodeQueryByte):
(WebCore::URLParser::utf8QueryEncode):
(WebCore::URLParser::encodeQuery):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

10:18 AM Changeset in webkit [219075] by Chris Fleizach
  • 8 edits
    2 adds in trunk

AX: role="none" (or presentation) does not work on iframes
https://bugs.webkit.org/show_bug.cgi?id=173930
<rdar://problem/33034347>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Support setting a presentational role on an iframe so that the AXWebArea disappears from the hierarchy.
Accomplish this by adding children for attachment and scroll view elements the way other children are added.
That is, only add the non-ignored children directly (which means move the addChild logic into AccessibilityObject.)

Test: accessibility/presentation-role-iframe.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
(WebCore::AccessibilityNodeObject::insertChild): Deleted.
(WebCore::AccessibilityNodeObject::addChild): Deleted.

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::AccessibilityObject):
(WebCore::AccessibilityObject::insertChild):
(WebCore::AccessibilityObject::addChild):
(WebCore::nodeHasPresentationRole):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::addChild): Deleted.
(WebCore::AccessibilityObject::insertChild): Deleted.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::webAreaIsPresentational):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::addAttachmentChildren):

  • accessibility/AccessibilityScrollView.cpp:

(WebCore::AccessibilityScrollView::addChildren):

LayoutTests:

  • accessibility/presentation-role-iframe-expected.txt: Added.
  • accessibility/presentation-role-iframe.html: Added.
10:17 AM Changeset in webkit [219074] by achristensen@apple.com
  • 4 edits in trunk/LayoutTests

Rebase test after r219024
https://bugs.webkit.org/show_bug.cgi?id=174051

LayoutTests/imported/w3c:

  • web-platform-tests/url/url-setters-expected.txt:

LayoutTests:

  • http/tests/security/no-popup-from-sandbox-top-expected.txt:
9:57 AM Changeset in webkit [219073] by Matt Lewis
  • 4 edits in trunk

Unreviewed, rolling out r219024.

This patch cause 3 didferent test to fail.

Reverted changeset:

"REGRESSION(r215096) Queries of URLs with non-special schemes
should not percent-encode single quotes"
https://bugs.webkit.org/show_bug.cgi?id=174051
http://trac.webkit.org/changeset/219024

9:56 AM Changeset in webkit [219072] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r219030.

This was a rebaseline of a test that was broken with revision
r219024

Reverted changeset:

"Rebase test after r219024"
https://bugs.webkit.org/show_bug.cgi?id=174051
http://trac.webkit.org/changeset/219030

9:02 AM Changeset in webkit [219071] by Brent Fulgham
  • 9 edits in trunk

Drop ResourceLoadStatisticsStore's statisticsLock
https://bugs.webkit.org/show_bug.cgi?id=174080

Patch by Chris Dumez <Chris Dumez> on 2017-07-03
Reviewed by Brent Fulgham.

Source/WebKit2:

Drop ResourceLoadStatisticsStore's statisticsLock. It added complexity and was only needed
do that the SPI exposed to WebKitTestRunner would query the store synchronously from the
main thread. Instead, I made the SPI asynchronous and make sure we always access the store
from the same background thread. As a result, there is no longer any need for locking.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _resourceLoadStatisticsIsPrevalentResource:completionHandler:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsHadUserInteraction:completionHandler:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsIsGrandfathered:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Storage/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::ResourceLoadStatisticsStore::isGrandFathered):
(WebKit::ResourceLoadStatisticsStore::ensureResourceStatisticsForPrimaryDomain):
(WebKit::ResourceLoadStatisticsStore::createEncoderFromData):
(WebKit::ResourceLoadStatisticsStore::readDataFromDecoder):
(WebKit::ResourceLoadStatisticsStore::clearInMemory):
(WebKit::ResourceLoadStatisticsStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler):
(WebKit::ResourceLoadStatisticsStore::processStatistics):
(WebKit::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):
(WebKit::ResourceLoadStatisticsStore::sortedPrevalentResourceTelemetry):
(WebKit::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords):
(WebKit::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore):

  • UIProcess/Storage/ResourceLoadStatisticsStore.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
(WebKit::WebResourceLoadStatisticsStore::refreshFromDisk):
(WebKit::WebResourceLoadStatisticsStore::clearInMemoryData):
(WebKit::WebResourceLoadStatisticsStore::submitTelemetry):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::isGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):

  • UIProcess/WebResourceLoadStatisticsStore.h:

Tools:

Port WebKitTestRunner to new Asynchronous Cocoa SPI.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::isStatisticsPrevalentResource):
(WTR::TestController::isStatisticsHasHadUserInteraction):
(WTR::TestController::isStatisticsGrandfathered):

4:26 AM Changeset in webkit [219070] by Wenson Hsieh
  • 11 edits in trunk

Pasting single words copied to UIPasteboard inserts URLs in editable areas
https://bugs.webkit.org/show_bug.cgi?id=174082
<rdar://problem/33046992>

Reviewed by Tim Horton.

Source/WebCore:

Currently, our heuristics for coercing plain text to URLs when reading URLs off of the UIPasteboard allows URLs
to be created as long as -[UIPasteboard valuesForPasteboardType:inItemSet:] returns a non-null NSURL. However,
UIPasteboard automatically coerces any NSString into an NSURL if it initializes an NSURL via +URLWithString:.
Thus, single-word strings such as "hello" that are written to the pasteboard as "public.utf8-plain-text" can
be read back as NSURLs for "public.url". This currently causes bugs in shipping software: e.g. copying and
pasting a single word from an editable input or textarea and pasting into a rich contenteditable area using
WebKit1 inserts a link. However, when combined with another change in WebKit that attempts to read "public.url"
before "public.text" when reading plain text from the pasteboard, this now also affects pasting in plain text
areas, where pasted plain-text strings that are not URLs will paste as URL-encoded strings anyways (for
instance, replacing "[hello]" with "%5Bhello%5D").

To fix this, and existing issues with pasting single words in contenteditables, we make
PlatformPasteboard::readString and PlatformPasteboard::readURL only accept a coerced NSURL as an URL if it also
parses as a valid URL in WebKit (otherwise, we return an empty string).

Tests:

UIPasteboardTests.DoNotPastePlainTextAsURL
UIPasteboardTests.PastePlainTextAsURL
UIPasteboardTests.PasteURLWithPlainTextAsURL

  • platform/PlatformPasteboard.h:
  • platform/ios/AbstractPasteboard.h:
  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::allowReadingURLAtIndex):

Allow an URL to be read if either (1) an URL was explicitly specified in the UIPasteboard, or (2) the "proposed"
URL returned from -valuesForPasteboardType: is valid.

(WebCore::PlatformPasteboard::readString):
(WebCore::PlatformPasteboard::readURL):

Consult allowReadingURLAtIndex here (in the case of ::readString, only if the given pasteboard type is
"public.url").

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

(-[WebItemProviderPasteboard itemProviders]):
(-[WebItemProviderPasteboard setItemProviders:]):

Source/WebKit2:

Add a hook to WKPreferences to allow programatic pasting.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setDOMPasteAllowed:]):
(-[WKPreferences _domPasteAllowed]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Tools:

Adds 3 new unit tests to UIPasteboardTests to test cases of pasting plain text and URLs.

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:

(TestWebKitAPI::setUpWebViewForPasteboardTests):
(TestWebKitAPI::TEST):

3:58 AM Changeset in webkit [219069] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed GTK+ and WPE build fix when building with GCC 4.9.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::renderNextFrame): Don't use brace-list
initialization to override the m_forceRepaintAsync struct. Instead, manually
assign the OptionalCallbackID() value to the m_forceRepaintAsync.callbackID
member variable, and override the m_forceRepaintAsync.needsFreshFlush member
variable with false.

3:11 AM Changeset in webkit [219068] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Remove an unused function export
https://bugs.webkit.org/show_bug.cgi?id=174084

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2017-07-03
Reviewed by Yusuke Suzuki.

  • wtf/Threading.h:
2:56 AM Changeset in webkit [219067] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

[ThreadedCompositor] Update and retrieve scene attributes under a Lock
https://bugs.webkit.org/show_bug.cgi?id=173762

Reviewed by Carlos Garcia Campos.

Instead of dispatching separate tasks on the composition run loop, update
various scene attributes by locking a common lock object and updating the
appropriate attribute.

In ThreadedCompositor::renderLayerTree(), where these attributes are used
in scene composition, the lock is again obtained and the attributes copied
into local variables, releasing the lock afterwards. The attribute values
in local copies are then used for that renderLayerTree() invocation.

This approach is more efficient than dispatching separate tasks that can
race against renderLayerTree() dispatches.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::setScaleFactor):
(WebKit::ThreadedCompositor::setScrollPosition):
(WebKit::ThreadedCompositor::setViewportSize):
(WebKit::ThreadedCompositor::setDrawsBackground):
(WebKit::ThreadedCompositor::renderLayerTree):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
2:00 AM Changeset in webkit [219066] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit/mac

Expose WebPreferences for viewport-fit and constant() properties
https://bugs.webkit.org/show_bug.cgi?id=174072
<rdar://problem/33096639>

Reviewed by Ryosuke Niwa.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences viewportFitEnabled]):
(-[WebPreferences setViewportFitEnabled:]):
(-[WebPreferences constantPropertiesEnabled]):
(-[WebPreferences setConstantPropertiesEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

1:42 AM Changeset in webkit [219065] by Yusuke Suzuki
  • 2 edits in trunk/JSTests

Unreviewed, annotate dont--reserve-huge-capacity-lexer.js with $memoryLimited

It requires too much memory.

  • stress/dont-reserve-huge-capacity-lexer.js:
12:46 AM Changeset in webkit [219064] by zandobersek@gmail.com
  • 7 edits in trunk

[GCrypt] Implement CryptoKeyEC SPKI exports
https://bugs.webkit.org/show_bug.cgi?id=173646

Reviewed by Jiewen Tan.

Source/WebCore:

No new tests -- affected tests are now passing and are unskipped.

Implement libgcrypt-based support for SPKI exports of EC keys.

Initially, the ECParameters structure is created so that it will be later embedded
into the SubjectPublicKeyInfo structure. First the root element of this structure
is written into, specifying namedCurve as the chosen member (even if other choices
are not really available). We then write out the object identifier into this
namedCurve member that properly represents this key's curve type.

The SubjectPublicKeyInfo structure is created next. We write out id-ecPublicKey
identifier as the chosen algorithm identifier. Web Crypto specification demands
that the id-ecDH identifier is used in case of ECDH keys, but no existing test in
the W3C test suite expects this, so this should be revisited later. Data of the
previously-constructed ECParameters structure is written out into the
AlgorithmIdentifier's parameters member.

The q MPI data is then retrieved. Its size is validated, as well as the first
byte of data in order to ensure the MPI represents an uncompressed EC point.
The data is then written into the subjectPublicKey member.

Finally the encoded SubjectPublicKeyInfo structure data is extracted and returned
from the platformExportSpki() function, completion the export operation.

  • crypto/gcrypt/CryptoKeyECGCrypt.cpp:

(WebCore::curveIdentifier):
(WebCore::CryptoKeyEC::platformExportSpki):

Source/WebCore/PAL:

No new tests -- covered by existing Web Crypto tests.

Add three new libtasn1 utility functions.

createStructure() is a simple wrapper around asn1_create_element(), creating a new
ASN.1 structure for the specified definition that's listed in WebCrypto.asn. The
existing decodeStructure() is modified to use this new addition.

encodedData() retrieves the ASN.1-encoded data of the specified element that's
located in the passed-in asn1_node. This is used when retrieving SPKI or PKCS#8
data from filled-out ASN.1 structures.

writeElement() writes the provided data to the given asn1_node object under the
specified element, using the given size. True is returned if this operation was
successful.

  • pal/crypto/tasn1/Utilities.cpp:

(PAL::TASN1::createStructure):
(PAL::TASN1::decodeStructure):
(PAL::TASN1::encodedData):
(PAL::TASN1::writeElement):

  • pal/crypto/tasn1/Utilities.h:

LayoutTests:

  • platform/gtk/TestExpectations:

Unskip tests that cover SPKI exports of EC keys.

Jul 2, 2017:

10:51 PM Changeset in webkit [219063] by bshafiei@apple.com
  • 7 edits in tags/Safari-604.1.28.1.1/Source

Versioning.

10:49 PM Changeset in webkit [219062] by bshafiei@apple.com
  • 1 copy in tags/Safari-604.1.28.1.1

New tag.

8:42 PM Changeset in webkit [219061] by commit-queue@webkit.org
  • 15 edits in trunk

[WebIDL] Remove special casing for RegExp which is no longer required by the spec
https://bugs.webkit.org/show_bug.cgi?id=174025

Patch by Sam Weinig <sam@webkit.org> on 2017-07-02
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/FileAPI/blob/Blob-constructor-expected.txt:

Update results to passing.

Source/WebCore:

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent):
(GenerateOverloadDispatcher):
Remove special casing.

  • bindings/scripts/IDLParser.pm:

(parseNonAnyType):
Remove parsing of RegExp.

  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
  • bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:

Update test results.

LayoutTests:

  • fast/files/blob-constructor-expected.txt:
  • fast/files/blob-constructor.html:
  • fast/files/file-constructor-expected.txt:
  • fast/files/file-constructor.html:

Update tests/results for change in conversions of RegExp.

8:15 PM WebIDLToDo edited by sam@webkit.org
(diff)
5:50 PM Changeset in webkit [219060] by Yusuke Suzuki
  • 19 edits in trunk/Source

WTF::Thread should have the threads stack bounds.
https://bugs.webkit.org/show_bug.cgi?id=173975

Reviewed by Mark Lam.

Source/JavaScriptCore:

There is a site in JSC that try to walk another thread's stack.
Currently, stack bounds are stored in WTFThreadData which is located
in TLS. Thus, only the thread itself can access its own WTFThreadData.
We workaround this situation by holding StackBounds in MachineThread in JSC,
but StackBounds should be put in WTF::Thread instead.

This patch moves StackBounds from WTFThreadData to WTF::Thread. StackBounds
information is tightly coupled with Thread. Thus putting it in WTF::Thread
is natural choice.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::MachineThread::MachineThread):
(JSC::MachineThreads::MachineThread::captureStack):

  • heap/MachineStackMarker.h:

(JSC::MachineThreads::MachineThread::stackBase):
(JSC::MachineThreads::MachineThread::stackEnd):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::updateStackLimits):
(JSC::VM::committedStackByteCount):

  • runtime/VM.h:

(JSC::VM::isSafeToRecurse):

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):

  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):

  • runtime/VMTraps.cpp:
  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse):

Source/WTF:

We move StackBounds from WTFThreadData to WTF::Thread.
One important thing is that we should make valid StackBounds
visible to Thread::create() caller. When the caller get
WTF::Thread from Thread::create(), this WTF::Thread should
have a valid StackBounds. But StackBounds information can be
retrived only in the WTF::Thread's thread itself.

  • wtf/StackBounds.h:

(WTF::StackBounds::emptyBounds):
(WTF::StackBounds::StackBounds):

  • wtf/StackStats.cpp:

(WTF::StackStats::PerThreadStats::PerThreadStats):

  • wtf/Threading.cpp:

(WTF::threadEntryPoint):
(WTF::Thread::create):
(WTF::Thread::currentMayBeNull):
(WTF::Thread::initialize):

  • wtf/Threading.h:

(WTF::Thread::stack):

  • wtf/ThreadingPthreads.cpp:

(WTF::Thread::initializeCurrentThreadEvenIfNonWTFCreated):
(WTF::Thread::current):
(WTF::initializeCurrentThreadEvenIfNonWTFCreated): Deleted.
(WTF::Thread::currentMayBeNull): Deleted.

  • wtf/ThreadingWin.cpp:

(WTF::Thread::initializeCurrentThreadEvenIfNonWTFCreated):
(WTF::Thread::initializeCurrentThreadInternal):
(WTF::Thread::current):

  • wtf/WTFThreadData.cpp:

(WTF::WTFThreadData::WTFThreadData):

  • wtf/WTFThreadData.h:

(WTF::WTFThreadData::stack): Deleted.

12:38 PM Changeset in webkit [219059] by beidson@apple.com
  • 2 edits
    1 add in trunk/Tools

Add API test for all parts of WebKit1 API related to favicons.
https://bugs.webkit.org/show_bug.cgi?id=174069

Reviewed by Andy Estes.

These two API tests cover all WebKit1 API related to icons.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/WebViewIconLoading.mm: Added.

(mainResourceData):
(defaultFaviconData):
(customFaviconData):
(imageFromData):
(+[IconLoadingProtocol canInitWithRequest:]):
(+[IconLoadingProtocol canonicalRequestForRequest:]):
(-[IconLoadingProtocol startLoading]):
(-[IconLoadingProtocol stopLoading]):
(-[IconLoadingFrameLoadDelegate webView:didReceiveIcon:forFrame:]):
(-[MainFrameIconKVO observeValueForKeyPath:ofObject:change:context:]):
(TestWebKitAPI::TEST):

11:43 AM Changeset in webkit [219058] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

RealtimeOutgoingVideoSource should pass frame timestamp
https://bugs.webkit.org/show_bug.cgi?id=174055

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-02
Reviewed by Eric Carlson.

Covered by manual testing since this only affects video encoding quality.

  • platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::sendFrame):

Jul 1, 2017:

11:48 PM Changeset in webkit [219057] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKit

Expose viewport-fit value to UIKit via viewport arguments dictionary
https://bugs.webkit.org/show_bug.cgi?id=174071
<rdar://problem/33096620>

Reviewed by Wenson Hsieh.

Source/WebKit/ios:

  • WebCoreSupport/WebChromeClientIOS.mm:

(nameForViewportFitValue):
(dictionaryForViewportArguments):
Make use of the named constants we already have for these; the code
that reads this dictionary uses them, so we might as well!

Add viewport-fit -> { auto, contain, cover } to the dictionary.

  • WebKit.iOS.exp:

Source/WebKit/mac:

  • History/WebHistoryItem.mm:
  • History/WebHistoryItemPrivate.h:

Add another dictionary key and three values.

9:40 PM Changeset in webkit [219056] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

<rdar://problem/33096441> r219055 broke non-iOS builds.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::lookupFallbackFont):

7:06 PM Changeset in webkit [219055] by mitz@apple.com
  • 54 edits
    1 delete in trunk

[iOS] Remove code only needed when building for iOS 9.x
https://bugs.webkit.org/show_bug.cgi?id=174068

Reviewed by Tim Horton.

Source/bmalloc:

  • bmalloc/BPlatform.h:
  • bmalloc/VMAllocate.h:

(bmalloc::vmPageSizePhysical):

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:
  • jit/ExecutableAllocator.cpp:
  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::isDataDetectorLink):
(WebCore::DataDetection::shouldCancelDefaultAction):
(WebCore::constructURLStringForResult):
(WebCore::DataDetection::detectContentInRange):

  • page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::vmPageSize):

  • platform/cocoa/DataDetectorsCoreSoftLink.h:
  • platform/cocoa/DataDetectorsCoreSoftLink.mm:
  • platform/graphics/FontPlatformData.cpp:
  • platform/graphics/FontPlatformData.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(layerContentsFormat):
(PlatformCALayerCocoa::updateContentsFormat):
(PlatformCALayerCocoa::backingStoreBytesPerPixel):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::extendedSRGBColorSpaceRef):

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::drawPDFPage):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::lookupFallbackFont):

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::variantCapsSupportsCharacterForSynthesis):
(WebCore::Font::platformWidthForGlyph):

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::ctFont):

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::sinkIntoImage):

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::setTimebase):

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::systemFontModificationAttributes):
(WebCore::systemFontDescriptor):

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::supportsFormat):

  • platform/ios/LegacyTileGridTile.mm:

(WebCore::LegacyTileGridTile::LegacyTileGridTile):

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenSupportsExtendedColor):

  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS):
(WebCore::RemoteCommandListenerIOS::~RemoteCommandListenerIOS):
(WebCore::RemoteCommandListenerIOS::updateSupportedCommands):

  • platform/spi/cf/CFNetworkSPI.h:
  • platform/spi/cg/CoreGraphicsSPI.h:
  • platform/spi/cocoa/DataDetectorsCoreSPI.h:
  • platform/spi/cocoa/QuartzCoreSPI.h:
  • platform/spi/mac/AVFoundationSPI.h:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView dealloc]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFormInputSession setSuggestions:]):
(-[WKFormInputSession invalidate]):
(-[WKContentView insertTextSuggestion:]):
(contentTypeFromFieldName):
(-[WKContentView textInputTraits]):
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

  • config.h:

Source/WTF:

  • wtf/Platform.h:
  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
  • wtf/spi/darwin/dyldSPI.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(-[HIDEventGenerator _createIOHIDEventType:]):

WebKitLibraries:

  • WebKitPrivateFrameworkStubs/iOS/9: Removed.
  • WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework: Removed.
  • WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework/AppSupport.tbd: Removed.
  • WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework: Removed.
  • WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework/AssertionServices.tbd: Removed.
  • WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework: Removed.
  • WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework/CorePDF.tbd: Removed.
  • WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework: Removed.
  • WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework/GraphicsServices.tbd: Removed.
  • WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework: Removed.
  • WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework/IOSurface.tbd: Removed.
4:29 PM Changeset in webkit [219054] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

REGRESSION(r218371): Reeder's default font is Times instead of San Francisco
https://bugs.webkit.org/show_bug.cgi?id=173617
<rdar://problem/32969819>

Reviewed by Simon Fraser.

Source/WebCore:

On systems where USE_PLATFORM_SYSTEM_FALLBACK_LIST is set to true, the code in
platformFontWithFamilySpecialCase() is still used when @font-face blocks specify
src:local(system-ui), which made the assertion erroneously fire.

Unfortunately, our architecture is such that an @font-face block represents a
single entry in the font-family fallback list, which means it would be quite
difficult to make local(system-ui) in an @font-face block expand at the level
of the font cascade. So, this patch simply reverts to the previous behavior for
local(system-ui) (which doesn't include the entire Core Text cascade list).
This means that "font-family: system-ui" and "src: local(system-ui)" have
different behavior, which is undesirable, but architecturally difficult to
solve. I've added some FIXMEs to the code in the relevant places and filed
https://bugs.webkit.org/show_bug.cgi?id=174023.

Test: fast/text/font-face-local-system.html

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::FontCascadeDescription::effectiveFamilyAt):

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::systemFontDescriptor):
(WebCore::platformFontWithFamilySpecialCase):

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::platformFontWithFamilySpecialCase):

LayoutTests:

  • fast/text/font-face-local-system-expected.html: Added.
  • fast/text/font-face-local-system.html: Added.
2:42 PM Changeset in webkit [219053] by Caio Lima
  • 2 edits in trunk/Source/WTF

[JSC] WTFGetBacktrace can return numberOfFrames == 0 in some architectures
https://bugs.webkit.org/show_bug.cgi?id=172768

Reviewed by Mark Lam.

In some architectures, like ARMv6 running on a Raspberry pi, the
backtrace function from "execinfo.h" is returning 0. In
that case, the RELEASE_ASSERT in StackTrace::captureStackTrace
fails causing a runtime crash.
This patch is adding a guard for the case described above to
avoid a runtime crash in such case.

  • wtf/StackTrace.cpp:

(WTF::StackTrace::captureStackTrace):

2:37 PM Changeset in webkit [219052] by beidson@apple.com
  • 9 edits in trunk

When setting a custom cookie storage location on a WKWebsiteDataStore, cookies aren't actually removed.
<rdar://problem/32410662> and https://bugs.webkit.org/show_bug.cgi?id=174035

Reviewed by Alex Christensen.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _terminateNetworkProcess]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess): Take an optional WebsiteDataStore. If one is passed in,

send it to either the existing or new network process.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters): Resolve paths first.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm:
2:26 PM Changeset in webkit [219051] by rniwa@webkit.org
  • 50 edits in trunk/Source

Frame.h doesn't need to include FrameLoader.h, IntRect.h, and NavigationScheduler.h
https://bugs.webkit.org/show_bug.cgi?id=174004

Reviewed by Simon Fraser.

Source/WebCore:

Made FrameLoader and NavigationScheduler UniqueRef in Frame so that we can forward declare them,
and forward declared IntPoint and IntRect to avoid including FrameLoader.h, IntRect.h,
and NavigationScheduler.h in Frame.h

  • Modules/mediastream/MediaStream.cpp:
  • Modules/webaudio/AudioContext.cpp:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect): Avoid calling loader().mixedContentChecker().canRunInsecureContent(~)
on a nullptr even though this used to work because we weren't de-referencing it.

  • bindings/js/ScriptController.cpp:
  • dom/Document.cpp:
  • dom/EventDispatcher.cpp:
  • editing/Editor.cpp:
  • editing/cocoa/EditorCocoa.mm:
  • editing/ios/EditorIOS.mm:
  • editing/mac/EditorMac.mm:
  • history/CachedPage.cpp:
  • html/HTMLObjectElement.cpp:
  • html/parser/HTMLDocumentParser.cpp:

(WebCore::DocumentLoader::~DocumentLoader): Check !isLoading() before accessing frameLoader to avoid
accessing m_frame->loader() inside ~FrameLoader.

  • html/parser/XSSAuditor.cpp:
  • html/parser/XSSAuditorDelegate.cpp:
  • inspector/InspectorInstrumentation.h:
  • loader/CrossOriginPreflightChecker.cpp:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::setOpener): Avoid accessing this FrameLoader via m_opener->loader() when it's
this FrameLoader inside ~FrameLoader since UniqueRef<FrameLoader> is clears itself before calling
the destructor of FrameLoader.

  • loader/ImageLoader.cpp:
  • loader/LinkLoader.cpp:
  • loader/SubframeLoader.cpp:
  • loader/appcache/ApplicationCacheGroup.cpp:
  • loader/appcache/DOMApplicationCache.cpp:
  • mathml/MathMLElement.cpp:
  • page/DOMWindow.cpp:
  • page/Frame.cpp:

(WebCore::Frame::Frame):
(WebCore::Frame::init): Moved here from Frame.h
(WebCore::Frame::setDocument):

  • page/Frame.h:

(WebCore::Frame::loader):
(WebCore::Frame::navigationScheduler):

  • page/History.cpp:
  • page/Location.cpp:
  • page/PerformanceLogging.cpp:
  • page/PerformanceNavigation.cpp:
  • page/UserContentProvider.cpp:
  • page/ios/FrameIOS.mm:

(WebCore::Frame::initWithSimpleHTMLDocument):

  • plugins/PluginInfoProvider.cpp:
  • replay/ReplayInputCreationMethods.cpp:
  • replay/UserInputBridge.cpp:
  • xml/XSLTProcessorLibxslt.cpp:
  • xml/parser/XMLDocumentParserLibxml2.cpp:

Source/WebKit/mac:

  • WebCoreSupport/WebPluginInfoProvider.mm:

Source/WebKit/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::transitionToCommittedForNewPage):

Source/WebKit2:

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:
  • WebProcess/WebPage/WebInspector.cpp:
2:12 PM Changeset in webkit [219050] by mitz@apple.com
  • 155 edits
    3 deletes in trunk

[macOS] Remove code only needed when building for OS X Yosemite
https://bugs.webkit.org/show_bug.cgi?id=174067

Reviewed by Tim Horton.

Source/bmalloc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • API/WebKitAvailability.h:
  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility):

  • html/HTMLCanvasElement.cpp:
  • page/WheelEventDeltaFilter.cpp:

(WebCore::WheelEventDeltaFilter::create):

  • page/mac/WheelEventDeltaFilterMac.h:
  • page/mac/WheelEventDeltaFilterMac.mm:
  • page/scrolling/ScrollingMomentumCalculator.cpp:
  • page/scrolling/mac/ScrollingMomentumCalculatorMac.h:
  • page/scrolling/mac/ScrollingMomentumCalculatorMac.mm:
  • platform/cocoa/NetworkExtensionContentFilter.mm:

(replacementDataFromDecisionInfo):
(WebCore::NetworkExtensionContentFilter::initialize):
(WebCore::NetworkExtensionContentFilter::willSendRequest):
(WebCore::NetworkExtensionContentFilter::responseReceived):
(WebCore::NetworkExtensionContentFilter::addData):
(WebCore::NetworkExtensionContentFilter::finishedAddingData):
(WebCore::NetworkExtensionContentFilter::unblockHandler):

  • platform/graphics/ComplexTextController.h:
  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:

(PlatformCAAnimationCocoa::setTimingFunction):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit):

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::sinkIntoImage):

  • platform/graphics/cocoa/WebGPULayer.mm:

(-[WebGPULayer initWithGPUDevice:]):

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):

  • platform/graphics/mac/WebGLLayer.mm:

(-[WebGLLayer initWithGraphicsContext3D:]):

  • platform/mac/BlacklistUpdater.mm:
  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenSupportsExtendedColor):

  • platform/mac/ValidationBubbleMac.mm:

(WebCore::ValidationBubble::ValidationBubble):

  • platform/mac/WebGLBlacklist.mm:

(WebCore::WebGLBlacklist::create):

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:
  • platform/network/mac/CertificateInfoMac.mm:

(WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate):

  • platform/network/mac/CookieJarMac.mm:

(WebCore::setCookiesFromDOM):

  • platform/spi/cf/CFNetworkSPI.h:
  • platform/spi/cg/CoreGraphicsSPI.h:
  • platform/spi/cocoa/NEFilterSourceSPI.h:
  • platform/spi/cocoa/NSURLConnectionSPI.h:
  • platform/spi/cocoa/QuartzCoreSPI.h:
  • platform/spi/mac/NSScrollingInputFilterSPI.h:
  • platform/spi/mac/NSScrollingMomentumCalculatorSPI.h:
  • platform/spi/mac/TUCallSPI.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::levelIndicatorFor):

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendKERNTable):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebKit/mac:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:
  • Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage getPluginInfoFromPLists]):

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::show):

  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::startWindowDrag):
(-[WebInspectorWindowController window]):

  • WebView/WebView.mm:

(-[WebView _animationControllerForDictionaryLookupPopupInfo:]):

Source/WebKit2:

  • Configurations/Base.xcconfig:
  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/NetworkService.xcconfig:
  • Configurations/PluginService.32.xcconfig:
  • Configurations/PluginService.64.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebContentService.xcconfig:
  • Configurations/WebKit.xcconfig:
  • DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
  • NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX-10.9-10.10.plist: Removed.
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Platform/IPC/Connection.h:
  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::platformInvalidate):
(IPC::Connection::platformInitialize):
(IPC::Connection::open):
(IPC::Connection::exceptionSourceEventHandler): Deleted.
(IPC::Connection::setShouldCloseConnectionOnMachExceptions): Deleted.

  • Platform/mac/LayerHostingContext.h:
  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createFencePort):

  • PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist: Removed.
  • PluginProcess/mac/PluginControllerProxyMac.mm:

(WebKit::PluginControllerProxy::updateLayerHostingContext):

  • PluginProcess/mac/PluginProcessShim.mm:
  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • Shared/ChildProcess.h:
  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::getPluginInfoFromPropertyLists):
(WebKit::NetscapePluginModule::getPluginInfo):
(WebKit::contentsOfPropertyListAtURL): Deleted.
(WebKit::getMIMETypesFromPluginBundle): Deleted.

  • Shared/Plugins/PluginProcessCreationParameters.cpp:

(WebKit::PluginProcessCreationParameters::encode):
(WebKit::PluginProcessCreationParameters::decode):

  • Shared/Plugins/PluginProcessCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • Shared/mac/ChildProcessMac.mm:

(WebKit::ChildProcess::setSharedHTTPCookieStorage):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):
(fixUpBotchedPageUIClient): Deleted.

  • UIProcess/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::didFinishLaunching):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::resetHSTSHostsAddedAfterDate):

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateLayer):
(WebKit::WebViewImpl::startWindowDrag):

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::waitForPossibleGeometryUpdate): Deleted.

  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didFinishLaunching):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::platformInitializePluginProcess):
(WebKit::PluginProcessProxy::createPropertyListFile): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setTopContentInset):

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::rootViewToWindow):
(WebKit::PageClientImpl::startWindowDrag):

  • UIProcess/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag):

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::createFence):
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate): Deleted.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::createFrontendWindow):
(WebKit::WebInspectorProxy::platformStartWindowDrag):

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist: Removed.
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

(WebKit::addAnimationToLayer):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • wtf/Platform.h:
  • wtf/mac/AppKitCompatibilityDeclarations.h:
  • wtf/spi/cocoa/SecuritySPI.h:
  • wtf/text/TextBreakIterator.cpp:

Tools:

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting):

  • DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm:

(-[DumpRenderTreeDraggingInfo resetSpringLoading]):

  • MiniBrowser/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm:
  • TestWebKitAPI/Tests/mac/DragAndDropPasteboardTests.mm:
  • TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.mm:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/mac/StringTruncator.mm:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:

(WTR::InjectedBundle::platformInitialize):

  • WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm:

(-[WebKitTestRunnerDraggingInfo resetSpringLoading]):

9:10 AM Changeset in webkit [219049] by Chris Dumez
  • 14 edits
    4 deletes in trunk

Replace ResourceLoadStatisticsStore C API with Cocoa SPI
https://bugs.webkit.org/show_bug.cgi?id=174060

Reviewed by Brent Fulgham.

Source/WebKit2:

Replace ResourceLoadStatisticsStore C API by Cocoa SPI. The new Cocoa SPI is on
WKWebsiteDataStore, which allows us to get rid of the WebResourceLoadStatisticsManager
singleton as the SPI can now interact directly with the WebResourceLoadStatisticsStore.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.cpp: Removed.
  • UIProcess/API/C/WKResourceLoadStatisticsManager.h: Removed.

Drop old C API.

  • UIProcess/WebResourceLoadStatisticsManager.cpp: Removed.
  • UIProcess/WebResourceLoadStatisticsManager.h: Removed.

Drop WebResourceLoadStatisticsManager singleton which was only required by the
C API. This is because the C API was global, rather than working on a specific
store.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

Add new Cocoa SPI on WKWebsiteDataStore. This is only used for testing.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):
Stop registering the store with the WebResourceLoadStatisticsManager singleton,
as this singleton is gone.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resourceLoadStatistics):
Add new getter to retrieve the WebResourceLoadStatisticsStore from the
WebsiteDataStore. This is needed by the new Cocoa SPI.

  • WebKit2.xcodeproj/project.pbxproj:

Drop some files.

Tools:

Port WebKitTestRunner over to the new Cocoa SPI.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WTR::TestRunner::setStatisticsNotifyPagesWhenTelemetryWasCaptured):
Drop calls to the WKResourceLoadStatisticsStore C API here. Those were
no-ops since this code runs in the WebContent process, not the
UIProcess.

  • WebKitTestRunner/TestController.cpp:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:
7:28 AM Changeset in webkit [219048] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Add a warning if WEBGL2 is enabled without WEBGL
https://bugs.webkit.org/show_bug.cgi?id=174054

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-07-01
Reviewed by Sam Weinig.

  • wtf/FeatureDefines.h:
2:36 AM Changeset in webkit [219047] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix for GCC
https://bugs.webkit.org/show_bug.cgi?id=174034

  • b3/testb3.cpp:

(JSC::B3::testDoubleLiteralComparison):

Jun 30, 2017:

11:24 PM Changeset in webkit [219046] by keith_miller@apple.com
  • 6 edits in trunk/Source

Force crashWithInfo to be out of line.
https://bugs.webkit.org/show_bug.cgi?id=174028

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Update DFG_ASSERT macro to call CRASH_WITH_SECURITY_IMPLICATION_AND_INFO.

  • dfg/DFGGraph.cpp:

(JSC::DFG::logDFGAssertionFailure):
(JSC::DFG::Graph::logAssertionFailure):
(JSC::DFG::crash): Deleted.
(JSC::DFG::Graph::handleAssertionFailure): Deleted.

  • dfg/DFGGraph.h:

Source/WTF:

The first pass at making crashes hold information about why they
were crashing had the problem that it would inline the assertion.
This meant that clang could coalesce DFG_ASSERTS with other
assertion failures in the same function. This patch moves it out
of line to help fix that issue.

  • wtf/Assertions.cpp:

(WTFCrashWithInfo):

  • wtf/Assertions.h:

(WTF::isIntegralType):

11:23 PM Changeset in webkit [219045] by commit-queue@webkit.org
  • 26 edits
    4 adds in trunk

If an image appears more than once on a page, decoding for painting one instance repaints them all
https://bugs.webkit.org/show_bug.cgi?id=169944

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-06-30
Reviewed by Simon Fraser.

Source/WebCore:

Make the Image::draw*() and GraphicsContext::draw*() functions return an
ImageDrawResult which indicates whether the image is drawn or has requested
an asynchronous image decoding.

If the image requested an asynchronous image decoding, the issuer of the
Image::draw(), which is of type CachedImageClient, will add itself to a
set of m_pendingImageDrawingClients, which owned by CachedImage.

When receiving the imageFrameAvailable() notification for a lrage image
from the decoding thread, CachedImage will loop through the clients that
are only in m_pendingImageDrawingClients to ask them to repaint their
rectangles.

Test: fast/images/async-image-multiple-clients-repaint.html

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::didRemoveClient):
(WebCore::CachedImage::addPendingImageDrawingClient):
(WebCore::CachedImage::allClientsRemoved):
(WebCore::CachedImage::clear):
(WebCore::CachedImage::imageFrameAvailable):

  • loader/cache/CachedImage.h:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::CrossfadeGeneratedImage::draw):

  • platform/graphics/CrossfadeGeneratedImage.h:
  • platform/graphics/GeneratedImage.h:
  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::draw):

  • platform/graphics/GradientImage.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::drawTiled):

  • platform/graphics/Image.h:
  • platform/graphics/ImageTypes.h:
  • platform/graphics/NamedImageGeneratedImage.cpp:

(WebCore::NamedImageGeneratedImage::draw):

  • platform/graphics/NamedImageGeneratedImage.h:
  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::draw):

  • platform/graphics/cg/PDFDocumentImage.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintIntoRect):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::draw):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::draw):

  • svg/graphics/SVGImageForContainer.h:

LayoutTests:

  • fast/images/async-image-multiple-clients-repaint-expected.txt: Added.
  • fast/images/async-image-multiple-clients-repaint.html: Added.
  • platform/ios-simulator/fast/images: Added.
  • platform/ios-simulator/fast/images/async-image-multiple-clients-repaint-expected.txt: Added.
10:57 PM Changeset in webkit [219044] by Jonathan Bedard
  • 2 edits in trunk/LayoutTests

Run webgl tests on iOS ports
https://bugs.webkit.org/show_bug.cgi?id=173000

Unreviewed test gardening.

  • platform/ios/TestExpectations: Enable webgl, fast/canvas/webgl and http/tests/webgl.
10:24 PM Changeset in webkit [219043] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Use AbstractMacroAssembler::random instead of holding WeakRandom in JIT
https://bugs.webkit.org/show_bug.cgi?id=174053

Reviewed by Geoffrey Garen.

We already have AbstractMacroAssembler::random() function. Use it instead.

  • jit/JIT.cpp:

(JSC::JIT::JIT):
(JSC::JIT::compileWithoutLinking):

  • jit/JIT.h:
10:09 PM Changeset in webkit [219042] by Yusuke Suzuki
  • 6 edits in trunk/Source

[WTF] Drop SymbolRegistry::keyForSymbol
https://bugs.webkit.org/show_bug.cgi?id=174052

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • runtime/SymbolConstructor.cpp:

(JSC::symbolConstructorKeyFor):

Source/WTF:

Since we can know whether a given symbol is registered by checking RegisteredSymbolImpl,
we do not need to query key string for a given symbol by using SymbolRegistry::keyForSymbol.

  • wtf/text/SymbolImpl.h:

(WTF::SymbolImpl::extractFoldedString): Deleted.

  • wtf/text/SymbolRegistry.cpp:

(WTF::SymbolRegistry::keyForSymbol): Deleted.

  • wtf/text/SymbolRegistry.h:
10:06 PM Changeset in webkit [219041] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Type token background color in debugger looks poor
https://bugs.webkit.org/show_bug.cgi?id=174063

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-06-30
Reviewed by Devin Rousso.

  • UserInterface/Views/TextEditor.css:

CodeMirror widgets do not get range styles like our (.execution-range-highlight).
Make a best effort to carry over the styles to widgets. It isn't perfect, but it
covers all common situations unless a selection ends inside the widget. The
ultimate solution would be to get the expected range styles.

9:53 PM Changeset in webkit [219040] by jonlee@apple.com
  • 1 edit
    7 adds in trunk/Websites/webkit.org

Add a WebRTC example for a blog post
https://bugs.webkit.org/show_bug.cgi?id=174049

Reviewed by Youenn Fablet.

Example does a typical WebRTC video call, but uses canvas to do some image effects.
Image effects will last for 30 seconds.
After that time, the video stream is directly sent.
This illustrates using RTCPeerConnection, replaceTrack and canvas capture.

  • blog-files/webrtc/pc-with-effects/LICENSE: Added.
  • blog-files/webrtc/pc-with-effects/glfx.js: Added.
  • blog-files/webrtc/pc-with-effects/index.html: Added.
  • blog-files/webrtc/pc-with-effects/main.css: Added.
  • blog-files/webrtc/pc-with-effects/main.js: Added.
8:39 PM Changeset in webkit [219039] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r214194): Safari leaves a popup window open opened during before unload
https://bugs.webkit.org/show_bug.cgi?id=174016

Reviewed by Chris Dumez.

Address Dan's review comments.

  • loader/NavigationDisabler.h:

(WebCore::NavigationDisabler::NavigationDisabler):
(WebCore::NavigationDisabler::~NavigationDisabler):

8:35 PM Changeset in webkit [219038] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

B3ReduceStrength should reduce EqualOrUnordered over const float input
https://bugs.webkit.org/show_bug.cgi?id=174039

Reviewed by Michael Saboff.

We perform this folding for ConstDoubleValue. It is simply
an oversight that we didn't do it for ConstFloatValue.

  • b3/B3ConstFloatValue.cpp:

(JSC::B3::ConstFloatValue::equalOrUnorderedConstant):

  • b3/B3ConstFloatValue.h:
  • b3/testb3.cpp:

(JSC::B3::testFloatEqualOrUnorderedFolding):
(JSC::B3::testFloatEqualOrUnorderedFoldingNaN):
(JSC::B3::testFloatEqualOrUnorderedDontFold):
(JSC::B3::run):

8:24 PM Changeset in webkit [219037] by Megan Gardner
  • 2 edits in trunk/Tools

Unreviewed mac build fix.

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm:

(TestWebKitAPI::TEST):

8:08 PM Changeset in webkit [219036] by Megan Gardner
  • 3 edits in trunk/Source/WebKit2

Unreviewed mac build fix.

  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:
  • UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:
7:56 PM Changeset in webkit [219035] by Matt Baker
  • 3 edits
    2 adds in trunk

Web Inspector: AsyncStackTrace nodes can be corrupted when truncating
https://bugs.webkit.org/show_bug.cgi?id=173840
<rdar://problem/30840820>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

When truncating an asynchronous stack trace, the parent chain is traversed
until a locked node is found. The path from this node to the root is shared
by more than one stack trace, and cannot be safely modified. Starting at
the first locked node, the path is cloned and becomes a new stack trace tree.

However, the clone operation initialized each new AsyncStackTrace node with
the original node's parent. This would increment the child count of the original
node. When cloning nodes, new nodes should not have their parent set until the
next node up the parent chain is cloned.

  • inspector/AsyncStackTrace.cpp:

(Inspector::AsyncStackTrace::truncate):

LayoutTests:

Add a test for truncating a branching asynchronous stack trace.

  • inspector/debugger/truncate-async-stack-trace-expected.txt: Added.
  • inspector/debugger/truncate-async-stack-trace.html: Added.
7:25 PM Changeset in webkit [219034] by Megan Gardner
  • 8 edits
    1 add in trunk

Add API to get WKActivatedElementInfo
https://bugs.webkit.org/show_bug.cgi?id=174001
<rdar://problem/29165518>

Source/WebKit2:

Adding a way to get a WKActivatedElementInfo for a point on a WKWebView.

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView requestActivatedElementAtPosition:completionBlock:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:

(+[_WKActivatedElementInfo infoWithType:withInteractionInformationAtPosition:]):
(-[_WKActivatedElementInfo infoWithType:withInteractionInformationAtPosition:]):

  • UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:

Tools:

Tests for now SPI to get activatedElementInfo.

Reviewed by Tim Horton.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm: Added.

(TestWebKitAPI::TEST):

6:44 PM Changeset in webkit [219033] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

[iOS DnD] Text indicators for dragged links should always be legible if the link is legible
https://bugs.webkit.org/show_bug.cgi?id=173860
<rdar://problem/32974385>

Reviewed by Tim Horton.

Currently, TextIndicatorOptionUseBoundingRectAndPaintAllContentForComplexRanges ensures that links backed by a
RenderReplaced element don't render blank text indicators by additionally forcing the
TextIndicatorOptionPaintAllContent option in order to capture the RenderReplaced content. If estimated
background color is requested, this patch adds an additional path for "upgrading" the text indicator to paint
all content: if the text color is not legible against the estimated background color, then it is likely that the
background color estimate failed or the link itself was not legible in the first place; in the former case, to
ensure that the link is still legible, we upgrade the given TextIndicatorOptions to paint all contents in the
range.

There is currently no way to test this, and also no simple way to introduce infrastructure to test text
indicators.

  • page/TextIndicator.cpp:

(WebCore::estimatedTextColorsForRange):

Estimates all text colors that appear in a range by iterating over the text node renderers and consulting their
render styles.

(WebCore::adjustTextIndicatorDataOptionsForEstimatedColorsIfNecessary):

If foreground text color is deemed not legible, force TextIndicatorOptionPaintAllContent instead of
TextIndicatorOptionUseBoundingRectAndPaintAllContentForComplexRanges.

(WebCore::initializeIndicator):

  • rendering/TextPaintStyle.cpp:

(WebCore::textColorIsLegibleAgainstBackgroundColor):
(WebCore::adjustColorForVisibilityOnBackground):

Allow other parts of WebCore to check the legibility of text against a background color.

  • rendering/TextPaintStyle.h:
6:20 PM Changeset in webkit [219032] by msaboff@apple.com
  • 2 edits in trunk/JSTests

Skip a test on ARM64 platform since we run out of address space.

Rubber stamped by Saam Barati.

  • stress/dont-reserve-huge-capacity-lexer.js:
6:16 PM Changeset in webkit [219031] by msaboff@apple.com
  • 7 edits
    1 add in trunk

RegExp's anchored with .* with \g flag can return wrong match start for strings with multiple matches
https://bugs.webkit.org/show_bug.cgi?id=174044

Reviewed by Oliver Hunt.

JSTests:

New regression test.

  • stress/regress-174044.js: Added.

(test1):
(test2):

Source/JavaScriptCore:

The .* enclosure optimization didn't respect that we can start matching from a non-zero
index. This optimization treats /.*<some-terms>.*/ by first matching the <some-terms> and
then finding the extent of the match by going back to the beginning of the line and going
forward to the end of the line. The code that went back to the beginning of the line
checked for an index of 0 instead of comparing the index to the start position. This start
position is passed as the initial index.

Added another temporary register to the YARR JIT to contain the start position for
platforms that have spare registers.

  • yarr/Yarr.h:
  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::matchDotStarEnclosure):
(JSC::Yarr::Interpreter::Interpreter):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generateDotStarEnclosure):
(JSC::Yarr::YarrGenerator::compile):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPattern::YarrPattern):

  • yarr/YarrPattern.h:

(JSC::Yarr::YarrPattern::reset):

5:51 PM Changeset in webkit [219030] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Rebase test after r219024
https://bugs.webkit.org/show_bug.cgi?id=174051

  • fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame-expected.txt:

This was an intentional change making URL parsing how it was before r215096 for URLs with non-special schemes.

5:28 PM Changeset in webkit [219029] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Use API instead of SPI for content inset adjustment behavior
https://bugs.webkit.org/show_bug.cgi?id=174050

Reviewed by Sam Weinig.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView initWithFrame:]):
(-[WKScrollView setContentInsetAdjustmentBehavior:]):
(-[WKScrollView _setContentInsetAdjustmentBehaviorInternal:]):
(-[WKScrollView _setContentInsetAdjustmentBehavior:]): Deleted.
Switch over to the API. The old SPI calls the API internally, so our
override will now cover all callers.

4:38 PM Changeset in webkit [219028] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked test imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_getKey.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=173068

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:38 PM Changeset in webkit [219027] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

B3MoveConstants floatZero() returns the wrong ValueKey
https://bugs.webkit.org/show_bug.cgi?id=174040

Reviewed by Filip Pizlo.

It had a typo where the ValueKey for floatZero() produces a Double
instead of a Float.

  • b3/B3MoveConstants.cpp:
4:37 PM Changeset in webkit [219026] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

B3ReduceDoubleToFloat incorrectly reduces operations over two double constants
https://bugs.webkit.org/show_bug.cgi?id=174034
<rdar://problem/30793007>

Reviewed by Filip Pizlo.

B3ReduceDoubleToFloat had a bug in it where it would incorrectly
reduce binary operations over double constants into the same binary
operation over the double constants casted to floats. This is clearly
incorrect as these two things will produce different values. For example:

a = DoubleConst(bitwise_cast<double>(0x8000000000000001ull))
b = DoubleConst(bitwise_cast<double>(0x0000000000000000ull))
c = EqualOrUnordered(@a, @b) produces 0

into:

a = FloatConst(static_cast<float>(bitwise_cast<double>(0x8000000000000001ull)))
b = FloatConst(static_cast<float>(bitwise_cast<double>(0x0000000000000000ull)))
c = EqualOrUnordered(@a, @b) produces 1

Which produces a different value for @c.

  • b3/B3ReduceDoubleToFloat.cpp:
  • b3/testb3.cpp:

(JSC::B3::doubleEq):
(JSC::B3::doubleNeq):
(JSC::B3::doubleGt):
(JSC::B3::doubleGte):
(JSC::B3::doubleLt):
(JSC::B3::doubleLte):
(JSC::B3::testDoubleLiteralComparison):
(JSC::B3::run):

4:22 PM Changeset in webkit [219025] by Chris Dumez
  • 27 edits
    1 delete in trunk

Move store logic from WebResourceLoadStatisticsManager to WebResourceLoadStatisticsStore
https://bugs.webkit.org/show_bug.cgi?id=174038

Reviewed by Brent Fulgham.

Source/WebKit2:

Move store logic from WebResourceLoadStatisticsManager to WebResourceLoadStatisticsStore.
WebResourceLoadStatisticsManager is now essentially a proxy to the
WebResourceLoadStatisticsStore to support the current C API.

In a follow-up, I plan to to replace the C API with a Cocoa SPI which works on a
WebResourceLoadStatisticsStore directly instead of requiring a
WebResourceLoadStatisticsManager singleton.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:

(WKResourceLoadStatisticsManagerSetMinimumTimeBetweenDataRecordsRemoval):
(WKResourceLoadStatisticsManagerResetToConsistentState):

  • UIProcess/API/C/WKResourceLoadStatisticsManager.h:
  • UIProcess/Cocoa/WebResourceLoadStatisticsManagerCocoa.mm: Removed.
  • UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:

(WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded):

  • UIProcess/WebResourceLoadStatisticsManager.cpp:

(WebKit::WebResourceLoadStatisticsManager::WebResourceLoadStatisticsManager):
(WebKit::WebResourceLoadStatisticsManager::~WebResourceLoadStatisticsManager):
(WebKit::WebResourceLoadStatisticsManager::setStatisticsStore):
(WebKit::WebResourceLoadStatisticsManager::clearInMemoryStore):
(WebKit::WebResourceLoadStatisticsManager::clearInMemoryAndPersistentStore):
(WebKit::WebResourceLoadStatisticsManager::logUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsManager::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsManager::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsManager::setGrandfathered):
(WebKit::WebResourceLoadStatisticsManager::isGrandfathered):
(WebKit::WebResourceLoadStatisticsManager::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsManager::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsManager::setSubresourceUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsManager::setTimeToLiveUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::setTimeToLiveCookiePartitionFree):
(WebKit::WebResourceLoadStatisticsManager::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsManager::setGrandfatheringTime):
(WebKit::WebResourceLoadStatisticsManager::fireDataModificationHandler):
(WebKit::WebResourceLoadStatisticsManager::fireShouldPartitionCookiesHandler):
(WebKit::WebResourceLoadStatisticsManager::fireTelemetryHandler):

  • UIProcess/WebResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::primaryDomain):
(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::isGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::fireDataModificationHandler):
(WebKit::WebResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler):
(WebKit::WebResourceLoadStatisticsStore::fireTelemetryHandler):
(WebKit::WebResourceLoadStatisticsStore::clearInMemory):
(WebKit::WebResourceLoadStatisticsStore::clearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree):
(WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsStore::setGrandfatheringTime):

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):

  • WebKit2.xcodeproj/project.pbxproj:

Tools:

Fix typo in API name.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setStatisticsMinimumTimeBetweenDataRecordsRemoval):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Fix typo in testRunner API.

  • http/tests/loading/resourceLoadStatistics/grandfathering.html:
  • http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:
  • http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html:
  • http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html:
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction.html:
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction.html:
4:21 PM Changeset in webkit [219024] by achristensen@apple.com
  • 4 edits in trunk

REGRESSION(r215096) Queries of URLs with non-special schemes should not percent-encode single quotes
https://bugs.webkit.org/show_bug.cgi?id=174051
<rdar://problem/33002846>

Reviewed by Tim Horton.

Source/WebCore:

In r215096 I added ' to the set of characters to be percent-encoded in queries,
but for interoperability and compatibility we need to do this only for special schemes, like http.

Covered by new API tests.

  • platform/URLParser.cpp:

(WebCore::isC0Control):
(WebCore::shouldPercentEncodeQueryByte):
(WebCore::URLParser::utf8QueryEncode):
(WebCore::URLParser::encodeQuery):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

3:49 PM Changeset in webkit [219023] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the build following <https://trac.webkit.org/changeset/219019>
(https://bugs.webkit.org/show_bug.cgi?id=165160)

Export the FrameLoadRequest move constructor and move operator so that they
can be used from WebKit.

  • loader/FrameLoadRequest.h:
3:47 PM Changeset in webkit [219022] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

[WebCore] Update AXObjectCache for !HAVE(ACCESSIBILITY)
https://bugs.webkit.org/show_bug.cgi?id=174045

Reviewed by Konstantin Tokarev.

No new tests. No change in behavior.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::checkedStateChanged):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::deferRecomputeIsIgnored):
(WebCore::AXObjectCache::deferTextChangedIfNeeded):
(WebCore::AXObjectCache::focusAriaModalNodeTimerFired):
(WebCore::AXObjectCache::handleAriaExpandedChange):
(WebCore::AXObjectCache::handleAriaRoleChanged):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::handleScrollbarUpdate):
(WebCore::AXObjectCache::liveRegionChangedNotificationPostTimerFired):
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::passwordNotificationPostTimerFired):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::postTextReplacementNotification):
(WebCore::AXObjectCache::postTextReplacementNotificationForTextControl):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::recomputeIsIgnored):
(WebCore::AXObjectCache::textChanged):
(WebCore::AXObjectCache::updateCacheAfterNodeIsAttached):
(WebCore::AXObjectCache::focusAriaModalNode): Deleted.

3:45 PM Changeset in webkit [219021] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Initial search is sometimes performed twice, produces duplicate results
https://bugs.webkit.org/show_bug.cgi?id=174047

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-06-30
Reviewed by Devin Rousso.

  • UserInterface/Views/SearchTabContentView.js:

(WebInspector.SearchTabContentView.prototype.performSearch):
The initial layout of the tab content view was setting state to force a search
which may happen after a delay, however the global search field was causing
its own search to happen. We can clear the flag when a search is being performed
to prevent duplicating the search.

3:31 PM Changeset in webkit [219020] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

[WK2] Resource load statistics code is spamming the WebProcess with a test-only message
https://bugs.webkit.org/show_bug.cgi?id=174048
<rdar://problem/33062376>

Patch by John Wilander <wilander@apple.com> on 2017-06-30
Reviewed by Brent Fulgham.

Fix the telemetry data message send so that it is not generated during normal operations.
This is only meant to be used by WebKitTestRunner.

  • UIProcess/WebResourceLoadStatisticsTelemetry.cpp:

(WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit):

3:30 PM Changeset in webkit [219019] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Attempt to fix the Apple Windows build following <https://trac.webkit.org/changeset/219013>
(https://bugs.webkit.org/show_bug.cgi?id=165160)

Make FrameLoadRequest move constructor and move operator out-of-line so that callers
do not need to include header SecurityOrigin.h.

  • loader/FrameLoadRequest.cpp:
  • loader/FrameLoadRequest.h:
3:01 PM Changeset in webkit [219018] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

Attempt to fix the WPE build following <https://trac.webkit.org/changeset/219013>
(https://bugs.webkit.org/show_bug.cgi?id=165160)

Update the prototype of UIClient::createNewPage() to take a API::FrameInfo& instead of
a WebFrameProxy* and a const WebCore::SecurityOriginData&.

  • UIProcess/API/glib/WebKitUIClient.cpp:
2:57 PM Changeset in webkit [219017] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Add small delay before showing the progress spinner when loading resources
https://bugs.webkit.org/show_bug.cgi?id=173437

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ResourceContentView.js:

(WebInspector.ResourceContentView):
(WebInspector.ResourceContentView.prototype.removeLoadingIndicator): Added.
(WebInspector.ResourceContentView.prototype._contentError):
(WebInspector.ResourceContentView.prototype._hasContent):
Delay the creation of the spinner for 100ms. If the content is available before then, just
clear the timeout and the spinner will never be created/shown.

We measured an average of 35ms to load and display images with slow cases being around 55ms.
100ms was chosen for the timeout to give some room to allow for abnormally slow loading
while not being too long as to be outright noticable.

  • UserInterface/Views/FontResourceContentView.js:

(WebInspector.FontResourceContentView.prototype.contentAvailable):

  • UserInterface/Views/ImageResourceContentView.js:

(WebInspector.ImageResourceContentView.prototype.contentAvailable):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView.prototype._contentWillPopulate):
Calls the new protected function removeLoadingIndicator to ensure that the spinner (and any
other element) is removed.

This is necessary because TextResourceContentView effectively has two phases of loading its
content: getting the content and formatting it for display. The first follows the same path
as the other ResourceContentView subclasses, the second waits for the ContentWillPopulate
event on SourceCodeTextEditor before it actually adds the content as a subview. In this
case, the spinner should only be removed right before the content is actually added, not
once it's ready.

2:52 PM Changeset in webkit [219016] by achristensen@apple.com
  • 4 edits in trunk/Source

Stop soft linking with CFNetwork
https://bugs.webkit.org/show_bug.cgi?id=174029

Reviewed by Jer Noble.

Source/WebCore:

We link directly with CFNetwork. There's no reason to soft link,
and it is causing a problem with linking when doing interesting things with CFNetwork.

  • platform/spi/cf/CFNetworkSPI.h:

Source/WebKit2:

  • Shared/mac/CookieStorageShim.mm:
2:47 PM Changeset in webkit [219015] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Unreviewed, rolling out r218983.
https://bugs.webkit.org/show_bug.cgi?id=174042

Broke Debugger Call Stack TreeOutline (Requested by drousso on
#webkit).

Reverted changeset:

"Web Inspector: Remove unnecessary hasChildren from
TreeOutline"
https://bugs.webkit.org/show_bug.cgi?id=173986
http://trac.webkit.org/changeset/218983

2:47 PM Changeset in webkit [219014] by Devin Rousso
  • 26 edits in trunk

Web Inspector: Default string comparisons to treat numeric characters as numbers
https://bugs.webkit.org/show_bug.cgi?id=173984

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Base/Utilities.js:

(String.prototype.extendedLocaleCompare):

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames.compare):

  • UserInterface/Controllers/ResourceQueryController.js:

(WebInspector.ResourceQueryController.prototype.executeQuery):

  • UserInterface/Views/ApplicationCacheFrameContentView.js:

(WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid.localeCompare):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._iterateOverProperties):

  • UserInterface/Views/CookieStorageContentView.js:

(WebInspector.CookieStorageContentView.prototype._sortDataGrid.localeCompare):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAttributes):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByNode):

  • UserInterface/Views/DOMStorageContentView.js:

(WebInspector.DOMStorageContentView.prototype._sortDataGrid.comparator):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):

  • UserInterface/Views/FolderizedTreeElement.js:

(WebInspector.FolderizedTreeElement.prototype._compareTreeElementsByMainTitle):

  • UserInterface/Views/HeapSnapshotDataGridTree.js:

(WebInspector.HeapSnapshotDataGridTree.buildSortComparator):

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView.prototype.dataGridSortComparator):

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView.prototype._updateShownTabs):

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView.prototype._compareDataGridNodesByStartTime):

  • UserInterface/Views/ProbeDetailsSidebarPanel.js:

(WebInspector.ProbeDetailsSidebarPanel.prototype.inspect):

  • UserInterface/Views/QuickConsole.js:

(WebInspector.QuickConsole.prototype._compareExecutionContextPathComponents):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid.comparator):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._compareTreeElements):

  • UserInterface/Views/ResourceTreeElement.js:

(WebInspector.ResourceTreeElement.compareResourceTreeElements):
(WebInspector.ResourceTreeElement.compareFolderAndResourceTreeElements):

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WebInspector.ScriptDetailsTimelineView.prototype.dataGridSortComparator):

  • UserInterface/Views/StorageSidebarPanel.js:

(WebInspector.StorageSidebarPanel.prototype._compareTreeElements):

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.prototype._sortComparator):

LayoutTests:

  • inspector/unit-tests/string-utilities.html:

Add tests for String.prototype.extendedLocaleCompare.

2:35 PM Changeset in webkit [219013] by dbates@webkit.org
  • 37 edits
    1 add in trunk

API::FrameInfo should know the web page that contains the frame; add API property webView to WKFrameInfo
https://bugs.webkit.org/show_bug.cgi?id=165160
<rdar://problem/29451999>

Reviewed by Brady Eidson.

Source/WebCore:

Pass the document that is requesting the load to the loader.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab): Pass the document when instantiating the FrameLoadRequest.
Also use C++11 brace initialization to instantiate ResourceRequest.

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate): Pass the document when instantiating the FrameLoadRequest.

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest): Moved from FrameLoadRequest.h.
(WebCore::FrameLoadRequest::requester): Added.
(WebCore::FrameLoadRequest::requesterSecurityOrigin): Added.

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest): Marked as WEBCORE_EXPORT and modified to take
the document that requested the load.
(WebCore::FrameLoadRequest::requester): Deleted; made out-of-line/moved to FrameLoadRequest.cpp.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected): Pass the document when instantiating the FrameLoadRequest. Also use C++11
brace initialization to instantiate ResourceRequest.
(WebCore::FrameLoader::loadURLIntoChildFrame): Pass the document when instantiating the FrameLoadRequest.
(WebCore::FrameLoader::loadFrameRequest): Substitute FrameLoadRequest::requesterSecurityOrigin() for
FrameLoadRequest::requester() as the former replaces the latter.
(WebCore::FrameLoader::loadURL): Pass the document when instantiating the NavigationAction.
(WebCore::FrameLoader::load): Ditto.
(WebCore::FrameLoader::loadWithDocumentLoader): Pass the document when instantiating the NavigationAction.
Also use C++11 brace initialization syntax to instantiate the NavigationAction.
(WebCore::FrameLoader::reload): Ditto.
(WebCore::FrameLoader::loadPostRequest): Ditto.
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): Pass the document when instantiating the NavigationAction.
(WebCore::FrameLoader::loadDifferentDocumentItem): Pass the document when instantiating the NavigationAction.
Also use C++11 brace initialization syntax to instantiate the NavigationAction.
(WebCore::createWindow): Pass the document when instantiating the NavigationAction.

  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction): Modified to take the source document.

  • loader/NavigationAction.h:

(WebCore::NavigationAction::isEmpty): Consider a NavigationAction empty if does not have a source document
or the associated ResourceRequest has an empty URL.
(WebCore::NavigationAction::sourceDocument): Added.
(WebCore::NavigationAction::NavigationAction): Deleted; made out-of-line/moved to NavigationAction.cpp to
avoid the need to include the header Document.h.

  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Store the document that scheduled the navigation.
Also use C++11 brace initialization to instantiate in the member initialization list.
(WebCore::ScheduledURLNavigation::initiatingDocument): Added. Retrieves the document that scheduled the navigation.
(WebCore::NavigationScheduler::scheduleLocationChange): Pass the document when instantiating the FrameLoadRequest.

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy): Pass the document when instantiating the NavigationAction.
Also use C++11 brace initialization syntax to instantiate the NavigationAction.

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected): Pass the document when instantiating the FrameLoadRequest.
Also use C++11 brace initialization syntax to instantiate the FrameLoadRequest.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow): Pass the document when instantiating the FrameLoadRequest.

Source/WebKit/ios:

Pass the document that is requesting the load to the loader.

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

Pass the document that is requesting the load to the loader.

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

Pass the document that is requesting the load to the loader.

  • Plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

Source/WebKit2:

Expose a property on WKFrameInfo to retrieve the WKWebView of the web page that contains the
frame. This will allow an embedding client to know the web view that initiated the navigation
request as well as differentiate between a navigation initiated by web content from one
initiated via API.

The majority of this change is passing the document D that initiated the targeted navigation
or called window.open() through the loading machinery to the FrameLoaderClient. The changes
to pass this information to the FrameLoaderClient when creating a new window are straightforward.
For targeted navigation, the WebKit2 FrameLoaderClient implementation now computes the info
for the originating frame regardless of the navigation type (NavigationAction::type()).
(Currently we only compute the originating frame for hyperlink activated navigations,
form submissions, and form resubmissions). The WebProcess computes the page ID of the page
that contains the originating frame and sends that to the UIProcess so that it can create
an API::FrameInfo for the originating frame and associate the page that contains the frame,
if the navigation was triggered by web content. If the navigation was triggered by API
(e.g. -[WKWebView goBack]) then the created API::FrameInfo does not have an associated page
so that an embedding client can distinguish between a navigation initiated by web content
from a navigation that it initiated via API depending on whether API::FrameInfo::page() is
nullptr. We expose property webView on the Mac and iOS API class WKFrameInfo to return the
WKWebView corresponding to API::FrameInfo::page().

A small change that this patch makes is to have the WebProcess compute the originating frame
info (call WebFrame::info()) and send it over to the UIProcess as opposed to sending the frame
ID of the originating frame and having the UIProcess compute the frame info from it. We do this
because the UIProcess may not be able to compute the frame info for the originating frame if
the window that it was contained in was closed between the time the WebProcess sent the frame
ID to the UIProcess and the UIProcess received it.

  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::create):
(API::FrameInfo::FrameInfo):
(API::FrameInfo::clearPage):

  • UIProcess/API/APIFrameInfo.h:
  • UIProcess/API/APIUIClient.h:

(API::UIClient::createNewPage):
(API::UIClient::createNewPageAsync):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/Cocoa/WKFrameInfo.h:
  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo description]):
(-[WKFrameInfo webView]):

  • UIProcess/API/Cocoa/WKUserContentController.mm:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::createNewPageCommon):
(WebKit::UIDelegate::UIClient::createNewPage):
(WebKit::UIDelegate::UIClient::createNewPageAsync):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::createNewPage):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::loadURL):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab):

Tools:

Add tests to ensure that -[WKFrameInfo webView] is computed correctly for the source and target frame
for navigations and window creation.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/DecidePolicyForNavigationAction.mm: Added. Derived from file ShouldOpenExternalURLsInNewWindowActions.mm.

(-[DecidePolicyForNavigationActionController webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[DecidePolicyForNavigationActionController webView:didFinishNavigation:]):
(-[DecidePolicyForNavigationActionController webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):

2:04 PM Changeset in webkit [219012] by jer.noble@apple.com
  • 35 edits in trunk

Make Legacy EME API controlled by RuntimeEnabled setting.
https://bugs.webkit.org/show_bug.cgi?id=173994

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:
  • runtime/CommonIdentifiers.h:

Source/WebCore:

Add a new RuntimeEnabledFeatures setting to control the availability of the WebKit prefixed EME APIs.

  • Configurations/FeatureDefines.xcconfig:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.idl:
  • dom/Element.idl:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::webkitSetMediaKeys):
(WebCore::HTMLMediaElement::keyAdded):

  • html/HTMLMediaElement.idl:
  • html/WebKitMediaKeyError.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setLegacyEncryptedMediaAPIEnabled):
(WebCore::RuntimeEnabledFeatures::legacyEncryptedMediaAPIEnabled):

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Add a new preference used to control WebCore's new RuntimeEnabledFeature setting.

  • Configurations/FeatureDefines.xcconfig:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences legacyEncryptedMediaAPIEnabled]):
(-[WebPreferences setLegacyEncryptedMediaAPIEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add a new WKWebViewConfiguration property, as well as a new WKPreferences function, both able to control
WebCore's new RuntimeEnabledFeature setting for the Legacy EME API.

  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesGetLegacyEncryptedMediaAPIEnabled):
(WKPreferencesSetLegacyEncryptedMediaAPIEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setLegacyEncryptedMediaAPIEnabled:]):
(-[WKWebViewConfiguration _legacyEncryptedMediaAPIEnabled]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
2:00 PM Changeset in webkit [219011] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r218757): Touch Bar's media scrubber timeline runs from 00:00 to 00:00 and has no playhead
https://bugs.webkit.org/show_bug.cgi?id=174032

Reviewed by Eric Carlson.

Fix a copypasta error where durationChange notifications were changing the value of muted.

  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:

(WebKit::WebPlaybackSessionManagerProxy::durationChanged):

1:54 PM Changeset in webkit [219010] by Chris Dumez
  • 14 edits
    2 moves in trunk/Source

Move ResourceLoadStatisticsStore to WebKit2/UIProcess
https://bugs.webkit.org/show_bug.cgi?id=174033

Reviewed by Brent Fulgham.

Move ResourceLoadStatisticsStore to WebKit2/UIProcess since it is only
used in the WebKit2 UIProcess.

  • CMakeLists.txt:

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • loader/ResourceLoadObserver.cpp:

(WebCore::primaryDomain):

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::primaryDomain):

  • loader/ResourceLoadStatistics.h:

Source/WebKit2:

  • UIProcess/Storage/ResourceLoadStatisticsStore.cpp: Renamed from Source/WebCore/loader/ResourceLoadStatisticsStore.cpp.

(WebKit::ResourceLoadStatisticsStore::createEncoderFromData):
(WebKit::ResourceLoadStatisticsStore::readDataFromDecoder):
(WebKit::ResourceLoadStatisticsStore::clearInMemory):
(WebKit::ResourceLoadStatisticsStore::clearInMemoryAndPersistent):
(WebKit::ResourceLoadStatisticsStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsStore::fireDataModificationHandler):
(WebKit::ResourceLoadStatisticsStore::fireTelemetryHandler):
(WebKit::ResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler):
(WebKit::ResourceLoadStatisticsStore::processStatistics):
(WebKit::ResourceLoadStatisticsStore::sortedPrevalentResourceTelemetry):
(WebKit::ResourceLoadStatisticsStore::shouldRemoveDataRecords):
(WebKit::ResourceLoadStatisticsStore::dataRecordsBeingRemoved):
(WebKit::ResourceLoadStatisticsStore::dataRecordsWereRemoved):
(WebKit::ResourceLoadStatisticsStore::statisticsLock):

  • UIProcess/Storage/ResourceLoadStatisticsStore.h: Renamed from Source/WebCore/loader/ResourceLoadStatisticsStore.h.
  • UIProcess/WebResourceLoadStatisticsManager.cpp:

(WebKit::primaryDomain):

  • UIProcess/WebResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebResourceLoadStatisticsTelemetry.cpp:
  • UIProcess/WebResourceLoadStatisticsTelemetry.h:
  • WebKit2.xcodeproj/project.pbxproj:
1:37 PM WebIDLToDo edited by sam@webkit.org
(diff)
1:36 PM BugsWebKitOrgImprovements created by sam@webkit.org
1:31 PM WikiStart edited by sam@webkit.org
(diff)
1:30 PM WebIDLToDo edited by sam@webkit.org
(diff)
1:28 PM Changeset in webkit [219009] by rniwa@webkit.org
  • 10 edits in trunk/Source

Ran sort-Xcode-project-file.

Source/bmalloc:

  • bmalloc.xcodeproj/project.pbxproj:

Source/JavaScriptCore:

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
12:32 PM Changeset in webkit [219008] by rniwa@webkit.org
  • 8 edits
    9 adds in trunk

REGRESSION(r214194): Safari leaves a popup window open opened during before unload
https://bugs.webkit.org/show_bug.cgi?id=174016

Reviewed by Chris Dumez.

Source/WebCore:

The bug was caused by WebKit allowing the opening of a new window via window.open but disallowing
the initial navigation within the newly opened window while a beforeunload event is being dispatched.

Because some websites which opens a window during a beforeunload event relies on the opened page
to communicate back in order to close it. This resulted in a newly opened popup window with about:blank
being left out on those websites.

Fixed the bug by allowing the navigation of a new window as well as an existing another window.
More concretely, we disallow navigations within the same frame tree as the one in which a beforeunload
event is being dispatched, and allow navigations elsewhere (i.e. different window / page).
During the destruction of a frame-less document, disallow all the navigations.

Tests: fast/events/before-unload-navigate-different-window.html

fast/events/before-unload-open-window.html
fast/events/before-unload-sibling-frame.html

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::isNavigationAllowed):
(WebCore::FrameLoader::shouldClose):

  • loader/NavigationDisabler.h: Added. Extracted from NavigationScheduler.h

(WebCore::NavigationDisabler::NavigationDisabler): Increment the newly added counter on MainFrame unless
the frame is null (during the destruction of a frameless document) in which case we increment the global
disable count.
(WebCore::NavigationDisabler::~NavigationDisabler): Ditto for decrementation.
(WebCore::NavigationDisabler::isNavigationAllowed): Only allow the navigation when there is no frameless
document in destruction, and none of the frame in the same frame tree as the one given is currently in
the process of dispatching a beforeunload event.

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::shouldScheduleNavigation):

  • loader/NavigationScheduler.h:

(WebCore::NavigationDisabler): Moved to NavigationDisabler.h.

  • page/MainFrame.h:

(WebCore::MainFrame): Added s_globalNavigationDisableCount.

LayoutTests:

Added regression tests for navigating a new window, a sibling iframe, and another existing window.

  • fast/events/before-unload-navigate-different-window-expected.txt: Added.
  • fast/events/before-unload-navigate-different-window.html: Added.
  • fast/events/before-unload-open-window-expected.txt: Added.
  • fast/events/before-unload-open-window.html: Added.
  • fast/events/before-unload-sibling-frame-expected.txt: Added.
  • fast/events/before-unload-sibling-frame.html: Added.
  • fast/events/resources/message-opener.html: Added.
  • fast/events/resources/message-top.html: Added.
12:04 PM Changeset in webkit [219007] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebCore

[WebIDL] Add support for conditionally read-write attributes
https://bugs.webkit.org/show_bug.cgi?id=173993

Patch by Sam Weinig <sam@webkit.org> on 2017-06-30
Reviewed by Alex Christensen.

The MEDIA_SOURCE feature/conditional requires changing a few readonly
attributes into read-write attributes. In the past we handled this with
custom bindings. This patch adds a new extended attribute, ConditionallyReadWrite
which achieves the same result.

  • WebCore.xcodeproj/project.pbxproj:

Move a few custom binding to the "GC / Wrapping Only" group.

  • bindings/js/JSAudioTrackCustom.cpp:

(WebCore::JSAudioTrack::setKind): Deleted.
(WebCore::JSAudioTrack::setLanguage): Deleted.

  • bindings/js/JSTextTrackCustom.cpp:

(WebCore::JSTextTrack::setLanguage): Deleted.

  • bindings/js/JSVideoTrackCustom.cpp:

(WebCore::JSVideoTrack::setKind): Deleted.
(WebCore::JSVideoTrack::setLanguage): Deleted.
Remove no longer needed custom bindings.

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePropertiesHashTable):
(GenerateImplementation):
(GenerateAttributeSetterDefinition):
(GenerateCallbackImplementationContent):
(GenerateHashTableValueArray):
(GenerateHashTable):
Pipe ConditionallyReadWrite through the generator.

  • bindings/scripts/IDLAttributes.json:

Add ConditionallyReadWrite.

  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/TestObj.idl:

Add tests for ConditionallyReadWrite.

  • html/track/AudioTrack.idl:
  • html/track/TextTrack.idl:
  • html/track/VideoTrack.idl:

Replace [Custom] with [ConditionallyReadWrite].

11:40 AM WebIDLToDo edited by sam@webkit.org
(diff)
11:39 AM WebIDLToDo edited by sam@webkit.org
(diff)
11:37 AM Changeset in webkit [219006] by Matt Lewis
  • 7 edits in trunk/Source

Unreviewed, rolling out r218992.

The patch broke the iOS device builds.

Reverted changeset:

"DFG_ASSERT should allow stuffing registers before trapping."
https://bugs.webkit.org/show_bug.cgi?id=174005
http://trac.webkit.org/changeset/218992

11:18 AM Changeset in webkit [219005] by Chris Dumez
  • 16 edits in trunk/Source

ResourceLoadObserver does not need a ResourceLoadStatisticsStore
https://bugs.webkit.org/show_bug.cgi?id=174013

Reviewed by Brent Fulgham.

ResourceLoadObserver does not need a ResourceLoadStatisticsStore. ResourceLoadStatisticsStore is too complicated for its needs.
ResourceLoadStatisticsStore can then be moved to WebKit2/UIProcess in a follow-up.

Source/WebCore:

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • dom/UserGestureIndicator.cpp:

(WebCore::UserGestureIndicator::UserGestureIndicator):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::shared):
(WebCore::ResourceLoadObserver::setNotificationCallback):
(WebCore::ResourceLoadObserver::shouldLog):
(WebCore::ResourceLoadObserver::logFrameNavigation):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::ensureResourceStatisticsForPrimaryDomain):
(WebCore::ResourceLoadObserver::takeResourceStatisticsForPrimaryDomain):
(WebCore::ResourceLoadObserver::isPrevalentResource):
(WebCore::ResourceLoadObserver::statisticsForOrigin):
(WebCore::ResourceLoadObserver::takeStatistics):

  • loader/ResourceLoadObserver.h:
  • loader/ResourceLoadStatisticsStore.cpp:
  • loader/ResourceLoadStatisticsStore.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

  • testing/Internals.cpp:

(WebCore::Internals::resourceLoadStatisticsForOrigin):

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKit2:

  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::statisticsChangedTimerFired):

  • WebProcess/WebProcess.h:
11:10 AM Changeset in webkit [219004] by Jonathan Bedard
  • 2 edits in trunk/Tools

Follow-up fix for r218996

Unreviewed infrastructure fix.

Repeated calls to 'ios_version' make the log noisy, memoize the function.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort): Memoize ios_version().

10:28 AM Changeset in webkit [219003] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

ASSERTION FAILED: !canAnimate() && !m_currentFrame
https://bugs.webkit.org/show_bug.cgi?id=173089

Patch by Fujii Hironori <Fujii Hironori> on 2017-06-30
Reviewed by Said Abou-Hallawa.

Source/WebCore:

WebCore::BitmapImage::draw() has an assertion which ensures
m_currentFrame is zero in case of async decoding. But, this
assertion failed if an GIF animation image which have finished its
animation was repainted. In that time, m_currentFrame was the last
frame index of the image.

Test: fast/images/animated-gif-paint-after-animation.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw): Assert m_currentFrame is zero or the animation finished.
Call requestFrameAsyncDecodingAtIndex with m_currentFrame instead of zero.

LayoutTests:

  • fast/images/animated-gif-paint-after-animation-expected.txt: Added.
  • fast/images/animated-gif-paint-after-animation.html: Added.
  • fast/images/resources/animated-red-green-1000x1000-repeat-1.gif: Added.
9:54 AM Changeset in webkit [219002] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit2

[WK2][iOS][macOS] Update XPC services process launch dictionary
https://bugs.webkit.org/show_bug.cgi?id=173995
<rdar://problem/32797264>

Reviewed by Alex Christensen.

Update the WebProcess and Plugin Process XPC launch dictionaries to activate
improved ALSR features when launching.

  • PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
  • WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist:
  • WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist:
9:37 AM Changeset in webkit [219001] by fpizlo@apple.com
  • 3 edits
    1 add in trunk

RegExpCachedResult::setInput should reify left and right contexts
https://bugs.webkit.org/show_bug.cgi?id=173818

Reviewed by Keith Miller.
JSTests:

  • stress/right-left-context-invalidated-by-input.js: Added.

(test.validateContexts):
(test):

Source/JavaScriptCore:


If you don't reify them in setInput, then when you later try to reify them, you'll end up
using indices into an old input string to create a substring of a new input string. That
never goes well.

  • runtime/RegExpCachedResult.cpp:

(JSC::RegExpCachedResult::setInput):

9:22 AM Changeset in webkit [219000] by Chris Dumez
  • 10 edits
    2 deletes in trunk/Source/WebKit2

Merge WebResourceLoadStatisticsManager and WebResourceLoadObserver
https://bugs.webkit.org/show_bug.cgi?id=174008

Reviewed by Brent Fulgham.

Merge WebResourceLoadStatisticsManager and WebResourceLoadObserver. One was basically
a proxy to the other.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:

(WKResourceLoadStatisticsManagerSetPrevalentResource):
(WKResourceLoadStatisticsManagerIsPrevalentResource):
(WKResourceLoadStatisticsManagerSetHasHadUserInteraction):
(WKResourceLoadStatisticsManagerIsHasHadUserInteraction):
(WKResourceLoadStatisticsManagerSetGrandfathered):
(WKResourceLoadStatisticsManagerIsGrandfathered):
(WKResourceLoadStatisticsManagerSetSubframeUnderTopFrameOrigin):
(WKResourceLoadStatisticsManagerSetSubresourceUnderTopFrameOrigin):
(WKResourceLoadStatisticsManagerSetSubresourceUniqueRedirectTo):
(WKResourceLoadStatisticsManagerSetTimeToLiveUserInteraction):
(WKResourceLoadStatisticsManagerSetTimeToLiveCookiePartitionFree):
(WKResourceLoadStatisticsManagerSetMinimumTimeBetweeenDataRecordsRemoval):
(WKResourceLoadStatisticsManagerSetGrandfatheringTime):
(WKResourceLoadStatisticsManagerFireDataModificationHandler):
(WKResourceLoadStatisticsManagerFireShouldPartitionCookiesHandler):
(WKResourceLoadStatisticsManagerFireShouldPartitionCookiesHandlerForOneDomain):
(WKResourceLoadStatisticsManagerFireTelemetryHandler):
(WKResourceLoadStatisticsManagerSetNotifyPagesWhenDataRecordsWereScanned):
(WKResourceLoadStatisticsManagerSetShouldClassifyResourcesBeforeDataRecordsRemoval):
(WKResourceLoadStatisticsManagerSetNotifyPagesWhenTelemetryWasCaptured):
(WKResourceLoadStatisticsManagerSetShouldSubmitTelemetry):
(WKResourceLoadStatisticsManagerClearInMemoryAndPersistentStore):
(WKResourceLoadStatisticsManagerClearInMemoryAndPersistentStoreModifiedSinceHours):
(WKResourceLoadStatisticsManagerResetToConsistentState):

  • UIProcess/API/C/WKResourceLoadStatisticsManager.h:
  • UIProcess/Cocoa/WebResourceLoadStatisticsManagerCocoa.mm:

(WebKit::WebResourceLoadStatisticsManager::registerUserDefaultsIfNeeded):

  • UIProcess/WebResourceLoadObserver.cpp: Removed.
  • UIProcess/WebResourceLoadObserver.h: Removed.
  • UIProcess/WebResourceLoadStatisticsManager.cpp:

(WebKit::primaryDomain):
(WebKit::WebResourceLoadStatisticsManager::shared):
(WebKit::WebResourceLoadStatisticsManager::setStatisticsStore):
(WebKit::WebResourceLoadStatisticsManager::setStatisticsQueue):
(WebKit::WebResourceLoadStatisticsManager::clearInMemoryStore):
(WebKit::WebResourceLoadStatisticsManager::clearInMemoryAndPersistentStore):
(WebKit::WebResourceLoadStatisticsManager::logUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsManager::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsManager::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsManager::setGrandfathered):
(WebKit::WebResourceLoadStatisticsManager::isGrandfathered):
(WebKit::WebResourceLoadStatisticsManager::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsManager::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsManager::setSubresourceUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsManager::setTimeToLiveUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::setTimeToLiveCookiePartitionFree):
(WebKit::WebResourceLoadStatisticsManager::setMinimumTimeBetweeenDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsManager::setGrandfatheringTime):
(WebKit::WebResourceLoadStatisticsManager::fireDataModificationHandler):
(WebKit::WebResourceLoadStatisticsManager::fireShouldPartitionCookiesHandler):
(WebKit::WebResourceLoadStatisticsManager::fireTelemetryHandler):

  • UIProcess/WebResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):

  • WebKit2.xcodeproj/project.pbxproj:
9:12 AM Changeset in webkit [218999] by commit-queue@webkit.org
  • 19 edits
    5 moves
    4 adds
    1 delete in trunk/Source/WebCore

[PAL] Move Sound into PAL
https://bugs.webkit.org/show_bug.cgi?id=173999

Patch by Ross Kirsling <Ross Kirsling> on 2017-06-30
Reviewed by Alex Christensen.

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/Editor.cpp:

(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::performDelete):

  • editing/EditorCommand.cpp:

(WebCore::executeSelectToMark):
(WebCore::executeSwapWithMark):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::takeFindStringFromSelection):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::beep):

  • platform/Sound.h: Removed.

Source/WebCore/PAL:

  • Configurations/PAL.xcconfig:
  • PAL.xcodeproj/project.pbxproj:
  • pal/CMakeLists.txt:
  • pal/PlatformGTK.cmake:
  • pal/PlatformMac.cmake:
  • pal/PlatformWPE.cmake:
  • pal/PlatformWin.cmake:
  • pal/system/Sound.h: Renamed from Source/WebCore/platform/ios/SoundIOS.mm.
  • pal/system/SoundNone.cpp: Renamed from Source/WebCore/platform/wpe/SoundWPE.cpp.

(PAL::systemBeep):

  • pal/system/gtk/SoundGtk.cpp: Renamed from Source/WebCore/platform/gtk/SoundGtk.cpp.
  • pal/system/mac/SoundMac.mm: Renamed from Source/WebCore/platform/mac/SoundMac.mm.
  • pal/system/win/SoundWin.cpp: Renamed from Source/WebCore/platform/win/SoundWin.cpp.
9:08 AM Changeset in webkit [218998] by Wenson Hsieh
  • 14 edits
    1 add in trunk

[iOS DnD] Drag caret rect is incorrectly computed when dropping in editable content in iframes
https://bugs.webkit.org/show_bug.cgi?id=174017
<rdar://problem/32959782>

Reviewed by Simon Fraser.

Source/WebCore:

We're currenly computing the drag caret rect (for the purposes of presentation at the client layers)
incorrectly, in per-frame document coordinates instead of root view coordinates in the mainframe. This means
drag caret geometry from embedded iframes in the document will show up in the content view with a rect in the
coordinate space of the iframe.

To fix this, we need to convert the drag caret rect to root view coordinates. This patch teaches
DragCaretController to do this, and tweaks WebKit/WebKit2 to use caretRectInRootViewCoordinates.

Test: DataInteractionTests.ExternalSourcePlainTextToIFrame

  • editing/FrameSelection.cpp:

(WebCore::DragCaretController::caretRectInRootViewCoordinates):

  • editing/FrameSelection.h:

Source/WebKit/mac:

Use root view coordinates when computing the drag caret rect.

  • WebView/WebView.mm:

(-[WebView _dataInteractionCaretRect]):

Source/WebKit2:

Send the drag caret rect in root view coordinates over to the UI process.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _dragCaretRect]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Add basic test plumbing to fetch the current drag caret rect.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::performDragControllerAction):

Tools:

Add a new test verifying that the drag caret is visually contained within the bounds of an iframe. Before these
changes, the caret would appear outside of the iframe.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/contenteditable-in-iframe.html: Added.
  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(checkDragCaretRectIsContainedInRect):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/DataInteractionSimulator.h:
  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[DataInteractionSimulator _resetSimulatedState]):
(-[DataInteractionSimulator _concludeDataInteractionAndPerformOperationIfNecessary]):
(-[DataInteractionSimulator _advanceProgress]):
(-[DataInteractionSimulator lastKnownDragCaretRect]):

8:45 AM Changeset in webkit [218997] by commit-queue@webkit.org
  • 55 edits in trunk/Source/WebCore

[WebIDL] Replace use of is_polymorphic with standard std::is_polymorphic<>::value
https://bugs.webkit.org/show_bug.cgi?id=174012

Patch by Sam Weinig <sam@webkit.org> on 2017-06-30
Reviewed by Alex Christensen.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
Replace is_polymorphic with standard std::is_polymorphic<>::value. Remove clang
specific guard now that we are using something other compilers support.

  • bindings/scripts/test/JS/JSInterfaceName.cpp:
  • bindings/scripts/test/JS/JSMapLike.cpp:
  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
  • bindings/scripts/test/JS/JSTestSerialization.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestStringifier.cpp:
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

Update test results.

8:33 AM Changeset in webkit [218996] by Jonathan Bedard
  • 5 edits in trunk/Tools

Add support for different versions of iOS when loading test expectations
https://bugs.webkit.org/show_bug.cgi?id=173774
<rdar://problem/32951132>

Rubber-stamped by Aakash Jain.

When running layout tests, we should support multiple version of iOS the same way we do Mac.

  • Scripts/webkitpy/port/ios.py:

(IOSPort.default_baseline_search_path): Add ios-<major version> test expectation.
(IOSPort.test_expectations_file_position): Added new file expectations, increment expected file position.
(IOSPort.ios_version): iOS ports must define a function to retrieve the iOS version.

  • Scripts/webkitpy/port/ios_device.py:

(IOSDevicePort.ios_version): Ask connected devices for implementation.

  • Scripts/webkitpy/port/ios_device_unittest.py:

(IOSDeviceTest.test_additional_platform_directory): Skip test until bug 173775 is finished.
(IOSDeviceTest.test_baseline_searchpath): Ditto.
(IOSDeviceTest.test_expectations_ordering): Ditto.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort.ios_version): If a runtime is specified, ask the runtime for the iOS version. Otherwise,
ask the platform.

8:09 AM Changeset in webkit [218995] by wilander@apple.com
  • 2 edits in trunk/LayoutTests

Update expectations for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=173940

Unreviewed test gardening, update test expectations for failing tests.

  • platform/wk2/TestExpectations:

http/tests/loading/resourceLoadStatistics/telemetry-generation.html
is still failing.

8:00 AM Changeset in webkit [218994] by commit-queue@webkit.org
  • 15 edits in trunk/Source

Source/WebCore:

Support PeerConnectionStates::BundlePolicy::MaxBundle when setting rtc configuration
https://bugs.webkit.org/show_bug.cgi?id=169389

Reviewed by Alex Christensen.

Covered by manual testing (appr.tc and https://youennf.github.io/webrtc-tests/src/content/peerconnection/trickle-ice/).
Updated test is showing some more failing but this is due to the fact that we are no longer totally lying on the configuration of the

underlying libwebrtc backend.

Previously, we were creating a libwebrtc peer connection and then setting its configuration.
libwebrtc does not like the configuration to be changed and may refuse to set the configuration.
Instead of doing that, we are now creating the libwebrtc peer connection with the provided configuration.

ICE candidate pool size is disabled as it is creating issues with running tests on bots.

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-30

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::setConfiguration):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::initializeWith):
(WebCore::iceServersFromConfiguration):
(WebCore::RTCPeerConnection::initializeConfiguration):
(WebCore::RTCPeerConnection::setConfiguration):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint):
(WebCore::LibWebRTCMediaEndpoint::setConfiguration):
(WebCore::LibWebRTCMediaEndpoint::stop):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::configurationFromMediaEndpointConfiguration):
(WebCore::LibWebRTCPeerConnectionBackend::setConfiguration):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::createActualPeerConnection):
(WebCore::LibWebRTCProvider::createPeerConnection):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Source/WebKit2:
Support PeerConnectionStates::BundlePolicy::MaxBundle when setting rtc configuration
https://bugs.webkit.org/show_bug.cgi?id=169389

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-30
Reviewed by Alex Christensen.

  • fast/mediastream/RTCPeerConnection-getConfiguration-expected.txt:
6:18 AM Changeset in webkit [218993] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools

Fontconfig build breaks with glibc 2.15+
https://bugs.webkit.org/show_bug.cgi?id=174019

Patch by Jacobo Aragunde Pérez <jaragunde@igalia.com> on 2017-06-30
Reviewed by Carlos Alberto Lopez Perez.

Apply patch by Khem Raj adapted to fontconfig 2.11.1.

  • wpe/jhbuild.modules:
  • wpe/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS-18.patch: Added.
6:04 AM WebIDLToDo edited by sam@webkit.org
(diff)
6:03 AM WebIDLToDo edited by sam@webkit.org
(diff)
1:23 AM Changeset in webkit [218992] by keith_miller@apple.com
  • 7 edits in trunk/Source

DFG_ASSERT should allow stuffing registers before trapping.
https://bugs.webkit.org/show_bug.cgi?id=174005

Reviewed by Mark Lam.

Source/JavaScriptCore:

DFG_ASSERT currently prints error data to stderr before crashing,
which is nice for local development. In the wild, however, we
can't see this information in crash logs. This patch enables
stuffing some of the most useful information from DFG_ASSERTS into
up to five registers right before crashing. The values stuffed
should not impact any logging during local development.

  • assembler/AbortReason.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::logForCrash):
(JSC::DFG::Graph::logAssertionFailure):
(JSC::DFG::crash): Deleted.
(JSC::DFG::Graph::handleAssertionFailure): Deleted.

  • dfg/DFGGraph.h:

Source/WTF:

Add new template functions that enable stuffing up to five values
into registers before crashing.

  • wtf/Assertions.h:

(CRASH_WITH_INFO):

12:48 AM Changeset in webkit [218991] by commit-queue@webkit.org
  • 11 edits
    6 adds in trunk

Top controls bars should invert with right-to-left user interface layout direction locale
https://bugs.webkit.org/show_bug.cgi?id=173989
<rdar://problem/32863552>

Patch by Antoine Quint <Antoine Quint> on 2017-06-30
Reviewed by Dean Jackson.

Source/WebCore:

When the user interface layout direction is set by the locale to be right-to-left, we now:

  • invert the two top controls bars
  • invert the layout order for the fullscreen / PiP controls bar
  • orient the volume button the opposite direction when presented in a top controls bar

Test: media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl.html

  • Modules/modern-media-controls/controls/icon-service.js: Add new RTL variants for the mute and unmute icons.
  • Modules/modern-media-controls/controls/inline-media-controls.css: Invert the position of the two top controls

bars when we switch user interface layout direction.
(.media-controls.inline.uses-ltr-user-interface-layout-direction > .controls-bar.top-left,):
(.media-controls.inline.uses-ltr-user-interface-layout-direction > .controls-bar.top-right,):
(.media-controls.inline > .controls-bar.top-left): Deleted.
(.media-controls.inline > .controls-bar.top-right): Deleted.

  • Modules/modern-media-controls/controls/inline-media-controls.js:

(InlineMediaControls.prototype.layout): Default to using the LTR variant for the mute button icon since
it should only use the RTL variant in case the locale requires it *and* we display the mute button in a
top controls bar rather than the bottom controls bar (ie. when width becomes constrained).
(InlineMediaControls.prototype._topLeftContainerButtons): Invert the order of the fullscreen and PiP
buttons based on the user interface layout direction.
(InlineMediaControls.prototype._addTopRightBarWithMuteButtonToChildren):
(InlineMediaControls):

  • Modules/modern-media-controls/controls/media-controls.js:

(MediaControls.prototype.set usesLTRUserInterfaceLayoutDirection): Schedule a layout when the user interface
layout direction changes.

  • Modules/modern-media-controls/controls/mute-button.js: Add a new "usesRTLIconVariant" property, false by

default, to indicate we want to use the RTL variant of the button's icon.
(MuteButton):
(MuteButton.prototype.get muted):
(MuteButton.prototype.set muted):
(MuteButton.prototype.set usesRTLIconVariant):
(MuteButton.prototype.layout):

  • Modules/modern-media-controls/images/iOS/Mute-RTL.svg: Added.
  • Modules/modern-media-controls/images/iOS/VolumeHi-RTL.svg: Added.
  • Modules/modern-media-controls/images/macOS/Mute-RTL.svg: Added.
  • Modules/modern-media-controls/images/macOS/VolumeHi-RTL.svg: Added.
  • Modules/modern-media-controls/media/media-controller.js: Use an ivar to track when it's worth notifying the

media controls that the user interface layout direction has changed. This means we won't need to schedule a
layout in case it's set to the current value.
(MediaController):
(MediaController.prototype.set usesLTRUserInterfaceLayoutDirection):

LayoutTests:

Add a new test to check we correctly layout the top controls bars in RTL and rebaseline a
test that now requires an asynchronous assertion.

  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl.html: Added.
  • media/modern-media-controls/mute-button/mute-button-expected.txt:
  • media/modern-media-controls/mute-button/mute-button.html:
  • platform/mac/TestExpectations:
12:34 AM Changeset in webkit [218990] by dino@apple.com
  • 8 edits in trunk/LayoutTests

REGRESSION (High Sierra): Gradient LayoutTests are failing
https://bugs.webkit.org/show_bug.cgi?id=174015
<rdar://problem/32332022>

Reviewed by Tim Horton.

Add the fudge factor to more of the gradient tests.

  • canvas/philip/tests.js:

(_assertPixelWithGradientNoise): Bump the factor up a bit.

  • canvas/philip/tests/2d.gradient.interpolate.multiple.html:
  • canvas/philip/tests/2d.gradient.interpolate.solid.html:
  • canvas/philip/tests/2d.gradient.radial.transform.1.html:
  • canvas/philip/tests/2d.gradient.radial.transform.2.html:
  • canvas/philip/tests/2d.gradient.radial.transform.3.html:
  • canvas/philip/tests/initial.reset.gradient.html:
Note: See TracTimeline for information about the timeline view.