Timeline



Jul 11, 2014:

10:08 PM Changeset in webkit [171020] by benjamin@webkit.org
  • 4 edits in trunk/Source/WebCore

Partition the CSS rules based on the most specific filter of the rightmost fragment
https://bugs.webkit.org/show_bug.cgi?id=134828

Reviewed by Andreas Kling.

Previously, RuleSet was partitioning each rule based on the rightmost filter.
While fast, this had the side effect of putting many selectors with ID match in the class
bucket (because the selectors are generally written starting with the ID).

This patch replace the code of findBestRuleSetAndAdd() by a simple loop going over all
the simple selectors in the rightmost fragment to find the best bucket.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ruleMatches):

  • css/RuleSet.cpp:

(WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
I unified ruleData.hasRightmostSelectorMatchingHTMLBasedOnRuleHash() and hasMultipartSelector().

(WebCore::RuleData::RuleData):
(WebCore::rulesCountForName):
(WebCore::RuleSet::addRule):
I removed the recursive part of findBestRuleSetAndAdd() (which was wrong anyway). The function
was useless so I just moved the algorithm to addRule() directly.

We first loop over all the CSSSelectors related by SubSelector, this correspond to the rightmost fragment.
If a filter with high specificity is found, we add the rule immediately and end there.
If a filter that is not very specific is found, we keep a pointer to the selector to use it later.

(WebCore::RuleSet::findBestRuleSetAndAdd): Deleted.

  • css/RuleSet.h:

(WebCore::RuleData::hasMultipartSelector): Deleted.

8:54 PM Changeset in webkit [171019] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed build fix after r170937.

  • WebCore.vcxproj/WebCoreGeneratedWinCairo.make:

Update and apply changes applied to WebCoreGenerated.make in r170937.

6:49 PM Changeset in webkit [171018] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Crash when using a stale InspectableNode Node
https://bugs.webkit.org/show_bug.cgi?id=134849

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-11
Reviewed by Timothy Hatcher.

  • inspector/PageConsoleAgent.cpp:
5:53 PM Changeset in webkit [171017] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[MSE] Separate MediaSource logging into its own log channel
https://bugs.webkit.org/show_bug.cgi?id=134809

Reviewed by Eric Carlson.

Separate out MediaSource logging (which can be quite verbose) into its own log channel,
distinct from the Media log channel. Add some per-sample logging and further sequester that
logging into its own MediaSourceSamples log channel.

Add the MediaSource and MediaSourceSamples channels:

  • platform/Logging.h:

Move LOG(Media) -> LOG(MediaSource):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::~MediaSource):
(WebCore::MediaSource::setReadyState):
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::removeSourceBuffer):
(WebCore::MediaSource::isTypeSupported):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
(WebCore::SourceBuffer::provideMediaData):
(WebCore::SourceBuffer::monitorBufferingRate):
(WebCore::SourceBuffer::textTrackAddCues):
(WebCore::SourceBuffer::hasFutureTime):

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

(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferPrivateAVFObjC::didFailToParseStreamDataWithError):
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::append):
(WebCore::SourceBufferPrivateAVFObjC::layerDidReceiveError):
(WebCore::SourceBufferPrivateAVFObjC::rendererDidReceiveError):
(WebCore::SourceBufferPrivateAVFObjC::flushAndEnqueueNonDisplayingSamples):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):

4:54 PM Changeset in webkit [171016] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Phone numbers that span two lines are not detected.
<rdar://problem/17601146> and https://bugs.webkit.org/show_bug.cgi?id=134808

Reviewed by Tim Horton.

  • editing/Editor.cpp:

(WebCore::Editor::scanSelectionForTelephoneNumbers): After scanning a range from the TextIterator,

create an "edge range" window around the end of the TextIterator range, and scan it.
Also make sure to not accumulate duplicate ranges that might have showed up in both the
TextIterator range and the edge window range.

4:24 PM Changeset in webkit [171015] by enrica@apple.com
  • 8 edits in trunk/Source

Implement textStylingAtPosition in WK2.
https://bugs.webkit.org/show_bug.cgi?id=134843
<rdar://problem/17614981>

Source/WebCore:

Reviewed by Benjamin Poulain.

Adding some exports and making styleForSelectionStart public.

  • WebCore.exp.in:
  • editing/Editor.h:

Source/WebKit2:

Reviewed by Benjamin Poulain.

Adding information about typing attributes to EditorState so
that we can implement textStylingAtPosition.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode):
(WebKit::EditorState::decode):

  • Shared/EditorState.h:

(WebKit::EditorState::EditorState):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textStylingAtPosition:inDirection:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView toggleBoldface:]):
(-[WKContentView toggleItalics:]):
(-[WKContentView toggleUnderline:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState):

3:36 PM Changeset in webkit [171014] by Alan Bujtas
  • 9 edits
    2 adds in trunk

REGRESSION (r168868): eBay 'see all' links fail due to different JS bindings conversion behavior.
https://bugs.webkit.org/show_bug.cgi?id=134841
<rdar://problem/17577563>

Reviewed by Simon Fraser.

Revert back to type int for Element.scroll* APIs in order to preserve exception handling
behavior.

Source/WebCore:
Test: cssom/non-subpixel-scroll-top-left-values.html

  • dom/Element.cpp:

(WebCore::Element::scrollLeft):
(WebCore::Element::scrollTop):
(WebCore::Element::setScrollLeft):
(WebCore::Element::setScrollTop):
(WebCore::Element::scrollWidth):
(WebCore::Element::scrollHeight):

  • dom/Element.h:
  • dom/Element.idl:
  • html/HTMLBodyElement.cpp:

(WebCore::adjustForZoom):
(WebCore::HTMLBodyElement::scrollLeft):
(WebCore::HTMLBodyElement::setScrollLeft):
(WebCore::HTMLBodyElement::scrollTop):
(WebCore::HTMLBodyElement::setScrollTop):
(WebCore::HTMLBodyElement::scrollHeight):
(WebCore::HTMLBodyElement::scrollWidth):

  • html/HTMLBodyElement.h:

LayoutTests:

  • cssom/non-subpixel-scroll-top-left-values-expected.txt: Added.
  • cssom/non-subpixel-scroll-top-left-values.html: Added.
2:54 PM Changeset in webkit [171013] by Joseph Pecoraro
  • 9 edits in trunk/Source

Web Inspector: Debugger Pause button does not work
https://bugs.webkit.org/show_bug.cgi?id=134785

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • DerivedSources.make:

Minification strips the sourceURL command. Add it back with minification.

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources.make:
  • inspector/CommandLineAPIModuleSource.js:

Minification strips the sourceURL command. Add it back with minification.

Source/WebInspectorUI:
Previously we were automatically resuming if we had no recognized
call frames in the call stack we get when paused. However, we
were accidentally skipping over anonymous scripts instead of
just Web Inspector originated call frames.

Now that we allow anonymous scripts we can step into anonymous
scripts (e.g. evals, new Function(...)) as expected.

Also, remove the condition of automatically resuming if the
call stack was empty. The UI handles this with "No Call Frames".

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.debuggerDidPause):

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

Use the bare minimum tile coverage rect when under memory pressure.
<https://webkit.org/b/134837>

When the browser is under critical memory pressure, don't generate any
more tiles than are needed to cover the exposed viewport rect.

Reviewed by Pratik Solanki.

  • page/FrameView.cpp:

(WebCore::FrameView::computeCoverageRect):

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

Web Inspector: CSS Autocompletion: "background" only has colors, should support others
https://bugs.webkit.org/show_bug.cgi?id=134839

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-11
Reviewed by Timothy Hatcher.

Update and consolidate the background related CSS properties
and include sub-property completions in the shorthand property.

Also take the opportunity to add or update other properties
(-webkit-alt, -webkit-text-decoration-skip, -webkit-aspect-ratio)
and remove unnecessary newlines / commas in the list.

  • UserInterface/Models/CSSKeywordCompletions.js:
1:26 PM Changeset in webkit [171010] by jfernandez@igalia.com
  • 13 edits
    2 adds in trunk

[CSS Grid Layout] Implement justify-self css property
https://bugs.webkit.org/show_bug.cgi?id=134419

Reviewed by Dean Jackson.

This change adds the justify-self property from CSS 3 Box Alignment
and implements the parsing.

From Blink r164685 by <jchaffraix@chromium.org>

Source/WebCore:
Test: fast/css/parse-justify-self.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::isItemPositionKeyword):
(WebCore::CSSParser::parseJustifySelf):

  • css/CSSParser.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EJustifySelf):
(WebCore::CSSPrimitiveValue::operator EJustifySelfOverflowAlignment):

  • css/CSSPropertyNames.in:
  • css/CSSValueKeywords.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

  • rendering/style/RenderStyle.h:
  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

  • fast/css/parse-justify-self-expected.txt: Added.
  • fast/css/parse-justify-self.html: Added.
12:47 PM Changeset in webkit [171009] by Lucas Forschler
  • 6 edits in tags/Safari-538.46

Rollout r170675. <rdar://problem/17643689>.

12:00 PM Changeset in webkit [171008] by betravis@adobe.com
  • 2 edits in trunk/Source/WebCore

[Feature Queries] Feature Query CSS Grammar Productions Should Return a Value
https://bugs.webkit.org/show_bug.cgi?id=134810

Reviewed by Antti Koivisto.

The parsing return values are used to determine if a feature query is valid. Two
grammar productions have been updated to correctly return a value.

Tests exist for this feature but will not be run until the feature is turned on.
See https://bugs.webkit.org/show_bug.cgi?id=134404.

  • css/CSSGrammar.y.in: Adding return values for two valid feature query productions.
11:56 AM Changeset in webkit [171007] by Lucas Forschler
  • 2 edits in tags/Safari-538.46/Source/WebKit2

Merged r171003. <rdar://problem/17642184>

11:54 AM Changeset in webkit [171006] by Lucas Forschler
  • 10 edits in tags/Safari-538.46

Merged r171001. <rdar://problem/17435776>

11:53 AM Changeset in webkit [171005] by commit-queue@webkit.org
  • 7 edits in trunk/Source

[Win] Enable DFG JIT.
https://bugs.webkit.org/show_bug.cgi?id=123615

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-11
Reviewed by Mark Lam.

Source/JavaScriptCore:
When the return type of a JIT generated function call is larger than 64-bit (e.g. SlowPathReturnType),
the normal call() implementation cannot be used on 64-bit Windows, because the 64-bit Windows ABI is different in this case.
Also, when generating calls with double arguments, we need to make sure the arguments are put in the correct registers,
since the register allocation differs on 64-bit Windows.

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::callWithSlowPathReturnType): Added method to handle function calls where the return value type size is larger than 64-bit.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState): Move arguments to correct registers when there are floating point arguments.
(JSC::CCallHelpers::setupArgumentsWithExecStateForCallWithSlowPathReturnType): Added method.

  • jit/JIT.h:

(JSC::JIT::appendCallWithSlowPathReturnType): Added method.

  • jit/JITInlines.h:

(JSC::JIT::appendCallWithExceptionCheckAndSlowPathReturnType): Added method.
(JSC::JIT::callOperation): Call new method.

Source/WTF:

  • wtf/Platform.h:
10:32 AM Changeset in webkit [171004] by Brent Fulgham
  • 11 edits in trunk

Use a separate backdrop element to allow cues to have highlight and background color
https://bugs.webkit.org/show_bug.cgi?id=134821
<rdar://problem/15999721>

Reviewed by Eric Carlson.

Source/WebCore:
Add a new <div> element wrapping the existing cue <span>. This allows
us to have a highlight on the cue (in the <span> background), as well
as an overall background color.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-text-track-display-backdrop): New markup for
the backdrop element of the caption.

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::cueBackdropShadowPseudoId): Added to
allow user customization of the cue backdrop.
(WebCore::VTTCue::initialize): Rename the old "m_cueBackgroundBox" to
"m_cueHighlightBox" and add a new "m_cueBackdropBox" member.
(WebCore::VTTCue::updateDisplayTree): Update for m_cueHighlightBox.
(WebCore::VTTCue::getDisplayTree): Make m_cueHighlightBox a child
of the new m_cueBackdropBox element, and add m_cueBackdropBox to
the display tree.

  • html/track/VTTCue.h:

(WebCore::VTTCue::element):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
Fix for missing caption style updates. Even if we are already
listening for caption changes, we still want to update the new
instance's style sheet to match.
(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride):

  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::initializeLayoutParameters): Take the new
<div> into consideration when looking for the Cue text element.

LayoutTests:
Updated tests for new formatting logic.

  • platform/mac/media/track/track-cue-rendering-horizontal-expected.png:
  • platform/mac/media/track/track-cue-rendering-horizontal-expected.txt:
10:15 AM Changeset in webkit [171003] by oliver@apple.com
  • 2 edits in trunk/Source/WebKit2

Tighten WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=134834

Reviewed by Sam Weinig.

Define a much tighter sandbox profile for the WebContent process

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:29 AM Changeset in webkit [171002] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r170163?): Web content shifts revealing space equivalent to the find bar when clicking a link while a phrase is targeted via Cmd+F
https://bugs.webkit.org/show_bug.cgi?id=134833
<rdar://problem/17580021>

Reviewed by Zalan Bujtas.

Some versions of OS X Safari can't handle the new unfreeze timing. Revert back to DidFirstLayout on Mac.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidLayout):

8:27 AM Changeset in webkit [171001] by Alan Bujtas
  • 10 edits in trunk

Subpixel layout: return integral results for offset*, client*, scroll* by default.
https://bugs.webkit.org/show_bug.cgi?id=134651

Reviewed by Simon Fraser.

Revert to returning integral values for Element.offset* client* scroll* by default.
Fractional values break number of sites(tight design) and JS frameworks(fail to handle fractional values).

Since snapped dimension depends on both the original point and the width/height of the box,
we need to call RenderBoxModelObject::pixelSnapped*() helpers, instead of round().

Covered by existing tests

Source/WebCore:

  • dom/Element.cpp:

(WebCore::subpixelMetricsEnabled):
(WebCore::convertToNonSubpixelValueIfNeeded):
(WebCore::Element::offsetLeft):
(WebCore::Element::offsetTop):
(WebCore::Element::offsetWidth):
(WebCore::Element::offsetHeight):
(WebCore::Element::clientLeft):
(WebCore::Element::clientTop):
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):

  • page/Settings.in:

Source/WebKit/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferencesRefPrivate.h:

LayoutTests:

  • cssom/subpixel-offsetleft-top-width-height-values-expected.txt:
7:19 AM Changeset in webkit [171000] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Subpixel rendering: icloud.com password arrow has clipped circle at some window sizes.
https://bugs.webkit.org/show_bug.cgi?id=134824
<rdar://problem/17612729>

Reviewed by Simon Fraser.

Transparent layer clipping needs device pixel offset adjusting.

Source/WebCore:
Test: fast/layers/wrong-clipping-semi-transparent-compositing-layer-on-subpixel-position.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):

  • rendering/RenderLayer.h:

LayoutTests:

  • fast/layers/wrong-clipping-semi-transparent-compositing-layer-on-subpixel-position-expected.html: Added.
  • fast/layers/wrong-clipping-semi-transparent-compositing-layer-on-subpixel-position.html: Added.
5:26 AM Changeset in webkit [170999] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

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

Causing odd crashes in debug builds (Requested by zdobersek on
#webkit).

Reverted changeset:

"[WTF] Add the move constructor, move assignment operator for
HashTable"
https://bugs.webkit.org/show_bug.cgi?id=130772
http://trac.webkit.org/changeset/170995

5:15 AM Changeset in webkit [170998] by Carlos Garcia Campos
  • 1 edit
    1 delete in trunk/Source/WebCore

Unreviewed. Remove unused file.

  • html/shadow/MediaControlsGtk.h: Removed.
5:12 AM Changeset in webkit [170997] by Carlos Garcia Campos
  • 2 edits in trunk

[GTK] Enable VIDEO_TRACK by default
https://bugs.webkit.org/show_bug.cgi?id=134801

Reviewed by Philippe Normand.

  • Source/cmake/OptionsGTK.cmake:
3:42 AM Changeset in webkit [170996] by Manuel Rego Casasnovas
  • 33 edits in trunk

[CSS Grid Layout] Update grid-auto-flow to the new syntax
https://bugs.webkit.org/show_bug.cgi?id=134057

Reviewed by Sergio Villar Senin.

Source/WebCore:
In last versions of the spec grid-auto-flow syntax has changed. New
syntax is:
[ row | column ] && dense? | stack && [ row | column ]?

Implemented parsing for new syntax and added/modified test cases in
current layout tests.

For the moment, the implementation keeps working in the same way, but
using "stack" value for grid-auto-flow property instead of "none". This
should be fixed in a follow-up patch once "stack" is properly
implemented.

Also "dense" needs to be reviewed. Right now auto-placement algorithm is
always "dense" and never "sparse".

No new tests, update current tests to add new cases.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue): Adapt to new syntax.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue): Removed grid-auto-flow as it
is not a keyword anymore.
(WebCore::isKeywordPropertyID): Ditto.
(WebCore::CSSParser::parseValue): Add specific method for parsing
grid-auto-flow.
(WebCore::CSSParser::parseGridShorthand): Adapt parsing for
grid-auto-flow property inside the shorthand.
(WebCore::isValidGridAutoFlowId): Helper method to check if the CSSValue
id is a valid keyword for grid-auto-flow property.
(WebCore::CSSParser::parseGridAutoFlow): Implement new parsing for
grid-auto-flow.

  • css/CSSParser.h: Method header for grid-auto-flow parsing.
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator GridAutoFlow): Deleted.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted.

  • css/CSSValueKeywords.in: Add new keywords required by grid-auto-flow:

"dense" and "stack".

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Remove
default handler as grid-auto-flow is not a keyword now.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty): Implement particular handler
for new grid-auto-flow syntax.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeItemsOnGrid): Keep old "none" behavior as
"stack" behavior for the moment.
(WebCore::RenderGrid::autoPlacementMajorAxisDirection): Use the new
helper methods in RenderStyle.
(WebCore::RenderGrid::autoPlacementMinorAxisDirection): Ditto.

  • rendering/style/GridResolvedPosition.cpp:

(WebCore::GridResolvedPosition::resolveGridPositionsFromStyle): Again
keep old "none" behavior for "stack".

  • rendering/style/RenderStyle.h: Add new helper methods to know the

direction and algorithm of grid-auto-flow property.

  • rendering/style/RenderStyleConstants.h: Redefine GridAutoFlow enum

using flags for algorithm and direction.

  • rendering/style/StyleGridData.h: Change m_gridAutoFlow type to

unsigned.

LayoutTests:
Adapted current tests to the new syntax. Keeping old "none" behavior
using "stack".

