⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Apr 16, 2016:

9:55 PM Changeset in webkit [199639] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] DFG should support relational comparisons of Number and Other
https://bugs.webkit.org/show_bug.cgi?id=156669

Patch by Benjamin Poulain <bpoulain@webkit.org> on 2016-04-16
Reviewed by Darin Adler.

In Sunspider/3d-raytrace, DFG falls back to JSValue in some important
relational compare because profiling sees "undefined" from time to time.

This case is fairly common outside Sunspider too because of out-of-bounds array access.
Unfortunately for us, our fallback for compare is really inefficient.

Fortunately, relational comparison with null/undefined/true/false are trival.
We can just convert both side to Double. That's what this patch adds.

I also extended constant folding for those cases because I noticed
a bunch of "undefined" constant going through DoubleRep at runtime.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • tests/stress/compare-number-and-other.js: Added.

(opaqueSideEffect):
(let.operator.of.operators.eval.testPolymorphic):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.eval.testMonomorphic):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.testMonomorphicLeftConstant):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.testMonomorphicRightConstant):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.i.testPolymorphic):

8:44 PM Changeset in webkit [199638] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] FRound/Negate can produce an impure NaN out of a pure NaN
https://bugs.webkit.org/show_bug.cgi?id=156528

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-16
Reviewed by Filip Pizlo.

If you fround a double with the bits 0xfff7000000000000
you get 0xfffe000000000000. The first is a pure NaN, the second isn't.

This is without test because I could not find a way to create a 0xfff7000000000000
while convincing DFG that its pure.
When we purify NaNs from typed array, we use a specific value of NaN if the input
is any NaN, making testing tricky.

  • bytecode/SpeculatedType.cpp:

(JSC::typeOfDoubleNegation):

7:39 PM Changeset in webkit [199637] by Michael Catanzaro
  • 11 edits in trunk/Source/WebCore/platform/gtk/po

Localization files with empty Language: block build with gettext 0.19
https://bugs.webkit.org/show_bug.cgi?id=133611

Reviewed by Darin Adler.

Fix the language tags. Note that the build error is not actually important here as it only
occurs with an older version of gettext, but presumably it's bad for the language tags to be
wrong.

  • as.po:
  • en_CA.po:
  • gu.po: Also correct the translation team to Gujarati.
  • hu.po:
  • id.po:
  • ko.po:
  • lv.po:
  • pa.po:
  • ru.po:
  • sl.po:
6:29 PM Changeset in webkit [199636] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

JS::DFG::nodeValuePairListDump does not compile with libstdc++ 4.8
https://bugs.webkit.org/show_bug.cgi?id=156670

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-16
Reviewed by Darin Adler.

  • dfg/DFGNode.h:

(JSC::DFG::nodeValuePairListDump): Modified to use lambda as comparator.

6:26 PM Changeset in webkit [199635] by Matt Baker
  • 10 edits
    2 adds in trunk

Web Inspector: Adopt Number.prototype.toLocaleString For All Sizes and Times
https://bugs.webkit.org/show_bug.cgi?id=152033
<rdar://problem/23815589>

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Update string formatters to localize float and percentage strings. Hook up
console message formatters to use String.standardFormatters so that console
statements (e.g. console.log("%.3f", 3.14159)) are properly formatted.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Utilities.js:

(value):
tokenizeFormatString should default to 6 digits when no precision
sub-specifier is provided.

percentageString should localize formatting, and take a fraction value
(0 to 1) instead of a percentage.

secondsToString should perform special-case formatting for zero values
("0ms") instead of the general purpose float formatter.

(value.d):
Switch to parseInt to floor floating point values and support numeric strings.
Return NaN instead of zero when passed a value that can't be converted to integer.

(value.f):
Switch to parseFloat to support numeric strings, and localize formatting.
Remove precision check, as it will never be less than zero. Return NaN
instead of zero when passed a value that can't be converted to float.

(prettyFunctionName):
Convert substitutions (an arguments object) to an array before calling join.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.floatFormatter):
Use String.standardFormatters.f.

(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.integerFormatter):
Use String.standardFormatters.d.

  • UserInterface/Views/LayoutTimelineDataGridNode.js:

(WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
(WebInspector.LayoutTimelineDataGridNode):
Use integer formatting for pixel values.

  • UserInterface/Views/ProfileDataGridNode.js:

(WebInspector.ProfileDataGridNode.prototype._recalculateData):
(WebInspector.ProfileDataGridNode.prototype._totalTimeContent):
Treat percentage as a fraction from 0 to 1.

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
Use integer formatting for pixel values.

LayoutTests:

Add test coverage for string formatters, and additional test cases for
Number.percentageString and Number.secondsToString.

  • inspector/unit-tests/number-utilities-expected.txt:
  • inspector/unit-tests/number-utilities.html:
  • inspector/unit-tests/string-utilities-expected.txt: Added.
  • inspector/unit-tests/string-utilities.html: Added.
6:20 PM Changeset in webkit [199634] by Matt Baker
  • 8 edits in trunk/Source/WebInspectorUI

display:inline on the tbody is causing the width of the iframe to be shrunk to the minimum size of its text.
https://bugs.webkit.org/show_bug.cgi?id=15666

Reviewed by Timothy Hatcher.

Fix a regression caused by the recent Timelines UI redesign, and
reorder TimelineDataGrid's constructor arguments now that most
timeline views no longer have an associated tree outline.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView):

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WebInspector.ScriptDetailsTimelineView):
Reorder constructor parameters and omit optional treeOutline and
synchronizerDelegate arguments when they aren't needed.

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid):
Reorder constructor arguments so that treeOutline can be optional.
(WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
Nodes should be refreshed and re-inserted in the data grid without
requiring a grid synchronizer. If a synchronizer exists, re-insert
the tree element for the node. Since the syncronizer is disabled the
order of grid/tree operations doesn't matter.

5:40 PM Changeset in webkit [199633] by weinig@apple.com
  • 2 edits in trunk/Tools

More build fixing.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController share:]):

5:26 PM Changeset in webkit [199632] by weinig@apple.com
  • 2 edits in trunk/Tools

Another build fix.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController sharingServicePicker:sharingServicesForItems:proposedSharingServices:]):

5:19 PM Changeset in webkit [199631] by weinig@apple.com
  • 2 edits in trunk/Tools

Fix 32-bit build.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController share:]):
(-[BrowserWindowController fetch:]):
(-[BrowserWindowController sharingService:transitionImageForShareItem:contentRect:]):

5:10 PM Changeset in webkit [199630] by weinig@apple.com
  • 6 edits in trunk/Tools

Add support for NSSharingService to MiniBrowser, for no great reasons
https://bugs.webkit.org/show_bug.cgi?id=156658

Reviewed by Darin Adler.

  • MiniBrowser/mac/BrowserWindow.xib:
  • MiniBrowser/mac/BrowserWindowController.h:

Add the share button.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController windowDidLoad]):
Set the share button to fire it's actions on mouse down, as it is supposed to act like a menu.

(-[BrowserWindowController share:]):
Show the picker when the button is pressed.
(-[BrowserWindowController mainContentView]):
Add a new override to get the main content view of derived classes (either a WKWebView or the WebView).

(-[BrowserWindowController sharingServicePicker:sharingServicesForItems:proposedSharingServices:]):
(-[BrowserWindowController sharingServicePicker:delegateForSharingService:]):
(-[BrowserWindowController sharingServicePicker:didChooseSharingService:]):
(-[BrowserWindowController sharingService:sourceFrameOnScreenForShareItem:]):
(-[BrowserWindowController sharingService:transitionImageForShareItem:contentRect:]):
(-[BrowserWindowController sharingService:sourceWindowForShareItems:sharingContentScope:]):
Add delegate methods.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController mainContentView]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController mainContentView]):
Implement to return the web view.

3:52 PM Changeset in webkit [199629] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Turkish translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=156667

Patch by Muhammet Kara <muhammetk@gmail.com> on 2016-04-16
Rubber-stamped by Michael Catanzaro.

  • tr.po:
2:37 PM Changeset in webkit [199628] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac] Web Content service with a restricted entitlement may load arbitrary dylibs
https://bugs.webkit.org/show_bug.cgi?id=156668
<rdar://problem/25429784>

Reviewed by Anders Carlsson.

  • Configurations/WebContentService.xcconfig: Enable library validation when the Web Content service is given the XPC domain extension entitlement.
11:16 AM Changeset in webkit [199627] by ap@apple.com
  • 2 edits in trunk/Tools

Build fix.

Temporary workaround for rdar://problem/25754945.

  • LayoutTestRelay/LayoutTestRelay/CoreSimulatorSPI.h:
10:59 AM Changeset in webkit [199626] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Implemented moveZeroToDouble.
https://bugs.webkit.org/show_bug.cgi?id=155429

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-16
Reviewed by Darin Adler.

This function is required to fix compilation after r197687.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::moveZeroToDouble):

10:53 AM Changeset in webkit [199625] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

CSSCursorImageValue shouldn't mutate element during style resolution
https://bugs.webkit.org/show_bug.cgi?id=156659

Reviewed by Darin Adler.

CSSCursorImageValue::updateIfSVGCursorIsUsed may mutate the argument element.

This patch removes the code that caches cursor element and image to SVGElement rare data.
The whole things is basically unused. CSSCursorImageValue now maintains a weak map to
SVGCursorElements directly instead of indirectly via the using SVGElements.

  • css/CSSCursorImageValue.cpp:

(WebCore::CSSCursorImageValue::CSSCursorImageValue):
(WebCore::CSSCursorImageValue::~CSSCursorImageValue):
(WebCore::CSSCursorImageValue::customCSSText):
(WebCore::CSSCursorImageValue::updateCursorElement):

We no longer rely on SVGElement rare data so no need to test for SVGElement.

(WebCore::CSSCursorImageValue::cursorElementRemoved):
(WebCore::CSSCursorImageValue::cursorElementChanged):

Factor to a function.

(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::clearCachedImage):
(WebCore::CSSCursorImageValue::equals):
(WebCore::CSSCursorImageValue::removeReferencedElement): Deleted.

Don't track client elements anymore. Just track referenced SVGCursorElements.

  • css/CSSCursorImageValue.h:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueCursor):

No need to make style unique. Initialization is now done in updateSVGCursorElement.

  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::~SVGCursorElement):
(WebCore::SVGCursorElement::isSupportedAttribute):
(WebCore::SVGCursorElement::parseAttribute):
(WebCore::SVGCursorElement::addClient):
(WebCore::SVGCursorElement::removeClient):

Client is now an CSSCursorImageValue rather than SVGElement.

(WebCore::SVGCursorElement::svgAttributeChanged):

Instead of invalidating element style just invalidate the CSSCursorImageValue directly.

(WebCore::SVGCursorElement::addSubresourceAttributeURLs):
(WebCore::SVGCursorElement::removeReferencedElement): Deleted.

  • svg/SVGCursorElement.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::getBoundingBox):
