Timeline



Feb 23, 2015:

11:27 PM Changeset in webkit [180551] by commit-queue@webkit.org
  • 79 edits
    11 deletes in trunk

Unreviewed, rolling out r180547 and r180550.
https://bugs.webkit.org/show_bug.cgi?id=141957

Broke 10 Windows tests. (Requested by bfulgham_ on #webkit).

Reverted changesets:

"REGRESSION(r179429): Can't type comments in Facebook"
https://bugs.webkit.org/show_bug.cgi?id=141859
http://trac.webkit.org/changeset/180547

"Constructor returning null should construct an object instead
of null"
https://bugs.webkit.org/show_bug.cgi?id=141640
http://trac.webkit.org/changeset/180550

9:47 PM Changeset in webkit [180550] by Yusuke Suzuki
  • 39 edits
    9 adds in trunk

Constructor returning null should construct an object instead of null
https://bugs.webkit.org/show_bug.cgi?id=141640

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

When constructor code doesn't return object, constructor should return this object instead.
Since we used op_is_object for this check and op_is_object is intended to be used for typeof,
it allows null as an object.
This patch fixes it by introducing an new bytecode op_is_object_or_null for typeof use cases.
Instead, constructor uses simplified is_object.

As a result, op_is_object becomes fairly simple. So we introduce optimization for op_is_object.

  1. LLInt and baseline JIT support op_is_object as a fast path.
  2. DFG abstract interpreter support op_is_object. And recognize its speculated type and read-write effects.
  3. DFG introduces inlined asm for op_is_object rather than calling a C++ function.
  4. FTL lowers DFG's IsObject into LLVM IR.

And at the same time, this patch fixes isString / isObject predicate used for op_is_object and others
in LLInt, JIT, DFG and FTL.
Before introducing ES6 Symbol, JSCell is only used for object and string in user observable area.
So in many places, when the cell is not object, we recognize it as a string, and vice versa.
However, now ES6 Symbol is implemented as a JSCell, this assumption is broken.
So this patch stop using !isString as isObject.
To check whether a cell is an object, instead of seeing that structure ID of a cell is not stringStructure,
we examine typeInfo in JSCell.

  • JavaScriptCore.order:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFor):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEqualityOp):
(JSC::BytecodeGenerator::emitReturn):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

IsObject operation only touches JSCell typeInfoType.
And this value would not be changed through structure transition.
As a result, IsObject can report that it doesn't read any information.

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

Just like IsString, IsObject is also fixed up.

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compileStringToUntypedEquality):
(JSC::DFG::SpeculativeJIT::compileStringIdentToNotStringVarEquality):
(JSC::DFG::SpeculativeJIT::compileToStringOnCell):
(JSC::DFG::SpeculativeJIT::speculateObject):
(JSC::DFG::SpeculativeJIT::speculateObjectOrOther):
(JSC::DFG::SpeculativeJIT::speculateString):
(JSC::DFG::SpeculativeJIT::speculateNotStringVar):
(JSC::DFG::SpeculativeJIT::emitSwitchChar):
(JSC::DFG::SpeculativeJIT::emitSwitchString):
(JSC::DFG::SpeculativeJIT::branchIsObject):
(JSC::DFG::SpeculativeJIT::branchNotObject):
(JSC::DFG::SpeculativeJIT::branchIsString):
(JSC::DFG::SpeculativeJIT::branchNotString):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileToString):
(JSC::FTL::LowerDFGToLLVM::compileIsObject):
(JSC::FTL::LowerDFGToLLVM::compileIsObjectOrNull):
(JSC::FTL::LowerDFGToLLVM::speculateTruthyObject):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::isObject):
(JSC::FTL::LowerDFGToLLVM::isNotObject):
(JSC::FTL::LowerDFGToLLVM::isNotString):
(JSC::FTL::LowerDFGToLLVM::speculateNonNullObject):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::emitJumpIfCellObject):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::compileOpStrictEq):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/Operations.cpp:

(JSC::jsIsObjectTypeOrNull):
(JSC::jsIsObjectType): Deleted.

  • runtime/Operations.h:

LayoutTests:

  • js/dfg-to-primitive-pass-symbol-expected.txt: Added.
  • js/dfg-to-primitive-pass-symbol.html: Added.
  • js/dom/constructor-with-return-masquerades-expected.txt: Added.
  • js/dom/constructor-with-return-masquerades.html: Added.
  • js/dom/script-tests/constructor-with-return-masquerades.js: Added.

(Constructor):

Follow the old ret_object_or_this semantics.
When constructor returns an object that masquerades as undefined, we see it as an object.

  • js/regress/constructor-with-return-expected.txt: Added.
  • js/regress/constructor-with-return.html: Added.
  • js/regress/script-tests/constructor-with-return.js: Added.

(Test):

When constructor doesn't return an object, this should be returned instead.
In this test, we check all primitives. And test object, array and wrappers.

  • js/script-tests/dfg-to-primitive-pass-symbol.js: Added.

(toPrimitiveTarget):
(doToPrimitive):

op_to_primitive operation passes Symbol in fast path.

9:01 PM Changeset in webkit [180549] by rniwa@webkit.org
  • 11 edits in trunk

Disable font loading events until our implementation gets updated to match the latest spec
https://bugs.webkit.org/show_bug.cgi?id=141938

Reviewed by Andreas Kling.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Revert r173531 for now since our implementation is outdated.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

LayoutTests:

8:09 PM Changeset in webkit [180548] by Brent Fulgham
  • 5 edits in trunk/Source/WebCore

EventHandler references deleted Scrollbar
https://bugs.webkit.org/show_bug.cgi?id=141931
<rdar://problem/19915210>

Reviewed by Tim Horton.

Tested by scrollbars/overflow-custom-scrollbar-crash.html

Update the EventHandler class to use a WeakPtr to reference the
last used Scrollbar, rather than retaining the Scrollbar and
artificially extending its life. This keeps the EventHandler
state in proper sync with the state of the render tree, and
avoids cases where we have destroyed a ScrollableArea (and
Scrollbar) but are still sending messages to a fake zombie
version of the element.

  • page/EventHandler.cpp:

(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::updateLastScrollbarUnderMouse):

  • page/EventHandler.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::Scrollbar): Initialize WeakPtrFactory.

  • platform/Scrollbar.h:

(WebCore::Scrollbar::createWeakPtr): Added,

7:47 PM Changeset in webkit [180547] by Yusuke Suzuki
  • 42 edits
    2 adds in trunk

REGRESSION(r179429): Can't type comments in Facebook
https://bugs.webkit.org/show_bug.cgi?id=141859

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

When window.Symbol is exposed to user-space pages,
Facebook's JavaScript use it (maybe, for immutable-js and React.js's unique key).
However, to work with Symbols completely, it also requires
1) Object.getOwnPropertySymbols (for mixin including Symbols)
2) the latest ES6 Iterator interface that uses Iterator.next and it returns { done: boolean, value: value }.
Since they are not landed yet, comments in Facebook don't work.