Add new use cases to cover the new syntax to grid-auto-flow-get-set.html
and grid-shorthand-get-set.html.

  • fast/css-grid-layout/grid-auto-flow-get-set-expected.txt:
  • fast/css-grid-layout/grid-auto-flow-get-set.html:
  • fast/css-grid-layout/grid-auto-flow-resolution.html:
  • fast/css-grid-layout/grid-auto-flow-update-expected.txt:
  • fast/css-grid-layout/grid-auto-flow-update.html:
  • fast/css-grid-layout/grid-item-named-grid-area-resolution.html:
  • fast/css-grid-layout/grid-item-z-index-change-repaint.html:
  • fast/css-grid-layout/grid-item-z-index-stacking-context.html:
  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
  • fast/css-grid-layout/resources/grid.css:

(.gridAutoFlowStack):
(.gridAutoFlowNone): Deleted.

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • ietestcenter/css3/grid/grid-column-001.htm:
  • ietestcenter/css3/grid/grid-column-002.htm:
  • ietestcenter/css3/grid/grid-column-003.htm:
  • svg/css/getComputedStyle-basic-expected.txt:
1:16 AM Changeset in webkit [170995] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WTF

[WTF] Add the move constructor, move assignment operator for HashTable
https://bugs.webkit.org/show_bug.cgi?id=130772

Reviewed by Darin Adler.

HashTable has both copy constructor and copy assignment operator, meaning that the move constructor
and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary
copies when moves can be performed.

  • wtf/HashTable.h:

(WTF::KeyTraits>::HashTable):

Jul 10, 2014:

11:17 PM Changeset in webkit [170994] by Lucas Forschler
  • 10 edits in tags/Safari-538.46/Source

Merge patch from <rdar://problem/17631537>.

11:01 PM Changeset in webkit [170993] by Lucas Forschler
  • 5 edits in trunk/Source

Versioning.

10:57 PM Changeset in webkit [170992] by Lucas Forschler
  • 1 copy in tags/Safari-538.46

New Tag.

10:06 PM Changeset in webkit [170991] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger Continue button is incorrectly sized
https://bugs.webkit.org/show_bug.cgi?id=134786

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-10
Reviewed by Timothy Hatcher.

Before this patch everything in the DebuggerDashboardView was flexing.
Normally, if the contents were not too wide, this would just behave
as expected and be centered. If the content was too wide, then each
element would flex uniformly and overlap uniformly. That was not expected.

This patch changes makes everything but the link have a non-flexible
size. If the link (at the end) flexs it will have a nice ellipsis
text truncation, and the rest of the content will be left justified.

This also fixes a few other minor issues seen in the view.

  • UserInterface/Views/DebuggerDashboardView.css:

(.dashboard.debugger .navigation-bar):
Reduce the complexity, give the nav bar (the resume button) some simple padding.

(.dashboard.debugger > div):
Make everything non-flex by default.

(.dashboard.debugger > .location):
The location will have an inner element flex, so make it flex.

(.dashboard.debugger > .location > *):
Make everything in .location non-flex by default.

(.dashboard.debugger > .location .go-to-link):
Make the link flex and truncate cleanly.

(.dashboard.debugger > .location .function-name):
Fix vertical alignment when the toolbar has small icons.

  • UserInterface/Views/DebuggerDashboardView.js:

(WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
Fix class name spelling.

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

Unreviewed EFL build fix after r170970.

  • UIProcess/efl/WebContextEfl.cpp:

(WebKit::WebContext::platformDefaultOpenGLCacheDirectory):

8:50 PM Changeset in webkit [170989] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

REGRESSION(r170970) REGRESSION(r170974): [GTK] Build broken.
https://bugs.webkit.org/show_bug.cgi?id=134825

Unreviewed GTK build fix.

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-07-10

  • Shared/SessionState.h: Put ifdefs for ViewSnapshot on Mac port.
  • Shared/WebBackForwardListItem.h: Idem.
  • UIProcess/gtk/WebContextGtk.cpp:

(WebKit::WebContext::platformDefaultOpenGLCacheDirectory): Implement skeleton.

7:29 PM Changeset in webkit [170988] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] It should be safe to call WKContentViewInteraction's cleanupInteraction multiple times
https://bugs.webkit.org/show_bug.cgi?id=134820

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-10
Reviewed by Andreas Kling.

If a view is destroyed just after a crash, "cleanupInteraction" is called twice: once on crash,
once on dealloc.

The code handling _interactionViewsContainerView is using KVO to monitor transform changes. It is not safe
to remove the observer if we are not already observing on that view.

To solve the problem, this patch makes the cleanup actually remove the view so that setup and cleanup
are completely symmetrical. If cleanup is called twice, the second time would not enter the branch because
the view is already nil.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):

5:49 PM Changeset in webkit [170987] by Simon Fraser
  • 3 edits
    2 adds in trunk/Source/WebKit2

[iOS WK2] Move WKInspectorHighlightView to its own file
https://bugs.webkit.org/show_bug.cgi?id=134819

Reviewed by Joseph Pecoraro.

WKInspectorHighlightView brought a lot of path/quad-related code into WKContentView.mm,
so move it into its own file.

  • UIProcess/WKInspectorHighlightView.h: Added.
  • UIProcess/WKInspectorHighlightView.mm: Added.

(-[WKInspectorHighlightView dealloc]):
(-[WKInspectorHighlightView _removeAllLayers]):
(-[WKInspectorHighlightView _createLayers:]):
(findIntersectionOnLineBetweenPoints):
(quadIntersection):
(layerPathWithHole):
(layerPath):
(-[WKInspectorHighlightView _layoutForNodeHighlight:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):
(-[WKInspectorHighlightView update:]):

  • UIProcess/ios/WKContentView.mm:

(-[WKInspectorHighlightView initWithFrame:]): Deleted.
(-[WKInspectorHighlightView dealloc]): Deleted.
(-[WKInspectorHighlightView _removeAllLayers]): Deleted.
(-[WKInspectorHighlightView _createLayers:]): Deleted.
(findIntersectionOnLineBetweenPoints): Deleted.
(quadIntersection): Deleted.
(layerPathWithHole): Deleted.
(layerPath): Deleted.
(-[WKInspectorHighlightView _layoutForNodeHighlight:]): Deleted.
(-[WKInspectorHighlightView _layoutForRectsHighlight:]): Deleted.
(-[WKInspectorHighlightView update:]): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
5:12 PM Changeset in webkit [170986] by mmaxfield@apple.com
  • 5 edits
    3 adds in trunk

[iOS] Pasting rich content does not perform a two-step paste
https://bugs.webkit.org/show_bug.cgi?id=134795

Reviewed by Benjamin Poulain.

Source/WebCore:
UIKit requires writing something (anything!) to a particular pasteboard
during copy in order to flag the content as rich. When a paste occurs,
UIKit will read this flag and perform a two-step paste.

Test: platform/ios-sim/editing/pasteboard/two-step-paste.html

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::write):

LayoutTests:
Copy and paste some text, and make sure that the two step paste occurred.
The mechanism for detecting this is whether or not styles have changed appropriately.

  • platform/ios-sim/editing/pasteboard/two-step-paste-expected.txt: Added.
  • platform/ios-sim/editing/pasteboard/two-step-paste.html: Added.

Tools:
Two-step paste requires setting InputViewObeysDOMFocus on the UIWebBrowserView.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow):

5:04 PM Changeset in webkit [170985] by aestes@apple.com
  • 1 edit in trunk/Source/WebCore/ChangeLog

Update the ChangeLog per Pratik's review comments

5:02 PM Changeset in webkit [170984] by aestes@apple.com
  • 5 edits in trunk/Source

[iOS] Some QuickLook documents are not displayed as previews
https://bugs.webkit.org/show_bug.cgi?id=134788

Reviewed by Pratik Solanki.

ResourceRequest::isMainResourceRequest() is not reliable (e.g. ResourceRequests reconstituted from an
NSURLRequest have no way to set this bit properly) and should probably be removed. Instead of using
isMainResourceRequest() to check if a QuickLookHandle should be created when the Network Process is in use,
just check if the current ResourceLoader is the same as the DocumentLoader's ResourceLoader.

No new tests. QuickLook is not testable from WebKit.

  • platform/network/ios/QuickLook.mm:

(WebCore::QuickLookHandle::create):

4:57 PM Changeset in webkit [170983] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.45.1/Source/WebKit2

Merged r170979. <rdar://problem/17632687>

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

REGRESSION (r170935): WKWebView is always transparent until the first layer tree commit
https://bugs.webkit.org/show_bug.cgi?id=134818
<rdar://problem/17632468>

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(scrollViewBackgroundColor):
r170935 made it so that we would initialize the scroll view background color to an
invalid color until the first layer tree commit. We should go with white instead.

4:26 PM Changeset in webkit [170981] by enrica@apple.com
  • 12 edits in trunk/Source/WebKit2

Add a mechanism to notify the UIProcess when an editing command is done executing.
https://bugs.webkit.org/show_bug.cgi?id=134807

Reviewed by Tim Horton.

Some editing commands have an effect on some parts of the system that
run inside the UIProcess. A good example are the cursor movement commands
that require an update of the autocorrection/autosuggestion machinery.
This patch adds a way to reliably know when the command has been executed
in the WebProcess. A previous attempt at solving this problem was added in
r170858 and was partially reverted in r170948.
The change also removes the selectionWillChange notification added in r170858.

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

(WebKit::WebPageProxy::editorStateChanged):

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

(WebKit::PageClientImpl::selectionWillChange): Deleted.

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

(-[WKContentView executeEditCommandWithCallback:]):
(-[WKContentView _moveUp:withHistory:]):
(-[WKContentView _moveDown:withHistory:]):
(-[WKContentView _moveLeft:withHistory:]):
(-[WKContentView _moveRight:withHistory:]):
(-[WKContentView _moveToStartOfWord:withHistory:]):
(-[WKContentView _moveToStartOfParagraph:withHistory:]):
(-[WKContentView _moveToStartOfLine:withHistory:]):
(-[WKContentView _moveToStartOfDocument:withHistory:]):
(-[WKContentView _moveToEndOfWord:withHistory:]):
(-[WKContentView _moveToEndOfParagraph:withHistory:]):
(-[WKContentView _moveToEndOfLine:withHistory:]):
(-[WKContentView _moveToEndOfDocument:withHistory:]):
(-[WKContentView _selectionWillChange]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::notifySelectionWillChange): Deleted.

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

(WebKit::WebPage::executeEditCommandWithCallback):

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

[Mac] NSWindow warning: adding an unknown subview opening detached Inspector
https://bugs.webkit.org/show_bug.cgi?id=134813

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-10
Reviewed by Timothy Hatcher.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController window]):
Use a selector that will avoid the warning message.

Source/WebKit2:

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::createInspectorWindow):
Use a selector that will avoid the warning message.

4:17 PM Changeset in webkit [170979] by oliver@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove use of container relative restrictions in the network process sandbox
https://bugs.webkit.org/show_bug.cgi?id=134816

Reviewed by Anders Carlsson.

As i'm tidying up the various sandboxes and that's meaning we
need to reduce some file restrictions in the network process.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
3:26 PM Changeset in webkit [170978] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS WebKit2] Don't uninstall the memory pressure listener after first signal.
<https://webkit.org/b/134814>

The call to uninstall() should not be made on iOS since iOS doesn't use the
hold-off mechanism in MemoryPressureHandler.

Reviewed by Benjamin Poulain.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::respondToMemoryPressure):

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

Unreviewed iOS build fix after r170974. Define id if building a non ObjC file.

  • UIProcess/mac/ViewSnapshotStore.h:
2:28 PM Changeset in webkit [170976] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[MSE] Overlapping appended ranges must cause the decoder to flush and re-enqueue.
https://bugs.webkit.org/show_bug.cgi?id=134805

Reviewed by Eric Carlson.

When appending a range of media data which overlaps with an existing range, SourceBuffer
must cause the decoder to flush and re-enqueue samples. Those samples removed by appending
the overlapping range may have already been enqueued for display, and unless the decode
queue is flushed, corruption or decode errors may occur as the new samples are enqueued for
display.

Add a boolean flag onto TrackBuffer to indicate whether the decoder needs to be flushed and
re-enqueued the next time an append operation completes. Set this flag whenever samples are
removed due to overlapping or an explicit call to removeCodedFrames(). Move the contents of
sourceBufferPrivateSeekToTime() (which previously did flushing and re-enqueueing) into a new
function, reenqueueMediaForTime(), which can be called from sourceBufferPrivateAppendComplete().

Drive-by fix: findSyncSampleAfterDecodeIterator() would return the passed in iterator if that
sample is a sync-sample. Fix this to correctly return the next sync sample.

Drive-by fix: Use a SampleMap, rather than a DecodeOrderSampleMap, to track erased samples
so that the erasedSamples are correctly accounted for in both presentation and decode orders.

  • Modules/mediasource/SampleMap.cpp:

(WebCore::SampleMap::empty): Add convenience method.
(WebCore::DecodeOrderSampleMap::findSyncSampleAfterDecodeIterator): Drive-by fix.

  • Modules/mediasource/SampleMap.h:

(WebCore::SampleMap::decodeOrder): Added const accessor.
(WebCore::SampleMap::presentationOrder): Ditto.
(WebCore::SampleMap::addRange): Added.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::TrackBuffer::TrackBuffer): Add needsReenqueeing flag.
(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime): Move contents into reenqueueMediaForTime().
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Call reenqueMediaForTime() if necessary.
(WebCore::SourceBuffer::removeCodedFrames): Set needsReenqueing.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
(WebCore::SourceBuffer::provideMediaData): Drive-by fix.
(WebCore::SourceBuffer::reenqueueMediaForTime): Moved from sourceBufferPrivateSeekToTime().

  • Modules/mediasource/SourceBuffer.h:
1:48 PM Changeset in webkit [170975] by psolanki@apple.com
  • 2 edits in trunk/Source/WebCore

ASSERT in SharedBuffer::maybeAppendDataArray() on MobileSafari launch
https://bugs.webkit.org/show_bug.cgi?id=134812
<rdar://problem/17628434>

Reviewed by Joseph Pecoraro.

Fix bug in my fix in r170930. Initialize the badly named m_shouldUsePurgeableMemory field to
false. This field indicates when it is okay to use purgeable memory and is set to true once
the resource is finished loading. By setting it to true in the constructor we were creating
purgeable memory while the resource was still being loaded and this triggered the assert.

No new tests. Should be covered by existing tests.

  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::SharedBuffer):

1:33 PM Changeset in webkit [170974] by timothy_horton@apple.com
  • 20 edits in trunk/Source/WebKit2

Store ViewSnapshots directly on the WebBackForwardListItem
https://bugs.webkit.org/show_bug.cgi?id=134667
<rdar://problem/17082639>

Reviewed by Dan Bernstein.

Make ViewSnapshot a refcounted class. Store it directly on the back-forward item
instead of in a side map referenced by UUID. Switch to a very simple LRU eviction model for now.
This fixes a ton of snapshot management bugs; for example, we would start throwing out snapshots
in the page that was actively being interacted with *first* when evicting snapshots, instead of
preferring older snapshots. Additionally, we would not throw away snapshots when back forward items
became unreachable.

There is definitely room for improvement of the eviction mechanism, but this is closer to a time-tested implementation.

  • Shared/SessionState.h:

Keep a ViewSnapshot instead of a UUID on the BackForwardListItemState.

  • Shared/WebBackForwardListItem.h:

Fix some indented namespace contents.

(WebKit::WebBackForwardListItem::snapshot):
(WebKit::WebBackForwardListItem::setSnapshot):
(WebKit::WebBackForwardListItem::setSnapshotUUID): Deleted.
(WebKit::WebBackForwardListItem::snapshotUUID): Deleted.
Switch the snapshot getter/setter to operate on ViewSnapshots instead of UUIDs.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takeViewSnapshot]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView _takeViewSnapshot]):

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::takeViewSnapshot):

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

(WebKit::PageClientImpl::takeViewSnapshot):

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

(WebKit::PageClientImpl::takeViewSnapshot):
Adopt ViewSnapshot::create, return a PassRefPtr, and class-ify ViewSnapshot.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):

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

(WebKit::ViewGestureController::shouldUseSnapshotForSize):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):
Grab the ViewSnapshot directly from the WebBackForwardListItem, and adopt the new functions.

  • UIProcess/ios/WebMemoryPressureHandlerIOS.mm:

(WebKit::WebMemoryPressureHandler::WebMemoryPressureHandler):
Rename discardSnapshots to discardSnapshotImages, because we're really only discarding
the images; the render tree size/background color "snapshot" remains and is useful.

  • UIProcess/mac/ViewSnapshotStore.h:

(WebKit::ViewSnapshot::setRenderTreeSize):
(WebKit::ViewSnapshot::renderTreeSize):
(WebKit::ViewSnapshot::setBackgroundColor):
(WebKit::ViewSnapshot::backgroundColor):
(WebKit::ViewSnapshot::setDeviceScaleFactor):
(WebKit::ViewSnapshot::deviceScaleFactor):
(WebKit::ViewSnapshot::imageSizeInBytes):
(WebKit::ViewSnapshot::surface):
(WebKit::ViewSnapshot::size):
(WebKit::ViewSnapshot::creationTime):
Make ViewSnapshot a refcounted class.
Add create functions which take an image (or slot ID), and relevant sizes.
It is expected that a ViewSnapshot is created with an image, and it is only possible
to remove that image, never to replace it. A new ViewSnapshot is required in that case.
Add setters for things that ViewSnapshotStore sets on the snapshot after the PageClient
retrieves it from the view. Add getters for things that the ViewGestureControllers need.

Remove removeSnapshotImage, getSnapshot, and the snapshot map.

  • UIProcess/mac/ViewSnapshotStore.mm:

(WebKit::ViewSnapshotStore::~ViewSnapshotStore):
(WebKit::ViewSnapshotStore::didAddImageToSnapshot):
(WebKit::ViewSnapshotStore::willRemoveImageFromSnapshot):
Manage m_snapshotCacheSize and m_snapshotsWithImages via didAddImageToSnapshot and willRemoveImageFromSnapshot.
willRemoveImageFromSnapshot will -always- be called before the ViewSnapshot is destroyed.

(WebKit::ViewSnapshotStore::pruneSnapshots):
Switch to a simple LRU eviction model. As previously mentioned, it's possible to do better, but
this is much less broken than the previous implementation.

(WebKit::ViewSnapshotStore::recordSnapshot):
(WebKit::ViewSnapshotStore::discardSnapshotImages):
(WebKit::ViewSnapshot::create):
(WebKit::ViewSnapshot::ViewSnapshot):
(WebKit::ViewSnapshot::~ViewSnapshot):
(WebKit::ViewSnapshot::hasImage):
(WebKit::ViewSnapshot::clearImage):
(WebKit::ViewSnapshot::asLayerContents):
If a surface is Empty when it comes back from being volatile, throw away the surface
and notify the Store to remove it from m_snapshotCacheSize (via clearImage()).

(WebKit::ViewSnapshotStore::removeSnapshotImage): Deleted.
(WebKit::ViewSnapshotStore::getSnapshot): Deleted.
(WebKit::ViewSnapshotStore::discardSnapshots): Deleted.

1:24 PM Changeset in webkit [170973] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS WebKit2] Some memory pressure relief tweaks.
<https://webkit.org/b/134811>

Split memory pressure relief into critical and non-critical sections.
Non-critical relief is for clearing out things that are really not
essential, e.g unused font data, text measurement caches, etc.