(WebCore::SVGElement::correspondingElement):
(WebCore::SVGElement::setCursorElement): Deleted.
(WebCore::SVGElement::cursorElementRemoved): Deleted.
(WebCore::SVGElement::setCursorImageValue): Deleted.
(WebCore::SVGElement::cursorImageValueRemoved): Deleted.

SVGElements no longer need to know about their cursors.

  • svg/SVGElement.h:
  • svg/SVGElementRareData.h:

(WebCore::SVGElementRareData::instanceUpdatesBlocked):
(WebCore::SVGElementRareData::setInstanceUpdatesBlocked):
(WebCore::SVGElementRareData::correspondingElement):
(WebCore::SVGElementRareData::setCorrespondingElement):
(WebCore::SVGElementRareData::animatedSMILStyleProperties):
(WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
(WebCore::SVGElementRareData::cursorElement): Deleted.
(WebCore::SVGElementRareData::setCursorElement): Deleted.
(WebCore::SVGElementRareData::cursorImageValue): Deleted.
(WebCore::SVGElementRareData::setCursorImageValue): Deleted.

9:08 AM Changeset in webkit [199624] by Michael Catanzaro
  • 1 edit
    1 add in trunk/Source/WebCore/platform/gtk/po

Submit the first version of Finnish translation
https://bugs.webkit.org/show_bug.cgi?id=153406

Patch by Jiri Grönroos <jiri.gronroos+l10n@iki.fi> on 2016-04-16
Rubber-stamped by Michael Catanzaro. For FINLAN.

  • fi.po: Added. Note it's pretty incomplete as of yet.
8:54 AM Changeset in webkit [199623] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Bulgarian translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=156656

Patch by Zahari Yurukov <zahari.yurukov@gmail.com> on 2016-04-16
Rubber-stamped by Michael Catanzaro.

  • bg.po:

Apr 15, 2016:

10:26 PM Changeset in webkit [199622] by mitz@apple.com
  • 4 edits in trunk/Source/WebKit2

[Mac] WebContent, Networking and Databases services have i386 slices that are never used
https://bugs.webkit.org/show_bug.cgi?id=156654

Reviewed by Alexey Proskuryakov.

  • Configurations/BaseXPCService.xcconfig: Set VALID_ARCHS to ARCHS_STANDARD when not building only for the active architecture.
  • Configurations/PluginService.32.xcconfig: Removed now-redundant definitions.
  • Configurations/PluginService.64.xcconfig: Ditto.
9:52 PM Changeset in webkit [199621] by msaboff@apple.com
  • 4 edits in trunk/Source/WTF

iTunes crashing JavaScriptCore.dll
https://bugs.webkit.org/show_bug.cgi?id=156647

Reviewed by Geoffrey Garen.

If a thread was created without using the WTF thread apis and that thread uses
a JavaScript VM and that thread exits with the VM still around, JSC won't know
that the thread has exited. Currently, we use ThreadSpecificThreadExit() to
clean up any thread specific keys. Cleaning up these keys is how JSC is
notified of a thread exit. We only call ThreadSpecificThreadExit() from
wtfThreadEntryPoint() when the thread entry point function returns.
This mechanism was put in place for Windos because we layer the WTF::ThreadSpecific
functionality on top of TLS (Thread Local Storage), but TLS doesn't have
a thread exiting callback the way that pthread_create_key.

The fix is to change from using TLS to using FLS (Fiber Local Storage). Although
Windows allows multiple fibers per thread, WebKit is not designed to work with a
multiple fibers per thread. When ther is only one fiber per thread, FLS works just
like TLS, but it has the destroy callback.

I restructured the Windows version of WTF::ThreadSpecific to be almost the same
as the pthread version.

  • wtf/ThreadSpecific.h:

(WTF::threadSpecificKeyCreate):
(WTF::threadSpecificKeyDelete):
(WTF::threadSpecificSet):
(WTF::threadSpecificGet):
(WTF::ThreadSpecific<T>::ThreadSpecific):
(WTF::ThreadSpecific<T>::~ThreadSpecific):
(WTF::ThreadSpecific<T>::get):
(WTF::ThreadSpecific<T>::set):
(WTF::ThreadSpecific<T>::destroy):
Restructured to use FLS. Renamed TLS* to FLS*.

  • wtf/ThreadSpecificWin.cpp:

(WTF::flsKeyCount):
(WTF::flsKeys):
Renamed from tlsKey*() to flsKey*().

(WTF::destructorsList): Deleted.
(WTF::destructorsMutex): Deleted.
(WTF::PlatformThreadSpecificKey::PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::~PlatformThreadSpecificKey): Deleted.
(WTF::PlatformThreadSpecificKey::setValue): Deleted.
(WTF::PlatformThreadSpecificKey::value): Deleted.
(WTF::PlatformThreadSpecificKey::callDestructor): Deleted.
(WTF::tlsKeyCount): Deleted.
(WTF::tlsKeys): Deleted.
(WTF::threadSpecificKeyCreate): Deleted.
(WTF::threadSpecificKeyDelete): Deleted.
(WTF::threadSpecificSet): Deleted.
(WTF::threadSpecificGet): Deleted.
(WTF::ThreadSpecificThreadExit): Deleted.

  • wtf/ThreadingWin.cpp:

(WTF::wtfThreadEntryPoint): Eliminated call to ThreadSpecificThreadExit.

9:29 PM Changeset in webkit [199620] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

Need a way to specify a script name to show in the inspector for scripts injected via WKUserScript
<rdar://problem/25626662>
https://bugs.webkit.org/show_bug.cgi?id=156653

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:userContentWorld:]):

  • UIProcess/API/Cocoa/WKUserScriptPrivate.h:

Add a new initializer that takes an associate URL that is used to represent the user script.

7:25 PM Changeset in webkit [199619] by Darin Adler
  • 52 edits in trunk/Source

Reduce use of Deprecated::ScriptXXX classes
https://bugs.webkit.org/show_bug.cgi?id=156632

Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptCallArgumentHandler::appendArgument): Deleted version that takes a Deprecated::ScriptValue.
(Deprecated::ScriptFunctionCall::call): Changed to return a JSValue.

  • bindings/ScriptFunctionCall.h: Updated for the above.
  • bindings/ScriptValue.cpp:

(Inspector::jsToInspectorValue): Moved from Deprecated namespace to Inspector namespace. Later, we should
move this to another source file in the inspector directory.
(Inspector::toInspectorValue): Added.
(Deprecated::ScriptValue::toInspectorValue): Updated for change to underlying function.

  • bindings/ScriptValue.h: Update for the above.
  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::evaluateOnCallFrame): Changed arguments and return values from
Deprecated::ScriptValue to JSC::JSValue.
(Inspector::InjectedScript::functionDetails): Ditto.
(Inspector::InjectedScript::wrapCallFrames): Ditto.
(Inspector::InjectedScript::wrapObject): Ditto.
(Inspector::InjectedScript::wrapTable): Ditto.
(Inspector::InjectedScript::previewValue): Ditto.
(Inspector::InjectedScript::setExceptionValue): Ditto.
(Inspector::InjectedScript::findObjectById): Ditto.
(Inspector::InjectedScript::inspectObject): Ditto.

  • inspector/InjectedScript.h: Ditto.
  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::callFunctionWithEvalEnabled): Ditto.
(Inspector::InjectedScriptBase::makeCall): Ditto.

  • inspector/InjectedScriptBase.h: Ditto.
  • inspector/InjectedScriptModule.cpp:

(Inspector::InjectedScriptModule::ensureInjected): Ditto.

  • inspector/ScriptDebugListener.h: Ditto.
  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction): Ditto.
(Inspector::ScriptDebugServer::dispatchDidPause): Ditto.
(Inspector::ScriptDebugServer::dispatchBreakpointActionProbe): Ditto.
(Inspector::ScriptDebugServer::exceptionOrCaughtValue): Ditto.

  • inspector/ScriptDebugServer.h: Ditto.
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::buildExceptionPauseReason): Ditto.
(Inspector::InspectorDebuggerAgent::didPause): Ditto.
(Inspector::InspectorDebuggerAgent::breakpointActionProbe): Ditto.
(Inspector::InspectorDebuggerAgent::didContinue): Ditto.
(Inspector::InspectorDebuggerAgent::clearDebuggerBreakpointState): Ditto.

  • inspector/agents/InspectorDebuggerAgent.h: Ditto.
  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::getPreview): Ditto.
(Inspector::InspectorHeapAgent::getRemoteObject): Ditto.

Source/WebCore:

  • Modules/mediastream/SDPProcessor.cpp: Removed unneeded include.
  • bindings/js/JSCommandLineAPIHostCustom.cpp:

(WebCore::JSCommandLineAPIHost::inspectedObject): Use JSValue.

  • bindings/js/JSCustomEventCustom.cpp:

(WebCore::JSCustomEvent::detail): Ditto.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld): Ditto.
(WebCore::ScriptController::evaluate): Ditto.
(WebCore::ScriptController::executeScriptInWorld): Ditto.
(WebCore::ScriptController::executeScript): Ditto.
(WebCore::ScriptController::executeIfJavaScriptURL): Ditto.

  • bindings/js/ScriptController.h: Ditto.
  • bindings/js/ScriptGlobalObject.cpp: Removed unused overload of set,

and unused remove and folded handleException function into its one call site.
(WebCore::ScriptGlobalObject::set): Take references instead of pointers.
(WebCore::ScriptGlobalObject::get): Use JSObject instead of Deprecated::ScriptObject.

  • bindings/js/ScriptGlobalObject.h: Updated for the above.
  • dom/CustomEvent.cpp:

(WebCore::CustomEvent::initCustomEvent): Take JSValue and ExecState instead of
Deprecated::ScriptValue.
(WebCore::CustomEvent::trySerializeDetail): Take a reference instead of a pointer.
Also removed an unneeded null check.

  • dom/CustomEvent.h: Use JSValue.
  • dom/CustomEvent.idl: Updated for the above.
  • html/HTMLMediaElement.cpp: Remove unneeded include.
  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::InspectableObject::get): Take reference instead of
pointer and return JSValue.

  • inspector/CommandLineAPIHost.h: Updated for the above.
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::setDocument): Use "document" instead of "doc".
(WebCore::InspectorDOMAgent::setAttributesAsText): Omit redundant class name.
(WebCore::InspectorDOMAgent::focusNode): Ditto. Pass reference instead of pointer.
(WebCore::InspectorDOMAgent::undo): Ditto.
(WebCore::InspectorDOMAgent::redo): Ditto.
(WebCore::InspectorDOMAgent::nodeForObjectId): Stop using Deprecated::ScriptValue.
(WebCore::InspectorDOMAgent::resolveNode): Ditto.
(WebCore::InspectorDOMAgent::scriptValueAsNode): Removed unneeded isObject check,
which is already done by JSNode::toWrapped. Use JSValue.
(WebCore::InspectorDOMAgent::nodeAsScriptValue): Use JSValue.

  • inspector/InspectorDOMAgent.h: Updated for the above.
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::windowObjectCleared): Use references instead of
pointers and removed unneeded local.
(WebCore::InspectorFrontendClientLocal::evaluateAsBoolean): More of the same.

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::showContextMenu): Ditto.

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::breakpointActionProbe): Updated to take
reference instead of pointer and JSValue instead of ScriptValue.

  • inspector/InspectorTimelineAgent.h: Ditto.
  • inspector/PageConsoleAgent.cpp: Ditto.
  • inspector/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::breakpointActionLog): Ditto.

  • inspector/PageDebuggerAgent.h: Ditto.

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]): Use references instead
of pointers.
(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]): Updated
since return value is a JSValue.

  • WebView/WebView.mm:

(-[WebView aeDescByEvaluatingJavaScriptFromString:]): Ditto.

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::performRequest): Use JSValue.

  • WebFrame.cpp:

(WebFrame::stringByEvaluatingJavaScriptInScriptWorld): Ditto.

  • WebView.cpp:

(WebView::stringByEvaluatingJavaScriptFromString): Ditto.

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::performJavaScriptURLRequest): Use JSValue.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::windowObjectCleared): Use references.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScriptInMainFrame): Use JSValue.

6:47 PM Changeset in webkit [199618] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

6:26 PM Changeset in webkit [199617] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Some JIT/DFG operations need NativeCallFrameTracers
https://bugs.webkit.org/show_bug.cgi?id=156650

Reviewed by Michael Saboff.

Some of our operation functions did not have native call frame
tracers. This meant that we would crash occasionally on some
of our tests when they triggered a GC in one of the functions
without a tracer. In particular, this was exemplified by another
upcoming patch when calling operationSetFunctionName.

This patch does not add tests since this happens consistently in
the patch adding delete_by_id to the DFG.

  • dfg/DFGOperations.cpp:
  • jit/JITOperations.cpp:
6:02 PM Changeset in webkit [199616] by jonlee@apple.com
  • 2 edits in trunk/PerformanceTests

Animometer test could report a NaN
https://bugs.webkit.org/show_bug.cgi?id=156646

Reviewed by Darin Adler.
Provisionally reviewed by Said Abou-Hallawa.

  • Animometer/tests/resources/main.js:

(didFinishInterval): The ramp controller has a first phase where it ramps up the complexity and
reacts based on how well the system handles the load. The assumption was that it would handle at least
1 particle easily. That is not always the case. As a result, an interpolation calculation could
end up setting an upper bound of NaN.

This occurs because we never get out of the first tier, so this._lastTierComplexity is undefined.
Now that we guarantee a minimum complexity of 1, modify the conditional to check for this._lastTierComplexity
before interpolating the upper bound of the first ramp. In the case where the system struggles with
1 particle, set it to currentComplexity.

5:01 PM Changeset in webkit [199615] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION( r199603): Pandora crashes WebKit in WebPlaybackSessionManager::removeClientForContext
https://bugs.webkit.org/show_bug.cgi?id=156648
<rdar://problem/25758117>

Reviewed by Beth Dakin.

Mistakenly checked in a reversed condition check, which causes a subsequent assert and crash.

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):

3:37 PM Changeset in webkit [199614] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.127

New Tag.

3:24 PM Changeset in webkit [199613] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

[Font Loading] Test promise gets rejected when unknown format used
https://bugs.webkit.org/show_bug.cgi?id=156643

Reviewed by Simon Fraser.

When all the sources have an unknown format, the promise should be rejected.

  • fast/text/font-face-javascript-expected.txt:
  • fast/text/font-face-javascript.html:
3:23 PM Changeset in webkit [199612] by dbates@webkit.org
  • 30 edits
    1 copy
    55 adds in trunk

CSP: Ignore paths in CSP matching after redirects
https://bugs.webkit.org/show_bug.cgi?id=153154
<rdar://problem/24383215>

Reviewed by Brent Fulgham.

Source/WebCore:

For sub-resources that redirect, match the URL that is the result of the redirect against
the source expressions in Content Security Policy ignoring any paths in those source
expressions as per section Paths and Redirects of the Content Security Policy Level 2 spec.,
<https://w3c.github.io/webappsec-csp/2/> (Editor's Draft, 29 August 2015).

Tests: http/tests/security/contentSecurityPolicy/audio-redirect-allowed2.html

http/tests/security/contentSecurityPolicy/embed-redirect-allowed.html
http/tests/security/contentSecurityPolicy/embed-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/embed-redirect-blocked.html
http/tests/security/contentSecurityPolicy/embed-redirect-blocked2.html
http/tests/security/contentSecurityPolicy/embed-redirect-blocked3.html
http/tests/security/contentSecurityPolicy/font-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed.html
http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src.html
http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src2.html
http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src.html
http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src2.html
http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-child-src.html
http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-frame-src.html
http/tests/security/contentSecurityPolicy/image-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/object-redirect-allowed.html
http/tests/security/contentSecurityPolicy/object-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/object-redirect-blocked.html
http/tests/security/contentSecurityPolicy/object-redirect-blocked2.html
http/tests/security/contentSecurityPolicy/object-redirect-blocked3.html
http/tests/security/contentSecurityPolicy/script-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/stylesheet-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/svg-font-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/svg-image-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/track-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/video-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest): Define a local variable didReceiveRedirectResponse as
to whether this request follows from having received a redirect response from the server. Pass this
information to FrameLoader::checkIfFormActionAllowedByCSP() and PolicyChecker::checkNavigationPolicy()
for its consideration.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived): Pass whether we have a non-null redirect
response (i.e. received a redirect response from the server) to DocumentThreadableLoader::isAllowedByContentSecurityPolicy()
for its consideration.
(WebCore::DocumentThreadableLoader::loadRequest): Pass whether we performed a redirect to
DocumentThreadableLoader::isAllowedByContentSecurityPolicy() for its consideration.
(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy): Modified to take a boolean
argument as to whether a redirect was performed. We pass this information to the appropriate
ContentSecurityPolicy method.

  • loader/DocumentThreadableLoader.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkIfFormActionAllowedByCSP): Modified to take a boolean argument as to whether
a redirect response was received and passes this information to ContentSecurityPolicy::allowFormAction()
for its consideration.
(WebCore::FrameLoader::loadURL): Modified to tell PolicyChecker::checkNavigationPolicy() that the navigation
is not in response to having received a redirect response from the server.
(WebCore::FrameLoader::loadWithDocumentLoader): Ditto.

  • loader/FrameLoader.h:
  • loader/PolicyChecker.cpp:

(WebCore::isAllowedByContentSecurityPolicy): Modified to take a boolean argument as to whether
a redirect response was received and passes this information to the appropriate ContentSecurityPolicy member
function for consideration.
(WebCore::PolicyChecker::checkNavigationPolicy): Modified to take a boolean argument as to whether a redirect
response was received and passes this information through to WebCore::isAllowedByContentSecurityPolicy().

  • loader/PolicyChecker.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal): Modified to tell CachedResourceLoader::canRequest() that
the request is in response to having received a redirect response from the server.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequest): Modified to take a boolean argument as to whether a redirect
response was received and passes this information through to the appropriate ContentSecurityPolicy member
function for consideration.

  • loader/cache/CachedResourceLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowScriptFromSource): Modified to take an argument as to whether a
redirect response was received and passes this information through to ContentSecurityPolicyDirectiveList.
(WebCore::ContentSecurityPolicy::allowObjectFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildContextFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowImageFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowStyleFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFontFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowMediaFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowConnectToSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFormAction): Ditto.

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::checkSource):
(WebCore::checkFrameAncestors):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForChildContext): Modified to take an argument
as to whether a redirect response was received and passes this information through to the CSP directive.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForConnectSource): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFont): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFormAction): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFrame): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForImage): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForMedia): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForObjectSource): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScript): Ditto.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyle): Ditto.

  • page/csp/ContentSecurityPolicyDirectiveList.h:
  • page/csp/ContentSecurityPolicySource.cpp:

(WebCore::ContentSecurityPolicySource::matches): Modified to take an argument as to whether a redirect response
was received. When the specified URL follows from having received a redirect response then ignore the path
component of the source expression when checking for a match. Otherwise, consider the path component of the
source expression when performing the match.

  • page/csp/ContentSecurityPolicySource.h:
  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::matches): Modified to take an argument as to whether a redirect
response was received and pass this information through to ContentSecurityPolicySource::matches().

  • page/csp/ContentSecurityPolicySourceList.h:
  • page/csp/ContentSecurityPolicySourceListDirective.cpp:

(WebCore::ContentSecurityPolicySourceListDirective::allows): Modified to take an argument as to whether a
redirect response was received and pass this information through to ContentSecurityPolicySourceList::matches().

  • page/csp/ContentSecurityPolicySourceListDirective.h:

LayoutTests:

Add tests to ensure that we ignore the path component of a source expression when matching
a sub-resource URL that is the result of a redirect.

  • TestExpectations: Unskip test http/tests/security/contentSecurityPolicy/redirect-does-not-match-paths.html as it now passes.
  • http/tests/security/contentSecurityPolicy/audio-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/audio-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked2.html: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked3-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/embed-redirect-blocked3.html: Added.
  • http/tests/security/contentSecurityPolicy/font-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/font-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/form-action-src-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src2.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src2.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-child-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-child-src.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-frame-src-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-frame-src.html: Added.
  • http/tests/security/contentSecurityPolicy/image-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/image-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked2.html: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked3-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/object-redirect-blocked3.html: Added.
  • http/tests/security/contentSecurityPolicy/redirect-does-not-match-paths-expected.txt: Update expected result now that we pass this test.
  • http/tests/security/contentSecurityPolicy/resources/alert-pass.html:
  • http/tests/security/contentSecurityPolicy/resources/redirect.pl: For resourceType == "image", load image http://127.0.0.1:8000/security/resources/abe.png

instead of http://127.0.0.1:8000/resources/square20.jpg as the latter does not exist.

  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-allowed.php:
  • http/tests/security/contentSecurityPolicy/script-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/script-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/track-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/track-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/video-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/video-redirect-allowed2.html: Added.
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2.html: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/xsl-redirect-allowed.html.
  • platform/ios-simulator/TestExpectations: Skip tests {embed, object}-redirect-blocked{2, 3}.html as they make

use of a plug-in and plug-ins are not supported on iOS.

  • platform/wk2/TestExpectations: Skip tests {embed, object}-redirect-blocked3.html on WebKit2 as they fail

because of <https://bugs.webkit.org/show_bug.cgi?id=156612>.

2:28 PM Changeset in webkit [199611] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[CSS Font Loading] FontFace's promise may never be resolved/rejected if Content Security Policy blocks all the URLs
https://bugs.webkit.org/show_bug.cgi?id=156605

Reviewed by Daniel Bates.

Source/WebCore:

If all the fonts are blocked, we will create a FontFace with no FontFaceSources.
Loading such a FontFace should reject the promise.

Test: fast/text/font-loading-csp-block-all.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::pump):

LayoutTests:

  • fast/text/font-loading-csp-block-all-expected.txt: Added.
  • fast/text/font-loading-csp-block-all.html: Added.
2:09 PM Changeset in webkit [199610] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

It didn't help (Requested by ap_ on #webkit).

Reverted changeset:

"Build fix."
http://trac.webkit.org/changeset/199600

