Timeline



Mar 2, 2014:

11:10 PM Changeset in webkit [164972] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebCore

Add a fallback path for compiling the remaining attribute checkers
https://bugs.webkit.org/show_bug.cgi?id=129580

Reviewed by Darin Adler.

The remaining attribute checkers appear to be less common than the simple value match.
This patch adds them to SelectorCompiler for completeness but no attempt is made at optimizing them,
they all default to function calls.

If the assumption that those selectors are not common turn out to be incorrect, we should see
the function calls in profiles and optimize them as needed.

  • css/SelectorChecker.cpp:

(WebCore::attributeValueMatches):
If we get anything but attribute match here, something has gone horribly wrong. Update the code
to fail if that were to happen.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
Add the missing match type to the selector fragment.

Begin, End, Contain cannot match an empty value per specification. We can test that at compile time
and fail immediately. See http://www.w3.org/TR/css3-selectors/#attribute-substrings

List has the extra requirement that a value containing a space does not match anything. It also cannot
match with an empty string. See http://www.w3.org/TR/css3-selectors/#attribute-representation

(WebCore::SelectorCompiler::attributeValueBeginsWith):
(WebCore::SelectorCompiler::attributeValueContains):
(WebCore::SelectorCompiler::attributeValueEndsWith):
(WebCore::SelectorCompiler::attributeValueMatchHyphenRule):
(WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
The slow fallbacks.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
A generic code generator making function call to match an attribute value.

10:01 PM Changeset in webkit [164971] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

PolymorphicPutByIdList should have a simpler construction API with basically a single entrypoint
https://bugs.webkit.org/show_bug.cgi?id=129591

Reviewed by Michael Saboff.

  • bytecode/PolymorphicPutByIdList.cpp:

(JSC::PutByIdAccess::fromStructureStubInfo): This function can figure out the slow path target for itself.
(JSC::PolymorphicPutByIdList::PolymorphicPutByIdList): This constuctor should be private, only from() should call it.
(JSC::PolymorphicPutByIdList::from):

  • bytecode/PolymorphicPutByIdList.h:

(JSC::PutByIdAccess::stubRoutine):

  • jit/Repatch.cpp:

(JSC::tryBuildPutByIdList): Don't pass the slow path target since it can be derived from the stubInfo.

9:42 PM Changeset in webkit [164970] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Debugging improvements from my gbemu investigation session
https://bugs.webkit.org/show_bug.cgi?id=129599

Reviewed by Mark Lam.

Various improvements from when I was investigating bug 129411.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::optimizationThresholdScalingFactor): Make the dataLog() statement print the actual multiplier.

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionDescribe): Make describe() return a string rather than printing the string.
(functionDescribeArray): Like describe(), but prints details about arrays.

9:33 PM Changeset in webkit [164969] by akling@apple.com
  • 2 edits in trunk/Source/WebKit

Blind Windows build fix.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

Tweak JSDOMWindowBase::commonVM() return type to be a reference.

9:10 PM Changeset in webkit [164968] by akling@apple.com
  • 45 edits in trunk/Source

JSDOMWindow::commonVM() should return a reference.
<https://webkit.org/b/129293>

Source/JavaScriptCore:

Added a DropAllLocks constructor that takes VM& without null checks.

Reviewed by Geoff Garen.

Source/WebCore:

Since this function always returns a VM and never null, make it
return a reference instead. There are more VM getters that never
return null, but I tried to keep the patch from snowballing.

Reviewed by Geoff Garen.

8:49 PM Changeset in webkit [164967] by timothy@apple.com
  • 5 edits in trunk

Remove ASSERT in ~IDBRequest since it is firing during legitimate uses in Web Inspector.

Adding the ASSERT back is tracked by https://webkit.org/b/129593.

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

Reviewed by Sam Weinig.

Source/WebCore:

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::~IDBRequest):

LayoutTests:

  • TestExpectations: Remove skipped tests.
  • inspector-protocol/model/probe-manager-add-remove-actions-expected.txt: Rebaselined.
7:42 PM Changeset in webkit [164966] by Brian Burg
  • 4 edits in trunk

Web Inspector model tests load wrong inspector page under WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=129460

Reviewed by Dan Bernstein.

Tools:

Don't unconditionally open the inspector before running an inspector test.
Instead, the test should request that the inspector open when it's ready.

This change was lost during a rebase, but is the same change made to
DumpRenderTree.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::invoke):

LayoutTests:

Stop skipping inspector/test-harness-trivially-works.html.

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

Unreviewed, rolling out r164961.
http://trac.webkit.org/changeset/164961
https://bugs.webkit.org/show_bug.cgi?id=129596

Caused many assertion failures (Requested by ap on #webkit).

  • css/SelectorChecker.cpp:

(WebCore::attributeValueMatches):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):

6:30 PM Changeset in webkit [164964] by Darin Adler
  • 33 edits in trunk/Source

Streamline use of TextIterator, cutting down includes and use of soon-to-be-deleted functions
https://bugs.webkit.org/show_bug.cgi?id=129592

Reviewed by Sam Weinig.

Source/WebCore:

  • WebCore.exp.in: Re-sorted this file. Not sure how it got unsorted.
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::stringForVisiblePositionRange): Call TextIterator::text
instead of TextIterator::length. Also removed unneeded special case for empty string
and exception code.
(WebCore::AccessibilityObject::lengthForVisiblePositionRange): Ditto.

  • accessibility/AccessibilityObject.h: Include TextIteratorBehavior.h instead of

TextIterator.h.

  • accessibility/AccessibilityRenderObject.cpp: Include TextIterator.h.
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm: Removed unneeded

TextIterator.h include.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): Call
TextIterator::text instead of TextIterator::length.

  • dom/Element.cpp: Include TextIterator.h.
  • dom/Node.cpp: Include Range.h.
  • dom/Position.cpp:

(WebCore::Position::isCandidate): Cast to RenderBlockFlow since that's what the
type check above does. Use a return statement instead of an else for better flow.
(WebCore::Position::leadingWhitespacePosition): Call
deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).
(WebCore::Position::trailingWhitespacePosition): Ditto.

  • dom/Range.cpp:

(WebCore::Range::firstNode): Added a FIXME about code that clearly does not
belong. This is something we really need to fix.

  • editing/AlternativeTextController.cpp: Include TextIterator.h.
  • editing/ApplyStyleCommand.cpp: Ditto.
  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit): Call
deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).

  • editing/Editor.h: Include TextIteratorBehavior.h instead of TextIterator.h.
  • editing/HTMLInterchange.cpp:

(WebCore::convertHTMLTextToInterchangeFormat): Call
deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).

  • editing/SpellingCorrectionCommand.cpp: Include TextIterator.h.
  • editing/TextIterator.h: Moved isCollapsibleWhitespace from here into

htmlediting.h and renamed it deprecatedIsCollapsibleWhitespace.

  • editing/TextIterator.cpp: Call

deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).

  • editing/TypingCommand.cpp: Include TextIterator.h.
  • editing/VisibleUnits.cpp:

(WebCore::previousBoundary): Call TextIterator::text instead of
TextIterator::length.
(WebCore::nextBoundary): Ditto.

  • editing/htmlediting.cpp: Include TextIterator.h.
  • editing/htmlediting.h: Removed non-helpful section comments.

Added FIXME about isWhitespace. Added deprecatedIsCollapsibleWhitespace,
formerly not deprecated and in TextIterator.h.

  • editing/markup.cpp: Include TextIterator.h.
  • html/HTMLTextAreaElement.cpp: Include TextIterator.h.
  • page/ContextMenuController.cpp:

(WebCore::selectionContainsPossibleWord): Call TextIterator::text
instead of TextIterator::length and TextIterator::characterAt.

  • page/EventHandler.cpp: Sorted conditional includes alphabetically by condition.
  • platform/mac/HTMLConverter.mm:

(+[WebHTMLConverter editingAttributedStringFromRange:]): Call TextIterator::text
instead of TextIterator::length.

Source/WebKit/win:

  • WebCoreSupport/WebEditorClient.cpp: Added now-needed include.

Source/WebKit2:

  • UIProcess/WebPageProxy.cpp: Added now-needed include.
  • WebProcess/WebPage/WebPage.cpp: Ditto.
6:27 PM Debugging With Xcode edited by Brian Burg
WKTR debugging tips (diff)
6:22 PM Debugging With Xcode edited by Brian Burg
(diff)
6:20 PM Debugging With LLDB or GDB edited by Brian Burg
(diff)
6:15 PM Debugging With Xcode created by Brian Burg
6:11 PM Debugging With LLDB or GDB created by Brian Burg
6:07 PM Changeset in webkit [164963] by enrica@apple.com
  • 7 edits in trunk/Source/WebKit2

[iOS WebKit2] Keyboard deadlock when accepting/dismissing autocorrection.
https://bugs.webkit.org/show_bug.cgi?id=129594
<rdar://problem/16168978>

Reviewed by Sam Weinig.

As a temporary fix, we are using a synchronous
message to accept autocorrection until we implement
a solution that processes these requests on a thread that
is not the main thread.

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

(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applyAutocorrection):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applyAutocorrection):
(WebKit::WebPage::syncApplyAutocorrection):

6:05 PM WikiStart edited by Brian Burg
(diff)
6:03 PM WikiStart edited by Brian Burg
Simplify the different platform debugging page links (diff)
6:00 PM Changeset in webkit [164962] by ljaehun.lim@samsung.com
  • 3 edits in trunk/Source/WTF

[EFL] Remove m_initEfl from RunLoop.
https://bugs.webkit.org/show_bug.cgi?id=129568

Reviewed by Gyuyoung Kim.

We don't use m_initEfl except RunLoop constructor.

  • wtf/RunLoop.h:
  • wtf/efl/RunLoopEfl.cpp:

(WTF::RunLoop::RunLoop):

5:56 PM Debugging With Visual Studio edited by Brian Burg
merge WK2 instructions (diff)
5:52 PM WikiStart edited by Brian Burg
(diff)
5:52 PM Debugging With Visual Studio edited by Brian Burg
Fold in details from separate page about DumpRenderTree + VS (diff)
5:48 PM Changeset in webkit [164961] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebCore

Add a fallback path for compiling the remaining attribute checkers
https://bugs.webkit.org/show_bug.cgi?id=129580

Reviewed by Darin Adler.

The remaining attribute checkers appear to be less common than the simple value match.
This patch adds them to SelectorCompiler for completeness but no attempt is made at optimizing them,
they all default to function calls.

If the assumption that those selectors are not common turn out to be incorrect, we should see
the function calls in profiles and optimize them as needed.

  • css/SelectorChecker.cpp:

(WebCore::attributeValueMatches):
If we get anything but attribute match here, something has gone horribly wrong. Update the code
to fail if that were to happen.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
Add the missing match type to the selector fragment.

Begin, End, Contain cannot match an empty value per specification. We can test that at compile time
and fail immediately. See http://www.w3.org/TR/css3-selectors/#attribute-substrings

List has the extra requirement that a value containing a space does not match anything. It also cannot
match with an empty string. See http://www.w3.org/TR/css3-selectors/#attribute-representation

(WebCore::SelectorCompiler::attributeValueBeginsWith):
(WebCore::SelectorCompiler::attributeValueContains):
(WebCore::SelectorCompiler::attributeValueEndsWith):
(WebCore::SelectorCompiler::attributeValueMatchHyphenRule):
(WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
The slow fallbacks.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
A generic code generator making function call to match an attribute value.

5:44 PM Debugging With Visual Studio edited by Brian Burg
restructure sections into wk1/wk2/test runners/misc. (diff)
5:37 PM Changeset in webkit [164960] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fix build for case-sensitive file systems.

  • platform/UserActivity.h: Runloop -> RunLoop.
5:24 PM Changeset in webkit [164959] by barraclough@apple.com
  • 3 edits in trunk/Source/WebCore

HysteresisTimer should use WebCore::Timer
https://bugs.webkit.org/show_bug.cgi?id=129587

Reviewed by Sam Weinig.

  • platform/HysteresisActivity.h:

(WebCore::HysteresisActivity::HysteresisActivity):
(WebCore::HysteresisActivity::hysteresisTimerFired):

  • RunLoop::Timer -> WebCore::Timer.
  • platform/UserActivity.h:
5:16 PM Changeset in webkit [164958] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the 32-bit build.

  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(adjustedFontSize):

5:02 PM Changeset in webkit [164957] by Darin Adler
  • 10 edits
    1 add in trunk

Split TextIteratorBehavior into a separate header
https://bugs.webkit.org/show_bug.cgi?id=129578

Reviewed by Sam Weinig.

Source/WebCore:

This is in preparation to greatly cut down on includes of TextIterator.h.

  • GNUmakefile.list.am: Added new header.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • editing/FindOptions.h: Changed typedef to unsigned char;

there is no reason to store these in a 32-bit integer.

  • editing/TextIterator.h: Added include of TextIteratorBehavior.h

and moved comments about the meanings of flag bits to their definition.

  • editing/TextIteratorBehavior.h: Added.
  • WebCore.exp.in: Updated for type changes.

Tools:

  • Scripts/sort-export-file: Added special cases to the script so you can just paste link errors

from WebKit in and the script will add them in as unconditional exports. This makes the "add"
task easy, but the remove is still a bit of a pain.

4:30 PM Changeset in webkit [164956] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

Page Cache is not enabled when using the modern WebKit2 API
https://bugs.webkit.org/show_bug.cgi?id=129585

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool initWithConfiguration:]):
Default to CacheModelPrimaryWebBrowser until there is a way to configure it.

4:19 PM Changeset in webkit [164955] by enrica@apple.com
  • 17 edits
    3 adds in trunk/Source

[iOS WebKit2] Form controls handling
https://bugs.webkit.org/show_bug.cgi?id=129344
<rdar://problem/16053643>

Reviewed by Simon Fraser.

Source/WebCore:

Updates localizable strings and adds some exports.

  • English.lproj/Localizable.strings:
  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

Adding support for select elements on iOS.
There is full support on iPad, while on iPhone it is
still limited to single select with no groups.
The change also fixes the issue of the keyboard appearing
on screen for types of elements that are implemented with
a popover or a picker.

  • Scripts/webkit2/messages.py:
  • Shared/AssistedNodeInformation.cpp:

(WebKit::WKOptionItem::encode):
(WebKit::WKOptionItem::decode):
(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):

  • Shared/AssistedNodeInformation.h:

(WebKit::WKOptionItem::WKOptionItem):

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

(-[WKContentView inputView]):
(-[WKContentView assistedNodeSelectOptions]):
(-[WKContentView _startAssistingNode:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setAssistedNodeSelectedIndex):

  • UIProcess/ios/forms/WKFormSelectControl.h:
  • UIProcess/ios/forms/WKFormSelectControl.mm: Added.

(-[WKFormSelectControl initWithView:]):
(+[WKFormSelectControl createPeripheralWithView:]):
(-[WKFormSelectControl assistantView]):
(-[WKFormSelectControl beginEditing]):
(-[WKFormSelectControl endEditing]):

  • UIProcess/ios/forms/WKFormSelectPicker.mm: Added.

(-[WKSelectSinglePicker initWithView:]):
(-[WKSelectSinglePicker dealloc]):
(-[WKSelectSinglePicker controlView]):
(-[WKSelectSinglePicker controlBeginEditing]):
(-[WKSelectSinglePicker controlEndEditing]):
(-[WKSelectSinglePicker numberOfComponentsInPickerView:]):
(stringByTrimmingWhitespaceAndNewlines):
(-[WKSelectSinglePicker pickerView:numberOfRowsInComponent:]):
(-[WKSelectSinglePicker pickerView:attributedTitleForRow:forComponent:]):
(-[WKSelectSinglePicker pickerView:didSelectRow:inComponent:]):

  • UIProcess/ios/forms/WKFormSelectPopover.mm: Added.

(stringWithWritingDirection):
(adjustedFontSize):
(-[WKSelectTableViewController initWithView:hasGroups:]):
(-[WKSelectTableViewController viewWillAppear:]):
(-[WKSelectTableViewController numberOfSectionsInTableView:]):
(-[WKSelectTableViewController tableView:numberOfRowsInSection:]):
(-[WKSelectTableViewController tableView:titleForHeaderInSection:]):
(-[WKSelectTableViewController populateCell:withItem:]):
(-[WKSelectTableViewController findItemIndexAt:]):
(-[WKSelectTableViewController findItemAt:]):
(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
(-[WKSelectTableViewController tableView:didSelectRowAtIndexPath:]):
(-[WKSelectTableViewController hasText]):
(-[WKSelectTableViewController insertText:]):
(-[WKSelectTableViewController deleteBackward]):
(-[WKSelectPopover initWithView:hasGroups:]):
(-[WKSelectPopover dealloc]):
(-[WKSelectPopover controlView]):
(-[WKSelectPopover controlBeginEditing]):
(-[WKSelectPopover controlEndEditing]):
(-[WKSelectPopover _userActionDismissedPopover:]):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setAssistedNodeSelectedIndex):
(WebKit::innerFrameQuad):
(WebKit::WebPage::getPositionInformation):
(WebKit::hasFocusableNode):
(WebKit::WebPage::getAssistedNodeInformation):
(WebKit::WebPage::elementDidFocus):

4:03 PM Changeset in webkit [164954] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

CodeBlock::hasDebuggerRequests() should returning a bool instead of an int.
<https://webkit.org/b/129584>

Reviewed by Darin Adler.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::hasDebuggerRequests):

3:14 PM Changeset in webkit [164953] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Clean up use of Options::enableConcurrentJIT().
<https://webkit.org/b/129582>

Reviewed by Filip Pizlo.

DFG Driver was conditionally checking Options::enableConcurrentJIT()
only if ENABLE(CONCURRENT_JIT). Otherwise, it bypasses it with a local
enableConcurrentJIT set to false.

Instead we should configure Options::enableConcurrentJIT() to be false
in Options.cpp if !ENABLE(CONCURRENT_JIT), and DFG Driver should always
check Options::enableConcurrentJIT(). This makes the code read a little
cleaner.

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

3:13 PM Changeset in webkit [164952] by benjamin@webkit.org
  • 10 edits in trunk/Source

[iOS][WK2] Pages using tiled compositing layers allocate too many tiles on zoom
https://bugs.webkit.org/show_bug.cgi?id=129471

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

Source/WebCore:

A few issues with TileController were causing sublayers of the root layers
to tile incorrect surfaces on zoom.

First, the exposedRect API was not updating the sublayers. The layers go correctly
into tiling mode, but the tiles cover the full document instead of the visible area.

The other major issue was the margins being applied to the coverage size in document
coordinates. Since each margin is 512px, the total coverage size after zoom was
gigantic.

To solve this, this patch switch from the exposedRect API to the generic concept
of VisibleExtentContentRect introduced for iOS WebKit1.

  • WebCore.exp.in:
  • platform/ScrollView.h:

Define a VisibleExtentContentRect on the scrollview itself when there is no
platformWidget().
The case with inside frame is untested due to stability issues :(.
(see <rdar://problem/16199219>)

  • platform/graphics/ca/mac/TileController.mm:

(WebCore::TileController::computeTileCoverageRect):
Remove the margin from the tile coverage.

On iOS, m_tileCoverage is always zero at the moment. Previously, the tile coverage
was artificially extended by the margins. With the margins removed, I temporarily added
a factor of 1.5.
ViewUpdateDispatcher has all the information to compute a great tile coverage, I will need
a follow up patch to fix that.

  • platform/ios/ScrollViewIOS.mm:

(WebCore::ScrollView::visibleExtentContentRect):
(WebCore::ScrollView::setVisibleExtentContentRect):

Source/WebKit2:

  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):
A few interesting changes here:
-Now that we do not use setExposedRect, we can pass the exposed area directly

to the drawing area since everything is now in content coordinates :)

-The scale is now converted to float before being compared to the Page's scaleFactor.

The page's scalefactor being a float, the comparison was failing most of the time.

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setVisibleExtentContentRect):

2:35 PM Changeset in webkit [164951] by Darin Adler
  • 5 edits
    1 add in trunk

Sort Mac platform export files so they merge better
https://bugs.webkit.org/show_bug.cgi?id=129581

Reviewed by Sam Weinig.

Source/WebCore:

  • WebCore.exp.in: Ran the new sort-export-file on this.

Source/WebKit/mac:

  • WebKit.exp: Ran the new sort-export-file on this.

Tools:

  • Scripts/sort-export-file: Added. Quickly whipped together script that sorts

Mac export files in a "canonical" order for this project.

2:26 PM Changeset in webkit [164950] by dino@apple.com
  • 5 edits
    2 adds in trunk

Add protected casting to FilterOperation classes.
https://bugs.webkit.org/show_bug.cgi?id=124062

Reviewed by Sam Weinig.

Source/WebCore:

Use the type cast macro generators to produce some toFilterOperation-style
functions, and then use them in our PlatformCA filter code.

Test: css3/filters/animation-from-initial-values-with-color-matrix.html

  • platform/graphics/ca/mac/PlatformCAFiltersMac.mm: Use the toFilterOperation methods, in

some cases removing the unnecessary double cast.
(PlatformCAFilters::filterValueForOperation):
(PlatformCAFilters::colorMatrixValueForFilter):

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BasicColorMatrixFilterOperation::blend):
(WebCore::BasicColorMatrixFilterOperation::operator==): Move this to the .cpp file so it can use the casting methods.
(WebCore::BasicComponentTransferFilterOperation::blend):
(WebCore::BasicComponentTransferFilterOperation::operator==): Ditto.

  • platform/graphics/filters/FilterOperation.h: Add the casting macros.

LayoutTests:

  • css3/filters/animation-from-initial-values-with-color-matrix-expected.html: Added.
  • css3/filters/animation-from-initial-values-with-color-matrix.html: Added.
2:22 PM Changeset in webkit [164949] by commit-queue@webkit.org
  • 5 edits
    4 adds in trunk

Fix srcset related bugs
https://bugs.webkit.org/show_bug.cgi?id=129539

Source/WebCore:

Fixed a bug reported against Blink's srcset implementation at https://code.google.com/p/chromium/issues/detail?id=347998
When both src and srcset had only 1x descriptors and the DPR was higher than 1, the src's resource was picked.

Also fixed the invalid descriptor handling, which wasn't aligned with the spec, and therefore was not as forward compatible as it should be.
Invalid descriptors caused the entire resource to be ignored, rather than just the descriptors themselves.

Patch by Yoav Weiss <yoav@yoav.ws> on 2014-03-02
Reviewed by Andreas Kling.

Tests: fast/hidpi/image-srcset-invalid-descriptor.html

fast/hidpi/image-srcset-src-selection-1x-both.html

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseDescriptors):
(WebCore::parseImagesWithScaleFromSrcsetAttribute):
(WebCore::bestFitSourceForImageAttributes):

LayoutTests:

These tests make sure that:

  1. Invalid srcset descriptors are handled according to the spec. The invalid descriptors are ignored, but the resource is not.
  2. When both src and srcset have only 1x descriptors and the DPR is higher than 1, the srcset's resource is picked.

I've also fixed the invalid inputs test, which was faulty.

Patch by Yoav Weiss <yoav@yoav.ws> on 2014-03-02
Reviewed by Andreas Kling.

  • fast/hidpi/image-srcset-invalid-descriptor-expected.txt: Added.
  • fast/hidpi/image-srcset-invalid-descriptor.html: Added.
  • fast/hidpi/image-srcset-invalid-inputs-correct-src.html:
  • fast/hidpi/image-srcset-src-selection-1x-both-expected.txt: Added.
  • fast/hidpi/image-srcset-src-selection-1x-both.html: Added.
  • fast/hidpi/resources/srcset-helper.js:

(runTest):

12:44 PM Changeset in webkit [164948] by barraclough@apple.com
  • 11 edits
    1 copy in trunk/Source/WebCore

Split UserActivity, simplify PageThrottler
https://bugs.webkit.org/show_bug.cgi?id=129551

Reviewed by Darin Adler.

The class UserActivity currently implements two things – a hysteresis mechanism, and
an abstraction of NSActivity controlled by that mechanism. PageThrottler implements
its own hysteresis mechanism, which directly controls DOM timer throttling and also
controls a couple of UserActivities, giving a total of 3 separate hysteresis mechanisms,
layered two deep.

Split UserActivity into three, with HysteresisActivity implementing an abstract hysteresis
mechanism, UserActivity::Impl controlling the NSActivity, and then UserActivity combining
these two back together. The interface to UserActivity is unchanged.

Remove PageThrottler's bespoke hysteresis, replacing it with a use of HysteresisActivity.
Replace the two UserActivities with a single UserActivity::Impl, so there are no longer
layered hysteresis mechanisms.

  • WebCore.exp.in:
    • exports changed.
  • WebCore.xcodeproj/project.pbxproj:
    • added HysteresisActivity.h.
  • page/PageThrottler.cpp:

(WebCore::PageThrottler::PageThrottler):

  • if the page starts visible, begin activity. If it starts hidden throttle DOM timers.

(WebCore::PageThrottler::hiddenPageDOMTimerThrottlingStateChanged):

  • when the DOM timer throttling setting changes, make sure we update.

(WebCore::PageThrottler::incrementActivityCount):
(WebCore::PageThrottler::decrementActivityCount):

  • when m_activityCount changes update the hysteresis state.

(WebCore::PageThrottler::updateHysteresis):
(WebCore::PageThrottler::setViewState):

  • when IsVisuallyIdle changes update the hysteresis state.

(WebCore::PageThrottler::started):
(WebCore::PageThrottler::stopped):

  • callbacks from HysteresisActivity, these control m_activity and DOM timer throttling.
  • page/PageThrottler.h:

(WebCore::PageThrottler::didReceiveUserInput):
(WebCore::PageThrottler::pluginDidEvaluate):

  • call impulse to temporarily enable the activity.
  • platform/HysteresisActivity.h: Copied from Source/WebCore/platform/UserActivity.h.

(WebCore::HysteresisActivity::HysteresisActivity):

  • constructor takes a delegate optionally a timeout.

(WebCore::HysteresisActivity::start):

  • start activity immediately. If stopped, call started method on delegate. If in timeout period, cancel the timer.

(WebCore::HysteresisActivity::stop):

  • stop activity after hysteresis. If started, initiate timeout period.

(WebCore::HysteresisActivity::impulse):

  • ensure activity for at least the timeout period.

(WebCore::HysteresisActivity::hysteresisTimerFired):

  • delayed stop - when the timer fires call stopped on the delegate.
  • platform/UserActivity.cpp:

(WebCore::UserActivity::Impl::Impl):
(WebCore::UserActivity::Impl::beginActivity):
(WebCore::UserActivity::Impl::endActivity):

  • nop implementation.

(WebCore::UserActivity::UserActivity):

  • UserActivity maintains existing interface with hysteresis.

(WebCore::UserActivity::started):
(WebCore::UserActivity::stopped):

  • callbacks from HysteresisTimer; forward to Impl.
  • platform/UserActivity.h:
  • platform/mac/UserActivityMac.mm:

(WebCore::UserActivity::Impl::Impl):

  • UserActivity::Impl, abstraction for NSActivity without added hysteresis.

(WebCore::UserActivity::Impl::beginActivity):

  • allocate NSActivity.

(WebCore::UserActivity::Impl::endActivity):

  • release NSActivity.
12:34 PM Changeset in webkit [164947] by Brian Burg
  • 5 edits in trunk/Source/WebCore

DocumentLoader should keep maps of ResourceLoaders instead of sets
https://bugs.webkit.org/show_bug.cgi?id=129388

Reviewed by Darin Adler.

For web replay, we need to be able to pull a ResourceLoader instance by
identifier from the DocumentLoader. This is easy to do if we convert
ResourceLoaderSet to ResourceLoaderMap, keyed by the loader's identifier.

Added assertions whenever adding or removing from the map to ensure
that we don't try to add duplicates or resources with zero identifiers.

No new tests required. No functionality was added.

  • loader/DocumentLoader.cpp:

(WebCore::cancelAll):
(WebCore::setAllDefersLoading):
(WebCore::areAllLoadersPageCacheAcceptable):
(WebCore::DocumentLoader::addSubresourceLoader):
(WebCore::DocumentLoader::removeSubresourceLoader):
(WebCore::DocumentLoader::addPlugInStreamLoader):
(WebCore::DocumentLoader::removePlugInStreamLoader):
(WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart):

  • loader/DocumentLoader.h:
  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::create): Only add the loader
to the document loader's map if it initialized successfully.
The old code was probably leaking resource loaders that failed to
initialize.

  • loader/mac/DocumentLoaderMac.cpp:

(WebCore::scheduleAll):
(WebCore::unscheduleAll):

11:52 AM Changeset in webkit [164946] by krit@webkit.org
  • 9 edits in trunk/LayoutTests

Reactivate SVG mask-type tests for Mac
https://bugs.webkit.org/show_bug.cgi?id=129577

Reviewed by Darin Adler.

Reduce mask-type tests to the minimum to test the feature.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • svg/masking/mask-type-alpha-expected.svg:
  • svg/masking/mask-type-alpha.svg:
  • svg/masking/mask-type-luminance-expected.svg:
  • svg/masking/mask-type-luminance.svg:
  • svg/masking/mask-type-not-set-expected.svg:
  • svg/masking/mask-type-not-set.svg:
11:36 AM Changeset in webkit [164945] by Darin Adler
  • 6 edits in trunk/Source

Change public text iterator API implementations to not depend on 16-bit character pointers
https://bugs.webkit.org/show_bug.cgi?id=129566

Reviewed by Anders Carlsson.

Source/WebKit/mac:

  • WebView/WebTextIterator.mm:

(-[WebTextIterator initWithRange:]): Use make_unique instead of adoptPtr.
(-[WebTextIterator advance]): Clear out the upconverted text since we are moving on to the
next text.
(-[WebTextIterator currentTextPointer]): Upconvert if we have 8-bit text.
(-[WebTextIterator currentTextLength]): Call TextIterator::text().length() since we will
probably be removing TextIterator::length eventually.

Source/WebKit2:

  • WebView/WebTextIterator.mm:

(-[WKDOMTextIterator initWithRange:]): Use make_unique instead of adoptPtr.
(-[WKDOMTextIterator advance]): Clear out the upconverted text since we are moving on to the
next text.
(-[WKDOMTextIterator currentTextPointer]): Upconvert if we have 8-bit text.
(-[WKDOMTextIterator currentTextLength]): Call TextIterator::text().length() since we will
probably be removing TextIterator::length eventually.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp: Removed unneded include of TextIterator.h.
  • WebProcess/WebPage/WebPage.cpp: Ditto.
10:25 AM Changeset in webkit [164944] by krit@webkit.org
  • 5 edits in trunk/LayoutTests

Remove path to non-existent SVG clip-path test from TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=129574

Reviewed by Simon Fraser.

The test was transformed to a ref test and moved to a different location.
It passes on all platforms now.

  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wk2/TestExpectations:
9:55 AM Changeset in webkit [164943] by commit-queue@webkit.org
  • 8 edits in trunk

Support ENABLE_ENCRYPTED_MEDIA in cmake builds
https://bugs.webkit.org/show_bug.cgi?id=129575