This patch introduces RuntimeFlags for JavaScriptCore.
Specifying SymbolEnabled flag under test runner and inspector to continue to work with Symbol.
And drop JavaScriptExperimentsEnabled flag
because it is no longer used and use case of this is duplicated to runtime flags.

(GlobalObject::javaScriptRuntimeFlags):
(GlobalObject::javaScriptExperimentsEnabled): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::finishCreation):
(JSC::JSGlobalObject::javaScriptRuntimeFlags):
(JSC::JSGlobalObject::javaScriptExperimentsEnabled): Deleted.

  • runtime/RuntimeFlags.h: Added.

(JSC::RuntimeFlags::RuntimeFlags):
(JSC::RuntimeFlags::createAllEnabled):

Source/WebCore:

Enable SymbolEnabled runtime flag in inspector context.

  • ForwardingHeaders/runtime/RuntimeFlags.h: Added.
  • WebCore.order:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::javaScriptRuntimeFlags):
(WebCore::JSDOMWindowBase::javaScriptExperimentsEnabled): Deleted.

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::javaScriptRuntimeFlags):
(WebCore::JSWorkerGlobalScopeBase::javaScriptExperimentsEnabled): Deleted.

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):

  • page/Settings.h:
  • page/Settings.in:

Source/WebKit/mac:

Introduce SymbolEnabled and drop javaScriptExperimentsEnabled.
Private API, javaScriptExperimentsEnabled is dropped.

  • Misc/WebNSDictionaryExtras.h:
  • Misc/WebNSDictionaryExtras.m:

(-[NSMutableDictionary _webkit_setUnsignedInt:forKey:]):

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

(+[WebPreferences initialize]):
(-[WebPreferences _setUnsignedIntValue:forKey:]):
(-[WebPreferences javaScriptRuntimeFlags]):
(-[WebPreferences setJavaScriptRuntimeFlags:]):
(-[WebPreferences setJavaScriptExperimentsEnabled:]): Deleted.
(-[WebPreferences javaScriptExperimentsEnabled]): Deleted.

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

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Enable SymbolEnabled in inspector context.

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

(WKPreferencesSetJavaScriptRuntimeFlags):
(WKPreferencesGetJavaScriptRuntimeFlags):
(WKPreferencesSetJavaScriptExperimentsEnabled): Deleted.
(WKPreferencesGetJavaScriptExperimentsEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _javaScriptRuntimeFlags]):
(-[WKPreferences _setJavaScriptRuntimeFlags:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • mac/WebKit2.order:

Tools:

Drop javaScriptExperimentsEnabled and specify JavaScriptRuntimeFlagsAllEnabled as KJavaScriptRuntimeFlags.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

7:33 PM Changeset in webkit [180546] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Set the semantic origin of delayed SetLocal to the Bytecode that originated it
https://bugs.webkit.org/show_bug.cgi?id=141727

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-23
Reviewed by Filip Pizlo.

Previously, delayed SetLocals would have the NodeOrigin of the next
bytecode. This was because delayed SetLocal are...delayed... and
currentCodeOrigin() is the one where the node is emitted.

This made debugging a little awkward since the OSR exits on SetLocal
were reported for the next bytecode. This patch changes the semantic
origin to keep the original bytecode.

From benchmarks, this looks like it could be a tiny bit faster
but it likely just noise.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::setDirect):
(JSC::DFG::ByteCodeParser::setLocal):
(JSC::DFG::ByteCodeParser::setArgument):
(JSC::DFG::ByteCodeParser::currentNodeOrigin):
(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::DelayedSetLocal::DelayedSetLocal):
(JSC::DFG::ByteCodeParser::DelayedSetLocal::execute):

7:32 PM Changeset in webkit [180545] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Remove DFGNode::predictHeap()
https://bugs.webkit.org/show_bug.cgi?id=141864

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-23
Reviewed by Geoffrey Garen.

  • dfg/DFGNode.h:

(JSC::DFG::Node::predictHeap): Deleted.
Unused code.

7:31 PM Changeset in webkit [180544] by benjamin@webkit.org
  • 5 edits
    8 adds in trunk

CSS JIT: add support for case-insensitive attribute matching
https://bugs.webkit.org/show_bug.cgi?id=141880

Reviewed by Andreas Kling.

Source/WebCore:

The value matching now has 3 cases:
1) Case-sensitive.
2) Case-insensitive.
3) Legacy HTML Case-insensitive.

The information to determine the case is split over 2 source:
-To know if explicit case-insensitive is needed, we need to ask the selector

for attributeValueMatchingIsCaseInsensitive().

-To know if the legacy HTML behavior is needed, we need to test the attribute

name filter with HTMLDocument::isCaseSensitiveAttribute().

I decided to perform all those checks at the fragment creation step.
This makes the register requirements and code generation more explicit.

From there, everything is easy: switch() on the type of matching needed,
and generate the code. The new case-insensitive case is a simplified version
of the legacy HTML behavior without runtime check for the element type.

Tests: fast/css/implicitly-case-insensitive-attribute-with-svg.html

fast/selectors/case-insensitive-attribute-register-requirement-1.html
fast/selectors/case-insensitive-attribute-register-requirement-2.html
fast/selectors/querySelector-explicit-case-insensitive-attribute-match-with-svg.html

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::attributeSelectorCaseSensitivity):
(WebCore::SelectorCompiler::AttributeMatchingInfo::AttributeMatchingInfo):
(WebCore::SelectorCompiler::AttributeMatchingInfo::attributeCaseSensitivity):
(WebCore::SelectorCompiler::AttributeMatchingInfo::canDefaultToCaseSensitiveValueMatch): Deleted.
(WebCore::SelectorCompiler::constructFragmentsInternal):
Compute the type of value matching and store it on the AttributeMatchingInfo
when creating the fragment.

(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::attributeValueTestingRequiresExtraRegister):
(WebCore::SelectorCompiler::attributeValueTestingRequiresCaseFoldingRegister): Deleted.
In general, AttributeCaseSensitivity::CaseInsensitive does not require an extra
register. I have made an exception for generateElementAttributeValueExactMatching()
for simplicity. I use that register to load the StringImpl of the attribute
being tested, that way I can use WTF::equalIgnoringCaseNonNull() directly.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
Matching itself is just function calls. Unlike AttributeCaseSensitivity::HTMLLegacyCaseInsensitive,
the behavior is consistent between XML and HTML.

LayoutTests:

  • fast/css/case-insensitive-attribute-with-svg-expected.html:
  • fast/css/case-insensitive-attribute-with-svg.html:
  • fast/css/implicitly-case-insensitive-attribute-with-svg-expected.html: Copied from LayoutTests/fast/css/case-insensitive-attribute-with-svg-expected.html.
  • fast/css/implicitly-case-insensitive-attribute-with-svg.html: Copied from LayoutTests/fast/css/case-insensitive-attribute-with-svg.html.

I renamed the HTML legacy case-insensitive behavior to separate
it from the new selector.

  • fast/selectors/querySelector-explicit-case-insensitive-attribute-match-with-svg-expected.txt: Added.
  • fast/selectors/querySelector-explicit-case-insensitive-attribute-match-with-svg.html: Added.