1:57 PM Changeset in webkit [199609] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Another unreviewed build fix.

  • platform/network/curl/MultipartHandle.cpp:

(WebCore::MultipartHandle::parseHeadersIfPossible):

1:55 PM Changeset in webkit [199608] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed build fix.,

  • platform/network/curl/MultipartHandle.cpp:

(WebCore::MultipartHandle::parseHeadersIfPossible): Correct for new method signature.

12:59 PM Changeset in webkit [199607] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

ASSERT when loading github.com
https://bugs.webkit.org/show_bug.cgi?id=156604
<rdar://problem/19890634>

Reviewed by Darin Adler.

Source/WebCore:

HTMLFormControlElement::m_isValid is a cache of the results of the valid() function.
When cloning the node, we were preserving each individual item, but not the state
of the cache. Therefore, the cache and the attributes didn't agree with each other.

Test: fast/forms/checkValidity-cloneNode-crash.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement):

LayoutTests:

  • fast/forms/checkValidity-cloneNode-crash-expected.txt: Added.
  • fast/forms/checkValidity-cloneNode-crash.html: Added.
12:55 PM Changeset in webkit [199606] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r199598. rdar://problem/25641321

12:49 PM Changeset in webkit [199605] by Brent Fulgham
  • 8 edits
    5 moves
    5 adds
    5 deletes in trunk

Remove support for X-Frame-Options in <meta>
https://bugs.webkit.org/show_bug.cgi?id=156625
<rdar://problem/25748714>

Reviewed by Darin Adler.

Source/WebCore:

Follow RFC7034 (Section 4), which recommends that 'X-Frame-Options' be ignored when delivered as part of
a '<meta http-equiv="...">' tag. This brings us in line with Firefox, Edge, and Blink.

Tests: http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body.html

http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow.html
http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny.html
http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag.html
http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored.html

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Log error message instead of blocking the load.

LayoutTests:

Revise tests to match our desired behavior based on RFC 7034 (Section 4).

  • http/tests/security/XFrameOptions/resources/x-frame-options-deny-meta-tag-subframe-in-body.html:
  • http/tests/security/XFrameOptions/resources/x-frame-options-deny-meta-tag-subframe-parent-same-origin-deny.html:
  • http/tests/security/XFrameOptions/resources/x-frame-options-deny-meta-tag-subframe.html:
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html: Removed.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt: Added.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html.
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag.html: Copied from LayoutTests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-expected.txt: Removed.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored-expected.txt: Added.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored.html: Copied from LayoutTests/http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options.html.
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options.html: Removed.
  • inspector/console/x-frame-options-message-expected.txt: Rebaselined.
  • platform/win/TestExpectations:
12:20 PM Changeset in webkit [199604] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark inspector/formatting/formatting-javascript.html as flaky on mac
https://bugs.webkit.org/show_bug.cgi?id=156634

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:06 PM Changeset in webkit [199603] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Audio elements should be able to have a controls manager.
https://bugs.webkit.org/show_bug.cgi?id=156630

Reviewed by Beth Dakin.

Now that there is no longer a architectural restriction about what kind of media elements
can be used with WebPlaybackSessionManager, allow audio elements to create a controls
manager.

Drive-by fix: clear the controls manager when destroying the media player due to entering
the page cache, and when destroying the media element.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager):

12:01 PM Changeset in webkit [199602] by commit-queue@webkit.org
  • 17 edits
    4 adds in trunk

Web Inspector: sourceMappingURL not used when sourceURL is set
https://bugs.webkit.org/show_bug.cgi?id=156021
<rdar://problem/25438417>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-15
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Clean up Debugger.sourceParsed to separately include:

  • url ("resource URL", "source url" in JSC APIs)
  • sourceURL - # sourceURL directive

By always having the resource URL the Web Inspector frontend
can better match this Script to a Resource of the same URL,
and decide to use the sourceURL if it is available when
appropriate.

  • inspector/protocol/Debugger.json:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::InspectorDebuggerAgent::didParseSource):
Send the new sourceParsed parameters.

Source/WebInspectorUI:

Previously Debugger.sourceParsed only providing the sourceURL, and
wiping out the resourceURL, meant that a Script from a Resource that
set a sourceURL directive would fail to be associated with its Resource.

This would result in duplicated tree elements in the Resources Sidebar,
one for the Resource, and one for the Script. With the Script getting
ultimately getting the SourceMap resources. However, since the frontend
prefers Resources over Scripts when possible, an error that generated
from the script would point to a location in the Resource, not following
source maps.

By always providing the resource URL in Debugger.sourceParsed, a Script
can better be associated with its Resource. The result is now a single
shared tree element in the Resources Sidebar, and the Resource getting
the SourceMap resources. Now the script error goes through the Resource
to its SourceMap resources as we would expect.

  • UserInterface/Protocol/DebuggerObserver.js:

(WebInspector.DebuggerObserver):
(WebInspector.DebuggerObserver.prototype.scriptParsed):
We now have to handle two different signatures of scriptParsed. One
for legacy, and one for non-legacy. Cache that value early on, since
scriptParsed happens a lot.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackend.Agent.prototype.hasEventParameter):
Runtime check a protocol event to see if it has a parameter. This
is used to check if Debugger.sourceParsed is legacy or not based
on if it has the legacy "hasSourceURL" parameter.

  • UserInterface/Models/Script.js:

(WebInspector.Script):
(WebInspector.Script.prototype.get sourceURL):
Treat sourceURL and url separately.

(WebInspector.Script.prototype.get displayName):
Handle both the url and sourceURL in displayName.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
(WebInspector.DebuggerManager.prototype.scriptDidParse):

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
Update code that checks the sourceURL to explicitly use sourceURL.

  • UserInterface/Controllers/SourceMapManager.js:

(WebInspector.SourceMapManager.prototype.downloadSourceMap):
For legacy backends, or in case we get a resource that has an incomplete
baseURL, attempt to get an absolute URL based on the main resource.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._addScript):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
Ignore scripts without a url or sourceURL.

LayoutTests:

  • inspector/debugger/scriptParsed.html:
  • inspector/debugger/search-scripts.html:
  • inspector/debugger/setBreakpointByUrl-sourceURL.html:
  • inspector/debugger/sourceURLs.html:

Update tests that need to handle sourceURL separately.

  • inspector/model/resources/relationship-named.js: Added.
  • inspector/model/resources/relationship-normal.js: Added.
  • inspector/model/script-resource-relationship-expected.txt: Added.
  • inspector/model/script-resource-relationship.html: Added.

Tests for Script and Resource relationships.

11:56 AM Changeset in webkit [199601] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.28.0.1/Source

Versioning.

11:33 AM Changeset in webkit [199600] by ap@apple.com
  • 2 edits in trunk/Tools

Build fix.

  • LayoutTestRelay/LayoutTestRelay/main.m: Allow some deprecated methods.
11:26 AM Changeset in webkit [199599] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Mark NetworkLoad as FastAllocated
https://bugs.webkit.org/show_bug.cgi?id=156628

Reviewed by Alex Christensen.

Mark NetworkLoad as FastAllocated for performance.

  • NetworkProcess/NetworkLoad.h:
11:24 AM Changeset in webkit [199598] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Calling SVGAnimatedPropertyTearOff::animationEnded() will crash if the SVG property is not animating
https://bugs.webkit.org/show_bug.cgi?id=156549

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-04-15
Reviewed by Darin Adler.

A speculative fix for a crash which may happen when calling animationEnded()
of any SVGAnimatedProperty while it is not animating.

  • svg/SVGAnimatedTypeAnimator.h:

(WebCore::SVGAnimatedTypeAnimator::executeAction):

11:08 AM Changeset in webkit [199597] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for iOS simulator. Assert the correct variable.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):

10:59 AM Changeset in webkit [199596] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/text/font-face-javascript.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=156631

Unreviewed test gardening.

10:53 AM Changeset in webkit [199595] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.28.0.1

New tag.

10:50 AM Changeset in webkit [199594] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=156629

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:50 AM Changeset in webkit [199593] by jer.noble@apple.com
  • 29 edits
    3 copies
    13 adds in trunk/Source

Allow WebVideoFullscreenManager and Proxy to be used by audio elements.
https://bugs.webkit.org/show_bug.cgi?id=156564

Reviewed by Beth Dakin.

Source/WebCore:

No new tests; this refactors existing functionality into new classes.

Tease apart the various WebVideoFullscreen{Interface,Model}{AVKit,Mac,VideoElement} into new
WebPlaybackSession… classes dealing exclusively with playback state and commands, leaving
fullscreen state and commands in the WebVideoFullscreen… classes. Specifically, create the
following new classes:

  • WebPlaybackSessionInterface (copied from WebVideoFullscreenInterface)
  • WebPlaybackSessionModelMediaElement (copied from WebVideoFullscreenModelMediaElement)
  • WebPlaybackSessionModel (copied from WebVideoFullscreenModel)
  • WebPlaybackSessionInterfaceAVKit (copied from WebVideoFullscreenInterfaceAVKit)
  • WebPlaybackSessionInterfaceMac (copied from WebVideoFullscreenInterfaceMac)

WebVideoFullscreenInterface and WebVideoFullscreenModel now inherit from
WebPlaybackSessionInterface and WebPlaybackSessionModel, respectively. The concrete
WebVideoFullscreen… subclasses each take their respective WebPlaybackSession… subclasses and
fulfill their WebPlaybackSession interfaces through composition.

As part of this big tease-apart, the WebAVPlayerController class needs to be exposed in a
header (as it's accessed by two different classes now), so that class is moved into its own
implementation and header files.

The one case where a change in a WebPlaybackSession… class needs to be reflected in a
WebVideoFullscreen… class is in WebPlaybackSessionInterfaceAVKit, where
WebVideoFullscreenInterfaceAVKit needs to be notified when external playback becomes dis/en-
abled, so a new WebPlaybackSessionInterfaceAVKitClient interface has been added to allow the
WebPlaybackSession… to notify the WebVideoFullscreen….

The responsibility for the "controls manager" has moved from the WebVideoFullscreen… classes
to the WebPlaybackSession… classes, so the ChromeClient interface for creating and destroying
those controls is similarly renamed from setUpVideoControlsManager() to
setUpPlaybackControlsManager().

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updatePlayState):

  • page/ChromeClient.h:
  • platform/cocoa/WebPlaybackSessionInterface.h: Copied from Source/WebCore/platform/cocoa/WebVideoFullscreenInterface.h.

(WebCore::WebPlaybackSessionInterface::~WebPlaybackSessionInterface):

  • platform/cocoa/WebPlaybackSessionModel.h: Added.

(WebCore::WebPlaybackSessionModel::~WebPlaybackSessionModel):

  • platform/cocoa/WebPlaybackSessionModelMediaElement.h: Added.

(WebCore::WebPlaybackSessionModelMediaElement::create):
(WebCore::WebPlaybackSessionModelMediaElement::mediaElement):

  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm: Added.