Patch by Dirkjan Ochtman <d.ochtman@activevideo.com> on 2014-03-02
Reviewed by Philippe Normand.

.:

  • Source/cmake/OptionsEfl.cmake:

Enabled ENABLE_ENCRYPTED_MEDIA{,_V2} usage.

  • Source/cmake/OptionsGTK.cmake:

Enabled ENABLE_ENCRYPTED_MEDIA{,_V2} usage.

  • Source/cmake/WebKitFeatures.cmake:

Enabled ENABLE_ENCRYPTED_MEDIA{,_V2} usage.

  • Source/cmakeconfig.h.cmake:

Added ENABLE_ENCRYPTED_MEDIA{,_V2} flags.

Source/WebCore:

No new tests, only fixes the build.

  • CMakeLists.txt:

Add support for ENABLE_ENCRYPTED_MEDIA.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::close):
Assign nullptr instead of 0 to OwnPtr to appease gcc-4.7.

9:19 AM Changeset in webkit [164942] by Darin Adler
  • 6 edits in trunk/Source/WTF

Cut down use of OwnPtr within WTF itself
https://bugs.webkit.org/show_bug.cgi?id=129567

Reviewed by Sam Weinig.

  • wtf/RefCounted.h: Removed OwnPtr includes.
  • wtf/StreamBuffer.h: Removed OwnPtr includes and switched to use

std::make_unique and std::unique_ptr instead.

  • wtf/Threading.cpp: Removed OwnPtr includes.
  • wtf/ThreadingPthreads.cpp: Ditto.
  • wtf/Vector.h: Ditto.
7:36 AM Changeset in webkit [164941] by thiago.lacerda@openbossa.org
  • 7 edits
    1 delete in trunk/LayoutTests

Updating some WebRTC and MediaStream LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=129442

Reviewed by Eric Carlson.

Due to changes in JavaScriptCore (in r163562), some LayoutTests in fast/mediastream needed to be updated:

  • MediaStreamTrack.html: checking hasOwnProperty in proto as well, until CustomGetter properties are moved to the prototype chain.
  • RTCIceCandidate.html and RTCSessionDescription.html: JSON.stringify are not considering properties in proto, so remove this for now.
  • fast/mediastream/MediaStreamTrack-expected.txt:
  • fast/mediastream/MediaStreamTrack.html:
  • fast/mediastream/RTCIceCandidate-expected.txt:
  • fast/mediastream/RTCIceCandidate.html:
  • fast/mediastream/RTCPeerConnection-have-local-answer.html: Removed. Other tests already test what this one was

testing

  • fast/mediastream/RTCSessionDescription-expected.txt:
  • fast/mediastream/RTCSessionDescription.html:
6:59 AM Changeset in webkit [164940] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[GTK] Make impossible to build with <webkit2/webkit2.h> and <webkit2/webkit-web-extension.h> included together
https://bugs.webkit.org/show_bug.cgi?id=129549

Reviewed by Martin Robinson.

Add a compile error to prevent mixing the UI and web process APIs.

  • UIProcess/API/gtk/webkit2.h:
  • WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h:
6:56 AM Changeset in webkit [164939] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Remove the include dir of the C API from the WebKit2 pkg-config file
https://bugs.webkit.org/show_bug.cgi?id=129543

Reviewed by Martin Robinson.

We are not installing the C API headers anymore.

  • webkit2gtk.pc.in:

Mar 1, 2014:

9:35 PM Changeset in webkit [164938] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the Mac build.

  • UIProcess/mac/ViewGestureController.messages.in:
9:25 PM Changeset in webkit [164937] by timothy_horton@apple.com
  • 20 edits
    3 adds in trunk/Source

WebKit2 View Gestures (Smart Magnification): Support for iOS
https://bugs.webkit.org/show_bug.cgi?id=129146
<rdar://problem/16032668>

Reviewed by Benjamin Poulain.

Add support for double-tap smart magnification on iOS.

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

(-[WKWebView initWithFrame:configuration:]):
WKContentView is no longer API, so it can know about WKWebView
and will always have one.

(-[WKWebView contentView:didCommitLayerTree:WebKit::]):
Don't replace the zoom scale if we're currently animating.

(-[WKWebView _takeViewSnapshot]):
Rename.

(-[WKWebView _zoomToPoint:WebCore::atScale:]):
(-[WKWebView _zoomToRect:WebCore::atScale:origin:WebCore::]):
(constrainContentOffset):
(-[WKWebView _scrollToRect:WebCore::origin:WebCore::minimumScrollDistance:]):
(-[WKWebView _zoomOutWithOrigin:]):
(-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
Add _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:
and _zoomOutWithOrigin: as internal API, for use by SmartMagnificationController via WKContentView.
These will use some heuristics to generally center the target rect in the view
in a way that should match WebKit1 fairly closely.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:

Don't use the WKContentViewDelegate protocol for things that don't belong there.

  • UIProcess/ios/SmartMagnificationController.h: Added.
  • UIProcess/ios/SmartMagnificationController.messages.in: Added.
  • UIProcess/ios/SmartMagnificationController.mm: Added.

(WebKit::SmartMagnificationController::SmartMagnificationController):
(WebKit::SmartMagnificationController::~SmartMagnificationController):
(WebKit::SmartMagnificationController::handleSmartMagnificationGesture):
(WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture):
SmartMagnificationController sits off of WKContentView, and sends/receives
messages to the WebProcess to do the smart magnification hit-testing.

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

(-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
As before, teach WKContentView about its owning WKWebView.

(-[WKContentView _takeViewSnapshot]):
Rename.

(-[WKContentView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
(-[WKContentView _zoomOutWithOrigin:]):
Forward _zoomToRect:::::: and _zoomOutWithOrigin: to WKWebView.

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

(-[WKContentView setupInteraction]):
(-[WKContentView _doubleTapRecognized:]):
(-[WKContentView _twoFingerDoubleTapRecognized:]):
Forward double tap to the SmartMagnificationController.

  • UIProcess/mac/ViewGestureController.h:
  • UIProcess/mac/ViewGestureController.messages.in:
  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
Retrieve the minimum/maximum viewport scale from the WebProcess.

  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

  • WebProcess/WebPage/ViewGestureGeometryCollector.cpp:

(WebKit::ViewGestureGeometryCollector::ViewGestureGeometryCollector):
(WebKit::ViewGestureGeometryCollector::dispatchDidCollectGeometryForSmartMagnificationGesture):
(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
(WebKit::ViewGestureGeometryCollector::collectGeometryForMagnificationGesture):
Factor out code to send the geometry back to the UI process.

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

(WebKit::WebPage::WebPage):

  • WebProcess/WebPage/WebPage.h:

We should have a ViewGestureGeometryCollector on iOS too.

  • WebCore.exp.in:

Add an export.

7:58 PM Changeset in webkit [164936] by commit-queue@webkit.org
  • 5 edits
    4 deletes in trunk

Unreviewed, rolling out r164929 and r164934.
http://trac.webkit.org/changeset/164929
http://trac.webkit.org/changeset/164934
https://bugs.webkit.org/show_bug.cgi?id=129570

Caused assertions on two srcset tests (Requested by ap on
#webkit).

Source/WebCore:

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::isHTMLSpaceOrComma):
(WebCore::parseImagesWithScaleFromSrcsetAttribute):
(WebCore::bestFitSourceForImageAttributes):

LayoutTests:

  • fast/hidpi/image-srcset-invalid-descriptor-expected.txt: Removed.
  • fast/hidpi/image-srcset-invalid-descriptor.html: Removed.
  • fast/hidpi/image-srcset-invalid-inputs-correct-src.html:
  • fast/hidpi/image-srcset-src-selection-1x-both-expected.txt: Removed.
  • fast/hidpi/image-srcset-src-selection-1x-both.html: Removed.
  • fast/hidpi/resources/srcset-helper.js:

(runTest):

7:45 PM Changeset in webkit [164935] by fpizlo@apple.com
  • 2 edits
    1 move in trunk

Source/JavaScriptCore: This shouldn't have been a layout test since it runs only under jsc. Moving it to JSC
stress tests.

  • tests/stress/generational-opaque-roots.js: Copied from LayoutTests/js/script-tests/generational-opaque-roots.js.

LayoutTests: This shouldn't be a layout test since it runs only under jsc. Moving it to JSC
stress tests.

  • js/script-tests/generational-opaque-roots.js: Removed.
4:35 PM Changeset in webkit [164934] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • html/parser/HTMLParserIdioms.cpp: Removed an unused function.
4:20 PM Changeset in webkit [164933] by ddkilzer@apple.com
  • 3 edits
    2 adds in trunk

Ensure keySplines is valid in SMIL animations
<http://webkit.org/b/129547>
<rdar://problem/15676128>

Reviewed by Darin Adler.

Merged from Blink (patch by Philip Rogers):
https://src.chromium.org/viewvc/blink?revision=156452&view=revision
http://crbug.com/276111

This patch fixes a crash in SMIL animations when keySplines are not
specified. The SMIL spec is clear on this:
http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncCalcMode
"If there are any errors in the keyTimes specification (bad values,
too many or too few values), the animation will have no effect."

This patch simply checks that keyTimes is not empty. Previously,
splinesCount was set to be m_keySplines.size() + 1 in
SVGAnimationElement.cpp; this patch changes splinesCount to be equal
to m_keySplines.size() to make the logic easier to follow and to
match other checks in SVGAnimationElement::startedActiveInterval.

Source/WebCore:

Test: svg/animations/animate-keysplines-crash.html

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::startedActiveInterval):

LayoutTests:

  • svg/animations/animate-keysplines-crash-expected.txt: Added.
  • svg/animations/animate-keysplines-crash.html: Added.
3:50 PM Changeset in webkit [164932] by benjamin@webkit.org
  • 3 edits
    2 adds in trunk

Tighten minimumRegisterRequirements()
https://bugs.webkit.org/show_bug.cgi?id=129538

Reviewed by Andreas Kling.

Source/WebCore:

Fix small things that made minimumRegisterRequirements() a little optimistic
when dealing with attributes.

Test: fast/selectors/adjacent-descendant-tail-register-requirement.html

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
Attribute Set does not do value matching, the case sensitive value matching is irrelevant
The problem is that flag is also used by minimumRegisterRequirements()
to find if one more register is needed.

Set the flag to case sensitive to avoid reserving one extra register.

(WebCore::SelectorCompiler::minimumRegisterRequirements):
Use a new backtrackingFlag to know if there is a descendant tail, thus a backtracking register
reserved.
This is better than using the backtracking action because the backtracking chain could be
an adjacent chain inside a descendant chain.

The flags are designed for that, just set one for minimumRegisterRequirements().

The 2 extra registers for the attribute count and address become limited to all attributes
except the last one. We don't keep a copy for the last matching, those registers were not needed.

(WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):

LayoutTests:

  • fast/selectors/adjacent-descendant-tail-register-requirement-expected.txt: Added.
  • fast/selectors/adjacent-descendant-tail-register-requirement.html: Added.
3:31 PM Changeset in webkit [164931] by psolanki@apple.com
  • 4 edits in trunk/Source

[iOS] selectionImageForcingBlackText should return autoreleased object
https://bugs.webkit.org/show_bug.cgi?id=129437
<rdar://problem/15810384>

Reviewed by Darin Adler.

Source/WebCore:

  • bindings/objc/DOM.mm:

(-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):

Source/WebKit/mac:

  • WebView/WebHTMLView.mm:

(-[WebHTMLView selectionImageForcingBlackText:selectionImageForcingBlackText:]):

3:30 PM Changeset in webkit [164930] by Darin Adler
  • 2 edits in trunk/Websites/webkit.org

Some small modernizing tweaks to the coding style guide
https://bugs.webkit.org/show_bug.cgi?id=129427

Reviewed by Alexey Proskuryakov.

My intent here was originally to do the nullptr style guide update, but that was already done.
I did some other improvements. There's still quite a bit to do -- the guide is out of date in
a number of subtle ways.

  • coding/coding-style.html: Change "left side operator" example to be a more modern example

without non-WebKit-style abbreviations and such. Use auto& instead of const auto& in for loop
example, since that's normally preferred. Changed section title to say "zero" instead of "0".
Use words instead of abbreviations in code examples. Show that a modern C++ for loop is preferred
over index iteration in vector iteration example and also showed use of unsigned rather than
size_t since that is almost always what we want. Eliminated the use of PassOwnPtr in the "return
a newly created object" example. Use references instead of pointers in one example.

3:28 PM Changeset in webkit [164929] by commit-queue@webkit.org
  • 5 edits
    4 adds in trunk

Fix srcset related bugs
https://bugs.webkit.org/show_bug.cgi?id=129539

Source/WebCore:

Fixed a bug reported against Blink's srcset implementation at https://code.google.com/p/chromium/issues/detail?id=347998
When both src and srcset had only 1x descriptors and the DPR was higher than 1, the src's resource was picked.

Also fixed the invalid descriptor handling, which wasn't aligned with the spec, and therefore was not as forward compatible as it should be.
Invalid descriptors caused the entire resource to be ignored, rather than just the descriptors themselves.

Patch by Yoav Weiss <yoav@yoav.ws> on 2014-03-01
Reviewed by Andreas Kling.

Tests: fast/hidpi/image-srcset-invalid-descriptor.html

fast/hidpi/image-srcset-src-selection-1x-both.html

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseDescriptors):
(WebCore::parseImagesWithScaleFromSrcsetAttribute):
(WebCore::bestFitSourceForImageAttributes):

LayoutTests:

These tests make sure that:

  1. Invalid srcset descriptors are handled according to the spec. The invalid descriptors are ignored, but the resource is not.
  2. When both src and srcset have only 1x descriptors and the DPR is higher than 1, the srcset's resource is picked.

I've also fixed the invalid inputs test, which was faulty.

Patch by Yoav Weiss <yoav@yoav.ws> on 2014-03-01
Reviewed by Andreas Kling.

  • fast/hidpi/image-srcset-invalid-descriptor-expected.txt: Added.
  • fast/hidpi/image-srcset-invalid-descriptor.html: Added.
  • fast/hidpi/image-srcset-invalid-inputs-correct-src.html:
  • fast/hidpi/image-srcset-src-selection-1x-both-expected.txt: Added.
  • fast/hidpi/image-srcset-src-selection-1x-both.html: Added.
  • fast/hidpi/resources/srcset-helper.js:

(runTest):

3:22 PM Changeset in webkit [164928] by Darin Adler
  • 6 edits in trunk/Source/WebCore

Improve "bad parent" and "bad child list" assertions in line boxes
https://bugs.webkit.org/show_bug.cgi?id=125656

Reviewed by Sam Weinig.

My previous fix for this problem was incomplete. This continuation of that fix addresses
the flaw in the original and adds additional lifetime checking so problems can be seen in
debug builds without a memory debugger.

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::assertNotDeleted): Added. Poor man's memory debugging helper.
(WebCore::InlineBox::~InlineBox): Refactored body into a new function named
invalidateParentChildList. Added code to update the deletion sentinel to record
that this object is deleted.
(WebCore::InlineBox::setHasBadParent): Moved here from header since this debug-only
feature does not need to be inlined. Added a call to assertNotDeleted.
(WebCore::InlineBox::invalidateParentChildList): Added. Refactored from the destructor,
this is used by RenderTextLineBoxes.

  • rendering/InlineBox.h: Added the deletion sentinel, and called it in the parent

function. Also changed the expansion/setExpansion functions to use the type name "int",
since we don't use the type name "signed" in the WebKit coding style.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::~InlineFlowBox): Call setHasBadChildList rather than doing the
setHasBadParent work on children directly, to avoid code duplication.
(WebCore::InlineFlowBox::setHasBadChildList): Moved here from header. Added code to set
"has bad parent" on all children, something we previously did only on destruction. Also
added assertNotDeleted.
(WebCore::InlineFlowBox::checkConsistency): Added call to assertNotDeleted. Also tweaked
code style and variable names a little bit.

  • rendering/InlineFlowBox.h: Moved setHasBadChildList out of the header when it's on.

The empty version for ASSERT_WITH_SECURITY_IMPLICATION_DISABLED is still in the header.

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::invalidateParentChildLists): Call the new
InlineBox::invalidateParentChildList function instead of calling setHasBadChildList directly.
The new function checks m_hasBadParent, something we couldn't do here.

3:05 PM Changeset in webkit [164927] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSCell::fastGetOwnProperty() should get the Structure more efficiently.
<https://webkit.org/b/129560>

Now that structure() is nontrivial and we have a faster structure(VM&),
make use of that in fastGetOwnProperty() since we already have VM.

Reviewed by Sam Weinig.

  • runtime/JSCellInlines.h:

(JSC::JSCell::fastGetOwnProperty):

2:27 PM Changeset in webkit [164926] by cavalcantii@gmail.com
  • 2 edits in trunk/LayoutTests

Set css3/filter/huge-region as skipped
https://bugs.webkit.org/show_bug.cgi?id=129552

It tries to use an insanely huge kernel for a huge blur filtered
element while it is expected to *not* execute. Thanks to the changes
introduced in #123716, this test will try to be executed and may
timeout in some machines. The proper fix will follow up in #129553.

Reviewed by Dirk Schulze.

2:21 PM Changeset in webkit [164925] by akling@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Avoid going through ExecState for VM when we already have it (in some places.)
<https://webkit.org/b/129554>

Tweak some places that jump through unnecessary hoops to get the VM.
There are many more like this.

Reviewed by Sam Weinig.

  • runtime/JSObject.cpp:

(JSC::JSObject::putByIndexBeyondVectorLength):
(JSC::JSObject::putDirectIndexBeyondVectorLength):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

2:09 PM Changeset in webkit [164924] by benjamin@webkit.org
  • 7 edits
    2 adds in trunk

Optimized querySelector(All) when selector contains #id
https://bugs.webkit.org/show_bug.cgi?id=116502

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/selectors/querySelector-id-filtering.html

The idea of this patch is to perform querySelector on a subtree
rooted at the last element with #id matching. For example, if we have the selector
"#foobar div a", we start by looking for the element with ID foobar in the TreeScope
cache, and start matching the children from there.

The idea comes from Rune for
https://chromium.googlesource.com/chromium/blink/+/1cd83d3588973a02ab15d94b1b05a28620853624
but the code as diverged too much so it had to be reimplemented specifically for WebKit.

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::operator=):

  • css/CSSSelectorList.h:

(WebCore::CSSSelectorList::~CSSSelectorList):

  • css/StyleRule.h:

(WebCore::StyleRule::wrapperAdoptSelectorList):
(WebCore::StyleRulePage::wrapperAdoptSelectorList):

  • dom/SelectorQuery.cpp:

(WebCore::isSingleTagNameSelector):
(WebCore::isSingleClassNameSelector):
(WebCore::findIdMatchingType):
(WebCore::SelectorDataList::SelectorDataList):
(WebCore::filterRootById):
(WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
(WebCore::SelectorDataList::execute):
(WebCore::SelectorQuery::SelectorQuery):
(WebCore::SelectorQueryCache::add):

  • dom/SelectorQuery.h:

(WebCore::SelectorDataList::SelectorData::SelectorData):

LayoutTests:

  • fast/selectors/querySelector-id-filtering-expected.txt: Added.
  • fast/selectors/querySelector-id-filtering.html: Added.
11:57 AM Changeset in webkit [164923] by fpizlo@apple.com
  • 10 edits
    2 adds in trunk/Source/JavaScriptCore

FTL should support PhantomArguments
https://bugs.webkit.org/show_bug.cgi?id=113986

Reviewed by Oliver Hunt.

Adding PhantomArguments to the FTL mostly means wiring the recovery of the Arguments
object into the FTL's OSR exit compiler.

This isn't a speed-up yet, since there is still more to be done to fully support
all of the arguments craziness that our varargs benchmarks do.

  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit): move the recovery code to DFGOSRExitCompilerCommon.cpp

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit): move the recovery code to DFGOSRExitCompilerCommon.cpp

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::ArgumentsRecoveryGenerator::ArgumentsRecoveryGenerator):
(JSC::DFG::ArgumentsRecoveryGenerator::~ArgumentsRecoveryGenerator):
(JSC::DFG::ArgumentsRecoveryGenerator::generateFor): this is the common place for the recovery code

  • dfg/DFGOSRExitCompilerCommon.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLExitValue.cpp:

(JSC::FTL::ExitValue::dumpInContext):

  • ftl/FTLExitValue.h:

(JSC::FTL::ExitValue::argumentsObjectThatWasNotCreated):
(JSC::FTL::ExitValue::isArgumentsObjectThatWasNotCreated):
(JSC::FTL::ExitValue::valueFormat):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compilePhantomArguments):
(JSC::FTL::LowerDFGToLLVM::buildExitArguments):
(JSC::FTL::LowerDFGToLLVM::tryToSetConstantExitArgument):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub): Call into the ArgumentsRecoveryGenerator

  • tests/stress/slightly-more-difficult-to-fold-reflective-arguments-access.js: Added.
  • tests/stress/trivially-foldable-reflective-arguments-access.js: Added.
11:42 AM Changeset in webkit [164922] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, uncomment some code. It wasn't meant to be commented in the first place.

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::getPropertyStorageLoadElimination):

10:48 AM Changeset in webkit [164921] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Make Start Timeline Recording in the Develop menu show the Timeline view again.

This also fixes a noticeable delay between showing the sidebar and the default Timeline
view when initially opening the Web Inspector to the Timeline.

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

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded): Call TimelineSidebarPanel.initialize to prime the content view.
This is needed so the view is ready in this run loop cycle, where it was delayed before.

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.setTimelineProfilingEnabled): Call TimelineSidebarPanel.showTimelineOverview.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.prototype.initialize): Added.

10:48 AM Changeset in webkit [164920] by ap@apple.com
  • 9 edits in trunk

Node::compareDocumentPosition leaks memory structure
https://bugs.webkit.org/show_bug.cgi?id=120244

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • dom/Node.cpp: (WebCore::Node::compareDocumentPosition): Don't do it.

LayoutTests:

  • TestExpectations:
  • dom/xhtml/level3/core/nodecomparedocumentposition38-expected.txt:
  • fast/dom/compare-document-position-disconnected-nodes-expected.txt:
  • fast/dom/compare-document-position-disconnected-nodes.html:
  • fast/dom/shadow/compare-document-position-expected.txt:
  • fast/dom/shadow/compare-document-position.html:
10:46 AM Changeset in webkit [164919] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Select the Resource navigation sidebar by default when there is no cookie.

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

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector._restoreInspectorViewStateFromCookie):

9:51 AM Changeset in webkit [164918] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Label JavaScript forced layouts as such in the Timeline.

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

Reviewed by David Kilzer.

  • Localizations/en.lproj/localizedStrings.js: Updated.
  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):

  • UserInterface/Models/LayoutTimelineRecord.js:

(WebInspector.LayoutTimelineRecord.EventType.displayName):

  • UserInterface/Views/TimelineRecordTreeElement.js:

(WebInspector.TimelineRecordTreeElement):

8:26 AM Changeset in webkit [164917] by ddkilzer@apple.com
  • 8 edits
    1 move
    2 adds in trunk

Fix lifetime handling of SVGPropertyTearOffs
<http://webkit.org/b/129211>
<rdar://problem/15696025>

Reviewed by Maciej Stachowiak.

Merged from Blink (patch by Ojan Vafai):
https://src.chromium.org/viewvc/blink?revision=157801&view=revision
http://crbug.com/288771

-Replace SVGStaticPropertyWithParentTearOff with SVGMatrixTearOff
since it's only used in that one place. This means we can get rid
of the templatizing and the method pointer.
-Change SVGPropertyTearOff to keep track of it's child tearoffs
and call detachWrapper on its child tearoffs when it's destroyed
or when it's wrapper is detached.
-Have SVGPropertyTearOff hold WeakPtrs to the child tearoffs
to avoid having a cycle.

Source/WebCore:

Test: svg/transforms/svg-matrix-tearoff-crash.html

  • GNUmakefile.list.am:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGeneratorJS.pm:

(NativeToJSValue):

  • svg/properties/SVGMatrixTearOff.h: Renamed from Source/WebCore/svg/properties/SVGStaticPropertyWithParentTearOff.h.

(WebCore::SVGMatrixTearOff::create):
(WebCore::SVGMatrixTearOff::commitChange):
(WebCore::SVGMatrixTearOff::SVGMatrixTearOff):

  • svg/properties/SVGPropertyTearOff.h:

(WebCore::SVGPropertyTearOff::addChild):
(WebCore::SVGPropertyTearOff::detachChildren):

LayoutTests:

  • svg/transforms/svg-matrix-tearoff-crash-expected.txt: Added.
  • svg/transforms/svg-matrix-tearoff-crash.html: Added.
1:35 AM Changeset in webkit [164916] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r164913.

  • platform/CountedUserActivity.h: Some ports don't (yet) support forwarding headers for WebCore,

so UserActivity.h should be included as non-forwarding.

1:08 AM Changeset in webkit [164915] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

Unreviewed follow-up to r164905 and r164912.

  • Platform/IPC/Connection.h: Only declare setShouldCloseConnectionOnMachExceptions() for the Mac port.
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didFinishLaunching): Only call setShouldCloseConnectionOnMachExceptions() on the Mac port.

1:01 AM Changeset in webkit [164914] by barraclough@apple.com
  • 5 edits in trunk/Source/WebCore

Change PageActivityAssertionToken to use a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=129526

Reviewed by Sam Weinig.

PageThrottler effectively implements a bespoke weak pointer mechanism; remove this & just use WeakPtr.

  • page/PageActivityAssertionToken.cpp:

(WebCore::PageActivityAssertionToken::PageActivityAssertionToken):
(WebCore::PageActivityAssertionToken::~PageActivityAssertionToken):

  • addActivityToken->incrementActivityCount, removeActivityToken->decrementActivityCount
  • page/PageActivityAssertionToken.h:
    • removed invalidate, made m_throttler a WeakPtr
  • page/PageThrottler.cpp:

(WebCore::PageThrottler::PageThrottler):

  • initialize m_weakPtrFactory, m_activityCount.

(WebCore::PageThrottler::~PageThrottler):

  • removed called to invalidate.

(WebCore::PageThrottler::startThrottleHysteresisTimer):

  • m_activityTokens.size()->m_activityCount

(WebCore::PageThrottler::throttleHysteresisTimerFired):

  • m_activityTokens.size()->m_activityCount

(WebCore::PageThrottler::incrementActivityCount):

  • m_activityTokens.add->++

(WebCore::PageThrottler::decrementActivityCount):

  • m_activityTokens.remove->--
  • page/PageThrottler.h:

(WebCore::PageThrottler::weakPtr):

  • replaced HashSet with WeakPtrFactory & count.
12:49 AM Changeset in webkit [164913] by barraclough@apple.com
  • 16 edits
    1 copy in trunk/Source

Split UserActivity/CountedUserActivity
https://bugs.webkit.org/show_bug.cgi?id=129520

Reviewed by Sam Weinig.

UserActivity currently provides an interface allowing counted, nested calls to enable/disable.
In some cases it would be easier to use if it were a simpler boolean enabled/disabled interface.

Source/WebCore:

  • WebCore.exp.in:
    • beginActivity->start, endActivity->stop.
  • WebCore.xcodeproj/project.pbxproj:
  • page/PageThrottler.cpp:

(WebCore::PageThrottler::PageThrottler):
(WebCore::PageThrottler::~PageThrottler):
(WebCore::PageThrottler::throttlePage):
(WebCore::PageThrottler::unthrottlePage):
(WebCore::PageThrottler::setIsVisuallyIdle):

  • beginActivity->increment, endActivity->decrement.
  • page/PageThrottler.h:
    • UserActivity->CountedUserActivity for m_pageActivity
  • platform/CountedUserActivity.h: Copied from Source/WebCore/platform/UserActivity.h.

(WebCore::CountedUserActivity::CountedUserActivity):
(WebCore::CountedUserActivity::increment):
(WebCore::CountedUserActivity::decrement):

  • Added, provides counted interface to UserActivity.
  • platform/UserActivity.cpp:

(WebCore::UserActivity::UserActivity):

  • m_count removed

(WebCore::UserActivity::start):
(WebCore::UserActivity::stop):

  • beginActivity->start, endActivity->stop, implentation now empty.
  • platform/UserActivity.h:
    • beginActivity->start, endActivity->stop, m_count moved to HAVE(NS_ACTIVITY)
  • platform/mac/UserActivityMac.mm:

(WebCore::UserActivity::UserActivity):

  • m_count->m_started

(WebCore::UserActivity::isValid):

  • m_count->m_started

(WebCore::UserActivity::start):
(WebCore::UserActivity::stop):

  • beginActivity->start, endActivity->stop, no longer nest

Source/WebKit2:

  • PluginProcess/PluginProcess.h:

(WebKit::PluginProcess::connectionActivity):

  • UserActivity->CountedUserActivity
  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::PluginProcess::platformInitializeProcess):

  • beginActivity->start
  • Shared/ActivityAssertion.cpp:

(WebKit::ActivityAssertion::ActivityAssertion):
(WebKit::ActivityAssertion::~ActivityAssertion):

  • beginActivity->increment, endActivity->decrement.
  • Shared/ActivityAssertion.h:
    • UserActivity->CountedUserActivity
  • Shared/ChildProcess.cpp:

(WebKit::ChildProcess::setProcessSuppressionEnabled):

  • beginActivity->start, endActivity->stop.
  • Shared/ChildProcess.h:
    • removed processSuppressionEnabled()
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • beginActivity->start, endActivity->stop.
12:35 AM Changeset in webkit [164912] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Unreviewed trivial Linux buildfix after r164905.

setShouldCloseConnectionOnMachExceptions() is defined in the Mac only
Source/WebKit2/Platform/IPC/mac/ConnectionMac.cpp inside !PLATFORM(IOS)
which means PLATFORM(MAC), because nobody else uses this source file.

But ChildProcessProxy.cpp is used by Linux ports too, so we have to
use the most specific #if guard here, which is PLATFORM(MAC).

  • Shared/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::didFinishLaunching):

Feb 28, 2014:

10:13 PM Changeset in webkit [164911] by benjamin@webkit.org
  • 4 edits
    4 adds in trunk

Caller saved registers can be accidentally discarded when clearing the local stack
https://bugs.webkit.org/show_bug.cgi?id=129532

Reviewed by Andreas Kling.

Source/WebCore:

Tests: fast/selectors/tree-modifying-case-insensitive-selectors.html

fast/selectors/tree-modifying-selectors.html

StackAllocator::discard() no longer make sense now that we can use caller saved regsiter.
We should instead discard everything up to the beginning of the local stack.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

  • cssjit/StackAllocator.h:

(WebCore::StackAllocator::popAndDiscardUpTo):

LayoutTests:

  • fast/selectors/tree-modifying-case-insensitive-selectors.html: Added.
  • fast/selectors/tree-modifying-selectors.html: Added.
9:36 PM Changeset in webkit [164910] by Simon Fraser
  • 4 edits in trunk/Source/WebKit2

[iOS] Assertions and bad behavior when zooming into an iframe containing apple.com
https://bugs.webkit.org/show_bug.cgi?id=129537

Reviewed by Benjamin Poulain.