Mixing explicit case-insensitive with implicit.

  • fast/selectors/case-insensitive-attribute-register-requirement-1-expected.txt: Added.
  • fast/selectors/case-insensitive-attribute-register-requirement-1.html: Added.
  • fast/selectors/case-insensitive-attribute-register-requirement-2-expected.txt: Added.
  • fast/selectors/case-insensitive-attribute-register-requirement-2.html: Added.

The usual register allocation stress tests.

7:25 PM Changeset in webkit [180543] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove unused console-object-preview styles - replaced by ObjectPreviewView
https://bugs.webkit.org/show_bug.cgi?id=141945

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-23
Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.css:

(.console-object-preview): Deleted.
(.expanded .console-object-preview): Deleted.
(.console-object-preview .name): Deleted.
(.expanded .console-object-preview > .console-object-preview-body): Deleted.
(.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
(.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.

7:11 PM Changeset in webkit [180542] by hyuki.kim@samsung.com
  • 2 edits in trunk/Tools

[EFL] fix eo errors
https://bugs.webkit.org/show_bug.cgi?id=141909

Reviewed by Gyuyoung Kim.

Fix eo errors that occur whenever minibrowser is launched.

  • elm_obj_entry_text_style_user_push can only be applied for elm_entry
  • elm_obj_win_resize_object_add's first parameter should be elm_win
  • MiniBrowser/efl/main.c:

(window_create):

6:53 PM Changeset in webkit [180541] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed build fix after r180532

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::buffered):
Fixed typo.

6:34 PM Changeset in webkit [180540] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Unreviewed build fix after r180535. Removed the test case that wasn't compiling.

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::TEST):

6:07 PM Changeset in webkit [180539] by benjamin@webkit.org
  • 5 edits in trunk/Source/WebKit2

[iOS WK2] The WebProcess keep scrolling pages based on the last velocity after scrolling has been interrupted
https://bugs.webkit.org/show_bug.cgi?id=141933
rdar://problem/18746673
rdar://problem/19711490

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-23
Reviewed by Simon Fraser.

The bug happened like this:
1) The user scroll the page. WKContentView tracks the velocity and send

the update rect + velocity to the WebProcess.

2) The user interupts the scrolling but does not commit to either scrolling

again or cancelling the scrolling.
Since we were not notified of this state, the WebProcess still believed
the velocity is stable.

3) With any paint update, the WebProcess would account for the last velocity

and try to guess the best repaint area. This would drift endlessly out
of the view since the view is not really moving.

This patch fixes the issue by adding special handling for interrupted scrolling.

Kudos to Kurt Revis for providing us the required APIs.

  • Shared/VisibleContentRectUpdateInfo.h:

(WebKit::operator==):
We can no longer filter VisibleContentRectUpdateInfo ignoring the velocity.

Typically, UIScrollView would call -scrollViewDidScroll: before being interrupted.
If we filter based on the VisibleContentRectUpdateInfo, we have two identical
states differing only by the velocity. If we filter the second update, the WebProcess
would never know the velocity should be zero.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollViewDidInterruptDecelerating:]):
We get this callback when scrolling is interrupted. We just need to clear
the velocity and re-send a new update for the current state.

(-[WKWebView _updateVisibleContentRects]):
Do not consider an interrupted scroll as a stable state. We don't know if scrolling
will resume or will stop.

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

(-[WKContentView didInterruptScrolling]):

5:43 PM Changeset in webkit [180538] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed, EFL gardening. Mark webgl tests to crash.
Skip khmer-lao-font.html because EFL port doesn't support it.

  • platform/efl/TestExpectations:
5:34 PM Changeset in webkit [180537] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.5.7

New tag.

5:32 PM Changeset in webkit [180536] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.15.7

New tag.

5:03 PM Changeset in webkit [180535] by Brent Fulgham
  • 4 edits in trunk

WTF::WeakPtr should rename 'forgot' to 'clear' and support nullptr assignment
https://bugs.webkit.org/show_bug.cgi?id=141935

Reviewed by Myles C. Maxfield.

Source/WTF:

  • wtf/WeakPtr.h:

(WTF::WeakPtr::operator=): Added 'nullptr_t' overload.
(WTF::WeakPtr::clear): Renamed from 'forget'
(WTF::WeakPtr::forget): Deleted.

Tools:

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::TEST): Updated for 'clear' method rename, and added a few
tests for assigning from nullptr.

4:55 PM Changeset in webkit [180534] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Log using diagnostic logging which ActiveDOMObjects prevent using the PageCache
https://bugs.webkit.org/show_bug.cgi?id=141922
<rdar://problem/19923085>

Reviewed by Andreas Kling.

Log using diagnostic logging which ActiveDOMObjects prevent using the
PageCache.

  • history/PageCache.cpp:

(WebCore::logCanCacheFrameDecision):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::unsuspendableDOMObjectKey):

  • page/DiagnosticLoggingKeys.h:
4:49 PM Changeset in webkit [180533] by Chris Dumez
  • 7 edits
    2 adds in trunk/Source/WebCore

Move GeoNotifier class to its own file
https://bugs.webkit.org/show_bug.cgi?id=141918

Reviewed by Andreas Kling.

Move GeoNotifier class to its own file to make Geolocation class less
crowded.

4:24 PM Changeset in webkit [180532] by gyuyoung.kim@samsung.com
  • 15 edits in trunk/Source/WebCore

Remove unnecessary PlatformTimeRanges::create()
https://bugs.webkit.org/show_bug.cgi?id=141901

Reviewed by Filip Pizlo.

PlatformTimeRanges::create() functions have just created an instance of PlatformTimeRanges.
This functionality can be replaced with std::make_unique<> use directly.

No new tests, no behavior changes.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::buffered):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::bufferedAccountingForEndOfStream):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::NullMediaPlayerPrivate::buffered):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::seekable):

  • platform/graphics/PlatformTimeRanges.cpp:

(WebCore::PlatformTimeRanges::create): Deleted.

  • platform/graphics/PlatformTimeRanges.h:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::buffered):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::buffered):

  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::buffered):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::buffered):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::buffered):

4:22 PM Changeset in webkit [180531] by gyuyoung.kim@samsung.com
  • 10 edits in trunk/Source/WebCore

Partial clean up OwnPtr and PassOwnPtr in WebCore/platform
https://bugs.webkit.org/show_bug.cgi?id=141888

Reviewed by Filip Pizlo.

Use std::unique_ptr<> and std::make_unique<>. Besides this patch removes
unnecessary OwnPtr.h|PasSOwnPtr.h includes.

No new tests, no behavior changes.

  • platform/SharedBuffer.h:
  • platform/Supplementable.h:
  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h:

(WebCore::AudioSourceProviderGStreamer::create): Deleted.

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/TiledBackingStoreBackend.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
  • platform/gtk/GamepadsGtk.cpp:
4:17 PM Changeset in webkit [180530] by shiva.jm@samsung.com
  • 3 edits
    2 adds in trunk