(WebPlaybackSessionModelMediaElement::WebPlaybackSessionModelMediaElement):
(WebPlaybackSessionModelMediaElement::~WebPlaybackSessionModelMediaElement):
(WebPlaybackSessionModelMediaElement::setWebPlaybackSessionInterface):
(WebPlaybackSessionModelMediaElement::setMediaElement):
(WebPlaybackSessionModelMediaElement::handleEvent):
(WebPlaybackSessionModelMediaElement::updateForEventName):
(WebPlaybackSessionModelMediaElement::play):
(WebPlaybackSessionModelMediaElement::pause):
(WebPlaybackSessionModelMediaElement::togglePlayState):
(WebPlaybackSessionModelMediaElement::beginScrubbing):
(WebPlaybackSessionModelMediaElement::endScrubbing):
(WebPlaybackSessionModelMediaElement::seekToTime):
(WebPlaybackSessionModelMediaElement::fastSeek):
(WebPlaybackSessionModelMediaElement::beginScanningForward):
(WebPlaybackSessionModelMediaElement::beginScanningBackward):
(WebPlaybackSessionModelMediaElement::endScanning):
(WebPlaybackSessionModelMediaElement::selectAudioMediaOption):
(WebPlaybackSessionModelMediaElement::selectLegibleMediaOption):
(WebPlaybackSessionModelMediaElement::updateLegibleOptions):
(WebPlaybackSessionModelMediaElement::observedEventNames):
(WebPlaybackSessionModelMediaElement::eventNameAll):

  • platform/cocoa/WebPlaybackSessionModelVideoElement.cpp: Copied from Source/WebCore/platform/cocoa/WebVideoFullscreenModelVideoElement.mm.

(WebPlaybackSessionModelVideoElement::WebPlaybackSessionModelVideoElement):
(WebPlaybackSessionModelVideoElement::~WebPlaybackSessionModelVideoElement):
(WebPlaybackSessionModelVideoElement::setWebVideoFullscreenInterface):
(WebPlaybackSessionModelVideoElement::setVideoElement):
(WebPlaybackSessionModelVideoElement::handleEvent):
(WebPlaybackSessionModelVideoElement::updateForEventName):
(WebPlaybackSessionModelVideoElement::play):
(WebPlaybackSessionModelVideoElement::pause):
(WebPlaybackSessionModelVideoElement::togglePlayState):
(WebPlaybackSessionModelVideoElement::beginScrubbing):
(WebPlaybackSessionModelVideoElement::endScrubbing):
(WebPlaybackSessionModelVideoElement::seekToTime):
(WebPlaybackSessionModelVideoElement::fastSeek):
(WebPlaybackSessionModelVideoElement::beginScanningForward):
(WebPlaybackSessionModelVideoElement::beginScanningBackward):
(WebPlaybackSessionModelVideoElement::endScanning):
(WebPlaybackSessionModelVideoElement::selectAudioMediaOption):
(WebPlaybackSessionModelVideoElement::selectLegibleMediaOption):
(WebPlaybackSessionModelVideoElement::updateLegibleOptions):
(WebPlaybackSessionModelVideoElement::observedEventNames):
(WebPlaybackSessionModelVideoElement::eventNameAll):

  • platform/cocoa/WebVideoFullscreenInterface.h:
  • platform/cocoa/WebVideoFullscreenModel.h:

(WebCore::WebVideoFullscreenModel::~WebVideoFullscreenModel): Deleted.

  • platform/cocoa/WebVideoFullscreenModelVideoElement.h:

(WebCore::WebVideoFullscreenModelVideoElement::create):

  • platform/cocoa/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::WebVideoFullscreenModelVideoElement):
(WebVideoFullscreenModelVideoElement::setWebVideoFullscreenInterface):
(WebVideoFullscreenModelVideoElement::setVideoElement):
(WebVideoFullscreenModelVideoElement::play):
(WebVideoFullscreenModelVideoElement::pause):
(WebVideoFullscreenModelVideoElement::togglePlayState):
(WebVideoFullscreenModelVideoElement::beginScrubbing):
(WebVideoFullscreenModelVideoElement::endScrubbing):
(WebVideoFullscreenModelVideoElement::seekToTime):
(WebVideoFullscreenModelVideoElement::fastSeek):
(WebVideoFullscreenModelVideoElement::beginScanningForward):
(WebVideoFullscreenModelVideoElement::beginScanningBackward):
(WebVideoFullscreenModelVideoElement::endScanning):
(WebVideoFullscreenModelVideoElement::selectAudioMediaOption):
(WebVideoFullscreenModelVideoElement::selectLegibleMediaOption):
(WebVideoFullscreenModelVideoElement::handleEvent): Deleted.
(WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): Deleted.
(WebVideoFullscreenModelVideoElement::setVideoLayerFrame): Deleted.
(WebVideoFullscreenModelVideoElement::setVideoLayerGravity): Deleted.
(WebVideoFullscreenModelVideoElement::observedEventNames): Deleted.
(WebVideoFullscreenModelVideoElement::eventNameAll): Deleted.
(WebVideoFullscreenModelVideoElement::fullscreenModeChanged): Deleted.
(WebVideoFullscreenModelVideoElement::isVisible): Deleted.

  • platform/ios/WebAVPlayerController.h: Added.
  • platform/ios/WebAVPlayerController.mm: Added.

(-[WebAVPlayerController dealloc]):
(-[WebAVPlayerController resetState]):
(-[WebAVPlayerController player]):
(-[WebAVPlayerController forwardingTargetForSelector:]):
(-[WebAVPlayerController play:]):
(-[WebAVPlayerController pause:]):
(-[WebAVPlayerController togglePlayback:]):
(-[WebAVPlayerController togglePlaybackEvenWhenInBackground:]):
(-[WebAVPlayerController isPlaying]):
(-[WebAVPlayerController setPlaying:]):
(+[WebAVPlayerController keyPathsForValuesAffectingPlaying]):
(-[WebAVPlayerController beginScrubbing:]):
(-[WebAVPlayerController endScrubbing:]):
(-[WebAVPlayerController seekToTime:]):
(-[WebAVPlayerController currentTimeWithinEndTimes]):
(-[WebAVPlayerController setCurrentTimeWithinEndTimes:]):
(+[WebAVPlayerController keyPathsForValuesAffectingCurrentTimeWithinEndTimes]):
(-[WebAVPlayerController hasLiveStreamingContent]):
(+[WebAVPlayerController keyPathsForValuesAffectingHasLiveStreamingContent]):
(-[WebAVPlayerController skipBackwardThirtySeconds:]):
(-[WebAVPlayerController gotoEndOfSeekableRanges:]):
(-[WebAVPlayerController canScanForward]):
(+[WebAVPlayerController keyPathsForValuesAffectingCanScanForward]):
(-[WebAVPlayerController beginScanningForward:]):
(-[WebAVPlayerController endScanningForward:]):
(-[WebAVPlayerController beginScanningBackward:]):
(-[WebAVPlayerController endScanningBackward:]):
(-[WebAVPlayerController canSeekToBeginning]):
(+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToBeginning]):
(-[WebAVPlayerController seekToBeginning:]):
(-[WebAVPlayerController seekChapterBackward:]):
(-[WebAVPlayerController canSeekToEnd]):
(+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToEnd]):
(-[WebAVPlayerController seekToEnd:]):
(-[WebAVPlayerController seekChapterForward:]):
(-[WebAVPlayerController hasMediaSelectionOptions]):
(+[WebAVPlayerController keyPathsForValuesAffectingHasMediaSelectionOptions]):
(-[WebAVPlayerController hasAudioMediaSelectionOptions]):
(+[WebAVPlayerController keyPathsForValuesAffectingHasAudioMediaSelectionOptions]):
(-[WebAVPlayerController hasLegibleMediaSelectionOptions]):
(+[WebAVPlayerController keyPathsForValuesAffectingHasLegibleMediaSelectionOptions]):
(-[WebAVPlayerController currentAudioMediaSelectionOption]):
(-[WebAVPlayerController setCurrentAudioMediaSelectionOption:]):
(-[WebAVPlayerController currentLegibleMediaSelectionOption]):
(-[WebAVPlayerController setCurrentLegibleMediaSelectionOption:]):
(-[WebAVPlayerController isPlayingOnExternalScreen]):
(+[WebAVPlayerController keyPathsForValuesAffectingPlayingOnExternalScreen]):
(-[WebAVPlayerController isPictureInPictureInterrupted]):
(-[WebAVPlayerController setPictureInPictureInterrupted:]):

  • platform/ios/WebPlaybackSessionInterfaceAVKit.h: Added.

(WebCore::WebPlaybackSessionInterfaceAVKitClient::~WebPlaybackSessionInterfaceAVKitClient):

  • platform/ios/WebPlaybackSessionInterfaceAVKit.mm: Added.

(WebCore::WebPlaybackSessionInterfaceAVKit::WebPlaybackSessionInterfaceAVKit):
(WebCore::WebPlaybackSessionInterfaceAVKit::~WebPlaybackSessionInterfaceAVKit):
(WebCore::WebPlaybackSessionInterfaceAVKit::resetMediaState):
(WebCore::WebPlaybackSessionInterfaceAVKit::setWebPlaybackSessionModel):
(WebCore::WebPlaybackSessionInterfaceAVKit::setDuration):
(WebCore::WebPlaybackSessionInterfaceAVKit::setCurrentTime):
(WebCore::WebPlaybackSessionInterfaceAVKit::setBufferedTime):
(WebCore::WebPlaybackSessionInterfaceAVKit::setRate):
(WebCore::WebPlaybackSessionInterfaceAVKit::setSeekableRanges):
(WebCore::WebPlaybackSessionInterfaceAVKit::setCanPlayFastReverse):
(WebCore::mediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceAVKit::setAudioMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceAVKit::setLegibleMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceAVKit::setExternalPlayback):
(WebCore::WebPlaybackSessionInterfaceAVKit::setWirelessVideoPlaybackDisabled):
(WebCore::WebPlaybackSessionInterfaceAVKit::wirelessVideoPlaybackDisabled):
(WebCore::WebPlaybackSessionInterfaceAVKit::invalidate):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setUpFullscreen):

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