When building RemoteLayerTreeTransactions, the ordering of setting created
layers and doing the recursive tree walk was wrong, such that we failed
to noticed layers created during the recursiveBuildTransaction().

Also harden the UI-side code against Obj-C exceptions thrown when layers
are missing.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties): Assert when
children are not found, and protect against Obj-C exceptions.

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
Initialize the members.

  • WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::buildTransaction): Do the recursive walk
before setting created and destroyed layers, since the walk can create
layers (especially when swapping into tiled layers).

9:34 PM Changeset in webkit [164909] by jinwoo7.song@samsung.com
  • 2 edits in trunk/Source/WebKit2

Fix WebKit2 build after r164890
https://bugs.webkit.org/show_bug.cgi?id=129533

Reviewed by Simon Fraser.

LayerRepresentation.h is included to WebPageProxy.h in r164890
but it is not used in non Mac or iOS port.

  • UIProcess/WebPageProxy.h:
9:31 PM Changeset in webkit [164908] by mitz@apple.com
  • 4 edits
    1 delete in trunk/Source/WebKit

[Mac] Remove MailQuirksUserScript.js
https://bugs.webkit.org/show_bug.cgi?id=129536

Reviewed by Andy Estes.

../WebKit:

  • WebKit.xcodeproj/project.pbxproj: Removed reference to the file.

../WebKit/mac:

  • Configurations/WebKit.xcconfig: Removed from EXCLUDED_SOURCE_FILE_NAMES_iphoneos.
  • Misc/MailQuirksUserScript.js: Removed. This file has been unused since r147447.
9:14 PM Changeset in webkit [164907] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] FrameLoader has a NULL m_progressTracker when initialized with initForSynthesizedDocument()
https://bugs.webkit.org/show_bug.cgi?id=129534

Reviewed by Simon Fraser.

No new tests because TestWebKitAPI does not yet support iOS. See <http://webkit.org/b/129535>.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::initForSynthesizedDocument): Create a FrameProgressTracker.

9:05 PM Changeset in webkit [164906] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac] Extract _data->_thumbnailView checks into a helper function
https://bugs.webkit.org/show_bug.cgi?id=129517

Reviewed by Sam Weinig.

  • UIProcess/API/mac/WKView.mm:

(-[WKView shouldIgnoreMouseEvents]):
(-[WKView scrollWheel:]):
(-[WKView mouseMoved:]):
(-[WKView mouseDown:]):
(-[WKView mouseUp:]):
(-[WKView mouseDragged:]):

8:10 PM Changeset in webkit [164905] by psolanki@apple.com
  • 4 edits in trunk/Source/WebKit2

[iOS][WebKit2] Don't use any of the mach exception handling code on iOS
https://bugs.webkit.org/show_bug.cgi?id=129516

Reviewed by Sam Weinig.

This code is not used on iOS after my fix in r164883. We can just move it all under
!PLATFORM(IOS).

  • Platform/IPC/Connection.h:
  • Platform/IPC/mac/ConnectionMac.cpp:

(IPC::Connection::platformInvalidate):
(IPC::Connection::platformInitialize):
(IPC::Connection::open):

  • Shared/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::didFinishLaunching):

8:01 PM Changeset in webkit [164904] by akling@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

JSObject::findPropertyHashEntry() should take VM instead of ExecState.
<https://webkit.org/b/129529>

Callers already have VM in a local, and findPropertyHashEntry() only
uses the VM, no need to go all the way through ExecState.

Reviewed by Geoffrey Garen.

  • runtime/JSObject.cpp:

(JSC::JSObject::put):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::findPropertyHashEntry):

  • runtime/JSObject.h:
7:11 PM Changeset in webkit [164903] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

ASSERT(isMainThread()) hit under platformUserPreferredLanguages() with WebKit1 and WebKit2 in the same process
https://bugs.webkit.org/show_bug.cgi?id=129528

Reviewed by Andreas Kling.

  • platform/mac/Language.mm:

(WebCore::preferredLanguagesMutex):
(WebCore::preferredLanguages):
(+[WebLanguageChangeObserver languagePreferencesDidChange:]):
(WebCore::httpStyleLanguageCode):
(WebCore::platformUserPreferredLanguages):
Add a mutex and do an isolated copy of the strings to allow this function to be called from multiple threads.

6:51 PM Changeset in webkit [164902] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

Deadlock remotely inspecting iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=129511

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-02-28
Reviewed by Timothy Hatcher.

Avoid synchronous setup. Do it asynchronously, and let
the RemoteInspector singleton know later if it failed.

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::setupFailed):

  • inspector/remote/RemoteInspectorDebuggableConnection.h:
  • inspector/remote/RemoteInspectorDebuggableConnection.mm:

(Inspector::RemoteInspectorDebuggableConnection::setup):

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

Crash at ebay.com when viewing auction items at com.apple.WebCore: WebCore::GraphicsContext3D::getExtensions + 10
https://bugs.webkit.org/show_bug.cgi?id=129523

Reviewed by Simon Fraser.

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getSupportedExtensions): Early return if the
context is pending policy resolution.

5:11 PM Changeset in webkit [164900] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Micro-optimize JSNodeOwner::isReachableFromOpaqueRoots().
<https://webkit.org/b/129518>

Only do image and audio element specific checks for element nodes.
Time spent in here goes from 0.8% to 0.5% on DYEB.

Reviewed by Benjamin Poulain.

  • bindings/js/JSNodeCustom.cpp:

(WebCore::isReachableFromDOM):

5:07 PM Changeset in webkit [164899] by bshafiei@apple.com
  • 1 copy in tags/Safari-537.75.4

New tag.

5:06 PM Changeset in webkit [164898] by bshafiei@apple.com
  • 5 edits in branches/safari-537.75-branch/Source

Versioning.

4:45 PM Changeset in webkit [164897] by ggaren@apple.com
  • 2 edits in trunk/Source/WebCore

JSC Assertion failure every time I start Safari (r164846)
https://bugs.webkit.org/show_bug.cgi?id=129510

Reviewed by Mark Hahnenberg.

Take the lock before allocating objects because afterward is too late.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::windowScriptNPObject):
(WebCore::ScriptController::jsObjectForPluginElement):

4:42 PM Changeset in webkit [164896] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: ASSERT in WebCore::JSDOMWindowBase::supportsRichSourceInfo inspecting iOS
https://bugs.webkit.org/show_bug.cgi?id=129512

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-02-28
Reviewed by Simon Fraser.

  • page/PageDebuggable.cpp:

(WebCore::PageDebuggable::connect):
(WebCore::PageDebuggable::disconnect):

4:40 PM Changeset in webkit [164895] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

VisitedLinkStore should be able to invalidate link styles for associated pages
https://bugs.webkit.org/show_bug.cgi?id=129515

Reviewed by Dan Bernstein.

  • page/Page.cpp:

(WebCore::Page::Page):
Add the VisitedLinkStore if we have one.

(WebCore::Page::~Page):
Remove the VisitedLinkStore if we have one.

  • page/VisitedLinkStore.cpp:

(WebCore::VisitedLinkStore::~VisitedLinkStore):
Assert that we don't have any pages.

(WebCore::VisitedLinkStore::addPage):
Add the page to the set.

(WebCore::VisitedLinkStore::removePage):
Remove the page from the set.

(WebCore::VisitedLinkStore::invalidateStylesForAllLinks):
Traverse all the pages and invalidate the style for all links.

(WebCore::VisitedLinkStore::invalidateStylesForLink):
Traverse all the pages and invalidate the style for a given link.

  • page/VisitedLinkStore.h:

Add new members.

4:27 PM Changeset in webkit [164894] by Brent Fulgham
  • 2 edits in branches/safari-537.75-branch/WebKitLibraries

Unreviewed build fix.
<rdar://problem/16197002>

  • win/tools/vsprops/debugsuffix.props: Set OFFICIAL_BUILD=1 for DebugSuffix target, since this

is the official debug analog to the Production build target.

4:22 PM Changeset in webkit [164893] by Brent Fulgham
  • 7 edits in branches/safari-537.75-branch/Source

Unreviewed build fix.
<rdar://problem/16197002>

Source/JavaScriptCore:

slash from path names, as this was causing multiple arguments
to be concatenated together (the whitespace was getting escaped
by the slash.)

Source/WebCore:

  • WebCore.vcxproj/WebCore.proj: Remove trailing

slash from path names, as this was causing multiple arguments
to be concatenated together (the whitespace was getting escaped
by the slash.)

Source/WTF:

  • WTF.vcxproj/WTF.proj: Remove trailing

slash from path names, as this was causing multiple arguments
to be concatenated together (the whitespace was getting escaped
by the slash.)

  • WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:

Check for presence of RC_XBS in environment, and exit since
this logic is not needed for 'official' builds.

4:04 PM WebKitGTK/2.4.x edited by desrt@desrt.ca
geoclue2 is on track (diff)
3:55 PM Changeset in webkit [164892] by benjamin@webkit.org
  • 4 edits in trunk/Source

Source/WebCore: [iOS][WK2] highlight rects should never big bigger than the view
https://bugs.webkit.org/show_bug.cgi?id=129472

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-28
Reviewed by Enrica Casucci.

  • WebCore.exp.in:

Source/WebKit2: [iOS][WK2] highlight rects should never big bigger than the view
https://bugs.webkit.org/show_bug.cgi?id=129472
<rdar://problem/15673655>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-28
Reviewed by Enrica Casucci.

The unobscuredRect on WebPageProxy is the "true" view rect as seen by the user.
Use that to constrain our highlight rects.

  • UIProcess/ios/WKContentViewInteraction.mm:

(highlightedQuadsFitInRect):
(-[WKContentView _didGetTapHighlightForRequest:color:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):

3:38 PM Changeset in webkit [164891] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Turn off margin tiles on iOS
https://bugs.webkit.org/show_bug.cgi?id=129509
-and corresponding-
<rdar://problem/16200383>

Reviewed by Simon Fraser.

  • page/FrameView.cpp:

(WebCore::FrameView::needsExtendedBackgroundRectForPainting):

3:36 PM Changeset in webkit [164890] by Simon Fraser
  • 18 edits
    2 copies
    1 move
    2 adds in trunk/Source/WebKit2

Make UIViews for compositing layers in the UI process on iOS
https://bugs.webkit.org/show_bug.cgi?id=129508

Reviewed by Sam Weinig.

In order to parent UIScrollViews for -webkit-overflow-scrolling:touch,
we need to use UIViews in the compositing layer hierarchy on iOS.

Make much of the code that currently uses CALayers layer-or-view
agnostic by using a typedef LayerOrView.

Fix RemoteLayerTreePropertyApplier to apply properties to UIViews
or CALayers; on iOS, we need both paths because we have to set properties
on CALayer for remotely hosted content.

Add iOS-specific implementation files for RemoteLayerTreeHost and RemoteScrollingCoordinatorProxy,
since these need to see the UIView implementation. WebVideoFullscreenManagerProxy.cpp also needs
to be come a .mm file.

  • Shared/mac/RemoteLayerTreePropertyApplier.h:
  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(-[UIView setSubviews:]):
(WebKit::applyPropertiesToLayer):
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):

  • UIProcess/Cocoa/LayerRepresentation.h: Copied from Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h.

(asLayer):

  • UIProcess/PageClient.h:
  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/LayerRepresentation.mm: Copied from Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h.

(asLayer):

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

(WebKit::PageClientImpl::setAcceleratedCompositingRootLayer):
(WebKit::PageClientImpl::acceleratedCompositingRootLayer):

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm: Added.

(+[WKTransformView layerClass]):
(-[WKRemoteView initWithFrame:contextID:]):
(+[WKRemoteView layerClass]):
(WebKit::RemoteLayerTreeHost::createLayer):

  • UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: Added.

(WebKit::layerRepresentationFromLayerOrView):
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

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

(-[WKContentView _setAcceleratedCompositingRootView:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp.

(WebKit::WebVideoFullscreenManagerProxy::create):
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
(WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy):
(WebKit::WebVideoFullscreenManagerProxy::didCommitLayerTree):
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::requestExitFullScreen):
(WebKit::WebVideoFullscreenManagerProxy::play):
(WebKit::WebVideoFullscreenManagerProxy::pause):
(WebKit::WebVideoFullscreenManagerProxy::togglePlayState):
(WebKit::WebVideoFullscreenManagerProxy::seekToTime):
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):

  • UIProcess/mac/RemoteLayerTreeHost.h:

(WebKit::RemoteLayerTreeHost::rootLayer):

  • UIProcess/mac/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::getLayer):
(WebKit::RemoteLayerTreeHost::createLayer):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
(WebKit::WebPageProxy::acceleratedCompositingRootLayer):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(PlatformCALayerRemote::recursiveBuildTransaction):

3:11 PM Changeset in webkit [164889] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

WebKit2.TerminateTwice test is failing.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetStateAfterProcessExited):
Turns out this can be called even when we're in the launching state so don't try to
remove the process from the visited link provider when in that state.

3:05 PM Changeset in webkit [164888] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Subpixel rendering: Add subpixel support to border type of double, groove, ridge, inset and outset.
https://bugs.webkit.org/show_bug.cgi?id=129226

Reviewed by Simon Fraser.

This is the conversion of double, inset, outset, groove and ridge border type
painting to support device pixel precision width/height.

Regression is covered by existing tests.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::drawLineForBoxSide):

  • rendering/RenderObject.h:
3:04 PM Changeset in webkit [164887] by Chris Fleizach
  • 2 edits in trunk/Source/WebKit2

AX: Crash in WebKit::WebPageProxy::registerWebProcessAccessibilityToken
https://bugs.webkit.org/show_bug.cgi?id=127387

Reviewed by Alexey Proskuryakov.

Speculative fix for crasher. We should check if the connection is still valid before proceeding.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::registerWebProcessAccessibilityToken):

2:54 PM Changeset in webkit [164886] by cavalcantii@gmail.com
  • 7 edits
    4 adds in trunk

Filters should test for area instead of single dimension
https://bugs.webkit.org/show_bug.cgi?id=123716

Reviewed by Dirk Schulze.

A filtered SVG element with a sigle dimension bigger than 5000
(counting the margin/border) will fail to render. So an element
with 4000x4000 will render fine, while another with 5000x10
won't. This patch instead tests against the total element area,
which fixes such cases.

Source/WebCore:

It also fixes some layer violations where FilterEffectRenderer and
RenderSVGResourceFilter were directly accessing the maximum filter
size in FilterEffect. Since before a somewhat bigger filter would
be aborted, it required to change the maximum kernel size
for blur filter (some filters are slower to run than others for
bigger SVGs).

Tests: svg/filters/big-height-filter-expected.svg

svg/filters/big-height-filter.svg
svg/filters/big-width-filter-expected.svg
svg/filters/big-width-filter.svg

  • platform/graphics/filters/FEGaussianBlur.cpp:
  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::maxFilterArea): New function, returns the
maximum allowed element area (currently is 4096 x 4096).
(WebCore::FilterEffect::isFilterSizeValid): Now it tests for
element area instead of a single dimension. This code is reused by
FilterEffectRenderer.

  • platform/graphics/filters/FilterEffect.h:
  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::updateBackingStoreRect): Uses the
new function in FilterEffect to test for valid sizes.
(WebCore::FilterEffectRendererHelper::beginFilterEffect): Same case.

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::fitsInMaximumImageSize): Test
for maximum area and properly changes the scale of transformed
element to fit.

LayoutTests:

The current patch fixes the rendering issue and at same time,
fixes some layer violations where FilterEffectRenderer and
RenderSVGResourceFilter were directly accessing the kMax value
in FilterEffect. Since before a somewhat bigger filter would
be aborted, it required to change the maximum kernel size
for blur filter (some filters are slower to run than others for
bigger SVGs).

  • svg/filters/big-height-filter-expected.svg: Added.
  • svg/filters/big-height-filter.svg: Added.
  • svg/filters/big-width-filter-expected.svg: Added.
  • svg/filters/big-width-filter.svg: Added.
2:54 PM Changeset in webkit [164885] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Enable breakpoints when adding a new breakpoint or enabling an existing breakpoint.

This eliminates a multi-step process for the user that can be confusing.

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

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.set breakpointsEnabled):
(WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointsEnabledDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointsToggleButtonClicked):

2:51 PM Changeset in webkit [164884] by timothy@apple.com
  • 5 edits in trunk/Source

Properly handle when Test.html is not present in Production builds.

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

Reviewed by Joseph Pecoraro.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController inspectorTestPagePath]):
(-[WebInspectorWindowController webView:decidePolicyForNavigationAction:request:frame:decisionListener:]):

Source/WebKit2:

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::isMainOrTestInspectorPage):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::inspectorTestPageURL):

2:10 PM Changeset in webkit [164883] by psolanki@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS][WebKit2] Don't grab mach exception port on iOS
https://bugs.webkit.org/show_bug.cgi?id=129505
<rdar://problem/15972749>

Reviewed by Anders Carlsson.

Don't grab the mach exception port on iOS so we get crash logs for web process and network
process.

  • Shared/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::didFinishLaunching):

1:43 PM Changeset in webkit [164882] by Alan Bujtas
  • 11 edits
    2 adds in trunk

Add hiDPI support to DumpRenderTree/WebKitTestRunner without the need of reloading the test case.
https://bugs.webkit.org/show_bug.cgi?id=129438

Reviewed by Simon Fraser.

'hidpi-' prefixed test cases now trigger 2x scale factor on the testing
offscreen window. It makes testing subpixel rendering and positioning possible.

Both the offscreen window's and WebKit's scaling are set accordingly.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow): cleanup
(destroyWebViewAndOffscreenWindow): cleanup
(dumpRenderTree):
(changeWindowScaleIfNeeded):
(runTest):

  • DumpRenderTree/mac/DumpRenderTreeWindow.h:
  • DumpRenderTree/mac/DumpRenderTreeWindow.mm:

(-[DumpRenderTreeWindow initWithContentRect:styleMask:backing:defer:]): cleanup

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

(WTR::changeWindowScaleIfNeeded):
(WTR::TestInvocation::invoke):

  • WebKitTestRunner/efl/PlatformWebViewEfl.cpp:

(WTR::PlatformWebView::changeWindowScaleIfNeeded):

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::changeWindowScaleIfNeeded):

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::changeWindowScaleIfNeeded):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::changeWindowScaleIfNeeded):

LayoutTests:

  • fast/borders/hidpi-simple-hairline-border-painting-expected.html: Added.
  • fast/borders/hidpi-simple-hairline-border-painting.html: Added.
1:12 PM Changeset in webkit [164881] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Mac, iOS] Incorrect ordering of construction arguments for out-of-band text elements
https://bugs.webkit.org/show_bug.cgi?id=129501
<rdar://problem/16198587>

Reviewed by Eric Carlson.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute): Correct order of arguments
to PlatformTextTrack.

1:03 PM Changeset in webkit [164880] by oliver@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r164835): It broke 10 JSC stress test on 32 bit platforms
https://bugs.webkit.org/show_bug.cgi?id=129488

Reviewed by Mark Lam.

Whoops, modify the right register.

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileLoadVarargs):

1:00 PM Changeset in webkit [164879] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix after r164832.

  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::updateProcessState): Switch from removed
'isValid' to 'state() != State::Running'

12:40 PM Changeset in webkit [164878] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

FTL should be able to call sin/cos directly on platforms where the intrinsic is busted
https://bugs.webkit.org/show_bug.cgi?id=129503

Reviewed by Mark Lam.

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLOutput.h:

(JSC::FTL::Output::doubleSin):
(JSC::FTL::Output::doubleCos):
(JSC::FTL::Output::intrinsicOrOperation):

11:32 AM Changeset in webkit [164877] by andersca@apple.com
  • 6 edits in trunk

Source/WebKit2: VisitedLinkProvider should keep track of processes, not pages
https://bugs.webkit.org/show_bug.cgi?id=129497

Reviewed by Dan Bernstein.

Use a counted set of WebProcessProxy pointers instead of a set of pages.

  • UIProcess/VisitedLinkProvider.cpp:

(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
Assert that m_processes is null.

(WebKit::VisitedLinkProvider::addProcess):
Add the process to the set.

(WebKit::VisitedLinkProvider::removeProcess):
Remove the process from the set.

  • UIProcess/VisitedLinkProvider.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
If our process is currently running, add it to the visited link provider.
Otherwise it will be added in connectionWillOpen.

(WebKit::WebPageProxy::close):
If our process is running, remove it from the visited link provider.
Otherwise it's either crashed or not yet launched and will not have been added.

(WebKit::WebPageProxy::connectionWillOpen):
Add the process to the visited link provider.

(WebKit::WebPageProxy::resetStateAfterProcessExited):
Remove the process from the visited link provider.

Tools: Remove logging.

Reviewed by Dan Bernstein.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController browsingContextController:decidePolicyForNavigationAction:decisionHandler:]):

11:19 AM Changeset in webkit [164876] by Bem Jones-Bey
  • 2 edits in trunk/Source/WebCore

Properly clear m_logicallyLastRun to remove use-after-free possibility
https://bugs.webkit.org/show_bug.cgi?id=129489

Reviewed by David Hyatt.

A use-after-free issue was caught in Blink because m_logicallyLastRun
is not cleared when the item it points to is deleted. Clearing it
turns the use-after-free into a segfault, and prevents any future
use-after-frees from happening.

  • platform/text/BidiRunList.h:

(WebCore::BidiRunList<Run>::deleteRuns):

11:03 AM Changeset in webkit [164875] by bshafiei@apple.com
  • 1 copy in tags/Safari-537.75.3

New tag.

11:02 AM Changeset in webkit [164874] by bshafiei@apple.com
  • 5 edits in branches/safari-537.75-branch/Source

Versioning.

10:59 AM Changeset in webkit [164873] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Disambiguate calls to [[window contentView] layer] and [... setLayer:]
https://bugs.webkit.org/show_bug.cgi?id=129491

Reviewed by Alexey Proskuryakov.

-[NSWindow contentView] returns a bare id, leading to ambiguity when calling
certain methods, including -layer and -setLayer:. Resolve the ambiguity by
explicitly casting the -contentView call to a NSView*.

  • platform/mac/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController setupVideoOverlay:]):
(-[WebVideoFullscreenController windowDidLoad]):
(-[WebVideoFullscreenController windowDidExitFullscreen]):

10:58 AM Changeset in webkit [164872] by ap@apple.com
  • 2 edits in trunk/LayoutTests

paragraphs with different directionality in textarea with unicode-bidi: plaintext are aligned the same
https://bugs.webkit.org/show_bug.cgi?id=71194

  • platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:

Updated Mac results for Mavericks (the original patch only updated Mountain Lion results).

10:44 AM Changeset in webkit [164871] by akling@apple.com
  • 3 edits
    2 adds in trunk

MouseEvent.offsetX/Y should just return 0,0 for simulated clicks.
<https://webkit.org/b/129477>

Source/WebCore:

There's no need to compute the exact target-relative coordinates for
simulated mouse events, e.g those fired by HTMLElement.click().

The offsetX/Y properties are not supported by Firefox.

Test: fast/events/relative-offset-of-simulated-click.html

Reviewed by Alexey Proskuryakov.

  • dom/MouseRelatedEvent.cpp:

(WebCore::MouseRelatedEvent::offsetX):
(WebCore::MouseRelatedEvent::offsetY):

LayoutTests:

Add a test documenting the behavior of offsetX/Y on the simulated
mouse events that get sent by HTMLElement.click().

Reviewed by Alexey Proskuryakov.

  • fast/events/relative-offset-of-simulated-click-expected.txt: Added.
  • fast/events/relative-offset-of-simulated-click.html: Added.
10:36 AM Changeset in webkit [164870] by Brent Fulgham
  • 4 edits in branches/safari-537.75-branch

Source/WTF: Unreviewed build fix: Pass build environment to sub-processes via command line.
<rdar://problem/16197002>

  • WTF.vcxproj/build-generated-files.sh: Pass WEBKIT_LIBRARIES via argument, rather than

relying on global environment.

WebKitLibraries: Unreviewed build fix: Pass WEBKIT_LIBRARIES as argument to sub-process build steps.
<rdar://problem/16197002>

  • win/tools/vsprops/common.props: Pass WEBKIT_LIBRARIES directly to sub-processes, rather

than relying on global environment already having these values set.

10:34 AM Changeset in webkit [164869] by svillar@igalia.com
  • 7 edits
    4 adds in trunk

[CSS Grid Layout] Fix positioning grid items using named grid lines/areas
https://bugs.webkit.org/show_bug.cgi?id=129372

Reviewed by Darin Adler.

Source/WebCore:

Our code was assuming that a <custom-ident> in
-webkit-grid-{column|row}-{start|end} and
-webkit-grid-{column|row} was always a grid area name. That's
wrong because the <custom-ident> could be also a explicitly named
grid line or the an implicitly named grid line created by a grid
area definition.

The style resolution code was not correct either. This patch fixes
it so it now matches the spec, which means that:

  • first we try to match any existing grid area.
  • then if there is a named grid line with the name

<custom-ident>-{start|end} for -webkit-grid-{column|row}-{start|end}
defined before the grid area then we use it instead of the grid
area.

  • otherwise if there is a named grid line we resolve to the first such line.
  • otherwise we treat it as 'auto'.

Fixing this uncovered a bug in GridPosition, we were not using the
name of the stored grid area to check if two GridPositions were
the same.

Tests: fast/css-grid-layout/grid-item-position-changed-dynamic.html

fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html

  • css/StyleResolver.cpp:

(WebCore::gridLineDefinedBeforeGridArea): New function to check if
a given named grid line was defined before an implicit named grid
line created by a grid area definition.
(WebCore::StyleResolver::adjustNamedGridItemPosition): New
function that adjusts the position of a GridPosition parsed as a
grid area.
(WebCore::StyleResolver::adjustGridItemPosition): Use the new
function adjustNamedGridItemPosition to adjust the positions of
named grid lines.

  • css/StyleResolver.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle): Use GridPosition:: namespace.
(WebCore::RenderGrid::resolveGridPositionFromStyle): Ditto.
(WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Ditto.

  • rendering/RenderGrid.h:
  • rendering/style/GridPosition.h:

(WebCore::GridPosition::adjustGridPositionForRowEndColumnEndSide): Moved from RenderGrid.cpp.
(WebCore::GridPosition::adjustGridPositionForSide): Ditto.
(WebCore::GridPosition::operator==): Use the named grid line to check equality.

LayoutTests:

Added a new test that checks that we correctly position grid items
using named grid lines, grid areas and also with the implicit
named grid lines created by grid areas.

I'm also importing a test from Blink that checks that we can
dynamically change the position of a grid item by changing the
name of the grid lines used to position it.

  • fast/css-grid-layout/grid-item-position-changed-dynamic-expected.txt:

Merged from Blink r153913 by <jchaffraix@chromium.org>.

  • fast/css-grid-layout/grid-item-position-changed-dynamic.html: Ditto.
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution-expected.txt: Added.
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html: Added.
10:14 AM Changeset in webkit [164868] by zoltan@webkit.org
  • 4 edits in trunk/Source/WebCore

[CSS Shapes] Update line segments for ShapeInside only if the new line is wide enough
https://bugs.webkit.org/show_bug.cgi?id=129461

Reviewed by David Hyatt.

Shape-inside can make a line only narrower than the original line width, thus we don't need
to update the line/shape segments in fitBelowFloats for every single line inside shape-inside.
This patch adds a helper function, which updates the line segments, furthermore it updates the
line segments only when the content would fit without the shape.

No new tests, no behavior change.

  • rendering/line/BreakingContextInlineHeaders.h: Use new helper.

(WebCore::updateSegmentsForShapes):

  • rendering/line/LineWidth.cpp: Use new helper.

(WebCore::LineWidth::updateLineSegment): Add new helper.
(WebCore::LineWidth::fitBelowFloats):

10:12 AM Changeset in webkit [164867] by mario.prada@samsung.com
  • 7 edits in trunk

paragraphs with different directionality in textarea with unicode-bidi: plaintext are aligned the same
https://bugs.webkit.org/show_bug.cgi?id=71194

Reviewed by David Hyatt.

Merged from Blink r157263 by <igor.o@sisa.samsung.com>
<https://src.chromium.org/viewvc/blink?revision=157263&view=revision>

Source/WebCore:

In the css3-text spec (http://www.w3.org/TR/css3-text/#bidi-linebox):

The start and end edges of a line box are determined by the inline
base direction of the line box. In most cases, this is given by
its containing block's computed ‘direction’. However if its
containing block has ‘unicode-bidi: plaintext’, the inline base
direction the line box must be determined by the base direction of
the bidi paragraph to which it belongs: that is, the bidi
paragraph for which the line box holds content.

This patch just implements the behavior described above modifying
updateLogicalWidthForAlignment and setting the bidi level of the
RootInlineBox.

  • rendering/RenderBlockFlow.h:
  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
(WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
(WebCore::RenderBlockFlow::checkLinesForTextOverflow):
(WebCore::RenderBlockFlow::startAlignedOffsetForLine):

LayoutTests:

Modified expectations for two layout tests to make them conforming to the spec.

  • fast/text/international/unicode-bidi-plaintext-expected.html:
  • platform/gtk/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/mac-mountainlion/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
10:09 AM Changeset in webkit [164866] by jochen@chromium.org
  • 3 edits
    2 adds in trunk

Update meta-referrer behavior for invalid policies
https://bugs.webkit.org/show_bug.cgi?id=129475

Source/WebCore:

This patch aligns the behavior with the CSP 1.1 referrer directive,
where the fallback for an invalid value is the "never" policy.

Original patch from Mike West: https://src.chromium.org/viewvc/blink?view=rev&revision=165627

Reviewed by Alexey Proskuryakov.

Test: http/tests/security/referrer-policy-invalid.html

  • dom/Document.cpp:

(WebCore::Document::processReferrerPolicy):

LayoutTests:

Reviewed by Alexey Proskuryakov.

  • http/tests/security/referrer-policy-invalid-expected.txt: Added.
  • http/tests/security/referrer-policy-invalid.html: Added.
9:53 AM Changeset in webkit [164865] by dbates@webkit.org
  • 2 edits in trunk/Tools

[iOS] DumpRenderTree Perl Support may build against wrong SDK and toolchain
https://bugs.webkit.org/show_bug.cgi?id=129163

Reviewed by David Kilzer.

Fixes an issue where DumpRenderTree Perl Support may build with the specified
iOS Simulator SDK and toolchain instead of using the OS X SDK and toolchain.
This issue manifests itself in a build failure when building the IPhoneSimulatorNotification
bundle.

Currently we build DumpRenderTree Perl Support with respect to the variable SDKROOT,
which is specified either explicitly when building with MAKE(1) or implicitly by
build-{dumprendertree, webkit}. Instead we should always build Perl Support using
the OS X SDK and toolchain since the built products are only applicable to OS X.

  • DumpRenderTree/ios/PerlSupport/Makefile:
9:46 AM Changeset in webkit [164864] by mhahnenberg@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix !ENABLE(GGC) builds

  • heap/Heap.cpp:

(JSC::Heap::markRoots):
(JSC::Heap::gatherJSStackRoots): Also fix one of the names of the GC phases.

9:30 AM Changeset in webkit [164863] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

SubresourceLoader::didFinishLoading() should not assert when a decode error occurs
https://bugs.webkit.org/show_bug.cgi?id=127029

Reviewed by Darin Adler.

Source/WebCore:

SubresourceLoader::didFinishLoading() can be called for a resource (e.g. an image) that
failed to be decoded or, in the case of an image, whose estimated decoded size exceeds
the maximum decoded size (Settings::maximumDecodedImageSize()).

Test: fast/images/decoded-size-exceeds-max-decoded-size.html

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFinishLoading):

LayoutTests:

Added a test to ensure that we don't cause an assertion failure when an image fails
to load because of a decode error. In particular, the estimated decoded image size
exceeds the maximum decoded image size.

  • fast/images/decoded-size-exceeds-max-decoded-size-expected.txt: Added.
  • fast/images/decoded-size-exceeds-max-decoded-size.html: Added.
8:56 AM Changeset in webkit [164862] by mhahnenberg@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Clean up Heap::collect and Heap::markRoots
https://bugs.webkit.org/show_bug.cgi?id=129464

Reviewed by Geoffrey Garen.

These functions have built up a lot of cruft recently.
We should do a bit of cleanup to make them easier to grok.

  • heap/Heap.cpp:

(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::gatherStackRoots):
(JSC::Heap::gatherJSStackRoots):
(JSC::Heap::gatherScratchBufferRoots):
(JSC::Heap::clearLivenessData):
(JSC::Heap::visitSmallStrings):
(JSC::Heap::visitConservativeRoots):
(JSC::Heap::visitCompilerWorklists):
(JSC::Heap::markProtectedObjects):
(JSC::Heap::markTempSortVectors):
(JSC::Heap::markArgumentBuffers):
(JSC::Heap::visitException):
(JSC::Heap::visitStrongHandles):
(JSC::Heap::visitHandleStack):
(JSC::Heap::traceCodeBlocksAndJITStubRoutines):
(JSC::Heap::converge):
(JSC::Heap::visitWeakHandles):
(JSC::Heap::clearRememberedSet):
(JSC::Heap::updateObjectCounts):
(JSC::Heap::resetVisitors):
(JSC::Heap::markRoots):
(JSC::Heap::copyBackingStores):
(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::collect):
(JSC::Heap::collectIfNecessaryOrDefer):
(JSC::Heap::suspendCompilerThreads):
(JSC::Heap::willStartCollection):
(JSC::Heap::deleteOldCode):
(JSC::Heap::flushOldStructureIDTables):
(JSC::Heap::flushWriteBarrierBuffer):
(JSC::Heap::stopAllocation):
(JSC::Heap::reapWeakHandles):
(JSC::Heap::sweepArrayBuffers):
(JSC::Heap::snapshotMarkedSpace):
(JSC::Heap::deleteSourceProviderCaches):
(JSC::Heap::notifyIncrementalSweeper):
(JSC::Heap::rememberCurrentlyExecutingCodeBlocks):
(JSC::Heap::resetAllocators):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::didFinishCollection):
(JSC::Heap::resumeCompilerThreads):

  • heap/Heap.h:
8:35 AM Changeset in webkit [164861] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: roundedIntPoint(rendererMappedResult) == roundedIntPoint(result) in WebCore::RenderGeometryMap::mapToContainer
https://bugs.webkit.org/show_bug.cgi?id=119626

Source/WebCore:

SVGRenderSupport::mapLocalToContainer() was trying to apply transforms
in the incorrect order. Specifically, it would attempt to apply its
localToParentTransform before its localToBorderBoxTransform. This
was causing an ASSERT to fail when the computed transforms didn't
match up to those computed by RenderGeometryMap.

Backported from Blink: https://codereview.chromium.org/143363004

Patch by Martin Hodovan <mhodovan@inf.u-szeged.hu> on 2014-02-28
Reviewed by Simon Fraser.

Test: svg/transforms/svg-geometry-crash.html

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::mapLocalToContainer):