On iOS, only flip the "WebKit is under memory pressure" flag when we
are under *critical* memroy pressure, rather than doing it early on
and gimping ourselves because other processes are too big.

Also added logging for when we transition in/out of system pressure.

Reviewed by Geoffrey Garen.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseNoncriticalMemory):
(WebCore::MemoryPressureHandler::releaseCriticalMemory):
(WebCore::MemoryPressureHandler::releaseMemory):

  • platform/MemoryPressureHandler.h:

(WebCore::MemoryPressureHandler::ReliefLogger::loggingEnabled):

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::install):

1:04 PM Changeset in webkit [170972] by Beth Dakin
  • 16 edits in trunk/Source

Need Setting/WKPreference that allows clients to prevent scrollbars from drawing
on a secondary thread
https://bugs.webkit.org/show_bug.cgi?id=134778
-and corresponding-
<rdar://problem/17595333>

Reviewed by Tim Horton.

Source/WebCore:
This is a requirement for some types of performance tests. The patch adds a new
virtual function to ScrollableArea that forces subclasses to indicate the value of
the Setting. This is required because Scrollbar and ScrollableArea can’t get to
Settings on their own.

  • page/FrameView.cpp:

(WebCore::FrameView::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):

  • page/FrameView.h:
  • page/Settings.in:
  • platform/ScrollableArea.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::supportsUpdateOnSecondaryThread):

  • platform/win/PopupMenuWin.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):

  • rendering/RenderLayer.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):

  • rendering/RenderListBox.h:

Source/WebKit2:
This is a requirement for some types of performance tests.

New pref.

  • Shared/WebPreferencesDefinitions.h:

PDFPlugin has to implement this new ScrollableArea virtual function to indicate
the Setting’s value.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):

New pref.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

12:31 PM Changeset in webkit [170971] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Frequent assertion failures when swiping back

Reviewed by Dan Bernstein.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing):
Don't create an unused VoidCallback. It will assert when destroyed without being called.

11:33 AM Changeset in webkit [170970] by oliver@apple.com
  • 7 edits in trunk/Source/WebKit2

Pass sandbox extension for GL cache over to webprocess
https://bugs.webkit.org/show_bug.cgi?id=134806

Reviewed by Anders Carlsson.

Add additional WebProcess parameters to pass an extension
that allows access to the opengl cache directory in the
host application's container.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::openGLCacheDirectory):

  • UIProcess/WebContext.h:
  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::platformDefaultOpenGLCacheDirectory):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

11:24 AM Changeset in webkit [170969] by beidson@apple.com
  • 1 edit in trunk/Source/WebKit2/ChangeLog

Fix my mis-merged ChangeLog from r170966

10:52 AM Changeset in webkit [170968] by commit-queue@webkit.org
  • 4 edits in trunk

Enable same features on all Windows ports.
https://bugs.webkit.org/show_bug.cgi?id=134715

Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-10
Reviewed by Brent Fulgham.

Source/WTF:

  • wtf/Platform.h:

Use REQUEST_ANIMATION_FRAME_TIMER on WinCairo.

WebKitLibraries:

  • win/tools/vsprops/FeatureDefinesCairo.props:

Made identical to FeatureDefines.props.

10:07 AM Changeset in webkit [170967] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

iOS build fix.

  • WebProcess/WebPage/ServicesOverlayController.h:
9:19 AM Changeset in webkit [170966] by beidson@apple.com
  • 6 edits in trunk/Source

Phone number highlights should always be visible if the mouse hovers over.
<rdar://problem/17527476> and https://bugs.webkit.org/show_bug.cgi?id=134784

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.exp.in:

Source/WebKit2:
This is a fairly extensive rewrite of ServicesOverlayController.
It allows one selection highlight for the entire selection, and as many telephone number highlights as there are numbers.
If a telephone number highlight is hovered over, it wins and is painted.
If no telephone number highlight is hovered but the selection highlight is, then it is painted.

The purposes of each method are self evident by their name, and the concepts are mostly the same as they used to be.

The exception is establishHoveredTelephoneHighlight which gets a more detailed explanation below.

  • Platform/Logging.h: Add a Services logging channel.
  • WebProcess/WebPage/ServicesOverlayController.h:

(WebKit::TelephoneNumberData::TelephoneNumberData):

  • WebProcess/WebPage/mac/ServicesOverlayController.mm:

(WebKit::ServicesOverlayController::ServicesOverlayController):
(WebKit::ServicesOverlayController::selectionRectsDidChange):
(WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
(WebKit::ServicesOverlayController::clearHighlightState):
(WebKit::ServicesOverlayController::drawRect):
(WebKit::ServicesOverlayController::drawSelectionHighlight):
(WebKit::ServicesOverlayController::maybeDrawTelephoneNumberHighlight):
(WebKit::ServicesOverlayController::drawHighlight):
(WebKit::ServicesOverlayController::clearSelectionHighlight):
(WebKit::ServicesOverlayController::clearHoveredTelephoneNumberHighlight):
(WebKit::ServicesOverlayController::establishHoveredTelephoneHighlight): Starts walking the telephone number ranges and

creating a highlight for each one that doesn’t already have a highlight. If that highlight is also being hovered by
the mouse, then it is set as the hovered telephone number highlight and the method stops creating new highlights.

(WebKit::ServicesOverlayController::maybeCreateSelectionHighlight):
(WebKit::ServicesOverlayController::mouseEvent):
(WebKit::ServicesOverlayController::handleClick):
(WebKit::ServicesOverlayController::drawTelephoneNumberHighlight): Deleted.
(WebKit::ServicesOverlayController::drawCurrentHighlight): Deleted.

9:13 AM Changeset in webkit [170965] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][CMake] Add a 'distcheck' target
https://bugs.webkit.org/show_bug.cgi?id=130675

.:
Reviewed by Gustavo Noronha Silva.

  • Source/PlatformGTK.cmake: Add distcheck target.

Tools:
Patch by Carlos Garcia Campos <cgarcia@igalia.com> and Martin Robinson <mrobinson@igalia.com> on 2014-07-10
Reviewed by Gustavo Noronha Silva.

Add --check option to make-dist script that builds and installs the tarball.

  • gtk/make-dist.py:

(Distcheck.init):
(Distcheck.extract_tarball): Extratc the tarball.
(Distcheck.configure): Run cmake.
(Distcheck.configure.create_dir): Helper function to create a directory.
(Distcheck.build): Run make.
(Distcheck.install): Run make install.
(Distcheck.clean): Clean up the extracted tarball.
(Distcheck.check): Run all previous methods in order.

  • gtk/manifest.txt: Add missing file.
9:11 AM Changeset in webkit [170964] by Carlos Garcia Campos
  • 4 edits
    1 add in trunk

[GTK] Use the same default options for production builds that previous stable releases
https://bugs.webkit.org/show_bug.cgi?id=134589

Reviewed by Martin Robinson.

.:
Change the default value of some features to match our stable releases.
Add FindCairoGL to find cairo-gl libraries and make accelearetd 2D
canvas depend on whether cairo-gl is found.

  • Source/cmake/FindCairoGL.cmake: Added.
  • Source/cmake/OptionsGTK.cmake:

Tools:
Make sure all features enabled in production builds are also
enabled in developer mode.

  • Scripts/webkitperl/FeatureList.pm: Enable ACCELERATED_2D_CANVAS

and CSS_FILTERS for the GTK port.

8:39 AM Changeset in webkit [170963] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Assertions or crashes under _takeViewSnapshot when restoring windows
https://bugs.webkit.org/show_bug.cgi?id=134792

Reviewed by Simon Fraser.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _takeViewSnapshot]):
Taking a window-server snapshot of a non-visible window tends to not succeed.

  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::createFromImage):

5:23 AM Changeset in webkit [170962] by jinwoo7.song@samsung.com
  • 1 edit
    4 adds in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

Rebaseline tests after r170304 and r170619.

  • platform/efl/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.png: Added after r170304.
  • platform/efl/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt: Added after r170304.
  • platform/efl/fast/text/indic-expected.png: Added after r170619.
  • platform/efl/fast/text/indic-expected.txt: Added after r170619.
5:14 AM Changeset in webkit [170961] by jinwoo7.song@samsung.com
  • 1 edit
    1 add in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

Rebaseline tests after r170207.

  • platform/efl/fast/text/khmer-lao-font-expected.txt: Added.
3:09 AM Changeset in webkit [170960] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

[XHR] overrideMimeType() should be able to change encoding in HEADERS RECEIVED state
https://bugs.webkit.org/show_bug.cgi?id=128968

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-07-10
Reviewed by Alexey Proskuryakov.

Source/WebCore:
Moved response encoding computation from didReceiveResponse to didReceiveData, just before the decoder is instantiated.
This allows overrideMimeType to be changed within readystatechange event callback and have an impact on selected encoding.

Test: http/tests/xmlhttprequest/overridemimetype-headers-received-state-force-shiftjis.html

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::didReceiveResponse): Removed m_responseEncoding computation from response and mimeTypeOverride.
(WebCore::XMLHttpRequest::didReceiveData): Added m_responseEncoding computation from response and mimeTypeOverride.

LayoutTests:
Added test equivalent to http://w3c-test.org/web-platform-tests/master/XMLHttpRequest/overridemimetype-headers-received-state-force-shiftjis.htm
The test sets overrideMimeType when xhr state is changed to HEADERS RECEIVED.

  • http/tests/xmlhttprequest/overridemimetype-headers-received-state-force-shiftjis-expected.txt: Added.
  • http/tests/xmlhttprequest/overridemimetype-headers-received-state-force-shiftjis.html: Added.
  • http/tests/xmlhttprequest/resources/get-content.php: Added.

Jul 9, 2014:

11:35 PM Changeset in webkit [170959] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.45.1/Source/WebKit2

Merged r170948. <rdar://problem/17616971>

11:14 PM Changeset in webkit [170958] by psolanki@apple.com
  • 5 edits in trunk/Source/WebKit2

Buffer CSS and JS resources in network process before sending over to web process
https://bugs.webkit.org/show_bug.cgi?id=134560
<rdar://problem/16737186>

Reviewed by Antti Koivisto.

For CSS and JS resources, ask the network process to buffer the entire resource instead of
sending it to web process in chunks since the web process can't do anything with a partial
css or js file.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::NetworkResourceLoader):

  • Shared/Network/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):

  • Shared/Network/NetworkResourceLoadParameters.h:
  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::scheduleLoad):

11:08 PM Changeset in webkit [170957] by beidson@apple.com
  • 5 edits in trunk/Source/WebCore

Fire connected/disconnected events for Gamepads.
https://bugs.webkit.org/show_bug.cgi?id=134386

Reviewed by Dean Jackson.

No new tests (No effect in a currently tested config)

  • Modules/gamepad/GamepadManager.cpp:

(WebCore::navigatorGamepadFromDOMWindow): Handling converting a possibly-null Navigator into

a possibly null NavigatorGamepad.

(WebCore::GamepadManager::platformGamepadConnected): Notify blind Navigator/DOMWindows of all

previously attached Gamepads, then notify everybody of this new gamepad.

(WebCore::GamepadManager::platformGamepadDisconnected): Handle dispatching the disconnected

event to all registered DOMWindows.

(WebCore::GamepadManager::platformGamepadInputActivity): Notify blind Navigator/DOMWindows of all

attached Gamepads.

(WebCore::GamepadManager::makeGamepadVisible): Handles notifying setting up a new gamepads

with all NavigatorGamepads as well as dispatching the connected even to DOMWindows.

(WebCore::GamepadManager::registerDOMWindow):
(WebCore::GamepadManager::unregisterDOMWindow):
(WebCore::GamepadManager::makeGamepadsVisibileToBlindNavigators): Deleted.

  • Modules/gamepad/GamepadManager.h:
  • Modules/gamepad/NavigatorGamepad.cpp:

(WebCore::NavigatorGamepad::gamepadAtIndex):

  • Modules/gamepad/NavigatorGamepad.h:
10:59 PM Changeset in webkit [170956] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.45.1/Source

Versioning.

10:47 PM Changeset in webkit [170955] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.45.1

New tag.

10:32 PM Changeset in webkit [170954] by Brent Fulgham
  • 2 edits in trunk/WebKitLibraries

[Win] Unreviewed build fix.

Build bots don't have a three-part default version string,
breaking pattern matching. Handle this case.

  • win/tools/scripts/auto-version.pl:
10:06 PM Changeset in webkit [170953] by benjamin@webkit.org
  • 10 edits in trunk/Source

[iOS][WK2] Disable text quantization while actively changing the page's scale factor
https://bugs.webkit.org/show_bug.cgi?id=134781

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-09
Reviewed by Tim Horton and Myles C. Maxfield.

Source/WebCore:
Query the chrome client to setup quantization on each layers.

  • page/ChromeClient.h:

(WebCore::ChromeClient::hasStablePageScaleFactor):

  • platform/graphics/mac/FontMac.mm:

(WebCore::Font::drawGlyphs):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupFontSubpixelQuantization):

Source/WebKit2:
While zooming a page, text quantization causes glyphs to "move" in order to get to the closest
boundary for the current scale factor.

We do not want this to happen while dynamically changing the scale factor because the effect
is visible. To avoid this, we disable text quantization if the page's scale factor changes
in response to a non-stable contentRect update.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:

(WebKit::WebChromeClient::hasStablePageScaleFactor):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::hasStablePageScaleFactor):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

9:38 PM Changeset in webkit [170952] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS] Use UIAlertController API in WKFileUploadPanel instead of SPI
https://bugs.webkit.org/show_bug.cgi?id=134777

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-09
Reviewed by Sam Weinig.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _showMediaSourceSelectionSheet]):

9:13 PM Changeset in webkit [170951] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

[EFL][WK2] Add new Public API in ewk_download_job.h to get size of the data already downloaded.
https://bugs.webkit.org/show_bug.cgi?id=134759

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-07-09
Reviewed by Gyuyoung Kim.

Add new API in ewk_download_job.h to get size of the data already downloaded.

  • UIProcess/API/efl/ewk_download_job.cpp:

(ewk_download_job_received_data_length_get):
(EwkDownloadJob::receivedData):

  • UIProcess/API/efl/ewk_download_job.h:
  • UIProcess/API/efl/ewk_download_job_private.h:
  • UIProcess/API/efl/tests/test_ewk2_download_job.cpp:

(EWK2DownloadJobTest::on_download_requested):
(EWK2DownloadJobTest::on_download_finished):

9:11 PM Changeset in webkit [170950] by benjamin@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Use 16bits instructions for push/pop on ARMv7 when possible
https://bugs.webkit.org/show_bug.cgi?id=134753

Reviewed by Geoffrey Garen.

The patch r170839 mixed the code for push/pop pair and single push/pop.
That part was reverted in r170909.

This patch puts the code back but specialized for single push/pop.

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::pop):
(JSC::ARMv7Assembler::push):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::pop):
(JSC::MacroAssemblerARMv7::push):

8:11 PM Changeset in webkit [170949] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Curl] Cache entry invalidated too early.
https://bugs.webkit.org/show_bug.cgi?id=134681

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-09
Reviewed by Alex Christensen.

When a cache entry has expired, it is invalidated when a request for the corresponding url is started.
This is too early, since the resource is possibly not modified (even though it has expired),
and the server might respond with a 304 (not modified) response.
When we then receive a 304 response, the cache entry is deleted, and we have no cached response/data to provide.
This can be solved by not invalidating the entry when a request for that url is started,
but instead invalidate when a 200 OK response is received (which means the resource has been modified).

  • platform/network/curl/CurlCacheManager.cpp:

(WebCore::CurlCacheManager::isCached): Avoid invalidating cache entry when it has expired, wait until we know the server response.

  • platform/network/curl/CurlCacheManager.h: Added const modifier.
7:18 PM Changeset in webkit [170948] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r170858): Safari freezes upon making a search on a website (yelp.com).
https://bugs.webkit.org/show_bug.cgi?id=134791
<rdar://problem/17616971>

Reviewed by Benjamin Poulain.

After r170858 we notify the keyboard too often about
the changed selection. This patch removes the notification
until we find a better way to do it that doesn't cause
deadlocks.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _selectionWillChange]):
(-[WKContentView _selectionChanged]):

6:42 PM Changeset in webkit [170947] by mmaxfield@apple.com
  • 37 edits in trunk/Source/WebCore

Revert r170413 and r170390
https://bugs.webkit.org/show_bug.cgi?id=134741

Reviewed by Benjamin Poulain.

These patches caused a variety of failures. I'm going to break them up into
smaller chunks and commit them separately at some point in the future.

Requesting a review from Ben Poulain because there were some conflicts with
r170561 in InlineTextBox.cpp and InlineTextBox.h.

  • WebCore.exp.in:
  • platform/graphics/Font.cpp:

(WebCore::Font::drawText):
(WebCore::Font::drawEmphasisMarks):
(WebCore::Font::adjustSelectionRectForText):
(WebCore::computeUnderlineType):

  • platform/graphics/Font.h:
  • platform/graphics/FontFastPath.cpp:

(WebCore::Font::getGlyphsAndAdvancesForSimpleText):
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawEmphasisMarksForSimpleText):
(WebCore::Font::drawGlyphBuffer):
(WebCore::Font::drawEmphasisMarks):
(WebCore::Font::adjustSelectionRectForSimpleText):

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBuffer::size):
(WebCore::GlyphBuffer::glyphs):
(WebCore::GlyphBuffer::advances):
(WebCore::GlyphBuffer::fontDataAt):
(WebCore::GlyphBuffer::advanceAt):
(WebCore::GlyphBuffer::offsetAt):
(WebCore::GlyphBuffer::reverse):
(WebCore::GlyphBuffer::offsetInString):
(WebCore::GlyphBuffer::swap):

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

(WebCore::Latin1TextIterator::Latin1TextIterator):
(WebCore::Latin1TextIterator::currentCharacter):

  • platform/graphics/SimpleFontData.h:
  • platform/graphics/SurrogatePairAwareTextIterator.cpp:

(WebCore::SurrogatePairAwareTextIterator::SurrogatePairAwareTextIterator):

  • platform/graphics/SurrogatePairAwareTextIterator.h:

(WebCore::SurrogatePairAwareTextIterator::currentCharacter):

  • platform/graphics/TextRun.h:

(WebCore::TextRun::length):
(WebCore::TextRun::charactersLength):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::glyphDataForCharacter):
(WebCore::applyFontTransforms):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::advance):
(WebCore::WidthIterator::advanceOneCharacter):

  • platform/graphics/WidthIterator.h:
  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::Font::drawGlyphs):

  • platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:

(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
(WebCore::Font::adjustSelectionRectForComplexText):

  • platform/graphics/harfbuzz/HarfBuzzShaper.cpp:

(WebCore::HarfBuzzShaper::setNormalizedBuffer):

  • platform/graphics/mac/FontComplexTextMac.cpp:

(WebCore::Font::adjustSelectionRectForComplexText):
(WebCore::Font::getGlyphsAndAdvancesForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):

  • platform/graphics/mac/FontMac.mm:

(WebCore::Font::drawGlyphs):

  • platform/graphics/win/FontCGWin.cpp:

(WebCore::Font::drawGlyphs):

  • platform/graphics/win/FontWin.cpp:

(WebCore::Font::adjustSelectionRectForComplexText):
(WebCore::Font::getGlyphsAndAdvancesForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):

  • platform/graphics/wince/FontWinCE.cpp:

(WebCore::Font::drawGlyphs):
(WebCore::Font::drawComplexText):
(WebCore::Font::drawEmphasisMarksForComplexText):
(WebCore::Font::selectionRectForComplexText):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::isSelected):
(WebCore::InlineTextBox::selectionState):
(WebCore::InlineTextBox::localSelectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::selectionStartEnd):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::paintDocumentMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::computeRectForReplacementMarker):
(WebCore::InlineTextBox::paintCompositionUnderline):
(WebCore::InlineTextBox::positionForOffset):
(WebCore::InlineTextBox::constructTextRun):

  • rendering/InlineTextBox.h:

(WebCore::InlineTextBox::truncation):

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::getStringToRender):

  • rendering/RenderCombineText.h:
  • rendering/RenderTextLineBoxes.cpp:

(WebCore::ellipsisRectForBox):

  • rendering/svg/SVGInlineFlowBox.cpp:

(WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::positionForOffset):
(WebCore::SVGInlineTextBox::localSelectionRect):
(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates):
(WebCore::SVGInlineTextBox::paintText):

  • rendering/svg/SVGInlineTextBox.h:
  • rendering/svg/SVGTextMetricsBuilder.cpp:

(WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair):
(WebCore::SVGTextMetricsBuilder::advance):

  • rendering/svg/SVGTextQuery.cpp:

(WebCore::SVGTextQuery::mapStartEndPositionsIntoFragmentCoordinates):
(WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
(WebCore::SVGTextQuery::subStringLengthCallback):
(WebCore::SVGTextQuery::startPositionOfCharacterCallback):
(WebCore::SVGTextQuery::endPositionOfCharacterCallback):
(WebCore::SVGTextQuery::rotationOfCharacterCallback):
(WebCore::SVGTextQuery::extentOfCharacterCallback):
(WebCore::SVGTextQuery::characterNumberAtPositionCallback):

  • rendering/svg/SVGTextQuery.h:
  • rendering/svg/SVGTextRunRenderingContext.cpp:

(WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):

  • rendering/svg/SVGTextRunRenderingContext.h:
  • svg/SVGFontData.cpp:

(WebCore::SVGFontData::applySVGGlyphSelection):

  • svg/SVGFontData.h:
6:13 PM Changeset in webkit [170946] by jpfau@apple.com
  • 4 edits in trunk

Fix flaky loading tests
https://bugs.webkit.org/show_bug.cgi?id=133696

Reviewed by Ryosuke Niwa.

Source/WebCore:
In some cases, the Frame may be destroyed while the loader is
initializing. Make sure we don't delete it too early.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::init):

LayoutTests:

  • platform/wk2/TestExpectations: Unskip no-longer failing tests
6:05 PM Changeset in webkit [170945] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Safari showing blank pages
https://bugs.webkit.org/show_bug.cgi?id=134790
<rdar://problem/17617166>

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
Make sure to add the content view to the scroll view.

6:01 PM Changeset in webkit [170944] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Make IndirectCompositingReason an enum class
https://bugs.webkit.org/show_bug.cgi?id=134789

Reviewed by Tim Horton.

Make RenderLayer::IndirectCompositingReason an enum class, and change some code
in RenderLayerCompositor::reasonsForCompositing() to use a switch.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore):
(WebCore::RenderLayerCompositor::reasonsForCompositing):
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason):

5:50 PM Changeset in webkit [170943] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Closed web views should never create new web processes
https://bugs.webkit.org/show_bug.cgi?id=134787
<rdar://problem/16892526>

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadHTMLString:baseURL:]):
(-[WKWebView reload]):
(-[WKWebView reloadFromOrigin]):
Return nil if the returned navigation ID is 0.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcess):
Assert that the page is not closed.

(WebKit::WebPageProxy::reattachToWebProcessWithItem):
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadHTMLString):
(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):
Add early returns if the page is closed.

  • UIProcess/WebPageProxy.h:
5:29 PM Changeset in webkit [170942] by ryuan.choi@samsung.com
  • 10 edits in trunk/LayoutTests

[EFL] gardening after r170868
https://bugs.webkit.org/show_bug.cgi?id=134717

Unreviewed, EFL gardening.

Four tests have been rebaselined, and disable the gamepad tests

Patch by Hunseop Jeong <Hunseop Jeong> on 2014-07-09

  • platform/efl/TestExpectations: Disable the gamepad tests
  • platform/efl/fast/text/atsui-multiple-renderers-expected.png:
  • platform/efl/fast/text/atsui-multiple-renderers-expected.txt:
  • platform/efl/fast/text/complex-text-opacity-expected.png:
  • platform/efl/fast/text/complex-text-opacity-expected.txt:
  • platform/efl/fast/text/midword-break-before-surrogate-pair-expected.png:
  • platform/efl/fast/text/midword-break-before-surrogate-pair-expected.txt:
  • platform/efl/transforms/2d/hindi-rotated-expected.png:
  • platform/efl/transforms/2d/hindi-rotated-expected.txt:
5:25 PM Changeset in webkit [170941] by jer.noble@apple.com
  • 2 edits in trunk/LayoutTests

[MSE] http/tests/media/media-source/mediasource-closed.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=134775

Reviewed by Eric Carlson.

Update the test to use isNaN rather than Number.isNaN.

  • http/tests/media/media-source/mediasource-closed.html:
5:24 PM Changeset in webkit [170940] by Brent Fulgham
  • 3 edits in trunk/WebKitLibraries

[Win] Unreviewed gardening.

  • win/tools/scripts/auto-version.pl: Protect against

malformed paths (trailing backslashes).

  • win/tools/scripts/feature-defines.pl: Make sure result

has an EOL character.

5:22 PM Changeset in webkit [170939] by Brent Fulgham
  • 2 edits in trunk/Source/WTF

[Win] Unreviewed build fix after r170930.

  • WTF.vcxproj/copy-files.cmd: Include cf files in

post-build copy operation.

5:18 PM Changeset in webkit [170938] by psolanki@apple.com
  • 5 edits in trunk/Source/WebCore

Make SharedBuffer::append(SharedBuffer*) be smarter about CFData and data arrays
https://bugs.webkit.org/show_bug.cgi?id=134731

Reviewed by Antti Koivisto.

If the target SharedBuffer has a CFDataRef or a data array then we can simply retain that
CFDataRef or data array elements in the SharedBuffer being appended to. This avoids
unnecessary copying.

No new tests because no functional changes.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::maybeAppendPlatformData):

  • platform/SharedBuffer.h:
  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::maybeAppendPlatformData):
(WebCore::SharedBuffer::maybeAppendDataArray):

  • platform/soup/SharedBufferSoup.cpp:

(WebCore::SharedBuffer::maybeAppendPlatformData):

4:48 PM Changeset in webkit [170937] by Brent Fulgham
  • 42 edits
    8 moves in trunk

[Win] Remove uses of 'bash' in build system
https://bugs.webkit.org/show_bug.cgi?id=134782
<rdar://problem/17615533>

Reviewed by Dean Jackson.

Remove uses of 'bash' by replacing Windows-specific bash scripts
with Perl equivalents.

Source/JavaScriptCore:

  • JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make:
  • JavaScriptCore.vcxproj/JavaScriptCoreGenerated.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCoreGenerated.vcxproj.filters:
  • JavaScriptCore.vcxproj/JavaScriptCorePreBuild.cmd:
  • JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make:
  • JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.vcxproj:
  • JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.pl: Copied from Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.sh.
  • JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.sh: Removed.
  • JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make:
  • JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.vcxproj:
  • JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl: Copied from Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.sh.
  • JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.sh: Removed.
  • JavaScriptCore.vcxproj/build-generated-files.pl: Copied from Source/JavaScriptCore/JavaScriptCore.vcxproj/build-generated-files.sh.
  • JavaScriptCore.vcxproj/build-generated-files.sh: Removed.
  • JavaScriptCore.vcxproj/jsc/jscPreBuild.cmd:
  • JavaScriptCore.vcxproj/testRegExp/testRegExpPreBuild.cmd:
  • JavaScriptCore.vcxproj/testapi/testapiPreBuild.cmd:

Source/WebCore:

  • WebCore.vcxproj/WebCoreGenerated.make:
  • WebCore.vcxproj/WebCoreGenerated.vcxproj:
  • WebCore.vcxproj/WebCoreGenerated.vcxproj.filters:
  • WebCore.vcxproj/WebCorePreBuild.cmd:
  • WebCore.vcxproj/build-generated-files.pl: Copied from Source/WebCore/WebCore.vcxproj/build-generated-files.sh.
  • WebCore.vcxproj/build-generated-files.sh: Removed.
  • WebCore.vcxproj/migrate-scripts.pl: Copied from Source/WebCore/WebCore.vcxproj/migrate-scripts.sh.
  • WebCore.vcxproj/migrate-scripts.sh: Removed.

Source/WebInspectorUI:

  • WebInspectorUI.vcxproj/WebInspectorUI.make:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
  • WebInspectorUI.vcxproj/build-webinspectorui.pl: Copied from Source/WebInspectorUI/WebInspectorUI.vcxproj/build-webinspectorui.sh.
  • WebInspectorUI.vcxproj/build-webinspectorui.sh: Removed.

Source/WebKit:

  • WebKit.vcxproj/Interfaces/FixMIDLHeaders.pl:
  • WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
  • WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:
  • WebKit.vcxproj/WebKit/WebKitVersion.cmd:
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd:
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd:
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd:

Source/WTF:

  • WTF.vcxproj/WTFGenerated.make:
  • WTF.vcxproj/WTFGenerated.vcxproj:
  • WTF.vcxproj/WTFGenerated.vcxproj.filters:
  • WTF.vcxproj/WTFPreBuild.cmd:
  • WTF.vcxproj/build-generated-files.pl: Copied from Source/WTF/WTF.vcxproj/build-generated-files.sh.
  • WTF.vcxproj/build-generated-files.sh: Removed.

Tools:

  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTreePreBuild.cmd:
  • DumpRenderTree/DumpRenderTree.vcxproj/ImageDiff/ImageDiffPreBuild.cmd:
  • DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePluginPreBuild.cmd:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPIPreBuild.cmd:
  • WinLauncher/WinLauncher.vcxproj/WinLauncherLibPreBuild.cmd:
  • WinLauncher/WinLauncher.vcxproj/WinLauncherPreBuild.cmd:

WebKitLibraries:

  • win/tools/scripts/feature-defines.pl: Copied from WebKitLibraries/win/tools/scripts/feature-defines.sh.
  • win/tools/scripts/feature-defines.sh: Removed.
3:33 PM Changeset in webkit [170936] by Lucas Forschler
  • 4 edits in tags/Safari-538.45/Source

Merged r170924. <rdar://problem/16167838>

3:06 PM Changeset in webkit [170935] by andersca@apple.com
  • 4 edits in trunk/Source

Support transparent WKWebViews
https://bugs.webkit.org/show_bug.cgi?id=134779
<rdar://problem/17351058>

Reviewed by Tim Horton.

Source/WebCore:
Schedule rebuilding the compositing layers if a FrameView's transparency changes.

  • page/FrameView.cpp:

(WebCore::FrameView::setTransparent):

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
Call _updateScrollViewBackground instead of setting the background color.

(contentZoomScale):
Use dot notation.

(scrollViewBackgroundColor):
Helper function that returns the scroll view background color.
If the web view isn't opaque, we want the scroll view to be transparent.

(-[WKWebView _updateScrollViewBackground]):
Call scrollViewBackgroundColor.

(-[WKWebView setOpaque:]):
Call WebPageProxy::setDrawsBackground and update the scroll view background.

(-[WKWebView setBackgroundColor:]):
Call setBackgroundColor on the content view.

2:58 PM Changeset in webkit [170934] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] WebKit can crash under QuickLookDocumentData::encode() when viewing a QuickLook preview
https://bugs.webkit.org/show_bug.cgi?id=134780

Reviewed by Tim Horton.

Don't use CFDataCreateWithBytesNoCopy() when we can't guarantee the lifetime of the copied-from DataReference
will match or exceed that of the CFDataRef. Copy the data instead.

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveData):

2:56 PM Changeset in webkit [170933] by jfernandez@igalia.com
  • 9 edits in trunk

CSS canvas color parsing accepts invalid color identifiers
https://bugs.webkit.org/show_bug.cgi?id=134661

Reviewed by Benjamin Poulain.

Source/WebCore:
Current implementation of the CSSParser::parseSystemColor assumes
that if a valid cssValueKeywordID is got then it has to be a valid
color. Such assumption is wrong and lead to many bugs and layout
test failures.

The parseSystemFunction determines now whether the parsed color is
valid or not.

Addtionally, a new method has been added to share the logic of
determining whether a CSSValueID is a valid primitive values for
colors or not. Generally, we should avoid passing invalid color
identifiers to the theming API.

No new tests, but added additional cases to the
canvas-color-serialization.html, test-setting-canvas-color and
rgb-color-parse test.

  • css/CSSParser.cpp:

(WebCore::validPrimitiveValueColor): Added.
(WebCore::parseColorValue):
(WebCore::CSSParser::parseSystemColor):

LayoutTests:
The parseSystemFunction determines now whether the parsed color is
valid or not.

The rgb-color-parser covers css style color parsing cases, which
already provide coverage for invalid color identifiers. I've added
a few more, though.

  • fast/canvas/canvas-color-serialization-expected.txt:
  • fast/canvas/script-tests/canvas-color-serialization.js:
  • fast/css/test-setting-canvas-color-expected.txt:
  • fast/css/test-setting-canvas-color.html:
  • svg/dom/rgb-color-parser-expected.txt:
  • svg/dom/rgb-color-parser.html:
2:37 PM Changeset in webkit [170932] by jer.noble@apple.com
  • 8 edits in trunk

Source/WebCore: [MSE] http/tests/media/media-source/mediasource-remove.html is failing
https://bugs.webkit.org/show_bug.cgi?id=134768

Reviewed by Eric Carlson.

Fix multiple bugs causing mediasource-remove.html to fail:

Separate out setDuration() into setDurationInternal() so that steps which require
us to run the "duration change algorithm" don't bail out if the SoureBuffer is
inside updating().

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::setDuration):
(WebCore::MediaSource::setDurationInternal):

  • Modules/mediasource/MediaSource.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

When removing coded frames, do so starting from the first sample in the range in
decode order, so that frames dependant on removed frames are themselves removed. Add
a convenience method in SampleMap findSampleWithPresentationTime(), and rename
findSampleAfterPresentationTime() to findSampleOnOrAfterPresentationTime() to correctly
reflect what the method does, and simplify its implementation by searching the map's keys
directly.

  • Modules/mediasource/SampleMap.cpp:

(WebCore::PresentationOrderSampleMap::findSampleWithPresentationTime):
(WebCore::PresentationOrderSampleMap::findSampleOnOrAfterPresentationTime):
(WebCore::DecodeOrderSampleMap::findSyncSampleAfterPresentationTime):
(WebCore::PresentationOrderSampleMap::findSampleAfterPresentationTime): Deleted.

  • Modules/mediasource/SampleMap.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::decodeTimeComparator):
(WebCore::SourceBuffer::removeCodedFrames):

Throw the correct exception (INVALID_STATE_ERR) from SourceBuffer::remove().

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::remove):

LayoutTests: [MSE] http/tests/media/media-source/mediasource-remove.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=134768

Reviewed by Eric Carlson.

Update mediasource-remove.html with the correct locations of sync-samples.

  • http/tests/media/media-source/mediasource-remove.html:
2:36 PM Changeset in webkit [170931] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit/mac

REGRESSION(r167770): Cannot login in Evernote Safari extension
https://bugs.webkit.org/show_bug.cgi?id=134776

Reviewed by Enrica Casucci.

Unfortunately, NSWindowDidBecomeKeyNotification does not notify us when a popover becomes key
so we need to keep using the SPI (_windowChangedKeyState) I removed in r167770.

  • WebView/WebView.mm:

(-[WebView _windowChangedKeyState]):

2:19 PM Changeset in webkit [170930] by psolanki@apple.com
  • 9 edits in trunk/Source/WebCore

Add SharedBuffer::wrapCFDataArray() and use it
https://bugs.webkit.org/show_bug.cgi?id=134733

Reviewed by Antti Koivisto.

No new tests. Should be covered by existing tests.

  • platform/SharedBuffer.h:
  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::wrapCFDataArray):
(WebCore::SharedBuffer::SharedBuffer):

  • platform/network/ResourceHandle.h:
  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::handleDataArray): Deleted.

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveDataArray):

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveDataArray:]):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveDataArray:]):

2:16 PM Changeset in webkit [170929] by fpizlo@apple.com
  • 5 edits in branches/ftlopt/Source/JavaScriptCore

[ftlopt] Move Flush(SetLocal) store elimination to StrengthReductionPhase
https://bugs.webkit.org/show_bug.cgi?id=134739

Reviewed by Mark Hahnenberg.

I'm going to streamline CSE around clobberize() as part of
https://bugs.webkit.org/show_bug.cgi?id=134677, and so Flush(SetLocal) store
elimination wouldn't belong in CSE anymore. It doesn't quite belong anywhere, which
means that it belongs in StrengthReductionPhase, since that's intended to be our
dumping ground.

To do this I had to add some missing smarts to clobberize(). Previously clobberize()
could play a bit loose with reads of Variables because it wasn't used for store
elimination. The main client of read() was LICM, but it would only use it to
determine hoistability and anything that did a write() was not hoistable - so, we had
benign (but still wrong) missing read() calls in places that did write()s. This fixes
a bunch of those cases.

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::performNodeCSE):
(JSC::DFG::CSEPhase::setLocalStoreElimination): Deleted.

  • dfg/DFGClobberize.cpp:

(JSC::DFG::accessesOverlap):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize): Make clobberize() smart enough for detecting when this store elimination would be sound.

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode): Implement the store elimination in terms of clobberize().

1:55 PM Changeset in webkit [170928] by psolanki@apple.com
  • 7 edits in trunk/Source

Move resource buffering from SynchronousNetworkLoaderClient to NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=134732

Reviewed by Darin Adler.

Source/WebCore:
No new tests because no functional changes.

  • WebCore.exp.in:

Source/WebKit2:
Buffer the resource in NetworkResourceLoader instead of SynchronousNetworkLoaderClient. This
is in preparation for bug 134560 where we will be supporting JS and CSS resource buffering
that uses AsynchronousNetworkLoaderClient.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::didFinishLoading):

  • NetworkProcess/NetworkResourceLoader.h:

(WebKit::NetworkResourceLoader::bufferedData):

  • NetworkProcess/SynchronousNetworkLoaderClient.cpp:

(WebKit::SynchronousNetworkLoaderClient::didReceiveBuffer):
(WebKit::SynchronousNetworkLoaderClient::didFinishLoading):
(WebKit::SynchronousNetworkLoaderClient::didFail):
(WebKit::SynchronousNetworkLoaderClient::sendDelayedReply):

  • NetworkProcess/SynchronousNetworkLoaderClient.h:
1:52 PM Changeset in webkit [170927] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the !USE(IOSURFACE) build.

  • WebCore.exp.in:
12:47 PM Changeset in webkit [170926] by benjamin@webkit.org
  • 5 edits in trunk/Source/WebKit2

[iOS][WK2] subviews of the unscaled view drift out during CA animations
https://bugs.webkit.org/show_bug.cgi?id=134751

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

It is not possible to animate the WKContentView and the inverse view in such a way
that the combined matrix remain the identity for every frame of the animation.

This patch solves the issue by moving the unscaled view as a sibling of WKContentView
instead of a child so that we do not need to update two scales simultaneously.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView _processDidExit]):
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]):
Set the z scale to 1 or no coordinate transform will work with this view.

(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):

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

(-[WKContentView setupInteraction]):
Since we need to observe changes inside the animation block, the code now use KVO to observe changes of scale.

(-[WKContentView cleanupInteraction]):
(-[WKContentView unscaledView]):
(-[WKContentView inverseScale]):
(-[WKContentView observeValueForKeyPath:ofObject:change:context:]):
We update the utility views as usual. The extra bits here are to deal with views coming in during an animation.

If a new utility view comes in during a scaling animation, we do not want to start a new animation with the same curve
to end up at the right place. To avoid any issue, we just hide the view until the animation is finished.

(-[WKContentView hitTest:withEvent:]):
(-[WKContentView _showTapHighlight]):
(-[WKContentView _updateUnscaledView]): Deleted.

12:31 PM Changeset in webkit [170925] by timothy_horton@apple.com
  • 8 edits in trunk/Source

Use IOSurface ViewSnapshots everywhere on Mac, remove JPEG encoding path
https://bugs.webkit.org/show_bug.cgi?id=134773

Reviewed by Anders Carlsson.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _takeViewSnapshot]):

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

(WebKit::ViewSnapshotStore::ViewSnapshotStore):
(WebKit::ViewSnapshotStore::~ViewSnapshotStore):
(WebKit::ViewSnapshotStore::recordSnapshot):
(WebKit::ViewSnapshot::clearImage):
(WebKit::ViewSnapshot::asLayerContents):
(WebKit::createIOSurfaceFromImage): Deleted.
(WebKit::compressImageAsJPEG): Deleted.
(WebKit::ViewSnapshotStore::reduceSnapshotMemoryCost): Deleted.
(WebKit::ViewSnapshotStore::didCompressSnapshot): Deleted.
Remove all ViewSnapshot(Store) code related to JPEG-encoded snapshots.
Remove the "image" member on ViewSnapshot; Mac will always start out with an IOSurface instead.
Adopt WebCore::IOSurface::createFromImage to make that happen.
Add a comment noting that if a snapshot comes back empty, we should throw it away completely.

  • WebCore.exp.in:
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::createFromImage):
Move make-an-IOSurface-from-a-CGImageRef into WebCore::IOSurface.

12:11 PM Changeset in webkit [170924] by enrica@apple.com
  • 4 edits in trunk/Source

Implement Editor::fontAttributesForSelectionStart() or iOS.
https://bugs.webkit.org/show_bug.cgi?id=134771
<rdar://problem/16167838>

Reviewed by Ryosuke Niwa.

Source/WebCore:
Implement for iOS the equivalent function we have for OS X.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::fontAttributesForSelectionStart):

Source/WebKit/mac:

  • WebView/WebViewPrivate.h:
12:10 PM Changeset in webkit [170923] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

RemoteLayerBackingStore::ensureBackingStore should ensure that the entire backing store gets redrawn
https://bugs.webkit.org/show_bug.cgi?id=134772

Reviewed by Tim Horton.

  • Shared/mac/RemoteLayerBackingStore.h:

(WebKit::RemoteLayerBackingStore::Buffer::operator bool):

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore):

11:05 AM Changeset in webkit [170922] by Brent Fulgham
  • 22 edits in trunk

[Win] Remove use of 'grep' in build steps
https://bugs.webkit.org/show_bug.cgi?id=134770
<rdar://problem/17608783>

Reviewed by Tim Horton.

Replace uses of the grep command in Windows builds with the equivalent
Perl program.

Source/JavaScriptCore:

Source/WebCore:

  • WebCore.vcxproj/WebCoreGenerated.make:
  • WebCore.vcxproj/WebCorePreBuild.cmd:
  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::notifyFinished):

Source/WebKit:

  • WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
  • WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd:
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd:

Source/WTF:

  • WTF.vcxproj/WTFPreBuild.cmd:

Tools:

  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTreePreBuild.cmd:
  • DumpRenderTree/DumpRenderTree.vcxproj/ImageDiff/ImageDiffPreBuild.cmd:
  • DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePluginPreBuild.cmd:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPIPreBuild.cmd:
  • WinLauncher/WinLauncher.vcxproj/WinLauncherLibPreBuild.cmd:
  • WinLauncher/WinLauncher.vcxproj/WinLauncherPreBuild.cmd:
10:49 AM Changeset in webkit [170921] by achristensen@apple.com
  • 7 edits in trunk/Source/WebCore

Added css jit profiler, disabled by default.
https://bugs.webkit.org/show_bug.cgi?id=134695

Reviewed by Benjamin Poulain.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ruleMatches):
Tell the RuleData when its compiled selector is used.

  • css/RuleSet.cpp:

(WebCore::RuleData::RuleData):
Initialize the compiled selector use count to 0.

  • css/RuleSet.h:

(WebCore::RuleData::~RuleData):
(WebCore::RuleData::compiledSelectorUsed):
Count and log the number of times a compiled selector is used.

  • cssjit/SelectorCompiler.h:

Added option for CSS_SELECTOR_JIT_PROFILING set to 0 by default.

  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
(WebCore::SelectorDataList::execute):
Tell the SelectorData when its compiled selector is used.

  • dom/SelectorQuery.h:

(WebCore::SelectorDataList::SelectorData::SelectorData):
(WebCore::SelectorDataList::SelectorData::~SelectorData):
(WebCore::SelectorDataList::SelectorData::compiledSelectorUsed):
Count and log the number of times a compiled selector is used.

10:17 AM Changeset in webkit [170920] by eric.carlson@apple.com
  • 8 edits in trunk/Source/WebCore

[iOS] caption size is sometimes incorrect in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=134740

Reviewed by Jer Noble.

Captions on iOS are displayed in fullscreen with a TextTrackRepresentation object. Because
the fullscreen video presentation is controlled by code in the UI process running on the
UI thread, WebCore is notified of changes to fullscreen state asynchronously. This resulted
in the TextTrackRepresentation object being created and/or destroyed too late some of the
time, which caused us to sometimes display captions incorrectly. Fix this by setting up and
tearing down the TextTrackRepresentation object when WebCore's 'webkitfullscreenchange'
event fires.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::enteredFullscreen): Notify text track container.
(WebCore::MediaControlsHost::exitedFullscreen): Ditto.

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handleFullscreenChange): Notify host of fullscreen change.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::requiresTextTrackRepresentation): Only return true when in

fullscreen.

(WebCore::HTMLMediaElement::setVideoFullscreenLayer): Call updateTextTrackDisplay.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): Initialize

m_updateTextTrackRepresentationStyle to false.

(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Move logic for creating

TextTrackRepresentation to updateTextTrackRepresentation.

(WebCore::MediaControlTextTrackContainerElement::updateActiveCuesFontSize): New, split out of updateTimerFired.
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Move code to force immediate

font size change to updateActiveCuesFontSize.

(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation): New, update

text track representation, creating first if necessary.

(WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation): Add an early

return if we don't have a text track representation.

(WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation): Early

return if there is nothing to be done.

(WebCore::MediaControlTextTrackContainerElement::enteredFullscreen): Force a caption update

if there are visible captions.

(WebCore::MediaControlTextTrackContainerElement::updateSizes): Set m_updateTextTrackRepresentationStyle

to true.

(WebCore::MediaControlTextTrackContainerElement::textTrackRepresentationBoundsChanged): Force a

caption update if there are visible captions.

  • html/shadow/MediaControlElements.h:
10:12 AM Changeset in webkit [170919] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

fast/dom/HTMLImageElement/sizes/image-sizes-js-change.html is failing in some bots
https://bugs.webkit.org/show_bug.cgi?id=134769

9:31 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
9:30 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
9:29 AM Changeset in webkit [170918] by jer.noble@apple.com
  • 7 edits in trunk

[MSE] http/tests/media/media-source/mediasource-endofstream-invaliderror.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=134413

Reviewed by Eric Carlson.

Source/WebCore:
Update MediaSource.endOfStream() to take an optional enum instead of an optional String.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::endOfStream):

  • Modules/mediasource/MediaSource.h:
  • Modules/mediasource/MediaSource.idl:

LayoutTests:
Fix an inadevntant editing error in mediasource-endofstream-invaliderror.html, and fix missing
whitespace at the end of http/tests/media/media-source/mediasource-endofstream-invaliderror-expected.txt.

  • http/tests/media/media-source/mediasource-endofstream-invaliderror-expected.txt:
  • http/tests/media/media-source/mediasource-endofstream-invaliderror.html:
8:58 AM WebKitGTK/2.2.x edited by vjaquez@igalia.com
add another patch proposal (diff)
8:49 AM Changeset in webkit [170917] by Vineet
  • 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json

Unreviewed, update my list of email addresses.

6:54 AM Changeset in webkit [170916] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-07-09

  • platform/gtk/TestExpectations: Report and mark new failing and flaky tests. Adjust some tests expectations.
  • platform/gtk/css1/formatting_model/inline_elements-expected.txt: Rebaseline after r170875.
2:12 AM Changeset in webkit [170915] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

This patch is wrong (Requested by philn on #webkit).

Reverted changeset:

"[GTK] Gstreamer missing from the install-dependencies script"
https://bugs.webkit.org/show_bug.cgi?id=134727
http://trac.webkit.org/changeset/170889

2:12 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
12:29 AM Changeset in webkit [170914] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL] Fix crash caused by invalid cursor image.
https://bugs.webkit.org/show_bug.cgi?id=134663

Patch by KwangHyuk Kim <hyuki.kim@samsung.com> on 2014-07-09
Reviewed by Gyuyoung Kim.

Remove calling of updateCursor since the custom cursor image is invalid once a mouse is out of the webview.

  • UIProcess/API/efl/EwkView.cpp:

(EwkViewEventHandler<EVAS_CALLBACK_MOUSE_IN>::handleEvent):

12:01 AM Changeset in webkit [170913] by Lucas Forschler
  • 5 edits in trunk/Source

Versioning.

Jul 8, 2014:

11:52 PM Changeset in webkit [170912] by Lucas Forschler
  • 1 copy in tags/Safari-538.45

New Tag.

11:50 PM Changeset in webkit [170911] by beidson@apple.com
  • 6 edits in trunk/Source/WebCore

DOMWindows should register themselves with the GamepadManager when they have event listeners
https://bugs.webkit.org/show_bug.cgi?id=134669

Reviewed by Dean Jackson.

No new tests (No effect in a currently tested config)

By having DOMWindows register with the GamepadManager when they have/don’t have gamepad event
listeners, we accomplish two things:
1 - It’s simple for GamepadManager to dispatch gamepad events directly to the DOMWindows interested.
2 - We know when to start monitoring for gamepad connections.

  • Modules/gamepad/GamepadManager.cpp:

(WebCore::GamepadManager::GamepadManager):
(WebCore::GamepadManager::registerNavigator):
(WebCore::GamepadManager::unregisterNavigator):
(WebCore::GamepadManager::registerDOMWindow):
(WebCore::GamepadManager::unregisterDOMWindow):
(WebCore::GamepadManager::maybeStartMonitoringGamepads): Start monitoring gamepads if there are any

registered DOMWindows or NavigatorGamepads, and we aren’t already monitoring them.

(WebCore::GamepadManager::maybeStopMonitoringGamepads): Stop monitoring gamepads if there aren’t any

registered DOMWindows or NavigatorGameads, and we have been monitoring them before now.

  • Modules/gamepad/GamepadManager.h:
  • dom/EventNames.h:

(WebCore::EventNames::isGamepadEventType):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::DOMWindow):
(WebCore::DOMWindow::~DOMWindow): If registered for gamepad events, unregister now.
(WebCore::DOMWindow::incrementGamepadEventListenerCount): If this is the first gamepad event

listener, register with the GamepadManager now.

(WebCore::DOMWindow::decrementGamepadEventListenerCount): If this was the last gamepad event

listener, unregister from the GamepadManager now.

(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):

  • page/DOMWindow.h:
10:56 PM Changeset in webkit [170910] by commit-queue@webkit.org
  • 5 edits in trunk

.: [EFL] Support Encrypted Media Extensions.
https://bugs.webkit.org/show_bug.cgi?id=134750

Patch by Sun-woo Nam <sunny.nam@samsung.com> on 2014-07-08
Reviewed by Gyuyoung Kim.

Webkit needs to play encrypted media contents when media player
is played by Media source extensions and normal video procedure.

  • Source/cmake/OptionsEfl.cmake: Turn on ENABLE_ENCRYPTED_MEDIA_V2

Source/WebCore: [EFL] Fix the build break when ENABLE_ENCRYPTED_MEDIA_V2 is turned on.
https://bugs.webkit.org/show_bug.cgi?id=134750

Patch by Sun-woo Nam <sunny.nam@samsung.com> on 2014-07-08
Reviewed by Gyuyoung Kim.

When turning ENABLE_ENCRYPTED_MEDIA_V2 on, build break occurs.
Some source files need to be included in CMakeLists.txt file for build.
And wrap the included header file which is built only on mac and wince.

  • CMakeLists.txt:
  • Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp:
10:13 PM Changeset in webkit [170909] by benjamin@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Restore the assertion changed with 170839

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::pop):
(JSC::ARMv7Assembler::push):
Revert the Assembler part of 170839. The assertions do not match both encoding.

I'll add specific version of push and pop instead.

9:53 PM Changeset in webkit [170908] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] user caption preferences not applied
https://bugs.webkit.org/show_bug.cgi?id=134599

Reviewed by Sam Weinig.

  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): All Pages in a PageGroup
do not necessarily use the same PageUserContentController, so apply and remove caption user
the style sheet directly to each page rather than to the page group.

8:00 PM Changeset in webkit [170907] by fpizlo@apple.com
  • 7 edits
    2 adds in branches/ftlopt/Source/JavaScriptCore

[ftlopt] Phantom simplification should be in its own phase
https://bugs.webkit.org/show_bug.cgi?id=134742

Reviewed by Geoffrey Garen.

This moves Phantom simplification out of CSE, which greatly simplifies CSE and gives it
more focus. Also this finally adds a phase that removes empty Phantoms. We sort of had
this in CPSRethreading, but that phase runs too infrequently and doesn't run at all for
SSA.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAdjacencyList.h:
  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::run):
(JSC::DFG::CSEPhase::setReplacement):
(JSC::DFG::CSEPhase::eliminate):
(JSC::DFG::CSEPhase::performNodeCSE):
(JSC::DFG::CSEPhase::eliminateIrrelevantPhantomChildren): Deleted.

  • dfg/DFGPhantomRemovalPhase.cpp: Added.

(JSC::DFG::PhantomRemovalPhase::PhantomRemovalPhase):
(JSC::DFG::PhantomRemovalPhase::run):
(JSC::DFG::performCleanUp):

  • dfg/DFGPhantomRemovalPhase.h: Added.
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

5:51 PM Changeset in webkit [170906] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

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

"It broke the build on mountainlion release 32bit" (Requested
by mmirman on #webkit).

Reverted changeset:

"Added css jit profiler, disabled by default."
https://bugs.webkit.org/show_bug.cgi?id=134695
http://trac.webkit.org/changeset/170894

5:01 PM Changeset in webkit [170905] by Brent Fulgham
  • 4 edits
    1 add
    1 delete in trunk

[Win] Implement auto-version as a Perl program
https://bugs.webkit.org/show_bug.cgi?id=134745
<rdar://problem/17597801>

Reviewed by David Kilzer.

Source/WebKit:
Modify build commands to use new Perl version of the
auto-version script.

  • WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
  • WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:

WebKitLibraries:
Translate the auto-version.sh bash script into an equivalent
Perl script.

  • win/tools/scripts/auto-version.pl: Added.
  • win/tools/scripts/auto-version.sh: Removed.
4:58 PM Changeset in webkit [170904] by Bem Jones-Bey
  • 2 edits in trunk/Websites/webkit.org

Update policy for Inactive Committer and Reviewer status
https://bugs.webkit.org/show_bug.cgi?id=134403

Reviewed by Nico Weber.

  • coding/commit-review-policy.html:
4:31 PM Changeset in webkit [170903] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

RemoteInspector::shared() should not call WTF::initializeMainThread()
<https://bugs.webkit.org/show_bug.cgi?id=134747>
<rdar://problem/17161482>

Reviewed by Joseph Pecoraro.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::shared):
Don't call WTF::initializeMainThread(). WTF threading is initialized by
JSC::initializeThreading().

4:17 PM Changeset in webkit [170902] by timothy_horton@apple.com
  • 10 edits in trunk/Source/WebKit2

Remove WebBackForwardListItems when their owning page goes away
https://bugs.webkit.org/show_bug.cgi?id=134709
<rdar://problem/17584645>

Reviewed by Dan Bernstein.

  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::create):
(WebKit::WebBackForwardListItem::WebBackForwardListItem):

  • Shared/WebBackForwardListItem.h:

(WebKit::WebBackForwardListItem::pageID):
Add the associated PageID to the WebBackForwardListItem.

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::restoreFromState):
Push the current PageID onto the WebBackForwardListItem.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::removeWebPage):
Remove all of the WebBackForwardListItems from m_backForwardListItemMap when
the page they are associated with is removed.

(WebKit::WebProcessProxy::addBackForwardItem):
Push the PageID from the WebProcess onto the WebBackForwardListItem.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::idToHistoryItemMap):
(WebKit::historyItemToIDMap):
(WebKit::updateBackForwardItem):
(WebKit::WebBackForwardListProxy::addItemFromUIProcess):
(WebKit::WK2NotifyHistoryItemChanged):
(WebKit::WebBackForwardListProxy::idForItem):
(WebKit::WebBackForwardListProxy::addItem):
(WebKit::WebBackForwardListProxy::goToItem):
(WebKit::WebBackForwardListProxy::close):

  • WebProcess/WebPage/WebBackForwardListProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::restoreSession):
Keep track of the PageID that back-forward items were created by.
Pass the PageID along when registering WebBackForwardListItems.

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

WebVideoFullscreenInterfaceAVKit should lazily create m_playerController.
https://bugs.webkit.org/show_bug.cgi?id=134706

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-08
Reviewed by Simon Fraser.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel):
Don't set the delegate if m_playerController isn't created.

3:54 PM Changeset in webkit [170900] by Brian Burg
  • 2 edits in trunk/Tools