(-[WebAVPlayerViewControllerDelegate fullscreenInterface]):
(-[WebAVPlayerViewControllerDelegate setFullscreenInterface:]):
(-[WebAVPlayerLayer fullscreenInterface]):
(-[WebAVPlayerLayer setFullscreenInterface:]):
(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):
(WebVideoFullscreenInterfaceAVKit::create):
(WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit):
(WebVideoFullscreenInterfaceAVKit::~WebVideoFullscreenInterfaceAVKit):
(WebVideoFullscreenInterfaceAVKit::playerController):
(WebVideoFullscreenInterfaceAVKit::resetMediaState):
(WebVideoFullscreenInterfaceAVKit::setDuration):
(WebVideoFullscreenInterfaceAVKit::setCurrentTime):
(WebVideoFullscreenInterfaceAVKit::setBufferedTime):
(WebVideoFullscreenInterfaceAVKit::setRate):
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions):
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges):
(WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse):
(WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions):
(WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions):
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback):
(WebVideoFullscreenInterfaceAVKit::externalPlaybackEnabledChanged):
(WebVideoFullscreenInterfaceAVKit::setWirelessVideoPlaybackDisabled):
(WebVideoFullscreenInterfaceAVKit::wirelessVideoPlaybackDisabled):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreen):
(WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture):
(-[WebAVPlayerViewControllerDelegate playerViewControllerWillStartPictureInPicture:]): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewControllerDidStartPictureInPicture:]): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewControllerFailedToStartPictureInPicture:withError:]): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewControllerWillStopPictureInPicture:]): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewControllerDidStopPictureInPicture:]): Deleted.
(convertToExitFullScreenReason): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewController:shouldExitFullScreenWithReason:]): Deleted.
(-[WebAVPlayerViewControllerDelegate playerViewController:restoreUserInterfaceForPictureInPictureStopWithCompletionHandler:]): Deleted.
(-[WebAVPlayerLayer init]): Deleted.
(-[WebAVPlayerLayer dealloc]): Deleted.
(-[WebAVPlayerLayer videoGravity]): Deleted.
(-[WebAVPlayerLayer videoRect]): Deleted.
(+[WebAVPlayerLayer keyPathsForValuesAffectingVideoRect]): Deleted.
(WebAVPictureInPicturePlayerLayerView_layerClass): Deleted.
(getWebAVPictureInPicturePlayerLayerViewClass): Deleted.
(WebAVPlayerLayerView_layerClass): Deleted.
(WebAVPlayerLayerView_playerController): Deleted.
(WebAVPlayerLayerView_setPlayerController): Deleted.
(WebAVPlayerLayerView_videoView): Deleted.
(WebAVPlayerLayerView_setVideoView): Deleted.
(WebAVPlayerLayerView_startRoutingVideoToPictureInPicturePlayerLayerView): Deleted.
(WebAVPlayerLayerView_stopRoutingVideoToPictureInPicturePlayerLayerView): Deleted.
(WebAVPlayerLayerView_pictureInPicturePlayerLayerView): Deleted.
(WebAVPlayerLayerView_dealloc): Deleted.
(getWebAVPlayerLayerViewClass): Deleted.
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): Deleted.
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenChangeObserver): Deleted.
(WebVideoFullscreenInterfaceAVKit::applicationDidBecomeActive): Deleted.
(WebVideoFullscreenInterfaceAVKit::enterFullscreen): Deleted.
(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard): Deleted.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen): Deleted.
(WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture): Deleted.
(WebVideoFullscreenInterfaceAVKit::failedToStartPictureInPicture): Deleted.
(WebVideoFullscreenInterfaceAVKit::willStopPictureInPicture): Deleted.
(WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture): Deleted.
(WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler): Deleted.
(WebVideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): Deleted.
(WebVideoFullscreenInterfaceAVKit::watchdogTimerFired): Deleted.
(WebVideoFullscreenInterfaceAVKit::setMode): Deleted.
(WebVideoFullscreenInterfaceAVKit::clearMode): Deleted.
(WebCore::supportsPictureInPicture): Deleted.

  • platform/mac/WebPlaybackSessionInterfaceMac.h: Added.
  • platform/mac/WebPlaybackSessionInterfaceMac.mm: Copied from Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.mm.

(-[WebAVMediaSelectionOptionMac localizedDisplayName]):
(-[WebAVMediaSelectionOptionMac setLocalizedDisplayName:]):
(-[WebPlaybackControlsManager initWithWebPlaybackSessionInterfaceMac:]):
(-[WebPlaybackControlsManager timing]):
(-[WebPlaybackControlsManager setTiming:]):
(-[WebPlaybackControlsManager seekableTimeRanges]):
(-[WebPlaybackControlsManager setSeekableTimeRanges:]):
(-[WebPlaybackControlsManager isSeeking]):
(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebPlaybackControlsManager audioMediaSelectionOptions]):
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:]):
(-[WebPlaybackControlsManager currentAudioMediaSelectionOption]):
(-[WebPlaybackControlsManager setCurrentAudioMediaSelectionOption:]):
(-[WebPlaybackControlsManager legibleMediaSelectionOptions]):
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:]):
(-[WebPlaybackControlsManager currentLegibleMediaSelectionOption]):
(-[WebPlaybackControlsManager setCurrentLegibleMediaSelectionOption:]):
(-[WebPlaybackControlsManager cancelThumbnailAndAudioAmplitudeSampleGeneration]):
(WebCore::WebPlaybackSessionInterfaceMac::~WebPlaybackSessionInterfaceMac):
(WebCore::WebPlaybackSessionInterfaceMac::setWebPlaybackSessionModel):
(WebCore::WebPlaybackSessionInterfaceMac::setDuration):
(WebCore::WebPlaybackSessionInterfaceMac::setCurrentTime):
(WebCore::WebPlaybackSessionInterfaceMac::setRate):
(WebCore::WebPlaybackSessionInterfaceMac::setSeekableRanges):
(WebCore::mediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::setLegibleMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::invalidate):
(WebCore::WebPlaybackSessionInterfaceMac::ensureControlsManager):
(WebCore::WebPlaybackSessionInterfaceMac::playBackControlsManager):

  • platform/mac/WebVideoFullscreenInterfaceMac.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.mm:

(WebCore::WebVideoFullscreenInterfaceMac::WebVideoFullscreenInterfaceMac):
(WebCore::WebVideoFullscreenInterfaceMac::setWebVideoFullscreenModel):
(WebCore::WebVideoFullscreenInterfaceMac::setDuration):
(WebCore::WebVideoFullscreenInterfaceMac::setCurrentTime):
(WebCore::WebVideoFullscreenInterfaceMac::setRate):
(WebCore::WebVideoFullscreenInterfaceMac::setSeekableRanges):
(WebCore::WebVideoFullscreenInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebVideoFullscreenInterfaceMac::setLegibleMediaSelectionOptions):
(WebCore::WebVideoFullscreenInterfaceMac::ensureControlsManager):
(WebCore::WebVideoFullscreenInterfaceMac::~WebVideoFullscreenInterfaceMac): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setWebVideoFullscreenChangeObserver): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setMode): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::clearMode): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setupFullscreen): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::enterFullscreen): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::exitFullscreen): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::exitFullscreenWithoutAnimationToMode): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::cleanupFullscreen): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::invalidate): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::preparedToReturnToInline): Deleted.
(WebCore::WebVideoFullscreenInterfaceMac::setVideoDimensions): Deleted.
(WebCore::supportsPictureInPicture): Deleted.

Source/WebKit2:

Tease apart WebVideoFullscreenManager and …Proxy into WebPlaybackSessionManager and …Proxy
classes dealing exclusively with playback state and commands, leaving fullscreen state and
commands in the WebVideoFullscreenManager… classes.

WebVideoFullscreenManager and …Proxy will now require an associated
WebPlaybackSessionManager and …Proxy class. The WebPlaybackSessionManager classes can be
used separately and without the WebVideoFullscreenManager classes.

  • DerivedSources.make:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):

  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h: Copied from Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h.
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in: Copied from Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in.
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm: Added.

(WebKit::WebPlaybackSessionModelContext::play):
(WebKit::WebPlaybackSessionModelContext::pause):
(WebKit::WebPlaybackSessionModelContext::togglePlayState):
(WebKit::WebPlaybackSessionModelContext::beginScrubbing):
(WebKit::WebPlaybackSessionModelContext::endScrubbing):
(WebKit::WebPlaybackSessionModelContext::seekToTime):
(WebKit::WebPlaybackSessionModelContext::fastSeek):
(WebKit::WebPlaybackSessionModelContext::beginScanningForward):
(WebKit::WebPlaybackSessionModelContext::beginScanningBackward):
(WebKit::WebPlaybackSessionModelContext::endScanning):
(WebKit::WebPlaybackSessionModelContext::selectAudioMediaOption):
(WebKit::WebPlaybackSessionModelContext::selectLegibleMediaOption):
(WebKit::WebPlaybackSessionManagerProxy::create):
(WebKit::WebPlaybackSessionManagerProxy::WebPlaybackSessionManagerProxy):
(WebKit::WebPlaybackSessionManagerProxy::~WebPlaybackSessionManagerProxy):
(WebKit::WebPlaybackSessionManagerProxy::invalidate):
(WebKit::WebPlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::WebPlaybackSessionManagerProxy::ensureModelAndInterface):
(WebKit::WebPlaybackSessionManagerProxy::ensureModel):
(WebKit::WebPlaybackSessionManagerProxy::ensureInterface):
(WebKit::WebPlaybackSessionManagerProxy::addClientForContext):
(WebKit::WebPlaybackSessionManagerProxy::removeClientForContext):
(WebKit::WebPlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID):
(WebKit::WebPlaybackSessionManagerProxy::clearPlaybackControlsManager):
(WebKit::WebPlaybackSessionManagerProxy::resetMediaState):
(WebKit::WebPlaybackSessionManagerProxy::setCurrentTime):
(WebKit::WebPlaybackSessionManagerProxy::setBufferedTime):
(WebKit::WebPlaybackSessionManagerProxy::setSeekableRangesVector):
(WebKit::WebPlaybackSessionManagerProxy::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionManagerProxy::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setExternalPlaybackProperties):
(WebKit::WebPlaybackSessionManagerProxy::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManagerProxy::setDuration):
(WebKit::WebPlaybackSessionManagerProxy::setRate):
(WebKit::WebPlaybackSessionManagerProxy::play):
(WebKit::WebPlaybackSessionManagerProxy::pause):
(WebKit::WebPlaybackSessionManagerProxy::togglePlayState):
(WebKit::WebPlaybackSessionManagerProxy::beginScrubbing):
(WebKit::WebPlaybackSessionManagerProxy::endScrubbing):
(WebKit::WebPlaybackSessionManagerProxy::seekToTime):
(WebKit::WebPlaybackSessionManagerProxy::fastSeek):
(WebKit::WebPlaybackSessionManagerProxy::beginScanningForward):
(WebKit::WebPlaybackSessionManagerProxy::beginScanningBackward):
(WebKit::WebPlaybackSessionManagerProxy::endScanning):
(WebKit::WebPlaybackSessionManagerProxy::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManagerProxy::selectLegibleMediaOption):
(WebKit::WebPlaybackSessionManagerProxy::controlsManagerInterface):

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenModelContext::WebVideoFullscreenModelContext):
(WebKit::WebVideoFullscreenModelContext::~WebVideoFullscreenModelContext):
(WebKit::WebVideoFullscreenModelContext::play):
(WebKit::WebVideoFullscreenModelContext::pause):
(WebKit::WebVideoFullscreenModelContext::togglePlayState):
(WebKit::WebVideoFullscreenModelContext::beginScrubbing):
(WebKit::WebVideoFullscreenModelContext::endScrubbing):
(WebKit::WebVideoFullscreenModelContext::seekToTime):
(WebKit::WebVideoFullscreenModelContext::fastSeek):
(WebKit::WebVideoFullscreenModelContext::beginScanningForward):
(WebKit::WebVideoFullscreenModelContext::beginScanningBackward):
(WebKit::WebVideoFullscreenModelContext::endScanning):
(WebKit::WebVideoFullscreenModelContext::selectAudioMediaOption):
(WebKit::WebVideoFullscreenModelContext::selectLegibleMediaOption):
(WebKit::WebVideoFullscreenManagerProxy::create):
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
(WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface):
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::exitFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::cleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::preparedToReturnToInline): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::requestFullscreenMode): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didSetupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didEnterFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::playbackSessionManager):
(WebKit::WebPageProxy::videoFullscreenManager):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::hasActiveVideoForControlsManager):
(WebKit::WebPageProxy::isPlayingMediaDidChange): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::supportsVideoFullscreen):
(WebKit::WebChromeClient::setUpPlaybackControlsManager):
(WebKit::WebChromeClient::clearPlaybackControlsManager):
(WebKit::WebChromeClient::enterVideoFullscreenForVideoElement):
(WebKit::WebChromeClient::exitVideoFullscreenForVideoElement):
(WebKit::WebChromeClient::exitVideoFullscreenToModeWithoutAnimation):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::playbackSessionManager):
(WebKit::WebPage::videoFullscreenManager):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/cocoa/WebPlaybackSessionManager.h: Copied from Source/WebKit2/WebProcess/cocoa/WebVideoFullscreenManager.h.