LayoutTests:

Backported from Blink: https://codereview.chromium.org/143363004

Patch by Martin Hodovan <mhodovan@inf.u-szeged.hu> on 2014-02-28
Reviewed by Simon Fraser.

  • svg/transforms/svg-geometry-crash-expected.txt: Added.
  • svg/transforms/svg-geometry-crash.html: Added.
7:52 AM Changeset in webkit [164860] by commit-queue@webkit.org
  • 11 edits
    2 deletes in trunk

Unreviewed, rolling out r164859.
http://trac.webkit.org/changeset/164859
https://bugs.webkit.org/show_bug.cgi?id=129483

caused WK1 crashes (DumpRenderTree) (Requested by zalan on
#webkit).

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow):
(dumpRenderTree):
(runTest):

  • DumpRenderTree/mac/DumpRenderTreeWindow.h:
  • DumpRenderTree/mac/DumpRenderTreeWindow.mm:

(-[DumpRenderTreeWindow initWithContentRect:styleMask:backing:defer:]):

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

(WTR::TestInvocation::invoke):

  • WebKitTestRunner/efl/PlatformWebViewEfl.cpp:
  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:
  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(-[WebKitTestRunnerWindow frameRespectingFakeOrigin]):

LayoutTests:

  • fast/borders/hidpi-simple-hairline-border-painting-expected.html: Removed.
  • fast/borders/hidpi-simple-hairline-border-painting.html: Removed.
7:24 AM Changeset in webkit [164859] by Alan Bujtas
  • 11 edits
    2 adds in trunk

Add hiDPI support to DumpRenderTree/WebKitTestRunner without the need of reloading the test case.
https://bugs.webkit.org/show_bug.cgi?id=129438

Reviewed by Simon Fraser.

'hidpi-' prefixed test cases now trigger 2x scale factor on the testing
offscreen window. It makes testing subpixel rendering and positioning possible.

Both the offscreen window's and WebKit's scaling are set accordingly.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow): unrelated cleanup.
(destroyWebViewAndOffscreenWindow): unrelated cleanup.
(dumpRenderTree):
(changeOffscreenWindowScaleIfNeeded):
(runTest):

  • DumpRenderTree/mac/DumpRenderTreeWindow.h:
  • DumpRenderTree/mac/DumpRenderTreeWindow.mm:

(-[DumpRenderTreeWindow initWithContentRect:styleMask:backing:defer:]): cleanup.

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

(WTR::changeOffscreenWindowScaleIfNeeded):
(WTR::TestInvocation::invoke):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::changeOffscreenWindowScaleIfNeeded):

LayoutTests:

  • fast/borders/hidpi-simple-hairline-border-painting-expected.html: Added.
  • fast/borders/hidpi-simple-hairline-border-painting.html: Added.
6:34 AM Changeset in webkit [164858] by mihnea@adobe.com
  • 4 edits
    2 adds in trunk

[CSSRegions] ASSERTION FAILED: !m_regionsInvalidated in RenderFlowThread::regionAtBlockOffset
https://bugs.webkit.org/show_bug.cgi?id=129371

Source/WebCore:

Reviewed by Andrei Bucur.

regionAtBlockOffset method is meant to be used after the flow thread validated
its region chain, otherwise we cannot rely on regionAtBlockOffset to determine correctly
the target region based on the offset in flow thread coordinates.

When the video element is collected in a named flow and displayed in a region, we ensure
that the region's decorations are taken into account to properly position the video.
However, we have to do that only if the named flow regions are validated.

I changed the method cachedRegionForCompositedLayer to check only the "cached" region
for a layer and not update the layer to region mappings before returning the region.
Because method cachedRegionForCompositedLayer does not update the region - layer mappings,
the code does not call regionAtBlockOffset in situations where the region chain is not validated yet.

Test: compositing/regions/video-in-overflow-region.html

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::getLayerListForRegion): Make it a getter that relies on
cached information and refrain from updating the mappings. Make it const too.
(WebCore::RenderFlowThread::cachedRegionForCompositedLayer):

  • rendering/RenderFlowThread.h:

LayoutTests:

Reviewed Andrei Bucur.

  • compositing/regions/video-in-overflow-region-expected.txt: Added.
  • compositing/regions/video-in-overflow-region.html: Added.
2:06 AM Changeset in webkit [164857] by calvaris@igalia.com
  • 4 edits in trunk/Source/WebCore

[GTK] Finetune captions menu as per design team
https://bugs.webkit.org/show_bug.cgi?id=129432

Reviewed by Eric Carlson.

Some design fine tuning of the captions dialog was required.

No new tests, current suffice.

  • Modules/mediacontrols/mediaControlsApple.js:

Added out class.

  • Modules/mediacontrols/mediaControlsGtk.js:

(ControllerGtk.prototype.buildCaptionMenu): Setting out class when
menu is going to show overlap the panel right border.

  • css/mediaControlsGtk.css:

(video::-webkit-media-controls-closed-captions-container.out):
Setting all borders to 5px;
(video::-webkit-media-controls-closed-captions-container h3):
Reduced font size and increasing top padding.
(video::-webkit-media-controls-closed-captions-container ul):
Increased top padding.

Feb 27, 2014:

11:50 PM Changeset in webkit [164856] by rniwa@webkit.org
  • 13 edits in trunk/Source/WebCore

Element::attributeChanged shouldn't do any work when attribute value didn't change
https://bugs.webkit.org/show_bug.cgi?id=129467

Reviewed by Geoffrey Garen.

Exit early in childrenChanged when the attribute value didn't change.

  • dom/Attr.cpp:

(WebCore::Attr::setValue):
(WebCore::Attr::childrenChanged):

  • dom/Element.cpp:

(WebCore::Element::setAttributeInternal):
(WebCore::Element::attributeChanged):
(WebCore::Element::parserSetAttributes):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::didAddAttribute):
(WebCore::Element::didModifyAttribute):
(WebCore::Element::didRemoveAttribute):
(WebCore::Element::cloneAttributesFromElement):

  • dom/Element.h:
  • dom/StyledElement.cpp:

(WebCore::StyledElement::attributeChanged):

  • dom/StyledElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::attributeChanged):

  • mathml/MathMLElement.h:
  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::attributeChanged):

  • mathml/MathMLSelectElement.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::attributeChanged):

  • svg/SVGElement.h:
10:32 PM Changeset in webkit [164855] by jinwoo7.song@samsung.com
  • 2 edits in trunk/Source/WebCore

[EFL] Remove duplicated keyboard string key from keyMap
https://bugs.webkit.org/show_bug.cgi?id=129469

Reviewed by Gyuyoung Kim.

"Down" key is duplicated in keyMap().

  • platform/efl/EflKeyboardUtilities.cpp:

(WebCore::createKeyMap):

9:54 PM Changeset in webkit [164854] by benjamin@webkit.org
  • 8 edits in trunk/Source/WebCore

Unify the three call sites of SelectorQueryCache
https://bugs.webkit.org/show_bug.cgi?id=129249

Reviewed by Andreas Kling.

The three call sites of SelectorQueryCache were doing the exact same thing.
That code is mvoed to a new function Document::selectorQueryForString().

Also use String instead of AtomicString for querySelector() and querySelectorAll().
This prevent the call sites from creating AtomicString just for the time of the call.
This causes a tiny slow down on microbenchmarks that continuously query the same string
but has no negative impact on realistic/good test cases (and the bindings are simplified).

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::querySelector):
(WebCore::ContainerNode::querySelectorAll):

  • dom/ContainerNode.h:
  • dom/Document.cpp:

(WebCore::Document::selectorQueryForString):

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::webkitMatchesSelector):

  • dom/SelectorQuery.cpp:

(WebCore::SelectorQueryCache::add):

  • dom/SelectorQuery.h:
9:53 PM Changeset in webkit [164853] by rniwa@webkit.org
  • 35 edits
    1 add in trunk/Source/WebCore

JSC ignores the extra memory cost of HTMLCollection after a major GC
https://bugs.webkit.org/show_bug.cgi?id=129450

Reviewed by Andreas Kling.

Report the extra memory cost of HTMLCollection to JSC.

Unfortunately, the existing mechanism to report the extra memory cost in toJS is insufficient for
HTMLCollection since collection caches are populated later when HTMLCollection is accessed. Also,
the extra memory cost reported by Heap::reportExtraMemoryCost will be thrown away after a major GC.

To work around this limitation, added a visitor.reportExtraMemoryUsage call inside visitChildren
for interfaces with a newly added ReportExtraMemoryCost IDL extension flag to report the extra cost.

Since we may need to generate visitChildren when this flag is set, we can't automatically detect
and generate calls using C++ template as done in r148648.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Modules/webaudio/AudioBuffer.idl:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMBinding.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(InstanceNeedsVisitChildren):
(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::toJS):

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

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::toJS):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::toJS):

  • dom/ChildNodeList.h:
  • dom/CollectionIndexCache.cpp: Added.

(WebCore::reportExtraMemoryCostForCollectionIndexCache):

  • dom/CollectionIndexCache.h:

(WebCore::CollectionIndexCache::memoryCost):
(WebCore::NodeType>::CollectionIndexCache):
(WebCore::NodeType>::nodeCount):
(WebCore::NodeType>::computeNodeCountUpdatingListCache):
(WebCore::NodeType>::nodeAt):
(WebCore::NodeType>::invalidate):

  • dom/DOMAllInOne.cpp:
  • dom/LiveNodeList.cpp:

(WebCore::LiveNodeList::memoryCost):

  • dom/LiveNodeList.h:
  • dom/NodeList.h:

(WebCore::NodeList::memoryCost):

  • dom/NodeList.idl:
  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::updateNamedElementCache):

  • html/HTMLCollection.h:

(WebCore::CollectionNamedElementCache::didPopulate):
(WebCore::CollectionNamedElementCache::memoryCost):
(WebCore::CollectionNamedElementCache::find):
(WebCore::HTMLCollection::memoryCost):

  • html/HTMLCollection.idl:
  • html/HTMLFormControlsCollection.cpp:

(WebCore::HTMLFormControlsCollection::updateNamedElementCache):

9:52 PM Changeset in webkit [164852] by benjamin@webkit.org
  • 9 edits
    2 adds in trunk

Compile attribute value matching
https://bugs.webkit.org/show_bug.cgi?id=129228

Reviewed by Geoffrey Garen.

Source/WebCore:

Add support for compiling value matching when matching attributes in Selector.
This patch only adds exact matching, the other cases will follow.

There is a little infrastructure changes since FunctionCall now needs to support
calls taking 2 arguments. The fun begins when the arguments are not in the right
registers and need to be moved to the right place. Otherwise the code is straightforward.

In SelectorCompiler, it is necessary to handle two different cases of matching: case sensitive
and case insensitive. The choice is done in part at compilation time by asking HTMLDocument
if the name filter can include case insensitive attribute. The other part is done at runtime
by querying the element for its type and document.

Test: fast/selectors/case-insensitive-value-matching.html

  • css/SelectorChecker.cpp:

(WebCore::attributeValueMatches): Null values matching should never happen, when an attribute
has no value, its value is empty.

  • cssjit/FunctionCall.h:

(WebCore::FunctionCall::FunctionCall):
Add support for calls with two arguments.
(WebCore::FunctionCall::setOneArgument):
(WebCore::FunctionCall::setTwoArguments):
(WebCore::FunctionCall::swapArguments):
Here we need to swap two registers, but we cannot allocate a new register (because the context
of the function call may have taken all the available registers already).

On x86, the solution is simple, we can swap the two registers without side effects.

On other platforms, it is a little more complex. If there is any available register, we can just
use it as a temporary to make the swap.
If there are no available registers, we know that all the registers are taken. Since swapArguments()
was called after pushing all the arguments on the stack, we can safely trash the value of any of those.
We take the first available register that is not a function argument and use it as a temporary.

(WebCore::FunctionCall::prepareAndCall):
This is the fun part, we have two registers where the values must go before the function call. The values
can be in any combination of the allocated registers. The code here needs to move the two values to
their target register while avoiding conflicts.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::AttributeMatchingInfo::AttributeMatchingInfo):
(WebCore::SelectorCompiler::AttributeMatchingInfo::canDefaultToCaseSensitiveValueMatch):
(WebCore::SelectorCompiler::AttributeMatchingInfo::selector):
The value of HTMLDocument::isCaseSensitiveAttribute is needed at compilation time to compute the number
of required registers. As a result, we need to keep it along in the selector fragment.

(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::attributeNameTestingRequiresNamespaceRegister):
(WebCore::SelectorCompiler::attributeValueTestingRequiresExtraRegister):
(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
(WebCore::SelectorCompiler::canMatchStyleAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeStyleAttribute):
(WebCore::SelectorCompiler::canMatchAnimatableSVGAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeAllAnimatedSVGAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
The matching code is moved in a local scope. This is done to recover the register of qualifiedNameImpl
before doing any value matching. That register can then be used to store the expected value when matching
an attribute value.
It is unfortunate there is so much register pressure in this part.

Value matching is done outside the loop. The idea is to keep the loop really small since in the vast majority
of cases, name matching fails.
If the value matching fails, we jump back into the tight loop.

This is not ideal in all situation. For example trivial name matching with trivial value matching should
be done in loop. There is a FIXME to improve those cases later.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
(WebCore::SelectorCompiler::testIsHTMLClassOnDocument):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
In the case sensitive branch, things are really simple. We have to AtomicStringImpl pointers, if they
don't match, it is a failure.

The case sensitive branch start by comparing the pointers in case the values are equal. This is a common
case and it simplifies the cases for SVG, XHTML, etc.
If the two values are not equal, we must first find if the context requires case insensitive comparison
(HTMLElement in HTMLDocument). If the conditions require case insensitive matching, we then fall back
to a function call.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementFunctionCallTest):

  • dom/Attribute.h:

(WebCore::Attribute::valueMemoryOffset):

  • dom/Document.h:

(WebCore::Document::documentClassesMemoryOffset):
(WebCore::Document::isHTMLDocumentClassFlag):

  • dom/Node.h:

(WebCore::Node::treeScopeMemoryOffset):

  • dom/TreeScope.h:

(WebCore::TreeScope::documentScopeMemoryOffset):

LayoutTests:

  • fast/selectors/case-insensitive-value-matching-expected.txt: Added.
  • fast/selectors/case-insensitive-value-matching.html: Added.

Test the various cases that require more register than the common case.

The values match Firefox behavior.

9:30 PM Changeset in webkit [164851] by rniwa@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

indexOf and lastIndexOf shouldn't resolve ropes when needle is longer than haystack
https://bugs.webkit.org/show_bug.cgi?id=129466

Reviewed by Michael Saboff.

Refactored the code to avoid calling JSString::value when needle is longer than haystack.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncIndexOf):
(JSC::stringProtoFuncLastIndexOf):

9:11 PM Changeset in webkit [164850] by ap@apple.com
  • 2 edits in trunk/LayoutTests

css3/compositing/isolation-isolate-blended-child.html fails
https://bugs.webkit.org/show_bug.cgi?id=129468

  • platform/mac-wk2/TestExpectations: Marked as failing on OS X 10.8 Debug WK2.

Not sure if it's hardware related or dependent on confuguration in some other way.

7:31 PM Changeset in webkit [164849] by ryuan.choi@samsung.com
  • 2 edits in trunk/Source/WebCore

Build break when disabled CSS_GRID_LAYOUT
https://bugs.webkit.org/show_bug.cgi?id=129459

Reviewed by Gyuyoung Kim.

  • css/CSSValue.h: Added guards of CSS_GRID_LAYOUT for GridTemplateAreasClass.
6:32 PM Changeset in webkit [164848] by pmolnar.u-szeged@partner.samsung.com
  • 6 edits in trunk

Enable support of X-Content-Type-Options: nosniff header for EFL
https://bugs.webkit.org/show_bug.cgi?id=128673

Reviewed by Gyuyoung Kim.

.:

  • Source/cmake/OptionsEfl.cmake:

Enabled NOSNIFF feature flag for EFL.

LayoutTests:

  • http/tests/security/contentTypeOptions/nosniff-script-blocked-expected.txt:
  • http/tests/security/contentTypeOptions/nosniff-script-without-content-type-blocked-expected.txt:

Updated expectations as console output now includes line numbers.

  • platform/efl/TestExpectations:

Unskipped http/tests/security/contentTypeOptions tests.

6:05 PM Changeset in webkit [164847] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac] Stop using some deprecated functions in WKView.mm
https://bugs.webkit.org/show_bug.cgi?id=129455

Reviewed by Anders Carlsson.

  • UIProcess/API/mac/WKView.mm:

(-[WKView firstRectForCharacterRange:actualRange:]): Use convertRectToScreen,
which is a replacement for convertBaseToScreen. Don't check for window being null,
because isn't that crazy talk?
(-[WKView _postFakeMouseMovedEventForFlagsChangedEvent:]): Use event's location
in window instead of current mouse location. Using location that is not synced to
event stream rarely makes sense, and it doesn't look like this is one of those cases.
(-[WKView performDictionaryLookupAtCurrentMouseLocation]): Ditto.

5:18 PM Changeset in webkit [164846] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Use a RegExp when when using CodeMirror's SearchCursor.

This avoids doing toLowerCase() on every line of the TextEditor.

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

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TextEditor.js:

(TextEditor.prototype.performSearch): Use a RegExp for query. Pass false for the caseFold
argument, but it is ignored for RegExp searches anyway.

5:17 PM Changeset in webkit [164845] by timothy@apple.com
  • 3 edits
    6 adds in trunk

Improve how ContentSearchUtilities::lineEndings works by supporting the three common line endings.

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

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/ContentSearchUtilities.cpp:

(Inspector::ContentSearchUtilities::textPositionFromOffset): Remove assumption about line ending length.
(Inspector::ContentSearchUtilities::getRegularExpressionMatchesByLines): Remove assumption about
line ending type and don't try to strip the line ending. Use size_t
(Inspector::ContentSearchUtilities::lineEndings): Use findNextLineStart to find the lines.
This will include the line ending in the lines, but that is okay.
(Inspector::ContentSearchUtilities::buildObjectForSearchMatch): Use size_t.
(Inspector::ContentSearchUtilities::searchInTextByLines): Modernize.

LayoutTests:

  • inspector-protocol/debugger/resources/mac-linebreaks.js: Added.
  • inspector-protocol/debugger/resources/mixed-linebreaks.js: Added.
  • inspector-protocol/debugger/resources/unix-linebreaks.js: Added.
  • inspector-protocol/debugger/resources/windows-linebreaks.js: Added.
  • inspector-protocol/debugger/searchInContent-linebreaks-expected.txt: Added.
  • inspector-protocol/debugger/searchInContent-linebreaks.html: Added.
5:03 PM Changeset in webkit [164844] by ljaehun.lim@samsung.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix build after r164832

  • UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:

(WebKit::CoordinatedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):

4:46 PM Changeset in webkit [164843] by Brian Burg
  • 3 edits in trunk/LayoutTests

Unreviewed, update test expectations after r164830.

Inspector test dom/dom-search-crash.html times out in release builds
https://bugs.webkit.org/show_bug.cgi?id=129462

Web Inspector model tests load wrong inspector page under WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=129460

  • TestExpectations: Updating test expectations.
  • platform/wk2/TestExpectations: Updating test expectations.
4:22 PM Changeset in webkit [164842] by mmaxfield@apple.com
  • 9 edits
    4 adds in trunk

text-decoration-skip: ink does not skip over SVG fonts
https://bugs.webkit.org/show_bug.cgi?id=128936

Reviewed by Darin Adler.

Source/WebCore:

When drawing glyphs in an SVG font, the glyphs are converted to paths and then filled. This patch moves
the glyph -> path conversion into a helper class, GlyphToPathTranslator, and creates an implementation
for the SVG drawing code. Once this helper class is created, it can be used to trace paths in order
to make underlines skip over SVG glyphs. This helper class also has an implementation for non-SVG glyphs,
which allows for the glyph tracing code to be paramaterized over the implementation of the helper class
rather than if the FontData itself is SVG or not.

Tests: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-svg.html

  • platform/graphics/Font.h:

(WebCore::GlyphToPathTranslator::~GlyphToPathTranslator): Virtual implementation of helper class

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::Path): Created constructor that takes a RefPtr<CGMutablePathRef>

  • platform/graphics/Path.h:
  • platform/graphics/TextRun.h: Give RenderingContext a factory function to create the helper class

instance

  • platform/graphics/mac/FontMac.mm: Implementation of helper class used for skipping underlines on

regular (CoreText) glyphs
(WebCore::MacGlyphToPathTranslator::MacGlyphToPathTranslator):
(WebCore::MacGlyphToPathTranslator::moveToNextValidGlyph):
(WebCore::MacGlyphToPathTranslator::incrementIndex):
(WebCore::Font::dashesForIntersectionsWithRect): Call the relevant factory function, and use it
to successively generate Paths

  • rendering/svg/SVGTextRunRenderingContext.cpp: Implementation of helper class used for SVG fonts

(WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
(WebCore::SVGGlyphToPathTranslator::moveToNextValidGlyph):
(WebCore::SVGGlyphToPathTranslator::incrementIndex):
(WebCore::SVGTextRunRenderingContext::createGlyphToPathTranslator):
(WebCore::SVGTextRunRenderingContext::drawSVGGlyphs): Use the above implementation

  • rendering/svg/SVGTextRunRenderingContext.h: Factory function declaration

LayoutTests:

This font simply draws some underlined text with a SVG font and makes sure the underline skips.

  • fast/css3-text/css3-text-decoration/text-decoration-skip/resources/Litherum.svg: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-svg-expected.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-svg.html: Added.
4:09 PM Changeset in webkit [164841] by mrobinson@webkit.org
  • 2 edits in trunk/Source/WebKit2

Fix build after r164832

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::waitForAndDispatchDidUpdateBackingStoreState): WebProcessProxy::isLaunching() has been replaced
by WebProcessProxy::state().

4:04 PM Changeset in webkit [164840] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Crash in RemoteLayerTreePropertyApplier::applyPropertiesToLayer
https://bugs.webkit.org/show_bug.cgi?id=129456
<rdar://problem/16182676>

Reviewed by Simon Fraser.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
We were dereferencing the RemoteLayerBackingStore without checking if it exists,
in the accelerated drawing codepath. This case will occur if a layer
previously drew contents, but now does not.

3:58 PM Changeset in webkit [164839] by thiago.lacerda@openbossa.org
  • 13 edits in trunk

[WebRTC] Removing MediaConstraints argument from RTCPeerConnection addStream, updateIce methods and constructor
https://bugs.webkit.org/show_bug.cgi?id=129449

Reviewed by Eric Carlson.

According to WebRTC editor's draft, MediaConstraints will no longer be an argument of those methods and
constructor.

Source/WebCore:

Existing tests were updated.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::updateIce):
(WebCore::RTCPeerConnection::addStream):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • bindings/js/JSRTCPeerConnectionCustom.cpp:

(WebCore::JSRTCPeerConnectionConstructor::constructJSRTCPeerConnection):

  • platform/mediastream/RTCPeerConnectionHandler.h:
  • platform/mock/RTCPeerConnectionHandlerMock.cpp:

(WebCore::RTCPeerConnectionHandlerMock::initialize):
(WebCore::RTCPeerConnectionHandlerMock::updateIce):
(WebCore::RTCPeerConnectionHandlerMock::addStream):

  • platform/mock/RTCPeerConnectionHandlerMock.h:

LayoutTests:

  • fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt:
  • fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
  • fast/mediastream/RTCPeerConnection-expected.txt:
  • fast/mediastream/RTCPeerConnection.html:
3:56 PM Changeset in webkit [164838] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[Mac] Warning: Multiple build commands for output file GCSegmentedArray and InspectorAgent
https://bugs.webkit.org/show_bug.cgi?id=129446

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-02-27
Reviewed by Timothy Hatcher.

Remove duplicate header entries in Copy Header build phase.

3:52 PM Changeset in webkit [164837] by stavila@adobe.com
  • 6 edits in trunk/Source/WebCore

[CSS Regions] Move named-flow specific method decorationsClipRectForBoxInRegion to RenderNamedFlowThread
https://bugs.webkit.org/show_bug.cgi?id=129428

Reviewed by Andreas Kling.

Since the decorationsClipRectForBoxInRegion method is a named flow specific method, it makes
sense to be in the named flow specific class, RenderNamedFlowThread, instead of the more
generic RenderFlowThread.

No new tests required. No new functionality.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • rendering/RenderFlowThread.cpp:
  • rendering/RenderFlowThread.h:
  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):

  • rendering/RenderNamedFlowThread.h:
3:36 PM Changeset in webkit [164836] by oliver@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Whoops, include all of last patch.

3:25 PM Changeset in webkit [164835] by oliver@apple.com
  • 13 edits
    1 add in trunk/Source/JavaScriptCore

Slow cases for function.apply and function.call should not require vm re-entry
https://bugs.webkit.org/show_bug.cgi?id=129454

Reviewed by Geoffrey Garen.

Implement call and apply using builtins. Happily the use
of @call and @apply don't perform function equality checks
and just plant direct var_args calls. This did expose a few
codegen issues, but they're all covered by existing tests
once call and apply are implemented in JS.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/Function.prototype.js: Added.

(call):
(apply):

  • bytecompiler/NodesCodegen.cpp:

(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • interpreter/Interpreter.cpp:

(JSC::sizeFrameForVarargs):
(JSC::loadVarargs):

  • interpreter/Interpreter.h:
  • jit/JITCall.cpp:

(JSC::JIT::compileLoadVarargs):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeFunctionCallNode):

  • parser/Lexer.cpp:

(JSC::isSafeBuiltinIdentifier):

  • runtime/CommonIdentifiers.h:
  • runtime/FunctionPrototype.cpp:

(JSC::FunctionPrototype::addFunctionProperties):

  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectBuiltinFunction):
(JSC::JSObject::putDirectBuiltinFunctionWithoutTransition):

  • runtime/JSObject.h:
3:24 PM Changeset in webkit [164834] by zoltan@webkit.org
  • 3 edits in trunk/Source/WebCore

Avoid calling logicalLeftOffsetForLine 2 times in LineWidth::fitBelowFloats
https://bugs.webkit.org/show_bug.cgi?id=129433

Reviewed by Darin Adler.

This change updates fitBelowFloats and its helpers to call RenderBlock::logicalLeftOffsetForLine only once.

No new tests, no behavior change.

  • rendering/line/LineWidth.cpp:

(WebCore::availableWidthAtOffset):
(WebCore::LineWidth::updateLineDimension):
(WebCore::LineWidth::wrapNextToShapeOutside):
(WebCore::LineWidth::fitBelowFloats):

  • rendering/line/LineWidth.h:
3:18 PM Changeset in webkit [164833] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Micro-optimize elementAffectsDirectionality().
<https://webkit.org/b/129444>

Tweak this function to skip an unnecessary bit check and use
fastHasAttribute() instead of hasAttribute() for looking up dirAttr.

~1% speedup on DYEB/AngularJS.

Reviewed by Ryosuke Niwa.

  • html/HTMLElement.cpp:

(WebCore::elementAffectsDirectionality):

3:16 PM Changeset in webkit [164832] by andersca@apple.com
  • 12 edits in trunk/Source/WebKit2

Simplify WebProcessProxy state accessors
https://bugs.webkit.org/show_bug.cgi?id=129453