resolve-ChangeLogs fails when WebKit repository is a git submodule
https://bugs.webkit.org/show_bug.cgi?id=134734

Reviewed by David Kilzer.

When using resolve-ChangeLogs in a WebKit git repository with a
non-default arrangement of GIT_DIR and GIT_WORK_TREE, incorrect
paths are computed and the script fails mysteriously.

We were naively computing GIT_WORK_TREE as being one level above
GIT_DIR, but this is not the case for submodules or a manually
configured GIT_WORK_TREE or GIT_DIR location.

  • Scripts/VCSUtils.pm:

(gitTreeDirectory): Added. Find the equivalent of GIT_WORK_TREE.
(determineVCSRoot): Calculate the working tree root directly.

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

Web Inspector: Debugger popovers should not dismiss when mousing over them
https://bugs.webkit.org/show_bug.cgi?id=134687

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-08
Reviewed by David Kilzer.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._trackPopoverEvents):
Actually install the listeners in the set. Regression from code refactoring in r165052.

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

VM::lastCachedString should be a Strong, not a Weak.
<https://webkit.org/b/134746>

Using Weak<JSString> for this regressed some of our bindings perf tests
due to Weak having to allocate a new WeakImpl every time the last cached
string changed. Make it a Strong instead should make that problem go away.

Reviewed by Geoffrey Garen.

  • runtime/JSString.cpp:

(JSC::jsStringWithCacheSlowCase):

  • runtime/VM.h:
3:36 PM Changeset in webkit [170897] by commit-queue@webkit.org
  • 39 edits in trunk/LayoutTests

Remove webkit prefix from pointer lock tests.
https://bugs.webkit.org/show_bug.cgi?id=134744

Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08
Reviewed by Brady Eidson.

  • http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt:
  • http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html:
  • http/tests/pointer-lock/iframe-sandboxed-expected.txt:
  • http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt:
  • http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html:
  • http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt:
  • http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html:
  • http/tests/pointer-lock/iframe-sandboxed.html:
  • http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt:
  • http/tests/pointer-lock/pointerlockelement-different-origin.html:
  • http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt:
  • http/tests/pointer-lock/pointerlockelement-same-origin.html:
  • http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt:
  • http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html:
  • http/tests/resources/pointer-lock/iframe-common.js:

(document.onpointerlockchange):
(document.onpointerlockerror):
(document.onwebkitpointerlockchange): Deleted.
(document.onwebkitpointerlockerror): Deleted.

  • http/tests/resources/pointer-lock/pointer-lock-test-harness.js:

(expectOnlyChangeEvent):
(expectOnlyErrorEvent):
(expectNoEvents):

  • pointer-lock/bug90391-move-then-window-open-crash-expected.txt:
  • pointer-lock/bug90391-move-then-window-open-crash.html:
  • pointer-lock/lock-already-locked-expected.txt:
  • pointer-lock/lock-already-locked.html:
  • pointer-lock/lock-element-not-in-dom-expected.txt:
  • pointer-lock/lock-element-not-in-dom.html:
  • pointer-lock/locked-element-iframe-removed-from-dom-expected.txt:
  • pointer-lock/locked-element-iframe-removed-from-dom.html:
  • pointer-lock/locked-element-removed-from-dom-expected.txt:
  • pointer-lock/locked-element-removed-from-dom.html:
  • pointer-lock/mouse-event-api-expected.txt:
  • pointer-lock/mouse-event-api.html:
  • pointer-lock/mouse-event-delivery-expected.txt:
  • pointer-lock/mouse-event-delivery.html:
  • pointer-lock/pointer-lock-api-expected.txt:
  • pointer-lock/pointer-lock-api.html:
  • pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt:
  • pointer-lock/pointerlockchange-event-on-lock-lost.html:
  • pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt:
  • pointer-lock/pointerlockchange-pointerlockerror-events.html:
  • pointer-lock/pointerlockelement-null-when-pending-expected.txt:
  • pointer-lock/pointerlockelement-null-when-pending.html:

Remove webkit prefix on pointer lock functions and events.
This should have been done in r170585.

3:24 PM Changeset in webkit [170896] by timothy_horton@apple.com
  • 10 edits in trunk

[WK2] Expose a few drawing/compositing settings on WKPreferences(Private)
https://bugs.webkit.org/show_bug.cgi?id=134645

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _compositingBordersVisible]):
(-[WKPreferences _setCompositingBordersVisible:]):
(-[WKPreferences _compositingRepaintCountersVisible]):
(-[WKPreferences _setCompositingRepaintCountersVisible:]):
(-[WKPreferences _tiledScrollingIndicatorVisible]):
(-[WKPreferences _setTiledScrollingIndicatorVisible:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Expose layer borders, repaint counters, and the tiled scrolling indicator on WKPreferences, as SPI.

  • WebView/WebPreferences.mm:

(-[WebPreferences setSubpixelCSSOMElementMetricsEnabled:]):
Remove an extra unnecessary space.

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

Add menu items for layer borders and the tiled scrolling indicator.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateMenuItem:]):
(-[WK1BrowserWindowController layerBordersAreVisible]):
(-[WK1BrowserWindowController toggleLayerBordersVisibility:]):
Add getters/setters/validators for layer borders.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController layerBordersAreVisible]):
(-[WK2BrowserWindowController toggleLayerBordersVisibility:]):
(-[WK2BrowserWindowController tiledScrollingIndicatorIsVisible]):
(-[WK2BrowserWindowController toggleTiledScrollingIndicatorVisibility:]):
Add getters/setters/validators for layer borders and the tiled scrolling indicator.

(-[WK2BrowserWindowController isSubpixelCSSOMElementMetricsEnabled]): Deleted.
(-[WK2BrowserWindowController toggleSubpixelCSSOMElementMetricsEnabled:]): Deleted.
Remove the WebKit2 version of the subpixel metrics pref, because it doesn't work, because
nothing in WebKit2 reads this default, and there is no WebKit2 API for adjusting this preference.

3:10 PM Changeset in webkit [170895] by Bem Jones-Bey
  • 3 edits
    5 adds in trunk

Ensure we compute the height of replaced elements to 'auto' when appropriate.
https://bugs.webkit.org/show_bug.cgi?id=134700

Reviewed by David Hyatt.

Source/WebCore:
This fixes two issues:

1) If a replaced element has a percentage height specified then its
height should compute to 'auto' when its containing block does not
have a height 'specified explicitly'. We were taking this to mean when
its containing block's specified height value is 'auto' - in fact it
means when the containing block's computed height is auto.

2) Top and bottom on the containing block should only affect the
height of the block if that block has absolute or fixed position.

This brings us into line with IE, Firefox, and Chrome.

This is a port of Blink patches by Rob Hogan and David Vest.

Tests: css2.1/20110323/height-percentage-005.htm

fast/css/replaced-element-ignore-top-bottom.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):

LayoutTests:

  • css2.1/20110323/height-percentage-005-expected.html: Added.
  • css2.1/20110323/height-percentage-005.htm: Added.
  • css2.1/20110323/support/black96x96.png: Added.
  • fast/css/replaced-element-ignore-top-bottom-expected.txt: Added.
  • fast/css/replaced-element-ignore-top-bottom.html: Added.
2:47 PM Changeset in webkit [170894] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Added css jit profiler, disabled by default.
https://bugs.webkit.org/show_bug.cgi?id=134695

Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08
Reviewed by Benjamin Poulain.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ruleMatches):
Tell the RuleData when its compiled selector is used.

  • css/RuleSet.cpp:

(WebCore::RuleData::RuleData):
Initialize the compiled selector use count to 0.

  • css/RuleSet.h:

(WebCore::RuleData::~RuleData):
(WebCore::RuleData::compiledSelectorUsed):
Count and log the number of times a compiled selector is used.

  • cssjit/SelectorCompiler.h:

Added option for CSS_SELECTOR_JIT_PROFILING set to 0 by default.

  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
(WebCore::SelectorDataList::execute):
Tell the SelectorData when its compiled selector is used.

  • dom/SelectorQuery.h:

(WebCore::SelectorDataList::SelectorData::SelectorData):
(WebCore::SelectorDataList::SelectorData::~SelectorData):
(WebCore::SelectorDataList::SelectorData::compiledSelectorUsed):
Count and log the number of times a compiled selector is used.

12:27 PM Changeset in webkit [170893] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

WKProcessPoolConfigurationPrivate's maximumProcessCount property has no effect
https://bugs.webkit.org/show_bug.cgi?id=134711

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _initWithConfiguration:]):
Respect the maximumProcessCount.
Currently the default limit is UINT_MAX; if maximumProcessCount = 0 (the default), we'll use that limit.

11:45 AM Changeset in webkit [170892] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Steps towards CMake on Windows.
https://bugs.webkit.org/show_bug.cgi?id=134716

Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08
Reviewed by Martin Robinson.

  • CMakeLists.txt:

Added AppleWin and WinCairo to list of CMake ports.

  • Source/cmake/OptionsAppleWin.cmake: Added.
  • Source/cmake/OptionsWinCairo.cmake: Added.
  • Source/cmake/OptionsWindows.cmake:

Windows needs to use the system malloc. Other options to come.

10:53 AM Changeset in webkit [170891] by commit-queue@webkit.org
  • 25 edits
    7 adds in trunk

[GTK] Move user style sheet API out of WebKitWebViewGroup
https://bugs.webkit.org/show_bug.cgi?id=134551

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2014-07-08
Reviewed by Carlos Garcia Campos.

Source/WebKit2:

  • PlatformGTK.cmake: Include the new source files in the build.
  • UIProcess/API/C/gtk/WKView.cpp:

(WKViewCreate):
Adapt to the additional webkitWebViewBaseCreateWebPage() parameter.

  • UIProcess/API/gtk/WebKitUserContent.cpp: Added.

(toUserContentInjectedFrames):
(toUserStyleLevel):
(toStringVector):
(_WebKitUserStyleSheet::_WebKitUserStyleSheet):
(webkit_user_style_sheet_ref):
(webkit_user_style_sheet_unref):
(webkit_user_style_sheet_new):
(webkitWebKitUserStyleSheetToUserStyleSheet):

  • UIProcess/API/gtk/WebKitUserContent.h: Added.
  • UIProcess/API/gtk/WebKitUserContentManager.cpp: Added.

(_WebKitUserContentManagerPrivate::_WebKitUserContentManagerPrivate):
(webkit_user_content_manager_class_init):
(webkit_user_content_manager_new):
(webkit_user_content_manager_add_style_sheet):
(webkit_user_content_manager_remove_all_style_sheets):
(webkitUserContentManagerGetUserContentControllerProxy):

  • UIProcess/API/gtk/WebKitUserContentManager.h: Added.
  • UIProcess/API/gtk/WebKitUserContentManagerPrivate.h: Added.
  • UIProcess/API/gtk/WebKitUserContentPrivate.h: Added.
  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextCreatePageForWebView): Add a new parameter to allow
passing the WebKitUserContentManager that the web view will use.

  • UIProcess/API/gtk/WebKitWebContextPrivate.h: Ditto.
  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewConstructed): Added handling of the
"user-content-manager" property on construction.
(webkitWebViewSetProperty): Added support for the
"user-content-manager" property.
(webkitWebViewGetProperty): Added support for the
"user-content-manager" property.
(webkit_web_view_class_init): Added the "user-content-manager"
property definition to the WebKitWebView class.
(webkit_web_view_new_with_related_view): Made related views share
the same WebKitUserContentManager used by the view they are
related to.
(webkit_web_view_new_with_user_content_manager): Added.
(webkit_web_view_get_user_content_manager): Added.

  • UIProcess/API/gtk/WebKitWebView.h: Add new API methods.
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseCreate): Added a parameter to pass the user
content manager.
(webkitWebViewBaseCreateWebPage): Added a parameter to pass the user
content manager.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Ditto.
  • UIProcess/API/gtk/WebKitWebViewGroup.cpp: Removed the bits related

to user style sheet support from WebKitWebViewGroup.
(webkit_web_view_group_set_settings):
(toAPIArray): Deleted.
(webkit_web_view_group_add_user_style_sheet): Deleted.
(webkit_web_view_group_remove_all_user_style_sheets): Deleted.

  • UIProcess/API/gtk/WebKitWebViewGroup.h: Deleted the API methods

for user style sheet handling.

  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added the new API

functions and types, and removed the methods which are no longer
available in WebKitWebViewGroup.

  • UIProcess/API/gtk/webkit2.h: Add the new headers.
  • UIProcess/UserContent/WebUserContentControllerProxy.cpp: Added

methods to add and remove user style sheets, alike those used for
user scripts.
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addUserStyleSheet):
(WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):

  • UIProcess/UserContent/WebUserContentControllerProxy.h: Ditto.
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Adapt to the additional webkitWebViewBaseCreateWebPage() parameter.

  • WebProcess/UserContent/WebUserContentController.cpp: Added methods

to add and remove user style sheets, alike those used for user scripts.
(WebKit::WebUserContentController::addUserStyleSheets):
(WebKit::WebUserContentController::removeAllUserStyleSheets):

  • WebProcess/UserContent/WebUserContentController.h: Ditto.
  • WebProcess/UserContent/WebUserContentController.messages.in:

Ditto.

Tools:
Removes testing user style sheet injection from
TestWebKitWebViewGroup and moves that into a new
TestWebKitUserContentManager, adapting the existing tests to the new
API. Also, it contains a new test case for
webkit_web_view_new_with_user_content_manager().

  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp: Added.

(UserContentManagerTest::UserContentManagerTest):
(testWebViewNewWithUserContentManager):
(isStyleSheetInjectedForURLAtPath):
(fillURLListFromPaths):
(removeOldInjectedStyleSheetsAndResetLists):
(testUserContentManagerInjectedStyleSheet):
(serverCallback):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebViewGroup.cpp:

(beforeAll):
(afterAll):
(isStyleSheetInjectedForURLAtPath): Deleted.
(fillURLListFromPaths): Deleted.
(removeOldInjectedStyleSheetsAndResetLists): Deleted.
(testWebViewGroupInjectedStyleSheet): Deleted.
(serverCallback): Deleted.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::WebViewTest):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
10:50 AM Layout Test Protocol edited by dfarler@apple.com
(diff)
10:50 AM Changeset in webkit [170890] by fpizlo@apple.com
  • 9 edits in branches/ftlopt/Source/JavaScriptCore

[ftlopt] Get rid of Node::misc by moving the fields out of the union so that you can use replacement and owner simultaneously
https://bugs.webkit.org/show_bug.cgi?id=134730

Reviewed by Mark Lam.

This will allow for a better GCSE implementation.

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::canonicalizeGetLocalFor):

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::setReplacement):

  • dfg/DFGEdgeDominates.h:

(JSC::DFG::EdgeDominates::operator()):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::clearReplacements):
(JSC::DFG::Graph::initializeNodeOwners):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::performSubstitutionForEdge):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGNode.h:

(JSC::DFG::Node::Node):

  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

10:49 AM Layout Test Protocol edited by dfarler@apple.com
(diff)
10:43 AM Layout Test Protocol edited by dfarler@apple.com
(diff)
10:33 AM Changeset in webkit [170889] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Gstreamer missing from the install-dependencies script
https://bugs.webkit.org/show_bug.cgi?id=134727

Patch by Ziran Sun <ziran.sun@samsung.com> on 2014-07-08
Reviewed by Mario Sanchez Prada.

Added missing gstreamer dependencies for debian based systems.

  • gtk/install-dependencies: Added 2 dependencies for apt-get.
10:26 AM Layout Test Protocol edited by dfarler@apple.com
(diff)
10:25 AM Layout Test Protocol edited by dfarler@apple.com
(diff)
10:03 AM Layout Test Protocol edited by dfarler@apple.com
(diff)
10:01 AM Layout Test Protocol created by dfarler@apple.com
9:41 AM Changeset in webkit [170888] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

Add myself to the watchlist for text-related files
https://bugs.webkit.org/show_bug.cgi?id=134707

Reviewed by Timothy Horton.

  • Scripts/webkitpy/common/config/watchlist:
9:34 AM Changeset in webkit [170887] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GTK] Guard uses of RedirectedXCompositeWindow in WebKitWebViewBase with PLATFORM(X11)
https://bugs.webkit.org/show_bug.cgi?id=133871

Reviewed by Martin Robinson.

Guard uses of the RedirectedXCompositeWindow object in WebKitWebViewBase with the
PLATFORM(X11) build guard. This is required to properly support building the GTK
port only for the Wayland target.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseConstructed):
(webkitWebViewRenderAcceleratedCompositingResults):
(resizeWebKitWebViewBaseFromAllocation):
(webkitWebViewBaseUpdatePreferences):
(webkitWebViewBaseCreateWebPage):

8:26 AM Changeset in webkit [170886] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.4.4

Tagging the WebKitGTK+ 2.4.4 release

8:20 AM Changeset in webkit [170885] by Carlos Garcia Campos
  • 1 edit
    1 add in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API breaks test after r170700.

Add missing WebKitDOMXPathNSResolver.symbols that I forgot to add
in r170700.

  • bindings/gobject/WebKitDOMXPathNSResolver.symbols: Added.
5:08 AM Changeset in webkit [170884] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4

Unreviewed. Update NEWS and Versions.m4 for 2.4.4 release.

.:

  • Source/autotools/Versions.m4: Bump version numbers.

Source/WebKit/gtk:

  • NEWS: Added release notes for 2.4.4.
5:06 AM Changeset in webkit [170883] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Unreviewed. Fix make distcheck.

  • GNUmakefile.am:
2:40 AM Changeset in webkit [170882] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.4

[GTK][Stable] Google Maps doesn't work with Version/X in the user agent
https://bugs.webkit.org/show_bug.cgi?id=134631

Reviewed by Sergio Villar Senin.

Source/WebCore:

Because of the JSC version used in stable branch, when the
Version/X string is present in the user agent, google maps uses
JavaScript API that we don't support. Move the google domain quirks
from WebKit1 to WebCore and add a quirk for google maps.

  • platform/gtk/UserAgentGtk.cpp:

(WebCore::googleDomains):
(WebCore::otherGoogleDomains):
(WebCore::isGoogleDomain): Returns whether the given host is a
known google domain
(WebCore::buildUserAgentString): Do not include the Version/X
string in the user agent if the ShouldNotIncludeSafariVersion
quirk is present.
(WebCore::standardUserAgentForURL): Add RequiresStandardUserAgent
quirk for any google doamin and ShouldNotIncludeSafariVersion for
Google Maps.

Source/WebKit/gtk:

Remove user agent quirks for google domains, since they are now
implemented in WebCore.

  • WebCoreSupport/FrameLoaderClientGtk.cpp:

(WebKit::FrameLoaderClient::userAgent): Pass the WebCore::URL
const reference to webkitWebSettingsUserAgentForURI().

  • webkit/webkitwebsettings.cpp:

(webkitWebSettingsUserAgentForURI): Use
WebCore::standardUserAgentForURL() when site specific quirks are enabled.

  • webkit/webkitwebsettingsprivate.h:

Tools:

Move user agent quirks tests from WebKit1 to WebCore.

  • TestWebKitAPI/Tests/WebCore/gtk/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitGtk/testwebsettings.c:

(test_webkit_web_settings_user_agent):

2:24 AM Changeset in webkit [170881] by commit-queue@webkit.org
  • 4 edits in trunk

Add option to specify output file location in sunspider.
https://bugs.webkit.org/show_bug.cgi?id=134339

Patch by Gergo Balogh <gbalogh.u-szeged@partner.samsung.com> on 2014-07-08
Reviewed by Darin Adler.

PerformanceTests/SunSpider:

  • sunspider:

Tools:

  • Scripts/run-sunspider:

Jul 7, 2014:

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

Unreviewed. iOS build fix after r170871.

  • rendering/RenderThemeIOS.mm:

(WebCore::adjustInputElementButtonStyle):

10:51 PM Changeset in webkit [170879] by achristensen@apple.com
  • 2 edits in trunk/Tools

Unreviewed build fix.

  • WinLauncher/WinLauncher.vcxproj/WinLauncherLib.vcxproj:

Make Common.cpp excluded from both 32-bit and 64-bit builds.

9:35 PM Changeset in webkit [170878] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix the build after r170876

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-07

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::linkCode):

9:26 PM Changeset in webkit [170877] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Subpixel rendering: icloud.com password arrow has clipped circle at some window sizes.
https://bugs.webkit.org/show_bug.cgi?id=134710
<rdar://problem/17545291>

Reviewed by Simon Fraser.

Transparent layer clipping needs device pixel snapping.

Source/WebCore:
Test: fast/layers/wrong-clipping-semi-transparent-layer-on-subpixel-position.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):

LayoutTests:

  • fast/layers/wrong-clipping-semi-transparent-layer-on-subpixel-position-expected.html: Added.
  • fast/layers/wrong-clipping-semi-transparent-layer-on-subpixel-position.html: Added.
9:23 PM Changeset in webkit [170876] by benjamin@webkit.org
  • 35 edits in trunk/Source

LinkBuffer should not keep a reference to the MacroAssembler
https://bugs.webkit.org/show_bug.cgi?id=134668

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:
In FTL, the LinkBuffer can outlive the MacroAssembler that was used for code generation.
When that happens, the pointer m_assembler points to released memory. That was not causing
issues because the attribute is not used after linking, but that was not particularily
future proof.

This patch refactors LinkBuffer to avoid any lifetime risk. The MacroAssembler is now passed
as a reference, it is used for linking but no reference is ever stored with the LinkBuffer.

While fixing the call sites to use a reference, I also discovered LinkBuffer.h was included
everywhere. I refactored some #include to avoid that.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::linkCode):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::LinkBuffer):

  • bytecode/Watchpoint.cpp:
  • dfg/DFGDisassembler.cpp:
  • dfg/DFGDisassembler.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::linkFunction):

  • dfg/DFGOSRExitCompiler.cpp:
  • dfg/DFGPlan.cpp:
  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):
(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLCompile.cpp:

(JSC::FTL::generateICFastPath):
(JSC::FTL::fixFunctionBasedOnStackMaps):

  • ftl/FTLJSCall.cpp:
  • ftl/FTLJSCall.h:
  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToLLVM.cpp:
  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLThunks.cpp:

(JSC::FTL::osrExitGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/ArityCheckFailReturnThunks.cpp:

(JSC::ArityCheckFailReturnThunks::returnPCsFor):

  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

  • jit/JITCall.cpp:

(JSC::JIT::privateCompileClosureCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::privateCompileClosureCall):

  • jit/JITDisassembler.cpp:
  • jit/JITDisassembler.h:
  • jit/JITOpcodes.cpp:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompilePutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::stringGetByValStubGenerator):

  • jit/RegisterPreservationWrapperGenerator.cpp:

(JSC::generateRegisterPreservationWrapper):
(JSC::registerRestorationThunkGenerator):

  • jit/Repatch.cpp:

(JSC::generateByIdStub):
(JSC::tryCacheGetByID):
(JSC::emitPutReplaceStub):
(JSC::emitPutTransitionStub):
(JSC::tryRepatchIn):
(JSC::linkClosureCall):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::finalize):

  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::linkForThunkGenerator):
(JSC::linkClosureCallForThunkGenerator):
(JSC::virtualForThunkGenerator):
(JSC::nativeForGenerator):
(JSC::arityFixup):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):

  • yarr/YarrJIT.cpp:

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

Source/WebCore:

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):

9:13 PM Changeset in webkit [170875] by Alan Bujtas
  • 6 edits
    2 adds in trunk

Subpixel rendering: Inline box decoration rounds to integral.
https://bugs.webkit.org/show_bug.cgi?id=134523
<rdar://problem/17530298>

Reviewed by Darin Adler.

This patch removes 2 integral roundings from InlineFlowBox:

  1. Border and padding sizes are implicitly integral truncated by the 'int' return type of borderLogicalLeft/Right()/paddingLogicalLeft/Right(). It results in losing fractional border/padding values.
  2. Painting rectangle is explicitly rounded which pushes border and other decoration elements to odd device pixel positions on retina displays.

These values get pixel snapped right before calling in to GraphicsContext::*.

Source/WebCore:
Test: fast/inline/hidpi-inline-text-decoration-with-subpixel-value.html

  • rendering/InlineBox.h:

(WebCore::InlineBox::frameRect):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::nodeAtPoint):
(WebCore::InlineFlowBox::paintBoxDecorations):
(WebCore::InlineFlowBox::paintMask):
(WebCore::InlineFlowBox::roundedFrameRect): Deleted.

  • rendering/InlineFlowBox.h:

(WebCore::InlineFlowBox::borderLogicalLeft):
(WebCore::InlineFlowBox::borderLogicalRight):
(WebCore::InlineFlowBox::paddingLogicalLeft):
(WebCore::InlineFlowBox::paddingLogicalRight):

LayoutTests:

  • fast/inline/hidpi-inline-text-decoration-with-subpixel-value-expected.html: Added.
  • fast/inline/hidpi-inline-text-decoration-with-subpixel-value.html: Added.
  • platform/mac/css1/formatting_model/inline_elements-expected.txt:
9:00 PM Changeset in webkit [170874] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[EFL] gardening after r170864
https://bugs.webkit.org/show_bug.cgi?id=134713

Unreviewed, EFL gardening.

Patch by Hunseop Jeong <Hunseop Jeong> on 2014-07-07

  • platform/efl/TestExpectations: Report and mark several unexpected image-only failures.
8:22 PM Changeset in webkit [170873] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Pass RenderLayer reference instead of pointer to RenderLayer::paintingExtent().
https://bugs.webkit.org/show_bug.cgi?id=134714

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/RenderLayer.cpp: * -> &

(WebCore::expandClipRectForRegionAndReflection):
(WebCore::expandClipRectForDescendantsAndReflection):
(WebCore::transparencyClipBox):
(WebCore::paintingExtent):
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::paintTransformedLayerIntoFragments):
(WebCore::RenderLayer::hitTestTransformedLayerInFragments):
(WebCore::RenderLayer::paintingExtent): Deleted.

  • rendering/RenderLayer.h:
7:40 PM Changeset in webkit [170872] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Turn on accelerated drawing for WebKit2 by default
https://bugs.webkit.org/show_bug.cgi?id=134708
<rdar://problem/17584642>

Reviewed by Simon Fraser.

  • Shared/WebPreferencesDefinitions.h:

Make Mac match iOS, in that accelerated drawing is on by default.

7:27 PM Changeset in webkit [170871] by mmaxfield@apple.com
  • 8 edits in trunk/Source/WebCore

Remove misleadingly-named Font::isSVGFont()
https://bugs.webkit.org/show_bug.cgi?id=134697

Reviewed by Dean Jackson.

Being a SVG font is a property of the FontData object, not
the Font object. Providing an isSVGFont() function on the
Font class will likely lead to incorrect code and non-obvious
bugs.

No new tests because there is no behavior change.

  • platform/graphics/Font.h:

(WebCore::Font::isSVGFont): Deleted.

  • platform/graphics/mac/FontMac.mm:

(WebCore::Font::primaryFontDataIsSystemFont):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::constructTextRun):

  • rendering/RenderBlock.cpp:

(WebCore::constructTextRunInternal):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::constructTextRun):

  • rendering/svg/SVGTextMetrics.cpp:

(WebCore::SVGTextMetrics::constructTextRun):
(WebCore::SVGTextMetrics::SVGTextMetrics):

6:56 PM Changeset in webkit [170870] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Don't leak _WKRemoteObjectRegistry in WKBrowsingContextController
https://bugs.webkit.org/show_bug.cgi?id=134703

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController _remoteObjectRegistry]):
Adoption is important!!

6:52 PM Changeset in webkit [170869] by beidson@apple.com
  • 13 edits in trunk/Source/WebCore

Move Gamepad index down into PlatformGamepad.
https://bugs.webkit.org/show_bug.cgi?id=134670

Reviewed by Darin Adler.

PlatformGamepads always have an inherent index anyways.
This will make things easier in all upcoming work.

  • Modules/gamepad/Gamepad.cpp:

(WebCore::Gamepad::Gamepad):

  • Modules/gamepad/Gamepad.h:
  • Modules/gamepad/GamepadManager.cpp:

(WebCore::GamepadManager::platformGamepadConnected):
(WebCore::GamepadManager::platformGamepadDisconnected):
(WebCore::GamepadManager::makeGamepadsVisibileToBlindNavigators):

  • Modules/gamepad/GamepadManager.h:
  • Modules/gamepad/NavigatorGamepad.cpp:

(WebCore::NavigatorGamepad::gamepadsBecameVisible):
(WebCore::NavigatorGamepad::gamepadConnected):
(WebCore::NavigatorGamepad::gamepadDisconnected):

  • Modules/gamepad/NavigatorGamepad.h:
  • platform/GamepadProviderClient.h:
  • platform/PlatformGamepad.h:

(WebCore::PlatformGamepad::index):
(WebCore::PlatformGamepad::PlatformGamepad):

  • platform/mac/HIDGamepad.cpp:

(WebCore::HIDGamepad::HIDGamepad):

  • platform/mac/HIDGamepad.h:
  • platform/mac/HIDGamepadProvider.cpp:

(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::removeGamepadForDevice):

  • platform/mac/HIDGamepadProvider.h:
6:38 PM Changeset in webkit [170868] by jonowells@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS style declaration editor should ignore empty lines when determining prefix whitespace
https://bugs.webkit.org/show_bug.cgi?id=134704

Reviewed by Joseph Pecoraro.

When checking for zero-length prefix whitespace, completely empty lines are now ignored
as these lines are most often used for organizing rules into groups and often have their
whitespace removed due to trailing whitespace removal conventions.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:
5:14 PM Changeset in webkit [170867] by Lucas Forschler
  • 5 edits in branches/safari-537.75-branch/Source

Versioning.

5:10 PM Changeset in webkit [170866] by Lucas Forschler
  • 1 copy in tags/Safari-537.75.18

New Tag.

5:07 PM Changeset in webkit [170865] by Lucas Forschler
  • 4 edits in branches/safari-537.75-branch/Source

Merged r169927. <rdar://problem/17563093>

4:44 PM Changeset in webkit [170864] by Simon Fraser
  • 15 edits in trunk/Source

[UI-side compositing] Support reflections on custom layers like video
https://bugs.webkit.org/show_bug.cgi?id=134701

Reviewed by Tim Horton.

Source/WebCore:

Add a LayerTypeWebGLLayer layer type, and support casting to PlatformCALayerRemoteCustom.

  • WebCore.exp.in: Export PlatformCALayerMac::layerTypeForPlatformLayer(CALayer*), and sort.
  • platform/graphics/ca/PlatformCALayer.h:

(WebCore::PlatformCALayer::isPlatformCALayerRemoteCustom):

  • platform/graphics/ca/mac/PlatformCALayerMac.h:
  • platform/graphics/ca/mac/PlatformCALayerMac.mm:

(PlatformCALayerMac::layerTypeForPlatformLayer):
(PlatformCALayerMac::PlatformCALayerMac):
(PlatformCALayerMac::commonInit):

Source/WebKit2:

For video reflections, we have to support cloning of PlatformCALayerRemoteCustom
in the web process. Do so by implementing PlatformCALayerRemoteCustom::clone(),
which does the right gyrations to get AVPlayerLayers cloned, then makes a
new PlatformCALayerRemoteCustom to wrap the new layer. This ends up getting
its own context hosting ID, allowing the clone to show in the UI process.

Attempt to do the same for WebGL, but turn it off because it breaks.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode): Unconditionally encode/decode
the hostingContextID. It will be 0 for most layers.
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
(WebKit::RemoteLayerTreeTransaction::description):

  • UIProcess/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::createLayer):

  • UIProcess/mac/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::createLayer):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::create): Creation with a custom PlatformLayer* always
creates a PlatformCALayerRemoteCustom.
(WebKit::PlatformCALayerRemote::clone): Factor some code.
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:
  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:

(WebKit::PlatformCALayerRemoteCustom::create):
(WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
(WebKit::PlatformCALayerRemoteCustom::clone): Clone by making an instance of the
correct type of platform layer when possible, then wrapping a PlatformCALayerRemoteCustom
around it.
(WebKit::PlatformCALayerRemoteCustom::contents):
(WebKit::PlatformCALayerRemoteCustom::setContents):

  • WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::layerWasCreated):
(WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):

4:44 PM Changeset in webkit [170863] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception debugging iOS 7 NetworkAgent.loadResource is unavailable
https://bugs.webkit.org/show_bug.cgi?id=134689

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-07
Reviewed by Darin Adler.

Gracefully handle if NetworkAgent.loadResource is unavailable.

  • UserInterface/Controllers/SourceMapManager.js:

(WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):

  • UserInterface/Models/SourceMapResource.js:
4:44 PM Changeset in webkit [170862] by Simon Fraser
  • 5 edits in trunk/Source

[UI-side compositing] Crash when starting a filter transition on a reflected layer
https://bugs.webkit.org/show_bug.cgi?id=134694

Reviewed by Tim Horton.

Source/WebCore:

Don't call the owner if we failed to find the animation key (which actually
isn't used by PlatformCALayerMac anyway).

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

(-[WebAnimationDelegate animationDidStart:]):

Source/WebKit2:

When cloned layers had animations, we would fire two animationDidStart callbacks,
but the second would pass an empty animationKey string to the web process, resulting
in a crash.

Fix by not blindly copying all layer properties when cloning PlatformCALayerRemotes,
since the clone would include addedAnimations, and then get the same animations
added on top by the caller.

Also protect against an empty animation key in the animationDidStart callback.

  • UIProcess/mac/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::animationDidStart):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::PlatformCALayerRemote):
(WebKit::PlatformCALayerRemote::clone): Don't copy all the properties; copy
them manually as PlatformCALayerMac does. Only copy the big things if they don't
have their default values.
(WebKit::PlatformCALayerRemote::copyFiltersFrom): Need an implementation of this
for clone() to call.

4:44 PM Changeset in webkit [170861] by Simon Fraser
  • 2 edits in trunk/Tools

Have MiniBrowser log and reload if the Web Content Process crashes
https://bugs.webkit.org/show_bug.cgi?id=134691

Reviewed by Tim Horton.

Implement _webViewWebProcessDidCrash, log and reload when the web process
crashes.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController _webViewWebProcessDidCrash:]):

4:33 PM Changeset in webkit [170860] by mhahnenberg@apple.com
  • 2 edits in branches/ftlopt/Source/JavaScriptCore

Merge r170011 from trunk.

2014-06-16 Michael Saboff <msaboff@apple.com>


Convert ASSERT in inlineFunctionForCapabilityLevel to early return
https://bugs.webkit.org/show_bug.cgi?id=133903


Reviewed by Mark Hahnenberg.


Hardened code by Converting ASSERT to return CannotCompile.


  • dfg/DFGCapabilities.h: (JSC::DFG::inlineFunctionForCapabilityLevel):
4:18 PM Changeset in webkit [170859] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Nearly everything in the UIProcess "leaks" when WKWebView is torn down
https://bugs.webkit.org/show_bug.cgi?id=134699
<rdar://problem/17581777>

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
Adoption is important!

2:42 PM Changeset in webkit [170858] by enrica@apple.com
  • 9 edits in trunk/Source/WebKit2

REGRESSION(iOS WK2): arrow keys movements don't work.
https://bugs.webkit.org/show_bug.cgi?id=134561
<rdar://problem/16827629>

Reviewed by Benjamin Poulain.

This change add the implementations for cursor movement selectors.
It also provides a mechanism to ensure that every selection
change in WebKit is reflected in UIKit so that it can update the
autocorrection data. This way we ensure that the autocorraction state
is consistent even when selection changes are originated by JavaScript.
WebPageProxy::editorStateChanged now notifies the page client when the
selection is about to change as well as when it actually changed.

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

(WebKit::WebPageProxy::editorStateChanged):

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

(WebKit::PageClientImpl::selectionWillChange):

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

(-[WKContentView cut:]): Removed incorrect calls to textWillChange and
textDidChange.
(-[WKContentView paste:]):
(-[WKContentView _moveUp:withHistory:]):
(-[WKContentView _moveDown:withHistory:]):
(-[WKContentView _moveLeft:withHistory:]):
(-[WKContentView _moveRight:withHistory:]):
(-[WKContentView _moveToStartOfWord:withHistory:]):
(-[WKContentView _moveToStartOfParagraph:withHistory:]):
(-[WKContentView _moveToStartOfLine:withHistory:]):
(-[WKContentView _moveToStartOfDocument:withHistory:]):
(-[WKContentView _moveToEndOfWord:withHistory:]):
(-[WKContentView _moveToEndOfParagraph:withHistory:]):
(-[WKContentView _moveToEndOfLine:withHistory:]):
(-[WKContentView _moveToEndOfDocument:withHistory:]):
(-[WKContentView _selectionWillChange]):
(-[WKContentView _selectionChanged]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::notifySelectionWillChange):

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

Fast path for jsStringWithCache() when asked for the same string repeatedly.
<https://webkit.org/b/134635>

Reviewed by Darin Adler.

Follow-up to r170818 addressing a review comment by Geoff Garen.

  • runtime/JSString.cpp:

(JSC::jsStringWithCacheSlowCase):

1:52 PM Changeset in webkit [170856] by andersca@apple.com
  • 8 edits in trunk/Source/WebKit2

Add SPI for saving and restoring a WKWebView's _WKSessionState
https://bugs.webkit.org/show_bug.cgi?id=134693

Reviewed by Dan Bernstein.

  • UIProcess/API/C/WKPage.cpp:

(WKPageRestoreFromSessionState):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _sessionState]):
(-[WKWebView _restoreFromSessionStateData:]):
(-[WKWebView _restoreFromSessionState:]):
(-[WKWebView _restoreSessionState:andNavigate:]):

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

(-[_WKSessionState _initWithSessionState:]):

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

(WebKit::WebPageProxy::restoreFromSessionState):

  • UIProcess/WebPageProxy.h:
1:39 PM Changeset in webkit [170855] by fpizlo@apple.com
  • 36 edits
    14 adds in branches/ftlopt