Default value of HTMLSelectElement size IDL attribute should be 0.
https://bugs.webkit.org/show_bug.cgi?id=141795

Reviewed by Andreas Kling.

Source/WebCore:

Default value of HTMLSelectElement size IDL attribute should be 0.
As in spec: http://www.w3.org/html/wg/drafts/html/master/forms.html#the-select-element, also this matches the behavior of Chrome, IE and
Gecko.

Test: fast/dom/select-size.html

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::parseAttribute):

LayoutTests:

  • fast/dom/select-size-expected.txt: Added.
  • fast/dom/select-size.html: Added.
3:50 PM Changeset in webkit [180529] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Get rid of JSLexicalEnvironment::argumentsGetter
https://bugs.webkit.org/show_bug.cgi?id=141930

Reviewed by Mark Lam.

This function is unused, and the way it's written is bizarre - it's a return statement that
dominates a bunch of dead code.

  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::argumentsGetter): Deleted.

  • runtime/JSLexicalEnvironment.h:
3:44 PM Changeset in webkit [180528] by Brent Fulgham
  • 4 edits in trunk

Source/WTF:
WTF::WeakPtr should have a 'forget' method
https://bugs.webkit.org/show_bug.cgi?id=141923

Reviewed by Myles C. Maxfield.

  • wtf/WeakPtr.h:

(WTF::WeakPtr::forget): Added.

Tools:
WTF::WeakPtr should have a 'forget' method.
https://bugs.webkit.org/show_bug.cgi?id=141923

Reviewed by Myles C. Maxfield.

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::TEST): Added 'Forget' tests case.

3:26 PM Changeset in webkit [180527] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove unused activationCount and allTheThingsCount variable declarations.

Rubber stamped by Mark Lam and Michael Saboff.

  • runtime/JSLexicalEnvironment.h:
3:18 PM Changeset in webkit [180526] by saambarati1@gmail.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: BasicBlockAnnotator ranges should be inclusive of both the start and end offset
https://bugs.webkit.org/show_bug.cgi?id=141334

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype.addStyleToTextRange):

3:09 PM Changeset in webkit [180525] by ap@apple.com
  • 2 edits in trunk/Tools

build.webkit.org/dashboard CrashOnly queues should not show two green bubbles
https://bugs.webkit.org/show_bug.cgi?id=141920

Reviewed by Tim Horton.

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

(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus):
Do the same thing as we do for regular green bubbles.

3:06 PM Changeset in webkit [180524] by ap@apple.com
  • 2 edits in trunk/Tools

Bot watcher's dashboard doesn't show a popover for commit history when all commits were to another branch
https://bugs.webkit.org/show_bug.cgi?id=141925

Reviewed by Tim Horton.

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

(BuildbotQueueView.prototype._presentPopoverForRevisionRange):

3:04 PM Changeset in webkit [180523] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

Drawing an SVG image into a canvas using drawImage() ignores globalAlpha.
https://bugs.webkit.org/show_bug.cgi?id=141729.

Reviewed by Daniel Bates.

Fix a build break which is caused by http://trac.webkit.org/changeset/180511/trunk.
Two functions of GraphicsContext were made inline but they were kept WEBCORE_EXPORT.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::paintingDisabled):
(WebCore::GraphicsContext::updatingControlTints):

3:04 PM Changeset in webkit [180522] by bshafiei@apple.com
  • 2 edits in branches/safari-600.5-branch/Source/WebCore

Follow-up merge for r179877. rdar://problem/19871003

2:46 PM Changeset in webkit [180521] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.15-branch/Source/WebCore

Follow-up merge for r179877. rdar://problem/19871003

2:42 PM Changeset in webkit [180520] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Max canvas size is lower than expected
https://bugs.webkit.org/show_bug.cgi?id=141886
<rdar://problem/19729246>

Reviewed by Tim Horton.

Use the same maximum canvas area for all ports,
which bumps the iOS limit up from 4580 * 1145
to 16k * 16k.

  • html/HTMLCanvasElement.cpp: Update MaxCanvasArea.
2:29 PM Changeset in webkit [180519] by andersca@apple.com
  • 11 edits
    1 copy in trunk

Add API for fetching website data records to _WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=141926

Reviewed by Beth Dakin.

Source/WebKit2:

  • UIProcess/API/APIWebsiteDataRecord.cpp:

(API::WebsiteDataRecord::create):
(API::WebsiteDataRecord::WebsiteDataRecord):

  • UIProcess/API/APIWebsiteDataRecord.h:

Update to take a WebsiteDataRecord parameter.

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

(-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
Call down to the WebsiteDataStore.

  • UIProcess/WebsiteData/WebsiteDataRecord.h: Added.

This will be the data-container part of WebsiteDataRecord, but it's currently empty.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
Just dispatch the completion handler for now.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Add new member.

  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

Tools:

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController fetchWebsiteData:]):
Add menu item to fetch and dump website data.

2:10 PM Changeset in webkit [180518] by saambarati1@gmail.com
  • 11 edits
    2 adds in trunk/Source/JavaScriptCore

Adjust the ranges of basic block statements in JSC's control flow profiler to be mutually exclusive
https://bugs.webkit.org/show_bug.cgi?id=141095

Reviewed by Mark Lam.

Suppose the control flow of a program forms basic block A with successor block

  1. A's end offset will be the *same* as B's start offset in the current architecture

of the control flow profiler. This makes reasoning about the text offsets of
the control flow profiler unsound. To make reasoning about offsets sound, all
basic block ranges should be mutually exclusive. All calls to emitProfileControlFlow
now pass in the *start* of a basic block as the text offset argument. This simplifies
all calls to emitProfileControlFlow because the previous implementation had a
lot of edge cases for getting the desired basic block text boundaries.

This patch also ensures that the basic block boundary of a block statement
is the exactly the block's open and close brace offsets (inclusive). For example,
in if/for/while statements. This also has the consequence that for statements
like "if (cond) foo();", the whitespace preceding "foo()" is not part of
the "foo()" basic block, but instead is part of the "if (cond) " basic block.
This is okay because these text offsets aren't meant to be human readable.
Instead, they reflect the text offsets of JSC's AST nodes. The Web Inspector
is the only client of this API and user of these text offsets and it is
not negatively effected by this new behavior.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::insertBasicBlockBoundariesForControlFlowProfiler):
When computing basic block boundaries in CodeBlock, we ensure that every
block's end offset is one less than its successor's start offset to
maintain that boundaries' ranges should be mutually exclusive.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
Because the control flow profiler needs to know which functions
have executed, we can't lazily create functions. This was a bug
from before that was hidden because the Type Profiler was always
enabled when the control flow profiler was enabled when profiling
was turned on from the Web Inspector. But, JSC allows for Control
Flow profiling to be turned on without Type Profiling, so we need
to ensure the Control Flow profiler has all the data it needs.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ConditionalNode::emitBytecode):
(JSC::IfElseNode::emitBytecode):
(JSC::WhileNode::emitBytecode):
(JSC::ForNode::emitBytecode):
(JSC::ForInNode::emitMultiLoopBytecode):
(JSC::ForOfNode::emitBytecode):
(JSC::TryNode::emitBytecode):

  • jsc.cpp:

(functionHasBasicBlockExecuted):
We now assert that the substring argument is indeed a substring
of the function argument's text because subtle bugs could be
introduced otherwise.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::setStartOffset):

  • parser/Nodes.h:

(JSC::Node::setStartOffset):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseBlockStatement):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseMemberExpression):
For the various function call AST nodes, their m_position member
variable is now the start of the entire function call expression
and not at the start of the open paren of the arguments list.

  • runtime/BasicBlockLocation.cpp:

(JSC::BasicBlockLocation::getExecutedRanges):

  • runtime/ControlFlowProfiler.cpp:

(JSC::ControlFlowProfiler::getBasicBlocksForSourceID):
Function ranges inserted as gaps should follow the same criteria
that the bytecode generator uses to ensure that basic blocks
start and end offsets are mutually exclusive.

  • tests/controlFlowProfiler/brace-location.js: Added.

(foo):
(bar):
(baz):
(testIf):
(testForRegular):
(testForIn):
(testForOf):
(testWhile):
(testIfNoBraces):
(testForRegularNoBraces):
(testForInNoBraces):
(testForOfNoBraces):
(testWhileNoBraces):

  • tests/controlFlowProfiler/conditional-expression.js: Added.

(foo):
(bar):
(baz):
(testConditionalBasic):
(testConditionalFunctionCall):

  • tests/controlFlowProfiler/driver/driver.js:

(checkBasicBlock):

2:08 PM Changeset in webkit [180517] by Chris Dumez
  • 24 edits in trunk/Source

Add support for diagnostic logging messages sampling
https://bugs.webkit.org/show_bug.cgi?id=141823
<rdar://problem/19899030>

Reviewed by Andreas Kling.

Add support for diagnostic logging messages sampling to decrease the
impact of diagnostic logging on CPU usage, while still getting useful
overall results. This patch adds a ShouldSample argument to
logDiagnosticMessage*() functions and logs 5% of the messages when
sampling. Sampling is turned on for keys that are known to be verbose
(e.g. per resource load logging).

On the page load test I am tracking, CPU usage caused by diagnostic
logging went down to 0.3% of UIProcess from 2.8% with this change.

Source/WebCore:

  • history/PageCache.cpp:

(WebCore::logPageCacheFailureDiagnosticMessage):
(WebCore::logCanCachePageDecision):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

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

(WebCore::logNavigation):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):

  • loader/ResourceLoader.cpp:

(WebCore::logResourceResponseSource):

  • loader/SubframeLoader.cpp:

(WebCore::logPluginRequest):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequest):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::logResourceLoaded):

  • loader/cache/CachedResource.cpp:

(WebCore::logResourceRevalidationReason):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::logMemoryCacheResourceRequest):

  • page/DiagnosticLoggingClient.h:

Source/WebKit2:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::logDiagnosticMessage):
(WebKit::NetworkProcess::logDiagnosticMessageWithResult):
(WebKit::NetworkProcess::logDiagnosticMessageWithValue):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:

(WebKit::NetworkCacheStatistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCacheStatistics::recordRetrievalFailure):
(WebKit::NetworkCacheStatistics::recordRetrievedCachedEntry):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::logDiagnosticMessage):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithResult):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithValue):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::shouldLogDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessageWithResult):
(WebKit::WebPageProxy::logDiagnosticMessageWithValue):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::willStartUserTriggeredZooming):

2:08 PM Changeset in webkit [180516] by mmirman@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

r9 is volatile on ARMv7 for iOS 3 and up.
https://bugs.webkit.org/show_bug.cgi?id=141489
rdar://problem/19432916

Reviewed by Michael Saboff.

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::calleeSaveRegisters): removed r9 from the list of ARMv7 callee save registers.

  • tests/stress/regress-141489.js: Added.

(foo):

1:56 PM Changeset in webkit [180515] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Add the necessary setupArgumentsWithExecState after bug141915
https://bugs.webkit.org/show_bug.cgi?id=141921

Reviewed by Michael Saboff.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

1:54 PM Changeset in webkit [180514] by fpizlo@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

Scopes should always be created with a previously-created symbol table rather than creating one on the fly
https://bugs.webkit.org/show_bug.cgi?id=141915

Reviewed by Mark Lam.

The main effect of this change is that pushing name scopes no longer requires creating symbol
tables on the fly.

This also makes it so that JSEnvironmentRecords must always have an a priori symbol table.

JSSegmentedVariableObject still does a hack where it creates a blank symbol table on-demand.
This is needed because that's what JSGlobalObject and all of its many subclasses want. That's
harmless; I mainly needed a prior symbol tables for JSEnvironmentRecords anyway.

  • bytecode/BytecodeList.json:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::BytecodeGenerator::emitPushCatchScope):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_push_name_scope):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_push_name_scope):

  • jit/JITOperations.cpp:

(JSC::pushNameScope):

  • jit/JITOperations.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):

  • runtime/JSCatchScope.h:

(JSC::JSCatchScope::JSCatchScope):
(JSC::JSCatchScope::create):

  • runtime/JSEnvironmentRecord.h:

(JSC::JSEnvironmentRecord::JSEnvironmentRecord):

  • runtime/JSFunctionNameScope.h:

(JSC::JSFunctionNameScope::JSFunctionNameScope):
(JSC::JSFunctionNameScope::create):

  • runtime/JSNameScope.cpp:

(JSC::JSNameScope::create):

  • runtime/JSNameScope.h:

(JSC::JSNameScope::create):
(JSC::JSNameScope::finishCreation):
(JSC::JSNameScope::JSNameScope):

  • runtime/JSSegmentedVariableObject.h:

(JSC::JSSegmentedVariableObject::finishCreation):

  • runtime/JSSymbolTableObject.h:

(JSC::JSSymbolTableObject::JSSymbolTableObject):
(JSC::JSSymbolTableObject::finishCreation): Deleted.

  • runtime/SymbolTable.h:

(JSC::SymbolTable::createNameScopeTable):

1:26 PM Changeset in webkit [180513] by andersca@apple.com
  • 4 edits
    5 copies in trunk/Source/WebKit2

Add a stubbed out _WKWebsiteDataRecord class
https://bugs.webkit.org/show_bug.cgi?id=141919

Reviewed by Beth Dakin.

Also add the corresponding API::WebsiteDataRecord C++ class. A website data record is going to represent
a set of associated websites and the types of website data that exist for said websites.

  • Shared/API/APIObject.h:
  • UIProcess/API/APIWebsiteDataRecord.cpp: Added.
  • UIProcess/API/APIWebsiteDataRecord.h: Added.
  • UIProcess/API/Cocoa/_WKWebsiteDataRecord.h: Added.
  • UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm: Added.
  • UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h: Added.
  • UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
  • WebKit2.xcodeproj/project.pbxproj:
1:05 PM Changeset in webkit [180512] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Reproducible crash in ViewGestureController::removeSwipeSnapshot()
https://bugs.webkit.org/show_bug.cgi?id=141917
<rdar://problem/19918590>