(WebKit::WebPlaybackSessionInterfaceContext::create):
(WebKit::WebPlaybackSessionInterfaceContext::invalidate):

  • WebProcess/cocoa/WebPlaybackSessionManager.messages.in: Added.
  • WebProcess/cocoa/WebPlaybackSessionManager.mm: Added.

(WebKit::nextContextId):
(WebKit::WebPlaybackSessionInterfaceContext::WebPlaybackSessionInterfaceContext):
(WebKit::WebPlaybackSessionInterfaceContext::~WebPlaybackSessionInterfaceContext):
(WebKit::WebPlaybackSessionInterfaceContext::resetMediaState):
(WebKit::WebPlaybackSessionInterfaceContext::setDuration):
(WebKit::WebPlaybackSessionInterfaceContext::setCurrentTime):
(WebKit::WebPlaybackSessionInterfaceContext::setBufferedTime):
(WebKit::WebPlaybackSessionInterfaceContext::setRate):
(WebKit::WebPlaybackSessionInterfaceContext::setSeekableRanges):
(WebKit::WebPlaybackSessionInterfaceContext::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionInterfaceContext::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionInterfaceContext::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionInterfaceContext::setExternalPlayback):
(WebKit::WebPlaybackSessionInterfaceContext::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManager::create):
(WebKit::WebPlaybackSessionManager::WebPlaybackSessionManager):
(WebKit::WebPlaybackSessionManager::~WebPlaybackSessionManager):
(WebKit::WebPlaybackSessionManager::createModelAndInterface):
(WebKit::WebPlaybackSessionManager::ensureModelAndInterface):
(WebKit::WebPlaybackSessionManager::ensureModel):
(WebKit::WebPlaybackSessionManager::ensureInterface):
(WebKit::WebPlaybackSessionManager::removeContext):
(WebKit::WebPlaybackSessionManager::addClientForContext):
(WebKit::WebPlaybackSessionManager::removeClientForContext):
(WebKit::WebPlaybackSessionManager::setUpPlaybackControlsManager):
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):
(WebKit::WebPlaybackSessionManager::contextIdForMediaElement):
(WebKit::WebPlaybackSessionManager::resetMediaState):
(WebKit::WebPlaybackSessionManager::setDuration):
(WebKit::WebPlaybackSessionManager::setCurrentTime):
(WebKit::WebPlaybackSessionManager::setBufferedTime):
(WebKit::WebPlaybackSessionManager::setRate):
(WebKit::WebPlaybackSessionManager::setSeekableRanges):
(WebKit::WebPlaybackSessionManager::setCanPlayFastReverse):
(WebKit::WebPlaybackSessionManager::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionManager::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionManager::setExternalPlayback):
(WebKit::WebPlaybackSessionManager::setWirelessVideoPlaybackDisabled):
(WebKit::WebPlaybackSessionManager::play):
(WebKit::WebPlaybackSessionManager::pause):
(WebKit::WebPlaybackSessionManager::togglePlayState):
(WebKit::WebPlaybackSessionManager::beginScrubbing):
(WebKit::WebPlaybackSessionManager::endScrubbing):
(WebKit::WebPlaybackSessionManager::seekToTime):
(WebKit::WebPlaybackSessionManager::fastSeek):
(WebKit::WebPlaybackSessionManager::beginScanningForward):
(WebKit::WebPlaybackSessionManager::beginScanningBackward):
(WebKit::WebPlaybackSessionManager::endScanning):
(WebKit::WebPlaybackSessionManager::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManager::selectLegibleMediaOption):

  • WebProcess/cocoa/WebVideoFullscreenManager.h:

(WebKit::WebVideoFullscreenInterfaceContext::create):

  • WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
  • WebProcess/cocoa/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenInterfaceContext::WebVideoFullscreenInterfaceContext):
(WebKit::WebVideoFullscreenInterfaceContext::resetMediaState):
(WebKit::WebVideoFullscreenInterfaceContext::setDuration):
(WebKit::WebVideoFullscreenInterfaceContext::setCurrentTime):
(WebKit::WebVideoFullscreenInterfaceContext::setBufferedTime):
(WebKit::WebVideoFullscreenInterfaceContext::setRate):
(WebKit::WebVideoFullscreenInterfaceContext::setSeekableRanges):
(WebKit::WebVideoFullscreenInterfaceContext::setCanPlayFastReverse):
(WebKit::WebVideoFullscreenInterfaceContext::setAudioMediaSelectionOptions):
(WebKit::WebVideoFullscreenInterfaceContext::setLegibleMediaSelectionOptions):
(WebKit::WebVideoFullscreenInterfaceContext::setExternalPlayback):
(WebKit::WebVideoFullscreenInterfaceContext::setWirelessVideoPlaybackDisabled):
(WebKit::WebVideoFullscreenManager::create):
(WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
(WebKit::WebVideoFullscreenManager::createModelAndInterface):
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenInterfaceContext::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenManager::~WebVideoFullscreenManager): Deleted.
(WebKit::WebVideoFullscreenManager::ensureModelAndInterface): Deleted.
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoDimensions): Deleted.
(WebKit::WebVideoFullscreenManager::requestFullscreenMode): Deleted.
(WebKit::WebVideoFullscreenManager::fullscreenModeChanged): Deleted.
(WebKit::WebVideoFullscreenManager::didSetupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::didEnterFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::didExitFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoLayerGravityEnum): Deleted.
(WebKit::WebVideoFullscreenManager::fullscreenMayReturnToInline): Deleted.
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): Deleted.

10:18 AM Changeset in webkit [199592] by Joseph Pecoraro
  • 38 edits
    2 deletes in trunk

Web Inspector: Cleanup inspector/debugger tests
https://bugs.webkit.org/show_bug.cgi?id=156619

Reviewed by Brian Burg.

Source/JavaScriptCore:

While cleaning up the tests it exposed the fact that breakpoints
were not getting disabled when the inspector closes. This means
that opening the inspector, with breakpoints, and closing the
inspector, would leave the JSC::Debugger thinking breakpoints
are active. The JSC::Debugger should be reset.

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::disable):

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WebInspector.loaded):

  • UserInterface/Controllers/DebuggerManager.js:

Remove agent checks for agents that are always available.

LayoutTests:

  • inspector/debugger/breakpoint-action-detach.html:
  • inspector/debugger/breakpoint-action-with-exception.html:
  • inspector/debugger/breakpoint-condition-detach.html:
  • inspector/debugger/breakpoint-condition-with-bad-script.html:
  • inspector/debugger/breakpoint-condition-with-exception.html:
  • inspector/debugger/breakpoint-eval-with-exception.html:
  • inspector/debugger/breakpoint-inside-conditons-and-actions.html:
  • inspector/debugger/call-frame-function-name.html:
  • inspector/debugger/call-frame-this-host.html:
  • inspector/debugger/call-frame-this-nonstrict.html:
  • inspector/debugger/call-frame-this-strict.html:
  • inspector/debugger/debugger-statement.html:
  • inspector/debugger/didSampleProbe-multiple-probes.html:
  • inspector/debugger/hit-breakpoint-from-console.html:
  • inspector/debugger/nested-inspectors.html:
  • inspector/debugger/pause-on-assert.html:
  • inspector/debugger/regress-133182.html:
  • inspector/debugger/removeBreakpoint.html:
  • inspector/debugger/setBreakpoint-actions.html:
  • inspector/debugger/setBreakpoint-autoContinue.html:
  • inspector/debugger/setBreakpoint-column.html:
  • inspector/debugger/setBreakpoint-condition.html:
  • inspector/debugger/setBreakpoint-dfg-and-modify-local.html:
  • inspector/debugger/setBreakpoint-dfg-callee-and-examine-dfg-local.html:
  • inspector/debugger/setBreakpoint-dfg.html:
  • inspector/debugger/setBreakpoint-options-exception.html:
  • inspector/debugger/setBreakpoint.html:
  • inspector/debugger/setBreakpointByUrl-sourceURL.html:
  • inspector/debugger/setPauseOnExceptions-all.html:
  • inspector/debugger/setPauseOnExceptions-none.html:
  • inspector/debugger/setPauseOnExceptions-uncaught.html:

Activate breakpoints in protocol tests that may set breakpoints and pause.
Inspector tests automatically enable breakpoints.

  • inspector/debugger/setVariableValue-expected.txt: Removed.
  • inspector/debugger/setVariableValue.html: Removed.
  • platform/gtk/TestExpectations:

Remove references to bad test. The protocol command no longer exists.

9:44 AM Changeset in webkit [199591] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[COCOA] Do not unnecessarily initialize ResourceResponse::m_httpVersion as part of common fields
https://bugs.webkit.org/show_bug.cgi?id=156606

Reviewed by Darin Adler.

Do not unnecessarily initialize ResourceResponse::m_httpVersion as part of common fields.

We previously initialized m_httpVersion when calling platformLazyInit(CommonFieldsOnly),
even though this is not a common field. The corresponding getter/setter in
HTTPResponseBase call lazyInit(AllFields).

  • platform/network/cf/ResourceResponseCFNet.cpp:

(WebCore::ResourceResponse::platformLazyInit):

  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::ResourceResponse::platformLazyInit):

9:39 AM Changeset in webkit [199590] by commit-queue@webkit.org
  • 16 edits in trunk

Refactor WebSockets handshake to use StringView instead of String for header validation.
https://bugs.webkit.org/show_bug.cgi?id=155602

Patch by John Wilander <wilander@apple.com> on 2016-04-15
Reviewed by Darin Adler.

Source/WebCore:

No new tests. Existing test have been augmented.

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::readServerHandshake):

Made sure failure reason was set consistently with makeString().

(WebCore::headerHasValidHTTPVersion):

Now operates on the HTTP status line with StringView.

(WebCore::WebSocketHandshake::readStatusLine):

Now operates on the HTTP status line with StringView.

(WebCore::WebSocketHandshake::readHTTPHeaders):