Reviewed by Andreas Kling.

Replace WebProcessProxy::isLaunching() and WebProcessProxy::isValid() with a single
WebProcessProxy::state() that return one of three values: Launching, Running or Terminated.

  • Shared/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::state):
(WebKit::ChildProcessProxy::sendMessage):
(WebKit::ChildProcessProxy::abortProcessLaunchIfNeeded):

  • Shared/ChildProcessProxy.h:

(WebKit::ChildProcessProxy::canSendMessage):

  • UIProcess/Databases/DatabaseProcessProxy.cpp:

(WebKit::DatabaseProcessProxy::getDatabaseProcessConnection):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getNetworkProcessConnection):

  • UIProcess/Network/mac/NetworkProcessProxyMac.mm:

(WebKit::NetworkProcessProxy::setProcessSuppressionEnabled):

  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::getPluginProcessConnection):
(WebKit::PluginProcessProxy::getSitesWithData):
(WebKit::PluginProcessProxy::clearSiteData):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::waitForDidUpdateViewState):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::requestTermination):
(WebKit::WebProcessProxy::enableSuddenTermination):
(WebKit::WebProcessProxy::disableSuddenTermination):

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent):

  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::updateProcessSuppressionState):

2:55 PM Changeset in webkit [164831] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Crash tapping on play button on video on iOS
https://bugs.webkit.org/show_bug.cgi?id=129452

Reviewed by Benjamin Poulain.

node->computedStyle() can return null. Just use
renderer->style() to get the tap highlight color.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::tapHighlightAtPosition):

2:08 PM Changeset in webkit [164830] by Brian Burg
  • 29 edits
    5 adds in trunk

Web Inspector: model tests should use a special Test.html inspector page
https://bugs.webkit.org/show_bug.cgi?id=129190

Reviewed by Timothy Hatcher.

Source/WebCore:

Convert InspectorController::isUnderTest() into a flag, and expose an
Internals method so it can be set by the test before opening the inspector.

Test: inspector/test-harness-trivially-works.html

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::evaluateForTestInFrontend):

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

(WebCore::Internals::setInspectorIsUnderTest): Added.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebInspectorUI:

  • UserInterface/Base/Test.js: Added.

(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.updateDockedState):
(InspectorTest.log):
(InspectorTest.assert):
(InspectorTest.debugLog):
(InspectorTest.completeTest):
(InspectorTest.evaluateInPage):
(InspectorTest.addResult):
(InspectorTest.clearResults):
(InspectorTest.pageLoaded):
(InspectorTest.reportUncaughtException):
(.console.logType):

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass):
(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype.runAfterPendingDispatches):
(InspectorBackendClass.prototype._flushPendingScripts):

  • UserInterface/Protocol/InspectorObserver.js:

(WebInspector.InspectorObserver.prototype.evaluateForTestInFrontend):

  • UserInterface/Test.html: Added.

Source/WebKit/mac:

Support creating a separate test inspector page, based on the value of
InspectorController::isUnderTest(). Modify the navigation policy to check
the URL against both normal and test inspector pages.

  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorClient::openInspectorFrontend):
(-[WebInspectorWindowController init]):
(-[WebInspectorWindowController initWithInspectedWebView:isUnderTest:]):
Move the initial navigation of the inspector page to this method, and change
the URL based on the value of InspectorController::isUnderTest().

(-[WebInspectorWindowController inspectorTestPagePath]): Added.
(-[WebInspectorWindowController webView:decidePolicyForNavigationAction:request:frame:decisionListener:]):

Source/WebKit2:

Support creating a separate test inspector page, based on the value of
InspectorController::isUnderTest(). Add this as a separate API call for
WebInspectorProxy. Modify the navigation policy to check the URL against
both normal and test inspector pages.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::isMainOrTestInspectorPage):
(WebKit::decidePolicyForNavigationAction):
(WebKit::WebInspectorProxy::createInspectorPageForTest):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebInspectorProxy.messages.in:
  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::inspectorTestPageURL):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::inspectorTestPageURL):

  • UIProcess/ios/WebInspectorProxyIOS.mm:

(WebKit::WebInspectorProxy::inspectorTestPageURL):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::inspectorTestPageURL):

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::openInspectorFrontend):

  • WebProcess/WebPage/WebInspector.cpp: Some drive-by nullptr refactorings.

(WebKit::WebInspector::WebInspector):
(WebKit::WebInspector::createInspectorPage):
(WebKit::WebInspector::createInspectorPageForTest):
(WebKit::WebInspector::destroyInspectorPage):

  • WebProcess/WebPage/WebInspector.h:

Tools:

Remove code that immediately opens the Web Inspector based on the file path of the test.
Instead, the test page should request that the inspector open inside its test() method.

This change is necessary because otherwise, the inspector would be opened too early for
InspectorController::isUnderTest to get set in time, so the normal Web Inspector page
will get loaded instead of the minimal test page.

  • DumpRenderTree/efl/DumpRenderTree.cpp:

(createTestRunner):

  • DumpRenderTree/gtk/DumpRenderTree.cpp:

(runTest):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(runTest):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(runTest):

LayoutTests:

Add a stripped-down version of the inspector test script that's used by
all inspector model tests. Clean up the namespaces so things accessible
from only the test page are part of the InspectorTestProxy object.

Add a minimal test that exercises the initialization and communication code
paths on the test page and the inspector page.

  • http/tests/inspector-protocol/resources/InspectorTest.js: Add a FIXME.
  • inspector/inspector-test.js: Added.

(InspectorTestProxy.register):
(runTest.initializeFrontend):
(runTest.runTestInFrontend):
(runTest):
(InspectorTestProxy.completeTest):
(InspectorTestProxy.debugLog):
(InspectorTestProxy.addResult):
(InspectorTestProxy.clearResults):
(InspectorTestProxy.reportUncaughtException):

  • inspector/test-harness-trivially-works-expected.txt: Added.
  • inspector/test-harness-trivially-works.html: Added.
1:50 PM Changeset in webkit [164829] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Better name for RemoteInspectorDebuggableConnection dispatch queue
https://bugs.webkit.org/show_bug.cgi?id=129443

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-02-27
Reviewed by Timothy Hatcher.

This queue is specific to the JSContext debuggable connections,
there is no XPC involved. Give it a better name.

  • inspector/remote/RemoteInspectorDebuggableConnection.mm:

(Inspector::RemoteInspectorDebuggableConnection::RemoteInspectorDebuggableConnection):

1:41 PM Changeset in webkit [164828] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove jsc symlink if it already exists

This is a follow-up fix for:

Create symlink to /usr/local/bin/jsc during installation
<http://webkit.org/b/129399>
<rdar://problem/16168734>

(Create /usr/local/bin/jsc symlink): If a jsc symlink already
exists where we're about to create the symlink, remove the old
one first.

1:35 PM Changeset in webkit [164827] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed build fix for Mac tools after r164814

  • Configurations/ToolExecutable.xcconfig:
  • Added JavaScriptCore.framework/PrivateHeaders to ToolExecutable include path.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Changed productName to testRegExp for testRegExp target.
1:02 PM Changeset in webkit [164826] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r164824.

Accidentally re-added some code that was removed.

  • page/ContentSecurityPolicy.cpp:
12:45 PM Changeset in webkit [164825] by alex.christensen@flexsim.com
  • 2 edits in trunk/Source/WebCore

Compile fix when not using TEXTURE_MAPPER_GL.
https://bugs.webkit.org/show_bug.cgi?id=129417

Reviewed by Darin Adler.

  • platform/graphics/texmap/TextureMapperGL.cpp:

Protect platformCreateAccelerated with USE(TEXTURE_MAPPER_GL).

12:45 PM Changeset in webkit [164824] by Joseph Pecoraro
  • 25 edits in trunk/Source

Web Inspector: JSContext inspection should report exceptions in the console
https://bugs.webkit.org/show_bug.cgi?id=128776

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

When JavaScript API functions have an exception, let the inspector
know so it can log the JavaScript and Native backtrace that caused
the exception.

Include some clean up of ConsoleMessage and ScriptCallStack construction.

  • API/JSBase.cpp:

(JSEvaluateScript):
(JSCheckScriptSyntax):

  • API/JSObjectRef.cpp:

(JSObjectMakeFunction):
(JSObjectMakeArray):
(JSObjectMakeDate):
(JSObjectMakeError):
(JSObjectMakeRegExp):
(JSObjectGetProperty):
(JSObjectSetProperty):
(JSObjectGetPropertyAtIndex):
(JSObjectSetPropertyAtIndex):
(JSObjectDeleteProperty):
(JSObjectCallAsFunction):
(JSObjectCallAsConstructor):

  • API/JSValue.mm:

(reportExceptionToInspector):
(valueToArray):
(valueToDictionary):

  • API/JSValueRef.cpp:

(JSValueIsEqual):
(JSValueIsInstanceOfConstructor):
(JSValueCreateJSONString):
(JSValueToNumber):
(JSValueToStringCopy):
(JSValueToObject):
When seeing an exception, let the inspector know there was an exception.

  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
Log API exceptions by also grabbing the native backtrace.

  • inspector/ScriptCallStack.h:
  • inspector/ScriptCallStack.cpp:

(Inspector::ScriptCallStack::firstNonNativeCallFrame):
(Inspector::ScriptCallStack::append):
Minor extensions to ScriptCallStack to make it easier to work with.

  • inspector/ConsoleMessage.cpp:

(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::autogenerateMetadata):
Provide better default information if the first call frame was native.

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::createScriptCallStack):
(Inspector::extractSourceInformationFromException):
(Inspector::createScriptCallStackFromException):
Perform the handling here of inserting a fake call frame for exceptions
if there was no call stack (e.g. a SyntaxError) or if the first call
frame had no information.

  • inspector/ConsoleMessage.cpp:

(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::autogenerateMetadata):

  • inspector/ConsoleMessage.h:
  • inspector/ScriptCallStackFactory.cpp:

(Inspector::createScriptCallStack):
(Inspector::createScriptCallStackForConsole):

  • inspector/ScriptCallStackFactory.h:
  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::enable):
(Inspector::InspectorConsoleAgent::addMessageToConsole):
(Inspector::InspectorConsoleAgent::count):

  • inspector/agents/JSGlobalObjectDebuggerAgent.cpp:

(Inspector::JSGlobalObjectDebuggerAgent::breakpointActionLog):
ConsoleMessage cleanup.

Source/WebCore:

Include some clean up of ConsoleMessage and ScriptCallStack construction.

Covered by existing tests.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException):
Simplify code now that createStackTraceFromException handles it.

  • page/ContentSecurityPolicy.cpp:

(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
ScriptCallStack can give us the first non-native callframe.

  • inspector/InspectorResourceAgent.cpp:

(WebCore::InspectorResourceAgent::buildInitiatorObject):

  • inspector/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::breakpointActionLog):

  • inspector/TimelineRecordFactory.cpp:

(WebCore::TimelineRecordFactory::createGenericRecord):

  • page/Console.cpp:

(WebCore::internalAddMessage):
(WebCore::Console::profile):
(WebCore::Console::profileEnd):
(WebCore::Console::timeEnd):

  • page/ContentSecurityPolicy.cpp:

(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage):

Source/WebInspectorUI:

  • UserInterface/ConsoleMessageImpl.js:

(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
(WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
(WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
(WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
Provide better handling for "[native code]" and legacy "undefined"
call frame URLs. Never linkify these. Also, when showing a link
for an exception, always use the first non-native call frame as
the link location.

12:37 PM Changeset in webkit [164823] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Create symlink to /usr/local/bin/jsc during installation
<http://webkit.org/b/129399>
<rdar://problem/16168734>

Reviewed by Dan Bernstein.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Add "Create /usr/local/bin/jsc symlink" build phase script to create the symlink during installation.
12:24 PM Changeset in webkit [164822] by akling@apple.com
  • 51 edits
    2 deletes in trunk/Source/WebCore

Remove FeatureObserver.
<https://webkit.org/b/129439>

This code was only used by the Chromium port and nobody else is
making use of it.

Reviewed by Anders Carlsson.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners):

  • dom/EventTarget.h:
  • html/ColorInputType.cpp:
  • html/ColorInputType.h:
  • html/DateInputType.cpp:
  • html/DateInputType.h:
  • html/DateTimeInputType.cpp:
  • html/DateTimeInputType.h:
  • html/DateTimeLocalInputType.cpp:
  • html/DateTimeLocalInputType.h:
  • html/EmailInputType.cpp:
  • html/EmailInputType.h:
  • html/HTMLDataListElement.cpp:

(WebCore::HTMLDataListElement::create):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::parseAttribute):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::parseAttribute):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::parseAttribute):

  • html/InputType.cpp:
  • html/InputType.h:
  • html/MonthInputType.cpp:
  • html/MonthInputType.h:
  • html/NumberInputType.cpp:
  • html/NumberInputType.h:
  • html/RangeInputType.cpp:
  • html/RangeInputType.h:
  • html/SearchInputType.cpp:
  • html/SearchInputType.h:
  • html/TelephoneInputType.cpp:
  • html/TelephoneInputType.h:
  • html/TextInputType.cpp:
  • html/TextInputType.h:
  • html/TimeInputType.cpp:
  • html/TimeInputType.h:
  • html/URLInputType.cpp:
  • html/URLInputType.h:
  • html/WeekInputType.cpp:
  • html/WeekInputType.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
(WebCore::FrameLoader::dispatchDidCommitLoad):

  • page/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::didReceiveHeader):

  • page/EventHandler.cpp:

(WebCore::EventHandler::selectCursor):

  • page/FeatureObserver.cpp: Removed.
  • page/FeatureObserver.h: Removed.
  • page/Page.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

  • workers/SharedWorker.cpp:

(WebCore::SharedWorker::create):

  • workers/Worker.cpp:

(WebCore::Worker::create):

12:16 PM Changeset in webkit [164821] by krit@webkit.org
  • 2 edits
    1 move in trunk/LayoutTests

Transform more clip-path pixel tests to reference tests
https://bugs.webkit.org/show_bug.cgi?id=129230

Reviewed by Simon Fraser.

Fix masking test.

  • svg/masking/mask-negative-scale.svg:
11:41 AM Changeset in webkit [164820] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

Make WebProcessProxy::pages() return an IteratorRange
https://bugs.webkit.org/show_bug.cgi?id=129440

Reviewed by Dan Bernstein.

  • UIProcess/API/C/WKPage.cpp:

(WKPageCopyRelatedPages):
Move the implementation of WebPageProxy::relatedPages here.

  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createNewWebProcessRespectingProcessCountLimit):
Use std::min_element here instead of a manual loop.

  • UIProcess/WebPageProxy.cpp:

Remove WebPageProxy::relatedPages().

  • UIProcess/WebProcessProxy.cpp:

Remove WebProcessProxy::pages().

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::pages):
Make this return an IteratorRange.

(WebKit::WebProcessProxy::pageCount):
New function that returns the page count.

11:39 AM Changeset in webkit [164819] by commit-queue@webkit.org
  • 5 edits in trunk

Math.{max, min}() must not return after first NaN value
https://bugs.webkit.org/show_bug.cgi?id=104147

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-02-27
Reviewed by Oliver Hunt.

Source/JavaScriptCore:

According to the spec, ToNumber going to be called on each argument
even if a NaN value was already found

  • runtime/MathObject.cpp:

(JSC::mathProtoFuncMax):
(JSC::mathProtoFuncMin):

LayoutTests:

Extended the Math.{max, min}() tests, to check that these methods are return after first NaN value or not.

  • js/math-expected.txt:
  • js/script-tests/math.js:
11:20 AM Changeset in webkit [164818] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac][WK2] Remove hardcoded Cmd+B and Cmd+I from WKView.mm
https://bugs.webkit.org/show_bug.cgi?id=129436

Reviewed by Darin Adler.

  • UIProcess/API/mac/WKView.mm: Removed a historic WebKit1 behavior that we don't

need to preserve in WebKit2.

11:11 AM Changeset in webkit [164817] by psolanki@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Assertion failure at CachedResource.h:196: ASSERT(!m_purgeableData)
https://bugs.webkit.org/show_bug.cgi?id=129349
<rdar://problem/14871837>

Reviewed by Joseph Pecoraro.

The code for clearing out memory mapped notification callbacks is only needed when loading
PDFs. And in such cases, we always have dataSourceDelegate object. So make this code
conditional on its presence so that we don't trigger the assert for non-PDF main resources.

  • WebView/WebDataSource.mm:

(-[WebDataSource dealloc]):

11:00 AM Changeset in webkit [164816] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac] Remove unused SPI declarations from WKView.mm
https://bugs.webkit.org/show_bug.cgi?id=129434

Reviewed by Sam Weinig.

  • UIProcess/API/mac/WKView.mm:
10:49 AM Changeset in webkit [164815] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

JSType upper limit (0xff) assertion can be removed.
https://bugs.webkit.org/show_bug.cgi?id=129424

Patch by Gergo Balogh <gbalogh.u-szeged@partner.samsung.com> on 2014-02-27
Reviewed by Geoffrey Garen.

  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::TypeInfo):

10:48 AM Changeset in webkit [164814] by msaboff@apple.com
  • 20 edits
    2 adds in trunk/Source

Auto generate bytecode information for bytecode parser and LLInt
https://bugs.webkit.org/show_bug.cgi?id=129181

Reviewed by Mark Lam.

Source/JavaScriptCore:

Added new bytecode/BytecodeList.json that contains a list of bytecodes and related
helpers. It also includes bytecode length and other information used to generate files.
Added a new generator, generate-bytecode-files that generates Bytecodes.h and InitBytecodes.asm
in DerivedSources/JavaScriptCore/.

Added the generation of these files to the "DerivedSource" build step.
Slighty changed the build order, since the Bytecodes.h file is needed by
JSCLLIntOffsetsExtractor. Moved the offline assembly to a separate step since it needs
to be run after JSCLLIntOffsetsExtractor.

Made related changes to OPCODE macros and their use.

Added JavaScriptCore.framework/PrivateHeaders to header file search path for building
jsc to resolve Mac build issue.

  • CMakeLists.txt:
  • Configurations/JSC.xcconfig:
  • DerivedSources.make:
  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.vcxproj/copy-files.cmd:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/Opcode.h:

(JSC::padOpcodeName):

  • llint/LLIntCLoop.cpp:

(JSC::LLInt::CLoop::initialize):

  • llint/LLIntCLoop.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntOpcode.h:
  • llint/LowLevelInterpreter.asm:

Source/WebKit:

Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.

  • CMakeLists.txt:

Source/WebKit2:

Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit2_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.

  • CMakeLists.txt:
10:47 AM Changeset in webkit [164813] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix 32-bit V_JITOperation_EJ callOperation introduced in r162652.
https://bugs.webkit.org/show_bug.cgi?id=129420

Patch by Julien Brianceau <jbriance@cisco.com> on 2014-02-27
Reviewed by Geoffrey Garen.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation): Payload and tag are swapped.
Also, EABI_32BIT_DUMMY_ARG is missing for arm EABI and mips.

10:34 AM Changeset in webkit [164812] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Octane/closure thrashes between flattening dictionaries during global object initialization in a global eval
https://bugs.webkit.org/show_bug.cgi?id=129435

Reviewed by Oliver Hunt.

This is a 5-10% speed-up on Octane/closure.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionClearCodeCache):

  • runtime/BatchedTransitionOptimizer.h:

(JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
(JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):

10:27 AM Changeset in webkit [164811] by ap@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Added svn:ignore to two directories, so that .pyc files don't show up as unversioned.

  • inspector/scripts: Added property svn:ignore.
  • replay/scripts: Added property svn:ignore.
10:09 AM Changeset in webkit [164810] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Look up already existing VisitedLinkTableController objects by identifier
https://bugs.webkit.org/show_bug.cgi?id=129431

Reviewed by Dan Bernstein.

  • WebProcess/WebPage/VisitedLinkTableController.cpp:

(WebKit::visitedLinkTableControllers):
(WebKit::VisitedLinkTableController::getOrCreate):
(WebKit::VisitedLinkTableController::VisitedLinkTableController):
(WebKit::VisitedLinkTableController::~VisitedLinkTableController):

  • WebProcess/WebPage/VisitedLinkTableController.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

10:07 AM Changeset in webkit [164809] by Carlos Garcia Campos
  • 7 edits
    3 adds in releases/WebKitGTK/webkit-2.4/Source/WebKit2

Merge r164808 - [GTK][WK2] Blocks when fetching plugins information
https://bugs.webkit.org/show_bug.cgi?id=115650

Reviewed by Gustavo Noronha Silva.

Use a persistent cache to store the plugins metadata to avoid
having to load all the plugins everytime a plugin is used for the
first time.

  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • PlatformGTK.cmake:
  • Shared/Plugins/Netscape/NetscapePluginModule.h:
  • Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:

(WebKit::NetscapePluginModule::parseMIMEDescription): Make this
method public.
(WebKit::NetscapePluginModule::buildMIMEDescription): Added this
helper to build the MIME description string.

  • UIProcess/Plugins/gtk/PluginInfoCache.cpp: Added.

(WebKit::PluginInfoCache::shared):
(WebKit::PluginInfoCache::PluginInfoCache):
(WebKit::PluginInfoCache::~PluginInfoCache):
(WebKit::PluginInfoCache::saveToFileIdleCallback):
(WebKit::PluginInfoCache::saveToFile):
(WebKit::PluginInfoCache::getPluginInfo):
(WebKit::PluginInfoCache::updatePluginInfo):

  • UIProcess/Plugins/gtk/PluginInfoCache.h: Added.
  • UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:

(WebKit::PluginInfoStore::getPluginInfo): Check first if we have
metadata of the plugin in the cache and update the cache if we
loaded the plugin to get its metadata.

9:59 AM Changeset in webkit [164808] by Carlos Garcia Campos
  • 7 edits
    3 adds in trunk/Source/WebKit2

[GTK][WK2] Blocks when fetching plugins information
https://bugs.webkit.org/show_bug.cgi?id=115650

Reviewed by Gustavo Noronha Silva.

Use a persistent cache to store the plugins metadata to avoid
having to load all the plugins everytime a plugin is used for the
first time.

  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • PlatformGTK.cmake:
  • Shared/Plugins/Netscape/NetscapePluginModule.h:
  • Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:

(WebKit::NetscapePluginModule::parseMIMEDescription): Make this
method public.
(WebKit::NetscapePluginModule::buildMIMEDescription): Added this
helper to build the MIME description string.

  • UIProcess/Plugins/gtk/PluginInfoCache.cpp: Added.

(WebKit::PluginInfoCache::shared):
(WebKit::PluginInfoCache::PluginInfoCache):
(WebKit::PluginInfoCache::~PluginInfoCache):
(WebKit::PluginInfoCache::saveToFileIdleCallback):
(WebKit::PluginInfoCache::saveToFile):
(WebKit::PluginInfoCache::getPluginInfo):
(WebKit::PluginInfoCache::updatePluginInfo):

  • UIProcess/Plugins/gtk/PluginInfoCache.h: Added.
  • UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:

(WebKit::PluginInfoStore::getPluginInfo): Check first if we have
metadata of the plugin in the cache and update the cache if we
loaded the plugin to get its metadata.

9:49 AM Changeset in webkit [164807] by Chris Fleizach
  • 3 edits
    2 adds in trunk

speechSynthesis.speak of a zero length utterance kills future speech
https://bugs.webkit.org/show_bug.cgi?id=129403

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Empty length strings may choke a synthesizer and result in didFinishSpeaking not being called.
The WebKit code should be proactive about screening out empty length strings.

Test: platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string.html

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::startSpeakingImmediately):

LayoutTests:

  • platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt: Added.
  • platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string.html: Added.
9:02 AM Changeset in webkit [164806] by lvidacs.u-szeged@partner.samsung.com
  • 3 edits in trunk/Tools

check-webkit-style indentation false alarm in WebKit/win/WebNodeHighlight.cpp
https://bugs.webkit.org/show_bug.cgi?id=127076

Reviewed by Anders Carlsson.

Avoid match for :: as start of a member initialization list. Modify expression to match
after a colon either non-colon character or end of line.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_member_initialization_list):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_member_initialization_list):

8:08 AM Changeset in webkit [164805] by commit-queue@webkit.org
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r164783.
http://trac.webkit.org/changeset/164783
https://bugs.webkit.org/show_bug.cgi?id=129425

Broke number of multicol tests (Requested by anttik on
#webkit).

Source/WebCore:

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::containingColumnsBlock):

LayoutTests:

  • fast/css/crash-on-column-splitting-expected.txt: Removed.
  • fast/css/crash-on-column-splitting.html: Removed.
7:52 AM Changeset in webkit [164804] by graouts@webkit.org
  • 5 edits
    4 adds in trunk

Respect SVG fragment identifiers in <img> src attribute
https://bugs.webkit.org/show_bug.cgi?id=129387

Reviewed by Antti Koivisto.

Source/WebCore:

Test: svg/css/svg-resource-fragment-identifier-img-src.html

When providing an SVG image for a given renderer, check that the URL used to load
that image is taken into account in case it featured a fragment identifier, ensuring
that the CSS :target pseudo-class is correctly handled for SVG resources. This patch
is specific to <img> elements, specific support will also need to be added for various
CSS properties that support SVG images.

  • svg/graphics/SVGImageCache.cpp:

(WebCore::SVGImageCache::imageForRenderer):
Check if the provided renderer is attached to an <img> element and, if so, pass the
resolved <img> source URL, taking into account srcset, to the SVGImageForContainer.

  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::setURL):
Trigger the FrameView machinery to ensure that the :target pseudo-class is respected
should the provided URL feature a fragment identifier.

  • svg/graphics/SVGImageForContainer.h:

Declare the new setURL() method.

LayoutTests:

Test that we correctly handle the fragment identifier used in SVG URLs in <img> elements,
checking for correct srcset handling as well.

  • svg/css/resources/fragment-identifiers.svg: Added.
  • svg/css/svg-resource-fragment-identifier-img-src-expected.html: Added.
  • svg/css/svg-resource-fragment-identifier-img-src.html: Added.
7:50 AM Changeset in webkit [164803] by Lucas Forschler
  • 1 copy in tags/Safari-538.20

New Tag.

6:22 AM Changeset in webkit [164802] by k.czech@samsung.com
  • 2 edits in trunk/Source/WebCore

[ATK] Fix style errors in enum members
https://bugs.webkit.org/show_bug.cgi?id=129421

Reviewed by Mario Sanchez Prada.

No new tests. No new functionality.

Enum members should use InterCaps with an initial capital letter.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(getInterfaceMaskFromObject):

6:03 AM Changeset in webkit [164801] by reni@webkit.org
  • 2 edits in trunk/Tools

Unreviewed. Update my email addresses in contributors.json.

  • Scripts/webkitpy/common/config/contributors.json:
6:02 AM Changeset in webkit [164800] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebKit2

Merge r164797 - need to #include <libgen.h> for basename
https://bugs.webkit.org/show_bug.cgi?id=128597

Patch by Ryan Lortie <desrt@desrt.ca> on 2014-02-27
Reviewed by Carlos Garcia Campos.

  • PluginProcess/unix/PluginProcessMainUnix.cpp: include <libgen.h> as required by POSIX for basename
6:02 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
6:01 AM Changeset in webkit [164799] by rgabor@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

r164764 broke the ARM build
https://bugs.webkit.org/show_bug.cgi?id=129415

Reviewed by Zoltan Herczeg.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::moveWithPatch): Change reinterpret_cast to static_cast.
(JSC::MacroAssemblerARM::canJumpReplacePatchableBranch32WithPatch): Add missing function.
(JSC::MacroAssemblerARM::startOfPatchableBranch32WithPatchOnAddress): Add missing function.
(JSC::MacroAssemblerARM::revertJumpReplacementToPatchableBranch32WithPatch): Add missing function.

6:01 AM Changeset in webkit [164798] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4

Merge r164796 - Fallback on checking for libz manualy if zlib.pc isn't available.
https://bugs.webkit.org/show_bug.cgi?id=127061

Patch by Koop Mast <kwm@FreeBSD.org> on 2014-02-27
Reviewed by Gustavo Noronha Silva.

  • Source/autotools/FindDependencies.m4:
6:00 AM WebKitGTK/2.4.x edited by desrt@desrt.ca
<libgen.h> bug (diff)
5:58 AM Changeset in webkit [164797] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

need to #include <libgen.h> for basename
https://bugs.webkit.org/show_bug.cgi?id=128597

Patch by Ryan Lortie <desrt@desrt.ca> on 2014-02-27
Reviewed by Carlos Garcia Campos.

  • PluginProcess/unix/PluginProcessMainUnix.cpp: include <libgen.h> as required by POSIX for basename
5:56 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:54 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:48 AM Changeset in webkit [164796] by berto@igalia.com
  • 2 edits in trunk

Fallback on checking for libz manualy if zlib.pc isn't available.
https://bugs.webkit.org/show_bug.cgi?id=127061

Patch by Koop Mast <kwm@FreeBSD.org> on 2014-02-27
Reviewed by Gustavo Noronha Silva.

  • Source/autotools/FindDependencies.m4:
5:43 AM WebKitGTK/2.4.x edited by desrt@desrt.ca
libz bug (diff)
5:15 AM Changeset in webkit [164795] by commit-queue@webkit.org
  • 15 edits
    11 adds in trunk

[CSS Blending] Parse and implement the -webkit-isolation CSS property.

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

Patch by Mihai Tica <mitica@adobe.com> on 2014-02-27
Reviewed by Dirk Schulze.

Source/WebCore:

Parse and implement -webkit-isolation, part of the CSS Blending and Compositing spec.
This patch adds functionality for HTML and SVG.
-webkit-isolation: isolate restricts any child elements from blending with any of the content outside the isolated parent element.

Tests: css3/compositing/isolation-isolate-blended-child.html

css3/compositing/isolation-parsing.html
css3/compositing/svg-isolation-default.html
css3/compositing/svg-isolation-isolated-group.html
css3/compositing/svg-isolation-simple.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator Isolation):

  • css/CSSPropertyNames.in: Add -webkit-isolation.
  • css/CSSValueKeywords.in: Add the isolate value.
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle): Explicitly set isolation:isolate to create a stacking context.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayerRepaint): Changing isolation should trigger a repaint.

  • rendering/style/RenderStyle.h: Setters and getters for isolation.
  • rendering/style/RenderStyleConstants.h: Add Isolation enum.
  • rendering/style/StyleRareNonInheritedData.cpp: Add m_isolation.

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:
  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::prepareToRenderSVGContent): If isolated, paint in a transparency layer.

LayoutTests:

Test parsing of -webkit-isolation. Test if setting -webkit-isolation: isolate creats a stacking context.
Test for SVG and HTML that blending is restricted to the contents of an isolated parent element.

  • css3/compositing/isolation-isolate-blended-child-expected.html: Added.
  • css3/compositing/isolation-isolate-blended-child.html: Added.
  • css3/compositing/isolation-isolate-simple-expected.txt: Added.
  • css3/compositing/isolation-parsing-expected.txt: Added.
  • css3/compositing/isolation-parsing.html: Added.
  • css3/compositing/svg-isolation-default-expected.html: Added.
  • css3/compositing/svg-isolation-default.html: Added.
  • css3/compositing/svg-isolation-isolated-group-expected.html: Added.
  • css3/compositing/svg-isolation-isolated-group.html: Added.
  • css3/compositing/svg-isolation-simple-expected.html: Added.
  • css3/compositing/svg-isolation-simple.html: Added.