Reviewed by Brian Weinstein.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::removeSwipeSnapshot):
If the snapshot was purged and we're showing a white snapshot, we won't
be able to mark the (null) snapshot surface as volatile. Add a null check.

12:31 PM Changeset in webkit [180511] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

Drawing an SVG image into a canvas using drawImage() ignores globalAlpha.
https://bugs.webkit.org/show_bug.cgi?id=141729.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-02-23
Reviewed by Simon Fraser.

Source/WebCore:

When drawing an SVG image and the drawing context is set to be transparent,
make sure this transparency is applied to the compositing layer.

Test: svg/canvas/canvas-global-alpha-svg.html

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::setAlpha): Make setAlpha() calls the platform
function and sets 'm_state.alpha' to the input value.

(WebCore::GraphicsContext::alpha): Add a new function 'alpha()' which
returns the value of the global alpha.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContextState::GraphicsContextState): Add a new member
'alpha' to the context state since the getter function CGContextGetAlpha
is defined only in a private header file. Also move single line functions
from the source file to the header file.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::setPlatformAlpha):
(WebCore::GraphicsContext::setAlpha): Deleted.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::setPlatformAlpha):
(WebCore::GraphicsContext::setAlpha): Deleted.
Rename setAlpha() to setPlatformAlpha() in the platform files. Add setAlpha()
to the core file. setAlpha() will set the value of 'm_state.alpha' and call
setPlatformAlpha().

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::draw): If the drawing context is transparent, apply its
global alpha value to the compositing layer.

LayoutTests:

Add a new test which draws an SVG image on a canvas after setting its
globalAlpha to a value less than 1.

  • svg/canvas/canvas-global-alpha-svg-expected.html: Added.
  • svg/canvas/canvas-global-alpha-svg.html: Added.
11:27 AM Changeset in webkit [180510] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

Occasional crash in MediaPlayer::setPrivateBrowsingMode
https://bugs.webkit.org/show_bug.cgi?id=141910

Reviewed by Jer Noble.

No new tests, I was unable to reproduce the crash.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::stopPeriodicTimers): Use EveryDelayedAction instead of -1.
(WebCore::HTMLMediaElement::stop): Call clearMediaPlayer instead of just setting m_player

to NULL.

  • html/HTMLMediaElement.h: Define EveryDelayedAction.
10:53 AM Changeset in webkit [180509] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

[iOS] run-webkit-tests --leaks is broken because IOSSimulatorPort has no is_snowleopard attribute
<http://webkit.org/b/141884>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/port/leakdetector.py:

(LeakDetector._callstacks_to_exclude_from_leaks): Remove
snowleopard, lion and older leaks. Add known leak for
mavericks, but check Port.operating_system before calling
Port.is_mavericks.

  • Scripts/webkitpy/port/mac.py:

(MacPort.is_snowleopard): Delete.
(MacPort.is_lion): Delete.
(MacPort.is_mavericks): Add.

10:45 AM Changeset in webkit [180508] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Replace another straight-up cast with a toImpl call
https://bugs.webkit.org/show_bug.cgi?id=141914
rdar://problem/19913016

Reviewed by Andreas Kling.

This fixes a problem where Mail would not display message bodies.

  • UIProcess/API/Cocoa/WKConnection.mm:

(didReceiveMessage):

10:17 AM Changeset in webkit [180507] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a comment to clarify that the test was taken from the bug report, in response to
feedback from Michael Saboff and Benjamin Poulain.

  • tests/stress/regress-141883.js:
10:13 AM Changeset in webkit [180506] by fpizlo@apple.com
  • 10 edits
    1 add in trunk/Source/JavaScriptCore

Function name scope is only created on the function instance that triggered parsing rather than on every function instance that needs it
https://bugs.webkit.org/show_bug.cgi?id=141881

Reviewed by Michael Saboff.

Previously we only created the function name scope in a way that made it visible to the
function that triggered parsing/linking of the executable/codeBlock, and to the linker for
that code block. This was sort of the bare minimum for the feature to appear to work right to
synthetic tests.

There are two valid "times" to create the function name scope. Either it's created for each
JSFunction instance that needs a name scope, or it's created for each execution of such a
JSFunction. This change chooses the latter, because it happens to be the easiest to implement
with what we have right now. I opened a bug for optimizing this if we ever need to:
https://bugs.webkit.org/show_bug.cgi?id=141887.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • runtime/ArrayPrototype.cpp:

(JSC::isNumericCompareFunction):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::prepareForExecutionImpl):
(JSC::FunctionExecutable::FunctionExecutable):

  • runtime/Executable.h:

(JSC::ScriptExecutable::prepareForExecution):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::addNameScopeIfNeeded): Deleted.

  • runtime/JSFunction.h:
  • tests/stress/function-name-scope.js: Added.

(check.verify):
(check):

10:03 AM Changeset in webkit [180505] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Crash in DFGFrozenValue
https://bugs.webkit.org/show_bug.cgi?id=141883

Reviewed by Benjamin Poulain.

If a value might be a cell, then we have to have Graph freeze it rather than trying to
create the FrozenValue directly. Creating it directly is just an optimization for when you
know for sure that it cannot be a cell.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • tests/stress/regress-141883.js: Added. Hacked the original test to be faster while still crashing before this fix.
9:42 AM Changeset in webkit [180504] by ap@apple.com
  • 4 edits in trunk/Tools

build.webkit.org/dashboard should filter out commits to other branches
https://bugs.webkit.org/show_bug.cgi?id=140362

Reviewed by Tim Horton.

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

(BuildbotQueue):

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

(BuildbotQueueView.prototype._presentPopoverForPendingCommits):
(BuildbotQueueView.prototype._presentPopoverForRevisionRange):
(BuildbotQueueView.prototype._revisionContentWithPopoverForIteration):
(BuildbotQueueView.prototype.revisionContentForIteration):
(BuildbotQueueView.prototype._appendPendingRevisionCount): Deleted.
(BuildbotQueueView.prototype._popoverLinesForCommitRange): Deleted.
(BuildbotQueueView.prototype._revisionPopoverContentForIteration): Deleted.

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

(Trac.prototype.get oldestRecordedRevisionNumber):
(Trac.prototype.commitsOnBranch):
(Trac.prototype._xmlTimelineURL):
(Trac.prototype._convertCommitInfoElementToObject):
(Trac.prototype._update):
(Trac.prototype.startPeriodicUpdates):
(Trac.prototype.loadMoreHistoricalData):
(Trac.prototype.update): Deleted.

8:43 AM Changeset in webkit [180503] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] Redundant track language notifications
https://bugs.webkit.org/show_bug.cgi?id=141908

Reviewed by Žan Doberšek.

Invoke languageChanged only if the language code actually
changed.

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):

8:06 AM Changeset in webkit [180502] by commit-queue@webkit.org
  • 2 edits in trunk

[GTK] Fails to compile with cmake 3.2.x
https://bugs.webkit.org/show_bug.cgi?id=141796