Now operates on header names with StringView.
Made sure failure reason was set consistently with makeString() and ASCIILiteral().

(WebCore::WebSocketHandshake::checkResponseHeaders):

Made sure failure reason was set consistently with ASCIILiteral().

  • platform/network/HTTPParsers.cpp:

(WebCore::parseHTTPRequestLine):

Made sure failure reason was set consistently with ASCIILiteral().

(WebCore::isValidHeaderNameCharacter):

Inlined function to check if a character is allowed in an HTTP header name according to RFC 7230.
https://tools.ietf.org/html/rfc7230 (June 2014)

(WebCore::parseHTTPHeader):

  • platform/network/HTTPParsers.h:

Now receives the HTTP header name as a StringView.
Checks that header names only contain valid characters according to RFC 7230 (see above).

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::addHTTPHeaderField):

  • platform/network/ResourceRequestBase.h:

Now has an overloaded function which receives the HTTP header name as an HTTPHeaderName enum value.

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::addHTTPHeaderField):

  • platform/network/ResourceResponseBase.h:

Now has an overloaded function which receives the HTTP header name as an HTTPHeaderName enum value.

Source/WebKit2:

  • UIProcess/InspectorServer/HTTPRequest.cpp:

(WebKit::HTTPRequest::parseHeaders):

Now declares the HTTP header name as a StringView to match the change in WebCore::parseHTTPHeader.

LayoutTests:

  • http/tests/websocket/tests/hybi/bad-handshake-crash-expected.txt:

Fixed so that new error output is expected.

  • http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt:
  • http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1.html:
  • http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1_wsh.py:

Now tests HTTP versions that are higher than 1.1, are lower than 1.1, have bad characters, and are empty.

  • http/tests/websocket/tests/hybi/long-invalid-header-expected.txt:

Fixed so that slightly refined error output is expected.

9:18 AM Changeset in webkit [199589] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

2016-04-14 Geoffrey Garen <ggaren@apple.com>

CopiedBlock should be 64kB

Reviewed by Benjamin Poulain.

Let's try another value.

This is 25% faster on kraken-audio-beat-detection on Mac Pro.

  • heap/CopiedBlock.h:
8:51 AM Changeset in webkit [199588] by jdiggs@igalia.com
  • 9 edits
    3 adds in trunk

AX: Presentational role on SVG elements is trumped by child 'title' and 'desc' elements
https://bugs.webkit.org/show_bug.cgi?id=156519

Reviewed by Chris Fleizach.

Source/WebCore:

Override the presentational role on SVG elements which have a child 'title' or 'desc'
element. As a result of this change, AccessibilitySVGRoot objects would be exposed
with an AccessibilityRole of UnknownRole. Therefore map included AccessibilitySVGRoot
objects to GroupRole as per the SVG Accessibility API Mapping specification.

Also use indexOfBestMatchingLanguageInList() to identify which child 'title' or 'desc'
element is the best match for the parent element.

New Test: accessibility/w3c-svg-content-language-attribute.html

Also: Update w3c-svg-presentational-role.html expectations because there are test cases
in which elements are now being included in the accessibility tree as a result of this
change. Also add new test cases which lack child 'title' and 'desc' elements.

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

(WebCore::AccessibilitySVGElement::childElementWithMatchingLanguage):
(WebCore::AccessibilitySVGElement::accessibilityDescription):
(WebCore::AccessibilitySVGElement::helpText):
(WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored):
(WebCore::AccessibilitySVGElement::determineAriaRoleAttribute):

  • accessibility/AccessibilitySVGElement.h:
  • accessibility/AccessibilitySVGRoot.h:

LayoutTests:

Update w3c-svg-presentational-role.html expectations because there are test cases in which
elements are now being included in the accessibility tree as a result of this change. Also
add new test cases which lack child 'title' and 'desc' elements.

  • accessibility/w3c-svg-content-language-attribute.html: Added.
  • accessibility/w3c-svg-presentational-role.html: New test cases added.
  • platform/gtk/accessibility/w3c-svg-content-language-attribute-expected.txt: Added.
  • platform/gtk/accessibility/w3c-svg-presentational-role-expected.txt: Updated.
  • platform/mac/accessibility/w3c-svg-content-language-attribute-expected.txt: Added.
  • platform/mac/accessibility/w3c-svg-presentational-role-expected.txt: Updated.
7:12 AM Changeset in webkit [199587] by Chris Dumez
  • 27 edits in trunk/Source/WebCore

Rename [GlobalContext] extended attribute to [Exposed] and align with WebIDL
https://bugs.webkit.org/show_bug.cgi?id=156615

Reviewed by Youenn Fablet.

Rename [GlobalContext] extended attribute to [Exposed] and align with WebIDL:

  • bindings/scripts/IDLAttributes.txt:

Stop recognizing [GlobalContext] and start recognizing [Exposed].

  • bindings/scripts/IDLParser.pm:

(parseIdentifierList):
(parseExtendedAttributeRest2):
Add IDL parser support for having a list of identifiers as value
for an IDL extended attribute, e.g. Exposed=(Window, Worker).

  • bindings/scripts/preprocess-idls.pl:

Tweak existing support for [GlobalContext] to use [Exposed] instead
and support the new syntax.

(getInterfaceExtendedAttributesFromIDL):
Do not split on commas that are within brackets.

  • Modules/fetch/FetchBody.idl:
  • Modules/fetch/FetchHeaders.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/streams/ByteLengthQueuingStrategy.idl:
  • Modules/streams/CountQueuingStrategy.idl:
  • Modules/streams/ReadableStream.idl:
  • Modules/streams/ReadableStreamController.idl:
  • Modules/streams/ReadableStreamReader.idl:
  • Modules/websockets/WebSocket.idl:
  • dom/MessageChannel.idl:
  • dom/MessageEvent.idl:
  • fileapi/Blob.idl:
  • fileapi/FileReader.idl:
  • fileapi/FileReaderSync.idl:
  • html/DOMURL.idl:
  • html/ImageData.idl:
  • page/EventSource.idl:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/WorkerGlobalScope.idl:
  • workers/WorkerLocation.idl:
  • xml/XMLHttpRequest.idl:
  • xml/XMLHttpRequestEventTarget.idl:

Use [Exposed] instead of [GlobalContext] to match their respective
specifications.

2:07 AM Changeset in webkit [199586] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Tail call optimizations lead to crashes on ARM Thumb + Linux
https://bugs.webkit.org/show_bug.cgi?id=150083

Patch by Zan Dobersek <zdobersek@igalia.com> on 2016-04-15
Reviewed by Csaba Osztrogonác.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::repatchNearCall): In case of a tail call relink to the
data location of the destination, and not the executable address. This is needed for
the ARM Thumb2 platform where both the source and destination addresses of a jump relink
must not have the bottom bit decorated, as asserted in ARMv7Assembler::relinkJump().

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall): Similarly, when linking a tail call we must link to the
address that has a non-decorated bottom bit, as asserted in ARMv7Assembler::linkJumpAbsolute().

1:53 AM Changeset in webkit [199585] by Carlos Garcia Campos
  • 8 edits
    2 adds in trunk

Selection.deleteFromDocument should not leave a selection character
https://bugs.webkit.org/show_bug.cgi?id=151442

Reviewed by Michael Catanzaro.

Source/WebCore:

This is a merge of Blink r172511:
https://codereview.chromium.org/255453003

Let Selection.deleteFromDocument not delete a character when the
selection is a caret.

Selection.deleteFromDocument delete a character when the selection
is a caret.
However, current standard says that Selection.deleteFromDocument
does nothing when the selection is a caret:
https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#dom-selection-deletefromdocument
Both IE10 and FireFox seem following the spec.

Test: imported/blink/editing/selection/deleteFromDocument-undo-crash.html

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::deleteFromDocument): Deleted.

LayoutTests:

  • editing/selection/deleteFromDocument-expected.txt:
  • editing/selection/deleteFromDocument.html:
  • imported/blink/editing/selection/deleteFromDocument-undo-crash-expected.txt: Added.
  • imported/blink/editing/selection/deleteFromDocument-undo-crash.html: Added.
  • TestExpectations: Skip imported/blink/editing/selection/deleteFromDocument-undo-crash.html in Debug.
  • platform/gtk/TestExpectations: Unskip imported/blink/editing/selection/deleteFromDocument-crash.html.
  • platform/win/TestExpectations: Ditto.
1:16 AM Changeset in webkit [199584] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Fix return value nullptr -> false.

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):

12:54 AM Changeset in webkit [199583] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

AffectsNextSibling style relation marking is inefficient
https://bugs.webkit.org/show_bug.cgi?id=156593

Reviewed by Benjamin Poulain.

We currently add a Style::Relation entry for each sibling to mark. With long sibling lists this can be inefficient
in terms of both memory and speed. Instead make a single entry that includes the sibling count to mark.

  • css/SelectorChecker.cpp:

(WebCore::addStyleRelation):

When adding AffectsNextSibling entry check if the last entry in the style relation vector has the
same type and is part of the same sibling chain. If so just update the existing entry.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelation):

The same thing in hand-crafted macro assembler.

  • cssjit/SelectorCompiler.h:

Stop lying about the constness of the CheckingContext.

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelations):

Mark as many sibling elements as the value indicates.

  • style/StyleRelations.h:

(WebCore::Style::Relation::Relation):

Make element a pointer so we can udpate it.

12:26 AM Changeset in webkit [199582] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Don't copy entire NSURLSessionConfiguration just to test for credentials
https://bugs.webkit.org/show_bug.cgi?id=156598

Patch by Alex Christensen <achristensen@webkit.org> on 2016-04-15
Reviewed by Brady Eidson.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate initWithNetworkSession:withCredentials:]):
(-[WKNetworkSessionDelegate URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:]):
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
(WebKit::NetworkSession::NetworkSession):
(-[WKNetworkSessionDelegate initWithNetworkSession:]): Deleted.

12:22 AM Changeset in webkit [199581] by beidson@apple.com
  • 13 edits in trunk

Add the message property to DOMError.
https://bugs.webkit.org/show_bug.cgi?id=139173

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Updated existing tests).

Adding this property brings us up to date with other browsers, and will help
test the few web features that still use DOMError.

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::onError):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
(WebCore::IDBRequest::onError):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::didCreateIndexOnServer):

  • Modules/mediastream/NavigatorUserMediaError.h:

(WebCore::NavigatorUserMediaError::NavigatorUserMediaError):

  • dom/DOMError.cpp:

(WebCore::DOMError::DOMError):

  • dom/DOMError.h:

(WebCore::DOMError::create):
(WebCore::DOMError::message):

  • dom/DOMError.idl:

LayoutTests:

  • storage/indexeddb/createIndex-after-failure-expected.txt:
  • storage/indexeddb/createIndex-after-failure-private-expected.txt:
  • storage/indexeddb/intversion-upgrades-expected.txt:
  • storage/indexeddb/intversion-upgrades-private-expected.txt:
12:02 AM Changeset in webkit [199580] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Mark perf/array-binary-search.html as flaky on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=153049

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
Note: See TracTimeline for information about the timeline view.