4:27 AM Changeset in webkit [164794] by berto@igalia.com
  • 2 edits in trunk/Tools

[gtk-doc] UnicodeEncodeError: 'ascii' codec can't encode character
https://bugs.webkit.org/show_bug.cgi?id=128927

Reviewed by Philippe Normand.

Encode manually the data for sys.{stdout,stderr}.write.

  • gtk/gtkdoc.py:

(GTKDoc._run_command):

4:10 AM Changeset in webkit [164793] by Andres Gomez
  • 2 edits in trunk/Tools

Unreviewed. Add myself to watchlists

  • Scripts/webkitpy/common/config/watchlist: Add myself to

watchlists.

3:59 AM Changeset in webkit [164792] by Andres Gomez
  • 2 edits in trunk/Tools

Unreviewed, rolling out r164790.
http://trac.webkit.org/changeset/164790

Revert r164790 because of erroneous commit log

  • Scripts/webkitpy/common/config/watchlist:
3:40 AM Changeset in webkit [164791] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r164787 - [GTK] Web Inspector doesn't work with network process enabled
https://bugs.webkit.org/show_bug.cgi?id=127651

Reviewed by Sergio Villar Senin.

The problem is that the web inspector loads so many resources,
that when using the network process, a lot of IPC traffic is
generated causing the send buffer of the socket to be full. When
that happens sendmsg() fails with EAGAIN, because we are using non
blocking sockets, and we are not handling neither EAGAIN nor
EWOULDBLOCK errors (we do when reading from the socket, though).

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::readyReadHandler): Add a log message to know
when reading from the socket fails for any unhandled error.
(IPC::Connection::sendOutgoingMessage): Handle EAGAIN and
EWOULDBLOCK errors to try again in those cases. Also add a log
message for unhandled errors.

3:35 AM Changeset in webkit [164790] by Andres Gomez
  • 2 edits in trunk/Tools

[ATK] Utilize AtkTableCell to expose directly AccessibilityTableCell to AT
https://bugs.webkit.org/show_bug.cgi?id=129250

Patch by Krzysztof Czech <k.czech@samsung.com> on 2014-02-27
Reviewed by Mario Sanchez Prada.

Changing version of ATK to 2.11.90, because it introduces AtkTableCell interface.
Implementing methods so that we could test column/row headers represented as an array of cells.

  • DumpRenderTree/AccessibilityUIElement.cpp:
  • DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:

(AccessibilityUIElement::columnHeaders):
(AccessibilityUIElement::rowHeaders):

  • DumpRenderTree/win/AccessibilityUIElementWin.cpp: Adding empty stubs, to not break compilation.

(AccessibilityUIElement::columnHeaders):
(AccessibilityUIElement::rowHeaders):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::rowHeaders):
(WTR::AccessibilityUIElement::columnHeaders):

  • efl/jhbuild.modules:
  • gtk/jhbuild.modules:
3:34 AM Changeset in webkit [164789] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebKit2

Merge r164787 - [GTK] Web Inspector doesn't work with network process enabled
https://bugs.webkit.org/show_bug.cgi?id=127651

Reviewed by Sergio Villar Senin.

The problem is that the web inspector loads so many resources,
that when using the network process, a lot of IPC traffic is
generated causing the send buffer of the socket to be full. When
that happens sendmsg() fails with EAGAIN, because we are using non
blocking sockets, and we are not handling neither EAGAIN nor
EWOULDBLOCK errors (we do when reading from the socket, though).

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::readyReadHandler): Add a log message to know
when reading from the socket fails for any unhandled error.
(IPC::Connection::sendOutgoingMessage): Handle EAGAIN and
EWOULDBLOCK errors to try again in those cases. Also add a log
message for unhandled errors.

3:34 AM Changeset in webkit [164788] by Carlos Garcia Campos
  • 1 edit in releases/WebKitGTK/webkit-2.4/Source/WebKit2/ChangeLog

[GTK] Remove unneeded method webkitWebViewBaseRequestExitFullScreen
https://bugs.webkit.org/show_bug.cgi?id=129245

Reviewed by Sergio Villar Senin.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseKeyPressEvent): Call FullscreenManager::requestExitFullScreen() directly.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
3:30 AM Changeset in webkit [164787] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Web Inspector doesn't work with network process enabled
https://bugs.webkit.org/show_bug.cgi?id=127651

Reviewed by Sergio Villar Senin.

The problem is that the web inspector loads so many resources,
that when using the network process, a lot of IPC traffic is
generated causing the send buffer of the socket to be full. When
that happens sendmsg() fails with EAGAIN, because we are using non
blocking sockets, and we are not handling neither EAGAIN nor
EWOULDBLOCK errors (we do when reading from the socket, though).

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::readyReadHandler): Add a log message to know
when reading from the socket fails for any unhandled error.
(IPC::Connection::sendOutgoingMessage): Handle EAGAIN and
EWOULDBLOCK errors to try again in those cases. Also add a log
message for unhandled errors.

3:28 AM Changeset in webkit [164786] by k.czech@samsung.com
  • 13 edits
    2 moves
    2 adds in trunk

[ATK] Utilize AtkTableCell to expose directly AccessibilityTableCell to AT
https://bugs.webkit.org/show_bug.cgi?id=129250

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Test: accessibility/table-scope.html

Exposing AtkTableCell to AT. Implementing possibility to get column headers and row headers
as an array of cells.

  • GNUmakefile.list.am:
  • PlatformEfl.cmake:
  • accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp: Added.

(convertToGPtrArray):
(core):
(webkitAccessibleTableCellGetColumnHeaderCells):
(webkitAccessibleTableCellGetRowHeaderCells):
(webkitAccessibleTableCellInterfaceInit):

  • accessibility/atk/WebKitAccessibleInterfaceTableCell.h: Added.
  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(getInterfaceMaskFromObject):

Tools:

Changing version of ATK to 2.11.90, because it introduces AtkTableCell interface.
Implementing methods so that we could test column/row headers represented as an array of cells.

  • DumpRenderTree/AccessibilityUIElement.cpp:
  • DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:

(AccessibilityUIElement::columnHeaders):
(AccessibilityUIElement::rowHeaders):

  • DumpRenderTree/win/AccessibilityUIElementWin.cpp: Adding empty stubs, to not break compilation.

(AccessibilityUIElement::columnHeaders):
(AccessibilityUIElement::rowHeaders):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::rowHeaders):
(WTR::AccessibilityUIElement::columnHeaders):

  • efl/jhbuild.modules:
  • gtk/jhbuild.modules:

LayoutTests:

Sharing test with GTK/EFL.

  • accessibility/table-scope-expected.txt: Renamed from LayoutTests/platform/mac/accessibility/table-scope-expected.txt.
  • accessibility/table-scope.html: Renamed from LayoutTests/platform/mac/accessibility/table-scope.html.
  • platform/win/TestExpectations: Skipping on windows, missing implementation.
3:14 AM Changeset in webkit [164785] by Andres Gomez
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
2:29 AM Changeset in webkit [164784] by calvaris@igalia.com
  • 2 edits in trunk/Tools

Unreviewed. Add Víctor Jáquez and myself to watchlists

  • Scripts/webkitpy/common/config/watchlist: Add Víctor Jáquez and

myself to watchlists.

2:17 AM Changeset in webkit [164783] by reni@webkit.org
  • 3 edits
    2 adds in trunk

Improving containing column block determination
https://bugs.webkit.org/show_bug.cgi?id=125449

Reviewed by Darin Adler.

Source/WebCore:

Making sure that the containing column block of any elements
can not be oneself.

Test: fast/css/crash-on-column-splitting.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::containingColumnsBlock):
(WebCore::RenderBlock::splitFlow):

LayoutTests:

  • fast/css/crash-on-column-splitting-expected.txt: Added.
  • fast/css/crash-on-column-splitting.html: Added.
1:16 AM Changeset in webkit [164782] by calvaris@igalia.com
  • 13 edits in trunk

[GTK] Improve JavaScript multimedia controls
https://bugs.webkit.org/show_bug.cgi?id=129044

Reviewed by Jer Noble.

Source/WebCore:

After webkit.org/b/123097 a follow up was needed to improve
accessibily and some other cosmetic problems, like cleaner CSS and
new missing baselines.

No new tests because of no new functionality.

  • Modules/mediacontrols/mediaControlsApple.js:

Added hiding class name.

  • Modules/mediacontrols/mediaControlsGtk.js:

(ControllerGtk.prototype.createControls): Set remaining time as
hidden by default and turned volumebox hidden into hiding.
(ControllerGtk.prototype.updateTime): Simplified the hiding and
showing by removing the show class and using hidden only.
(ControllerGtk.prototype.handleMuteButtonMouseOver):
(ControllerGtk.prototype.handleVolumeBoxMouseOut): Turned hidden
into hiding.
(ControllerGtk.prototype.updateReadyState): Changed coding style
and added down class for the panel too.
(ControllerGtk.prototype.updatePlaying): Change for coding style
coherence.
(ControllerGtk.prototype.handleCaptionButtonClicked): Call
handleCaptionButtonShowMenu.
(ControllerGtk.prototype.handleCaptionButtonMouseOver): Call
handleCaptionButtonShowMenu.
(ControllerGtk.prototype.handleCaptionButtonShowMenu): Created
with the former behavior of handleCaptionButtonMouseOver.

  • css/mediaControlsGtk.css:

(.hidden): Set display none for all objects with hidden class.
(audio::-webkit-media-controls-panel *:focus):
(audio::-webkit-media-controls-panel.down *:focus): Added gradient
for the active and focus status.
(audio::-webkit-media-controls-time-remaining-display)
(video::-webkit-media-controls-time-remaining-display): Set
display block.
(audio::-webkit-media-controls-volume-slider-container)
(video::-webkit-media-controls-volume-slider-container): Set
display flex.
(video::-webkit-media-controls-volume-slider-container.hiding):
Changed from hidden.
(video::-webkit-media-controls-panel .hiding.down): Changed from
hidden.

  • platform/gtk/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::paintMediaButton): Returning true to
allow CSS painting the gradient.

LayoutTests:

  • media/controls-without-preload.html: Fixed.
  • platform/gtk/accessibility/media-controls-panel-title-expected.txt:
  • platform/gtk/accessibility/media-controls-panel-title.html:
  • platform/gtk/accessibility/media-emits-object-replacement-expected.txt:
  • platform/gtk/media/video-volume-slider-expected.png:
  • platform/gtk/media/video-volume-slider-expected.txt:
  • platform/gtk/media/video-zoom-controls-expected.txt: Rebaseline.
12:45 AM Changeset in webkit [164781] by mhahnenberg@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

r164764 broke the ARM build
https://bugs.webkit.org/show_bug.cgi?id=129415

Reviewed by Geoffrey Garen.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::moveWithPatch):

12:42 AM Changeset in webkit [164780] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fixing the GTK build fix after r164757.

  • platform/network/NetworkStateNotifier.cpp: r164757 introduced a layering violation by including

the Settings.h header. The use of that class is guarded by PLATFORM(IOS), so the header inclusion
should be guarded as well.

Feb 26, 2014:

11:36 PM Changeset in webkit [164779] by Philippe Normand
  • 2 edits in trunk/Source/WebKit2

Unreviewed GTK build fix after r164751.

  • GNUmakefile.list.am:
11:15 PM Changeset in webkit [164778] by Julien Brianceau
  • 2 edits in trunk/Websites/webkit.org

Add Cisco to team.html
https://bugs.webkit.org/show_bug.cgi?id=129405

Reviewed by Andreas Kling.

  • team.html:
10:55 PM Changeset in webkit [164777] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

iOS build fix.

  • UIProcess/ios/forms/WKFormPopover.h:
  • UIProcess/ios/forms/WKFormPopover.mm:
10:48 PM Changeset in webkit [164776] by mitz@apple.com
  • 71 edits in trunk/Source/WebKit2

Replaced use of the EXCLUDED_SOURCE_FILE_NAMES build setting with #if PLATFORM(…) guards in
the files themselves.

Rubber-stamped by Sam Weinig.

  • Configurations/WebKit2.xcconfig: Cleared out EXCLUDED_SOURCE_FILE_NAMES_macosx, and left

EXCLUDED_SOURCE_FILE_NAMES_iphoneos containing just the names of resources the should be
excluded from Copy Files build phases.

  • NetworkProcess/ios/NetworkProcessIOS.mm:
  • NetworkProcess/mac/NetworkProcessMac.mm:
  • Shared/Downloads/ios/DownloadIOS.mm:
  • Shared/Downloads/mac/DownloadMac.mm:
  • Shared/NativeWebTouchEvent.h:
  • Shared/WebPlatformTouchPoint.cpp:
  • Shared/WebTouchEvent.cpp:
  • Shared/ios/NativeWebKeyboardEventIOS.mm:
  • Shared/ios/NativeWebTouchEventIOS.mm:
  • Shared/ios/WebIOSEventFactory.h:
  • Shared/ios/WebIOSEventFactory.mm:
  • Shared/mac/PasteboardTypes.h:
  • Shared/mac/PasteboardTypes.mm:
  • Shared/mac/PrintInfoMac.mm:
  • UIProcess/API/C/WKInspector.cpp:
  • UIProcess/API/Cocoa/WKThumbnailView.h:
  • UIProcess/API/Cocoa/WKThumbnailView.mm:
  • UIProcess/API/Cocoa/WKThumbnailViewInternal.h:
  • UIProcess/API/ios/WKViewIOS.mm:
  • UIProcess/API/mac/WKView.mm:
  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:
  • UIProcess/ios/TextCheckerIOS.mm:
  • UIProcess/ios/ViewGestureControllerIOS.mm:
  • UIProcess/ios/WKActionSheet.h:
  • UIProcess/ios/WKActionSheet.mm:
  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:
  • UIProcess/ios/WKContentView.mm:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • UIProcess/ios/WKGeolocationProviderIOS.h:
  • UIProcess/ios/WKGeolocationProviderIOS.mm:
  • UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm:
  • UIProcess/ios/WKScrollView.h:
  • UIProcess/ios/WKScrollView.mm:
  • UIProcess/ios/WebInspectorProxyIOS.mm:
  • UIProcess/ios/WebPageProxyIOS.mm:
  • UIProcess/ios/WebProcessProxyIOS.mm:
  • UIProcess/ios/forms/WKFormInputControl.h:
  • UIProcess/ios/forms/WKFormInputControl.mm:
  • UIProcess/ios/forms/WKFormPopover.h:
  • UIProcess/ios/forms/WKFormPopover.mm:
  • UIProcess/mac/FindIndicatorWindow.h:
  • UIProcess/mac/FindIndicatorWindow.mm:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:
  • UIProcess/mac/TextCheckerMac.mm:
  • UIProcess/mac/WKFullKeyboardAccessWatcher.h:
  • UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
  • UIProcess/mac/WKPrintingView.h:
  • UIProcess/mac/WKPrintingView.mm:
  • UIProcess/mac/WebContextMenuProxyMac.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:
  • UIProcess/mac/WebInspectorProxyMac.mm:
  • UIProcess/mac/WebPageProxyMac.mm:
  • UIProcess/mac/WebProcessProxyMac.mm:
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
  • WebProcess/WebCoreSupport/ios/WebDatabaseManagerIOS.mm:
  • WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
  • WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
  • WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
  • WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm:
  • WebProcess/WebPage/ios/WebPageIOS.mm:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObject.h:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:
  • WebProcess/WebPage/mac/WebPageMac.mm:
9:25 PM Changeset in webkit [164775] by alex.christensen@flexsim.com
  • 2 edits in trunk/Source/WebKit

[WinCairo] Fixed linking after disabling WebGL.

  • WebKit.vcxproj/WebKit/WebKitCFLite.props:

Don't link to ANGLE libraries, which are no longer built.

7:41 PM Changeset in webkit [164774] by mhahnenberg@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

r164764 broke the ARM build
https://bugs.webkit.org/show_bug.cgi?id=129415

Reviewed by Geoffrey Garen.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::branch32WithPatch): Missing this function.

7:37 PM Changeset in webkit [164773] by rniwa@webkit.org
  • 1 edit in trunk/Source/WebCore/ChangeLog

Remove the second change log entry erroneously added in the previous commit.

7:35 PM Changeset in webkit [164772] by rniwa@webkit.org
  • 9 edits in trunk/Source/WebCore

Extract named items caches in HTMLCollection as a class
https://bugs.webkit.org/show_bug.cgi?id=129365

Reviewed by Antti Koivisto.

Extracted CollectionNamedElementCache, like CollectionIndexCache, out of HTMLCollection.
We can move more named item related functions into this class in the future.

HTMLCollection's member variables m_isNameCacheValid, m_idCache, and m_nameCache were replaced by
a single unique_ptr that holds an instance of CollectionNamedElementCache since this object rarely
exists in most HTMLCollections.

Also removed m_isItemRefElementsCacheValid since it was only used by Microdata API removed in r153772
and renamed a whole bunch of member functions and variables for consistency.

  • dom/Document.cpp:

(WebCore::Document::collectionCachedIdNameMap):
(WebCore::Document::collectionWillClearIdNameMap):

  • dom/Document.h:
  • dom/NodeRareData.h:

(WebCore::NodeListsNodeData::adoptDocument):

  • html/HTMLAllCollection.cpp:

(WebCore::HTMLAllCollection::namedItemWithIndex):

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::~HTMLCollection):
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::invalidateNamedElementCache): Renamed from invalidateIdNameCacheMaps.
(WebCore::HTMLCollection::namedItem):
(WebCore::HTMLCollection::updateNamedElementCache): Renamed from updateNameCache.
(WebCore::HTMLCollection::namedItems):

  • html/HTMLCollection.h:

(WebCore::CollectionNamedElementCache::findElementsWithId): Renamed from HTMLCollection::idCache.
(WebCore::CollectionNamedElementCache::findElementsWithName): Renamed from HTMLCollection::nameCache.
(WebCore::CollectionNamedElementCache::appendIdCache): Moved from HTMLCollection.
(WebCore::CollectionNamedElementCache::appendNameCache): Ditto.
(WebCore::CollectionNamedElementCache::find): Ditto.
(WebCore::CollectionNamedElementCache::append): Ditto.

(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::hasNamedElementCache): Renamed from hasIdNameCache.
(WebCore::HTMLCollection::createNameItemCache): Added.
(WebCore::HTMLCollection::namedItemCaches): Added.

  • html/HTMLFormControlsCollection.cpp:

(WebCore::HTMLFormControlsCollection::updateNamedElementCache):

  • html/HTMLFormControlsCollection.h:
7:01 PM Changeset in webkit [164771] by Bem Jones-Bey
  • 2 edits in trunk/Websites/webkit.org

Update style guide to use nullptr instead of 0 for C++ null pointers.
https://bugs.webkit.org/show_bug.cgi?id=129413

Reviewed by Ryosuke Niwa.

  • coding/coding-style.html:
6:23 PM Changeset in webkit [164770] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

Indenting an indented image element resulted in an extra indentation
https://bugs.webkit.org/show_bug.cgi?id=129201

Reviewed by Enrica Casucci.

Source/WebCore:

The bug was caused by endOfParagraph returning a position at the beginning of a block when the position
passed into the function was at the beginning of the block. Consider the following DOM:
<blockquote><img></blockquote>

When endOfParagraph is called on (blockquote, 0), the condition r->isBR()
isBlock(n) in endOfParagraph

matches immediately on startNode and it returns (blockquote, 0) again.

This resulted in moveParagraphWithClones invoked by indentIntoBlockquote to erroneously clone the inner
blockquote. Worked around this bug in ApplyBlockElementCommand::formatSelection by checking this specific
condition and moving the position to the end of the block. Unfortunately, a lot of existing code depends
on the current behavior of endOfParagraph so fixing the function itself was not possible.

There was another bug in indentIntoBlockquote to incorrectly insert a new blockquote into the existing
blockquote due to the code introduced in r99594 to avoid inserting before the root editable element.
Since this happens only if outerBlock is the root editable element, which is nodeToSplitTo or an ancestor
of nodeToSplitTo, explicitly look for this condition.

Test: editing/execCommand/indent-img-twice.html

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::formatSelection):
(WebCore::isNewLineAtPosition):

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::indentIntoBlockquote):

  • editing/VisibleUnits.cpp:

(WebCore::endOfParagraph): Added a FIXME.

LayoutTests:

Added a regression test.

  • editing/execCommand/indent-img-twice-expected.txt: Added.
  • editing/execCommand/indent-img-twice.html: Added.
6:16 PM Changeset in webkit [164769] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix two assertions/crashes in compositing code
https://bugs.webkit.org/show_bug.cgi?id=129414

Reviewed by Dean Jackson.

Fix two issues introduced in r164759.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers): Don't call
ourselves recursively!
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): We call this
function unconditionally on layer teardown, so this assertion is bogus.

6:08 PM Changeset in webkit [164768] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

VisitedLinkProvider should know which pages it belongs to
https://bugs.webkit.org/show_bug.cgi?id=129410

Reviewed by Dan Bernstein.

  • UIProcess/VisitedLinkProvider.cpp:

(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
(WebKit::VisitedLinkProvider::addPage):
(WebKit::VisitedLinkProvider::removePage):

  • UIProcess/VisitedLinkProvider.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):

5:57 PM Changeset in webkit [164767] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix the build with some compiler configurations.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):

5:53 PM Changeset in webkit [164766] by mhahnenberg@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

EFL build fix

  • dfg/DFGSpeculativeJIT32_64.cpp: Remove unused variables.

(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):

5:46 PM Changeset in webkit [164765] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix.

Unexpected line break.

  • Configurations/WebKit2.xcconfig:
5:27 PM Changeset in webkit [164764] by mhahnenberg@apple.com
  • 105 edits
    3 adds in trunk/Source/JavaScriptCore

Make JSCells have 32-bit Structure pointers
https://bugs.webkit.org/show_bug.cgi?id=123195

Reviewed by Filip Pizlo.

This patch changes JSCells such that they no longer have a full 64-bit Structure
pointer in their header. Instead they now have a 32-bit index into
a per-VM table of Structure pointers. 32-bit platforms still use normal Structure
pointers.

This change frees up an additional 32 bits of information in our object headers.
We then use this extra space to store the indexing type of the object, the JSType
of the object, some various type flags, and garbage collection data (e.g. mark bit).
Because this inline type information is now faster to read, it pays for the slowdown
incurred by having to perform an extra indirection through the StructureIDTable.

This patch also threads a reference to the current VM through more of the C++ runtime
to offset the cost of having to look up the VM to get the actual Structure pointer.

  • API/JSContext.mm:

(-[JSContext setException:]):
(-[JSContext wrapperForObjCObject:]):
(-[JSContext wrapperForJSObject:]):

  • API/JSContextRef.cpp:

(JSContextGroupRelease):
(JSGlobalContextRelease):

  • API/JSObjectRef.cpp:

(JSObjectIsFunction):
(JSObjectCopyPropertyNames):

  • API/JSValue.mm:

(containerValueToObject):

  • API/JSWrapperMap.mm:

(tryUnwrapObjcObject):

(JSC::MacroAssembler::patchableBranch32WithPatch):
(JSC::MacroAssembler::patchableBranch32):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::branchPtrWithPatch):
(JSC::MacroAssemblerARM64::patchableBranch32WithPatch):
(JSC::MacroAssemblerARM64::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerARM64::startOfPatchableBranch32WithPatchOnAddress):
(JSC::MacroAssemblerARM64::revertJumpReplacementToPatchableBranch32WithPatch):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::store8):
(JSC::MacroAssemblerARMv7::branch32WithPatch):
(JSC::MacroAssemblerARMv7::patchableBranch32WithPatch):
(JSC::MacroAssemblerARMv7::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerARMv7::startOfPatchableBranch32WithPatchOnAddress):
(JSC::MacroAssemblerARMv7::revertJumpReplacementToPatchableBranch32WithPatch):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::branch32WithPatch):
(JSC::MacroAssemblerX86::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerX86::startOfPatchableBranch32WithPatchOnAddress):
(JSC::MacroAssemblerX86::revertJumpReplacementToPatchableBranch32WithPatch):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::store32):
(JSC::MacroAssemblerX86_64::moveWithPatch):
(JSC::MacroAssemblerX86_64::branch32WithPatch):
(JSC::MacroAssemblerX86_64::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerX86_64::startOfBranch32WithPatchOnRegister):
(JSC::MacroAssemblerX86_64::startOfPatchableBranch32WithPatchOnAddress):
(JSC::MacroAssemblerX86_64::revertJumpReplacementToPatchableBranch32WithPatch):

  • assembler/RepatchBuffer.h:

(JSC::RepatchBuffer::startOfPatchableBranch32WithPatchOnAddress):
(JSC::RepatchBuffer::revertJumpReplacementToPatchableBranch32WithPatch):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::revertJumpTo_movq_i64r):
(JSC::X86Assembler::revertJumpTo_movl_i32r):

  • bytecode/ArrayProfile.cpp:

(JSC::ArrayProfile::computeUpdatedPrediction):

  • bytecode/ArrayProfile.h:

(JSC::ArrayProfile::ArrayProfile):
(JSC::ArrayProfile::addressOfLastSeenStructureID):
(JSC::ArrayProfile::observeStructure):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::heap):

  • bytecode/UnlinkedCodeBlock.h:
  • debugger/Debugger.h:
  • dfg/DFGAbstractHeap.h:
  • dfg/DFGArrayifySlowPathGenerator.h:
  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::branchWeakStructure):
(JSC::DFG::JITCompiler::branchStructurePtr):

  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::osrWriteBarrier):
(JSC::DFG::adjustAndJumpToTarget):

  • dfg/DFGOperations.cpp:

(JSC::DFG::putByVal):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::arrayify):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::compileInstanceOf):
(JSC::DFG::SpeculativeJIT::compileToStringOnCell):
(JSC::DFG::SpeculativeJIT::speculateObject):
(JSC::DFG::SpeculativeJIT::speculateFinalObject):
(JSC::DFG::SpeculativeJIT::speculateObjectOrOther):
(JSC::DFG::SpeculativeJIT::speculateString):
(JSC::DFG::SpeculativeJIT::speculateStringObject):
(JSC::DFG::SpeculativeJIT::speculateStringOrStringObject):
(JSC::DFG::SpeculativeJIT::emitSwitchChar):
(JSC::DFG::SpeculativeJIT::emitSwitchString):
(JSC::DFG::SpeculativeJIT::genericWriteBarrier):
(JSC::DFG::SpeculativeJIT::writeBarrier):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::emitAllocateJSCell):
(JSC::DFG::SpeculativeJIT::speculateStringObjectForStructure):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGWorklist.cpp:
  • ftl/FTLAbstractHeapRepository.cpp:

(JSC::FTL::AbstractHeapRepository::AbstractHeapRepository):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileCheckStructure):
(JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure):
(JSC::FTL::LowerDFGToLLVM::compilePutStructure):
(JSC::FTL::LowerDFGToLLVM::compileToString):
(JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
(JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset):
(JSC::FTL::LowerDFGToLLVM::speculateTruthyObject):
(JSC::FTL::LowerDFGToLLVM::allocateCell):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::isObject):
(JSC::FTL::LowerDFGToLLVM::isString):
(JSC::FTL::LowerDFGToLLVM::isArrayType):
(JSC::FTL::LowerDFGToLLVM::hasClassInfo):
(JSC::FTL::LowerDFGToLLVM::isType):
(JSC::FTL::LowerDFGToLLVM::speculateStringOrStringObject):
(JSC::FTL::LowerDFGToLLVM::speculateStringObjectForCell):
(JSC::FTL::LowerDFGToLLVM::speculateStringObjectForStructureID):
(JSC::FTL::LowerDFGToLLVM::speculateNonNullObject):
(JSC::FTL::LowerDFGToLLVM::loadMarkByte):
(JSC::FTL::LowerDFGToLLVM::loadStructure):
(JSC::FTL::LowerDFGToLLVM::weakStructure):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::store8):

  • heap/GCAssertions.h:
  • heap/Heap.cpp:

(JSC::Heap::getConservativeRegisterRoots):
(JSC::Heap::collect):
(JSC::Heap::writeBarrier):

  • heap/Heap.h:

(JSC::Heap::structureIDTable):

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::forEachBlock):

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::internalAppend):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfCellNotObject):
(JSC::AssemblyHelpers::genericWriteBarrier):
(JSC::AssemblyHelpers::emitLoadStructure):
(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::compileOpCall):
(JSC::JIT::privateCompileClosureCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::emit_op_ret_object_or_this):
(JSC::JIT::compileOpCall):
(JSC::JIT::privateCompileClosureCall):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITByIdGenerator::generateFastPathChecks):

  • jit/JITInlineCacheGenerator.h:
  • jit/JITInlines.h:

(JSC::JIT::emitLoadCharacterString):
(JSC::JIT::checkStructure):
(JSC::JIT::emitJumpIfCellNotObject):
(JSC::JIT::emitAllocateJSObject):
(JSC::JIT::emitArrayProfilingSiteWithCell):
(JSC::JIT::emitArrayProfilingSiteForBytecodeIndexWithCell):
(JSC::JIT::branchStructure):
(JSC::branchStructure):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_check_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_is_string):
(JSC::JIT::emit_op_ret_object_or_this):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_get_pnames):
(JSC::JIT::emit_op_next_pname):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_to_this):
(JSC::JIT::emitSlow_op_to_this):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_check_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_is_string):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emitSlow_op_neq):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_get_pnames):
(JSC::JIT::emit_op_next_pname):
(JSC::JIT::emit_op_to_this):

  • jit/JITOperations.cpp:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_get_by_pname):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitLoadWithStructureCheck):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
(JSC::JIT::checkMarkWord):
(JSC::JIT::emitWriteBarrier):
(JSC::JIT::addStructureTransitionCheck):
(JSC::JIT::emitIntTypedArrayGetByVal):
(JSC::JIT::emitFloatTypedArrayGetByVal):
(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_pname):
(JSC::JIT::emitLoadWithStructureCheck):

  • jit/JSInterfaceJIT.h:

(JSC::JSInterfaceJIT::emitJumpIfNotType):

  • jit/Repatch.cpp:

(JSC::repatchByIdSelfAccess):
(JSC::addStructureTransitionCheck):
(JSC::replaceWithJump):
(JSC::generateProtoChainAccessStub):
(JSC::tryCacheGetByID):
(JSC::tryBuildGetByIDList):
(JSC::writeBarrier):
(JSC::emitPutReplaceStub):
(JSC::emitPutTransitionStub):
(JSC::tryBuildPutByIdList):
(JSC::tryRepatchIn):
(JSC::linkClosureCall):
(JSC::resetGetByID):
(JSC::resetPutByID):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::loadJSStringArgument):
(JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):

  • jit/ThunkGenerators.cpp:

(JSC::virtualForThunkGenerator):
(JSC::arrayIteratorNextThunkGenerator):

  • jit/UnusedPointer.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/Arguments.cpp:

(JSC::Arguments::createStrictModeCallerIfNecessary):
(JSC::Arguments::createStrictModeCalleeIfNecessary):

  • runtime/Arguments.h:

(JSC::Arguments::createStructure):

  • runtime/ArrayPrototype.cpp:

(JSC::shift):
(JSC::unshift):
(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncReverse):
(JSC::performSlowSort):
(JSC::arrayProtoFuncSort):
(JSC::arrayProtoFuncSplice):
(JSC::arrayProtoFuncUnShift):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/Executable.h:

(JSC::ExecutableBase::isFunctionExecutable):
(JSC::ExecutableBase::clearCodeVirtual):
(JSC::ScriptExecutable::unlinkCalls):

  • runtime/GetterSetter.cpp:

(JSC::callGetter):
(JSC::callSetter):

  • runtime/InitializeThreading.cpp:
  • runtime/JSArray.cpp:

(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::setLength):
(JSC::JSArray::pop):
(JSC::JSArray::push):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithArrayStorage):
(JSC::JSArray::unshiftCountWithAnyIndexingType):
(JSC::JSArray::sortNumericVector):
(JSC::JSArray::sortNumeric):
(JSC::JSArray::sortCompactedVector):
(JSC::JSArray::sort):
(JSC::JSArray::sortVector):
(JSC::JSArray::fillArgList):
(JSC::JSArray::copyToArguments):
(JSC::JSArray::compactForSorting):

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toThis):
(JSC::JSValue::put):
(JSC::JSValue::putByIndex):
(JSC::JSValue::equalSlowCaseInline):

  • runtime/JSCell.cpp:

(JSC::JSCell::put):
(JSC::JSCell::putByIndex):
(JSC::JSCell::deleteProperty):
(JSC::JSCell::deletePropertyByIndex):

  • runtime/JSCell.h:

(JSC::JSCell::clearStructure):
(JSC::JSCell::mark):
(JSC::JSCell::isMarked):
(JSC::JSCell::structureIDOffset):
(JSC::JSCell::typeInfoFlagsOffset):
(JSC::JSCell::typeInfoTypeOffset):
(JSC::JSCell::indexingTypeOffset):
(JSC::JSCell::gcDataOffset):

  • runtime/JSCellInlines.h:

(JSC::JSCell::JSCell):
(JSC::JSCell::finishCreation):
(JSC::JSCell::type):
(JSC::JSCell::indexingType):
(JSC::JSCell::structure):
(JSC::JSCell::visitChildren):
(JSC::JSCell::isObject):
(JSC::JSCell::isString):
(JSC::JSCell::isGetterSetter):
(JSC::JSCell::isProxy):
(JSC::JSCell::isAPIValueWrapper):
(JSC::JSCell::setStructure):
(JSC::JSCell::methodTable):
(JSC::Heap::writeBarrier):

  • runtime/JSDataView.cpp:

(JSC::JSDataView::createStructure):

  • runtime/JSDestructibleObject.h:

(JSC::JSCell::classInfo):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView::createStructure):

  • runtime/JSObject.cpp:

(JSC::getCallableObjectSlow):
(JSC::JSObject::copyButterfly):
(JSC::JSObject::visitButterfly):
(JSC::JSFinalObject::visitChildren):
(JSC::JSObject::getOwnPropertySlotByIndex):
(JSC::JSObject::put):
(JSC::JSObject::putByIndex):
(JSC::JSObject::enterDictionaryIndexingModeWhenArrayStorageAlreadyExists):
(JSC::JSObject::enterDictionaryIndexingMode):
(JSC::JSObject::notifyPresenceOfIndexedAccessors):
(JSC::JSObject::createInitialIndexedStorage):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertUndecidedToContiguous):
(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::convertInt32ToContiguous):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::genericConvertDoubleToContiguous):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::ensureInt32Slow):
(JSC::JSObject::ensureDoubleSlow):
(JSC::JSObject::ensureContiguousSlow):
(JSC::JSObject::ensureArrayStorageSlow):
(JSC::JSObject::ensureArrayStorageExistsAndEnterDictionaryIndexingMode):
(JSC::JSObject::switchToSlowPutArrayStorage):
(JSC::JSObject::setPrototype):
(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::JSObject::putDirectNonIndexAccessor):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::hasOwnProperty):
(JSC::JSObject::deletePropertyByIndex):
(JSC::JSObject::getPrimitiveNumber):
(JSC::JSObject::hasInstance):
(JSC::JSObject::getPropertySpecificValue):
(JSC::JSObject::getPropertyNames):
(JSC::JSObject::getOwnPropertyNames):
(JSC::JSObject::getOwnNonIndexPropertyNames):
(JSC::JSObject::seal):
(JSC::JSObject::freeze):
(JSC::JSObject::preventExtensions):
(JSC::JSObject::reifyStaticFunctionsForDelete):
(JSC::JSObject::removeDirect):
(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
(JSC::JSObject::putByIndexBeyondVectorLength):
(JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):
(JSC::JSObject::putDirectIndexBeyondVectorLength):
(JSC::JSObject::getNewVectorLength):
(JSC::JSObject::countElements):
(JSC::JSObject::increaseVectorLength):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::growOutOfLineStorage):
(JSC::JSObject::getOwnPropertyDescriptor):
(JSC::putDescriptor):
(JSC::JSObject::defineOwnNonIndexProperty):

  • runtime/JSObject.h:

(JSC::getJSFunction):
(JSC::JSObject::getArrayLength):
(JSC::JSObject::getVectorLength):
(JSC::JSObject::putByIndexInline):
(JSC::JSObject::canGetIndexQuickly):
(JSC::JSObject::getIndexQuickly):
(JSC::JSObject::tryGetIndexQuickly):
(JSC::JSObject::getDirectIndex):
(JSC::JSObject::canSetIndexQuickly):
(JSC::JSObject::canSetIndexQuicklyForPutDirect):
(JSC::JSObject::setIndexQuickly):
(JSC::JSObject::initializeIndex):
(JSC::JSObject::hasSparseMap):
(JSC::JSObject::inSparseIndexingMode):
(JSC::JSObject::getDirect):
(JSC::JSObject::getDirectOffset):
(JSC::JSObject::isSealed):
(JSC::JSObject::isFrozen):
(JSC::JSObject::flattenDictionaryObject):
(JSC::JSObject::ensureInt32):
(JSC::JSObject::ensureDouble):
(JSC::JSObject::ensureContiguous):
(JSC::JSObject::rageEnsureContiguous):
(JSC::JSObject::ensureArrayStorage):
(JSC::JSObject::arrayStorage):
(JSC::JSObject::arrayStorageOrNull):
(JSC::JSObject::ensureLength):
(JSC::JSObject::currentIndexingData):
(JSC::JSObject::getHolyIndexQuickly):
(JSC::JSObject::currentRelevantLength):
(JSC::JSObject::isGlobalObject):
(JSC::JSObject::isVariableObject):
(JSC::JSObject::isStaticScopeObject):
(JSC::JSObject::isNameScopeObject):
(JSC::JSObject::isActivationObject):
(JSC::JSObject::isErrorInstance):
(JSC::JSObject::inlineGetOwnPropertySlot):
(JSC::JSObject::fastGetOwnPropertySlot):
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::putDirectInternal):
(JSC::JSObject::setStructureAndReallocateStorageIfNecessary):

  • runtime/JSPropertyNameIterator.h:

(JSC::JSPropertyNameIterator::createStructure):

  • runtime/JSProxy.cpp:

(JSC::JSProxy::getOwnPropertySlot):
(JSC::JSProxy::getOwnPropertySlotByIndex):
(JSC::JSProxy::put):
(JSC::JSProxy::putByIndex):
(JSC::JSProxy::defineOwnProperty):
(JSC::JSProxy::deleteProperty):
(JSC::JSProxy::deletePropertyByIndex):
(JSC::JSProxy::getPropertyNames):
(JSC::JSProxy::getOwnPropertyNames):

  • runtime/JSScope.cpp:

(JSC::JSScope::objectAtScope):

  • runtime/JSString.h:

(JSC::JSString::createStructure):
(JSC::isJSString):

  • runtime/JSType.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::TypeInfo):
(JSC::TypeInfo::isObject):
(JSC::TypeInfo::structureIsImmortal):
(JSC::TypeInfo::zeroedGCDataOffset):
(JSC::TypeInfo::inlineTypeFlags):

  • runtime/MapData.h:
  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyNames):
(JSC::objectConstructorKeys):
(JSC::objectConstructorDefineProperty):
(JSC::defineProperties):
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):
(JSC::objectProtoFuncToString):

  • runtime/Operations.cpp:

(JSC::jsTypeStringForValue):
(JSC::jsIsObjectType):

  • runtime/Operations.h:

(JSC::normalizePrototypeChainForChainAccess):
(JSC::normalizePrototypeChain):

  • runtime/PropertyMapHashTable.h:

(JSC::PropertyTable::createStructure):

  • runtime/RegExp.h:

(JSC::RegExp::createStructure):

  • runtime/SparseArrayValueMap.h:
  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::~Structure):
(JSC::Structure::prototypeChainMayInterceptStoreTo):

  • runtime/Structure.h:

(JSC::Structure::id):
(JSC::Structure::idBlob):
(JSC::Structure::objectInitializationFields):
(JSC::Structure::structureIDOffset):

  • runtime/StructureChain.h:

(JSC::StructureChain::createStructure):

  • runtime/StructureIDTable.cpp: Added.

(JSC::StructureIDTable::StructureIDTable):
(JSC::StructureIDTable::~StructureIDTable):
(JSC::StructureIDTable::resize):
(JSC::StructureIDTable::flushOldTables):
(JSC::StructureIDTable::allocateID):
(JSC::StructureIDTable::deallocateID):

  • runtime/StructureIDTable.h: Added.

(JSC::StructureIDTable::base):
(JSC::StructureIDTable::get):

  • runtime/SymbolTable.h:
  • runtime/TypedArrayType.cpp:

(JSC::typeForTypedArrayType):

  • runtime/TypedArrayType.h:
  • runtime/WeakMapData.h:
5:26 PM Changeset in webkit [164763] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Ranges given to createMarkupInternal might not be canonicalized
https://bugs.webkit.org/show_bug.cgi?id=129408

Reviewed by Ryosuke Niwa.

When WebKit clients (such as Mail) call WKWebArchiveCreateFromRange() with a range,
that range is not necessarily canonicalized. Therefore, comparing it for equality
with a canonicalized range might return a false negative. Instead, we should compare
canonicalized ranges.

No new tests because this codepath will only be reached via SPI.

  • editing/markup.cpp:

(WebCore::createMarkupInternal):

5:21 PM Changeset in webkit [164762] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix.

WKFormInputControl.mm and WKFormPopover.mm should be excluded from OS X builds.

  • Configurations/WebKit2.xcconfig:
5:09 PM Changeset in webkit [164761] by mhahnenberg@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unconditional logging in compileFTLOSRExit
https://bugs.webkit.org/show_bug.cgi?id=129407

Reviewed by Michael Saboff.

This was causing tests to fail with the FTL enabled.

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileFTLOSRExit):

5:06 PM Changeset in webkit [164760] by enrica@apple.com
  • 11 edits
    7 adds in trunk/Source

[iOS WebKit2] Form controls handling: implement date and time controls.
https://bugs.webkit.org/show_bug.cgi?id=129344

Reviewed by Simon Fraser and Joseph Pecoraro.

../WebCore:

Adding one localizable string.

  • English.lproj/Localizable.strings:

../WebKit2:

This is another step in the implementation of form controls on iOS
for WebKit2. This adds support for date and time input elements supporting
the different look and feel for iPhone and iPad.
WKDateTimePicker implements iPhone UI and
WKDateTimePopover implements iPad UI.
WKFormRotatingAccessoryPopover and WKRotatingPopover are
classes that implement the popover object handling the rotation
and they will be used as base class for the select controls as well.

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

(-[WKContentView _displayFormNodeInputView]):
(-[WKContentView inputView]):
(-[WKContentView _startAssistingNode:]):
(-[WKContentView _stopAssistingNode]):

  • UIProcess/ios/WKFormInputControl.h: Added.
  • UIProcess/ios/WKFormInputControl.mm: Added.

(-[WKDateTimePicker datePicker]):
(-[WKDateTimePicker initWithView:datePickerMode:]):
(-[WKDateTimePicker dealloc]):
(-[WKDateTimePicker controlView]):
(-[WKDateTimePicker _timeZoneOffsetFromGMT:]):
(-[WKDateTimePicker _sanitizeInputValueForFormatter:]):
(-[WKDateTimePicker _dateChangedSetAsNumber]):
(-[WKDateTimePicker _dateChangedSetAsString]):
(-[WKDateTimePicker _dateChanged]):
(-[WKDateTimePicker _dateChangeHandler:]):
(-[WKDateTimePicker controlBeginEditing]):
(-[WKDateTimePicker controlEndEditing]):
(-[WKFormInputControl initWithView:]):
(+[WKFormInputControl createPeripheralWithView:]):
(-[WKFormInputControl beginEditing]):
(-[WKFormInputControl endEditing]):
(-[WKFormInputControl assistantView]):
(-[WKDateTimePopoverViewController initWithView:datePickerMode:]):
(-[WKDateTimePopoverViewController innerControl]):
(-[WKDateTimePopoverViewController loadView]):
(-[WKDateTimePopover clear:]):
(-[WKDateTimePopover initWithView:datePickerMode:]):
(-[WKDateTimePopover viewController]):
(-[WKDateTimePopover controlBeginEditing]):
(-[WKDateTimePopover controlEndEditing]):
(-[WKDateTimePopover controlView]):

  • UIProcess/ios/WKFormPeripheral.h: Added.
  • UIProcess/ios/WKFormPopover.h: Added.
  • UIProcess/ios/WKFormPopover.mm: Added.

(-[WKFormRotatingAccessoryPopover initWithView:]):
(-[WKFormRotatingAccessoryPopover accessoryDone]):
(-[WKFormRotatingAccessoryPopover popoverArrowDirections]):
(-[WKFormRotatingAccessoryPopover popoverWasDismissed:]):
(-[WKRotatingPopover initWithView:]):
(-[WKRotatingPopover dealloc]):
(-[WKRotatingPopover popoverController]):
(-[WKRotatingPopover setPopoverController:]):
(-[WKRotatingPopover popoverArrowDirections]):
(-[WKRotatingPopover presentPopoverAnimated:]):
(-[WKRotatingPopover dismissPopoverAnimated:]):
(-[WKRotatingPopover willRotate:]):
(-[WKRotatingPopover didRotate:]):
(-[WKRotatingPopover popoverControllerDidDismissPopover:]):

  • UIProcess/ios/WKFormSelectControl.h: Added.
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setAssistedNodeValue):
(WebKit::WebPageProxy::setAssistedNodeValueAsNumber):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setAssistedNodeValue):
(WebKit::WebPage::setAssistedNodeValueAsNumber):

5:04 PM Changeset in webkit [164759] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Prepare for overflow scrolling nodes in the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=129398

Reviewed by Tim Horton.

Lay some groundwork for overflow:scrolling nodes in the scrolling tree.
Change terminology to refer to "scroll-coordinatored" layers now, not just viewport-constrained
layers.

A given layer can be both viewport-constrained and overflow-scrolling (e.g. position:fixed,
overflow:scroll), so handle that in RenderLayerBacking, and use some "reason" flags
in RenderLayerCompositor.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollLayerID): Rename

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::attachNode): Remove invalid assertion.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::updateScrollingLayers): Simplify the logic with
an early return.
(WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
Allow a layer to play both viewport-constrained and scrolling roles
in the scrolling tree.

  • rendering/RenderLayerBacking.h:

(WebCore::RenderLayerBacking::viewportConstrainedNodeID):
(WebCore::RenderLayerBacking::setViewportConstrainedNodeID):
(WebCore::RenderLayerBacking::scrollingNodeID):
(WebCore::RenderLayerBacking::setScrollingNodeID):
(WebCore::RenderLayerBacking::scrollingNodeIDForChildren):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::didFlushChangesForLayer):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::layerWillBeRemoved):
(WebCore::RenderLayerCompositor::fixedRootBackgroundLayerChanged):
(WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
(WebCore::RenderLayerCompositor::requiresCompositingLayer):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore):
(WebCore::RenderLayerCompositor::reasonsForCompositing):
(WebCore::RenderLayerCompositor::requiresCompositingForScrolling):
(WebCore::isViewportConstrainedFixedOrStickyLayer):
(WebCore::isMainFrameScrollingOrOverflowScrolling):
(WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):
(WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers):
(WebCore::nearestScrollCoordinatedAncestor):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
(WebCore::RenderLayerCompositor::willRemoveScrollingLayer):
(WebCore::RenderLayerCompositor::didAddScrollingLayer):

  • rendering/RenderLayerCompositor.h:
4:52 PM Changeset in webkit [164758] by psolanki@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS][Webkit2] Enable codesigning entitlement for web process
https://bugs.webkit.org/show_bug.cgi?id=129401
<rdar://problem/16173873>

Reviewed by Geoffrey Garen.

  • Configurations/WebContent-iOS.entitlements:
4:19 PM Changeset in webkit [164757] by aestes@apple.com
  • 10 edits
    1 add
    1 delete in trunk/Source

[iOS] Support network state notification using CPNetworkObserver
https://bugs.webkit.org/show_bug.cgi?id=129358

Reviewed by Dan Bernstein.

Source/WebCore:

Add iOS support for navigator.onLine and online/offline events. Since
it can be expensive to query CPNetworkObserver, wait to do so until
someone calls NetworkStateObserver::onLine() or
NetworkStateObserver::addNetworkStateChangeListener(). For clients that
don't wish to observe network reachability at all, add a global opt-out.
These clients will only pay the cost of CPNetworkObserver if they load
a page that explicitly accesses navigator.onLine.

No new tests. Covered by existing tests.

  • WebCore.exp.in: Stopped exporting NetworkStateNotifier::setIsOnLine()

and started exporting Settings::gShouldOptOutOfNetworkStateObservation.

  • WebCore.xcodeproj/project.pbxproj: Renamed NetworkStateNotifierIOS.cpp

to NetworkStateNotifierIOS.mm.

  • page/Settings.cpp: Defaulted gShouldOptOutOfNetworkStateObservation

to false.

  • page/Settings.h:

(WebCore::Settings::setShouldOptOutOfNetworkStateObservation):
(WebCore::Settings::shouldOptOutOfNetworkStateObservation):

  • platform/network/NetworkStateNotifier.cpp:

(WebCore::NetworkStateNotifier::addNetworkStateChangeListener): Ignored
the listener if Settings::shouldOptOutOfNetworkStateObservation().
Called registerObserverIfNecessary() and added the listener otherwise.
(WebCore::NetworkStateNotifier::notifyNetworkStateChange): Const qualified.

  • platform/network/NetworkStateNotifier.h

(NetworkStateNotifier::onLine):

  • platform/network/ios/NetworkStateNotifierIOS.cpp: Removed.
  • platform/network/ios/NetworkStateNotifierIOS.mm: Added.

(-[NetworkStateObserver initWithNotifier:WebCore::]): Registered self
as a network reachable observer on CPNetworkObserver.
(-[NetworkStateObserver dealloc]): Removed self as a network reachable
observer.
(-[NetworkStateObserver networkStateChanged:]): Called setOnLine() on
the web thread, passing the reachability value from the notification.
(WebCore::NetworkStateNotifier::NetworkStateNotifier):
(WebCore::NetworkStateNotifier::~NetworkStateNotifier): Cleared
m_observer's pointer back to us.
(WebCore::NetworkStateNotifier::registerObserverIfNecessary): Initialized
m_observer if necessary.
(WebCore::NetworkStateNotifier::onLine): Called
registerObserverIfNecessary() and set an initial value for m_isOnLine
if m_isOnLineInitialized is false. Returned m_isOnLine.
(WebCore::setOnLine): Set m_isOnLine and called
notifyNetworkStateChange() if needed. Unconditionally set
m_isOnLineInitialized to true.

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _setNetworkStateIsOnline:]): Retained an empty
implementation for binary compatibility for UIKit.
(+[WebView _doNotStartObservingNetworkReachability]): Called
Settings::setShouldOptOutOfNetworkStateObservation(true).

  • WebView/WebViewPrivate.h: Removed declaration of

_setNetworkStateIsOnline: and declared
_doNotStartObservingNetworkReachability.

3:48 PM Changeset in webkit [164756] by andersca@apple.com
  • 11 edits in trunk/Source/WebKit2

Give VisitedLinkProviders an identifier and send them to the web process
https://bugs.webkit.org/show_bug.cgi?id=129400

Reviewed by Dan Bernstein.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKVisitedLinkProviderInternal.h:
  • UIProcess/VisitedLinkProvider.cpp:

(WebKit::generateIdentifier):
(WebKit::VisitedLinkProvider::VisitedLinkProvider):

  • UIProcess/VisitedLinkProvider.h:

(WebKit::VisitedLinkProvider::identifier):

  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createWebPage):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::internalShowContextMenu):

  • UIProcess/WebPageProxy.h:
3:43 PM Changeset in webkit [164755] by Julien Brianceau
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
3:25 PM Changeset in webkit [164754] by jinwoo7.song@samsung.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed CMAKE build fix after r164751.

  • CMakeLists.txt: Renamed WebVisitedLinkProvider.cpp to VisitedLinkTableController.cpp.
3:20 PM Changeset in webkit [164753] by Brian Burg
  • 4 edits in trunk/Source/WebCore

Unreviewed build fix for !ENABLE(CONTEXT_MENUS).

I forgot to add guards to handleContextMenuEvent().

  • replay/UserInputBridge.cpp:
  • replay/UserInputBridge.h:
3:14 PM Changeset in webkit [164752] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[WebGL] Only skip context error retrieval if a pending context
https://bugs.webkit.org/show_bug.cgi?id=129397

Reviewed by Tim Horton.

A lost context should still ask the GC3D what the error is. Only
a pending context should return early.

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getError):

3:01 PM Changeset in webkit [164751] by andersca@apple.com
  • 3 edits
    2 moves in trunk/Source/WebKit2

Rename WebVisitedLinkProvider to VisitedLinkTableController
https://bugs.webkit.org/show_bug.cgi?id=129396

Reviewed by Dan Bernstein.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/VisitedLinkTableController.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/WebVisitedLinkProvider.cpp.

(WebKit::VisitedLinkTableController::create):
(WebKit::VisitedLinkTableController::VisitedLinkTableController):
(WebKit::VisitedLinkTableController::~VisitedLinkTableController):
(WebKit::VisitedLinkTableController::isLinkVisited):
(WebKit::VisitedLinkTableController::addVisitedLink):

  • WebProcess/WebPage/VisitedLinkTableController.h: Renamed from Source/WebKit2/WebProcess/WebPage/WebVisitedLinkProvider.h.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

2:30 PM Changeset in webkit [164750] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Keyboard keeps showing up when clicking links after being shown once.
https://bugs.webkit.org/show_bug.cgi?id=129392

Reviewed by Benjamin Poulain.

This is a regression introduced by http://trac.webkit.org/changeset/164690.
_requiresKeyboardWhenFirstResponder should always return NO, if there is
no assisted node.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _requiresKeyboardWhenFirstResponder]):

2:20 PM Changeset in webkit [164749] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit2

WebProcessProxy::updateProcessState() is causing duplicate symbol linker errors
https://bugs.webkit.org/show_bug.cgi?id=129390

Reviewed by Tim Horton.

Caused by r164737. WebProcessProxy::updateProcessState() is defined in a header, outside of
a class, but isn't inlined.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::updateProcessState):

2:10 PM Changeset in webkit [164748] by lvidacs.u-szeged@partner.samsung.com
  • 2 edits in trunk/Tools

Unreviewed. Moved myself to the list of committers.

  • Scripts/webkitpy/common/config/contributors.json:
1:49 PM Changeset in webkit [164747] by oliver@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Remove unused access types
https://bugs.webkit.org/show_bug.cgi?id=129385

Reviewed by Filip Pizlo.

Remove unused cruft.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::printGetByIdCacheStatus):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::deref):

  • bytecode/StructureStubInfo.h:

(JSC::isGetByIdAccess):
(JSC::isPutByIdAccess):

1:44 PM Changeset in webkit [164746] by mrowe@apple.com
  • 19 edits
    2 deletes in trunk/Source

Roll out r164732 since it broke Production Mac builds.

1:41 PM Changeset in webkit [164745] by Brian Burg
  • 13 edits
    2 adds in trunk/Source

Web Replay: route through UserInputBridge when delivering user inputs to WebCore
https://bugs.webkit.org/show_bug.cgi?id=128150

Reviewed by Timothy Hatcher.

Source/WebCore:

Add an UserInputBridge instance to each Page. WebKit2 routes a page's user inputs through
the WebCore page's user input bridge so that the inputs can be selectively captured, filtered,
and replayed using instrumentation inside the UserInputBridge.

For now, the routing methods of UserInputBridge have no replay-specific code paths, and just
put the input delivery code inside WebCore rather than its external clients. Replay-specific
code paths will be added once https://bugs.webkit.org/show_bug.cgi?id=128782 is fixed. However,
once complete the code will work as follows:

  • When neither capturing or replaying, behavior is unchanged.
  • When capturing user inputs, each external input is saved into a replay log as it crosses

the bridge from outside WebCore.

  • When replaying, the bridge closes and user inputs from WebKit2 are not accepted. Instead,

the saved inputs from the replay log are re-dispatched as if they had crossed the bridge.

  • CMakeLists.txt:
  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • WebCore.exp.in: Add symbols for input routing methods.
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • page/Page.cpp:

(WebCore::Page::Page): Initialize the owned UserInputBridge in the Page constructor.

  • page/Page.h:

(WebCore::Page::inputBridge): Added a by-reference getter.

  • replay/UserInputBridge.cpp: Added.

(WebCore::UserInputBridge::UserInputBridge):
(WebCore::UserInputBridge::~UserInputBridge):
(WebCore::UserInputBridge::handleContextMenuEvent):
(WebCore::UserInputBridge::handleMousePressEvent):
(WebCore::UserInputBridge::handleMouseReleaseEvent):
(WebCore::UserInputBridge::handleMouseMoveEvent):
(WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
(WebCore::UserInputBridge::handleKeyEvent):
(WebCore::UserInputBridge::handleAccessKeyEvent):
(WebCore::UserInputBridge::handleWheelEvent):
(WebCore::UserInputBridge::focusSetActive):
(WebCore::UserInputBridge::focusSetFocused):
(WebCore::UserInputBridge::scrollRecursively):
(WebCore::UserInputBridge::logicalScrollRecursively):
(WebCore::UserInputBridge::loadRequest):
(WebCore::UserInputBridge::reloadFrame):
(WebCore::UserInputBridge::stopLoadingFrame):
(WebCore::UserInputBridge::tryClosePage):

  • replay/UserInputBridge.h: Added.

Source/WebKit2:

When delivering user inputs to WebCore, route calls through the page's UserInputBridge.
This allows us to capture and replay user inputs from WebKit2 solely within WebCore.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::tryClose):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::stopLoadingFrame):
(WebKit::WebPage::stopLoading):
(WebKit::WebPage::reload):
(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::handleContextMenuEvent):
(WebKit::handleMouseEvent):
(WebKit::handleWheelEvent):
(WebKit::handleKeyEvent):
(WebKit::WebPage::scroll):
(WebKit::WebPage::logicalScroll):

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

[WebGL] Protect more WebGL entry points for pending contexts
https://bugs.webkit.org/show_bug.cgi?id=129386

Reviewed by Tim Horton.

There are entry points into a WebGLRenderingContext that don't
come from the web-exposed API directly, such as drawImage with
the WebGL canvas. Protect these by returning early if we're
a pending context.

Also a bunch of drive-by 0 -> nullptr changes.

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::markLayerComposited):
(WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContext::paintRenderingResultsToImageData):
(WebCore::WebGLRenderingContext::reshape):
(WebCore::WebGLRenderingContext::createBuffer):
(WebCore::WebGLRenderingContext::createFramebuffer):
(WebCore::WebGLRenderingContext::createTexture):
(WebCore::WebGLRenderingContext::createProgram):
(WebCore::WebGLRenderingContext::createRenderbuffer):
(WebCore::WebGLRenderingContext::createShader):
(WebCore::WebGLRenderingContext::getActiveAttrib):
(WebCore::WebGLRenderingContext::getActiveUniform):
(WebCore::WebGLRenderingContext::getContextAttributes):
(WebCore::WebGLRenderingContext::getError):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getShaderPrecisionFormat):
(WebCore::WebGLRenderingContext::getUniformLocation):
(WebCore::WebGLRenderingContext::drawImageIntoBuffer):
(WebCore::WebGLRenderingContext::videoFrameToImage):
(WebCore::WebGLRenderingContext::validateBufferDataParameters):
(WebCore::WebGLRenderingContext::LRUImageBufferCache::imageBuffer):

1:27 PM Changeset in webkit [164743] by Bem Jones-Bey
  • 3 edits
    4 adds in trunk

[CSS Shapes] inset and inset-rectangle trigger assert with replaced element and large percentage dimension
https://bugs.webkit.org/show_bug.cgi?id=129060

Reviewed by Simon Fraser.

Source/WebCore:

A bounds check was omitted when computing the width and height for inset
rectangles, making it possible for the width or height to end up being
negative. This patch adds in that check for both. It seems that only
replaced elements like iframe and img trigger this problem.

Tests: fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-negative-width-crash.html

fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-rectangle-negative-width-crash.html

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createShape):

LayoutTests:

  • fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-negative-width-crash-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-negative-width-crash.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-rectangle-negative-width-crash-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-rectangle-negative-width-crash.html: Added.
1:17 PM Changeset in webkit [164742] by barraclough@apple.com
  • 2 edits in trunk/Source/WTF

FastMalloc should use vm_page_shift intead of PAGE_SHIFT.
https://bugs.webkit.org/show_bug.cgi?id=129370

Reviewed by Mark Rowe.

"Doesn't this lead to the page map using fewer bits than it was before?
It seems like this will cause some page addresses to no longer be
representable in the map when using 4K pages. Am I missing something?"

  • wtf/FastMalloc.cpp:
    • bdash raises a valid point. This should make the TCMalloc_PageMap larger than absolutely necessary, rather than potentially too small.
1:13 PM Changeset in webkit [164741] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Underlines are too thick when zoomed in
https://bugs.webkit.org/show_bug.cgi?id=129352

Reviewed by Dean Jackson.

Source/WebCore:

The input to the underline drawing code is in user-space, not device-space.
The underlines were getting scaled twice, once in InlineTextBox and the other
in GraphicsContext.

Test: fast/css3-text/css3-text-decoration/text-decoration-scaled.html

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintDecoration):

LayoutTests:

This test changes the page scale factor to a very large value, simulating
the user zooming in with a trackpad. It then positions the viewport
to a place where the underline should not be drawn. It then compares this
to a completely white page.

This explanation cannot be in the test itself because the test sets the
scale factor too high for the tester to be able to read text.

  • fast/css3-text/css3-text-decoration/text-decoration-scaled-expected.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-scaled.html: Added.