With cmake 3.2.x we have to explicitly ask for X11 otherwise the
X11_X11_LIB variable won't be set thus the X11 linker flags won't be
added and the build will fail.

Patch by Tomas Popela <tpopela@redhat.com> on 2015-02-23
Reviewed by Martin Robinson.

  • Source/cmake/OptionsGTK.cmake:
7:21 AM Changeset in webkit [180501] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] Crash when media player is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=141248

Patch by peavo@outlook.com <peavo@outlook.com> on 2015-02-23
Reviewed by Darin Adler.

A COM smart pointer is both released, and set to null.
This means that the COM Release method is called twice, causing a crash.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::endSession):

2:28 AM Changeset in webkit [180500] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebCore

[CSS Grid Layout] Remove old FIXME in RenderGrid::placeItemsOnGrid()
https://bugs.webkit.org/show_bug.cgi?id=141899

Reviewed by Sergio Villar Senin.

There was a FIXME about not re-resolving positions if the grid is grown during
auto-placement. But as the spec has changed [1] and you can only refer to the
explicit grid (even if you use for example grid-column: 1 / -1). It seems that
we can get rid of this FIXME as it's not a causing a problem anymore.

[1] http://dev.w3.org/csswg/css-grid/#grid-placement-int

No new tests (no change in behavior).

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeItemsOnGrid): Remove FIXME.

1:44 AM WebKitGTK/2.6.x edited by sergio@webkit.org
(diff)
12:42 AM Changeset in webkit [180499] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Mark tests of css3 overflow, border to ImageOnlyFailure.

  • platform/efl/TestExpectations:
12:21 AM Changeset in webkit [180498] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Add new failure tests related to attachment, editing, and compositing.

  • platform/efl/TestExpectations:

Feb 22, 2015:

11:45 PM Changeset in webkit [180497] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed, EFL gardening. Mark sub-pixel and disk cache tests to failure.

  • platform/efl/TestExpectations:
10:59 PM Changeset in webkit [180496] by bshafiei@apple.com
  • 5 edits in branches/safari-600.4.10-branch/Source

Versioning.

10:42 PM Changeset in webkit [180495] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.4.10.4

New tag.

9:23 PM Changeset in webkit [180494] by bshafiei@apple.com
  • 4 edits
    2 adds in branches/safari-600.1.4.15-branch/Source/WebCore

Merged r180183, r180187. rdar://problem/19871089

6:38 PM Changeset in webkit [180493] by gyuyoung.kim@samsung.com
  • 13 edits in trunk/Source/WebCore

Move std::unique_ptr<>|make_unique<> to WebCore/page/scrolling
https://bugs.webkit.org/show_bug.cgi?id=137877

Reviewed by Sam Weinig.

Clean up unnecessary OwnPtr.h|PassOwnPtr.h includes as well as
change OwnPtr with std::unique_ptr<>|make_unique<>.

No new tests, no behavior changes.

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingStateFixedNode.cpp:
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:
  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::appendChild):

  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingStateOverflowScrollingNode.cpp:
  • page/scrolling/ScrollingStateScrollingNode.cpp:
  • page/scrolling/ScrollingStateStickyNode.cpp:
  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::appendChild):

  • page/scrolling/ScrollingTreeNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.h:
5:55 PM Changeset in webkit [180492] by dino@apple.com
  • 5 edits in trunk

Print a console warning when HTMLCanvasElement exceeds the maximum size
https://bugs.webkit.org/show_bug.cgi?id=141861
<rdar://problem/19729145>

Reviewed by Simon Fraser.

Source/WebCore:

Add a warning if we ever try to create a canvas that is
too big.

No test because:

  1. We can't ref-test against console messages.
  2. The output is platform specific.
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer):

LayoutTests:

Add error message to expected results.

  • fast/canvas/canvas-toDataURL-crash-expected.txt:
  • fast/canvas/pattern-too-large-to-create-expected.txt:
5:34 PM Changeset in webkit [180491] by weinig@apple.com
  • 2 edits in trunk/LayoutTests

Update results for Mac Yosemite.

  • platform/mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
3:33 PM Changeset in webkit [180490] by weinig@apple.com
  • 35 edits in trunk

Convert the caps lock indicator to be implemented using the shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=141868

Reviewed by Dan Bernstein.

Source/WebCore:

  • Re-adds 'caps-lock-indicator' as a valid -webkit-appearance value. It was removed in r74099 to work around a site bug, that should not be a problem anymore.
  • Converts the caps lock indicator to be implemented as part of the shadow DOM rather than a paint time effect. This gives the proper overflow behavior (it now clips) and behaves correctly in RTL.
  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
Make 'caps-lock-indicator' a valid -webkit-appearance value.

  • css/CSSValueKeywords.in:

Remove comment that indicated that caps-lock-indicator was not a valid
-webkit-appearance value.

  • css/html.css:

(input::-webkit-caps-lock-indicator):
Add new default style for the new -webkit-caps-lock-indicator pseudo-element. The
trick employed here is to use a content: image to both implement the painting of
the caps lock indicator, and to get the sizing right (shrink-to-fit, height: 100%).

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::capsLockIndicatorElement):
(WebCore::HTMLInputElement::capsLockStateMayHaveChanged):

  • html/HTMLInputElement.h:
  • html/InputType.cpp:

(WebCore::InputType::capsLockStateMayHaveChanged):

  • html/InputType.h:

(WebCore::InputType::capsLockIndicatorElement):
Pipe notification of changes in the caps locks state to the <input> element
rather than the RenderTextControlSingleLine. Also add an accessor for the caps
lock indicator element in the shadow DOM.

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::forwardEvent):
(WebCore::TextFieldInputType::shouldHaveCapsLockIndicator):
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::capsLockIndicatorElement):
(WebCore::TextFieldInputType::destroyShadowSubtree):
(WebCore::TextFieldInputType::shouldDrawCapsLockIndicator):
(WebCore::TextFieldInputType::capsLockStateMayHaveChanged):

  • html/TextFieldInputType.h:

Add a new element to the text field shadow DOM to act as the caps lock indicator.
Give it a pseudo-element ID of -webkit-caps-lock-indicator so it can be referenced
from CSS. The element is always in the DOM for a password field. It toggles between
display: none and display: block depending on the state of the caps lock key.

  • page/EventHandler.cpp:

(WebCore::EventHandler::capsLockStateMayHaveChanged):
Pipe notification of changes in the caps locks state to the <input> element
rather than the RenderTextControlSingleLine.

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
(WebCore::RenderTextControlSingleLine::paint): Deleted.
(WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged): Deleted.

  • rendering/RenderTextControlSingleLine.h:

Remove logic for drawing the caps lock indicator.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintMeter):
(WebCore::RenderTheme::adjustCapsLockIndicatorStyle):
(WebCore::RenderTheme::paintCapsLockIndicator):
(WebCore::RenderTheme::shouldHaveCapsLockIndicator):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::paintCapsLockIndicator): Deleted.

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::shouldHaveCapsLockIndicator):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::shouldHaveCapsLockIndicator):
(WebCore::RenderThemeMac::paintCapsLockIndicator): Deleted.
Now that the caps lock indicator is implemented like other aspects of form controls,
the theme code can be converted to be similar as well.