[ftlopt] Infer immutable object properties
https://bugs.webkit.org/show_bug.cgi?id=134567

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore:

This introduces a new way of inferring immutable object properties. A property is said to
be immutable if after its creation (i.e. the transition that creates it), we never
overwrite it (i.e. replace it) or delete it. Immutability is a property of an "own
property" - so if we say that "f" is immutable at "o" then we are implying that "o" has "f"
directly and not on a prototype. More specifically, the immutability inference will prove
that a property on some structure is immutable. This means that, for example, we may have a
structure S1 with property "f" where we claim that "f" at S1 is immutable, but S1 has a
transition to S2 that adds a new property "g" and we may claim that "f" at S2 is actually
mutable. This is mainly for convenience; it allows us to decouple immutability logic from
transition logic. Immutability can be used to constant-fold accesses to objects at
DFG-time. The DFG needs to prove the following to constant-fold the access:

  • The base of the access must be a constant object pointer. We prove that a property at a structure is immutable, but that says nothing of its value; each actual instance of that property may have a different value. So, a constant object pointer is needed to get an actual constant instance of the immutable value.


  • A check (or watchpoint) must have been emitted proving that the object has a structure that allows loading the property in question.


  • The replacement watchpoint set of the property in the structure that we've proven the object to have is still valid and we add a watchpoint to it lazily. The replacement watchpoint set is the key new mechanism that this change adds. It's possible that we have proven that the object has one of many structures, in which case each of those structures needs a valid replacement watchpoint set.


The replacement watchpoint set is created the first time that any access to the property is
cached. A put replace cache will create, and immediately invalidate, the watchpoint set. A
get cache will create the watchpoint set and make it start watching. Any non-cached put
access will invalidate the watchpoint set if one had been created; the underlying algorithm
ensures that checking for the existence of a replacement watchpoint set is very fast in the
common case. This algorithm ensures that no cached access needs to ever do any work to
invalidate, or check the validity of, any replacement watchpoint sets. It also has some
other nice properties:

  • It's very robust in its definition of immutability. The strictest that it will ever be is that for any instance of the object, the property must be written to only once, specifically at the time that the property is created. But it's looser than this in practice. For example, the property may be written to any number of times before we add the final property that the object will have before anyone reads the property; this works since for optimization purposes we only care if we detect immutability on the structure that the object will have when it is most frequently read from, not any previous structure that the object had. Also, we may write to the property any number of times before anyone caches accesses to it.


  • It is mostly orthogonal to structure transitions. No new structures need to be created to track the immutability of a property. Hence, there is no risk from this feature causing more polymorphism. This is different from the previous "specificValue" constant inference, which did cause additional structures to be created and sometimes those structures led to fake polymorphism. This feature does leverage existing transitions to do some of the watchpointing: property deletions don't fire the replacement watchpoint set because that would cause a new structure and so the mandatory structure check would fail. Also, this feature is guaranteed to never kick in for uncacheable dictionaries because those wouldn't allow for cacheable accesses - and it takes a cacheable access for this feature to be enabled.


  • No memory overhead is incurred except when accesses to the property are cached. Dictionary properties will typically have no meta-data for immutability. The number of replacement watchpoint sets we allocate is proportional to the number of inline caches in the program, which is typically must smaller than the number of structures or even the number of objects.


This inference is far more powerful than the previous "specificValue" inference, so this
change also removes all of that code. It's interesting that the amount of code that is
changed to remove that feature is almost as big as the amount of code added to support the
new inference - and that's if you include the new tests in the tally. Without new tests,
it appears that the new feature actually touches less code!

There is one corner case where the previous "specificValue" inference was more powerful.
You can imagine someone creating objects with functions as self properties on those
objects, such that each object instance had the same function pointers - essentially,
someone might be trying to create a vtable but failing at the whole "one vtable for many
instances" concept. The "specificValue" inference would do very well for such programs,
because a structure check would be sufficient to prove a constant value for all of the
function properties. This new inference will fail because it doesn't track the constant
values of constant properties; instead it detects the immutability of otherwise variable
properties (in the sense that each instance of the property may have a different value).
So, the new inference requires having a particular object instance to actually get the
constant value. I think it's OK to lose this antifeature. It took a lot of code to support
and was a constant source of grief in our transition logic, and there doesn't appear to be
any real evidence that programs benefited from that particular kind of inference since
usually it's the singleton prototype instance that has all of the functions.

This change is a speed-up on everything. date-format-xparb and both SunSpider/raytrace and
V8/raytrace seem to be the biggest winners among the macrobenchmarks; they see >5%
speed-ups. Many of our microbenchmarks see very large performance improvements, even 80% in
one case.

  • bytecode/ComplexGetStatus.cpp:

(JSC::ComplexGetStatus::computeFor):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFromLLInt):
(JSC::GetByIdStatus::computeForStubInfo):
(JSC::GetByIdStatus::computeFor):

  • bytecode/GetByIdVariant.cpp:

(JSC::GetByIdVariant::GetByIdVariant):
(JSC::GetByIdVariant::operator=):
(JSC::GetByIdVariant::attemptToMerge):
(JSC::GetByIdVariant::dumpInContext):

  • bytecode/GetByIdVariant.h:

(JSC::GetByIdVariant::alternateBase):
(JSC::GetByIdVariant::specificValue): Deleted.

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeForStubInfo):
(JSC::PutByIdStatus::computeFor):

  • bytecode/PutByIdVariant.cpp:

(JSC::PutByIdVariant::operator=):
(JSC::PutByIdVariant::setter):
(JSC::PutByIdVariant::dumpInContext):

  • bytecode/PutByIdVariant.h:

(JSC::PutByIdVariant::specificValue): Deleted.

  • bytecode/Watchpoint.cpp:

(JSC::WatchpointSet::fireAllSlow):
(JSC::WatchpointSet::fireAll): Deleted.

  • bytecode/Watchpoint.h:

(JSC::WatchpointSet::fireAll):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleGetByOffset):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::emitGetByOffset):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::isStringPrototypeMethodSane):
(JSC::DFG::FixupPhase::canOptimizeStringObjectAccess):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::tryGetConstantProperty):
(JSC::DFG::Graph::visitChildren):

  • dfg/DFGGraph.h:
  • dfg/DFGWatchableStructureWatchingPhase.cpp:

(JSC::DFG::WatchableStructureWatchingPhase::run):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):

  • jit/JITOperations.cpp:
  • jit/Repatch.cpp:

(JSC::repatchByIdSelfAccess):
(JSC::generateByIdStub):
(JSC::tryCacheGetByID):
(JSC::tryCachePutByID):
(JSC::tryBuildPutByIdList):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::putToScopeCommon):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::tryCachePutToScopeGlobal):

  • runtime/IntendedStructureChain.cpp:

(JSC::IntendedStructureChain::mayInterceptStoreTo):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::reset):

  • runtime/JSObject.cpp:

(JSC::JSObject::put):
(JSC::JSObject::putDirectNonIndexAccessor):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::defaultValue):
(JSC::getCallableObjectSlow): Deleted.
(JSC::JSObject::getPropertySpecificValue): Deleted.

  • runtime/JSObject.h:

(JSC::JSObject::getDirect):
(JSC::JSObject::getDirectOffset):
(JSC::JSObject::inlineGetOwnPropertySlot):
(JSC::JSObject::putDirectInternal):
(JSC::JSObject::putOwnDataProperty):
(JSC::JSObject::putDirect):
(JSC::JSObject::putDirectWithoutTransition):
(JSC::getCallableObject): Deleted.

  • runtime/JSScope.cpp:

(JSC::abstractAccess):

  • runtime/PropertyMapHashTable.h:

(JSC::PropertyMapEntry::PropertyMapEntry):
(JSC::PropertyTable::copy):

  • runtime/PropertyTable.cpp:

(JSC::PropertyTable::clone):
(JSC::PropertyTable::PropertyTable):
(JSC::PropertyTable::visitChildren): Deleted.

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap):
(JSC::Structure::addPropertyTransitionToExistingStructureImpl):
(JSC::Structure::addPropertyTransitionToExistingStructure):
(JSC::Structure::addPropertyTransitionToExistingStructureConcurrently):
(JSC::Structure::addPropertyTransition):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::allocateRareData):
(JSC::Structure::ensurePropertyReplacementWatchpointSet):
(JSC::Structure::startWatchingPropertyForReplacements):
(JSC::Structure::didCachePropertyReplacement):
(JSC::Structure::startWatchingInternalProperties):
(JSC::Structure::copyPropertyTable):
(JSC::Structure::copyPropertyTableForPinning):
(JSC::Structure::getConcurrently):
(JSC::Structure::get):
(JSC::Structure::add):
(JSC::Structure::visitChildren):
(JSC::Structure::prototypeChainMayInterceptStoreTo):
(JSC::Structure::dump):
(JSC::Structure::despecifyDictionaryFunction): Deleted.
(JSC::Structure::despecifyFunctionTransition): Deleted.
(JSC::Structure::despecifyFunction): Deleted.
(JSC::Structure::despecifyAllFunctions): Deleted.
(JSC::Structure::putSpecificValue): Deleted.

  • runtime/Structure.h:

(JSC::Structure::startWatchingPropertyForReplacements):
(JSC::Structure::startWatchingInternalPropertiesIfNecessary):
(JSC::Structure::startWatchingInternalPropertiesIfNecessaryForEntireChain):
(JSC::Structure::transitionDidInvolveSpecificValue): Deleted.
(JSC::Structure::disableSpecificFunctionTracking): Deleted.

  • runtime/StructureInlines.h:

(JSC::Structure::getConcurrently):
(JSC::Structure::didReplaceProperty):
(JSC::Structure::propertyReplacementWatchpointSet):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::destroy):

  • runtime/StructureRareData.h:
  • tests/stress/infer-constant-global-property.js: Added.

(foo.Math.sin):
(foo):

  • tests/stress/infer-constant-property.js: Added.

(foo):

  • tests/stress/jit-cache-poly-replace-then-cache-get-and-fold-then-invalidate.js: Added.

(foo):
(bar):

  • tests/stress/jit-cache-replace-then-cache-get-and-fold-then-invalidate.js: Added.

(foo):
(bar):

  • tests/stress/jit-put-to-scope-global-cache-watchpoint-invalidate.js: Added.

(foo):
(bar):

  • tests/stress/llint-cache-replace-then-cache-get-and-fold-then-invalidate.js: Added.

(foo):
(bar):

  • tests/stress/llint-put-to-scope-global-cache-watchpoint-invalidate.js: Added.

(foo):
(bar):

  • tests/stress/repeat-put-to-scope-global-with-same-value-watchpoint-invalidate.js: Added.

(foo):
(bar):

LayoutTests:

  • js/regress/infer-constant-global-property-expected.txt: Added.
  • js/regress/infer-constant-global-property.html: Added.
  • js/regress/infer-constant-property-expected.txt: Added.
  • js/regress/infer-constant-property.html: Added.
  • js/regress/script-tests/infer-constant-global-property.js: Added.
  • js/regress/script-tests/infer-constant-property.js: Added.
1:28 PM Changeset in webkit [170854] by andersca@apple.com
  • 3 edits
    5 copies in trunk/Source/WebKit2

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

Reviewed by Geoffrey Garen.

  • UIProcess/API/Cocoa/_WKSessionState.h: Copied from Source/WebKit2/UIProcess/LegacySessionStateCoding.h.
  • UIProcess/API/Cocoa/_WKSessionState.mm: Copied from Source/WebKit2/UIProcess/LegacySessionStateCoding.h.

(-[_WKSessionState initWithData:]):
(-[_WKSessionState data]):

  • UIProcess/API/Cocoa/_WKSessionStateInternal.h: Copied from Source/WebKit2/UIProcess/LegacySessionStateCoding.h.
  • UIProcess/Cocoa/SessionStateCoding.h: Copied from Source/WebKit2/UIProcess/LegacySessionStateCoding.h.
  • UIProcess/Cocoa/SessionStateCoding.mm: Copied from Source/WebKit2/UIProcess/LegacySessionStateCoding.h.

(WebKit::encodeSessionState):
(WebKit::decodeSessionState):

  • UIProcess/LegacySessionStateCoding.h:
  • WebKit2.xcodeproj/project.pbxproj:
12:52 PM Changeset in webkit [170853] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Some of the WKPreferences (API) property getters read like questions
https://bugs.webkit.org/show_bug.cgi?id=134678
<rdar://problem/17576847>

Reviewed by Dan Bernstein.

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

(-[WKPreferences javaScriptIsEnabled]):
(-[WKPreferences javaIsEnabled]):
(-[WKPreferences plugInsAreEnabled]):
(-[WKPreferences isJavaScriptEnabled]): Deleted.
(-[WKPreferences isJavaEnabled]): Deleted.
(-[WKPreferences arePlugInsEnabled]): Deleted.

11:50 AM Changeset in webkit [170852] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

ServicesOverlayController menus show up in the wrong place.
<rdar://problem/17130576> and https://bugs.webkit.org/show_bug.cgi?id=134684

Reviewed by Tim Horton.

  • WebProcess/WebPage/mac/ServicesOverlayController.mm:

(WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged): Handle cases where

the telephone number is in a subframe.

(WebKit::ServicesOverlayController::handleClick): The click point is always in main frame document

coordinates, so convert it to window coordinates using the main frame’s FrameView.

11:31 AM Changeset in webkit [170851] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Add missing ENABLE(FTL_JIT) guards
https://bugs.webkit.org/show_bug.cgi?id=134680

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-07-07
Reviewed by Darin Adler.

  • ftl/FTLDWARFDebugLineInfo.cpp:
  • ftl/FTLDWARFDebugLineInfo.h:
  • ftl/FTLGeneratedFunction.h:
11:30 AM Changeset in webkit [170850] by bshafiei@apple.com
  • 5 edits in branches/safari-537.75-branch/Source

Versioning.

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

[iOS WebGL] Fix crash with too many nested glsl functions.
https://bugs.webkit.org/show_bug.cgi?id=134683
<rdar://problem/17541529>

Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-07
Reviewed by Geoffrey Garen.

This fixes the Khronos WebGL 1.0.3 test nested-functions-should-not-crash.html.

  • platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:

(WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
Add SH_LIMIT_CALL_STACK_DEPTH to extraCompileOptions.

11:18 AM Changeset in webkit [170848] by berto@igalia.com
  • 2 edits in trunk/Tools

update-webkitgtk-libs script fails by unsatisfied dependencies
https://bugs.webkit.org/show_bug.cgi?id=134547

Reviewed by Martin Robinson.

Install libxcb-xfixes0-dev, needed to build Mesa.

  • gtk/install-dependencies:
10:52 AM Changeset in webkit [170847] by dbates@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Add test to ensure that SVGDocumentExtensions::rebuildElements() doesn't rebuild invalid elements
https://bugs.webkit.org/show_bug.cgi?id=134417
<rdar://problem/17479854>

Reviewed by David Kilzer.

Add a test that implicitly checks that the list of SVG elements to be rebuilt doesn't contain
removed elements. Run this test in DRT with Guard Malloc/MallocScribble (or the platform-
specific equivalent) enabled.

  • svg/custom/overwrite-page-that-has-use-elements-expected.txt: Added.
  • svg/custom/overwrite-page-that-has-use-elements.html: Added.
10:20 AM Changeset in webkit [170846] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Unreviewed Mac gardening after r170817.

  • platform/mac-wk2/TestExpectations:
9:21 AM Changeset in webkit [170845] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] Assertion failure in NavigationState::LoaderClient::didStartProvisionalLoadForFrame (navigationID) when navigating through the page cache
https://bugs.webkit.org/show_bug.cgi?id=134682

Reviewed by Tim Horton.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::LoaderClient::didStartProvisionalLoadForFrame): Replaced the
assertion with a FIXME.
(WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
Ditto.
(WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame): Ditto.
(WebKit::NavigationState::LoaderClient::didCommitLoadForFrame): Ditto.
(WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame): Ditto.
(WebKit::NavigationState::LoaderClient::didFinishLoadForFrame): Ditto.
(WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame): Ditto.

4:48 AM Changeset in webkit [170844] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL] Fix cursor artifacts on naver map site.
https://bugs.webkit.org/show_bug.cgi?id=134649

Patch by KwangHyuk Kim <hyuki.kim@samsung.com> on 2014-07-07
Reviewed by Gyuyoung Kim.

Old evas cursor and ecore x cursor are reset before new cursor is applied.

  • UIProcess/API/efl/EwkView.cpp:

(EwkView::updateCursor):

2:04 AM Changeset in webkit [170843] by zandobersek@gmail.com
  • 5 edits in trunk/Source

Enable ARMv7 disassembler for the GTK port
https://bugs.webkit.org/show_bug.cgi?id=134676

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

  • CMakeLists.txt: Add ARMv7DOpcode.cpp file to the build.
  • disassembler/ARMv7/ARMv7DOpcode.cpp: Include the string.h header for strlen().

Source/WTF:

  • wtf/Platform.h: Enable the ARMv7 disassembler for the GTK port when

targeting the ARMv7 architecture.

12:38 AM Changeset in webkit [170842] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

Remove failure expectations for tests that have been passing after r168046, r168350, r168400,
r168479, r169309, r169620, r169689 and r169799.

Patch by Lorenzo Tilve <ltilve@igalia.com> on 2014-07-07

  • platform/gtk/TestExpectations:
12:16 AM Changeset in webkit [170841] by Ion Rosca
  • 6 edits
    6 adds in trunk

[CSS Blending]The background images set on the root element will blend on an initial white backdrop.
https://bugs.webkit.org/show_bug.cgi?id=134342

Reviewed by Dean Jackson.

Source/WebCore:
Tests: css3/blending/background-blend-mode-body-image.html

css3/blending/background-blend-mode-body-transparent-color-and-image.html
css3/blending/background-blend-mode-body-transparent-image.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintFillLayers):
If the background layers have blend modes, we paint the base background color first,
before starting a new transparency layer. After creating the transparency layer,
the base background will be skipped, and the background layers will blend on top of
a transparent backdrop.
(WebCore::RenderBox::paintFillLayer):

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):
This method is able to paint only the base background color (BaseBackgroundColorOnly),
skipping the background-color and background-images. This option is available only
on bottom layer of the root renderer and only if the background color is not opaque,
otherwise the method will return early.
Another option is to paint the root background without using the base background color
(BaseBackgroundColorSkip).

  • rendering/RenderBoxModelObject.h:

Adding the BaseBackgroundColorUsage enum.

LayoutTests:

  • css3/blending/background-blend-mode-body-image-expected.html: Added.
  • css3/blending/background-blend-mode-body-image.html: Added.
  • css3/blending/background-blend-mode-body-transparent-color-and-image-expected.html: Added.
  • css3/blending/background-blend-mode-body-transparent-color-and-image.html: Added.
  • css3/blending/background-blend-mode-body-transparent-image-expected.html: Added.
  • css3/blending/background-blend-mode-body-transparent-image.html: Added.
12:14 AM WebKitGTK/KeepingTheTreeGreen edited by ltilve@igalia.com
(diff)
Note: See TracTimeline for information about the timeline view.