12:58 PM Changeset in webkit [164740] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Fix an issue where the Timeline filter scope bars were not applying.

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineDataGrid.js:

(TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters): Use .get() to access the ScopeBar.

12:54 PM Changeset in webkit [164739] by mrobinson@webkit.org
  • 6 edits in trunk/Tools

[GTK] Reduplicate common.top_level_path in scripts
https://bugs.webkit.org/show_bug.cgi?id=129291

Reviewed by Philippe Normand.

Duplicate common.top_level_path and avoid polluting many scripts with awkward system
path manipulation and weird dependencies on the jhbuild infrastructure.

  • Scripts/run-gtk-tests: Use common again.

(TestRunner._setup_testing_environment): Ditto.

  • gtk/check-gdom-symbols: Ditto.
  • gtk/common.py:

(top_level_path): Re-add top_level_path..
(get_build_path): Use the builtin top_level_path again.

  • gtk/find-make-dist-errors: Use common again.

(get_missing_headers): Ditto.

  • gtk/generate-inspector-gresource-manifest.py: Ditto.
12:40 PM Changeset in webkit [164738] by oliver@apple.com
  • 3 edits
    3 adds in trunk

Function.prototype.apply has a bad time with the spread operator
https://bugs.webkit.org/show_bug.cgi?id=129381

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore:

Make sure our apply logic handle the spread operator correctly.
To do this we simply emit the enumeration logic that we'd normally
use for other enumerations, but only store the first two results
to registers. Then perform a varargs call.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ApplyFunctionCallDotNode::emitBytecode):

LayoutTests:

Add tests

  • js/regress/call-spread-apply-expected.txt: Added.
  • js/regress/call-spread-apply.html: Added.
  • js/regress/script-tests/call-spread-apply.js: Added.

(testFunction):
(test2):
(test3):

12:39 PM Changeset in webkit [164737] by psolanki@apple.com
  • 7 edits in trunk/Source/WebKit2

[iOS][WebKit2] Adopt SPI for managing tabs
https://bugs.webkit.org/show_bug.cgi?id=129188
<rdar://problem/15939827>

Reviewed by Gavin Barraclough.

Call into assertions SPI to mark tabs as foreground and background.

  • Configurations/WebKit2.xcconfig:
  • Platform/IPC/Connection.h:

(IPC::Connection::xpcConnection): Expose the xpc_connection_t.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::viewStateDidChange):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didFinishLaunching):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::updateProcessState):

  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::updateProcessState): Added. This goes through the list of
WebPageProxies and sets the process state to foreground if one of them is in a window.
Otherwise, it sets it to background.

12:18 PM Changeset in webkit [164736] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk/Source/WebKit2

Unreviewed, rolling out r164725 and r164731.
http://trac.webkit.org/changeset/164725
http://trac.webkit.org/changeset/164731
https://bugs.webkit.org/show_bug.cgi?id=129382

WebKitTestRunner build is broken on IOS (Requested by smfr on
#webkit).

  • UIProcess/API/Cocoa/WKView.h:
  • UIProcess/API/ios/WKViewIOS.mm: Added.

(-[WKView initWithCoder:]):
(-[WKView initWithFrame:processGroup:browsingContextGroup:]):
(-[WKView initWithFrame:processGroup:browsingContextGroup:relatedToView:]):
(-[WKView dealloc]):
(-[WKView setFrame:]):
(-[WKView setBounds:]):
(-[WKView scrollView]):
(-[WKView browsingContextController]):
(-[WKView setAllowsBackForwardNavigationGestures:]):
(-[WKView allowsBackForwardNavigationGestures]):
(-[WKView viewForZoomingInScrollView:]):
(-[WKView scrollViewWillBeginZooming:withView:]):
(-[WKView scrollViewWillBeginDragging:]):
(-[WKView _didFinishScrolling]):
(-[WKView scrollViewDidEndDragging:willDecelerate:]):
(-[WKView scrollViewDidEndDecelerating:]):
(-[WKView scrollViewDidScrollToTop:]):
(-[WKView scrollViewDidScroll:]):
(-[WKView scrollViewDidZoom:]):
(-[WKView scrollViewDidEndZooming:withView:atScale:]):
(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
(-[WKView _frameOrBoundsChanged]):
(-[WKView _updateVisibleContentRects]):
(-[WKView _keyboardChangedWithInfo:adjustScrollView:]):
(-[WKView _keyboardWillChangeFrame:]):
(-[WKView _keyboardDidChangeFrame:]):
(-[WKView _keyboardWillShow:]):
(-[WKView _keyboardWillHide:]):
(-[WKView pageRef]):
(-[WKView initWithFrame:contextRef:pageGroupRef:]):
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
(-[WKView minimumLayoutSizeOverride]):
(-[WKView setMinimumLayoutSizeOverride:]):
(-[WKView _obscuredInsets]):
(-[WKView _setObscuredInsets:]):
(-[WKView _beginInteractiveObscuredInsetsChange]):
(-[WKView _endInteractiveObscuredInsetsChange]):
(-[WKView _pageExtendedBackgroundColor]):
(-[WKView _setBackgroundExtendsBeyondPage:]):
(-[WKView _backgroundExtendsBeyondPage]):

  • WebKit2.xcodeproj/project.pbxproj:
12:15 PM Changeset in webkit [164735] by akling@apple.com
  • 20 edits
    2 deletes in trunk/Source

Remove unused InspectorCounters.
<https://webkit.org/b/129367>

The InspectorCounters code was only used to implement two layout test
APIs (window.internals.numberOfLive{Nodes,Documents}) yet it had hooks
in crazy places like Node construction and destruction.

Rewrote the internals APIs to iterate over all live Documents instead,
totaling up their referencing Node count. Added a process-global
Document::allDocuments() HashSet to make this whole thing possible.

Reviewed by Sam Weinig.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.exp.in:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSEventListener.cpp:
  • dom/Document.cpp:

(WebCore::Document::allDocuments):
(WebCore::Document::Document):
(WebCore::Document::~Document):

  • dom/Document.h:

(WebCore::Node::Node):

  • dom/Node.cpp:

(WebCore::Node::~Node):

  • inspector/InspectorAllInOne.cpp:
  • inspector/InspectorCounters.cpp: Removed.
  • inspector/InspectorCounters.h: Removed.
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):

  • inspector/InspectorTimelineAgent.h:
  • inspector/protocol/Timeline.json:
  • platform/ThreadGlobalData.cpp:
  • testing/Internals.cpp:

(WebCore::Internals::numberOfLiveNodes):
(WebCore::Internals::numberOfLiveDocuments):

  • testing/Internals.h:
  • testing/Internals.idl:
12:13 PM Changeset in webkit [164734] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Compilation policy management belongs in operationOptimize(), not the DFG Driver.
<https://webkit.org/b/129355>

Reviewed by Filip Pizlo.

By compilation policy, I mean the rules for determining whether to
compile, when to compile, when to attempt compilation again, etc. The
few of these policy decisions that were previously being made in the
DFG driver are now moved to operationOptimize() where we keep the rest
of the policy logic. Decisions that are based on the capabilities
supported by the DFG are moved to DFG capabiliityLevel().

I've run the following benchmarks:

  1. the collection of jsc benchmarks on the jsc executable vs. its baseline.
  2. Octane 2.0 in browser without the WebInspector.
  3. Octane 2.0 in browser with the WebInspector open and a breakpoint set somewhere where it won't break.

In all of these, the results came out to be a wash as expected.

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::isSupported):
(JSC::DFG::mightCompileEval):
(JSC::DFG::mightCompileProgram):
(JSC::DFG::mightCompileFunctionForCall):
(JSC::DFG::mightCompileFunctionForConstruct):
(JSC::DFG::mightInlineFunctionForCall):
(JSC::DFG::mightInlineFunctionForClosureCall):
(JSC::DFG::mightInlineFunctionForConstruct):

  • dfg/DFGCapabilities.h:
  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • jit/JITOperations.cpp:
11:54 AM Changeset in webkit [164733] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Build fix: ContextMenuContextData.* should not be in the Copy Files
phase.

  • WebKit2.xcodeproj/project.pbxproj:
11:45 AM Changeset in webkit [164732] by msaboff@apple.com
  • 19 edits
    2 adds in trunk/Source

Auto generate bytecode information for bytecode parser and LLInt
https://bugs.webkit.org/show_bug.cgi?id=129181

Reviewed by Mark Lam.

Source/JavaScriptCore:

Added new bytecode/BytecodeList.json that contains a list of bytecodes and related
helpers. It also includes bytecode length and other information used to generate files.
Added a new generator, generate-bytecode-files that generates Bytecodes.h and InitBytecodes.asm
in DerivedSources/JavaScriptCore/.

Added the generation of these files to the "DerivedSource" build step.
Slighty changed the build order, since the Bytecodes.h file is needed by
JSCLLIntOffsetsExtractor. Moved the offline assembly to a separate step since it needs
to be run after JSCLLIntOffsetsExtractor.

Made related changes to OPCODE macros and their use.

  • CMakeLists.txt:
  • DerivedSources.make:
  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.vcxproj/copy-files.cmd:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json: Added.
  • bytecode/Opcode.h:

(JSC::padOpcodeName):

  • generate-bytecode-files: Added.
  • llint/LLIntCLoop.cpp:

(JSC::LLInt::CLoop::initialize):

  • llint/LLIntCLoop.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntOpcode.h:
  • llint/LowLevelInterpreter.asm:

Source/WebKit:

Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.

  • CMakeLists.txt:

Source/WebKit2:

Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit2_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.

  • CMakeLists.txt:
11:44 AM Changeset in webkit [164731] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix MiniBrowser/WebKitTestRunner link errors; WKView still
needs to be exported while these tools are using it.

  • UIProcess/API/Cocoa/WKView.h:
11:34 AM Changeset in webkit [164730] by Joseph Pecoraro
  • 12 edits in trunk

Web Inspector: Remove console.profiles from window.console API
https://bugs.webkit.org/show_bug.cgi?id=116883

Reviewed by Timothy Hatcher.

Source/WebCore:

console.profiles has been removed or never implemented by other
browsers. We should remove it as well. However, since tests
rely on it, keep it as window.internals.consoleProfiles.

  • WebCore.exp.in:
  • page/Console.idl:
  • testing/Internals.cpp:

(WebCore::Internals::consoleProfiles):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

LayoutTests:

  • fast/profiler/resources/profiler-test-JS-resources.js:

(printHeavyProfilesDataWithoutTime):
(printProfilesDataWithoutTime):

11:22 AM Changeset in webkit [164729] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix the iOS build by wrapping some context menu stuff in #if ENABLE(CONTEXT_MENUS)

  • UIProcess/WebPageProxy.h:
11:17 AM Changeset in webkit [164728] by barraclough@apple.com
  • 2 edits in trunk/Source/WTF

FastMalloc should use vm_page_shift intead of PAGE_SHIFT.
https://bugs.webkit.org/show_bug.cgi?id=129370

Reviewed by Geoff Garen.

Previously we used PAGE_SHIFT to initialize kPageShift.
Since this was a constant, it could be used to calculate other
contants used in the code. Some of these values are used in the
definition of certain data structures (specifiying the length of
some array members).

Make kPageShift & dependent properties variables setup during
initialization. Add upper bound values (K_PAGE_SHIFT_MAX,
K_NUM_CLASSES_MAX) for use in cases where we need a constant.

  • wtf/FastMalloc.cpp:

(WTF::InitSizeClasses):

  • initialize kPageShift, kNumClasses, kPageSize, kMaxValidPages.

(WTF::pages):

  • added ASSERT.

(WTF::AllocationSize):

  • added ASSERT.

(WTF::TCMalloc_PageHeap::FreeBytes):

  • added ASSERT.

(WTF::TCMalloc_PageHeap::init):

  • COMPILE_ASSERT -> ASSERT

(WTF::TCMalloc_PageHeap::scavenge):

  • added ASSERT.

(WTF::TCMalloc_PageHeap::Carve):

  • added ASSERT.

(WTF::mergeDecommittedStates):

  • added ASSERT.

(WTF::TCMalloc_PageHeap::IncrementalScavenge):

  • added ASSERT.

(WTF::TCMalloc_PageHeap::ReturnedBytes):

  • added ASSERT.

(WTF::PagesToMB):

  • added ASSERT.

(WTF::TCMalloc_PageHeap::GrowHeap):

  • added ASSERT.

(WTF::TCMalloc_PageHeap::ReleaseFreeList):

  • kNumClasses -> K_NUM_CLASSES_MAX

(WTF::TCMalloc_ThreadCache::enumerateFreeObjects):

  • added ASSERT.

(WTF::TCMalloc_Central_FreeList::Init):

  • added ASSERT.

(WTF::TCMalloc_Central_FreeList::ReleaseToSpans):

  • added ASSERT.

(WTF::TCMalloc_Central_FreeList::EvictRandomSizeClass):

  • added ASSERT.

(WTF::TCMalloc_Central_FreeList::MakeCacheSpace):

  • added ASSERT.

(WTF::TCMalloc_Central_FreeList::InsertRange):

  • added ASSERT.

(WTF::TCMalloc_Central_FreeList::Populate):

  • added ASSERT.

(WTF::TCMalloc_ThreadCache::Init):

  • added ASSERT.

(WTF::TCMalloc_ThreadCache::Cleanup):

  • added ASSERT.

(WTF::TCMalloc_ThreadCache::Scavenge):

  • added ASSERT.

(WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):

  • added ASSERT.
11:16 AM Changeset in webkit [164727] by mhahnenberg@apple.com
  • 2 edits in trunk/Tools

runscript: line 42: /bin/ls: Argument list too long
https://bugs.webkit.org/show_bug.cgi?id=129376

Reviewed by Michael Saboff.

The "test_script_*" can expand to more things than can be passed as arguments on the command line.
We should use find instead, which generates the list of files rather than expanding them all on
the command line and spitting them back out.

  • Scripts/jsc-stress-test-helpers/shell-runner.sh:
11:05 AM Changeset in webkit [164726] by commit-queue@webkit.org
  • 42 edits
    2 copies in trunk/Source

Create SessionID value-style class for session IDs.
https://bugs.webkit.org/show_bug.cgi?id=129141

Source/WebCore:

Patch by Martin Hock <mhock@apple.com> on 2014-02-26
Reviewed by Sam Weinig.

  • GNUmakefile.list.am:
  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj:
  • page/Page.cpp: Add SessionID member.

(WebCore::Page::Page):
(WebCore::Page::sessionID): Retrieve sessionID or use settings if not set.

  • page/Page.h:

(WebCore::Page::isSessionIDSet):
(WebCore::Page::setSessionID):

  • page/SessionID.h: Session ID class consisting solely of its uint64_t session ID.

(WebCore::SessionID::SessionID):
(WebCore::SessionID::isValid): Not empty.
(WebCore::SessionID::isEphemeral):
(WebCore::SessionID::sessionID):
(WebCore::SessionID::operator==): Value-based equality.
(WebCore::SessionID::operator!=):
(WebCore::SessionID::emptySessionID): Zero value also used for HashTraits emptyValue.
(WebCore::SessionID::defaultSessionID):
(WebCore::SessionID::legacyPrivateSessionID):

  • page/SessionIDHash.h:

(WTF::SessionIDHash::hash): Just the casted session ID (low order bytes)
(WTF::SessionIDHash::equal):
(WTF::HashTraits<WebCore::SessionID>::emptyValue): Equal to emptySessionID.
(WTF::HashTraits<WebCore::SessionID>::constructDeletedValue): -1 value.
(WTF::HashTraits<WebCore::SessionID>::isDeletedValue):

Source/WebKit2:

The below changes deal solely with mechanical changes to use the SessionID value class instead of uint64_t except where noted.

Patch by Martin Hock <mhock@apple.com> on 2014-02-26
Reviewed by Sam Weinig.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::storageSession):
(WebKit::NetworkConnectionToWebProcess::startDownload):
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
(WebKit::NetworkConnectionToWebProcess::deleteCookie):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::ensurePrivateBrowsingSession):
(WebKit::NetworkProcess::destroyPrivateBrowsingSession):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/RemoteNetworkingContext.h:
  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):

  • NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:

(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):

  • Shared/Network/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):

  • Shared/Network/NetworkResourceLoadParameters.h:
  • Shared/SessionTracker.cpp:

(WebKit::staticSessionMap):
(WebKit::storageSessionToID):
(WebKit::SessionTracker::sessionMap):
(WebKit::SessionTracker::session):
(WebKit::SessionTracker::sessionID):
(WebKit::SessionTracker::setSession):
(WebKit::SessionTracker::destroySession):

  • Shared/SessionTracker.h: Move code to SessionID class.
  • Shared/WebCoreArgumentCoders.cpp: Add encode and decode for SessionID.

(IPC::ArgumentCoder<SessionID>::encode):
(IPC::ArgumentCoder<SessionID>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/mac/CookieStorageShim.mm:

(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):

  • UIProcess/APISession.cpp:

(API::generateID):
(API::Session::defaultSession):
(API::Session::legacyPrivateSession):
(API::Session::Session):
(API::Session::isEphemeral):
(API::Session::getID):

  • UIProcess/APISession.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebContext::createNewWebProcess):

  • UIProcess/WebContext.h:
  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::sessionID):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setPrivateBrowsingEnabled):

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::scheduleLoad):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::loadResourceSynchronously):

  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:

(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::storageSession):

  • WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:

(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::storageSession):

  • WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
  • WebProcess/WebPage/WebPage.cpp: Move sessionID to Page to allow WebCore to access it.

(WebKit::WebPage::WebPage):
(WebKit::WebPage::sessionID):
(WebKit::WebPage::isUsingEphemeralSession):
(WebKit::WebPage::setSessionID):
(WebKit::WebPage::updatePreferences):

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

(WebKit::WebProcess::ensurePrivateBrowsingSession):
(WebKit::WebProcess::destroyPrivateBrowsingSession):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
10:59 AM Changeset in webkit [164725] by andersca@apple.com
  • 3 edits
    1 delete in trunk/Source/WebKit2

Get rid of WKViewIOS.mm
https://bugs.webkit.org/show_bug.cgi?id=129378

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKView.h:
  • UIProcess/API/ios/WKViewIOS.mm: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
10:48 AM Changeset in webkit [164724] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Fix builds that don't define IMAGE_CONTROLS.

  • page/ContextMenuContext.cpp:

(WebCore::ContextMenuContext::ContextMenuContext):

10:36 AM Changeset in webkit [164723] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix for OS X after r164720.

  • page/ContextMenuContext.cpp:
10:35 AM Changeset in webkit [164722] by mrobinson@webkit.org
  • 2 edits in trunk/Tools

ENABLE_PROMISES is improperly specified as ENABLE_PROMISE in Features.pm
https://bugs.webkit.org/show_bug.cgi?id=129377

Reviewed by Csaba Osztrogonác.

  • Scripts/webkitperl/FeatureList.pm: Properly specify the promises feature as ENABLE_PROMISES.
10:15 AM Changeset in webkit [164721] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Remove some erroneously captured blocks
https://bugs.webkit.org/show_bug.cgi?id=129362

Reviewed by Sam Weinig.

Remove unused captured Objective-C block variables (capturing these doesn't work anyway).

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

10:02 AM Changeset in webkit [164720] by beidson@apple.com
  • 17 edits
    4 adds in trunk/Source

Pipe experimental image controls menu up to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=129339

Reviewed by Simon Fraser.

Source/WebCore:

Handle events for the image control, starting down the context menu code path if appropriate:

  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElementMac::defaultEventHandler):

  • html/shadow/mac/ImageControlsRootElementMac.h:

Add a class to hold a HitTestResult and addition info about the current ContextMenu invocation:

  • page/ContextMenuContext.cpp: Added.

(WebCore::ContextMenuContext::ContextMenuContext):

  • page/ContextMenuContext.h: Added.

(WebCore::ContextMenuContext::hitTestResult):
(WebCore::ContextMenuContext::isImageControl):

Update ContextMenuController to work with ContextMenuContext instead of HitTestResult directly:

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::showContextMenu):
(WebCore::ContextMenuController::createContextMenu):
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::addInspectElementItem):
(WebCore::ContextMenuController::checkOrEnableIfNeeded):
(WebCore::ContextMenuController::showImageControlsMenu):

  • page/ContextMenuController.h:

(WebCore::ContextMenuController::contextMenu):
(WebCore::ContextMenuController::setContextMenuContext):
(WebCore::ContextMenuController::context):
(WebCore::ContextMenuController::hitTestResult):

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

Add a WebKit object to represent the data from a ContextMenuContext object that can be shared via IPC:

  • Shared/ContextMenuContextData.cpp: Added.

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):

  • Shared/ContextMenuContextData.h: Added.

(WebKit::ContextMenuContextData::webHitTestResultData):
(WebKit::ContextMenuContextData::isImageControl):

Update the rest of WK2 to use this object instead of WebHitTestResult::Data directly:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::internalShowContextMenu): Also make an ENABLE(IMAGE_CONTROLS) change here.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebContextMenu.cpp:

(WebKit::WebContextMenu::show):

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebKit2.xcodeproj/project.pbxproj:
10:00 AM Changeset in webkit [164719] by svillar@igalia.com
  • 5 edits in trunk/LayoutTests

[CSS Grid Layout] Check default getComputedStyle() return values for grid properties
https://bugs.webkit.org/show_bug.cgi?id=129092

Reviewed by Darin Adler.

Added checks for several CSS Grid Layout properties. According to
the specs, the ones we have implemented so far should be all of
them "auto" but grid-template-{rows|columns}, grid-auto-flow and
grid-template-areas that should be "none" by default.

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css/getComputedStyle/resources/property-names.js:
  • svg/css/getComputedStyle-basic-expected.txt:
9:54 AM Changeset in webkit [164718] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r162947): Document::topDocument() returns an incorrect reference for cached Documents
https://bugs.webkit.org/show_bug.cgi?id=128175

Reviewed by Antti Koivisto.

  • dom/Document.cpp:

(WebCore::Document::topDocument): Fall back to pre-r162947 way of determining the top document
when the Document is in page cache or is in the middle of having its render tree destroyed.
In the first case, the determined top document is actually the document currently loaded in the
Frame to which the cached document is still connected, which is obviously not desired. In the
second case the top document is similarly incorrectly deduced, leading to non-deletion of the
proper top document's AXObjectCache. Because of this AccessibilityRenderObjects are not detached
which results in assertions in RenderObject destructor where the objects are found to be still
flagged as in use by the AX cache.

8:42 AM Changeset in webkit [164717] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ASSERTION FAILED: m_heap->vm()->currentThreadIsHoldingAPILock() in inspector-protocol/*.
<https://webkit.org/b/129364>

Reviewed by Alexey Proskuryakov.

InjectedScriptModule::ensureInjected() needs an APIEntryShim.

  • inspector/InjectedScriptModule.cpp:

(Inspector::InjectedScriptModule::ensureInjected):

  • Added the needed but missing APIEntryShim.
7:12 AM WebKitGTK/2.4.x edited by desrt@desrt.ca
add missing libgen.h bug to 'changes on track' (diff)
6:01 AM Changeset in webkit [164716] by mihnea@adobe.com
  • 2 edits in trunk/Source/WebCore

[CSSRegions] Remove unused method RenderFlowThread::updateLayerToRegionMappings()
https://bugs.webkit.org/show_bug.cgi?id=129368

Reviewed by Andrei Bucur.

Remove unused code, no new tests.

  • rendering/RenderFlowThread.h:
5:51 AM Changeset in webkit [164715] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

WebKitFindOptions shouldn't expose WEBKIT_FIND_OPTIONS_SHOW_{OVERLAY,FIND_INDICATOR,HIGHLIGHT}
https://bugs.webkit.org/show_bug.cgi?id=129263

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2014-02-26
Reviewed by Sergio Villar Senin.

Avoided the need of WEBKIT_FIND_OPTIONS_SHOW_* fields by changing the semantics
of the findOptions field in WebKitFindOptions.

  • UIProcess/API/gtk/WebKitFindController.cpp: Now

_WebKitFindControllerPrivate.findOptions is interpreted as WebKit::FindOptions
instead of WebKitFindOptions like before. Now the conversion has to be done in
both ways.
(toWebKitFindOptions): Added conversion function from WebKit::FindOptions to
WebKitFindOptions.
(webkit_find_controller_get_options):
(webKitFindControllerPerform):
(webkit_find_controller_search):
(webkit_find_controller_search_next):
(webkit_find_controller_search_previous):
(webkit_find_controller_count_matches):

  • UIProcess/API/gtk/WebKitFindController.h: Removed values that shouldn't be

exposed.

5:40 AM Changeset in webkit [164714] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Inspector server should be enabled only when the web sockets is enabled too.
https://bugs.webkit.org/show_bug.cgi?id=129304

Patch by Gergo Balogh <gbalogh.u-szeged@partner.samsung.com> on 2014-02-26
Reviewed by Csaba Osztrogonác.

  • config.h:
3:32 AM Changeset in webkit [164713] by Manuel Rego Casasnovas
  • 3 edits in trunk/Tools

[GTK] Re-enable gtk-doc in EWS
https://bugs.webkit.org/show_bug.cgi?id=128369

Reviewed by Carlos Garcia Campos.

Enable again gtk-doc generation in EWS once bug #128417 has been fixed.

  • Scripts/webkitpy/common/config/ports.py:

(GtkPort.build_webkit_command): Add --disable-gtk-doc arg.
(GtkWK2Port.build_webkit_command): Ditto.

  • Scripts/webkitpy/common/config/ports_unittest.py:

(DeprecatedPortTest.test_gtk_port): Ditto.
(DeprecatedPortTest.test_gtk_wk2_port): Ditto.

3:24 AM Changeset in webkit [164712] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebKit2

Merge r164583 - Remove unused error.h header.
https://bugs.webkit.org/show_bug.cgi?id=126774

Patch by Koop Mast <kwm@FreeBSD.org> on 2014-02-24
Reviewed by Anders Carlsson.

This header doesn't exists on FreeBSD. According to
https://www.gnu.org/software/gnulib/manual/html_node/error_002eh.html
the function that this header implements are not present in the file.
So there isn't any need for this header.

  • NetworkProcess/unix/NetworkProcessMainUnix.cpp:
3:19 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
3:16 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
1:41 AM Changeset in webkit [164711] by calvaris@igalia.com
  • 5 edits in trunk

[GTK] Regression when showing the captions menu
https://bugs.webkit.org/show_bug.cgi?id=129106

Reviewed by Martin Robinson.

Source/WebCore:

In some cases, when clicking the captions button the menu was not
shown.

Updated test: media/video-controls-captions-trackmenu.html

  • Modules/mediacontrols/mediaControlsGtk.js:

(ControllerGtk.prototype.buildCaptionMenu):
(ControllerGtk.prototype.showCaptionMenu): Specify sizes in
pixels.

LayoutTests:

Checked in an existing test that the menu is shown then the
captions button is clicked.

  • media/trackmenu-test.js:

(startTrackMenuTest): Deactivated animations

  • media/video-controls-captions-trackmenu.html: Added check for

the regression we are testing.

1:02 AM Changeset in webkit [164710] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix GTK+ build after r164702.

  • UIProcess/DrawingAreaProxy.cpp:
12:42 AM Changeset in webkit [164709] by bshafiei@apple.com
  • 5 edits in branches/safari-537.75-branch/Source

Versioning.

12:37 AM Changeset in webkit [164708] by bshafiei@apple.com
  • 1 copy in tags/Safari-537.75.2

New tag.

12:26 AM Changeset in webkit [164707] by rniwa@webkit.org
  • 7 edits in trunk/Source/WebCore

Avoid unnecessary HTML Collection invalidations for id and name attribute changes
https://bugs.webkit.org/show_bug.cgi?id=129361

Reviewed by Benjamin Poulain.

Before this patch, setting id and name attributes resulted in traversing all the ancestors to invalidate
HTML collections on those nodes whenever we had more than one HTMLCollection alive.

Avoid the traversal when HTMLCollections don't have any valid id and name map caches by making each
HTMLCollection explicitly call collectionCachedIdNameMap and collectionWillClearIdNameMap when it caches
or clears the id and name map.

Inspired by https://chromium.googlesource.com/chromium/blink/+/5b06b91b79098f7d42e480f85be32198315d2440

  • dom/Document.cpp:

(WebCore::Document::registerCollection): Takes a boolean to indicate whether collection has a valid cache
for the id and name map.
(WebCore::Document::unregisterCollection): Ditto.
(WebCore::Document::collectionCachedIdNameMap): Added.
(WebCore::Document::collectionWillClearIdNameMap): Added.

  • dom/Document.h:
  • dom/NodeRareData.h:

(WebCore::NodeListsNodeData::adoptDocument): Call invalidateCache on HTML collections after, not before,
calling unregisterCollection and registerCollection since collections' owner nodes have already been
moved to the new document here and invalidateCache uses owner node's document to call
collectionWillClearIdNameMap. So calling invalidateCache before calling unregister/registerCollection
would result in collectionWillClearIdNameMap getting called on a wrong document.

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::~HTMLCollection):
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::invalidateIdNameCacheMaps): Added the code to uncount itself from the number
of live node lists and HTML collections that need to be invalidated upon id and name attribute changes.
(WebCore::HTMLCollection::updateNameCache):

  • html/HTMLCollection.h:

(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::hasIdNameCache): Renamed from hasNameCache.
(WebCore::HTMLCollection::setHasIdNameCache): Renamed from setHasIdNameCache.

  • html/HTMLFormControlsCollection.cpp:

(WebCore::HTMLFormControlsCollection::updateNameCache):

12:23 AM Changeset in webkit [164706] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WTF

Merge r164220 - Enable DFG_JIT on FreeBSD
https://bugs.webkit.org/show_bug.cgi?id=128898

Patch by Ryan Lortie <desrt@desrt.ca> on 2014-02-17
Reviewed by Csaba Osztrogonác.

  • wtf/Platform.h:
12:12 AM Changeset in webkit [164705] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r163534 - Use system default compiler instead of gcc, as final fall through.
https://bugs.webkit.org/show_bug.cgi?id=126773

Patch by Koop Mast <kwm@FreeBSD.org> on 2014-02-06
Reviewed by Alexey Proskuryakov.

  • dom/make_names.pl:
12:12 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
12:11 AM Changeset in webkit [164704] by commit-queue@webkit.org
  • 6 edits in trunk

[GTK] generate-gtkdoc can fail with WebKit1 or WebKit2 only builds
https://bugs.webkit.org/show_bug.cgi?id=129319

Patch by Martin Robinson <mrobinson@igalia.com> on 2014-02-26
Reviewed by Carlos Garcia Campos.

Source/WebKit/gtk:

  • GNUmakefile.am: Do not generate the documentation configuration file if the port

is disabled.

Source/WebKit2:

  • GNUmakefile.am: Do not generate the documentation configuration file if the port

is disabled.

Tools:

  • gtk/generate-gtkdoc:

(get_generator_for_config): Properly handle the situation where the pkgconfig file is missing.

12:06 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
Note: See TracTimeline for information about the timeline view.