LayoutTests:

  • fast/css/appearance-caps-lock-indicator-expected.txt:
  • fast/css/appearance-caps-lock-indicator.html:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/input-appearance-height-expected.txt:
  • platform/mac/fast/forms/input-value-expected.txt:
  • platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/mac/fast/forms/validation-message-appearance-expected.txt:
12:22 PM Changeset in webkit [180489] by ddkilzer@apple.com
  • 5 edits
    1 delete in trunk/LayoutTests

[iOS] Gardening: Clean up timeout test for ios-simulator-{wk1,wk2}

Changes for WK1 results:

  • inspector/css/stylesheet-with-mutations.html
  • Skip for both WK1 and WK2. Already marked as Skip on mac.
  • fast/events/dispatch-message-string-data.html
  • Marked as Slow for both WK1 and WK2. Previously marked as Skip via override on WK2 and marked as Failure on both.

Changes for WK2:

  • inspector/css/selector-dynamic-specificity.html
  • Skip on WK1 and WK2. Already marked as Skip on mac and win. Updated bug number for win TestExpectations.
  • inspector/css/stylesheet-with-mutations.html
  • See above.
  • fast/dynamic/window-resize-scrollbars-test.html
  • Skip on WK1 and WK2 since iOS does not support window resizing and test always times out. Remove old test results.
  • fast/images/animated-gif-window-resizing.html
  • Skip on WK1 and WK2 since iOS does not support window resizing and test always times out. Previously skipped on WK1 only.
  • fast/events/autoscroll-should-not-stop-on-keypress.html
  • Skip on WK1 and WK2 due to always timing out. Previously skipped on WK1 only.
  • http/tests/cache/history-navigation-no-resource-revalidation.html
  • Skip on WK2 due to always timing out. Does not timeout on WK1.
  • http/tests/navigation/target-blank-opener-post.html
  • Ditto.
  • svg/animations/use-animate-width-and-height.html
  • Ditto.
  • platform/ios-sim-deprecated/fast/dynamic/window-resize-scrollbars-test-expected.txt: Removed.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
10:01 AM Changeset in webkit [180488] by ddkilzer@apple.com
  • 1 edit
    5 moves
    1 add in trunk/LayoutTests

[iOS] Gardening: Add missing results for WK2 tests

In all cases, WK1 and WK2 results were the same.

  • platform/ios-simulator/fast/block/positioning/vertical-rl/001-expected.txt: Rename from LayoutTests/platform/ios-sim-deprecated/fast/block/positioning/vertical-rl/001-expected.txt.
  • platform/ios-simulator/fast/body-propagation/background-color/001-xhtml-expected.txt: Rename from LayoutTests/platform/ios-sim-deprecated/fast/body-propagation/background-color/001-xhtml-expected.txt.
  • platform/ios-simulator/fast/body-propagation/background-image/001-xhtml-expected.txt: Rename from LayoutTests/platform/ios-sim-deprecated/fast/body-propagation/background-image/001-xhtml-expected.txt.
  • platform/ios-simulator/fast/body-propagation/overflow/001-xhtml-expected.txt: Rename from LayoutTests/platform/ios-sim-deprecated/fast/body-propagation/overflow/001-xhtml-expected.txt.
  • platform/ios-simulator/fast/repaint/body-background-image-expected.txt: Rename from LayoutTests/platform/ios-sim-deprecated/fast/repaint/body-background-image-expected.txt.
9:26 AM Changeset in webkit [180487] by ddkilzer@apple.com
  • 1 edit
    1 move
    1 add in trunk/LayoutTests

[iOS] Gardening: Add missing results for WK1 tests

  • platform/ios-simulator/fast/css/css2-system-fonts-expected.txt: Rename from LayoutTests/platform/ios-simulator-wk2/fast/css/css2-system-fonts-expected.txt.
  • Platform-specific results are the same for WK1 and WK2. Regressed in r179196: shared ios-simulator results should not have been removed.
  • platform/ios-simulator/fast/css/focus-ring-exists-for-search-field-expected.txt: Add.
  • Platform-specific results were missing for both WK1 and WK2. Regressed in r179796: no ios-simulator results landed.
8:49 AM Changeset in webkit [180486] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Lazily Create GeneralTreeElement Status Elements
https://bugs.webkit.org/show_bug.cgi?id=141873

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-22
Reviewed by Timothy Hatcher.

  • UserInterface/Views/GeneralTreeElement.js:

(WebInspector.GeneralTreeElement.prototype.set status):
(WebInspector.GeneralTreeElement.prototype.onattach):
(WebInspector.GeneralTreeElement.prototype._createElementsIfNeeded):
(WebInspector.GeneralTreeElement.prototype._updateStatusElement):
Lazily create and attach the status element container if
"this.status" is actually used by a GeneralTreeElement subclass.

  • UserInterface/Views/ResourceTreeElement.js:

(WebInspector.ResourceTreeElement.prototype._updateStatus):
Set to the empty string instead of null to avoid inadvertently
creating status elements for no reason.

8:47 AM Changeset in webkit [180485] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Give ObjectPreviewView a showTitle/showPreview toggle
https://bugs.webkit.org/show_bug.cgi?id=141874

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-22
Reviewed by Timothy Hatcher.

Refactor ObjectTree/ObjectPreview a bit to make it easier
to use expanding/collapsing previews in other places.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView):
(WebInspector.ObjectPreviewView.prototype.showTitle):
(WebInspector.ObjectPreviewView.prototype.showPreview):
Maintain both a titleElement and previewElement. Show only
one at a time based on showTitle/showPreview APIs.

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree.expanded .object-preview):

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView):
(WebInspector.ObjectTreeView.prototype.expand):
(WebInspector.ObjectTreeView.prototype.collapse):
If we have a preview, let PreviewView handle toggling
between a title and preview display.

8:43 AM Changeset in webkit [180484] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Make Console UI icons / lines slightly larger
https://bugs.webkit.org/show_bug.cgi?id=141876

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-22
Reviewed by Timothy Hatcher.

In preparation for a new ObjectTree design with larger icons,
increase the size of existing output in the Console / Log
so they don't look so small in comparison. This:

  • bumps minimum height of lines from 16px to 21px
  • 10x10 icons to be 12x12
  • recenters icons to match console prompt
  • realigns icons with console log / object output
  • UserInterface/Views/LogContentView.css:

(.console-user-command-result.console-log-level::before):
(.console-message, .console-user-command):
(.console-item::before):
(.console-user-command::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level).console-message):
(:matches(.console-warning-level, .console-error-level, .console-log-level)::before):
(.outline-disclosure li):
(.outline-disclosure .expanded li):
Fix a case breaking single-line message height.
Only add padding to expanded trees, not collapsed trees.

  • UserInterface/Views/QuickConsole.css:

(.quick-console > .console-prompt::before):

Note: See TracTimeline for information about the timeline view.