Timeline
Aug 11, 2014:
- 8:20 PM Changeset in webkit [172429] by
-
- 12 edits in trunk/Source/JavaScriptCore
Eliminate {push,pop}CalleeSaves in favor of individual pushes & pops
https://bugs.webkit.org/show_bug.cgi?id=127155
Reviewed by Geoffrey Garen.
Eliminated the offline assembler instructions {push,pop}CalleeSaves as well as the
ARM64 specific {push,pop}LRAndFP and replaced them with individual push and pop
instructions. Where the registers referenced by the added push and pop instructions
are not part of the offline assembler register aliases, used a newly added "emit"
offline assembler instruction which takes a string literal and outputs that
string as a native instruction.
- llint/LowLevelInterpreter.asm:
- offlineasm/arm.rb:
- offlineasm/arm64.rb:
- offlineasm/ast.rb:
- offlineasm/cloop.rb:
- offlineasm/instructions.rb:
- offlineasm/mips.rb:
- offlineasm/parser.rb:
- offlineasm/sh4.rb:
- offlineasm/transform.rb:
- offlineasm/x86.rb:
- 8:01 PM Changeset in webkit [172428] by
-
- 2 edits in trunk/Source/WebCore
Fix the Mac build.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- 6:23 PM Changeset in webkit [172427] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Versioning.
- 6:19 PM Changeset in webkit [172426] by
-
- 1 copy in tags/Safari-600.1.4.10
New tag.
- 6:12 PM Changeset in webkit [172425] by
-
- 9 edits in trunk
[Mac, iOS] Some media content never reaches full 'loaded' state
https://bugs.webkit.org/show_bug.cgi?id=135814
<rdar://problem/17476923>
Reviewed by Jer Noble.
Source/WebCore:
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::duration): Change to a wrapper that just calls
the durationDouble method and narrows to a float.
(WebCore::MediaPlayerPrivateAVFoundation::durationDouble): Revised version of duration
that works with doubles.
(WebCore::MediaPlayerPrivateAVFoundation::currentTime): Wrapper that calls the
currentTimeDouble method and narrows to a float.
(WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): Use durationDouble for
comparison with passed 'time' argument (which is a double).
(WebCore::MediaPlayerPrivateAVFoundation::didEnd): Use 'currentTimeDouble' so we can
cache the double precision version of this value.
(WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost): Use 'durationDouble' since
the rest of the calculation is in terms of doubles.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::platformDuration): Convert to 'double'. All
uses of this method are internal to the MediaPlayerPrivateAVFoundation* files.
(WebCore::MediaPlayerPrivateAVFoundationCF::currentTimeDouble): Switch from float implementation.
(WebCore::MediaPlayerPrivateAVFoundationCF::currentTime): Deleted. (Moved to parent class)
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): Convert to 'double'. All
uses of this method are internal to the MediaPlayerPrivateAVFoundation* files.
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentTimeDouble): Switch from floating implementation.
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentTime): Deleted. (Moved to parent class)
LayoutTests:
- platform/mac/media/video-seek-past-end-paused-expected.txt: Rebaseline
result for new rounding behavior.
- 6:04 PM Changeset in webkit [172424] by
-
- 6 edits in trunk/Source
Improve look and feel of combined service menu..
https://bugs.webkit.org/show_bug.cgi?id=135824
<rdar://problem/17936880>
Reviewed by Tim Horton.
Source/WebCore:
Adding some localizable strings.
- English.lproj/Localizable.strings:
Source/WebKit2:
When showing the combined menu, list the phone numbers first,
grouped under a common header, followed by the entries relative
to the services.
- Platform/mac/MenuUtilities.h:
- Platform/mac/MenuUtilities.mm:
(WebKit::menuItemTitleForTelephoneNumberGroup):
(WebKit::menuItemForTelephoneNumber):
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::setupServicesMenu):
- 6:00 PM Changeset in webkit [172423] by
-
- 6 edits in branches/safari-600.1.4-branch/Source/WebCore
Merged r172422. <rdar://problem/17912361>
- 5:36 PM Changeset in webkit [172422] by
-
- 6 edits in trunk/Source/WebCore
[iOS] <video> element requests are missing session cookies; sometimes persistant cookies.
https://bugs.webkit.org/show_bug.cgi?id=135816
Reviewed by Alexey Proskuryakov.
On iOS, the AVFoundation framework will copy appropriate cookies for the requested URL across to the
mediaserverd process. For WebKit2, the WebProcess does not have access to session cookies for the
current browsing session. When creating an AVURLAsset, fetch the appropriate cookies for the requested
URL, and pass them into AVURLAsset in the options dictionary.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerGetRawCookies): Call CookieJar's equivalent method.
- html/HTMLMediaElement.h:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::getRawCookies): Pass to HTMLMediaElement.
- platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerGetRawCookies):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::toNSHTTPCookie): Convert a WebCore Cookie -> NSHTTPCookie.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Fetch cookies for the requested
URL, and if successful, add them to the AVURLAsset options dictionary.
- 5:15 PM WebInspectorCodingStyleGuide edited by
- How to document promise fulfillment values (diff)
- 5:13 PM Changeset in webkit [172421] by
-
- 4 edits in trunk/Source/WebCore
Adjustments to CueBox CSS Width calculations Part 2.
https://bugs.webkit.org/show_bug.cgi?id=135820
<rdar://problem/17954473>.
Reviewed by Brent Fulgham.
Two adjustments made:
a) The default font size used was incorrect. It is not just 10px,
but should be based off a percentage of the video size.
b) The top/left CSS property needs to be adjusted appropriately if the cue
is center aligned and we change the cue's size such that the cue remains centered.
- html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
- html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
- html/track/VTTCue.h: Remove unnecessary constant.
- 4:41 PM Changeset in webkit [172420] by
-
- 5 edits2 copies4 adds in trunk/Source/WebInspectorUI
Web Inspector: show a replay dashboard when capturing or replaying
https://bugs.webkit.org/show_bug.cgi?id=135170
Reviewed by Timothy Hatcher.
This patch adds a replay dashboard with record/play/pause buttons. It
is shown automatically when the user starts capturing an execution from
the replay menu in the Timelines sidebar panel.
- UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector._captureDidStart):
- UserInterface/Controllers/DashboardManager.js:
(WebInspector.DashboardManager):
- UserInterface/Images/ReplayPauseButton.svg: Added.
- UserInterface/Images/ReplayPlayButton.svg: Added.
- UserInterface/Images/ReplayRecordingButton.svg: Added.
- UserInterface/Main.html:
- UserInterface/Models/ReplayDashboard.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
(WebInspector.ReplayDashboard):
- UserInterface/Views/DashboardView.js:
(WebInspector.DashboardView):
- UserInterface/Views/ReplayDashboardView.css: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
(.toolbar .dashboard.replay):
(.toolbar .dashboard.replay div.navigation-bar):
(.toolbar .dashboard.replay .item.button > .glyph):
(.toolbar.label-only .dashboard.replay .item.button > .glyph):
- UserInterface/Views/ReplayDashboardView.js: Added.
(WebInspector.ReplayDashboardView):
(WebInspector.ReplayDashboardView.prototype._captureButtonItemClicked):
(WebInspector.ReplayDashboardView.prototype._replayButtonItemClicked):
(WebInspector.ReplayDashboardView.prototype._captureStarted):
(WebInspector.ReplayDashboardView.prototype._captureStopped):
(WebInspector.ReplayDashboardView.prototype._playbackStarted):
(WebInspector.ReplayDashboardView.prototype._playbackPaused):
(WebInspector.ReplayDashboardView.prototype._playbackFinished):
- 4:40 PM Changeset in webkit [172419] by
-
- 2 edits in trunk/Tools
Added an update-webkit option to update the auxiliary libraries or not.
Part of https://bugs.webkit.org/show_bug.cgi?id=135815
Reviewed by Tim Horton.
- Scripts/update-webkit: Added --[no-]auxiliary-libs option, which defaults to yes unless
an Internal directory exists alongside the WebKit root directory.
- 4:26 PM Changeset in webkit [172418] by
-
- 2 edits in trunk/Tools
Remove hg changeset from w3c-import.log
https://bugs.webkit.org/show_bug.cgi?id=135735
Reviewed by Ryosuke Niwa.
Since the csswg's test suite is now accessible via github and it is
possible to push changes by creating github pull requests, the hg
changeset makes less sense, as many people will just use a clone of
the git repo. There isn't an obvious thing to replace it with, so
might as well remove it for now instead of having it just be set to
UNKNOWN in imports.
This also adds a pointer to the github repo in the generated comments
in the w3c-import.log.
- Scripts/webkitpy/w3c/test_importer.py:
(TestImporter.init): Remove changeset handling.
(TestImporter.do_import): Ditto.
(TestImporter.write_import_log): Ditto.
(TestImporter.load_changeset): Deleted.
- 4:03 PM Changeset in webkit [172417] by
-
- 4 edits12 adds in trunk
Fixed backgrounds don't paint in blurred inset areas
https://bugs.webkit.org/show_bug.cgi?id=135712
Reviewed by Simon Fraser.
Source/WebCore:
Background geometry calculations for fixed background need to use the larger
visible rect.
The first version of this patch caused a regression because it universally
adjusted the value for top to account for the inset whether or not the
viewportRect location was adjusted for the same. This version fixes that — those
two changes go hand-in-hand.
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
LayoutTests:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk1/fast: Added.
- platform/mac-wk1/fast/backgrounds: Added.
- platform/mac-wk1/fast/backgrounds/resources: Added.
- platform/mac-wk1/fast/backgrounds/resources/green.png: Added.
- platform/mac-wk1/fast/backgrounds/top-content-inset-fixed-attachment-expected.html: Added.
- platform/mac-wk1/fast/backgrounds/top-content-inset-fixed-attachment.html: Added.
- platform/mac-wk2/tiled-drawing/resources/green-blue.png: Added.
- platform/mac-wk2/tiled-drawing/resources/green.png: Added.
- platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-body-expected.html: Added.
- platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-body.html: Added.
- platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-expected.html: Added.
- platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment.html: Added.
- 3:30 PM Changeset in webkit [172416] by
-
- 8 edits in tags/Safari-600.1.2.10/Source
Merged r172397. <rdar://problem/17978299>
- 3:28 PM Changeset in webkit [172415] by
-
- 5 edits in tags/Safari-600.1.2.10/Source
Versioning.
- 3:25 PM Changeset in webkit [172414] by
-
- 1 copy in tags/Safari-600.1.2.10
New Tag.
- 3:00 PM Changeset in webkit [172413] by
-
- 5 edits in trunk/Source/JavaScriptCore
Re-landing r172401 with fixed test.
<https://webkit.org/b/135782>
Not reviewed.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitGetByVal):
(JSC::BytecodeGenerator::pushIndexedForInScope):
(JSC::BytecodeGenerator::pushStructureForInScope):
- bytecompiler/BytecodeGenerator.h:
(JSC::ForInContext::ForInContext):
(JSC::ForInContext::base):
(JSC::StructureForInContext::StructureForInContext):
(JSC::IndexedForInContext::IndexedForInContext):
- bytecompiler/NodesCodegen.cpp:
(JSC::ForInNode::emitMultiLoopBytecode):
- tests/stress/for-in-tests.js:
- 2:25 PM Changeset in webkit [172412] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: DebuggerManager commands should return promises
https://bugs.webkit.org/show_bug.cgi?id=135690
Reviewed by Timothy Hatcher.
Convert the existing debugger commands to return promises. This
requires separately waiting for protocol command's promise to be
fulfilled, as well as waiting for the appropriate DebuggerManager
event. If the protocol command promise is rejected, tear down the
single-fire event listener.
- UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.pause):
(WebInspector.DebuggerManager.prototype.resume):
(WebInspector.DebuggerManager.prototype.stepOver):
(WebInspector.DebuggerManager.prototype.stepInto):
(WebInspector.DebuggerManager.prototype.stepOut):
- UserInterface/Controllers/ReplayManager.js: Use the promise-based API.
(WebInspector.ReplayManager.prototype._suppressBreakpointsAndResumeIfNeeded):
- 2:16 PM Changeset in webkit [172411] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Report run id's in api/runs.php for the new dashboard UI
https://bugs.webkit.org/show_bug.cgi?id=135813
Reviewed by Andreas Kling.
Include run_id in the generated JSON.
- public/api/runs.php:
(fetch_runs_for_config): Don't sort results by time since that has been done in the front end for ages now.
(format_run):
- 1:48 PM Changeset in webkit [172410] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Merging platforms mixes baselines and targets into reported data
https://bugs.webkit.org/show_bug.cgi?id=135260
Reviewed by Andreas Kling.
When merging two platforms, move test configurations of a different type (baseline, target)
as well as of different metric (Time, Runs).
Also avoid fetching the entire table of runs just to see if there are no remaining runs.
It's sufficient to detect one such test_runs object.
- public/admin/platforms.php:
(merge_platforms):
- 1:42 PM Changeset in webkit [172409] by
-
- 9 edits in trunk/Source/WebCore
Pass inherited style only when resolving tree style
https://bugs.webkit.org/show_bug.cgi?id=135799
Reviewed by Andreas Kling.
No need to pass around the style parent element.
- dom/ContainerNode.h:
(WebCore::ContainerNode::childShouldCreateRenderer): Deleted.
- dom/Element.cpp:
(WebCore::Element::childShouldCreateRenderer):
- dom/Element.h:
- style/StyleResolveTree.cpp:
(WebCore::Style::RenderTreePosition::parent):
(WebCore::Style::nextSiblingRenderer):
(WebCore::Style::RenderTreePosition::RenderTreePosition):
(WebCore::Style::RenderTreePosition::computeNextSibling):
(WebCore::Style::shouldCreateRenderer):
(WebCore::Style::styleForElement):
(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::textRendererIsNeeded):
(WebCore::Style::createTextRendererIfNeeded):
(WebCore::Style::attachTextRenderer):
(WebCore::Style::updateTextRendererAfterContentChange):
(WebCore::Style::attachChildren):
(WebCore::Style::attachDistributedChildren):
(WebCore::Style::attachShadowRoot):
(WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
(WebCore::Style::attachRenderTree):
(WebCore::Style::resolveLocal):
(WebCore::Style::resolveTextNode):
(WebCore::Style::resolveShadowTree):
(WebCore::Style::updateBeforeOrAfterPseudoElement):
(WebCore::Style::resolveTree):
- svg/SVGDocument.cpp:
(WebCore::SVGDocument::childShouldCreateRenderer): Deleted.
Implement this in SVGSVGElement::rendererIsNeeded instead.
- svg/SVGDocument.h:
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::rendererIsNeeded):
- 1:24 PM Changeset in webkit [172408] by
-
- 7 edits4 adds in trunk
CSS JIT: support :scope
https://bugs.webkit.org/show_bug.cgi?id=135733
Reviewed by Benjamin Poulain.
Implement :scope for CSS JIT. It introduces scope field to CheckingContext
and it makes CheckingContext more similar to SelectorChecker::SelectorCheckingContext.
And since :scope requires CheckingContext, QueryingRules can accept SelectorCheckerWithCheckingContext.
Source/WebCore:
Tests: fast/selectors/querySelector-scope-filtered-root.html
fast/selectors/scope-works-as-root.html
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ruleMatches):
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::shouldUseRenderStyleFromCheckingContext):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagsToElementStyleFromContext):
(WebCore::SelectorCompiler::SelectorCodeGenerator::loadCheckingContext):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsScopeRoot):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateMarkPseudoStyleForPseudoElement):
- cssjit/SelectorCompiler.h:
(WebCore::SelectorCompiler::CheckingContext::CheckingContext):
- dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
(WebCore::SelectorDataList::executeCompiledSelectorCheckerWithCheckingContext):
(WebCore::SelectorDataList::execute):
- dom/SelectorQuery.h:
LayoutTests:
- fast/selectors/querySelector-scope-filtered-root-expected.txt: Added.
- fast/selectors/querySelector-scope-filtered-root.html: Added.
Searching root node of querySelectorAll is filtered to id node, but :scope root node should not be changed.
- fast/selectors/scope-works-as-root-expected.html: Added.
- fast/selectors/scope-works-as-root.html: Added.
:scope in stylesheet works as :root.
- 1:07 PM Changeset in webkit [172407] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r172403. <rdar://problem/17979472>.
- 1:07 PM Changeset in webkit [172406] by
-
- 3 edits in trunk/Source/WebKit2
Add Private WKPreferences API for developer extras (show inspector)
https://bugs.webkit.org/show_bug.cgi?id=135811
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-11
Reviewed by Timothy Hatcher.
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _developerExtrasEnabled]):
(-[WKPreferences _setDeveloperExtrasEnabled:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- 1:00 PM Changeset in webkit [172405] by
-
- 5 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r172401.
https://bugs.webkit.org/show_bug.cgi?id=135812
Failing stress/for-in-tests.js
http://build.webkit.org/builders/Apple%20Mavericks%20Release%20WK1%20%28Tests%29/builds/7945/steps
/jscore-test/logs/stdio (Requested by mlam on #webkit).
Reverted changeset:
"for-in optimization should also make sure the base matches
the object being iterated"
https://bugs.webkit.org/show_bug.cgi?id=135782
http://trac.webkit.org/changeset/172401
- 12:50 PM Changeset in webkit [172404] by
-
- 3 edits in trunk/Source/WebCore
Web Inspector: console.profile shouldn't stop auto-recorded profiles
https://bugs.webkit.org/show_bug.cgi?id=135810
Reviewed by Joseph Pecoraro.
- inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::start): Added. Call internalStart. Set m_enabledFromFrontend.
(WebCore::InspectorTimelineAgent::stop): Added. Calls internalStop. Clear m_enabledFromFrontend.
(WebCore::InspectorTimelineAgent::internalStart): Renamed from start.
(WebCore::InspectorTimelineAgent::internalStop): Renamed from stop.
(WebCore::InspectorTimelineAgent::startFromConsole): Use internalStart.
(WebCore::InspectorTimelineAgent::stopFromConsole): Use internalStop. Only stop if !m_enabledFromFrontend.
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent): Initialize m_enabledFromFrontend.
- inspector/InspectorTimelineAgent.h: Added m_enabledFromFrontend.
- 12:22 PM Changeset in webkit [172403] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Update folder icons
https://bugs.webkit.org/show_bug.cgi?id=135808
Reviewed by Joseph Pecoraro.
- UserInterface/Images/FolderGeneric.png: Updated.
- UserInterface/Images/FolderGeneric@2x.png: Updated.
- 12:19 PM Changeset in webkit [172402] by
-
- 8 edits in trunk/Source/JavaScriptCore
Web Inspector: use type builders to construct high fidelity type information payloads
https://bugs.webkit.org/show_bug.cgi?id=135803
Reviewed by Timothy Hatcher.
Due to some typos in the protocol file, the code had worked with raw objects
rather than with type builders. Convert to using builders.
- inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):
- inspector/agents/InspectorRuntimeAgent.h:
- inspector/protocol/Runtime.json: Fix 'item' for 'items'; true for 'true'.
- runtime/HighFidelityTypeProfiler.cpp:
(JSC::HighFidelityTypeProfiler::getTypesForVariableAtOffsetForInspector):
- runtime/HighFidelityTypeProfiler.h:
- runtime/TypeSet.cpp:
(JSC::TypeSet::allStructureRepresentations):
(JSC::StructureShape::stringRepresentation):
(JSC::StructureShape::inspectorRepresentation):
- runtime/TypeSet.h:
- 11:59 AM Changeset in webkit [172401] by
-
- 5 edits in trunk/Source/JavaScriptCore
for-in optimization should also make sure the base matches the object being iterated
https://bugs.webkit.org/show_bug.cgi?id=135782
Reviewed by Geoffrey Garen.
If we access a different base object with the same index, we shouldn't try to randomly
load from that object's backing store.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitGetByVal):
(JSC::BytecodeGenerator::pushIndexedForInScope):
(JSC::BytecodeGenerator::pushStructureForInScope):
- bytecompiler/BytecodeGenerator.h:
(JSC::ForInContext::ForInContext):
(JSC::ForInContext::base):
(JSC::StructureForInContext::StructureForInContext):
(JSC::IndexedForInContext::IndexedForInContext):
- bytecompiler/NodesCodegen.cpp:
(JSC::ForInNode::emitMultiLoopBytecode):
- tests/stress/for-in-tests.js:
- 11:47 AM Changeset in webkit [172400] by
-
- 2 edits in trunk/Source/JavaScriptCore
[Win] Unreviewed gardening.
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: Display files in
proper folder categories..
- 11:43 AM Changeset in webkit [172399] by
-
- 26 edits in trunk/Source/WebInspectorUI
Web Inspector: DataGrid and its clients are a cluster-cuss of styles
https://bugs.webkit.org/show_bug.cgi?id=135788
Clean up DataGrid and its subclasses and client styles.
Reviewed by Joseph Pecoraro.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/ApplicationCacheFrameContentView.css:
(.content-view.application-cache-frame > .data-grid):
- UserInterface/Views/CookieStorageContentView.css:
(.content-view.cookie-storage > .data-grid):
- UserInterface/Views/DOMStorageContentView.css:
(.content-view.dom-storage > .data-grid):
- UserInterface/Views/DOMTreeDataGrid.css:
(.dom-tree-data-grid .data-grid):
(.dom-tree-data-grid .name-column .icon):
- UserInterface/Views/DOMTreeDataGrid.js:
(WebInspector.DOMTreeDataGrid):
- UserInterface/Views/DataGrid.css:
(.data-grid):
(.data-grid table):
(.data-grid .data-container):
(.data-grid.inline):
(.data-grid th):
(.data-grid :-webkit-any(th, td):not(:last-child)):
(.data-grid th.sortable:active):
(.data-grid th:-webkit-any(.sort-ascending, .sort-descending)):
(.data-grid table.data):
(.data-grid td):
(.data-grid:focus tr.selected td:not(:last-child)):
(body.mac-platform.legacy .data-grid:focus tr.selected td:not(:last-child)):
(.data-grid :-webkit-any(th, td) > div):
(.data-grid th:-webkit-any(.sort-ascending, .sort-descending) > div:first-child):
(.data-grid th.sort-ascending > div:first-child::after):
(.data-grid th.sort-descending > div:first-child::after):
(.data-grid td .subtitle):
(.data-grid td .subtitle::before):
(.data-grid:focus tr.selected td .subtitle):
(.data-grid td.error):
(.data-grid tr.selected td.error):
(.data-grid td .icon):
(.data-grid td .go-to-arrow):
(.data-grid tr:-webkit-any(.selected, :hover) .go-to-arrow):
- UserInterface/Views/DatabaseContentView.css:
(.storage-view):
- UserInterface/Views/DatabaseTableContentView.css:
(.content-view.database-table > .data-grid):
- UserInterface/Views/DetailsSection.css:
(.details-section > .content .data-grid):
- UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
(.content-view.indexed-database-object-store > .data-grid):
- UserInterface/Views/LayerTreeDataGridNode.js:
(WebInspector.LayerTreeDataGridNode.prototype._makeNameCell):
(WebInspector.LayerTreeDataGridNode.prototype._updateNameCellData):
- UserInterface/Views/LayerTreeSidebarPanel.css:
(.layer-tree.panel .data-grid):
(.layer-tree.panel .name-column .icon):
(.layer-tree.panel tr.reflection .name-column .icon):
(.layer-tree.panel tr.pseudo-element .name-column .icon):
(.layer-tree.panel .name-column .reflection):
(.layer-tree.panel tr.selected .name-column .reflection):
(.layer-tree.panel .bottom-bar):
(body.mac-platform.legacy .layer-tree.panel .bottom-bar):
(.layer-tree.panel .bottom-bar > div):
(body.mac-platform.legacy .layer-tree.panel .bottom-bar > div):
(body.mac-platform.legacy .layer-tree-popover):
- UserInterface/Views/LayerTreeSidebarPanel.js:
(WebInspector.LayerTreeSidebarPanel):
(WebInspector.LayerTreeSidebarPanel.prototype._buildLayerInfoSection):
(WebInspector.LayerTreeSidebarPanel.prototype._buildDataGridSection):
(WebInspector.LayerTreeSidebarPanel.prototype._buildBottomBar):
(WebInspector.LayerTreeSidebarPanel.prototype._updateMetrics):
- UserInterface/Views/LegacyJavaScriptProfileView.css:
(.content-view.profile-view > .data-grid):
- UserInterface/Views/LegacyProfileView.css:
- UserInterface/Views/LogContentView.css:
(.console-message .bubble):
- UserInterface/Views/NetworkTimelineView.css:
(.timeline-view.network > .data-grid):
- UserInterface/Views/OverviewTimelineView.css:
(.timeline-view.overview > .timeline-ruler > .header):
(.timeline-view.overview > .data-grid):
- UserInterface/Views/OverviewTimelineView.js:
- UserInterface/Views/ProbeDetailsSidebarPanel.css:
(.details-section.probe-set .options > .probe-add):
(.popover .probe-popover):
- UserInterface/Views/ProbeSetDataGrid.css:
(.details-section.probe-set .data-grid tr.past-value td):
(.details-section.probe-set .data-grid > td.unknown-value):
(.details-section.probe-set .data-grid tr.revealed.highlighted):
(.details-section.probe-set .data-grid tr.separator):
(.details-section.probe-set .data-grid > tr.data-updated):
(.details-section.probe-set .data-grid .selected .section *):
(.details-section.probe-set .data-grid .selected td.unknown-value):
(.details-section.probe-set .data-grid .section):
- UserInterface/Views/QuickConsole.css:
(.quick-console):
- UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline th):
(.data-grid.timeline > .navigation-bar-container > .navigation-bar):
- UserInterface/Views/TimelineRuler.css:
(.timeline-ruler > .header):
(.timeline-ruler > .header > .divider):
- 11:39 AM Changeset in webkit [172398] by
-
- 3 edits in trunk/Source/JavaScriptCore
JIT should use full 64-bit stores for jsBoolean and jsNull
https://bugs.webkit.org/show_bug.cgi?id=135784
Reviewed by Michael Saboff.
This guarantees that we set the high bits of the register with the correct tag.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_has_structure_property):
(JSC::JIT::emit_op_next_enumerator_pname):
- 11:23 AM Changeset in webkit [172397] by
-
- 8 edits in trunk/Source
[Win] Adjust build script for Windows production build.
https://bugs.webkit.org/show_bug.cgi?id=135806
<rdar://problem/17978299>
Reviewed by Timothy Hatcher.
- JavaScriptCore.vcxproj/copy-files.cmd: Copy file for later use
in WebInspectorUI build.
../WebCore:
- WebCore.vcxproj/copyForwardingHeaders.cmd: Copy file needed
for WebInspectorUI build.
../WebInspectorUI:
- WebInspectorUI.vcxproj/WebInspectorUI.make: Make sure target for
xcopy operation exists.
- WebInspectorUI.vcxproj/WebInspectorUI.proj: Don't create directories
we don't need, make sure the target location exists before we build.
- WebInspectorUI.vcxproj/build-webinspectorui.pl: Make sure that
production builds get the intermediary command files from the
right place.
- 11:10 AM Changeset in webkit [172396] by
-
- 5 edits5 adds in trunk
Web Inspector: Add a helper to avoid leaking single-fire event listeners in Promise chains
https://bugs.webkit.org/show_bug.cgi?id=135772
Reviewed by Timothy Hatcher.
Source/WebInspectorUI:
A common pattern when working with promise chains is to convert an event
handler into a promise by using a single-fire event listener with the
resolve continuation as the callback. This is fine if the event fires;
if it doesn't fire, then the event emitter permanently keeps a reference to the
this-object and the callback.
This patch adds EventListener, a proxy object for events that can be manipulated
from multiple promise callback functions. If a promise is rejected, the catch
block can disconnect any event listeners set up earlier in the promise chain.
This patch also reimplements EventListenerSet to use multiple EventListeners,
since they share the same logic to uniformly handle Inspector and DOM events.
Test: inspector/event-listener.html
Test: inspector/event-listener-set.html
- UserInterface/Base/EventListener.js: Added.
(WebInspector.EventListener):
(WebInspector.EventListener.prototype.this._callback):
(WebInspector.EventListener.prototype.connect):
(WebInspector.EventListener.prototype.disconnect):
- UserInterface/Base/EventListenerSet.js: Update license block.
(WebInspector.EventListenerSet.prototype.register):
(WebInspector.EventListenerSet.prototype.install):
(WebInspector.EventListenerSet.prototype.uninstall):
- UserInterface/Main.html: Include EventListener.
- UserInterface/Test.html: Include EventListener and EventListenerSet.
LayoutTests:
- inspector/event-listener-expected.txt: Added.
- inspector/event-listener-set-expected.txt: Added.
- inspector/event-listener-set.html: Added.
- inspector/event-listener.html: Added.
- 10:52 AM Changeset in webkit [172395] by
-
- 2 edits in trunk/Source/WebKit2
[Services with UI] Action menu arrow hit testing is sometimes wrong.
https://bugs.webkit.org/show_bug.cgi?id=135776
<rdar://problem/17837670>
Reviewed by Brady Eidson.
There was a problem in the algorithm that stitches together the selection rectangles
to be given to Data Detectors API.
This change adds a new function that stiches together all the rects contributing to the
first line, all the rects contributing to the last line and all the ones in the middle.
This way we can have a maximum of 3 non overlapping rectangles.
- WebProcess/WebPage/mac/ServicesOverlayController.mm:
(WebKit::stitchRects):
(WebKit::compactRectsWithGapRects):
- 3:40 AM Changeset in webkit [172394] by
-
- 4 edits in trunk
Unreviewed, rolling out r172393.
https://bugs.webkit.org/show_bug.cgi?id=135796
discussion needed about GnuTLS version bump on the bots
(Requested by philn on #webkit).
Reverted changeset:
https://bugs.webkit.org/show_bug.cgi?id=133317
http://trac.webkit.org/changeset/172393
- 3:23 AM Changeset in webkit [172393] by
-
- 4 edits in trunk
[GTK] Adds dependency on GnuTLS 3.0+ for the implementation of subtle crypto algorithms
https://bugs.webkit.org/show_bug.cgi?id=133317
.:
GnuTLS is already an indirect dependency through libsoup -> glib-networking.
Patch by Eduardo Lima Mitev <elima@igalia.com> on 2014-08-11
Reviewed by Philippe Normand.
No new tests since no new functionality has been added.
- Source/cmake/OptionsGTK.cmake: Adds search for required GnuTLS package
Source/WebCore:
Patch by Eduardo Lima Mitev <elima@igalia.com> on 2014-08-11
Reviewed by Philippe Normand.
No new tests since no new functionality has been added.
- PlatformGTK.cmake: Adds GnuTLS libs and included dirs to WebCore targets
- 3:07 AM Changeset in webkit [172392] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed, EFL build fix since r172385.
- PlatformEfl.cmake:
- 3:04 AM Changeset in webkit [172391] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Fix debug build after r172389.
Patch by Eduardo Lima Mitev <elima@igalia.com> on 2014-08-11
Rubber-stamped by Philippe Normand.
- crypto/gtk/CryptoKeyRSAGtk.cpp:
(WebCore::CryptoKeyRSA::exportData): Remove spurious ASSERT from
stub. It will be added back along with the real implementation of
the method.
- 2:48 AM Changeset in webkit [172390] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed fix after r172348.
- platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::BitmapImage): Initialize m_minimumSubsamplingLevel to 0.
- 1:59 AM Changeset in webkit [172389] by
-
- 6 edits11 adds in trunk
[GTK] Adds stubs for all subtle crypto algorithm implemntations
https://bugs.webkit.org/show_bug.cgi?id=133316
Patch by Eduardo Lima Mitev <elima@igalia.com> on 2014-08-11
Reviewed by Philippe Normand.
.:
- Source/cmake/OptionsGTK.cmake: Add ENABLE_SUBTLE_CRYPTO option
- Source/cmake/WebKitFeatures.cmake: Add ENABLE_SUBTLE_CRYPTO option
- Source/cmakeconfig.h.cmake: Define ENABLE_SUBTLE_CRYPTO
Source/WebCore:
No new tests since no new functionality has been added.
- CMakeLists.txt: Add subtle crypto 'algorithms' and 'parameters' dirs to WebCore incuded dirs
- PlatformGTK.cmake: Add subtle crypto sources to WebCore target
- crypto/gtk/CryptoAlgorithmAES_CBCGtk.cpp: Added.
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
- crypto/gtk/CryptoAlgorithmAES_KWGtk.cpp: Added.
(WebCore::CryptoAlgorithmAES_KW::platformEncrypt):
(WebCore::CryptoAlgorithmAES_KW::platformDecrypt):
- crypto/gtk/CryptoAlgorithmHMACGtk.cpp: Added.
(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):
- crypto/gtk/CryptoAlgorithmRSAES_PKCS1_v1_5Gtk.cpp: Added.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
- crypto/gtk/CryptoAlgorithmRSASSA_PKCS1_v1_5Gtk.cpp: Added.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):
- crypto/gtk/CryptoAlgorithmRSA_OAEPGtk.cpp: Added.
(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
- crypto/gtk/CryptoAlgorithmRegistryGtk.cpp: Added.
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
- crypto/gtk/CryptoDigestGtk.cpp: Added.
(WebCore::CryptoDigest::CryptoDigest):
(WebCore::CryptoDigest::~CryptoDigest):
(WebCore::CryptoDigest::create):
(WebCore::CryptoDigest::addBytes):
(WebCore::CryptoDigest::computeHash):
- crypto/gtk/CryptoKeyRSAGtk.cpp: Added.
(WebCore::CryptoKeyRSA::CryptoKeyRSA):
(WebCore::CryptoKeyRSA::create):
(WebCore::CryptoKeyRSA::~CryptoKeyRSA):
(WebCore::CryptoKeyRSA::restrictToHash):
(WebCore::CryptoKeyRSA::isRestrictedToHash):
(WebCore::CryptoKeyRSA::keySizeInBits):
(WebCore::CryptoKeyRSA::buildAlgorithmDescription):
(WebCore::CryptoKeyRSA::exportData):
(WebCore::CryptoKeyRSA::generatePair):
- crypto/gtk/SerializedCryptoKeyWrapGtk.cpp: Added.
(WebCore::getDefaultWebCryptoMasterKey):
(WebCore::wrapSerializedCryptoKey):
(WebCore::unwrapSerializedCryptoKey):
- crypto/keys/CryptoKeyRSA.h:
- 1:49 AM Changeset in webkit [172388] by
-
- 1 copy in releases/WebKitGTK/webkit-2.5.2
WebKitGTK+ 2.5.2
- 1:05 AM Changeset in webkit [172387] by
-
- 4 edits in trunk
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.5.2 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit2:
- gtk/NEWS: Add release notes for 2.5.2.
- 12:29 AM Changeset in webkit [172386] by
-
- 2 edits in trunk/Tools
Unreviewed. Fix GTK+ make distcheck.
- gtk/manifest.txt: Remove Source/WebCore/Resources/inputSpeech.png.
Aug 10, 2014:
- 11:34 PM Changeset in webkit [172385] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] No IPC messages are sent when building WebKitGTK+ with VERSION_SCRIPT
https://bugs.webkit.org/show_bug.cgi?id=135760
Reviewed by Philippe Normand.
The problem is that the threading initialization is failing
because there are two copies of WTF, one in libjavascriptcoregtk
and the other in libwebkit2gtk. When WebKit2 is initialized in the
UI process, JSC::initializeThreading() is called first and then
WTF::initializeMainThread(). The former is calling
ThreadIdentifierData::initializeOnce() initializing the
ThreadIdentifierData::m_key symbol in libjavascriptcoregtk, while
the latter is using the ThreadIdentifierData API from libwebkit2gtk
that hasn't been initialized.
- CMakeLists.txt: Do not add WTF to the list of WebKit2 libraries,
WebKit2 already depends on JavaScriptCore that already links to WTF.
- 9:22 PM Changeset in webkit [172384] by
-
- 2 edits1 delete in trunk/Source/WebCore
Remove inputSpeech.png
https://bugs.webkit.org/show_bug.cgi?id=135771
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-08-10
Reviewed by Andreas Kling.
- Resources/inputSpeech.png: Removed.
- WebCore.xcodeproj/project.pbxproj:
- 6:26 PM Changeset in webkit [172383] by
-
- 9 edits in trunk/Source
Yelp phone number highlights often disappear
https://bugs.webkit.org/show_bug.cgi?id=135789
<rdar://problem/17971057>
Reviewed by Brady Eidson.
Since selectedTelephoneNumberRangesChanged doesn't provide an associated
Frame, an incoming selectedTelephoneNumberRangesChanged from a subframe
would overwrite ServicesOverlayController's cached (and potentially active)
telephone number highlights.
This happens a lot on Yelp, because they have many subframes which are
doing layout on a regular basis.
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::selectedTelephoneNumberRangesChanged):
- WebProcess/WebCoreSupport/WebEditorClient.h:
Adjust to the new (lack of) arguments.
- WebProcess/WebPage/ServicesOverlayController.h:
- WebProcess/WebPage/mac/ServicesOverlayController.mm:
(WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
Adjust logging; we can revisit it later.
(WebKit::ServicesOverlayController::buildPhoneNumberHighlights):
When building phone number highlights, walk the Frame tree and retrieve
them from all of the Editors.
(WebKit::ServicesOverlayController::didRebuildPotentialHighlights):
(WebKit::ServicesOverlayController::telephoneNumberRangesForFocusedFrame):
(WebKit::ServicesOverlayController::determineActiveHighlight):
(WebKit::ServicesOverlayController::handleClick):
Retrieve the detected telephone number ranges from the focused frame
when combining telephone numbers with selection services.
This ensures that we don't show combined phone number highlights from other frames.
- editing/Editor.cpp:
(WebCore::Editor::scanSelectionForTelephoneNumbers):
(WebCore::Editor::clearDataDetectedTelephoneNumbers): Deleted.
- editing/Editor.h:
(WebCore::Editor::detectedTelephoneNumberRanges):
- page/EditorClient.h:
(WebCore::EditorClient::selectedTelephoneNumberRangesChanged):
Cache and expose detected telephone number ranges on Editor.
Change selectedTelephoneNumberRangesChanged to take no arguments; it's
just a notification now.
- 6:23 PM Changeset in webkit [172382] by
-
- 3 edits in trunk/Source/WebKit2
Refactor ServiceOverlayController in preparation for fading between highlights
https://bugs.webkit.org/show_bug.cgi?id=135787
<rdar://problem/17935736>
Reviewed by Brady Eidson.
Rework ServicesOverlayController so that we always keep a set of generic
"potential highlights", which are refcounted Highlight objects and
wrap a DDHighlightRef, as well as a type (Selection or TelephoneNumber),
Range (only used in the case of TelephoneNumber), and potentially more
things in the future (like, say, fade state!).
We eagerly update the list of potential highlights when the selection or set
of detected telephone numbers changes, and use this information to install
or uninstall the page overlay as needed.
When we need to recompute the "active" highlight from this set (for example,
we need to handle a mouse event or paint the highlight), we look through
the set of potential highlights and decide. This moves the "active" highlight
decision logic into one small and confined place.
- WebProcess/WebPage/ServicesOverlayController.h:
(WebKit::ServicesOverlayController::Highlight):
Add the new aforementioned refcounted Highlight class.
Rename m_lastHoveredHighlightChangeTime to m_lastActiveHighlightChangeTime.
Make m_webPage a reference.
The rest is just added/removed/adjusted functions for the refactoring.
(WebKit::TelephoneNumberData::TelephoneNumberData): Deleted.
- WebProcess/WebPage/mac/ServicesOverlayController.mm:
(WebKit::ServicesOverlayController::Highlight::createForSelection):
(WebKit::ServicesOverlayController::Highlight::createForTelephoneNumber):
Create Highlights for the two different highlight types.
(WebKit::ServicesOverlayController::ServicesOverlayController):
(WebKit::ServicesOverlayController::willMoveToWebPage):
Our WebPage pointer is always valid because it owns us; don't clear it.
We need to keep it around so that we can uninstall the overlay and
install it again later, anyway.
(WebKit::ServicesOverlayController::selectionRectsDidChange):
(WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
When selection rects or detected telephone numbers change, rebuild potential highlights.
This will have the side-effect of installing the overlay if needed.
(WebKit::ServicesOverlayController::mouseIsOverHighlight):
Make this function take a Highlight instead of a DDHighlightRef.
(WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
Make this function take a Highlight instead of a DDHighlightRef.
(WebKit::ServicesOverlayController::drawHighlight):
Make this function take a Highlight instead of a DDHighlightRef.
There's no reason to do the translation separately from the layer blit,
also allowing us to avoid the StateSaver.
(WebKit::ServicesOverlayController::drawRect):
drawRect now always paints the active highlight, instead of duplicating
logic about which highlight should be active.
Also, it will update the active highlight before painting.
We no longer need to re-determine whether the active highlight's phone
number range is still a valid phone number range, because we rebuild
the potential highlights whenever the set of phone number ranges changes.
(WebKit::ServicesOverlayController::clearActiveHighlight):
Mostly an adoption of new names.
(WebKit::ServicesOverlayController::removeAllPotentialHighlightsOfType):
Run through the list of potential highlights and remove any of the given type.
The two highlight building functions use this helper to clear the old ones before building.
(WebKit::ServicesOverlayController::buildPhoneNumberHighlights):
(WebKit::ServicesOverlayController::buildSelectionHighlight):
Rebuild the list of potential highlights, replacing all highlights of
the given type with new ones.
(WebKit::ServicesOverlayController::hasRelevantSelectionServices):
Factor out the code that decides whether our current selection is
viable for servicing based on whether we have plain-text and/or rich-text services.
(WebKit::ServicesOverlayController::didRebuildPotentialHighlights):
When rebuilding potential highlights, if we have no potential highlights at all,
uninstall the page overlay; we don't need mouse tracking and don't need to
paint anything. This improves memory use and compositing performance significantly,
where previously we were leaving the overlay up forever after creating it.
If we have either detected telephone numbers or relevant selection services,
create and install the overlay if it doesn't already exist.
(WebKit::ServicesOverlayController::createOverlayIfNeeded):
This just moved from elsehwere, except that it now uses FadeMode::DoNotFade.
It doesn't make sense to fade on install/uninstall (which happens even before hover)
but not on changing the active highlight; fading will be re-addressed in the next patch.
(WebKit::ServicesOverlayController::highlightsAreEquivalent):
Determine whether two highlights are equivalent. While we may have
created a new Highlight at rebuild time, if two telephone number
highlights have equivalent ranges, there's no need to 'transition' to the new one.
(WebKit::ServicesOverlayController::determineActiveHighlight):
Run through the list of services, and try to find one that is hovered.
We prefer telephone number highlights to selection highlights, and
we will never make a selection highlight active if it is both
not serviceable and there are no telephone numbers to show in the combined menu.
This is the centralized location for determination of which highlight
should be considered active. If the active highlight changed, update
the time since last change and cancel the mouse-down tracking.
(WebKit::ServicesOverlayController::mouseEvent):
Adjust some comments to be more explanatory.
A bunch of code moved out of here and into determineActiveHighlight.
(WebKit::ServicesOverlayController::handleClick):
Adjust to take a reference and use Highlight instead of DDHighlightRef.
- 4:35 PM WebInspectorCodingStyleGuide edited by
- formatting (diff)
- 4:32 PM WebInspectorCodingStyleGuide edited by
- i promise to document promises (diff)
- 3:54 PM WebInspectorTests edited by
- bugfixes (diff)
- 3:50 PM WebInspectorTests edited by
- add notes about debugging tests; add notes about model tests (diff)
- 1:12 PM Changeset in webkit [172381] by
-
- 5 edits in trunk
Destructuring assignment in a var declaration list incorrectly consumes subsequent variable initialisers
https://bugs.webkit.org/show_bug.cgi?id=135773
Reviewed by Michael Saboff.
Source/JavaScriptCore:
We should be using parseAssignment expression in order to get the correct
precedence.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseVarDeclarationList):
LayoutTests:
Add new tests.
- js/destructuring-assignment-expected.txt:
- js/script-tests/destructuring-assignment.js:
- 1:07 PM Changeset in webkit [172380] by
-
- 5 edits in trunk
JSC Lexer is allowing octals 08 and 09 in strict mode functions
https://bugs.webkit.org/show_bug.cgi?id=135704
Patch by Diego Pino Garcia <Diego Pino Garcia> on 2014-08-10
Reviewed by Oliver Hunt.
Return syntax error ("Decimal integer literals with a leading zero are
forbidden in strict mode") if a number starts with 0 and is followed
by a digit.
- parser/Lexer.cpp:
(JSC::Lexer<T>::lex):
- 3:25 AM Changeset in webkit [172379] by
-
- 12 edits3 deletes in trunk/Source
Web Inspector: new glyphs are visible on OS X 10.9 builds
https://bugs.webkit.org/show_bug.cgi?id=135743
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- UserInterface/Images/Legacy/UserInputPrompt.svg: Removed.
- UserInterface/Images/Legacy/UserInputPromptPrevious.svg: Removed.
- UserInterface/Images/Legacy/UserInputResult.svg: Removed.
Removed images that were not used.
- UserInterface/Views/DashboardContainerView.css:
(body.mac-platform.legacy .dashboard-container .advance-arrow):
- UserInterface/Views/DebuggerDashboardView.js:
(WebInspector.DebuggerDashboardView):
- UserInterface/Views/FolderIcon.css:
(body.mac-platform.legacy .folder-icon .icon):
- UserInterface/Views/HierarchicalPathComponent.css:
(body.mac-platform.legacy .hierarchical-path-component > .selector-arrows):
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
Use legacy images.
- UserInterface/Views/NavigationSidebarPanel.css:
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected .subtitle):
Fix color for selected subtitle.
- UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel):
Use legacy images.
Source/WebKit/mac:
- WebCoreSupport/WebInspectorClient.mm:
(-[WebInspectorWindowController window]): Use 10100 instead of 1090 for the version.
Source/WebKit2:
- UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::createInspectorWindow): Use 10100 instead of 1090 for the version.
- 1:45 AM Changeset in webkit [172378] by
-
- 2 edits in trunk/Source/WTF
Update HashTable's operator= after r172167 per review comments
- wtf/HashTable.h:
Update the type as suggested by Darin.
- 12:30 AM Changeset in webkit [172377] by
-
- 4 edits1 move in trunk
[GTK] REGRESSION(r166239): The ld version script is not being used
https://bugs.webkit.org/show_bug.cgi?id=135694
Reviewed by Martin Robinson.
.:
Move the symbols filter file from Tools/gtk to Source/cmake and rename
it as gtksymbols.filter. Also updated it, since some of the symbols
exported were renamed.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/gtksymbols.filter: Renamed from Tools/gtk/symbols.filter.
Source/WebKit2:
- CMakeLists.txt: Add VERSION_SCRIPT to WebKit2 link flags if present.
- 12:09 AM Changeset in webkit [172376] by
-
- 2 edits in trunk
[GTK] Child processes should be installed in a versioned directory
https://bugs.webkit.org/show_bug.cgi?id=135754
Reviewed by Gustavo Noronha Silva.
Define LIBEXEC_INSTALL_DIR as
${CMAKE_INSTALL_FULL_LIBEXECDIR}/webkitgtk-${WEBKITGTK_API_VERSION}
so that the child processes are installed in $libexec/webkitgtk-4.0.
This makes it possible to install 2.6 in parallel to older versions.
- Source/cmake/OptionsGTK.cmake:
Aug 9, 2014:
- 9:34 PM Changeset in webkit [172375] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: TimelineManager should reuse empty recordings
https://bugs.webkit.org/show_bug.cgi?id=135749
Reviewed by Timothy Hatcher.
Check whether the recording is empty before creating a new one.
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._loadNewRecording):
- UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.isEmpty):
(WebInspector.TimelineRecording.prototype.unloaded):
- 6:04 PM Changeset in webkit [172374] by
-
- 3 edits in trunk/Source/WebKit2
REGRESSION (r172301): Combined phone number highlight doesn't appear if rich content is selected and we have no rich content services
https://bugs.webkit.org/show_bug.cgi?id=135785
<rdar://problem/17969843>
Reviewed by Brady Eidson.
- WebProcess/WebPage/mac/ServicesOverlayController.mm:
(WebKit::ServicesOverlayController::drawSelectionHighlight):
We can't early return in the rich-content-but-no-rich-services case
if we have telephone numbers in the selection, because we want to offer
them up in the combined menu.
- UIProcess/mac/WebContextMenuProxyMac.mm:
If we end up with no menu, because there were no services available,
make a fresh one that we can fill with combined telephone number items.
- 5:48 PM Changeset in webkit [172373] by
-
- 3 edits2 adds in trunk
Subpixel rendering: Transforms on non-compositing layers leave bits behind when the box boundaries changes.
https://bugs.webkit.org/show_bug.cgi?id=135786
Reviewed by Simon Fraser.
Since we don't control the transformed context painting's snapping strategy, our best bet to fully
include the transformed box when requesting for repaint is to use enclosing.
Pixelsnapping doesn't work here for all cases. For example, a scaled box at 0.8px can be anti-aliased painted
both at 0.5px and 1px, while with pixelsnapping we'd expect it to be painted starting from 1px;
Source/WebCore:
Test: fast/repaint/hidpi-transform-on-subpixel-repaintrect.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeRectForRepaint): enclose the result of the transform.
LayoutTests:
- fast/repaint/hidpi-transform-on-subpixel-repaintrect-expected.txt: Added.
- fast/repaint/hidpi-transform-on-subpixel-repaintrect.html: Added.
Aug 8, 2014:
- 11:50 PM Changeset in webkit [172372] by
-
- 17 edits in trunk/Source
REGRESSION: Inspector crashes when debugger is paused and injected scripts access window.screen().
<https://webkit.org/b/135656>
Not reviewed.
Rolling out r170680 which was merged to ToT in r172129.
Source/JavaScriptCore:
- debugger/Debugger.h:
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::scope):
(JSC::DebuggerCallFrame::evaluate):
(JSC::DebuggerCallFrame::invalidate):
- debugger/DebuggerCallFrame.h:
- debugger/DebuggerScope.cpp:
(JSC::DebuggerScope::DebuggerScope):
(JSC::DebuggerScope::finishCreation):
(JSC::DebuggerScope::visitChildren):
(JSC::DebuggerScope::className):
(JSC::DebuggerScope::getOwnPropertySlot):
(JSC::DebuggerScope::put):
(JSC::DebuggerScope::deleteProperty):
(JSC::DebuggerScope::getOwnPropertyNames):
(JSC::DebuggerScope::defineOwnProperty):
(JSC::DebuggerScope::next): Deleted.
(JSC::DebuggerScope::invalidateChain): Deleted.
(JSC::DebuggerScope::isWithScope): Deleted.
(JSC::DebuggerScope::isGlobalScope): Deleted.
(JSC::DebuggerScope::isFunctionScope): Deleted.
- debugger/DebuggerScope.h:
(JSC::DebuggerScope::create):
(JSC::DebuggerScope::Iterator::Iterator): Deleted.
(JSC::DebuggerScope::Iterator::get): Deleted.
(JSC::DebuggerScope::Iterator::operator++): Deleted.
(JSC::DebuggerScope::Iterator::operator==): Deleted.
(JSC::DebuggerScope::Iterator::operator!=): Deleted.
(JSC::DebuggerScope::isValid): Deleted.
(JSC::DebuggerScope::jsScope): Deleted.
(JSC::DebuggerScope::begin): Deleted.
(JSC::DebuggerScope::end): Deleted.
- inspector/JSJavaScriptCallFrame.cpp:
(Inspector::JSJavaScriptCallFrame::scopeType):
(Inspector::JSJavaScriptCallFrame::scopeChain):
- inspector/JavaScriptCallFrame.h:
(Inspector::JavaScriptCallFrame::scopeChain):
- inspector/ScriptDebugServer.cpp:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::debuggerScopeStructure): Deleted.
- runtime/JSObject.h:
(JSC::JSObject::isWithScope): Deleted.
- runtime/JSScope.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
Source/WebCore:
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::attachDebugger):
- 7:37 PM Changeset in webkit [172371] by
-
- 2 edits in trunk/Source/WebKit2
[EFL] Do not initialize g_type in WebProcessMain::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=135700
Reviewed by Gyuyoung Kim.
Inspired by r171788.
Glib since 2.36 itself initializes g_type_init.
- WebProcess/efl/WebProcessMainEfl.cpp:
- 6:14 PM Changeset in webkit [172370] by
-
- 2 edits in trunk/Tools
Unbreak webkitpy unit tests by checking for the existence of the image diff template
file before trying to open it (as the tests do for results.html).
- Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
(TestResultWriter.write_image_diff_files):
- 6:12 PM Changeset in webkit [172369] by
-
- 2 edits in trunk/Source/WebKit2
Build fix for 32-bit.
- UIProcess/mac/ServicesController.mm:
(WebKit::ServicesController::ServicesController):
Don't dynamically refresh services in 32-bit apps. It's not possible
to write a 32-bit app with the Modern API, so this doesn't matter.
- 5:23 PM Changeset in webkit [172368] by
-
- 3 edits2 adds in trunk
Load the layout test result image diff HTML from a file, rather than having it inline in webkitpy
https://bugs.webkit.org/show_bug.cgi?id=135780
Reviewed by Dan Bates.
Tools:
Pull the HTML for the image diff file into a separate file, for easier hackability.
- Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
(TestResultWriter.write_image_diff_files):
LayoutTests:
Add image-diff-template.html and expected result (crazy, but this is what we do
for results.html too).
- fast/harness/image-diff-template-expected.txt: Added.
- fast/harness/image-diff-template.html: Added.
- 5:00 PM Changeset in webkit [172367] by
-
- 3 edits in trunk/Source/WebCore
Implement long mouse press over links. Part of 135257 - Add long mouse press gesture.
https://bugs.webkit.org/show_bug.cgi?id=135476
Patch by Peyton Randolph <prandolph@apple.com> on 2014-08-08
Reviewed by Tim Horton.
- page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear): Clear long press state.
(WebCore::EventHandler::handleMousePressEvent): Start the long-press if the mouse press is a left
mouse press over a link.
(WebCore::EventHandler::eventMayStartDrag): We cannot start a drag if we've recognized a long press.
(WebCore::EventHandler::handleMouseReleaseEvent):
If we didn't recognize a long press, cancel the long press.
(WebCore::EventHandler::beginTrackingPotentialLongMousePress):
Begin the long mouse press by kicking off a timer. If the timer fires before the long press is
cancelled, the long press is recognized.
(WebCore::EventHandler::recognizeLongMousePress): Added. Trigger the long-press and disable other
actions like dragging.
(WebCore::EventHandler::cancelTrackingPotentialLongMousePress): Added. Cancel the long press by
clearing related state.
(WebCore::EventHandler::clearLongMousePressState): Added. Clear long press state.
(WebCore::EventHandler::handleLongMousePressMouseMovedEvent): Added. Cancel the long press if
the mouse moves outside a specified hysteresis interval.
(WebCore::EventHandler::handleMouseMoveEvent): Ask handleLongMousePressMouseMovedEvent whether to
return early and not update hovers, cursors, drags, etc.
(WebCore::EventHandler::dragHysteresisExceeded): Factor out the hysteresis bounds check into
mouseHysteresisExceeded().
(WebCore::EventHandler::handleDrag): Cancel long press upon starting drag.
(WebCore::EventHandler::mouseHysteresisExceeded): Added. General hysteresis function that takes an
arbitrary mouse movement threshold. Factored out from dragHysteresisExceeded.
- page/EventHandler.h:
- 4:27 PM Changeset in webkit [172366] by
-
- 6 edits in trunk/Source/WebKit2
[mac] Dynamically update serviceability when the set of services changes
https://bugs.webkit.org/show_bug.cgi?id=135738
<rdar://problem/17533459>
Reviewed by Brady Eidson.
- UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess):
Adopt the new universal refreshExistingServices.
(WebKit::WebContext::refreshExistingServices): Deleted.
- UIProcess/WebContext.h:
Remove WebContext::refreshExistingServices; there's no need for it.
- UIProcess/mac/ServicesController.h:
- UIProcess/mac/ServicesController.mm:
Fix the build with only public headers by including NSSharingService.h itself.
Place the NSSharingServicePicker (Details) category outside the #ifdef.
Forward-declare and possibly import NSExtension SPI.
(WebKit::ServicesController::ServicesController):
Register a callback to be notified whenever the set of services changes.
When this occurs, call refreshExistingServices. We let refreshExistingServices
coalesce updates because these notifications can come in small batches.
(WebKit::ServicesController::refreshExistingServices):
Dispatch changes in service availability to all processes in all contexts.
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::setupServicesMenu):
Adjust the referenced rdar:// and call ServicesController::refreshExistingServices
instead of the now-removed WebContext:: variant. We can't remove this
yet because our services state can still be stale because NSServiceSharingPicker
can still sometimes lie about the current service state immediately after a change occurs;
once that is fixed, we should get rid of this as well as the refresh in Web Process creation.
- 4:24 PM Changeset in webkit [172365] by
-
- 3 edits3 adds in trunk
[WK2] Scrolling does not work inside nested frames
https://bugs.webkit.org/show_bug.cgi?id=135775
<rdar://problem/17959896>
Reviewed by Tim Horton.
Source/WebCore:
r169733 added an "isMainFrame" check in AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged.
However we have to rebuild the non-fast-scrollable region when any subframe changes,
even a deeply nested one. So always rebuild it, starting from the root frame.
Fixes scrolling on nested framesets like http://www.opengl.org/sdk/docs/man3/.
Test: platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged):
LayoutTests:
Nested frameset test that dumps the scrolling tree.
- platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt: Added.
- platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html: Added.
- platform/mac-wk2/tiled-drawing/scrolling/frames/resources/frameset-frame.html: Added.
- 4:15 PM Changeset in webkit [172364] by
-
- 2 edits in trunk/Source/WebKit2
Clients that request the selection services menu after WebKit2 will get one with different metrics than otherwise
https://bugs.webkit.org/show_bug.cgi?id=135765
<rdar://problem/17962180>
Reviewed by Brady Eidson.
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::setupServicesMenu):
The menu is cached between clients, but we make adjustments to it.
We should copy it before adjusting.
- 4:14 PM Changeset in webkit [172363] by
-
- 1 copy in tags/Safari-600.1.4.9
Re-create tag part 2.
- 4:13 PM Changeset in webkit [172362] by
-
- 1 delete in tags/Safari-600.1.4.9
Re-create tag part 1.
- 4:09 PM Changeset in webkit [172361] by
-
- 1 copy in tags/Safari-600.1.4.9
Re-create tag part 2.
- 4:08 PM Changeset in webkit [172360] by
-
- 1 delete in tags/Safari-600.1.4.9
Re-create tag part 1.
- 3:49 PM Changeset in webkit [172359] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Versioning.
- 3:45 PM Changeset in webkit [172358] by
-
- 1 copy in tags/Safari-600.1.4.9/safari-600.1.4-branch
New Tag
- 2:12 PM Changeset in webkit [172357] by
-
- 12 edits in trunk/Source/WebCore
[CSS Shapes] Refactor getExcludedIntervals since only one LineSegment is ever returned
https://bugs.webkit.org/show_bug.cgi?id=135757
Reviewed by Zoltan Horvath.
The interface for getExcludedIntervals was designed when shape-inside
was still a thing, and it was possible for a line in a shape to have
multiple segments. shape-outside can only have one segment per line,
so this refactors the code to simplify and reflect that reality.
No new test, no behavior change.
- rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::getExcludedInterval):
(WebCore::BoxShape::getExcludedIntervals): Deleted.
- rendering/shapes/BoxShape.h:
- rendering/shapes/PolygonShape.cpp:
(WebCore::PolygonShape::getExcludedInterval):
(WebCore::PolygonShape::getExcludedIntervals): Deleted.
- rendering/shapes/PolygonShape.h:
- rendering/shapes/RasterShape.cpp:
(WebCore::RasterShape::getExcludedInterval):
(WebCore::RasterShape::getExcludedIntervals): Deleted.
- rendering/shapes/RasterShape.h:
- rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::getExcludedInterval):
(WebCore::RectangleShape::getExcludedIntervals): Deleted.
- rendering/shapes/RectangleShape.h:
- rendering/shapes/Shape.h:
(WebCore::LineSegment::LineSegment):
- rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::logicalLeftOffset):
(WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
(WebCore::ShapeOutsideInfo::computeSegmentsForLine): Deleted.
- rendering/shapes/ShapeOutsideInfo.h:
- 1:59 PM Changeset in webkit [172356] by
-
- 1 copy in tags/Safari-600.1.4.9
New Tag.
- 1:21 PM Changeset in webkit [172355] by
-
- 6 edits in trunk/Source
Web Inspector: add debugging flag to InspectorTest for unbuffered logging to stderr
https://bugs.webkit.org/show_bug.cgi?id=135726
Reviewed by Timothy Hatcher.
Source/WebCore:
Add a bridge so that InspectorTest can synchronously log to the console.
- inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::unbufferedLog): Added.
- inspector/InspectorFrontendHost.h:
- inspector/InspectorFrontendHost.idl:
Source/WebInspectorUI:
Added a flag for debugging inspector tests which will synchronously log messages.
This avoids failure modes that prevent logging from being added to the test page.
- UserInterface/Base/Test.js:
(InspectorTest.debugLog):
(InspectorTest.addResult):
- 1:09 PM Changeset in webkit [172354] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Versioning.
- 1:04 PM Changeset in webkit [172353] by
-
- 2 edits in trunk/Tools
Gardening: fix Windows build after r172259.
Not reviewed.
- DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::addMockSpeechInputResult): Deleted.
(TestRunner::setMockSpeechInputDumpRect): Deleted.
(TestRunner::startSpeechInput): Deleted.
- 1:00 PM Changeset in webkit [172352] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: When Switching Recordings, the UI datagrids do not update to match selection
https://bugs.webkit.org/show_bug.cgi?id=135764
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-08
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineSidebarPanel.js:
When changing the activeContentView trigger an update of the datagrids by
re-applying the filter, which will be different now that the view is different.
- 12:53 PM Changeset in webkit [172351] by
-
- 6 edits in trunk
Adjustments to CueBox CSS Width calculations.
https://bugs.webkit.org/show_bug.cgi?id=135759
<rdar://problem/17954473>.
Reviewed by Eric Carlson.
This is a followup patch that addresses some of the test failures caused by r172224.
These tests were skipped in r172253.
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateActiveCuesFontSize):
Tell the cue boxes that they need to be updated when the font size specified in the user prefs changes.
Cap width to 100%, calculate max-width in percentages instead of pixels.
- html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
- html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::setFontSize):
Remove some unnecessary code that doesn't actually work.
Make sure to tell cuebox that it needs to be updated.
Unskip tests media/track/track-cue-rendering-horizontal.html and media/track/track-cue-rendering-rtl.html.
- 12:33 PM Changeset in webkit [172350] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught Exception opening Web Inspector - TypeError: undefined is not a function - candidateObjectCookie.every
https://bugs.webkit.org/show_bug.cgi?id=135762
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-08
Reviewed by Timothy Hatcher.
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
Fix a typo, the wrong object was being used.
- 12:20 PM Changeset in webkit [172349] by
-
- 4 edits in trunk
make clean does not work in OpenSource, fails in WebKitLibraries
https://bugs.webkit.org/show_bug.cgi?id=135734
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-08
Reviewed by David Kilzer.
Tools:
- Scripts/copy-webkitlibraries-to-product-directory:
Add a --clean switch that removes possible WebKitSystemInterface
and LLVM libraries and headers that may have been copied to the
product directory.
WebKitLibraries:
- Makefile:
Add a "clean" target that runs copy-webkitlibraries-to-product-dir
with the new --clean switch.
- 11:55 AM Changeset in webkit [172348] by
-
- 20 edits in trunk/Source/WebCore
Clean up image subsampling code, make it less iOS-specific
https://bugs.webkit.org/show_bug.cgi?id=134916
Reviewed by Dean Jackson.
Compile the image subsampling code on both Mac and iOS, and make it more platform
neutral in general. Add a setting to allow it to be enabled on Mac for testing.
The most significant changes are in ImageSourceCG and BitmapImageCG. CG's ImageSource
is no longer stateful with respect to subsampling; its functions take a SubsamplingLevel
when appropriate. CG's BitmapImage now determines which level of subsampling to use
for a given frame, storing the subsampling level in the frame data. It can replace
an aggressively subsampled frame with a less subsampled frame if necessary.
To reduce the chances of subsampling affecting rendering, BitmapImage::size() now
always returns the non-subsampled size; subsampling is strictly internal to BitmapImage.
BitmapImage::draw() takes care of scaling the srcRect for subsampled images.
iOS had a code path that enabled caching of frame metadata in BitmapImage without
actually decoding the frame; make this cross-platform.
Fix a couple of issues in the original pathc: remove a log, and ImageSource::allowSubsamplingOfFrameAtIndex()
return false.
- WebCore.exp.in: Changed signature for GraphicsContext::drawNativeImage().
- WebCore.xcodeproj/project.pbxproj: Added ImageSource.cpp, which is not built
for Cocoa but useful for reference.
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer): Remove iOS-specific subsampling code.
(WebCore::CachedImage::createImage): Call setAllowSubsampling() on the image if we
can get to Settings (m_loader is null for image documents).
(WebCore::CachedImage::currentFrameKnownToBeOpaque): This forced decode always
caused creation of the non-subsampled image, so remove it. There's no reason to
eagerly decode the frame here.
- loader/cache/CachedImage.h: Fix comment.
- page/Settings.cpp: Add defaultImageSubsamplingEnabled, true for iOS and false for Mac.
- page/Settings.in: Added imageSubsamplingEnabled.
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage): Init some more things. Default m_allowSubsampling to
true for iOS to catch images created in code paths where we can't get to Settings.
(WebCore::BitmapImage::haveFrameAtIndex): Handy helper.
(WebCore::BitmapImage::cacheFrame): Now takes the subsampling level and whether to cache
just metadata, or also the frame.
(WebCore::BitmapImage::didDecodeProperties): No need to store originalSize.
(WebCore::BitmapImage::updateSize): When we get the size for the first time, call
determineMinimumSubsamplingLevel() to choose a reasonable subsampling level which takes
platform-specific limits into account.
(WebCore::BitmapImage::dataChanged): Comment.
(WebCore::BitmapImage::ensureFrameIsCached): Take ImageFrameCaching into account.
(WebCore::BitmapImage::frameAtIndex): Choose a subsampling level given the scale,
then determine if we can use the currently cached frame, or whether we should resample.
(WebCore::BitmapImage::frameIsCompleteAtIndex): Caching m_isComplete is now done when caching
frame metadata.
(WebCore::BitmapImage::frameDurationAtIndex):
(WebCore::BitmapImage::frameHasAlphaAtIndex): The 'true' return is the safe return value.
(WebCore::BitmapImage::frameOrientationAtIndex): Caching m_orientation is now done when caching
frame metadata.
(WebCore::BitmapImage::cacheFrameInfo): Deleted.
(WebCore::BitmapImage::originalSize): Deleted.
(WebCore::BitmapImage::originalSizeRespectingOrientation): Deleted.
(WebCore::BitmapImage::currentFrameSize): Deleted.
(WebCore::BitmapImage::ensureFrameInfoIsCached): Deleted.
- platform/graphics/BitmapImage.h:
(WebCore::FrameData::FrameData):
- platform/graphics/GraphicsContext.h: No need to pass a scale param now.
- platform/graphics/ImageSource.cpp: Non-Cocoa changes.
(WebCore::ImageSource::subsamplingLevelForScale):
(WebCore::ImageSource::allowSubsamplingOfFrameAtIndex):
(WebCore::ImageSource::size):
(WebCore::ImageSource::frameSizeAtIndex):
(WebCore::ImageSource::createFrameAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):
- platform/graphics/ImageSource.h: No longer stores subsampling state.
(WebCore::ImageSource::isSubsampled): Deleted.
- platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::determineMinimumSubsamplingLevel):
- platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::FrameData::clear):
(WebCore::BitmapImage::BitmapImage): Init more members.
(WebCore::BitmapImage::determineMinimumSubsamplingLevel): Choose a minimum subsampling
level for the platform (subsample until the image area falls under a threshold).
(WebCore::BitmapImage::checkForSolidColor): Don't bother decoding frames if the image
is not 1x1. Also take care not to decode a non-subsampled image.
(WebCore::BitmapImage::draw): The actual bug fix is here; remove logic that
computed srcRectForCurrentFrame from m_size and m_originalSize; for some callers
srcRect was computed using the pre-subsampled size, and for others it was the subsampled size.
Instead, scale srcRect by mapping between the non-subsampled size, and the size of the CGImageRef
which is affected by subsampling.
(WebCore::BitmapImage::copyUnscaledFrameAtIndex):
- platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage): Remove #ifdeffed code.
(WebCore::GraphicsContext3D::paintToCanvas):
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage): No more weird scaling!
- platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::draw):
- platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::ImageSource):
(WebCore::createImageSourceOptions): Helper that always returns a new CFDictionaryRef.
(WebCore::imageSourceOptions): If not subsampling, return the cached CFDictionaryRef, otherwise
make a new options dict and return it.
(WebCore::ImageSource::subsamplingLevelForScale): Helper that returns a subsampling level
between 0 and 3 given a scale.
(WebCore::ImageSource::isSizeAvailable): SkipMetadata is a default value for the param now.
(WebCore::ImageSource::allowSubsamplingOfFrameAtIndex): We turn off subsampling for progressive
JPEGs because of a bug, so need this to know if a frame should be subsampled.
(WebCore::ImageSource::frameSizeAtIndex): The looping to find a subsampling level is now in BitmapImageCG.
(WebCore::ImageSource::orientationAtIndex):
(WebCore::ImageSource::size): Always use a subsampling level of 0 for size().
(WebCore::ImageSource::getHotSpot):
(WebCore::ImageSource::repetitionCount):
(WebCore::ImageSource::createFrameAtIndex): The caller mapped a scale to a level.
(WebCore::ImageSource::frameDurationAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):
(WebCore::ImageSource::imageSourceOptions): Deleted.
(WebCore::ImageSource::originalSize): Deleted.
- platform/graphics/mac/ImageMac.mm:
(WebCore::BitmapImage::invalidatePlatformData): 0 -> nullptr
- platform/graphics/wince/ImageWinCE.cpp:
(WebCore::BitmapImage::determineMinimumSubsamplingLevel):
- 11:28 AM Changeset in webkit [172347] by
-
- 4 edits4 deletes in branches/safari-600.1-branch
Merged r172332.
- 11:13 AM Changeset in webkit [172346] by
-
- 16 edits in trunk
Progress towards using CMake on Mac.
https://bugs.webkit.org/show_bug.cgi?id=135662
Reviewed by Laszlo Gombos.
- CMakeLists.txt:
.:
Mavericks has a flex version of "flex 2.5.35 Apple(flex-31)" which CMake doesn't like on Mac.
- Source/cmake/WebKitFeatures.cmake:
- Source/cmakeconfig.h.cmake:
Added features that are needed by the Mac port.
- Source/cmake/OptionsMac.cmake:
Enable CSS_IMAGE_SET based on FeatureDefines.h.
Disable the FTL with CMake for now.
- Source/cmake/OptionsEFL.cmake:
- Source/cmake/OptionsGTK.cmake:
Enable subpixel layout to not conflict with FeatureDefines.h
Source/WebCore:
Added necessary include directories and idls.
- PlatformEfl.cmake:
- PlatformGTK.cmake:
Moved ImageSource.cpp and image-decoders to platform CMake files because they are not used on mac.
- PlatformMac.cmake:
Corrected some sources.
- config.h:
Added workaround for not using prefix headers with CMake.
- platform/graphics/ANGLEWebKitBridge.h:
Compile fix to find ANGLE headers while using CMake.
- platform/graphics/FormatConverter.h:
- platform/mac/NSScrollerImpDetails.h:
Removed unnecessary config.h includes.
- 10:41 AM Changeset in webkit [172345] by
-
- 3 edits in trunk
Undo some erroneous changes to the Xcode scheme files from r172259.
- WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme:
- WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
- 9:19 AM Changeset in webkit [172344] by
-
- 2 edits in trunk/Source/WebKit2
Services overlay dropdown is often in the wrong place with zoomed pages or horizontal scrolling
https://bugs.webkit.org/show_bug.cgi?id=135755
<rdar://problem/17907752>
Reviewed by Brady Eidson.
- WebProcess/WebPage/mac/ServicesOverlayController.mm:
(WebKit::ServicesOverlayController::establishHoveredTelephoneHighlight):
(WebKit::ServicesOverlayController::maybeCreateSelectionHighlight):
DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection adjusts the
location of the button based on the visible rect, trying to keep the button visible.
We're handing it the wrong visible rect, though, not taking scrolling into account.
This leads to pages that scroll horizontally showing the button on the left
even if there's space for it on the right, or sometimes not showing it at all.
Instead, provide the actual main FrameView visible rect; the same coordinate
space that the highlight rects are provided in.
- 9:18 AM Changeset in webkit [172343] by
-
- 2 edits in trunk/Source/WebKit2
Additional items added to selection services menus are misaligned
https://bugs.webkit.org/show_bug.cgi?id=135747
<rdar://problem/17933167>
Reviewed by Brady Eidson.
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::setupServicesMenu):
Use NSSharingServicePickerStyleRollover for the rollover image services menu;
use NSSharingServicePickerStyleTextSelection for the selection services menu.
Set NSMenu's showsStateColumn to YES for selection services menus, so that
other items added to the menu line up correctly.
Remove an unncessary .get()
- 5:57 AM Changeset in webkit [172342] by
-
- 7 edits in trunk/Source/WebKit2
[EFL] Remove unnecessary ewk_private.h includes
https://bugs.webkit.org/show_bug.cgi?id=135753
Reviewed by Gyuyoung Kim.
Neither the below file uses the functionality from ewk_private.h.
- UIProcess/API/efl/ewk_context.cpp:
- UIProcess/API/efl/ewk_context_menu_item.cpp:
- UIProcess/API/efl/ewk_cookie_manager.cpp:
- UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
- UIProcess/API/efl/ewk_popup_menu_item.cpp:
- UIProcess/API/efl/ewk_view.cpp:
- 2:31 AM Changeset in webkit [172341] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] Do not use GtkWindow:resize-grip-visible with recent GTK+ versions
https://bugs.webkit.org/show_bug.cgi?id=135699
Reviewed by Philippe Normand.
Resize grips support have been removed from GTK+ since 3.13.4, the
API has been deprecated and does nothing.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseSetToplevelOnScreenWindow):
(resizeWebKitWebViewBaseFromAllocation):
- 1:17 AM Changeset in webkit [172340] by
-
- 4 edits in trunk
[CMake] Drop the required version of CMake down to 2.8.8
https://bugs.webkit.org/show_bug.cgi?id=135713
Reviewed by Alex Christensen.
.:
- CMakeLists.txt: Require CMake 2.8.8.
Source/WebCore:
- CMakeLists.txt: Use set_property() to set INCLUDE_DIRECTORIES for
the ANGLESupport library. This avoids using target_include_directories()
which requires CMake 2.8.11.
- 1:09 AM Changeset in webkit [172339] by
-
- 3 edits in trunk/Tools
commit-log-message has extra blank line at the top of pre-populated message
https://bugs.webkit.org/show_bug.cgi?id=135744
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-08
Reviewed by Csaba Osztrogonác.
Do not add a blank leading line in single ChangeLog commit messages.
- Scripts/commit-log-editor:
(createCommitMessage):
- Scripts/webkitpy/common/checkout/checkout_unittest.py:
(test_commit_message_for_one_reviewed_changelog):
(test_commit_message_for_one_rollout_changelog):
- 12:46 AM Changeset in webkit [172338] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer][1.4] Caps negotiation failure in playback pipeline
https://bugs.webkit.org/show_bug.cgi?id=135607
Reviewed by Carlos Garcia Campos.
Ensure the capsfilters used in front of interleave negotiate their
caps correctly with audioconvert which requires audio buffers with
interleaved layout.
No new tests, existing webaudio tests will cover this change once
we bump our JHBuild moduleset to GStreamer 1.4.
- platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(getGStreamerMonoAudioCaps):
- 12:05 AM Changeset in webkit [172337] by
-
- 5 edits in trunk/Source/WebInspectorUI
REGRESSION(r172094): timeline views are blank after reloading in some situations
https://bugs.webkit.org/show_bug.cgi?id=135742
Reviewed by Timothy Hatcher.
Address various bugs that cause the wrong timeline content views to appear when
starting a recording by reloading the inspected page. Fix other small oversights
that were encountered in the sidebar-based view state restoration code.
- UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.saveIdentityToCookie): Add a dummy implementation.
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
This code erroneously matches any tree element whose represented object's
saveIdentityToCookie function produces an empty cookie.
- UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype._showTimelineView): Add an assertion
that will find mismatches between represented objects of the TimelineContentView
and TimelineViews.
- UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie): Don't call
the superclass's implementation, since we do not want to perform a relaxed match
against any of our tree elements. The only thing that can be restored across reopen
is a selected timeline tree element, which is already handled by this override.
Aug 7, 2014:
- 11:57 PM Changeset in webkit [172336] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Fix accidental always true comparison
https://bugs.webkit.org/show_bug.cgi?id=135741
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-07
Reviewed by Timothy Hatcher.
Remove accidental "!" that would always cause this comparison to succeed.
- UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.updateLayout):
- 11:56 PM Changeset in webkit [172335] by
-
- 4 edits4 deletes in tags/Safari-600.1.8
Merged r172332. <rdar://problem/17848141>
- 11:56 PM Changeset in webkit [172334] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Timeline Filter Bars are not appearing at all
https://bugs.webkit.org/show_bug.cgi?id=135740
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-07
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline.has-non-default-filter > .navigation-bar-container):
(.data-grid.timeline > .navigation-bar-container > .navigation-bar):
(body.mac-platform.legacy .data-grid.timeline > .navigation-bar-container > .navigation-bar):
Update the positioning and height for non-legacy because the console is now taller.
- UserInterface/Views/ScopeBar.js:
(WebInspector.ScopeBar.prototype.hasNonDefaultItemSelected):
Helper to know if there is a non-default filter.
- UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
(WebInspector.TimelineDataGrid.prototype._scopeBarSelectedItemsDidChange):
Update scope bar visibility. If non-default we want to always show it.
(WebInspector.TimelineDataGrid.prototype._updateScopeBarForcedVisibility):
If there is a non-default filter, force showing the bar.
- 11:53 PM Changeset in webkit [172333] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: breakpoints enabled state is not persisted across re-opening the inspector
https://bugs.webkit.org/show_bug.cgi?id=135745
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-07
Reviewed by Timothy Hatcher.
When restoring breakpoints when the inspector is initializing, do not
let setting these breakpoints automatically enable breakpoints. We should
respect the setting in this case.
- UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.restoreBreakpointsSoon):
(WebInspector.DebuggerManager):
- 11:50 PM Changeset in webkit [172332] by
-
- 4 edits4 deletes in trunk
Unreviewed, rolling out r172291.
https://bugs.webkit.org/show_bug.cgi?id=135748
broke background-attachment-fixed with backround-size-contain
(e.g. iCloud.com) (Requested by thorton on #webkit).
Reverted changeset:
"Fixed backgrounds don't paint in blurred inset areas"
https://bugs.webkit.org/show_bug.cgi?id=135712
http://trac.webkit.org/changeset/172291
- 11:48 PM Changeset in webkit [172331] by
-
- 3 edits1 add in trunk/Source/WebInspectorUI
Web Inspector: Combine and minify Esprima
https://bugs.webkit.org/show_bug.cgi?id=135728
Reviewed by Joseph Pecoraro.
- Scripts/combine-resources.pl:
- Scripts/copy-user-interface-resources.pl:
- UserInterface/External/Esprima/LICENSE: Added.
- 9:49 PM Changeset in webkit [172330] by
-
- 5 edits in branches/safari-600.1-branch/Source
Versioning.
- 9:43 PM Changeset in webkit [172329] by
-
- 1 copy in tags/Safari-600.1.8
New Tag.
- 9:28 PM Changeset in webkit [172328] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172287. <rdar://problem/17949615>
- 9:27 PM Changeset in webkit [172327] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r172322. <rdar://problem/17954293>
- 8:51 PM Changeset in webkit [172326] by
-
- 3 edits2 adds in trunk
Subpixel rendering: Border thickness and length flooring can result empty borders
due to losing precision during multiple float <-> LayoutUnit conversions.
https://bugs.webkit.org/show_bug.cgi?id=135686
Reviewed by Simon Fraser.
The combination of losing precision and flooring the border thickness/length to avoid
empty border rect drawing can lead to false positives of missing borders.
This patch moves empty border checking right before painting where we can safely use round
instead of floor.
Source/WebCore:
Tests: fast/borders/hidpi-border-width-flooring.html
- rendering/RenderObject.cpp:
(WebCore::drawBorderLineRect):
(WebCore::drawBorderLine):
(WebCore::RenderObject::drawLineForBoxSide):
LayoutTests:
- fast/borders/hidpi-border-width-flooring-expected.html: Added.
- fast/borders/hidpi-border-width-flooring.html: Added.
- 7:40 PM Changeset in webkit [172325] by
-
- 2 edits in trunk/Source/WebCore
[EFL] Build break with mpegts since r167025
https://bugs.webkit.org/show_bug.cgi?id=135737
Reviewed by Gyuyoung Kim.
- PlatformEfl.cmake: Added includes and libraries about MPEG-TS
- 7:29 PM Changeset in webkit [172324] by
-
- 4 edits in trunk/Source/JavaScriptCore
Create a more generic way for VMEntryScope to notify those interested that it will be destroyed
https://bugs.webkit.org/show_bug.cgi?id=135358
Patch by Saam Barati <sbarati@apple.com> on 2014-08-07
Reviewed by Geoffrey Garen.
When VMEntryScope is destroyed, and it has a flag set indicating that the
Debugger needs to recompile all functions, it calls Debugger::recompileAllJSFunctions.
This flag is only used by Debugger to have VMEntryScope notify it when the
Debugger is safe to recompile all functions. This patch will substitute this
Debugger-specific recompilation flag with a list of callbacks that are notified
when the outermost VMEntryScope dies. This creates a general purpose interface
for being notified when the VM stops executing code via the event of the outermost
VMEntryScope dying.
- debugger/Debugger.cpp:
(JSC::Debugger::recompileAllJSFunctions):
- runtime/VMEntryScope.cpp:
(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::setEntryScopeDidPopListener):
(JSC::VMEntryScope::~VMEntryScope):
- runtime/VMEntryScope.h:
(JSC::VMEntryScope::setRecompilationNeeded): Deleted.
- 6:37 PM Changeset in webkit [172323] by
-
- 3 edits1 copy in tags/Safari-600.1.4.8/Source/WebCore
Revert the rollout of r172244. <rdar://problem/17939895>
- 6:17 PM Changeset in webkit [172322] by
-
- 2 edits in trunk/Source/WebKit2
[Services with UI] Action menu does not appear if selection includes both text and an image
https://bugs.webkit.org/show_bug.cgi?id=135731
<rdar://problem/17837491>
Reviewed by Dean Jackson.
- UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess):
Initialize hasRichContentServices with the cached value.
- 6:16 PM Changeset in webkit [172321] by
-
- 2 edits in tags/Safari-600.1.4.8/Source/WebCore
Revert the rollout of r172197. <rdar://problem/17855327>
- 5:50 PM Changeset in webkit [172320] by
-
- 2 edits in tags/Safari-600.1.4.8/Source/WebCore
Roll out r172244. <rdar://problem/17939895>
- 5:42 PM Changeset in webkit [172319] by
-
- 3 edits1 delete in tags/Safari-600.1.4.8/Source/WebCore
Roll out r172197. <rdar://problem/17855327>
- 5:38 PM Changeset in webkit [172318] by
-
- 6 edits7 deletes in trunk/LayoutTests
Get rid of SCRIPTED_SPEECH
https://bugs.webkit.org/show_bug.cgi?id=135729
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-08-07
Reviewed by Brent Fulgham.
- fast/events/constructors/speech-recognition-error-constructor-expected.txt: Removed.
- fast/events/constructors/speech-recognition-error-constructor.html: Removed.
- fast/events/constructors/speech-recognition-event-constructor-expected.txt: Removed.
- fast/events/constructors/speech-recognition-event-constructor.html: Removed.
- fast/speech/scripted/basics-expected.txt: Removed.
- fast/speech/scripted/basics.html: Removed.
- fast/speech/scripted/navigate-away-expected.txt: Removed.
- fast/speech/scripted/navigate-away-iframe-expected.txt: Removed.
- fast/speech/scripted/navigate-away-iframe.html: Removed.
- fast/speech/scripted/navigate-away.html: Removed.
- fast/speech/scripted/speechgrammar-basics-expected.txt: Removed.
- fast/speech/scripted/speechgrammar-basics.html: Removed.
- fast/speech/scripted/speechrecognition-basics-expected.txt: Removed.
- fast/speech/scripted/speechrecognition-basics.html: Removed.
- fast/speech/scripted/speechrecognition-errors-expected.txt: Removed.
- fast/speech/scripted/speechrecognition-errors.html: Removed.
- fast/speech/scripted/speechrecognitionerror-basics-expected.txt: Removed.
- fast/speech/scripted/speechrecognitionerror-basics.html: Removed.
- fast/speech/scripted/start-exception-expected.txt: Removed.
- fast/speech/scripted/start-exception.html: Removed.
- platform/efl/TestExpectations:
- platform/gtk/TestExpectations:
- platform/gtk/fast/speech/speech-bidi-rendering-expected.txt: Removed.
- platform/mac/TestExpectations:
- platform/mac/fast/speech/speech-bidi-rendering-expected.png: Removed.
- platform/mac/fast/speech/speech-bidi-rendering-expected.txt: Removed.
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
- 5:35 PM Changeset in webkit [172317] by
-
- 3 edits in trunk/Source/WebCore
HTML <sub> and <sup> elements do not work in some 64-bit builds
https://bugs.webkit.org/show_bug.cgi?id=135736
Reviewed by Tim Horton.
RootInlineBox::verticalPositionForBox() had some implicit conversions between
LayoutUnit and int that caused overflow, and resulted in different comparison
behavior with an int constant in different architectures, since overflow behavior
is undefined.
Specifically, VerticalPositionCache was written in terms of ints with a special
0x80000000 "not found" value. However, 0x80000000 was being assigned to
a LayoutUnit, which multiplies by 64 causing overflow. The result was then
compared again with 0x80000000 which could pass or fail depending on overflow
behavior.
Fix by converting VerticalPositionCache to use LayoutUnits, and to have a bool
return value with a result out param, instead of a special return value.
Not easily testable, since the difference does not show in DRT output,
and a ref test would be flakey.
- rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::ascentAndDescentForBox):
- rendering/VerticalPositionCache.h:
(WebCore::VerticalPositionCache::get):
(WebCore::VerticalPositionCache::set):
- 5:32 PM Changeset in webkit [172316] by
-
- 19 edits27 deletes in trunk/Source
Get rid of SCRIPTED_SPEECH
https://bugs.webkit.org/show_bug.cgi?id=135729
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-08-07
Reviewed by Brent Fulgham.
- Configurations/FeatureDefines.xcconfig:
../WebCore:
- Configurations/FeatureDefines.xcconfig:
- Modules/speech/SpeechGrammar.cpp: Removed.
- Modules/speech/SpeechGrammar.h: Removed.
- Modules/speech/SpeechGrammar.idl: Removed.
- Modules/speech/SpeechGrammarList.cpp: Removed.
- Modules/speech/SpeechGrammarList.h: Removed.
- Modules/speech/SpeechGrammarList.idl: Removed.
- Modules/speech/SpeechRecognition.cpp: Removed.
- Modules/speech/SpeechRecognition.h: Removed.
- Modules/speech/SpeechRecognition.idl: Removed.
- Modules/speech/SpeechRecognitionAlternative.cpp: Removed.
- Modules/speech/SpeechRecognitionAlternative.h: Removed.
- Modules/speech/SpeechRecognitionAlternative.idl: Removed.
- Modules/speech/SpeechRecognitionClient.h: Removed.
- Modules/speech/SpeechRecognitionController.cpp: Removed.
- Modules/speech/SpeechRecognitionController.h: Removed.
- Modules/speech/SpeechRecognitionError.cpp: Removed.
- Modules/speech/SpeechRecognitionError.h: Removed.
- Modules/speech/SpeechRecognitionError.idl: Removed.
- Modules/speech/SpeechRecognitionEvent.cpp: Removed.
- Modules/speech/SpeechRecognitionEvent.h: Removed.
- Modules/speech/SpeechRecognitionEvent.idl: Removed.
- Modules/speech/SpeechRecognitionResult.cpp: Removed.
- Modules/speech/SpeechRecognitionResult.h: Removed.
- Modules/speech/SpeechRecognitionResult.idl: Removed.
- Modules/speech/SpeechRecognitionResultList.cpp: Removed.
- Modules/speech/SpeechRecognitionResultList.h: Removed.
- Modules/speech/SpeechRecognitionResultList.idl: Removed.
- bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
- bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setScriptedSpeechEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::scriptedSpeechEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitSpeechRecognitionEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitSpeechRecognitionErrorEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitSpeechRecognitionEventEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitSpeechGrammarEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitSpeechGrammarListEnabled): Deleted.
- bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue): Deleted.
- bindings/js/JSDictionary.h:
- dom/EventNames.in:
- dom/EventTargetFactory.in:
../WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
../WebKit2:
- Configurations/FeatureDefines.xcconfig:
../WTF:
- wtf/FeatureDefines.h:
- 5:25 PM Changeset in webkit [172315] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r172312
- 5:19 PM Changeset in webkit [172314] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r172313
- 5:15 PM Changeset in webkit [172313] by
-
- 2 edits in trunk/Source/WebInspectorUI
Fix regression where tree outline keyboard navigation is broken.
https://bugs.webkit.org/show_bug.cgi?id=135718
Reviewed by Joseph Pecoraro.
- UserInterface/Views/TreeOutline.js:
(TreeElement.prototype.revealed): Fix the check for currentAncestor.hidden.
- 5:08 PM Changeset in webkit [172312] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Filter bar text and icon are positioned too low and tight
https://bugs.webkit.org/show_bug.cgi?id=135723
Reviewed by Joseph Pecoraro.
- UserInterface/Views/FilterBar.css:
(.filter-bar > input[type="search"]):
(.filter-bar > input[type="search"]::-webkit-search-decoration):
- UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]):
- 4:44 PM Changeset in webkit [172311] by
-
- 7 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r172307
- 4:43 PM Changeset in webkit [172310] by
-
- 2 edits in trunk/Tools
[Win] Unreviewed gardening.
Have 'Assemble Build Logs' step work properly for DebugSuffix target
(both 32-bit and 64-bit).
- win/AssembleBuildLogs/AssembleBuildLogs.vcxproj:
- 4:35 PM Changeset in webkit [172309] by
-
- 2 edits in trunk/Source/WebCore
[Win] Unreviewed gardening.
Don't build the JSFileException and JSFileReaderSync files in 64-bit; they are already part
of DerivedObjects.cpp.
- WebCore.vcxproj/WebCore.vcxproj: Exclude JSFileException and JSFileReaderSync to avoid
multiple definitions of symbols.
- 4:34 PM Changeset in webkit [172308] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged patch from <rdar://problem/17952779>
- 4:29 PM Changeset in webkit [172307] by
-
- 7 edits in trunk/Source/WebKit2
setCustomSwipeViews inside didChangeBackForwardList client callback is ignored
https://bugs.webkit.org/show_bug.cgi?id=135633
<rdar://problem/17926507>
Reviewed by Sam Weinig.
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChangeBackForwardList):
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::clearCustomSwipeViews): Deleted.
- UIProcess/mac/PageClientImpl.h:
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::clearCustomSwipeViews): Deleted.
WebKit clears the set of custom swipe views at the end of WebPageProxy::didChangeBackForwardList,
*after* calling into the client. This means that if the client wants to setCustomSwipeViews in
didChangeBackForwardList, it won't be respected.
Since there's only one client of this SPI, let's just stop clearing the list of custom swipe
views in WebKit and leave that totally up to the client.
- 4:26 PM Changeset in webkit [172306] by
-
- 2 edits in tags/Safari-600.1.2.9/Source/WebCore
Merge patch from <rdar://problem/17952463>.
- 4:24 PM Changeset in webkit [172305] by
-
- 5 edits in tags/Safari-600.1.2.9/Source
Versioning.
- 4:22 PM Changeset in webkit [172304] by
-
- 1 copy in tags/Safari-600.1.2.9
New Tag.
- 4:21 PM Changeset in webkit [172303] by
-
- 17 edits in branches/safari-600.1-branch/Source
Merged r172301
- 4:08 PM Changeset in webkit [172302] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r172289
- 4:08 PM Changeset in webkit [172301] by
-
- 17 edits in trunk/Source
[Services with UI] Action menu does not appear if selection includes both text and an image.
https://bugs.webkit.org/show_bug.cgi?id=135731
<rdar://problem/17837491>
Reviewed by Brady Eidson.
Source/WebCore:
When collecting selection rects via SelectionRectGatherer we should also note if the selection
contains non text elements. This way the Notifier class can send that information to ServicesOverlayController
to properly handle the highlight for the service.
- editing/SelectionRectGatherer.cpp:
(WebCore::SelectionRectGatherer::SelectionRectGatherer):
(WebCore::SelectionRectGatherer::Notifier::~Notifier):
(WebCore::SelectionRectGatherer::clearAndCreateNotifier):
- editing/SelectionRectGatherer.h:
(WebCore::SelectionRectGatherer::setTextOnly):
(WebCore::SelectionRectGatherer::isTextOnly):
- page/EditorClient.h:
(WebCore::EditorClient::selectionRectsDidChange):
- rendering/RenderView.cpp:
(WebCore::RenderView::applySubtreeSelection):
Source/WebKit2:
Adding a new setting to ServicesController to communicate to the WebProcess if
there are services installed that can handle a combination of text and images.
This way ServicesOverlayController can decide if it appropriate to show the hightlight
based on the type of selection (text only or non text only). This information is retrieved
when the selection rects are collected by SelectionGatherer and used by
SelectionGatherer::Notifier to communicate the selection change.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
- Shared/WebProcessCreationParameters.h:
- UIProcess/mac/ServicesController.h:
(WebKit::ServicesController::hasRichContentServices):
- UIProcess/mac/ServicesController.mm:
(WebKit::ServicesController::ServicesController):
(WebKit::ServicesController::refreshExistingServices):
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::selectionRectsDidChange):
- WebProcess/WebCoreSupport/WebEditorClient.h:
- WebProcess/WebPage/ServicesOverlayController.h:
- WebProcess/WebPage/mac/ServicesOverlayController.mm:
(WebKit::ServicesOverlayController::ServicesOverlayController):
(WebKit::ServicesOverlayController::selectionRectsDidChange):
(WebKit::ServicesOverlayController::drawSelectionHighlight):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setEnabledServices):
- WebProcess/WebProcess.h:
(WebKit::WebProcess::hasRichContentServices):
- WebProcess/WebProcess.messages.in:
- 4:06 PM Changeset in webkit [172300] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r172285
- 4:02 PM Changeset in webkit [172299] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r172263
- 4:02 PM Changeset in webkit [172298] by
-
- 2 edits in trunk/Source/WebKit
[Win] Unreviewed gardening.
- WebKit.vcxproj/WebKit/WebKitCommon.props: Add $(DebugSuffix) to libraries so
that the DebugSuffix target works properly.
- 3:59 PM Changeset in webkit [172297] by
-
- 91 edits7 copies14 deletes in branches/safari-600.1-branch/Source
Merged r172241
- 3:47 PM Changeset in webkit [172296] by
-
- 10 edits in trunk/Source/ThirdParty/ANGLE
[Win] Unreviewed gardening.
DebugSuffix targets should use our debugsuffix property sheet, and
will therefore build to the proper output location with the proper
suffix tags.
Also, we must use the WebKit_Libraries environment variable, not a set
of relative paths to the property sheets.
- ANGLE.vcxproj/libEGL.vcxproj: Use 'debugsuffix.props' sheet.
- ANGLE.vcxproj/libGLESv2.vcxproj: Ditto.
- ANGLE.vcxproj/preprocessor.vcxproj: Ditto.
- ANGLE.vcxproj/translator_common.vcxproj: Ditto.
- ANGLE.vcxproj/translator_glsl.vcxproj: Ditto.
- ANGLE.vcxproj/translator_hlsl.vcxproj: Ditto.
- ANGLE.vcxproj/libEGLCommon.props: Use $(DebugSuffix) endings.
- ANGLE.vcxproj/libGLESv2Common.props: Ditto.
- ANGLE.vcxproj/translatorCommon.props: Output to 'lib' folder,
not 'bin' folder. These are libraries!
- 3:34 PM Changeset in webkit [172295] by
-
- 4 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172293
- 3:30 PM Changeset in webkit [172294] by
-
- 4 edits5 copies in branches/safari-600.1-branch
Merged r172291
- 3:27 PM Changeset in webkit [172293] by
-
- 4 edits in trunk/Source/WebCore
[Mac] Parental Controls content filter is mistakenly enabled for HTTP responses
https://bugs.webkit.org/show_bug.cgi?id=135730
Reviewed by Brady Eidson.
On the Mac, the WebFilterEvaluator (Parental Controls) content filter should only be enabled for HTTPS
responses. During iOS upstreaming we mistakenly enabled it for HTTP responses as well, and this causes HTTP
responses to be filtered twice -- once by the Parental Controls HTTP proxy and once by WebCore. Revert to the
pre-upstreaming behavior and only enable the content filter for HTTPS responses.
No new tests. Content filtering is not testable from WebKit.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived): Passed the response to ContentFilter::canHandleResponse().
- platform/ContentFilter.h:
- platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::canHandleResponse): Renamed from isEnabled(). Checks the response's scheme on Mac to
determine whether WebFilterEvaluator should be used.
(WebCore::ContentFilter::isEnabled): Deleted.
- 3:26 PM Changeset in webkit [172292] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172275
- 3:25 PM Changeset in webkit [172291] by
-
- 4 edits10 adds in trunk
Fixed backgrounds don't paint in blurred inset areas
https://bugs.webkit.org/show_bug.cgi?id=135712
Reviewed by Simon Fraser.
Source/WebCore:
Background geometry calculations for fixed background need to use the larger
visible rect.
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
LayoutTests:
Unfortunately for this test to be valid in WK2, it needs to be run from the
platform/mac-wk2/tiled-drawing directory so that tiled drawing is enabled. So
there are two copies of the test so that we can get coverage for WK1 and WK2.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk1/fast: Added.
- platform/mac-wk1/fast/backgrounds: Added.
- platform/mac-wk1/fast/backgrounds/resources: Added.
- platform/mac-wk1/fast/backgrounds/resources/green.png: Added.
- platform/mac-wk1/fast/backgrounds/top-content-inset-fixed-attachment-expected.html: Added.
- platform/mac-wk1/fast/backgrounds/top-content-inset-fixed-attachment.html: Added.
- platform/mac-wk2/tiled-drawing/resources/green.png: Added.
- platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-expected.html: Added.
- platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment.html: Added.
- platform/mac/fast/backgrounds/resources: Added.
- 3:22 PM Changeset in webkit [172290] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172231
- 3:21 PM Changeset in webkit [172289] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Dashboard error and warning icons should be filled when enabled
https://bugs.webkit.org/show_bug.cgi?id=135725
Reviewed by Joseph Pecoraro.
- UserInterface/Images/ErrorsEnabled.svg:
- UserInterface/Images/IssuesEnabled.svg:
- 3:20 PM Changeset in webkit [172288] by
-
- 4 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172228
- 3:17 PM Changeset in webkit [172287] by
-
- 2 edits in trunk/Source/WebCore
[EME][Mac] Error codes returned by AVSampleBufferDisplayLayer are negative; clip when passed to JavaScript as doubles.
https://bugs.webkit.org/show_bug.cgi?id=135710
Reviewed by Brent Fulgham.
Return the absolute value of the error codes returned by AVSampleBufferDisplayLayer, so that the conversion from
unsigned -> double does not clip due to the (converted) value being greater than 253.
- platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::layerDidReceiveError):
(WebCore::CDMSessionMediaSourceAVFObjC::rendererDidReceiveError):
- 3:16 PM Changeset in webkit [172286] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebCore
Merge r172224
- 3:14 PM Changeset in webkit [172285] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Dashboard contents shift when window changes active state
https://bugs.webkit.org/show_bug.cgi?id=135724
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-07
Reviewed by Timothy Hatcher.
The container was getting a 1px border when inactive and none when active.
Give it a transparent border when active so contents don't change size.
- UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
- 3:11 PM Changeset in webkit [172284] by
-
- 8 edits in trunk/Source/WebKit2
[EFL] Fix several warnings of doxygen
https://bugs.webkit.org/show_bug.cgi?id=135643
Reviewed by Gyuyoung Kim.
- UIProcess/API/efl/ewk_context_menu_item.h: Removed /info which is not doxygen keyword and unnecessary to the user.
- UIProcess/API/efl/ewk_cookie_manager.h: Fixed parameter name.
- UIProcess/API/efl/ewk_form_submission_request.h: Removed # from Eina_List because doxygen may not know the EFL structures.
- UIProcess/API/efl/ewk_page_group.h: Fixed to match with parameter name.
- UIProcess/API/efl/ewk_settings.h: Fixed wrong keyword and parameter name.
- UIProcess/API/efl/ewk_text_checker.h: Ditto.
- UIProcess/API/efl/ewk_view.h:
- Used escape string for the tag.
- Used @code, @endcode for media query example.
- 3:10 PM Changeset in webkit [172283] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172257
- 3:08 PM Changeset in webkit [172282] by
-
- 2 edits in trunk/Source/JavaScriptCore
SpeculateInt32Operand is sometimes used in a 64-bit context, which has undefined behavior
https://bugs.webkit.org/show_bug.cgi?id=135722
Reviewed by Filip Pizlo.
We should be using SpeculateStrictInt32Operand instead.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- 3:07 PM Changeset in webkit [172281] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172244
- 2:50 PM Changeset in webkit [172280] by
-
- 2 edits in tags/Safari-600.1.4.8/Source/WebCore
Merge r172275. <rdar://problem/17886686>
- 2:49 PM Changeset in webkit [172279] by
-
- 7 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r172238
- 2:47 PM Changeset in webkit [172278] by
-
- 3 edits1 copy in branches/safari-600.1-branch/Source/WebCore
Merged r172197
- 2:43 PM Changeset in webkit [172277] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r172275. <rdar://problem/17886686>
- 2:40 PM Changeset in webkit [172276] by
-
- 5 edits in branches/safari-600.1-branch/Source
Merged r172191
- 2:39 PM Changeset in webkit [172275] by
-
- 2 edits in trunk/Source/WebCore
Sometimes Gmail cannot load messages, particularly on refresh ("...the application ran into an unexpected error...")
https://bugs.webkit.org/show_bug.cgi?id=135688
<rdar://problem/17886686>
Reviewed by Alexey Proskuryakov.
Fixes an issue where gmail.com may fail to load the list of messages. In particular, a SQLTransactionCallback
function may not be executed and hence Gmail will not display the list of messages and
will subsequently display an error message.
When a WebKit client defers loading of a page (e.g. -[WebView setDefersCallbacks:YES]), WebCore
may still load the main resource, say if substitute data is available for it, and defer executing
tasks, such as a SQLTransactionCallback function, by appending such tasks to the end of the list
of pending tasks for the associated Document. This list of pending tasks is never processed when
a client subsequently allows loading (e.g. -[WebView setDefersCallbacks:NO])). Therefore, we never
execute a SQLTransactionCallback function that was deferred.
Ideally WebCore would defer loading of substitute data when a WebKit client requests that loading
be deferred and hence a SQLTransactionCallback function would be deferred as a consequence of the
lack of JavaScript script execution (since substitute data wasn't loaded and hence any JavaScript
script contained in the substitute data that initiates a SQL transaction isn't executed). For now,
it's sufficient to only defer executing tasks when either there are existing pending tasks or the
page defers loading and active DOM objects in the document are suspended (e.g. Document::suspendActiveDOMObjects() was called).
- dom/Document.cpp:
(WebCore::Document::postTask):
- 2:37 PM Changeset in webkit [172274] by
-
- 2 edits in branches/safari-600.1-branch
Merged r172183
- 2:33 PM Changeset in webkit [172273] by
-
- 5 edits in branches/safari-600.1-branch
Merged r172027
- 2:31 PM Changeset in webkit [172272] by
-
- 5 edits in branches/safari-600.1-branch
Merged r172005
- 2:28 PM Changeset in webkit [172271] by
-
- 5 edits in branches/safari-600.1-branch
Merged r171997
- 2:26 PM Changeset in webkit [172270] by
-
- 5 edits2 copies in branches/safari-600.1-branch
Merged r171996
- 2:23 PM Changeset in webkit [172269] by
-
- 1 copy in tags/Safari-600.1.4.8
New Tag.
- 2:23 PM Changeset in webkit [172268] by
-
- 1 delete in tags/Safari-600.1.4.8
Delete the Safari-600.1.4.8 tag.
- 2:20 PM Changeset in webkit [172267] by
-
- 1 edit1 copy in tags/Safari-600.1.2.8/Source/WebInspectorUI
Merge r172262.
- 2:19 PM Changeset in webkit [172266] by
-
- 3 edits2 copies in branches/safari-600.1-branch
Merged r171994
- 2:19 PM Changeset in webkit [172265] by
-
- 1 delete in tags/Safari-600.1.4.8/safari-600.1.4-branch
SVN hang caused double tagging.
- 2:18 PM Changeset in webkit [172264] by
-
- 3 edits in trunk/LayoutTests
http/tests/security/cross-frame-access-enumeration.html fails after FTLOPT merge.
<https://webkit.org/b/135708>
Reviewed by Mark Hahnenberg.
- TestExpectations:
- http/tests/security/cross-frame-access-enumeration-expected.txt:
- re-baselined the test results.
- 2:10 PM Changeset in webkit [172263] by
-
- 2 edits in trunk/Source/WebInspectorUI
Fix reference to missing CloseTimeline.svg image.
Rubber-stamped by Joseph Pecoraro.
- UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.createTimelineTreeElement): Use CloseLarge.svg instead.
- 2:09 PM Changeset in webkit [172262] by
-
- 1 edit1 add in trunk/Source/WebInspectorUI
[Win] Unreviewed build fix.
Add a WebInspectorUI.proj file for use with MSBuild utility.
- WebInspectorUI.vcxproj/WebInspectorUI.proj: Added.
- 2:08 PM Changeset in webkit [172261] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r172217
- 2:06 PM Changeset in webkit [172260] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172215
- 2:04 PM Changeset in webkit [172259] by
-
- 62 edits50 deletes in trunk
Get rid of INPUT_SPEECH
https://bugs.webkit.org/show_bug.cgi?id=135672
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-08-07
Reviewed by Andreas Kling.
.:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/WebKitFeatures.cmake:
- Source/cmakeconfig.h.cmake:
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- CMakeLists.txt:
- Configurations/FeatureDefines.xcconfig:
- DerivedSources.make:
- Modules/speech/SpeechSynthesis.cpp:
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.vcxproj/WebCore.vcxproj.filters:
- WebCore.xcodeproj/project.pbxproj:
- bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
- bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setSpeechInputEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::speechInputEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitSpeechEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webkitGrammarEnabled): Deleted.
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
- css/CSSValueKeywords.in:
- css/html.css:
(input::-webkit-input-speech-button): Deleted.
- dom/Element.h:
(WebCore::Element::isInputFieldSpeechButtonElement): Deleted.
- dom/EventNames.in:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::speechButtonElement): Deleted.
(WebCore::HTMLInputElement::isSpeechEnabled): Deleted.
- html/HTMLInputElement.h:
- html/HTMLInputElement.idl:
- html/InputType.cpp:
(WebCore::InputType::shouldRespectListAttribute):
(WebCore::InputType::shouldRespectSpeechAttribute): Deleted.
- html/InputType.h:
(WebCore::InputType::speechButtonElement): Deleted.
- html/NumberInputType.cpp:
(WebCore::NumberInputType::shouldRespectSpeechAttribute): Deleted.
- html/NumberInputType.h:
- html/PasswordInputType.cpp:
(WebCore::PasswordInputType::shouldRespectSpeechAttribute): Deleted.
- html/PasswordInputType.h:
- html/SearchInputType.cpp:
(WebCore::SearchInputType::shouldRespectSpeechAttribute): Deleted.
- html/SearchInputType.h:
- html/TelephoneInputType.cpp:
(WebCore::TelephoneInputType::shouldRespectSpeechAttribute): Deleted.
- html/TelephoneInputType.h:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::needsContainer):
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::destroyShadowSubtree):
(WebCore::TextFieldInputType::speechButtonElement): Deleted.
- html/TextFieldInputType.h:
- html/TextInputType.cpp:
(WebCore::TextInputType::shouldRespectSpeechAttribute): Deleted.
- html/TextInputType.h:
- html/shadow/TextControlInnerElements.cpp:
(WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement): Deleted.
(WebCore::InputFieldSpeechButtonElement::~InputFieldSpeechButtonElement): Deleted.
(WebCore::InputFieldSpeechButtonElement::create): Deleted.
(WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Deleted.
(WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents): Deleted.
(WebCore::InputFieldSpeechButtonElement::setState): Deleted.
(WebCore::InputFieldSpeechButtonElement::speechInput): Deleted.
(WebCore::InputFieldSpeechButtonElement::didCompleteRecording): Deleted.
(WebCore::InputFieldSpeechButtonElement::didCompleteRecognition): Deleted.
(WebCore::InputFieldSpeechButtonElement::setRecognitionResult): Deleted.
(WebCore::InputFieldSpeechButtonElement::willAttachRenderers): Deleted.
(WebCore::InputFieldSpeechButtonElement::willDetachRenderers): Deleted.
(WebCore::InputFieldSpeechButtonElement::startSpeechInput): Deleted.
(WebCore::InputFieldSpeechButtonElement::stopSpeechInput): Deleted.
- html/shadow/TextControlInnerElements.h:
(WebCore::toInputFieldSpeechButtonElement): Deleted.
- page/SpeechInput.cpp: Removed.
- page/SpeechInput.h: Removed.
- page/SpeechInputClient.h: Removed.
- page/SpeechInputEvent.cpp: Removed.
- page/SpeechInputEvent.h: Removed.
- page/SpeechInputEvent.idl: Removed.
- page/SpeechInputListener.h: Removed.
- page/SpeechInputResult.cpp: Removed.
- page/SpeechInputResult.h: Removed.
- page/SpeechInputResult.idl: Removed.
- page/SpeechInputResultList.cpp: Removed.
- page/SpeechInputResultList.h: Removed.
- page/SpeechInputResultList.idl: Removed.
- platform/ThemeTypes.h:
- rendering/RenderInputSpeech.cpp: Removed.
- rendering/RenderInputSpeech.h: Removed.
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::adjustInputFieldSpeechButtonStyle): Deleted.
(WebCore::RenderTheme::paintInputFieldSpeechButton): Deleted.
- rendering/RenderTheme.h:
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
Source/WebInspectorUI:
- UserInterface/Models/CSSKeywordCompletions.js:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
- PlatformGTK.cmake:
Source/WTF:
- wtf/FeatureDefines.h:
Tools:
- DumpRenderTree/TestRunner.cpp:
(TestRunner::staticFunctions):
(addMockSpeechInputResultCallback): Deleted.
(setMockSpeechInputDumpRectCallback): Deleted.
- DumpRenderTree/TestRunner.h:
- DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::addMockSpeechInputResult): Deleted.
(TestRunner::setMockSpeechInputDumpRect): Deleted.
(TestRunner::startSpeechInput): Deleted.
LayoutTests:
- fast/forms/input-user-modify.html:
- fast/speech/bubble-position-expected.txt: Removed.
- fast/speech/bubble-position-scrolled-expected.txt: Removed.
- fast/speech/bubble-position-scrolled.html: Removed.
- fast/speech/bubble-position.html: Removed.
- fast/speech/change-focus-expected.txt: Removed.
- fast/speech/change-focus.html: Removed.
- fast/speech/input-appearance-numberandspeech.html: Removed.
- fast/speech/input-appearance-searchandspeech.html: Removed.
- fast/speech/input-appearance-speechbutton.html: Removed.
- fast/speech/input-onspeechchange-event-expected.txt: Removed.
- fast/speech/input-onspeechchange-event.html: Removed.
- fast/speech/input-ontextinput-event-expected.txt: Removed.
- fast/speech/input-ontextinput-event.html: Removed.
- fast/speech/input-readonly-and-disabled-expected.txt: Removed.
- fast/speech/input-readonly-and-disabled.html: Removed.
- fast/speech/input-text-language-tag-expected.txt: Removed.
- fast/speech/input-text-language-tag.html: Removed.
- fast/speech/input-text-speechbutton-expected.txt: Removed.
- fast/speech/input-text-speechbutton.html: Removed.
- fast/speech/input-text-speechstart-expected.txt: Removed.
- fast/speech/input-text-speechstart.html: Removed.
- fast/speech/intrinsic-input-width-with-speech-border-padding-expected.txt: Removed.
- fast/speech/intrinsic-input-width-with-speech-border-padding.html: Removed.
- fast/speech/speech-bidi-rendering.html: Removed.
- fast/speech/speech-button-ignore-generated-events-expected.txt: Removed.
- fast/speech/speech-button-ignore-generated-events.html: Removed.
- fast/speech/speech-input-result-list-not-enough-arguments-expected.txt: Removed.
- fast/speech/speech-input-result-list-not-enough-arguments.html: Removed.
- fast/speech/speech-input-scripting-expected.txt: Removed.
- fast/speech/speech-input-scripting.html: Removed.
- fast/speech/speech-style-on-non-speech-elements-expected.txt: Removed.
- fast/speech/speech-style-on-non-speech-elements.html: Removed.
- platform/gtk/fast/speech/input-appearance-searchandspeech-expected.txt: Removed.
- platform/gtk/fast/speech/input-appearance-speechbutton-expected.txt: Removed.
- platform/ios-sim/fast/speech/input-appearance-numberandspeech-expected.txt: Removed.
- platform/ios-sim/fast/speech/input-appearance-searchandspeech-expected.txt: Removed.
- platform/ios-sim/fast/speech/input-appearance-speechbutton-expected.txt: Removed.
- 2:03 PM Changeset in webkit [172258] by
-
- 7 edits in branches/safari-600.1-branch
Merged r172213
- 2:01 PM Changeset in webkit [172257] by
-
- 2 edits in trunk/Source/WebCore
Create UTF-8 string from in-band VTT cues
https://bugs.webkit.org/show_bug.cgi?id=135716
Reviewed by Brent Fulgham.
Tests will be added in https://bugs.webkit.org/show_bug.cgi?id=135717.
- platform/graphics/ISOVTTCue.cpp:
(WebCore::ISOBox::peekString): Call String::fromUTF8 because we know that VTT is always
UTF-8.
- 2:01 PM Changeset in webkit [172256] by
-
- 1 copy in tags/Safari-600.1.4.8/safari-600.1.4-branch
New Tag
- 2:00 PM Changeset in webkit [172255] by
-
- 1 copy in tags/Safari-600.1.4.8
New Tag
- 1:56 PM Changeset in webkit [172254] by
-
- 8 edits in branches/safari-600.1-branch/Source
Merged r172202
- 1:56 PM Changeset in webkit [172253] by
-
- 2 edits in trunk/LayoutTests
Gardening: Mark some tests as failing to green the bots.
<https://webkit.org/b/135720>
Not reviewed.
- 1:53 PM Changeset in webkit [172252] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r172200
- 1:51 PM Changeset in webkit [172251] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r172244. <rdar://problem/17939895>
- 1:51 PM Changeset in webkit [172250] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172195
- 1:50 PM Changeset in webkit [172249] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Dragging selection window when mouse goes out of window bounds does not behave as expected
https://bugs.webkit.org/show_bug.cgi?id=135372
Reviewed by Timothy Hatcher.
Constrain move selection window dragging to the ruler bounds
based on the mouse down position on the drag window.
- UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleMouseDown):
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
- 1:49 PM Changeset in webkit [172248] by
-
- 14 edits in branches/safari-600.1-branch/Source
Merged r172193
- 1:47 PM Changeset in webkit [172247] by
-
- 3 edits2 copies in branches/safari-600.1-branch
Merged r172183
- 1:44 PM Changeset in webkit [172246] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172179
- 1:41 PM Changeset in webkit [172245] by
-
- 15 edits in branches/safari-600.1-branch/Source
Merged r172172
- 1:41 PM Changeset in webkit [172244] by
-
- 2 edits in trunk/Source/WebCore
Disable implicit animations on video layer.
https://bugs.webkit.org/show_bug.cgi?id=135679
Reviewed by Eric Carlson.
Disable implicit animations on AVPlayerLayer except when setting fullscreen frame.
This prevents unwanted animations.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): disable implicit animations
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): allow implicit animations while changing fullscreen frame.
- 1:37 PM Changeset in webkit [172243] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Versioning.
- 1:33 PM Changeset in webkit [172242] by
-
- 3 edits2 copies in branches/safari-600.1-branch
Merged r172160
- 1:31 PM Changeset in webkit [172241] by
-
- 91 edits45 copies8 moves8 adds6 deletes in trunk/Source
Web Inspector: Update glyphs to be more like Xcode 6
https://bugs.webkit.org/show_bug.cgi?id=135705
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js: Updated.
- UserInterface/Base/ImageUtilities.js:
(platformImagePath): Added.
(generateEmbossedImages.generateImage):
Bump the base image version. Helper function. Use isLegacyMacOS.
- UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._updateDockNavigationItems):
(WebInspector._generateDisclosureTriangleImages):
Use new images and add legacy path. Remove the shadow.
- UserInterface/Images: Updated images.
- UserInterface/Images/Legacy: Added. Moved legacy images here.
- UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section):
(body.mac-platform.legacy .style-declaration-section + .style-declaration-section):
(.style-declaration-section.last-in-group):
(.style-declaration-section.last-in-group + .style-declaration-section):
Use a consistent gray for borders.
- UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content > .pseudo-classes):
Use a consistent gray for borders.
- UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
Use new images and add legacy path.
- UserInterface/Views/ControlToolbarItem.css:
(.toolbar .item.control):
(body.mac-platform.legacy .toolbar .item.control):
(.toolbar .item.control:hover):
(body.mac-platform.legacy .toolbar .item.control:hover):
Adjust the opacity for controls.
- UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
Use new images and add legacy path.
- UserInterface/Views/DataGrid.css:
(.data-grid tr.selected):
Use a consistent gray for borders.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.get _generateSortIndicatorImagesIfNeeded):
Use new images and add legacy path. Remove the shadow.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
Use new images and add legacy path.
- UserInterface/Views/DefaultDashboardView.css:
(.toolbar .dashboard.default > .item):
(body.mac-platform.legacy .toolbar .dashboard.default > .item):
(body.mac-platform.legacy .toolbar .dashboard.default > .resourcesCount > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .time > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .logs > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .resourcesSize > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .errors > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .errors.enabled > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .issues > img):
(body.mac-platform.legacy .toolbar .dashboard.default > .issues.enabled > img):
Use new images and add legacy path.
- UserInterface/Views/DetailsSection.css:
(.details-section):
(.details-section .details-section:first-child):
(body.mac-platform.legacy .details-section > .header):
(.details-section > .content > .group):
(.details-section > .content > .group:nth-child(even) > .row.simple:first-child > *):
(body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *):
Use a consistent gray for borders.
- UserInterface/Views/FilterBar.css:
(body.mac-platform.legacy .filter-bar > input[type="search"]::-webkit-search-decoration):
Use new images and add legacy path.
- UserInterface/Views/FindBanner.css:
(.find-banner):
Use a consistent gray for borders.
- UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
Add legacy path.
- UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
Use new images and add legacy path.
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
Use new images and add legacy path.
- UserInterface/Views/Main.css:
(#split-content-browser):
Use a consistent gray for borders.
- UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .overflow-shadow):
(body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow):
(.sidebar > .panel.navigation > .overflow-shadow.top):
(body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow.top):
(.sidebar > .panel.navigation > .empty-content-placeholder):
(body.mac-platform.legacy .sidebar > .panel.navigation > .empty-content-placeholder):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected.expanded .disclosure-button):
(.navigation-sidebar-panel-content-tree-outline .item.selected):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
Adjust the styles to make the selected item use white text and icons only when focused.
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._generateDisclosureTrianglesIfNeeded):
Remove the shadow from the disclosure triangles. Make the overflow shadow not fade.
- UserInterface/Views/ProbeDetailsSidebarPanel.css:
(.details-section.probe-set .options > .probe-clear-samples):
(.details-section.probe-set .options > .probe-remove):
(.details-section.probe-set .options > .probe-add):
(body.mac-platform.legacy .details-section.probe-set .options > .probe-clear-samples):
(body.mac-platform.legacy .details-section.probe-set .options > .probe-remove):
(body.mac-platform.legacy .details-section.probe-set .options > .probe-add):
Tweak size and position of icons and use legacy paths.
- UserInterface/Views/QuickConsole.css:
(.quick-console):
Adjust padding to match filter bar height.
- UserInterface/Views/ResourceSidebarPanel.css:
(.sidebar > .panel.navigation.resource > .search-bar):
Adjust height.
- UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(.sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule img):
Use a consistent gray for borders. Don't bold the New Rule label.
- UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView):
Use new images and add legacy path.
- UserInterface/Views/Sidebar.css:
(.sidebar.left):
(.sidebar.right):
Use a consistent gray for borders.
- UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView):
Use new images and add legacy path.
- UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView):
Use new images and add legacy path.
- UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView):
Use new images and add legacy path.
- UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline th):
(.data-grid.timeline th.sortable:active):
(.data-grid.timeline th.sort-descending):
Fix a regression with the gradient background showing in legacy mode.
- UserInterface/Views/TimelineIcons.css:
(body.mac-platform.legacy .network-icon .icon):
(body.mac-platform.legacy .network-icon.large .icon):
(body.mac-platform.legacy .colors-icon .icon):
(body.mac-platform.legacy .colors-icon.large .icon):
Added legacy versions of these icons.
- UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:active):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced):
(.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
Update the styles for the recording button and close button.
- UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
Use TreeElementStatusButton instead of a styled image.
- UserInterface/Views/TreeElementStatusButton.css:
(.item > .status > .status-button > svg path.filled):
(body.mac-platform.legacy .item > .status > .status-button > svg path.filled):
(:focus .item.selected > .status > .status-button > svg path.filled):
(.item > .status > .status-button > svg path.stroked):
(body.mac-platform.legacy .item > .status > .status-button > svg path.stroked):
(:focus .item.selected > .status > .status-button > svg path.stroked):
(.item.selected > .status > .status-button:active):
(.item > .status > .status-button.disabled):
Updated selectors and styles to work with stroke or fill.
Source/WebKit:
- WebKit.xcodeproj/project.pbxproj: Added new images.
Source/WebKit/mac:
- Resources/Dock.pdf: Added.
- Resources/DockLegacy.pdf: Copied from Source/WebKit/mac/Resources/Dock.pdf.
- WebCoreSupport/WebInspectorClient.mm:
(-[WebInspectorWindowController window]): Use new images.
Source/WebKit2:
- Resources/DockBottom.pdf: Added.
- Resources/DockBottomLegacy.pdf: Copied from Source/WebKit/mac/Resources/Dock.pdf.
- Resources/DockRight.pdf: Added.
- Resources/DockRightLegacy.pdf: Copied from Source/WebKit2/Resources/DockRight.pdf.
- UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::createInspectorWindow): Use new images.
- WebKit2.xcodeproj/project.pbxproj: Added new images.
- 1:30 PM Changeset in webkit [172240] by
-
- 7 edits in branches/safari-600.1.4-branch/Source/WebKit2
Merge r172238. <rdar://problem/17940220>
- 1:29 PM Changeset in webkit [172239] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172159
- 1:27 PM Changeset in webkit [172238] by
-
- 7 edits in trunk/Source/WebKit2
WebContent needs access to HSTS database due to some networking still being performed in process
https://bugs.webkit.org/show_bug.cgi?id=135711
<rdar://17940220>
Reviewed by Alexey Proskuryakov.
Simple patch in the same theme as the equivalent network process
extension. Provide an extension that covers the WebContent specific
HSTS file and consume it on launch.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess):
- UIProcess/WebContext.h:
- UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::webContentHSTSDatabasePath):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 1:26 PM Changeset in webkit [172237] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172151
- 1:21 PM Changeset in webkit [172236] by
-
- 3 edits4 copies in branches/safari-600.1-branch
Merge r172112
- 1:20 PM Changeset in webkit [172235] by
-
- 8 edits in trunk/Source
Source/WebCore:
Provide methods to clear undesired references to HistoryItems that have been removed from the back/forard list.
https://bugs.webkit.org/show_bug.cgi?id=135634
<rdar://problem/17388461>
Patch by Gordon Sheridan <gordon_sheridan@apple.com> on 2014-08-07
Reviewed by Brady Eidson.
No new tests. Would require an API test that also needs an httpd, which we don't currently support.
- WebCore.exp.in:
Added export for Page::clearPreviousItemFromAllPages.
- loader/HistoryController.cpp:
(WebCore::HistoryController::clearPreviousItem):
Clear m_previousItem and iterate over children recursively calling clearPreviousItem().
The m_previousItem is cleared for the target HistoryController, and all of its descendents.
- loader/HistoryController.h:
Declared HistoryController::clearPreviousItem.
- page/Page.cpp:
(WebCore::Page::clearPreviousItemFromAllPages):
Iterate over each page in the web process, checking if the previous item of
the HistoryController for the main frame is the same as the item being removed. If so, the
frameTree is traversed and each associated HistoryController has its m_previousItem cleared.
- page/Page.h:
Declared Page::clearPreviousItemFromAllPages.
Source/WebKit2:
Clear the m_previousItem member of HistoryControllers when it matches the HistoryItem being removed.
https://bugs.webkit.org/show_bug.cgi?id=135634
<rdar://problem/17388461>
Patch by Gordon Sheridan <gordon_sheridan@apple.com> on 2014-08-07
Reviewed by Brady Eidson.
- WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::removeItem):
Call WebCore::Page::clearPreviousItemFromAllPages() for each item removed from
the back/forward list to ensure the page URL is released from IconDatabase.
- 1:19 PM Changeset in webkit [172234] by
-
- 3 edits1 copy in branches/safari-600.1.4-branch/Source/WebCore
Merge r172197. <rdar://problem/17855327>
- 1:15 PM Changeset in webkit [172233] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Merge r172191. <rdar://problem/17895138>
- 1:08 PM Changeset in webkit [172232] by
-
- 3 edits2 copies in branches/safari-600.1.4-branch
Merge r172183. <rdar://problem/17908085>
- 1:04 PM Changeset in webkit [172231] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix attempt #2 following r172224.
- html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
- 1:01 PM Changeset in webkit [172230] by
-
- 4 edits in branches/safari-600.1-branch/Source
Merge r172035
- 12:55 PM Changeset in webkit [172229] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r172006. <rdar://problem/17947503>
- 12:53 PM Changeset in webkit [172228] by
-
- 4 edits in trunk/Source/WebCore
Unreviewed build fix following r172224.
- html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
- html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
- html/track/VTTCue.h:
- 12:52 PM Changeset in webkit [172227] by
-
- 8 edits in tags/Safari-600.1.2.8/Source
Merged r172202. <rdar://problem/17946619>
- 12:50 PM Changeset in webkit [172226] by
-
- 5 edits in tags/Safari-600.1.2.8/Source
Versioning.
- 12:44 PM Changeset in webkit [172225] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r172219.
Caused some /fast/workers tests to fail; will investigate
offline.
Reverted changeset:
"Sometimes Gmail cannot load messages, particularly on refresh
("...the application ran into an unexpected error...")"
https://bugs.webkit.org/show_bug.cgi?id=135688
http://trac.webkit.org/changeset/172219
- 12:34 PM Changeset in webkit [172224] by
-
- 5 edits in trunk/Source/WebCore
Increase width of caption container if a larger font size is selected from user prefs.
https://bugs.webkit.org/show_bug.cgi?id=135677.
Reviewed by Brent Fulgham.
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
Upon creation of a VTTCueBox make sure to supply the font size set by the user prefs.
- html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
Increase the width of the cue box based on user prefs font size selection.
- html/track/VTTCue.h:
Keep track of the font size set in the user prefs for use when the cue boxes are created.
(WebCore::VTTCueBox::setFontSizeFromCaptionUserPrefs):
- html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
Increase the width of the cue box based on user prefs font size selection.
(WebCore::VTTCue::getDisplayTree):
(WebCore::VTTCue::setFontSize):
If the font size set is important then we don't want to use the font size set by user prefs, set it to 0.
- 12:33 PM Changeset in webkit [172223] by
-
- 1 copy in tags/Safari-600.1.2.8
New Tag.
- 12:28 PM Changeset in webkit [172222] by
-
- 2 edits in trunk/LayoutTests
Gardening: Mark test as failing in TestExpectations until the issue can be investigated.
<https://webkit.org/b/135708>
Not reviewed.
- 12:17 PM Changeset in webkit [172221] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix after r172220.
- css/SelectorChecker.cpp:
(WebCore::hasScrollbarPseudoElement):
Use ASSERT_UNUSED instead of just ASSERT.
- 11:55 AM Changeset in webkit [172220] by
-
- 9 edits4 adds in trunk
Compile scrollbar pseudoclass css selectors.
https://bugs.webkit.org/show_bug.cgi?id=135242
Reviewed by Benjamin Poulain.
Source/WebCore:
Tests: scrollbars/corner-resizer-window-inactive.html
scrollbars/scrollbar-selectors.html
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ruleMatches):
Changed assertion because there are pseudo-elements selectors that return CannotCompileAnything now, which
make SimpleSelectorCheckers.
Add scrollbar, scrollbarPart, and document to the CheckingContext and compile scrollbar pseudo-element selectors.
- css/SelectorChecker.cpp:
(WebCore::hasScrollbarPseudoElement):
Added. Logic moved from matchRecursively to be easier to read and to add assertions.
context.scrollbar is always non-null when dynamicPseudo is SCROLLBAR_CORNER.
(WebCore::SelectorChecker::matchRecursively):
Moved logic to hasScrollbarPseudoElement.
(WebCore::SelectorChecker::checkOne):
checkScrollbarPseudoClass accesses the document through the element now.
(WebCore::SelectorChecker::checkScrollbarPseudoClass):
- css/SelectorChecker.h:
(WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
- css/SelectorCheckerTestFunctions.h:
(WebCore::scrollbarMatchesEnabledPseudoClass):
(WebCore::scrollbarMatchesDisabledPseudoClass):
(WebCore::scrollbarMatchesHoverPseudoClass):
(WebCore::scrollbarMatchesActivePseudoClass):
(WebCore::scrollbarMatchesHorizontalPseudoClass):
(WebCore::scrollbarMatchesVerticalPseudoClass):
(WebCore::scrollbarMatchesDecrementPseudoClass):
(WebCore::scrollbarMatchesIncrementPseudoClass):
(WebCore::scrollbarMatchesStartPseudoClass):
(WebCore::scrollbarMatchesEndPseudoClass):
(WebCore::scrollbarMatchesDoubleButtonPseudoClass):
(WebCore::scrollbarMatchesSingleButtonPseudoClass):
(WebCore::scrollbarMatchesNoButtonPseudoClass):
(WebCore::scrollbarMatchesCornerPresentPseudoClass):
Move scrollbar selector logic from SelectorChecker.cpp to SelectorCheckerTestFunctions.h
For window-inactive pseudo classes, we now access the document through the element instead of as a separate parameter.
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorFragment::appendUnoptimizedPseudoClassWithContext):
(WebCore::SelectorCompiler::addScrollbarPseudoClassType):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::isScrollbarPseudoElement):
(WebCore::SelectorCompiler::constructFragments):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
Call functions for unoptimized pseudo classes that require a context.
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateContextFunctionCallTest):
Added. Similar to generateElementFunctionCallTest, but the CheckingContext pointer is stored on the stack instead of a dedicated register.
- cssjit/SelectorCompiler.h:
Added scrollbar, scrollbarPart, and document to the CheckingContext.
(WebCore::SelectorCompiler::CheckingContext::document):
Added method to access the document in a way that is syntactically equal to SelectorCheckingContext.
This way, the template functions in SelectorCheckerTestFunctions.h can be compiled with both context types,
but the context types store the document differently.
LayoutTests:
- platform/wk2/TestExpectations:
Don't run corner-resizer-window-inactive-expected in WK2 because testRunner.setWindowIsKey doesn't work with WK2.
- scrollbars/corner-resizer-window-inactive-expected.html: Added.
- scrollbars/corner-resizer-window-inactive.html: Added.
- scrollbars/scrollbar-selectors-expected.txt: Added.
- scrollbars/scrollbar-selectors.html: Added.
- 11:46 AM Changeset in webkit [172219] by
-
- 2 edits in trunk/Source/WebCore
Sometimes Gmail cannot load messages, particularly on refresh ("...the application ran into an unexpected error...")
https://bugs.webkit.org/show_bug.cgi?id=135688
<rdar://problem/17886686>
Reviewed by Maciej Stachowiak.
Fixes an issue where gmail.com may fail to load the list of messages. In particular, a SQLTransactionCallback
function may not be executed and hence Gmail will not display the list of messages and
will subsequently display an error message.
When a WebKit client defers loading of a page (e.g. -[WebView setDefersCallbacks:YES]), WebCore
may still load the main resource, say if substitute data is available for it, and defer executing
tasks, such as a SQLTransactionCallback function, by appending such tasks to the end of the list
of pending tasks for the associated Document. This list of pending tasks is never processed when
a client subsequently allows loading (e.g. -[WebView setDefersCallbacks:NO])). Therefore, we never
execute a SQLTransactionCallback function that was deferred.
Ideally WebCore would defer loading of substitute data when a WebKit client requests that loading
be deferred and hence a SQLTransactionCallback function would be deferred as a consequence of the
lack of JavaScript script execution (since substitute data wasn't loaded and hence any JavaScript
script contained in the substitute data that initiates a SQL transaction isn't executed). For now,
it's sufficient to only defer executing tasks when either there are existing pending tasks or the
active DOM objects for the document are suspended (e.g. Document::suspendActiveDOMObjects() was called).
- dom/Document.cpp:
(WebCore::Document::postTask):
- 11:23 AM Changeset in webkit [172218] by
-
- 3 edits2 adds in trunk
border-radius on html does not render properly.
https://bugs.webkit.org/show_bug.cgi?id=135706
Reviewed by Simon Fraser.
Ensure that background is initialized when border-radius is present.
Source/WebCore:
Test: fast/borders/border-radius-on-html.html
- rendering/RenderView.cpp:
(WebCore::rendererObscuresBackground):
LayoutTests:
- fast/borders/border-radius-on-html-expected.html: Added.
- fast/borders/border-radius-on-html.html: Added.
- 10:57 AM Changeset in webkit [172217] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: DebuggerManager sends spurious setBreakpointsActive commands when setting a breakpoint
https://bugs.webkit.org/show_bug.cgi?id=135674
Reviewed by David Kilzer.
- UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.set breakpointsEnabled): Fix a typo.
- 10:29 AM Changeset in webkit [172216] by
-
- 4 edits in trunk
for-in is failing fast/dom/dataset-xhtml.xhtml and dataset.html tests
https://bugs.webkit.org/show_bug.cgi?id=135681
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
- runtime/Structure.cpp:
(JSC::Structure::canCacheGenericPropertyNameEnumerator): We were checking the entire
prototype chain for overridesGetPropertyNames, but we were neglecting to check the
base object's Structure. D'oh!
LayoutTests:
Removed the two failing tests from the TestExpectations list since they pass now!
- 10:20 AM Changeset in webkit [172215] by
-
- 2 edits in trunk/Source/WebCore
Random resource replacement on beta.icloud.com
https://bugs.webkit.org/show_bug.cgi?id=135685
<rdar://problem/17937975>
Reviewed by Alexey Proskuryakov.
Revert the performance optimization in r170499. It turns out we could get a delayed disk
cache notification for a resource that has since been changed in WebCore. In such a case, we
were replacing the newer resource data with the older disk cached resource data. This was
happening for cached POST content on beta.icloud.com. Fix this by forcing a memcmp of data
contents before replacing it which is what we used to do before.
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::tryReplaceEncodedData):
- 9:37 AM Changeset in webkit [172214] by
-
- 3 edits in trunk/Tools
The support directory shouldn't be skipped unconditionally in test import
https://bugs.webkit.org/show_bug.cgi?id=135660
Reviewed by Ryosuke Niwa.
The 'DIRS_TO_SKIP' should only be skipped when in the root directory
of the test repo, as that's the only time they are special. In
addition, instead of hardcoding .hg and .git as special, skip all
directories that begin with '.', just like with files that begin with '.'.
In order to make this work, the root directory must always be
passed in, so the interface to the script has been changed to take the
root directory, and if one wants to only import a subset of the tests,
a new -t option can be used to limit the tests imported.
- Scripts/webkitpy/w3c/test_importer.py:
(main): Remove repo_dir command line argument.
(parse_args): Add -t option and set expected non-option args to 1.
(TestImporter.init): Remove repo_dir.
(TestImporter.do_import): Handle the varying number of import
directories.
(TestImporter.should_keep_subdir): Helper for find_importable_tests to
determine if a subdirectory should be skipped.
(TestImporter.find_importable_tests): Filter directories using new
helper.
(TestImporter.import_tests): Remove use of repo_dir.
(TestImporter.setup_destination_directory): Unused, Deleted.
- Scripts/webkitpy/w3c/test_importer_unittest.py:
(TestImporterTest.test_import_dir_with_no_tests_and_no_hg): Update for
new API.
(TestImporterTest.test_import_dir_with_no_tests): Ditto.
- 9:23 AM Changeset in webkit [172213] by
-
- 7 edits in trunk
[Mac, iOS] Captions are appearing multiple times during repeated video play through
https://bugs.webkit.org/show_bug.cgi?id=135680
Source/WebCore:
<rdar://problem/17926802>
Reviewed by Eric Carlson.
Test: media/track/track-in-band-cues-added-once.html
Revert TextTrackCueGeneric::isOrderedBefore logic to its original form, and add
a new 'isOrderedBeforeDuringDisplay' for the special case of displaying captions.
- html/shadow/MediaControlElements.cpp:
(WebCore::compareCueIntervalForDisplay): Added helper function.
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Use the new
'isOrderedBeforeDuringDisplay' to order the cues for display.
- html/track/TextTrackCue.h:
(WebCore::TextTrackCue::isOrderedBeforeDuringDisplay): Added. This just
calls the existing 'isOrderedBefore' method.
- html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGeneric::isOrderedBefore): Revert to logic used
prior to r171700.
(WebCore::TextTrackCueGeneric::isOrderedBeforeDuringDisplay): New method that
implements the behavior in r171700.
- html/track/TextTrackCueGeneric.h:
LayoutTests:
<rdar://problem/17926802>
Reviewed by Eric Carlson.
Reactivate the 'track-in-band-cues-added-once.html' test. We would have caught
this bug immediately if the test had been enabled.
- platform/mac/TestExpectations: Turn 'track-in-band-cues-added-once.html' back
on.
- 9:06 AM Changeset in webkit [172212] by
-
- 3 edits in trunk/Source/WebCore
[Mac] Taking a paused video full screen flashes black at beginning of animation.
https://bugs.webkit.org/show_bug.cgi?id=135668
Reviewed by Eric Carlson.
When entering fullscreen, the full screen window will momentarily occlude the browser
window, causing a visiblity change notification. To avoid flickering when client buffering
is disabled, throttle calls to updateClientDataBuffering by delaying those calls for a
short period.
- platform/audio/MediaSession.cpp:
(WebCore::MediaSession::MediaSession):
(WebCore::MediaSession::clientWillPausePlayback):
(WebCore::MediaSession::visibilityChanged):
(WebCore::MediaSession::clientDataBufferingTimerFired):
(WebCore::MediaSession::updateClientDataBuffering):
- platform/audio/MediaSession.h:
- 7:58 AM Changeset in webkit [172211] by
-
- 13 edits in trunk
[GTK] Use WebKitNavigationAction also for WebKitNavigationPolicyDecision
https://bugs.webkit.org/show_bug.cgi?id=135695
Reviewed by Gustavo Noronha Silva.
Source/WebKit2:
WebKitNavigationAction was introduced to extend WebKitWebView::create signal
and its API is mostly duplicated in WebKitNavigationPolicyDecision.
Use WebKitNavigationAction insternally in WebKitNavigationPolicyDecision and
deprecated all the duplicated API in favor of a single property navigation-action.
- UIProcess/API/gtk/WebKitDefines.h: Remove unused macro
WEBKIT_OBSOLETE and add WEBKIT_DEPRECATED and WEBKIT_DEPRECATED_FOR.
- UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp:
(_WebKitNavigationPolicyDecisionPrivate::~_WebKitNavigationPolicyDecisionPrivate):
Free the WebKitNavigationAction.
(webkitNavigationPolicyDecisionGetProperty): Add getter for
navigation-action and use WebKitNavigationAction in all other getters.
(webkit_navigation_policy_decision_class_init): Add navigation-action
property and deprecated all others except frame-name.
(webkit_navigation_policy_decision_get_navigation_action): Return the WebKitNavigationAction.
(webkit_navigation_policy_decision_get_navigation_type): Use WebKitNavigationAction.
(webkit_navigation_policy_decision_get_mouse_button): Ditto.
(webkit_navigation_policy_decision_get_modifiers): Ditto.
(webkit_navigation_policy_decision_get_request): Ditto.
(webkitNavigationPolicyDecisionCreate):
(webkitNewWindowPolicyDecisionCreate):
- UIProcess/API/gtk/WebKitNavigationPolicyDecision.h:
- UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h:
- UIProcess/API/gtk/WebKitPolicyClient.cpp: Use a custom
PolicyClient class so that we receive a NavigationActionData in
the callbacks.
(attachPolicyClientToView):
(toWebKitNavigationType): Deleted.
(decidePolicyForNavigationAction): Deleted.
(decidePolicyForNewWindowAction): Deleted.
(decidePolicyForResponse): Deleted.
- UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:
(webkitResponsePolicyDecisionCreate):
- UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h:
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
deprecated symbols.
- UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
Tools:
Use WebKitNavigationAction API.
- MiniBrowser/gtk/BrowserWindow.c:
(webViewDecidePolicy):
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp:
(testNavigationPolicy):
- 7:11 AM Changeset in webkit [172210] by
-
- 2 edits in trunk/Source/WebCore
ASSERT in Document::unregisterCollection reloading apple.com
https://bugs.webkit.org/show_bug.cgi?id=135168
Reviewed by Andreas Kling.
- dom/Document.cpp:
(WebCore::Document::unregisterCollection): This assertion was failing
because the passed-in HTMLCollection was not invalidated for a non-related
attribute, but was instead unregistered during destruction, at which point
the m_collectionsInvalidatedAtDocument HashSet was empty.
The assertion could be trivially reduced into checking that the HashSet is
empty when it was moved out of in Document::invalidateNodeListAndCollectionCaches(),
but that just checks that the move semantics on HashSet work properly. Removing
a non-existent element from a HashSet is harmless, so the assertion can be removed
completely.
- 6:06 AM Changeset in webkit [172209] by
-
- 3 edits in trunk/LayoutTests
Unreviewed EFL gardening
Add test expectations for failing tests.
- platform/efl/TestExpectations:
- platform/efl/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt: Rebaseline after r172136.
- 5:38 AM Changeset in webkit [172208] by
-
- 4 edits in trunk/Source/WebKit2
Move Soup specific code out of WebCoreArgumentCoders.cpp
https://bugs.webkit.org/show_bug.cgi?id=135665
Reviewed by Anders Carlsson.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ResourceRequest>::encode):
(IPC::ArgumentCoder<ResourceRequest>::decode):
(IPC::ArgumentCoder<ResourceError>::encode):
(IPC::ArgumentCoder<ResourceError>::decode):
- Shared/WebCoreArgumentCoders.h:
Soup is the only client for this code. Move it to *Soup.cpp
- Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):
(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):
- 5:08 AM Changeset in webkit [172207] by
-
- 1 edit2 moves1 add in trunk/LayoutTests
Move multicol tests into fast/regions/multicol.
https://bugs.webkit.org/show_bug.cgi?id=135693
Patch by Iulia Tamas <tamas@adobe.com> on 2014-08-07
Reviewed by Andrei Bucur.
File Move Patch. Created the fast/regions/multicol folder. Moved the region tests testing multicol
in the fast/regions/multicol folder.
- fast/regions/multicol/multicol-as-region-prevented-expected.html: Renamed from LayoutTests/fast/regions/multicol-as-region-prevented-expected.html.
- fast/regions/multicol/multicol-as-region-prevented.html: Renamed from LayoutTests/fast/regions/multicol-as-region-prevented.html.
- 3:20 AM Changeset in webkit [172206] by
-
- 2 edits in trunk/Tools
[GTK] Test /webkit2/WebKitUserContentManager/injected-script fails
https://bugs.webkit.org/show_bug.cgi?id=135696
Reviewed by Sergio Villar Senin.
Don't assume the JavaScript result is always a valid pointer. In case of JavaScript
exception (that happens when testing the script hasn't been injected) the JavaScript
result is NULL.
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:
(isScriptInjectedForURLAtPath):
- 1:14 AM Changeset in webkit [172205] by
-
- 4 edits in trunk
[GTK] Disable IndexedDB
https://bugs.webkit.org/show_bug.cgi?id=135692
Reviewed by Carlos Garcia Campos.
.:
- Source/cmake/OptionsGTK.cmake:
Tools:
- Scripts/webkitperl/FeatureList.pm:
Aug 6, 2014:
- 11:23 PM Changeset in webkit [172204] by
-
- 8 edits in trunk/Source/WebInspectorUI
Web Inspector: breakpoint resolved state should not depend on all breakpoints being enabled
https://bugs.webkit.org/show_bug.cgi?id=135517
Reviewed by Joseph Pecoraro.
Previously, Breakpoint.resolved returned false if all breakpoints were disabled, even if
the breakpoint had an associated SourceCode. This was a weird hack to make it easier to
style breakpoint widgets. This made it hard for other code to deal with resolved
breakpoints that were also disabled, or SourceCodeLocations that resolve and unresolve.
This patch removes that consideration and fixes style update code to manually check if all
breakpoints are being suppressed.
The code now enforces that a Breakpoint must have a SourceCode before it can be resolved.
(As a performance optimization when loading the initial frame tree, we sometimes we give
Breakpoints a SourceCode before the debugger officially says that the breakpoint has been
resolved. Thus, it's possible to be unresolved with a SourceCode, but not vice-versa.)
This patch also adds a few guards where we assumed a SourceCodeLocation had a SourceCode.
- UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.set breakpointsEnabled): Remove spurious
ResolvedStateDidChange events.
(WebInspector.DebuggerManager.prototype.breakpointResolved): Set the breakpoint's SourceCode
if it has not been set already by DebuggerManager.associateBreakpointsWithSourceCode.
- UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint.prototype.get resolved):
(WebInspector.Breakpoint.prototype.set resolved.isSpecialBreakpoint):
(WebInspector.Breakpoint.prototype.set resolved): Add an assertion.
- UserInterface/Models/SourceCodeLocation.js: Add guards for SourceCode.
(WebInspector.SourceCodeLocation.prototype.populateLiveDisplayLocationTooltip):
- UserInterface/Views/BreakpointTreeElement.js: Account for DebuggerManager.breakpointsEnabled.
(WebInspector.BreakpointTreeElement):
(WebInspector.BreakpointTreeElement.prototype._updateStatus):
- UserInterface/Views/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement): Loosen the assertion.
- UserInterface/Views/SourceCodeTextEditor.js: Account for DebuggerManager.breakpointsEnabled.
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.close):
(WebInspector.SourceCodeTextEditor.prototype._breakpointStatusDidChange):
(WebInspector.SourceCodeTextEditor.prototype._breakpointsEnabledDidChange):
(WebInspector.SourceCodeTextEditor.prototype._updateBreakpointStatus):
- UserInterface/Views/TextEditor.js: Account for DebuggerManager.breakpointsEnabled.
- 11:14 PM Changeset in webkit [172203] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: ReplayManager should unpause and suppress breakpoints before capturing/replaying
https://bugs.webkit.org/show_bug.cgi?id=135608
Reviewed by Timothy Hatcher.
It is jarring when the debugger pauses during capturing or replaying. For now, we should suppress
all breakpoints during capturing or replaying, and restore breakpoint enabled state when
capturing finishes, when replaying finishes, or during temporary replay pauses.
In the future, the debugger will be selectively enabled during playback to seek to specific
breakpoint hits. This is tracked in https://bugs.webkit.org/show_bug.cgi?id=135663.
- UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.prototype.startCapturing.result):
(WebInspector.ReplayManager.prototype.replayToPosition.result):
(WebInspector.ReplayManager.prototype.replayToCompletion.result):
(WebInspector.ReplayManager.prototype.captureStopped):
(WebInspector.ReplayManager.prototype.playbackPaused):
(WebInspector.ReplayManager.prototype.playbackFinished):
(WebInspector.ReplayManager.prototype._changeSegmentState):
(WebInspector.ReplayManager.prototype._suppressBreakpointsAndResumeIfNeeded):
- 10:12 PM Changeset in webkit [172202] by
-
- 8 edits in trunk/Source
Source/WebCore:
[Win] Correct build errors when WebGL Disabled
https://bugs.webkit.org/show_bug.cgi?id=135687
Unreviewed build fix.
- WebCore.vcxproj/WebCore.vcxproj: Don't build Cairo files
when building CG.
- platform/graphics/GLContext.cpp: Correct use of 3D_GRAPHICS macro.
- platform/graphics/GraphicsContext3DPrivate.cpp: Ditto.
- platform/graphics/opengl/GLPlatformContext.cpp: Ditto.
- platform/graphics/opengl/GLPlatformSurface.cpp: Ditto.
Source/WebInspectorUI:
[Win] Build fix.
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: DebugSuffix target was missing
proper path settings for final output.
- 9:19 PM Changeset in webkit [172201] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed build fix on non Cocoa port since r172172
- platform/text/TextEncodingRegistry.cpp:
(WebCore::defaultTextEncodingNameForSystemLanguage):
- platform/text/TextEncodingRegistry.h:
- 7:58 PM Changeset in webkit [172200] by
-
- 3 edits in trunk/Source/WebKit2
Services overlay flashes a lot; should have some hysteresis before showing overlay
https://bugs.webkit.org/show_bug.cgi?id=135683
<rdar://problem/16878039>
Reviewed by Simon Fraser.
Don't show the highlight until it's been 200ms since the last change
in selection or change in which highlight is hovered, whichever was more recent.
- WebProcess/WebPage/ServicesOverlayController.h:
- WebProcess/WebPage/mac/ServicesOverlayController.mm:
(WebKit::ServicesOverlayController::ServicesOverlayController):
(WebKit::ServicesOverlayController::selectionRectsDidChange):
Keep track of when the selection last changed.
(WebKit::ServicesOverlayController::drawTelephoneNumberHighlightIfVisible):
Make establishHoveredTelephoneHighlight take a bool instead of Boolean.
(WebKit::ServicesOverlayController::mouseIsOverHighlight):
Factor mouseIsOverHighlight out of establishHoveredTelephoneHighlight and drawHighlight.
(WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
Return the amount of time until the highlight should be shown; this is
the maximum of (the difference between the last selection change and the timeout)
and (the difference between the last change in which highlight is hovered and the timeout).
Telephone number highlights are shown immediately, because they are already stable
by virtue of being expanded to include the entire telephone number.
(WebKit::ServicesOverlayController::repaintHighlightTimerFired):
(WebKit::ServicesOverlayController::drawHighlight):
If the highlight shouldn't be shown yet (because we haven't hit the two timeouts),
schedule a timer to repaint us around when we will hit the timeouts.
(WebKit::ServicesOverlayController::establishHoveredTelephoneHighlight):
(WebKit::ServicesOverlayController::mouseEvent):
Don't allow mouseUp to trigger the menu if we shouldn't be showing the overlay yet.
- 7:43 PM Changeset in webkit [172199] by
-
- 2 edits in trunk/Source/WebKit2
[iOS WK2] www.france24.com doesn't always load the page, sections stay white
https://bugs.webkit.org/show_bug.cgi?id=135684
<rdar://problem/17931712>
Reviewed by Tim Horton.
It's possible for a UIScrollView for overflow to move between one scrolling tree node
and another. When this happens, we need to avoid unconditionally clearing the delegate
on the node that's being destroyed, because the new node will already have set the
UIScrollView delegate to its own delegate.
- UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
- 5:59 PM Changeset in webkit [172198] by
-
- 2 edits in trunk/LayoutTests
Gardening: adding failed tests to TestExpectations.
<https://webkit.org/b/135681>
Not reviewed.
- 5:58 PM Changeset in webkit [172197] by
-
- 3 edits1 add in trunk/Source/WebCore
[iOS] Make document marker assets not specific to particular scale factors
https://bugs.webkit.org/show_bug.cgi?id=135671
Reviewed by Simon Fraser.
No new tests.
- WebCore.xcodeproj/project.pbxproj:
- platform/ios/wak/WKGraphics.mm:
(imageResourcePath):
(WKGraphicsCreateImageFromBundleWithName):
- 5:48 PM Changeset in webkit [172196] by
-
- 4 edits in trunk/Source/JavaScriptCore
Gardening: fix for build failure on EFL bots.
Not reviewed.
- runtime/EnumerationMode.h:
(JSC::shouldIncludeJSObjectPropertyNames):
(JSC::modeThatSkipsJSObject):
- runtime/JSCell.cpp:
(JSC::JSCell::getEnumerableLength):
- runtime/JSCell.h:
- 5:45 PM Changeset in webkit [172195] by
-
- 2 edits in trunk/Source/WebCore
Services menu doesn't show up after you defocus/refocus the Safari window.
https://bugs.webkit.org/show_bug.cgi?id=135678
<rdar://problem/17929247>
Reviewed by Tim Horton.
In setSelection we create a SelectionRectGatherer::Notifier object that will notify
SelectionOverlayController about changes to the selection rects.
Upon creation, the list of selections rects is cleared, since it is populated by
the code that collects the selection rects. That code is never called
when setSelection won't change the selection, which the case when the window is
activated. The fix consists in postponing the SelectionRectGatherer::Notifier object
creation until we know for sure that the selection is indeed going to change.
- rendering/RenderView.cpp:
(WebCore::RenderView::setSelection):
- 5:40 PM Changeset in webkit [172194] by
-
- 17 edits in trunk
ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED is not used anywhere. Remove it.
https://bugs.webkit.org/show_bug.cgi?id=135675
Reviewed by Sam Weinig.
.:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/WebKitFeatures.cmake:
- Source/cmakeconfig.h.cmake:
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Source/WTF:
- wtf/FeatureDefines.h:
Tools:
- Scripts/webkitperl/FeatureList.pm:
- 5:32 PM Changeset in webkit [172193] by
-
- 14 edits in trunk/Source
IDB transactions never reset if the Web Process ends before cleaning up
https://bugs.webkit.org/show_bug.cgi?id=135218
Source/WebCore:
Reviewed by David Kilzer.
No new tests (Covered by existing tests).
- Modules/indexeddb/IDBServerConnection.h: Add sync versions of reset/rollback.
- Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::abort): Call the sync versions.
Source/WebKit2:
Reviewed by Darin Adler and David Kilzer.
- DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::didReceiveMessage):
(WebKit::DatabaseToWebProcessConnection::didReceiveSyncMessage): Added.
(WebKit::DatabaseToWebProcessConnection::didClose):
- DatabaseProcess/DatabaseToWebProcessConnection.h:
- DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
(WebKit::DatabaseProcessIDBConnection::resetTransactionSync): Added
Wait until the reset is complete before sending the sync reply.
(WebKit::DatabaseProcessIDBConnection::rollbackTransactionSync): Added.
Ditto.
- DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
- DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
Keep track of all in progress transactions and make sure they’re cleaned up
whenever a connection to a WebProcess is broken:
- DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::unregisterConnection):
(WebKit::UniqueIDBDatabase::didCompleteTransactionOperation):
(WebKit::UniqueIDBDatabase::openBackingStoreTransaction):
(WebKit::UniqueIDBDatabase::resetBackingStoreTransaction):
(WebKit::UniqueIDBDatabase::didEstablishTransaction):
(WebKit::UniqueIDBDatabase::didResetTransaction):
(WebKit::UniqueIDBDatabase::resetAllTransactions):
(WebKit::UniqueIDBDatabase::finalizeRollback):
- DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
- DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::rollbackTransaction):
Add sync versions of reset/rollback:
- WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::resetTransactionSync):
(WebKit::WebIDBServerConnection::rollbackTransactionSync):
- WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
- 5:19 PM Changeset in webkit [172192] by
-
- 34 edits10 adds in trunk
Implement parsing for CSS scroll snap points
https://bugs.webkit.org/show_bug.cgi?id=134301
Source/JavaScriptCore:
Patch by Wenson Hsieh <Wenson Hsieh> on 2014-08-06
Reviewed by Dean Jackson.
- Configurations/FeatureDefines.xcconfig: Added ENABLE_CSS_SCROLL_SNAP
Source/WebCore:
Provided support for parsing -webkit-scroll-snap-* properties, i.e. type, points-x, points-y, destination, and coordinates.
The exact syntax of the scroll snap CSS properties follow the W3C spec at http://dev.w3.org/csswg/css-snappoints/
Patch by Wenson Hsieh <Wenson Hsieh> on 2014-08-06
Reviewed by Dean Jackson.
Tests: css3/scroll-snap/scroll-snap-property-parsing.html,
css3/scroll-snap/scroll-snap-property-computed-style.html
- CMakeLists.txt: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp
- Configurations/FeatureDefines.xcconfig: Added ENABLE_CSS_SCROLL_SNAP
- WebCore.vcxproj/WebCore.vcxproj: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp
- WebCore.vcxproj/WebCore.vcxproj.filters: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp
- WebCore.xcodeproj/project.pbxproj: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp, LengthRepeat.h
- css/CSSCalculationValue.cpp: Support for LengthRepeat
(WebCore::hasDoubleValue):
- css/CSSComputedStyleDeclaration.cpp: Support for showing computed style for snap point properties.
(WebCore::scrollSnapDestination):
(WebCore::scrollSnapPoints):
(WebCore::scrollSnapCoordinates):
(WebCore::ComputedStyleExtractor::propertyValue):
- css/CSSParser.cpp: Support for parsing snap point properties.
(WebCore::isValidKeywordPropertyAndValue): handle snap point type
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue): Added support for parsing snap points.
(WebCore::CSSParser::parseNonElementSnapPoints): Helper for parsing snap points-x/y.
(WebCore::CSSParser::parseScrollSnapDestination): Helper for parsing snap point destinations.
(WebCore::CSSParser::parseScrollSnapCoordinate): Helper for parsing snap point coordinates.
- css/CSSParser.h: Support for parsing snap point properties.
- css/CSSParserValues.cpp:
(WebCore::CSSParserValue::createCSSValue):
- css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::CSSPrimitiveValue::init):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::getLengthRepeatValue):
(WebCore::CSSPrimitiveValue::formatNumberForcustomCSSText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
(WebCore::CSSPrimitiveValue::equals):
- css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isLengthRepeat):
(WebCore::CSSPrimitiveValue::getLengthRepeatValue):
- css/CSSPrimitiveValueMappings.h: Added converters for snap point type properties.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ScrollSnapType):
- css/CSSPropertyNames.in: Added relevant snap point property names.
- css/CSSValueKeywords.in: Added "proximity", "mandatory" and "elements".
- css/LengthRepeat.h: Added to represent values of repeat(<length>)
(WebCore::LengthRepeat::create):
(WebCore::LengthRepeat::cloneForCSSOM):
(WebCore::LengthRepeat::interval):
(WebCore::LengthRepeat::setInterval):
(WebCore::LengthRepeat::equals):
(WebCore::LengthRepeat::cssText):
(WebCore::LengthRepeat::LengthRepeat):
- css/StyleResolver.cpp: Support for handling snap point properties
(WebCore::StyleResolver::applyProperty):Updated switch case to build snap-point-related style data
- rendering/style/RenderStyle.h: Added methods to access and modify snap point data
- rendering/style/RenderStyleConstants.h: Added scroll snap type flags.
- rendering/style/StyleAllInOne.cpp: Added StyleScrollSnapPoints.cpp
- rendering/style/StyleRareNonInheritedData.cpp: Added initiazing for m_scrollSnapPoints, updated equality check
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
- rendering/style/StyleRareNonInheritedData.h: Added field for StyleScrollSnapPoints
- rendering/style/StyleScrollSnapPoints.cpp: Added. Wrapper for basic snap point data structures.
(WebCore::StyleScrollSnapPoints::StyleScrollSnapPoints):
(WebCore::StyleScrollSnapPoints::copy):
(WebCore::StyleScrollSnapPoints::operator==):
- rendering/style/StyleScrollSnapPoints.h: Added.
(WebCore::StyleScrollSnapPoints::create):
(WebCore::StyleScrollSnapPoints::defaultRepeatOffset): Creates a new Length representing the default repeat value of repeat(100%)
(WebCore::StyleScrollSnapPoints::defaultDestinationOffset): Creates a new Length representing a default destination value (0px)
(WebCore::StyleScrollSnapPoints::operator!=):
Source/WebInspectorUI:
Patch by Wenson Hsieh <Wenson Hsieh> on 2014-08-06
Reviewed by Dean Jackson.
- UserInterface/Models/CSSKeywordCompletions.js: Added snap point property keywords, such as mandatory, proximity, elements, and repeat.
Source/WebKit/mac:
Patch by Wenson Hsieh <Wenson Hsieh> on 2014-08-06
Reviewed by Dean Jackson.
- Configurations/FeatureDefines.xcconfig: Added ENABLE_CSS_SCROLL_SNAP
Source/WebKit2:
Patch by Wenson Hsieh <Wenson Hsieh> on 2014-08-06
Reviewed by Dean Jackson.
- Configurations/FeatureDefines.xcconfig: Added ENABLE_CSS_SCROLL_SNAP
LayoutTests:
Patch by Wenson Hsieh <Wenson Hsieh> on 2014-08-06
Reviewed by Dean Jackson.
Tests that parsing -webkit-scroll-snap-* properties behaves as expected.
- css3/scroll-snap/scroll-snap-property-computed-style-expected.txt: Expected text output of below test.
- css3/scroll-snap/scroll-snap-property-computed-style.html: Tests that scroll snap properties are correctly displayed via getComputedStyle.
- css3/scroll-snap/scroll-snap-property-computed-style.js: Script for above test.
(testComputedScrollSnapRule):
- css3/scroll-snap/scroll-snap-property-parsing-expected.txt: Expected text output of below test.
- css3/scroll-snap/scroll-snap-property-parsing.html: Tests that scroll snap properties are correctly parsed.
- css3/scroll-snap/scroll-snap-property-parsing.js: Script for above test.
(testScrollSnapRule):
- 5:16 PM Changeset in webkit [172191] by
-
- 5 edits in trunk/Source
[iOS] Subresources referenced in converted QuickLook documents sometimes fail to load
https://bugs.webkit.org/show_bug.cgi?id=135676
Reviewed by David Kilzer.
Source/WebCore:
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::setQuickLookHandle):
(WebCore::DocumentLoader::quickLookHandle):
Source/WebKit2:
QuickLookHandle needs to stay alive in order for its NSURLProtocol to service subresource loads originating
from the converted HTML document. Some of these loads happen dynamically after the main resource finishes
loading, so we cannot tie the lifetime of the QuickLookHandle to that of the main resource's ResourceLoader.
Instead, give ownership of the QuickLookHandle to DocumentLoader.
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): Stored the created QuickLookHandle in DocumentLoader.
(WebKit::WebResourceLoader::didReceiveData): Accessed DocumentLoader's QuickLookHandle.
(WebKit::WebResourceLoader::didFinishResourceLoad): Ditto.
(WebKit::WebResourceLoader::didFailResourceLoad): Ditto.
(WebKit::WebResourceLoader::didReceiveResource): Ditto.
- WebProcess/Network/WebResourceLoader.h: Removed m_quickLookHandle.
- 5:15 PM Changeset in webkit [172190] by
-
- 2 edits in trunk/Source/JavaScriptCore
Gardening: fix for build failure on GTK bots.
Not reviewed.
- runtime/FunctionHasExecutedCache.cpp:
- #include <limits.h> for UINT_MAX's definition.
- 5:09 PM Changeset in webkit [172189] by
-
- 2 edits in trunk/Source/JavaScriptCore
Gardening: fix for build failure on EFL bots.
Not reviewed.
- jit/JITInlines.h:
(JSC::JIT::emitLoadForArrayMode):
- 4:54 PM Changeset in webkit [172188] by
-
- 4 edits in trunk/Source/JavaScriptCore
Gardening: adding missing build file changes from the FTLOPT merge at r172176.
Not reviewed.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- 4:49 PM Changeset in webkit [172187] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed build fix attempt since r172184
- CMakeLists.txt: Removed TypeLocation.cpp
- 4:33 PM Changeset in webkit [172186] by
-
- 2 edits in trunk
Unreviewed build fix: Make includes semicolon in assignment.
- Makefile.shared: Remove a ;
- 4:22 PM Changeset in webkit [172185] by
-
- 4 edits in trunk/Source/JavaScriptCore
Gardening: adding missing build file changes from r171510.
<https://webkit.org/b/134860>
Not reviewed.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- 4:11 PM Changeset in webkit [172184] by
-
- 3 edits in trunk/Source/JavaScriptCore
Gardening: adding missing build file changes from r170490.
<https://webkit.org/b/133395>
Not reviewed.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- 4:05 PM Changeset in webkit [172183] by
-
- 3 edits2 adds in trunk
REGRESSION (r168119): Album flipping animation doesn’t work
https://bugs.webkit.org/show_bug.cgi?id=132801
Source/WebCore:
<rdar://problem/16878497>, <rdar://problem/17908085>
Reviewed by Dean Jackson.
In r168119 I avoided creating backing store for backface-visibility:hidden unless
some ancestor was 3d-transformed. However, when starting transitions or animations
that apply transforms, we don't do a layout, and therefore don't update the RenderLayer
flags that mark an ancestor as having a transform. This broke various content which
used backface-visibility:hidden for "flip" animations.
Make a low-risk fix that looks for the pattern of CSS properties used for flipping,
making a compositing layer for backface-visibility:hidden if the stacking context element
has transform-style: preserve-3d.
Test: compositing/backing/backface-visibility-flip.html
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility):
LayoutTests:
Reviewed by Dean Jackson.
Test that starts a transform animation and dumps layers.
- compositing/backing/backface-visibility-flip-expected.txt: Added.
- compositing/backing/backface-visibility-flip.html: Added.
- 4:04 PM Changeset in webkit [172182] by
-
- 6 edits in trunk/Source/WebCore
Consolidate logic for calculating scrollbar page step size
https://bugs.webkit.org/show_bug.cgi?id=135670
Reviewed by Simon Fraser.
Consolidate the calculation of the scroll step size into a single place.
Improve the handling of sub-pixel layout behavior by performing proper
rounding on the fractional scroll ranges.
- editing/EditorCommand.cpp:
(WebCore::verticalScrollDistance): Switch to Scrollbar::pageStep method.
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::handleWheelEvent): Ditto.
- platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars): Ditto.
- platform/Scrollbar.h:
(WebCore::Scrollbar::pageStep): Added.
(WebCore::Scrollbar::pageStepDelta): Added.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollbarsAfterLayout): Switch to Scrollbar method.
- 3:52 PM Changeset in webkit [172181] by
-
- 2 edits in trunk/Source/JavaScriptCore
Silence a debug assertion.
Reviewed by Mark Hahnenberg.
- runtime/JSPropertyNameEnumerator.h:
(JSC::JSPropertyNameEnumerator::cachedStructure):
- 2:53 PM Changeset in webkit [172180] by
-
- 14 edits in trunk/Source/WebCore
Web Replay: dispatch timing information should be stored out-of-line in a replay segment
https://bugs.webkit.org/show_bug.cgi?id=135295
Reviewed by Timothy Hatcher.
We need to save a timestamp for each event loop input so that replay can
simulate the original user and network delays. Currently that timestamp
is stored on each EventLoopInput instance.
This patch stores timestamp data in a separate vector attached to the segment.
The event loop input class is now immutable, and new auxiliary data can be added
without adding members to the EventLoopInput class.
As part of the refactoring, InputCursors now keep a reference to the relevant
session segment instead of a reference to their input storage. InputCursors can
be created directly, instead of through ReplaySessionSegment.
No new tests. No behavior was changed.
- inspector/InspectorReplayAgent.cpp:
(WebCore::buildInspectorObjectForInput): Don't send the timestamp with the input.
(WebCore::buildInspectorObjectForSegment):
- inspector/protocol/Replay.json: Remove optional timestamp field for ReplayInput.
- replay/CapturingInputCursor.cpp:
(WebCore::CapturingInputCursor::CapturingInputCursor):
(WebCore::CapturingInputCursor::create):
(WebCore::CapturingInputCursor::storeInput): Save event loop input timings here.
- replay/CapturingInputCursor.h:
- replay/EventLoopInput.h:
(WebCore::EventLoopInputBase::EventLoopInputBase): Deleted.
(WebCore::EventLoopInputBase::timestamp): Deleted.
(WebCore::EventLoopInputBase::setTimestamp): Deleted.
- replay/EventLoopInputDispatcher.cpp: Use a struct for dispatch information.
(WebCore::EventLoopInputDispatcher::EventLoopInputDispatcher):
(WebCore::EventLoopInputDispatcher::dispatchInputSoon):
(WebCore::EventLoopInputDispatcher::dispatchInput):
- replay/EventLoopInputDispatcher.h:
- replay/FunctorInputCursor.h:
(WebCore::FunctorInputCursor::forEachInputInQueue):
(WebCore::FunctorInputCursor::FunctorInputCursor):
- replay/ReplayController.cpp:
(WebCore::ReplayController::createSegment):
(WebCore::ReplayController::loadSegmentAtIndex):
(WebCore::ReplayController::unloadSegment): Deleted.
(WebCore::ReplayController::startPlayback): Deleted.
- replay/ReplaySessionSegment.cpp:
(WebCore::ReplaySessionSegment::createCapturingCursor): Deleted.
(WebCore::ReplaySessionSegment::createReplayingCursor): Deleted.
(WebCore::ReplaySessionSegment::createFunctorCursor): Deleted.
- replay/ReplaySessionSegment.h:
(WebCore::ReplaySessionSegment::storage):
(WebCore::ReplaySessionSegment::eventLoopTimings):
- replay/ReplayingInputCursor.cpp:
(WebCore::ReplayingInputCursor::ReplayingInputCursor):
(WebCore::ReplayingInputCursor::create):
(WebCore::ReplayingInputCursor::uncheckedLoadInput):
(WebCore::ReplayingInputCursor::loadEventLoopInput): Added. This method collates
and returns the next event loop input with its associated dispatch information.
- replay/ReplayingInputCursor.h:
- 2:51 PM Changeset in webkit [172179] by
-
- 2 edits in trunk/Source/WebCore
Document-relative overlays disappear after doing page-cache navigations
https://bugs.webkit.org/show_bug.cgi?id=135669
<rdar://problem/17929171>
Reviewed by Simon Fraser.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
When navigating from one page to another, the document-relative overlay
layer is moved from the layer tree of the RenderLayerCompositor of the
first RenderView to the layer tree of the RenderLayerCompositor of the
new RenderView, upon layer tree construction.
When going "back" via a page cache navigation, we don't rebuild the
layer tree, and just assume that it is in a valid state.
However, the document-relative overlay layer was *moved*, and as such,
needs to be moved back. To do this, reattach the document-relative
overlay layer whenever the root layer attachment of a RenderLayerCompositor
changes, which will happen in the right order when going back to a cached page.
- 2:48 PM Changeset in webkit [172178] by
-
- 1 copy in tags/Safari-600.1.4.7
New Tag.
- 2:43 PM Changeset in webkit [172177] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix 32-bit build.
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::privateCompileHasIndexedProperty):
- 2:32 PM Changeset in webkit [172176] by
-
- 130 edits18 adds2 deletes in trunk/Source
Merge r171389, r171495, r171508, r171510, r171605, r171606, r171611, r171614, r171763 from ftlopt.
Source/JavaScriptCore:
2014-07-28 Mark Hahnenberg <mhahnenberg@apple.com>
Support for-in in the FTL
https://bugs.webkit.org/show_bug.cgi?id=134140
Reviewed by Filip Pizlo.
- dfg/DFGSSALoweringPhase.cpp: (JSC::DFG::SSALoweringPhase::handleNode):
- ftl/FTLAbstractHeapRepository.cpp:
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
- ftl/FTLIntrinsicRepository.h:
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileNode): (JSC::FTL::LowerDFGToLLVM::compileHasIndexedProperty): (JSC::FTL::LowerDFGToLLVM::compileHasGenericProperty): (JSC::FTL::LowerDFGToLLVM::compileHasStructureProperty): (JSC::FTL::LowerDFGToLLVM::compileGetDirectPname): (JSC::FTL::LowerDFGToLLVM::compileGetEnumerableLength): (JSC::FTL::LowerDFGToLLVM::compileGetStructurePropertyEnumerator): (JSC::FTL::LowerDFGToLLVM::compileGetGenericPropertyEnumerator): (JSC::FTL::LowerDFGToLLVM::compileGetEnumeratorPname): (JSC::FTL::LowerDFGToLLVM::compileToIndexString):
2014-07-25 Mark Hahnenberg <mhahnenberg@apple.com>
Remove JSPropertyNameIterator
https://bugs.webkit.org/show_bug.cgi?id=135066
Reviewed by Geoffrey Garen.
It has been replaced by JSPropertyNameEnumerator.
- JavaScriptCore.order:
- bytecode/BytecodeBasicBlock.cpp: (JSC::isBranch):
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h: (JSC::computeUsesForBytecodeOffset): (JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode):
- bytecode/PreciseJumpTargets.cpp: (JSC::getJumpTargetsForBytecodeOffset):
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitGetPropertyNames): Deleted. (JSC::BytecodeGenerator::emitNextPropertyName): Deleted.
- bytecompiler/BytecodeGenerator.h:
- interpreter/Interpreter.cpp:
- interpreter/Register.h:
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass): (JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/JITOpcodes.cpp: (JSC::JIT::emit_op_get_pnames): Deleted. (JSC::JIT::emit_op_next_pname): Deleted.
- jit/JITOpcodes32_64.cpp: (JSC::JIT::emit_op_get_pnames): Deleted. (JSC::JIT::emit_op_next_pname): Deleted.
- jit/JITOperations.cpp:
- jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_by_pname): Deleted. (JSC::JIT::emitSlow_op_get_by_pname): Deleted.
- jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emit_op_get_by_pname): Deleted. (JSC::JIT::emitSlow_op_get_by_pname): Deleted.
- llint/LLIntOffsetsExtractor.cpp:
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL): Deleted.
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/CommonSlowPaths.cpp:
- runtime/JSPropertyNameIterator.cpp: (JSC::JSPropertyNameIterator::JSPropertyNameIterator): Deleted. (JSC::JSPropertyNameIterator::create): Deleted. (JSC::JSPropertyNameIterator::destroy): Deleted. (JSC::JSPropertyNameIterator::get): Deleted. (JSC::JSPropertyNameIterator::visitChildren): Deleted.
- runtime/JSPropertyNameIterator.h: (JSC::JSPropertyNameIterator::createStructure): Deleted. (JSC::JSPropertyNameIterator::size): Deleted. (JSC::JSPropertyNameIterator::setCachedStructure): Deleted. (JSC::JSPropertyNameIterator::cachedStructure): Deleted. (JSC::JSPropertyNameIterator::setCachedPrototypeChain): Deleted. (JSC::JSPropertyNameIterator::cachedPrototypeChain): Deleted. (JSC::JSPropertyNameIterator::finishCreation): Deleted. (JSC::Register::propertyNameIterator): Deleted. (JSC::StructureRareData::enumerationCache): Deleted. (JSC::StructureRareData::setEnumerationCache): Deleted.
- runtime/Structure.cpp: (JSC::Structure::addPropertyWithoutTransition): (JSC::Structure::removePropertyWithoutTransition):
- runtime/Structure.h:
- runtime/StructureInlines.h: (JSC::Structure::setEnumerationCache): Deleted. (JSC::Structure::enumerationCache): Deleted.
- runtime/StructureRareData.cpp: (JSC::StructureRareData::visitChildren):
- runtime/StructureRareData.h:
- runtime/VM.cpp: (JSC::VM::VM):
2014-07-25 Saam Barati <sbarati@apple.com>
Fix 32-bit build breakage for type profiling
https://bugs.webkit.org/process_bug.cgi
Reviewed by Mark Hahnenberg.
32-bit builds currently break because global variable IDs for high
fidelity type profiling are int64_t. Change this to intptr_t so that
it's 32 bits on 32-bit platforms and 64 bits on 64-bit platforms.
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::CodeBlock): (JSC::CodeBlock::scopeDependentProfile):
- bytecode/TypeLocation.h:
- runtime/SymbolTable.cpp: (JSC::SymbolTable::uniqueIDForVariable): (JSC::SymbolTable::uniqueIDForRegister):
- runtime/SymbolTable.h:
- runtime/TypeLocationCache.cpp: (JSC::TypeLocationCache::getTypeLocation):
- runtime/TypeLocationCache.h:
- runtime/VM.h: (JSC::VM::getNextUniqueVariableID):
2014-07-25 Mark Hahnenberg <mhahnenberg@apple.com>
Reindent PropertyNameArray.h
https://bugs.webkit.org/show_bug.cgi?id=135067
Reviewed by Geoffrey Garen.
- runtime/PropertyNameArray.h: (JSC::RefCountedIdentifierSet::contains): (JSC::RefCountedIdentifierSet::size): (JSC::RefCountedIdentifierSet::add): (JSC::PropertyNameArrayData::create): (JSC::PropertyNameArrayData::propertyNameVector): (JSC::PropertyNameArrayData::PropertyNameArrayData): (JSC::PropertyNameArray::PropertyNameArray): (JSC::PropertyNameArray::vm): (JSC::PropertyNameArray::add): (JSC::PropertyNameArray::addKnownUnique): (JSC::PropertyNameArray::operator[]): (JSC::PropertyNameArray::setData): (JSC::PropertyNameArray::data): (JSC::PropertyNameArray::releaseData): (JSC::PropertyNameArray::identifierSet): (JSC::PropertyNameArray::canAddKnownUniqueForStructure): (JSC::PropertyNameArray::size): (JSC::PropertyNameArray::begin): (JSC::PropertyNameArray::end): (JSC::PropertyNameArray::numCacheableSlots): (JSC::PropertyNameArray::setNumCacheableSlotsForObject): (JSC::PropertyNameArray::setBaseObject): (JSC::PropertyNameArray::setPreviouslyEnumeratedLength):
2014-07-23 Mark Hahnenberg <mhahnenberg@apple.com>
Refactor our current implementation of for-in
https://bugs.webkit.org/show_bug.cgi?id=134142
Reviewed by Filip Pizlo.
This patch splits for-in loops into three distinct parts:
- Iterating over the indexed properties in the base object.
- Iterating over the Structure properties in the base object.
- Iterating over any other enumerable properties for that object and any objects in the prototype chain.
It does this by emitting these explicit loops in bytecode, using a new set of bytecodes to
support the various operations required for each loop.
- API/JSCallbackObjectFunctions.h: (JSC::JSCallbackObject<Parent>::getOwnNonIndexPropertyNames):
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h: (JSC::computeUsesForBytecodeOffset): (JSC::computeDefsForBytecodeOffset):
- bytecode/CallLinkStatus.h: (JSC::CallLinkStatus::CallLinkStatus):
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): (JSC::CodeBlock::CodeBlock):
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitGetByVal): (JSC::BytecodeGenerator::emitComplexPopScopes): (JSC::BytecodeGenerator::emitGetEnumerableLength): (JSC::BytecodeGenerator::emitHasGenericProperty): (JSC::BytecodeGenerator::emitHasIndexedProperty): (JSC::BytecodeGenerator::emitHasStructureProperty): (JSC::BytecodeGenerator::emitGetStructurePropertyEnumerator): (JSC::BytecodeGenerator::emitGetGenericPropertyEnumerator): (JSC::BytecodeGenerator::emitNextEnumeratorPropertyName): (JSC::BytecodeGenerator::emitToIndexString): (JSC::BytecodeGenerator::pushIndexedForInScope): (JSC::BytecodeGenerator::popIndexedForInScope): (JSC::BytecodeGenerator::pushStructureForInScope): (JSC::BytecodeGenerator::popStructureForInScope): (JSC::BytecodeGenerator::invalidateForInContextForLocal):
- bytecompiler/BytecodeGenerator.h: (JSC::ForInContext::ForInContext): (JSC::ForInContext::~ForInContext): (JSC::ForInContext::isValid): (JSC::ForInContext::invalidate): (JSC::ForInContext::local): (JSC::StructureForInContext::StructureForInContext): (JSC::StructureForInContext::type): (JSC::StructureForInContext::index): (JSC::StructureForInContext::property): (JSC::StructureForInContext::enumerator): (JSC::IndexedForInContext::IndexedForInContext): (JSC::IndexedForInContext::type): (JSC::IndexedForInContext::index): (JSC::BytecodeGenerator::pushOptimisedForIn): Deleted. (JSC::BytecodeGenerator::popOptimisedForIn): Deleted.
- bytecompiler/NodesCodegen.cpp: (JSC::ReadModifyResolveNode::emitBytecode): (JSC::AssignResolveNode::emitBytecode): (JSC::ForInNode::tryGetBoundLocal): (JSC::ForInNode::emitLoopHeader): (JSC::ForInNode::emitMultiLoopBytecode): (JSC::ForInNode::emitBytecode):
- debugger/DebuggerScope.h:
- dfg/DFGAbstractHeap.h:
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp: (JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h: (JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGHeapLocation.cpp: (WTF::printInternal):
- dfg/DFGHeapLocation.h:
- dfg/DFGNode.h: (JSC::DFG::Node::hasHeapPrediction): (JSC::DFG::Node::hasArrayMode):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass): (JSC::JIT::privateCompileSlowCases):
- jit/JIT.h: (JSC::JIT::compileHasIndexedProperty): (JSC::JIT::emitInt32Load):
- jit/JITInlines.h: (JSC::JIT::emitDoubleGetByVal): (JSC::JIT::emitLoadForArrayMode): (JSC::JIT::emitContiguousGetByVal): (JSC::JIT::emitArrayStorageGetByVal):
- jit/JITOpcodes.cpp: (JSC::JIT::emit_op_get_enumerable_length): (JSC::JIT::emit_op_has_structure_property): (JSC::JIT::emitSlow_op_has_structure_property): (JSC::JIT::emit_op_has_generic_property): (JSC::JIT::privateCompileHasIndexedProperty): (JSC::JIT::emit_op_has_indexed_property): (JSC::JIT::emitSlow_op_has_indexed_property): (JSC::JIT::emit_op_get_direct_pname): (JSC::JIT::emitSlow_op_get_direct_pname): (JSC::JIT::emit_op_get_structure_property_enumerator): (JSC::JIT::emit_op_get_generic_property_enumerator): (JSC::JIT::emit_op_next_enumerator_pname): (JSC::JIT::emit_op_to_index_string):
- jit/JITOpcodes32_64.cpp: (JSC::JIT::emit_op_get_enumerable_length): (JSC::JIT::emit_op_has_structure_property): (JSC::JIT::emitSlow_op_has_structure_property): (JSC::JIT::emit_op_has_generic_property): (JSC::JIT::privateCompileHasIndexedProperty): (JSC::JIT::emit_op_has_indexed_property): (JSC::JIT::emitSlow_op_has_indexed_property): (JSC::JIT::emit_op_get_direct_pname): (JSC::JIT::emitSlow_op_get_direct_pname): (JSC::JIT::emit_op_get_structure_property_enumerator): (JSC::JIT::emit_op_get_generic_property_enumerator): (JSC::JIT::emit_op_next_enumerator_pname): (JSC::JIT::emit_op_to_index_string):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp: (JSC::JIT::emitDoubleLoad): (JSC::JIT::emitContiguousLoad): (JSC::JIT::emitArrayStorageLoad): (JSC::JIT::emitDoubleGetByVal): Deleted. (JSC::JIT::emitContiguousGetByVal): Deleted. (JSC::JIT::emitArrayStorageGetByVal): Deleted.
- jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emitContiguousLoad): (JSC::JIT::emitDoubleLoad): (JSC::JIT::emitArrayStorageLoad): (JSC::JIT::emitContiguousGetByVal): Deleted. (JSC::JIT::emitDoubleGetByVal): Deleted. (JSC::JIT::emitArrayStorageGetByVal): Deleted.
- llint/LowLevelInterpreter.asm:
- parser/Nodes.h:
- runtime/Arguments.cpp: (JSC::Arguments::getOwnPropertyNames):
- runtime/ClassInfo.h:
- runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
- runtime/EnumerationMode.h: Added. (JSC::shouldIncludeDontEnumProperties): (JSC::shouldExcludeDontEnumProperties): (JSC::shouldIncludeJSObjectPropertyNames): (JSC::modeThatSkipsJSObject):
- runtime/JSActivation.cpp: (JSC::JSActivation::getOwnNonIndexPropertyNames):
- runtime/JSArray.cpp: (JSC::JSArray::getOwnNonIndexPropertyNames):
- runtime/JSArrayBuffer.cpp: (JSC::JSArrayBuffer::getOwnNonIndexPropertyNames):
- runtime/JSArrayBufferView.cpp: (JSC::JSArrayBufferView::getOwnNonIndexPropertyNames):
- runtime/JSCell.cpp: (JSC::JSCell::getEnumerableLength): (JSC::JSCell::getStructurePropertyNames): (JSC::JSCell::getGenericPropertyNames):
- runtime/JSCell.h:
- runtime/JSFunction.cpp: (JSC::JSFunction::getOwnNonIndexPropertyNames):
- runtime/JSGenericTypedArrayViewInlines.h: (JSC::JSGenericTypedArrayView<Adaptor>::getOwnNonIndexPropertyNames):
- runtime/JSObject.cpp: (JSC::getClassPropertyNames): (JSC::JSObject::hasOwnProperty): (JSC::JSObject::getOwnPropertyNames): (JSC::JSObject::getOwnNonIndexPropertyNames): (JSC::JSObject::getEnumerableLength): (JSC::JSObject::getStructurePropertyNames): (JSC::JSObject::getGenericPropertyNames):
- runtime/JSObject.h:
- runtime/JSPropertyNameEnumerator.cpp: Added. (JSC::JSPropertyNameEnumerator::create): (JSC::JSPropertyNameEnumerator::JSPropertyNameEnumerator): (JSC::JSPropertyNameEnumerator::finishCreation): (JSC::JSPropertyNameEnumerator::destroy): (JSC::JSPropertyNameEnumerator::visitChildren):
- runtime/JSPropertyNameEnumerator.h: Added. (JSC::JSPropertyNameEnumerator::createStructure): (JSC::JSPropertyNameEnumerator::propertyNameAtIndex): (JSC::JSPropertyNameEnumerator::identifierSet): (JSC::JSPropertyNameEnumerator::cachedPrototypeChain): (JSC::JSPropertyNameEnumerator::setCachedPrototypeChain): (JSC::JSPropertyNameEnumerator::cachedStructure): (JSC::JSPropertyNameEnumerator::cachedStructureID): (JSC::JSPropertyNameEnumerator::cachedInlineCapacity): (JSC::JSPropertyNameEnumerator::cachedStructureIDOffset): (JSC::JSPropertyNameEnumerator::cachedInlineCapacityOffset): (JSC::JSPropertyNameEnumerator::cachedPropertyNamesLengthOffset): (JSC::JSPropertyNameEnumerator::cachedPropertyNamesVectorOffset): (JSC::structurePropertyNameEnumerator): (JSC::genericPropertyNameEnumerator):
- runtime/JSProxy.cpp: (JSC::JSProxy::getEnumerableLength): (JSC::JSProxy::getStructurePropertyNames): (JSC::JSProxy::getGenericPropertyNames):
- runtime/JSProxy.h:
- runtime/JSSymbolTableObject.cpp: (JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):
- runtime/PropertyNameArray.cpp: (JSC::PropertyNameArray::add): (JSC::PropertyNameArray::setPreviouslyEnumeratedProperties):
- runtime/PropertyNameArray.h: (JSC::RefCountedIdentifierSet::contains): (JSC::RefCountedIdentifierSet::size): (JSC::RefCountedIdentifierSet::add): (JSC::PropertyNameArray::PropertyNameArray): (JSC::PropertyNameArray::add): (JSC::PropertyNameArray::addKnownUnique): (JSC::PropertyNameArray::identifierSet): (JSC::PropertyNameArray::canAddKnownUniqueForStructure): (JSC::PropertyNameArray::setPreviouslyEnumeratedLength):
- runtime/RegExpObject.cpp: (JSC::RegExpObject::getOwnNonIndexPropertyNames): (JSC::RegExpObject::getPropertyNames): (JSC::RegExpObject::getGenericPropertyNames):
- runtime/RegExpObject.h:
- runtime/StringObject.cpp: (JSC::StringObject::getOwnPropertyNames):
- runtime/Structure.cpp: (JSC::Structure::getPropertyNamesFromStructure): (JSC::Structure::setCachedStructurePropertyNameEnumerator): (JSC::Structure::cachedStructurePropertyNameEnumerator): (JSC::Structure::setCachedGenericPropertyNameEnumerator): (JSC::Structure::cachedGenericPropertyNameEnumerator): (JSC::Structure::canCacheStructurePropertyNameEnumerator): (JSC::Structure::canCacheGenericPropertyNameEnumerator): (JSC::Structure::canAccessPropertiesQuickly):
- runtime/Structure.h:
- runtime/StructureRareData.cpp: (JSC::StructureRareData::visitChildren): (JSC::StructureRareData::cachedStructurePropertyNameEnumerator): (JSC::StructureRareData::setCachedStructurePropertyNameEnumerator): (JSC::StructureRareData::cachedGenericPropertyNameEnumerator): (JSC::StructureRareData::setCachedGenericPropertyNameEnumerator):
- runtime/StructureRareData.h:
- runtime/VM.cpp: (JSC::VM::VM):
- runtime/VM.h:
2014-07-23 Saam Barati <sbarati@apple.com>
Make improvements to Type Profiling
https://bugs.webkit.org/show_bug.cgi?id=134860
Reviewed by Filip Pizlo.
I improved the API between the inspector and JSC. We no longer send one huge
string to the inspector. We now send structured data that represents the type
information that JSC has collected. I've also created a beginning implementation
of a type lattice that allows us to resolve a display name for a type that
consists of a single word.
I created a data structure that knows which functions have executed. This
solves the bug where types inside an un-executed function will resolve
to the type of the enclosing expression of that function. This data
structure may also be useful later if the inspector chooses to create a UI
around showing which functions have executed.
Better type information is gathered for objects. StructureShape now
represents an object's prototype chain. StructureShape also collects
the constructor name for an object.
Expression ranges are now zero indexed.
Removed some extraneous methods.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::CodeBlock): (JSC::CodeBlock::scopeDependentProfile):
- bytecode/CodeBlock.h:
- bytecode/TypeLocation.h: (JSC::TypeLocation::TypeLocation):
- bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
- bytecode/UnlinkedCodeBlock.h: (JSC::UnlinkedFunctionExecutable::highFidelityTypeProfilingStartOffset): (JSC::UnlinkedFunctionExecutable::highFidelityTypeProfilingEndOffset):
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::BytecodeGenerator): (JSC::BytecodeGenerator::emitHighFidelityTypeProfilingExpressionInfo):
- bytecompiler/BytecodeGenerator.h: (JSC::BytecodeGenerator::emitHighFidelityTypeProfilingExpressionInfo): Deleted.
- heap/Heap.cpp: (JSC::Heap::collect):
- inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets): (Inspector::InspectorRuntimeAgent::getRuntimeTypeForVariableAtOffset): Deleted.
- inspector/agents/InspectorRuntimeAgent.h:
- inspector/protocol/Runtime.json:
- runtime/Executable.cpp: (JSC::ScriptExecutable::ScriptExecutable): (JSC::ProgramExecutable::ProgramExecutable): (JSC::FunctionExecutable::FunctionExecutable): (JSC::ProgramExecutable::initializeGlobalProperties):
- runtime/Executable.h: (JSC::ScriptExecutable::highFidelityTypeProfilingStartOffset): (JSC::ScriptExecutable::highFidelityTypeProfilingEndOffset):
- runtime/FunctionHasExecutedCache.cpp: Added. (JSC::FunctionHasExecutedCache::hasExecutedAtOffset): (JSC::FunctionHasExecutedCache::insertUnexecutedRange): (JSC::FunctionHasExecutedCache::removeUnexecutedRange):
- runtime/FunctionHasExecutedCache.h: Added. (JSC::FunctionHasExecutedCache::FunctionRange::FunctionRange): (JSC::FunctionHasExecutedCache::FunctionRange::operator==): (JSC::FunctionHasExecutedCache::FunctionRange::hash):
- runtime/HighFidelityLog.cpp: (JSC::HighFidelityLog::processHighFidelityLog): (JSC::HighFidelityLog::actuallyProcessLogThreadFunction): Deleted.
- runtime/HighFidelityLog.h: (JSC::HighFidelityLog::recordTypeInformationForLocation):
- runtime/HighFidelityTypeProfiler.cpp: (JSC::HighFidelityTypeProfiler::logTypesForTypeLocation): (JSC::HighFidelityTypeProfiler::insertNewLocation): (JSC::HighFidelityTypeProfiler::getTypesForVariableAtOffsetForInspector): (JSC::descriptorMatchesTypeLocation): (JSC::HighFidelityTypeProfiler::findLocation): (JSC::HighFidelityTypeProfiler::getTypesForVariableInAtOffset): Deleted. (JSC::HighFidelityTypeProfiler::getGlobalTypesForVariableAtOffset): Deleted. (JSC::HighFidelityTypeProfiler::getLocalTypesForVariableAtOffset): Deleted.
- runtime/HighFidelityTypeProfiler.h: (JSC::QueryKey::QueryKey): (JSC::QueryKey::isHashTableDeletedValue): (JSC::QueryKey::operator==): (JSC::QueryKey::hash): (JSC::QueryKeyHash::hash): (JSC::QueryKeyHash::equal): (JSC::HighFidelityTypeProfiler::functionHasExecutedCache): (JSC::HighFidelityTypeProfiler::typeLocationCache):
- runtime/Structure.cpp: (JSC::Structure::toStructureShape):
- runtime/Structure.h:
- runtime/TypeLocationCache.cpp: Added. (JSC::TypeLocationCache::getTypeLocation):
- runtime/TypeLocationCache.h: Added. (JSC::TypeLocationCache::LocationKey::LocationKey): (JSC::TypeLocationCache::LocationKey::operator==): (JSC::TypeLocationCache::LocationKey::hash):
- runtime/TypeSet.cpp: (JSC::TypeSet::getRuntimeTypeForValue): (JSC::TypeSet::addTypeForValue): (JSC::TypeSet::seenTypes): (JSC::TypeSet::doesTypeConformTo): (JSC::TypeSet::displayName): (JSC::TypeSet::allPrimitiveTypeNames): (JSC::TypeSet::allStructureRepresentations): (JSC::TypeSet::leastCommonAncestor): (JSC::StructureShape::StructureShape): (JSC::StructureShape::addProperty): (JSC::StructureShape::propertyHash): (JSC::StructureShape::leastCommonAncestor): (JSC::StructureShape::stringRepresentation): (JSC::StructureShape::inspectorRepresentation): (JSC::StructureShape::leastUpperBound): Deleted.
- runtime/TypeSet.h: (JSC::StructureShape::setConstructorName): (JSC::StructureShape::constructorName): (JSC::StructureShape::setProto):
- runtime/VM.cpp: (JSC::VM::dumpHighFidelityProfilingTypes): (JSC::VM::getTypesForVariableAtOffset): Deleted. (JSC::VM::updateHighFidelityTypeProfileState): Deleted.
- runtime/VM.h: (JSC::VM::isProfilingTypesWithHighFidelity): (JSC::VM::highFidelityTypeProfiler):
2014-07-23 Filip Pizlo <fpizlo@apple.com>
Fix debug build.
- bytecode/CallLinkStatus.h: (JSC::CallLinkStatus::CallLinkStatus):
2014-07-20 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Phantoms in SSA form should be aggressively hoisted
https://bugs.webkit.org/show_bug.cgi?id=135111
Reviewed by Oliver Hunt.
In CPS form, Phantom means three things: (1) that the children should be kept alive so long
as they are relevant to OSR (due to a MovHint), (2) that the children are live-in-bytecode
at the point of the Phantom, and (3) that some checks should be performed. In SSA, the
second meaning is not used but the other two stay.
The fact that a Phantom that is used to keep a node alive could be anywhere in the graph,
even in a totally different basic block, complicates some SSA transformations. It's not
possible to just jettison some successor, since tha successor could have a Phantom that we
care about.
This change rationalizes how Phantoms work so that:
1) Phantoms keep children alive so long as those children are relevant to OSR. This is true
in both CPS and SSA. This was true before and it's true now.
2) Phantoms are used for live-in-bytecode only in CPS. This was true before and it's true
now, except that now we also don't bother preserving the live-in-bytecode information
that Phantoms convey, when we are in SSA.
3) Phantoms may incidentally have checks, but in cases where we only want checks, we now
use Check instead of Phantom. Notably, DCE phase has dead nodes decay to Check, not
Phantom.
The biggest part of this change is that in SSA, we canonicalize Phantoms:
- All Phantoms are replaced with Check nodes that include only those edges that have checks.
- Nodes that were the children of any Phantoms have a Phantom right after them.
For example, the following code:
5: ArithAdd(@1, @2)
6: ArithSub(@5, @3)
7: Phantom(Int32:@5)
would be turned into the following:
5: ArithAdd(@1, @2)
8: Phantom(@5) @5 was the child of a Phantom, so we create a new Phantom right after
@5. This is the only Phantom we will have for @5.
6: ArithSub(@5, @3)
7: Check(Int32:@5) We replace the Phantom with a Check; in this case since Int32: is
a checking edge, we leave it.
This is a slight speed-up across the board, presumably because we now do a better job of
reducing the size of the graph during compilation. It could also be a fluke, though. The
main purpose of this is to unlock some other work (like CFG simplification in SSA). It will
become a requirement to run phantom canonicalization prior to some SSA phases. None of the
current phases need it, but future phases probably will.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDCEPhase.cpp: (JSC::DFG::DCEPhase::run): (JSC::DFG::DCEPhase::findTypeCheckRoot): (JSC::DFG::DCEPhase::countEdge): (JSC::DFG::DCEPhase::fixupBlock): (JSC::DFG::DCEPhase::eliminateIrrelevantPhantomChildren):
- dfg/DFGEdge.cpp: (JSC::DFG::Edge::dump):
- dfg/DFGEdge.h: (JSC::DFG::Edge::isProved): (JSC::DFG::Edge::needsCheck): Deleted.
- dfg/DFGNodeFlags.h:
- dfg/DFGPhantomCanonicalizationPhase.cpp: Added. (JSC::DFG::PhantomCanonicalizationPhase::PhantomCanonicalizationPhase): (JSC::DFG::PhantomCanonicalizationPhase::run): (JSC::DFG::performPhantomCanonicalization):
- dfg/DFGPhantomCanonicalizationPhase.h: Added.
- dfg/DFGPhantomRemovalPhase.cpp: (JSC::DFG::PhantomRemovalPhase::run):
- dfg/DFGPhantomRemovalPhase.h:
- dfg/DFGPlan.cpp: (JSC::DFG::Plan::compileInThreadImpl):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::lowJSValue): (JSC::FTL::LowerDFGToLLVM::speculateObjectOrOther):
2014-07-22 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Get rid of structure checks as a way of checking if a function is in fact a function
https://bugs.webkit.org/show_bug.cgi?id=135146
Reviewed by Oliver Hunt.
This greatly simplifies our closure call optimizations by taking advantage of the type
bits available in the cell header.
- bytecode/CallLinkInfo.cpp: (JSC::CallLinkInfo::visitWeak):
- bytecode/CallLinkStatus.cpp: (JSC::CallLinkStatus::CallLinkStatus): (JSC::CallLinkStatus::computeFor): (JSC::CallLinkStatus::dump):
- bytecode/CallLinkStatus.h: (JSC::CallLinkStatus::CallLinkStatus): (JSC::CallLinkStatus::executable): (JSC::CallLinkStatus::structure): Deleted.
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::emitFunctionChecks):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): (JSC::DFG::FixupPhase::observeUseKindOnNode):
- dfg/DFGSafeToExecute.h: (JSC::DFG::SafeToExecuteEdge::operator()):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::checkArray): (JSC::DFG::SpeculativeJIT::speculateCellTypeWithoutTypeFiltering): (JSC::DFG::SpeculativeJIT::speculateCellType): (JSC::DFG::SpeculativeJIT::speculateFunction): (JSC::DFG::SpeculativeJIT::speculateFinalObject): (JSC::DFG::SpeculativeJIT::speculate):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGUseKind.cpp: (WTF::printInternal):
- dfg/DFGUseKind.h: (JSC::DFG::typeFilterFor): (JSC::DFG::isCell):
- ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileCheckExecutable): (JSC::FTL::LowerDFGToLLVM::speculate): (JSC::FTL::LowerDFGToLLVM::isFunction): (JSC::FTL::LowerDFGToLLVM::isNotFunction): (JSC::FTL::LowerDFGToLLVM::speculateFunction):
- jit/ClosureCallStubRoutine.cpp: (JSC::ClosureCallStubRoutine::ClosureCallStubRoutine): (JSC::ClosureCallStubRoutine::markRequiredObjectsInternal):
- jit/ClosureCallStubRoutine.h: (JSC::ClosureCallStubRoutine::structure): Deleted.
- jit/JIT.h: (JSC::JIT::compileClosureCall): Deleted.
- jit/JITCall.cpp: (JSC::JIT::privateCompileClosureCall): Deleted.
- jit/JITCall32_64.cpp: (JSC::JIT::privateCompileClosureCall): Deleted.
- jit/JITOperations.cpp:
- jit/Repatch.cpp: (JSC::linkClosureCall):
- jit/Repatch.h:
Source/WebCore:
2014-08-06 Mark Hahnenberg <mhahnenberg@apple.com>
Refactor our current implementation of for-in
https://bugs.webkit.org/show_bug.cgi?id=134142
Reviewed by Filip Pizlo.
No new tests.
This patch splits for-in loops into three distinct parts:
- Iterating over the indexed properties in the base object.
- Iterating over the Structure properties in the base object.
- Iterating over any other enumerable properties for that object and any objects in the prototype chain.
It does this by emitting these explicit loops in bytecode, using a new set of bytecodes to
support the various operations required for each loop.
- bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::getEnumerableLength): (WebCore::JSDOMWindow::getStructurePropertyNames): (WebCore::JSDOMWindow::getGenericPropertyNames):
- bindings/scripts/CodeGeneratorJS.pm: (GenerateHeader):
- bridge/runtime_array.cpp: (JSC::RuntimeArray::getOwnPropertyNames):
Source/WebKit2:
2014-08-06 Mark Hahnenberg <mhahnenberg@apple.com>
Refactor our current implementation of for-in
https://bugs.webkit.org/show_bug.cgi?id=134142
Reviewed by Filip Pizlo.
- WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::JSNPObject::invalidate): Fixed an invalid ASSERT that was crashing in debug builds.
- 2:09 PM Changeset in webkit [172175] by
-
- 15 edits in branches/safari-600.1.4-branch/Source
Merge r172172. <rdar://problem/17862892>
- 1:38 PM Changeset in webkit [172174] by
-
- 4 edits in trunk
Set DSYMUTIL_NUM_THREADS to the number of logical cores
https://bugs.webkit.org/show_bug.cgi?id=135655
Reviewed by Mark Rowe.
.:
- Makefile.shared: Export DSYMUTIL_NUM_THREADS.
Tools:
- Scripts/webkitdirs.pm:
(buildXCodeProject): Set before calling xcodebuild.
- 1:25 PM Changeset in webkit [172173] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merge r172025. <rdar://problem/17715503>
- 1:25 PM Changeset in webkit [172172] by
-
- 15 edits in trunk/Source
REGRESSION (WebKit2): iOS Safari default encoding doesn't follow system language
https://bugs.webkit.org/show_bug.cgi?id=135667
<rdar://problem/17862892>
Reviewed by Anders Carlsson.
Source/WebCore:
Moved a function that computes default encoding from WebKit to WebCore, so that
it could be shared with WebKit2.
- WebCore.exp.in:
- platform/ios/WebCoreSystemInterfaceIOS.mm:
- platform/mac/WebCoreSystemInterface.h:
- platform/mac/WebCoreSystemInterface.mm:
- platform/text/TextEncodingRegistry.cpp:
(WebCore::defaultTextEncodingNameForSystemLanguage):
- platform/text/TextEncodingRegistry.h:
Source/WebKit/mac:
- WebView/WebPreferences.mm: (+[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
Moved implementation to WebCore, so that it can be shared with WebKit2.
- WebCoreSupport/WebSystemInterface.mm: (InitWebCoreSystemInterface):
We now use WKGetWebDefaultCFStringEncoding in WebCore, so it needs to be initialized.
Source/WebKit2:
- Shared/WebPreferencesDefinitions.h: Compute the actual proper default, don't
hardcode it to ISO-8859-1 hoping that someone else will correct it later.
- Shared/WebPreferencesStore.cpp: Added an include for WebPreferencesDefinitions.h
macro expansion to compile.
- UIProcess/WebPreferences.cpp: (WebKit::WebPreferences::createWithLegacyDefaults):
Added a FIXME.
- WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface):
We now use WKGetWebDefaultCFStringEncoding in WebCore, so it needs to be initialized.
- 1:23 PM Changeset in webkit [172171] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r172159. <rdar://problem/17869353>
- 1:19 PM Changeset in webkit [172170] by
-
- 1 edit in branches/safari-537.78-branch/Source/WebCore/ChangeLog
Fixup ChangeLog from merge r169475 -> 171377
- 1:15 PM Changeset in webkit [172169] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r172151. <rdar://problem/17869353>
- 1:12 PM Changeset in webkit [172168] by
-
- 4 edits in branches/safari-600.1.4-branch/Source
Merge r172035. <rdar://problem/17869353>
- 1:12 PM Changeset in webkit [172167] by
-
- 2 edits in trunk/Source/WTF
HashTable based classes leak a lot
https://bugs.webkit.org/show_bug.cgi?id=135638
Reviewed by Darin Adler.
- wtf/HashTable.h:
The operator= taking a rvalue reference was never freeing the memory allocated
for the table of the left hand side object.
This patch fixes the leaks by doing an alloc+swap with a new object.
The object temp gets the reference to m_table, and destroys it in the regular destructor
when going out of scope.
Kudos to Pratik Solanki for finding the leaks.
- 1:09 PM Changeset in webkit [172166] by
-
- 3 edits4 copies in branches/safari-600.1.4-branch
Merge r172112. <rdar://problem/17802174>
- 12:21 PM Changeset in webkit [172165] by
-
- 3 edits in trunk/Source/WebCore
Remove unused RenderBox::reflectionBox().
<https://webkit.org/b/135661>
Reviewed by Antti Koivisto.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::reflectionBox): Deleted.
- rendering/RenderBox.h:
- 11:54 AM Changeset in webkit [172164] by
-
- 2 edits in tags/Safari-600.1.7/Source/WebCore
Merge r172025. <rdar://problem/17715503>
- 11:48 AM Changeset in webkit [172163] by
-
- 2 edits in trunk/Websites/webkit.org
[Win] Build error when OFFICIAL_BUILD != 1.
https://bugs.webkit.org/show_bug.cgi?id=135613
Patch by peavo@outlook.com <peavo@outlook.com> on 2014-08-06
Reviewed by Alex Christensen.
Added python installation as a required step before building on Windows.
- building/tools.html:
- 11:32 AM Changeset in webkit [172162] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION(r172094): tests fail because Inspector test harness does not include UIString
https://bugs.webkit.org/show_bug.cgi?id=135658
Reviewed by Joseph Pecoraro.
- UserInterface/Base/Test.js:
(WebInspector.contentLoaded): Fix brace placement.
(WebInspector.UIString): Added. This is the identity function during testing.
- 11:30 AM Changeset in webkit [172161] by
-
- 4 edits in trunk/Source
Web Inspector: convert ReplayManager to a promise-based API
https://bugs.webkit.org/show_bug.cgi?id=135249
Reviewed by Timothy Hatcher.
Source/WebCore:
Fix some assertions to match ReplayController's preconditions.
- inspector/InspectorReplayAgent.cpp:
(WebCore::InspectorReplayAgent::replayToPosition):
(WebCore::InspectorReplayAgent::replayToCompletion):
Source/WebInspectorUI:
Convert replay commands to an asynchronous, promise-based API. This addresses
two problems with a synchronous replay API: clients can only use the synchronous
API if session and segment state are exactly correct, and trying to change state
to match this requirement requires chaining multiple commands and events.
The asynchronous API allows clients to issue replay commands with impunity,
as long as they can be unambiguously handled. For example, issuing
pausePlayback() while capturing is not allowed, but issuing startCapturing()
while replaying is allowed. The API also hides implementation details that
are not important, such as steps to unpause or temporarily disable the debugger.
This patch also cleans up uses of promises, such as adding error re-throwing.
It adds return type annotations to public ReplayManager asynchronous methods.
- UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.catch):
(WebInspector.ReplayManager):
(WebInspector.ReplayManager.prototype.createSession):
(WebInspector.ReplayManager.prototype.switchSession):
(WebInspector.ReplayManager.prototype.startCapturing):
(WebInspector.ReplayManager.prototype.stopCapturing):
(WebInspector.ReplayManager.prototype.replayToPosition):
(WebInspector.ReplayManager.prototype.replayToCompletion):
(WebInspector.ReplayManager.prototype.sessionCreated.catch): re-throw.
(WebInspector.ReplayManager.prototype.segmentCompleted.catch): re-throw.
(WebInspector.ReplayManager.prototype.segmentCompleted.catch): re-throw.
(WebInspector.ReplayManager.prototype.segmentUnloaded.catch): re-throw.
(WebInspector.ReplayManager.prototype.sessionCreated.catech): re-throw.
- 11:25 AM Changeset in webkit [172160] by
-
- 3 edits2 adds in trunk
[Mac] Unable to scroll to bottom of nested scrollable areas
https://bugs.webkit.org/show_bug.cgi?id=135637
<rdar://problem/17910241>
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: platform/mac/fast/scrolling/scroll-latched-nested-div.html
Avoid truncating the fractional portion of scroll ranges.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollbarsAfterLayout): Round
the LayoutUnit values for scroll width and height rather than
truncating.
LayoutTests:
- platform/mac/fast/scrolling/scroll-latched-nested-div-expected.txt: Added.
- platform/mac/fast/scrolling/scroll-latched-nested-div.html: Added.
- 11:18 AM Changeset in webkit [172159] by
-
- 2 edits in trunk/Source/WebCore
[iOS] QuickLook returns an invalid MIME type for some documents
https://bugs.webkit.org/show_bug.cgi?id=135651
Reviewed by David Kilzer.
r172151 ensured that we ignore QuickLook delegate messages after an error, but neglected to do so for
connectionDidFinishLoading:. Do not call ResourceLoader::didFinishLoading() if an error has occurred.
- platform/network/ios/QuickLook.mm:
(-[WebResourceLoaderQuickLookDelegate connectionDidFinishLoading:]):
- 10:59 AM Changeset in webkit [172158] by
-
- 5 edits2 adds in trunk
Web Inspector: protocol command invocations should return a promise if no callback is supplied
https://bugs.webkit.org/show_bug.cgi?id=130702
Reviewed by Timothy Hatcher.
Source/WebInspectorUI:
This allows the trailing Agent.command.promise(args) to be dropped in favor of just
Agent.command(args). It should make it a bit easier to convert code to use promises.
Test: LayoutTests/inspector/protocol-promise-result.html
- UserInterface/Controllers/ReplayManager.js: Drop use of .promise().
- UserInterface/Controllers/TimelineManager.js: Drop use of .promise().
(WebInspector.TimelineManager.prototype.startCapturing):
- UserInterface/Protocol/InspectorBackend.js:
(.callable): Redirect to the promise entry point if the last argument isn't a function.
(InspectorBackend.Command.create):
LayoutTests:
Addd a test for recieving protocol command results through an explicit callback,
via the .promise() entry point, and via an implicitly created promise.
- inspector/protocol-promise-result-expected.txt: Added.
- inspector/protocol-promise-result.html: Added.
- 10:57 AM Changeset in webkit [172157] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r172155.
https://bugs.webkit.org/show_bug.cgi?id=135659
ChangeLog and commit message are wrong (Requested by estes on
#webkit).
Reverted changeset:
"Unreviewed, rolling out r172145."
https://bugs.webkit.org/show_bug.cgi?id=135657
http://trac.webkit.org/changeset/172155
- 10:53 AM Changeset in webkit [172156] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix
- rendering/TextPainter.cpp: Used incorrect variable name
- 10:46 AM Changeset in webkit [172155] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r172145.
https://bugs.webkit.org/show_bug.cgi?id=135657
caused 1 API test to fail (Requested by zalan on #webkit).
Reverted changeset:
"Cleanup InlineTextBox::paintSelection and
::localSelectionRect."
https://bugs.webkit.org/show_bug.cgi?id=135631
http://trac.webkit.org/changeset/172145
Patch by Commit Queue <commit-queue@webkit.org> on 2014-08-06
- 10:44 AM Changeset in webkit [172154] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, rolling out r172145.
https://bugs.webkit.org/show_bug.cgi?id=135657
caused 1 API test to fail (Requested by zalan on #webkit).
Reverted changeset:
"Cleanup InlineTextBox::paintSelection and
::localSelectionRect."
https://bugs.webkit.org/show_bug.cgi?id=135631
http://trac.webkit.org/changeset/172145
- 10:35 AM Changeset in webkit [172153] by
-
- 3 edits2 adds in trunk
Text-shadow with (0, 0) offset and radius = 0 is ugly
https://bugs.webkit.org/show_bug.cgi?id=135357
Reviewed by Darin Adler.
Source/WebCore:
Instead, check for this kind of shadow and don't draw it.
Test: fast/text/empty-shadow.html
- rendering/TextPainter.cpp:
(WebCore::isEmptyShadow): Does a shadow match these criteria?
(WebCore::paintTextWithShadows): If so, don't draw it.
LayoutTests:
Check that this kind of shadow ends up invisible.
- fast/text/empty-shadow-expected.html: Added
- fast/text/empty-shadow.html: Added
- 10:27 AM Changeset in webkit [172152] by
-
- 2 edits in trunk/Source/JavaScriptCore
[ARM] Incorrect handling of Unicode characters
https://bugs.webkit.org/show_bug.cgi?id=135380
Reviewed by Darin Adler.
Removed erroneous fast case from stringFromUTF(), since it assumed that
char is always implemented as signed.
- jsc.cpp:
(stringFromUTF):
- 10:23 AM Changeset in webkit [172151] by
-
- 2 edits in trunk/Source/WebCore
[iOS] QuickLook returns an invalid MIME type for some documents
https://bugs.webkit.org/show_bug.cgi?id=135651
Reviewed by David Kilzer.
In some cases QuickLook indicates a failure by returning a nil MIME type in -[QLPreviewConverter previewResponse]
rather than calling connection:didFailWithError:. Calling ResourceLoader::didReceiveResponse() with a response
containing a nil MIME type leads to a crash.
Stop loading the resource and display an error page if QuickLook cannot provide a MIME type for the converted response.
No new tests. QuickLook is not testable from WebKit.
- platform/network/ios/QuickLook.mm:
(-[WebResourceLoaderQuickLookDelegate _sendDidReceiveResponseIfNecessary]): Called ResourceLoader::didFail() if
MIME type was nil. Called ResourceLoader::didReceiveResponse() otherwise.
(-[WebResourceLoaderQuickLookDelegate connection:didReceiveDataArray:]): Called -_sendDidReceiveResponseIfNecessary.
(-[WebResourceLoaderQuickLookDelegate connection:didReceiveData:lengthReceived:]): Ditto.
(-[WebResourceLoaderQuickLookDelegate connection:didFailWithError:]): Ditto.
- 9:02 AM Changeset in webkit [172150] by
-
- 1 edit4 moves1 add in trunk/LayoutTests
[CSSRegions] Move full screen tests into fast/regions/fullscreen
https://bugs.webkit.org/show_bug.cgi?id=135650
Reviewed by Andrei Bucur.
Move files and adjust paths accordingly.
- fast/regions/fullscreen/full-screen-video-from-region-expected.txt: Renamed from LayoutTests/fast/regions/full-screen-video-from-region-expected.txt.
- fast/regions/fullscreen/full-screen-video-from-region.html: Renamed from LayoutTests/fast/regions/full-screen-video-from-region.html.
- fast/regions/fullscreen/full-screen-video-in-region-crash-expected.txt: Renamed from LayoutTests/fast/regions/full-screen-video-in-region-crash-expected.txt.
- fast/regions/fullscreen/full-screen-video-in-region-crash.html: Renamed from LayoutTests/fast/regions/full-screen-video-in-region-crash.html.
- 8:44 AM Changeset in webkit [172149] by
-
- 7 edits in trunk/Source
[JSC] Build fix for FTL on EFL after ftlopt merge
https://bugs.webkit.org/show_bug.cgi?id=135565
Reviewed by Mark Lam.
Source/JavaScriptCore:
Adding an enable guard for native inlining, since it now requires the bitcode
emitted from Clang, and we don't have a good way of creating it from other compilers.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleCall):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
- ftl/FTLState.cpp:
(JSC::FTL::State::State):
- ftl/FTLState.h:
Source/WTF:
Added ENABLE(FTL_NATIVE_CALL_INLINING).
- wtf/Platform.h:
- 8:09 AM Changeset in webkit [172148] by
-
- 1 edit4 moves3 adds2 deletes in trunk/LayoutTests
[CSSRegions] Move parsing tests into fast/regions/parsing
https://bugs.webkit.org/show_bug.cgi?id=135649
Reviewed by Andrei Bucur.
Move files and adjust file paths.
- fast/regions/parsing/webkit-flow-from-parsing-expected.txt: Renamed from LayoutTests/fast/regions/webkit-flow-from-parsing-expected.txt.
- fast/regions/parsing/webkit-flow-from-parsing.html: Added.
- fast/regions/parsing/webkit-flow-into-parsing-expected.txt: Renamed from LayoutTests/fast/regions/webkit-flow-into-parsing-expected.txt.
- fast/regions/parsing/webkit-flow-into-parsing.html: Renamed from LayoutTests/fast/regions/webkit-flow-into-parsing.html.
- fast/regions/parsing/webkit-region-fragment-parsing-expected.txt: Renamed from LayoutTests/fast/regions/webkit-region-fragment-parsing-expected.txt.
- fast/regions/parsing/webkit-region-fragment-parsing.html: Added.
- fast/regions/webkit-flow-from-parsing.html: Removed.
- fast/regions/webkit-region-fragment-parsing.html: Removed.
- 8:07 AM Changeset in webkit [172147] by
-
- 9 edits in trunk
[GTK] Add support for user scripts to WebKitUserContentManager
https://bugs.webkit.org/show_bug.cgi?id=134738
Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2014-08-06
Reviewed by Carlos Garcia Campos.
Add support for user scripts, to complement the user style sheet
support already present in WebKitUserContentManager. Most of the
moving parts are already present, so this just adds a boxed type
for user scripts (WebKitUserScript) and the corresponding methods
to add and remove scripts from the WebKitUserContentManager.
Source/WebKit2:
- UIProcess/API/gtk/WebKitUserContent.cpp: Add a WebKitUserScript
boxed type and its corresponding methods and enums.
(toUserScriptInjectionTime): Needed to convert
WebKitUserScriptInjectionTime values into its WebCore counterparts.
(_WebKitUserScript::_WebKitUserScript): Added.
(_WebKitUserScript::referenceCount): Ditto.
(webkit_user_script_ref):
(webkit_user_script_unref):
(webkit_user_script_new):
(webkitUserScriptGetUserScript): Internal method to obtain the
boxed WebCore::UserScript value.
- UIProcess/API/gtk/WebKitUserContent.h: Add the new public API
methods.
- UIProcess/API/gtk/WebKitUserContentManager.cpp: Implement the
methods for adding and removing user scripts.
(webkit_user_content_manager_add_script):
(webkit_user_content_manager_remove_all_scripts):
- UIProcess/API/gtk/WebKitUserContentManager.h: Add the new public
API methods.
- UIProcess/API/gtk/WebKitUserContentPrivate.h: Add the definition
for the new private function.
- UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Include the
new public methods in the API documentation.
Tools:
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp:
Add test case for injected user scripts.
(isScriptInjectedForURLAtPath):
(removeOldInjectedContentAndResetLists):
(testUserContentManagerInjectedStyleSheet):
(testUserContentManagerInjectedScript):
(beforeAll):
(removeOldInjectedStyleSheetsAndResetLists): Deleted.
- 8:06 AM Changeset in webkit [172146] by
-
- 3 edits2 adds in trunk
REGRESSION (r163382): Overflow hidden for inner elements breaks blurring
https://bugs.webkit.org/show_bug.cgi?id=135318
Reviewed by Zalan Bujtas.
Source/WebCore:
For elements with border radius, clipping must be applied using clipRoundedRect.
This regressed in r163382, when normal clipping started being applied also
for elements having border radius.
Test: fast/filter-image/clipped-filter.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::restoreClip):
LayoutTests:
Added test for filter applied on an element overflowing its parent, which has overflow:hidden.
- fast/filter-image/clipped-filter-expected.html: Added.
- fast/filter-image/clipped-filter.html: Added.
- 8:04 AM Changeset in webkit [172145] by
-
- 3 edits in trunk/Source/WebCore
Cleanup InlineTextBox::paintSelection and ::localSelectionRect.
https://bugs.webkit.org/show_bug.cgi?id=135631
Reviewed by Darin Adler.
Covered by existing tests.
- rendering/InlineTextBox.cpp: Ideally these 2 functions should share some more code.
(WebCore::InlineTextBox::localSelectionRect): Local coordinates should not be snapped/enclosed.
This change could potentially break some selections. Should that be the case, they need to be addressed
separately.
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintSelection): Minor cleanup.
- rendering/InlineTextBox.h:
- 8:01 AM Changeset in webkit [172144] by
-
- 7 edits in trunk
[GTK] Be able to disable gtk2 dependency
https://bugs.webkit.org/show_bug.cgi?id=135505
Reviewed by Gustavo Noronha Silva.
.:
Add ENABLE_PLUGIN_PROCESS_GTK2 compile option. GTK+2 is only
required when it's enabled. It's enabled by default.
- Source/cmake/OptionsGTK.cmake:
Source/WebCore:
Do not build WebCorePlatformGTK2 when ENABLE_PLUGIN_PROCESS_GTK2
is OFF.
- PlatformGTK.cmake:
Source/WebKit2:
- PlatformGTK.cmake: Only build WebKitPluginProcess2 when
ENABLE_PLUGIN_PROCESS_GTK2 is ON.
- UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess): Do not try to launch
WebKitPluginProcess2 executable when ENABLE_PLUGIN_PROCESS_GTK2 is OFF.
- 6:45 AM Changeset in webkit [172143] by
-
- 2 edits in trunk/Source/WebCore
Gardening: fix bindings test breakage for for r170564 merged in r172129.
<https://webkit.org/b/134333>
Not reviewed.
No new tests.
- bindings/scripts/test/JS/JSTestEventTarget.h:
(WebCore::JSTestEventTarget::create):
- 6:36 AM Changeset in webkit [172142] by
-
- 2 edits in trunk/Source/WebCore/platform/gtk/po
[GTK] Rename translation domain to WebKit2GTK-4.0
https://bugs.webkit.org/show_bug.cgi?id=135646
Reviewed by Carlos Garcia Campos.
- CMakeLists.txt:
- 4:13 AM Changeset in webkit [172141] by
-
- 1 edit8 moves in trunk/LayoutTests
[CSSRegions] Move selection tests under fast/regions/selection
https://bugs.webkit.org/show_bug.cgi?id=135641
Reviewed by Andrei Bucur.
Move selection related tests under fast/regions/selection.
- fast/regions/selection/selection-gaps-paint-crash-expected.txt: Renamed from LayoutTests/fast/regions/selection-gaps-paint-crash-expected.txt.
- fast/regions/selection/selection-gaps-paint-crash.html: Renamed from LayoutTests/fast/regions/selection-gaps-paint-crash.html.
- fast/regions/selection/selection-in-overflow-expected.html: Renamed from LayoutTests/fast/regions/selection-in-overflow-expected.html.
- fast/regions/selection/selection-in-overflow-hit-testing-expected.html: Renamed from LayoutTests/fast/regions/selection-in-overflow-hit-testing-expected.html.
- fast/regions/selection/selection-in-overflow-hit-testing.html: Renamed from LayoutTests/fast/regions/selection-in-overflow-hit-testing.html.
- fast/regions/selection/selection-in-overflow.html: Renamed from LayoutTests/fast/regions/selection-in-overflow.html.
- fast/regions/selection/selection-in-text-after-overflow-hit-testing-expected.html: Renamed from LayoutTests/fast/regions/selection-in-text-after-overflow-hit-testing-expected.html.
- fast/regions/selection/selection-in-text-after-overflow-hit-testing.html: Renamed from LayoutTests/fast/regions/selection-in-text-after-overflow-hit-testing.html.
- 4:00 AM Changeset in webkit [172140] by
-
- 1 edit4 moves in trunk/LayoutTests
[CSSRegions] Move auto-height tests into fast/regions/auto-size
https://bugs.webkit.org/show_bug.cgi?id=135645
Reviewed by Andrei Bucur.
- fast/regions/auto-size/region-height-auto-to-defined-expected.txt: Renamed from LayoutTests/fast/regions/region-height-auto-to-defined-expected.txt.
- fast/regions/auto-size/region-height-auto-to-defined.html: Renamed from LayoutTests/fast/regions/region-height-auto-to-defined.html.
- fast/regions/auto-size/region-height-defined-to-auto-expected.txt: Renamed from LayoutTests/fast/regions/region-height-defined-to-auto-expected.txt.
- fast/regions/auto-size/region-height-defined-to-auto.html: Renamed from LayoutTests/fast/regions/region-height-defined-to-auto.html.
- 3:50 AM Changeset in webkit [172139] by
-
- 2 edits in trunk/Tools
[GTK] run-launcher --gtk still fails
https://bugs.webkit.org/show_bug.cgi?id=135642
Patch by Philippe Normand <pnormand@igalia.com> on 2014-08-06
Reviewed by Carlos Garcia Campos.
The perl interpreter is confused by the combination of string
concatenation and a ternary in the same line. Using a separate
variable to determine the library file extension fixes this issue.
- Scripts/webkitdirs.pm:
(builtDylibPathForName): Use an intermediate variable, it's more
readable and unambiguous.
- 3:10 AM Changeset in webkit [172138] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed typo correction.
- bindings/scripts/CodeGeneratorJS.pm: removed unnecessary space.
(GenerateImplementation):
Aug 5, 2014:
- 11:53 PM Changeset in webkit [172137] by
-
- 2 edits in trunk/Source/JavaScriptCore
URTBF after r172129. (ftlopt branch merge)
Remove the duplicated friend declaration to fix this build failure:
"error: ‘JSC::Structure’ is already a friend of ‘JSC::StructureRareData’ [-Werror]"
- runtime/StructureRareData.h:
- 11:21 PM Changeset in webkit [172136] by
-
- 8 edits in trunk
Web Inspector: AXI: Add label string once AccessibilityObject::computedLabel() is available
https://bugs.webkit.org/show_bug.cgi?id=129940
Reviewed by Chris Fleizach.
Source/WebCore:
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt
- accessibility/AccessibilityObject.cpp: Fixed crash.
(WebCore::AccessibilityObject::accessibilityComputedLabel):
- accessibility/AccessibilityObject.h: Method name update.
- inspector/InspectorDOMAgent.cpp: New support for getting Node label from AccessibilityObject.
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
Source/WebInspectorUI:
- UserInterface/Views/DOMNodeDetailsSidebarPanel.js: UI update for label field in Node Inspector.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
LayoutTests:
- inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt: LayoutTest expectation update.
- 11:14 PM Changeset in webkit [172135] by
-
- 2 edits in trunk/Source/JavaScriptCore
Attempt to fix CMake-based builds, part 3.
- CMakeLists.txt:
- 11:09 PM Changeset in webkit [172134] by
-
- 2 edits in trunk/Source/JavaScriptCore
Attempt to fix CMake-based builds, part 2.
- CMakeLists.txt:
- 11:06 PM Changeset in webkit [172133] by
-
- 2 edits in trunk/Source/JavaScriptCore
Attempt to fix Windows build, part 2.
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- 11:03 PM Changeset in webkit [172132] by
-
- 2 edits in trunk/Source/JavaScriptCore
Attempt to fix CMake-based builds.
- CMakeLists.txt:
- 11:02 PM Changeset in webkit [172131] by
-
- 2 edits in trunk/Source/JavaScriptCore
Attempt to fix Windows build.
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- 10:55 PM Changeset in webkit [172130] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix cloop build.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::jettison):
- 10:27 PM Changeset in webkit [172129] by
-
- 145 edits42 adds5 deletes in trunk
Merge r170564, r170571, r170604, r170628, r170672, r170680, r170724, r170728, r170729, r170819, r170821, r170836, r170855, r170860, r170890, r170907, r170929, r171052, r171106, r171152, r171153, r171214 from ftlopt.
Source/JavaScriptCore:
This part of the merge delivers roughly a 2% across-the-board performance
improvement, mostly due to immutable property inference and DFG-side GCSE. It also
almost completely resolves accessor performance issues; in the common case the DFG
will compile a getter/setter access into code that is just as efficient as a normal
property access.
Another major highlight of this part of the merge is the work to add a type profiler
to the inspector. This work is still on-going but this greatly increases coverage.
Note that this merge fixes a minor bug in the GetterSetter refactoring from
http://trac.webkit.org/changeset/170729 (https://bugs.webkit.org/show_bug.cgi?id=134518).
It also adds a new tests to tests/stress to cover that bug. That bug was previously only
covered by layout tests.
2014-07-17 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG Flush(SetLocal) store elimination is overzealous for captured variables in the presence of nodes that have no effects but may throw (merge trunk r171190)
https://bugs.webkit.org/show_bug.cgi?id=135019
Reviewed by Oliver Hunt.
Behaviorally, this is just a merge of trunk r171190, except that the relevant functionality
has moved to StrengthReductionPhase and is written in a different style. Same algorithm,
different code.
- dfg/DFGNodeType.h:
- dfg/DFGStrengthReductionPhase.cpp: (JSC::DFG::StrengthReductionPhase::handleNode):
- tests/stress/capture-escape-and-throw.js: Added. (foo.f): (foo):
- tests/stress/new-array-with-size-throw-exception-and-tear-off-arguments.js: Added. (foo): (bar):
2014-07-15 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Constant fold GetGetter and GetSetter if the GetterSetter is a constant
https://bugs.webkit.org/show_bug.cgi?id=134962
Reviewed by Oliver Hunt.
This removes yet another steady-state-throughput implication of using getters and setters:
if your accessor call is monomorphic then you'll just get a structure check, nothing more.
No more loads to get to the GetterSetter object or the accessor function object.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- runtime/GetterSetter.h: (JSC::GetterSetter::getterConcurrently): (JSC::GetterSetter::setGetter): (JSC::GetterSetter::setterConcurrently): (JSC::GetterSetter::setSetter):
2014-07-15 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Identity replacement in CSE shouldn't create a Phantom over the Identity's children
https://bugs.webkit.org/show_bug.cgi?id=134893
Reviewed by Oliver Hunt.
Replace Identity with Check instead of Phantom. Phantom means that the child of the
Identity should be unconditionally live. The liveness semantics of Identity are such that
if the parents of Identity are live then the child is live. Removing the Identity entirely
preserves such liveness semantics. So, the only thing that should be left behind is the
type check on the child, which is what Check means: do the check but don't keep the child
alive if the check isn't needed.
- dfg/DFGCSEPhase.cpp:
- dfg/DFGNode.h: (JSC::DFG::Node::convertToCheck):
2014-07-13 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG should be able to do GCSE in SSA and this should be unified with the CSE in CPS, and both of these things should use abstract heaps for reasoning about effects
https://bugs.webkit.org/show_bug.cgi?id=134677
Reviewed by Sam Weinig.
This removes the old local CSE phase, which was based on manually written backward-search
rules for all of the different kinds of things we cared about, and adds a new local/global
CSE (local for CPS and global for SSA) that leaves the node semantics almost entirely up to
clobberize(). Thus, the CSE phase itself just worries about the algorithms and data
structures used for storing sets of available values. This results in a large reduction in
code size in CSEPhase.cpp while greatly increasing the phase's power (since it now does
global CSE) and reducing compile time (since local CSE is now rewritten to use smarter data
structures). Even though LLVM was already running GVN, the extra GCSE at DFG IR level means
that this is a significant (~0.7%) throughput improvement.
This work is based on the concept of "def" to clobberize(). If clobberize() calls def(), it
means that the node being analyzed makes available some value in some DFG node, and that
future attempts to compute that value can simply use that node. In other words, it
establishes an available value mapping of the form value=>node. There are two kinds of
values that can be passed to def():
PureValue. This captures everything needed to determine whether two pure nodes - nodes that
neither read nor write, and produce a value that is a CSE candidate - are identical. It
carries the NodeType, an AdjacencyList, and one word of meta-data. The meta-data is
usually used for things like the arithmetic mode or constant pointer. Passing a
PureValue to def() means that the node produces a value that is valid anywhere that the
node dominates.
HeapLocation. This describes a location in the heap that could be written to or read from.
Both stores and loads can def() a HeapLocation. HeapLocation carries around an abstract
heap that both serves as part of the "name" of the heap location (together with the
other fields of HeapLocation) and also tells us what write()'s to watch for. If someone
write()'s to an abstract heap that overlaps the heap associated with the HeapLocation,
then it means that the values for that location are no longer available.
This approach is sufficiently clever that the CSEPhase itself can focus on the mechanism of
tracking the PureValue=>node and HeapLocation=>node maps, without having to worry about
interpreting the semantics of different DFG node types - that is now almost entirely in
clobberize(). The only things we special-case inside CSEPhase are the Identity node, which
CSE is traditionally responsible for eliminating even though it has nothing to do with CSE,
and the LocalCSE rule for turning PutByVal into PutByValAlias.
This is a slight Octane, SunSpider, and Kraken speed-up - all somewhere arond 0.7% . It's
not a bigger win because LLVM was already giving us most of what we needed in its GVN.
Also, the SunSpider speed-up isn't from GCSE as much as it's a clean-up of local CSE - that
is no longer O(n2). Basically this is purely good: it reduces the amount of LLVM IR we
generate, it removes the old CSE's heap modeling (which was a constant source of bugs), and
it improves both the quality of the code we generate and the speed with which we generate
it. Also, any future optimizations that depend on GCSE will now be easier to implement.
During the development of this patch I also rationalized some other stuff, like Graph's
ordered traversals - we now have preorder and postorder rather than just "depth first".
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAbstractHeap.h:
- dfg/DFGAdjacencyList.h: (JSC::DFG::AdjacencyList::hash): (JSC::DFG::AdjacencyList::operator==):
- dfg/DFGBasicBlock.h:
- dfg/DFGCSEPhase.cpp: (JSC::DFG::performLocalCSE): (JSC::DFG::performGlobalCSE): (JSC::DFG::CSEPhase::CSEPhase): Deleted. (JSC::DFG::CSEPhase::run): Deleted. (JSC::DFG::CSEPhase::endIndexForPureCSE): Deleted. (JSC::DFG::CSEPhase::pureCSE): Deleted. (JSC::DFG::CSEPhase::constantCSE): Deleted. (JSC::DFG::CSEPhase::constantStoragePointerCSE): Deleted. (JSC::DFG::CSEPhase::getCalleeLoadElimination): Deleted. (JSC::DFG::CSEPhase::getArrayLengthElimination): Deleted. (JSC::DFG::CSEPhase::globalVarLoadElimination): Deleted. (JSC::DFG::CSEPhase::scopedVarLoadElimination): Deleted. (JSC::DFG::CSEPhase::varInjectionWatchpointElimination): Deleted. (JSC::DFG::CSEPhase::getByValLoadElimination): Deleted. (JSC::DFG::CSEPhase::checkFunctionElimination): Deleted. (JSC::DFG::CSEPhase::checkExecutableElimination): Deleted. (JSC::DFG::CSEPhase::checkStructureElimination): Deleted. (JSC::DFG::CSEPhase::structureTransitionWatchpointElimination): Deleted. (JSC::DFG::CSEPhase::getByOffsetLoadElimination): Deleted. (JSC::DFG::CSEPhase::getGetterSetterByOffsetLoadElimination): Deleted. (JSC::DFG::CSEPhase::getPropertyStorageLoadElimination): Deleted. (JSC::DFG::CSEPhase::checkArrayElimination): Deleted. (JSC::DFG::CSEPhase::getIndexedPropertyStorageLoadElimination): Deleted. (JSC::DFG::CSEPhase::getInternalFieldLoadElimination): Deleted. (JSC::DFG::CSEPhase::getMyScopeLoadElimination): Deleted. (JSC::DFG::CSEPhase::getLocalLoadElimination): Deleted. (JSC::DFG::CSEPhase::invalidationPointElimination): Deleted. (JSC::DFG::CSEPhase::setReplacement): Deleted. (JSC::DFG::CSEPhase::eliminate): Deleted. (JSC::DFG::CSEPhase::performNodeCSE): Deleted. (JSC::DFG::CSEPhase::performBlockCSE): Deleted. (JSC::DFG::performCSE): Deleted.
- dfg/DFGCSEPhase.h:
- dfg/DFGClobberSet.cpp: (JSC::DFG::addReads): (JSC::DFG::addWrites): (JSC::DFG::addReadsAndWrites): (JSC::DFG::readsOverlap): (JSC::DFG::writesOverlap):
- dfg/DFGClobberize.cpp: (JSC::DFG::doesWrites): (JSC::DFG::accessesOverlap): (JSC::DFG::writesOverlap):
- dfg/DFGClobberize.h: (JSC::DFG::clobberize): (JSC::DFG::NoOpClobberize::operator()): (JSC::DFG::CheckClobberize::operator()): (JSC::DFG::ReadMethodClobberize::ReadMethodClobberize): (JSC::DFG::ReadMethodClobberize::operator()): (JSC::DFG::WriteMethodClobberize::WriteMethodClobberize): (JSC::DFG::WriteMethodClobberize::operator()): (JSC::DFG::DefMethodClobberize::DefMethodClobberize): (JSC::DFG::DefMethodClobberize::operator()):
- dfg/DFGDCEPhase.cpp: (JSC::DFG::DCEPhase::run): (JSC::DFG::DCEPhase::fixupBlock):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::getBlocksInPreOrder): (JSC::DFG::Graph::getBlocksInPostOrder): (JSC::DFG::Graph::addForDepthFirstSort): Deleted. (JSC::DFG::Graph::getBlocksInDepthFirstOrder): Deleted.
- dfg/DFGGraph.h:
- dfg/DFGHeapLocation.cpp: Added. (JSC::DFG::HeapLocation::dump): (WTF::printInternal):
- dfg/DFGHeapLocation.h: Added. (JSC::DFG::HeapLocation::HeapLocation): (JSC::DFG::HeapLocation::operator!): (JSC::DFG::HeapLocation::kind): (JSC::DFG::HeapLocation::heap): (JSC::DFG::HeapLocation::base): (JSC::DFG::HeapLocation::index): (JSC::DFG::HeapLocation::hash): (JSC::DFG::HeapLocation::operator==): (JSC::DFG::HeapLocation::isHashTableDeletedValue): (JSC::DFG::HeapLocationHash::hash): (JSC::DFG::HeapLocationHash::equal):
- dfg/DFGLICMPhase.cpp: (JSC::DFG::LICMPhase::run):
- dfg/DFGNode.h: (JSC::DFG::Node::replaceWith): (JSC::DFG::Node::convertToPhantomUnchecked): Deleted.
- dfg/DFGPlan.cpp: (JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGPureValue.cpp: Added. (JSC::DFG::PureValue::dump):
- dfg/DFGPureValue.h: Added. (JSC::DFG::PureValue::PureValue): (JSC::DFG::PureValue::operator!): (JSC::DFG::PureValue::op): (JSC::DFG::PureValue::children): (JSC::DFG::PureValue::info): (JSC::DFG::PureValue::hash): (JSC::DFG::PureValue::operator==): (JSC::DFG::PureValue::isHashTableDeletedValue): (JSC::DFG::PureValueHash::hash): (JSC::DFG::PureValueHash::equal):
- dfg/DFGSSAConversionPhase.cpp: (JSC::DFG::SSAConversionPhase::run):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::lower):
2014-07-13 Filip Pizlo <fpizlo@apple.com>
Unreviewed, revert unintended change in r171051.
- dfg/DFGCSEPhase.cpp:
2014-07-08 Filip Pizlo <fpizlo@apple.com>
[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().
2014-07-08 Filip Pizlo <fpizlo@apple.com>
[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):
2014-07-08 Filip Pizlo <fpizlo@apple.com>
[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):
2014-07-04 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Infer immutable object properties
https://bugs.webkit.org/show_bug.cgi?id=134567
Reviewed by Mark Hahnenberg.
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):
2014-07-03 Saam Barati <sbarati@apple.com>
Add more coverage for the profile_types_with_high_fidelity op code.
https://bugs.webkit.org/show_bug.cgi?id=134616
Reviewed by Filip Pizlo.
More operations are now being recorded by the profile_types_with_high_fidelity
opcode. Specifically: function parameters, function return values,
function 'this' value, get_by_id, get_by_value, resolve nodes, function return
values at the call site. Added more flags to the profile_types_with_high_fidelity
opcode so more focused tasks can take place when the instruction is
being linked in CodeBlock. Re-worked the type profiler to search
through character offset ranges when asked for the type of an expression
at a given offset. Removed redundant calls to Structure::toStructureShape
in HighFidelityLog and TypeSet by caching calls based on StructureID.
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h: (JSC::computeUsesForBytecodeOffset): (JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::CodeBlock): (JSC::CodeBlock::finalizeUnconditionally): (JSC::CodeBlock::scopeDependentProfile):
- bytecode/CodeBlock.h: (JSC::CodeBlock::returnStatementTypeSet):
- bytecode/TypeLocation.h:
- bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedCodeBlock::highFidelityTypeProfileExpressionInfoForBytecodeOffset): (JSC::UnlinkedCodeBlock::addHighFidelityTypeProfileExpressionInfo):
- bytecode/UnlinkedCodeBlock.h:
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitMove): (JSC::BytecodeGenerator::emitProfileTypesWithHighFidelity): (JSC::BytecodeGenerator::emitGetFromScopeWithProfile): (JSC::BytecodeGenerator::emitPutToScope): (JSC::BytecodeGenerator::emitPutToScopeWithProfile): (JSC::BytecodeGenerator::emitPutById): (JSC::BytecodeGenerator::emitPutByVal):
- bytecompiler/BytecodeGenerator.h: (JSC::BytecodeGenerator::emitHighFidelityTypeProfilingExpressionInfo):
- bytecompiler/NodesCodegen.cpp: (JSC::ResolveNode::emitBytecode): (JSC::BracketAccessorNode::emitBytecode): (JSC::DotAccessorNode::emitBytecode): (JSC::FunctionCallValueNode::emitBytecode): (JSC::FunctionCallResolveNode::emitBytecode): (JSC::FunctionCallBracketNode::emitBytecode): (JSC::FunctionCallDotNode::emitBytecode): (JSC::CallFunctionCallDotNode::emitBytecode): (JSC::ApplyFunctionCallDotNode::emitBytecode): (JSC::PostfixNode::emitResolve): (JSC::PostfixNode::emitBracket): (JSC::PostfixNode::emitDot): (JSC::PrefixNode::emitResolve): (JSC::PrefixNode::emitBracket): (JSC::PrefixNode::emitDot): (JSC::ReadModifyResolveNode::emitBytecode): (JSC::AssignResolveNode::emitBytecode): (JSC::AssignDotNode::emitBytecode): (JSC::ReadModifyDotNode::emitBytecode): (JSC::AssignBracketNode::emitBytecode): (JSC::ReadModifyBracketNode::emitBytecode): (JSC::ReturnNode::emitBytecode): (JSC::FunctionBodyNode::emitBytecode):
- inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::getRuntimeTypeForVariableAtOffset): (Inspector::InspectorRuntimeAgent::getRuntimeTypeForVariableInTextRange): Deleted.
- inspector/agents/InspectorRuntimeAgent.h:
- inspector/protocol/Runtime.json:
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::getFromScopeCommon): (JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- runtime/HighFidelityLog.cpp: (JSC::HighFidelityLog::processHighFidelityLog): (JSC::HighFidelityLog::actuallyProcessLogThreadFunction): (JSC::HighFidelityLog::recordTypeInformationForLocation): Deleted.
- runtime/HighFidelityLog.h: (JSC::HighFidelityLog::recordTypeInformationForLocation):
- runtime/HighFidelityTypeProfiler.cpp: (JSC::HighFidelityTypeProfiler::getTypesForVariableInAtOffset): (JSC::HighFidelityTypeProfiler::getGlobalTypesForVariableAtOffset): (JSC::HighFidelityTypeProfiler::getLocalTypesForVariableAtOffset): (JSC::HighFidelityTypeProfiler::insertNewLocation): (JSC::HighFidelityTypeProfiler::findLocation): (JSC::HighFidelityTypeProfiler::getTypesForVariableInRange): Deleted. (JSC::HighFidelityTypeProfiler::getGlobalTypesForVariableInRange): Deleted. (JSC::HighFidelityTypeProfiler::getLocalTypesForVariableInRange): Deleted. (JSC::HighFidelityTypeProfiler::getLocationBasedHash): Deleted.
- runtime/HighFidelityTypeProfiler.h: (JSC::LocationKey::LocationKey): Deleted. (JSC::LocationKey::hash): Deleted. (JSC::LocationKey::operator==): Deleted.
- runtime/Structure.cpp: (JSC::Structure::toStructureShape):
- runtime/Structure.h:
- runtime/TypeSet.cpp: (JSC::TypeSet::TypeSet): (JSC::TypeSet::addTypeForValue): (JSC::TypeSet::seenTypes): (JSC::TypeSet::removeDuplicatesInStructureHistory): Deleted.
- runtime/TypeSet.h: (JSC::StructureShape::setConstructorName):
- runtime/VM.cpp: (JSC::VM::getTypesForVariableAtOffset): (JSC::VM::dumpHighFidelityProfilingTypes): (JSC::VM::getTypesForVariableInRange): Deleted.
- runtime/VM.h:
2014-07-04 Filip Pizlo <fpizlo@apple.com>
[ftlopt][REGRESSION] debug tests fail because PutByIdDirect is now implemented in terms of In
https://bugs.webkit.org/show_bug.cgi?id=134642
Rubber stamped by Andreas Kling.
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileNode):
2014-07-01 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Allocate a new GetterSetter if we change the value of any of its entries other than when they were previously null, so that if we constant-infer an accessor slot then we immediately get the function constant for free
https://bugs.webkit.org/show_bug.cgi?id=134518
Reviewed by Mark Hahnenberg.
This has no real effect right now, particularly since almost all uses of
setSetter/setGetter were already allocating a branch new GetterSetter. But once we start
doing more aggressive constant property inference, this change will allow us to remove
all runtime checks from getter/setter calls.
- runtime/GetterSetter.cpp: (JSC::GetterSetter::withGetter): (JSC::GetterSetter::withSetter):
- runtime/GetterSetter.h: (JSC::GetterSetter::setGetter): (JSC::GetterSetter::setSetter):
- runtime/JSObject.cpp: (JSC::JSObject::defineOwnNonIndexProperty):
2014-07-02 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Rename notifyTransitionFromThisStructure to didTransitionFromThisStructure
Rubber stamped by Mark Hahnenberg.
- runtime/Structure.cpp: (JSC::Structure::Structure): (JSC::Structure::nonPropertyTransition): (JSC::Structure::didTransitionFromThisStructure): (JSC::Structure::notifyTransitionFromThisStructure): Deleted.
- runtime/Structure.h:
2014-07-02 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Remove the functionality for cloning StructureRareData since we never do that anymore.
Rubber stamped by Mark Hahnenberg.
- runtime/Structure.cpp: (JSC::Structure::Structure): (JSC::Structure::cloneRareDataFrom): Deleted.
- runtime/Structure.h:
- runtime/StructureRareData.cpp: (JSC::StructureRareData::clone): Deleted. (JSC::StructureRareData::StructureRareData): Deleted.
- runtime/StructureRareData.h: (JSC::StructureRareData::needsCloning): Deleted.
2014-07-01 Mark Lam <mark.lam@apple.com>
[ftlopt] DebuggerCallFrame::scope() should return a DebuggerScope.
<https://webkit.org/b/134420>
Reviewed by Geoffrey Garen.
Previously, DebuggerCallFrame::scope() returns a JSActivation (and relevant
peers) which the WebInspector will use to introspect CallFrame variables.
Instead, we should be returning a DebuggerScope as an abstraction layer that
provides the introspection functionality that the WebInspector needs. This
is the first step towards not forcing every frame to have a JSActivation
object just because the debugger is enabled.
- Instantiate the debuggerScopeStructure as a member of the JSGlobalObject instead of the VM. This allows JSObject::globalObject() to be able to return the global object for the DebuggerScope.
- On the DebuggerScope's life-cycle management:
The DebuggerCallFrame is designed to be "valid" only during a debugging session
(while the debugger is broken) through the use of a DebuggerCallFrameScope in
Debugger::pauseIfNeeded(). Once the debugger resumes from the break, the
DebuggerCallFrameScope destructs, and the DebuggerCallFrame will be invalidated.
We can't guarantee (from this code alone) that the Inspector code isn't still
holding a ref to the DebuggerCallFrame (though they shouldn't), but by contract,
the frame will be invalidated, and any attempt to query it will return null values.
This is pre-existing behavior.
Now, we're adding the DebuggerScope into the picture. While a single debugger
pause session is in progress, the Inspector may request the scope from the
DebuggerCallFrame. While the DebuggerCallFrame is still valid, we want
DebuggerCallFrame::scope() to always return the same DebuggerScope object.
This is why we hold on to the DebuggerScope with a strong ref.
If we use a weak ref instead, the following cooky behavior can manifest:
- The Inspector calls Debugger::scope() to get the top scope.
- The Inspector iterates down the scope chain and is now only holding a reference to a parent scope. It is no longer referencing the top scope.
- A GC occurs, and the DebuggerCallFrame's weak m_scope ref to the top scope gets cleared.
- The Inspector calls DebuggerCallFrame::scope() to get the top scope again but gets a different DebuggerScope instance.
- The Inspector iterates down the scope chain but never sees the parent scope instance that retained a ref to in step 2 above. This is because when iterating this new DebuggerScope instance (which has no knowledge of the previous parent DebuggerScope instance), a new DebuggerScope instance will get created for the same parent scope.
Since the DebuggerScope is a JSObject, it's liveness is determined by its reachability.
However, it's "validity" is determined by the life-cycle of its owner DebuggerCallFrame.
When the owner DebuggerCallFrame gets invalidated, its debugger scope chain (if
instantiated) will also get invalidated. This is why we need the
DebuggerScope::invalidateChain() method. The Inspector should not be using the
DebuggerScope instance after its owner DebuggerCallFrame is invalidated. If it does,
those methods will do nothing or returned a failed status.
- debugger/Debugger.h:
- debugger/DebuggerCallFrame.cpp: (JSC::DebuggerCallFrame::scope): (JSC::DebuggerCallFrame::evaluate): (JSC::DebuggerCallFrame::invalidate): (JSC::DebuggerCallFrame::vm): (JSC::DebuggerCallFrame::lexicalGlobalObject):
- debugger/DebuggerCallFrame.h:
- debugger/DebuggerScope.cpp: (JSC::DebuggerScope::DebuggerScope): (JSC::DebuggerScope::finishCreation): (JSC::DebuggerScope::visitChildren): (JSC::DebuggerScope::className): (JSC::DebuggerScope::getOwnPropertySlot): (JSC::DebuggerScope::put): (JSC::DebuggerScope::deleteProperty): (JSC::DebuggerScope::getOwnPropertyNames): (JSC::DebuggerScope::defineOwnProperty): (JSC::DebuggerScope::next): (JSC::DebuggerScope::invalidateChain): (JSC::DebuggerScope::isWithScope): (JSC::DebuggerScope::isGlobalScope): (JSC::DebuggerScope::isFunctionScope):
- debugger/DebuggerScope.h: (JSC::DebuggerScope::create): (JSC::DebuggerScope::Iterator::Iterator): (JSC::DebuggerScope::Iterator::get): (JSC::DebuggerScope::Iterator::operator++): (JSC::DebuggerScope::Iterator::operator==): (JSC::DebuggerScope::Iterator::operator!=): (JSC::DebuggerScope::isValid): (JSC::DebuggerScope::jsScope): (JSC::DebuggerScope::begin): (JSC::DebuggerScope::end):
- inspector/JSJavaScriptCallFrame.cpp: (Inspector::JSJavaScriptCallFrame::scopeType): (Inspector::JSJavaScriptCallFrame::scopeChain):
- inspector/JavaScriptCallFrame.h: (Inspector::JavaScriptCallFrame::scopeChain):
- inspector/ScriptDebugServer.cpp:
- runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::reset): (JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h: (JSC::JSGlobalObject::debuggerScopeStructure):
- runtime/JSObject.h: (JSC::JSObject::isWithScope):
- runtime/JSScope.h:
- runtime/VM.cpp: (JSC::VM::VM):
- runtime/VM.h:
2014-07-01 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG bytecode parser should turn PutById with nothing but a Setter stub as stuff+handleCall, and handleCall should be allowed to inline if it wants to
https://bugs.webkit.org/show_bug.cgi?id=130756
Reviewed by Oliver Hunt.
The enables exposing the call to setters in the DFG, and then inlining it. Previously we
already supproted inlined-cached calls to setters from within put_by_id inline caches,
and the DFG could certainly emit such IC's. Now, if an IC had a setter call, then the DFG
will either emit the GetGetterSetterByOffset/GetSetter/Call combo, or it will do one
better and inline the call.
A lot of the core functionality was already available from the previous work to inline
getters. So, there are some refactorings in this patch that move preexisting
functionality around. For example, the work to figure out how the DFG should go about
getting to what we call the "loaded value" - i.e. the GetterSetter object reference in
the case of accessors - is now shared in ComplexGetStatus, and both GetByIdStatus and
PutByIdStatus use it. This means that we can keep the safety checks common. This patch
also does additional refactorings in DFG::ByteCodeParser so that we can continue to reuse
handleCall() for all of the various kinds of calls we can now emit.
83% speed-up on getter-richards, 2% speed-up on box2d.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/ComplexGetStatus.cpp: Added. (JSC::ComplexGetStatus::computeFor):
- bytecode/ComplexGetStatus.h: Added. (JSC::ComplexGetStatus::ComplexGetStatus): (JSC::ComplexGetStatus::skip): (JSC::ComplexGetStatus::takesSlowPath): (JSC::ComplexGetStatus::kind): (JSC::ComplexGetStatus::attributes): (JSC::ComplexGetStatus::specificValue): (JSC::ComplexGetStatus::offset): (JSC::ComplexGetStatus::chain):
- bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::computeForStubInfo):
- bytecode/GetByIdVariant.cpp: (JSC::GetByIdVariant::GetByIdVariant):
- bytecode/PolymorphicPutByIdList.h: (JSC::PutByIdAccess::PutByIdAccess): (JSC::PutByIdAccess::setter): (JSC::PutByIdAccess::structure): (JSC::PutByIdAccess::chainCount):
- bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeFromLLInt): (JSC::PutByIdStatus::computeFor): (JSC::PutByIdStatus::computeForStubInfo): (JSC::PutByIdStatus::makesCalls):
- bytecode/PutByIdStatus.h: (JSC::PutByIdStatus::makesCalls): Deleted.
- bytecode/PutByIdVariant.cpp: (JSC::PutByIdVariant::PutByIdVariant): (JSC::PutByIdVariant::operator=): (JSC::PutByIdVariant::replace): (JSC::PutByIdVariant::transition): (JSC::PutByIdVariant::setter): (JSC::PutByIdVariant::writesStructures): (JSC::PutByIdVariant::reallocatesStorage): (JSC::PutByIdVariant::makesCalls): (JSC::PutByIdVariant::dumpInContext):
- bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::PutByIdVariant): (JSC::PutByIdVariant::structure): (JSC::PutByIdVariant::oldStructure): (JSC::PutByIdVariant::alternateBase): (JSC::PutByIdVariant::specificValue): (JSC::PutByIdVariant::callLinkStatus): (JSC::PutByIdVariant::replace): Deleted. (JSC::PutByIdVariant::transition): Deleted.
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::addCallWithoutSettingResult): (JSC::DFG::ByteCodeParser::addCall): (JSC::DFG::ByteCodeParser::handleCall): (JSC::DFG::ByteCodeParser::handleInlining): (JSC::DFG::ByteCodeParser::handleGetById): (JSC::DFG::ByteCodeParser::handlePutById): (JSC::DFG::ByteCodeParser::parseBlock):
- jit/Repatch.cpp: (JSC::tryCachePutByID): (JSC::tryBuildPutByIdList):
- runtime/IntendedStructureChain.cpp: (JSC::IntendedStructureChain::takesSlowPathInDFGForImpureProperty):
- runtime/IntendedStructureChain.h:
- tests/stress/exit-from-setter.js: Added.
- tests/stress/poly-chain-setter.js: Added. (Cons): (foo): (test):
- tests/stress/poly-chain-then-setter.js: Added. (Cons1): (Cons2): (foo): (test):
- tests/stress/poly-setter-combo.js: Added. (Cons1): (Cons2): (foo): (test): (.test):
- tests/stress/poly-setter-then-self.js: Added. (foo): (test): (.test):
- tests/stress/weird-setter-counter.js: Added. (foo): (test):
- tests/stress/weird-setter-counter-syntactic.js: Added. (foo): (test):
2014-07-01 Matthew Mirman <mmirman@apple.com>
Added an implementation of the "in" check to FTL.
https://bugs.webkit.org/show_bug.cgi?id=134508
Reviewed by Filip Pizlo.
- ftl/FTLCapabilities.cpp: enabled compilation for "in" (JSC::FTL::canCompile): ditto
- ftl/FTLCompile.cpp: (JSC::FTL::generateCheckInICFastPath): added. (JSC::FTL::fixFunctionBasedOnStackMaps): added case for CheckIn descriptors.
- ftl/FTLInlineCacheDescriptor.h: (JSC::FTL::CheckInGenerator::CheckInGenerator): added. (JSC::FTL::CheckInDescriptor::CheckInDescriptor): added.
- ftl/FTLInlineCacheSize.cpp: (JSC::FTL::sizeOfCheckIn): added. Currently larger than necessary.
- ftl/FTLInlineCacheSize.h: ditto
- ftl/FTLIntrinsicRepository.h: Added function type for operationInGeneric
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileNode): added case for In. (JSC::FTL::LowerDFGToLLVM::compileIn): added.
- ftl/FTLSlowPathCall.cpp: Added a callOperation for operationIn (JSC::FTL::callOperation): ditto
- ftl/FTLSlowPathCall.h: ditto
- ftl/FTLState.h: Added a vector to hold CheckIn descriptors.
- jit/JITOperations.h: made operationIns internal.
- tests/stress/ftl-checkin.js: Added.
- tests/stress/ftl-checkin-variable.js: Added.
2014-06-30 Mark Hahnenberg <mhahnenberg@apple.com>
CodeBlock::stronglyVisitWeakReferences should mark DFG::CommonData::weakStructureReferences
https://bugs.webkit.org/show_bug.cgi?id=134455
Reviewed by Geoffrey Garen.
Otherwise we get hanging pointers which can cause us to die later.
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::stronglyVisitWeakReferences):
2014-06-27 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Reduce the GC's influence on optimization decisions
https://bugs.webkit.org/show_bug.cgi?id=134427
Reviewed by Oliver Hunt.
This is a slight speed-up on some platforms, that arises from a bunch of fixes that I made
while trying to make the GC keep more structures alive
(https://bugs.webkit.org/show_bug.cgi?id=128072).
The fixes are, roughly:
- If the GC clears an inline cache, then this no longer causes the IC to be forever polymorphic.
- If we exit in inlined code into a function that tries to OSR enter, then we jettison sooner.
- Some variables being uninitialized led to rage-recompilations.
This is a pretty strong step in the direction of keeping more Structures alive and not
blowing away code just because a Structure died. But, it seems like there is still a slight
speed-up to be had from blowing away code that references dead Structures.
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpAssumingJITType): (JSC::shouldMarkTransition): (JSC::CodeBlock::propagateTransitions): (JSC::CodeBlock::determineLiveness):
- bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::computeForStubInfo):
- bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeForStubInfo):
- dfg/DFGCapabilities.cpp: (JSC::DFG::isSupportedForInlining): (JSC::DFG::mightInlineFunctionForCall): (JSC::DFG::mightInlineFunctionForClosureCall): (JSC::DFG::mightInlineFunctionForConstruct):
- dfg/DFGCapabilities.h:
- dfg/DFGCommonData.h:
- dfg/DFGDesiredWeakReferences.cpp: (JSC::DFG::DesiredWeakReferences::reallyAdd):
- dfg/DFGOSREntry.cpp: (JSC::DFG::prepareOSREntry):
- dfg/DFGOSRExitCompilerCommon.cpp: (JSC::DFG::handleExitCounts):
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- ftl/FTLForOSREntryJITCode.cpp: (JSC::FTL::ForOSREntryJITCode::ForOSREntryJITCode): These variables being uninitialized is benign in terms of correctness but can sometimes cause rage-recompilations. For some reason it took this patch to reveal this.
- ftl/FTLOSREntry.cpp: (JSC::FTL::prepareOSREntry):
- runtime/Executable.cpp: (JSC::ExecutableBase::destroy): (JSC::NativeExecutable::destroy): (JSC::ScriptExecutable::ScriptExecutable): (JSC::ScriptExecutable::destroy): (JSC::ScriptExecutable::installCode): (JSC::EvalExecutable::EvalExecutable): (JSC::ProgramExecutable::ProgramExecutable):
- runtime/Executable.h: (JSC::ScriptExecutable::setDidTryToEnterInLoop): (JSC::ScriptExecutable::didTryToEnterInLoop): (JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): (JSC::ScriptExecutable::ScriptExecutable): Deleted.
- runtime/StructureInlines.h: (JSC::Structure::storedPrototypeObject): (JSC::Structure::storedPrototypeStructure):
2014-06-25 Filip Pizlo <fpizlo@apple.com>
[ftlopt] If a CodeBlock is jettisoned due to a watchpoint then it should be possible to figure out something about that watchpoint
https://bugs.webkit.org/show_bug.cgi?id=134333
Reviewed by Geoffrey Garen.
This is engineered to provide loads of information to the profiler without incurring any
costs when the profiler is disabled. It's the oldest trick in the book: the thing that
fires the watchpoint doesn't actually create anything to describe the reason why it was
fired; instead it creates a stack-allocated FireDetail subclass instance. Only if the
FireDetail::dump() virtual method is called does anything happen.
Currently we use this to produce very fine-grained data for Structure watchpoints and
some cases of variable watchpoints. For all other situations, the given reason is just a
string constant, by using StringFireDetail. If we find a situation where that string
constant is insufficient to diagnose an issue then we can change it to provide more
fine-grained information.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::CodeBlock): (JSC::CodeBlock::jettison):
- bytecode/CodeBlock.h:
- bytecode/CodeBlockJettisoningWatchpoint.cpp: (JSC::CodeBlockJettisoningWatchpoint::fireInternal):
- bytecode/CodeBlockJettisoningWatchpoint.h:
- bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp: Removed.
- bytecode/ProfiledCodeBlockJettisoningWatchpoint.h: Removed.
- bytecode/StructureStubClearingWatchpoint.cpp: (JSC::StructureStubClearingWatchpoint::fireInternal):
- bytecode/StructureStubClearingWatchpoint.h:
- bytecode/VariableWatchpointSet.h: (JSC::VariableWatchpointSet::invalidate): (JSC::VariableWatchpointSet::finalizeUnconditionally):
- bytecode/VariableWatchpointSetInlines.h: (JSC::VariableWatchpointSet::notifyWrite):
- bytecode/Watchpoint.cpp: (JSC::StringFireDetail::dump): (JSC::WatchpointSet::fireAll): (JSC::WatchpointSet::fireAllSlow): (JSC::WatchpointSet::fireAllWatchpoints): (JSC::InlineWatchpointSet::fireAll):
- bytecode/Watchpoint.h: (JSC::FireDetail::FireDetail): (JSC::FireDetail::~FireDetail): (JSC::StringFireDetail::StringFireDetail): (JSC::Watchpoint::fire): (JSC::WatchpointSet::fireAll): (JSC::WatchpointSet::touch): (JSC::WatchpointSet::invalidate): (JSC::InlineWatchpointSet::fireAll): (JSC::InlineWatchpointSet::touch):
- dfg/DFGCommonData.h:
- dfg/DFGOperations.cpp:
- interpreter/Interpreter.cpp: (JSC::Interpreter::execute):
- jsc.cpp: (WTF::Masquerader::create):
- profiler/ProfilerCompilation.cpp: (JSC::Profiler::Compilation::setJettisonReason): (JSC::Profiler::Compilation::toJS):
- profiler/ProfilerCompilation.h: (JSC::Profiler::Compilation::setJettisonReason): Deleted.
- runtime/ArrayBuffer.cpp: (JSC::ArrayBuffer::transfer):
- runtime/ArrayBufferNeuteringWatchpoint.cpp: (JSC::ArrayBufferNeuteringWatchpoint::fireAll):
- runtime/ArrayBufferNeuteringWatchpoint.h:
- runtime/CommonIdentifiers.h:
- runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL):
- runtime/Identifier.cpp: (JSC::Identifier::dump):
- runtime/Identifier.h:
- runtime/JSFunction.cpp: (JSC::JSFunction::put): (JSC::JSFunction::defineOwnProperty):
- runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::addFunction): (JSC::JSGlobalObject::haveABadTime):
- runtime/JSSymbolTableObject.cpp: (JSC::VariableWriteFireDetail::dump):
- runtime/JSSymbolTableObject.h: (JSC::VariableWriteFireDetail::VariableWriteFireDetail): (JSC::symbolTablePut): (JSC::symbolTablePutWithAttributes):
- runtime/PropertyName.h: (JSC::PropertyName::dump):
- runtime/Structure.cpp: (JSC::Structure::notifyTransitionFromThisStructure):
- runtime/Structure.h: (JSC::Structure::notifyTransitionFromThisStructure): Deleted.
- runtime/SymbolTable.cpp: (JSC::SymbolTableEntry::notifyWriteSlow): (JSC::SymbolTable::WatchpointCleanup::finalizeUnconditionally):
- runtime/SymbolTable.h: (JSC::SymbolTableEntry::notifyWrite):
- runtime/VM.cpp: (JSC::VM::addImpureProperty):
Source/WebCore:
2014-07-01 Mark Lam <mark.lam@apple.com>
[ftlopt] DebuggerCallFrame::scope() should return a DebuggerScope.
<https://webkit.org/b/134420>
Reviewed by Geoffrey Garen.
No new tests.
- ForwardingHeaders/debugger/DebuggerCallFrame.h: Removed.
- This is not in use. Hence, we can remove it.
- bindings/js/ScriptController.cpp: (WebCore::ScriptController::attachDebugger):
- We should acquire the JSLock before modifying a JS global object.
2014-06-25 Filip Pizlo <fpizlo@apple.com>
[ftlopt] If a CodeBlock is jettisoned due to a watchpoint then it should be possible to figure out something about that watchpoint
https://bugs.webkit.org/show_bug.cgi?id=134333
Reviewed by Geoffrey Garen.
No new tests because no change in behavior.
- bindings/scripts/CodeGeneratorJS.pm: (GenerateHeader):
Tools:
2014-06-25 Filip Pizlo <fpizlo@apple.com>
[ftlopt] If a CodeBlock is jettisoned due to a watchpoint then it should be possible to figure out something about that watchpoint
https://bugs.webkit.org/show_bug.cgi?id=134333
Reviewed by Geoffrey Garen.
- Scripts/display-profiler-output:
LayoutTests:
2014-07-16 Mark Hahnenberg <mhahnenberg@apple.com>
sputnik/Implementation_Diagnostics/S12.6.4_D1.html depends on undefined behavior
https://bugs.webkit.org/show_bug.cgi?id=135007
Reviewed by Filip Pizlo.
EcmaScript 5.1 specifies that during for-in enumeration newly added properties may or may not be
visited during the current enumeration. Specifically, in section 12.6.4 the spec states:
"If new properties are added to the object being enumerated during enumeration, the newly added properties
are not guaranteed to be visited in the active enumeration."
The sputnik/Implementation_Diagnostics/S12.6.4_D1.html layout test is from before sputnik was added
to the test262 suite. I believe it has since been removed, so it would probably be okay to remove it
from our layout test suite.
- sputnik/Implementation_Diagnostics/S12.6.4_D1-expected.txt: Removed.
- sputnik/Implementation_Diagnostics/S12.6.4_D1.html: Removed.
2014-07-13 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG should be able to do GCSE in SSA and this should be unified with the CSE in CPS, and both of these things should use abstract heaps for reasoning about effects
https://bugs.webkit.org/show_bug.cgi?id=134677
Reviewed by Sam Weinig.
- js/regress/gcse-expected.txt: Added.
- js/regress/gcse-poly-get-expected.txt: Added.
- js/regress/gcse-poly-get-less-obvious-expected.txt: Added.
- js/regress/gcse-poly-get-less-obvious.html: Added.
- js/regress/gcse-poly-get.html: Added.
- js/regress/gcse.html: Added.
- js/regress/script-tests/gcse-poly-get-less-obvious.js: Added.
- js/regress/script-tests/gcse-poly-get.js: Added.
- js/regress/script-tests/gcse.js: Added.
2014-07-04 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Infer immutable object properties
https://bugs.webkit.org/show_bug.cgi?id=134567
Reviewed by Mark Hahnenberg.
- 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.
- 10:20 PM Changeset in webkit [172128] by
-
- 2 edits in trunk/Source/WebCore
Build break since r172093
https://bugs.webkit.org/show_bug.cgi?id=135636
Reviewed by Gyuyoung Kim.
Since r172093, AbstractView.idl is added in CMake Build but CodeGeneratorJS.pm does not take care of it.
No new tests required, no new functionality.
- bindings/scripts/CodeGeneratorJS.pm:
(ShouldGenerateToJSDeclaration):
(ShouldGenerateToJSImplementation):
(GetImplClassName): Added to rename implClassName to DOMWindow if interface name is AbstractView.
(GenerateHeader):
(GenerateImplementation):
- 10:13 PM Changeset in webkit [172127] by
-
- 5 edits in branches/safari-600.1-branch/Source
Versioning.
- 10:09 PM Changeset in webkit [172126] by
-
- 1 copy in tags/Safari-600.1.7
New Tag.
- 9:53 PM Changeset in webkit [172125] by
-
- 5 edits in tags/Safari-600.1.2.7/Source
Versioning.
- 9:25 PM Changeset in webkit [172124] by
-
- 2 edits in tags/Safari-600.1.2.7/Source/WebCore
Merge r172114 <rdar://problem/17925495>.
- 9:21 PM Changeset in webkit [172123] by
-
- 2 edits in tags/Safari-600.1.2.7/WebKitLibraries
Merge Patch for <rdar://problem/17923227>.
- 9:18 PM Changeset in webkit [172122] by
-
- 1 copy in tags/Safari-600.1.2.7
New Tag
- 8:27 PM Changeset in webkit [172121] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merge r172114
- 7:30 PM Changeset in webkit [172120] by
-
- 4 edits3 deletes in trunk
Unreviewed, rolling out r172099.
https://bugs.webkit.org/show_bug.cgi?id=135635
Needs a do-over. (Requested by kling on #webkit).
Reverted changeset:
"The JIT should cache property lookup misses."
https://bugs.webkit.org/show_bug.cgi?id=135578
http://trac.webkit.org/changeset/172099
- 7:19 PM Changeset in webkit [172119] by
-
- 3 edits4 adds1 delete in trunk
[CG] strokeRect does not honor lineJoin
https://bugs.webkit.org/show_bug.cgi?id=132948
Patch by Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au> on 2014-08-05
Reviewed by Darin Adler.
Source/WebCore:
Replaced use of CGContextStrokeRectWithWidth convenience function with explicit
call to CGContextAddRect and CGContextStrokePath. The convenience functions
CGContextStrokeRect and CGContextStrokeRectWithWidth fail to apply some attributes
(e.g. stroke join) of the graphics state in certain cases.
Test: fast/canvas/canvas-strokeRect-lineJoin.html
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::strokeRect):
LayoutTests:
Test behavior of canvas with stroke rect with line join
- fast/canvas/canvas-strokeRect-lineJoin-expected.txt: Added.
- fast/canvas/canvas-strokeRect-lineJoin.html: Added.
- fast/canvas/script-tests/canvas-strokeRect-lineJoin.js: Added.
- platform/mac-mountainlion/canvas/philip/tests/2d.strokeRect.zero.5-expected.txt: Added.
- platform/mac/fast/canvas/canvas-strokeRect-alpha-shadow-expected.txt: Removed.
- 6:39 PM Changeset in webkit [172118] by
-
- 3 edits in trunk/Tools
[iOS] Run ImageDiff in the sim bootstrap
https://bugs.webkit.org/show_bug.cgi?id=135624
Reviewed by David Kilzer.
- Scripts/webkitpy/port/image_diff.py:
(ImageDiffer.stop):
(IOSSimulatorImageDiffer):
(IOSSimulatorImageDiffer._start):
- Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort.diff_image):
- 6:38 PM Changeset in webkit [172117] by
-
- 2 edits3 adds in trunk/Tools
[iOS] run-webkit-tests: defaults for --runtime and --device-type flags
https://bugs.webkit.org/show_bug.cgi?id=135441
Reviewed by Tim Horton.
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args):
(_set_up_derived_options):
If using the ios-simulator platform and runtime or device-type
aren't defined, get the latest runtime from the active Xcode.app
and pick a default device type based on the desired architecture:
iPhone 5 for i386 and iPhone 5s for x86_64.
- Scripts/webkitpy/xcode/init.py: Added.
- Scripts/webkitpy/xcode/simulator.py: Added.
- 6:30 PM Changeset in webkit [172116] by
-
- 4 edits in trunk/LayoutTests
[GTK] [CSS Shapes] Layout test fast/shapes/shape-outside-floats/shape-outside-image-shape-margin.html fails
https://bugs.webkit.org/show_bug.cgi?id=135585
Reviewed by Zoltan Horvath.
The positioning was dependent on the font metrics of the <p> tag,
which differs between platforms. This fixes that, which should make
the test pass on all platforms.
- fast/shapes/shape-outside-floats/shape-outside-image-shape-margin-expected.html:
- fast/shapes/shape-outside-floats/shape-outside-image-shape-margin.html:
- platform/gtk/TestExpectations:
- 6:07 PM Changeset in webkit [172115] by
-
- 2 edits in trunk/Tools
[iOS] simctl can hang if run quickly after shutting down CoreSimulator services
https://bugs.webkit.org/show_bug.cgi?id=135626
Reviewed by Dan Bernstein.
- Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort.setup_test_run):
Remove call to simctl shutdown <device> - telling the simulator app to quit
will shut down all booted devices.
- 6:06 PM Changeset in webkit [172114] by
-
- 2 edits in trunk/Source/WebCore
[Win] Build attempts to use ANGLE when not building WebGL.
https://bugs.webkit.org/show_bug.cgi?id=135630
<rdar://problem/135630>
Unreviewed build fix.
- platform/graphics/win/GraphicsContext3DWin.cpp: Move #include of GraphicsContext3D.h
inside USE(3D_GRAPHICS) guard.
- 6:02 PM Changeset in webkit [172113] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix resource leak of unclosed file descriptor.
https://bugs.webkit.org/show_bug.cgi?id=135417
Patch by Przemyslaw Kuczynski <p.kuczynski@samsung.com> on 2014-08-05
Reviewed by Darin Adler.
When open returns zero, fd handle leaks. Checking (fd > 0) needs to be replaced
with (fd != -1).
- assembler/MacroAssemblerARM.cpp:
(JSC::isVFPPresent):
- 5:54 PM Changeset in webkit [172112] by
-
- 3 edits4 adds in trunk
[iOS WK2] Crash going back on a specific tumblr blog (under ScrollingStateTree::removeNodeAndAllDescendants)
https://bugs.webkit.org/show_bug.cgi?id=135629
<rdar://problem/17802174>
Reviewed by Tim Horton.
Source/WebCore:
In r170198 I added an "orphan scrolling nodes" code path that sets aside subtrees
of scrolling nodes into an m_orphanedSubframeNodes map, which keeps them alive until
they get reparented or destroyed. The nodes in that subtree remain in m_stateNodeMap,
which holds raw pointers to them.
However, ScrollingStateTree::commit() can clear m_orphanedSubframeNodes, which is
sometimes non-empty at this point. When that happened, we would destroy nodes which
were still referenced by m_stateNodeMap, with the result that a later query for the
same nodeID would hand back a pointer to a deleted object.
Fix by calling recursiveNodeWillBeRemoved() on nodes in the m_orphanedSubframeNodes
before clearing it, which removes them and all their descendants from the state node map.
Test: platform/mac-wk2/tiled-drawing/scrolling/frames/orphaned-subtree.html
- page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::clear):
(WebCore::ScrollingStateTree::commit):
LayoutTests:
Testcase with nesting of frames inside fixed inside frames, where a subframe disconnects
part of the scrolling tree.
- platform/mac-wk2/tiled-drawing/scrolling/frames/orphaned-subtree-expected.txt: Added.
- platform/mac-wk2/tiled-drawing/scrolling/frames/orphaned-subtree.html: Added.
- platform/mac-wk2/tiled-drawing/scrolling/frames/resources/leaf-frame.html: Added.
- platform/mac-wk2/tiled-drawing/scrolling/frames/resources/subframe-inside-fixed.html: Added.
- 4:44 PM Changeset in webkit [172111] by
-
- 14 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r172104. <rdar://problem/17202556>
- 4:40 PM Changeset in webkit [172110] by
-
- 8 edits in trunk/Source/WebCore
Add the ability to force text to render in white, not just black
https://bugs.webkit.org/show_bug.cgi?id=135625
Patch by Peyton Randolph <prandolph@apple.com> on 2014-08-05
Reviewed by Beth Dakin.
This patch introduces PaintBehaviorForceWhiteText, a complement to PaintBehaviorForceBlackText. If
a client specifies both PaintBehaviorForceWhiteText and PaintBehaviorForceBlackText, the text will be
painted black.
No new tests.
- rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint): Use the forced text color to paint the text if requested.
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Disable the text shadow if a text color has been forced.
- rendering/PaintInfo.h:
(WebCore::PaintInfo::forceTextColor):
Return true iff the client has requested to force a black or white text color.
(WebCore::PaintInfo::forceWhiteText):
Return true iff forcing white text has been requested.
(WebCore::PaintInfo::forcedTextColor):
Return the forced text color. Currently only white and black are supported.
- rendering/PaintPhase.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents): Remove the forceBlackText-related code as it is redundant.
(WebCore::RenderLayer::paintForegroundForFragments):
Remove forceBlackText parameter and infer the correct behavior from the given paint behavior.
- rendering/RenderLayer.h:
- rendering/TextPaintStyle.cpp:
(WebCore::computeTextPaintStyle): Use the forced text color if available.
(WebCore::computeTextSelectionPaintStyle): Use the forced text color if available.
- 4:39 PM Changeset in webkit [172109] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172083. <rdar://problem/17849206>
- 4:38 PM Changeset in webkit [172108] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172053. <rdar://problem/17876385>
- 4:36 PM Changeset in webkit [172107] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172039. <rdar://problem/17876385>
- 4:34 PM Changeset in webkit [172106] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r172034. <rdar://problem/17864079>
- 4:32 PM Changeset in webkit [172105] by
-
- 8 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r172031. <rdar://problem/17864079>
- 4:32 PM Changeset in webkit [172104] by
-
- 14 edits in trunk/Source/WebKit2
REGRESSION (r164337): Pages are sometimes cut off/oriented incorrectly after using WKThumbnailView
https://bugs.webkit.org/show_bug.cgi?id=135622
<rdar://problem/17202556>
Reviewed by Dan Bernstein.
In some cases (when the page changed scroll offset while thumbnailed),
when transitioning back to thumbnail scale = 1, we would get the math
wrong and end up with a non-identity sublayerTransform on the DrawingArea.
Luckily, none of this code is necessary anymore, as the only client
of WKThumbnailView only uses its snapshotting mode.
- Shared/ImageOptions.h:
Remove SnapshotOptionsRespectDrawingAreaTransform; DrawingArea no longer
has a rootLayerTransform().
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setThumbnailScale): Deleted.
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::scaledSnapshotWithOptions):
(WebKit::WebPage::snapshotAtSize):
(WebKit::WebPage::setThumbnailScale): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Remove setThumbnailScale and SnapshotOptionsRespectDrawingAreaTransform.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
Revert this to its state before r164337, as we no longer have "thumbnail scale".
- UIProcess/API/Cocoa/_WKThumbnailView.h:
- UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView initWithFrame:fromWKView:]):
(-[_WKThumbnailView _viewWasUnparented]):
(-[_WKThumbnailView _viewWasParented]):
(-[_WKThumbnailView _requestSnapshotIfNeeded]):
(-[_WKThumbnailView setScale:]):
Clean up code assuming _shouldApplyThumbnailScale = NO, _usesSnapshot = YES.
(-[_WKThumbnailView setUsesSnapshot:]):
(-[_WKThumbnailView usesSnapshot]):
Always return YES from usesSnapshot; we only support snapshotting WKThumbnailViews.
Ignore setUsesSnapshot.
- UIProcess/API/mac/WKView.mm:
(-[WKView _setThumbnailView:]):
(-[WKView _updateThumbnailViewLayer]):
Stop checking usesSnapshot; it's always true.
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setRootLayerTransform): Deleted.
- WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::rootLayerTransform): Deleted.
- WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::setRootLayerTransform): Deleted.
Remove rootLayerTransform() and setRootLayerTransform().
- 4:29 PM Changeset in webkit [172103] by
-
- 4 edits in branches/safari-600.1-branch/Source
Merged r172016. <rdar://problem/17896295>
- 4:27 PM Changeset in webkit [172102] by
-
- 2 edits in branches/safari-600.1-branch/WebKitLibraries
Merge Patch for <rdar://problem/17923227>.
- 4:15 PM Changeset in webkit [172101] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Versioning.
- 4:13 PM Changeset in webkit [172100] by
-
- 1 copy in tags/Safari-600.1.4.6
New Tag.
- 4:10 PM Changeset in webkit [172099] by
-
- 4 edits3 adds in trunk
The JIT should cache property lookup misses.
<https://webkit.org/b/135578>
Source/JavaScriptCore:
Add support for inline caching of object properties that don't exist.
Previously we'd fall back to the C++ slow-path whenever a property was missing.
It's implemented as a simple GetById-style stub that returns jsUndefined() as
long as the Structure chain check passes.
10x speedup on the included microbenchmark.
Reviewed by Geoffrey Garen.
- jit/Repatch.cpp:
(JSC::toString):
(JSC::kindFor):
(JSC::generateByIdStub):
(JSC::tryCacheGetByID):
(JSC::patchJumpToGetByIdStub):
- runtime/PropertySlot.h:
(JSC::PropertySlot::isUnset):
LayoutTests:
Add a JS microbenchmark that accesses an undefined property in a hot loop.
Reviewed by Geoffrey Garen.
- js/regress/script-tests/undefined-property-access.js: Added.
(foo):
- js/regress/undefined-property-access-expected.txt: Added.
- js/regress/undefined-property-access.html: Added.
- 4:06 PM Changeset in webkit [172098] by
-
- 4 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r172009.
https://bugs.webkit.org/show_bug.cgi?id=135627
"Commit landed on trunk instead of ftlopt branch." (Requested
by saamyjoon on #webkit).
Reverted changeset:
"Create a more generic way for VMEntryScope to notify those
interested that it will be destroyed"
https://bugs.webkit.org/show_bug.cgi?id=135358
http://trac.webkit.org/changeset/172009
- 4:00 PM Changeset in webkit [172097] by
-
- 2 edits in trunk/Tools
Remove an unused argument from BuildbotQueue.update()
https://bugs.webkit.org/show_bug.cgi?id=135623
Reviewed by Timothy Hatcher.
Also remaned a constant to better match what it means.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:
- 3:43 PM Changeset in webkit [172096] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172032. <rdar://problem/17856763>
- 3:41 PM Changeset in webkit [172095] by
-
- 5 edits in branches/safari-600.1-branch
Merged r172028. <rdar://problem/17072113>
- 3:32 PM Changeset in webkit [172094] by
-
- 19 edits in trunk/Source/WebInspectorUI
Web Inspector: support storing multiple timeline recordings in the manager
https://bugs.webkit.org/show_bug.cgi?id=132875
Reviewed by Timothy Hatcher.
This patch adds support for capturing multiple timeline recordings and switching
between them in the user interface using hierarchical path components.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Main.js:
(WebInspector.contentLoaded): Remove hard-coded priming of the timeline sidebar panel.
Instead, load the first recording in the timeline manager after the initial load.
(WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): Don't suppress
onselect events when selecting the tree element for a newly shown content view. This
allows the sidebar to sync the current content view and timeline tree element selection
with what is displayed in the content browser.
- UserInterface/Controllers/TimelineManager.js: Add two new events, RecordingCreated and
RecordingLoaded. A recording is considered active when any new records recieved will be
appended to that recording. The user interface is not necessarily viewing the active
recording.
(WebInspector.TimelineManager.delayedWork):
(WebInspector.TimelineManager): Keep a list of recordings, and load the first recording
asynchronously so that everyone can add an event listener for it.
(WebInspector.TimelineManager.prototype.get activeRecording):
(WebInspector.TimelineManager.prototype.get recordings):
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.stopCapturing): Use promises to make the iOS 7
fallback path better match the async semantics of the non-fallback path.
(WebInspector.TimelineManager.prototype.unloadRecording):
(WebInspector.TimelineManager.prototype._loadNewRecording): Stop capturing and unload
any existing recording before creating and loading a new recording.
(WebInspector.TimelineManager.prototype._startAutoCapturing): Create a new recording
rather than resetting the current recording.
- UserInterface/Models/NetworkTimeline.js:
(WebInspector.NetworkTimeline):
- UserInterface/Models/Timeline.js:
(WebInspector.Timeline):
(WebInspector.Timeline.prototype.get type): Each timeline stores its TimelineRecord.Type
so that other code can create type-specific views using the Timeline as a representedObject.
- UserInterface/Models/TimelineRecording.js: For each recording, add new state for a unique identifier,
display string, and an isWritable flag. Once a recording is unloaded, it becomes read-only.
(WebInspector.TimelineRecording.prototype.get displayName):
(WebInspector.TimelineRecording.prototype.get identifier):
(WebInspector.TimelineRecording.prototype.isWritable):
(WebInspector.TimelineRecording.prototype.unloaded):
(WebInspector.TimelineRecording.prototype.reset): A recording can only be reset if it is writable.
- UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setTimelineProfilingEnabled): Don't make redundant start/stop capturing calls.
- UserInterface/Views/LayoutTimelineOverviewGraph.js: Use a timeline as the representedObject for all
timeline-specific graphs and views. Otherwise, use the recording.
(WebInspector.LayoutTimelineOverviewGraph):
- UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView):
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):
- UserInterface/Views/NetworkTimelineOverviewGraph.js:
(WebInspector.NetworkTimelineOverviewGraph):
- UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
- UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._networkTimelineRecordAdded):
- UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph):
- UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView):
(WebInspector.ScriptTimelineView.prototype._treeElementSelected):
- UserInterface/Views/TimelineContentView.js: Iterate over timeline objects when setting up maps. Use timelines
as keys rather than their type identifiers.
(WebInspector.TimelineContentView.prototype.showTimelineViewForTimeline): Renamed from showTimelineView. This
function takes a Timeline instance rather than an identifier, since the conten view is specific to one recording.
(WebInspector.TimelineContentView.prototype.get selectionPathComponents): Match types against the currently
visible timeline's representedObject.
(WebInspector.TimelineContentView.prototype.get currentTimelineView): Used by the sidebar panel to sync timeline
tree element selections to TimelineView shown by the TimelineContentView.
(WebInspector.TimelineContentView.prototype.shown): Sync enablement of the "Clear Timelines" button to recording
read-only state.
(WebInspector.TimelineContentView.prototype.saveToCookie):
(WebInspector.TimelineContentView.prototype.restoreFromCookie): Added. Only handle saving/restoring the subview.
(WebInspector.TimelineContentView.prototype._pathComponentSelected):
(WebInspector.TimelineContentView.prototype._showTimelineView): Relax the early return so that timeline views
and content tree outlines are reattached when re-navigating to the same timeline view via back-forward entries.
(WebInspector.TimelineContentView.prototype.showTimelineView): Deleted.
- UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph):
- UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel): Keep a tree outline and tree element map for storing available recordings.
(WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
(WebInspector.TimelineSidebarPanel.prototype.shown): Added.
(WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView): Add a guard.
(WebInspector.TimelineSidebarPanel.prototype.get hasSelectedElement): Added. Selected recording tree elements
should be considered when deciding whether a represented object has been selected in the sidebar panel.
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
(WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForType): Renamed to explicit take a type identifier.
Delegate the actual showing of the timeline view to the onselect handler for the timelines tree outline.
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie): Fix a typo.
(WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie): Fix a typo.
(WebInspector.TimelineSidebarPanel.prototype._recordingsTreeElementSelected): Sync the currently displayed
recording object and content view, and sync the selected tree element to the displayed timeline subview.
(WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected): If this is a user action, show the timeline.
(WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange): Use classList.toggle().
(WebInspector.TimelineSidebarPanel.prototype._recordingCreated): Dynamically add new recordings to the interface.
(WebInspector.TimelineSidebarPanel.prototype._recordingLoaded): Automatically show recordings when they are loaded.
(WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked): Shift+click will force-create a new recording.
(WebInspector.TimelineSidebarPanel.prototype.initialize): Deleted.
- UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.get representedObject):
- 3:28 PM Changeset in webkit [172093] by
-
- 13 edits in trunk
More work on CMake.
https://bugs.webkit.org/show_bug.cgi?id=135620
.:
Reviewed by Laszlo Gombos.
- Source/cmake/OptionsMac.cmake:
Use UDIS86 by default on Mac.
Source/JavaScriptCore:
Reviewed by Laszlo Gombos.
- CMakeLists.txt:
Added missing source files.
- PlatformEfl.cmake:
- PlatformGTK.cmake:
Include glib directories and libraries to find glib.h in EventLoop.cpp.
- PlatformMac.cmake:
Moved STATICALLY_LINKED_WITH_WTF definition away from the common CMakeLists
because it should not be defined on Windows.
Added remote inspector source files.
Source/WebCore:
Reviewed by Reviewed by Laszlo Gombos.
- CMakeLists.txt:
Added missing idls.
- PlatformMac.cmake:
Added additional include directories and source files.
- css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
- css/makeSelectorPseudoElementsMap.py:
The Windows distribution of gperf doesn't like single quotes for its key-positions parameters.
- page/Chrome.h:
Compile fix.
- 3:27 PM Changeset in webkit [172092] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172026. <rdar://problem/17810998>
- 3:24 PM Changeset in webkit [172091] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172018. <rdar://problem/17837636>
- 3:18 PM Changeset in webkit [172090] by
-
- 4 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172013. <rdar://problem/17837636>
- 3:15 PM Changeset in webkit [172089] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r172083. <rdar://problem/17849206>
- 3:12 PM Changeset in webkit [172088] by
-
- 4 edits in branches/safari-600.1.4-branch/Source
Roll out r172035. <rdar://problem/17869353>
- 2:56 PM Changeset in webkit [172087] by
-
- 7 edits in trunk/Source
Web Inspector: ReplayManager shouldn't assume replay status when the inspector is opened
https://bugs.webkit.org/show_bug.cgi?id=135212
Reviewed by Timothy Hatcher.
Source/WebCore:
The frontend should be able to introspect the session and segment state machines,
currently loaded segment and session identifiers, and replay position.
- inspector/InspectorReplayAgent.cpp:
(WebCore::buildInspectorObjectForSessionState): Added.
(WebCore::buildInspectorObjectForSegmentState): Added.
(WebCore::InspectorReplayAgent::currentReplayState): Added.
- inspector/InspectorReplayAgent.h:
- inspector/protocol/Replay.json: Add currentReplayState query command.
- replay/ReplayController.h: Add some accessors.
Source/WebInspectorUI:
The inspector could be closed and reopened at any point during capturing or replaying.
ReplayManager should query the current state on initialization rather than assuming
that the replay controller is still in its initial state.
ReplayManager's initialization code requires querying the backend for the current replay
state. This could race with replay protocol events that mutate the manager's state before
it is fully initialized, leading to undefined behavior.
To mitigate this, all protocol event handlers (called by ReplayObserver) are wrapped
with a guard that enqueues the callback if initialization is not yet complete. This
queue is implemented via multiple then-chaining of a shared 'initialization' promise
which resolves when initialization completes.
- UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.then):
(WebInspector.ReplayManager.catch):
(WebInspector.ReplayManager): Rewrite the initialization code to first query the replay
state, set the initialization flag to true, and then request and update session records.
The sessions must be loaded after querying initial state because ReplayManager.sessionCreated
requires replay state to be initialized.
(WebInspector.ReplayManager.prototype.get sessionState):
(WebInspector.ReplayManager.prototype.get segmentState):
(WebInspector.ReplayManager.prototype.get activeSessionIdentifier):
(WebInspector.ReplayManager.prototype.get activeSegmentIdentifier):
(WebInspector.ReplayManager.prototype.get playbackSpeed):
(WebInspector.ReplayManager.prototype.set playbackSpeed):
(WebInspector.ReplayManager.prototype.get currentPosition): Add assertions to catch uses of
manager state before the manager is fully initialized.
(WebInspector.ReplayManager.prototype.waitUntilInitialized): Added. It returns a shared promise
that is fulfilled when initialization is complete.
(WebInspector.ReplayManager.prototype.captureStarted):
(WebInspector.ReplayManager.prototype.captureStopped):
(WebInspector.ReplayManager.prototype.playbackStarted):
(WebInspector.ReplayManager.prototype.playbackHitPosition):
(WebInspector.ReplayManager.prototype.playbackPaused):
(WebInspector.ReplayManager.prototype.playbackFinished):
(WebInspector.ReplayManager.prototype.sessionModified):
(WebInspector.ReplayManager.prototype.sessionLoaded):
(WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
(WebInspector.ReplayManager.prototype.segmentCompleted):
(WebInspector.ReplayManager.prototype.segmentRemoved.then):
(WebInspector.ReplayManager.prototype.segmentRemoved):
(WebInspector.ReplayManager.prototype.segmentLoaded): Add initialization guards.
- 2:41 PM Changeset in webkit [172086] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172006. <rdar://problem/17856494>
- 2:39 PM Changeset in webkit [172085] by
-
- 12 edits in branches/safari-600.1-branch/Source
Merged r171973. <rdar://problem/17834694>
- 2:37 PM Changeset in webkit [172084] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171959. <rdar://problem/17671574>
- 2:33 PM Changeset in webkit [172083] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Media controls layout incorrectly in RTL content
https://bugs.webkit.org/show_bug.cgi?id=135621
<rdar://problem/17849206>
Reviewed by Eric Carlson.
Media controls should always layout in LTR mode, even when the
page content is RTL. There already was a rule to do this on
non-iOS systems, but it wasn't getting included for iOS.
In this case I put the rule on the composited parent of the
controls in order to maintain the padding of the control panel.
This should still leave the captions unaffected.
- Modules/mediacontrols/mediaControlsiOS.css:
(video::-webkit-media-controls-panel-composited-parent): Add direction: ltr.
- 2:33 PM Changeset in webkit [172082] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171952. <rdar://problem/17850323>
- 2:31 PM Changeset in webkit [172081] by
-
- 7 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171951. <rdar://problem/17850323>
- 2:28 PM Changeset in webkit [172080] by
-
- 7 edits in trunk/Source
Web Replay: rename protocol methods for getting replay session/segment data
https://bugs.webkit.org/show_bug.cgi?id=135618
Reviewed by Timothy Hatcher.
Source/WebCore:
- inspector/InspectorReplayAgent.cpp:
(WebCore::InspectorReplayAgent::getSessionData):
(WebCore::InspectorReplayAgent::getSegmentData):
(WebCore::InspectorReplayAgent::getSerializedSession): Deleted.
(WebCore::InspectorReplayAgent::getSerializedSegment): Deleted.
- inspector/InspectorReplayAgent.h:
- inspector/protocol/Replay.json:
Source/WebInspectorUI:
- UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.prototype.getSession.get var):
(WebInspector.ReplayManager.prototype.getSegment.get var):
- UserInterface/Models/ReplaySession.js:
(WebInspector.ReplaySession.prototype.segmentsChanged):
- 2:21 PM Changeset in webkit [172079] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171949. <rdar://problem/17474290>
- 2:19 PM Changeset in webkit [172078] by
-
- 5 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171946. <rdar://problem/17474290>
- 2:14 PM Changeset in webkit [172077] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r172047. <rdar://problem/17879156>
- 2:12 PM Changeset in webkit [172076] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171944. <rdar://problem/17879156>
- 2:10 PM Changeset in webkit [172075] by
-
- 9 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171943. <rdar://problem/17869279>
- 2:08 PM Changeset in webkit [172074] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171940. <rdar://problem/17886998>
- 2:06 PM Changeset in webkit [172073] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171937. <rdar://problem/17876699>
- 2:05 PM Changeset in webkit [172072] by
-
- 6 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171928. <rdar://problem/17862013>
- 2:02 PM Changeset in webkit [172071] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171920. <rdar://problem/17628212>
- 2:00 PM Changeset in webkit [172070] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171908. <rdar://problem/17872655>
- 1:58 PM Changeset in webkit [172069] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171895. <rdar://problem/17835345>
- 1:56 PM Changeset in webkit [172068] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171894. <rdar://problem/17874096>
- 1:54 PM Changeset in webkit [172067] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171932. <rdar://problem/17850323>
- 1:52 PM Changeset in webkit [172066] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171905. <rdar://problem/17850323>
- 1:50 PM Changeset in webkit [172065] by
-
- 1 edit1 copy in branches/safari-600.1-branch/LayoutTests
Merged r171892. <rdar://problem/17850323>
- 1:47 PM Changeset in webkit [172064] by
-
- 15 edits5 copies5 deletes in branches/safari-600.1-branch
Merged r171891. <rdar://problem/17850323>
- 1:43 PM Changeset in webkit [172063] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171889. <rdar://problem/17614632>
- 1:37 PM Changeset in webkit [172062] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171887. <rdar://problem/17864139>
- 1:34 PM Changeset in webkit [172061] by
-
- 15 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171885. <rdar://problem/17865310>
- 1:31 PM Changeset in webkit [172060] by
-
- 4 edits2 copies in branches/safari-600.1-branch
Merged r171882. <rdar://problem/17802531>
- 1:29 PM Changeset in webkit [172059] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r172053. <rdar://problem/17876385>
- 1:25 PM Changeset in webkit [172058] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171881. <rdar://problem/17874168>
- 1:23 PM Changeset in webkit [172057] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171869. <rdar://problem/17865147>
- 1:22 PM Changeset in webkit [172056] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebKit2
Merge r172034. <rdar://problem/17864079>
- 1:20 PM Changeset in webkit [172055] by
-
- 8 edits in branches/safari-600.1.4-branch/Source/WebKit2
Merge r172031. <rdar://problem/17864079>
- 1:19 PM Changeset in webkit [172054] by
-
- 2 edits in branches/safari-600.1-branch/Source
Merged r171866. <rdar://problem/17872676>
- 1:15 PM Changeset in webkit [172053] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION: Extremely flashy scrolling while a page is still loading (because of flush throttling)
https://bugs.webkit.org/show_bug.cgi?id=135603
<rdar://problem/17876385>
This hit ASSERT(frame().isMainFrame()) in FrameView::updateLayerFlushThrottling
running scrollbars/scrollbar-iframe-click-does-not-blur-content.html and a few other tests.
- page/FrameView.cpp:
(WebCore::FrameView::setWasScrolledByUser): Only invoke updateLayerFlushThrottling for the main frame.
- 1:07 PM Changeset in webkit [172052] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r172039. <rdar://problem/17876385>
- 1:07 PM Changeset in webkit [172051] by
-
- 6 edits in branches/safari-600.1-branch/Source
Merged r171866. <rdar://problem/17872082>
- 1:01 PM Changeset in webkit [172050] by
-
- 4 edits in branches/safari-600.1.4-branch/Source
Merge r172016. <rdar://problem/17896295>
- 12:55 PM Changeset in webkit [172049] by
-
- 4 edits in branches/safari-600.1.4-branch/Source
Merge r172035. <rdar://problem/17869353>
- 12:53 PM Changeset in webkit [172048] by
-
- 8 edits in trunk/Source
Rename MAC_LONG_PRESS feature flag to LONG_MOUSE_PRESS.
https://bugs.webkit.org/show_bug.cgi?id=135276
Patch by Peyton Randolph <prandolph@apple.com> on 2014-08-05
Reviewed by Beth Dakin.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
No new tests. Just a compiler flag.
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
- 12:36 PM Changeset in webkit [172047] by
-
- 2 edits in trunk/Source/WebCore
[Media iOS] Ensure there is a nice default fallback for missing wireless target names
https://bugs.webkit.org/show_bug.cgi?id=135488
<rdar://problem/17879156>
Reviewed by Antoine Quint.
Antoine found me on iMessage to tell me I'm an idiot and that I've
forgotten how to write JavaScript. Embarrassingly, this code is what
I originally had, but then second-guessed myself.
- Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.updateWirelessPlaybackStatus): No need for the local
variable or conditional statement, since null and "" both evaluate as false.
- 12:35 PM Changeset in webkit [172046] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171851. <rdar://problem/17719026>
- 12:32 PM Changeset in webkit [172045] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171292. <rdar://problem/17843592>
- 12:25 PM Changeset in webkit [172044] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: cannot navigate between multiple applicable dashboards
https://bugs.webkit.org/show_bug.cgi?id=135130
Reviewed by Timothy Hatcher.
Add navigation arrows between dashboards when multiple dashboards are applicable.
For example, the user should be able to go back to the default dashboard while paused
at a breakpoint. Dashboards form a stack based on when they are first introduced.
- UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard): Increase padding-right a bit to make room for arrows.
(.toolbar .dashboard:not(.visible)): Fix a bug where higher dashboards in the dashboard stack
can shine through when animating between two lower dashboards that have transparent background.
This ensures that at most two dashboards (namely, the ones being animated) are displayed.
(.dashboard-container .advance-arrow): Main style class for navigation arrows.
(.dashboard-container .advance-arrow:hover):
(.dashboard-container .advance-arrow:active):
(.dashboard-container .advance-arrow.inactive):
(.toolbar.label-only .dashboard-container .advance-arrow): Make arrows slightly smaller when
the dashboards get shorter.
(.dashboard-container .advance-arrow.advance-forward):
(.dashboard-container .advance-arrow.advance-backward):
- UserInterface/Views/DashboardContainerView.js:
(WebInspector.DashboardContainerView): Arrow styles are updated when a dashboard is shown,
hidden, or closed. When moving away, we dismiss (i.e., set zero opacity) arrows at animation
start. When the animation finishes, redisplay arrows that are applicable for the new dashboard.
(WebInspector.DashboardContainerView.prototype._advanceForwardArrowClicked):
(WebInspector.DashboardContainerView.prototype._advanceBackwardArrowClicked):
(WebInspector.DashboardContainerView.prototype._dismissAdvanceArrows):
(WebInspector.DashboardContainerView.prototype._updateAdvanceArrowVisibility):
(WebInspector.DashboardContainerView.prototype._showDashboardAtIndex): There was a bug here
where it would unconditionally use the same animation direction when showing a dashboard, but
it was hard to spot without arrows that must correlate with the animation direction.
(WebInspector.DashboardContainerView.prototype.animationEnded):
(WebInspector.DashboardContainerView.prototype._showDashboardView):
(WebInspector.DashboardContainerView.prototype._hideDashboardView):
(WebInspector.DashboardContainerView.prototype._closeDashboardView):
- 12:16 PM Changeset in webkit [172043] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171279. <rdar://problem/17718984>
- 12:15 PM Changeset in webkit [172042] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171259. <rdar://problem/17718984>
- 12:13 PM Changeset in webkit [172041] by
-
- 2 edits1 add in branches/safari-600.1-branch/Source/JavaScriptCore
Merge patch for <rdar://problem/17887398>
- 11:48 AM Changeset in webkit [172040] by
-
- 1 copy in branches/safari-537.78-branch/LayoutTests/fast/js/resources/plugin.js
Fix for layout tests
- 11:34 AM Changeset in webkit [172039] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION: Extremely flashy scrolling while a page is still loading (because of flush throttling)
https://bugs.webkit.org/show_bug.cgi?id=135603
<rdar://problem/17876385>
Reviewed by Andreas Kling.
- page/FrameView.cpp:
(WebCore::determineLayerFlushThrottleState):
Disable throttling after user has scrolled the page.
This is consistent with the speculative tiling. It also gets enabled on first scroll.
(WebCore::FrameView::setWasScrolledByUser):
- 11:29 AM Changeset in webkit [172038] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: shown() called on a content view when stepping over an instruction in the debugger
https://bugs.webkit.org/show_bug.cgi?id=135311
Patch by Saam Barati <sbarati@apple.com> on 2014-08-05
Reviewed by Timothy Hatcher.
ContentViewContainer should not repeatedly call ContentView.prototype.shown
on ContentViews that are already visible. ContentViewContainer now passes
a flag to BackForwardEntry.prototype.prepareToShow indicating whether it should
call the shown function on the ContentView it is about to display.
ContentViewContainer.prototype.showBackForwardEntryForIndex passes in this
flag based on its ContentView being visible.
- UserInterface/Models/BackForwardEntry.js:
(WebInspector.BackForwardEntry.prototype.prepareToShow):
- UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showBackForwardEntryForIndex):
(WebInspector.ContentViewContainer.prototype.replaceContentView):
(WebInspector.ContentViewContainer.prototype.closeAllContentViewsOfPrototype):
(WebInspector.ContentViewContainer.prototype.shown):
(WebInspector.ContentViewContainer.prototype._showEntry):
- 11:27 AM Changeset in webkit [172037] by
-
- 1 edit in branches/safari-537.78-branch/LayoutTests/fast/viewport/viewport-warnings-7.html
Update test for branch.
- 11:14 AM Changeset in webkit [172036] by
-
- 3 edits2 adds in trunk
ASSERTION FAILED: name[0] == '@' && length >= 2 in WebCore::CSSParser::detectAtToken
https://bugs.webkit.org/show_bug.cgi?id=134632
Source/WebCore:
At-rules must consist of at least two characters: the '@' symbol followed by
an identifier name. The failure of this condition makes the assertion fail.
The length of an at-rule is currently calculated by pointer arithmetic on
the 'result' pointer, which is expected to be set to the end of the at-rule
identifier by the WebCore::*CSSTokenizer::parseIdentifier method.
If the at-rule token is a sequence of 8-bit-only characters then
'result' will point correctly at the end of the identifier. However, if
the at-rule contains a 16-bit Unicode escape then 'result' will not be
updated correctly anymore, hence it cannot be used for length calculation.
The patch makes the parseIdentifier bump the result pointer even in the 16-bit slow case.
Patch by Renata Hodovan, backported from Chromium: https://codereview.chromium.org/241053002
Patch by Martin Hodovan <mhodovan.u-szeged@partner.samsung.com> on 2014-08-05
Reviewed by Darin Adler.
Test: fast/css/atrule-with-escape-character-crash.html
- css/CSSParser.cpp:
(WebCore::CSSParser::realLex):
LayoutTests:
Added test demonstrates that at-rules containing 16-bit Unicode characters
can be handled properly.
Patch by Martin Hodovan <mhodovan.u-szeged@partner.samsung.com> on 2014-08-05
Reviewed by Darin Adler.
- fast/css/atrule-with-escape-character-crash-expected.txt: Added.
- fast/css/atrule-with-escape-character-crash.html: Added.
- 10:49 AM Changeset in webkit [172035] by
-
- 4 edits in trunk/Source
[iOS] The raw bytes of an iWork document's PDF preview are displayed rather than the PDF itself
https://bugs.webkit.org/show_bug.cgi?id=135596
Reviewed by David Kilzer.
Source/WebCore:
Some iWork documents contain pre-rendered PDF previews. When WebKit asks QuickLook to convert such a document,
QuickLook will return this PDF as the converted response. However, until WebKit has sent the document's data to
QuickLook, -[QLPreviewConverter previewResponse] will misleadingly tell WebKit that the converted resource will
be of type 'text/html'. This leads WebKit to render the PDF preview as HTML.
Instead of querying QLPreviewConverter for the previewResponse before we've sent it any data, postpone calling
ResourceLoader::didReceiveResponse until we've begun to receive data via the QLPreviewConverter delegate. At
that point -[QLPreviewConverter previewResponse] will have the correct MIME type and we can call didReceiveResponse.
No new tests. QuickLook is not testable from WebKit.
- platform/network/ios/QuickLook.mm:
(-[WebResourceLoaderQuickLookDelegate connection:didReceiveDataArray:]): If didReceiveResponse has yet to be
called, call it now with QuickLookHandle::nsResponse().
(-[WebResourceLoaderQuickLookDelegate connection:didReceiveData:lengthReceived:]): Ditto.
(-[WebResourceLoaderQuickLookDelegate connection:didFailWithError:]): Ditto.
(-[WebResourceLoaderQuickLookDelegate connectionDidFinishLoading:]): Assert that didReceiveResponse has been called.
(-[WebResourceLoaderQuickLookDelegate clearHandle]): Cleared the raw pointer to QuickLookHandle.
(WebCore::QuickLookHandle::create): Pointed WebResourceLoaderQuickLookDelegate's quickLookHandle property to
the newly created QuickLookHandle.
Source/WebKit2:
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): If the response will be handled by
QuickLook, do not call ResourceLoader::didReceiveResponse. It will be called later by
WebResourceLoaderQuickLookDelegate once converted data is received.
- 10:03 AM Changeset in webkit [172034] by
-
- 2 edits in trunk/Source/WebKit2
Build fix.
- UIProcess/WebContext.h:
- 9:46 AM Changeset in webkit [172033] by
-
- 3 edits2 adds in trunk
Fixing calc() parameter parsing in cubic-bezier functions
https://bugs.webkit.org/show_bug.cgi?id=135605
Patch by Renata Hodovan <rhodovan.u-szeged@partner.samsung.com> on 2014-08-05
Reviewed by Andreas Kling.
Source/WebCore:
Before this patch, calc values in cubic-bezier functions weren't being read correctly
since they were handled as simple floats.
This is a backport of my fix in Blink: https://codereview.chromium.org/369313002/
Test: css3/calc/cubic-bezier-with-multiple-calcs-crash.html.html
- css/CSSParser.cpp:
(WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
LayoutTests:
- css3/calc/cubic-bezier-with-multiple-calcs-crash.html-expected.txt: Added.
- css3/calc/cubic-bezier-with-multiple-calcs-crash.html.html: Added.
- 9:42 AM Changeset in webkit [172032] by
-
- 3 edits in trunk/Source/WebCore
[MSE] Seeking occasionally causes many frames to be displayed in "fast forward" mode
https://bugs.webkit.org/show_bug.cgi?id=135422
Reviewed by Eric Carlson.
Three related fixes:
In reenqueueMediaForTime(), update TrackBuffer.lastEnqueuedPresentationTime when we flush
samples, so that the next time samples are re-enqueued, the starting point for re-enqueueing
is correct.
In sourceBufferPrivateDidReceiveSample(), do not add samples to the decode queue
if they are before the current media time.
When a seek is pending, but samples for the new time is not yet present in the SourceBuffer,
the SourceBufferPrivate may signal that it's ready for new samples through the
sourceBufferPrivateDidBecomeReadyForMoreSamples() method. In this situation, we should not
continue to provideMediaData(), as that will append samples from the prior-to-seeking media
timeline. Since the timeline may have moved forward due to the seek, a decoder may decide to
display those frames as quickly as possible (the "fast forward" behavior) in order to catch
up to the new current time.
If a re-enqueue is pending, don't provide media data in response to being notified that the
SourceBufferPrivate is ready for more samples. Wait until samples for the new current time
are appended.
Also, don't provide media data if we are waiting for a seek to complete.
- Modules/mediasource/MediaSource.h:
(WebCore::MediaSource::isSeeking): Convenience method.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
(WebCore::SourceBuffer::reenqueueMediaForTime):
- 9:41 AM Changeset in webkit [172031] by
-
- 8 edits in trunk/Source/WebKit2
SSO expects to be able to walk parent application's bundle
https://bugs.webkit.org/show_bug.cgi?id=135581
<rdar://problem/17864079>
Reviewed by Alexey Proskuryakov.
SSO expects to be able to walk the parent application's
bundle looking for Info plists. To allow this to actually
work we provide an extension from the ui process that
covers the bundle directory, and then in the profile
restrict access to the ability to read directories and
files named Info.plist.
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
- Shared/Network/NetworkProcessCreationParameters.h:
- UIProcess/WebContext.cpp:
(WebKit::WebContext::ensureNetworkProcess):
(WebKit::WebContext::parentBundleDirectory):
- UIProcess/WebContext.h:
- UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::parentBundleDirectory):
- 9:38 AM Changeset in webkit [172030] by
-
- 2 edits in trunk/Tools
[gtk] Include llvm-dev(el) package to satisfy mesa build configuration
https://bugs.webkit.org/show_bug.cgi?id=135555
Reviewed by Philippe Normand.
Initial setup of gtk on linux requires this package to be installed.
This is required during the build configuration of mesa through jhbuild.
- gtk/install-dependencies:
- 8:56 AM Performance Tests edited by
- Rename PerfTestRunner.runPerSecond to … (diff)
- 8:16 AM Changeset in webkit [172029] by
-
- 3 edits in trunk/Tools
Fix the commit-log-editor after r167243 and add more unit tests
https://bugs.webkit.org/show_bug.cgi?id=131727
Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-08-05
Reviewed by Csaba Osztrogonác.
- Scripts/commit-log-editor:
(createCommitMessage):
(removeLongestCommonPrefixEndingInNewline):
- Scripts/webkitpy/common/checkout/checkout_unittest.py:
(CommitMessageForThisCommitTest):
(CommitMessageForThisCommitTest.mock_changelog):
(CommitMessageForThisCommitTest.mock_checkout_for_test):
(CommitMessageForThisCommitTest.test_commit_message_for_unreviewed_changelogs_with_different_messages):
(test_commit_message_for_one_reviewed_changelog):
(test_commit_message_for_changelogs_with_same_messages):
(test_commit_message_for_changelogs_with_different_messages):
(test_commit_message_for_one_rollout_changelog):
(test_commit_message_for_rollout_changelogs_with_different_directories):
(setUp): Deleted.
(test_commit_message_for_this_commit): Deleted.
- 8:15 AM Changeset in webkit [172028] by
-
- 5 edits in trunk
AX: Select text activity should return replaced text instead of previously selected text
https://bugs.webkit.org/show_bug.cgi?id=135595
Reviewed by Mario Sanchez Prada.
Source/WebCore:
When the select activity API is used to replace text, the replacement string should be returned instead of the old selected text.
Updated existing test: platform/mac/accessibility/select-text.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectText):
LayoutTests:
- platform/mac/accessibility/select-text-expected.txt:
- platform/mac/accessibility/select-text.html:
Aug 4, 2014:
- 10:09 PM Changeset in webkit [172027] by
-
- 5 edits in trunk
AX: Select activity behavior does not work when an existing range is already selected
https://bugs.webkit.org/show_bug.cgi?id=135579
Reviewed by Mario Sanchez Prada.
Source/WebCore:
If you have an existing range selected, and try to apply a select and replace operation, like capitalize,
searching for that range will fail because it skips the currently selected range.
For these cases, it seems the best way is to start the search from the start position, rather than relying on the
entire range.
Updated existing test: platform/mac/accessibility/select-text.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectText):
LayoutTests:
- platform/mac/accessibility/select-text-expected.txt:
- platform/mac/accessibility/select-text.html:
- 8:58 PM Changeset in webkit [172026] by
-
- 2 edits in trunk/Source/WebCore
[MSE][Mac] Seeking past buffered range will not resume playback when seek completes.
https://bugs.webkit.org/show_bug.cgi?id=135591
Reviewed by Eric Carlson.
If a seek is delayed due to seeking into an unbuffered area, playback will not be restarted
at that point. Instead, playback must resume when enough media data has been added, and
the MediaSource indicates the seek should complete.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted):
- 8:57 PM Changeset in webkit [172025] by
-
- 2 edits in trunk/Source/WebCore
[MSE] Videos will report a stall when within 1 frame-duration before the end of a movie.
https://bugs.webkit.org/show_bug.cgi?id=135586
Reviewed by Eric Carlson.
Under certain circumstances, videos which are within 1/24 seconds before the end of a media stream when
monitorSourceBuffers() is called will fail the hasFutureTime() check. This is because hasFutureTime()
checks whether enough media is buffered to play back at least some time in the future, but when the
current time is close to the duration, not enough data is buffered to satisfy that check.
Add some logic which will break out early when the SourceBuffer has buffered up to and including the
media's duration, and return that the buffer indeed hasFutureTime() available.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::hasFutureTime):
- 8:40 PM Changeset in webkit [172024] by
-
- 5 edits2 adds in trunk
Simplify the StyleInvalidation mode of rule collection
https://bugs.webkit.org/show_bug.cgi?id=135521
Reviewed by Antti Koivisto.
Source/WebCore:
There are two branches where StyleInvalidation code is removed:
-Pseudo elements for shadow dom elements.
-Pseudo elements without dom tree counterpart.
The first can never be hit because StyleInvalidationAnalysis does a complete invalidation
when there is any shadow dom styling involved in the stylesheets.
Even if that branch was hit, not failing on custom pseudo elements would be equivalent
to ignoring those pseudo elements from the Selector. By doing so, we would match elements
that do not have shadow dom and invalidate pretty much everything.
Unlike pseudo elements without real elements, shadow dom elements are not matched separately with a different
context, thus we could generalize StyleInvalidationAnalysis to handle this case.
The second case handle pseudo elements that do not have a real element. That case no longer need to be handled
separately at the filter time, it has become a special case of SelectorChecker::match() after everything else
has matched.
The only condition for this to work is that the Context's pseudoId must be NOPSEUDO. This is the case
in practice since matching specific pseudo types would be a waste of time. ElementRuleCollector::collectMatchingRules()
has a new assertion to enforce that.
Test: fast/css/stylesheet-change-updates-pseudo-elements.html
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRules):
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):
LayoutTests:
This test by:
1) Forcing the recalc of the user-agent stylesheet.
2) Wait for the page to finish loading.
3) Add a style changing only pseudo elements without corresponding shadow element.
- fast/css/stylesheet-change-updates-pseudo-elements-expected.html: Added.
- fast/css/stylesheet-change-updates-pseudo-elements.html: Added.
- 8:25 PM Changeset in webkit [172023] by
-
- 15 edits in trunk
Add a flag for the CSS Selectors level 4 implementation
https://bugs.webkit.org/show_bug.cgi?id=135535
Reviewed by Andreas Kling.
.:
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/WebKitFeatures.cmake:
- Source/cmakeconfig.h.cmake:
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
WebKitLibraries:
- win/tools/vsprops/FeatureDefines.props:
- 7:51 PM Changeset in webkit [172022] by
-
- 2 edits in trunk/Tools
[GTK] run-launcher --gtk is broken
https://bugs.webkit.org/show_bug.cgi?id=135571
Patch by Michael Catanzaro <Michael Catanzaro> on 2014-08-04
Reviewed by Martin Robinson.
- Scripts/webkitdirs.pm:
(builtDylibPathForName): Search for libwebkit2gtk-4.0
- 7:47 PM Changeset in webkit [172021] by
-
- 3 edits in trunk/Source/WebCore
AX: add AccessibilityObject::computedLabelString() for WebAXI
https://bugs.webkit.org/show_bug.cgi?id=129939
Reviewed by Mario Sanchez Prada.
Provide a method that the WebKit Inspector can call in order to
display an accessible name for an AX node.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::accessibilityComputedLabel):
- accessibility/AccessibilityObject.h:
- 7:01 PM Changeset in webkit [172020] by
-
- 5 edits in tags/Safari-600.1.2.6/Source
Versioning.
- 6:54 PM Changeset in webkit [172019] by
-
- 6 edits in tags/Safari-600.1.2.6
Apply custom patch from https://bugs.webkit.org/show_bug.cgi?id=135543
- 6:39 PM Changeset in webkit [172018] by
-
- 2 edits in trunk/Source/WebCore
Lots of crashes in WebKit1 after r172013.
https://bugs.webkit.org/show_bug.cgi?id=135582
<rdar://problem/17837636>
Reviewed by Enrica Casucci.
- editing/SelectionRectGatherer.cpp:
(WebCore::SelectionRectGatherer::addRect):
(WebCore::SelectionRectGatherer::addGapRects):
Don't try to do local-to-absolute coordinate conversion if we don't have
a repaint container, which happens a lot in WebKit1.
- 6:31 PM WebKitGTK/KeepingTheTreeGreen edited by
- (diff)
- 6:28 PM WebKitGTK/KeepingTheTreeGreen edited by
- (diff)
- 6:22 PM Changeset in webkit [172017] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed GTK gardening.
- platform/gtk/TestExpectations: Report and mark new failures after 172008 and r172010.
Remove expectations for test that now pass after r171964 (revert of r171957).
Update expectations for new flaky tests.
- 6:04 PM Changeset in webkit [172016] by
-
- 4 edits in trunk/Source
Check for null frame when processing geolocation authorization request
https://bugs.webkit.org/show_bug.cgi?id=135577
<rdar://problem/17896295>
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-08-04
Reviewed by Geoffrey Garen.
Source/WebKit/mac:
- WebCoreSupport/WebGeolocationClient.mm:
(WebGeolocationClient::requestPermission):
Source/WebKit2:
I could have put the null check in GeolocationController instead of the WebKit layer,
but that would be a little weird as GeolocationController knows nothing about how
the WebKit layer decides what to do with requests.
- WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
(WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
- 5:58 PM Changeset in webkit [172015] by
-
- 1 copy in tags/Safari-600.1.2.6
New Tag.
- 5:30 PM Changeset in webkit [172014] by
-
- 8 edits3 adds in trunk
Progress towards CMake on Mac.
https://bugs.webkit.org/show_bug.cgi?id=135528
Reviewed by Gyuyoung Kim.
.:
- Source/cmake/OptionsMac.cmake:
Made options list based on FeatureDefines.xcconfig files.
Source/JavaScriptCore:
- CMakeLists.txt:
Include necessary directories and copy all necessary forwarding headers.
Only compile UDis86Disassembler.cpp if we're using UDIS86.
- PlatformMac.cmake: Added.
- tools/CodeProfiling.cpp:
Compile fix. Include sys/time.h on darwin, too.
Source/WebCore:
- PlatformMac.cmake: Added.
Source/WTF:
- wtf/CMakeLists.txt:
Include text directory.
- wtf/PlatformMac.cmake: Added.
- 5:28 PM Changeset in webkit [172013] by
-
- 4 edits in trunk/Source/WebCore
Selection services menu dropdown is in the wrong place when selecting some text on Yelp
https://bugs.webkit.org/show_bug.cgi?id=135582
<rdar://problem/17837636>
Reviewed by Simon Fraser.
- editing/SelectionRectGatherer.cpp:
(WebCore::SelectionRectGatherer::addRect):
(WebCore::SelectionRectGatherer::addGapRects):
(WebCore::SelectionRectGatherer::addRects): Deleted.
Rename addRects to addGapRects for clarity.
Map rects and gapRects to absolute RenderView coordinates so that
they are in a form WebKit2 can use. Previously they were sometimes
relative to a different repaint container, but that information was
lost when moving through SelectionRectGatherer.
Ideally we would keep selection rects as full quads instead of rects
for more of their life, but that problem is much deeper than just SelectionRectGatherer.
- editing/SelectionRectGatherer.h:
Add a comment clarifying the coordinate space of the stored selection rects.
- rendering/RenderView.cpp:
(WebCore::RenderView::applySubtreeSelection):
Rename addRects to addGapRects for clarity.
- 4:06 PM Changeset in webkit [172012] by
-
- 2 edits in trunk/Tools
lldb_webkit.py throws exception when generating summary of null StringImpl
https://bugs.webkit.org/show_bug.cgi?id=129448
Patch by Matt Baker <Matt Baker> on 2014-08-04
Reviewed by Jer Noble.
Added checks for null StringImpl and 0 byte ReadMemory calls.
- lldb/lldb_webkit.py:
(WTFStringImpl_SummaryProvider):
(ustring_to_string):
(lstring_to_string):
(WTFStringImplProvider.to_string):
(WTFStringImplProvider.is_initialized):
- 3:25 PM Changeset in webkit [172011] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Versioning.
- 3:17 PM Changeset in webkit [172010] by
-
- 3 edits3 adds in trunk
[CSS Shapes] shape-margin not respected when it extends beyond an explicitly set margin
https://bugs.webkit.org/show_bug.cgi?id=135308
Reviewed by Dean Jackson.
Source/WebCore:
When a zero height line is supplied and the image shape extends into
the margin box (only possible when a shape-margin is supplied), then
only an empty interval was being returned. This patch makes it
properly return the interval for the line in question.
Test: fast/shapes/shape-outside-floats/shape-outside-image-shape-margin.html
- rendering/shapes/RasterShape.cpp:
(WebCore::RasterShape::getExcludedIntervals): Handle the zero height
line case.
LayoutTests:
Test case based on the one supplied by Rebecca Hauck in the bug
report.
- fast/shapes/resources/square.png: Added.
- fast/shapes/shape-outside-floats/shape-outside-image-shape-margin-expected.html: Added.
- fast/shapes/shape-outside-floats/shape-outside-image-shape-margin.html: Added.
- 3:04 PM Changeset in webkit [172009] by
-
- 4 edits in trunk/Source/JavaScriptCore
Create a more generic way for VMEntryScope to notify those interested that it will be destroyed
https://bugs.webkit.org/show_bug.cgi?id=135358
Patch by Saam Barati <sbarati@apple.com> on 2014-08-04
Reviewed by Geoffrey Garen.
When VMEntryScope is destroyed, and it has a flag set indicating that the
Debugger needs to recompile all functions, it calls Debugger::recompileAllJSFunctions.
This flag is only used by Debugger to have VMEntryScope notify it when the
Debugger is safe to recompile all functions. This patch will substitute this
Debugger-specific recompilation flag with a list of callbacks that are notified
when the outermost VMEntryScope dies. This creates a general purpose interface
for being notified when the VM stops executing code via the event of the outermost
VMEntryScope dying.
- debugger/Debugger.cpp:
(JSC::Debugger::recompileAllJSFunctions):
- runtime/VMEntryScope.cpp:
(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::addEntryScopeDidPopListener):
(JSC::VMEntryScope::~VMEntryScope):
- runtime/VMEntryScope.h:
(JSC::VMEntryScope::setRecompilationNeeded): Deleted.
- 3:01 PM Changeset in webkit [172008] by
-
- 7 edits2 adds in trunk
Subpixel rendering: InlineTextBox mistakenly rounds offset value before painting.
https://bugs.webkit.org/show_bug.cgi?id=135470
Reviewed by Simon Fraser.
This patch removes the premature paint offset adjustment for inlines. Premature snapping
could alter the final painting coordinates and push content to wrong positions.
This patch also enforces WebCore's pixel snapping strategy (round) on text painting.
It ensures that text positioning is in sync with other painting related operations including
clipping, box decorations etc. Underlying graphics libraries can take different directions on
text snapping, for example CG ceils text coordinates vertically (in horizontal context,
with the current settings). It can lead to undesired side effects.
Source/WebCore:
Test: fast/inline/hidpi-inline-selection-leaves-gap.html
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects): wrong direction used at r171896.
- rendering/SimpleLineLayoutFunctions.cpp: we don't paint vertical content here.
(WebCore::SimpleLineLayout::paintFlow):
LayoutTests:
- fast/inline/hidpi-inline-selection-leaves-gap-expected.html: Added.
- fast/inline/hidpi-inline-selection-leaves-gap.html: Added.
- fast/multicol/newmulticol/multicol-clip-rounded-corners-expected.html:
- fast/multicol/newmulticol/multicol-clip-rounded-corners.html: pixels are distributed properly.
No need to have the special 122px shortened width for col2.
- 2:58 PM Changeset in webkit [172007] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, rolling out r171992, r171995, & r172000.
The cumulative effect of those revisions was to cause decoding errors when switching resolutions on YouTube.
Reverted changesets:
https://bugs.webkit.org/show_bug.cgi?id=135422 / http://trac.webkit.org/changeset/171992
https://bugs.webkit.org/show_bug.cgi?id=135424 / http://trac.webkit.org/changeset/171995
https://bugs.webkit.org/show_bug.cgi?id=135572 / http://trac.webkit.org/changeset/172000
- 2:57 PM Changeset in webkit [172006] by
-
- 2 edits in trunk/Source/WebCore
Always clear ConsoleClient when Page/WindowShell is destroyed
https://bugs.webkit.org/show_bug.cgi?id=135569
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-08-04
Reviewed by Mark Lam.
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::~ScriptController):
Whenever a window shell goes away, clear the console client.
We did this in clearWindowShell but not before destroying.
- 2:56 PM Changeset in webkit [172005] by
-
- 5 edits in trunk
AX: isWordEndMatch should allow for multiple word selections
https://bugs.webkit.org/show_bug.cgi?id=135573
Reviewed by Mario Sanchez Prada.
Source/WebCore:
isWordEndMatch was searching from the beginning of the selected range, which meant
that if the result was multiple words, we'd reject the result.
Instead, we should search from the end of the range, so that we encompass all words.
Modified existing test: platform/mac/accessibility/select-text-should-match-whole-words.html
- editing/TextIterator.cpp:
(WebCore::SearchBuffer::isWordEndMatch):
LayoutTests:
- platform/mac/accessibility/select-text-should-match-whole-words-expected.txt:
- platform/mac/accessibility/select-text-should-match-whole-words.html:
- 2:25 PM Changeset in webkit [172004] by
-
- 1 delete in tags/Safari-600.1.2.5/safari-600.1.4-branch
Delete incorrect Tag.
- 2:18 PM Changeset in webkit [172003] by
-
- 1 copy in tags/Safari-600.1.4.5
New Tag.
- 2:17 PM Changeset in webkit [172002] by
-
- 3 edits2 adds in trunk
AX: Secure text fields need to support Search parameterized attributes
https://bugs.webkit.org/show_bug.cgi?id=135568
Reviewed by Mario Sanchez Prada.
Source/WebCore:
Secure text fields still need to support the fast searching that WebKit exposes, even though they don't support
other parameterized attributes.
Test: platform/mac/accessibility/secure-text-field-supports-fast-search.html
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
LayoutTests:
- platform/mac/accessibility/secure-text-field-supports-fast-search-expected.txt: Added.
- platform/mac/accessibility/secure-text-field-supports-fast-search.html: Added.
- 2:13 PM Changeset in webkit [172001] by
-
- 1 copy in tags/Safari-600.1.2.5/safari-600.1.4-branch
New Tag.
- 1:54 PM Changeset in webkit [172000] by
-
- 2 edits in trunk/Source/WebCore
[MSE] Further fixes for "fast forward" playback after seeking in YouTube behavior.
https://bugs.webkit.org/show_bug.cgi?id=135572
Reviewed by Eric Carlson.
Two related fixes:
In reenqueueMediaForTime(), update TrackBuffer.lastEnqueuedPresentationTime when we flush samples, so that
the next time samples are re-enqueued, the starting point for re-enqueueing is correct.
In sourceBufferPrivateDidReceiveSample(), do not add samples to the decode queue if they are before the
current media time.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::reenqueueMediaForTime):
- 1:50 PM Changeset in webkit [171999] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: All-caps CSS properties are not shown in Computed pane
https://bugs.webkit.org/show_bug.cgi?id=133700
Patch by Matt Baker <Matt Baker> on 2014-08-04
Reviewed by Timothy Hatcher.
- inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::styleWithProperties):
- 1:32 PM Changeset in webkit [171998] by
-
- 4 edits2 copies in branches/safari-600.1.4-branch
Merged r171882. <rdar://problem/17802531>
- 10:42 AM Changeset in webkit [171997] by
-
- 5 edits in trunk
AX: SelectText functionality always selects text after current selection even if closer selection is behind it
https://bugs.webkit.org/show_bug.cgi?id=135546
Reviewed by Mario Sanchez Prada.
Source/WebCore:
Logic was incorrect for comparing ranges found before the current selection.
ASSERT was incorrect for allowed ranges. We need to allow ranges that are right at the boundaries of our found ranges.
Extended existing test: platform/mac/accessibility/select-text.html
- accessibility/AccessibilityObject.cpp:
(WebCore::rangeClosestToRange):
LayoutTests:
- platform/mac/accessibility/select-text-expected.txt:
- platform/mac/accessibility/select-text.html:
- 10:32 AM Changeset in webkit [171996] by
-
- 5 edits2 adds in trunk
AX: AXSelectTextWithCriteriaParameterizedAttribute incorrectly selects the beginning letters of a word
https://bugs.webkit.org/show_bug.cgi?id=135547
Reviewed by Mario Sanchez Prada.
Source/WebCore:
Allow text search to specify that it wants to match end of words as well as start of words.
This allows select text criteria to match on whole words only.
Test: platform/mac/accessibility/select-text-should-match-whole-words.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection):
- editing/FindOptions.h:
- editing/TextIterator.cpp:
(WebCore::SearchBuffer::isWordEndMatch):
(WebCore::SearchBuffer::search):
LayoutTests:
- platform/mac/accessibility/select-text-should-match-whole-words-expected.txt: Added.
- platform/mac/accessibility/select-text-should-match-whole-words.html: Added.
- 10:26 AM Changeset in webkit [171995] by
-
- 3 edits in trunk/Source/WebCore
[MSE] Re-enqueing due to overlapping appended samples can cause stuttering playback
https://bugs.webkit.org/show_bug.cgi?id=135424
Reviewed by Eric Carlson.
If it become necessary to re-enqueue samples (due to appending overlapping samples which cause
existing samples to be removed), the previous behavior was to flush and re-enqueue the new
samples dependencies; i.e., everything up to and including the previous sync sample. This causes
the decoder to visibly stall while it decodes those non-displaying samples, which could be
a second or more worth of encoded video samples, depending on the frequency of sync samples.
Instead, when we are asked to re-enqueue, we will look for the next occurring sync sample.
If found, we can switch over to the replacement samples at that point in the decode queue.
This limits the overhead of a stream switch, and should allow for a visually seamless switch,
at the cost of having to wait for the next sync sample to occur to affect the switch.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::seekToTime): Clear the decode queue when seeking.
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Call reenqueueMediaForCurrentTime.
(WebCore::SourceBuffer::reenqueueMediaForCurrentTime): Switch over to the new stream only
at the next sync sample.
- 10:23 AM Changeset in webkit [171994] by
-
- 3 edits2 adds in trunk
AX: The Dictation command "Replace <phrase> with <phrase>" always capitalizes the replacement string
https://bugs.webkit.org/show_bug.cgi?id=135557
Reviewed by Mario Sanchez Prada.
Source/WebCore:
When replacing text, we should match the capitalization of the word being replaced
(unless the replacement looks like an abbreviation).
Test: platform/mac/accessibility/find-and-replace-match-capitalization.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectText):
LayoutTests:
- platform/mac/accessibility/find-and-replace-match-capitalization-expected.txt: Added.
- platform/mac/accessibility/find-and-replace-match-capitalization.html: Added.
- 10:19 AM Changeset in webkit [171993] by
-
- 5 edits in trunk/Source/WebCore
QuickLook resources are cache-replaced with their original binary data causing ASSERT(m_data->size() == newBuffer->size()) in CachedResource.cpp
https://bugs.webkit.org/show_bug.cgi?id=135548
<rdar://problem/17891321>
Reviewed by David Kilzer.
When loading QuickLook resources, the SharedBuffer in the CachedResource is actually a
converted representation of the real QuickLook resource. Replacing this with the actual
network resource (which is what tryReplaceEncodedData() tried to do) is wrong and triggered
asserts in the code.
Fix this by having CachedRawResource::mayTryReplaceEncodedData() return false if we are
loading a QuickLook resource.
No new tests because we don't have a way to test QuickLook documents.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::ResourceLoader):
(WebCore::ResourceLoader::didCreateQuickLookHandle):
Set a flag to indicate that we are loading a QuickLook document.
- loader/ResourceLoader.h:
(WebCore::ResourceLoader::isQuickLookResource):
- loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::CachedRawResource):
(WebCore::CachedRawResource::finishLoading):
Check if we were loading a QuickLook document and if so disable encoded data
replacement.
- loader/cache/CachedRawResource.h:
Add a new bool field returned by mayTryReplaceEncodedData(). Default is true but it is
set to false in finishLoading() if we were loading QuickLook document.
- 10:17 AM Changeset in webkit [171992] by
-
- 2 edits in trunk/Source/WebCore
[MSE] Seeking occasionally causes many frames to be displayed in "fast forward" mode
https://bugs.webkit.org/show_bug.cgi?id=135422
Reviewed by Eric Carlson.
When a seek is pending, but samples for the new time is not yet present in the SourceBuffer,
the SourceBufferPrivate may signal that it's ready for new samples through the
sourceBufferPrivateDidBecomeReadyForMoreSamples() method. In this situation, we should not
continue to provideMediaData(), as that will append samples from the prior-to-seeking media
timeline. Since the timeline may have moved forward due to the seek, a decoder may decide to
display those frames as quickly as possible (the "fast forward" behavior) in order to catch
up to the new current time.
If a re-enqueue is pending, don't provide media data in response to being notified that the
SourceBufferPrivate is ready for more samples. Wait until samples for the new current time
are appended.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
- dom/Document.cpp:
(WebCore::Document::unregisterCollection):
- 8:08 AM Changeset in webkit [171991] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Install all unstable webkitdom headers
https://bugs.webkit.org/show_bug.cgi?id=135544
Reviewed by Gustavo Noronha Silva.
We were checking whether generated file existed before they had
been generated.
- PlatformGTK.cmake: Add Unstable.h header for all stable classes
to GObjectDOMBindingsUnstable_INSTALLED_HEADERS and split the
install command for stable and unstable headers making unstable
headers optional.
- 6:31 AM Changeset in webkit [171990] by
-
- 6 edits6 adds in trunk/LayoutTests
Unreviewed EFL gardening
- platform/efl/TestExpectations: Add or update test expectations for failing tests.
- platform/efl/fast/text/international/cjk-segmentation-expected.txt: Added.
- platform/efl/js/dom/global-constructors-attributes-expected.txt: Rebaseline after r167632.
- platform/efl/sputnik/Unicode/Unicode_320/S7.6_A2.2_T2-expected.txt: Added.
- platform/efl/sputnik/Unicode/Unicode_320/S7.6_A5.2_T8-expected.txt: Added.
- platform/efl/svg/text/non-bmp-positioning-lists-expected.png: Rebaseline after r168350 and r168543.
- platform/efl/svg/text/non-bmp-positioning-lists-expected.txt: Ditto.
- platform/efl/transforms/2d/hindi-rotated-expected.txt: Fix baseline.
- 1:47 AM Changeset in webkit [171989] by
-
- 2 edits in trunk/Source/WebCore
[WinCairo] Compile error in OpenTypeMathData.cpp.
https://bugs.webkit.org/show_bug.cgi?id=135541
Patch by peavo@outlook.com <peavo@outlook.com> on 2014-08-04
Reviewed by Brent Fulgham.
The SharedBuffer class needs to be defined.
Also, the OpenTypeMathData constructor should be implemented when OPENTYPE_MATH is not enabled.
- platform/graphics/opentype/OpenTypeMathData.cpp:
- 12:17 AM Changeset in webkit [171988] by
-
- 2 edits in trunk
[GTK] Windowing target support should reflect the support in the GTK+ dependency
https://bugs.webkit.org/show_bug.cgi?id=134736
Reviewed by Martin Robinson.
- Source/cmake/FindGTK3.cmake: Don't error out if the GTK+ dependency doesn't
support the X11 or Wayland windowing targets -- instead, if there's no support
the specific target is disabled, and an error is thrown only if neither of the
backends is enabled at the end..
For now the X11 target remains enabled by default, and the Wayland target is
kept disabled. Once it's possible to have both targets enabled at runtime in
WebKit, the Wayland target will be enabled as well and we'll leave it to the
GTK+ dependency to determine which targets can be enabled.
- 12:10 AM Changeset in webkit [171987] by
-
- 1 edit1 add in trunk
[CMake] Add FindWayland.cmake
https://bugs.webkit.org/show_bug.cgi?id=135540
Reviewed by Martin Robinson.
- Source/cmake/FindWayland.cmake: Added. Enables finding the Wayland
dependency. For now bundles the wayland-client, wayland-server and
wayland-egl pkg-config targets into one dependency, but these could
be split in the future if necessary.
- 12:00 AM Changeset in webkit [171986] by
-
- 2 edits in trunk/Tools
[GTK] Do not include JavaScriptCore stress tests in release tarballs
https://bugs.webkit.org/show_bug.cgi?id=135503
Reviewed by Martin Robinson.
- gtk/manifest.txt: Exclude Source/JavaScriptCore/tests dir.
Aug 3, 2014:
- 7:12 PM Changeset in webkit [171985] by
-
- 2 edits in trunk
[EFL] Move DATA_INSTALL_DIR to ewebkit2-0
https://bugs.webkit.org/show_bug.cgi?id=135553
Reviewed by Gyuyoung Kim.
Since WebKit1/Efl is dropped, we don't need to use ewebkit-1 and ewebkit2-1.
And removed WebKit_OUTPUT_NAME variable which is not used anymore on the EFL port.
- Source/cmake/OptionsEfl.cmake:
- 12:21 PM Changeset in webkit [171984] by
-
- 2 edits in trunk/Source/WebCore
<rdar://problem/17782529> REGRESSION: OS marketing version in iOS Simulator user-agent string is the host OS’s
https://bugs.webkit.org/show_bug.cgi?id=135549
Reviewed by Mark Rowe.
- platform/cocoa/SystemVersion.mm:
(WebCore::createSystemMarketingVersion): On the iOS Simulator, locate the system Library
directory relative to the Simulator root.
- 1:16 AM Changeset in webkit [171983] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Versioning.
- 1:12 AM Changeset in webkit [171982] by
-
- 1 copy in tags/Safari-600.1.4.4
New tag.
- 1:03 AM Changeset in webkit [171981] by
-
- 2 edits1 add in branches/safari-600.1.4-branch/Source/JavaScriptCore
Merged patch for <rdar://problem/17887398>.
- 12:56 AM Changeset in webkit [171980] by
-
- 12 edits in branches/safari-600.1.4-branch/Source
Merged r171973. <rdar://problem/17834694>
- 12:45 AM Changeset in webkit [171979] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebKit2
Merged r171959. <rdar://problem/17671574>
- 12:43 AM Changeset in webkit [171978] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/JavaScriptCore
Merged r171949. <rdar://problem/17888408>
- 12:40 AM Changeset in webkit [171977] by
-
- 5 edits in branches/safari-600.1.4-branch/Source/JavaScriptCore
Merged r171946. <rdar://problem/17888408>
- 12:37 AM Changeset in webkit [171976] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merged r171944. <rdar://problem/17879156>
- 12:34 AM Changeset in webkit [171975] by
-
- 9 edits in branches/safari-600.1.4-branch/Source/WebKit2
Merged r171943. <rdar://problem/17869279>
- 12:28 AM Changeset in webkit [171974] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebKit2
Merged r171887. <rdar://problem/17864139>
Aug 2, 2014:
- 5:03 PM Changeset in webkit [171973] by
-
- 12 edits in trunk/Source
Support both window and view based video fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=135525
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-08-02
Reviewed by Simon Fraser.
Source/WebCore:
Presenting in a separate window gives greater flexibility for rotation separately from the app.
Presenting in the same window works better if the interface is rehosted in another process.
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController enterFullscreen:]): Use clientRect instead of screenRect.
- platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add m_window and m_parentView.
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVVideoLayer setBounds:]): Parent view might not be fullscreen; use window instead.
(WebVideoFullscreenInterfaceAVKit::setupFullscreen): Conditionally create UIWindow and UIViewController for fullscreen.
(WebVideoFullscreenInterfaceAVKit::enterFullscreen): Video, not the container should have black background.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen): Conditionally translate finalRect.
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreen): Clean up UIWindow and force status bar to correct orientation.
(WebVideoFullscreenInterfaceAVKit::invalidate): Clean up UIWindow.
(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): Hide window and exit without animation.
- platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::setVideoFullscreenLayer): Apply frame, because it may have been set before the layer.
Source/WebKit/mac:
Parenting in the view instead of the window gives the fullscreen implementation more latitude
in how it implements the animation.
- WebView/WebView.mm:
(-[WebView _enterFullscreenForNode:]): Use view instead of window.
Source/WebKit2:
Parenting in the view instead of the window gives the fullscreen implementation more latitude
in how it implements the animation.
- UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Use view instead of window.
- WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::clientRectForNode): Use client rect instead of screen rect.
(WebKit::WebVideoFullscreenManager::enterFullscreenForNode): ditto
(WebKit::WebVideoFullscreenManager::exitFullscreenForNode): ditto
(WebKit::screenRectForNode): Deleted.
- 1:51 PM Changeset in webkit [171972] by
-
- 8 edits in trunk/Source/WebCore
Update the SearchFieldResultsButtonElement shadow Pseudo Id when HTMLInputElement's maxResults change
https://bugs.webkit.org/show_bug.cgi?id=135491
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-08-02
Reviewed by Ryosuke Niwa.
Replace the shadowPseudoId() override + manual style invalidation by the generic pseudo ID update.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
- html/InputType.cpp:
(WebCore::InputType::maxResultsAttributeChanged):
- html/InputType.h:
- html/SearchInputType.cpp:
(WebCore::SearchInputType::SearchInputType):
(WebCore::updateResultButtonPseudoType):
(WebCore::SearchInputType::maxResultsAttributeChanged):
(WebCore::SearchInputType::createShadowSubtree):
(WebCore::SearchInputType::destroyShadowSubtree):
- html/SearchInputType.h:
- html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::shadowPseudoId): Deleted.
- html/shadow/TextControlInnerElements.h:
- 1:47 PM Changeset in webkit [171971] by
-
- 3 edits in trunk/Source/WebCore
Add warnings for the buggy implementations of shadowPseudoId()
https://bugs.webkit.org/show_bug.cgi?id=135477
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-08-02
Reviewed by Ryosuke Niwa.
Dean is going to look into fixing media element styling.
In the meantime, add warnings to prevent this from spreading.
- dom/Element.h:
- html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::shadowPseudoId):
(WebCore::SliderContainerElement::shadowPseudoId):
- 11:35 AM Changeset in webkit [171970] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
[Win] Unreviewed build fix.
- src/libGLESv2/renderer/d3d11/BufferStorage11.cpp:
(rx::BufferStorage11::copyData): Help compiler make
decision about types.
- 11:04 AM Changeset in webkit [171969] by
-
- 5 edits in trunk/Tools
build-webkittestrunner doesn't build the app target for iOS SDKs
https://bugs.webkit.org/show_bug.cgi?id=135433
Reviewed by Dan Bernstein.
- Scripts/build-dumprendertree: Build the app target on iOS.
- Scripts/build-webkittestrunner: Build the app target on iOS.
- Scripts/webkitdirs.pm: Add -sdk flags when building for iOS.
(buildXCodeProject):
- Scripts/webkitpy/port/ios.py: Use --sdk flags instead of SDKROOT.
(IOSSimulatorPort._build_driver_flags):
- 11:03 AM Changeset in webkit [171968] by
-
- 2 edits1 delete in trunk/Tools
Remove iOS Perl DumpRenderTree support target
https://bugs.webkit.org/show_bug.cgi?id=135271
Reviewed by Dan Bernstein.
- DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Remove the target.
- DumpRenderTree/ios/PerlSupport/DumpRenderTreeSupport.c: Removed.
- DumpRenderTree/ios/PerlSupport/DumpRenderTreeSupportPregenerated.pm: Removed.
- DumpRenderTree/ios/PerlSupport/DumpRenderTreeSupport_wrapPregenerated.c: Removed.
- DumpRenderTree/ios/PerlSupport/IPhoneSimulatorNotification/Changes: Removed.
- DumpRenderTree/ios/PerlSupport/IPhoneSimulatorNotification/IPhoneSimulatorNotification.xs: Removed.
- DumpRenderTree/ios/PerlSupport/IPhoneSimulatorNotification/MANIFEST: Removed.
- DumpRenderTree/ios/PerlSupport/IPhoneSimulatorNotification/Makefile.PL: Removed.
- DumpRenderTree/ios/PerlSupport/IPhoneSimulatorNotification/README: Removed.
- DumpRenderTree/ios/PerlSupport/IPhoneSimulatorNotification/lib/IPhoneSimulatorNotification.pm: Removed.
- DumpRenderTree/ios/PerlSupport/IPhoneSimulatorNotification/ppport.h: Removed.
- DumpRenderTree/ios/PerlSupport/IPhoneSimulatorNotification/t/IPhoneSimulatorNotification.t: Removed.
- DumpRenderTree/ios/PerlSupport/Makefile: Removed.
- 11:01 AM Changeset in webkit [171967] by
-
- 1 edit1 delete in trunk/Tools
Remove old-run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=135374
Reviewed by Csaba Osztrogonác.
- Scripts/old-run-webkit-tests: Removed.
- 10:34 AM Changeset in webkit [171966] by
-
- 2 edits in trunk/Tools
prepare-ChangeLog --no-write shouldn’t require ChangeLog to exist
https://bugs.webkit.org/show_bug.cgi?id=135542
Reviewed by Tim Horton.
- Scripts/prepare-ChangeLog:
(main): Pass $writeChangeLogs for the new requireChangeLogToExist parameter of
findChangeLogs.
(findChangeLogs): Don’t require a ChangeLog file to exist if unless the
requireChangeLogToExist argument is true.
Aug 1, 2014:
- 11:06 PM Changeset in webkit [171965] by
-
- 4 edits in trunk/Source
<rdar://problem/17891752> [iOS] WebKit links against libraries it doesn’t use
https://bugs.webkit.org/show_bug.cgi?id=135536
Reviewed by Tim Horton.
Source/WebKit/mac:
- Configurations/WebKitLegacy.xcconfig: Removed -framework MobileAsset from
OTHER_LDFLAGS_iphoneos.
Source/WebKit2:
- Configurations/WebKit.xcconfig: Removed -lassertion_extension and -framework MobileAsset
from FRAMEWORK_AND_LIBRARY_LDFLAGS_iphonesimulator.
- 10:10 PM Changeset in webkit [171964] by
-
- 20 edits in trunk/Source/WebCore
Unreviewed, rolling out r171957.
https://bugs.webkit.org/show_bug.cgi?id=135538
Caused GTK assertions and test failures (Requested by smfr on
#webkit).
Reverted changeset:
"Clean up image subsampling code, make it less iOS-specific"
https://bugs.webkit.org/show_bug.cgi?id=134916
http://trac.webkit.org/changeset/171957
- 9:13 PM WebKitGTK/KeepingTheTreeGreen edited by
- (diff)
- 9:00 PM Changeset in webkit [171963] by
-
- 3 edits2 adds in trunk/LayoutTests
[GTK] Unreviewed GTK gardening.
- platform/gtk/TestExpectations: Report and mark new failures and flaky tests after 171341, r171591, r171567 and others.
- platform/gtk/fast/css/viewport-units-dynamic-expected.txt: Added. Rebaseline after r171567.
- platform/gtk/fast/multicol/pagination/RightToLeft-max-width-expected.txt: Added. Rebaseline after r171609.
- platform/gtk/svg/zoom/page/zoom-foreignObject-expected.txt: Rebaseline after 171341.
- 5:46 PM Changeset in webkit [171962] by
-
- 2 edits in trunk/Source
[CMake] Allow CMake to find GLib on FreeBSD
https://bugs.webkit.org/show_bug.cgi?id=132530
Patch by Myles C. Maxfield <litherum@gmail.com> on 2014-08-01
Reviewed by Gustavo Noronha Silva.
On FreeBSD, glibconfig.h is at /usr/local/include/glib-2.0/glibconfig.h.
- Source/cmake/FindGLIB.cmake:
- 5:10 PM Changeset in webkit [171961] by
-
- 4 edits in trunk/Source
REGRESSION(r171942): [CMAKE] [GTK] build broken (clean build).
https://bugs.webkit.org/show_bug.cgi?id=135522
Reviewed by Martin Robinson.
Source/JavaScriptCore:
- CMakeLists.txt: Output the inspector headers inside inspector
subdirectory.
Source/WebCore:
No new tests required, no new functionality.
- CMakeLists.txt: Add missing include to the inspector headers
and fix the path to InspectorJSTypeBuilders.h
- 5:00 PM Changeset in webkit [171960] by
-
- 2 edits in trunk/Source/WebCore
Fix resource leak in FillLayersPropertyWrapper object member
https://bugs.webkit.org/show_bug.cgi?id=135462
Reviewed by Andreas Kling.
Fix leak of m_fillLayerPropertyWrapper by using unique_ptr<>.
Based on patch by Przemyslaw Kuczynski.
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
- 4:57 PM Changeset in webkit [171959] by
-
- 2 edits in trunk/Source/WebKit2
[iOS WK2] Add extension read permission to network sandbox profile
<rdar://problem/17671574>
Reviewed by Alexey Proskuryakov and Oliver Hunt.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 4:55 PM Changeset in webkit [171958] by
-
- 2 edits in trunk/LayoutTests
Unreviewed post-review test fixup
- editing/pasteboard/img-srcset-copy-paste-canonicalization.html:
- 4:22 PM Changeset in webkit [171957] by
-
- 20 edits in trunk/Source/WebCore
Clean up image subsampling code, make it less iOS-specific
https://bugs.webkit.org/show_bug.cgi?id=134916
Reviewed by Dean Jackson.
Compile the image subsampling code on both Mac and iOS, and make it more platform
neutral in general. Add a setting to allow it to be enabled on Mac for testing.
The most significant changes are in ImageSourceCG and BitmapImageCG. CG's ImageSource
is no longer stateful with respect to subsampling; its functions take a SubsamplingLevel
when appropriate. CG's BitmapImage now determines which level of subsampling to use
for a given frame, storing the subsampling level in the frame data. It can replace
an aggressively subsampled frame with a less subsampled frame if necessary.
To reduce the chances of subsampling affecting rendering, BitmapImage::size() now
always returns the non-subsampled size; subsampling is strictly internal to BitmapImage.
BitmapImage::draw() takes care of scaling the srcRect for subsampled images.
iOS had a code path that enabled caching of frame metadata in BitmapImage without
actually decoding the frame; make this cross-platform.
- WebCore.exp.in: Changed signature for GraphicsContext::drawNativeImage().
- WebCore.xcodeproj/project.pbxproj: Added ImageSource.cpp, which is not built
for Cocoa but useful for reference.
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer): Remove iOS-specific subsampling code.
(WebCore::CachedImage::createImage): Call setAllowSubsampling() on the image if we
can get to Settings (m_loader is null for image documents).
(WebCore::CachedImage::currentFrameKnownToBeOpaque): This forced decode always
caused creation of the non-subsampled image, so remove it. There's no reason to
eagerly decode the frame here.
- loader/cache/CachedImage.h: Fix comment.
- page/Settings.cpp: Add defaultImageSubsamplingEnabled, true for iOS and false for Mac.
- page/Settings.in: Added imageSubsamplingEnabled.
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage): Init some more things. Default m_allowSubsampling to
true for iOS to catch images created in code paths where we can't get to Settings.
(WebCore::BitmapImage::haveFrameAtIndex): Handy helper.
(WebCore::BitmapImage::cacheFrame): Now takes the subsampling level and whether to cache
just metadata, or also the frame.
(WebCore::BitmapImage::didDecodeProperties): No need to store originalSize.
(WebCore::BitmapImage::updateSize): When we get the size for the first time, call
determineMinimumSubsamplingLevel() to choose a reasonable subsampling level which takes
platform-specific limits into account.
(WebCore::BitmapImage::dataChanged): Comment.
(WebCore::BitmapImage::ensureFrameIsCached): Take ImageFrameCaching into account.
(WebCore::BitmapImage::frameAtIndex): Choose a subsampling level given the scale,
then determine if we can use the currently cached frame, or whether we should resample.
(WebCore::BitmapImage::frameIsCompleteAtIndex): Caching m_isComplete is now done when caching
frame metadata.
(WebCore::BitmapImage::frameDurationAtIndex):
(WebCore::BitmapImage::frameHasAlphaAtIndex): The 'true' return is the safe return value.
(WebCore::BitmapImage::frameOrientationAtIndex): Caching m_orientation is now done when caching
frame metadata.
(WebCore::BitmapImage::cacheFrameInfo): Deleted.
(WebCore::BitmapImage::originalSize): Deleted.
(WebCore::BitmapImage::originalSizeRespectingOrientation): Deleted.
(WebCore::BitmapImage::currentFrameSize): Deleted.
(WebCore::BitmapImage::ensureFrameInfoIsCached): Deleted.
- platform/graphics/BitmapImage.h:
(WebCore::FrameData::FrameData):
- platform/graphics/GraphicsContext.h: No need to pass a scale param now.
- platform/graphics/ImageSource.cpp: Non-Cocoa changes.
(WebCore::ImageSource::subsamplingLevelForScale):
(WebCore::ImageSource::allowSubsamplingOfFrameAtIndex):
(WebCore::ImageSource::size):
(WebCore::ImageSource::frameSizeAtIndex):
(WebCore::ImageSource::createFrameAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):
- platform/graphics/ImageSource.h: No longer stores subsampling state.
(WebCore::ImageSource::isSubsampled): Deleted.
- platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::determineMinimumSubsamplingLevel):
- platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::FrameData::clear):
(WebCore::BitmapImage::BitmapImage): Init more members.
(WebCore::BitmapImage::determineMinimumSubsamplingLevel): Choose a minimum subsampling
level for the platform (subsample until the image area falls under a threshold).
(WebCore::BitmapImage::checkForSolidColor): Don't bother decoding frames if the image
is not 1x1. Also take care not to decode a non-subsampled image.
(WebCore::BitmapImage::draw): The actual bug fix is here; remove logic that
computed srcRectForCurrentFrame from m_size and m_originalSize; for some callers
srcRect was computed using the pre-subsampled size, and for others it was the subsampled size.
Instead, scale srcRect by mapping between the non-subsampled size, and the size of the CGImageRef
which is affected by subsampling.
(WebCore::BitmapImage::copyUnscaledFrameAtIndex):
- platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage): Remove #ifdeffed code.
(WebCore::GraphicsContext3D::paintToCanvas):
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage): No more weird scaling!
- platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::draw):
- platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::ImageSource):
(WebCore::createImageSourceOptions): Helper that always returns a new CFDictionaryRef.
(WebCore::imageSourceOptions): If not subsampling, return the cached CFDictionaryRef, otherwise
make a new options dict and return it.
(WebCore::ImageSource::subsamplingLevelForScale): Helper that returns a subsampling level
between 0 and 3 given a scale.
(WebCore::ImageSource::isSizeAvailable): SkipMetadata is a default value for the param now.
(WebCore::ImageSource::allowSubsamplingOfFrameAtIndex): We turn off subsampling for progressive
JPEGs because of a bug, so need this to know if a frame should be subsampled.
(WebCore::ImageSource::frameSizeAtIndex): The looping to find a subsampling level is now in BitmapImageCG.
(WebCore::ImageSource::orientationAtIndex):
(WebCore::ImageSource::size): Always use a subsampling level of 0 for size().
(WebCore::ImageSource::getHotSpot):
(WebCore::ImageSource::repetitionCount):
(WebCore::ImageSource::createFrameAtIndex): The caller mapped a scale to a level.
(WebCore::ImageSource::frameDurationAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):
(WebCore::ImageSource::imageSourceOptions): Deleted.
(WebCore::ImageSource::originalSize): Deleted.
- platform/graphics/mac/ImageMac.mm:
(WebCore::BitmapImage::invalidatePlatformData): 0 -> nullptr
- platform/graphics/wince/ImageWinCE.cpp:
(WebCore::BitmapImage::determineMinimumSubsamplingLevel):
- 4:20 PM Changeset in webkit [171956] by
-
- 7 edits in trunk/Source/WebCore
Many DOM objects have InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero for no reason.
<https://webkit.org/b/135519>
Don't set this structure flag unless the object actually has an override
for getOwnPropertySlotByIndex().
Reviewed by Geoffrey Garen.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
- bindings/scripts/test/JS/JSTestActiveDOMObject.h:
- bindings/scripts/test/JS/JSTestException.h:
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestObj.h:
- bindings/scripts/test/JS/JSTestTypedefs.h:
- 4:14 PM Changeset in webkit [171955] by
-
- 3 edits in trunk/Source/WebCore
SVG Font kerning can take an early out if the font has no kerning information
https://bugs.webkit.org/show_bug.cgi?id=135524
Reviewed by Dean Jackson.
Rather than calling SVGFontElement::horizontalKerningForPairOfStringsAndGlyphs() again
and again, skip the iteration entirely if every call would return 0.
No new tests because there is no behavior change.
- rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::applySVGKerning):
- svg/SVGFontElement.h:
- 4:10 PM Changeset in webkit [171954] by
-
- 3 edits in trunk/Tools
commit-log-editor uses a non-standard message format when git index contains no ChangeLog changes
https://bugs.webkit.org/show_bug.cgi?id=135527
Reviewed by Tim Horton.
- Scripts/commit-log-editor:
In the case of a git repository when there are no changed ChangeLog files, changed to pass
the --delimiters option to prepare-ChangeLog, then process each entry in the output using
commitMessageFromChangeLogEntry.
(commitMessageFromChangeLogEntry): Factored out from createCommitMessage.
(sortKey): Factored out from createCommitMessage.
(createCommitMessage): Changed to use new sortKey and commitMessageFromChangeLogEntry
subroutines.
- Scripts/prepare-ChangeLog:
(main): Parse new --delimiters option.
(generateNewChangeLogs): When --no-write and --delimiters are both specified, always print
the label before each change log entry, and a "~" delimiter on a new line after each entry.
- 3:49 PM Changeset in webkit [171953] by
-
- 3 edits in trunk/Source/JavaScriptCore
Add some structure related assertions.
<https://webkit.org/b/135523>
Reviewed by Geoffrey Garen.
Adding 2 assertions:
- assert that we don't index pass the end of the StructureIDTable. This should never happen, but this assertion will help catch bugs where a bad structureID gets passed in.
- assert that cells in MarkedBlock::callDestructor() that are not zapped should have a non-null StructureID. This will help us catch bugs where the other cell header flag bits get set after the cell is zapped, thereby making the cell look like an unzapped cell but has a null structureID.
- heap/MarkedBlock.cpp:
(JSC::MarkedBlock::callDestructor):
- runtime/StructureIDTable.h:
(JSC::StructureIDTable::get):
- 3:47 PM Changeset in webkit [171952] by
-
- 2 edits in trunk/Source/WebCore
Inspector highlights clipped at the bottom on the page in WK1 views with
contentInsets
https://bugs.webkit.org/show_bug.cgi?id=135480
-and corresponding-
<rdar://problem/17850323>
Forgot to commit this one very critical part with
http://trac.webkit.org/changeset/171951
- platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):
- 3:39 PM Changeset in webkit [171951] by
-
- 7 edits in trunk/Source/WebCore
Inspector highlights clipped at the bottom on the page in WK1 views with
contentInsets
https://bugs.webkit.org/show_bug.cgi?id=135480
-and corresponding-
<rdar://problem/17850323>
Reviewed by Simon Fraser.
unscaledTotalVisibleContentSize() was the main function on Mac that was expected
to return the rect representing ALL visible content, including content that might
be in an inset area and obscured by UI elements. This patch re-names that function
to unscaledVisibleContentSizeIncludingObscuredArea(), and that patch makes that
function return the right thing in the platformWidget() case.
Re-name.
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::update):
Return platformVisibleContentSizeIncludingObscuredArea() for the platformWidget()
case and re-name.
- platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):
This was just wrong. It was returning the big rectangle instead of the small one
for platformWidget().
(WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):
New platform functions.
(WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
(WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
(WebCore::ScrollView::unscaledTotalVisibleContentSize): Deleted.
- platform/ScrollView.h:
- platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
(WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
- platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformVisibleContentRect):
(WebCore::ScrollView::platformVisibleContentSize):
(WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
(WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
Re-name.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::frameViewDidChangeSize):
(WebCore::RenderLayerCompositor::updateRootLayerPosition):
(WebCore::RenderLayerCompositor::ensureRootLayer):
- 3:33 PM Changeset in webkit [171950] by
-
- 2 edits in trunk/Source/WebCore
SVGGlyph wastes space due to padding
https://bugs.webkit.org/show_bug.cgi?id=135520
Reviewed by Dean Jackson.
Rearrange members in SVGGlyph so there is no wasted padding space.
No new tests because there is no behavior change.
- platform/graphics/SVGGlyph.h:
(WebCore::SVGGlyph::SVGGlyph):
- 1:58 PM Changeset in webkit [171949] by
-
- 2 edits in trunk/Source/JavaScriptCore
URTBF after r171946 to fix non-Apple builds.
- bytecode/InlineCallFrameSet.cpp:
- 1:46 PM Changeset in webkit [171948] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r171891): platform/mac/fast/scrolling/scroll-select-bottom-test.html
failing
https://bugs.webkit.org/show_bug.cgi?id=135485
Now that WK1 really tests contentInset, this test no longer works on platforms
that do not support the real contentInset
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 1:43 PM Changeset in webkit [171947] by
-
- 8 edits in trunk
[Feature Queries] Enable Feature Queries on EFL/GTK
https://bugs.webkit.org/show_bug.cgi?id=134902
Reviewed by Benjamin Poulain.
.:
Enable CSS Feature Queries by default on the EFL and GTK
platforms.
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsGTK.cmake:
Tools:
Turn the feature on by default for the build script.
- Scripts/webkitperl/FeatureList.pm:
LayoutTests:
Resume running the CSS Feature Query tests on the EFL and GTK platforms.
- platform/efl/TestExpectations:
- platform/gtk/TestExpectations:
- 1:17 PM Changeset in webkit [171946] by
-
- 5 edits in trunk/Source/JavaScriptCore
CodeBlock fails to visit the Executables of its InlineCallFrames
https://bugs.webkit.org/show_bug.cgi?id=135471
Patch by Mark Hahnenberg <mhahnenberg@apple.com> on 2014-08-01
Reviewed by Geoffrey Garen.
CodeBlock needs to visit its InlineCallFrames' owner Executables. If it doesn't, they
can be prematurely collected and cause crashes.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::stronglyVisitStrongReferences):
- bytecode/CodeOrigin.h:
(JSC::InlineCallFrame::visitAggregate):
- bytecode/InlineCallFrameSet.cpp:
(JSC::InlineCallFrameSet::visitAggregate):
- bytecode/InlineCallFrameSet.h:
- 1:01 PM Changeset in webkit [171945] by
-
- 3 edits in trunk/Tools
Build fix for 32-bit after r171926.
- MiniBrowser/mac/SettingsController.h:
- MiniBrowser/mac/SettingsController.m:
- 12:42 PM Changeset in webkit [171944] by
-
- 2 edits in trunk/Source/WebCore
[Media iOS] Ensure there is a nice default fallback for missing wireless target names
https://bugs.webkit.org/show_bug.cgi?id=135488
<rdar://problem/17879156>
Reviewed by Eric Carlson.
We occasionally run into cases where this.host.externalDeviceDisplayName
is empty or null, creating a pretty ugly/confusing string in the
wireless playback status screen.
If this happens, we should default to using "Apple TV".
- Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.updateWirelessPlaybackStatus): Check if the externalDeviceDisplayName
is empty or null, and fall back to "Apple TV" if so.
- 12:19 PM Changeset in webkit [171943] by
-
- 9 edits in trunk/Source/WebKit2
Various frameworks may want to use the container temp directory, so our current restrictions are too tight
https://bugs.webkit.org/show_bug.cgi?id=135518
<rdar://17869279>
Reviewed by Anders Carlsson.
We don't (and can't) have complete knowledge of what different frameworks
will want to use the container temporary directory for, and so our
current attempt to heavily restrict access is simply too tight.
This patch recognises this by simply giving read-write access to the
entire NSTemporary() directory (e.g. $container/tmp in the general case),
rather than the single sub directory we wishfully thought that we would
be able to get away with.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::mediaCacheDirectory): Deleted.
- UIProcess/WebContext.h:
- UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebContext::containerTemporaryDirectory):
(WebKit::WebContext::platformMediaCacheDirectory): Deleted.
- UIProcess/gtk/WebContextGtk.cpp:
(WebKit::WebContext::containerTemporaryDirectory):
(WebKit::WebContext::platformMediaCacheDirectory): Deleted.
- UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::containerTemporaryDirectory):
(WebKit::WebContext::platformMediaCacheDirectory): Deleted.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 12:19 PM Changeset in webkit [171942] by
-
- 11 edits2 adds in trunk
Progress towards cmake on Windows.
https://bugs.webkit.org/show_bug.cgi?id=135484
Reviewed by Martin Robinson.
.:
- CMakeLists.txt:
Added Mac to list of ports, even though it is not done yet.
Changed minimum bison version to version installed on Macs.
- Source/cmake/OptionsAppleWin.cmake:
Added some definitions.
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsGTK.cmake:
Set WTF_LIBRARY_TYPE to STATIC to not change WTF linking on EFL or GTK ports.
- Source/cmake/OptionsMac.cmake: Added blank for now.
- Source/cmake/OptionsWinCairo.cmake:
- Source/cmake/OptionsWindows.cmake:
Added some definitions.
Removed /WX (warnings treated as error while compiling).
Copied warnings to ignore from WebKitLibraries/win/tools/vsprops/common.props.
Source/JavaScriptCore:
- CMakeLists.txt:
Generate code directly to inspector directory to avoid using the cp command
which is not available on Windows.
- PlatformWin.cmake: Added.
Source/WTF:
- wtf/CMakeLists.txt:
Added WTF_LIBRARY_TYPE because Windows needs WTF to be a shared library.
- 12:08 PM Changeset in webkit [171941] by
-
- 9 edits3 adds in trunk
URLs in srcset attributes are not made absolute upon copy and paste
https://bugs.webkit.org/show_bug.cgi?id=135448
Reviewed by Ryosuke Niwa.
Source/WebCore:
When pasting, canonicalize URLs in srcset the same way we do with src.
Test: editing/pasteboard/img-srcset-copy-paste-canonicalization.html
- dom/Element.cpp:
(WebCore::Element::completeURLsInAttributeValue): Initial implemention, moved from markup.cpp.
- dom/Element.h:
(WebCore::Element::attributeContainsURL): New function for completeURLs to call.
(WebCore::Element::completeURLsInAttributeValue): Only called if attributeContainsURL returns
true. Default implementation simply calls isURLAttribute().
- editing/markup.cpp:
(WebCore::completeURLs): Call attributeContainsURL() and completeURLsInAttributeValue() to
complete the URL, so nodes can perform their own behavior.
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::attributeContainsURL): Return true for srcset.
(WebCore::HTMLImageElement::completeUrlAttributeValue): Use our existing srcset parser to
parse the srcset attribute, then use its output to canonicalize URLs, and build it back up
into a string.
- html/HTMLImageElement.h:
(WebCore::HTMLImageElement::attributeContainsURL):
(WebCore::HTMLImageElement::completeUrlAttributeValue):
- html/parser/HTMLSrcsetParser.cpp: Make parseImageCandidatesFromSrcsetAttribute() public
and change its signature to return its result.
(WebCore::parseImageCandidatesFromSrcsetAttribute):
- html/parser/HTMLSrcsetParser.h: Ditto.
LayoutTests:
Copy and paste a srcset image with relative URLs, and make sure that the
pasted srcset attribute doesn't match what it was before. I can't actually
dump the new srcset because it will include a full path of the file on the
user's system, and would therefore be machine-specific.
- editing/pasteboard/img-srcset-copy-paste-canonicalization-expected.txt:
- editing/pasteboard/img-srcset-copy-paste-canonicalization.html: Paste and check.
- editing/pasteboard/resources/img-srcset-copy-paste-canonicalization-iframe.html:
This has to be an iframe because we don't perform any url canonicalization if we
are copying and pasting from a document into itself.
- 12:06 PM Changeset in webkit [171940] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: Timeline header height doesn't match style updates.
https://bugs.webkit.org/show_bug.cgi?id=135516
Reviewed by Timothy Hatcher.
Update the timeline header height to match the updates
to the navigation bars in other panels made in
https://bugs.webkit.org/show_bug.cgi?id=135445. Also
update the shadows on some of the search bars.
- UserInterface/Views/FilterBar.css:
(.filter-bar > input[type="search"]):
(body.mac-platform.legacy .filter-bar > input[type="search"]):
- UserInterface/Views/FindBanner.css:
(.find-banner > input[type="search"]):
(body.mac-platform.legacy .find-banner > input[type="search"]):
- UserInterface/Views/LogContentView.css:
(.search-bar.log-search-bar > input[type="search"]):
(body.mac-platform.legacy .search-bar.log-search-bar > input[type="search"]):
Remove inset shadows on search bars.
- UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .status-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-status):
(.sidebar > .panel.navigation.timeline > .title-bar.timelines):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timelines):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(.sidebar > .panel.navigation.timeline > .timelines-content):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content):
(.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .empty-content-placeholder):
Update the height of the timeline status bar.
- 11:57 AM Changeset in webkit [171939] by
-
- 87 edits in trunk/Source
Remove the JSC::OverridesVisitChildren flag.
<https://webkit.org/b/135489>
Source/JavaScriptCore:
Except for 3 special classes, the visitChildren() call is always
dispatched through the method table (see SlotVisitor.cpp.)
The OverridesVisitChildren flag doesn't actually do anything.
It could be used to implement a non-virtual direct call to
JSCell::visitChildren, bypassing the method table for some objects,
but such a micro-optimization seems like a weak trade for all this
code complexity. Instead, just remove the flag.
This change frees up an inline flag bit in JSCell.
Reviewed by Geoffrey Garen.
- API/JSAPIWrapperObject.h:
- API/JSAPIWrapperObject.mm:
(JSC::JSAPIWrapperObject::visitChildren):
- API/JSCallbackObject.h:
(JSC::JSCallbackObject::visitChildren):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedFunctionExecutable::visitChildren):
(JSC::UnlinkedCodeBlock::visitChildren):
(JSC::UnlinkedProgramCodeBlock::visitChildren):
- bytecode/UnlinkedCodeBlock.h:
- debugger/DebuggerScope.cpp:
(JSC::DebuggerScope::visitChildren):
- debugger/DebuggerScope.h:
- jsc.cpp:
- runtime/Arguments.cpp:
(JSC::Arguments::visitChildren):
- runtime/Arguments.h:
- runtime/Executable.cpp:
(JSC::EvalExecutable::visitChildren):
(JSC::ProgramExecutable::visitChildren):
(JSC::FunctionExecutable::visitChildren):
- runtime/Executable.h:
- runtime/GetterSetter.cpp:
(JSC::GetterSetter::visitChildren):
- runtime/GetterSetter.h:
(JSC::GetterSetter::createStructure):
- runtime/JSAPIValueWrapper.h:
(JSC::JSAPIValueWrapper::createStructure):
- runtime/JSActivation.cpp:
(JSC::JSActivation::visitChildren):
- runtime/JSActivation.h:
- runtime/JSArrayIterator.cpp:
(JSC::JSArrayIterator::visitChildren):
- runtime/JSArrayIterator.h:
- runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::visitChildren):
- runtime/JSBoundFunction.h:
- runtime/JSCellInlines.h:
(JSC::JSCell::setStructure):
- runtime/JSFunction.cpp:
(JSC::JSFunction::visitChildren):
- runtime/JSFunction.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
- runtime/JSMap.h:
- runtime/JSMapIterator.cpp:
(JSC::JSMapIterator::visitChildren):
- runtime/JSMapIterator.h:
- runtime/JSNameScope.cpp:
(JSC::JSNameScope::visitChildren):
- runtime/JSNameScope.h:
- runtime/JSPromise.cpp:
(JSC::JSPromise::visitChildren):
- runtime/JSPromise.h:
- runtime/JSPromiseDeferred.cpp:
(JSC::JSPromiseDeferred::visitChildren):
- runtime/JSPromiseDeferred.h:
- runtime/JSPromiseReaction.cpp:
(JSC::JSPromiseReaction::visitChildren):
- runtime/JSPromiseReaction.h:
- runtime/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::visitChildren):
- runtime/JSPropertyNameIterator.h:
- runtime/JSProxy.cpp:
(JSC::JSProxy::visitChildren):
- runtime/JSProxy.h:
- runtime/JSScope.cpp:
(JSC::JSScope::visitChildren):
- runtime/JSScope.h:
- runtime/JSSegmentedVariableObject.cpp:
(JSC::JSSegmentedVariableObject::visitChildren):
- runtime/JSSegmentedVariableObject.h:
- runtime/JSSet.h:
- runtime/JSSetIterator.cpp:
(JSC::JSSetIterator::visitChildren):
- runtime/JSSetIterator.h:
- runtime/JSSymbolTableObject.cpp:
(JSC::JSSymbolTableObject::visitChildren):
- runtime/JSSymbolTableObject.h:
- runtime/JSTypeInfo.h:
(JSC::TypeInfo::overridesVisitChildren): Deleted.
- runtime/JSWeakMap.h:
- runtime/JSWithScope.cpp:
(JSC::JSWithScope::visitChildren):
- runtime/JSWithScope.h:
- runtime/JSWrapperObject.cpp:
(JSC::JSWrapperObject::visitChildren):
- runtime/JSWrapperObject.h:
- runtime/MapData.h:
- runtime/NativeErrorConstructor.cpp:
(JSC::NativeErrorConstructor::visitChildren):
- runtime/NativeErrorConstructor.h:
- runtime/PropertyMapHashTable.h:
- runtime/PropertyTable.cpp:
(JSC::PropertyTable::visitChildren):
- runtime/RegExpConstructor.cpp:
(JSC::RegExpConstructor::visitChildren):
- runtime/RegExpConstructor.h:
- runtime/RegExpMatchesArray.cpp:
(JSC::RegExpMatchesArray::visitChildren):
- runtime/RegExpMatchesArray.h:
- runtime/RegExpObject.cpp:
(JSC::RegExpObject::visitChildren):
- runtime/RegExpObject.h:
- runtime/SparseArrayValueMap.h:
- runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::visitChildren):
- runtime/StructureChain.cpp:
(JSC::StructureChain::visitChildren):
- runtime/StructureChain.h:
- runtime/StructureRareData.cpp:
(JSC::StructureRareData::visitChildren):
- runtime/StructureRareData.h:
- runtime/WeakMapData.h:
Source/WebCore:
Tweak the bindings code generator to stop spitting out the flag.
Reviewed by Geoffrey Garen.
- bindings/js/JSDOMBinding.h:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::visitChildren):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
- 11:54 AM Changeset in webkit [171938] by
-
- 1 delete in tags/Safari-600.1.2.5/Safari-600.1.2.4
Remove extraneous tag.
- 11:53 AM Changeset in webkit [171937] by
-
- 2 edits in trunk/Source/WebCore
[MSE][Mac] Volume is not remembered between items in a YouTube playlist
https://bugs.webkit.org/show_bug.cgi?id=135479
Reviewed by Eric Carlson.
When an AVSampleBufferAudioRenderer is added to the player, set its -volume and -muted
properties with the current values from the HTMLMediaElement.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer):
- 11:50 AM Changeset in webkit [171936] by
-
- 3 edits1 copy in tags/Safari-600.1.2.5
Merge r171903. <rdar://problem/17877481>
- 11:44 AM Changeset in webkit [171935] by
-
- 4 edits in trunk/Tools
Confusing build fix after r171926.
- MiniBrowser/mac/AppDelegate.h:
- MiniBrowser/mac/AppDelegate.m:
- MiniBrowser/mac/SettingsController.m:
- 11:33 AM Changeset in webkit [171934] by
-
- 2 edits in tags/Safari-600.1.4.3/Source/WebCore
Merge r171259. <rdar://problem/17718984>
- 11:32 AM Changeset in webkit [171933] by
-
- 2 edits in tags/Safari-600.1.4.3/Source/WebCore
Merge r171259. <rdar://problem/17718984>
- 11:30 AM Changeset in webkit [171932] by
-
- 2 edits in trunk/Source/WebCore
Fix the iOS build after r171891
- platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::platformTopContentInset):
(WebCore::ScrollView::platformSetTopContentInset):
- 11:29 AM Changeset in webkit [171931] by
-
- 15 edits in trunk/Source/WebCore
Remove EventNames.h include from header files
https://bugs.webkit.org/show_bug.cgi?id=135486
Reviewed by Alexey Proskuryakov.
No new tests because no functional changes.
- Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:
- Modules/gamepad/GamepadEvent.h:
- Modules/indexeddb/IDBRequest.h:
- Modules/indexeddb/IDBTransaction.h:
- Modules/mediastream/RTCStatsResponse.h:
- Modules/websockets/WebSocket.h:
- css/FontLoader.h:
- dom/SecurityPolicyViolationEvent.h:
- loader/appcache/DOMApplicationCache.h:
- workers/AbstractWorker.h:
- workers/Worker.h:
- workers/WorkerGlobalScope.h:
- xml/XMLHttpRequest.h:
- xml/XMLHttpRequestProgressEvent.h:
- 11:28 AM Changeset in webkit [171930] by
-
- 5 edits in tags/Safari-600.1.4.3/Source
Versioning.
- 11:26 AM Changeset in webkit [171929] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171259. <rdar://problem/17718984>
- 11:22 AM Changeset in webkit [171928] by
-
- 6 edits in trunk/Source/WebKit2
<rdar://problem/17862013> REGRESSION (r169357): Disabling "allow plug-ins" doesn't stick on quit/relaunch
https://bugs.webkit.org/show_bug.cgi?id=135511
Reviewed by Alexey Proskuryakov.
Since the values map in the preferences store doesn’t include values that are equal to the
defaults, we need to update it when a new default is registered.
- UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::createWithLegacyDefaults): Changed to use new member functions
for registering defaults.
(WebKit::WebPreferences::registerDefaultBoolValueForKey): Added. Sets an override default
in the store, and sets the user default, if there is one, on top of it.
(WebKit::WebPreferences::registerDefaultUInt32ValueForKey): Ditto.
- UIProcess/WebPreferences.h: Declared new member functions for getting the user default
value for a key.
- UIProcess/efl/WebPreferencesEfl.cpp:
(WebKit::WebPreferences::platformGetStringUserValueForKey): Added an implementation that
returns false, because the EFL port doesn’t support persistent user defaults.
(WebKit::WebPreferences::platformGetBoolUserValueForKey): Ditto.
(WebKit::WebPreferences::platformGetUInt32UserValueForKey): Ditto.
(WebKit::WebPreferences::platformGetDoubleUserValueForKey): Ditto.
- UIProcess/gtk/WebPreferencesGtk.cpp:
(WebKit::WebPreferences::platformGetStringUserValueForKey): Ditto for the GTK port.
(WebKit::WebPreferences::platformGetBoolUserValueForKey): Ditto.
(WebKit::WebPreferences::platformGetUInt32UserValueForKey): Ditto.
(WebKit::WebPreferences::platformGetDoubleUserValueForKey): Ditto.
- UIProcess/mac/WebPreferencesMac.mm:
(WebKit::WebPreferences::platformGetStringUserValueForKey): Added. Replaces
setStringValueIfInUserDefaults, on which it is based.
(WebKit::WebPreferences::platformGetBoolUserValueForKey): Similarly for booleans.
(WebKit::WebPreferences::platformGetUInt32UserValueForKey): Similarly for integers.
(WebKit::WebPreferences::platformGetDoubleUserValueForKey): Similarly for doubles.
(WebKit::WebPreferences::platformInitializeStore): Changed to use the above functions.
- 11:21 AM Changeset in webkit [171927] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171259. <rdar://problem/17718984>
- 11:21 AM Changeset in webkit [171926] by
-
- 8 edits2 adds in trunk/Tools
Make it easer to add switches to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=135499
Reviewed by Simon Fraser.
Add a single class to manage a set of persistent, global settings for MiniBrowser.
Add a new menu that contains items to toggle the aforementioned settings (moving them out of the Debug menu).
- MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
Add SettingsController.{m, h}.
- MiniBrowser/mac/AppDelegate.h:
Move _browserWindowControllers to the implementation.
Get rid of toggleUseWebKit2ByDefault, because SettingsController now takes care
of that; instead, we'll receive didChangeSettings.
- MiniBrowser/mac/AppDelegate.m:
Move the default URL, default URL preference key, and use-WebKit2-by-default
preference key into SettingsController.
(-[BrowserAppDelegate awakeFromNib]):
Add the dynamically-generated SettingsController menu just to the left of the Debug menu.
(-[BrowserAppDelegate newWindow:]):
Ask SettingsController if we should use WebKit2 by default, and what the initial URL to load is.
(-[BrowserAppDelegate applicationDidFinishLaunching:]):
SettingsController now takes care of reading the default URL preference.
WK1BrowserWindowController now takes care of enabling the developer extras, via WebPreferences.
(-[BrowserAppDelegate didChangeSettings]):
When settings change, update the key equivalents for the new-window menu items, as they
might have changed (as use-WebKit2-by-default is one of the settings).
Dispatch settings change notifications to all live BrowserControllers.
(-[BrowserAppDelegate _updateNewWindowKeyEquivalents]):
(-[BrowserAppDelegate toggleUseWebKit2ByDefault:]): Deleted.
(-[BrowserAppDelegate _useWebKit2ByDefault]): Deleted.
(-[BrowserAppDelegate validateMenuItem:]): Deleted.
All menu item validation for settings is moved into SettingsController.
- MiniBrowser/mac/BrowserWindowController.h:
Simplify the BrowserWindowController interface; "toggling" settings will happen inside SettingsController,
the BrowserWindowController subclasses will be able to a) know when any setting changes, b) query the current setting state.
- MiniBrowser/mac/MainMenu.xib:
Remove the settings menu items from the "Debug" menu.
- MiniBrowser/mac/SettingsController.h: Added.
- MiniBrowser/mac/SettingsController.m: Added.
(+[SettingsController shared]):
(-[SettingsController menu]):
(-[SettingsController _addItemWithTitle:action:indented:]):
(-[SettingsController _addHeaderWithTitle:]):
NSMenuItem-creating helpers.
(-[SettingsController _populateMenu]):
Build the menu. Ideally this and the validation step would eventually be made more dynamic.
(-[SettingsController validateMenuItem:]):
Validate menu items; since they can be used to toggle the default state of a setting,
we'll always return YES. However, we will use this opportunity to set the 'checked' state
of each item.
(-[SettingsController _toggleBooleanDefault:]):
Toggle the given boolean default, and notify BrowserAppDelegate that something changed.
(-[SettingsController toggleUseWebKit2ByDefault:]):
(-[SettingsController useWebKit2ByDefault]):
(-[SettingsController toggleUseTransparentWindows:]):
(-[SettingsController useTransparentWindows]):
(-[SettingsController toggleUsePaginatedMode:]):
(-[SettingsController usePaginatedMode]):
(-[SettingsController toggleUseUISideCompositing:]):
(-[SettingsController useUISideCompositing]):
(-[SettingsController toggleShowLayerBorders:]):
(-[SettingsController layerBordersVisible]):
(-[SettingsController toggleShowTiledScrollingIndicator:]):
(-[SettingsController tiledScrollingIndicatorVisible]):
(-[SettingsController toggleEnableSubPixelCSSOMMetrics:]):
(-[SettingsController subPixelCSSOMMetricsEnabled]):
(-[SettingsController defaultURL]):
Toggle or return the current state of each preference.
- MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController awakeFromNib]):
(-[WK1BrowserWindowController validateMenuItem:]):
(-[WK1BrowserWindowController windowWillClose:]):
(-[WK1BrowserWindowController find:]):
(-[WK1BrowserWindowController dumpSourceToConsole:]):
(-[WK1BrowserWindowController didChangeSettings]):
(-[WK1BrowserWindowController webView:didReceiveTitle:forFrame:]):
(-[WK1BrowserWindowController isPaginated]): Deleted.
(-[WK1BrowserWindowController togglePaginationMode:]): Deleted.
(-[WK1BrowserWindowController toggleTransparentWindow:]): Deleted.
(-[WK1BrowserWindowController isSubpixelCSSOMElementMetricsEnabled]): Deleted.
(-[WK1BrowserWindowController toggleSubpixelCSSOMElementMetricsEnabled:]): Deleted.
(-[WK1BrowserWindowController layerBordersVisible]): Deleted.
(-[WK1BrowserWindowController toggleLayerBordersVisibility:]): Deleted.
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController forceRepaint:]):
(-[WK2BrowserWindowController windowWillClose:]):
(-[WK2BrowserWindowController didChangeSettings]):
(-[WK2BrowserWindowController isPaginated]): Deleted.
(-[WK2BrowserWindowController togglePaginationMode:]): Deleted.
(-[WK2BrowserWindowController toggleTransparentWindow:]): Deleted.
(-[WK2BrowserWindowController isUISideCompositingEnabled]): Deleted.
(-[WK2BrowserWindowController toggleUISideCompositing:]): Deleted.
(-[WK2BrowserWindowController layerBordersVisible]): Deleted.
(-[WK2BrowserWindowController toggleLayerBordersVisibility:]): Deleted.
(-[WK2BrowserWindowController tiledScrollingIndicatorVisible]): Deleted.
(-[WK2BrowserWindowController toggleTiledScrollingIndicatorVisibility:]): Deleted.
- 11:20 AM Changeset in webkit [171925] by
-
- 2 edits in trunk/Source/WebCore
nullptr goodness in RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=135512
Reviewed by Brent Fulgham.
Use nullptr in RenderLayer.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateDescendantDependentFlags):
(WebCore::accumulateOffsetTowardsAncestor):
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::destroyScrollbar):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::hitTestList):
(WebCore::RenderLayer::calculateClipRects):
- 11:19 AM Changeset in webkit [171924] by
-
- 3 edits in trunk/Tools
MiniBrowser doesn't support data URLs
https://bugs.webkit.org/show_bug.cgi?id=135492
Reviewed by Simon Fraser.
- MiniBrowser/mac/BrowserWindowController.m:
(-[BrowserWindowController addProtocolIfNecessary:]):
Don't add http:// to data: URLs.
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController fetch:]):
(-[WK2BrowserWindowController updateTextFieldFromURL:]):
Percent-escape the contents of the address field before trying to make a URL.
Percent-unescape the URL when displaying it in the address field.
This is not great, but trivial and good-enough-for-Minibrowser.
- 11:16 AM Changeset in webkit [171923] by
-
- 2 edits in trunk/Source/WebCore
Build fix for iOS
- bindings/objc/DOM.mm:
(-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
We use CGImageRef instead of NSImage here on iOS.
- 11:13 AM WebKitGTK/KeepingTheTreeGreen edited by
- (diff)
- 10:46 AM Changeset in webkit [171922] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Versioning.
- 10:44 AM Changeset in webkit [171921] by
-
- 1 copy in tags/Safari-600.1.4.3
New Tag.
- 10:38 AM Changeset in webkit [171920] by
-
- 2 edits in trunk/Source/WebKit2
[Mac] Fullscreen mode for some applications shows only a black screen.
https://bugs.webkit.org/show_bug.cgi?id=135493
<rdar://problem/17628212>
Reviewed by Jer Noble.
In some applications, the window hosting the WKView is an InProcess layer hosting mode.
The fullscreen window created by the WKFullScreenWindowController defaults to an
OutOfProcess mode.
When this kind of mismatch is encountered, the WK2 layer in the UI process is supposed
to send a message back to the WebProcess indicating that the layer hosting mode of the
containing window is different, so that the WebProcess can adjust its logic accordingly.
Unfortunately, the notification that this had happened was not getting sent to the
WebProcess due to an optimization in window state change logic (see Bug 135509 for
details).
The fix is to check layer hosting mode state when a WKView is added to a window, and
notify the WebProcess when it needs to change state to match.
- UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]): When moving to a new window, always call
'layerHostingModeDidChange' to pick up any changes in the layer hosting mode.
- 10:32 AM Changeset in webkit [171919] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171895. <rdar://problem/17835345>
- 10:02 AM Changeset in webkit [171918] by
-
- 1 copy in tags/Safari-600.1.2.5/Safari-600.1.2.4
New Tag.
- 9:15 AM Changeset in webkit [171917] by
-
- 2 edits in trunk/Source/WebCore
ASSERTION FAILED: listNode in WebCore::RenderListItem::updateListMarkerNumbers
https://bugs.webkit.org/show_bug.cgi?id=134970
Patch by Renato Nagy <nagy.renato@stud.u-szeged.hu> on 2014-08-01
Reviewed by Zalan Bujtas.
Removed an unnecessary assert, because the null return value of enclosingList() is
handled properly after this assert.
- rendering/RenderListItem.cpp:
(WebCore::RenderListItem::updateListMarkerNumbers):
- 6:42 AM Changeset in webkit [171916] by
-
- 4 edits in trunk/LayoutTests
Unreviewed EFL gardening
Add test expectations for failing tests. Remove flaky test expectations that are
no longer correct.
- platform/efl/TestExpectations:
- platform/efl/fast/text/khmer-lao-font-expected.txt: Update expected result.
- svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt: Update after r171046.
- 6:34 AM Changeset in webkit [171915] by
-
- 7 edits in trunk
[CMake] GTK and EFL are using PROJECT_VERSION_PATCH to define the micro version
https://bugs.webkit.org/show_bug.cgi?id=135501
Reviewed by Gyuyoung Kim.
Use PROJECT_VERSION_MICRO instead.
.:
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/WebKitHelpers.cmake:
Source/WebKit2:
- UIProcess/API/efl/EWebKit2.h.in:
- UIProcess/API/gtk/WebKitVersion.h.in:
- 3:48 AM Changeset in webkit [171914] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed. Add missing sections to documentation.
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add
WebKitUserContent and WebKitUserContentManager sections to the
documentation.
- 2:59 AM Changeset in webkit [171913] by
-
- 1 copy in releases/WebKitGTK/webkit-2.5.1
WebKitGTK+ 2.5.1
- 1:14 AM Changeset in webkit [171912] by
-
- 2 edits in trunk/LayoutTests
Unreviewed EFL gardening
Update test expectations for crashing webgl tests.
- platform/efl/TestExpectations:
- 12:26 AM Changeset in webkit [171911] by
-
- 2 edits in trunk/Source/WebCore
Replace DEPRECATED_DEFINE_STATIC_LOCAL with NeverDestroyed<T> in NavigatorContentUtils
https://bugs.webkit.org/show_bug.cgi?id=135494
Reviewed by Andrei Bucur.
Use static NeverDestroyed<T> variables instead of the DEPRECATED_DEFINE_STATIC_LOCAL macro.
No new tests, no behavior changes.
- Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::customHandlersStateString):
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
- 12:24 AM Changeset in webkit [171910] by
-
- 2 edits in trunk/Source/WebKit2
[EFL] Unable to do make install since r171901
https://bugs.webkit.org/show_bug.cgi?id=135497
Reviewed by Gyuyoung Kim.
- PlatformEfl.cmake: Removed ewk_defins.h from the installation list.
Jul 31, 2014:
- 10:02 PM EFLWebKit edited by
- (diff)
- 10:00 PM Changeset in webkit [171909] by
-
- 2 edits in trunk
[EFL] Bump ewebkit version to 1.11
https://bugs.webkit.org/show_bug.cgi?id=135487
Reviewed by Gyuyoung Kim.
- Source/cmake/OptionsEfl.cmake: Bump version numbers.
- 9:07 PM Changeset in webkit [171908] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: "Stop Recording" button feels unresponsive, recording takes a long time to stop
https://bugs.webkit.org/show_bug.cgi?id=135490
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-31
Reviewed by Timothy Hatcher.
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.stopCapturing):
Immediately stop the recording without waiting for an event from the backend.
This makes the Web Inspector UI feel responsive to the user stopping the recording.
This also matches behavior before r171195.
- 8:42 PM Changeset in webkit [171907] by
-
- 6 edits in trunk/Source/WebCore
Remove shadowPseudoId() override from the shadow media controls
https://bugs.webkit.org/show_bug.cgi?id=135474
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-31
Reviewed by Eric Carlson.
Small cleanup.
- html/shadow/MediaControlElementTypes.h:
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::MediaControlPanelElement):
(WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement):
(WebCore::MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement):
(WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement):
(WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):
(WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):
(WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement):
(WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement):
(WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
(WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement):
(WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement):
(WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement):
(WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement):
(WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement):
(WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
(WebCore::MediaControlPanelVolumeSliderElement::MediaControlPanelVolumeSliderElement):
(WebCore::MediaControlFullscreenVolumeSliderElement::MediaControlFullscreenVolumeSliderElement):
(WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
(WebCore::MediaControlFullscreenVolumeMinButtonElement::MediaControlFullscreenVolumeMinButtonElement):
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::MediaControlFullscreenVolumeMaxButtonElement):
(WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement):
(WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement):
(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
(WebCore::MediaControlPanelElement::shadowPseudoId): Deleted.
(WebCore::MediaControlPanelEnclosureElement::shadowPseudoId): Deleted.
(WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId): Deleted.
(WebCore::MediaControlTimelineContainerElement::shadowPseudoId): Deleted.
(WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId): Deleted.
(WebCore::MediaControlStatusDisplayElement::shadowPseudoId): Deleted.
(WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlPlayButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlRewindButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId): Deleted.
(WebCore::MediaControlClosedCaptionsTrackListElement::shadowPseudoId): Deleted.
(WebCore::MediaControlTimelineElement::shadowPseudoId): Deleted.
(WebCore::MediaControlPanelVolumeSliderElement::shadowPseudoId): Deleted.
(WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId): Deleted.
(WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId): Deleted.
(WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId): Deleted.
(WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId): Deleted.
(WebCore::MediaControlTextTrackContainerElement::textTrackContainerElementShadowPseudoId): Deleted.
(WebCore::MediaControlTextTrackContainerElement::shadowPseudoId): Deleted.
- html/shadow/MediaControlElements.h:
- html/shadow/MediaControls.cpp:
(WebCore::MediaControls::MediaControls):
(WebCore::MediaControls::shadowPseudoId): Deleted.
- html/shadow/MediaControls.h:
- 7:20 PM Changeset in webkit [171906] by
-
- 4 edits in trunk
[EFL][WK2] MiniBrower comes to crash when combo box is pressed
https://bugs.webkit.org/show_bug.cgi?id=135378
Reviewed by Gyuyoung Kim.
Source/WebKit2:
Added doxygen comment of popup_menu_show/popup_menu_hide not to confuse the usage.
- UIProcess/API/efl/ewk_view.h:
Tools:
"clicked" signal of elm_menu is emitted after EwkView calls popup_menu_hide
and removes Ewk_Popup_Menu instance.
- MiniBrowser/efl/main.c:
(on_popup_menu_show):
(on_popup_menu_discarded): Deleted.
- 6:26 PM Changeset in webkit [171905] by
-
- 2 edits in trunk/Source/WebCore
Build fix for platforms where we should have automaticallyAdjustsContentInsets but it isn't public yet
- platform/mac/ScrollViewMac.mm:
- 6:26 PM Changeset in webkit [171904] by
-
- 4 edits in trunk
[EFL] Add support for building with Geoclue2.
https://bugs.webkit.org/show_bug.cgi?id=135455
Reviewed by Gyuyoung Kim.
.:
- Source/cmake/OptionsEfl.cmake: Add gio-unix if ENABLE_GEOLOCATION
is set.
Source/WebCore:
No new tests required, no new functionality.
- PlatformEfl.cmake: Generate derived sources for Geoclue2Interface
and include gio-unix path.
- 6:15 PM Changeset in webkit [171903] by
-
- 3 edits1 add in trunk
[Win] Use RC_PROJECTBUILDVERSION as build portion of version
https://bugs.webkit.org/show_bug.cgi?id=135478
Reviewed by David Kilzer.
Tools:
Add new test suite for the version-stamp program.
- Scripts/webkitperl/auto-version_unittest/versionStampTests.pl: Added.
WebKitLibraries:
- win/tools/scripts/version-stamp.pl: Check environment for
RC_PROJECTBUILDVERSION, and use it for the build portion of
the file version resource. Otherwise, use the VERSION_BUILD
value we calculated from the version string.
- 6:01 PM Changeset in webkit [171902] by
-
- 3 edits in trunk/Tools
Reverted r171893, because it broke http/tests/appcache/different-https-origin-resource-main.html,
which loads HTTPS content without calling the delegate.
Rubber-stamped by Alexey Proskuryakov.
- WebKitTestRunner/InjectedBundle/ios/InjectedBundleIOS.mm:
(WTR::InjectedBundle::platformInitialize):
- WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:
(WTR::InjectedBundle::platformInitialize):
- 5:53 PM Changeset in webkit [171901] by
-
- 3 edits1 delete in trunk/Source/WebKit2
[EFL] remove ewk_defines.h
https://bugs.webkit.org/show_bug.cgi?id=135456
Reviewed by Gyuyoung Kim.
- UIProcess/API/efl/ewk_context_menu.h:
- UIProcess/API/efl/ewk_context_menu_item.h: Moved the declaration from ewk_defines.h
- UIProcess/API/efl/ewk_defines.h: Removed.
- 5:50 PM Changeset in webkit [171900] by
-
- 2 edits in trunk/Tools
Unreviewed typo correction (and build fix).
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController awakeFromNib]): Use correct
property name (_fullScreenIsEnabled -> _fullScreenEnabled)
- 5:39 PM Changeset in webkit [171899] by
-
- 3 edits in trunk/Source/WebKit2
Unreviewed typo correction.
https://bugs.webkit.org/show_bug.cgi?id=135482
Rename '_fullScreenIsEnabled' -> '_fullScreenEnabled'
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _fullScreenEnabled]): Added
(-[WKPreferences _fullScreenIsEnabled]): Deleted.
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- 5:26 PM Changeset in webkit [171898] by
-
- 2 edits in trunk/LayoutTests
platform/mac/fast/scrolling/scroll-select-bottom-test.html failing on Mavericks
(after 171891?)
https://bugs.webkit.org/show_bug.cgi?id=135485
Skipping this test for now to allow some time to investigate the failure.
- platform/mac/TestExpectations:
- 5:15 PM Changeset in webkit [171897] by
-
- 5 edits in trunk
MiniBrowser Should Support Fullscreen Videos in WebKit2 Mode
https://bugs.webkit.org/show_bug.cgi?id=135482
Reviewed by Simon Fraser.
Source/WebKit2:
Add accessors for the missing Fullscreen API so that MiniBrowser
can use them.
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _fullScreenIsEnabled]): Added.
(-[WKPreferences _setFullScreenEnabled:]): Added.
- UIProcess/API/Cocoa/WKPreferencesPrivate.h: Add accessor for
Fullscreen mode.
Tools:
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController awakeFromNib]): Activate the Fullscreen
feature.
- 4:55 PM Changeset in webkit [171896] by
-
- 5 edits in trunk/Source/WebCore
Subpixel rendering: Region painting needs to take subpixel accumulation into account.
https://bugs.webkit.org/show_bug.cgi?id=135469
Similar to non-region painting, when the context is translated, we need to propagate
the subpixel difference so that renderers get snapped to the same position as if they
were not part of a region.
Reviewed by Simon Fraser.
Covered by existing tests/not testable (webkit.org/b/135470)
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
- page/FrameView.cpp:
(WebCore::FrameView::paintContents):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paint):
(WebCore::RenderLayer::calculateClipRects):
- rendering/RenderLayer.h:
- 4:52 PM Changeset in webkit [171895] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Video in an <embed> has a bad aspect ratio when in fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=135481
Reviewed by Simon Fraser.
Do not change the gravity of our AVPlayerLayer when in full screen mode; its gravity
is controlled by setVideoFullscreenGravity(), and should not be affected by style changes.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
- 4:17 PM Changeset in webkit [171894] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Timeline recording is not working inspecting iOS 7 and earlier
https://bugs.webkit.org/show_bug.cgi?id=135466
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-31
Reviewed by Timothy Hatcher.
Start / stop capturing for older backends that won't emit start / stop events.
- UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Agent.prototype.hasEvent):
Provide a way to check if an event is supported.
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.stopCapturing):
Fallback to starting and stopping capturing manually if the backend
does not provide the events.
- 3:56 PM Changeset in webkit [171893] by
-
- 3 edits in trunk/Tools
[Mac, iOS] Remove -setAllowsAnyHTTPSCertificate calls
https://bugs.webkit.org/show_bug.cgi?id=135472
Reviewed by Dan Bernstein.
We now handle server trust challenges, and don't need such hacks.
- WebKitTestRunner/InjectedBundle/ios/InjectedBundleIOS.mm:
(WTR::InjectedBundle::platformInitialize):
- WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:
(WTR::InjectedBundle::platformInitialize):
- 3:45 PM Changeset in webkit [171892] by
-
- 1 edit1 add in trunk/LayoutTests
Test failure fix. I accidentally removed this file that is still used by another
test in the directory.
- platform/mac-wk2/tiled-drawing/resources/iframe-to-hit-test.html: Added.
- 3:32 PM Changeset in webkit [171891] by
-
- 15 edits5 moves1 add in trunk
Hit-testing broken in WebKit 1 views with AppKit's contentInsets
https://bugs.webkit.org/show_bug.cgi?id=135434
-and corresponding-
<rdar://problem/17850323>
Reviewed by Benjamin Poulain.
Source/WebCore:
AppKit's contentInsets are factored into scroll positions and mouse positions, but
in WebCore, we generally want all of those things to be factored out so that, for
example, the scroll position of a document pinned to the top is the same whether
or not there is a contentInset. So to fix hit-testing in WebKit 1 views with
contentInsets, this patch factors the inset out or into of all coordinate
conversion methods just like we do for the WebKit2 contentInset.
This patch also adds the ability to test WK1 platformContentInsets with
window.internals, and it re-names convertFromRenderer to
convertFromRendererToContainingView and also re-names convertToRenderer to
convertFromContainingViewToRenderer.
ScrollView::topContentInset() takes an optional parameter indicating whether the
caller wants the WebCore::Page contentInset or the platform content inset. It’s
necessary to distinguish between these cases because there is a lot of code that
only wants the WebCore::Page contentInset since that feature is actually
implemented in WebCore as opposed to being implemented at the platform level.
- WebCore.exp.in:
- page/FrameView.cpp:
(WebCore::FrameView::topContentInset):
For layout test purposes, set the platforTopContentInset here if there is a
platformWidget().
(WebCore::FrameView::topContentInsetDidChange):
Re-named functions, also all coordinate conversion functions call
topContentInset(ManualOrPlatformContentInset)
(WebCore::FrameView::convertFromContainingViewToRenderer):
(WebCore::FrameView::convertToContainingView):
(WebCore::FrameView::convertFromContainingView):
(WebCore::FrameView::convertFromRenderer): Deleted.
(WebCore::FrameView::convertToRenderer): Deleted.
- page/FrameView.h:
- page/Page.cpp:
(WebCore::Page::setTopContentInset):
- platform/ScrollView.cpp:
(WebCore::ScrollView::documentScrollOffsetRelativeToViewOrigin):
(WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin):
(WebCore::ScrollView::contentsToRootView):
(WebCore::ScrollView::rootViewToTotalContents):
(WebCore::ScrollView::contentsToWindow):
(WebCore::ScrollView::platformTopContentInset):
(WebCore::ScrollView::platformSetTopContentInset):
- platform/ScrollView.h:
(WebCore::ScrollView::topContentInset):
- platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::platformTopContentInset):
(WebCore::ScrollView::platformSetTopContentInset):
Implement new platform inset-related functions using AppKit's implementation.
- platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformTopContentInset):
(WebCore::ScrollView::platformSetTopContentInset):
When we set the scroll position for the documentView, we have to factor the inset
back into the WebCore scroll position.
(WebCore::ScrollView::platformSetScrollPosition):
Re-named functions.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::convertFromScrollbarToContainingView):
(WebCore::RenderLayer::convertFromContainingViewToScrollbar):
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::convertFromScrollbarToContainingView):
(WebCore::RenderListBox::convertFromContainingViewToScrollbar):
Source/WebKit2:
Re-named functions.
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::convertFromScrollbarToContainingView):
(WebKit::PDFPlugin::convertFromContainingViewToScrollbar):
LayoutTests:
These hit-testing related contentInset tests will now work for mac on wk1 on
Yosemite and wk2.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/tiled-drawing/content-inset-hit-testing-expected.txt: Removed.
- platform/mac-wk2/tiled-drawing/content-inset-hit-testing-in-frame-expected.txt: Removed.
- platform/mac-wk2/tiled-drawing/content-inset-hit-testing-in-frame.html: Removed.
- platform/mac-wk2/tiled-drawing/content-inset-hit-testing.html: Removed.
- platform/mac-wk2/tiled-drawing/resources/iframe-to-hit-test.html: Removed.
- platform/mac/fast/events/content-inset-hit-testing-expected.txt: Copied from platform/mac-wk2/tiled-drawing/content-inset-hit-testing-expected.txt.
- platform/mac/fast/events/content-inset-hit-testing-in-frame-expected.txt: Copied from platform/mac-wk2/tiled-drawing/content-inset-hit-testing-in-frame-expected.txt.
- platform/mac/fast/events/content-inset-hit-testing-in-frame.html: Copied from platform/mac-wk2/tiled-drawing/content-inset-hit-testing-in-frame.html.
- platform/mac/fast/events/content-inset-hit-testing.html: Copied from platform/mac-wk2/tiled-drawing/content-inset-hit-testing.html.
- platform/mac/fast/events/resources: Added.
- platform/mac/fast/events/resources/iframe-to-hit-test.html: Copied from platform/mac-wk2/tiled-drawing/resources/iframe-to-hit-test.html.
- 3:07 PM Changeset in webkit [171890] by
-
- 6 edits in trunk/Source/WebCore
Default buttons do not pulse in OS X 10.10
https://bugs.webkit.org/show_bug.cgi?id=135447
<rdar://problem/17875896>
Reviewed by Dan Bernstein.
OS X Yosemite does not have the animated pulsing default
buttons seen in previous releases. We don't need to have
a timer in RenderButton constantly triggering repaints.
- platform/mac/ThemeMac.mm:
(WebCore::paintButton): No need to advance the animation.
- rendering/RenderButton.cpp:
(WebCore::RenderButton::styleDidChange): Ask the theme if it
should advance the animation.
- rendering/RenderTheme.h:
(WebCore::RenderTheme::defaultButtonHasAnimation): Virtual function
indicating if the button needs to repaint.
- rendering/RenderThemeMac.h:
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::defaultButtonHasAnimation): Provide platform
specific result on Yosemite and above.
- 3:06 PM Changeset in webkit [171889] by
-
- 2 edits in trunk/Source/WebCore
DOM::renderedImageForcingBlackText returns an image with the wrong logical size on 2x displays
https://bugs.webkit.org/show_bug.cgi?id=135442
<rdar://problem/17614632>
Reviewed by Simon Fraser.
- bindings/objc/DOM.mm:
(-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
Scale the NSImage size by the device scale factor,
similar to what we did for drag images in r167403.
Ideally this scaling would happen in the code that
generates the images, but this is a much larger change
with much more regression potential.
- 2:56 PM Changeset in webkit [171888] by
-
- 3 edits in trunk/Source/JavaScriptCore
JSCell::classInfo() belongs in JSCellInlines.h.
<https://webkit.org/b/135475>
Reviewed by Mark Hahnenberg.
- runtime/JSCellInlines.h:
(JSC::JSCell::classInfo):
- runtime/JSDestructibleObject.h:
(JSC::JSCell::classInfo): Deleted.
- 2:48 PM Changeset in webkit [171887] by
-
- 2 edits in trunk/Source/WebKit2
Various SSO services need the networking process to be able to spoof its bundle id
https://bugs.webkit.org/show_bug.cgi?id=135468
<rdar://problem/17864139>
Reviewed by Alexey Proskuryakov.
Just add the entitlement required to allow the sandbox to let this happen.
- Configurations/Network-iOS.entitlements:
- 2:38 PM Changeset in webkit [171886] by
-
- 18 edits in trunk
[CSS Font Loading] Rename document.fontloader to document.fonts
https://bugs.webkit.org/show_bug.cgi?id=135393
Reviewed by Bem Jones-Bey.
Source/WebCore:
The most recent version of the specification has renamed
document.fontloader to document.fonts. This change updates the
names in WebCore and LayoutTests.
Fixed up existing tests under LayoutTests/fast/css/fontloader-*
and LayoutTests/http/webfont/fontloader-*
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::notifyFontLoader):
(WebCore::CSSFontFace::notifyLoadingDone):
- dom/Document.cpp:
(WebCore::Document::fonts):
(WebCore::Document::fontloader): Deleted.
- dom/Document.h:
- dom/Document.idl:
- page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks):
LayoutTests:
Update tests to use the new document.fonts name.
- fast/css/fontloader-download-error.html:
- fast/css/fontloader-events.html:
- fast/css/fontloader-loadingdone.html:
- fast/css/fontloader-multiple-faces-download-error-expected.txt:
- fast/css/fontloader-multiple-faces-download-error.html:
- fast/css/fontloader-multiple-faces-expected.txt:
- fast/css/fontloader-multiple-faces.html:
- fast/css/fontloader-multiple-families-expected.txt:
- fast/css/fontloader-multiple-families.html:
- http/tests/webfont/fontloader-loading-attribute-expected.txt:
- http/tests/webfont/fontloader-loading-attribute.html:
- 2:00 PM Changeset in webkit [171885] by
-
- 15 edits in trunk/Source/WebInspectorUI
Web Inspector: Sync button look and feel with Xcode updates.
https://bugs.webkit.org/show_bug.cgi?id=135445
Reviewed by Timothy Hatcher.
Update styles to match recent changes to Xcode text-only
buttons, the navigation bar, and search fields. Include
older style rules for older Mac platforms.
- UserInterface/Views/ButtonNavigationItem.css:
(.navigation-bar .item.button.text-only):
(body.mac-platform.legacy .navigation-bar .item.button.text-only):
- UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .navigation-bar):
(.sidebar > .panel.details.css-style > .content):
(body.mac-platform.legacy .sidebar > .panel.details.css-style > .content):
- UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger > .content):
(body.mac-platform.legacy .sidebar > .panel.navigation.debugger > .content):
- UserInterface/Views/DividerNavigationItem.css:
(.navigation-bar .item.divider):
(body.mac-platform.legacy .navigation-bar .item.divider):
- UserInterface/Views/FilterBar.css:
(.filter-bar):
(body.mac-platform.legacy .filter-bar):
(.filter-bar > input[type="search"]):
(body.mac-platform.legacy .filter-bar > input[type="search"]):
- UserInterface/Views/LogContentView.css:
(.search-bar.log-search-bar > input[type="search"]):
(@media reader):
(.log-search-bar > input): Deleted.
- UserInterface/Views/Main.css:
(#split-content-browser > .navigation-bar):
(body.mac-platform.legacy #split-content-browser > .navigation-bar):
- UserInterface/Views/NavigationBar.css:
(.navigation-bar):
(body.mac-platform.legacy .navigation-bar):
(.navigation-bar .item):
(body.mac-platform.legacy .navigation-bar .item):
- UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .content):
(body.mac-platform.legacy .sidebar > .panel.navigation > .content):
- UserInterface/Views/QuickConsole.css:
(.quick-console):
(body.mac-platform.legacy .quick-console):
- UserInterface/Views/RadioButtonNavigationItem.css:
(.navigation-bar .item.radio.button.text-only:hover):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only:hover):
(.navigation-bar .item.radio.button.text-only.selected):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected):
(.navigation-bar .item.radio.button.text-only:active):
(.navigation-bar .item.radio.button.text-only.selected:active):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected:active):
- UserInterface/Views/ResourceSidebarPanel.css:
(.sidebar > .panel.navigation.resource > .empty-content-placeholder):
(body.mac-platform.legacy .sidebar > .panel.navigation.resource > .empty-content-placeholder):
(.sidebar > .panel.navigation.resource > .search-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.resource > .search-bar):
(.sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
(body.mac-platform.legacy .sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
- UserInterface/Views/ScopeBar.css:
(.scope-bar > li):
(body.mac-platform.legacy .scope-bar > li):
(.scope-bar > li:hover):
(body.mac-platform.legacy .scope-bar > li:hover):
(.scope-bar > li.selected):
(.scope-bar > li:active):
(body.mac-platform.legacy .scope-bar > li:active):
(.scope-bar > li.selected:active):
(body.mac-platform.legacy .scope-bar > li.selected:active):
- UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]):
(body.mac-platform.legacy .search-bar > input[type="search"]):
Update styles and apply older styles to legacy Mac platforms.
- 1:22 PM Changeset in webkit [171884] by
-
- 7 copies in branches/safari-537.78-branch/LayoutTests
Merge in missing LayoutTests from merge of r169475 -> r171377.
- 1:19 PM Changeset in webkit [171883] by
-
- 2 edits in branches/safari-600.1-branch/WebKitLibraries
Merge r171870. <rdar://problem/17872507>
- 12:50 PM Changeset in webkit [171882] by
-
- 4 edits2 adds in trunk
REGRESSION: Search highlight is broken in RTL multicolumn content
https://bugs.webkit.org/show_bug.cgi?id=135452
Reviewed by Simon Fraser.
Source/WebCore:
The offsets for elements inside RTL multi-column elements are incorrectly computed because
the columns don't calculate their left position according to the writing direction.
The patch extracts the column position computation in two helper functions (for top and left)
so they can be used when needed in different parts of the code. In our case, the |columnLogicalLeft|
function should be used inside |columnTranslationForOffset|.
Test: fast/multicol/content-bounding-box-rtl.html
- rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::columnLogicalLeft): Return the logical left of a column relative to the set.
(WebCore::RenderMultiColumnSet::columnLogicalTop): Return the logical top of a column relative to the set.
(WebCore::RenderMultiColumnSet::columnRectAt): Split the code between columnLogicalLeft and columnLogicalTop.
(WebCore::RenderMultiColumnSet::collectLayerFragments): Make code clearer by adding a new line.
(WebCore::RenderMultiColumnSet::columnTranslationForOffset): Use columnLogicalLeft instead of duplicating logic.
- rendering/RenderMultiColumnSet.h:
LayoutTests:
A test that verifies the bounding boxes for content inside a RTL multi-column element are correctly computed:
- for static elements
- for relative positioned elements
- for absolutely positioned elements
- fast/multicol/content-bounding-box-rtl-expected.txt: Added.
- fast/multicol/content-bounding-box-rtl.html: Added.
- 12:47 PM Changeset in webkit [171881] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: MessageDispatcher should not synchronously dispatch all backend messages
https://bugs.webkit.org/show_bug.cgi?id=135427
Reviewed by Timothy Hatcher.
The frontend dispatches all queued messages from the backend synchronously, even if there are
hundreds of messages, or even if some of the messages take a long time (>10ms) to process.
This patch adds a time limit to the frontend's message dispatcher. If the time limit is exceeded
when processing the message queue, unhandled messages remain in the queue and the dispatcher goes
to sleep until the next run loop (obtained by a new setTimeout).
This has the effect of removing stutters when the message queue has hundreds of small messages.
The outliers are still the same since some single messages can take over 200ms to be handled.
This patch also improves performance logging in InspectorBackend so that it is easier to see
message handling times and their distribution among run loop turns.
- UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass): Add a new diagnostic flag that warns about slow message handling.
(InspectorBackendClass.prototype._dispatchCallback.get if): Improve logging.
(InspectorBackendClass.prototype._dispatchCallback): Improve logging.
(InspectorBackendClass.prototype._dispatchEvent): Improve logging.
- UserInterface/Protocol/MessageDispatcher.js:
(WebInspector.dispatchNextQueuedMessageFromBackend): Keep track of a time limit for message
dispatching, and set a new timeout if we exceed the time limit.
- 12:21 PM Changeset in webkit [171880] by
-
- 4 edits in trunk/Tools
media/track/add-and-remove-track.html and media/media-fragments/TC0001.html are flaky
on Mac WK2 EWS, asserting under TestRunner::removeAllWebNotificationPermissions
https://bugs.webkit.org/show_bug.cgi?id=135418
Reviewed by Anders Carlsson.
This was only happening in shared web process mode, because WKBundlePostMessage
has different behavior then. When there is no process, the message is dropped on
the floor in multiple process mode, but it's stored to be delivered after launch
in shared process mode.
So, calling resetStateToConsistentValues() resulted in storing a Reset bundle message
that was delivered immediately after launch, when there was nothing to reset.
We don't actually need to reset anything at this point, as the previous call has
already reset everything UI process side, and web process is brand new. All we need
is to reattach the page to a process, as invoke() expects one to exist.
- WebKitTestRunner/TestController.cpp: (WTR::TestController::reattachPageToWebProcess):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::invoke):
- 12:21 PM Changeset in webkit [171879] by
-
- 5 edits in tags/Safari-600.1.4.2/Source
Merge r171866. <rdar://problem/17872676>
- 12:17 PM Changeset in webkit [171878] by
-
- 2 edits in tags/Safari-600.1.2.5/WebKitLibraries
Merge r171870. <rdar://problem/17872507>
- 12:17 PM Changeset in webkit [171877] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Merge r171866. <rdar://problem/17872676>
- 12:13 PM Changeset in webkit [171876] by
-
- 5 edits in tags/Safari-600.1.2.5/Source
Versioning.
- 12:08 PM Changeset in webkit [171875] by
-
- 1 copy in tags/Safari-600.1.2.5
New Tag.
- 12:03 PM Changeset in webkit [171874] by
-
- 1 copy in tags/Safari-600.1.4.2
New Tag.
- 11:59 AM Changeset in webkit [171873] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebKit2
Merge r171829. <rdar://problem/17824833>
- 11:53 AM Changeset in webkit [171872] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171851. <rdar://problem/17719026>
- 11:20 AM Changeset in webkit [171871] by
-
- 7 edits in trunk/Source/WebCore
Eliminate "FractionConversion" from CSSPrimitiveValue::convertToLength
https://bugs.webkit.org/show_bug.cgi?id=135377
Reviewed by Darin Adler.
The FractionConversion argument in CSSPrimitiveValue::convertToLength
doesn't seem to actually have a purpose. It is for converting numbers
into Length(x * 100, Percent), but this case shouldn't be reachable.
The original patch introducing it doesn't shed any light either:
[https://bugs.webkit.org/show_bug.cgi?id=74913
This patch removes the now unused FractionConversion argument. Note
that we can probably also merge the two Fixed conversions, as the
two only differ in clamping large numbers (probably unintended).
No new tests.
- css/CSSCalculationValue.cpp:
(WebCore::determineCategory):
- css/CSSParser.cpp:
(WebCore::parseTransformTranslateArguments):
(WebCore::parseTranslateTransformValue):
(WebCore::parseTransformArguments): Deleted.
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::convertToLength):
- css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyClip::convertToLength):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::convertToIntLength):
(WebCore::StyleResolver::convertToFloatLength):
- css/TransformFunctions.cpp:
(WebCore::convertToFloatLength):
- 11:00 AM Changeset in webkit [171870] by
-
- 2 edits in trunk/WebKitLibraries
[Win] Fix build failure when using 5-tuple build versions.
https://bugs.webkit.org/show_bug.cgi?id=135464
<rdar://problem/17872507>
Reviewed by David Kilzer.
- win/tools/scripts/version-stamp.pl: Modify the environment for
the VersionStamper sub-process to work around bug in that tool.
- 10:42 AM Changeset in webkit [171869] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Right edge of Timeline Record button does not work
https://bugs.webkit.org/show_bug.cgi?id=135444
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-31
Reviewed by Timothy Hatcher.
When hovering the record button we would show the status text, however
because the left edge of the status text box would overlap the right
edge of the record button causing completely unexpected behavior.
Position the status text correctly so that it never overlaps the record
button. 5px to match the left margin of the record button, and another
2px for some padding between the button and text.
- UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
- 10:40 AM Changeset in webkit [171868] by
-
- 2 edits in trunk/Source/WebKit2
Fix uninitialized scalar variable
https://bugs.webkit.org/show_bug.cgi?id=135461
Patch by Przemyslaw Kuczynski <p.kuczynski@samsung.com> on 2014-07-31
Reviewed by Alexey Proskuryakov.
If fopen fails, returned ApplicationMemoryStats structure will be uninitialized
- Shared/linux/WebMemorySamplerLinux.cpp:
(WebKit::sampleMemoryAllocatedForApplication): Initialized applicationStats.
- 10:37 AM Changeset in webkit [171867] by
-
- 2 edits in trunk/Source/JavaScriptCore
Build warning in webkit/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
https://bugs.webkit.org/show_bug.cgi?id=135414
Patch by Tanay C <tanay.c@samsung.com> on 2014-07-31
Reviewed by Csaba Osztrogonác.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::putToScopeCommon):removed unused parameter from function definition
- 10:34 AM Changeset in webkit [171866] by
-
- 6 edits in trunk/Source
Web Inspector: console.profile missing profile information
https://bugs.webkit.org/show_bug.cgi?id=135432
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-31
Reviewed by Timothy Hatcher.
Source/WebCore:
By switching console.profile to start/stop the timeline we would
not have a chance to recompile JS functions with profiling information.
This used to work because whenever the inspector was open we would
have profiling information enabled. Go back to that behavior.
- inspector/InspectorController.cpp:
(WebCore::InspectorController::profilerEnabled):
Instead of checking if the timeline agent has started, check if the
timeline agent has been created. Going back to the normal behavior
of always having profiling information when the inspector is open.
- inspector/InspectorTimelineAgent.h:
- inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
Recompile initializing the timeline agent to include profiling information.
(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
Recompile destrying the timeline agent, only if needed.
(WebCore::InspectorTimelineAgent::willCallFunction):
(WebCore::InspectorTimelineAgent::didCallFunction):
(WebCore::InspectorTimelineAgent::willEvaluateScript):
(WebCore::InspectorTimelineAgent::didEvaluateScript):
Using a boolean to track nested calls would not give expected
behavior when un-nesting. Switch to a counter to ensure that
as we start profiling in the outermost level we then stop
profiling at that same level and not inside an inner nesting.
Source/WebInspectorUI:
- UserInterface/Models/ScriptTimelineRecord.js:
Delete the payload information as soon as it has been processed.
It is no longer needed anymore and can be garbage collected.
- 10:24 AM Changeset in webkit [171865] by
-
- 9 edits in trunk/LayoutTests
[CSS Font Loading] Test expectations should show success
https://bugs.webkit.org/show_bug.cgi?id=135420
Reviewed by Bem Jones-Bey.
Modify the expected files to represent success, and skip
the tests until the feature is enabled.
- TestExpectations: Skip the tests.
- fast/css/fontloader-download-error-expected.txt:
- fast/css/fontloader-events-expected.txt:
- fast/css/fontloader-loadingdone-expected.txt:
- fast/css/fontloader-multiple-faces-download-error-expected.txt:
- fast/css/fontloader-multiple-faces-expected.txt:
- fast/css/fontloader-multiple-families-expected.txt:
- http/tests/webfont/fontloader-loading-attribute-expected.txt:
- 10:20 AM Changeset in webkit [171864] by
-
- 7 edits in tags/Safari-600.1.3.3/Source
Roll out r171647. <rdar://problem/17315168>
- 10:18 AM Changeset in webkit [171863] by
-
- 5 edits9 deletes in tags/Safari-600.1.3.3
Roll out r171661. <rdar://problem/17315237>
- 10:16 AM Changeset in webkit [171862] by
-
- 6 edits in trunk/Source/WebCore
Refactor EventHandler to call ScrollAnimator::handleWheelEvent for overflow scrolling
https://bugs.webkit.org/show_bug.cgi?id=135195
Patch by Wenson Hsieh <Wenson Hsieh> on 2014-07-31
Reviewed by Beth Dakin.
ScrollableArea::handleWheelEvent is not currently being used to handle wheel events for overflow scrolling; it instead directly invokes ScrollableArea::scroll.
In order to expose wheel phases on Mac, the PlatformWheelEvent itself should propagate down to ScrollableArea, not just the scroll granularity, direction and
multiplier required by ScrollableArea::scroll. With this patch, PlatformWheelEvent will be "shipped" along with the WheelEvent.
No new tests, since behavior should not have changed.
- page/EventHandler.cpp:
(WebCore::didScrollInScrollableAreaForSingleAxis): Calls ScrollableArea::scroll directly using WheelEvent's data. Used to handle programmatic WheelEvents, e.g. from JavaScript.
(WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis): Finds the correct ScrollableArea and attempts to scroll it using the information contained in the WheelEvent via ScrollableArea::handleWheelEvent
(WebCore::EventHandler::defaultWheelEventHandler): Updated to use handleWheelEventInAppropriateEnclosingBoxForSingleAxis instead of scrollNode.
(WebCore::scrollNode): Deleted.
- rendering/RenderListBox.h: Made RenderListBox::scroll public so it can be invoked from EventHandler::handleWheelEventInAppropriateEnclosingBoxForSingleAxis.
- rendering/RenderNamedFlowThread.cpp: Refactored to let EventHandler update nextScrollBlock in the case of isRenderNamedFlowThread().
(WebCore::RenderNamedFlowThread::fragmentFromRenderBoxAsRenderBlock):
- rendering/RenderNamedFlowThread.h:
- 10:15 AM Changeset in webkit [171861] by
-
- 2 edits in trunk/Source/WebKit2
Clean up the WebKit build from unused parameter warning in Webkit2/WebProcess module
https://bugs.webkit.org/show_bug.cgi?id=135413
Patch by Rohit Kumar <kumar.rohit@samsung.com> on 2014-07-31
Reviewed by Darin Adler.
- WebProcess/OriginData/WebOriginDataManager.cpp:
(WebKit::WebOriginDataManager::getOrigins):
(WebKit::WebOriginDataManager::deleteEntriesForOrigin):
(WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates):
(WebKit::WebOriginDataManager::deleteAllEntries):
- 10:11 AM Changeset in webkit [171860] by
-
- 7 edits in trunk/Source/WebKit2
AX: iOS: Crash accessing m_page in WKAccessibilityPageObject
https://bugs.webkit.org/show_bug.cgi?id=134617
Reviewed by Darin Adler.
Provide a way to detach a WK2 WebPage object so that it can uninitialize other pointers, like the accessibility object.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::~WebPage):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/efl/WebPageEfl.cpp:
(WebKit::WebPage::platformDetach):
- WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::platformDetach):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformDetach):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformDetach):
- 9:45 AM Changeset in webkit [171859] by
-
- 4 edits in trunk
[WK2] Regression tests can't load HTTPS pages with NetworkProcess due to self-signed certificate
https://bugs.webkit.org/show_bug.cgi?id=115282
Reviewed by Sam Weinig.
Tools:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::canAuthenticateAgainstProtectionSpaceInFrame): Return true for any
local host server trust protection space.
(WTR::TestController::didReceiveAuthenticationChallengeInFrame): Respond with a non-empty
credential to server trust challenges.
LayoutTests:
- platform/mac-wk2/TestExpectations: Removed the exceptions listed under this bug.
- 9:43 AM Changeset in webkit [171858] by
-
- 5 edits in trunk/Source
Source/WebCore: WebCore part of: Server trust authentication challenges aren’t sent to the navigation delegate
https://bugs.webkit.org/show_bug.cgi?id=135327
Reviewed by Alexey Proskuryakov.
- platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::receivedCredential): Don’t try to change the persistence of
credentials used for server trust, because the platform doesn’t support persistence values
other than Session for server trust.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::receivedCredential): Ditto.
Source/WebKit2: WebKit part of: Server trust authentication challenges aren’t sent to the navigation delegate
https://bugs.webkit.org/show_bug.cgi?id=135327
Reviewed by Alexey Proskuryakov.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
Return true for server trust protection spaces if the delegate implements
-webView:didReceiveAuthenticationChallenge:completionHandler:.
(WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame): Removed
an assertion that is no longer true due to the above.
- 9:41 AM Changeset in webkit [171857] by
-
- 2 edits in trunk/Source/WebCore
Tried to fix building with the OS X 10.9 SDK while targeting OS X 10.8.
- platform/network/cocoa/CredentialCocoa.mm:
(WebCore::toCredentialPersistence):
- 9:24 AM Changeset in webkit [171856] by
-
- 3 edits in trunk/Tools
[webkitpy] Make diff_text generate correct diff if there is no newline at the end of file
https://bugs.webkit.org/show_bug.cgi?id=135381
Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-07-31
Reviewed by Csaba Osztrogonác.
- Scripts/webkitpy/port/base.py:
(Port.diff_text):
- Scripts/webkitpy/port/base_unittest.py:
(PortTest.test_diff_text):
- 9:16 AM Changeset in webkit [171855] by
-
- 2 edits in trunk/Source/WebCore
Reverted r171854, because it broke building with the OS X 10.8 SDK.
- platform/network/cocoa/CredentialCocoa.mm:
(WebCore::toCredentialPersistence):
- 9:07 AM Changeset in webkit [171854] by
-
- 2 edits in trunk/Source/WebCore
Tried to fix building with the OS X 10.9 SDK while targeting OS X 10.8.
- platform/network/cocoa/CredentialCocoa.mm:
(WebCore::toCredentialPersistence):
- 8:58 AM Changeset in webkit [171853] by
-
- 2 edits in trunk/LayoutTests
Unreviewed EFL gardening
Update test expectations for crashing tests.
- platform/efl/TestExpectations:
- 8:21 AM Changeset in webkit [171852] by
-
- 1 edit1 add in trunk/Source/JavaScriptCore
NewFunctionExpression and NewFunctionNoCheck should setHaveStructures(true)
https://bugs.webkit.org/show_bug.cgi?id=135430
Reviewed by Mark Hahnenberg.
We already handled this correctly after the ftlopt merge, but it's useful to have the test.
- tests/stress/new-function-expression-has-structures.js: Added.
(foo.f):
(foo.f.prototype.f):
(foo):
- 8:08 AM Changeset in webkit [171851] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(??): [iOS] Disabling MediaPlaybackRequiresUserGesture does not remove user gesture requirement for entering full screen.
https://bugs.webkit.org/show_bug.cgi?id=135443
Reviewed by Dean Jackson.
Allow full screen mode to be entered without a user gesture if the gesture requirement for media playback
has been unset.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
- 7:05 AM Changeset in webkit [171850] by
-
- 4 edits in trunk
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.5.1 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit2:
- gtk/NEWS: Add release notes for 2.5.1.
- 6:43 AM Changeset in webkit [171849] by
-
- 3 edits6 adds in trunk
2014-07-31 Andrei Bucur <abucur@adobe.com>
[CSS Multicolumn] Clear the lines when switching to multi-column layout
https://bugs.webkit.org/show_bug.cgi?id=135127
Reviewed by Alexandru Chiculita.
Source/WebCore:
When switching an element to multi-column layout it becomes a container of block
children. When this happens the existing line boxes must be deleted in addition
to clearing the hasInlineChildren flag.
Tests: fast/multicol/inline-container-to-multicol.html
fast/multicol/inline-container-to-multicol-float.html
fast/multicol/inline-container-to-multicol-positioned.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::createMultiColumnFlowThread):
LayoutTests:
Tests that verifies lines are correctly cleared when an element is switched to
multi-column layout.
- fast/multicol/inline-container-to-multicol-expected.txt: Added.
- fast/multicol/inline-container-to-multicol.html: Added.
- fast/multicol/inline-container-to-multicol-float-expected.txt: Added.
- fast/multicol/inline-container-to-multicol-float.html: Added.
- fast/multicol/inline-container-to-multicol-positioned-expected.txt: Added.
- fast/multicol/inline-container-to-multicol-positioned.html: Added.
- 6:18 AM Changeset in webkit [171848] by
-
- 5 edits in trunk
Unreviewed. Fix GTK+ make distcheck.
Source/WebKit2:
- Shared/InteractionInformationAtPosition.h: Only include
WebCore/SelectionRect.h for IOS.
Tools:
- gtk/make-dist.py:
(ensure_version_if_possible): Use 4.0 instead of 3.0 as binary
version to find the pkg-config file.
- gtk/manifest.txt: Add missing resource to the tarball.
- 5:27 AM Changeset in webkit [171847] by
-
- 2 edits in trunk/Tools
[GTK] make distcheck is building from sources dir instead of dist dir
https://bugs.webkit.org/show_bug.cgi?id=135457
Reviewed by Philippe Normand.
- gtk/make-dist.py:
(Distcheck.configure): Use dist_dir as source dir.
(Distcheck.check): Pass dist_dir to configure().
- 2:16 AM Changeset in webkit [171846] by
-
- 4 edits in trunk
[GTK] Bump binary version for 2.6
https://bugs.webkit.org/show_bug.cgi?id=133724
Reviewed by Philippe Normand.
.:
- Source/cmake/OptionsGTK.cmake: Bump binary version to 4.0 and
update library version numbers.
Source/WebKit2:
- PlatformGTK.cmake: Fix JavaScriptCore dependency on
instrospection commands and make them depend on GTK+-3.0.
- 1:41 AM Changeset in webkit [171845] by
-
- 2 edits in trunk/Tools
[GTK] Do not include files that are not in git in the tarball
https://bugs.webkit.org/show_bug.cgi?id=134804
Reviewed by Philippe Normand.
Skip all files in the source tree that are not under version control
except for files added from the build dir like the documentation.
- gtk/make-dist.py:
(Directory.init): Initialize the list of files under control version.
(Directory.list_cms_files): Helper function to list all files
under the control version for the current source root.
(Directory.should_skip_file): Return True for files that are not
under control version only when the source root is also under
control version.
(Directory.get_files): Filter the files also using should_skip_file().
- 12:36 AM Changeset in webkit [171844] by
-
- 2 edits in trunk/Source/WebKit
Speculative Windows build fixery, part II.
This seems to indicate that adding the globalObjectTable to the exports file
was the wrong idea:
1>WebKit.exp : error LNK2001: unresolved external symbol "struct JSC::HashTable const JSC::globalObjectTable" (?globalObjectTable@JSC@@3UHashTable@1@B)
- WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
Jul 30, 2014:
- 11:51 PM Changeset in webkit [171843] by
-
- 3 edits in trunk/Source/JavaScriptCore
Speculative Windows build fix.
Try to dllimport the dllexported global object HashTable.
- jsc.cpp:
- testRegExp.cpp:
- 11:17 PM Changeset in webkit [171842] by
-
- 5 edits in branches/safari-600.1-branch/Source
Versioning.
- 11:06 PM Changeset in webkit [171841] by
-
- 1 copy in tags/Safari-600.1.6
New Tag.
- 10:49 PM Changeset in webkit [171840] by
-
- 10 edits2 copies in branches/safari-600.1-branch
Merged r171825.
- 10:40 PM Changeset in webkit [171839] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171802. <rdar://problem/17199364>
- 10:38 PM Changeset in webkit [171838] by
-
- 10 edits in trunk/Source
PropertyName's internal string is always atomic.
<https://webkit.org/b/135451>
Source/JavaScriptCore:
Now that we've merged the JSC::Identifier and WTF::AtomicString tables,
we know that any string that's an Identifier is guaranteed to be atomic.
A PropertyName can be either an Identifier or a PrivateName, and the
private names are also guaranteed to be atomic internally.
Make PropertyName vend AtomicStringImpl* instead of StringImpl*.
Reviewed by Benjamin Poulain.
- runtime/PropertyName.h:
(JSC::PropertyName::PropertyName):
(JSC::PropertyName::uid):
(JSC::PropertyName::publicName):
Source/WebCore:
Use PropertyName::publicName() directly instead of taking the slow route
through AtomicString::findStringWithHash().
These strings are always atomic, and findStringWithHash() would trudge
through a full hash lookup just to discover that indeed, they are!
Reviewed by Benjamin Poulain.
- bindings/js/JSDOMBinding.cpp:
(WebCore::findAtomicString): Deleted.
- bindings/js/JSDOMBinding.h:
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::namedItemGetter):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
- bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::canGetItemsForName):
(WebCore::JSHTMLDocument::nameGetter):
Source/WTF:
Remove AtomicString::findStringWithHash() since nobody uses it anymore.
Reviewed by Benjamin Poulain.
- wtf/text/AtomicString.cpp:
(WTF::findString): Deleted.
(WTF::AtomicString::findStringWithHash): Deleted.
- wtf/text/AtomicString.h:
- 8:36 PM Changeset in webkit [171837] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171829. <rdar://problem/17824833>
- 8:19 PM Changeset in webkit [171836] by
-
- 1 edit2 adds in trunk/LayoutTests
Add a layout test for Geolocation's request queueing for hidden pages
https://bugs.webkit.org/show_bug.cgi?id=135402
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-30
Reviewed by Zalan Bujtas.
Sam added the queueing feature in r171188. This patch adds a layout test
for the simplest case.
- fast/dom/Geolocation/requestQueuingForHiddenPage-expected.txt: Added.
- fast/dom/Geolocation/requestQueuingForHiddenPage.html: Added.
- 8:18 PM Changeset in webkit [171835] by
-
- 2 edits in trunk/Source/WebCore
ElementRuleCollector: group the shadow tree code
https://bugs.webkit.org/show_bug.cgi?id=135410
Reviewed by Andreas Kling.
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRules):
Little cleanup: group the shadow tree rule collection in the same block.
- 8:17 PM Changeset in webkit [171834] by
-
- 3 edits in trunk/Source/WebCore
Cleanup DetailsMarkerControl
https://bugs.webkit.org/show_bug.cgi?id=135429
Reviewed by Andreas Kling.
Remove the override of shadowPseudoId(). This is a simple type of shadowId,
it should use the generic pseudo() path.
Move DetailsMarkerControl::create() out-of-line. One could justify inlining the constructor,
inlining the ::create() function has little value.
- html/shadow/DetailsMarkerControl.cpp:
(WebCore::DetailsMarkerControl::create):
(WebCore::DetailsMarkerControl::DetailsMarkerControl):
(WebCore::DetailsMarkerControl::rendererIsNeeded):
(WebCore::DetailsMarkerControl::shadowPseudoId): Deleted.
(WebCore::DetailsMarkerControl::summaryElement): Deleted.
- html/shadow/DetailsMarkerControl.h:
(WebCore::DetailsMarkerControl::create): Deleted.
- 8:16 PM Changeset in webkit [171833] by
-
- 3 edits in trunk/Source/WebCore
Remove UploadButtonElement::shadowPseudoId()
https://bugs.webkit.org/show_bug.cgi?id=135435
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-30
Reviewed by Andreas Kling.
Use the generic pseudo() path instead of a custom shadowPseudoId().
- html/FileInputType.cpp:
(WebCore::UploadButtonElement::create):
(WebCore::UploadButtonElement::createForMultiple):
(WebCore::UploadButtonElement::UploadButtonElement):
Set the type in the common constructor instead of the call sites.
(WebCore::UploadButtonElement::shadowPseudoId): Deleted.
- html/FileInputType.h:
- 8:16 PM Changeset in webkit [171832] by
-
- 3 edits in trunk/Source/WebCore
Remove SpinButtonElement::shadowPseudoId
https://bugs.webkit.org/show_bug.cgi?id=135436
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-30
Reviewed by Andreas Kling.
Use the generic pseudo.
- html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::SpinButtonElement):
(WebCore::SpinButtonElement::shadowPseudoId): Deleted.
- html/shadow/SpinButtonElement.h:
- 8:15 PM Changeset in webkit [171831] by
-
- 3 edits in trunk/Source/WebCore
Clean up YouTubeEmbedShadowElement
https://bugs.webkit.org/show_bug.cgi?id=135437
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-30
Reviewed by Andreas Kling.
- html/shadow/YouTubeEmbedShadowElement.cpp:
(WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):
(WebCore::YouTubeEmbedShadowElement::pluginElement): Deleted.
This is unused in WebCore.
(WebCore::YouTubeEmbedShadowElement::shadowPseudoId): Deleted.
Use the generic pseudo path instead of a custom shadowPseudoId.
- html/shadow/YouTubeEmbedShadowElement.h:
- 8:14 PM Changeset in webkit [171830] by
-
- 3 edits in trunk/Source/WebCore
Remove shadowPseudoId() from InputFieldSpeechButtonElement and SearchFieldCancelButtonElement
https://bugs.webkit.org/show_bug.cgi?id=135438
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-30
Reviewed by Andreas Kling.
Use the generic path.
- html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
(WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
(WebCore::SearchFieldCancelButtonElement::shadowPseudoId): Deleted.
(WebCore::InputFieldSpeechButtonElement::shadowPseudoId): Deleted.
- html/shadow/TextControlInnerElements.h:
- 7:19 PM Changeset in webkit [171829] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION (WK2 iOS): Inline editing for Chinese and Japanese keyboards does not work in Safari.
https://bugs.webkit.org/show_bug.cgi?id=135449
<rdar://problem/17824833>
Reviewed by Benjamin Poulain.
The WebProcess sends the notification that the gesture modified the phrase boundary,
but the flag was not being converted properly, therefore we failed to notify
the text input system that a change had occurred.
- UIProcess/ios/WKContentViewInteraction.mm:
(toUIWKSelectionFlags):
- 6:48 PM Changeset in webkit [171828] by
-
- 5 edits in tags/Safari-600.1.3.41/Source
Versioning.
- 6:46 PM Changeset in webkit [171827] by
-
- 1 copy in tags/Safari-600.1.3.41
New tag.
- 6:13 PM Changeset in webkit [171826] by
-
- 25 edits in trunk/Source
USE(CONTENT_FILTERING) should be ENABLE(CONTENT_FILTERING)
https://bugs.webkit.org/show_bug.cgi?id=135439
Reviewed by Tim Horton.
We now support two different platform content filters, and will soon support a mock content filter (as part of
webkit.org/b/128858). This makes content filtering a feature of WebKit, not just an adoption of a third-party
library. ENABLE() is the correct macro to use for such a feature.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
- WebCore.exp.in:
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::dataReceived):
- loader/DocumentLoader.h:
- loader/FrameLoaderClient.h:
- platform/ContentFilter.h:
- platform/ios/ContentFilterIOS.mm:
- platform/mac/ContentFilterMac.mm:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
- Shared/WebCoreArgumentCoders.h:
- UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didStartProvisionalLoad):
- UIProcess/WebFrameProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
Source/WTF:
- wtf/Platform.h:
- 3:54 PM Changeset in webkit [171825] by
-
- 10 edits1 copy2 adds in tags/Safari-600.1.2.4
Merge r171798. <rdar://problem/17849033>
- 3:26 PM Changeset in webkit [171824] by
-
- 226 edits2 deletes in trunk/Source
Static hash tables no longer need to be coupled with a VM.
<https://webkit.org/b/135421>
Source/JavaScriptCore:
Now that the static hash tables are using char instead of StringImpl,
it's no longer necessary to make them per-VM.
This patch removes the hook in ClassInfo for providing your own static
hash table getter. Everyone now uses ClassInfo::staticPropHashTable.
Most of this patch is tweaking ClassInfo construction sites to pass one
less null pointer.
Also simplified Lookup.h to stop requiring ExecState/VM to access the
static hash tables.
Reviewed by Geoffrey Garen.
- API/JSAPIWrapperObject.mm:
- API/JSCallbackConstructor.cpp:
- API/JSCallbackFunction.cpp:
- API/JSCallbackObject.cpp:
- API/ObjCCallbackFunction.mm:
- bytecode/UnlinkedCodeBlock.cpp:
- create_hash_table:
- debugger/DebuggerScope.cpp:
- inspector/JSInjectedScriptHost.cpp:
- inspector/JSInjectedScriptHostPrototype.cpp:
- inspector/JSJavaScriptCallFrame.cpp:
- inspector/JSJavaScriptCallFramePrototype.cpp:
- interpreter/CallFrame.h:
(JSC::ExecState::arrayConstructorTable): Deleted.
(JSC::ExecState::arrayPrototypeTable): Deleted.
(JSC::ExecState::booleanPrototypeTable): Deleted.
(JSC::ExecState::dataViewTable): Deleted.
(JSC::ExecState::dateTable): Deleted.
(JSC::ExecState::dateConstructorTable): Deleted.
(JSC::ExecState::errorPrototypeTable): Deleted.
(JSC::ExecState::globalObjectTable): Deleted.
(JSC::ExecState::jsonTable): Deleted.
(JSC::ExecState::numberConstructorTable): Deleted.
(JSC::ExecState::numberPrototypeTable): Deleted.
(JSC::ExecState::objectConstructorTable): Deleted.
(JSC::ExecState::privateNamePrototypeTable): Deleted.
(JSC::ExecState::regExpTable): Deleted.
(JSC::ExecState::regExpConstructorTable): Deleted.
(JSC::ExecState::regExpPrototypeTable): Deleted.
(JSC::ExecState::stringConstructorTable): Deleted.
(JSC::ExecState::promisePrototypeTable): Deleted.
(JSC::ExecState::promiseConstructorTable): Deleted.
- jsc.cpp:
- parser/Lexer.h:
(JSC::Keywords::isKeyword):
(JSC::Keywords::getKeyword):
- runtime/Arguments.cpp:
- runtime/ArgumentsIteratorConstructor.cpp:
- runtime/ArgumentsIteratorPrototype.cpp:
- runtime/ArrayBufferNeuteringWatchpoint.cpp:
- runtime/ArrayConstructor.cpp:
(JSC::ArrayConstructor::getOwnPropertySlot):
- runtime/ArrayIteratorConstructor.cpp:
- runtime/ArrayIteratorPrototype.cpp:
- runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::getOwnPropertySlot):
- runtime/BooleanConstructor.cpp:
- runtime/BooleanObject.cpp:
- runtime/BooleanPrototype.cpp:
(JSC::BooleanPrototype::getOwnPropertySlot):
- runtime/ClassInfo.h:
(JSC::ClassInfo::hasStaticProperties):
(JSC::ClassInfo::propHashTable): Deleted.
- runtime/ConsolePrototype.cpp:
- runtime/CustomGetterSetter.cpp:
- runtime/DateConstructor.cpp:
(JSC::DateConstructor::getOwnPropertySlot):
- runtime/DateInstance.cpp:
- runtime/DatePrototype.cpp:
(JSC::DatePrototype::getOwnPropertySlot):
- runtime/Error.cpp:
- runtime/ErrorConstructor.cpp:
- runtime/ErrorInstance.cpp:
- runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototype::getOwnPropertySlot):
- runtime/ExceptionHelpers.cpp:
- runtime/Executable.cpp:
- runtime/FunctionConstructor.cpp:
- runtime/FunctionPrototype.cpp:
- runtime/GetterSetter.cpp:
- runtime/InternalFunction.cpp:
- runtime/JSAPIValueWrapper.cpp:
- runtime/JSActivation.cpp:
- runtime/JSArgumentsIterator.cpp:
- runtime/JSArray.cpp:
- runtime/JSArrayBuffer.cpp:
- runtime/JSArrayBufferConstructor.cpp:
- runtime/JSArrayBufferPrototype.cpp:
- runtime/JSArrayBufferView.cpp:
- runtime/JSArrayIterator.cpp:
- runtime/JSBoundFunction.cpp:
- runtime/JSConsole.cpp:
- runtime/JSDataView.cpp:
- runtime/JSDataViewPrototype.cpp:
(JSC::JSDataViewPrototype::getOwnPropertySlot):
- runtime/JSFunction.cpp:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::getOwnPropertySlot):
- runtime/JSMap.cpp:
- runtime/JSMapIterator.cpp:
- runtime/JSNameScope.cpp:
- runtime/JSNotAnObject.cpp:
- runtime/JSONObject.cpp:
(JSC::JSONObject::getOwnPropertySlot):
- runtime/JSObject.cpp:
(JSC::getClassPropertyNames):
(JSC::JSObject::put):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::findPropertyHashEntry):
(JSC::JSObject::reifyStaticFunctionsForDelete):
- runtime/JSObject.h:
- runtime/JSPromise.cpp:
- runtime/JSPromiseConstructor.cpp:
(JSC::JSPromiseConstructor::getOwnPropertySlot):
- runtime/JSPromiseDeferred.cpp:
- runtime/JSPromisePrototype.cpp:
(JSC::JSPromisePrototype::getOwnPropertySlot):
- runtime/JSPromiseReaction.cpp:
- runtime/JSPropertyNameIterator.cpp:
- runtime/JSProxy.cpp:
- runtime/JSSet.cpp:
- runtime/JSSetIterator.cpp:
- runtime/JSString.cpp:
- runtime/JSTypedArrayConstructors.cpp:
- runtime/JSTypedArrayPrototypes.cpp:
- runtime/JSTypedArrays.cpp:
- runtime/JSVariableObject.cpp:
- runtime/JSWeakMap.cpp:
- runtime/JSWithScope.cpp:
- runtime/Lookup.cpp:
(JSC::HashTable::createTable):
- runtime/Lookup.h:
(JSC::HashTable::initializeIfNeeded):
(JSC::HashTable::entry):
(JSC::HashTable::begin):
(JSC::HashTable::end):
(JSC::getStaticPropertySlot):
(JSC::getStaticFunctionSlot):
(JSC::getStaticValueSlot):
(JSC::lookupPut):
- runtime/MapConstructor.cpp:
- runtime/MapData.cpp:
- runtime/MapIteratorConstructor.cpp:
- runtime/MapIteratorPrototype.cpp:
- runtime/MapPrototype.cpp:
- runtime/MathObject.cpp:
- runtime/NameConstructor.cpp:
- runtime/NameInstance.cpp:
- runtime/NamePrototype.cpp:
(JSC::NamePrototype::getOwnPropertySlot):
- runtime/NativeErrorConstructor.cpp:
- runtime/NumberConstructor.cpp:
(JSC::NumberConstructor::getOwnPropertySlot):
- runtime/NumberObject.cpp:
- runtime/NumberPrototype.cpp:
(JSC::NumberPrototype::getOwnPropertySlot):
- runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::getOwnPropertySlot):
- runtime/ObjectPrototype.cpp:
- runtime/PropertyTable.cpp:
- runtime/RegExp.cpp:
- runtime/RegExpConstructor.cpp:
(JSC::RegExpConstructor::getOwnPropertySlot):
- runtime/RegExpMatchesArray.cpp:
- runtime/RegExpObject.cpp:
(JSC::RegExpObject::getOwnPropertySlot):
- runtime/RegExpPrototype.cpp:
(JSC::RegExpPrototype::getOwnPropertySlot):
- runtime/SetConstructor.cpp:
- runtime/SetIteratorConstructor.cpp:
- runtime/SetIteratorPrototype.cpp:
- runtime/SetPrototype.cpp:
- runtime/SparseArrayValueMap.cpp:
- runtime/StrictEvalActivation.cpp:
- runtime/StringConstructor.cpp:
(JSC::StringConstructor::getOwnPropertySlot):
- runtime/StringObject.cpp:
- runtime/StringPrototype.cpp:
- runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::freezeTransition):
(JSC::ClassInfo::hasStaticSetterOrReadonlyProperties):
- runtime/StructureChain.cpp:
- runtime/StructureRareData.cpp:
- runtime/SymbolTable.cpp:
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::~VM):
- runtime/VM.h:
- runtime/WeakMapConstructor.cpp:
- runtime/WeakMapData.cpp:
- runtime/WeakMapPrototype.cpp:
- testRegExp.cpp:
Source/WebCore:
Update for JSC::ClassInfo changes.
Remove the JSNoStaticTables mode for IDL code generation, which was used to
ensure that each VM had its own unique copy of certain static tables.
This was used for interfaces that could be used in workers, and now there's
no need to manually annotate these things anymore.
Also remove the DOMObjectHashTableMap class that was only used for this.
Reviewed by Geoffrey Garen.
- Modules/indexeddb/IDBAny.idl:
- Modules/indexeddb/IDBCursor.idl:
- Modules/indexeddb/IDBCursorWithValue.idl:
- Modules/indexeddb/IDBDatabase.idl:
- Modules/indexeddb/IDBFactory.idl:
- Modules/indexeddb/IDBIndex.idl:
- Modules/indexeddb/IDBKeyRange.idl:
- Modules/indexeddb/IDBObjectStore.idl:
- Modules/indexeddb/IDBOpenDBRequest.idl:
- Modules/indexeddb/IDBRequest.idl:
- Modules/indexeddb/IDBTransaction.idl:
- Modules/indexeddb/IDBVersionChangeEvent.idl:
- Modules/webdatabase/Database.idl:
- Modules/webdatabase/DatabaseSync.idl:
- Modules/webdatabase/SQLError.idl:
- Modules/webdatabase/SQLException.idl:
- Modules/webdatabase/SQLResultSet.idl:
- Modules/webdatabase/SQLResultSetRowList.idl:
- Modules/webdatabase/SQLTransaction.idl:
- Modules/webdatabase/SQLTransactionSync.idl:
- Modules/websockets/CloseEvent.idl:
- Modules/websockets/WebSocket.idl:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/DOMObjectHashTableMap.cpp: Removed.
- bindings/js/DOMObjectHashTableMap.h: Removed.
- bindings/js/JSDOMBinding.cpp:
(WebCore::getHashTableForGlobalData): Deleted.
- bindings/js/JSDOMBinding.h:
(WebCore::getStaticValueSlotEntryWithoutCaching):
- bindings/js/JSDOMGlobalObject.cpp:
- bindings/js/JSDOMWindowBase.cpp:
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::put):
- bindings/js/JSDOMWindowShell.cpp:
- bindings/js/JSImageConstructor.cpp:
- bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::putDelegate):
- bindings/js/JSStorageCustom.cpp:
(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::putDelegate):
- bindings/js/JSWorkerGlobalScopeBase.cpp:
- bindings/js/WebCoreJSClientData.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateImplementation):
(GenerateConstructorHelperMethods):
(hashTableAccessor): Deleted.
(prototypeHashTableAccessor): Deleted.
(constructorHashTableAccessor): Deleted.
- bindings/scripts/IDLAttributes.txt:
- bridge/c/CRuntimeObject.cpp:
- bridge/c/c_instance.cpp:
- bridge/objc/ObjCRuntimeObject.mm:
- bridge/objc/objc_instance.mm:
- bridge/objc/objc_runtime.mm:
- bridge/runtime_array.cpp:
- bridge/runtime_method.cpp:
- bridge/runtime_object.cpp:
- crypto/CryptoKey.idl:
- css/CSSFontFaceLoadEvent.idl:
- dom/DOMCoreException.idl:
- dom/DOMStringList.idl:
- dom/ErrorEvent.idl:
- dom/Event.idl:
- dom/EventException.idl:
- dom/EventListener.idl:
- dom/MessageChannel.idl:
- dom/MessageEvent.idl:
- dom/MessagePort.idl:
- dom/ProgressEvent.idl:
- fileapi/Blob.idl:
- fileapi/File.idl:
- fileapi/FileError.idl:
- fileapi/FileException.idl:
- fileapi/FileList.idl:
- fileapi/FileReader.idl:
- fileapi/FileReaderSync.idl:
- html/DOMURL.idl:
- page/EventSource.idl:
- page/WorkerNavigator.idl:
- workers/DedicatedWorkerGlobalScope.idl:
- workers/SharedWorkerGlobalScope.idl:
- workers/WorkerGlobalScope.idl:
- workers/WorkerLocation.idl:
- xml/XMLHttpRequest.idl:
- xml/XMLHttpRequestException.idl:
- xml/XMLHttpRequestProgressEvent.idl:
- xml/XMLHttpRequestUpload.idl:
Source/WebKit/mac:
Reviewed by Geoffrey Garen.
- Plugins/Hosted/ProxyInstance.mm:
- Plugins/Hosted/ProxyRuntimeObject.mm:
Source/WebKit2:
Reviewed by Geoffrey Garen.
- WebProcess/Plugins/Netscape/JSNPMethod.cpp:
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
- 3:20 PM Changeset in webkit [171823] by
-
- 5 edits in branches/safari-537.78-branch/Source
Versioning.
- 3:19 PM Changeset in webkit [171822] by
-
- 1 copy in tags/Safari-537.78.2
New Tag.
- 3:05 PM Changeset in webkit [171821] by
-
- 5 edits in tags/Safari-600.1.2.4/Source
Versioning.
- 2:53 PM Changeset in webkit [171820] by
-
- 1 copy in tags/Safari-600.1.2.4
New Tag.
- 2:46 PM Changeset in webkit [171819] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: ProbeSetDetailsSection should not create live location links for unresolved breakpoints
https://bugs.webkit.org/show_bug.cgi?id=135367
Reviewed by Timothy Hatcher.
Regenerate the source code link whenever the breakpoint resolved status changes. If it is
resolved, then we can create a live location link that respects source maps.
- UserInterface/Views/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection):
(WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement): Added.
(WebInspector.ProbeSetDetailsSection.prototype._probeSetPositionTextOrLink): Deleted.
- 2:34 PM Changeset in webkit [171818] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Merging platforms mixes baselines and targets into reported data
https://bugs.webkit.org/show_bug.cgi?id=135260
Reviewed by Geoffrey Garen.
Make sure two test configurations we're merging are of the same type (e.g. baseline, target, current).
Otherwise, we'll erroneously mix up runs for baseline, target, and current (reported values).
- public/admin/platforms.php:
- 2:28 PM Changeset in webkit [171817] by
-
- 1 edit2 moves in trunk/LayoutTests
Move iphone-simulator test results landed in r171094 to the correct directory.
- platform/ios-sim/fast/events/ontouchstart-active-selector-expected.txt: Renamed from LayoutTests/platform/iphone-simulator/fast/events/ontouchstart-active-selector-expected.txt.
- platform/ios-sim/fast/events/ontouchstart-active-selector.html: Renamed from LayoutTests/platform/iphone-simulator/fast/events/ontouchstart-active-selector.html.
- 2:03 PM Changeset in webkit [171816] by
-
- 5 edits2 deletes in trunk/Source/WebKit2
Get rid of the WKNSURLProtectionSpace wrapper
https://bugs.webkit.org/show_bug.cgi?id=135425
Reviewed by Sam Weinig.
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject): Don’t allocate WKNSURLProtectionSpace wrappers.
- Shared/Cocoa/WKNSURLProtectionSpace.h: Removed.
- Shared/Cocoa/WKNSURLProtectionSpace.mm: Removed.
- UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(canAuthenticateAgainstProtectionSpaceInFrame): Get the NSURLProtectionSpace from the
WebCore::ProtectionSpace in the WebProtectionSpace.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame): Ditto.
- WebKit2.xcodeproj/project.pbxproj: Removed references to removed files.
- 1:55 PM Changeset in webkit [171815] by
-
- 5 edits in branches/safari-537.78-branch/Source
Fix Versioning.
- 1:45 PM Changeset in webkit [171814] by
-
- 7 edits1 copy in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171790. <rdar://problem/17848962>
- 1:44 PM Changeset in webkit [171813] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171787. <rdar://problem/17852395>
- 1:40 PM Changeset in webkit [171812] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171786. <rdar://problem/17852407>
- 1:36 PM Changeset in webkit [171811] by
-
- 3 edits2 copies in branches/safari-600.1-branch
Merged r171785. <rdar://problem/17851910>
- 1:33 PM Changeset in webkit [171810] by
-
- 6 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171783. <rdar://problem/17848773>
- 1:31 PM Changeset in webkit [171809] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171766. <rdar://problem/17824645>
- 1:29 PM Changeset in webkit [171808] by
-
- 11 edits in branches/safari-600.1-branch/Source
Merged r171749. <rdar://problem/15917314>
- 1:26 PM Changeset in webkit [171807] by
-
- 8 edits2 copies in branches/safari-600.1-branch
Merged r171718. <rdar://problem/17824793>
- 1:15 PM Changeset in webkit [171806] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Versioning.
- 1:13 PM Changeset in webkit [171805] by
-
- 1 copy in tags/Safari-600.1.4.1
New Tag.
- 12:56 PM Changeset in webkit [171804] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171766. <rdar://problem/17824645>
- 12:50 PM Changeset in webkit [171803] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171702. <rdar://problem/16828238>
- 12:40 PM Changeset in webkit [171802] by
-
- 2 edits in trunk/Source/WebCore
<rdar://problem/17199364> [Mac] Popup button arrows appear on the left, underlapping text, when the UI layout direction is right-to-left
https://bugs.webkit.org/show_bug.cgi?id=135426
Reviewed by Dean Jackson.
No test, because the UI layout direction in the test harness is always left-to-right.
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::popupButton): Forced the user interface layout direction of the
NSPopUpButtonCell to left-to-right. Added a FIXME about how we could make this vary based on
the direction of the <select>, though that would require additional changes elsewhere.
- 11:56 AM Changeset in webkit [171801] by
-
- 25 edits in trunk/Source
Source/WebCore: Made Credential hold onto an NSURLCredential when needed.
Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
Reviewed by Alexey Proskuryakov.
No change in functionality.
- WebCore.exp.in: Updated.
- platform/network/Credential.h: Removed definition of CERTIFICATE_CREDENTIALS_SUPPORTED,
which is not used anymore.
- platform/network/CredentialBase.h:
(WebCore::CredentialBase::encodingRequiresPlatformData): Added a base implementation that
returns false.
- platform/network/cf/AuthenticationCF.cpp:
Changed to use the Credential constructor that takes an CFURLCredential, and the new
cfCredential member function. Made the createCF and core functions Windows-only and
therefore removed the CERTIFICATE_CREDENTIALS_SUPPORTED code from them.
- platform/network/cf/AuthenticationCF.h:
- platform/network/cf/CredentialStorageCFNet.cpp:
(WebCore::CredentialStorage::getFromPersistentStorage): Changed to construct a Credential
from a CFURLCredential.
(WebCore::CredentialStorage::saveToPersistentStorage): Changed to use the new cfCredential
member function.
- platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto to both.
(WebCore::ResourceHandle::receivedCredential): Ditto.
- platform/network/cocoa/CredentialCocoa.h:
Replaced the m_identity, m_certificates and m_type member variables with an m_nsCredential
one holding onto an NSURLCredential. Declared constructors from and getters for
NSURLCredential and CFURLCredentialRef.
(WebCore::Credential::encodingRequiresPlatformData): Override that checks the
NSURLCredential if necessary.
- platform/network/cocoa/CredentialCocoa.mm:
(WebCore::toNSURLCredentialPersistence): New helper function.
(WebCore::toCredentialPersistence): Ditto.
(WebCore::Credential::Credential): Defined constructors to create or take an
NSURLCredential.
(WebCore::Credential::cfCredential): Added.
(WebCore::Credential::nsCredential): Added. Returns nil for the empty credential.
(WebCore::Credential::isEmpty): Changed to check m_nsCredential.
(WebCore::Credential::platformCompare): Changed to compare m_nsCredential if needed.
(WebCore::Credential::encodingRequiresPlatformData): Returns true if the credential is not
a user and a password.
- platform/network/mac/AuthenticationMac.h: Removed mac and core functions for Credential.
- platform/network/mac/AuthenticationMac.mm:
(-[WebCoreAuthenticationClientAsChallengeSender useCredential:forAuthenticationChallenge:]):
Changed to use Credential constructor that takes an NSURLCredential.
(WebCore::AuthenticationChallenge::AuthenticationChallenge): Ditto. Also use the
nsCredential getter.
- platform/network/mac/CredentialStorageMac.mm:
(WebCore::CredentialStorage::getFromPersistentStorage): Use new Credential constructor.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto. Also use the
nsCredential getter.
(WebCore::ResourceHandle::receivedCredential): Ditto.
Source/WebKit/mac: Updated for changes to the WebCore::Credential API.
Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
Reviewed by Alexey Proskuryakov.
- Misc/WebDownload.mm:
(-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]): Use new nsCredential
getter.
- Plugins/WebBaseNetscapePluginView.mm:
(WebKit::getAuthenticationInfo): Ditto.
Source/WebKit2: Updated for changes to the WebCore::Credential API.
Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
Reviewed by Alexey Proskuryakov.
- Shared/Downloads/mac/DownloadMac.mm:
(WebKit::Download::receivedCredential):Use new Credential::nsCredential getter.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Credential>::encode): If encoding the credential requires encoding the
platform data, do that.
(IPC::ArgumentCoder<Credential>::decode): If platform data was encoded, decode it.
- Shared/WebCoreArgumentCoders.h:
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<Credential>::encodePlatformData): Archive the NSURLCredential.
(IPC::ArgumentCoder<Credential>::decodePlatformData): Unarchive it.
- UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:
(-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]): Use
Credential constructor that takes an NSURLCredential.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame): Ditto.
- 9:49 AM Changeset in webkit [171800] by
-
- 1 edit15 adds in trunk/Tools
iOS Simulator LayoutTestRelay
https://bugs.webkit.org/show_bug.cgi?id=135269
Reviewed by David Kilzer.
- LayoutTestRelay/Configurations/Base.xcconfig: Added.
- LayoutTestRelay/Configurations/DebugRelease.xcconfig: Added.
- LayoutTestRelay/LayoutTestRelay.xcodeproj/project.pbxproj: Added.
- LayoutTestRelay/LayoutTestRelay/LTPipeRelay.h: Added.
- LayoutTestRelay/LayoutTestRelay/LTPipeRelay.m: Added.
(-[LTPipeRelay inPipePath]):
(-[LTPipeRelay outPipePath]):
(-[LTPipeRelay errorPipePath]):
(-[LTPipeRelay outputStream]):
(-[LTPipeRelay initWithPrefix:]):
(-[LTPipeRelay setup]):
(-[LTPipeRelay tearDown]):
(-[LTPipeRelay connect]):
(-[LTPipeRelay disconnect]):
(-[LTPipeRelay createFIFOs]):
(-[LTPipeRelay destroyFIFOs]):
(-[LTPipeRelay relayStream:]):
(-[LTPipeRelay stream:handleEvent:]):
- LayoutTestRelay/LayoutTestRelay/LTRelay.h: Added.
- LayoutTestRelay/LayoutTestRelay/LTRelayController.h: Added.
- LayoutTestRelay/LayoutTestRelay/LTRelayController.m: Added.
(-[LTRelayController uniqueAppPath]):
(-[LTRelayController uniqueAppURL]):
(-[LTRelayController uniqueAppIdentifier]):
(-[LTRelayController processName]):
(-[LTRelayController initWithDevice:productDir:appPath:identifierSuffix:dumpToolArguments:]):
(-[LTRelayController readFileHandle:]):
(-[LTRelayController receivedStandardOutputData:]):
(-[LTRelayController receivedStandardErrorData:]):
(-[LTRelayController disconnected]):
(-[LTRelayController connected]):
(-[LTRelayController crashWithMessage:]):
(-[LTRelayController launchSimulator]):
(-[LTRelayController bootDevice]):
(-[LTRelayController createUniqueApp]):
(-[LTRelayController killApp]):
(-[LTRelayController launchApp]):
(-[LTRelayController start]):
- LayoutTestRelay/LayoutTestRelay/main.m: Added.
(usage):
(getTestingSimDevice):
(getRequiredStringArgument):
(getRemainderArguments):
(main):
- LayoutTestRelay/Makefile: Added.
- Tools/Scripts/build-layouttestrelay: Added.
- 9:35 AM Changeset in webkit [171799] by
-
- 3 edits in trunk/Source/WebCore
[GTK] Build depends on OpenGL ES
https://bugs.webkit.org/show_bug.cgi?id=135289
Reviewed by Martin Robinson.
Guard the OpenGL ES code with USE(OPENGL_ES_2).
- platform/graphics/opengl/Extensions3DOpenGLES.cpp:
- platform/graphics/opengl/Extensions3DOpenGLES.h:
- 9:35 AM Changeset in webkit [171798] by
-
- 11 edits1 add in trunk
[Win] Modify version numbering scheme to support 5-tuple versions
https://bugs.webkit.org/show_bug.cgi?id=135400
<rdar://problem/17849033>
Reviewed by David Kilzer.
Source/JavaScriptCore:
- JavaScriptCore.vcxproj/JavaScriptCorePostBuild.cmd: Use the
new version-stamp.pl script to version JavaScriptCore.dll.
Source/WebKit:
- WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Use the new
version-stamp.pl script to version JavaScriptCore.dll.
Source/WTF:
- WTF.vcxproj/WTFPostBuild.cmd: Use new version-stamp.pl script
to version WTF.dll.
- WTF.vcxproj/WTFPreBuild.cmd: Make sure we have created the
appropriate version resource during builds.
Tools:
Update test cases to recognize that we can only support Major
values from 0-65535, Minor values from 0-64, Tiny values from 0-999,
Micro values from 0-64, and Nano values from 0-999.
- Scripts/webkitperl/auto-version_unittest/autoVersionTests.pl: Update
test expectations for physical limits.
WebKitLibraries:
Revise the auto-version.pl script so that it generates a set of packed
version tuples that allow us to map 5-tuple versions into something
that will work with Windows' 3-tuple version structure.
- win/tools/scripts/auto-version.pl:
(packTwoValues): Added,
(splitVersion): Revised to return packed combination of minor-tiny and
micro-nano to be used as "MINOR" and "TINY" portion of version.
(splitBuildMajorVersion): Deleted.
- win/tools/scripts/version-stamp.pl: Added.
- 9:23 AM Changeset in webkit [171797] by
-
- 4 edits in trunk/Source/WebCore
Member name collision in RenderView and SelectionSubtreeRoot
https://bugs.webkit.org/show_bug.cgi?id=135233
Reviewed by Mihnea Ovidenie.
The selectionStart/End members in RenderView have been renamed to fix confusion caused by the fact that
RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.
No new tests required, no new functionality.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelectionRoot):
- rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::setSelection):
(WebCore::RenderView::getSelection):
- rendering/RenderView.h:
- 3:52 AM Changeset in webkit [171796] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] REGRESSION(r171742): Test /webkit2/WebKitWebView/disallow-modal-dialogs fails
https://bugs.webkit.org/show_bug.cgi?id=135412
Reviewed by Philippe Normand.
The problem is that WebPageProxy::setUIClient() calls
setCanRunModal() with the value of m_uiClient->canRunModal() which
is always true for us. We override that manually by calling
setCanRunModal() depending on the WebKitSettings. In r171742,
webkitWebViewUpdateSettings(), the method that overrides
setCanRunModal(), was moved before attachUIClientToView(), so the
value set by WebPageProxy::setUIClient() is the last one and takes
precedence. We need to make sure webkitWebViewUpdateSettings() is
always called after attachUIClientToView().
- UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewConstructed): Move webkitWebViewUpdateSettings()
call after attachUIClientToView() and add a comment to not forget
about it again.
- 12:47 AM Changeset in webkit [171795] by
-
- 3 edits in trunk/Source/WebCore
[TexMap] Move TextureMapperLayer::textureMapper() definition into the header
https://bugs.webkit.org/show_bug.cgi?id=135384
Reviewed by Martin Robinson.
Move the definitions of TextureMapperLayer::textureMapper() and TextureMapperLayer::rootLayer()
into the TextureMapperLayer header. This makes both functions inline-able, removing unnecessary
calling overhead in GraphicsLayerTextureMapper::flushCompositingState() and
GraphicsLayerTextureMapper::updateBackingStoreIfNeeded().
TextureMapperLayer::rootLayer() now also returns a reference.
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::~TextureMapperLayer):
(WebCore::TextureMapperLayer::rootLayer): Deleted.
(WebCore::TextureMapperLayer::textureMapper): Deleted.
- platform/graphics/texmap/TextureMapperLayer.h:
(WebCore::TextureMapperLayer::textureMapper):
(WebCore::TextureMapperLayer::rootLayer):
- 12:47 AM Changeset in webkit [171794] by
-
- 2 edits in trunk/Tools
[GTK] GLib tests fail with recent GTK+ due to runtime warning about deprecated properties
https://bugs.webkit.org/show_bug.cgi?id=135411
Reviewed by Sergio Villar Senin.
Recent versions of GTK+ now warn at runtime when a deprecated
property or signal is used. A diagnostic mode was added that is
enabled by default, but that can be disabled by setting
G_ENABLE_DIAGNOSTIC=0. Runtime warnings are considered test
failures by gtester, so we need to run the tests with the
diganostic mode disabled.
- TestWebKitAPI/gtk/WebKit2Gtk/TestMain.cpp:
(main):
- 12:45 AM Changeset in webkit [171793] by
-
- 2 edits in trunk
[CMake] Bump the minimum required version
https://bugs.webkit.org/show_bug.cgi?id=135382
Reviewed by Gyuyoung Kim.
- CMakeLists.txt: Bump the minimum required version to 2.8.11 after
we introduced usage of target_include_directories().
- 12:06 AM Changeset in webkit [171792] by
-
- 11 edits3 deletes in trunk
[GTK] Remove WebKitCertificateInfo from WebKit2GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=134830
Reviewed by Gustavo Noronha Silva.
Source/WebKit2:
It was added to make the API more convenient but it has ended up
making it more complicated. WebKitWebView::load-failed-with-tls-errors
now receives a GTlsCertificate + GTlsCertificateFlags and
webkit_web_context_allow_tls_certificate_for_host() receives a GTlsCertificate
since the errors are not actually needed. This makes the API more
consistent with the existing method webkit_web_view_get_tls_info().
- PlatformGTK.cmake: Remove files from compilation.
- UIProcess/API/gtk/WebKitCertificateInfo.cpp: Removed.
- UIProcess/API/gtk/WebKitCertificateInfo.h: Removed.
- UIProcess/API/gtk/WebKitCertificateInfoPrivate.h: Removed.
- UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_allow_tls_certificate_for_host):
- UIProcess/API/gtk/WebKitWebContext.h:
- UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_class_init):
(webkitWebViewLoadFailedWithTLSErrors):
- UIProcess/API/gtk/WebKitWebView.h:
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
- UIProcess/API/gtk/webkit2.h:
Tools:
Update the SSL test for the API changes.
- TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp:
(testLoadFailedWithTLSErrors):
Jul 29, 2014:
- 11:16 PM Changeset in webkit [171791] by
-
- 10 edits in trunk/LayoutTests
[EFL] Unreviewed EFL gardening. Rebaseline tests after r170418.
- platform/efl/mathml/opentype/horizontal-expected.txt:
- platform/efl/mathml/opentype/horizontal-munderover-expected.txt:
- platform/efl/mathml/opentype/large-operators-expected.txt:
- platform/efl/mathml/opentype/vertical-expected.txt:
- platform/efl/mathml/presentation/menclose-notation-default-longdiv-expected.txt:
- platform/efl/mathml/presentation/mo-stretch-expected.png:
- platform/efl/mathml/presentation/mo-stretch-expected.txt:
- platform/efl/mathml/presentation/roots-expected.png:
- platform/efl/mathml/presentation/roots-expected.txt:
- 10:42 PM Changeset in webkit [171790] by
-
- 7 edits1 add in trunk/Source/WebInspectorUI
Web Inspector: 80% of time during recording is spent creating source code locations for profile nodes
https://bugs.webkit.org/show_bug.cgi?id=135399
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-29
Reviewed by Timothy Hatcher.
Profiling the inspector while recording a timeline, a significant amount of
time was spent creating SourceCodeLocation objects for profiling information
and call frames. A lot of this data was eagerly being processed, even though
it would not immediately be presentable to the user.
This makes two significant changes. We create a LazySourceCodeLocation class
which does as little as possible until display information is requested. We
also lazily convert the profiler payload data to a Profile object, so the
processing is only done if you drill into the Script specific timeline.
This results in a significant performance improvement in the overview view.
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
(WebInspector.TimelineManager.prototype._callFramesFromPayload.createCallFrame):
(WebInspector.TimelineManager.prototype._callFramesFromPayload):
(WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeFromPayload): Deleted.
(WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeCallFromPayload): Deleted.
(WebInspector.TimelineManager.prototype._profileFromPayload): Deleted.
Do not eagerly process profile payloads. Instead pass the payload to ScriptTimelineRecords.
Likewise create callframes with lazy source code locations to do the minimum amount of work.
- UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord):
(WebInspector.ScriptTimelineRecord.prototype.get profile):
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeCallFromPayload):
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
Only when the profile is asked do we process the profiler payload information.
This defer the processing until at least the user drills into the Script timeline.
- UserInterface/Main.html:
Add the new class and ensure SourceCodeLocation is available beforehand.
- UserInterface/Models/LazySourceCodeLocation.js: Added.
(WebInspector.LazySourceCodeLocation):
(WebInspector.LazySourceCodeLocation.prototype.isEqual):
(WebInspector.LazySourceCodeLocation.prototype.get sourceCode):
(WebInspector.LazySourceCodeLocation.prototype.set sourceCode):
(WebInspector.LazySourceCodeLocation.prototype.get formattedLineNumber):
(WebInspector.LazySourceCodeLocation.prototype.get formattedColumnNumber):
(WebInspector.LazySourceCodeLocation.prototype.formattedPosition):
(WebInspector.LazySourceCodeLocation.prototype.hasFormattedLocation):
(WebInspector.LazySourceCodeLocation.prototype.hasDifferentDisplayLocation):
(WebInspector.LazySourceCodeLocation.prototype.resolveMappedLocation):
(WebInspector.LazySourceCodeLocation.prototype._lazyInitialization):
Only when display information is requested will we perform extra processing.
For basic information we do not need to check for formatted (pretty-printed) info.
- UserInterface/Models/SourceCode.js:
(WebInspector.SourceCode.prototype.createLazySourceCodeLocation):
Provide an explict create function for lazy source codes.
- UserInterface/Models/SourceCodeLocation.js:
(WebInspector.SourceCodeLocation.prototype.set sourceCode):
(WebInspector.SourceCodeLocation.prototype.get displaySourceCode):
(WebInspector.SourceCodeLocation.prototype.get displayLineNumber):
(WebInspector.SourceCodeLocation.prototype.get displayColumnNumber):
(WebInspector.SourceCodeLocation.prototype.hasMappedLocation):
(WebInspector.SourceCodeLocation.prototype.setSourceCode):
(WebInspector.SourceCodeLocation.prototype.resolveMappedLocation):
(WebInspector.SourceCodeLocation.prototype._makeChangeAndDispatchChangeEventIfNeeded):
(WebInspector.SourceCodeLocation.prototype._resolveMappedLocation): Deleted.
Include two protected functions which LazySourceCodeLocation overrides.
- 9:49 PM Changeset in webkit [171789] by
-
- 5 edits1 add in trunk/Tools
Add knowledge of the iOS Simulator to webkitpy
http://bugs.webkit.org/show_bug.cgi?id=133963
Reviewed by Simon Fraser.
- Scripts/webkitdirs.pm:
(argumentsForConfiguration): Add --ios-sim*
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
--runtime and --device-type args added.
- Scripts/webkitpy/port/base.py:
- Scripts/webkitpy/port/driver.py: Add simulator driver.
(IOSSimulatorDriver): Added.
- Scripts/webkitpy/port/factory.py: Add simulator platform.
- Scripts/webkitpy/port/ios.py: Added.
- 9:26 PM Changeset in webkit [171788] by
-
- 2 edits in trunk/Source/WebKit2
[EFL] Do not initialize g_type system explicitly in the ewk_init()
https://bugs.webkit.org/show_bug.cgi?id=135407
Reviewed by Gyuyoung Kim.
EFL build requires glib version 2.38 but g_type_init() has been deprecated
since version 2.36. As the type system is initialized automatically since
version 2.36, we do not need to call g_type_init() in the ewk_init().
https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#g-type-init
- UIProcess/API/efl/ewk_main.cpp:
(ewk_init):
- 9:17 PM Changeset in webkit [171787] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Only compute full ProfileNode times if needed - Legacy Profiler
https://bugs.webkit.org/show_bug.cgi?id=135406
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-29
Reviewed by Timothy Hatcher.
Full ProfileNode times are only used by the Legacy Profiler. The new profile
information in the Scripts Timelines currently never uses the pass. We should
avoid calculating it if we never use it.
- UserInterface/Models/ProfileNode.js:
(WebInspector.ProfileNode.prototype.get startTime):
(WebInspector.ProfileNode.prototype.get endTime):
(WebInspector.ProfileNode.prototype.get selfTime):
(WebInspector.ProfileNode.prototype.get totalTime):
(WebInspector.ProfileNode.prototype.establishRelationships):
(WebInspector.ProfileNode.prototype._computeTotalTimes):
- 9:00 PM Changeset in webkit [171786] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Reduce forced layouts in TimelineOverview
https://bugs.webkit.org/show_bug.cgi?id=135405
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-29
Reviewed by Timothy Hatcher.
Remove another forced layout. The scroll container won't
change size unless the ContentView itself resized. Make the
distinction between a layout update due to a resize and
normal events (scale changes, etc) and only calculate
element sizes then.
- UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.updateLayout):
- UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.updateLayoutForResize):
- 8:51 PM Changeset in webkit [171785] by
-
- 3 edits2 adds in trunk
Crash when using 'em' units to specify font-size inside animation keyframe.
<https://webkit.org/b/135395>
<rdar://problem/17851910>
Source/WebCore:
We'd forgotten to initialize the "parent style" when resolving keyframe
styles, and this led to a crash in length conversion where the code
assumes a parent style will be present.
To keep this fix minimal, simply make the "parent style" a clone of the
base element style.
Reviewed by Simon Fraser.
Test: fast/animation/keyframe-with-font-size-in-em-units.html
- css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForKeyframe):
LayoutTests:
Add a reduced test case to cover this bug.
Reviewed by Simon Fraser.
- fast/animation/keyframe-with-font-size-in-em-units-expected.txt: Added.
- fast/animation/keyframe-with-font-size-in-em-units.html: Added.
- 8:48 PM Changeset in webkit [171784] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: breakpoints are always speculatively resolved when restored from local storage
https://bugs.webkit.org/show_bug.cgi?id=135396
Reviewed by Timothy Hatcher.
A longstanding quirk/optimization in the frontend is that we immediately set a breakpoint
as resolved if the breakpoint was successfully set in the backend. This ensures that clicking in
the gutter immediately produces a resolved breakpoint with only one round-trip.
However, not all breakpoints should be speculatively resolved, because the corresponding resource
may not be loaded yet. This situation causes problems for code that assumes a resolved breakpoint
also has a valid sourceCodeLocation.sourceCode.
- UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.restoreBreakpointsSoon): Don't leak the variable to global scope.
(WebInspector.DebuggerManager):
(WebInspector.DebuggerManager.prototype.speculativelyResolveBreakpoint):
(WebInspector.DebuggerManager.prototype.addBreakpoint): Speculatively resolve here if requested
using the success callback passed to _setBreakpoint.
(WebInspector.DebuggerManager.prototype.didSetBreakpoint): Emit simulated
Debugger.breakpointResolved events since they are only sent by the backend when a script is parsed.
(WebInspector.DebuggerManager.prototype._setBreakpoint):
- UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointAdded): Request speculative resolve.
- 5:30 PM Changeset in webkit [171783] by
-
- 6 edits in trunk/Source/WebInspectorUI
Web Inspector: Eliminate more forced layouts during timeline recordings
https://bugs.webkit.org/show_bug.cgi?id=135397
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-29
Reviewed by Timothy Hatcher.
Instead of computing the secondsPerPixel in each overview graph,
we can ask the overview view itself which has a cached value.
The computation used to force a layout, now it doesn't need to.
- UserInterface/Views/LayoutTimelineOverviewGraph.js:
- UserInterface/Views/NetworkTimelineOverviewGraph.js:
- UserInterface/Views/ScriptTimelineOverviewGraph.js:
- UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
- UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.get timelineOverview):
(WebInspector.TimelineOverviewGraph.prototype.set timelineOverview):
- 5:17 PM Changeset in webkit [171782] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION [WebKit2 iOS]: Cannot add shortcut to user dictionary from non editable content.
https://bugs.webkit.org/show_bug.cgi?id=135392
<rdar://problem/17760073>
Reviewed by Benjamin Poulain.
Adding a shortcut to the user dictionary needs to be available in non editable content too.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _addShortcut:]):
- 5:15 PM Changeset in webkit [171781] by
-
- 5 edits in tags/Safari-600.1.3.40/Source
Versioning.
- 5:11 PM Changeset in webkit [171780] by
-
- 1 copy in tags/Safari-600.1.3.40
New Tag.
- 4:23 PM Changeset in webkit [171779] by
-
- 5 edits9 copies in tags/Safari-600.1.3.3
Merged r171661. <rdar://problem/17315237>
- 4:16 PM Changeset in webkit [171778] by
-
- 7 edits in tags/Safari-600.1.3.3/Source
Merged r171647. <rdar://problem/17315168>
- 4:08 PM Changeset in webkit [171777] by
-
- 5 edits in tags/Safari-600.1.3.3/Source
Versioning.
- 4:05 PM Changeset in webkit [171776] by
-
- 1 copy in tags/Safari-600.1.3.3
New tag.
- 4:01 PM Changeset in webkit [171775] by
-
- 2 edits in trunk/Source/WebKit2
WKPDFView paints rotated pages squished
https://bugs.webkit.org/show_bug.cgi?id=135401
<rdar://problem/17173916>
Reviewed by Simon Fraser.
- UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _computePageAndDocumentFrames]):
[page size] returns the crop box's size, ignoring rotation.
[page cropBoxAccountForRotation] respects rotation, but otherwise returns the same size.
UIPDFPageView will respect rotation when painting, so we
should make sure that it is given an aspect ratio that also
respects rotation, so that the page isn't squished.
- 3:52 PM Changeset in webkit [171774] by
-
- 5 edits in branches/safari-600.1-branch/Source
Versioning.
- 3:46 PM Changeset in webkit [171773] by
-
- 3 edits4 deletes in branches/safari-600.1.4-branch
r171675. <rdar://problem/17826572>
- 3:41 PM Changeset in webkit [171772] by
-
- 5 edits in trunk
fast/borders/border-radius-on-subpixel-position-non-hidpi.html fails on Retina machines
https://bugs.webkit.org/show_bug.cgi?id=135398
Reviewed by Zalan Bujtas.
Tools:
- WebKitTestRunner/TestController.cpp: (WTR::TestController::updateWindowScaleForTest):
"hidpi-" should be at the start. This allows "hidpi-" in both file and directory names.
- DumpRenderTree/mac/DumpRenderTree.mm: (changeWindowScaleIfNeeded): Same fix.
For some reason, I wasn't seeing this test fail on WK1 even without the fix, not
sure why.
LayoutTests:
- platform/mac-wk2/TestExpectations: Let's try to unskip the test, maybe this was
the actual reason for it to appear failing?
- 3:41 PM Changeset in webkit [171771] by
-
- 1 copy in tags/Safari-600.1.5
New Tag.
- 3:40 PM Changeset in webkit [171770] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Rollout r171702. <rdar://problem/16828238>
- 3:38 PM Changeset in webkit [171769] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Rollout r171703. <rdar://problem/17833422>
- 3:35 PM Changeset in webkit [171768] by
-
- 5 edits in branches/safari-600.1.4-branch/Source/WebCore
Rollout r171708. <rdar://problem/17844894>
- 2:49 PM Changeset in webkit [171767] by
-
- 3 edits in branches/ftlopt/Source/JavaScriptCore
[ftlopt] Added SkipTopScope coverage to FTL
- 2:41 PM Changeset in webkit [171766] by
-
- 2 edits in trunk/Source/WebCore
[iOS] REGRESSION(r171526): PDF documents fail to load in WebKit1 with disk image caching enabled
https://bugs.webkit.org/show_bug.cgi?id=135359
<rdar://problem/17824645>
Reviewed by Darin Adler.
r171526 broke the case where we have a memory mapped file from the DiskImageCache in the
SharedBuffer. In such a case, m_buffer is empty and createCFData() returned an
WebCoreSharedBufferData with an empty buffer.
Fix this by taking the easy route of bringing back the old code for the disk image cache
file backed case. In the long run we probably want to remove the iOS specific disk image
cache anyway.
Review also uncovered another bug in r171526 where we were balancing an Objective-C alloc
with a CFRelease which is incorrect when running under GC. Fix that by using adoptNS along
with adoptCF which is what the code did before.
No new tests because the bug only occurs on device and we can't run tests on device yet.
- platform/mac/SharedBufferMac.mm:
(-[WebCoreSharedBufferData initWithDiskImageSharedBuffer:]):
(-[WebCoreSharedBufferData length]):
(-[WebCoreSharedBufferData bytes]):
(WebCore::SharedBuffer::createCFData):
- 2:25 PM Changeset in webkit [171765] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171748. <rdar://problem/17356958>
- 2:03 PM Changeset in webkit [171764] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171711. <rdar://problem/17756281>
- 2:03 PM Changeset in webkit [171763] by
-
- 7 edits in branches/ftlopt/Source/JavaScriptCore
Support for-in in the FTL
https://bugs.webkit.org/show_bug.cgi?id=134140
Reviewed by Filip Pizlo.
- dfg/DFGSSALoweringPhase.cpp:
(JSC::DFG::SSALoweringPhase::handleNode):
- ftl/FTLAbstractHeapRepository.cpp:
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLIntrinsicRepository.h:
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileHasIndexedProperty):
(JSC::FTL::LowerDFGToLLVM::compileHasGenericProperty):
(JSC::FTL::LowerDFGToLLVM::compileHasStructureProperty):
(JSC::FTL::LowerDFGToLLVM::compileGetDirectPname):
(JSC::FTL::LowerDFGToLLVM::compileGetEnumerableLength):
(JSC::FTL::LowerDFGToLLVM::compileGetStructurePropertyEnumerator):
(JSC::FTL::LowerDFGToLLVM::compileGetGenericPropertyEnumerator):
(JSC::FTL::LowerDFGToLLVM::compileGetEnumeratorPname):
(JSC::FTL::LowerDFGToLLVM::compileToIndexString):
- 2:00 PM Changeset in webkit [171762] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebKit2
Merge r171709. rdar://problem/16988887>
- 1:59 PM Changeset in webkit [171761] by
-
- 5 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171708. <rdar://problem/17844894>
- 1:57 PM Changeset in webkit [171760] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171703. <rdar://problem/17833422>
- 1:56 PM Changeset in webkit [171759] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171702. <rdar://problem/16828238>
- 1:54 PM Changeset in webkit [171758] by
-
- 5 edits in branches/safari-600.1.4-branch/Source/WebCore
Merge r171700. <rdar://problem/17844901>
- 1:36 PM Changeset in webkit [171757] by
-
- 2 edits2 copies in branches/safari-600.1.4-branch/Source/JavaScriptCore
Merge r171689. <rdar://problem/17844890>
- 1:33 PM Changeset in webkit [171756] by
-
- 2 edits in trunk/Tools
PPT: run-webkit-tests doesn't upload crash logs to bots
https://bugs.webkit.org/show_bug.cgi?id=135391
Reviewed by Joseph Pecoraro.
- WebKitTestRunner/TestController.cpp: (WTR::TestController::processDidCrash):
Not a fix to be proud of, but better than not having it work at all.
- 1:32 PM Changeset in webkit [171755] by
-
- 2 edits in branches/safari-600.1.4-branch/Source/JavaScriptCore
Merge r171688. <rdar://problem/17364180>
- 1:26 PM Changeset in webkit [171754] by
-
- 3 edits4 copies in branches/safari-600.1.4-branch
Merge r171675. <rdar://problem/17826572>
- 1:08 PM Changeset in webkit [171753] by
-
- 2 edits in trunk/Source/WebKit2
URTBF for !ENABLE(DATABASE_PROCESS) platforms.
- WebProcess/OriginData/WebOriginDataManager.cpp:
(WebKit::WebOriginDataManager::getOrigins):
(WebKit::WebOriginDataManager::deleteEntriesForOrigin):
(WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates):
(WebKit::WebOriginDataManager::deleteAllEntries):
- 12:34 PM Changeset in webkit [171752] by
-
- 3 edits in trunk/Source/WebCore
VisitedLinkState::determineLinkState should take a reference
https://bugs.webkit.org/show_bug.cgi?id=135375
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-29
Reviewed by Sam Weinig.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::State::initElement):
- dom/VisitedLinkState.h:
(WebCore::VisitedLinkState::determineLinkState):
- 12:00 PM Changeset in webkit [171751] by
-
- 5 edits in branches/safari-600.1.4-branch/Source
Versioning.
- 11:57 AM Changeset in webkit [171750] by
-
- 1 copy in branches/safari-600.1.4-branch
New Branch.
- 10:37 AM Changeset in webkit [171749] by
-
- 11 edits in trunk/Source
Make WKOriginDataManager actually operate on IndexedDatabases.
https://bugs.webkit.org/show_bug.cgi?id=135346
Reviewed by Sam Weinig (and David Kilzer and Alex Christensen)
Source/WebCore:
- WebCore.exp.in:
Source/WebKit2:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::DatabaseProcess):
(WebKit::DatabaseProcess::getIndexedDatabaseOrigins):
(WebKit::DatabaseProcess::doGetIndexedDatabaseOrigins):
(WebKit::removeAllDatabasesForOriginPath): Utility to delete all database files for the given origin path
that have been modified between the given dates.
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigin):
(WebKit::DatabaseProcess::doDeleteIndexedDatabaseEntriesForOrigin):
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesModifiedBetweenDates):
(WebKit::DatabaseProcess::doDeleteIndexedDatabaseEntriesModifiedBetweenDates):
(WebKit::DatabaseProcess::deleteAllIndexedDatabaseEntries):
(WebKit::DatabaseProcess::doDeleteAllIndexedDatabaseEntries):
- DatabaseProcess/DatabaseProcess.h:
- Shared/WebCrossThreadCopier.cpp:
(WebCore::SecurityOriginData>::copy):
- Shared/WebCrossThreadCopier.h:
- UIProcess/WebOriginDataManagerProxy.cpp:
(WebKit::WebOriginDataManagerProxy::getOrigins):
(WebKit::WebOriginDataManagerProxy::didGetOrigins):
(WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin):
(WebKit::WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates):
(WebKit::WebOriginDataManagerProxy::deleteAllEntries):
- WebProcess/OriginData/WebOriginDataManager.cpp:
(WebKit::WebOriginDataManager::getOrigins): Pipe IDB requests through to the DatabaseProcess.
(WebKit::WebOriginDataManager::deleteEntriesForOrigin): Ditto.
(WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates): Ditto.
(WebKit::WebOriginDataManager::deleteAllEntries): Ditto.
- 10:23 AM Changeset in webkit [171748] by
-
- 5 edits in trunk/Source/WebKit2
Unreviewed, rolling out r171704.
https://bugs.webkit.org/show_bug.cgi?id=135389
Broke two IndexedDB tests (Requested by ap on #webkit).
Reverted changeset:
"IDB transactions never reset if the Web Process ends before
cleaning up"
https://bugs.webkit.org/show_bug.cgi?id=135218
http://trac.webkit.org/changeset/171704
- 9:40 AM Changeset in webkit [171747] by
-
- 7 edits2 adds in trunk/Source/WebCore
Moved the Cocoa-specific parts of CredentialBase into a Cocoa-specific Credential class.
Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
Reviewed by Alexey Proskuryakov.
No change in functionality.
- WebCore.exp.in: Updated for functions moved in the class hierarchy.
- WebCore.xcodeproj/project.pbxproj: Added CredentialCocoa.{h,mm}.
- platform/network/Credential.h: For Cocoa, include CredentialCocoa.h instead of the generic
class.
(WebCore::Credential::Credential): Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED code.
- platform/network/CredentialBase.cpp:
(WebCore::CredentialBase::CredentialBase): Changed to use emptyString instead of "", removed
#if CERTIFICATE_CREDENTIALS_SUPPORTED code.
(WebCore::CredentialBase::isEmpty): Ditto.
(WebCore::CredentialBase::compare): Renamed operator== to this, removed
#if CERTIFICATE_CREDENTIALS_SUPPORTED code, but changed the end to call platformCompare.
(WebCore::CredentialBase::identity): Deleted.
(WebCore::CredentialBase::certificates): Deleted.
(WebCore::CredentialBase::type): Deleted.
- platform/network/CredentialBase.h: Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED members.
(WebCore::CredentialBase::platformCompare): Added a base implementation that returns true.
(WebCore::operator==): Changed to use CredentialBase::compare.
- platform/network/cocoa/CredentialCocoa.h: Added.
(WebCore::Credential::Credential):
- platform/network/cocoa/CredentialCocoa.mm: Added.
(WebCore::Credential::Credential): Moved the constructor that takes an identity and
certificates here.
(WebCore::Credential::isEmpty): Moved here.
(WebCore::Credential::identity): Ditto.
(WebCore::Credential::certificates): Ditto.
(WebCore::Credential::type): Ditto.
(WebCore::Credential::platformCompare): Moved the code that compares client-certificate
credentials here.
- platform/network/mac/AuthenticationMac.mm:
(WebCore::mac): Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED guards in this Cocoa-only
file.
(WebCore::core): Ditto.
- 8:47 AM Changeset in webkit [171746] by
-
- 11 edits in trunk/Source
Use WTF::move() instead of std::move() to help ensure move semantics
https://bugs.webkit.org/show_bug.cgi?id=135351
Reviewed by Alexey Proskuryakov.
Source/JavaScriptCore:
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeForStubInfo):
- bytecode/GetByIdVariant.cpp:
(JSC::GetByIdVariant::GetByIdVariant):
Source/WebCore:
- page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride):
Source/WebKit2:
- UIProcess/API/Cocoa/_WKSessionState.mm:
(-[_WKSessionState _initWithSessionState:]):
- UIProcess/API/gtk/WebKitUserContent.cpp:
(toStringVector): Remove use of std::move(). It's unnecessary to call std::move() on an rvalue.
- WebProcess/WebPage/mac/ServicesOverlayController.mm:
(WebKit::ServicesOverlayController::mouseEvent):
Source/WTF:
- wtf/HashTable.h:
(WTF::KeyTraits>::HashTable):
- 8:11 AM Changeset in webkit [171745] by
-
- 3 edits2 adds in trunk
[CSSRegions] Assertion failure hit testing a region-based multicolumn in a region
https://bugs.webkit.org/show_bug.cgi?id=135385
Reviewed by Andrei Bucur.
Source/WebCore:
When a region-based multicolumn element is displayed and hit tested in a region,
we have to disable the named flow region information not only for painting,
but also for hit-testing. This is a follow-up for https://bugs.webkit.org/show_bug.cgi?id=132121,
which provided the fix for painting.
Test: fast/regions/assert-hit-test-multicol-in-region.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTestLayer):
LayoutTests:
- fast/regions/assert-hit-test-multicol-in-region-expected.txt: Added.
- fast/regions/assert-hit-test-multicol-in-region.html: Added.
- 7:51 AM Changeset in webkit [171744] by
-
- 8 edits1 add in trunk/Source/WebCore
Cleanup RenderSelectionInfoBase/RenderSelectionInfo/RenderBlockSelectionInfo.
https://bugs.webkit.org/show_bug.cgi?id=135326
Reviewed by Darin Adler.
- Move implementation to RenderSelectInfo.cpp
- RenderSelectionInfoBase/RenderSelectionInfo/RenderBlockSelectionInfo take Render* reference.
- Remove unused functions.
- Add RenderSelectionInfoBase::repaintRectangle()
No change in behavior.
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderSelectionInfo.cpp: Added.
(WebCore::RenderSelectionInfoBase::RenderSelectionInfoBase):
(WebCore::RenderSelectionInfoBase::repaintRectangle):
(WebCore::RenderSelectionInfo::RenderSelectionInfo):
(WebCore::RenderSelectionInfo::repaint):
(WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo):
(WebCore::RenderBlockSelectionInfo::repaint):
- rendering/RenderSelectionInfo.h:
(WebCore::RenderSelectionInfo::collectedSelectionRects):
(WebCore::RenderSelectionInfoBase::RenderSelectionInfoBase): Deleted.
(WebCore::RenderSelectionInfoBase::object): Deleted.
(WebCore::RenderSelectionInfo::RenderSelectionInfo): Deleted.
(WebCore::RenderSelectionInfo::repaint): Deleted.
(WebCore::RenderSelectionInfo::rects): Deleted.
(WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo): Deleted.
(WebCore::RenderBlockSelectionInfo::repaint): Deleted.
(WebCore::RenderBlockSelectionInfo::block): Deleted.
- rendering/RenderView.cpp:
(WebCore::RenderView::subtreeSelectionBounds):
(WebCore::RenderView::repaintSubtreeSelection):
(WebCore::RenderView::clearSubtreeSelection):
(WebCore::RenderView::applySubtreeSelection):
- 7:35 AM Changeset in webkit [171743] by
-
- 20 edits in trunk/Source
Get SharedBuffer.h out of ResourceBuffer.h (and a few other places)
https://bugs.webkit.org/show_bug.cgi?id=131782
Original patch by Tim Horton.
Reviewed by Darin Adler.
Source/WebCore:
No new tests because no functional changes.
- Modules/indexeddb/IDBCallbacks.h:
- Modules/indexeddb/IDBCursorBackend.h:
- loader/ios/DiskImageCacheIOS.h:
Forward declare SharedBuffer in headers.
- Modules/indexeddb/IDBRequest.cpp:
- loader/cache/CachedImage.cpp:
- loader/icon/IconLoader.cpp:
- loader/ios/DiskImageCacheIOS.mm:
- loader/cache/MemoryCache.cpp:
- loader/mac/ResourceBuffer.mm:
Include SharedBuffer.h in implementation files.
- Modules/notifications/Notification.h:
- loader/appcache/ApplicationCacheGroup.h:
Remove unnecessary includes.
- loader/ResourceBuffer.cpp:
(WebCore::ResourceBuffer::adoptSharedBuffer):
- loader/ResourceBuffer.h:
Out-of-line adoptSharedBuffer so that the PassRefPtr doesn't require including SharedBuffer.h.
- platform/graphics/opentype/OpenTypeMathData.cpp:
- platform/graphics/opentype/OpenTypeMathData.h:
Out-of-line destructor to avoid requiring SharedBuffer.h for the RefPtr.
Forward-declare SharedBuffer in the header, include in implementation.
Source/WebKit2:
- NetworkProcess/NetworkResourceLoader.cpp:
- WebProcess/Network/NetworkProcessConnection.cpp:
Include SharedBuffer.h in implementation files.
- WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
Un-indent namespace and remove SharedBuffer forward-declaration.
- 5:42 AM Changeset in webkit [171742] by
-
- 18 edits4 deletes in trunk
[GTK] Remove WebKitWebViewGroup from WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=133729
Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2014-07-29
Reviewed by Carlos Garcia Campos.
Removes WebKitWebViewGroup, effectively reverting the changes
introduced by r149117. The motivation for WebKitWebViewGroup
was using the user style sheet injection API, which has been
moved into WebKitUserContentManager, rendering it unneeded.
Source/WebKit2:
- PlatformGTK.cmake: Remove WebKitWebViewGroup source files
from the build.
- UIProcess/API/C/gtk/WKView.cpp:
(WKViewCreate): Accomodate for changes in the signature of
webkitWebViewBaseCreate().
- UIProcess/API/gtk/WebKitSettings.cpp: Update API documentation.
- UIProcess/API/gtk/WebKitWebContext.cpp: Remove the default web
view group from WebKitWebContext.
(webkitWebContextCreatePageForWebView): Allow passing a
WebPreferences object at construction.
(webkitWebContextGetDefaultWebViewGroup): Deleted.
- UIProcess/API/gtk/WebKitWebContextPrivate.h: Ditto.
- UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewUpdateSettings): Use WebPageProxy::setPreferences()
directly. Handle the case when webkit_web_view_set_settings()
is called on construction by doing an early-return.
(webkitWebViewConstructed): Call webkitWebViewUpdateSettings()
after creating the internal WebPageProxy object.
(webkitWebViewSetProperty): Removed "group" property, added
"settings" property.
(webkitWebViewGetProperty): Ditto.
(webkitWebViewDispose): Do not disconnect signal handler for
the (now unexistant) WebKitWebViewGroup.
(webkit_web_view_class_init): Removed "group" property, added
"settings" property.
(webkitWebViewHandleAuthenticationChallenge): Access the
WebKitWebSettings directly.
(webkit_web_view_new_with_related_view): Make new views share
settings with their related view.
(webkit_web_view_new_with_settings): Added.
(webkit_web_view_set_settings): Access the settings directly in
the WebKitWebView.
(webkit_web_view_get_settings): Ditto.
(webkit_web_view_set_zoom_level): Ditto.
(webkit_web_view_get_zoom_level): Ditto.
(webkitWebViewSettingsChanged): Deleted.
(webkitWebViewDisconnectSettingsChangedSignalHandler): Deleted.
(webkit_web_view_new_with_group): Deleted.
(webkit_web_view_get_group): Deleted.
- UIProcess/API/gtk/WebKitWebView.h: Removed API methods related
to WebKitWebViewGroup.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseCreate): Allow passing a WebPreferences object
for constructing the WebPageProxy.
(webkitWebViewBaseUpdatePreferences): Instead of going through
the page group, use WebPageProxy::preferences() directly.
(webkitWebViewBaseCreateWebPage): Allow passing a WebPreferences
object for constructing the WebPageProxy.
- UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Update the
prototypes of the internal functions.
- UIProcess/API/gtk/WebKitWebViewGroup.cpp: Removed.
- UIProcess/API/gtk/WebKitWebViewGroup.h: Removed.
- UIProcess/API/gtk/WebKitWebViewGroupPrivate.h: Removed.
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Change public API
bits in the documentation.
- UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto.
- UIProcess/API/gtk/docs/webkit2gtk.types: Ditto.
- UIProcess/API/gtk/webkit2.h: Removed WebKitWebViewGroup.h header.
- UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Accomodate for changes in the signature of
webkitWebViewBaseCreate().
Tools:
- TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt: Remove tests
for WebKitWebViewGroup.
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:
(testWebViewSettings):
Restore the assertions that check that settings objects are
released. Add test for webkit_web_view_new_with_settings().
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebViewGroup.cpp: Removed.
- 4:41 AM Changeset in webkit [171741] by
-
- 3 edits in trunk
[EFL][GTK] Remove ACCELERATED_COMPOSITING compile flag
https://bugs.webkit.org/show_bug.cgi?id=135376
Patch by Hunseop Jeong <Hunseop Jeong> on 2014-07-29
Reviewed by Gyuyoung Kim.
ACCELERATED_COMPOSITING was changed to the mandatory code after r163079.
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsGTK.cmake:
- 4:35 AM Changeset in webkit [171740] by
-
- 12 edits in trunk
Implement webkit_web_view_load_string() in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=134735
Reviewed by Sergio Villar Senin.
Source/WebKit2:
Add webkit_web_view_load_bytes() that receives a GBytes to load
random data in the web view using the given MIME-Type, encoding
and base URL.
- UIProcess/API/gtk/WebKitWebView.cpp:
(releaseGBytes):
(webkit_web_view_load_bytes):
- UIProcess/API/gtk/WebKitWebView.h:
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
Tools:
Add /webkit2/WebKitWebView/load-bytes test case and simplify
TestDOMXPathNSResolver by using webkit_web_view_load_bytes()
instead of a soup server just to sent the Content-type header.
- TestWebKitAPI/Tests/WebKit2Gtk/TestDOMXPathNSResolver.cpp:
(testWebKitDOMXPathNSResolverNative):
(testWebKitDOMXPathNSResolverCustom):
(beforeAll):
(afterAll):
(serverCallback): Deleted.
- TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp:
(testLoadBytes):
(beforeAll):
- TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.cpp:
(LoadTrackingTest::loadBytes):
- TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.h:
- TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:
(WebViewTest::loadBytes):
- TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
- 1:52 AM Changeset in webkit [171739] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171721. <rdar://problem/17836658>
- 1:50 AM Changeset in webkit [171738] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171720. <rdar://problem/17838230>
- 1:49 AM Changeset in webkit [171737] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merged r171716. <rdar://problem/17835401>
- 1:47 AM Changeset in webkit [171736] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171711. <rdar://problem/17756281>
- 1:45 AM Changeset in webkit [171735] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171709. <rdar://problem/16988887>
- 1:41 AM Changeset in webkit [171734] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171708. <rdar://problem/17768371>
- 1:38 AM Changeset in webkit [171733] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171706. <rdar://problem/17295639>
- 1:36 AM Changeset in webkit [171732] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171704. <rdar://problem/17356958>
- 1:34 AM Changeset in webkit [171731] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171703. <rdar://problem/17833422>
- 1:32 AM Changeset in webkit [171730] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171702. <rdar://problem/16828238>
- 1:29 AM Changeset in webkit [171729] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171700. <rdar://problem/15317278>
- 1:27 AM Changeset in webkit [171728] by
-
- 2 edits2 copies in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171689. <rdar://problem/17509889>
- 1:23 AM Changeset in webkit [171727] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171688. <rdar://problem/17364180>
- 1:18 AM Changeset in webkit [171726] by
-
- 3 edits4 copies in branches/safari-600.1-branch
Merged r171675. <rdar://problem/17826572>
- 1:12 AM Changeset in webkit [171725] by
-
- 3 edits in trunk/Source/WebCore
[TexMap] GraphicsLayerTextureMapper::addAnimation() box size parameter should be FloatSize
https://bugs.webkit.org/show_bug.cgi?id=135237
Reviewed by Martin Robinson.
- platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::addAnimation):
- platform/graphics/texmap/GraphicsLayerTextureMapper.h: The boxSize parameter of the
addAnimation() method must be of the same type as the parameter in the base class
declaration -- a const FloatSize reference. Only then is the base virtual method
actually overriden.
- 12:52 AM Changeset in webkit [171724] by
-
- 4 edits in trunk/Source/WebKit2
[EFL] Alpha value of ewk_view_bg_color_set is not working
https://bugs.webkit.org/show_bug.cgi?id=135333
Reviewed by Gyuyoung Kim.
evas_object_image_alpha_set should be called for the transparent evas object.
- UIProcess/API/efl/EwkView.cpp:
(EwkView::handleEvasObjectColorSet):
(EwkView::setBackgroundColor): Checked the alpha value of object and called evas_object_image_alpha_set.
- UIProcess/API/efl/EwkView.h:
- UIProcess/API/efl/ewk_view.cpp:
(ewk_view_bg_color_set): Moved the logic to EwkView.
Jul 28, 2014:
- 11:57 PM Changeset in webkit [171723] by
-
- 2 edits in trunk/Source/WebCore
iOS build fix.
- WebCore.exp.in:
- 9:22 PM Changeset in webkit [171722] by
-
- 7 edits1 copy1 move in trunk/Source/WebCore
Introduced CredentialBase and made Credential derive from it
Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
Reviewed by Darin Adler.
No change in functionality.
- CMakeLists.txt: Updated for source file rename.
- WebCore.exp.in: Changed to export CredentialBase symbols.
- WebCore.vcxproj/WebCore.vcxproj: Updated for source file rename and new header.
- WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- platform/network/Credential.cpp: Renamed to CredentialBase.cpp.
- platform/network/Credential.h: Defined Credential to derive from CredentialBase.
- platform/network/CredentialBase.cpp: Renamed Credential.cpp to this. Updated for the new
name.
- platform/network/CredentialBase.h: Copied from Credential.h, renamed the class to
CredentialBase, and made the constructors protected.
- 9:17 PM Changeset in webkit [171721] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Incorrectly sized TimelineDataGrid event bubble
https://bugs.webkit.org/show_bug.cgi?id=135371
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-28
Reviewed by Timothy Hatcher.
Previously the secondsPerPixel calculation was relying on an element
that may not be sized yet. This was resulting in a visibleWidth of 0
and resulted in secondsPerPixel being Infinity. Fortunately, the
graph data source already knows the secondsPerPixel so we can just
ask it. Getting the correct value and eliminating forced layouts.
- UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.get secondsPerPixel):
- UserInterface/Views/TimelineDataGridNode.js:
- 9:14 PM Changeset in webkit [171720] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: Reduce work creating the initial WebInspector.TimelineRecordBar
https://bugs.webkit.org/show_bug.cgi?id=135373
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-28
Reviewed by Timothy Hatcher.
Eliminate a bit of extra work creating TimelineRecordBars. Previously
the constructor would setup an empty list of records, and then we would
immediately after replace them. Now just set them in the constructor.
- UserInterface/Views/LayoutTimelineOverviewGraph.js:
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
- UserInterface/Views/NetworkTimelineOverviewGraph.js:
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
- UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout.createBar):
(WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
- UserInterface/Views/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBar):
- 7:11 PM Changeset in webkit [171719] by
-
- 2 edits in trunk/Source/JavaScriptCore
BuildFix: JavaScriptCore/bytecode/StructureSet.h:262:77: warning.
https://bugs.webkit.org/show_bug.cgi?id=135287
Reviewed by Darin Adler.
The set() method tries to use a part of the old value (the reservedFlag bit) which
was not defined when the constructor is called. Initialize m_pointer to 0 explicitely.
- bytecode/StructureSet.h:
(JSC::StructureSet::StructureSet):
- 6:45 PM Changeset in webkit [171718] by
-
- 8 edits2 adds in trunk
REGRESSION(r164133): Selection disappears after scrolling on nytimes.com
https://bugs.webkit.org/show_bug.cgi?id=135361
Reviewed by Ryosuke Niwa.
Ensure that when a RenderElement, part of the current selection is removed,
we recalculate and update the selection soon after layout.
Source/WebCore:
Test: fast/dynamic/selection-gets-cleared-when-part-of-it-gets-removed.html
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::setNeedsSelectionUpdate):
(WebCore::FrameSelection::didLayout): didLayout name reflects its functionality better.
(WebCore::FrameSelection::layoutDidChange): Deleted.
- editing/FrameSelection.h: : move some functions to private.
- page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::removeChildInternal):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::willBeDestroyed):
LayoutTests:
- fast/dynamic/selection-gets-cleared-when-part-of-it-gets-removed-expected.html: Added.
- fast/dynamic/selection-gets-cleared-when-part-of-it-gets-removed.html: Added.
- 6:03 PM Changeset in webkit [171717] by
-
- 5 edits in branches/safari-600.1-branch/Source
Versioning.
- 5:58 PM Changeset in webkit [171716] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Unexpected dark border on selected but window inactive timeline
https://bugs.webkit.org/show_bug.cgi?id=135360
Update the border-top colors for the item adjacent to the selected item.
Reviewed by Joseph Pecoraro.
- UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(.sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
- 5:56 PM Changeset in webkit [171715] by
-
- 2 edits in trunk/Source/WebKit2
Web process crash causes UI process to die with an assertion failure in Connection::exceptionSourceEventHandler
https://bugs.webkit.org/show_bug.cgi?id=135366
Reviewed by Dan Bernstein.
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::exceptionSourceEventHandler): Remove the assertion since it frequently fires during
normal development with debug builds.
- 5:51 PM Changeset in webkit [171714] by
-
- 5 edits in tags/Safari-600.1.3.2/Source
Versioning.
- 5:11 PM Changeset in webkit [171713] by
-
- 5 edits in tags/Safari-600.1.3.2/Source
Merge r171635. <rdar://problem/17782407>
- 5:02 PM Changeset in webkit [171712] by
-
- 1 copy in tags/Safari-600.1.3.2
New Tag.
- 4:57 PM Changeset in webkit [171711] by
-
- 2 edits in trunk/Source/WebCore
[Media iOS] Touching play button feels unresponsive
https://bugs.webkit.org/show_bug.cgi?id=135370
<rdar://problem/17756281>
Reviewed by Simon Fraser.
Add an :active rule that shows a slightly darker button when touched.
- Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-start-playback-button:active):
- 4:52 PM Changeset in webkit [171710] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Disable Copy Row in Timelines DataGrids, it does not currently provide value
https://bugs.webkit.org/show_bug.cgi?id=135364
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-28
Reviewed by Timothy Hatcher.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode):
(WebInspector.DataGridNode.prototype.get copyable):
(WebInspector.DataGridNode.prototype.set copyable):
- UserInterface/Views/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode):
- 4:47 PM Changeset in webkit [171709] by
-
- 2 edits in trunk/Source/WebKit2
[iOS WK2] WKWebView sometime tries to change the size of a null DrawingAreaProxy
https://bugs.webkit.org/show_bug.cgi?id=135368
<rdar://problem/16988887>
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-28
Reviewed by Simon Fraser.
We should never assume DrawingAreaProxy exists in the API invoked by the clients
of WKWebView. There are at least two cases where the DrawingAreaProxy is null:
-In some path on initialization.
-After a crash.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
We can safely null check and skip setting the size. If the call was skipped,
the size is set on DrawingAreaProxy initialization by querying the current
size through the page client.
- 4:14 PM Changeset in webkit [171708] by
-
- 5 edits in trunk/Source/WebCore
REGRESSION(168376): Standalone images pasted to Outlook 2011 don't display
<rdar://problem/17768371> and https://bugs.webkit.org/show_bug.cgi?id=135363
Reviewed by Tim Horton.
Outlook isn’t prepared to handle the resource load callbacks when sent synchronously.
r168376 was an optimization that we no longer need, so the simplest fix is to roll it out.
- editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readImage):
- loader/archive/ArchiveResource.cpp:
(WebCore::ArchiveResource::ArchiveResource):
- loader/archive/ArchiveResource.h:
(WebCore::ArchiveResource::setShouldLoadImmediately): Deleted.
(WebCore::ArchiveResource::shouldLoadImmediately): Deleted.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
- 3:47 PM Changeset in webkit [171707] by
-
- 1 copy in tags/Safari-600.1.4
New Tag.
- 3:32 PM Changeset in webkit [171706] by
-
- 3 edits in trunk/Source/WebKit2
Disable tagged strings for the plugin process.
https://bugs.webkit.org/show_bug.cgi?id=135354
<rdar://problem/17295639>.
Patch by Alexey Proskuryakov and Roger Fong.
Reviewed by Anders Carlsson.
- PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToReExecService):
- 3:29 PM Changeset in webkit [171705] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] JIT::assertStackPointerOffset() crashes on ARM64
https://bugs.webkit.org/show_bug.cgi?id=135316
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-28
Reviewed by Geoffrey Garen.
JIT::assertStackPointerOffset() does a compare between an arbitrary register
and the stack pointer. This was not supported by the ARM64 assembler.
There are no variation that can take a stack pointer for Xd. There is one version of subs
that can take a stack pointer, but only for the Xn: the shift+extend one.
To solve the problem, I changed cmp to swap the registers if necessary, and I fixed
the implementation of sub.
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::sub):
In the generic sub(reg, reg), I added assertions to catch the condition that cannot be generated
with either version of sub.
In sub(with shift), I remove the weird special case for SP. First, it was quite misleading because
the Rd case only works if "setflag == false". The other confusing part is going to addSubtractShiftedRegister()
gives you a reduce shift range, which could create subtle bug that only appear when SP is used.
Since I removed the weird case, I need to differentiate between the sub() that support SP, and the one that does
not elsewhere. That is why that branch has moved to the generic sub(reg, reg). Since at that point we know
the shift value must be zero, it is safe to call either variant.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::branch64):
With the changes described above, we can now use SP for the left register. What do we do if the rightmost
register is SP?
For the case of JIT::assertStackPointerOffset(), the comparison is Equal so the order really does not matter,
we just switch the registers before generating the instruction.
For the generic case, just move the value of SP to a GPR before doing the CMP.
- 3:26 PM Changeset in webkit [171704] by
-
- 5 edits in trunk/Source/WebKit2
IDB transactions never reset if the Web Process ends before cleaning up
https://bugs.webkit.org/show_bug.cgi?id=135218
Reviewed by Darin Adler.
- DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::didClose):
- DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::unregisterConnection):
(WebKit::UniqueIDBDatabase::didCompleteTransactionOperation):
(WebKit::UniqueIDBDatabase::openBackingStoreTransaction):
(WebKit::UniqueIDBDatabase::resetBackingStoreTransaction):
(WebKit::UniqueIDBDatabase::didEstablishTransaction):
(WebKit::UniqueIDBDatabase::didResetTransaction):
(WebKit::UniqueIDBDatabase::resetAllTransactions):
(WebKit::UniqueIDBDatabase::finalizeRollback):
(WebKit::UniqueIDBDatabase::absoluteDatabaseDirectory):
- DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
- DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::rollbackTransaction):
- 3:19 PM Changeset in webkit [171703] by
-
- 2 edits in trunk/Source/WebCore
ASSERTION FAILED: m_heap->vm()->currentThreadIsHoldingAPILock()
https://bugs.webkit.org/show_bug.cgi?id=135352
Reviewed by Oliver Hunt.
- Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected): This should be taking a
JSLock like its sibling methods do (e.g. installReplacement).
- 3:18 PM Changeset in webkit [171702] by
-
- 2 edits in trunk/Source/WebCore
<embed> videos flashes constantly while playing inline on iPad, making it unwatchable
https://bugs.webkit.org/show_bug.cgi?id=135356
<rdar://problem/16828238>
Reviewed by Simon Fraser.
The shadow tree for media controls is scheduling style recalc. The general silliness of
HTMLPlugInImageElement::willRecalcStyle/willDetachRenderers is turning those into render
tree reconstructions causing flicker.
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::willRecalcStyle):
Don't do the forced renderer reconstruction if there is no style change for the element
or its ancestors. This way recalcs scheduled by the shadow tree don't trigger the widget
update code path.
- 2:58 PM Changeset in webkit [171701] by
-
- 1 edit in trunk/Source/WebCore/ChangeLog
[Mac, iOS] Paint-on closed captions get out-of-order in Safari
https://bugs.webkit.org/show_bug.cgi?id=135332
<rdar://problem/15317278>
Reviewed by Jer Noble.
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): If the
number of active cues is greater than the current set of CSS boxes representing
the cues, throw away the CSS boxes and re-layout all the cues.
- html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::addGenericCue): Add some logging.
(WebCore::InbandGenericTextTrack::removeGenericCue): Ditto.
- html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGeneric::isOrderedBefore): Revise ordering rules so that we put
newer cues earlier in the layout order so they are drawn towards the bottom
of the screen. Only do this for Generic captions.
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Adjust logging
messages.
(WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Add logging.
- 2:58 PM Changeset in webkit [171700] by
-
- 5 edits in trunk/Source/WebCore
[Mac, iOS] Paint-on closed captions get out-of-order in Safari
https://bugs.webkit.org/show_bug.cgi?id=135332
<rdar://problem/15317278>
Reviewed by Brent Fulgham.
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): If the
number of active cues is greater than the current set of CSS boxes representing
the cues, throw away the CSS boxes and re-layout all the cues.
- html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::addGenericCue): Add some logging.
(WebCore::InbandGenericTextTrack::removeGenericCue): Ditto.
- html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGeneric::isOrderedBefore): Revise ordering rules so that we put
newer cues earlier in the layout order so they are drawn towards the bottom
of the screen. Only do this for Generic captions.
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Adjust logging
messages.
(WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Add logging.
- 2:55 PM Changeset in webkit [171699] by
-
- 2 edits in tags/Safari-600.1.2.3/Source/JavaScriptCore
Merge r171680. <rdar://problem/17830040>
- 2:50 PM Changeset in webkit [171698] by
-
- 1 copy in tags/Safari-600.1.2.3
New tag.
- 2:48 PM Changeset in webkit [171697] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merge r171680. <rdar://problem/17834136>
- 2:47 PM Changeset in webkit [171696] by
-
- 2 edits in trunk/Source/WTF
Should not export symbols for base64Encode inline adapter methods
https://bugs.webkit.org/show_bug.cgi?id=135355
Unreviewed build fix.
Fixes the build break introduced by r171682, where a base64Encode
inline adapter method was used in another header, thus creating
multiple definitions of it (and problems with with weak symbols).
- wtf/text/Base64.h: Remove WTF_EXPORT_PRIVATE for inlined methods.
- 2:47 PM Changeset in webkit [171695] by
-
- 2 edits in branches/safari-600.1-branch/LayoutTests
Update test expectations.
- platform/mac/TestExpectations:
- 2:07 PM Changeset in webkit [171694] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed build fix after r171682.
- replay/EncodedValue.h: Don't mark the inlined Vector<char> specialization
as an exported symbol.
- 1:48 PM Changeset in webkit [171693] by
-
- 4 edits in trunk/Tools
Add support for running the Clang static analyzer when building WebKit and JSC
https://bugs.webkit.org/show_bug.cgi?id=134955
Reviewed by Brent Fulgham.
- Scripts/build-jsc: Added command line options -[no]-analyze (disabled by default).
- Scripts/build-webkit: Add --analyze command line option to build-webkit to enable
running the Clang static analyzer.
- Scripts/webkitdirs.pm:
(XcodeStaticAnalyzerOption): Added.
- 1:44 PM Changeset in webkit [171692] by
-
- 3 edits2 adds in trunk
REGRESSION (r160806): CSS zoom property doesn't work on anything inside anchors.
<https://webkit.org/b/135344>
<rdar://problem/17759577>
Source/WebCore:
When DeprecatedStyleBuilder applies the CSS zoom property (ApplyPropertyZoom)
it first resets the "effective zoom" by calling RenderStyle::setEffectiveZoom().
This mechanism was not resistent to being called multiple times, due to the
optimization in RenderStyle::setZoom() to avoid copy-on-writing the shared data
when setting some property to the already-set value.
The bug would happen in this sequence:
ApplyPropertyZoom:
- setEffectiveZoom(1);
- setZoom(2); this updates the effective zoom
ApplyPropertyZoom:
- setEffectiveZoom(1);
- setZoom(2); this doesn't update the effective zoom
When we run the second setZoom(2); call, the RenderStyle's zoom value is 2
already and we'll early return without updating the effective zoom.
This change moves the updating of the effective zoom in setZoom() to take place
before the early return due to overwriting with the same value.
Note: the fact that we're apply the zoom property twice is an inefficiency that
we should figure out a way to avoid in the future.
Reviewed by Simon Fraser.
Test: fast/css/zoom-inside-link.html
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setZoom):
LayoutTests:
Reviewed by Simon Fraser.
- fast/css/zoom-inside-link-expected.html: Added.
- fast/css/zoom-inside-link.html: Added.
- 1:43 PM Changeset in webkit [171691] by
-
- 6 edits in trunk/Source/JavaScriptCore
REGRESSION: JSObjectSetPrototype() does not work on result of JSGetGlobalObject()
https://bugs.webkit.org/show_bug.cgi?id=135322
Reviewed by Oliver Hunt.
The prototype chain of the JSProxy object should match that of the JSGlobalObject.
This is a separate but related issue with JSObjectSetPrototype which doesn't correctly
account for JSProxies. I also audited the rest of the C API to check that we correctly
handle JSProxies in all other situations where we expect a JSCallbackObject of some sort
and found some SPI calls (JSObject*PrivateProperty) that didn't behave correctly when
passed a JSProxy.
I also added some new tests for these cases.
- API/JSObjectRef.cpp:
(JSObjectSetPrototype):
(JSObjectGetPrivateProperty):
(JSObjectSetPrivateProperty):
(JSObjectDeletePrivateProperty):
- API/JSWeakObjectMapRefPrivate.cpp:
- API/tests/CustomGlobalObjectClassTest.c:
(globalObjectSetPrototypeTest):
(globalObjectPrivatePropertyTest):
- API/tests/CustomGlobalObjectClassTest.h:
- API/tests/testapi.c:
(main):
- 1:41 PM Changeset in webkit [171690] by
-
- 3 edits in trunk/Source/WebCore
[CSS Font Loading] Update Font Loading Code
https://bugs.webkit.org/show_bug.cgi?id=135340
Reviewed by Antti Koivisto.
Update the Font Loading code to build again, as trunk has evolved
since the feature was originally written. Mostly, this requires
updating the code to work with the new Font representation.
The original tests were enabled only for the Chromium port.
They will need to be updated when the feature is enabled by default.
- WebCore.xcodeproj/project.pbxproj: Add missing files.
- css/FontLoader.cpp: Update to new Font representation.
(WebCore::LoadFontCallback::createFromParams):
(WebCore::LoadFontCallback::~LoadFontCallback):
(WebCore::FontLoader::loadFont):
(WebCore::FontLoader::checkFont):
(WebCore::applyPropertyToCurrentStyle):
(WebCore::FontLoader::resolveFontStyle):
- 1:41 PM Changeset in webkit [171689] by
-
- 2 edits2 adds in trunk/Source/JavaScriptCore
Make sure that we don't use non-speculative BooleanToNumber for a speculative Branch
https://bugs.webkit.org/show_bug.cgi?id=135350
<rdar://problem/17509889>
Reviewed by Mark Hahnenberg and Oliver Hunt.
If we have an exiting node that uses a conversion node, then that exiting node
needs to have a Phantom after it for the the original node. But we can't do that
for Branch because https://bugs.webkit.org/show_bug.cgi?id=126778.
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::clearPhantomsAtEnd):
- tests/stress/branch-check-int32-on-boolean-to-number-untyped.js: Added.
(foo):
(test):
- tests/stress/branch-check-number-on-boolean-to-number-untyped.js: Added.
(foo):
(test):
- 1:38 PM Changeset in webkit [171688] by
-
- 2 edits in trunk/Source/JavaScriptCore
JSContext Inspector: crash when using step-into
https://bugs.webkit.org/show_bug.cgi?id=135345
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-28
Reviewed by Timothy Hatcher.
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::stepInto):
Null check m_listener since it may not be set.
- 1:03 PM Changeset in webkit [171687] by
-
- 7 edits in trunk/Tools
Allow for multiple DumpRenderTree and WebKitTestRunner instances in the iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=135272
Reviewed by Simon Fraser.
- DumpRenderTree/mac/DumpRenderTree.mm:
(dumpRenderTree): Remove hard-coding of FIFO paths.
(-[DumpRenderTree applicationDidEnterBackground:]): Create background task.
(DumpRenderTreeMain): Set DumpRenderTree as UIApplication delegate.
- DumpRenderTree/mac/DumpRenderTreeMac.h: bgTask ivar.
- Scripts/old-run-webkit-tests: Update FIFO paths for ORWT.
- WebKitTestRunner/TestController.cpp: Remove hard-coding of FIFO paths.
- WebKitTestRunner/ios/TestControllerIOS.mm: Move dup2 calls to platformInitialize
- WebKitTestRunner/ios/mainIOS.mm: bgTask ivar.
(-[WebKitTestRunnerApp applicationDidEnterBackground:]): Create background task.
(main): Set WebKitTestRunnerApp as UIApplication delegate.
- 12:59 PM Changeset in webkit [171686] by
-
- 1 edit1 add in trunk/Tools
ImageDiff builds for the simulator when running iOS layout tests
https://bugs.webkit.org/show_bug.cgi?id=135270
Reviewed by Simon Fraser.
- Scripts/build-imagediff: Added.
- 12:35 PM Changeset in webkit [171685] by
-
- 3 edits in trunk/Source/WebCore
Let WheelEvent wrap a PlatformWheelEvent
https://bugs.webkit.org/show_bug.cgi?id=135244
WheelEvent now wraps a PlatformWheelEvent. m_directionInvertedFromDevice, as well as m_phase and m_momentumPhase
have been removed, since the information is redundant in PlatformWheelEvent. Note that deltaX and deltaY have
NOT been replaced, since we need double precision instead of float precision.
Patch by Wenson Hsieh <Wenson Hsieh> on 2014-07-28
Reviewed by Beth Dakin.
No new tests, since behavior should not have changed.
- dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::initWheelEvent):
- dom/WheelEvent.h:
(WebCore::WheelEvent::wheelEvent): Returns a non-null pointer to the PlatformWheelEvent iff WheelEvent was initialized by PlatformWheelEvent.
(WebCore::WheelEvent::webkitDirectionInvertedFromDevice): Updated to use PlatformWheelEvent.
(WebCore::WheelEvent::phase): Updated to use PlatformWheelEvent.
(WebCore::WheelEvent::momentumPhase): Updated to use PlatformWheelEvent.
- 12:31 PM Changeset in webkit [171684] by
-
- 6 edits in trunk/Source/JavaScriptCore
Web Replay: auto-decoding of parameterized vector's elements is incorrect
https://bugs.webkit.org/show_bug.cgi?id=135343
Reviewed by Timothy Hatcher.
Fix an incorrect type argument in EncodingTraits<Vector<T>>::encodeValue
that was using the element's decoded type as the type parameter to
EncodedValue::append<T>. It should instead be the raw type T. This
causes problems when encoding Vector<RefPtr<T>>, as it later tries to
use encoding traits for RefPtr<T> rather than for T.
Fix incorrect generated encoding traits argument for vectors of
RefCounted objects. Updated test to cover this scenario.
- replay/scripts/CodeGeneratorReplayInputs.py:
(Type.encoding_type_argument):
(VectorType.type_name):
(VectorType):
(VectorType.encoding_type_argument):
(Generator.generate_input_encode_implementation):
(Generator.generate_input_decode_implementation):
- replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.cpp:
- replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.h:
- replay/scripts/tests/generate-input-with-vector-members.json: Updated.
- 12:22 PM Changeset in webkit [171683] by
-
- 5 edits in trunk/Source/JavaScriptCore
Web Replay: incorrect serialization code generated for enum classes inside class scope
https://bugs.webkit.org/show_bug.cgi?id=135342
Reviewed by Timothy Hatcher.
If an enum class is defined inside of a class scope, then the enum class
cannot be forward-declared and the relevant header should be included.
Some generated code used incorrectly-scoped enum values in this situation.
- replay/scripts/CodeGeneratorReplayInputs.py:
(Generator.generate_includes.declaration.is):
(Generator.generate_enum_trait_implementation.is):
(Generator.generate_enum_trait_implementation):
Tests:
- replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.cpp: Rebaselined.
- replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.h: Rebaselined.
- replay/scripts/tests/generate-enums-with-same-base-name.json: Add enum
class types to this test case.
- 12:21 PM Changeset in webkit [171682] by
-
- 3 edits in trunk/Source/JavaScriptCore
Web Replay: vectors of characters should be base64-encoded
https://bugs.webkit.org/show_bug.cgi?id=135341
Reviewed by Timothy Hatcher.
Without this specialization, encode/decode methods try to create an
array of single characters in JSON, rather than treating the
vector as a binary blob.
- replay/EncodedValue.cpp:
(JSC::EncodingTraits<Vector<char>>::encodeValue): Added.
(JSC::EncodingTraits<Vector<char>>::decodeValue): Added.
- replay/EncodedValue.h:
- 12:02 PM Changeset in webkit [171681] by
-
- 3 edits in trunk/LayoutTests
[CSS3-Text] Update text-expectations after r171677
Unreviewed.
- fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-expected.txt:
- fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-inherited-expected.txt:
- 10:40 AM Changeset in webkit [171680] by
-
- 2 edits in trunk/Source/JavaScriptCore
[Win] Unreviewed build fix.
- JavaScriptCore.vcxproj/JavaScriptCore.proj: Switch from the 'Rebuild' target for MSBuild
builds to the 'Build' target to avoid a spurious 'clean' in between build steps.
- 9:09 AM Changeset in webkit [171679] by
-
- 6 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merge r171645. <rdar://problem/17818693>
- 9:02 AM Changeset in webkit [171678] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed 'merge' fix.
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
Correct line endings to allow EWS merges again.
- 8:05 AM Changeset in webkit [171677] by
-
- 10 edits in trunk
[CSS3-Text] Adjust text-justify implementation to the latest spec
https://bugs.webkit.org/show_bug.cgi?id=135317
Reviewed by Darin Adler.
Source/WebCore:
Text-justify no longer accepts the following values: Inter-ideograph, inter-
cluster, and kashida. This patch removes them and updates the tests as well.
[1] http://dev.w3.org/csswg/css-text-3/#propdef-text-justify
Updated existing tests.
- css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextJustify):
- css/CSSValueKeywords.in:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
- rendering/style/RenderStyleConstants.h:
- rendering/style/StyleRareInheritedData.h:
LayoutTests:
- fast/css3-text/css3-text-justify/getComputedStyle/script-tests/getComputedStyle-text-justify-inherited.js:
- fast/css3-text/css3-text-justify/getComputedStyle/script-tests/getComputedStyle-text-justify.js:
- 6:19 AM Changeset in webkit [171676] by
-
- 8 edits2 adds in trunk
REGRESSION (r169105): Crash in selection
https://bugs.webkit.org/show_bug.cgi?id=134303
Patch by Radu Stavila <stavila@adobe.com> on 2014-07-28
Reviewed by Mihnea Ovidenie.
Source/WebCore:
When splitting the selection between different subtrees, all subtrees must have their selection cleared before
starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
we get inconsistent data.
To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
method first iterates through all subtrees and performs the "clear" method and then starts all over again
and performs the "apply" method.
Test: fast/regions/selection/crash-deselect.html
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderSelectionInfo.h:
- rendering/RenderView.cpp:
(WebCore::RenderView::setSelection):
(WebCore::RenderView::splitSelectionBetweenSubtrees):
(WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
(WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
(WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
(WebCore::RenderView::setSubtreeSelection): Deleted.
- rendering/RenderView.h:
- rendering/SelectionSubtreeRoot.cpp:
(WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
- rendering/SelectionSubtreeRoot.h:
(WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):
LayoutTests:
Added test for the crash that occurred in some cases when selecting.
Reviewed by NOBODY (OOPS!).
- fast/regions/selection/crash-deselect-expected.txt: Added.
- fast/regions/selection/crash-deselect.html: Added.
- 2:48 AM Changeset in webkit [171675] by
-
- 3 edits4 adds in trunk
CSS: Fix :visited behavior for SubSelectors
https://bugs.webkit.org/show_bug.cgi?id=135324
Reviewed by Benjamin Poulain.
Disable :visited match for the selectors that has SubSelectors.
Source/WebCore:
Tests: fast/history/nested-visited-test-complex.html
fast/history/sibling-visited-test-complex.html
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
LayoutTests:
ThisisSubSelector(context.firstSelectorOfTheFragment == context.selector) is intended to
checkrelation != CSSSelector::SubSelector.
But since this value belongs to the previous selector and it is tested inside the branch that checks
the next selector isn't SubSelectorrelation != CSSSelector::SubSelector,
this only matches when the previous selector doesn't has SubSelectors.
- fast/history/nested-visited-test-complex-expected.txt: Added.
- fast/history/nested-visited-test-complex.html: Added.
- fast/history/sibling-visited-test-complex-expected.txt: Added.
- fast/history/sibling-visited-test-complex.html: Added.
- 1:41 AM Changeset in webkit [171674] by
-
- 2 edits in trunk/Tools
Followup fix after r171594
https://bugs.webkit.org/show_bug.cgi?id=135048
Patch by Renato Nagy <nagy.renato@stud.u-szeged.hu> on 2014-07-28
Reviewed by Csaba Osztrogonác.
- Scripts/sort-export-file: Removed extra newlines from help.
Jul 27, 2014:
- 11:50 PM Changeset in webkit [171673] by
-
- 6 edits in trunk/Source/WebKit
Remove unused preference keys
https://bugs.webkit.org/show_bug.cgi?id=135280
Reviewed by Darin Adler.
Source/WebKit/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences _setPageCacheSize:]): Deleted.
(-[WebPreferences _pageCacheSize]): Deleted.
(-[WebPreferences _setObjectCacheSize:]): Deleted.
(-[WebPreferences _objectCacheSize]): Deleted.
- WebView/WebPreferencesPrivate.h:
Source/WebKit/win:
- WebPreferenceKeysPrivate.h:
- 11:47 PM Changeset in webkit [171672] by
-
- 1 edit1 delete in trunk/Source/WebCore
Remove GraphicsSurfaceGLX.cpp
https://bugs.webkit.org/show_bug.cgi?id=135279
Reviewed by Darin Adler.
GraphicsSurfaceGLX.cpp is not used since Qt dropped and Efl port changed at r146458
- platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp: Removed.
- 7:28 PM Changeset in webkit [171671] by
-
- 3 edits2 adds in trunk
Support for :enabled selector on Anchor & Area elements
https://bugs.webkit.org/show_bug.cgi?id=134826
Reviewed by Darin Adler.
Source/WebCore:
Updates the PseudoClassEnabled selector checker to check for Anchor & Area
elements with a 'href' attribute.
Spec: http://html.spec.whatwg.org/#selector-enabled
Test: fast/css/css-selector-enabled-links.html
- css/SelectorCheckerTestFunctions.h:
(WebCore::isEnabled): Added check for anchor & area elements.
LayoutTests:
Added tests for :enabled CSS selector on Anchor & Area elements.
- fast/css/css-selector-enabled-links-expected.txt: Added.
- fast/css/css-selector-enabled-links.html: Added.
- 7:24 PM Changeset in webkit [171670] by
-
- 5 edits in tags/Safari-600.1.3.1/Source/WebKit2
Merge r171663. <rdar://problem/17818308>
- 7:16 PM Changeset in webkit [171669] by
-
- 5 edits in tags/Safari-600.1.3.1/Source
Versioning.
- 7:09 PM Changeset in webkit [171668] by
-
- 1 copy in tags/Safari-600.1.3.1
New Tag.
- 7:08 PM Changeset in webkit [171667] by
-
- 3 edits in trunk/Source/WebKit2
[GTK] Keep non-DATABASE_PROCESS build
https://bugs.webkit.org/show_bug.cgi?id=135321
Patch by Yusuke Suzuki <Yusuke Suzuki> on 2014-07-27
Reviewed by Gyuyoung Kim.
This is the patch for r171622 in non-DATABASE_PROCESS builds.
Change sendToDatabaseProcessRelaunchingIfNecessary to support non-DATABASE_PROCESS implementation.
- CMakeLists.txt:
- UIProcess/WebContext.h:
(WebKit::WebContext::sendToDatabaseProcessRelaunchingIfNecessary):
- 7:02 PM Changeset in webkit [171666] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed build fix on the EFL port
Build break because of -Werror=return-type
- bytecode/PutByIdVariant.cpp:
(JSC::PutByIdVariant::oldStructureForTransition):
- dfg/DFGValueStrength.h:
(JSC::DFG::merge):
- 5:48 PM Changeset in webkit [171665] by
-
- 5 edits9 copies in branches/safari-600.1-branch
Merge r171661. <rdar://problem/17315237>
- 5:45 PM Changeset in webkit [171664] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171663. <rdar://problem/17818308>
- 4:36 PM Changeset in webkit [171663] by
-
- 5 edits in trunk/Source/WebKit2
Don't rely on reading applicationState from within DidEnterBackground/WillEnterForeground
https://bugs.webkit.org/show_bug.cgi?id=135329
rdar://problem/17818308
Reviewed by Sam Weinig.
API may not be stable.
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::isViewVisible):
- changed to use -[WKContentView isBackground]
- UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager init]):
- split notification handlers
(-[WKProcessAssertionBackgroundTaskManager _applicationWillEnterForeground:]):
(-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackground:]):
(-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackgroundOrWillEnterForeground:]): Deleted.
- Assume application is background is after DidEnterBackground, and not after WillEnterForeground
- UIProcess/ios/WKContentView.h:
- added isBackground.
- UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:context:configuration:webView:]):
- check applicationState at init.
(-[WKContentView isBackground]):
- accessor
(-[WKContentView _applicationDidEnterBackground:]):
(-[WKContentView _applicationWillEnterForeground:]):
- update isBackground
- 4:35 PM Changeset in webkit [171662] by
-
- 4 edits in trunk/Source/JavaScriptCore
[REGRESSION][ftlopt merge][32-bit] stress/prune-multi-put-by-offset-replace-or-transition-variant.js.dfg-eager hits an assertion in SpeculativeJIT::silentSavePlanForGPR
https://bugs.webkit.org/show_bug.cgi?id=135323
Reviewed by Oliver Hunt.
SpeculativeJIT::silentSavePlanForGPR likes to believe that if a node is a constant,
then it's a constant that can be represented using that node's current DataFormat.
This doesn't work if the constant had been filled as a JSValue, and then one of the
fillSpeculateBlah() methods had speculated that it's of some type that the constant
isn't. Unless fillSpeculateBlah() specifically defends against this case, we'll have
a constant that claims to have a contradictory data format.
This patch fixes such a bug in the 32-bit fillSpeculateCell(). The 64-bit
fillSpeculateCell() appears to not have this bug, but I added a similar defense
mechanism anyway just in case, since this is one of those mistakes that keeps
reappearing.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
- 4:33 PM Changeset in webkit [171661] by
-
- 5 edits9 adds in trunk
[WK2] Crash when accessing window.localStorage after calling window.close()
https://bugs.webkit.org/show_bug.cgi?id=135328
<rdar://problem/17315237>
Reviewed by Sam Weinig.
Source/WebCore:
Fixes an issue where accessing local storage for the first time after calling window.close()
causes a crash.
For now, we should disallow accessing local storage after calling window.close() regardless of
whether it's the first access to local storage as this seems like a bad idiom to support. Note,
this represents a change in behavior from WebKit1. If such usage of window.localStorage turns
out to be reasonable then we can visit this decision again in <https://bugs.webkit.org/show_bug.cgi?id=135330>.
Tests: storage/domstorage/localstorage/access-storage-after-window-close.html
storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close.html
storage/domstorage/localstorage/set-value-in-storage-after-window-close.html
- page/DOMWindow.cpp:
(WebCore::DOMWindow::localStorage): Modified to only return the cached local storage or
create a new local storage so long as the page isn't being closed. Also, substitute nullptr
for 0.
(WebCore::DOMWindow::close): Call Page::setIsClosing() to mark that the page is closing.
- page/Page.cpp:
(WebCore::Page::Page): Initialize m_isClosing to false.
- page/Page.h:
(WebCore::Page::setIsClosing): Added.
(WebCore::Page::isClosing): Added.
LayoutTests:
Added test by Andy Estes, LayoutTests/storage/domstorage/localstorage/access-storage-after-window-close.html,
to ensure that we don't crash when accessing local storage for the first time after calling window.close().
Additionally added tests that ensure that updates to local storage are ignored after calling
window.close() regardless of whether local storage was accessed before the call to window.close().
- storage/domstorage/localstorage/access-storage-after-window-close-expected.txt: Added.
- storage/domstorage/localstorage/access-storage-after-window-close.html: Added.
- storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close-expected.txt: Added.
- storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close.html: Added.
- storage/domstorage/localstorage/resources/access-storage-close-window-and-set-value-in-storage.html: Added.
- storage/domstorage/localstorage/resources/close-window-and-access-storage.html: Added.
- storage/domstorage/localstorage/resources/close-window-and-set-value-in-storage.html: Added.
- storage/domstorage/localstorage/set-value-in-storage-after-window-close-expected.txt: Added.
- storage/domstorage/localstorage/set-value-in-storage-after-window-close.html: Added.
- 4:14 PM Changeset in webkit [171660] by
-
- 93 edits54 adds3 deletes in trunk
Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt.
Source/JavaScriptCore:
This fixes the previous mismerge and adds test coverage for the thing that went wrong.
Additional changes listed here:
- jsc.cpp:
(functionHasCustomProperties): Expose a way of checking hasCustomProperties(), which the DOM relies on. The regression I previously introduced was because this didn't work right. Now we can test it!
- runtime/Structure.cpp:
(JSC::Structure::Structure): This was supposed to be setDidTransition(true); the last merge had it set to false.
- tests/stress/has-custom-properties.js: Added. This test failed with the mismerge.
2014-06-27 Michael Saboff <msaboff@apple.com>
Unreviewed build fix after r169795.
Fixed ASSERT for 32 bit build.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):
2014-06-24 Saam Barati <sbarati@apple.com>
Web Inspector: debugger should be able to show variable types
https://bugs.webkit.org/show_bug.cgi?id=133395
Reviewed by Filip Pizlo.
Increase the amount of type information the VM gathers when directed
to do so. This initial commit is working towards the goal of
capturing, and then showing (via the Web Inspector) type information for all
assignment and load operations. This patch doesn't have the feature fully
implemented, but it ensures the VM has no performance regressions
unless the feature is specifically turned on.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h: (JSC::computeUsesForBytecodeOffset): (JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): (JSC::CodeBlock::CodeBlock): (JSC::CodeBlock::finalizeUnconditionally):
- bytecode/CodeBlock.h:
- bytecode/Instruction.h:
- bytecode/TypeLocation.h: Added. (JSC::TypeLocation::TypeLocation):
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitMove): (JSC::BytecodeGenerator::emitProfileTypesWithHighFidelity): (JSC::BytecodeGenerator::emitPutToScope): (JSC::BytecodeGenerator::emitPutById): (JSC::BytecodeGenerator::emitPutByVal):
- bytecompiler/BytecodeGenerator.h: (JSC::BytecodeGenerator::isProfilingTypesWithHighFidelity):
- bytecompiler/NodesCodegen.cpp: (JSC::PostfixNode::emitResolve): (JSC::PrefixNode::emitResolve): (JSC::ReadModifyResolveNode::emitBytecode): (JSC::AssignResolveNode::emitBytecode): (JSC::ConstDeclNode::emitCodeSingle): (JSC::ForInNode::emitBytecode):
- heap/Heap.cpp: (JSC::Heap::collect):
- inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::getRuntimeTypeForVariableInTextRange):
- inspector/agents/InspectorRuntimeAgent.h:
- inspector/protocol/Runtime.json:
- jsc.cpp: (GlobalObject::finishCreation): (functionDumpTypesForAllVariables):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL): (JSC::LLInt::putToScopeCommon):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- runtime/HighFidelityLog.cpp: Added. (JSC::HighFidelityLog::initializeHighFidelityLog): (JSC::HighFidelityLog::~HighFidelityLog): (JSC::HighFidelityLog::recordTypeInformationForLocation): (JSC::HighFidelityLog::processHighFidelityLog): (JSC::HighFidelityLog::actuallyProcessLogThreadFunction):
- runtime/HighFidelityLog.h: Added. (JSC::HighFidelityLog::HighFidelityLog):
- runtime/HighFidelityTypeProfiler.cpp: Added. (JSC::HighFidelityTypeProfiler::getTypesForVariableInRange): (JSC::HighFidelityTypeProfiler::getGlobalTypesForVariableInRange): (JSC::HighFidelityTypeProfiler::getLocalTypesForVariableInRange): (JSC::HighFidelityTypeProfiler::insertNewLocation): (JSC::HighFidelityTypeProfiler::getLocationBasedHash):
- runtime/HighFidelityTypeProfiler.h: Added.
- runtime/Options.h:
- runtime/Structure.cpp: (JSC::Structure::toStructureShape):
- runtime/Structure.h:
- runtime/SymbolTable.cpp: (JSC::SymbolTable::SymbolTable): (JSC::SymbolTable::cloneCapturedNames): (JSC::SymbolTable::uniqueIDForVariable): (JSC::SymbolTable::uniqueIDForRegister): (JSC::SymbolTable::globalTypeSetForRegister): (JSC::SymbolTable::globalTypeSetForVariable):
- runtime/SymbolTable.h: (JSC::SymbolTable::add): (JSC::SymbolTable::set):
- runtime/TypeSet.cpp: Added. (JSC::TypeSet::TypeSet): (JSC::TypeSet::getRuntimeTypeForValue): (JSC::TypeSet::addTypeForValue): (JSC::TypeSet::removeDuplicatesInStructureHistory): (JSC::TypeSet::seenTypes): (JSC::TypeSet::dumpSeenTypes): (JSC::StructureShape::StructureShape): (JSC::StructureShape::markAsFinal): (JSC::StructureShape::addProperty): (JSC::StructureShape::propertyHash): (JSC::StructureShape::leastUpperBound): (JSC::StructureShape::stringRepresentation):
- runtime/TypeSet.h: Added. (JSC::StructureShape::create): (JSC::TypeSet::create):
- runtime/VM.cpp: (JSC::VM::VM): (JSC::VM::getTypesForVariableInRange): (JSC::VM::updateHighFidelityTypeProfileState): (JSC::VM::dumpHighFidelityProfilingTypes):
- runtime/VM.h: (JSC::VM::isProfilingTypesWithHighFidelity): (JSC::VM::highFidelityLog): (JSC::VM::highFidelityTypeProfiler): (JSC::VM::nextLocation): (JSC::VM::getNextUniqueVariableID):
2014-06-26 Mark Lam <mark.lam@apple.com>
Remove unused instantiation of the WithScope structure.
<https://webkit.org/b/134331>
Reviewed by Oliver Hunt.
The WithScope structure instance is the VM is unused, and is now removed.
- runtime/VM.cpp: (JSC::VM::VM):
- runtime/VM.h:
2014-06-25 Mark Hahnenberg <mhahnenberg@apple.com>
Structure bit fields should have a consistent format
https://bugs.webkit.org/show_bug.cgi?id=134307
Reviewed by Filip Pizlo.
Currently we use C-style bit fields for a number of member variables in Structure to save space.
This makes it difficult to load these fields in the JIT. We should instead use our own bitfield
format to make it easy to load and test these variables in JIT code.
- runtime/JSObject.cpp: (JSC::JSObject::putDirectNonIndexAccessor): (JSC::JSObject::reifyStaticFunctionsForDelete):
- runtime/Structure.cpp: (JSC::StructureTransitionTable::contains): (JSC::StructureTransitionTable::get): (JSC::StructureTransitionTable::add): (JSC::Structure::Structure): (JSC::Structure::materializePropertyMap): (JSC::Structure::addPropertyTransition): (JSC::Structure::despecifyFunctionTransition): (JSC::Structure::toDictionaryTransition): (JSC::Structure::freezeTransition): (JSC::Structure::preventExtensionsTransition): (JSC::Structure::takePropertyTableOrCloneIfPinned): (JSC::Structure::nonPropertyTransition): (JSC::Structure::flattenDictionaryStructure): (JSC::Structure::addPropertyWithoutTransition): (JSC::Structure::pin): (JSC::Structure::allocateRareData): (JSC::Structure::cloneRareDataFrom): (JSC::Structure::getConcurrently): (JSC::Structure::putSpecificValue): (JSC::Structure::getPropertyNamesFromStructure): (JSC::Structure::visitChildren): (JSC::Structure::checkConsistency):
- runtime/Structure.h: (JSC::Structure::isExtensible): (JSC::Structure::isDictionary): (JSC::Structure::isUncacheableDictionary): (JSC::Structure::propertyAccessesAreCacheable): (JSC::Structure::previousID): (JSC::Structure::setHasGetterSetterPropertiesWithProtoCheck): (JSC::Structure::setContainsReadOnlyProperties): (JSC::Structure::disableSpecificFunctionTracking): (JSC::Structure::objectToStringValue): (JSC::Structure::setObjectToStringValue): (JSC::Structure::setPreviousID): (JSC::Structure::clearPreviousID): (JSC::Structure::previous): (JSC::Structure::rareData): (JSC::Structure::didTransition): Deleted. (JSC::Structure::hasGetterSetterProperties): Deleted. (JSC::Structure::hasReadOnlyOrGetterSetterPropertiesExcludingProto): Deleted. (JSC::Structure::setHasGetterSetterProperties): Deleted. (JSC::Structure::hasNonEnumerableProperties): Deleted. (JSC::Structure::staticFunctionsReified): Deleted. (JSC::Structure::setStaticFunctionsReified): Deleted.
- runtime/StructureInlines.h: (JSC::Structure::setEnumerationCache): (JSC::Structure::enumerationCache): (JSC::Structure::checkOffsetConsistency):
2014-06-24 Mark Lam <mark.lam@apple.com>
[ftlopt] Renamed DebuggerActivation to DebuggerScope.
<https://webkit.org/b/134273>
Reviewed by Michael Saboff.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- JavaScriptCore.xcodeproj/project.pbxproj:
- debugger/DebuggerActivation.cpp: Removed.
- debugger/DebuggerActivation.h: Removed.
- debugger/DebuggerScope.cpp: Copied from ../../trunk/Source/JavaScriptCore/debugger/DebuggerActivation.cpp. (JSC::DebuggerScope::DebuggerScope): (JSC::DebuggerScope::finishCreation): (JSC::DebuggerScope::visitChildren): (JSC::DebuggerScope::className): (JSC::DebuggerScope::getOwnPropertySlot): (JSC::DebuggerScope::put): (JSC::DebuggerScope::deleteProperty): (JSC::DebuggerScope::getOwnPropertyNames): (JSC::DebuggerScope::defineOwnProperty): (JSC::DebuggerActivation::DebuggerActivation): Deleted. (JSC::DebuggerActivation::finishCreation): Deleted. (JSC::DebuggerActivation::visitChildren): Deleted. (JSC::DebuggerActivation::className): Deleted. (JSC::DebuggerActivation::getOwnPropertySlot): Deleted. (JSC::DebuggerActivation::put): Deleted. (JSC::DebuggerActivation::deleteProperty): Deleted. (JSC::DebuggerActivation::getOwnPropertyNames): Deleted. (JSC::DebuggerActivation::defineOwnProperty): Deleted.
- debugger/DebuggerScope.h: Copied from ../../trunk/Source/JavaScriptCore/debugger/DebuggerActivation.h. (JSC::DebuggerScope::create): (JSC::DebuggerActivation::create): Deleted.
- runtime/VM.cpp: (JSC::VM::VM):
- runtime/VM.h:
2014-06-24 Filip Pizlo <fpizlo@apple.com>
[ftlopt] PutByIdFlush can also be converted to a PutByOffset so don't assert otherwise
https://bugs.webkit.org/show_bug.cgi?id=134265
Reviewed by Geoffrey Garen.
More assertion fallout from the PutById folding work.
- dfg/DFGNode.h: (JSC::DFG::Node::convertToPutByOffset):
2014-06-24 Filip Pizlo <fpizlo@apple.com>
[ftlopt] GC should notify us if it resets to_this
https://bugs.webkit.org/show_bug.cgi?id=128231
Reviewed by Geoffrey Garen.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.json:
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): (JSC::CodeBlock::finalizeUnconditionally):
- bytecode/Instruction.h:
- bytecode/ToThisStatus.cpp: Added. (JSC::merge): (WTF::printInternal):
- bytecode/ToThisStatus.h: Added.
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::BytecodeGenerator):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL):
2014-06-24 Filip Pizlo <fpizlo@apple.com>
[ftlopt] StructureAbstractValue::onlyStructure() should return nullptr if isClobbered()
https://bugs.webkit.org/show_bug.cgi?id=134256
Reviewed by Michael Saboff.
This isn't testable right now (i.e. it's benign) but we should get it right anyway. The
point is to be able to precisely model what goes on in the snippets of code between a
side-effect and an InvalidationPoint.
This patch also cleans up onlyStructure() by delegating more work to
StructureSet::onlyStructure().
- dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::onlyStructure):
2014-06-24 Filip Pizlo <fpizlo@apple.com>
[ftlopt][REGRESSION] PutById AI is introducing watchable structures without watching them
https://bugs.webkit.org/show_bug.cgi?id=134260
Reviewed by Geoffrey Garen.
This was causing loads of assertion failures in debug builds.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
2014-06-21 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Fold GetById/PutById to MultiGetByOffset/GetByOffset or MultiPutByOffset/PutByOffset, which implies handling non-singleton sets
https://bugs.webkit.org/show_bug.cgi?id=134090
Reviewed by Oliver Hunt.
This pretty much finishes off the work to eliminate the special-casing of singleton
structure sets by making it possible to fold GetById and PutById to various polymorphic
forms of the ByOffset nodes.
- bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::computeForStubInfo): (JSC::GetByIdStatus::computeFor):
- bytecode/GetByIdStatus.h:
- bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeFor):
- bytecode/PutByIdStatus.h:
- bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::constantChecks):
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset): (JSC::DFG::ConstantFoldingPhase::addChecks):
- dfg/DFGNode.h: (JSC::DFG::Node::convertToMultiGetByOffset): (JSC::DFG::Node::convertToMultiPutByOffset):
- dfg/DFGSpeculativeJIT64.cpp: Also convert all release assertions to DFG assertions in this file, because I was hitting some of them while debugging. (JSC::DFG::SpeculativeJIT::fillJSValue): (JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull): (JSC::DFG::SpeculativeJIT::emitCall): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Strict): (JSC::DFG::SpeculativeJIT::fillSpeculateInt52): (JSC::DFG::SpeculativeJIT::fillSpeculateDouble): (JSC::DFG::SpeculativeJIT::fillSpeculateCell): (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean): (JSC::DFG::SpeculativeJIT::compileLogicalNot): (JSC::DFG::SpeculativeJIT::emitBranch): (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::set):
2014-06-19 Filip Pizlo <fpizlo@apple.com>
[ftlopt] StructureSet::onlyStructure() should return nullptr if it's not a singleton (instead of asserting)
https://bugs.webkit.org/show_bug.cgi?id=134077
Reviewed by Sam Weinig.
This makes StructureSet and StructureAbstractValue more consistent and fixes a debug assert
in the abstract interpreter.
- bytecode/StructureSet.h: (JSC::StructureSet::onlyStructure):
2014-06-18 Filip Pizlo <fpizlo@apple.com>
DFG AI and constant folder should be able to precisely prune MultiGetByOffset/MultiPutByOffset even if the base structure abstract value is not a singleton
https://bugs.webkit.org/show_bug.cgi?id=133918
Reviewed by Mark Hahnenberg.
This also adds pruning of PutStructure, since I basically had no choice but
to implement such logic within MultiPutByOffset.
Also adds a bunch of PutById cache status dumping to bytecode dumping.
- bytecode/GetByIdVariant.cpp: (JSC::GetByIdVariant::dumpInContext):
- bytecode/GetByIdVariant.h: (JSC::GetByIdVariant::structureSet):
- bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::oldStructure):
- bytecode/StructureSet.cpp: (JSC::StructureSet::filter): (JSC::StructureSet::filterArrayModes):
- bytecode/StructureSet.h:
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGAbstractValue.cpp: (JSC::DFG::AbstractValue::changeStructure): (JSC::DFG::AbstractValue::contains):
- dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::couldBeType): (JSC::DFG::AbstractValue::isType):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitGetByOffset): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset): (JSC::DFG::ConstantFoldingPhase::addBaseCheck):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::freezeStrong):
- dfg/DFGGraph.h:
- dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::operator=):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
- tests/stress/fold-multi-get-by-offset-to-get-by-offset-without-folding-the-structure-check.js: Added. (foo): (fu): (bar): (baz): (.bar): (.baz):
- tests/stress/fold-multi-put-by-offset-to-put-by-offset-without-folding-the-structure-check.js: Added. (foo): (fu): (bar): (baz): (.bar): (.baz):
- tests/stress/prune-multi-put-by-offset-replace-or-transition-variant.js: Added. (foo): (fu): (bar): (baz): (.bar): (.baz):
2014-06-18 Mark Hahnenberg <mhahnenberg@apple.com>
Remove CompoundType and LeafType
https://bugs.webkit.org/show_bug.cgi?id=134037
Reviewed by Filip Pizlo.
We don't use them for anything. We'll replace them with a generic CellType type for all
the objects that are JSCells, aren't JSObjects, and for which we generally don't care about
their JSType at runtime.
- llint/LLIntData.cpp: (JSC::LLInt::Data::performAssertions):
- runtime/ArrayBufferNeuteringWatchpoint.cpp: (JSC::ArrayBufferNeuteringWatchpoint::createStructure):
- runtime/Executable.h: (JSC::ExecutableBase::createStructure): (JSC::NativeExecutable::createStructure):
- runtime/JSPromiseDeferred.h: (JSC::JSPromiseDeferred::createStructure):
- runtime/JSPromiseReaction.h: (JSC::JSPromiseReaction::createStructure):
- runtime/JSPropertyNameIterator.h: (JSC::JSPropertyNameIterator::createStructure):
- runtime/JSType.h:
- runtime/JSTypeInfo.h: (JSC::TypeInfo::TypeInfo):
- runtime/MapData.h: (JSC::MapData::createStructure):
- runtime/PropertyMapHashTable.h: (JSC::PropertyTable::createStructure):
- runtime/RegExp.h: (JSC::RegExp::createStructure):
- runtime/SparseArrayValueMap.cpp: (JSC::SparseArrayValueMap::createStructure):
- runtime/Structure.cpp: (JSC::Structure::Structure):
- runtime/StructureChain.h: (JSC::StructureChain::createStructure):
- runtime/StructureRareData.cpp: (JSC::StructureRareData::createStructure):
- runtime/SymbolTable.h: (JSC::SymbolTable::createStructure):
- runtime/WeakMapData.h: (JSC::WeakMapData::createStructure):
2014-06-17 Filip Pizlo <fpizlo@apple.com>
[ftlopt] PutStructure and PhantomPutStructure shouldn't leave the world in a clobbered state
https://bugs.webkit.org/show_bug.cgi?id=134002
Reviewed by Mark Hahnenberg.
The effect of this bug was that if we had a PutStructure or PhantomPutStructure then any
JSConstants would be in a Clobbered state, so we wouldn't take advantage of our knowledge
of the structure if that structure was watchable.
Also kill PhantomPutStructure.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): (JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransition): (JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransitions):
- dfg/DFGClobberize.h: (JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::visitChildren):
- dfg/DFGNode.h: (JSC::DFG::Node::hasTransition):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStructureAbstractValue.cpp: (JSC::DFG::StructureAbstractValue::observeTransition): (JSC::DFG::StructureAbstractValue::observeTransitions):
- dfg/DFGValidate.cpp: (JSC::DFG::Validate::validate):
- dfg/DFGWatchableStructureWatchingPhase.cpp: (JSC::DFG::WatchableStructureWatchingPhase::run):
- ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileNode): (JSC::FTL::LowerDFGToLLVM::compilePhantomPutStructure): Deleted.
2014-06-17 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG put_by_id should inline accesses with a slightly polymorphic base
https://bugs.webkit.org/show_bug.cgi?id=133964
Reviewed by Mark Hahnenberg.
- bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::appendVariant): (JSC::PutByIdStatus::computeForStubInfo):
- bytecode/PutByIdVariant.cpp: (JSC::PutByIdVariant::oldStructureForTransition): (JSC::PutByIdVariant::writesStructures): (JSC::PutByIdVariant::reallocatesStorage): (JSC::PutByIdVariant::attemptToMerge): (JSC::PutByIdVariant::attemptToMergeTransitionWithReplace): (JSC::PutByIdVariant::dumpInContext):
- bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::PutByIdVariant): (JSC::PutByIdVariant::replace): (JSC::PutByIdVariant::transition): (JSC::PutByIdVariant::structure): (JSC::PutByIdVariant::oldStructure):
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handlePutById): (JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::visitChildren):
- dfg/DFGNode.cpp: (JSC::DFG::MultiPutByOffsetData::writesStructures): (JSC::DFG::MultiPutByOffsetData::reallocatesStorage):
- ftl/FTLAbbreviations.h: (JSC::FTL::getLinkage):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset): (JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol):
Source/WebCore:
This fixes the previous mismerge and adds test coverage for the thing that went wrong.
Also, this adds some helpers for making it easier to inspect JavaScript values.
- testing/Internals.cpp:
(WebCore::Internals::description):
- testing/Internals.h:
- testing/Internals.idl:
2014-07-25 Mark Lam <mark.lam@apple.com>
[ftlopt] Renamed DebuggerActivation to DebuggerScope.
<https://webkit.org/b/134273>
Reviewed by Michael Saboff.
No new tests.
- ForwardingHeaders/debugger/DebuggerActivation.h: Removed.
- Removed because this is not used.
Source/WebKit/mac:
2014-07-25 Mark Lam <mark.lam@apple.com>
[ftlopt] Renamed DebuggerActivation to DebuggerScope.
<https://webkit.org/b/134273>
Reviewed by Michael Saboff.
- WebView/WebScriptDebugDelegate.mm:
- Removed unneeded #include.
Source/WTF:
- wtf/text/WTFString.h:
LayoutTests:
- js/regress/fold-get-by-id-to-multi-get-by-offset-expected.txt: Added.
- js/regress/fold-get-by-id-to-multi-get-by-offset-rare-int-expected.txt: Added.
- js/regress/fold-get-by-id-to-multi-get-by-offset-rare-int.html: Added.
- js/regress/fold-get-by-id-to-multi-get-by-offset.html: Added.
- js/regress/fold-multi-get-by-offset-to-get-by-offset-expected.txt: Added.
- js/regress/fold-multi-get-by-offset-to-get-by-offset.html: Added.
- js/regress/fold-multi-get-by-offset-to-poly-get-by-offset-expected.txt: Added.
- js/regress/fold-multi-get-by-offset-to-poly-get-by-offset.html: Added.
- js/regress/fold-multi-put-by-offset-to-poly-put-by-offset-expected.txt: Added.
- js/regress/fold-multi-put-by-offset-to-poly-put-by-offset.html: Added.
- js/regress/fold-multi-put-by-offset-to-put-by-offset-expected.txt: Added.
- js/regress/fold-multi-put-by-offset-to-put-by-offset.html: Added.
- js/regress/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset-expected.txt: Added.
- js/regress/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.html: Added.
- js/regress/fold-put-by-id-to-multi-put-by-offset-expected.txt: Added.
- js/regress/fold-put-by-id-to-multi-put-by-offset.html: Added.
- js/regress/fold-put-structure-expected.txt: Added.
- js/regress/fold-put-structure.html: Added.
- js/regress/hoist-poly-check-structure-effectful-loop-expected.txt: Added.
- js/regress/hoist-poly-check-structure-effectful-loop.html: Added.
- js/regress/hoist-poly-check-structure-expected.txt: Added.
- js/regress/hoist-poly-check-structure.html: Added.
- js/regress/put-by-id-replace-and-transition-expected.txt: Added.
- js/regress/put-by-id-replace-and-transition.html: Added.
- js/regress/put-by-id-slightly-polymorphic-expected.txt: Added.
- js/regress/put-by-id-slightly-polymorphic.html: Added.
- js/regress/script-tests/fold-get-by-id-to-multi-get-by-offset-rare-int.js: Added.
(foo):
(fu):
(bar):
(.bar):
(Number):
- js/regress/script-tests/fold-get-by-id-to-multi-get-by-offset.js: Added.
(foo):
(fu):
(bar):
(.bar):
(Number):
- js/regress/script-tests/fold-multi-get-by-offset-to-get-by-offset.js: Added.
(foo):
(fu):
(bar):
(.bar):
- js/regress/script-tests/fold-multi-get-by-offset-to-poly-get-by-offset.js: Added.
(foo):
(fu):
(bar):
(.bar):
- js/regress/script-tests/fold-multi-put-by-offset-to-poly-put-by-offset.js: Added.
(foo):
(fu):
(bar):
(.bar):
- js/regress/script-tests/fold-multi-put-by-offset-to-put-by-offset.js: Added.
(foo):
(fu):
(bar):
(.bar):
- js/regress/script-tests/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.js: Added.
(foo):
(fu):
(bar):
(.bar):
- js/regress/script-tests/fold-put-by-id-to-multi-put-by-offset.js: Added.
(foo):
(fu):
(bar):
(.bar):
- js/regress/script-tests/fold-put-structure.js: Added.
(foo):
(fu):
(bar):
(.bar):
- js/regress/script-tests/hoist-poly-check-structure-effectful-loop.js: Added.
(foo):
(test):
- js/regress/script-tests/hoist-poly-check-structure.js: Added.
(foo):
(test):
- js/regress/script-tests/put-by-id-replace-and-transition.js: Added.
- js/regress/script-tests/put-by-id-slightly-polymorphic.js: Added.
- 2:07 PM Changeset in webkit [171659] by
-
- 7 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171651. <rdar://problem/17682120>
- 11:45 AM Changeset in webkit [171658] by
-
- 7 edits in branches/safari-600.1-branch/Source
Merge r171647. <rdar://problem/17315168>
- 11:42 AM Changeset in webkit [171657] by
-
- 3 edits2 copies in branches/safari-600.1-branch
Merge r171640. <rdar://problem/17812921>
- 11:37 AM Changeset in webkit [171656] by
-
- 5 edits in branches/safari-600.1-branch/Source
Merge r171635. <rdar://problem/17782407>
- 11:33 AM Changeset in webkit [171655] by
-
- 9 edits1 copy in branches/safari-600.1-branch
Merge r171626. <rdar://problem/17730536>
- 11:30 AM Changeset in webkit [171654] by
-
- 8 edits2 copies in branches/safari-600.1-branch
Merge r171624. <rdar://problem/17715503>
- 11:19 AM Changeset in webkit [171653] by
-
- 4 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171616. <rdar://problem/17736875>
- 10:58 AM Changeset in webkit [171652] by
-
- 3 edits3 copies in branches/safari-600.1-branch
Merge r171609. <rdar://problem/17043792>
- 10:25 AM Changeset in webkit [171651] by
-
- 7 edits in trunk/Source/WebKit2
[WebKit2 iOS]Add support for caret movement for the 3rd party keyboard protocol.
https://bugs.webkit.org/show_bug.cgi?id=135325
<rdar://problem/17682120>
Reviewed by Sam Weinig.
WKContentView now implements moveByOffset to support the
protocol for 3rd party keyboards.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView moveByOffset:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::moveSelectionByOffset):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::moveSelectionByOffset):
Jul 26, 2014:
- 12:48 PM Changeset in webkit [171650] by
-
- 3 edits in trunk/Source/WebCore
Web Replay: log and enforce session/segment state machine transitions
https://bugs.webkit.org/show_bug.cgi?id=135224
Reviewed by Timothy Hatcher.
For debugging purposes, log session and segment state transitions.
Assert that segment state transitions are valid.
No new tests. No behavior was changed.
- replay/ReplayController.cpp:
(WebCore::logDispatchedDOMEvent):
(WebCore::sessionStateToString):
(WebCore::segmentStateToString):
(WebCore::ReplayController::setSessionState):
(WebCore::ReplayController::setSegmentState):
(WebCore::ReplayController::createSegment):
(WebCore::ReplayController::completeSegment): Remove a wrong state transition.
(WebCore::ReplayController::loadSegmentAtIndex):
(WebCore::ReplayController::unloadSegment): Fix a now-erroneous assertion.
(WebCore::ReplayController::startPlayback):
(WebCore::ReplayController::pausePlayback):
(WebCore::ReplayController::willDispatchEvent):
(WebCore::ReplayController::cancelPlayback):
- replay/ReplayController.h:
- 12:43 PM Changeset in webkit [171649] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: ReplayManager uses undefined events and inconsistent event data
https://bugs.webkit.org/show_bug.cgi?id=135222
Reviewed by Timothy Hatcher.
- UserInterface/Controllers/ReplayManager.js:
(WebInspector.ReplayManager.prototype.sessionCreated.this):
(WebInspector.ReplayManager.prototype.sessionCreated):
(WebInspector.ReplayManager.prototype.segmentLoaded):
(WebInspector.ReplayManager.prototype.segmentUnloaded):
(WebInspector.ReplayManager.prototype.stopCapturing):
(WebInspector.ReplayManager.prototype.replayToMarkIndex):
(WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
(WebInspector.ReplayManager.prototype.segmentCompleted):
(WebInspector.ReplayManager.prototype.startCapturing):
(WebInspector.ReplayManager.prototype._changeSessionState):
- 12:06 PM Changeset in webkit [171648] by
-
- 89 edits3 adds53 deletes in trunk
Unreviewed, roll out r171641-r171644. It broke some tests; will investigate and
reland later.
Source/JavaScriptCore:
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::printPutByIdCacheStatus): Deleted.
- bytecode/CodeBlock.h:
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeForStubInfo):
(JSC::GetByIdStatus::computeFor):
- bytecode/GetByIdStatus.h:
- bytecode/GetByIdVariant.cpp:
(JSC::GetByIdVariant::dumpInContext):
- bytecode/GetByIdVariant.h:
(JSC::GetByIdVariant::structureSet):
- bytecode/Instruction.h:
- bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::appendVariant):
(JSC::PutByIdStatus::computeForStubInfo):
(JSC::PutByIdStatus::computeFor):
- bytecode/PutByIdStatus.h:
- bytecode/PutByIdVariant.cpp:
(JSC::PutByIdVariant::dumpInContext):
(JSC::PutByIdVariant::oldStructureForTransition): Deleted.
(JSC::PutByIdVariant::writesStructures): Deleted.
(JSC::PutByIdVariant::reallocatesStorage): Deleted.
(JSC::PutByIdVariant::attemptToMerge): Deleted.
(JSC::PutByIdVariant::attemptToMergeTransitionWithReplace): Deleted.
- bytecode/PutByIdVariant.h:
(JSC::PutByIdVariant::PutByIdVariant):
(JSC::PutByIdVariant::replace):
(JSC::PutByIdVariant::transition):
(JSC::PutByIdVariant::structure):
(JSC::PutByIdVariant::oldStructure):
(JSC::PutByIdVariant::newStructure):
(JSC::PutByIdVariant::constantChecks):
- bytecode/StructureSet.cpp:
(JSC::StructureSet::filter): Deleted.
(JSC::StructureSet::filterArrayModes): Deleted.
- bytecode/StructureSet.h:
(JSC::StructureSet::onlyStructure):
- bytecode/ToThisStatus.cpp: Removed.
- bytecode/ToThisStatus.h: Removed.
- bytecode/TypeLocation.h: Removed.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitMove):
(JSC::BytecodeGenerator::emitPutToScope):
(JSC::BytecodeGenerator::emitPutById):
(JSC::BytecodeGenerator::emitPutByVal):
(JSC::BytecodeGenerator::emitProfileTypesWithHighFidelity): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::isProfilingTypesWithHighFidelity): Deleted.
- bytecompiler/NodesCodegen.cpp:
(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::ConstDeclNode::emitCodeSingle):
(JSC::ForInNode::emitBytecode):
- debugger/DebuggerActivation.cpp: Added.
(JSC::DebuggerActivation::DebuggerActivation):
(JSC::DebuggerActivation::finishCreation):
(JSC::DebuggerActivation::visitChildren):
(JSC::DebuggerActivation::className):
(JSC::DebuggerActivation::getOwnPropertySlot):
(JSC::DebuggerActivation::put):
(JSC::DebuggerActivation::deleteProperty):
(JSC::DebuggerActivation::getOwnPropertyNames):
(JSC::DebuggerActivation::defineOwnProperty):
- debugger/DebuggerActivation.h: Added.
(JSC::DebuggerActivation::create):
(JSC::DebuggerActivation::createStructure):
- debugger/DebuggerScope.cpp: Removed.
- debugger/DebuggerScope.h: Removed.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransition):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransitions):
- dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::changeStructure): Deleted.
(JSC::DFG::AbstractValue::contains): Deleted.
- dfg/DFGAbstractValue.h:
(JSC::DFG::AbstractValue::couldBeType):
(JSC::DFG::AbstractValue::isType):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::emitGetByOffset):
(JSC::DFG::ConstantFoldingPhase::emitPutByOffset):
(JSC::DFG::ConstantFoldingPhase::addBaseCheck): Deleted.
(JSC::DFG::ConstantFoldingPhase::addChecks): Deleted.
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::visitChildren):
(JSC::DFG::Graph::freezeStrong):
- dfg/DFGGraph.h:
- dfg/DFGNode.cpp:
(JSC::DFG::MultiPutByOffsetData::writesStructures):
(JSC::DFG::MultiPutByOffsetData::reallocatesStorage):
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToPutByOffset):
(JSC::DFG::Node::hasTransition):
(JSC::DFG::Node::convertToMultiGetByOffset): Deleted.
(JSC::DFG::Node::convertToMultiPutByOffset): Deleted.
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Strict):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStructureAbstractValue.cpp:
(JSC::DFG::StructureAbstractValue::observeTransition):
(JSC::DFG::StructureAbstractValue::observeTransitions):
- dfg/DFGStructureAbstractValue.h:
(JSC::DFG::StructureAbstractValue::onlyStructure):
(JSC::DFG::StructureAbstractValue::operator=): Deleted.
(JSC::DFG::StructureAbstractValue::set): Deleted.
- dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validate):
- dfg/DFGWatchableStructureWatchingPhase.cpp:
(JSC::DFG::WatchableStructureWatchingPhase::run):
- ftl/FTLAbbreviations.h:
(JSC::FTL::getLinkage): Deleted.
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compilePhantomPutStructure):
(JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
(JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset):
(JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol):
- heap/Heap.cpp:
(JSC::Heap::collect):
- inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::getRuntimeTypeForVariableInTextRange): Deleted.
- inspector/agents/InspectorRuntimeAgent.h:
- inspector/protocol/Runtime.json:
- jsc.cpp:
(GlobalObject::finishCreation):
(functionDumpTypesForAllVariables): Deleted.
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::putToScopeCommon): Deleted.
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/ArrayBufferNeuteringWatchpoint.cpp:
(JSC::ArrayBufferNeuteringWatchpoint::createStructure):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/Executable.h:
(JSC::ExecutableBase::createStructure):
(JSC::NativeExecutable::createStructure):
- runtime/HighFidelityLog.cpp: Removed.
- runtime/HighFidelityLog.h: Removed.
- runtime/HighFidelityTypeProfiler.cpp: Removed.
- runtime/HighFidelityTypeProfiler.h: Removed.
- runtime/JSObject.cpp:
(JSC::JSObject::putDirectCustomAccessor):
(JSC::JSObject::putDirectNonIndexAccessor):
(JSC::JSObject::reifyStaticFunctionsForDelete):
- runtime/JSPromiseDeferred.h:
(JSC::JSPromiseDeferred::createStructure):
- runtime/JSPromiseReaction.h:
(JSC::JSPromiseReaction::createStructure):
- runtime/JSPropertyNameIterator.h:
(JSC::JSPropertyNameIterator::createStructure):
- runtime/JSType.h:
- runtime/JSTypeInfo.h:
(JSC::TypeInfo::TypeInfo):
- runtime/MapData.h:
(JSC::MapData::createStructure):
- runtime/Options.h:
- runtime/PropertyMapHashTable.h:
(JSC::PropertyTable::createStructure):
- runtime/RegExp.h:
(JSC::RegExp::createStructure):
- runtime/SparseArrayValueMap.cpp:
(JSC::SparseArrayValueMap::createStructure):
- runtime/Structure.cpp:
(JSC::StructureTransitionTable::contains):
(JSC::StructureTransitionTable::get):
(JSC::StructureTransitionTable::add):
(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap):
(JSC::Structure::addPropertyTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::freezeTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::pin):
(JSC::Structure::allocateRareData):
(JSC::Structure::cloneRareDataFrom):
(JSC::Structure::getConcurrently):
(JSC::Structure::putSpecificValue):
(JSC::Structure::getPropertyNamesFromStructure):
(JSC::Structure::visitChildren):
(JSC::Structure::checkConsistency):
(JSC::Structure::toStructureShape): Deleted.
- runtime/Structure.h:
(JSC::Structure::isExtensible):
(JSC::Structure::didTransition):
(JSC::Structure::isDictionary):
(JSC::Structure::isUncacheableDictionary):
(JSC::Structure::hasBeenFlattenedBefore):
(JSC::Structure::propertyAccessesAreCacheable):
(JSC::Structure::previousID):
(JSC::Structure::hasGetterSetterProperties):
(JSC::Structure::hasReadOnlyOrGetterSetterPropertiesExcludingProto):
(JSC::Structure::setHasGetterSetterProperties):
(JSC::Structure::hasCustomGetterSetterProperties):
(JSC::Structure::setHasCustomGetterSetterProperties):
(JSC::Structure::setContainsReadOnlyProperties):
(JSC::Structure::hasNonEnumerableProperties):
(JSC::Structure::disableSpecificFunctionTracking):
(JSC::Structure::objectToStringValue):
(JSC::Structure::setObjectToStringValue):
(JSC::Structure::staticFunctionsReified):
(JSC::Structure::setStaticFunctionsReified):
(JSC::Structure::transitionWatchpointSet):
(JSC::Structure::setPreviousID):
(JSC::Structure::clearPreviousID):
(JSC::Structure::previous):
(JSC::Structure::rareData):
(JSC::Structure::setHasGetterSetterPropertiesWithProtoCheck): Deleted.
(JSC::Structure::setHasCustomGetterSetterPropertiesWithProtoCheck): Deleted.
- runtime/StructureChain.h:
(JSC::StructureChain::createStructure):
- runtime/StructureInlines.h:
(JSC::Structure::setEnumerationCache):
(JSC::Structure::enumerationCache):
(JSC::Structure::checkOffsetConsistency):
- runtime/StructureRareData.cpp:
(JSC::StructureRareData::createStructure):
- runtime/SymbolTable.cpp:
(JSC::SymbolTable::SymbolTable):
(JSC::SymbolTable::cloneCapturedNames):
(JSC::SymbolTable::uniqueIDForVariable): Deleted.
(JSC::SymbolTable::uniqueIDForRegister): Deleted.
(JSC::SymbolTable::globalTypeSetForRegister): Deleted.
(JSC::SymbolTable::globalTypeSetForVariable): Deleted.
- runtime/SymbolTable.h:
(JSC::SymbolTable::createStructure):
(JSC::SymbolTable::add):
(JSC::SymbolTable::set):
- runtime/TypeSet.cpp: Removed.
- runtime/TypeSet.h: Removed.
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::getTypesForVariableInRange): Deleted.
(JSC::VM::updateHighFidelityTypeProfileState): Deleted.
(JSC::VM::dumpHighFidelityProfilingTypes): Deleted.
- runtime/VM.h:
(JSC::VM::isProfilingTypesWithHighFidelity): Deleted.
(JSC::VM::highFidelityLog): Deleted.
(JSC::VM::highFidelityTypeProfiler): Deleted.
(JSC::VM::nextLocation): Deleted.
(JSC::VM::getNextUniqueVariableID): Deleted.
- runtime/WeakMapData.h:
(JSC::WeakMapData::createStructure):
- tests/stress/fold-multi-get-by-offset-to-get-by-offset-without-folding-the-structure-check.js: Removed.
- tests/stress/fold-multi-put-by-offset-to-put-by-offset-without-folding-the-structure-check.js: Removed.
- tests/stress/prune-multi-put-by-offset-replace-or-transition-variant.js: Removed.
Source/WebCore:
- ForwardingHeaders/debugger/DebuggerActivation.h: Added.
Source/WebKit/mac:
- WebView/WebScriptDebugDelegate.mm:
Source/WTF:
- wtf/text/WTFString.h:
LayoutTests:
- js/regress/fold-get-by-id-to-multi-get-by-offset-expected.txt: Removed.
- js/regress/fold-get-by-id-to-multi-get-by-offset-rare-int-expected.txt: Removed.
- js/regress/fold-get-by-id-to-multi-get-by-offset-rare-int.html: Removed.
- js/regress/fold-get-by-id-to-multi-get-by-offset.html: Removed.
- js/regress/fold-multi-get-by-offset-to-get-by-offset-expected.txt: Removed.
- js/regress/fold-multi-get-by-offset-to-get-by-offset.html: Removed.
- js/regress/fold-multi-get-by-offset-to-poly-get-by-offset-expected.txt: Removed.
- js/regress/fold-multi-get-by-offset-to-poly-get-by-offset.html: Removed.
- js/regress/fold-multi-put-by-offset-to-poly-put-by-offset-expected.txt: Removed.
- js/regress/fold-multi-put-by-offset-to-poly-put-by-offset.html: Removed.
- js/regress/fold-multi-put-by-offset-to-put-by-offset-expected.txt: Removed.
- js/regress/fold-multi-put-by-offset-to-put-by-offset.html: Removed.
- js/regress/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset-expected.txt: Removed.
- js/regress/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.html: Removed.
- js/regress/fold-put-by-id-to-multi-put-by-offset-expected.txt: Removed.
- js/regress/fold-put-by-id-to-multi-put-by-offset.html: Removed.
- js/regress/fold-put-structure-expected.txt: Removed.
- js/regress/fold-put-structure.html: Removed.
- js/regress/hoist-poly-check-structure-effectful-loop-expected.txt: Removed.
- js/regress/hoist-poly-check-structure-effectful-loop.html: Removed.
- js/regress/hoist-poly-check-structure-expected.txt: Removed.
- js/regress/hoist-poly-check-structure.html: Removed.
- js/regress/put-by-id-replace-and-transition-expected.txt: Removed.
- js/regress/put-by-id-replace-and-transition.html: Removed.
- js/regress/put-by-id-slightly-polymorphic-expected.txt: Removed.
- js/regress/put-by-id-slightly-polymorphic.html: Removed.
- js/regress/script-tests/fold-get-by-id-to-multi-get-by-offset-rare-int.js: Removed.
- js/regress/script-tests/fold-get-by-id-to-multi-get-by-offset.js: Removed.
- js/regress/script-tests/fold-multi-get-by-offset-to-get-by-offset.js: Removed.
- js/regress/script-tests/fold-multi-get-by-offset-to-poly-get-by-offset.js: Removed.
- js/regress/script-tests/fold-multi-put-by-offset-to-poly-put-by-offset.js: Removed.
- js/regress/script-tests/fold-multi-put-by-offset-to-put-by-offset.js: Removed.
- js/regress/script-tests/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.js: Removed.
- js/regress/script-tests/fold-put-by-id-to-multi-put-by-offset.js: Removed.
- js/regress/script-tests/fold-put-structure.js: Removed.
- js/regress/script-tests/hoist-poly-check-structure-effectful-loop.js: Removed.
- js/regress/script-tests/hoist-poly-check-structure.js: Removed.
- js/regress/script-tests/put-by-id-replace-and-transition.js: Removed.
- js/regress/script-tests/put-by-id-slightly-polymorphic.js: Removed.
- 11:45 AM Changeset in webkit [171647] by
-
- 7 edits in trunk/Source
Crash in Web Content Process under ~PDFDocument under clearTouchEventListeners at topDocument()
https://bugs.webkit.org/show_bug.cgi?id=135319
<rdar://problem/17315168>
Reviewed by Darin Adler and Antti Koivisto.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::committedLoad):
Allow data through to WebCore for frames with custom content providers;
the only custom content provider currently implemented is main frame PDF
on iOS, which will end up creating a PDFDocument in WebCore, which drops all
data on the floor immediately, so this won't result in WebCore doing anything
with the data, but makes sure that more of the normal document lifecycle is maintained.
In the future, we might want to consider ensuring that all custom content providers
end up creating a SinkDocument or something similarly generic to ensure that
WebCore doesn't try to do anything with their data, but for now, the only client is covered.
- dom/Document.h:
- dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::prepareForDestruction):
Add a flag on Document, m_hasPreparedForDestruction, which ensures
that each Document only goes through prepareForDestruction() once.
prepareForDestruction() can be called a number of times during teardown,
but it's only necessary to actually execute it once.
This was previously achieved by virtue of all callers of prepareForDestruction()
first checking hasLivingRenderTree, and prepareForDestruction() tearing down
the render tree, but that meant that prepareForDestruction() was not called
for Documents who never had a render tree in the first place.
The only part of prepareForDestruction() that is now predicated on hasLivingRenderTree()
is the call to destroyRenderTree(); the rest of the function has the potential to be relevant
for non-rendered placeholder documents and can safely deal with them in other ways.
It is important to call prepareForDestruction() on non-rendered placeholder documents
because some of the cleanup (like disconnectFromFrame()) is critical to safe destruction.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
Call prepareForDestruction() even if we don't have a living render tree.
For the sake of minimizing change, removeFocusedNodeOfSubtree still
depends on having a living render tree before calling prepareForDestruction().
- page/Frame.cpp:
(WebCore::Frame::setView):
(WebCore::Frame::setDocument):
Call prepareForDestruction() even if we don't have a living render tree.
- 9:44 AM Changeset in webkit [171646] by
-
- 2 edits in trunk/Source/WebInspectorUI
Remove accidental debugging console.log
https://bugs.webkit.org/show_bug.cgi?id=135315
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-26
Reviewed by Alexey Proskuryakov.
- UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid):
- 9:42 AM Changeset in webkit [171645] by
-
- 6 edits in trunk/Source/WebInspectorUI
Web Inspector: Timelines performance is very slow, has many forced layouts
https://bugs.webkit.org/show_bug.cgi?id=135313
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-26
Reviewed by Timothy Hatcher.
- UserInterface/Views/NavigationItem.js:
(WebInspector.NavigationItem):
(WebInspector.NavigationItem.prototype.get hidden):
(WebInspector.NavigationItem.prototype.set hidden):
Don't have the parent navigation bar update layout if the hidden state did not change.
This greatly reduces the number of forced layouts as timeline nodes are added.
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
(WebInspector.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
Don't do any work if this is not changing the view.
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibilitySoon):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
When first selecting a specific timeline (Layout / Scripts) we would have a very long hang
updating the content. Most of this was time spent updating the overflow shadow visibility
because every single tree element addition was causing a layout invalidation and forced layout.
Coalesce all of the tree element adds into a single update at the end.
- UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.updateLayout):
Calculating the visible duration checks offsetLeft. Calculate this once, outside
of a loop down below, to prevent or reduce possible forced layouts.
- UserInterface/Views/TreeOutline.js:
(TreeElement.prototype.revealed):
Prevent doing any work for timeline tree elements outside of the selected time range.
Previously they were considered revealed if a parent was expanded, even though that
parent was hidden. This greatly reduces the amount of work during a recording, since
previously we were potentially doing a forced layout for hidden nodes.
- UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
Ignore ProfileNode, which may happen here in the Script timeline.
Jul 25, 2014:
- 10:59 PM Changeset in webkit [171644] by
-
- 2 edits in trunk/Source/WTF
Attempt to fix Windows.
- wtf/text/WTFString.h:
- 10:44 PM Changeset in webkit [171643] by
-
- 3 edits in trunk/Source/JavaScriptCore
Attempt to fix non-Xcode platforms.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- 10:37 PM Changeset in webkit [171642] by
-
- 4 edits in trunk/Source/JavaScriptCore
Fix cloop.
- bytecode/CodeBlock.cpp:
(JSC::dumpChain):
(JSC::CodeBlock::printPutByIdCacheStatus):
- bytecode/StructureSet.cpp:
- bytecode/StructureSet.h:
- 10:18 PM Changeset in webkit [171641] by
-
- 86 edits53 adds3 deletes in trunk
Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt.
Source/JavaScriptCore:
2014-06-27 Michael Saboff <msaboff@apple.com>
Unreviewed build fix after r169795.
Fixed ASSERT for 32 bit build.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):
2014-06-24 Saam Barati <sbarati@apple.com>
Web Inspector: debugger should be able to show variable types
https://bugs.webkit.org/show_bug.cgi?id=133395
Reviewed by Filip Pizlo.
Increase the amount of type information the VM gathers when directed
to do so. This initial commit is working towards the goal of
capturing, and then showing (via the Web Inspector) type information for all
assignment and load operations. This patch doesn't have the feature fully
implemented, but it ensures the VM has no performance regressions
unless the feature is specifically turned on.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h: (JSC::computeUsesForBytecodeOffset): (JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): (JSC::CodeBlock::CodeBlock): (JSC::CodeBlock::finalizeUnconditionally):
- bytecode/CodeBlock.h:
- bytecode/Instruction.h:
- bytecode/TypeLocation.h: Added. (JSC::TypeLocation::TypeLocation):
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitMove): (JSC::BytecodeGenerator::emitProfileTypesWithHighFidelity): (JSC::BytecodeGenerator::emitPutToScope): (JSC::BytecodeGenerator::emitPutById): (JSC::BytecodeGenerator::emitPutByVal):
- bytecompiler/BytecodeGenerator.h: (JSC::BytecodeGenerator::isProfilingTypesWithHighFidelity):
- bytecompiler/NodesCodegen.cpp: (JSC::PostfixNode::emitResolve): (JSC::PrefixNode::emitResolve): (JSC::ReadModifyResolveNode::emitBytecode): (JSC::AssignResolveNode::emitBytecode): (JSC::ConstDeclNode::emitCodeSingle): (JSC::ForInNode::emitBytecode):
- heap/Heap.cpp: (JSC::Heap::collect):
- inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::getRuntimeTypeForVariableInTextRange):
- inspector/agents/InspectorRuntimeAgent.h:
- inspector/protocol/Runtime.json:
- jsc.cpp: (GlobalObject::finishCreation): (functionDumpTypesForAllVariables):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL): (JSC::LLInt::putToScopeCommon):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- runtime/HighFidelityLog.cpp: Added. (JSC::HighFidelityLog::initializeHighFidelityLog): (JSC::HighFidelityLog::~HighFidelityLog): (JSC::HighFidelityLog::recordTypeInformationForLocation): (JSC::HighFidelityLog::processHighFidelityLog): (JSC::HighFidelityLog::actuallyProcessLogThreadFunction):
- runtime/HighFidelityLog.h: Added. (JSC::HighFidelityLog::HighFidelityLog):
- runtime/HighFidelityTypeProfiler.cpp: Added. (JSC::HighFidelityTypeProfiler::getTypesForVariableInRange): (JSC::HighFidelityTypeProfiler::getGlobalTypesForVariableInRange): (JSC::HighFidelityTypeProfiler::getLocalTypesForVariableInRange): (JSC::HighFidelityTypeProfiler::insertNewLocation): (JSC::HighFidelityTypeProfiler::getLocationBasedHash):
- runtime/HighFidelityTypeProfiler.h: Added.
- runtime/Options.h:
- runtime/Structure.cpp: (JSC::Structure::toStructureShape):
- runtime/Structure.h:
- runtime/SymbolTable.cpp: (JSC::SymbolTable::SymbolTable): (JSC::SymbolTable::cloneCapturedNames): (JSC::SymbolTable::uniqueIDForVariable): (JSC::SymbolTable::uniqueIDForRegister): (JSC::SymbolTable::globalTypeSetForRegister): (JSC::SymbolTable::globalTypeSetForVariable):
- runtime/SymbolTable.h: (JSC::SymbolTable::add): (JSC::SymbolTable::set):
- runtime/TypeSet.cpp: Added. (JSC::TypeSet::TypeSet): (JSC::TypeSet::getRuntimeTypeForValue): (JSC::TypeSet::addTypeForValue): (JSC::TypeSet::removeDuplicatesInStructureHistory): (JSC::TypeSet::seenTypes): (JSC::TypeSet::dumpSeenTypes): (JSC::StructureShape::StructureShape): (JSC::StructureShape::markAsFinal): (JSC::StructureShape::addProperty): (JSC::StructureShape::propertyHash): (JSC::StructureShape::leastUpperBound): (JSC::StructureShape::stringRepresentation):
- runtime/TypeSet.h: Added. (JSC::StructureShape::create): (JSC::TypeSet::create):
- runtime/VM.cpp: (JSC::VM::VM): (JSC::VM::getTypesForVariableInRange): (JSC::VM::updateHighFidelityTypeProfileState): (JSC::VM::dumpHighFidelityProfilingTypes):
- runtime/VM.h: (JSC::VM::isProfilingTypesWithHighFidelity): (JSC::VM::highFidelityLog): (JSC::VM::highFidelityTypeProfiler): (JSC::VM::nextLocation): (JSC::VM::getNextUniqueVariableID):
2014-06-26 Mark Lam <mark.lam@apple.com>
Remove unused instantiation of the WithScope structure.
<https://webkit.org/b/134331>
Reviewed by Oliver Hunt.
The WithScope structure instance is the VM is unused, and is now removed.
- runtime/VM.cpp: (JSC::VM::VM):
- runtime/VM.h:
2014-06-25 Mark Hahnenberg <mhahnenberg@apple.com>
Structure bit fields should have a consistent format
https://bugs.webkit.org/show_bug.cgi?id=134307
Reviewed by Filip Pizlo.
Currently we use C-style bit fields for a number of member variables in Structure to save space.
This makes it difficult to load these fields in the JIT. We should instead use our own bitfield
format to make it easy to load and test these variables in JIT code.
- runtime/JSObject.cpp: (JSC::JSObject::putDirectNonIndexAccessor): (JSC::JSObject::reifyStaticFunctionsForDelete):
- runtime/Structure.cpp: (JSC::StructureTransitionTable::contains): (JSC::StructureTransitionTable::get): (JSC::StructureTransitionTable::add): (JSC::Structure::Structure): (JSC::Structure::materializePropertyMap): (JSC::Structure::addPropertyTransition): (JSC::Structure::despecifyFunctionTransition): (JSC::Structure::toDictionaryTransition): (JSC::Structure::freezeTransition): (JSC::Structure::preventExtensionsTransition): (JSC::Structure::takePropertyTableOrCloneIfPinned): (JSC::Structure::nonPropertyTransition): (JSC::Structure::flattenDictionaryStructure): (JSC::Structure::addPropertyWithoutTransition): (JSC::Structure::pin): (JSC::Structure::allocateRareData): (JSC::Structure::cloneRareDataFrom): (JSC::Structure::getConcurrently): (JSC::Structure::putSpecificValue): (JSC::Structure::getPropertyNamesFromStructure): (JSC::Structure::visitChildren): (JSC::Structure::checkConsistency):
- runtime/Structure.h: (JSC::Structure::isExtensible): (JSC::Structure::isDictionary): (JSC::Structure::isUncacheableDictionary): (JSC::Structure::propertyAccessesAreCacheable): (JSC::Structure::previousID): (JSC::Structure::setHasGetterSetterPropertiesWithProtoCheck): (JSC::Structure::setContainsReadOnlyProperties): (JSC::Structure::disableSpecificFunctionTracking): (JSC::Structure::objectToStringValue): (JSC::Structure::setObjectToStringValue): (JSC::Structure::setPreviousID): (JSC::Structure::clearPreviousID): (JSC::Structure::previous): (JSC::Structure::rareData): (JSC::Structure::didTransition): Deleted. (JSC::Structure::hasGetterSetterProperties): Deleted. (JSC::Structure::hasReadOnlyOrGetterSetterPropertiesExcludingProto): Deleted. (JSC::Structure::setHasGetterSetterProperties): Deleted. (JSC::Structure::hasNonEnumerableProperties): Deleted. (JSC::Structure::staticFunctionsReified): Deleted. (JSC::Structure::setStaticFunctionsReified): Deleted.
- runtime/StructureInlines.h: (JSC::Structure::setEnumerationCache): (JSC::Structure::enumerationCache): (JSC::Structure::checkOffsetConsistency):
2014-06-24 Mark Lam <mark.lam@apple.com>
[ftlopt] Renamed DebuggerActivation to DebuggerScope.
<https://webkit.org/b/134273>
Reviewed by Michael Saboff.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
- JavaScriptCore.xcodeproj/project.pbxproj:
- debugger/DebuggerActivation.cpp: Removed.
- debugger/DebuggerActivation.h: Removed.
- debugger/DebuggerScope.cpp: Copied from ../../trunk/Source/JavaScriptCore/debugger/DebuggerActivation.cpp. (JSC::DebuggerScope::DebuggerScope): (JSC::DebuggerScope::finishCreation): (JSC::DebuggerScope::visitChildren): (JSC::DebuggerScope::className): (JSC::DebuggerScope::getOwnPropertySlot): (JSC::DebuggerScope::put): (JSC::DebuggerScope::deleteProperty): (JSC::DebuggerScope::getOwnPropertyNames): (JSC::DebuggerScope::defineOwnProperty): (JSC::DebuggerActivation::DebuggerActivation): Deleted. (JSC::DebuggerActivation::finishCreation): Deleted. (JSC::DebuggerActivation::visitChildren): Deleted. (JSC::DebuggerActivation::className): Deleted. (JSC::DebuggerActivation::getOwnPropertySlot): Deleted. (JSC::DebuggerActivation::put): Deleted. (JSC::DebuggerActivation::deleteProperty): Deleted. (JSC::DebuggerActivation::getOwnPropertyNames): Deleted. (JSC::DebuggerActivation::defineOwnProperty): Deleted.
- debugger/DebuggerScope.h: Copied from ../../trunk/Source/JavaScriptCore/debugger/DebuggerActivation.h. (JSC::DebuggerScope::create): (JSC::DebuggerActivation::create): Deleted.
- runtime/VM.cpp: (JSC::VM::VM):
- runtime/VM.h:
2014-06-24 Filip Pizlo <fpizlo@apple.com>
[ftlopt] PutByIdFlush can also be converted to a PutByOffset so don't assert otherwise
https://bugs.webkit.org/show_bug.cgi?id=134265
Reviewed by Geoffrey Garen.
More assertion fallout from the PutById folding work.
- dfg/DFGNode.h: (JSC::DFG::Node::convertToPutByOffset):
2014-06-24 Filip Pizlo <fpizlo@apple.com>
[ftlopt] GC should notify us if it resets to_this
https://bugs.webkit.org/show_bug.cgi?id=128231
Reviewed by Geoffrey Garen.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.json:
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): (JSC::CodeBlock::finalizeUnconditionally):
- bytecode/Instruction.h:
- bytecode/ToThisStatus.cpp: Added. (JSC::merge): (WTF::printInternal):
- bytecode/ToThisStatus.h: Added.
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::BytecodeGenerator):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL):
2014-06-24 Filip Pizlo <fpizlo@apple.com>
[ftlopt] StructureAbstractValue::onlyStructure() should return nullptr if isClobbered()
https://bugs.webkit.org/show_bug.cgi?id=134256
Reviewed by Michael Saboff.
This isn't testable right now (i.e. it's benign) but we should get it right anyway. The
point is to be able to precisely model what goes on in the snippets of code between a
side-effect and an InvalidationPoint.
This patch also cleans up onlyStructure() by delegating more work to
StructureSet::onlyStructure().
- dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::onlyStructure):
2014-06-24 Filip Pizlo <fpizlo@apple.com>
[ftlopt][REGRESSION] PutById AI is introducing watchable structures without watching them
https://bugs.webkit.org/show_bug.cgi?id=134260
Reviewed by Geoffrey Garen.
This was causing loads of assertion failures in debug builds.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
2014-06-21 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Fold GetById/PutById to MultiGetByOffset/GetByOffset or MultiPutByOffset/PutByOffset, which implies handling non-singleton sets
https://bugs.webkit.org/show_bug.cgi?id=134090
Reviewed by Oliver Hunt.
This pretty much finishes off the work to eliminate the special-casing of singleton
structure sets by making it possible to fold GetById and PutById to various polymorphic
forms of the ByOffset nodes.
- bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::computeForStubInfo): (JSC::GetByIdStatus::computeFor):
- bytecode/GetByIdStatus.h:
- bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeFor):
- bytecode/PutByIdStatus.h:
- bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::constantChecks):
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset): (JSC::DFG::ConstantFoldingPhase::addChecks):
- dfg/DFGNode.h: (JSC::DFG::Node::convertToMultiGetByOffset): (JSC::DFG::Node::convertToMultiPutByOffset):
- dfg/DFGSpeculativeJIT64.cpp: Also convert all release assertions to DFG assertions in this file, because I was hitting some of them while debugging. (JSC::DFG::SpeculativeJIT::fillJSValue): (JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull): (JSC::DFG::SpeculativeJIT::emitCall): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Strict): (JSC::DFG::SpeculativeJIT::fillSpeculateInt52): (JSC::DFG::SpeculativeJIT::fillSpeculateDouble): (JSC::DFG::SpeculativeJIT::fillSpeculateCell): (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean): (JSC::DFG::SpeculativeJIT::compileLogicalNot): (JSC::DFG::SpeculativeJIT::emitBranch): (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::set):
2014-06-19 Filip Pizlo <fpizlo@apple.com>
[ftlopt] StructureSet::onlyStructure() should return nullptr if it's not a singleton (instead of asserting)
https://bugs.webkit.org/show_bug.cgi?id=134077
Reviewed by Sam Weinig.
This makes StructureSet and StructureAbstractValue more consistent and fixes a debug assert
in the abstract interpreter.
- bytecode/StructureSet.h: (JSC::StructureSet::onlyStructure):
2014-06-18 Filip Pizlo <fpizlo@apple.com>
DFG AI and constant folder should be able to precisely prune MultiGetByOffset/MultiPutByOffset even if the base structure abstract value is not a singleton
https://bugs.webkit.org/show_bug.cgi?id=133918
Reviewed by Mark Hahnenberg.
This also adds pruning of PutStructure, since I basically had no choice but
to implement such logic within MultiPutByOffset.
Also adds a bunch of PutById cache status dumping to bytecode dumping.
- bytecode/GetByIdVariant.cpp: (JSC::GetByIdVariant::dumpInContext):
- bytecode/GetByIdVariant.h: (JSC::GetByIdVariant::structureSet):
- bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::oldStructure):
- bytecode/StructureSet.cpp: (JSC::StructureSet::filter): (JSC::StructureSet::filterArrayModes):
- bytecode/StructureSet.h:
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGAbstractValue.cpp: (JSC::DFG::AbstractValue::changeStructure): (JSC::DFG::AbstractValue::contains):
- dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::couldBeType): (JSC::DFG::AbstractValue::isType):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitGetByOffset): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset): (JSC::DFG::ConstantFoldingPhase::addBaseCheck):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::freezeStrong):
- dfg/DFGGraph.h:
- dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::operator=):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
- tests/stress/fold-multi-get-by-offset-to-get-by-offset-without-folding-the-structure-check.js: Added. (foo): (fu): (bar): (baz): (.bar): (.baz):
- tests/stress/fold-multi-put-by-offset-to-put-by-offset-without-folding-the-structure-check.js: Added. (foo): (fu): (bar): (baz): (.bar): (.baz):
- tests/stress/prune-multi-put-by-offset-replace-or-transition-variant.js: Added. (foo): (fu): (bar): (baz): (.bar): (.baz):
2014-06-18 Mark Hahnenberg <mhahnenberg@apple.com>
Remove CompoundType and LeafType
https://bugs.webkit.org/show_bug.cgi?id=134037
Reviewed by Filip Pizlo.
We don't use them for anything. We'll replace them with a generic CellType type for all
the objects that are JSCells, aren't JSObjects, and for which we generally don't care about
their JSType at runtime.
- llint/LLIntData.cpp: (JSC::LLInt::Data::performAssertions):
- runtime/ArrayBufferNeuteringWatchpoint.cpp: (JSC::ArrayBufferNeuteringWatchpoint::createStructure):
- runtime/Executable.h: (JSC::ExecutableBase::createStructure): (JSC::NativeExecutable::createStructure):
- runtime/JSPromiseDeferred.h: (JSC::JSPromiseDeferred::createStructure):
- runtime/JSPromiseReaction.h: (JSC::JSPromiseReaction::createStructure):
- runtime/JSPropertyNameIterator.h: (JSC::JSPropertyNameIterator::createStructure):
- runtime/JSType.h:
- runtime/JSTypeInfo.h: (JSC::TypeInfo::TypeInfo):
- runtime/MapData.h: (JSC::MapData::createStructure):
- runtime/PropertyMapHashTable.h: (JSC::PropertyTable::createStructure):
- runtime/RegExp.h: (JSC::RegExp::createStructure):
- runtime/SparseArrayValueMap.cpp: (JSC::SparseArrayValueMap::createStructure):
- runtime/Structure.cpp: (JSC::Structure::Structure):
- runtime/StructureChain.h: (JSC::StructureChain::createStructure):
- runtime/StructureRareData.cpp: (JSC::StructureRareData::createStructure):
- runtime/SymbolTable.h: (JSC::SymbolTable::createStructure):
- runtime/WeakMapData.h: (JSC::WeakMapData::createStructure):
2014-06-17 Filip Pizlo <fpizlo@apple.com>
[ftlopt] PutStructure and PhantomPutStructure shouldn't leave the world in a clobbered state
https://bugs.webkit.org/show_bug.cgi?id=134002
Reviewed by Mark Hahnenberg.
The effect of this bug was that if we had a PutStructure or PhantomPutStructure then any
JSConstants would be in a Clobbered state, so we wouldn't take advantage of our knowledge
of the structure if that structure was watchable.
Also kill PhantomPutStructure.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): (JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransition): (JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransitions):
- dfg/DFGClobberize.h: (JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::visitChildren):
- dfg/DFGNode.h: (JSC::DFG::Node::hasTransition):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStructureAbstractValue.cpp: (JSC::DFG::StructureAbstractValue::observeTransition): (JSC::DFG::StructureAbstractValue::observeTransitions):
- dfg/DFGValidate.cpp: (JSC::DFG::Validate::validate):
- dfg/DFGWatchableStructureWatchingPhase.cpp: (JSC::DFG::WatchableStructureWatchingPhase::run):
- ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileNode): (JSC::FTL::LowerDFGToLLVM::compilePhantomPutStructure): Deleted.
2014-06-17 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG put_by_id should inline accesses with a slightly polymorphic base
https://bugs.webkit.org/show_bug.cgi?id=133964
Reviewed by Mark Hahnenberg.
- bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::appendVariant): (JSC::PutByIdStatus::computeForStubInfo):
- bytecode/PutByIdVariant.cpp: (JSC::PutByIdVariant::oldStructureForTransition): (JSC::PutByIdVariant::writesStructures): (JSC::PutByIdVariant::reallocatesStorage): (JSC::PutByIdVariant::attemptToMerge): (JSC::PutByIdVariant::attemptToMergeTransitionWithReplace): (JSC::PutByIdVariant::dumpInContext):
- bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::PutByIdVariant): (JSC::PutByIdVariant::replace): (JSC::PutByIdVariant::transition): (JSC::PutByIdVariant::structure): (JSC::PutByIdVariant::oldStructure):
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handlePutById): (JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::visitChildren):
- dfg/DFGNode.cpp: (JSC::DFG::MultiPutByOffsetData::writesStructures): (JSC::DFG::MultiPutByOffsetData::reallocatesStorage):
- ftl/FTLAbbreviations.h: (JSC::FTL::getLinkage):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset): (JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol):
Source/WebCore:
2014-07-25 Mark Lam <mark.lam@apple.com>
[ftlopt] Renamed DebuggerActivation to DebuggerScope.
<https://webkit.org/b/134273>
Reviewed by Michael Saboff.
No new tests.
- ForwardingHeaders/debugger/DebuggerActivation.h: Removed.
- Removed because this is not used.
Source/WebKit/mac:
2014-07-25 Mark Lam <mark.lam@apple.com>
[ftlopt] Renamed DebuggerActivation to DebuggerScope.
<https://webkit.org/b/134273>
Reviewed by Michael Saboff.
- WebView/WebScriptDebugDelegate.mm:
- Removed unneeded #include.
LayoutTests:
2014-07-25 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Fold GetById/PutById to MultiGetByOffset/GetByOffset or MultiPutByOffset/PutByOffset, which implies handling non-singleton sets
https://bugs.webkit.org/show_bug.cgi?id=134090
Reviewed by Oliver Hunt.
- js/regress/fold-get-by-id-to-multi-get-by-offset-expected.txt: Added.
- js/regress/fold-get-by-id-to-multi-get-by-offset-rare-int-expected.txt: Added.
- js/regress/fold-get-by-id-to-multi-get-by-offset-rare-int.html: Added.
- js/regress/fold-get-by-id-to-multi-get-by-offset.html: Added.
- js/regress/fold-put-by-id-to-multi-put-by-offset-expected.txt: Added.
- js/regress/fold-put-by-id-to-multi-put-by-offset.html: Added.
- js/regress/script-tests/fold-get-by-id-to-multi-get-by-offset-rare-int.js: Added. (foo): (fu): (bar): (.bar): (Number):
- js/regress/script-tests/fold-get-by-id-to-multi-get-by-offset.js: Added. (foo): (fu): (bar): (.bar): (Number):
- js/regress/script-tests/fold-put-by-id-to-multi-put-by-offset.js: Added. (foo): (fu): (bar): (.bar):
2014-06-19 Filip Pizlo <fpizlo@apple.com>
[ftlopt] LICM should be able to hoist CheckStructure even if the loop clobbers structures so long as the structures being checked are watchable
https://bugs.webkit.org/show_bug.cgi?id=134056
Unreviewed, just landing the test cases for this attempted optimization. The test cases
will still be valid once we find a smart way of doing this optimization.
- js/regress/hoist-poly-check-structure-effectful-loop-expected.txt: Added.
- js/regress/hoist-poly-check-structure-effectful-loop.html: Added.
- js/regress/hoist-poly-check-structure-expected.txt: Added.
- js/regress/hoist-poly-check-structure.html: Added.
- js/regress/script-tests/hoist-poly-check-structure-effectful-loop.js: Added. (foo): (test):
- js/regress/script-tests/hoist-poly-check-structure.js: Added. (foo): (test):
2014-06-18 Filip Pizlo <fpizlo@apple.com>
DFG AI and constant folder should be able to precisely prune MultiGetByOffset/MultiPutByOffset even if the base structure abstract value is not a singleton
https://bugs.webkit.org/show_bug.cgi?id=133918
Reviewed by Mark Hahnenberg.
- js/regress/fold-multi-get-by-offset-to-get-by-offset-expected.txt: Added.
- js/regress/fold-multi-get-by-offset-to-get-by-offset.html: Added.
- js/regress/fold-multi-get-by-offset-to-poly-get-by-offset-expected.txt: Added.
- js/regress/fold-multi-get-by-offset-to-poly-get-by-offset.html: Added.
- js/regress/fold-multi-put-by-offset-to-poly-put-by-offset-expected.txt: Added.
- js/regress/fold-multi-put-by-offset-to-poly-put-by-offset.html: Added.
- js/regress/fold-multi-put-by-offset-to-put-by-offset-expected.txt: Added.
- js/regress/fold-multi-put-by-offset-to-put-by-offset.html: Added.
- js/regress/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset-expected.txt: Added.
- js/regress/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.html: Added.
- js/regress/fold-put-structure-expected.txt: Added.
- js/regress/fold-put-structure.html: Added.
- js/regress/script-tests/fold-multi-get-by-offset-to-get-by-offset.js: Added. (foo): (fu): (bar): (.bar):
- js/regress/script-tests/fold-multi-get-by-offset-to-poly-get-by-offset.js: Added. (foo): (fu): (bar): (.bar):
- js/regress/script-tests/fold-multi-put-by-offset-to-poly-put-by-offset.js: Added. (foo): (fu): (bar): (.bar):
- js/regress/script-tests/fold-multi-put-by-offset-to-put-by-offset.js: Added. (foo): (fu): (bar): (.bar):
- js/regress/script-tests/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.js: Added. (foo): (fu): (bar): (.bar):
- js/regress/script-tests/fold-put-structure.js: Added. (foo): (fu): (bar): (.bar):
2014-06-17 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG put_by_id should inline accesses with a slightly polymorphic base
https://bugs.webkit.org/show_bug.cgi?id=133964
Reviewed by Mark Hahnenberg.
- js/regress/put-by-id-replace-and-transition-expected.txt: Added.
- js/regress/put-by-id-replace-and-transition.html: Added.
- js/regress/put-by-id-slightly-polymorphic-expected.txt: Added.
- js/regress/put-by-id-slightly-polymorphic.html: Added.
- js/regress/script-tests/put-by-id-replace-and-transition.js: Added.
- js/regress/script-tests/put-by-id-slightly-polymorphic.js: Added.
- 9:37 PM Changeset in webkit [171640] by
-
- 3 edits2 adds in trunk
Subpixel rendering: Rounded rect gets non-renderable at certain subpixel size.
https://bugs.webkit.org/show_bug.cgi?id=135314
<rdar://problem/17812921>
Reviewed by Tim Horton.
While calculating the rounded rect for painting, the radius is adjusted to compensate
for the pixel snapped size. However while scaling the radius, certain values overflow
(float) mantissa and it produces a non-renderable rounded rect where the radius becomes bigger
than the rectangle dimensions. In such cases, we need to shrink the radius to make it
renderable again.
Source/WebCore:
Test: transitions/rounded-rect-becomes-non-renderable-while-transitioning.html
- platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::pixelSnappedRoundedRectForPainting): shrink the radius by
one device pixel. It is as good as any other small value.
LayoutTests:
- transitions/rounded-rect-becomes-non-renderable-while-transitioning-expected.txt: Added.
- transitions/rounded-rect-becomes-non-renderable-while-transitioning.html: Added.
- 6:31 PM Changeset in webkit [171639] by
-
- 1 edit in trunk/Source/JavaScriptCore/ChangeLog
Unmessup the JavaScriptCore ChangeLog
- 6:08 PM Changeset in webkit [171638] by
-
- 18 edits2 copies in tags/Safari-600.1.3/Source/WebKit2
Rollout r171622. <rdar://problem/15917314>
- 5:50 PM Changeset in webkit [171637] by
-
- 18 edits2 deletes in branches/safari-600.1-branch/Source/WebKit2
Merge r171622. <rdar://problem/15917314>
- 5:46 PM Changeset in webkit [171636] by
-
- 18 edits2 deletes in tags/Safari-600.1.3/Source/WebKit2
Merge r171622. <rdar://problem/15917314>
- 5:43 PM Changeset in webkit [171635] by
-
- 5 edits in trunk/Source
Parent fullscreen from window instead of view
https://bugs.webkit.org/show_bug.cgi?id=135310
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-25
Reviewed by Jer Noble.
Parenting in the view causes an incorrect animation to fullscreen, and can cause
fullscreen to only expand to the size of the view instead of the whole window.
Source/WebKit/mac:
- WebView/WebView.mm:
(-[WebView _enterFullscreenForNode:]): Pass window instead of view.
Source/WebKit2:
- UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): pass view's window.
- WebProcess/ios/WebVideoFullscreenManager.mm: screenRect instead of clientRect
(WebKit::screenRectForNode): was clientRectForNode
(WebKit::WebVideoFullscreenManager::enterFullscreenForNode): use screenRectForNode
(WebKit::WebVideoFullscreenManager::exitFullscreenForNode): ditto
(WebKit::clientRectForNode): Deleted.
- 4:55 PM Changeset in webkit [171634] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171632. <rdar://problem/17817223>
- 4:53 PM Changeset in webkit [171633] by
-
- 2 edits in tags/Safari-600.1.3/Source/WebCore
Merge r171632. <rdar://problem/17817223>
- 4:37 PM Changeset in webkit [171632] by
-
- 2 edits in trunk/Source/WebCore
[EME][Mac] CDM error messages not piped through to MediaKeySession correctly; clients don't receive error events
https://bugs.webkit.org/show_bug.cgi?id=135312
<rdar://problem/17817223>
Reviewed by Brent Fulgham.
Set (and clear) the client interface so that errors can be piped from the CDMSession up to the MediaKeySession.
- Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::close):
- 4:36 PM Changeset in webkit [171631] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171629. <rdar://problem/17654369>
- 4:26 PM Changeset in webkit [171630] by
-
- 2 edits in tags/Safari-600.1.3/Source/WebKit2
Merge r171629. <rdar://problem/17654369>
- 4:17 PM Changeset in webkit [171629] by
-
- 2 edits in trunk/Source/WebKit2
Creating incorrect sandbox extension for hsts plist due to missing /
https://bugs.webkit.org/show_bug.cgi?id=135309
Reviewed by Sam Weinig.
So it turns out that you do actually need /'s in paths...
Now we actually create the correct extension.
- UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath):
- 4:02 PM Changeset in webkit [171628] by
-
- 4 edits in branches/safari-600.1-branch/Source
Revert back to the Safari behavior from Mavericks and Mountain Lion
on this branch.
<rdar://problem/17800530>
Follow-up comment from Dan Bernstein.
WebKit:
- WebView/WebPreferences.mm: (+[WebPreferences initialize]): Make sure this only applies to Mavericks and Mountain Lion.
WebKit2:
- Shared/WebPreferencesDefinitions.h: Make sure this only applies to Mavericks and Mountain Lion.
- 3:57 PM Changeset in webkit [171627] by
-
- 3 edits in trunk/Source/JavaScriptCore
Add an option to disable native call inlining. Disable it for now to see how it
affects the bots.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleCall):
- runtime/Options.h:
- 3:52 PM Changeset in webkit [171626] by
-
- 9 edits1 copy in trunk
WKNavigation's properties are either always nil or don't behave as documented
https://bugs.webkit.org/show_bug.cgi?id=135267
<rdar://problem/17730536>
Reviewed by Andreas Kling.
Source/WebKit2:
Remove the properties from WKNavigation and introduce -[WKNavigation _request] as SPI for now.
- Shared/API/Cocoa/WebKitPrivate.h:
- UIProcess/API/Cocoa/WKNavigation.h:
- UIProcess/API/Cocoa/WKNavigation.mm:
(-[WKNavigation _request]):
(-[WKNavigation initialRequest]): Deleted.
(-[WKNavigation request]): Deleted.
(-[WKNavigation setRequest:]): Deleted.
(-[WKNavigation response]): Deleted.
(-[WKNavigation error]): Deleted.
- UIProcess/API/Cocoa/WKNavigationInternal.h:
- UIProcess/API/Cocoa/WKNavigationPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationInternal.h.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::createLoadRequestNavigation):
- WebKit2.xcodeproj/project.pbxproj:
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:
(-[NavigationDelegate webView:didStartProvisionalNavigation:]):
(TEST):
(-[DidFailProvisionalNavigationDelegate webView:didStartProvisionalNavigation:]):
(-[DidFailProvisionalNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
- 3:43 PM Changeset in webkit [171625] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix cloop.
- dfg/DFGMayExit.cpp:
- 3:39 PM Changeset in webkit [171624] by
-
- 8 edits2 adds in trunk
[MSE] Playback stalls & readyState drops to HAVE_CURRENT_DATA at end of stream with unbalanced buffered SourceBuffers
https://bugs.webkit.org/show_bug.cgi?id=135291
<rdar://problem/17715503>
Reviewed by Sam Weinig.
Source/WebCore:
Test: media/media-source/media-source-end-of-stream-buffered.html
When determining the correct ReadyState for the MediaSource in monitorSourceBuffers(), use the same
definition of "buffered" as is used in the calculation of HTMLMediaElement.buffered and in the
Stream Ended algorithm. Namely, when the stream has ended, treat each SourceBuffer as if its last
buffered range extends to the duration of the stream. This allows playback to continue through to
the duration without stalling due to monitorSourceBuffers().
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::bufferedAccountingForEndOfStream): Added; extends the last range in buffered
to MediaSource::duration() if the MediaSource is ended.
(WebCore::SourceBuffer::hasCurrentTime): Uses bufferedAccountingForEndOfStream().
(WebCore::SourceBuffer::hasFutureTime): Ditto.
(WebCore::SourceBuffer::canPlayThrough): Ditto.
- Modules/mediasource/SourceBuffer.h:
Add a convenience method for determining whether the MediaSource has ended:
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::isEnded):
- Modules/mediasource/MediaSource.h:
Add start() and end() methods that don't take a (usually ignored) isValid inout parameter. Add duration()
and maximumBufferedTime() convenience methods:
- platform/graphics/PlatformTimeRanges.cpp:
(WebCore::PlatformTimeRanges::start):
(WebCore::PlatformTimeRanges::end):
(WebCore::PlatformTimeRanges::duration):
(WebCore::PlatformTimeRanges::maximumBufferedTime):
- platform/graphics/PlatformTimeRanges.h:
LayoutTests:
- media/media-source/media-source-end-of-stream-buffered-expected.txt: Added.
- media/media-source/media-source-end-of-stream-buffered.html: Added.
- 3:38 PM Changeset in webkit [171623] by
-
- 2 edits in trunk/Tools
[GTK] install-dependencies needs to install perl-CGI on Fedora
https://bugs.webkit.org/show_bug.cgi?id=135302
Patch by Michael Catanzaro <Michael Catanzaro> on 2014-07-25
Reviewed by Martin Robinson.
- gtk/install-dependencies:
Add perl-CGI to yum dependencies needed for tests
- 3:34 PM Changeset in webkit [171622] by
-
- 18 edits2 deletes in trunk/Source/WebKit2
Clean up WKOriginDataManager and get it messaging to the DatabaseProcess
https://bugs.webkit.org/show_bug.cgi?id=135035
Reviewed by Sam Weinig.
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::DatabaseProcess): Instantiate the WebOriginDataManager, installing its message handler.
(WebKit::DatabaseProcess::didReceiveMessage): Try the message receiver map, which will try the WebOriginDataManager.
- DatabaseProcess/DatabaseProcess.h:
- DatabaseProcess/DatabaseProcess.messages.in:
- UIProcess/API/C/WKOriginDataManager.cpp:
(WKOriginDataManagerDeleteEntriesForOrigin): Updated to also take a callback.
(WKOriginDataManagerDeleteEntriesModifiedBetweenDates): Added.
(WKOriginDataManagerDeleteAllEntries): Updated to also take a callback.
(WKOriginDataManagerStartObservingChanges): Deleted.
(WKOriginDataManagerStopObservingChanges): Deleted.
(WKOriginDataManagerSetChangeClient): Deleted.
- UIProcess/API/C/WKOriginDataManager.h:
- UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::didReceiveMessage): Send messages to the WebOriginDataManagerProxy supplement if appropriate.
- UIProcess/Databases/DatabaseProcessProxy.h:
- UIProcess/Databases/DatabaseProcessProxy.messages.in:
- UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext): Instantiate the WebOriginDataManagerProxy supplement.
- UIProcess/WebContext.h:
(WebKit::WebContext::sendToDatabaseProcessRelaunchingIfNecessary):
- UIProcess/WebOriginDataManagerProxy.cpp:
(WebKit::WebOriginDataManagerProxy::contextDestroyed):
(WebKit::WebOriginDataManagerProxy::processDidClose):
(WebKit::WebOriginDataManagerProxy::getOrigins):
(WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin): Setup a callback with the message.
(WebKit::WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates): Added
(WebKit::WebOriginDataManagerProxy::didDeleteEntries): Call the callback.
(WebKit::WebOriginDataManagerProxy::deleteAllEntries): Setup a callback with the message.
(WebKit::WebOriginDataManagerProxy::didDeleteAllEntries): Call the callback.
(WebKit::WebOriginDataManagerProxy::startObservingChanges): Deleted.
(WebKit::WebOriginDataManagerProxy::stopObservingChanges): Deleted.
(WebKit::WebOriginDataManagerProxy::setChangeClient): Deleted.
(WebKit::WebOriginDataManagerProxy::didChange): Deleted.
- UIProcess/WebOriginDataManagerProxy.h:
- UIProcess/WebOriginDataManagerProxy.messages.in:
- UIProcess/WebOriginDataManagerProxyChangeClient.cpp: Removed.
- UIProcess/WebOriginDataManagerProxyChangeClient.h: Removed.
- WebKit2.xcodeproj/project.pbxproj:
- WebProcess/OriginData/WebOriginDataManager.cpp:
(WebKit::WebOriginDataManager::deleteEntriesForOrigin): Send the callback reply.
(WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates): Added.
(WebKit::WebOriginDataManager::deleteAllEntries): Send the callback reply.
(WebKit::WebOriginDataManager::startObservingChanges): Deleted.
(WebKit::WebOriginDataManager::stopObservingChanges): Deleted.
- WebProcess/OriginData/WebOriginDataManager.h:
- WebProcess/OriginData/WebOriginDataManager.messages.in:
- 3:08 PM Changeset in webkit [171621] by
-
- 2 edits in tags/Safari-600.1.3/Source/WebCore
Merge r171619. <rdar://problem/17811922>
- 3:05 PM Changeset in webkit [171620] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171619. <rdar://problem/17811922>
- 2:53 PM Changeset in webkit [171619] by
-
- 2 edits in trunk/Source/WebCore
[iOS] REGRESSION(r171526): Images fail to load sometimes
https://bugs.webkit.org/show_bug.cgi?id=135304
<rdar://problem/17811922>
Reviewed by Alexey Proskuryakov.
SharedBuffer::createCFData() calls data() as a way to coalesce the data array elements and
segments into m_buffer. However, data() has an optimization where if we had a single element
in the data array, it would just return that and not do coalescing. So when we passed
m_buffer to WebCoreSharedData, we passed a buffer with no data in it.
Fix this by bringing the optimization to createCFData() and return the CFDataRef from the
data array if we just have a single element.
No new tests. Should be covered by existing tests.
- platform/mac/SharedBufferMac.mm:
(WebCore::SharedBuffer::createCFData):
- 2:49 PM Changeset in webkit [171618] by
-
- 5 edits in tags/Safari-600.1.2.2/Source
Versioning.
- 2:47 PM Changeset in webkit [171617] by
-
- 1 copy in tags/Safari-600.1.2.2
New tag.
- 2:35 PM Changeset in webkit [171616] by
-
- 4 edits in trunk/Source/WebCore
[MSE] High CPU usage in SampleMap::findSamplesWithinPresentationRange() with a large number of buffered samples.
https://bugs.webkit.org/show_bug.cgi?id=135247
Reviewed by Geoffrey Garen.
Anchor our search for overlapping frames to the end of the search range when the overlap range is sufficiently
close to the end of the search range. The common case for this search is when a sample is about to be appended
to the end of the sample queue, so this should turn most searches into no-ops.
- Modules/mediasource/SampleMap.cpp:
(WebCore::PresentationOrderSampleMap::findSamplesWithinPresentationRangeFromEnd):
- Modules/mediasource/SampleMap.h:
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
- 2:31 PM Changeset in webkit [171615] by
-
- 14 edits in trunk/Source
Yosemite version number is 101000
https://bugs.webkit.org/show_bug.cgi?id=135301
Reviewed by Sam Weinig.
Source/WebCore:
- WebCore.exp.in:
- platform/ContentFilter.h:
- platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformVisibleContentRect):
- platform/mac/ThemeMac.mm:
(WebCore::updateStates):
(WebCore::paintToggleButton):
- platform/network/cf/CookieJarCFNet.cpp:
(WebCore::copyCookiesForURLWithFirstPartyURL):
- platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::resourcePrioritiesEnabled):
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::search):
Source/WebKit2:
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
- WebProcess/com.apple.WebProcess.sb.in:
Source/WTF:
- wtf/FeatureDefines.h:
- wtf/Platform.h:
- 2:26 PM Changeset in webkit [171614] by
-
- 35 edits2 deletes in branches/ftlopt/Source/JavaScriptCore
Remove JSPropertyNameIterator
https://bugs.webkit.org/show_bug.cgi?id=135066
Reviewed by Geoffrey Garen.
It has been replaced by JSPropertyNameEnumerator.
- JavaScriptCore.order:
- bytecode/BytecodeBasicBlock.cpp:
(JSC::isBranch):
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
- bytecode/PreciseJumpTargets.cpp:
(JSC::getJumpTargetsForBytecodeOffset):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitGetPropertyNames): Deleted.
(JSC::BytecodeGenerator::emitNextPropertyName): Deleted.
- bytecompiler/BytecodeGenerator.h:
- interpreter/Interpreter.cpp:
- interpreter/Register.h:
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_get_pnames): Deleted.
(JSC::JIT::emit_op_next_pname): Deleted.
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_get_pnames): Deleted.
(JSC::JIT::emit_op_next_pname): Deleted.
- jit/JITOperations.cpp:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_pname): Deleted.
(JSC::JIT::emitSlow_op_get_by_pname): Deleted.
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_get_by_pname): Deleted.
(JSC::JIT::emitSlow_op_get_by_pname): Deleted.
- llint/LLIntOffsetsExtractor.cpp:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL): Deleted.
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/CommonSlowPaths.cpp:
- runtime/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::JSPropertyNameIterator): Deleted.
(JSC::JSPropertyNameIterator::create): Deleted.
(JSC::JSPropertyNameIterator::destroy): Deleted.
(JSC::JSPropertyNameIterator::get): Deleted.
(JSC::JSPropertyNameIterator::visitChildren): Deleted.
- runtime/JSPropertyNameIterator.h:
(JSC::JSPropertyNameIterator::createStructure): Deleted.
(JSC::JSPropertyNameIterator::size): Deleted.
(JSC::JSPropertyNameIterator::setCachedStructure): Deleted.
(JSC::JSPropertyNameIterator::cachedStructure): Deleted.
(JSC::JSPropertyNameIterator::setCachedPrototypeChain): Deleted.
(JSC::JSPropertyNameIterator::cachedPrototypeChain): Deleted.
(JSC::JSPropertyNameIterator::finishCreation): Deleted.
(JSC::Register::propertyNameIterator): Deleted.
(JSC::StructureRareData::enumerationCache): Deleted.
(JSC::StructureRareData::setEnumerationCache): Deleted.
- runtime/Structure.cpp:
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::removePropertyWithoutTransition):
- runtime/Structure.h:
- runtime/StructureInlines.h:
(JSC::Structure::setEnumerationCache): Deleted.
(JSC::Structure::enumerationCache): Deleted.
- runtime/StructureRareData.cpp:
(JSC::StructureRareData::visitChildren):
- runtime/StructureRareData.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- 1:55 PM Changeset in webkit [171613] by
-
- 77 edits20 adds2 deletes in trunk
Merge r169795, r169819, r169864, r169902, r169949, r169950, r170016, r170017, r170060, r170064 from ftlopt.
2014-06-17 Filip Pizlo <fpizlo@apple.com>
Source/JavaScriptCore:
[ftlopt] Fold constant Phis
https://bugs.webkit.org/show_bug.cgi?id=133967
Reviewed by Mark Hahnenberg.
It's surprising but we didn't really do this before. Or, rather, we only did it
incidentally when we would likely crash if it ever happened.
Making this work required cleaning up the validater a bit, so I did that too. I also added
mayExit() validation for nodes that didn't have origin.forExit (i.e. nodes that end up in
the Phi header of basic blocks). But this required beefing up mayExit() a bit.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGAdjacencyList.h: (JSC::DFG::AdjacencyList::isEmpty):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::run): (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::fixUpsilons):
- dfg/DFGInPlaceAbstractState.h:
- dfg/DFGLICMPhase.cpp: (JSC::DFG::LICMPhase::run): (JSC::DFG::LICMPhase::attemptHoist):
- dfg/DFGMayExit.cpp: (JSC::DFG::mayExit):
- dfg/DFGValidate.cpp: (JSC::DFG::Validate::validate): (JSC::DFG::Validate::validateSSA):
2014-06-17 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Get rid of NodeDoesNotExit and also get rid of StoreEliminationPhase
https://bugs.webkit.org/show_bug.cgi?id=133985
Reviewed by Michael Saboff and Mark Hahnenberg.
Store elimination phase has never been very profitable, and now that LLVM can do dead
store elimination for us, this phase is just completely pointless.
This phase is also the primary user of NodeDoesNotExit, which is a flag that the CFA
computes. It computes it poorly and we often get bugs in it. It's also a lot of code to
maintain.
This patch does introduce a new mayExit() calculator that is independent of the CFA and
should be enough for most of the previous NodeDoesNotExit users. Currently it's only used
for assertions in the DFG backend, but we could use it if we ever brought back any of the
other optimizations that previously relied upon NodeDoesNotExit.
This is performance-neutral, except for SunSpider, where it's a speed-up.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAbstractInterpreter.h: (JSC::DFG::AbstractInterpreter::filterEdgeByUse): (JSC::DFG::AbstractInterpreter::filterByType):
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::startExecuting): (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGCSEPhase.cpp: (JSC::DFG::CSEPhase::CSEPhase): (JSC::DFG::CSEPhase::invalidationPointElimination): (JSC::DFG::CSEPhase::setLocalStoreElimination): (JSC::DFG::CSEPhase::performNodeCSE): (JSC::DFG::CSEPhase::performBlockCSE): (JSC::DFG::performCSE): (JSC::DFG::CSEPhase::globalVarStoreElimination): Deleted. (JSC::DFG::CSEPhase::scopedVarStoreElimination): Deleted. (JSC::DFG::CSEPhase::putStructureStoreElimination): Deleted. (JSC::DFG::CSEPhase::putByOffsetStoreElimination): Deleted. (JSC::DFG::CSEPhase::SetLocalStoreEliminationResult::SetLocalStoreEliminationResult): Deleted. (JSC::DFG::performStoreElimination): Deleted.
- dfg/DFGCSEPhase.h:
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::resetExitStates): Deleted.
- dfg/DFGGraph.h:
- dfg/DFGMayExit.cpp: Added. (JSC::DFG::mayExit):
- dfg/DFGMayExit.h: Added.
- dfg/DFGNode.h: (JSC::DFG::Node::mergeFlags): (JSC::DFG::Node::filterFlags): (JSC::DFG::Node::setCanExit): Deleted. (JSC::DFG::Node::canExit): Deleted.
- dfg/DFGNodeFlags.cpp: (JSC::DFG::dumpNodeFlags):
- dfg/DFGNodeFlags.h:
- dfg/DFGNodeType.h:
- dfg/DFGPlan.cpp: (JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::terminateSpeculativeExecution): (JSC::DFG::SpeculativeJIT::bail): (JSC::DFG::SpeculativeJIT::compileCurrentBlock):
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
2014-06-15 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Remove the DFG optimization fixpoint and remove some obvious reasons why we previously benefited from it
https://bugs.webkit.org/show_bug.cgi?id=133931
Reviewed by Oliver Hunt.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): Trigger constant-folding for GetMyArgumentByVal (which means turning it into GetLocalUnlinked) and correct the handling of Upsilon so we don't fold them away.
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): Implement constant-folding for GetMyArgumentByVal.
- dfg/DFGPlan.cpp: (JSC::DFG::Plan::compileInThreadImpl): Remove the fixpoint.
2014-06-15 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG OSR entry should have a crystal-clear story for when it's safe to enter at a block with a set of values
https://bugs.webkit.org/show_bug.cgi?id=133935
Reviewed by Oliver Hunt.
- bytecode/Operands.h: (JSC::Operands::Operands): (JSC::Operands::ensureLocals):
- dfg/DFGAbstractValue.cpp: (JSC::DFG::AbstractValue::filter): Now we can compute intersections of abstract values!
- dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::makeFullTop): Completeness. (JSC::DFG::AbstractValue::bytecodeTop): Completeness. (JSC::DFG::AbstractValue::fullTop): Completeness. We end up using this one.
- dfg/DFGBasicBlock.cpp: (JSC::DFG::BasicBlock::BasicBlock): (JSC::DFG::BasicBlock::ensureLocals):
- dfg/DFGBasicBlock.h: Remember the intersection of all things ever proven.
- dfg/DFGCFAPhase.cpp: (JSC::DFG::CFAPhase::run): Compute the intersection.
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): No need for the weirdo merge check since this fixes the root of the problem.
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::dumpBlockHeader): Better dumping. (JSC::DFG::Graph::dump): Better dumping.
- dfg/DFGJITCompiler.h: (JSC::DFG::JITCompiler::noticeOSREntry): Use the intersected abstract value.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileCurrentBlock): Assert if the intersected state indicates the block shouldn't execute.
2014-06-12 Filip Pizlo <fpizlo@apple.com>
[ftlopt] A DFG inlined ById access variant should not speak of a chain, but only of what structures to test the base for, whether to use a constant as an alternate base for the actual access, and what structures to check on what additional cell constants
https://bugs.webkit.org/show_bug.cgi?id=133821
Reviewed by Mark Hahnenberg.
This allows us to efficiently cache accesses that differ only in the prototypes on the path
from the base to the prototype that has the field.
It also simplifies a bunch of code - IntendedStructureChain is now just an intermediate
data structure.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/ConstantStructureCheck.cpp: Added. (JSC::ConstantStructureCheck::dumpInContext): (JSC::ConstantStructureCheck::dump): (JSC::structureFor): (JSC::areCompatible): (JSC::mergeInto):
- bytecode/ConstantStructureCheck.h: Added. (JSC::ConstantStructureCheck::ConstantStructureCheck): (JSC::ConstantStructureCheck::operator!): (JSC::ConstantStructureCheck::constant): (JSC::ConstantStructureCheck::structure):
- bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::computeForStubInfo):
- bytecode/GetByIdVariant.cpp: (JSC::GetByIdVariant::GetByIdVariant): (JSC::GetByIdVariant::operator=): (JSC::GetByIdVariant::attemptToMerge): (JSC::GetByIdVariant::dumpInContext):
- bytecode/GetByIdVariant.h: (JSC::GetByIdVariant::constantChecks): (JSC::GetByIdVariant::alternateBase): (JSC::GetByIdVariant::GetByIdVariant): Deleted. (JSC::GetByIdVariant::chain): Deleted.
- bytecode/PutByIdVariant.cpp: (JSC::PutByIdVariant::dumpInContext):
- bytecode/PutByIdVariant.h: (JSC::PutByIdVariant::transition): (JSC::PutByIdVariant::constantChecks): (JSC::PutByIdVariant::structureChain): Deleted.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::emitChecks): (JSC::DFG::ByteCodeParser::handleGetById): (JSC::DFG::ByteCodeParser::handlePutById): (JSC::DFG::ByteCodeParser::cellConstantWithStructureCheck): Deleted. (JSC::DFG::ByteCodeParser::structureChainIsStillValid): Deleted. (JSC::DFG::ByteCodeParser::emitPrototypeChecks): Deleted.
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitGetByOffset): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset): (JSC::DFG::ConstantFoldingPhase::addStructureTransitionCheck):
- dfg/DFGDesiredStructureChains.cpp: Removed.
- dfg/DFGDesiredStructureChains.h: Removed.
- dfg/DFGGraph.h: (JSC::DFG::Graph::watchpoints): (JSC::DFG::Graph::chains): Deleted.
- dfg/DFGPlan.cpp: (JSC::DFG::Plan::isStillValid): (JSC::DFG::Plan::checkLivenessAndVisitChildren): (JSC::DFG::Plan::cancel):
- dfg/DFGPlan.h:
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
- runtime/IntendedStructureChain.cpp: (JSC::IntendedStructureChain::gatherChecks):
- runtime/IntendedStructureChain.h: (JSC::IntendedStructureChain::at): (JSC::IntendedStructureChain::operator[]):
2014-06-12 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Constant folding and strength reduction should work in SSA
https://bugs.webkit.org/show_bug.cgi?id=133839
Reviewed by Oliver Hunt.
- dfg/DFGAtTailAbstractState.cpp: (JSC::DFG::AtTailAbstractState::AtTailAbstractState): (JSC::DFG::AtTailAbstractState::forNode):
- dfg/DFGAtTailAbstractState.h:
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::convertToConstant):
- dfg/DFGIntegerCheckCombiningPhase.cpp: (JSC::DFG::IntegerCheckCombiningPhase::rangeKeyAndAddend): Fix an unrelated regression that this uncovered.
- dfg/DFGLICMPhase.cpp: (JSC::DFG::LICMPhase::LICMPhase):
- dfg/DFGPlan.cpp: (JSC::DFG::Plan::compileInThreadImpl):
2014-06-11 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG get_by_id should inline chain accesses with a slightly polymorphic base
https://bugs.webkit.org/show_bug.cgi?id=133751
Reviewed by Mark Hahnenberg.
- bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::appendVariant): (JSC::GetByIdStatus::computeForStubInfo):
- bytecode/GetByIdVariant.cpp: (JSC::GetByIdVariant::attemptToMerge):
- bytecode/GetByIdVariant.h:
- bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeFor):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::emitPrototypeChecks): (JSC::DFG::ByteCodeParser::handleGetById): (JSC::DFG::ByteCodeParser::handlePutById):
- runtime/IntendedStructureChain.cpp: (JSC::IntendedStructureChain::IntendedStructureChain): (JSC::IntendedStructureChain::isStillValid): (JSC::IntendedStructureChain::isNormalized): (JSC::IntendedStructureChain::terminalPrototype): (JSC::IntendedStructureChain::operator==): (JSC::IntendedStructureChain::visitChildren): (JSC::IntendedStructureChain::dumpInContext): (JSC::IntendedStructureChain::chain): Deleted.
- runtime/IntendedStructureChain.h: (JSC::IntendedStructureChain::prototype): (JSC::IntendedStructureChain::operator!=): (JSC::IntendedStructureChain::head): Deleted.
2014-06-11 Matthew Mirman <mmirman@apple.com>
Readded native calling to the FTL and Split the DFG nodes
Call and Construct into NativeCall and NativeConstruct
to better represent their semantics.
https://bugs.webkit.org/show_bug.cgi?id=133660
Reviewed by Filip Pizlo.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): Added NativeCall and NativeConstruct case
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::addCall): added NativeCall case. (JSC::DFG::ByteCodeParser::handleCall): set to return NativeCall or NativeConstruct instead of Call or Construct in the presence of a native function.
- dfg/DFGClobberize.h: (JSC::DFG::clobberize): added NativeCall and NativeConstruct case.
- dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC): added NativeCall and NativeConstruct case.
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): added NativeCall and NativeConstruct case.
- dfg/DFGNode.h: (JSC::DFG::Node::hasHeapPrediction): added NativeCall and NativeConstruct case. (JSC::DFG::Node::canBeKnownFunction): changed to NativeCall and NativeConstruct. (JSC::DFG::Node::hasKnownFunction): changed to NativeCall and NativeConstruct.
- dfg/DFGNodeType.h: added NativeCall and NativeConstruct.
- dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate): added NativeCall and NativeConstruct case.
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute): added NativeCall and NativeConstruct case.
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::emitCall): ditto (JSC::DFG::SpeculativeJIT::compile): ditto
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::emitCall): ditto (JSC::DFG::SpeculativeJIT::compile): ditto
- ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile): ditto
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::lower): ditto (JSC::FTL::LowerDFGToLLVM::compileNode): ditto. (JSC::FTL::LowerDFGToLLVM::compileNativeCallOrConstruct): Added. (JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct): removed NativeCall and NativeConstruct functionality. (JSC::FTL::LowerDFGToLLVM::didOverflowStack): added NativeCall and NativeConstruct case.
- runtime/JSCJSValue.h: added JS_EXPORT_PRIVATE to toInteger as it is apparently needed.
2014-06-11 Matthew Mirman <mmirman@apple.com>
Ensured Native Calls and Construct and associated checks
are only emitted during ftl mode.
https://bugs.webkit.org/show_bug.cgi?id=133718
Reviewed by Filip Pizlo.
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleCall): Added check for ftl mode before attaching the native function to Call or Construct.
2014-06-10 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG should use its own notion of JSValue, which we should call FrozenValue, that will carry around a copy of its structure
https://bugs.webkit.org/show_bug.cgi?id=133426
Reviewed by Geoffrey Garen.
The impetus for this was to provide some sense and reason to race conditions arising from
cell constants having their structure changed on the main thread - this is harmess because
we defend against it, but when it goes wrong, it can be difficult to reproduce because it
requires a race. Giving the DFG the ability to "freeze" a cell's structure fixes this.
But this patch goes quite a bit further, and completely rationalizes how the DFG reasons
about constants. It no longer relies on the CodeBlock constant pool at all, which allows
for a more object-oriented approach: for example a Node that has a constant can tell you
what constant it has without needing a CodeBlock.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CallLinkStatus.cpp: (JSC::CallLinkStatus::computeExitSiteData):
- bytecode/ExitKind.cpp: (JSC::exitKindToString): (JSC::exitKindIsCountable):
- bytecode/ExitKind.h: (JSC::isWatchpoint): Deleted.
- bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::hasExitSite):
- bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::hasExitSite):
- dfg/DFGAbstractInterpreter.h: (JSC::DFG::AbstractInterpreter::filterByValue): (JSC::DFG::AbstractInterpreter::setBuiltInConstant): (JSC::DFG::AbstractInterpreter::setConstant):
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): (JSC::DFG::AbstractInterpreter<AbstractStateType>::filterByValue):
- dfg/DFGAbstractValue.cpp: (JSC::DFG::AbstractValue::setOSREntryValue): (JSC::DFG::AbstractValue::set): (JSC::DFG::AbstractValue::filterByValue): (JSC::DFG::AbstractValue::setMostSpecific): Deleted.
- dfg/DFGAbstractValue.h:
- dfg/DFGArgumentsSimplificationPhase.cpp: (JSC::DFG::ArgumentsSimplificationPhase::run):
- dfg/DFGBackwardsPropagationPhase.cpp: (JSC::DFG::BackwardsPropagationPhase::isNotNegZero): (JSC::DFG::BackwardsPropagationPhase::isNotPosZero): (JSC::DFG::BackwardsPropagationPhase::isWithinPowerOfTwoForConstant): (JSC::DFG::BackwardsPropagationPhase::isWithinPowerOfTwo):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::ByteCodeParser): (JSC::DFG::ByteCodeParser::getDirect): (JSC::DFG::ByteCodeParser::get): (JSC::DFG::ByteCodeParser::getLocal): (JSC::DFG::ByteCodeParser::setLocal): (JSC::DFG::ByteCodeParser::setArgument): (JSC::DFG::ByteCodeParser::jsConstant): (JSC::DFG::ByteCodeParser::weakJSConstant): (JSC::DFG::ByteCodeParser::cellConstantWithStructureCheck): (JSC::DFG::ByteCodeParser::InlineStackEntry::remapOperand): (JSC::DFG::ByteCodeParser::handleCall): (JSC::DFG::ByteCodeParser::emitFunctionChecks): (JSC::DFG::ByteCodeParser::handleInlining): (JSC::DFG::ByteCodeParser::handleMinMax): (JSC::DFG::ByteCodeParser::handleIntrinsic): (JSC::DFG::ByteCodeParser::handleConstantInternalFunction): (JSC::DFG::ByteCodeParser::handleGetById): (JSC::DFG::ByteCodeParser::prepareToParseBlock): (JSC::DFG::ByteCodeParser::parseBlock): (JSC::DFG::ByteCodeParser::buildOperandMapsIfNecessary): (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry): (JSC::DFG::ByteCodeParser::parseCodeBlock): (JSC::DFG::ByteCodeParser::addConstant): Deleted. (JSC::DFG::ByteCodeParser::getJSConstantForValue): Deleted. (JSC::DFG::ByteCodeParser::getJSConstant): Deleted. (JSC::DFG::ByteCodeParser::isJSConstant): Deleted. (JSC::DFG::ByteCodeParser::isInt32Constant): Deleted. (JSC::DFG::ByteCodeParser::valueOfJSConstant): Deleted. (JSC::DFG::ByteCodeParser::valueOfInt32Constant): Deleted. (JSC::DFG::ByteCodeParser::constantUndefined): Deleted. (JSC::DFG::ByteCodeParser::constantNull): Deleted. (JSC::DFG::ByteCodeParser::one): Deleted. (JSC::DFG::ByteCodeParser::constantNaN): Deleted. (JSC::DFG::ByteCodeParser::cellConstant): Deleted. (JSC::DFG::ByteCodeParser::inferredConstant): Deleted. (JSC::DFG::ByteCodeParser::ConstantRecord::ConstantRecord): Deleted.
- dfg/DFGCFGSimplificationPhase.cpp: (JSC::DFG::CFGSimplificationPhase::run):
- dfg/DFGCSEPhase.cpp: (JSC::DFG::CSEPhase::constantCSE): (JSC::DFG::CSEPhase::checkFunctionElimination): (JSC::DFG::CSEPhase::performNodeCSE): (JSC::DFG::CSEPhase::weakConstantCSE): Deleted.
- dfg/DFGClobberize.h: (JSC::DFG::clobberize):
- dfg/DFGCommon.h:
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitGetByOffset): (JSC::DFG::ConstantFoldingPhase::addStructureTransitionCheck):
- dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): (JSC::DFG::FixupPhase::fixupMakeRope): (JSC::DFG::FixupPhase::truncateConstantToInt32): (JSC::DFG::FixupPhase::attemptToMakeGetTypedArrayByteLength): (JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
- dfg/DFGFrozenValue.cpp: Added. (JSC::DFG::FrozenValue::emptySingleton): (JSC::DFG::FrozenValue::dumpInContext): (JSC::DFG::FrozenValue::dump):
- dfg/DFGFrozenValue.h: Added. (JSC::DFG::FrozenValue::FrozenValue): (JSC::DFG::FrozenValue::operator!): (JSC::DFG::FrozenValue::value): (JSC::DFG::FrozenValue::structure): (JSC::DFG::FrozenValue::strengthenTo): (JSC::DFG::FrozenValue::strength): (JSC::DFG::FrozenValue::freeze):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::Graph): (JSC::DFG::Graph::dump): (JSC::DFG::Graph::tryGetActivation): (JSC::DFG::Graph::tryGetFoldableView): (JSC::DFG::Graph::registerFrozenValues): (JSC::DFG::Graph::visitChildren): (JSC::DFG::Graph::freezeFragile): (JSC::DFG::Graph::freeze): (JSC::DFG::Graph::freezeStrong): (JSC::DFG::Graph::convertToConstant): (JSC::DFG::Graph::convertToStrongConstant): (JSC::DFG::Graph::assertIsWatched):
- dfg/DFGGraph.h: (JSC::DFG::Graph::addImmediateShouldSpeculateInt32): (JSC::DFG::Graph::convertToConstant): Deleted. (JSC::DFG::Graph::constantRegisterForConstant): Deleted. (JSC::DFG::Graph::getJSConstantSpeculation): Deleted. (JSC::DFG::Graph::isConstant): Deleted. (JSC::DFG::Graph::isJSConstant): Deleted. (JSC::DFG::Graph::isInt32Constant): Deleted. (JSC::DFG::Graph::isDoubleConstant): Deleted. (JSC::DFG::Graph::isNumberConstant): Deleted. (JSC::DFG::Graph::isBooleanConstant): Deleted. (JSC::DFG::Graph::isCellConstant): Deleted. (JSC::DFG::Graph::isFunctionConstant): Deleted. (JSC::DFG::Graph::isInternalFunctionConstant): Deleted. (JSC::DFG::Graph::valueOfJSConstant): Deleted. (JSC::DFG::Graph::valueOfInt32Constant): Deleted. (JSC::DFG::Graph::valueOfNumberConstant): Deleted. (JSC::DFG::Graph::valueOfBooleanConstant): Deleted. (JSC::DFG::Graph::valueOfFunctionConstant): Deleted. (JSC::DFG::Graph::mulImmediateShouldSpeculateInt32): Deleted.
- dfg/DFGInPlaceAbstractState.cpp: (JSC::DFG::InPlaceAbstractState::initialize):
- dfg/DFGInsertionSet.h: (JSC::DFG::InsertionSet::insertConstant): (JSC::DFG::InsertionSet::insertConstantForUse):
- dfg/DFGIntegerCheckCombiningPhase.cpp: (JSC::DFG::IntegerCheckCombiningPhase::rangeKeyAndAddend):
- dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link):
- dfg/DFGLazyJSValue.cpp: (JSC::DFG::LazyJSValue::getValue): (JSC::DFG::LazyJSValue::strictEqual): (JSC::DFG::LazyJSValue::dumpInContext):
- dfg/DFGLazyJSValue.h: (JSC::DFG::LazyJSValue::LazyJSValue): (JSC::DFG::LazyJSValue::tryGetValue): (JSC::DFG::LazyJSValue::value): (JSC::DFG::LazyJSValue::switchLookupValue):
- dfg/DFGMinifiedNode.cpp: (JSC::DFG::MinifiedNode::fromNode):
- dfg/DFGMinifiedNode.h: (JSC::DFG::belongsInMinifiedGraph): (JSC::DFG::MinifiedNode::hasConstant): (JSC::DFG::MinifiedNode::constant): (JSC::DFG::MinifiedNode::hasConstantNumber): Deleted. (JSC::DFG::MinifiedNode::constantNumber): Deleted. (JSC::DFG::MinifiedNode::hasWeakConstant): Deleted. (JSC::DFG::MinifiedNode::weakConstant): Deleted.
- dfg/DFGNode.h: (JSC::DFG::Node::hasConstant): (JSC::DFG::Node::constant): (JSC::DFG::Node::convertToConstant): (JSC::DFG::Node::asJSValue): (JSC::DFG::Node::isInt32Constant): (JSC::DFG::Node::asInt32): (JSC::DFG::Node::asUInt32): (JSC::DFG::Node::isDoubleConstant): (JSC::DFG::Node::isNumberConstant): (JSC::DFG::Node::asNumber): (JSC::DFG::Node::isMachineIntConstant): (JSC::DFG::Node::asMachineInt): (JSC::DFG::Node::isBooleanConstant): (JSC::DFG::Node::asBoolean): (JSC::DFG::Node::isCellConstant): (JSC::DFG::Node::asCell): (JSC::DFG::Node::dynamicCastConstant): (JSC::DFG::Node::function): (JSC::DFG::Node::isWeakConstant): Deleted. (JSC::DFG::Node::constantNumber): Deleted. (JSC::DFG::Node::convertToWeakConstant): Deleted. (JSC::DFG::Node::weakConstant): Deleted. (JSC::DFG::Node::valueOfJSConstant): Deleted.
- dfg/DFGNodeType.h:
- dfg/DFGOSRExitCompiler.cpp:
- dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::silentSavePlanForGPR): (JSC::DFG::SpeculativeJIT::silentSavePlanForFPR): (JSC::DFG::SpeculativeJIT::silentFill): (JSC::DFG::SpeculativeJIT::compileIn): (JSC::DFG::SpeculativeJIT::compilePeepHoleBooleanBranch): (JSC::DFG::SpeculativeJIT::compilePeepHoleInt32Branch): (JSC::DFG::SpeculativeJIT::compileCurrentBlock): (JSC::DFG::SpeculativeJIT::compileDoubleRep): (JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds): (JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray): (JSC::DFG::SpeculativeJIT::compileAdd): (JSC::DFG::SpeculativeJIT::compileArithSub): (JSC::DFG::SpeculativeJIT::compileArithMod):
- dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::valueOfJSConstantAsImm64): (JSC::DFG::SpeculativeJIT::initConstantInfo): (JSC::DFG::SpeculativeJIT::isConstant): Deleted. (JSC::DFG::SpeculativeJIT::isJSConstant): Deleted. (JSC::DFG::SpeculativeJIT::isInt32Constant): Deleted. (JSC::DFG::SpeculativeJIT::isDoubleConstant): Deleted. (JSC::DFG::SpeculativeJIT::isNumberConstant): Deleted. (JSC::DFG::SpeculativeJIT::isBooleanConstant): Deleted. (JSC::DFG::SpeculativeJIT::isFunctionConstant): Deleted. (JSC::DFG::SpeculativeJIT::valueOfInt32Constant): Deleted. (JSC::DFG::SpeculativeJIT::valueOfNumberConstant): Deleted. (JSC::DFG::SpeculativeJIT::addressOfDoubleConstant): Deleted. (JSC::DFG::SpeculativeJIT::valueOfJSConstant): Deleted. (JSC::DFG::SpeculativeJIT::valueOfBooleanConstant): Deleted. (JSC::DFG::SpeculativeJIT::valueOfFunctionConstant): Deleted. (JSC::DFG::SpeculativeJIT::isNullConstant): Deleted. (JSC::DFG::SpeculativeJIT::isInteger): Deleted.
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::fillJSValue): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): (JSC::DFG::SpeculativeJIT::fillSpeculateDouble): (JSC::DFG::SpeculativeJIT::fillSpeculateCell): (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean): (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::fillJSValue): (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): (JSC::DFG::SpeculativeJIT::fillSpeculateInt52): (JSC::DFG::SpeculativeJIT::fillSpeculateDouble): (JSC::DFG::SpeculativeJIT::fillSpeculateCell): (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean): (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStrengthReductionPhase.cpp: (JSC::DFG::StrengthReductionPhase::handleNode):
- dfg/DFGValidate.cpp: (JSC::DFG::Validate::validate):
- dfg/DFGValueStrength.cpp: Added. (WTF::printInternal):
- dfg/DFGValueStrength.h: Added. (JSC::DFG::merge):
- dfg/DFGVariableEventStream.cpp: (JSC::DFG::VariableEventStream::tryToSetConstantRecovery): (JSC::DFG::VariableEventStream::reconstruct):
- dfg/DFGVariableEventStream.h:
- dfg/DFGWatchableStructureWatchingPhase.cpp: (JSC::DFG::WatchableStructureWatchingPhase::run): (JSC::DFG::WatchableStructureWatchingPhase::tryWatch):
- dfg/DFGWatchpointCollectionPhase.cpp: (JSC::DFG::WatchpointCollectionPhase::handle):
- ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
- ftl/FTLLink.cpp: (JSC::FTL::link):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileNode): (JSC::FTL::LowerDFGToLLVM::compileDoubleConstant): (JSC::FTL::LowerDFGToLLVM::compileInt52Constant): (JSC::FTL::LowerDFGToLLVM::compileCheckStructure): (JSC::FTL::LowerDFGToLLVM::compileCheckFunction): (JSC::FTL::LowerDFGToLLVM::compileCompareEqConstant): (JSC::FTL::LowerDFGToLLVM::compileCompareStrictEqConstant): (JSC::FTL::LowerDFGToLLVM::lowInt32): (JSC::FTL::LowerDFGToLLVM::lowCell): (JSC::FTL::LowerDFGToLLVM::lowBoolean): (JSC::FTL::LowerDFGToLLVM::lowJSValue): (JSC::FTL::LowerDFGToLLVM::tryToSetConstantExitArgument): (JSC::FTL::LowerDFGToLLVM::compileWeakJSConstant): Deleted.
- ftl/FTLOSRExitCompiler.cpp: (JSC::FTL::compileStub):
- runtime/JSCJSValue.cpp: (JSC::JSValue::dumpInContext): (JSC::JSValue::dumpInContextAssumingStructure):
- runtime/JSCJSValue.h:
LayoutTests:
[ftlopt] A DFG inlined ById access variant should not speak of a chain, but only of what structures to test the base for, whether to use a constant as an alternate base for the actual access, and what structures to check on what additional cell constants
https://bugs.webkit.org/show_bug.cgi?id=133821
Reviewed by Mark Hahnenberg.
- js/regress/poly-chain-access-different-prototypes-expected.txt: Added.
- js/regress/poly-chain-access-different-prototypes-simple-expected.txt: Added.
- js/regress/poly-chain-access-different-prototypes-simple.html: Added.
- js/regress/poly-chain-access-different-prototypes.html: Added.
- js/regress/script-tests/poly-chain-access-different-prototypes-simple.js: Added.
- js/regress/script-tests/poly-chain-access-different-prototypes.js: Added.
2014-06-11 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG get_by_id should inline chain accesses with a slightly polymorphic base
https://bugs.webkit.org/show_bug.cgi?id=133751
Reviewed by Mark Hahnenberg.
- js/regress/poly-chain-access-expected.txt: Added.
- js/regress/poly-chain-access-simpler-expected.txt: Added.
- js/regress/poly-chain-access-simpler.html: Added.
- js/regress/poly-chain-access.html: Added.
- js/regress/script-tests/poly-chain-access-simpler.js: Added.
- js/regress/script-tests/poly-chain-access.js: Added.
- 1:37 PM Changeset in webkit [171612] by
-
- 4 edits in branches/safari-600.1-branch/Source
Revert back to the Safari behavior from Mavericks and Mountain Lion
on this branch.
<rdar://problem/17800530>
Reviewed by Ricky Mondello.
WebKit:
- WebView/WebPreferences.mm: (+[WebPreferences initialize]): Set WebGL preference default to off.
WebKit2:
- Shared/WebPreferencesDefinitions.h: Set WebGL preference default to off.
- 1:26 PM Changeset in webkit [171611] by
-
- 8 edits in branches/ftlopt/Source/JavaScriptCore
Fix 32-bit build breakage for type profiling
https://bugs.webkit.org/process_bug.cgi
Patch by Saam Barati <sbarati@apple.com> on 2014-07-25
Reviewed by Mark Hahnenberg.
32-bit builds currently break because global variable IDs for high
fidelity type profiling are int64_t. Change this to intptr_t so that
it's 32 bits on 32-bit platforms and 64 bits on 64-bit platforms.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::scopeDependentProfile):
- bytecode/TypeLocation.h:
- runtime/SymbolTable.cpp:
(JSC::SymbolTable::uniqueIDForVariable):
(JSC::SymbolTable::uniqueIDForRegister):
- runtime/SymbolTable.h:
- runtime/TypeLocationCache.cpp:
(JSC::TypeLocationCache::getTypeLocation):
- runtime/TypeLocationCache.h:
- runtime/VM.h:
(JSC::VM::getNextUniqueVariableID):
- 1:07 PM Changeset in webkit [171610] by
-
- 6 edits in trunk/Source/ThirdParty/ANGLE
[Win][ANGLE] Enable D3D11.
https://bugs.webkit.org/show_bug.cgi?id=135296
Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-25
Reviewed by Alex Christensen.
Direct3D 11 is not enabled on Windows.
- ANGLE.vcxproj/libGLESv2.vcxproj: Added files.
- ANGLE.vcxproj/libGLESv2.vcxproj.filters: Ditto.
- ANGLE.vcxproj/libGLESv2Common.props: Enable D3D11.
- src/libGLESv2/precompiled.h: Header file does not exist, avoid include.
- changes.diff: Updated diff.
- 12:39 PM Changeset in webkit [171609] by
-
- 3 edits3 adds in trunk
[New Multicolumn] RenderViews paginated as RL or LR don't handle percentage widths correctly.
REGRESSION: Images don’t scale to fit in page in vertical text books
https://bugs.webkit.org/show_bug.cgi?id=135204
Source/WebCore:
<rdar://problem/17043792>
Reviewed by Simon Fraser.
Added fast/multicol/pagination/RightToLeft-max-width.html
- rendering/RenderView.cpp:
(WebCore::RenderView::availableLogicalHeight):
Put back in the same code that used to exist for the old columns (but ported to the new
columns).
LayoutTests:
<rdar://problem/17043792>
Reviewed by Simon Fraser.
- fast/multicol/newmulticol/compare-with-old-impl/overflow-content-expected.html: Removed.
- fast/multicol/newmulticol/compare-with-old-impl/overflow-content.html: Removed.
- fast/multicol/pagination/RightToLeft-max-width.html: Added.
- platform/mac/fast/multicol/pagination/RightToLeft-max-width-expected.png: Added.
- platform/mac/fast/multicol/pagination/RightToLeft-max-width-expected.txt: Added.
- 12:08 PM Changeset in webkit [171608] by
-
- 2 edits in trunk/Source/WebCore
[Mac] Unneeded MobileMe workaround in ResourceHandle::receivedCredential
https://bugs.webkit.org/show_bug.cgi?id=135297
Reviewed by Alexey Proskuryakov.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::receivedCredential): Removed the site-specific behavior for
gallery.me.com.
- 12:07 PM Changeset in webkit [171607] by
-
- 4 edits8 deletes in trunk
Unreviewed, rolling out r171480.
https://bugs.webkit.org/show_bug.cgi?id=135300
it broke replaced elements in pagination (Requested by dhyatt_
on #webkit).
Reverted changeset:
"Ensure we compute the min and max height of replaced elements
to 'none' or 0 when appropriate."
https://bugs.webkit.org/show_bug.cgi?id=135181
http://trac.webkit.org/changeset/171480
- 12:04 PM Changeset in webkit [171606] by
-
- 2 edits in branches/ftlopt/Source/JavaScriptCore
Reindent PropertyNameArray.h
https://bugs.webkit.org/show_bug.cgi?id=135067
Reviewed by Geoffrey Garen.
- runtime/PropertyNameArray.h:
(JSC::RefCountedIdentifierSet::contains):
(JSC::RefCountedIdentifierSet::size):
(JSC::RefCountedIdentifierSet::add):
(JSC::PropertyNameArrayData::create):
(JSC::PropertyNameArrayData::propertyNameVector):
(JSC::PropertyNameArrayData::PropertyNameArrayData):
(JSC::PropertyNameArray::PropertyNameArray):
(JSC::PropertyNameArray::vm):
(JSC::PropertyNameArray::add):
(JSC::PropertyNameArray::addKnownUnique):
(JSC::PropertyNameArray::operator[]):
(JSC::PropertyNameArray::setData):
(JSC::PropertyNameArray::data):
(JSC::PropertyNameArray::releaseData):
(JSC::PropertyNameArray::identifierSet):
(JSC::PropertyNameArray::canAddKnownUniqueForStructure):
(JSC::PropertyNameArray::size):
(JSC::PropertyNameArray::begin):
(JSC::PropertyNameArray::end):
(JSC::PropertyNameArray::numCacheableSlots):
(JSC::PropertyNameArray::setNumCacheableSlotsForObject):
(JSC::PropertyNameArray::setBaseObject):
(JSC::PropertyNameArray::setPreviouslyEnumeratedLength):
- 11:46 AM Changeset in webkit [171605] by
-
- 71 edits12 adds in branches/ftlopt/Source
Refactor our current implementation of for-in
https://bugs.webkit.org/show_bug.cgi?id=134142
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
This patch splits for-in loops into three distinct parts:
- Iterating over the indexed properties in the base object.
- Iterating over the Structure properties in the base object.
- Iterating over any other enumerable properties for that object and any objects in the prototype chain.
It does this by emitting these explicit loops in bytecode, using a new set of bytecodes to
support the various operations required for each loop.
- API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::getOwnNonIndexPropertyNames):
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CallLinkStatus.h:
(JSC::CallLinkStatus::CallLinkStatus):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitGetByVal):
(JSC::BytecodeGenerator::emitComplexPopScopes):
(JSC::BytecodeGenerator::emitGetEnumerableLength):
(JSC::BytecodeGenerator::emitHasGenericProperty):
(JSC::BytecodeGenerator::emitHasIndexedProperty):
(JSC::BytecodeGenerator::emitHasStructureProperty):
(JSC::BytecodeGenerator::emitGetStructurePropertyEnumerator):
(JSC::BytecodeGenerator::emitGetGenericPropertyEnumerator):
(JSC::BytecodeGenerator::emitNextEnumeratorPropertyName):
(JSC::BytecodeGenerator::emitToIndexString):
(JSC::BytecodeGenerator::pushIndexedForInScope):
(JSC::BytecodeGenerator::popIndexedForInScope):
(JSC::BytecodeGenerator::pushStructureForInScope):
(JSC::BytecodeGenerator::popStructureForInScope):
(JSC::BytecodeGenerator::invalidateForInContextForLocal):
- bytecompiler/BytecodeGenerator.h:
(JSC::ForInContext::ForInContext):
(JSC::ForInContext::~ForInContext):
(JSC::ForInContext::isValid):
(JSC::ForInContext::invalidate):
(JSC::ForInContext::local):
(JSC::StructureForInContext::StructureForInContext):
(JSC::StructureForInContext::type):
(JSC::StructureForInContext::index):
(JSC::StructureForInContext::property):
(JSC::StructureForInContext::enumerator):
(JSC::IndexedForInContext::IndexedForInContext):
(JSC::IndexedForInContext::type):
(JSC::IndexedForInContext::index):
(JSC::BytecodeGenerator::pushOptimisedForIn): Deleted.
(JSC::BytecodeGenerator::popOptimisedForIn): Deleted.
- bytecompiler/NodesCodegen.cpp:
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::ForInNode::tryGetBoundLocal):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForInNode::emitMultiLoopBytecode):
(JSC::ForInNode::emitBytecode):
- debugger/DebuggerScope.h:
- dfg/DFGAbstractHeap.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGHeapLocation.cpp:
(WTF::printInternal):
- dfg/DFGHeapLocation.h:
- dfg/DFGNode.h:
(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::hasArrayMode):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
(JSC::JIT::compileHasIndexedProperty):
(JSC::JIT::emitInt32Load):
- jit/JITInlines.h:
(JSC::JIT::emitDoubleGetByVal):
(JSC::JIT::emitLoadForArrayMode):
(JSC::JIT::emitContiguousGetByVal):
(JSC::JIT::emitArrayStorageGetByVal):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_get_enumerable_length):
(JSC::JIT::emit_op_has_structure_property):
(JSC::JIT::emitSlow_op_has_structure_property):
(JSC::JIT::emit_op_has_generic_property):
(JSC::JIT::privateCompileHasIndexedProperty):
(JSC::JIT::emit_op_has_indexed_property):
(JSC::JIT::emitSlow_op_has_indexed_property):
(JSC::JIT::emit_op_get_direct_pname):
(JSC::JIT::emitSlow_op_get_direct_pname):
(JSC::JIT::emit_op_get_structure_property_enumerator):
(JSC::JIT::emit_op_get_generic_property_enumerator):
(JSC::JIT::emit_op_next_enumerator_pname):
(JSC::JIT::emit_op_to_index_string):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_get_enumerable_length):
(JSC::JIT::emit_op_has_structure_property):
(JSC::JIT::emitSlow_op_has_structure_property):
(JSC::JIT::emit_op_has_generic_property):
(JSC::JIT::privateCompileHasIndexedProperty):
(JSC::JIT::emit_op_has_indexed_property):
(JSC::JIT::emitSlow_op_has_indexed_property):
(JSC::JIT::emit_op_get_direct_pname):
(JSC::JIT::emitSlow_op_get_direct_pname):
(JSC::JIT::emit_op_get_structure_property_enumerator):
(JSC::JIT::emit_op_get_generic_property_enumerator):
(JSC::JIT::emit_op_next_enumerator_pname):
(JSC::JIT::emit_op_to_index_string):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):
(JSC::JIT::emitDoubleGetByVal): Deleted.
(JSC::JIT::emitContiguousGetByVal): Deleted.
(JSC::JIT::emitArrayStorageGetByVal): Deleted.
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitArrayStorageLoad):
(JSC::JIT::emitContiguousGetByVal): Deleted.
(JSC::JIT::emitDoubleGetByVal): Deleted.
(JSC::JIT::emitArrayStorageGetByVal): Deleted.
- llint/LowLevelInterpreter.asm:
- parser/Nodes.h:
- runtime/Arguments.cpp:
(JSC::Arguments::getOwnPropertyNames):
- runtime/ClassInfo.h:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
- runtime/EnumerationMode.h: Added.
(JSC::shouldIncludeDontEnumProperties):
(JSC::shouldExcludeDontEnumProperties):
(JSC::shouldIncludeJSObjectPropertyNames):
(JSC::modeThatSkipsJSObject):
- runtime/JSActivation.cpp:
(JSC::JSActivation::getOwnNonIndexPropertyNames):
- runtime/JSArray.cpp:
(JSC::JSArray::getOwnNonIndexPropertyNames):
- runtime/JSArrayBuffer.cpp:
(JSC::JSArrayBuffer::getOwnNonIndexPropertyNames):
- runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::getOwnNonIndexPropertyNames):
- runtime/JSCell.cpp:
(JSC::JSCell::getEnumerableLength):
(JSC::JSCell::getStructurePropertyNames):
(JSC::JSCell::getGenericPropertyNames):
- runtime/JSCell.h:
- runtime/JSFunction.cpp:
(JSC::JSFunction::getOwnNonIndexPropertyNames):
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnNonIndexPropertyNames):
- runtime/JSObject.cpp:
(JSC::getClassPropertyNames):
(JSC::JSObject::hasOwnProperty):
(JSC::JSObject::getOwnPropertyNames):
(JSC::JSObject::getOwnNonIndexPropertyNames):
(JSC::JSObject::getEnumerableLength):
(JSC::JSObject::getStructurePropertyNames):
(JSC::JSObject::getGenericPropertyNames):
- runtime/JSObject.h:
- runtime/JSPropertyNameEnumerator.cpp: Added.
(JSC::JSPropertyNameEnumerator::create):
(JSC::JSPropertyNameEnumerator::JSPropertyNameEnumerator):
(JSC::JSPropertyNameEnumerator::finishCreation):
(JSC::JSPropertyNameEnumerator::destroy):
(JSC::JSPropertyNameEnumerator::visitChildren):
- runtime/JSPropertyNameEnumerator.h: Added.
(JSC::JSPropertyNameEnumerator::createStructure):
(JSC::JSPropertyNameEnumerator::propertyNameAtIndex):
(JSC::JSPropertyNameEnumerator::identifierSet):
(JSC::JSPropertyNameEnumerator::cachedPrototypeChain):
(JSC::JSPropertyNameEnumerator::setCachedPrototypeChain):
(JSC::JSPropertyNameEnumerator::cachedStructure):
(JSC::JSPropertyNameEnumerator::cachedStructureID):
(JSC::JSPropertyNameEnumerator::cachedInlineCapacity):
(JSC::JSPropertyNameEnumerator::cachedStructureIDOffset):
(JSC::JSPropertyNameEnumerator::cachedInlineCapacityOffset):
(JSC::JSPropertyNameEnumerator::cachedPropertyNamesLengthOffset):
(JSC::JSPropertyNameEnumerator::cachedPropertyNamesVectorOffset):
(JSC::structurePropertyNameEnumerator):
(JSC::genericPropertyNameEnumerator):
- runtime/JSProxy.cpp:
(JSC::JSProxy::getEnumerableLength):
(JSC::JSProxy::getStructurePropertyNames):
(JSC::JSProxy::getGenericPropertyNames):
- runtime/JSProxy.h:
- runtime/JSSymbolTableObject.cpp:
(JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):
- runtime/PropertyNameArray.cpp:
(JSC::PropertyNameArray::add):
(JSC::PropertyNameArray::setPreviouslyEnumeratedProperties):
- runtime/PropertyNameArray.h:
(JSC::RefCountedIdentifierSet::contains):
(JSC::RefCountedIdentifierSet::size):
(JSC::RefCountedIdentifierSet::add):
(JSC::PropertyNameArray::PropertyNameArray):
(JSC::PropertyNameArray::add):
(JSC::PropertyNameArray::addKnownUnique):
(JSC::PropertyNameArray::identifierSet):
(JSC::PropertyNameArray::canAddKnownUniqueForStructure):
(JSC::PropertyNameArray::setPreviouslyEnumeratedLength):
- runtime/RegExpObject.cpp:
(JSC::RegExpObject::getOwnNonIndexPropertyNames):
(JSC::RegExpObject::getPropertyNames):
(JSC::RegExpObject::getGenericPropertyNames):
- runtime/RegExpObject.h:
- runtime/StringObject.cpp:
(JSC::StringObject::getOwnPropertyNames):
- runtime/Structure.cpp:
(JSC::Structure::getPropertyNamesFromStructure):
(JSC::Structure::setCachedStructurePropertyNameEnumerator):
(JSC::Structure::cachedStructurePropertyNameEnumerator):
(JSC::Structure::setCachedGenericPropertyNameEnumerator):
(JSC::Structure::cachedGenericPropertyNameEnumerator):
(JSC::Structure::canCacheStructurePropertyNameEnumerator):
(JSC::Structure::canCacheGenericPropertyNameEnumerator):
(JSC::Structure::canAccessPropertiesQuickly):
- runtime/Structure.h:
- runtime/StructureRareData.cpp:
(JSC::StructureRareData::visitChildren):
(JSC::StructureRareData::cachedStructurePropertyNameEnumerator):
(JSC::StructureRareData::setCachedStructurePropertyNameEnumerator):
(JSC::StructureRareData::cachedGenericPropertyNameEnumerator):
(JSC::StructureRareData::setCachedGenericPropertyNameEnumerator):
- runtime/StructureRareData.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
Source/WebCore:
No new tests.
This patch splits for-in loops into three distinct parts:
- Iterating over the indexed properties in the base object.
- Iterating over the Structure properties in the base object.
- Iterating over any other enumerable properties for that object and any objects in the prototype chain.
It does this by emitting these explicit loops in bytecode, using a new set of bytecodes to
support the various operations required for each loop.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getEnumerableLength):
(WebCore::JSDOMWindow::getStructurePropertyNames):
(WebCore::JSDOMWindow::getGenericPropertyNames):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
- bridge/runtime_array.cpp:
(JSC::RuntimeArray::getOwnPropertyNames):
Source/WebKit2:
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::invalidate): Fixed an invalid ASSERT that was crashing in debug builds.
- 10:53 AM Changeset in webkit [171604] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171578. <rdar://problem/17811466>
- 10:52 AM Changeset in webkit [171603] by
-
- 2 edits in tags/Safari-600.1.3/Source/JavaScriptCore
Merged r171578. <rdar://problem/17811466>
- 10:50 AM Changeset in webkit [171602] by
-
- 2 edits in tags/Safari-600.1.2.1/Source/JavaScriptCore
Merged r171578. <rdar://problem/17805592>
- 10:39 AM Changeset in webkit [171601] by
-
- 8 edits2 deletes in trunk
Unreviewed, rolling out r171587.
https://bugs.webkit.org/show_bug.cgi?id=135294
Made fast/dom/HTMLObjectElement/beforeload-set-text-
crash.xhtml crash again (Requested by ap on #webkit).
Reverted changeset:
"REGRESSION (r169105): Crash in selection"
https://bugs.webkit.org/show_bug.cgi?id=134303
http://trac.webkit.org/changeset/171587
- 9:41 AM Changeset in webkit [171600] by
-
- 4 edits in trunk/Source/WebCore
ResourceErrorBase::compare doesn’t call the right platformCompare override
https://bugs.webkit.org/show_bug.cgi?id=135240
Reviewed by Alexey Proskuryakov.
- platform/network/ResourceErrorBase.cpp:
(WebCore::ResourceErrorBase::compare): Changed to call ResourceError::platformCompare.
- platform/network/cf/ResourceError.h: Made platformCompare public.
- platform/network/soup/ResourceError.h: Ditto.
- 9:39 AM Changeset in webkit [171599] by
-
- 4 edits in trunk/Source/WebCore
[Cocoa] WebProtectionSpace::receivesCredentialSecurely incorrectly returns false in some cases
https://bugs.webkit.org/show_bug.cgi?id=135241
Reviewed by Alexey Proskuryakov.
- WebCore.exp.in: Export ProtectionSpace::receivesCredentialSecurely.
- platform/network/cocoa/ProtectionSpaceCocoa.h: Declare override of receivesCredentialSecurely.
- platform/network/cocoa/ProtectionSpaceCocoa.mm:
(WebCore::ProtectionSpace::receivesCredentialSecurely): Use -[NSURLProtectionSpace receivesCredentialSecurely].
- 9:18 AM Changeset in webkit [171598] by
-
- 3 edits in trunk
[GTK] CMake tries to install JavaScriptCore-3.0.gir outside of install prefix
https://bugs.webkit.org/show_bug.cgi?id=135288
Patch by Michael Catanzaro <Michael Catanzaro> on 2014-07-25
Reviewed by Martin Robinson.
- Source/cmake/FindGObjectIntrospection.cmake: pass correct libdir and
datadir to pkgconfig
- Source/cmake/OptionsGTK.cmake: define install directories early
enough to be used in FindGObjectIntrospection.cmake
- 8:33 AM Changeset in webkit [171597] by
-
- 14 edits in tags/Safari-600.1.3
Merged r171593. <rdar://problem/16878037>
- 8:32 AM Changeset in webkit [171596] by
-
- 14 edits in branches/safari-600.1-branch
Merged r171593. <rdar://problem/16878037>
- 8:21 AM Changeset in webkit [171595] by
-
- 2 edits in trunk/LayoutTests
Unreviewed media test gardening after r171593.
- platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt:
- 8:08 AM Changeset in webkit [171594] by
-
- 2 edits in trunk/Tools
Add --dry-run option to sort-export-file
https://bugs.webkit.org/show_bug.cgi?id=135048
Patch by Renato Nagy <nagy.renato@stud.u-szeged.hu> on 2014-07-25
Reviewed by Csaba Osztrogonác.
Added --dry-run option to sort-export-file. Running the script with --dry-run
option does not sort the export files but creates a list of the files that
need to be sorted.
- Scripts/sort-export-file:
(sawError):
- 7:47 AM Changeset in webkit [171593] by
-
- 14 edits in trunk
Subpixel rendering: iOS video playback controls look blurry.
https://bugs.webkit.org/show_bug.cgi?id=135245
<rdar://problem/16878037>
Reviewed by Simon Fraser.
This patch introduces a compositing parent of the overlay control panel so that
the transformed overlay panel becomes sharp. This is a workaround for webkit.org/b/135246.
Can't find a way to test it yet.
Source/WebCore:
- Modules/mediacontrols/mediaControlsApple.css:
(video::-webkit-media-controls-panel-composited-parent):
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.createControls):
(Controller.prototype.addControls):
- Modules/mediacontrols/mediaControlsiOS.css:
(video::-webkit-media-controls-panel-composited-parent):
- Modules/mediacontrols/mediaControlsiOS.js: This is a workaround for webkit.org/b/135248
It pushes the overlay panel down to close the gap with the video element. Since the
panel's size in css pixels is scale dependent, the gap needs to be scale dependent too.
(ControllerIOS.prototype.set pageScaleFactor):
LayoutTests:
- platform/mac/fast/hidpi/video-controls-in-hidpi-expected.txt:
- platform/mac/fast/layers/video-layer-expected.txt:
- platform/mac/media/audio-controls-rendering-expected.txt:
- platform/mac/media/controls-after-reload-expected.txt:
- platform/mac/media/controls-strict-expected.txt:
- platform/mac/media/controls-without-preload-expected.txt:
- platform/mac/media/media-controls-clone-expected.txt:
- platform/mac/media/video-no-audio-expected.txt:
- 4:01 AM Changeset in webkit [171592] by
-
- 2 edits in trunk/LayoutTests
Unreviewed rebaseline of test. Uploaded wrong result.
Patch by Dirk Schulze <krit@webkit.org> on 2014-07-25
- svg/css/parse-length-expected.txt:
- 2:52 AM Changeset in webkit [171591] by
-
- 29 edits1 move3 adds1 delete in trunk
Turn x/y to presentation attributes
https://bugs.webkit.org/show_bug.cgi?id=135215
Source/WebCore:
Patch by Dirk Schulze <krit@webkit.org> on 2014-07-24
Reviewed by Dean Jackson.
This follows the patch for width and height presentation attributes and
turns x and y to presentation attributes as well:
http://trac.webkit.org/changeset/171341
Tests: svg/css/parse-length.html
transitions/svg-layout-transition.html
Added copyright where I forgot it in previous patch.
- css/CSSComputedStyleDeclaration.cpp: Computed style of x and y.
(WebCore::ComputedStyleExtractor::propertyValue):
- css/CSSParser.cpp:
(WebCore::isSimpleLengthPropertyID): Add x and y to list.
- css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Resolve x and y.
- css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue): Parse x and y property.
- css/SVGCSSPropertyNames.in: Add x and y to list of names.
- css/StyleResolver.h:
- page/animation/CSSPropertyAnimation.cpp: Animate x and y as Length.
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.h: Add x and y setters and getters.
- rendering/style/SVGRenderStyle.cpp: Add x and y setters for StyleLayoutData.
(WebCore::SVGRenderStyle::SVGRenderStyle):
(WebCore::SVGRenderStyle::operator==):
(WebCore::SVGRenderStyle::copyNonInheritedFrom):
(WebCore::SVGRenderStyle::diff):
- rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::setX):
(WebCore::SVGRenderStyle::setY):
(WebCore::SVGRenderStyle::x):
(WebCore::SVGRenderStyle::y):
- rendering/style/SVGRenderStyleDefs.cpp: Add StyleLayoutData for style storing.
(WebCore::StyleLayoutData::StyleLayoutData):
(WebCore::StyleLayoutData::copy):
(WebCore::StyleLayoutData::operator==):
- rendering/style/SVGRenderStyleDefs.h:
(WebCore::StyleLayoutData::create):
(WebCore::StyleLayoutData::operator!=):
- rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::updateShapeFromElement):
- rendering/svg/SVGPathData.cpp: Use RenderStyle values rather than attribute values.
(WebCore::updatePathFromRectElement):
- svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isTargetAttributeCSSProperty): Fix text detection.
- svg/SVGElement.cpp: Add x and y to the relevant property lists.
(WebCore::populateAttributeNameToCSSPropertyIDMap):
(WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
- svg/SVGFilterElement.cpp: Style update on change of x and y.
(WebCore::SVGFilterElement::svgAttributeChanged):
- svg/SVGMaskElement.cpp: Ditto.
(WebCore::SVGMaskElement::svgAttributeChanged):
- svg/SVGPatternElement.cpp: Ditto.
(WebCore::SVGPatternElement::svgAttributeChanged):
- svg/SVGRectElement.cpp: Ditto.
(WebCore::SVGRectElement::svgAttributeChanged):
- svg/SVGTextPositioningElement.cpp: Exclude x and y of text elements since they
are lists instead of individual values. Solution about to be discussed
in the WG. Keep current behavior for now.
(WebCore::SVGTextPositioningElement::collectStyleForPresentationAttribute):
(WebCore::SVGTextPositioningElement::isPresentationAttribute):
- svg/SVGTextPositioningElement.h:
LayoutTests:
Test parsing of x and y attributes. Rendering and SVG animation
covered by existing tests.
CSS Transition test, test transition from specified attribute value
to new property value.
Patch by Dirk Schulze <krit@webkit.org> on 2014-07-24
Reviewed by Dean Jackson.
- svg/css/parse-length-expected.txt: Added.
- svg/css/parse-length.html: Renamed from LayoutTests/svg/css/parse-width.html.
- svg/css/parse-width-expected.txt: Removed.
- transitions/svg-layout-transition-expected.txt: Added.
- transitions/svg-layout-transition.html: Added.
- 12:17 AM Changeset in webkit [171590] by
-
- 5 edits in branches/safari-600.1-branch/Source
Versioning.
- 12:12 AM Changeset in webkit [171589] by
-
- 1 copy in tags/Safari-600.1.3
New Tag.
Jul 24, 2014:
- 11:58 PM Changeset in webkit [171588] by
-
- 8 edits8 adds in trunk
CSS JIT: Implement Pseudo Element
https://bugs.webkit.org/show_bug.cgi?id=134835
Reviewed by Benjamin Poulain.
Implement Pseudo Element handling for CSS JIT SelectorCompiler.
At first, we start with the simple implementation. We handle limited number of pseudo element,
before, after, first-line, first-letter.
Source/WebCore:
Tests: fast/selectors/pseudo-element-inside-any.html
fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-any.html
fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-not.html
fast/selectors/querySelector-pseudo-element.html
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ruleMatches):
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
(WebCore::SelectorCompiler::constructFragments):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::loadCheckingContext):
(WebCore::SelectorCompiler::SelectorCodeGenerator::branchOnResolvingModeWithCheckingContext):
(WebCore::SelectorCompiler::SelectorCodeGenerator::branchOnResolvingMode):
(WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNotResolvingStyle):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateMarkPseudoStyleForPseudoElement):
- cssjit/SelectorCompiler.h:
- rendering/style/RenderStyle.h:
- rendering/style/RenderStyleConstants.h:
LayoutTests:
- fast/selectors/pseudo-element-inside-any-expected.html: Added.
- fast/selectors/pseudo-element-inside-any.html: Added.
Inside functional pseudo classes such as ":-webkit-any", when pseudo element comes (e.g. ":-webkit-any(::first-letter)"),
it produces a local failure. So if the other selectors are matched against the element, whole ":-webkit-any" succeeds.
For example, a selector ":-webkit-any(::first-letter, p)" matches againstpelements.
- fast/selectors/querySelector-pseudo-element-expected.txt: Added.
- fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-any-expected.txt: Added.
- fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-any.html: Added.
- fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-not-expected.txt: Added.
- fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-not.html: Added.
- fast/selectors/querySelector-pseudo-element.html: Added.
- 11:24 PM Changeset in webkit [171587] by
-
- 8 edits2 adds in trunk
REGRESSION (r169105): Crash in selection
https://bugs.webkit.org/show_bug.cgi?id=134303
Patch by Radu Stavila <stavila@adobe.com> on 2014-07-24
Reviewed by David Hyatt.
Source/WebCore:
When splitting the selection between different subtrees, all subtrees must have their selection cleared before
starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
we get inconsistent data.
To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
method first iterates through all subtrees and performs the "clear" method and then starts all over again
and performs the "apply" method.
Test: fast/regions/selection/crash-deselect.html
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderSelectionInfo.h:
- rendering/RenderView.cpp:
(WebCore::RenderView::setSelection):
(WebCore::RenderView::splitSelectionBetweenSubtrees):
(WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
(WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
(WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
(WebCore::RenderView::setSubtreeSelection): Deleted.
- rendering/RenderView.h:
- rendering/SelectionSubtreeRoot.cpp:
(WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
- rendering/SelectionSubtreeRoot.h:
(WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):
LayoutTests:
Added test for the crash that occurred in some cases when selecting.
- fast/regions/selection/crash-deselect-expected.txt: Added.
- fast/regions/selection/crash-deselect.html: Added.
- 11:13 PM Changeset in webkit [171586] by
-
- 7 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171471. <rdar://problem/17764847>
- 11:10 PM Changeset in webkit [171585] by
-
- 7 edits in branches/safari-600.1-branch/Source
Merged r171203. <rdar://problem/17617282>
- 11:06 PM Changeset in webkit [171584] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171580. <rdar://problem/17748416>
- 11:04 PM Changeset in webkit [171583] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171577. <rdar://problem/17803347>
- 11:02 PM Changeset in webkit [171582] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171576. <rdar://problem/17804891>
- 11:00 PM Changeset in webkit [171581] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebKit/mac
Merged r171575. <rdar://problem/17784826>
- 9:51 PM Changeset in webkit [171580] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r164401): Placing a caret doesn't bring up autocorrection panel
https://bugs.webkit.org/show_bug.cgi?id=135278
Reviewed by Tim Horton.
The bug was caused by editorUIUpdateTimerFired calling respondToChangedSelection only if the selection was
triggered by dictation instead of only if it was NOT triggered by dictation.
Prior to r164401, AlternativeTextController::respondToMarkerAtEndOfWord exited early when SetSelectionOptions
had DictationTriggered set. r164401 intended to move this check to editorUIUpdateTimerFired to avoid passing
options around but the boolean condition was erroneously flipped.
Fixed the bug by negating the condition in editorUIUpdateTimerFired.
No new tests for now since autocorrection panel cannot be tested automatically. (We should really automate this!)
- editing/Editor.cpp:
(WebCore::Editor::editorUIUpdateTimerFired):
- 9:27 PM Changeset in webkit [171579] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r171526): [GTK] Massive crashes.
https://bugs.webkit.org/show_bug.cgi?id=135283
Unreviewed. GTK build fix after r171526. Initialize m_buffer in SharedBuffer constructor.
- platform/soup/SharedBufferSoup.cpp:
(WebCore::SharedBuffer::SharedBuffer):
- 8:12 PM Changeset in webkit [171578] by
-
- 2 edits in trunk/Source/JavaScriptCore
[Win] Correct build order in JavaScriptCore.submit.sln
https://bugs.webkit.org/show_bug.cgi?id=135282
<rdar://problem/17805592>
Unreviewed build fix.
- JavaScriptCore.vcxproj/JavaScriptCore.submit.sln: Correct build order
such that LLIntDesiredOffset is built prior to the rest of JSC.
- 8:12 PM Changeset in webkit [171577] by
-
- 2 edits in trunk/Source/WebCore
Crashes under scanSelectionForTelephoneNumbers in Range::text() on some sites
https://bugs.webkit.org/show_bug.cgi?id=135281
<rdar://problem/17803347>
Reviewed by Ryosuke Niwa.
- editing/Editor.cpp:
(WebCore::Editor::scanSelectionForTelephoneNumbers):
toNormalizedRange is not guaranteed to return a non-null range.
If it returns null, pass the empty markedRanges down to the client as our new set.
- 8:00 PM Changeset in webkit [171576] by
-
- 2 edits in trunk/Source/WebKit2
[iOS][WK2] Do not try to hit test a null mainFrameRenderView on dynamicViewportSizeUpdate()
https://bugs.webkit.org/show_bug.cgi?id=135277
<rdar://problem/17804891>
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-24
Reviewed by Tim Horton.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dynamicViewportSizeUpdate):
There is no guarantee that the main frame have its root view when performing a dynamicViewportSizeUpdate(),
we should not attempt to use the layer without null checking it first.
The odd part for me is <rdar://problem/17804891> is a little too frequent. In the vast majority of cases,
there is a RenderView, it seems actually pretty hard not to have one on dynamicViewportSizeUpdate().
Skipping hit testing is safe because it is a completely optional part of this algorithm.
When the hit test is not done, the new position is computed based on the relative position prior to
the size change.
- 7:26 PM Changeset in webkit [171575] by
-
- 5 edits in trunk/Source/WebKit/mac
[iOS] Remove prefs to tweak cache values
https://bugs.webkit.org/show_bug.cgi?id=135274
<rdar://problem/17784826>
Reviewed by Alexey Proskuryakov.
Remove iOS specific code that used to look up user defaults to see if any cache values were
overridden. This was added for testing, is not used any more and is actually harmful now. It
can cause unnecessary memory churn when under memory pressure since we call [WebView _setCacheModel]
as a means to clear out memory cache.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences _setNSURLMemoryCacheSize:]): Deleted.
(-[WebPreferences _NSURLMemoryCacheSize]): Deleted.
(-[WebPreferences _setNSURLDiskCacheSize:]): Deleted.
(-[WebPreferences _NSURLDiskCacheSize]): Deleted.
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(+[WebView _setCacheModel:]):
- 6:31 PM Changeset in webkit [171574] by
-
- 6 edits in trunk/Source
Source/WebCore: WebCore part of <rdar://problem/17593701> Assertion failure in WebPage::reload (!m_pendingNavigationID) when reloading after a same-document back navigation
https://bugs.webkit.org/show_bug.cgi?id=135129
Reviewed by Darin Adler.
- WebCore.exp.in: Exported equalIgnoringFragmentIdentifier(const URL&, const URL&).
Source/WebKit2: WebKit2 part of <rdar://problem/17593701> Assertion failure in WebPage::reload (!m_pendingNavigationID) when reloading after a same-document back navigation
https://bugs.webkit.org/show_bug.cgi?id=135129
Reviewed by Darin Adler.
- Shared/WebBackForwardListItem.cpp:
(WebKit::childItemWithDocumentSequenceNumber): New helper function based on
WebCore::HistoryItem::childItemWithDocumentSequenceNumber.
(WebKit::documentTreesAreEqual): New helper function based on
WebCore::HistoryItem::hasSameDocumentTree.
(WebKit::WebBackForwardListItem::itemIsInSameDocument): Added. Based on
WebCore::HistoryItem::shouldDoSameDocumentNavigationTo.
- Shared/WebBackForwardListItem.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::goForward): Don’t assign a new navigation ID if the back-forward
navigation is a same-document navigation.
(WebKit::WebPageProxy::goBack): Ditto.
(WebKit::WebPageProxy::goToBackForwardItem): Ditto.
- 6:18 PM Changeset in webkit [171573] by
-
- 3 edits2 copies in branches/safari-600.1-branch
Merged r171567. <rdar://problem/17781423>
- 6:16 PM Changeset in webkit [171572] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171570. <rdar://problem/17803170>
- 6:12 PM Changeset in webkit [171571] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171564. <rdar://problem/17757800>
- 6:11 PM Changeset in webkit [171570] by
-
- 2 edits in trunk/Source/WebKit2
Sometimes WKWebView is blank after resuming the app, until you scroll
https://bugs.webkit.org/show_bug.cgi?id=135275
<rdar://problem/17803170>
Reviewed by Benjamin Poulain.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchViewStateChange):
If the UI process is waiting for a didUpdateViewState, we need to *always*
get a reply from the Web Process, so dispatchViewStateChange should *always*
send SetViewState even if nothing changed (so that we get the reply).
- 6:08 PM Changeset in webkit [171569] by
-
- 4 edits2 copies in branches/safari-600.1-branch
Merged r171561. <rdar://problem/16591706>
- 6:05 PM Changeset in webkit [171568] by
-
- 6 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171560. <rdar://problem/17542454>
- 6:05 PM Changeset in webkit [171567] by
-
- 3 edits2 adds in trunk
[iOS WK1] CSS viewport units use the wrong viewport size in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=135254
<rdar://problem/17781423>
Reviewed by Tim Horton.
Source/WebCore:
Test: fast/css/viewport-units-dynamic.html
In WebKit1 on iOS, we want to resolve viewport units against the visible
viewport, not the legacy WK1 notion of the "viewport" which is the entire document.
Fixes rendering of medium.com articles in WK1 views on iPad.
- page/FrameView.cpp:
(WebCore::FrameView::viewportSizeForCSSViewportUnits):
LayoutTests:
New test that ensures that viewport units are resolved against the correct
viewport size after the first style recalc.
- fast/css/viewport-units-dynamic.html: Added.
- platform/mac/fast/css/viewport-units-dynamic-expected.txt: Added.
- 6:03 PM Changeset in webkit [171566] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171559. <rdar://problem/17598815>
- 5:59 PM Changeset in webkit [171565] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171558. <rdar://problem/17041912>
- 5:59 PM Changeset in webkit [171564] by
-
- 2 edits in trunk/Source/JavaScriptCore
JSWrapperMap's jsWrapperForObject() needs to keep weak prototype and constructors from being GCed.
<https://webkit.org/b/135258>
Reviewed by Mark Hahnenberg.
Where needed, we cache the prototype object pointer in a stack local var.
This allows it to be scanned by the GC, and hence be kept alive until
we use it. The constructor object will in turn be kept alive by the
prototype object.
Also added some comments to warn against future code additions that could
regress this issue.
- API/JSWrapperMap.mm:
(-[JSObjCClassInfo allocateConstructorAndPrototypeWithSuperClassInfo:]):
(-[JSObjCClassInfo reallocateConstructorAndOrPrototype]):
(-[JSObjCClassInfo wrapperForObject:]):
(-[JSObjCClassInfo constructor]):
- 5:57 PM Changeset in webkit [171563] by
-
- 4 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171505. <rdar://problem/17713033>
- 5:53 PM Changeset in webkit [171562] by
-
- 7 edits2 copies in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171543. <rdar://problem/17706699>
- 5:27 PM Changeset in webkit [171561] by
-
- 4 edits2 adds in trunk
Crash when measuring a glyphs from a fallback SVG font
https://bugs.webkit.org/show_bug.cgi?id=135264
Reviewed by Simon Fraser.
Source/WebCore:
We can't realize font data for all fallback fonts ahead
of time, but we don't have all the necessary context to
realize SVG fallback data when it's needed. For now, we
can just bail; however, a larger, more invasive fix is
in order.
Test: svg/text/svg-fallback-font-crash.html
- platform/graphics/WidthIterator.cpp:
(WebCore::applyFontTransforms):
LayoutTests:
Render some text with a fallback SVG Font including a glyph which
only exists in that fallback font. Make sure there is no crash.
- svg/text/resources/Litherum.svg:
- svg/text/svg-fallback-font-crash-expected.txt: Added.
- svg/text/svg-fallback-font-crash.html: Added.
- 5:24 PM Changeset in webkit [171560] by
-
- 6 edits in trunk/Source/WebKit2
[iOS WK2] Header bar on nytimes articles lands in the wrong place after rubberbanding
https://bugs.webkit.org/show_bug.cgi?id=135221
<rdar://problem/17542454>
Reviewed by Benjamin Poulain.
The call to didCommitLayerTree() can cause one or two visible rect updates,
via changes to the UIScrollView contentSize and contentOffset. As a result, we
would notify the scrolling tree about a viewport change, but using the old
scrolling tree rather than the new one, so we could move layers around for
nodes which are about to be removed from the tree.
However, we also have to ensure that programmatic scrolls are applied after
didCommitLayerTree() has updated the view size, so have RemoteScrollingCoordinatorProxy
store data about programmatic scrolls and return them to the caller, which
can apply them after didCommitLayerTree().
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: Store a pointer to a RequestedScrollInfo
for the duration of the tree update, so that we can store requested scroll info in it.
(WebKit::RemoteScrollingCoordinatorProxy::RemoteScrollingCoordinatorProxy):
(WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll):
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLayerTree): Give Mac a stub implementation.
- UIProcess/WebPageProxy.h: Group some editing-related functions together.
(WebKit::WebPageProxy::editorState):
(WebKit::WebPageProxy::canDelete):
(WebKit::WebPageProxy::hasSelectedRange):
(WebKit::WebPageProxy::isContentEditable):
(WebKit::WebPageProxy::maintainsInactiveSelection):
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): Ordering change: update
the layer tree, then call didCommitLayerTree(), then do the viewport update, followed
by any programmatic scroll.
- 5:15 PM Changeset in webkit [171559] by
-
- 2 edits in trunk/Source/WebCore
And Alexey Proskuryakov <ap@apple.com>
[iOS] REGRESSION (WebKit2): Can't login to Wordpress.com, facebook.com when always allowing cookies
https://bugs.webkit.org/show_bug.cgi?id=135273
<rdar://problem/17598815>
Reviewed by Alexey Proskuryakov.
Fixes an issue where cookies may be created in the wrong cookie store.
Currently, when we update the CFURLRequest object associated with a ResourceRequest object
we explicitly set a cookie storage, cookie accept policy, and SSL properties based on the
corresponding values in the old CFURLRequest object (if we have one). This ultimately leads
to CFNetwork associating the cookies for the request with a different cookie store when we
handle the request in the NetworkProcess. Instead, we shouldn't set these properties
explicitly as we already copy them implicitly earlier (via CFURLRequestCreateMutableCopy()).
- platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
- 4:56 PM Changeset in webkit [171558] by
-
- 2 edits in trunk/Source/JavaScriptCore
JSLock release should only modify the AtomicStringTable if it modified in acquire
https://bugs.webkit.org/show_bug.cgi?id=135143
Reviewed by Darin Adler.
- runtime/JSLock.cpp:
(JSC::JSLock::JSLock):
Initialize the member variable to nullptr.
(JSC::JSLock::willDestroyVM):
Update style to use nullptr instead of 0.
(JSC::JSLock::willReleaseLock):
We should only reset the thread data's atomic string table if
didAcquireLock changed it. m_entryAtomicStringTable will have
been set by didAcquireLock if it changed, or nullptr if it didn't.
This way we are sure we are balanced, regardless of m_vm changes.
- 4:50 PM Changeset in webkit [171557] by
-
- 8 edits in trunk/Source
Rename feature flag for long-press gesture on Mac.
Source/JavaScriptCore:
https://bugs.webkit.org/show_bug.cgi?id=135259
Patch by Peyton Randolph <prandolph@apple.com> on 2014-07-24
Reviewed by Beth Dakin.
- Configurations/FeatureDefines.xcconfig:
Rename LINK_LONG_PRESS to MAC_LONG_PRESS.
Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=135259
Patch by Peyton Randolph <prandolph@apple.com> on 2014-07-24
Reviewed by Beth Dakin.
- Configurations/FeatureDefines.xcconfig:
Rename LINK_LONG_PRESS to MAC_LONG_PRESS.
Source/WebKit/mac:
https://bugs.webkit.org/show_bug.cgi?id=135259
Patch by Peyton Randolph <prandolph@apple.com> on 2014-07-24
Reviewed by Beth Dakin.
- Configurations/FeatureDefines.xcconfig:
Rename LINK_LONG_PRESS to MAC_LONG_PRESS.
Source/WebKit2:
https://bugs.webkit.org/show_bug.cgi?id=135259
Patch by Peyton Randolph <prandolph@apple.com> on 2014-07-24
Reviewed by Beth Dakin.
- Configurations/FeatureDefines.xcconfig:
Rename LINK_LONG_PRESS to MAC_LONG_PRESS.
- 4:38 PM Changeset in webkit [171556] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171554. <rdar://problem/17766348>
- 4:35 PM Changeset in webkit [171555] by
-
- 2 edits in trunk/Tools
GTK jhbuild modules needs to build xserver with --disable-local-transport
https://bugs.webkit.org/show_bug.cgi?id=135262
Patch by Michael Catanzaro <Michael Catanzaro> on 2014-07-24
Reviewed by Martin Robinson.
- gtk/jhbuild.modules:
Build X server with --disable-local-transport, since local transport
is only supported on Solaris, SCO, and System V. Fixes build on
Fedora.
- 4:34 PM Changeset in webkit [171554] by
-
- 2 edits in trunk/Source/WebCore
Fixed Windows build fix.
- platform/network/cf/AuthenticationCF.cpp:
- 4:30 PM Changeset in webkit [171553] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r171527.
https://bugs.webkit.org/show_bug.cgi?id=135265
Breaks JSC API tests (Requested by mlam on #webkit).
Reverted changeset:
"JSWrapperMap's jsWrapperForObject() needs to defer GC."
https://bugs.webkit.org/show_bug.cgi?id=135258
http://trac.webkit.org/changeset/171527
- 4:29 PM Changeset in webkit [171552] by
-
- 2 edits in trunk/Tools
[GTK] build-webkit script fails under jhbuild if ACLOCAL_FLAGS is unset
https://bugs.webkit.org/show_bug.cgi?id=135065
Patch by Michael Catanzaro <Michael Catanzaro> on 2014-07-24
Reviewed by Martin Robinson.
- jhbuild/jhbuild-wrapper:
(ensure_jhbuild): do not assume jhbuild sets ACLOCAL_FLAGS
- 4:28 PM Changeset in webkit [171551] by
-
- 4 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171545. <rdar://problem/17766348>
- 4:27 PM Changeset in webkit [171550] by
-
- 28 edits6 copies1 delete in branches/safari-600.1-branch/Source
Merged r171540. <rdar://problem/17766348>
- 4:21 PM Changeset in webkit [171549] by
-
- 10 edits in branches/safari-600.1-branch/Source
Merged r171532. <rdar://problem/17279500>
- 4:17 PM Changeset in webkit [171548] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171519. <rdar://problem/17798346>
- 4:16 PM Changeset in webkit [171547] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171518. <rdar://problem/17797103>
- 4:11 PM Changeset in webkit [171546] by
-
- 6 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171526. <rdar://problem/17470655>
- 4:01 PM Changeset in webkit [171545] by
-
- 4 edits in trunk/Source/WebCore
Attempted Windows build fix.
- platform/network/cf/AuthenticationCF.cpp:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
- platform/network/cf/CredentialStorageCFNet.cpp:
(WebCore::CredentialStorage::getFromPersistentStorage):
- platform/network/cf/ProtectionSpaceCFNet.cpp:
(WebCore::ProtectionSpace::receivesCredentialSecurely):
(WebCore::ProtectionSpaceBase::receivesCredentialSecurely): Deleted.
- 4:01 PM Changeset in webkit [171544] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171497. <rdar://problem/17470655>
- 3:56 PM Changeset in webkit [171543] by
-
- 7 edits2 adds in trunk/Source/JavaScriptCore
Creating a JSGlobalObject with a custom JSClassRef results in a JSProxy with the wrong prototype
https://bugs.webkit.org/show_bug.cgi?id=135250
Reviewed by Geoffrey Garen.
JSGlobalObject::resetPrototype (which is called from JSGlobalContextCreateInGroup) doesn't change its
JSProxy's prototype as well. This results in a JSProxy where no properties in the original prototype
chain (as created from the JSClassRef hierarchy) are accessible. Changing resetPrototype to also change
the JSProxy's prototype fixes the issue.
- API/JSValueRef.cpp:
(JSValueIsObjectOfClass): Also fixed a bug where a JSProxy for a JSGlobalObject with a custom JSClassRef
would claim it wasn't of the specified class, even if the target was of the specified class.
- API/tests/CustomGlobalObjectClassTest.c: Added.
(jsDoSomething):
(customGlobalObjectClassTest):
- API/tests/CustomGlobalObjectClassTest.h: Added.
- API/tests/testapi.c:
(assertTrue):
(main):
- JavaScriptCore.vcxproj/testapi/testapi.vcxproj:
- JavaScriptCore.vcxproj/testapi/testapi.vcxproj.filters:
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::resetPrototype):
- 3:55 PM Changeset in webkit [171542] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171485. <rdar://problem/17782623>
- 3:54 PM Changeset in webkit [171541] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171201. <rdar://problem/17082607>
- 3:51 PM Changeset in webkit [171540] by
-
- 28 edits2 copies1 move3 adds in trunk/Source
Source/WebCore: <rdar://problem/17766348> [Cocoa] WebCore::ProtectionSpace doesn’t preserve all NSURLProtectionSpace properties, such as the distinguishedNames array
https://bugs.webkit.org/show_bug.cgi?id=135229
Reviewed by Alexey Proskuryakov.
- CMakeLists.txt: Updated for rename of a source file.
- WebCore.exp.in: Updated.
- WebCore.vcxproj/WebCore.vcxproj: Updated for rename of source files, added
ProtectionSpaceCFNet.{cpp,h}.
- WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
- WebCore.xcodeproj/project.pbxproj: Updated for rename of source files, added
ProtectionSpaceCococa.{h.mm}.
- platform/network/ProtectionSpace.cpp: Renamed to ProtectionSpaceBase.cpp.
- platform/network/ProtectionSpace.h: This file was renamed to ProtectionSpaceBase.h, and
in its place added a generic ProtectionSpace class that just derives from
ProtectionSpaceBase. For Cocoa and CFNetwork, ProtectionSpace{Cocoa,CFNet}.h is included
instead of the generic class.
- platform/network/ProtectionSpaceBase.cpp: Renamed ProtectionSpace.cpp to this.
(WebCore::ProtectionSpaceBase::ProtectionSpaceBase): Updated for rename.
(WebCore::ProtectionSpaceBase::host): Ditto.
(WebCore::ProtectionSpaceBase::port): Ditto.
(WebCore::ProtectionSpaceBase::serverType): Ditto.
(WebCore::ProtectionSpaceBase::isProxy): Ditto.
(WebCore::ProtectionSpaceBase::realm): Ditto.
(WebCore::ProtectionSpaceBase::authenticationScheme): Ditto.
(WebCore::ProtectionSpaceBase::receivesCredentialSecurely): Removed CFNetwork-specific part,
which is now implemented in ProtectionSpaceCFNet.cpp.
(WebCore::ProtectionSpaceBase::compare): Replaced operator== with this, and made it call
ProtectionSpace::platformCompare at the end if needed.
- platform/network/ProtectionSpaceBase.h: Renamed ProtectionSpace.h to this.
(WebCore::ProtectionSpaceBase::encodingRequiresPlatformData): Added with a default
implementation that returns false, for ProtectionSpace implementations to override.
(WebCore::ProtectionSpaceBase::platformCompare): Added with a default implementation that
returns true, for ProtectionSpace implementations to override.
(WebCore::operator==): Changed to call compare.
- platform/network/cf/AuthenticationCF.cpp:
(WebCore::AuthenticationChallenge::AuthenticationChallenge): Changed to use the
ProtectionSpace constructor that takes a CFURLProtectionSpaceRef.
(WebCore::createCF): Changed to use ProtectionSpace::cfSpace.
- platform/network/cf/AuthenticationCF.h: Guarded a couple of functiosn that aren’t used in
Cocoa with #if PLATFORM(WIN).
- platform/network/cf/CredentialStorageCFNet.cpp:
(WebCore::CredentialStorage::getFromPersistentStorage): Changed to use
ProtectionSpace::cfSpace.
(WebCore::CredentialStorage::saveToPersistentStorage): Ditto.
- platform/network/cf/ProtectionSpaceCFNet.cpp: Added.
(WebCore::ProtectionSpaceBase::receivesCredentialSecurely): Override with the
CFNetwork-specific test that was previously in ProtectionSpace.cpp.
- platform/network/cf/ProtectionSpaceCFNet.h: Copied from Source/WebCore/platform/network/ProtectionSpace.h.
Declare ProtectionSpace and override receivesCredentialSecurely.
- platform/network/mac/AuthenticationMac.h: Deleted the ProtectionSpace core() and mac().
- platform/network/mac/AuthenticationMac.mm:
(WebCore::AuthenticationChallenge::AuthenticationChallenge): Changed to use the
ProtectionSpace constructor that takes an NSURLProtectionSpace.
(WebCore::mac): Changed to use ProtectionSpace::nsSpace.
- platform/network/mac/CredentialStorageMac.mm:
(WebCore::CredentialStorage::getFromPersistentStorage): Ditto.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::receivedCredential): Changed to use the ProtectionSpace
constructor that takes an NSURLProtectionSpace.
- platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:canAuthenticateAgainstProtectionSpace:]):
Ditto.
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
Ditto.
Source/WebKit/mac: WebKit part of <rdar://problem/17766348> [Cocoa] WebCore::ProtectionSpace doesn’t preserve all NSURLProtectionSpace properties, such as the distinguishedNames array
https://bugs.webkit.org/show_bug.cgi?id=135229
Reviewed by Alexey Proskuryakov.
- Misc/WebDownload.mm:
(-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]): Chanegd to use the
ProtectionSpace constructor that takes an NSURLProtectionSpace.
- Plugins/WebBaseNetscapePluginView.mm:
(WebKit::getAuthenticationInfo): Ditto.
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace): Changed to use
ProtectionSpace::nsSpace.
Source/WebKit2: WebKit2 part of <rdar://problem/17766348> [Cocoa] WebCore::ProtectionSpace doesn’t preserve all NSURLProtectionSpace properties, such as the distinguishedNames array
https://bugs.webkit.org/show_bug.cgi?id=135229
Reviewed by Alexey Proskuryakov.
- Shared/Cocoa/WKNSURLProtectionSpace.mm: Changed to use ProtectionSpace::nsSpace.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ProtectionSpace>::encode): If encoding the space requires encoding the
platform data, do that.
(IPC::ArgumentCoder<ProtectionSpace>::decode): If platform data was encoded, decode it.
- Shared/WebCoreArgumentCoders.h:
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData): Archive the NSURLProtectionSpace.
(IPC::ArgumentCoder<ProtectionSpace>::decodePlatformData): Unarchive it.
- Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData): Added.
(IPC::ArgumentCoder<ProtectionSpace>::decodePlatformData): Added.
- 3:42 PM Changeset in webkit [171539] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171509. <rdar://problem/17790792>
- 3:40 PM Changeset in webkit [171538] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171507. <rdar://problem/17738186>
- 3:39 PM Changeset in webkit [171537] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171506. <rdar://problem/17796052>
- 3:37 PM Changeset in webkit [171536] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171493. <rdar://problem/17785560>
- 3:34 PM Changeset in webkit [171535] by
-
- 2 edits in branches/safari-600.1-branch/Tools
Merged r171487. <rdar://problem/17735912>
- 3:29 PM Changeset in webkit [171534] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171481. <rdar://problem/17713033>
- 3:27 PM Changeset in webkit [171533] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171478. <rdar://problem/17736503>
- 3:25 PM Changeset in webkit [171532] by
-
- 10 edits in trunk/Source
[WK2] Fixed/Sticky layers can get mispositioned when the layer tree commit change their position or size
https://bugs.webkit.org/show_bug.cgi?id=135227
<rdar://problem/17279500>
Reviewed by Simon Fraser.
Source/WebCore:
Keep track of the creation/destruction of Fixed and Sticky nodes in the ScrollingTree.
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::ScrollingTree):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::hasFixedOrSticky):
(WebCore::ScrollingTree::fixedOrStickyNodeAdded):
(WebCore::ScrollingTree::fixedOrStickyNodeRemoved):
- page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
(WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
- page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
(WebCore::ScrollingTreeStickyNode::~ScrollingTreeStickyNode):
Source/WebKit2:
In some cases, a fixed or sticky positioned layer would end up at its position corresponding to the WebProcess
instead of sticking the to real viewport in the UIProcess.
The sequence of event is:
1) A layer becomes fixed in some ScrollingTree transaction.
2) Later, some change in the WebProcess causes a LayerTree update for that exact same layer, but no corresponding
ScrollingTree update is made.
3) In the UIProcess, the position of the fixed layer is changed due to the LayerTree update.
But! There is no ScrollingTree change, updateScrollingTree() never sets fixedOrStickyLayerChanged to true,
and the position is not corrected.
-> The layer is now at the wrong position until the next VisibleContentRectUpdate.
Ideally, we should have fixedOrStickyLayerChanged track if either the position or size of a fixed layer changed
in the layer tree. This is tricky since the layer tree does not keep track of the fixed nodes of the scrolling tree.
Since this complexity seems risky at this point, I went for something simpler but with more overhead:
any time the scrolling tree contains either a fixed or sticky layer, viewportChangedViaDelegatedScrolling()
is called to "fix" the position.
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree):
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
(WebKit::RemoteScrollingCoordinatorProxy::hasFixedOrSticky):
- UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
- 3:17 PM Changeset in webkit [171531] by
-
- 3 edits in trunk/Source/WebCore
Let WheelEvent wrap a PlatformWheelEvent
https://bugs.webkit.org/show_bug.cgi?id=135244
When WheelEvent is initialized with a PlatformWheelEvent, store that PlatformWheelEvent for future use.
Patch by Wenson Hsieh <Wenson Hsieh> on 2014-07-24
Reviewed by Beth Dakin.
No new tests because behavior should not have changed.
- dom/WheelEvent.cpp: Added method to access the PlatformWheelEvent.
(WebCore::WheelEvent::WheelEvent):
- dom/WheelEvent.h: Added field to store PlatformWheelEvent, if initialized via PlatformWheelEvent.
(WebCore::WheelEvent::wheelEvent):
- 3:15 PM Changeset in webkit [171530] by
-
- 1 copy in tags/Safari-537.78.1
New Tag.
- 3:11 PM Changeset in webkit [171529] by
-
- 3 edits in tags/Safari-600.1.2.1/Source/WebKit2
Merged r171201. <rdar://problem/17082607>
- 3:11 PM Changeset in webkit [171528] by
-
- 8 edits in trunk/Source
Web Replay: don't encode/decode primitive types that lack explicit sizes
https://bugs.webkit.org/show_bug.cgi?id=133430
Reviewed by Anders Carlsson.
Source/JavaScriptCore:
Don't support encode/decode of unsigned long, since its size is compiler-dependent.
- replay/EncodedValue.cpp:
(JSC::EncodedValue::convertTo<unsigned long>):
(JSC::unsigned long>::encodeValue): Deleted.
- replay/EncodedValue.h:
Source/WebCore:
Remove uses of unsigned long in encode/decode methods because the type lacks an
explicit size. Move frame index serialization away from using unsigned long.
- replay/ReplayController.cpp:
(WebCore::logDispatchedDOMEvent): Fix the format string.
- replay/SerializationMethods.cpp:
(WebCore::frameIndexFromDocument):
(WebCore::frameIndexFromFrame):
(WebCore::documentFromFrameIndex):
(WebCore::frameFromFrameIndex):
(JSC::EncodingTraits<PluginData>::encodeValue):
(JSC::EncodingTraits<PluginData>::decodeValue):
- replay/SerializationMethods.h:
- replay/WebInputs.json: Remove primitive types without explicit sizes.
- 3:01 PM Changeset in webkit [171527] by
-
- 2 edits in trunk/Source/JavaScriptCore
JSWrapperMap's jsWrapperForObject() needs to defer GC.
<https://webkit.org/b/135258>
Reviewed by Oliver Hunt.
In the process of creating a JS wrapper, jsWrapperForObject() will create
the prototype and constructor of the corresponding ObjC class, as well as
for classes in its inheritance chain. These prototypes and constructors
are stored in Weak references in the JSObjCClassInfo objects. During all
the allocation that is being done to create all the prototypes and
constructors as well as the wrapper objects, a GC may occur thereby
collecting one or more of these newly created prototype and constructor
objects.
One example of where this problem can manifest is in wrapperForObject()
which is called from jsWrapperForObject(). In wrapperFoObject(), we do
the following steps:
- reallocateConstructorAndOrPrototype() which creates the prototype object and store it in JSObjCClassInfo's m_prototype which is a Weak ref.
- makeWrapper() to create the wrapper object, which may trigger a GC. GC will collect the prototype object and nullify the corresponding JSObjCClassInfo's m_prototype Weak ref.
- call JSObjectSetPrototype() to set the JSObjCClassInfo's m_prototype in the newly created wrapper. This results in the wrapper getting a jsNull as a prototype instead of the expected prototype object.
To ensure that the prototype and constructor objects are retained until
they can be referenced properly from the wrapper object,
jsWrapperForObject() should defer GC until it's done with its work.
- API/JSWrapperMap.mm:
(-[JSWrapperMap jsWrapperForObject:]):
- 2:37 PM Changeset in webkit [171526] by
-
- 6 edits in trunk/Source/WebCore
Sharing SharedBuffer between WebCore and ImageIO is racy and crash prone
https://bugs.webkit.org/show_bug.cgi?id=135069
<rdar://problem/17470655>
Reviewed by Simon Fraser.
When passing image data to ImageIO for decoding, we pass an NSData subclass that is a wraper
around SharedBuffer. This can be a problem when ImageIO tries to access the data on the CA
thread. End result is data corruption on large image loads and potential crashes. The fix is
to have SharedBuffer create a copy of its data if the data has been passed to ImageIO and
might be accessed concurrently.
Since Vector is not refcounted, we do this by having a new refcounted object in SharedBuffer
that contains the buffer and we pass that in our NSData subclass WebCoreSharedBufferData.
Code that would result in the Vector memory moving e.g. append(), resize(), now checks to
see if the buffer was shared and if so, will create a new copy of the vector. This ensures
that the main thread does not end up invalidating the vector memory that we have passed it
to ImageIO.
No new tests because no functional changes.
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::makePurgeable):
Remove early return - createPurgeableMemory() has the correct check now.
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::adoptVector):
(WebCore::SharedBuffer::createPurgeableBuffer):
Don't create purgeable buffer if we are sharing the buffer.
(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::clear):
(WebCore::SharedBuffer::copy):
(WebCore::SharedBuffer::duplicateDataBufferIfNecessary): Added.
Create a new copy of the data if we have shared the buffer and if appending to it would
exceed the capacity of the vector resulting in memmove.
(WebCore::SharedBuffer::appendToInternalBuffer): Added.
(WebCore::SharedBuffer::clearInternalBuffer): Added.
(WebCore::SharedBuffer::buffer):
Create a new copy of the buffer if we have shared it.
(WebCore::SharedBuffer::getSomeData):
- platform/SharedBuffer.h:
- platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::singleDataArrayBuffer):
(WebCore::SharedBuffer::maybeAppendDataArray):
- platform/mac/SharedBufferMac.mm:
Pass the InternalBuffer object to WebCoreSharedBufferData
(-[WebCoreSharedBufferData dealloc]):
(-[WebCoreSharedBufferData initWithSharedBufferInternalBuffer:]):
(-[WebCoreSharedBufferData length]):
(-[WebCoreSharedBufferData bytes]):
(WebCore::SharedBuffer::createNSData):
Call createCFData() instead of duplicating code.
(WebCore::SharedBuffer::createCFData):
If the data is in purgeable memory, make a copy of it since m_buffer was cleared when
creating the purgeable buffer.
(-[WebCoreSharedBufferData initWithSharedBuffer:]): Deleted.
- 2:12 PM Changeset in webkit [171525] by
-
- 2 edits in trunk/Websites/webkit.org
Committers should mail webkit-committers not webkit-reviewers for reactivation
https://bugs.webkit.org/show_bug.cgi?id=135203
Reviewed by Ryosuke Niwa.
Only reviewers can send mail to webkit-reviewers. Amend the policy so that committers should
send mail to webkit-committers instead of webkit-reviewers.
- coding/commit-review-policy.html:
- 2:00 PM Changeset in webkit [171524] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171395. <rdar://problem/17544620>
- 1:58 PM Changeset in webkit [171523] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171393. <rdar://problem/17544620>
- 1:56 PM Changeset in webkit [171522] by
-
- 3 edits2 copies in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171390. <rdar://problem/17544620>
- 1:53 PM Changeset in webkit [171521] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171328. <rdar://problem/17544620>
- 1:47 PM Changeset in webkit [171520] by
-
- 2 edits in tags/Safari-600.1.2.1/Source/WebKit2
Merged r171518. <rdar://problem/17797103>
- 1:18 PM Changeset in webkit [171519] by
-
- 2 edits in trunk/Source/WebKit2
Need to explicitly support location services in webcontent profile
https://bugs.webkit.org/show_bug.cgi?id=135251
<rdar://17798346>
Reviewed by Dan Bernstein.
Switching to uikit-app means that we remove the implicit support
for location services. This makes us explicitly opt-in.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 1:13 PM Changeset in webkit [171518] by
-
- 2 edits in trunk/Source/WebKit2
Crash at [WKContentView _applicationWillEnterForeground:] + 28
<rdar://problem/17797103>
Reviewed by Sam Weinig.
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _applicationWillEnterForeground:]):
Drawing area can be null; null check it!
It's ok if we don't hide the content in this case, because if the drawing area is null,
it doesn't have any layers in the tree anyway.
- 1:00 PM Changeset in webkit [171517] by
-
- 2 edits in tags/Safari-600.1.2.1/Source/WebKit2
Merged r171509. <rdar://problem/17790792>
- 12:57 PM Changeset in webkit [171516] by
-
- 2 edits in tags/Safari-600.1.2.1/Tools
Merged r171487. <rdar://problem/17735912>
- 12:52 PM Changeset in webkit [171515] by
-
- 5 edits in tags/Safari-600.1.2.1/Source
Versioning.
- 12:49 PM Changeset in webkit [171514] by
-
- 1 copy in tags/Safari-600.1.2.1
New tag.
- 12:23 PM Changeset in webkit [171513] by
-
- 3 edits in trunk/Source/WebCore
[Curl] Enable file logging.
https://bugs.webkit.org/show_bug.cgi?id=135202
Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-24
Reviewed by Alex Christensen.
The Curl api offers the possibility to write log messages to file. Enable this for debugging purposes.
- platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::ResourceHandleManager):
(WebCore::ResourceHandleManager::~ResourceHandleManager):
(WebCore::ResourceHandleManager::initializeHandle):
- platform/network/curl/ResourceHandleManager.h:
- 9:20 AM Changeset in webkit [171512] by
-
- 2 edits in trunk/Source/WebCore
Sort WebCore.exp.in after r171252
https://bugs.webkit.org/show_bug.cgi?id=135239
Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-07-24
Reviewed by Csaba Osztrogonác.
- WebCore.exp.in:
- 5:23 AM Changeset in webkit [171511] by
-
- 3 edits2 adds in trunk
[New Multicolumn] Assertion failure when an input element has multicolumn style
https://bugs.webkit.org/show_bug.cgi?id=135234
Reviewed by Andrei Bucur.
Source/WebCore:
Restrict the assertion in RenderBlock::canComputeRegionRangeForBox
only to RenderNamedFlowThread objects since for RenderMultiColumnFlowThread
objects we can compute a range of regions during their parent block layout.
Test: fast/multicol/newmulticol/input-as-multicol.html
- rendering/RenderBlock.cpp:
(WebCore::canComputeRegionRangeForBox):
LayoutTests:
- fast/multicol/newmulticol/input-as-multicol-expected.txt: Added.
- fast/multicol/newmulticol/input-as-multicol.html: Added.
Jul 23, 2014:
- 10:30 PM Changeset in webkit [171510] by
-
- 25 edits4 adds in branches/ftlopt/Source/JavaScriptCore
Make improvements to Type Profiling
https://bugs.webkit.org/show_bug.cgi?id=134860
Patch by Saam Barati <sbarati@apple.com> on 2014-07-23
Reviewed by Filip Pizlo.
I improved the API between the inspector and JSC. We no longer send one huge
string to the inspector. We now send structured data that represents the type
information that JSC has collected. I've also created a beginning implementation
of a type lattice that allows us to resolve a display name for a type that
consists of a single word.
I created a data structure that knows which functions have executed. This
solves the bug where types inside an un-executed function will resolve
to the type of the enclosing expression of that function. This data
structure may also be useful later if the inspector chooses to create a UI
around showing which functions have executed.
Better type information is gathered for objects. StructureShape now
represents an object's prototype chain. StructureShape also collects
the constructor name for an object.
Expression ranges are now zero indexed.
Removed some extraneous methods.
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::scopeDependentProfile):
- bytecode/CodeBlock.h:
- bytecode/TypeLocation.h:
(JSC::TypeLocation::TypeLocation):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedFunctionExecutable::highFidelityTypeProfilingStartOffset):
(JSC::UnlinkedFunctionExecutable::highFidelityTypeProfilingEndOffset):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitHighFidelityTypeProfilingExpressionInfo):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitHighFidelityTypeProfilingExpressionInfo): Deleted.
- heap/Heap.cpp:
(JSC::Heap::collect):
- inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):
(Inspector::InspectorRuntimeAgent::getRuntimeTypeForVariableAtOffset): Deleted.
- inspector/agents/InspectorRuntimeAgent.h:
- inspector/protocol/Runtime.json:
- runtime/Executable.cpp:
(JSC::ScriptExecutable::ScriptExecutable):
(JSC::ProgramExecutable::ProgramExecutable):
(JSC::FunctionExecutable::FunctionExecutable):
(JSC::ProgramExecutable::initializeGlobalProperties):
- runtime/Executable.h:
(JSC::ScriptExecutable::highFidelityTypeProfilingStartOffset):
(JSC::ScriptExecutable::highFidelityTypeProfilingEndOffset):
- runtime/FunctionHasExecutedCache.cpp: Added.
(JSC::FunctionHasExecutedCache::hasExecutedAtOffset):
(JSC::FunctionHasExecutedCache::insertUnexecutedRange):
(JSC::FunctionHasExecutedCache::removeUnexecutedRange):
- runtime/FunctionHasExecutedCache.h: Added.
(JSC::FunctionHasExecutedCache::FunctionRange::FunctionRange):
(JSC::FunctionHasExecutedCache::FunctionRange::operator==):
(JSC::FunctionHasExecutedCache::FunctionRange::hash):
- runtime/HighFidelityLog.cpp:
(JSC::HighFidelityLog::processHighFidelityLog):
(JSC::HighFidelityLog::actuallyProcessLogThreadFunction): Deleted.
- runtime/HighFidelityLog.h:
(JSC::HighFidelityLog::recordTypeInformationForLocation):
- runtime/HighFidelityTypeProfiler.cpp:
(JSC::HighFidelityTypeProfiler::logTypesForTypeLocation):
(JSC::HighFidelityTypeProfiler::insertNewLocation):
(JSC::HighFidelityTypeProfiler::getTypesForVariableAtOffsetForInspector):
(JSC::descriptorMatchesTypeLocation):
(JSC::HighFidelityTypeProfiler::findLocation):
(JSC::HighFidelityTypeProfiler::getTypesForVariableInAtOffset): Deleted.
(JSC::HighFidelityTypeProfiler::getGlobalTypesForVariableAtOffset): Deleted.
(JSC::HighFidelityTypeProfiler::getLocalTypesForVariableAtOffset): Deleted.
- runtime/HighFidelityTypeProfiler.h:
(JSC::QueryKey::QueryKey):
(JSC::QueryKey::isHashTableDeletedValue):
(JSC::QueryKey::operator==):
(JSC::QueryKey::hash):
(JSC::QueryKeyHash::hash):
(JSC::QueryKeyHash::equal):
(JSC::HighFidelityTypeProfiler::functionHasExecutedCache):
(JSC::HighFidelityTypeProfiler::typeLocationCache):
- runtime/Structure.cpp:
(JSC::Structure::toStructureShape):
- runtime/Structure.h:
- runtime/TypeLocationCache.cpp: Added.
(JSC::TypeLocationCache::getTypeLocation):
- runtime/TypeLocationCache.h: Added.
(JSC::TypeLocationCache::LocationKey::LocationKey):
(JSC::TypeLocationCache::LocationKey::operator==):
(JSC::TypeLocationCache::LocationKey::hash):
- runtime/TypeSet.cpp:
(JSC::TypeSet::getRuntimeTypeForValue):
(JSC::TypeSet::addTypeForValue):
(JSC::TypeSet::seenTypes):
(JSC::TypeSet::doesTypeConformTo):
(JSC::TypeSet::displayName):
(JSC::TypeSet::allPrimitiveTypeNames):
(JSC::TypeSet::allStructureRepresentations):
(JSC::TypeSet::leastCommonAncestor):
(JSC::StructureShape::StructureShape):
(JSC::StructureShape::addProperty):
(JSC::StructureShape::propertyHash):
(JSC::StructureShape::leastCommonAncestor):
(JSC::StructureShape::stringRepresentation):
(JSC::StructureShape::inspectorRepresentation):
(JSC::StructureShape::leastUpperBound): Deleted.
- runtime/TypeSet.h:
(JSC::StructureShape::setConstructorName):
(JSC::StructureShape::constructorName):
(JSC::StructureShape::setProto):
- runtime/VM.cpp:
(JSC::VM::dumpHighFidelityProfilingTypes):
(JSC::VM::getTypesForVariableAtOffset): Deleted.
(JSC::VM::updateHighFidelityTypeProfileState): Deleted.
- runtime/VM.h:
(JSC::VM::isProfilingTypesWithHighFidelity):
(JSC::VM::highFidelityTypeProfiler):
- 10:17 PM Changeset in webkit [171509] by
-
- 2 edits in trunk/Source/WebKit2
[iOS WK2] Some help.apple.com pages not scrollable
https://bugs.webkit.org/show_bug.cgi?id=135228
<rdar://problem/17790792>
Reviewed by Benjamin Poulain.
On pages which size their document to the device size, the WKContentView size
never changes after it's created. In this situation, we never set a bounds
on the _rootContentView, so it remains zero-sized which breaks hit testing
on all enclosed UIScrollViews for overflow:scroll.
Fix by making the _rootContentView and the _inspectorIndicationView use autosizing
so they are always the size of their parent view, and remove the explicit setting
of their bounds.
- UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:context:configuration:webView:]):
(-[WKContentView setShowingInspectorIndication:]):
(-[WKContentView _didCommitLayerTree:]):
- 10:16 PM Changeset in webkit [171508] by
-
- 2 edits in branches/ftlopt/Source/JavaScriptCore
Fix debug build.
- bytecode/CallLinkStatus.h:
(JSC::CallLinkStatus::CallLinkStatus):
- 10:02 PM Changeset in webkit [171507] by
-
- 2 edits in trunk/Source/WebKit2
[iOS][WK2] r171124 is incorrect when the virtual keyboard is up
https://bugs.webkit.org/show_bug.cgi?id=135187
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-23
Reviewed by Simon Fraser.
Unfortunately, restricting the input into the document rect does not work.
When the keyboard is up, the keyboard bounds can overlap the WKWebView, and
the valid range should account for that.
Instead of playing with the keyboard rect, we can limit the scroll position
inside the valid range of UIScrollView. The keyboard always adjusts the UIScrollView
range as needed to give access to the content. Using that range is a bit more permissive
because the page could scroll to reveal content in the content inset defined by the client
of the API (this could actually be quite useful for hybrid apps).
There was already a function to change the content offset in the valid scrollview
range: changeContentOffsetBoundedInValidRange(), I extracted the range check
to contentOffsetBoundedInValidRange() for the needs of -[WKWebView _scrollToContentOffset:].
So...contentOffsetBoundedInValidRange() is cool, but it is not in the right coordinate
system. The scroll position we get from the WebProcess is in document coordinates, while
contentOffsetBoundedInValidRange() works with the UIScrollView coordinates.
To fix that, we scale the input position to get to the same scale as UIScrollView, then
apply the insets with the weirdly named [WKWebView _adjustedContentOffset:].
- UIProcess/API/Cocoa/WKWebView.mm:
(contentOffsetBoundedInValidRange):
(changeContentOffsetBoundedInValidRange):
(-[WKWebView _scrollToContentOffset:]):
- 9:38 PM Changeset in webkit [171506] by
-
- 2 edits in trunk/Source/WebCore
Transparent fullscreen background when video is not present.
https://bugs.webkit.org/show_bug.cgi?id=135226
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-23
Reviewed by Simon Fraser.
Set background to black just before beginning the animation to fullscreen.
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::enterFullscreen): set background color black.
- 7:39 PM Changeset in webkit [171505] by
-
- 4 edits in trunk/Source/WebCore
ScriptController::updateDocument ASSERT mutating map while iterating map
https://bugs.webkit.org/show_bug.cgi?id=135211
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-23
Reviewed by Oliver Hunt.
Avoid iterating over m_windowShells in more places. This prevents
the possibility of a collection during JSC allocation which might
cause a mutation to m_windowShells (HTMLMediaElement destruction).
Have ScriptController defriend ScriptCachedFrameData by providing
a getter for the list of window shells.
- bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::windowShells):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::attachDebugger):
(WebCore::ScriptController::updateDocument):
- bindings/js/ScriptController.h:
- 6:13 PM Changeset in webkit [171504] by
-
- 8 edits in trunk/Source
Unreviewed, rolling out r171498.
https://bugs.webkit.org/show_bug.cgi?id=135223
It will regress some scroll position restoration on navigation
(r167916). (Requested by smfr on #webkit).
Reverted changeset:
"[iOS WK2] Header bar on nytimes articles lands in the wrong
place after rubberbanding"
https://bugs.webkit.org/show_bug.cgi?id=135221
http://trac.webkit.org/changeset/171498
- 6:00 PM Changeset in webkit [171503] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171474. <rdar://problem/17041912>
- 5:57 PM Changeset in webkit [171502] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171490. <rdar://problem/17739108>
- 5:54 PM Changeset in webkit [171501] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171499. <rdar://problem/17783423>
- 5:52 PM Changeset in webkit [171500] by
-
- 2 edits in tags/Safari-600.1.2/Source/WebCore
Merge r171499. <rdar://problem/17783423>
- 5:24 PM Changeset in webkit [171499] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r171376): Sometimes we detect less than the whole phone number
https://bugs.webkit.org/show_bug.cgi?id=135220
<rdar://problem/17783423>
Reviewed by Brady Eidson.
- editing/Editor.cpp:
(WebCore::Editor::scanSelectionForTelephoneNumbers):
Use the visible selection's start and end instead of base and extent, because they'll
always be in the right order in the case of a directional selection (base can be *after* extent
if you select from right to left). This fixes the code that expands the selection.
Pass the *entire* expanded selection to DataDetectors, instead of using TextIterator.
This way, we will find each number only once, and will never get part of a phone number once
and then the whole phone number later.
- 5:23 PM Changeset in webkit [171498] by
-
- 8 edits in trunk/Source
[iOS WK2] Header bar on nytimes articles lands in the wrong place after rubberbanding
https://bugs.webkit.org/show_bug.cgi?id=135221
Reviewed by Tim Horton.
Source/WebCore:
Add a function on GraphicsLayer to force a flush of the layer position
to the underlying graphics system, so that when layers cease being
scroll-coordinated, we can ensure that their layers are repositioned
in the correct location.
- WebCore.exp.in:
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::forcePositionUpdate):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::forcePositionUpdate):
- platform/graphics/ca/GraphicsLayerCA.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
Source/WebKit2:
The call to didCommitLayerTree() can cause one or two visible rect updates,
via changes to the UIScrollView contentSize and contentOffset. As a result, we
would notify the scrolling tree about a viewport change, but using the old
scrolling tree rather than the new one, so we could move layers around for
nodes which are about to be removed from the tree.
Fix by m_webPageProxy->didCommitLayerTree() after the scrolling tree has been
committed.
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
- 5:08 PM Changeset in webkit [171497] by
-
- 5 edits in trunk/Source/WebCore
Get rid of SharedBuffer::NSDataRetainPtrWithoutImplicitConversionOperator
https://bugs.webkit.org/show_bug.cgi?id=135219
Reviewed by Anders Carlsson.
No new tests because no functional changes.
- loader/ResourceBuffer.h:
- loader/mac/ResourceBuffer.mm:
(WebCore::ResourceBuffer::createNSData):
- platform/SharedBuffer.h:
(WebCore::SharedBuffer::NSDataRetainPtrWithoutImplicitConversionOperator::NSDataRetainPtrWithoutImplicitConversionOperator): Deleted.
- platform/mac/SharedBufferMac.mm:
(WebCore::SharedBuffer::createNSData):
- 4:20 PM Changeset in webkit [171496] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Build fix after r171361.
- public/js/helper-classes.js:
(.this.formattedBuildTime):
- 4:06 PM Changeset in webkit [171495] by
-
- 18 edits2 adds in branches/ftlopt/Source/JavaScriptCore
[ftlopt] Phantoms in SSA form should be aggressively hoisted
https://bugs.webkit.org/show_bug.cgi?id=135111
Reviewed by Oliver Hunt.
In CPS form, Phantom means three things: (1) that the children should be kept alive so long
as they are relevant to OSR (due to a MovHint), (2) that the children are live-in-bytecode
at the point of the Phantom, and (3) that some checks should be performed. In SSA, the
second meaning is not used but the other two stay.
The fact that a Phantom that is used to keep a node alive could be anywhere in the graph,
even in a totally different basic block, complicates some SSA transformations. It's not
possible to just jettison some successor, since tha successor could have a Phantom that we
care about.
This change rationalizes how Phantoms work so that:
1) Phantoms keep children alive so long as those children are relevant to OSR. This is true
in both CPS and SSA. This was true before and it's true now.
2) Phantoms are used for live-in-bytecode only in CPS. This was true before and it's true
now, except that now we also don't bother preserving the live-in-bytecode information
that Phantoms convey, when we are in SSA.
3) Phantoms may incidentally have checks, but in cases where we only want checks, we now
use Check instead of Phantom. Notably, DCE phase has dead nodes decay to Check, not
Phantom.
The biggest part of this change is that in SSA, we canonicalize Phantoms:
- All Phantoms are replaced with Check nodes that include only those edges that have checks.
- Nodes that were the children of any Phantoms have a Phantom right after them.
For example, the following code:
5: ArithAdd(@1, @2)
6: ArithSub(@5, @3)
7: Phantom(Int32:@5)
would be turned into the following:
5: ArithAdd(@1, @2)
8: Phantom(@5) @5 was the child of a Phantom, so we create a new Phantom right after
@5. This is the only Phantom we will have for @5.
6: ArithSub(@5, @3)
7: Check(Int32:@5) We replace the Phantom with a Check; in this case since Int32: is
a checking edge, we leave it.
This is a slight speed-up across the board, presumably because we now do a better job of
reducing the size of the graph during compilation. It could also be a fluke, though. The
main purpose of this is to unlock some other work (like CFG simplification in SSA). It will
become a requirement to run phantom canonicalization prior to some SSA phases. None of the
current phases need it, but future phases probably will.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::run):
(JSC::DFG::DCEPhase::findTypeCheckRoot):
(JSC::DFG::DCEPhase::countEdge):
(JSC::DFG::DCEPhase::fixupBlock):
(JSC::DFG::DCEPhase::eliminateIrrelevantPhantomChildren):
- dfg/DFGEdge.cpp:
(JSC::DFG::Edge::dump):
- dfg/DFGEdge.h:
(JSC::DFG::Edge::isProved):
(JSC::DFG::Edge::needsCheck): Deleted.
- dfg/DFGNodeFlags.h:
- dfg/DFGPhantomCanonicalizationPhase.cpp: Added.
(JSC::DFG::PhantomCanonicalizationPhase::PhantomCanonicalizationPhase):
(JSC::DFG::PhantomCanonicalizationPhase::run):
(JSC::DFG::performPhantomCanonicalization):
- dfg/DFGPhantomCanonicalizationPhase.h: Added.
- dfg/DFGPhantomRemovalPhase.cpp:
(JSC::DFG::PhantomRemovalPhase::run):
- dfg/DFGPhantomRemovalPhase.h:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::lowJSValue):
(JSC::FTL::LowerDFGToLLVM::speculateObjectOrOther):
- 3:55 PM Changeset in webkit [171494] by
-
- 3 edits in trunk/Source/WebCore
Subpixel rendering: Cleanup RenderLayerCompositor::deviceScaleFactor()
https://bugs.webkit.org/show_bug.cgi?id=135208
Reviewed by Simon Fraser.
Use m_renderView.document() to retrieve device scale factor value. m_renderView.document()
is always available while this->page() is not.
No change in behavior.
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateTransform):
(WebCore::RenderLayerBacking::computeTransformOriginForPainting):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::deviceScaleFactor):
- 3:03 PM Changeset in webkit [171493] by
-
- 2 edits in trunk/Source/WebKit2
Add a pseudo target to create sandbox override roots
https://bugs.webkit.org/show_bug.cgi?id=135216
<rdar://17785560>
Reviewed by Alexey Proskuryakov.
Just a duplicate of the standard ios sandbox target, targetting
the profile overrides directory. This means we can make roots
that "Just Work".
- WebKit2.xcodeproj/project.pbxproj:
- 2:56 PM Changeset in webkit [171492] by
-
- 2 edits in trunk/Source/WebCore
[WinCairo] Gstreamer rendering is not working.
https://bugs.webkit.org/show_bug.cgi?id=135201
Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-23
Reviewed by Alex Christensen.
WinCairo does not support accelerated rendering yet.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
(WebCore::MediaPlayerPrivateGStreamerBase::supportsAcceleratedRendering):
- 2:51 PM Changeset in webkit [171491] by
-
- 2 edits in tags/Safari-600.1.2/Source/WebKit2
Merged r171490. <rdar://problem/17739108>
- 2:43 PM Changeset in webkit [171490] by
-
- 2 edits in trunk/Source/WebKit2
Incorrect commit for sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=135214
<rdar://17739108>
Reviewed by Anders Carlsson.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 2:16 PM Changeset in webkit [171489] by
-
- 7 edits in trunk
Web Inspector: InspectorBackend's promise-based agent API does not support multiple return values
https://bugs.webkit.org/show_bug.cgi?id=135207
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
The promise wrapper implementation assumed that the protocol callback supplies a single 'payload'
return value, but InspectorBackend will actually unpack multiple return values as multiple
callback arguments. Set a special flag so it will not try to apply multiple return values.
It would read better if multiple return values could be spread to the resolve callback, but
multiple argument support are not required by the Promises specification, so we won't use them.
- UserInterface/Controllers/ReplayManager.js: Fix uses of promise return values.
(WebInspector.ReplayManager):
- UserInterface/Models/ReplaySession.js:
- UserInterface/Models/ReplaySessionSegment.js:
(WebInspector.ReplaySessionSegment):
- UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype.promise):
LayoutTests:
- http/tests/inspector/replay/replay-test.js: fix uses of promise API return values.
- 1:59 PM Changeset in webkit [171488] by
-
- 9 edits2 deletes in trunk
Unreviewed, rolling out r171455.
https://bugs.webkit.org/show_bug.cgi?id=135209
completely broke selection highlight invalidation (Requested
by thorton on #webkit).
Reverted changeset:
"REGRESSION (r169105): Crash in selection"
https://bugs.webkit.org/show_bug.cgi?id=134303
http://trac.webkit.org/changeset/171455
- 1:34 PM Changeset in webkit [171487] by
-
- 2 edits in trunk/Tools
Unreviewed iOS build fix after r171355.
- TestWebKitAPI/Configurations/Base.xcconfig:
Since all the Tests/WebKit2Cocoa tests are already explicitly skipped on iOS,
simplify to skipping all the tests in the directory. PlatformUtilities are not
building on iOS, which means we are missing necessary Util functions.
- 1:19 PM Changeset in webkit [171486] by
-
- 4 edits in trunk/Source/WebCore
Compile window-inactive and fullscreen pseudoclasses in css selectors.
https://bugs.webkit.org/show_bug.cgi?id=135200
Reviewed by Benjamin Poulain.
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
Removed the check of context.hasSelectionPseudo for a window-inactive pseudoclass.
Moved logic to SelectorCheckerTestFunctions.h to share with the selector compiler.
- css/SelectorCheckerTestFunctions.h:
(WebCore::isWindowInactive):
(WebCore::matchesFullScreenAnimatingFullScreenTransitionPseudoClass):
(WebCore::matchesFullScreenAncestorPseudoClass):
(WebCore::matchesFullScreenDocumentPseudoClass):
Added from SelectorChecker.cpp.
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):
Added unoptimized pseudoclass cases for window-inactive and fullscreen pseudoclasses.
Explicitly listed uncompiled pseudoclasses for future work instead of using a default.
- 1:18 PM Changeset in webkit [171485] by
-
- 2 edits in trunk/Source/WebKit2
<rdar://problem/17782623> [iOS] Client-certificate authentication isn’t working with some certificates
https://bugs.webkit.org/show_bug.cgi?id=135206
Reviewed by Anders Carlsson.
- Shared/cf/ArgumentCodersCF.cpp:
(IPC::copyPersistentRef): Added this helper function. It differs from
SecKeyCopyPersistentRef in that if multiple copies of the key exist in the keychain, it
ensures that we get a reference to the copy that is in the keychain access group that the
Networking process can use.
(IPC::encode): Use copyPersistentRef.
- 12:49 PM Changeset in webkit [171484] by
-
- 2 edits in tags/Safari-600.1.2/Source/JavaScriptCore
Merged r171474. <rdar://problem/17041912>
- 11:39 AM Changeset in webkit [171483] by
-
- 2 edits in trunk/Source/JavaScriptCore
Build fix after r171482.
Rubberstamped by Joe Pecoraro.
- runtime/Identifier.h: Make header declarations match
implementation file.
- 11:18 AM Changeset in webkit [171482] by
-
- 8 edits in trunk/Source
../JavaScriptCore: [Win] Use NO_RETURN_DUE_TO_CRASH on Windows
https://bugs.webkit.org/show_bug.cgi?id=135199
Reviewed by Mark Lam.
- jsc.cpp:
(WTF::RuntimeArray::deleteProperty): Stop using ugly
compiler work-around on Windows; use NO_RETURN_DUE_TO_CRASH
codepath instead.
- runtime/Identifier.h: Add NO_RETURN_DUE_TO_CRASH
to header so function declaration matches implementation.
../WebCore: [Win] Use NO_RETURN_DUE_TO_CRASH on Windows.
https://bugs.webkit.org/show_bug.cgi?id=13519
Reviewed by Mark Lam.
- svg/SVGZoomAndPan.h: Add NO_RETURN_DUE_TO_CRASH to
header so function declarations match implementation.
../WTF: [Win] Use NO_RETURN_DUE_TO_CRASH on Windows.
https://bugs.webkit.org/show_bug.cgi?id=13519
Reviewed by Mark Lam.
- wtf/Assertions.h: Add MSVC to list of compilers supporting this macro.
- wtf/FastMalloc.cpp: Correct function declaration for NO_RETURN_DUE_TO_CRASH.
- 10:57 AM Changeset in webkit [171481] by
-
- 3 edits in trunk/Source/WebCore
JSDOMWindowShell leaks on pages with media elements
https://bugs.webkit.org/show_bug.cgi?id=135178
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-23
Reviewed by Oliver Hunt.
The DOMWindowWorld for HTMLMediaElements with MEDIA_CONTROLS_SCRIPT
was not getting cleared and removed.
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::clearWindowShell):
Iterate over a copy of the values. A sweep / garbage collection caused by
any JSC allocation during iteration could trigger a mutation of the m_windowShells
table that was being iterating. So instead iterate a list that won't mutate.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
If we had an isolated world, release as much memory as possible.
- 10:56 AM Changeset in webkit [171480] by
-
- 4 edits8 adds in trunk
Ensure we compute the min and max height of replaced elements to 'none' or 0 when appropriate.
https://bugs.webkit.org/show_bug.cgi?id=135181
Reviewed by David Hyatt.
Source/WebCore:
If a replaced element has a percentage min or max height specified then that height value should
compute to 'none' for max-height and 0 for min-height when its containing block
does not have a height 'specified explicitly'.
This is based on a Blink patch by Robert Hogan.
Tests: css2.1/20110323/max-height-percentage-003.html
fast/replaced/max-height-percentage-quirks.html
fast/replaced/min-height-percentage-quirks.html
fast/replaced/min-height-percentage.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::logicalHeightComputesAsNone):
(WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight):
- rendering/RenderBox.h:
LayoutTests:
- css2.1/20110323/max-height-percentage-003-expected.html: Added.
- css2.1/20110323/max-height-percentage-003.html: Added.
- fast/replaced/max-height-percentage-quirks-expected.html: Added.
- fast/replaced/max-height-percentage-quirks.html: Added.
- fast/replaced/min-height-percentage-expected.html: Added.
- fast/replaced/min-height-percentage-quirks-expected.html: Added.
- fast/replaced/min-height-percentage-quirks.html: Added.
- fast/replaced/min-height-percentage.html: Added.
- 10:35 AM Changeset in webkit [171479] by
-
- 19 edits in trunk
Remove CSS_EXCLUSIONS compile flag and leftover code
https://bugs.webkit.org/show_bug.cgi?id=135175
Reviewed by Zoltan Horvath.
At this point, the CSS_EXCLUSIONS flag guards nothing but some useless
stubs. This removes the flag and the useless code.
.:
- Source/cmake/WebKitFeatures.cmake:
- Source/cmakeconfig.h.cmake:
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
No new tests, just removing code.
- Configurations/FeatureDefines.xcconfig:
- bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
- bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setCSSExclusionsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssExclusionsEnabled): Deleted.
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setCSSExclusionsEnabled): Deleted.
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
WebKitLibraries:
- win/tools/vsprops/FeatureDefines.props:
- win/tools/vsprops/FeatureDefinesCairo.props:
- 9:20 AM Changeset in webkit [171478] by
-
- 2 edits in trunk/Source/WebCore
[MSE][Mac] Support abort() in SourceBufferPrivateAVFObjC.
https://bugs.webkit.org/show_bug.cgi?id=135163
Reviewed by Brent Fulgham.
Recreate the parser when asked to abort().
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::abort):
- 7:57 AM Changeset in webkit [171477] by
-
- 30 edits in trunk/Source/WebCore
Migrate accessibility/ to using nullptr instead of 0
https://bugs.webkit.org/show_bug.cgi?id=135185
Reviewed by Simon Fraser.
No new tests because there is no behavior change.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedImageMapUIElement):
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::get):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::rootObject):
(WebCore::AXObjectCache::rootObjectForFrame):
- accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::get):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::rootObject):
(WebCore::AXObjectCache::rootObjectForFrame):
(WebCore::AXObjectCache::rootAXEditableElement):
- accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::disclosedByRow):
- accessibility/AccessibilityImageMapLink.cpp:
(WebCore::AccessibilityImageMapLink::AccessibilityImageMapLink):
(WebCore::AccessibilityImageMapLink::parentObject):
- accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
(WebCore::AccessibilityListBox::elementAccessibilityHitTest):
- accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
(WebCore::AccessibilityListBoxOption::parentObject):
(WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
- accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
- accessibility/AccessibilityMockObject.cpp:
(WebCore::AccessibilityMockObject::AccessibilityMockObject):
- accessibility/AccessibilityMockObject.h:
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::detach):
(WebCore::AccessibilityNodeObject::firstChild):
(WebCore::AccessibilityNodeObject::lastChild):
(WebCore::AccessibilityNodeObject::previousSibling):
(WebCore::AccessibilityNodeObject::nextSibling):
(WebCore::AccessibilityNodeObject::parentObject):
(WebCore::AccessibilityNodeObject::document):
(WebCore::AccessibilityNodeObject::anchorElement):
(WebCore::nativeActionElement):
(WebCore::AccessibilityNodeObject::actionElement):
(WebCore::AccessibilityNodeObject::mouseButtonListener):
(WebCore::AccessibilityNodeObject::labelForElement):
(WebCore::AccessibilityNodeObject::menuItemElementForMenu):
(WebCore::AccessibilityNodeObject::menuButtonForMenu):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
(WebCore::AccessibilityObject::detach):
(WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
(WebCore::AccessibilityObject::findMatchingObjects):
(WebCore::renderListItemContainerForNode):
(WebCore::AccessibilityObject::accessibilityObjectForPosition):
(WebCore::AccessibilityObject::document):
(WebCore::AccessibilityObject::page):
(WebCore::AccessibilityObject::documentFrameView):
(WebCore::AccessibilityObject::anchorElementForNode):
(WebCore::AccessibilityObject::headingElementForNode):
(WebCore::AccessibilityObject::firstAnonymousBlockChild):
(WebCore::AccessibilityObject::element):
(WebCore::AccessibilityObject::focusedUIElement):
(WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::node):
(WebCore::AccessibilityObject::renderer):
(WebCore::AccessibilityObject::selectedRadioButton):
(WebCore::AccessibilityObject::selectedTabItem):
(WebCore::AccessibilityObject::accessibilityHitTest):
(WebCore::AccessibilityObject::firstChild):
(WebCore::AccessibilityObject::lastChild):
(WebCore::AccessibilityObject::previousSibling):
(WebCore::AccessibilityObject::nextSibling):
(WebCore::AccessibilityObject::parentObjectIfExists):
(WebCore::AccessibilityObject::observableObject):
(WebCore::AccessibilityObject::titleUIElement):
(WebCore::AccessibilityObject::correspondingLabelForControlElement):
(WebCore::AccessibilityObject::correspondingControlForLabelElement):
(WebCore::AccessibilityObject::scrollBar):
(WebCore::AccessibilityObject::anchorElement):
(WebCore::AccessibilityObject::actionElement):
(WebCore::AccessibilityObject::widget):
(WebCore::AccessibilityObject::widgetForAttachmentView):
(WebCore::AccessibilityObject::activeDescendant):
(WebCore::AccessibilityObject::mathRadicandObject):
(WebCore::AccessibilityObject::mathRootIndexObject):
(WebCore::AccessibilityObject::mathUnderObject):
(WebCore::AccessibilityObject::mathOverObject):
(WebCore::AccessibilityObject::mathNumeratorObject):
(WebCore::AccessibilityObject::mathDenominatorObject):
(WebCore::AccessibilityObject::mathBaseObject):
(WebCore::AccessibilityObject::mathSubscriptObject):
(WebCore::AccessibilityObject::mathSuperscriptObject):
(WebCore::AccessibilityObject::getScrollableAreaIfScrollable):
- accessibility/AccessibilityProgressIndicator.cpp:
(WebCore::AccessibilityProgressIndicator::progressElement):
(WebCore::AccessibilityProgressIndicator::meterElement):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::detach):
(WebCore::AccessibilityRenderObject::renderBoxModelObject):
(WebCore::AccessibilityRenderObject::firstChild):
(WebCore::AccessibilityRenderObject::lastChild):
(WebCore::startOfContinuations):
(WebCore::childBeforeConsideringContinuations):
(WebCore::AccessibilityRenderObject::previousSibling):
(WebCore::AccessibilityRenderObject::nextSibling):
(WebCore::nextContinuation):
(WebCore::AccessibilityRenderObject::renderParentObject):
(WebCore::AccessibilityRenderObject::parentObject):
(WebCore::AccessibilityRenderObject::anchorElement):
(WebCore::AccessibilityRenderObject::textUnderElement):
(WebCore::AccessibilityRenderObject::node):
(WebCore::AccessibilityRenderObject::labelElementContainer):
(WebCore::AccessibilityRenderObject::internalLinkElement):
(WebCore::AccessibilityRenderObject::titleUIElement):
(WebCore::AccessibilityRenderObject::setFocused):
(WebCore::AccessibilityRenderObject::topRenderer):
(WebCore::AccessibilityRenderObject::document):
(WebCore::AccessibilityRenderObject::widget):
(WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
(WebCore::AccessibilityRenderObject::documentFrameView):
(WebCore::AccessibilityRenderObject::widgetForAttachmentView):
(WebCore::AccessibilityRenderObject::rootEditableElementForPosition):
(WebCore::AccessibilityRenderObject::visiblePositionForPoint):
(WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
(WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
(WebCore::AccessibilityRenderObject::accessibilityHitTest):
(WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
(WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
(WebCore::AccessibilityRenderObject::observableObject):
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
(WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
(WebCore::AccessibilityRenderObject::addHiddenChildren):
(WebCore::AccessibilityRenderObject::setAccessibleName):
(WebCore::AccessibilityRenderObject::getScrollableAreaIfScrollable):
(WebCore::AccessibilityRenderObject::mathRadicandObject):
(WebCore::AccessibilityRenderObject::mathRootIndexObject):
(WebCore::AccessibilityRenderObject::mathNumeratorObject):
(WebCore::AccessibilityRenderObject::mathDenominatorObject):
(WebCore::AccessibilityRenderObject::mathUnderObject):
(WebCore::AccessibilityRenderObject::mathOverObject):
(WebCore::AccessibilityRenderObject::mathBaseObject):
(WebCore::AccessibilityRenderObject::mathSubscriptObject):
(WebCore::AccessibilityRenderObject::mathSuperscriptObject):
- accessibility/AccessibilitySVGRoot.cpp:
(WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
- accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::detach):
(WebCore::AccessibilityScrollView::scrollBar):
(WebCore::AccessibilityScrollView::updateScrollbars):
(WebCore::AccessibilityScrollView::addChildScrollbar):
(WebCore::AccessibilityScrollView::clearChildren):
(WebCore::AccessibilityScrollView::webAreaObject):
(WebCore::AccessibilityScrollView::accessibilityHitTest):
(WebCore::AccessibilityScrollView::documentFrameView):
(WebCore::AccessibilityScrollView::parentObject):
(WebCore::AccessibilityScrollView::parentObjectIfExists):
- accessibility/AccessibilityScrollbar.cpp:
(WebCore::AccessibilityScrollbar::document):
- accessibility/AccessibilitySpinButton.cpp:
(WebCore::AccessibilitySpinButton::AccessibilitySpinButton):
- accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::AccessibilityTable):
(WebCore::AccessibilityTable::clearChildren):
(WebCore::AccessibilityTable::cellForColumnAndRow):
- accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::parentTable):
(WebCore::AccessibilityTableCell::titleUIElement):
- accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::headerObject):
(WebCore::AccessibilityTableColumn::headerObjectForSection):
- accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::parentTable):
(WebCore::AccessibilityTableRow::headerObject):
- accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::detachWrapper):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper detach]):
(-[WebAccessibilityObjectWrapper tableCellParent]):
(-[WebAccessibilityObjectWrapper tableParent]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
(rendererForView):
(-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
- accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::detachWrapper):
- accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::detachFromParent):
(WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase detach]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(CreateCGColorIfDifferent):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(rendererForView):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
- accessibility/win/AccessibilityObjectWrapperWin.h:
(WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):
- 5:12 AM Changeset in webkit [171476] by
-
- 3 edits2 adds in trunk
ASSERTION FAILED: generatingElement() in WebCore::RenderNamedFlowFragment::regionOversetState
https://bugs.webkit.org/show_bug.cgi?id=135153
Reviewed by David Hyatt.
Source/WebCore:
Even though the CSSRegions spec defines the behaviour of a multicolumn region,
we currently do not support this functionality. This patch ensures that a multicolumn
element does not become a region. In the future, when we will implement the multicolumn
as region functionality, http://dev.w3.org/csswg/css-regions/#multi-column-regions, we
will remove this restriction.
Test: fast/regions/multicol-as-region-prevented.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
LayoutTests:
- fast/regions/multicol-as-region-prevented-expected.html: Added.
- fast/regions/multicol-as-region-prevented.html: Added.
- 4:30 AM Changeset in webkit [171475] by
-
- 2 edits in trunk/Source/WebCore
[CMake] Avoid building WebCore with ANGLE's OpenGL/EGL headers
https://bugs.webkit.org/show_bug.cgi?id=135167
Reviewed by Martin Robinson.
- CMakeLists.txt: Don't add ANGLE/include to the WebCore_INCLUDE_DIRECTORIES list
as this results in ANGLE's OpenGL and EGL headers being included, instead of the
headers that are provided by the system. Only the ANGLESupport library should be built
with that specific header inclusion path.
- 3:31 AM Changeset in webkit [171474] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r171367.
https://bugs.webkit.org/show_bug.cgi?id=135192
broke three API tests (Requested by thorton on #webkit).
Reverted changeset:
"JSLock release should only modify the AtomicStringTable if it
modified in acquire"
https://bugs.webkit.org/show_bug.cgi?id=135143
http://trac.webkit.org/changeset/171367
- 3:27 AM Changeset in webkit [171473] by
-
- 5 edits in branches/safari-600.1-branch/Source
Versioning.
- 3:25 AM Changeset in webkit [171472] by
-
- 1 copy in tags/Safari-600.1.2
New Tag.
- 3:24 AM Changeset in webkit [171471] by
-
- 7 edits in trunk/Source/WebKit2
REGRESSION (r171239): Much more time spent taking snapshots during the PLT
https://bugs.webkit.org/show_bug.cgi?id=135177
<rdar://problem/17764847>
Reviewed by Dan Bernstein.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willChangeCurrentHistoryItemForMainFrame):
(WebKit::WebPageProxy::willChangeCurrentHistoryItem): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willChangeCurrentHistoryItemForMainFrame):
(WebKit::WebPage::willChangeCurrentHistoryItem): Deleted.
- WebProcess/WebPage/WebPage.h:
Rename WillChangeCurrentHistoryItem to WillChangeCurrentHistoryItemForMainFrame.
Only send it when the current history item for the main frame changes.
- 2:59 AM Changeset in webkit [171470] by
-
- 2 edits in trunk/Tools
[EFL] Fix build after r171454
https://bugs.webkit.org/show_bug.cgi?id=135191
Reviewed by Csaba Osztrogonác.
- MiniBrowser/efl/CMakeLists.txt: Add path to new EWebKit2.h location .
- 1:47 AM Changeset in webkit [171469] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171384. <rdar://problem/17739108>
- 1:44 AM Changeset in webkit [171468] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit/win
Merged r171403. <rdar://problem/16721055>
- 1:42 AM Changeset in webkit [171467] by
-
- 24 edits in branches/safari-600.1-branch/Source
Merged r171370. <rdar://problem/16721055>
- 1:36 AM Changeset in webkit [171466] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171368. <rdar://problem/17740149>
- 1:32 AM Changeset in webkit [171465] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171367. <rdar://problem/17041912>
- 1:29 AM Changeset in webkit [171464] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171363. <rdar://problem/17755931>
- 1:26 AM Changeset in webkit [171463] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171373. <rdar://problem/17654369>
- 1:23 AM Changeset in webkit [171462] by
-
- 9 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171356. <rdar://problem/17654369>
- 1:20 AM Changeset in webkit [171461] by
-
- 7 edits1 copy in branches/safari-600.1-branch
Merged r171355. <rdar://problem/17735912>
- 1:10 AM Changeset in webkit [171460] by
-
- 2 edits1 copy in branches/safari-600.1-branch/Source/JavaScriptCore
Merged r171354. <rdar://problem/17763909>
- 1:07 AM Changeset in webkit [171459] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171353. <rdar://problem/17770227>
- 1:03 AM Changeset in webkit [171458] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171352. <rdar://problem/17754921>
- 12:58 AM Changeset in webkit [171457] by
-
- 3 edits2 copies in branches/safari-600.1-branch
Merged r171347. <rdar://problem/16826229>
- 12:54 AM Changeset in webkit [171456] by
-
- 11 edits in branches/safari-600.1-branch/Source
Merged r171345. <rdar://problem/17001716>
- 12:52 AM Changeset in webkit [171455] by
-
- 9 edits2 adds in trunk
REGRESSION (r169105): Crash in selection
https://bugs.webkit.org/show_bug.cgi?id=134303
Reviewed by David Hyatt.
Source/WebCore:
When splitting the selection between different subtrees, all subtrees must have their selection cleared before
starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
we get inconsistent data.
To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
method first iterates through all subtrees and performs the "clear" method and then starts all over again
and performs the "apply" method.
Also, the selectionStart/End members in RenderView have been renamed to fix problems caused by the fact that
RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.
Test: fast/regions/selection/crash-deselect.html
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelectionRoot):
- rendering/RenderSelectionInfo.h:
- rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::setSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
(WebCore::RenderView::splitSelectionBetweenSubtrees):
(WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
(WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
(WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
(WebCore::RenderView::getSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
(WebCore::RenderView::setSubtreeSelection): Deleted.
- rendering/RenderView.h:
- rendering/SelectionSubtreeRoot.cpp:
(WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
- rendering/SelectionSubtreeRoot.h:
(WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):
LayoutTests:
Added test for the crash that occurred in some cases when selecting.
- fast/regions/selection/crash-deselect-expected.txt: Added.
- fast/regions/selection/crash-deselect.html: Added.
- 12:21 AM Changeset in webkit [171454] by
-
- 2 edits1 move in trunk/Source/WebKit2
[EFL] EWebKit2.h should contain version information
https://bugs.webkit.org/show_bug.cgi?id=135189
Reviewed by Gyuyoung Kim.
Generate EWebKit2.h to contain the version information.
- PlatformEfl.cmake:
- UIProcess/API/efl/EWebKit2.h.in: Renamed from Source/WebKit2/UIProcess/API/efl/EWebKit2.h.
- 12:19 AM Changeset in webkit [171453] by
-
- 8 edits in trunk
[EFL] Do not generate forwarding header for ewk headers
https://bugs.webkit.org/show_bug.cgi?id=135147
Reviewed by Gyuyoung Kim.
Source/WebKit2:
Only EWebKit2.h and ewk_text_checker.h are generated as forwarding header.
This is unnecessary.
- UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
- UIProcess/API/efl/tests/test_ewk2_context_menu.cpp:
- UIProcess/API/efl/tests/test_ewk2_window_features.cpp:
- UIProcess/efl/TextCheckerClientEfl.h:
Tools:
- WebKitTestRunner/EventSenderProxy.h:
- 12:16 AM Changeset in webkit [171452] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit/mac
Merge r171338
- 12:14 AM Changeset in webkit [171451] by
-
- 13 edits in branches/safari-600.1-branch/Source
Merge r171336
- 12:12 AM Changeset in webkit [171450] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171332
- 12:10 AM Changeset in webkit [171449] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171329
- 12:08 AM Changeset in webkit [171448] by
-
- 4 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171326
- 12:08 AM Changeset in webkit [171447] by
-
- 3 edits in trunk/Source/JavaScriptCore
[EFL] Build fix after the [ftlopt] branch merge.
Reviewed by Csaba Osztrogonác.
- dfg/DFGBranchDirection.h:
(JSC::DFG::branchDirectionToString):
- dfg/DFGStructureClobberState.h:
(JSC::DFG::merge):
- 12:06 AM Changeset in webkit [171446] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171322
- 12:03 AM Changeset in webkit [171445] by
-
- 8 edits in branches/safari-600.1-branch/Source
Merge r171321
Jul 22, 2014:
- 11:59 PM Changeset in webkit [171444] by
-
- 11 edits in branches/safari-600.1-branch/Source
Merge r171320
- 11:56 PM Changeset in webkit [171443] by
-
- 6 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171317
- 11:54 PM Changeset in webkit [171442] by
-
- 5 edits2 copies in branches/safari-600.1-branch
Merge r171316
- 11:51 PM Changeset in webkit [171441] by
-
- 6 edits in branches/safari-600.1-branch/Source
Merge r171314
- 11:49 PM Changeset in webkit [171440] by
-
- 7 edits1 copy in branches/safari-600.1-branch/Source/WebInspectorUI
Merge r171312
- 11:46 PM Changeset in webkit [171439] by
-
- 7 edits in branches/safari-600.1-branch/Source
Merge r171308
- 11:43 PM Changeset in webkit [171438] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171306
- 11:39 PM Changeset in webkit [171437] by
-
- 2 edits in branches/safari-600.1-branch/WebKitLibraries
Merge r171305
- 11:37 PM Changeset in webkit [171436] by
-
- 5 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171303
- 11:35 PM Changeset in webkit [171435] by
-
- 4 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171299
- 11:33 PM Changeset in webkit [171434] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171289
- 11:31 PM Changeset in webkit [171433] by
-
- 17 edits in branches/safari-600.1-branch/Source
Merge r171288
- 11:29 PM Changeset in webkit [171432] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171287
- 11:27 PM Changeset in webkit [171431] by
-
- 10 edits in branches/safari-600.1-branch/Source
Merge r171286
- 11:24 PM Changeset in webkit [171430] by
-
- 4 edits1 copy in branches/safari-600.1-branch
Merge r171284
- 11:24 PM Changeset in webkit [171429] by
-
- 2 edits in trunk/LayoutTests
This test is slow so we shouldn't run it in the slower variants (like ftl-eager/dfg-eager).
- js/regress/script-tests/getter-richards.js:
- 11:22 PM Changeset in webkit [171428] by
-
- 4 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171283
- 11:20 PM Changeset in webkit [171427] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171280
- 11:18 PM Changeset in webkit [171426] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171257
- 11:16 PM Changeset in webkit [171425] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171256
- 11:14 PM Changeset in webkit [171424] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171253
- 11:12 PM Changeset in webkit [171423] by
-
- 25 edits in branches/safari-600.1-branch/Source
Merge r171252
- 11:09 PM Changeset in webkit [171422] by
-
- 5 edits3 copies in branches/safari-600.1-branch
Merge r171250
- 11:05 PM Changeset in webkit [171421] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebCore
Merged r171246
- 11:02 PM Changeset in webkit [171420] by
-
- 7 edits in trunk/Source/WebKit2
Unreviewed, rolling out r171366.
https://bugs.webkit.org/show_bug.cgi?id=135190
Broke three API tests (Requested by ap on #webkit).
Reverted changeset:
"REGRESSION (r171239): Much more time spent taking snapshots
during the PLT"
https://bugs.webkit.org/show_bug.cgi?id=135177
http://trac.webkit.org/changeset/171366
- 11:02 PM Changeset in webkit [171419] by
-
- 15 edits in branches/safari-600.1-branch/Source
Merge r171239
- 10:59 PM Changeset in webkit [171418] by
-
- 4 edits in branches/safari-600.1-branch
Merge r171228
- 10:56 PM Changeset in webkit [171417] by
-
- 3 edits in branches/safari-600.1-branch/Source/WebInspectorUI
Merge r171227
- 10:53 PM Changeset in webkit [171416] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171225
- 10:52 PM Changeset in webkit [171415] by
-
- 6 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171219
- 10:50 PM Changeset in webkit [171414] by
-
- 2 edits in branches/safari-600.1-branch/Tools
Merge r171217
- 10:48 PM Changeset in webkit [171413] by
-
- 3 edits in branches/safari-600.1-branch/Tools
Merge r171216
- 10:46 PM Changeset in webkit [171412] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171215
- 10:44 PM Changeset in webkit [171411] by
-
- 18 edits3 copies in branches/safari-600.1-branch
Merge r171213
- 10:41 PM Changeset in webkit [171410] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171211
- 10:39 PM Changeset in webkit [171409] by
-
- 6 edits in branches/safari-600.1-branch
Merge r171167
- 10:33 PM Changeset in webkit [171408] by
-
- 4 edits2 copies in branches/safari-600.1-branch
Merge r171210
- 10:31 PM Changeset in webkit [171407] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171197
- 10:28 PM Changeset in webkit [171406] by
-
- 2 edits in branches/safari-600.1-branch/Source/JavaScriptCore
Merge r171204
- 10:27 PM Changeset in webkit [171405] by
-
- 27 edits1 copy1 delete in branches/safari-600.1-branch
Merge r171195
- 10:18 PM Changeset in webkit [171404] by
-
- 2 edits in trunk/Source/WebCore
[Win] Build fix for bot.
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::createLegibleOutputSubtypes): Declare 'wvtt' locally, rather
than relying on potentially unavailable declaration.
- 10:16 PM Changeset in webkit [171403] by
-
- 2 edits in trunk/Source/WebKit/win
[Win] Build fix after r171370.
- WebCoreSupport/WebEditorClient.h: Add override
for new 'overflowScrollPositionChanged'.
- 10:15 PM Changeset in webkit [171402] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171194
- 10:13 PM Changeset in webkit [171401] by
-
- 9 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171191
- 10:11 PM Changeset in webkit [171400] by
-
- 3 edits2 copies in branches/safari-600.1-branch/Source/JavaScriptCore
Merge r171190
- 10:09 PM Changeset in webkit [171399] by
-
- 3 edits in branches/safari-600.1-branch/Tools
Merge r171199
- 10:07 PM Changeset in webkit [171398] by
-
- 6 edits1 copy in branches/safari-600.1-branch/Source/WebCore
Merge r171188
- 10:05 PM Changeset in webkit [171397] by
-
- 7 edits in branches/safari-600.1-branch
Merge r171184
- 9:58 PM Changeset in webkit [171396] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merge r171365
- 9:58 PM Changeset in webkit [171395] by
-
- 2 edits in trunk/Source/JavaScriptCore
Build fix for non-clang compile.
- jsc.cpp:
(WTF::RuntimeArray::put): Remove incorrect return statement
I added.
- 9:54 PM Changeset in webkit [171394] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebCore
Merge r171376
- 9:53 PM Changeset in webkit [171393] by
-
- 2 edits in trunk/Source/JavaScriptCore
Build fix for non-clang compile.
- jsc.cpp:
(WTF::RuntimeArray::deleteProperty): Need (fake) return
value when NO_RETURN_DUE_TO_CRASH is not defined.
- 9:40 PM Changeset in webkit [171392] by
-
- 2 edits in trunk/Source/WebCore
[Win] Build fix for Windows bots
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Provide missing
structure definition when needed by bot.
- 9:33 PM Changeset in webkit [171391] by
-
- 29 edits4 adds1 delete in trunk/Source/JavaScriptCore
Merge r169628 from ftlopt.
2014-06-04 Matthew Mirman <mmirman@apple.com>
Added system for inlining native functions via the FTL.
https://bugs.webkit.org/show_bug.cgi?id=131515
Reviewed by Filip Pizlo.
Also fixed the build to not compress the bitcode and to
include all of the relevant runtime. With GCC_GENERATE_DEBUGGING_SYMBOLS = NO,
the produced bitcode files are a 100th the size they were before.
Now we can include all of the relevant runtime files with only a 3mb overhead.
This is the same overhead as for two compressed files before,
but done more efficiently (on both ends) and with less code.
Deciding whether to inline native functions is left up to LLVM.
The entire module containing the function is linked into the current
compiled JS so that inlining the native functions shouldn't make them smaller.
Rather than loading Runtime.symtbl at runtime FTLState.cpp now generates a file
InlineRuntimeSymbolTable.h which statically builds the symbol table hash table.
- JavaScriptCore.xcodeproj/project.pbxproj: Added back runtime files to compile.
- build-symbol-table-index.py: Changed bitcode suffix. Added inclusion of only tested symbols. Added output to InlineRuntimeSymbolTable.h.
- build-symbol-table-index.sh: Changed bitcode suffix.
- copy-llvm-ir-to-derived-sources.sh: Removed gzip compression.
- tested-symbols.symlst: Added.
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleCall): Now sets the knownFunction of the call node if such a function exists and emits a check that during runtime the callee is in fact known.
- dfg/DFGNode.h: Added functions to set the known function of a call node. (JSC::DFG::Node::canBeKnownFunction): Added. (JSC::DFG::Node::hasKnownFunction): Added. (JSC::DFG::Node::knownFunction): Added. (JSC::DFG::Node::giveKnownFunction): Added.
- ftl/FTLAbbreviatedTypes.h: Added a typedef for LLVMMemoryBufferRef
- ftl/FTLAbbreviations.h: Added some abbreviations.
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::isInlinableSize): Added. Hardcoded threshold to 275. (JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol): Added. (JSC::FTL::LowerDFGToLLVM::getFunctionBySymbol): Added. (JSC::FTL::LowerDFGToLLVM::possiblyCompileInlineableNativeCall): Added. (JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct): Added call to possiblyCompileInlineableNativeCall
- ftl/FTLOutput.h: (JSC::FTL::Output::allocaName): Added. Useful for debugging.
- ftl/FTLState.cpp: (JSC::FTL::State::State): Added an include for InlineRuntimeSymbolTable.h
- ftl/FTLState.h: Added symbol table hash table.
- ftl/FTLCompile.cpp: (JSC::FTL::compile): Added inlining and dead function elimination passes.
- heap/HandleStack.h: Added JS_EXPORT_PRIVATE to a few functions to get inlining to compile.
- llvm/InitializeLLVMMac.mm: Deleted.
- llvm/InitializeLLVMMac.cpp: Added.
- llvm/LLVMAPIFunctions.h: Added macros to include Bitcode parsing and linking functions.
- llvm/LLVMHeaders.h: Added includes for Bitcode parsing and linking.
- runtime/BundlePath.h: Added.
- runtime/BundlePath.mm: Added.
- runtime/DateInstance.h: Added JS_EXPORT_PRIVATE to a few functions to get inlining to compile.
- runtime/DateInstance.h: ditto.
- runtime/DateConversion.h: ditto.
- runtime/ExceptionHelpers.h: ditto.
- runtime/JSCJSValue.h: ditto.
- runtime/JSArray.h: ditto.
- runtime/JSDateMath.h: ditto.
- runtime/JSObject.h: ditto.
- runtime/JSObject.h: ditto.
- runtime/RegExp.h: ditto.
- runtime/Structure.h: ditto.
- runtime/Options.h: Added maximumLLVMInstructionCountForNativeInlining.
- 9:18 PM Changeset in webkit [171390] by
-
- 3 edits2 adds in trunk/Source/JavaScriptCore
Array.concat() should work on runtime arrays too.
<https://webkit.org/b/135179>
Reviewed by Geoffrey Garen.
- jsc.cpp:
(WTF::RuntimeArray::create):
(WTF::RuntimeArray::~RuntimeArray):
(WTF::RuntimeArray::destroy):
(WTF::RuntimeArray::getOwnPropertySlot):
(WTF::RuntimeArray::getOwnPropertySlotByIndex):
(WTF::RuntimeArray::put):
(WTF::RuntimeArray::deleteProperty):
(WTF::RuntimeArray::getLength):
(WTF::RuntimeArray::createPrototype):
(WTF::RuntimeArray::createStructure):
(WTF::RuntimeArray::finishCreation):
(WTF::RuntimeArray::RuntimeArray):
(WTF::RuntimeArray::lengthGetter):
(GlobalObject::finishCreation):
(functionCreateRuntimeArray):
- Added support to create a runtime array for testing purpose.
- runtime/ArrayPrototype.cpp:
(JSC::getLength):
- Added fast case for when the array object is a JSArray.
(JSC::arrayProtoFuncJoin):
- Added a needed but missing exception check.
(JSC::arrayProtoFuncConcat):
- Use getLength() to compute the array length instead of assuming that the array is a JSArray instance.
- tests/stress/regexp-matches-array.js: Added.
(testArrayConcat):
- tests/stress/runtime-array.js: Added.
(testArrayConcat):
- 9:04 PM Changeset in webkit [171389] by
-
- 23 edits in branches/ftlopt/Source/JavaScriptCore
[ftlopt] Get rid of structure checks as a way of checking if a function is in fact a function
https://bugs.webkit.org/show_bug.cgi?id=135146
Reviewed by Oliver Hunt.
This greatly simplifies our closure call optimizations by taking advantage of the type
bits available in the cell header.
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::visitWeak):
- bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::CallLinkStatus):
(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::dump):
- bytecode/CallLinkStatus.h:
(JSC::CallLinkStatus::CallLinkStatus):
(JSC::CallLinkStatus::executable):
(JSC::CallLinkStatus::structure): Deleted.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::emitFunctionChecks):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::observeUseKindOnNode):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::speculateCellTypeWithoutTypeFiltering):
(JSC::DFG::SpeculativeJIT::speculateCellType):
(JSC::DFG::SpeculativeJIT::speculateFunction):
(JSC::DFG::SpeculativeJIT::speculateFinalObject):
(JSC::DFG::SpeculativeJIT::speculate):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGUseKind.cpp:
(WTF::printInternal):
- dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::isCell):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileCheckExecutable):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::isFunction):
(JSC::FTL::LowerDFGToLLVM::isNotFunction):
(JSC::FTL::LowerDFGToLLVM::speculateFunction):
- jit/ClosureCallStubRoutine.cpp:
(JSC::ClosureCallStubRoutine::ClosureCallStubRoutine):
(JSC::ClosureCallStubRoutine::markRequiredObjectsInternal):
- jit/ClosureCallStubRoutine.h:
(JSC::ClosureCallStubRoutine::structure): Deleted.
- jit/JIT.h:
(JSC::JIT::compileClosureCall): Deleted.
- jit/JITCall.cpp:
(JSC::JIT::privateCompileClosureCall): Deleted.
- jit/JITCall32_64.cpp:
(JSC::JIT::privateCompileClosureCall): Deleted.
- jit/JITOperations.cpp:
- jit/Repatch.cpp:
(JSC::linkClosureCall):
- jit/Repatch.h:
- 8:52 PM Changeset in webkit [171388] by
-
- 2 edits in trunk/Source/WebCore
[Win] Build fix for EWS bots.
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Forward declare
structure definition.
- 8:39 PM Changeset in webkit [171387] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix Windows (return a value!)
- jsc.cpp:
(functionQuit): Satisfy compiler's need for
a return value.
- 8:29 PM Changeset in webkit [171386] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix Windows (sleep -> Sleep)
- jsc.cpp:
(WTF::jscExit):
- 8:19 PM Changeset in webkit [171385] by
-
- 3 edits in trunk/Source/WebCore
[Win] Fix Crash when handling Legible Output callbacks
https://bugs.webkit.org/show_bug.cgi?id=134946
Reviewed by Dean Jackson.
Relanding after adding fixes to support build bots.
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Remove
Windows-specific 'ASSERT_NOT_REACHED' code path.
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::createLegibleOutputSubtypes): Added.
(WebCore::AVFWrapper::createPlayerItem): Updated to request native
samples from AVFoundationCF.
- 7:37 PM Changeset in webkit [171384] by
-
- 2 edits in trunk/Source/WebKit2
Reduce the size of the root WebContent sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=135182
<rdar://problem/17739108>
Reviewed by Alexey Proskuryakov.
Switch from apple-ui-app to uikit-app as the root of the webcontent
profile.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 7:19 PM Changeset in webkit [171383] by
-
- 4 edits2 adds in trunk
Copying and pasting trivial H2 content causes a crash in firstPositionInNode
https://bugs.webkit.org/show_bug.cgi?id=134897
Reviewed by Ryosuke Niwa.
Source/WebCore:
ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder() attempts
to move pasted headings out of existed headings, with out regard to if the existing
heading is the contenteditable root.
Test: editing/pasteboard/heading-crash.html
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
LayoutTests:
Copy and paste text from one heading to another. Make sure there is no crash.
- editing/pasteboard/heading-crash-expected.txt: Added.
- editing/pasteboard/heading-crash.html: Added.
- 7:19 PM Changeset in webkit [171382] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix Windows.
- jsc.cpp:
(WTF::jscExit):
- 6:43 PM Changeset in webkit [171381] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix 32-bit.
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- 6:19 PM Changeset in webkit [171380] by
-
- 57 edits42 adds in trunk
Merge r169148, r169185, r169188, r169578, r169582, r169584, r169588, r169753 from ftlopt.
Source/JavaScriptCore:
Note that r169753 is merged out of order because it fixes a bug in r169588.
2014-06-10 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Structure::dfgShouldWatchIfPossible() is unsound
https://bugs.webkit.org/show_bug.cgi?id=133624
Reviewed by Mark Hahnenberg.
- runtime/Structure.h: (JSC::Structure::dfgShouldWatchIfPossible): Make it sound and add some verbiage.
2014-06-04 Filip Pizlo <fpizlo@apple.com>
[ftlopt] AI should be able track structure sets larger than 1
https://bugs.webkit.org/show_bug.cgi?id=128073
Reviewed by Oliver Hunt.
This makes two major changes to how AI (abstract interpreter) proves that a value has
some structure:
- StructureAbstractValue can now track an arbitrary number of structures. A set whose size is greater than one means that the value may have any of the structures, and we don't know which - but we do know that it cannot be any structure not in the set. The structure abstract value can still be TOP, which means the set of all structures. We artificially limit the set size to StructureAbstractValue::polymorphismLimit to guard memory explosion on pathological programs. This limit is big enough that it wouldn't kick in for normal code, since we have other heuristics that limit the number of structures that we would allow an inline cache to know about.
- We eagerly set watchpoints on all watchable structures and then we assume that watchable structures are being watched, and that the watchpoint will jettison the code. This allows tracking of watchable structures to be far simpler than before. Previously, a structure being tracked as "future possible" was predicated on it being watchable but we might not actually watch it. This makes algebra over sets of future possible structures quite weird. But watching all watchable structures means that we simple say that a structure set can be in the following states: unclobbered, which means it's just a set of structures and it doesn't matter what is watchable or what isn't because we've proven that the value must have one of these structures right now; and clobbered, which means that we have a set of structures, plus all possible structures temporarily, with invalidation removing the "plus all possible structures". Clobbering a set means that if any of its structures are unwatchable, the set just becomes TOP; but if all structures in the set are watchable then we just set the clobbered bit to add the "plus all possible structures temporarily" thing. This precisely tracks the exact meaning of watchability and invalidation points.
Slight SunSpider slow-down, neutral on Octane, slight AsmBench speed-up. I believe that
we will ultimately undo the SunSpider slow-down by making further improvements to the set
representation. I believe that Octane perfromance will ultimately improve once we remove
remaining singleton special-cases. The ultimate goal of this is to remove the need to
try quite so desperately hard to make everything monomorphic as we do currently.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/StructureSet.cpp: (JSC::StructureSet::clear): (JSC::StructureSet::remove): (JSC::StructureSet::filter): (JSC::StructureSet::copyFromOutOfLine): (JSC::StructureSet::StructureSet): Deleted. (JSC::StructureSet::operator=): Deleted. (JSC::StructureSet::copyFrom): Deleted.
- bytecode/StructureSet.h: (JSC::StructureSet::StructureSet): (JSC::StructureSet::operator=): (JSC::StructureSet::isEmpty): (JSC::StructureSet::genericFilter): (JSC::StructureSet::ContainsOutOfLine::ContainsOutOfLine): (JSC::StructureSet::ContainsOutOfLine::operator()): (JSC::StructureSet::copyFrom): (JSC::StructureSet::deleteStructureListIfNecessary): (JSC::StructureSet::setEmpty): (JSC::StructureSet::getReservedFlag): (JSC::StructureSet::setReservedFlag):
- dfg/DFGAbstractInterpreter.h: (JSC::DFG::AbstractInterpreter::setBuiltInConstant):
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::booleanResult): (JSC::DFG::AbstractInterpreter<AbstractStateType>::verifyEdge): (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): (JSC::DFG::AbstractInterpreter<AbstractStateType>::clobberCapturedVars): (JSC::DFG::AbstractInterpreter<AbstractStateType>::forAllValues): (JSC::DFG::AbstractInterpreter<AbstractStateType>::clobberStructures): (JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransition): (JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransitions): (JSC::DFG::AbstractInterpreter<AbstractStateType>::setDidClobber): (JSC::DFG::AbstractInterpreter<AbstractStateType>::dump):
- dfg/DFGAbstractValue.cpp: (JSC::DFG::AbstractValue::observeTransitions): (JSC::DFG::AbstractValue::setMostSpecific): (JSC::DFG::AbstractValue::set): (JSC::DFG::AbstractValue::filter): (JSC::DFG::AbstractValue::shouldBeClear): (JSC::DFG::AbstractValue::normalizeClarity): (JSC::DFG::AbstractValue::checkConsistency): (JSC::DFG::AbstractValue::assertIsWatched): (JSC::DFG::AbstractValue::dumpInContext): (JSC::DFG::AbstractValue::setFuturePossibleStructure): Deleted.
- dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::clear): (JSC::DFG::AbstractValue::clobberStructures): (JSC::DFG::AbstractValue::clobberStructuresFor): (JSC::DFG::AbstractValue::observeInvalidationPoint): (JSC::DFG::AbstractValue::observeInvalidationPointFor): (JSC::DFG::AbstractValue::observeTransition): (JSC::DFG::AbstractValue::TransitionObserver::TransitionObserver): (JSC::DFG::AbstractValue::TransitionObserver::operator()): (JSC::DFG::AbstractValue::TransitionsObserver::TransitionsObserver): (JSC::DFG::AbstractValue::TransitionsObserver::operator()): (JSC::DFG::AbstractValue::isHeapTop): (JSC::DFG::AbstractValue::setType): (JSC::DFG::AbstractValue::operator==): (JSC::DFG::AbstractValue::merge): (JSC::DFG::AbstractValue::validate): (JSC::DFG::AbstractValue::hasClobberableState): (JSC::DFG::AbstractValue::assertIsWatched): (JSC::DFG::AbstractValue::observeIndexingTypeTransition): (JSC::DFG::AbstractValue::makeTop): (JSC::DFG::AbstractValue::bestProvenStructure): Deleted.
- dfg/DFGAllocator.h:
- dfg/DFGArgumentsSimplificationPhase.cpp: (JSC::DFG::ArgumentsSimplificationPhase::run):
- dfg/DFGArrayMode.cpp: (JSC::DFG::ArrayMode::alreadyChecked):
- dfg/DFGAtTailAbstractState.h: (JSC::DFG::AtTailAbstractState::structureClobberState): (JSC::DFG::AtTailAbstractState::setStructureClobberState): (JSC::DFG::AtTailAbstractState::setFoundConstants): (JSC::DFG::AtTailAbstractState::haveStructures): Deleted. (JSC::DFG::AtTailAbstractState::setHaveStructures): Deleted.
- dfg/DFGBasicBlock.cpp: (JSC::DFG::BasicBlock::BasicBlock):
- dfg/DFGBasicBlock.h:
- dfg/DFGBranchDirection.h: (JSC::DFG::branchDirectionToString): (WTF::printInternal):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handlePutById):
- dfg/DFGCFAPhase.cpp: (JSC::DFG::CFAPhase::performBlockCFA):
- dfg/DFGCSEPhase.cpp: (JSC::DFG::CSEPhase::checkStructureElimination): (JSC::DFG::CSEPhase::structureTransitionWatchpointElimination): (JSC::DFG::CSEPhase::performNodeCSE):
- dfg/DFGClobberize.h: (JSC::DFG::clobberize):
- dfg/DFGCommon.cpp: (JSC::DFG::startCrashing): (JSC::DFG::isCrashing):
- dfg/DFGCommon.h:
- dfg/DFGCommonData.cpp: (JSC::DFG::CommonData::notifyCompilingStructureTransition):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): (JSC::DFG::ConstantFoldingPhase::emitGetByOffset): (JSC::DFG::ConstantFoldingPhase::emitPutByOffset): (JSC::DFG::ConstantFoldingPhase::addStructureTransitionCheck):
- dfg/DFGDesiredWatchpoints.cpp: (JSC::DFG::DesiredWatchpoints::consider): (JSC::DFG::DesiredWatchpoints::addLazily): Deleted.
- dfg/DFGDesiredWatchpoints.h: (JSC::DFG::GenericDesiredWatchpoints::reallyAdd): (JSC::DFG::GenericDesiredWatchpoints::areStillValid): (JSC::DFG::GenericDesiredWatchpoints::isWatched): (JSC::DFG::DesiredWatchpoints::isWatched): (JSC::DFG::WatchpointForGenericWatchpointSet::WatchpointForGenericWatchpointSet): Deleted. (JSC::DFG::GenericDesiredWatchpoints::addLazily): Deleted. (JSC::DFG::GenericDesiredWatchpoints::isStillValid): Deleted. (JSC::DFG::GenericDesiredWatchpoints::shouldAssumeMixedState): Deleted. (JSC::DFG::GenericDesiredWatchpoints::isValidOrMixed): Deleted. (JSC::DFG::DesiredWatchpoints::isStillValid): Deleted. (JSC::DFG::DesiredWatchpoints::shouldAssumeMixedState): Deleted. (JSC::DFG::DesiredWatchpoints::isValidOrMixed): Deleted.
- dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): (JSC::DFG::FixupPhase::canOptimizeStringObjectAccess): (JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
- dfg/DFGGraph.cpp: (JSC::DFG::Graph::~Graph): (JSC::DFG::Graph::dump): (JSC::DFG::Graph::dumpBlockHeader): (JSC::DFG::Graph::tryGetFoldableView): (JSC::DFG::Graph::visitChildren): (JSC::DFG::Graph::assertIsWatched): (JSC::DFG::Graph::handleAssertionFailure):
- dfg/DFGGraph.h: (JSC::DFG::Graph::convertToConstant): (JSC::DFG::Graph::masqueradesAsUndefinedWatchpointIsStillValid): (JSC::DFG::Graph::addStructureTransitionData): Deleted.
- dfg/DFGInPlaceAbstractState.cpp: (JSC::DFG::InPlaceAbstractState::beginBasicBlock): (JSC::DFG::InPlaceAbstractState::initialize): (JSC::DFG::InPlaceAbstractState::endBasicBlock): (JSC::DFG::InPlaceAbstractState::reset): (JSC::DFG::InPlaceAbstractState::merge):
- dfg/DFGInPlaceAbstractState.h: (JSC::DFG::InPlaceAbstractState::structureClobberState): (JSC::DFG::InPlaceAbstractState::setStructureClobberState): (JSC::DFG::InPlaceAbstractState::setFoundConstants): (JSC::DFG::InPlaceAbstractState::haveStructures): Deleted. (JSC::DFG::InPlaceAbstractState::setHaveStructures): Deleted.
- dfg/DFGLivenessAnalysisPhase.cpp: (JSC::DFG::LivenessAnalysisPhase::run):
- dfg/DFGNode.h: (JSC::DFG::Node::hasTransition): (JSC::DFG::Node::transition): (JSC::DFG::Node::hasStructure): (JSC::DFG::StructureTransitionData::StructureTransitionData): Deleted. (JSC::DFG::Node::convertToStructureTransitionWatchpoint): Deleted. (JSC::DFG::Node::hasStructureTransitionData): Deleted. (JSC::DFG::Node::structureTransitionData): Deleted.
- dfg/DFGNodeType.h:
- dfg/DFGPlan.cpp: (JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage): (JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
- dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::speculateStringObjectForStructure):
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStructureAbstractValue.cpp: Added. (JSC::DFG::StructureAbstractValue::assertIsWatched): (JSC::DFG::StructureAbstractValue::clobber): (JSC::DFG::StructureAbstractValue::observeTransition): (JSC::DFG::StructureAbstractValue::observeTransitions): (JSC::DFG::StructureAbstractValue::add): (JSC::DFG::StructureAbstractValue::merge): (JSC::DFG::StructureAbstractValue::mergeSlow): (JSC::DFG::StructureAbstractValue::mergeNotTop): (JSC::DFG::StructureAbstractValue::filter): (JSC::DFG::StructureAbstractValue::filterSlow): (JSC::DFG::StructureAbstractValue::contains): (JSC::DFG::StructureAbstractValue::isSubsetOf): (JSC::DFG::StructureAbstractValue::isSupersetOf): (JSC::DFG::StructureAbstractValue::overlaps): (JSC::DFG::StructureAbstractValue::equalsSlow): (JSC::DFG::StructureAbstractValue::dumpInContext): (JSC::DFG::StructureAbstractValue::dump):
- dfg/DFGStructureAbstractValue.h: (JSC::DFG::StructureAbstractValue::StructureAbstractValue): (JSC::DFG::StructureAbstractValue::operator=): (JSC::DFG::StructureAbstractValue::clear): (JSC::DFG::StructureAbstractValue::makeTop): (JSC::DFG::StructureAbstractValue::assertIsWatched): (JSC::DFG::StructureAbstractValue::observeInvalidationPoint): (JSC::DFG::StructureAbstractValue::top): (JSC::DFG::StructureAbstractValue::isClear): (JSC::DFG::StructureAbstractValue::isTop): (JSC::DFG::StructureAbstractValue::isNeitherClearNorTop): (JSC::DFG::StructureAbstractValue::isClobbered): (JSC::DFG::StructureAbstractValue::merge): (JSC::DFG::StructureAbstractValue::filter): (JSC::DFG::StructureAbstractValue::operator==): (JSC::DFG::StructureAbstractValue::size): (JSC::DFG::StructureAbstractValue::at): (JSC::DFG::StructureAbstractValue::operator[]): (JSC::DFG::StructureAbstractValue::onlyStructure): (JSC::DFG::StructureAbstractValue::isSupersetOf): (JSC::DFG::StructureAbstractValue::makeTopWhenThin): (JSC::DFG::StructureAbstractValue::setClobbered): (JSC::DFG::StructureAbstractValue::add): Deleted. (JSC::DFG::StructureAbstractValue::addAll): Deleted. (JSC::DFG::StructureAbstractValue::contains): Deleted. (JSC::DFG::StructureAbstractValue::isSubsetOf): Deleted. (JSC::DFG::StructureAbstractValue::doesNotContainAnyOtherThan): Deleted. (JSC::DFG::StructureAbstractValue::isClearOrTop): Deleted. (JSC::DFG::StructureAbstractValue::last): Deleted. (JSC::DFG::StructureAbstractValue::speculationFromStructures): Deleted. (JSC::DFG::StructureAbstractValue::isValidOffset): Deleted. (JSC::DFG::StructureAbstractValue::hasSingleton): Deleted. (JSC::DFG::StructureAbstractValue::singleton): Deleted. (JSC::DFG::StructureAbstractValue::dumpInContext): Deleted. (JSC::DFG::StructureAbstractValue::dump): Deleted. (JSC::DFG::StructureAbstractValue::topValue): Deleted.
- dfg/DFGStructureClobberState.h: Added. (JSC::DFG::merge): (WTF::printInternal):
- dfg/DFGTransition.cpp: Added. (JSC::DFG::Transition::dumpInContext): (JSC::DFG::Transition::dump):
- dfg/DFGTransition.h: Added. (JSC::DFG::Transition::Transition):
- dfg/DFGTypeCheckHoistingPhase.cpp: (JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks): (JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
- dfg/DFGWatchableStructureWatchingPhase.cpp: Added. (JSC::DFG::WatchableStructureWatchingPhase::WatchableStructureWatchingPhase): (JSC::DFG::WatchableStructureWatchingPhase::run): (JSC::DFG::WatchableStructureWatchingPhase::tryWatch): (JSC::DFG::performWatchableStructureWatching):
- dfg/DFGWatchableStructureWatchingPhase.h: Added.
- dfg/DFGWatchpointCollectionPhase.cpp: (JSC::DFG::WatchpointCollectionPhase::handle): (JSC::DFG::WatchpointCollectionPhase::handleEdge): Deleted.
- ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
- ftl/FTLIntrinsicRepository.h:
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::ftlUnreachable): (JSC::FTL::LowerDFGToLLVM::createPhiVariables): (JSC::FTL::LowerDFGToLLVM::compileBlock): (JSC::FTL::LowerDFGToLLVM::compileNode): (JSC::FTL::LowerDFGToLLVM::compileUpsilon): (JSC::FTL::LowerDFGToLLVM::compilePhi): (JSC::FTL::LowerDFGToLLVM::compileDoubleRep): (JSC::FTL::LowerDFGToLLVM::compileValueRep): (JSC::FTL::LowerDFGToLLVM::compileValueToInt32): (JSC::FTL::LowerDFGToLLVM::compileGetArgument): (JSC::FTL::LowerDFGToLLVM::compileGetLocal): (JSC::FTL::LowerDFGToLLVM::compileSetLocal): (JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub): (JSC::FTL::LowerDFGToLLVM::compileArithMul): (JSC::FTL::LowerDFGToLLVM::compileArithDiv): (JSC::FTL::LowerDFGToLLVM::compileArithMod): (JSC::FTL::LowerDFGToLLVM::compileArithMinOrMax): (JSC::FTL::LowerDFGToLLVM::compileArithAbs): (JSC::FTL::LowerDFGToLLVM::compileArithNegate): (JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure): (JSC::FTL::LowerDFGToLLVM::compilePutStructure): (JSC::FTL::LowerDFGToLLVM::compileGetById): (JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentsLength): (JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentByVal): (JSC::FTL::LowerDFGToLLVM::compileGetArrayLength): (JSC::FTL::LowerDFGToLLVM::compileGetByVal): (JSC::FTL::LowerDFGToLLVM::compilePutByVal): (JSC::FTL::LowerDFGToLLVM::compileArrayPush): (JSC::FTL::LowerDFGToLLVM::compileArrayPop): (JSC::FTL::LowerDFGToLLVM::compileNewArray): (JSC::FTL::LowerDFGToLLVM::compileNewArrayBuffer): (JSC::FTL::LowerDFGToLLVM::compileAllocatePropertyStorage): (JSC::FTL::LowerDFGToLLVM::compileReallocatePropertyStorage): (JSC::FTL::LowerDFGToLLVM::compileToString): (JSC::FTL::LowerDFGToLLVM::compileMakeRope): (JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset): (JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset): (JSC::FTL::LowerDFGToLLVM::compileCompareEq): (JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq): (JSC::FTL::LowerDFGToLLVM::compileSwitch): (JSC::FTL::LowerDFGToLLVM::compare): (JSC::FTL::LowerDFGToLLVM::boolify): (JSC::FTL::LowerDFGToLLVM::terminate): (JSC::FTL::LowerDFGToLLVM::lowInt32): (JSC::FTL::LowerDFGToLLVM::lowInt52): (JSC::FTL::LowerDFGToLLVM::opposite): (JSC::FTL::LowerDFGToLLVM::lowCell): (JSC::FTL::LowerDFGToLLVM::lowBoolean): (JSC::FTL::LowerDFGToLLVM::lowDouble): (JSC::FTL::LowerDFGToLLVM::lowJSValue): (JSC::FTL::LowerDFGToLLVM::speculate): (JSC::FTL::LowerDFGToLLVM::isArrayType): (JSC::FTL::LowerDFGToLLVM::speculateStringObjectForStructureID): (JSC::FTL::LowerDFGToLLVM::callCheck): (JSC::FTL::LowerDFGToLLVM::buildExitArguments): (JSC::FTL::LowerDFGToLLVM::addExitArgumentForNode): (JSC::FTL::LowerDFGToLLVM::setInt52): (JSC::FTL::LowerDFGToLLVM::crash): (JSC::FTL::LowerDFGToLLVM::compileStructureTransitionWatchpoint): Deleted.
- ftl/FTLOutput.cpp: (JSC::FTL::Output::crashNonTerminal): Deleted.
- ftl/FTLOutput.h: (JSC::FTL::Output::crash): Deleted.
- jit/JITOperations.h:
- jsc.cpp: (WTF::jscExit): (functionQuit): (main): (printUsageStatement): (CommandLine::parseArguments):
- runtime/Structure.h: (JSC::Structure::dfgShouldWatchIfPossible): (JSC::Structure::dfgShouldWatch):
- tests/stress/arrayify-to-structure-contradiction.js: Added. (foo):
- tests/stress/ftl-getmyargumentslength-inline.js: Added. (foo):
- tests/stress/multi-put-by-offset-multiple-transitions.js: Added. (foo): (Foo):
- tests/stress/throw-from-ftl-in-loop.js: Added.
- tests/stress/throw-from-ftl.js: Added. (foo):
2014-06-03 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Unreviewed, roll out r169578. The build system needs some more love.
- InlineRuntimeSymbolTable.h: Removed.
- JavaScriptCore.xcodeproj/project.pbxproj:
- build-symbol-table-index.py:
- build-symbol-table-index.sh:
- copy-llvm-ir-to-derived-sources.sh:
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleCall):
- dfg/DFGNode.h: (JSC::DFG::Node::canBeKnownFunction): Deleted. (JSC::DFG::Node::hasKnownFunction): Deleted. (JSC::DFG::Node::knownFunction): Deleted. (JSC::DFG::Node::giveKnownFunction): Deleted.
- ftl/FTLAbbreviatedTypes.h:
- ftl/FTLCompile.cpp: (JSC::FTL::compile):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::LowerDFGToLLVM): (JSC::FTL::LowerDFGToLLVM::lower): (JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct): (JSC::FTL::LowerDFGToLLVM::possiblyCompileInlineableNativeCall): Deleted. (JSC::FTL::LowerDFGToLLVM::getFunctionBySymbol): Deleted. (JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol): Deleted. (JSC::FTL::LowerDFGToLLVM::isInlinableSize): Deleted.
- ftl/FTLState.cpp: (JSC::FTL::State::State):
- ftl/FTLState.h:
- heap/HandleStack.h:
- llvm/InitializeLLVM.h:
- llvm/InitializeLLVMMac.cpp: Removed.
- llvm/InitializeLLVMMac.mm: Added. (JSC::initializeLLVMImpl):
- llvm/LLVMAPIFunctions.h:
- llvm/LLVMHeaders.h:
- runtime/BundlePath.h: Removed.
- runtime/BundlePath.mm: Removed.
- runtime/DateConversion.h:
- runtime/DateInstance.h:
- runtime/ExceptionHelpers.h:
- runtime/JSArray.h:
- runtime/JSCJSValue.h: (JSC::JSValue::toFloat):
- runtime/JSDateMath.h:
- runtime/JSObject.h:
- runtime/JSWrapperObject.h:
- runtime/Options.h:
- runtime/RegExp.h:
- runtime/StringObject.h:
- runtime/Structure.h:
- tested-symbols.symlst: Removed.
2014-06-03 Filip Pizlo <fpizlo@apple.com>
[ftlopt] FTL native inlining tests take far too long
https://bugs.webkit.org/show_bug.cgi?id=133498
Unreviewed test gardening.
Added a new exceptions test since the other one appears to not work.
- tests/stress/ftl-library-exception.js:
- tests/stress/ftl-library-inline-gettimezoneoffset.js: Added. (foo):
- tests/stress/ftl-library-inlining-exceptions-dataview.js: Added. (foo):
- tests/stress/ftl-library-inlining-exceptions.js: Copied from LayoutTests/js/regress/script-tests/ftl-library-inlining-exceptions.js.
- tests/stress/ftl-library-inlining-loops.js: Copied from LayoutTests/js/regress/script-tests/ftl-library-inlining-loops.js.
- tests/stress/ftl-library-inlining-random.js:
- tests/stress/ftl-library-substring.js:
2014-06-03 Matthew Mirman <mmirman@apple.com>
[ftlopt] Added system for inlining native functions via the FTL.
https://bugs.webkit.org/show_bug.cgi?id=131515
Reviewed by Filip Pizlo.
Also fixed the build to not compress the bitcode and to
include all of the relevant runtime. With GCC_GENERATE_DEBUGGING_SYMBOLS = NO,
the produced bitcode files are a 100th the size they were before.
Now we can include all of the relevant runtime files with only a 3mb overhead.
This is the same overhead as for two compressed files before,
but done more efficiently (on both ends) and with less code.
Deciding whether to inline native functions is left up to LLVM.
The entire module containing the function is linked into the current
compiled JS so that inlining the native functions shouldn't make them smaller.
Rather than loading Runtime.symtbl at runtime FTLState.cpp now includes a file
InlineRuntimeSymbolTable.h which statically builds the symbol table hash table.
Currently build-symbol-table-index.py updates this file from the
contents of tested-symbols.symlst when done building as a matter of convenience.
However, in order to include the new contents of the file in the build
you'd need to build twice. This will be fixed in future versions.
- JavaScriptCore.xcodeproj/project.pbxproj: Added back runtime files to compile.
- build-symbol-table-index.py: Changed bitcode suffix. Added inclusion of only tested symbols. Added output to InlineRuntimeSymbolTable.h.
- build-symbol-table-index.sh: Changed bitcode suffix.
- copy-llvm-ir-to-derived-sources.sh: Removed gzip compression.
- tested-symbols.symlst: Added.
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleCall): Now sets the knownFunction of the call node if such a function exists and emits a check that during runtime the callee is in fact known.
- dfg/DFGNode.h: Added functions to set the known function of a call node. (JSC::DFG::Node::canBeKnownFunction): Added. (JSC::DFG::Node::hasKnownFunction): Added. (JSC::DFG::Node::knownFunction): Added. (JSC::DFG::Node::giveKnownFunction): Added.
- ftl/FTLAbbreviatedTypes.h: Added a typedef for LLVMMemoryBufferRef
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::isInlinableSize): Added. Hardcoded threshold to 275. (JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol): Added. (JSC::FTL::LowerDFGToLLVM::getFunctionBySymbol): Added. (JSC::FTL::LowerDFGToLLVM::possiblyCompileInlineableNativeCall): Added. (JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct): Added call to possiblyCompileInlineableNativeCall
- ftl/FTLOutput.h: (JSC::FTL::Output::allocaName): Added. Useful for debugging.
- ftl/FTLState.cpp: (JSC::FTL::State::State): Added an include for InlineRuntimeSymbolTable.h
- ftl/FTLState.h: Added symbol table hash table.
- ftl/FTLCompile.cpp: (JSC::FTL::compile): Added inlining and dead function elimination passes.
- heap/HandleStack.h: Added JS_EXPORT_PRIVATE to a few functions to get inlining to compile.
- InlineRuntimeSymbolTable.h: Added.
- llvm/InitializeLLVMMac.mm: Deleted.
- llvm/InitializeLLVMMac.cpp: Added.
- llvm/LLVMAPIFunctions.h: Added macros to include Bitcode parsing and linking functions.
- llvm/LLVMHeaders.h: Added includes for Bitcode parsing and linking.
- runtime/BundlePath.h: Added.
- runtime/BundlePath.mm: Added.
- runtime/DateInstance.h: Added JS_EXPORT_PRIVATE to a few functions to get inlining to compile.
- runtime/DateInstance.h: ditto.
- runtime/DateConversion.h: ditto.
- runtime/ExceptionHelpers.h: ditto.
- runtime/JSCJSValue.h: ditto.
- runtime/JSArray.h: ditto.
- runtime/JSDateMath.h: ditto.
- runtime/JSObject.h: ditto.
- runtime/JSObject.h: ditto.
- runtime/RegExp.h: ditto.
- runtime/Structure.h: ditto.
- runtime/Options.h: Added maximumLLVMInstructionCountForNativeInlining.
- tests/stress/ftl-library-inlining-random.js: Added.
- tests/stress/ftl-library-substring.js: Added.
2014-05-21 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG::clobberize should be blind to the effects of GC
https://bugs.webkit.org/show_bug.cgi?id=133166
Reviewed by Goeffrey Garen.
Move the computation of where GCs happen to DFG::doesGC().
Large (>5x) speed-up on programs that do loop-invariant string concatenations.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAbstractHeap.h:
- dfg/DFGClobberize.h: (JSC::DFG::clobberize): (JSC::DFG::clobberizeForAllocation): Deleted.
- dfg/DFGDoesGC.cpp: Added. (JSC::DFG::doesGC):
- dfg/DFGDoesGC.h: Added.
- dfg/DFGStoreBarrierElisionPhase.cpp: (JSC::DFG::StoreBarrierElisionPhase::handleNode): (JSC::DFG::StoreBarrierElisionPhase::couldCauseGC): Deleted.
2014-05-16 Filip Pizlo <fpizlo@apple.com>
[ftlopt] A StructureSet with one element should only require one word and no allocation
https://bugs.webkit.org/show_bug.cgi?id=133014
Reviewed by Oliver Hunt.
This makes it more efficient to use StructureSet in situations where the common case is
just one structure.
I also took the opportunity to use the same set terminology we use in BitVector: merge,
filter, exclude, contains, etc.
Eventually, this will be used to implement StructureAbstractValue as well.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/StructureSet.cpp: Added. (JSC::StructureSet::StructureSet): (JSC::StructureSet::operator=): (JSC::StructureSet::clear): (JSC::StructureSet::add): (JSC::StructureSet::remove): (JSC::StructureSet::contains): (JSC::StructureSet::merge): (JSC::StructureSet::filter): (JSC::StructureSet::exclude): (JSC::StructureSet::isSubsetOf): (JSC::StructureSet::overlaps): (JSC::StructureSet::operator==): (JSC::StructureSet::speculationFromStructures): (JSC::StructureSet::arrayModesFromStructures): (JSC::StructureSet::dumpInContext): (JSC::StructureSet::dump): (JSC::StructureSet::addOutOfLine): (JSC::StructureSet::containsOutOfLine): (JSC::StructureSet::copyFrom): (JSC::StructureSet::OutOfLineList::create): (JSC::StructureSet::OutOfLineList::destroy):
- bytecode/StructureSet.h: (JSC::StructureSet::StructureSet): (JSC::StructureSet::~StructureSet): (JSC::StructureSet::onlyStructure): (JSC::StructureSet::isEmpty): (JSC::StructureSet::size): (JSC::StructureSet::at): (JSC::StructureSet::operator[]): (JSC::StructureSet::last): (JSC::StructureSet::OutOfLineList::list): (JSC::StructureSet::OutOfLineList::OutOfLineList): (JSC::StructureSet::deleteStructureListIfNecessary): (JSC::StructureSet::isThin): (JSC::StructureSet::pointer): (JSC::StructureSet::singleStructure): (JSC::StructureSet::structureList): (JSC::StructureSet::set): (JSC::StructureSet::clear): Deleted. (JSC::StructureSet::add): Deleted. (JSC::StructureSet::addAll): Deleted. (JSC::StructureSet::remove): Deleted. (JSC::StructureSet::contains): Deleted. (JSC::StructureSet::containsOnly): Deleted. (JSC::StructureSet::isSubsetOf): Deleted. (JSC::StructureSet::overlaps): Deleted. (JSC::StructureSet::singletonStructure): Deleted. (JSC::StructureSet::speculationFromStructures): Deleted. (JSC::StructureSet::arrayModesFromStructures): Deleted. (JSC::StructureSet::operator==): Deleted. (JSC::StructureSet::dumpInContext): Deleted. (JSC::StructureSet::dump): Deleted.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::emitPrototypeChecks): (JSC::DFG::ByteCodeParser::handleGetById): (JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCSEPhase.cpp: (JSC::DFG::CSEPhase::structureTransitionWatchpointElimination):
- dfg/DFGNode.h: (JSC::DFG::Node::convertToStructureTransitionWatchpoint):
- dfg/DFGTypeCheckHoistingPhase.cpp: (JSC::DFG::TypeCheckHoistingPhase::noticeStructureCheck):
Source/WTF:
2014-06-04 Filip Pizlo <fpizlo@apple.com>
[ftlopt] AI should be able track structure sets larger than 1
https://bugs.webkit.org/show_bug.cgi?id=128073
Reviewed by Oliver Hunt.
- wtf/Bag.h: (WTF::Bag::Node::Node): (WTF::Bag::add):
LayoutTests:
2014-06-04 Filip Pizlo <fpizlo@apple.com>
[ftlopt] AI should be able track structure sets larger than 1
https://bugs.webkit.org/show_bug.cgi?id=128073
Reviewed by Oliver Hunt.
- js/regress/get-by-id-bimorphic-check-structure-elimination-expected.txt: Added.
- js/regress/get-by-id-bimorphic-check-structure-elimination-simple-expected.txt: Added.
- js/regress/get-by-id-bimorphic-check-structure-elimination-simple.html: Added.
- js/regress/get-by-id-bimorphic-check-structure-elimination.html: Added.
- js/regress/get-by-id-check-structure-elimination-expected.txt: Added.
- js/regress/get-by-id-check-structure-elimination.html: Added.
- js/regress/get-by-id-quadmorphic-check-structure-elimination-simple-expected.txt: Added.
- js/regress/get-by-id-quadmorphic-check-structure-elimination-simple.html: Added.
- js/regress/script-tests/get-by-id-bimorphic-check-structure-elimination-simple.js: Added.
- js/regress/script-tests/get-by-id-bimorphic-check-structure-elimination.js: Added.
- js/regress/script-tests/get-by-id-check-structure-elimination.js: Added.
- js/regress/script-tests/get-by-id-quadmorphic-check-structure-elimination-simple.js: Added.
2014-06-03 Filip Pizlo <fpizlo@apple.com>
[ftlopt] FTL native inlining tests take far too long
https://bugs.webkit.org/show_bug.cgi?id=133498
Unreviewed test gardening.
Move long-running tests that focus on correctness into JSC/tests/stress.
Speed up the performance tests by reducing allocation and call overhead.
- js/regress/ftl-library-inlining-exceptions-expected.txt: Removed.
- js/regress/ftl-library-inlining-exceptions.html: Removed.
- js/regress/ftl-library-inlining-folding-expected.txt: Removed.
- js/regress/ftl-library-inlining-folding.html: Removed.
- js/regress/ftl-library-inlining-loops-expected.txt: Removed.
- js/regress/ftl-library-inlining-loops.html: Removed.
- js/regress/script-tests/ftl-library-inlining-dataview.js: (foo): Deleted.
- js/regress/script-tests/ftl-library-inlining-exceptions.js: Removed.
- js/regress/script-tests/ftl-library-inlining-folding.js: Removed.
- js/regress/script-tests/ftl-library-inlining-loops.js: Removed.
- js/regress/script-tests/ftl-library-inlining.js: (foo): Deleted.
2014-06-03 Matthew Mirman <mmirman@apple.com>
[ftlopt] Added system for inlining native functions via the FTL.
https://bugs.webkit.org/show_bug.cgi?id=131515
Reviewed by Filip Pizlo.
Adds microbenchmarks.
- js/regress/script-tests/ftl-library-inlining.js: Added.
- js/regress/ftl-library-inlining-expected.txt: Added.
- js/regress/ftl-library-inlining.html: Added.
- js/regress/script-tests/ftl-library-inlining-dataview.js: Added.
- js/regress/ftl-library-inlining-dataview-expected.txt: Added.
- js/regress/ftl-library-inlining-dataview.html: Added.
- js/regress/script-tests/ftl-library-inlining-exceptions.js: Added.
- js/regress/ftl-library-inlining-exceptions-expected.txt: Added.
- js/regress/ftl-library-inlining-exceptions.html: Added.
- js/regress/script-tests/ftl-library-inlining-folding.js: Added.
- js/regress/ftl-library-inlining-folding-expected.txt: Added.
- js/regress/ftl-library-inlining-folding-expected.html: Added.
- js/regress/script-tests/ftl-library-inlining-loops.js: Added.
- js/regress/ftl-library-inlining-loops-expected.txt: Added.
- js/regress/ftl-library-inlining-loops.html: Added.
2014-05-21 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG::clobberize should be blind to the effects of GC
https://bugs.webkit.org/show_bug.cgi?id=133166
Reviewed by Geoffrey Garen.
- js/regress/hoist-make-rope-expected.txt: Added.
- js/regress/hoist-make-rope.html: Added.
- js/regress/script-tests/hoist-make-rope.js: Added. (foo):
- 6:12 PM Changeset in webkit [171379] by
-
- 3 edits in trunk/Source/WebCore
Remove dead APIs from TiledBackingStore
https://bugs.webkit.org/show_bug.cgi?id=135158
Reviewed by Gyuyoung Kim.
setContentsFrozen and related code of TiledBackingStore are not used since Qt port is removed.
- platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::updateTileBuffers):
(WebCore::TiledBackingStore::setContentsScale):
(WebCore::TiledBackingStore::createTiles):
(WebCore::TiledBackingStore::startTileBufferUpdateTimer):
(WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
(WebCore::TiledBackingStore::commitScaleChange): Deleted.
(WebCore::TiledBackingStore::isBackingStoreUpdatesSuspended): Deleted.
(WebCore::TiledBackingStore::isTileBufferUpdatesSuspended): Deleted.
(WebCore::TiledBackingStore::setContentsFrozen): Deleted.
- platform/graphics/TiledBackingStore.h:
(WebCore::TiledBackingStore::contentsFrozen): Deleted.
- 6:01 PM Changeset in webkit [171378] by
-
- 4 edits2 adds in trunk
Fix window-inactive css selectors when using querySelector.
https://bugs.webkit.org/show_bug.cgi?id=135149
Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-22
Reviewed by Tim Horton.
Source/WebCore:
Test: fast/selectors/querySelector-window-inactive.html
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
Removed default and implemented case PseudoClassWindowInactive.
LayoutTests:
- fast/selectors/querySelector-window-inactive-expected.txt: Added.
- fast/selectors/querySelector-window-inactive.html: Added.
- platform/wk2/TestExpectations:
Added querySelector-window-inactive.html to list of tests that do not work in WK2 because of setWindowIsKey.
- 5:41 PM Changeset in webkit [171377] by
-
- 34 edits in branches/safari-537.78-branch
Merge r169475
- 5:36 PM Changeset in webkit [171376] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r171016): Reproducible infinite spin selecting phone number
https://bugs.webkit.org/show_bug.cgi?id=135183
<rdar://problem/17727342>
Reviewed by Ryosuke Niwa.
- editing/Editor.cpp:
(WebCore::Editor::scanRangeForTelephoneNumbers):
Make use of TextIterator::subrange, which knows how to make a subrange from character positions,
instead of assuming that our character positions translate directly to positions in the incoming range.
Make use of DocumentMarkerController::addMarker, which takes a range and applies the marker to
all text nodes inside the range as appropriate.
Fix naming of the shadowed 'length' local.
Fix a typo in the comment.
- 5:35 PM Changeset in webkit [171375] by
-
- 2 edits in trunk/Source/WebCore
[iOS] [OSX] Don't transcode WOFF on platforms that support it natively
https://bugs.webkit.org/show_bug.cgi?id=134904
Reviewed by Andreas Kling.
No new tests because there is no behavior change.
- loader/cache/CachedFont.cpp:
(WebCore::CachedFont::ensureCustomFontData):
- 5:27 PM Changeset in webkit [171374] by
-
- 11 edits in branches/safari-537.78-branch/Source
Merge r152704
- 5:14 PM Changeset in webkit [171373] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed build fix on EFL port after r171356.
Implement a dummy platformMediaCacheDirectory() to avoid undefined reference error.
- UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebContext::platformMediaCacheDirectory):
- 4:52 PM Changeset in webkit [171372] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed build fix attempt on the EFL port after r171362.
Build break because of -Werror=return-type
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::makesCalls):
- 4:33 PM Changeset in webkit [171371] by
-
- 2 edits in trunk/Source/WebCore
[Win] Crash after plugin is unloaded.
https://bugs.webkit.org/show_bug.cgi?id=119044
Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-22
Reviewed by Darin Adler.
We need to invalidate all runtime objects when a plugin view is destroyed, in case the plugin is unloaded,
and one of these runtime objects accesses the plugin function table upon destruction afterwards, which will cause a crash.
If we use the weak pointer to the runtime object when invalidating, it will be null if it's in the WeakImpl::Dead state.
This means the runtime object will not be invalidated, possibly causing a crash if the plugin is unloaded.
It should be safe to use the raw pointer to the runtime object when invalidating, since finalized runtime objects
will be removed from the set of runtime objects in the method RootObject::finalize().
- bridge/runtime_root.cpp:
(JSC::Bindings::RootObject::invalidate): Make sure all runtime objects are invalidated by getting the raw runtime object pointer from the hash key.
- 4:28 PM Changeset in webkit [171370] by
-
- 24 edits in trunk/Source
REGRESSION (WebKit2): Selection inside accelerated overflow:scroll doesn't track scrolling.
https://bugs.webkit.org/show_bug.cgi?id=135180
<rdar://problem/16721055>
Reviewed by Simon Fraser.
Source/WebCore:
AsyncScrollingCoordinator will force a selection update on iOS
when scrolling terminates in an overflow scroll.
- loader/EmptyClients.h:
- page/EditorClient.h:
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::scrollingTreeNodeWillStartScroll):
(WebCore::ScrollingTree::scrollingTreeNodeDidEndScroll):
Source/WebKit/mac:
- WebCoreSupport/WebEditorClient.h:
Source/WebKit2:
Adds notifications to the WKContentView to know when scrolling starts and ends
in an overflow scroll. When scrolling starts, we hide the selection and we restore
it when scrolling ends, though not before the selection information in the editor
state has been updated.
It also adds a new method to the EditorClient class to force the
selection update when scrolling is completed.
- UIProcess/PageClient.h:
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
- UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::scrollingTreeNodeWillStartScroll):
(WebKit::RemoteScrollingTree::scrollingTreeNodeDidEndScroll):
- UIProcess/Scrolling/RemoteScrollingTree.h:
- UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
- UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
(-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
(-[WKOverflowScrollViewDelegate scrollViewDidEndDecelerating:]):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::overflowScrollWillStart):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::overflowScrollDidEnd):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::overflowScrollWillStartScroll):
(WebKit::PageClientImpl::overflowScrollDidEndScroll):
- UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartScroll):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidEndScroll):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _overflowScrollingWillBegin]):
(-[WKContentView _overflowScrollingDidEnd]):
(-[WKContentView _updateChangedSelection]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::overflowScrollWillStartScroll):
(WebKit::WebPageProxy::overflowScrollDidEndScroll):
- WebProcess/WebCoreSupport/WebEditorClient.h:
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
- WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
(WebKit::WebEditorClient::updateSelection):
- 4:25 PM Changeset in webkit [171369] by
-
- 11 edits2 copies in branches/safari-537.78-branch/Source/WebKit2
Merge r169457
- 3:32 PM Changeset in webkit [171368] by
-
- 2 edits in trunk/Source/WebKit2
[iOS][WK2] WebPageProxy should not do anything when responding to an animated resize is the page is not in a valid state
https://bugs.webkit.org/show_bug.cgi?id=135169
<rdar://problem/17740149>
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-22
Reviewed by Tim Horton.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
Neither m_dynamicViewportSizeUpdateWaitingForTarget nor m_dynamicViewportSizeUpdateWaitingForLayerTreeCommit should
be modified if there is not WebProcess to respond to DynamicViewportSizeUpdate.
(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
We should not attempt to synchronize anything if the page was closed before the end of the dynamic viewport
update.
- 3:09 PM Changeset in webkit [171367] by
-
- 2 edits in trunk/Source/JavaScriptCore
JSLock release should only modify the AtomicStringTable if it modified in acquire
https://bugs.webkit.org/show_bug.cgi?id=135143
Reviewed by Pratik Solanki.
- runtime/JSLock.cpp:
(JSC::JSLock::willDestroyVM):
(JSC::JSLock::willReleaseLock):
Only set the AtomicStringTable when there was a VM, to balance JSLock::didAcquireLock.
- 2:46 PM Changeset in webkit [171366] by
-
- 7 edits in trunk/Source/WebKit2
REGRESSION (r171239): Much more time spent taking snapshots during the PLT
https://bugs.webkit.org/show_bug.cgi?id=135177
<rdar://problem/17764847>
Reviewed by Dan Bernstein.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willChangeCurrentHistoryItemForMainFrame):
(WebKit::WebPageProxy::willChangeCurrentHistoryItem): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willChangeCurrentHistoryItemForMainFrame):
(WebKit::WebPage::willChangeCurrentHistoryItem): Deleted.
- WebProcess/WebPage/WebPage.h:
Rename WillChangeCurrentHistoryItem to WillChangeCurrentHistoryItemForMainFrame.
Only send it when the current history item for the main frame changes.
- 2:32 PM Changeset in webkit [171365] by
-
- 2 edits in trunk/Source/WebKit2
Add accountsd access to network sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=135176
<rdar://17656487>
Reviewed by Anders Carlsson.
This is available to the webcontent process already, but is also
needed for the networking process.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 2:30 PM Changeset in webkit [171364] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix cloop build.
- bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeExitSiteData):
- 2:25 PM Changeset in webkit [171363] by
-
- 3 edits in trunk/Source/WebKit2
Remove unused com.apple.webkit.* rules from profiles
https://bugs.webkit.org/show_bug.cgi?id=135174
<rdar://17755931>
Reviewed by Anders Carlsson.
We never send these rules so we should just remove use of them
from the profiles.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 2:08 PM Changeset in webkit [171362] by
-
- 51 edits24 adds in trunk
Merge r168635, r168780, r169005, r169014, and r169143 from ftlopt.
2014-05-20 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG bytecode parser should turn GetById with nothing but a Getter stub as stuff+handleCall, and handleCall should be allowed to inline if it wants to
https://bugs.webkit.org/show_bug.cgi?id=133105
Reviewed by Michael Saboff.
Source/JavaScriptCore:
- GetByIdStatus now knows about getters and can report intelligent things about them. As is usually the case with how we do these things, GetByIdStatus knows more about getters than the DFG can actually handle: it'll report details about polymorphic getter calls even though the DFG won't be able to handle those. This is fine; the DFG will see those statuses and bail to a generic slow path.
- The DFG::ByteCodeParser now knows how to set up and do handleCall() for a getter call. This can, and usually does, result in inlining of getters!
- CodeOrigin and OSR exit know about inlined getter calls. When you OSR out of an inlined getter, we set the return PC to a getter return thunk that fixes up the stack. We use the usual offset-true-return-PC trick, where OSR exit places the true return PC of the getter's caller as a phony argument that only the thunk knows how to find.
- Removed a bunch of dead monomorphic chain support from StructureStubInfo.
- A large chunk of this change is dragging GetGetterSetterByOffset, GetGetter, and GetSetter through the DFG and FTL. GetGetterSetterByOffset is like GetByOffset except that we know that we're returning a GetterSetter cell. GetGetter and GetSetter extract the getter, or setter, from the GetterSetter.
This is a ~2.5x speed-up on the getter microbenchmarks that we already had. So far none
of the "real" benchmarks exercise getters enough for this to matter. But I noticed that
some of the variants of the Richards benchmark in other languages - for example
Wolczko's Java translation of a C++ translation of Deutsch's Smalltalk version - use
getters and setters extensively. So, I created a getter/setter JavaScript version of
Richards and put it in regress/script-tests/getter-richards.js. That sees about a 2.4x
speed-up from this patch, which is very reassuring.
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::printGetByIdCacheStatus): (JSC::CodeBlock::findStubInfo):
- bytecode/CodeBlock.h:
- bytecode/CodeOrigin.cpp: (WTF::printInternal):
- bytecode/CodeOrigin.h: (JSC::InlineCallFrame::specializationKindFor):
- bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::computeFor): (JSC::GetByIdStatus::computeForStubInfo): (JSC::GetByIdStatus::makesCalls): (JSC::GetByIdStatus::computeForChain): Deleted.
- bytecode/GetByIdStatus.h: (JSC::GetByIdStatus::makesCalls): Deleted.
- bytecode/GetByIdVariant.cpp: (JSC::GetByIdVariant::~GetByIdVariant): (JSC::GetByIdVariant::GetByIdVariant): (JSC::GetByIdVariant::operator=): (JSC::GetByIdVariant::dumpInContext):
- bytecode/GetByIdVariant.h: (JSC::GetByIdVariant::GetByIdVariant): (JSC::GetByIdVariant::callLinkStatus):
- bytecode/PolymorphicGetByIdList.cpp: (JSC::GetByIdAccess::fromStructureStubInfo): (JSC::PolymorphicGetByIdList::from):
- bytecode/SpeculatedType.h:
- bytecode/StructureStubInfo.cpp: (JSC::StructureStubInfo::deref): (JSC::StructureStubInfo::visitWeakReferences):
- bytecode/StructureStubInfo.h: (JSC::isGetByIdAccess): (JSC::StructureStubInfo::initGetByIdChain): Deleted.
- dfg/DFGAbstractHeap.h:
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::addCall): (JSC::DFG::ByteCodeParser::handleCall): (JSC::DFG::ByteCodeParser::handleInlining): (JSC::DFG::ByteCodeParser::handleGetByOffset): (JSC::DFG::ByteCodeParser::handleGetById): (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry): (JSC::DFG::ByteCodeParser::parse):
- dfg/DFGCSEPhase.cpp: (JSC::DFG::CSEPhase::getGetterSetterByOffsetLoadElimination): (JSC::DFG::CSEPhase::getInternalFieldLoadElimination): (JSC::DFG::CSEPhase::performNodeCSE): (JSC::DFG::CSEPhase::getTypedArrayByteOffsetLoadElimination): Deleted.
- dfg/DFGClobberize.h: (JSC::DFG::clobberize):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::linkFunction):
- dfg/DFGNode.h: (JSC::DFG::Node::hasStorageAccessData):
- dfg/DFGNodeType.h:
- dfg/DFGOSRExitCompilerCommon.cpp: (JSC::DFG::reifyInlinedCallFrames):
- dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLAbstractHeapRepository.cpp:
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
- ftl/FTLLink.cpp: (JSC::FTL::link):
- ftl/FTLLowerDFGToLLVM.cpp: (JSC::FTL::LowerDFGToLLVM::compileNode): (JSC::FTL::LowerDFGToLLVM::compileGetGetter): (JSC::FTL::LowerDFGToLLVM::compileGetSetter):
- jit/AccessorCallJITStubRoutine.h:
- jit/JIT.cpp: (JSC::JIT::assertStackPointerOffset): (JSC::JIT::privateCompile):
- jit/JIT.h:
- jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_by_id):
- jit/ThunkGenerators.cpp: (JSC::arityFixupGenerator): (JSC::baselineGetterReturnThunkGenerator): (JSC::baselineSetterReturnThunkGenerator): (JSC::arityFixup): Deleted.
- jit/ThunkGenerators.h:
- runtime/CommonSlowPaths.cpp: (JSC::setupArityCheckData):
- tests/stress/exit-from-getter.js: Added.
- tests/stress/poly-chain-getter.js: Added. (Cons): (foo): (test):
- tests/stress/poly-chain-then-getter.js: Added. (Cons1): (Cons2): (foo): (test):
- tests/stress/poly-getter-combo.js: Added. (Cons1): (Cons2): (foo): (test): (.test):
- tests/stress/poly-getter-then-chain.js: Added. (Cons1): (Cons2): (foo): (test):
- tests/stress/poly-getter-then-self.js: Added. (foo): (test): (.test):
- tests/stress/poly-self-getter.js: Added. (foo): (test): (getter):
- tests/stress/poly-self-then-getter.js: Added. (foo): (test):
- tests/stress/weird-getter-counter.js: Added. (foo): (test):
2014-05-17 Filip Pizlo <fpizlo@apple.com>
[ftlopt] Factor out how CallLinkStatus uses exit site data
https://bugs.webkit.org/show_bug.cgi?id=133042
Reviewed by Anders Carlsson.
This makes it easier to use CallLinkStatus from clients that are calling into after
already holding some of the relevant locks. This is necessary because we use a "one lock
at a time" policy for CodeBlock locks: if you hold one then you're not allowed to acquire
any of the others. So, any code that needs to lock multiple CodeBlock locks needs to sort
of lock one, do some stuff, release it, then lock another, and then do more stuff. The
exit site data corresponds to the stuff you do while holding the baseline lock, while the
CallLinkInfo method corresponds to the stuff you do while holding the CallLinkInfo owner's
lock.
- bytecode/CallLinkStatus.cpp: (JSC::CallLinkStatus::computeFor): (JSC::CallLinkStatus::computeExitSiteData): (JSC::CallLinkStatus::computeDFGStatuses):
- bytecode/CallLinkStatus.h: (JSC::CallLinkStatus::ExitSiteData::ExitSiteData):
2014-05-17 Filip Pizlo <fpizlo@apple.com>
[ftlopt] InlineCallFrame::isCall should be an enumeration
https://bugs.webkit.org/show_bug.cgi?id=133034
Reviewed by Sam Weinig.
Once we start inlining getters and setters, we'll want InlineCallFrame to be able to tell
us that the inlined call was a getter call or a setter call. Initially I thought I would
have a new field called "kind" that would have components NormalCall, GetterCall, and
SetterCall. But that doesn't make sense, because for GetterCall and SetterCall, isCall
would have to be true. Hence, It makes more sense to have one enumeration that is Call,
Construct, GetterCall, or SetterCall. This patch is a first step towards this.
It's interesting that isClosureCall should probably still be separate, since getter and
setter inlining could inline closure calls.
- bytecode/CodeBlock.h: (JSC::baselineCodeBlockForInlineCallFrame):
- bytecode/CodeOrigin.cpp: (JSC::InlineCallFrame::dumpInContext): (WTF::printInternal):
- bytecode/CodeOrigin.h: (JSC::InlineCallFrame::kindFor): (JSC::InlineCallFrame::specializationKindFor): (JSC::InlineCallFrame::InlineCallFrame): (JSC::InlineCallFrame::specializationKind):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
- dfg/DFGOSRExitPreparation.cpp: (JSC::DFG::prepareCodeOriginForOSRExit):
- runtime/Arguments.h: (JSC::Arguments::finishCreation):
2014-05-13 Filip Pizlo <fpizlo@apple.com>
[ftlopt] DFG should not exit due to inadequate profiling coverage when it can trivially fill in the profiling coverage due to variable constant inference and the better prediction modeling of typed array GetByVals
https://bugs.webkit.org/show_bug.cgi?id=132896
Reviewed by Geoffrey Garen.
This is a slight win on SunSpider, but it's meant to ultimately help us on
embenchen/lua. We already do well on that benchmark but our convergence is slower than
I'd like.
- dfg/DFGArrayMode.cpp: (JSC::DFG::ArrayMode::refine):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate):
2014-05-08 Filip Pizlo <fpizlo@apple.com>
jsSubstring() should be lazy
https://bugs.webkit.org/show_bug.cgi?id=132556
Reviewed by Andreas Kling.
jsSubstring() is now lazy by using a special rope that is a substring instead of a
concatenation. To make this patch super simple, we require that a substring's base is
never a rope. Hence, when resolving a rope, we either go down a non-recursive substring
path, or we go down a concatenation path which may see exactly one level of substrings in
its fibers.
This is up to a 50% speed-up on microbenchmarks and a 10% speed-up on Octane/regexp.
Relanding this with assertion fixes.
- heap/MarkedBlock.cpp: (JSC::MarkedBlock::specializedSweep):
- runtime/JSString.cpp: (JSC::JSRopeString::visitFibers): (JSC::JSRopeString::resolveRopeInternal8): (JSC::JSRopeString::resolveRopeInternal16): (JSC::JSRopeString::clearFibers): (JSC::JSRopeString::resolveRope): (JSC::JSRopeString::resolveRopeSlowCase8): (JSC::JSRopeString::resolveRopeSlowCase):
- runtime/JSString.h: (JSC::JSRopeString::finishCreation): (JSC::JSRopeString::append): (JSC::JSRopeString::create): (JSC::JSRopeString::offsetOfFibers): (JSC::JSRopeString::fiber): (JSC::JSRopeString::substringBase): (JSC::JSRopeString::substringOffset): (JSC::JSRopeString::notSubstringSentinel): (JSC::JSRopeString::substringSentinel): (JSC::JSRopeString::isSubstring): (JSC::JSRopeString::setIsSubstring): (JSC::jsSubstring):
- runtime/RegExpMatchesArray.cpp: (JSC::RegExpMatchesArray::reifyAllProperties):
- runtime/StringPrototype.cpp: (JSC::stringProtoFuncSubstring):
Source/WTF:
- wtf/Bag.h: (WTF::Bag::iterator::operator!=):
LayoutTests:
- js/regress/getter-no-activation-expected.txt: Added.
- js/regress/getter-no-activation.html: Added.
- js/regress/script-tests/getter-no-activation.js: Added.
- js/regress/getter-richards-expected.txt: Added.
- js/regress/getter-richards.html: Added.
- js/regress/script-tests/getter-richards.js: Added.
2014-05-08 Filip Pizlo <fpizlo@apple.com>
jsSubstring() should be lazy
https://bugs.webkit.org/show_bug.cgi?id=132556
Reviewed by Andreas Kling.
These tests get 35-50% faster.
- js/regress/script-tests/substring-concat-weird.js: Added. (foo):
- js/regress/script-tests/substring-concat.js: Added. (foo):
- js/regress/script-tests/substring.js: Added. (foo):
- js/regress/substring-concat-expected.txt: Added.
- js/regress/substring-concat-weird-expected.txt: Added.
- js/regress/substring-concat-weird.html: Added.
- js/regress/substring-concat.html: Added.
- js/regress/substring-expected.txt: Added.
- js/regress/substring.html: Added.
- 1:57 PM Changeset in webkit [171361] by
-
- 3 edits in trunk/Websites/perf.webkit.org
Perf dashboard spends 2s processing JSON data during the page loads
https://bugs.webkit.org/show_bug.cgi?id=135152
Reviewed by Andreas Kling.
In the Apple internal dashboard, we were spending as much as 2 seconds
converting raw JSON data into proper JS objects while loading the dashboard.
This caused the apparent unresponsiveness of the dashboard despite of the fact
charts themselves updated almost instantaneously.
- public/index.html:
- public/js/helper-classes.js:
(TestBuild): Compute the return values of formattedTime and formattedBuildTime
lazily as creating new Date objects and running string replace is expensive.
(TestBuild.formattedTime):
(TestBuild.formattedBuildTime):
(PerfTestRuns.setResults): Added. Pushing each result was the biggest bottle neck.
(PerfTestRuns.addResult): Deleted.
- 1:51 PM Changeset in webkit [171360] by
-
- 23 edits in trunk
[Mac] Cocoa throws exception when the return type of NSAccessibilityLinkedUIElementsAttribute is not an array
https://bugs.webkit.org/show_bug.cgi?id=135165
Reviewed by Simon Fraser.
Source/WebCore:
Return an empty array instead of nil.
Updated tests.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
LayoutTests:
Updating tests.
- accessibility/parent-delete-expected.txt:
- accessibility/transformed-element-expected.txt:
- platform/mac/accessibility/aria-columnrowheaders-expected.txt:
- platform/mac/accessibility/bounds-for-range-expected.txt:
- platform/mac/accessibility/document-attributes-expected.txt:
- platform/mac/accessibility/document-links-expected.txt:
- platform/mac/accessibility/image-link-expected.txt:
- platform/mac/accessibility/image-map2-expected.txt:
- platform/mac/accessibility/internal-link-anchors-expected.txt:
- platform/mac/accessibility/internal-link-anchors2-expected.txt:
- platform/mac/accessibility/lists-expected.txt:
- platform/mac/accessibility/plugin-expected.txt:
- platform/mac/accessibility/table-attributes-expected.txt:
- platform/mac/accessibility/table-cell-spans-expected.txt:
- platform/mac/accessibility/table-cells-expected.txt:
- platform/mac/accessibility/table-detection-expected.txt:
- platform/mac/accessibility/table-one-cell-expected.txt:
- platform/mac/accessibility/table-sections-expected.txt:
- platform/mac/accessibility/table-with-rules-expected.txt:
- platform/mac-mountainlion/accessibility/lists-expected.txt:
- 1:28 PM Changeset in webkit [171359] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, rolling out r171357.
https://bugs.webkit.org/show_bug.cgi?id=135173
broke Windows build. (Requested by bfulgham on #webkit).
Reverted changeset:
"[Win] Fix Crash when handling Legible Output callbacks"
https://bugs.webkit.org/show_bug.cgi?id=134946
http://trac.webkit.org/changeset/171357
- 1:22 PM Changeset in webkit [171358] by
-
- 3 edits in trunk/LayoutTests
[Mac] accessibility/aria-columnrowheaders.html doesn't test lengths of arrays
https://bugs.webkit.org/show_bug.cgi?id=135166
Reviewed by Chris Fleizach.
Using debug() interprets strings like "<array of size 0>" as markup, thereby not
showing it in the expected output. Instead, we should use innerText (which is
what all the other accessibility tests use).
- platform/mac/accessibility/aria-columnrowheaders-expected.txt:
- platform/mac/accessibility/aria-columnrowheaders.html:
- 1:00 PM Changeset in webkit [171357] by
-
- 3 edits in trunk/Source/WebCore
[Win] Fix Crash when handling Legible Output callbacks
https://bugs.webkit.org/show_bug.cgi?id=134946
Reviewed by Dean Jackson.
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Remove
Windows-specific 'ASSERT_NOT_REACHED' code path.
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::createLegibleOutputSubtypes): Added.
(WebCore::AVFWrapper::createPlayerItem): Updated to request native
samples from AVFoundationCF.
- 12:58 PM Changeset in webkit [171356] by
-
- 9 edits in trunk/Source/WebKit2
Provide networking process with access to its HSTS db
https://bugs.webkit.org/show_bug.cgi?id=135121
<rdar://17654369>
Reviewed by Alexey Proskuryakov.
Add an extension parameter to pass the hsts database file.
This requires us to create the Caches/com.apple.WebKit.Networking
directory in the UI process, as the network sandbox
does not allow it to create the containing directory.
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
- Shared/Network/NetworkProcessCreationParameters.h:
- UIProcess/WebContext.cpp:
(WebKit::WebContext::ensureNetworkProcess):
(WebKit::WebContext::networkingHSTSDatabasePath):
- UIProcess/WebContext.h:
- UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath):
- 12:48 PM Changeset in webkit [171355] by
-
- 7 edits1 add in trunk
[Cocoa] WKScriptMessageHandlers don't seem to function properly after navigating
https://bugs.webkit.org/show_bug.cgi?id=135148
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
- runtime/CommonIdentifiers.h:
Add a common identifier for the string "webkit".
Source/WebCore:
The "webkit" property on the window was not getting installed for subsequent
loads due to intricate dance playing setting the JSDOMWindow where the DOMWindow
object is not yet in a Frame when the JSDOMWindow is created. Since we were
adding the "webkit" property on construction, the property was returning null
thinking it had no Frame and was in a bad state. We can fix this by making the
"webkit" property behave like all the other window properties moving its getting
to JSDOMWindow::getOwnPropertySlot.
Added API test (WebKit2Cocoa/UserContentController).
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::finishCreation):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowWebKit):
(WebCore::JSDOMWindow::getOwnPropertySlot):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm: Added.
(-[SimpleNavigationDelegate webView:didFinishNavigation:]):
(-[ScriptMessageHandler userContentController:didReceiveScriptMessage:]):
- 12:46 PM Changeset in webkit [171354] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
ASSERTION FAILED: info.spillFormat() & DataFormatJS in JSC::DFG::SpeculativeJIT::fillSpeculateCell
https://bugs.webkit.org/show_bug.cgi?id=135155
<rdar://problem/17763909>
Reviewed by Oliver Hunt.
The DFG fillSpeculate code paths all need to be mindful of the fact that they may be stumbling upon a
contradiction, and that this is OK. In this case, we were speculating cell on an int.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
- tests/stress/regress-135155.js: Added.
(run.t.length):
(run):
- 12:36 PM Changeset in webkit [171353] by
-
- 2 edits in trunk/Source/WebCore
[Win] Fix Leak in WebCore::createGlobalImageFileDescriptor
https://bugs.webkit.org/show_bug.cgi?id=134423
<rdar://problem/17492758>
Reviewed by Geoffrey Garen.
- platform/win/PasteboardWin.cpp:
(WebCore::createGlobalImageFileDescriptor): Unlock and release the
HGLOBAL when exiting early.
- 12:25 PM Changeset in webkit [171352] by
-
- 3 edits in trunk/Source/WebKit2
[iOS][WK2] UI helpers that zoom on an element ignore the viewport's allowsUserScaling
https://bugs.webkit.org/show_bug.cgi?id=135140
<rdar://problem/17754921>
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-22
Reviewed by Tim Horton.
UIScrollView makes a difference between min/max zoom and allowUserScaling. To express that,
everything is set up on the LayerTransaction.
For zooming related helpers (find on page, double tap to zoom, etc), the min and max zoom
should be the actual min/max for the current page state.
This patch split the two explicitely.
For layer transactions, the values are taken from the viewport configuration directly.
For everything else, we should use minimumPageScaleFactor/maximumPageScaleFactor. Those two methods
have been updated to take into account allowsUserScaling.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::minimumPageScaleFactor):
(WebKit::WebPage::maximumPageScaleFactor):
(WebKit::WebPage::getAssistedNodeInformation):
- 11:35 AM Changeset in webkit [171351] by
-
- 4 edits in trunk
Correct handling of VERSION_TEXT for 4+-tuple versions
https://bugs.webkit.org/show_bug.cgi?id=135161
<rdar://problem/17763546>
Reviewed by David Kilzer.
Tools:
- Scripts/webkitperl/auto-version_unittest/autoVersionTests.pl:
Add additional test cases to catch errors in multiple-tuple
version string handling.
WebKitLibraries:
Revise the auto-version.pl script to properly handle version
strings with 4 (or more) version tuples. Previously these were
being truncated from the version.
- win/tools/scripts/auto-version.pl:
(splitVersion): Return truncated version of
overall version string.
- 11:27 AM Changeset in webkit [171350] by
-
- 9 edits2 adds in trunk
Extend exception fuzzing to the LLInt
https://bugs.webkit.org/show_bug.cgi?id=135076
Reviewed by Oliver Hunt.
Source/JavaScriptCore:
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- jit/JITOperations.cpp:
(JSC::numberOfExceptionFuzzChecks): Deleted.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setUpCall):
- runtime/CommonSlowPaths.cpp:
- runtime/ExceptionFuzz.cpp: Added.
(JSC::numberOfExceptionFuzzChecks):
(JSC::doExceptionFuzzing):
- runtime/ExceptionFuzz.h: Added.
(JSC::doExceptionFuzzingIfEnabled):
Tools:
- Scripts/jsc-stress-test-helpers/js-exception-fuzz:
- 11:13 AM Changeset in webkit [171349] by
-
- 2 edits in trunk/Source/WebKit2
Web Inspector: Fix unused parameter build warning
https://bugs.webkit.org/show_bug.cgi?id=135151
Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-07-22
Reviewed by Joseph Pecoraro.
Fix unused parameter build warning by removing the parameter name
- WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::setJavaScriptProfilingEnabled):
- 11:03 AM FeatureFlags edited by
- (diff)
- 11:01 AM Changeset in webkit [171348] by
-
- 1 edit2 adds in trunk/LayoutTests
[Mac] [WK2] selection-gap-fixed-child.html and selection-gap-flipped-fixed-child.html
have been failing since they were added in r148258
https://bugs.webkit.org/show_bug.cgi?id=114573
Landing actual results as expected for WK2. This test isn't meaningful for WK2, because of layers.
- platform/mac-wk2/TestExpectations:
- platform/mac-wk2/fast/repaint/selection-gap-fixed-child-expected.txt: Added.
- platform/mac-wk2/fast/repaint/selection-gap-flipped-fixed-child-expected.txt: Added.
- 11:00 AM FeatureFlags edited by
- (diff)
- 10:50 AM Changeset in webkit [171347] by
-
- 3 edits2 adds in trunk
Source/WebCore: Clicking on links while accessibility is enabled sometimes crashes
https://bugs.webkit.org/show_bug.cgi?id=135074
Reviewed by Chris Fleizach.
When an accessibility request comes in from the system, we call updateBackingStore() on the
relevant AccessibilityObject, which triggers a relayout of the entire document. This relayout
might delete that accessibility node and its parent, which would cause the node to be deleted.
After the stack unwinds, we then call a member function on the node without checking for this
condition.
Test: accessibility/parent-delete.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::updateBackingStore): Retain the node for the duration of the
function.
LayoutTests: Clicking on links while accessibility is enabled does not render as expected
https://bugs.webkit.org/show_bug.cgi?id=135074
Reviewed by Chris Fleizach.
Delete a node and its parent, then call allAttributes() on the accessibility representation of
the deleted child and make sure there is no crash.
- accessibility/parent-delete-expected.txt: Added
- accessibility/parent-delete.html: Added
- 10:32 AM Changeset in webkit [171346] by
-
- 2 edits in trunk/Source/WebKit2
Fix unused parameter build warning in UIProcess module
https://bugs.webkit.org/show_bug.cgi?id=135154
Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-07-22
Reviewed by Alexey Proskuryakov.
Fix unused parameter build warning in UIProcess module by using UNUSED_PARAM macro.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
- 10:19 AM Changeset in webkit [171345] by
-
- 11 edits in trunk/Source
Don't create new UIWindow for video fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=135038
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-22
Reviewed by Darin Adler.
Source/WebCore:
- WebCore.exp.in:
- platform/ios/WebVideoFullscreenControllerAVKit.h: use UIView instead of UIScreen.
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController enterFullscreen:]): provide parent UIView.
- platform/ios/WebVideoFullscreenInterfaceAVKit.h: remove UIWindow.
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setupFullscreen): ditto
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreen): ditto
(WebVideoFullscreenInterfaceAVKit::invalidate): ditto
(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): ditto
Source/WebKit/mac:
Provide UIView to WebVideoFullscreenController
- WebView/WebView.mm:
(-[WebView _enterFullscreenForNode:]): pass UIView instead of nil
Source/WebKit2:
Use root UIView to parent fullscreen interface.
- UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): pass parent UIView
- WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::screenRectForNode): Use client rect instead of screen rect.
- 9:38 AM Changeset in webkit [171344] by
-
- 3 edits in trunk/LayoutTests
media/track/track-in-band-subtitles-too-large.html and
media/track/track-long-word-container-sizing.html fail on Mac (dependent on other tests?)
https://bugs.webkit.org/show_bug.cgi?id=135160
Correcting test expectations - the failures are not WK1 only.
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 8:02 AM Changeset in webkit [171343] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Rollout r170529 due to ~10% performance regression on the
perf test Animation/balls.
https://bugs.webkit.org/show_bug.cgi?id=134972
Reviewed by Martin Robinson.
Reverted changeset:
"Increase priority on SharedTimer source."
https://trac.webkit.org/r170529
- 6:47 AM Changeset in webkit [171342] by
-
- 2 edits in trunk/LayoutTests
Unreviewed EFL gardening
- platform/efl/TestExpectations: Update incorrect test expectations for passing and crashing tests.
- 6:27 AM Changeset in webkit [171341] by
-
- 39 edits6 adds in trunk
Turn width/height to presentation attributes
https://bugs.webkit.org/show_bug.cgi?id=135046
Patch by Dirk Schulze <krit@webkit.org> on 2014-07-18
Reviewed by Dean Jackson.
Source/WebCore:
The elements <svg>, <image>, <pattern>, <mask> and <foreignObject> have the
'width' and 'height' attributes. So far they can just be set by SVG DOM or
setAttribute. Furthermore, animations just work with SVG Animation - No support
for CSS Animations and CSS Transitions. We started to turn the width and height
attributes on SVG roots to presentation attributes already. A presentation
attribute is a CSS property that can also be set by DOM (or now by SVG DOM).
This patch turns all width and height attributes to presentation attributes. It
basically allows authors to style width and height with CSS as well. Width and
height can now be set with CSS style sheets and can be animated with CSS.
To some degree it made it possible to remove code duplication. However, since
SVG DOM requires us to use SVGLength types and since we did not turn all
SVG attributes to the CSS length values (and our internal Length struct) yet,
we still need a hybrid - a bridge between SVGLength (for SVG DOM) and Length (for
RenderStyle). Once we move all attributes to use the Length struct, we can make SVGLength
a wrapper for Length and can move more code to the render tree.
The current challenge is to synchronize SVG DOM, normal DOM and RenderStyle.
With this patch we handle most part in RenderStyle. SVG DOM changes are
synchronized to DOM and RenderStyle will call needsStyleRecalc. Furthermore,
SVG Animations will continue to animate the SVG DOM (and synchronize the changes
back to RenderStyle) if the element has a JS property for the currently animated
attribute.
Short example:
<rect>
<animate attributeName="width">
</rect>
The <rect> element has the SVG DOM property 'width'. Therefore, we animate the SVG DOM
property and synchronize RenderStyle.
<ellipse>
<animate attributeName="width">
</ellipse>
The <ellipse> element does NOT have the SVG DOM property 'width'. Therefore, we
animate the CSS property directly. With synchronizing RenderStyle in all cases, we
make sure that the CSS cascade works even on animating on multiple SVG hierarchy
levels (animation of 'width' on <g> and inheriting the property value on a child
<rect>).
With using presentation attributes, we also inherit the CSS property parsing for
SVG attributes. <rect width=" 100px "> is possible now. (Note the trailing whitespaces.)
This follows a recent resolution of the SVG WG.
Since we turned width and height to presentation attributes, the layout optimization
selfHasRelativeLengths() in the DOM can't be used anymore. selfHasRelativeLengths() was
intended to solve a problem where we did not layout relatively position/sized elements
when the parent changes its size. However, as a side effect it did not call layout
for absolutely positioned/sized elements since the layout does not change. I run
all performance tests that we have and even wrote a test with hundreds of elements
that would be affected by this optimization. The differences were inside the sigma
of a normal test run. (Means I couldn't measure a performance difference.)
Therefore, it is not worth it to keep the "optimization" around and I will probably
remove it entirely for all basic shapes but <path> and <polygon> in future patches.
Tests: svg/css/parse-height.html
svg/css/parse-width.html
svg/css/width-height-presentation-attribute-expected.svg
svg/css/width-height-presentation-attribute.svg
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): We never calculated the computed
value of width/height for SVG elements and returned auto instead. This is based
on a rule of CSS 2 and needs to be fixed in CSS3.
- css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyLength::applyValue): Length always incorporates the zoom level.
In SVG we still apply the zoom after all operations by scaling the context. We need
to take this in account for Length and don't apply zoom on SVG inline elements.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::useSVGZoomRulesForLength):
See above.
- css/StyleResolver.h:
- rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::updateShapeFromElement): Do not call width() and height() on
SVG DOM but use the values of RenderStyle instead.
- rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromRectElement): Ditto.
- svg/SVGAnimateElement.cpp:
(WebCore::SVGAnimateElement::resetAnimatedType): We need to differ between CSS properties
with and without SVG DOM on the current element. In the later case we animate the
SVG DOM and need to synch RenderStyle.
(WebCore::SVGAnimateElement::clearAnimatedType): Ditto.
(WebCore::SVGAnimateElement::applyResultsToTarget): Ditto.
- svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isTargetAttributeCSSProperty): This checks if the CSS property
has to be synched with SVG DOM.
(WebCore::SVGAnimationElement::shouldApplyAnimation): Ditto.
- svg/SVGAnimationElement.h:
- svg/SVGElement.cpp:
(WebCore::populateAttributeNameToCSSPropertyIDMap): Add width and heigth to the CSS property
list for presentation attributes.
(WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): CSS properties with
SVG DOM synchronization need to be treated differently. Collect them in a separate map.
(WebCore::cssPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): Caller for the map.
(WebCore::SVGElement::animatedPropertyTypeForAttribute): We need to check both maps here:
CSS properties and CSS properties with SVG DOM synch.
(WebCore::SVGElement::isAnimatableCSSProperty): Ditto.
(WebCore::SVGElement::isPresentationAttributeWithSVGDOM): Just return true if the property name
is in the map of properties with SVG DOM for the current element.
- svg/SVGElement.h:
(WebCore::SVGElement::invalidateSVGPresentationAttributeStyle): Call needsStyleRecalc.
- svg/SVGFilterElement.cpp: Make width/height presentation attribute.
(WebCore::SVGFilterElement::svgAttributeChanged):
(WebCore::SVGFilterElement::selfHasRelativeLengths): Deleted.
- svg/SVGFilterElement.h: Ditto.
- svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::svgAttributeChanged):
(WebCore::SVGForeignObjectElement::selfHasRelativeLengths): Deleted.
- svg/SVGForeignObjectElement.h:
- svg/SVGImageElement.cpp: Ditto.
(WebCore::SVGImageElement::svgAttributeChanged):
(WebCore::SVGImageElement::isPresentationAttribute): Deleted.
(WebCore::SVGImageElement::collectStyleForPresentationAttribute): Deleted.
(WebCore::SVGImageElement::selfHasRelativeLengths): Deleted.
- svg/SVGImageElement.h:
- svg/SVGLength.h: Transform an Length value to an absolute value by taking the SVG viewport
into account. (An SVG viewport is not the same as the CSS viewport.)
- svg/SVGLengthContext.cpp: Ditto.
(WebCore::SVGLengthContext::valueForLength):
- svg/SVGLengthContext.h:
- svg/SVGMaskElement.cpp: Make width/height presentation attribute.
(WebCore::SVGMaskElement::svgAttributeChanged):
(WebCore::SVGMaskElement::selfHasRelativeLengths): Deleted.
- svg/SVGMaskElement.h:
- svg/SVGPatternElement.cpp: Ditto.
(WebCore::SVGPatternElement::svgAttributeChanged):
(WebCore::SVGPatternElement::selfHasRelativeLengths): Deleted.
- svg/SVGPatternElement.h:
- svg/SVGRectElement.cpp: Ditto.
(WebCore::SVGRectElement::svgAttributeChanged):
(WebCore::SVGRectElement::selfHasRelativeLengths): Deleted.
- svg/SVGRectElement.h:
- svg/SVGSVGElement.cpp: Ditto.
(WebCore::SVGSVGElement::svgAttributeChanged): Clean up redundant layout calls.
(WebCore::SVGSVGElement::isPresentationAttribute): Deleted.
(WebCore::SVGSVGElement::collectStyleForPresentationAttribute): Deleted.
- svg/SVGSVGElement.h:
- svg/properties/SVGAnimatedProperty.cpp: Synchronize SVG DOM with DOM.
(WebCore::SVGAnimatedProperty::commitChange):
LayoutTests:
We already had a lot of tests for animating width/height as property.
So far they assumed that this is not possible. They simply needed to
be updated.
Furthermore, I added reference tests to test different inheritance
scenarios of CSS properties and setting them to elements.
A parsing test makes sure that the global property values inherit is
supported as well as CSS parsing rules for SVG attributes.
Negative tests test not-allowed behavior.
- platform/mac/svg/W3C-SVG-1.1/coords-units-03-b-expected.txt:
- svg/animations/attributeTypes-expected.txt:
- svg/animations/resources/attributeTypes.svg:
- svg/animations/script-tests/attributeTypes.js:
(sample1):
(sample2):
(sample3):
- svg/css/getComputedStyle-basic-expected.txt:
- svg/css/parse-height-expected.txt: Added.
- svg/css/parse-height.html: Added.
- svg/css/parse-width-expected.txt: Added.
- svg/css/parse-width.html: Added.
- svg/css/width-height-presentation-attribute-expected.svg: Added.
- svg/css/width-height-presentation-attribute.svg: Added.
- svg/custom/mask-excessive-malloc-expected.txt:
- svg/hixie/error/015-expected.txt:
- 2:48 AM Changeset in webkit [171340] by
-
- 2 edits in trunk/Tools
Fix my email address in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=135156
Reviewed by Gyuyoung Kim.
- Scripts/webkitpy/common/config/contributors.json:
- 1:50 AM Changeset in webkit [171339] by
-
- 5 edits in trunk
[GStreamer] [GTK] WebKit does not build with GStreamer 1.4
https://bugs.webkit.org/show_bug.cgi?id=135114
.:
Fix build with GStreamer 1.4
Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2014-07-22
Reviewed by Philippe Normand.
- Source/cmake/FindGStreamer.cmake: Check version 1.4.0 for the
gst-mpegts component instead of the unstable 1.3.x verstions.
Source/WebCore:
Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2014-07-22
Reviewed by Philippe Normand.
Fix build with GStreamer 1.4
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
Change GstMpegTs-prefixed types to use the GstMpegts prefix.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
Ditto.
Jul 21, 2014:
- 11:12 PM Changeset in webkit [171338] by
-
- 2 edits in trunk/Source/WebKit/mac
Unreviewed iOS build fix after r171321.
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
- 9:35 PM Changeset in webkit [171337] by
-
- 4 edits in trunk/Source/WebKit2
[EFL] Add Ewk prefix to enums of ewk_navigation_policy
https://bugs.webkit.org/show_bug.cgi?id=135144
Reviewed by Gyuyoung Kim.
All public enums of ewebkit should start with Ewk prefix.
This patch added Ewk prefix to Ewk_Event_Mouse_Button and Ewk_Event_Modifiers.
In addition, added missing description and default value for Ewk_Event_Modifier.
- UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
(toEwkEventMouseButton):
(toEwkEventModifiers):
(EwkNavigationPolicyDecision::mouseButton):
(EwkNavigationPolicyDecision::modifiers):
(ewk_navigation_policy_mouse_button_get):
(ewk_navigation_policy_modifiers_get):
(toEventMouseButton): Deleted.
(toEventModifierKeys): Deleted.
- UIProcess/API/efl/ewk_navigation_policy_decision.h:
- UIProcess/API/efl/ewk_navigation_policy_decision_private.h:
- 8:59 PM Changeset in webkit [171336] by
-
- 13 edits in trunk/Source
[iOS][WK2] Improve event throttling for Scroll Events
https://bugs.webkit.org/show_bug.cgi?id=135082
<rdar://problem/17445266>
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-21
Reviewed by Simon Fraser.
Source/WebCore:
This patch is composed of two parts. The first part in the WebKit layer
track an approximate measurement of the main thread responsiveness.
The second part in WebCore use that information to avoid sending events
if a page is unresponsive.
In WebCore, this patch only consider scroll events so far. Hopefully the concept
should be easy to generalize.
- loader/EmptyClients.h:
- page/ChromeClient.h:
Chrome client provides us with one information: how long an incoming event should be delayed.
Every port is free to implement whatever logic is suitable for them.
- page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::delayedScrollEventTimerFired):
(WebCore::FrameView::scrollPositionChanged):
(WebCore::FrameView::sendScrollEvent):
- page/FrameView.h:
Scroll events do not have any associated information so they can be coalesced by just skipping
all input hapenning during the throttling delay.
The implementation is done by using a timer to delay the events.
Source/WebKit2:
In the WebKit layer, we want a measure that is representative of the responsiveness.
In this patch, I use the total delay between a VisibleContentRectUpdate being dispatched
by the UIProcess, and the time RemoteLayerTreeDrawingArea flushes the layer tree.
The value used for eventThrottlingDelay() is computed by averaging the new value with
the old values with a 80/20 split, favoring the old data. Favoring historical data
over the last timing avoid excessively throttling for a single slow frame.
The computation of m_estimatedMainThreadLatency can be improved in the future, this is
a first cut keeping things simple.
With m_estimatedMainThreadLatency in our hands, we can compute our eventThrottlingDelay().
If m_estimatedMainThreadLatency is smaller than a single frame timespan, we have a fast page
and nothing is throttled.
If is it more than a frame, we throttle such that we can at least render two frames
per event dispatch based on the historical data.
The exact values will need some tweaking, but this set ensures well written pages get
60 events per seconds, while slow pages do not waste too much time on events.
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::eventThrottlingDelay):
- WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
(WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
- WebProcess/WebPage/ViewUpdateDispatcher.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::didFlushLayerTreeAtTime):
(WebKit::WebPage::didCommitLoad):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::eventThrottlingDelay):
(WebKit::WebPage::updateVisibleContentRects):
- WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
- 8:32 PM Changeset in webkit [171335] by
-
- 2 edits in trunk/Tools
Unreviewed test fix.
- Scripts/webkitperl/auto-version_unittest/autoVersionTests.pl: Revert
to older Perl 5.8 syntax for iterating over hashes to allow tests to
run on Mountain Lion bots.
- 7:36 PM Changeset in webkit [171334] by
-
- 2 edits2 adds in trunk/Source/WebInspectorUI
Web Inspector: Add esprima to the WebInspector.
https://bugs.webkit.org/show_bug.cgi?id=135098
Patch by Saam Barati <sbarati@apple.com> on 2014-07-21
Reviewed by Joseph Pecoraro.
This patch includes Esprima into the WebInspector and attaches its
exported function onto the WebInspector namespace object.
- UserInterface/External/Esprima: Added.
- UserInterface/External/Esprima/esprima.js: Added.
(.):
- UserInterface/Main.html:
- 7:15 PM Changeset in webkit [171333] by
-
- 2 edits in trunk/Tools
https://bugs.webkit.org/show_bug.cgi?id=135137
build.webkit.org/dashboard: webkitperl failures show up as yellow, not red
Reviewed by Darin Adler.
webkitperl results are binary, handle them the same way we handle bindings test results.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus):
(BuildbotTesterQueueView.prototype._presentPopoverForMultipleFailureKinds):
- 6:26 PM Changeset in webkit [171332] by
-
- 2 edits in trunk/Source/WebCore
Avoid putting empty-sized surfaces into IOSurfacePool
https://bugs.webkit.org/show_bug.cgi?id=135136
<rdar://problem/17478407>
Reviewed by Simon Fraser.
- platform/graphics/cg/IOSurfacePool.cpp:
(WebCore::IOSurfacePool::addSurface):
Avoid adding 0x0 surfaces to the pool, because they will wreak havoc
when their size is used as the key in the CachedSurfaceMap.
Additionally, avoid any empty sizes, because they're just pointless.
- 6:14 PM Changeset in webkit [171331] by
-
- 2 edits in tags/Safari-600.1.1.1/Tools
Merged r171324. <rdar://problem/17750334>
- 6:05 PM Changeset in webkit [171330] by
-
- 3 edits1 copy in tags/Safari-600.1.1.1
Merged r171319. <rdar://problem/17750334>
- 5:58 PM Changeset in webkit [171329] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION (r170361): In landscape with UI hidden, fixed position elements at top of screen are too low
https://bugs.webkit.org/show_bug.cgi?id=135141
<rdar://problem/17627525>
Reviewed by Benjamin Poulain.
We can't use the WKWebView's UIScrollView contentInsets to determine the unobscured rect
in MobileSafari, because contentInsets can't be changed dynamically while scrolling.
To get around this, MobileSafari sets obscured insets instead (but also sets a fixed
contentInset).
So if the client calls _setObscuredInsets:, always use _obscuredInsets to compute the
content insets.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _computedContentInset]):
(-[WKWebView _setObscuredInsets:]):
- 5:58 PM Changeset in webkit [171328] by
-
- 2 edits in trunk/Source/JavaScriptCore
Refactor ArrayPrototype to use getLength() and putLength() utility functions.
https://bugs.webkit.org/show_bug.cgi?id=135139.
Reviewed by Oliver Hunt.
- Specialize putProperty() to putLength() because it is only used for setting the length property.
- Added a getLength() utility function to get the value of the length property.
- Use these getLength() and putLength() functions instead of the existing code to get and put the length property. Less code to read, easier to understand.
- runtime/ArrayPrototype.cpp:
(JSC::getLength):
(JSC::putLength):
(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncToLocaleString):
(JSC::arrayProtoFuncJoin):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncPush):
(JSC::arrayProtoFuncReverse):
(JSC::arrayProtoFuncShift):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSort):
(JSC::arrayProtoFuncSplice):
(JSC::arrayProtoFuncUnShift):
(JSC::arrayProtoFuncReduce):
(JSC::arrayProtoFuncReduceRight):
(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf):
(JSC::putProperty): Deleted.
- 5:56 PM Changeset in webkit [171327] by
-
- 2 edits in tags/Safari-600.1.1.1/WebKitLibraries
Merged r171305. <rdar://problem/17743959>
- 5:38 PM Changeset in webkit [171326] by
-
- 4 edits in trunk/Source/WebKit2
Remove global cookie workaround from sandbox profiles
https://bugs.webkit.org/show_bug.cgi?id=135138
<rdar://17513375>
Reviewed by Alexey Proskuryakov.
Remove the workaround needed for global cookie access, and silencing
of the associated sandbox violation.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformDefaultCookieStorageDirectory):
- 5:37 PM Changeset in webkit [171325] by
-
- 2 edits in trunk/Tools
[Win] Follow-up for r171324.
- Scripts/webkitperl/auto-version_unittest/autoVersionTests.pl: Cygwin
perl reports itself as 'cygwin'; native Windows Perl reports as
'MSWin32'. We need to handle both cases.
- 5:29 PM Changeset in webkit [171324] by
-
- 2 edits in trunk/Tools
Unreviewed build fix after r171319.
- Scripts/webkitperl/auto-version_unittest/autoVersionTests.pl: This test should
only execute on Windows. It will fail on other platforms, so give it a way to
successfully exit.
- 5:26 PM Changeset in webkit [171323] by
-
- 9 edits in trunk
new Int32Array(new ArrayBuffer(100), 1, 1) shouldn't throw an error that says "RangeError: Byte offset and length out of range of buffer"
https://bugs.webkit.org/show_bug.cgi?id=125391
Patch by Diego Pino Garcia <Diego Pino Garcia> on 2014-07-21
Reviewed by Darin Adler.
Source/JavaScriptCore:
Create own method for verifying byte offset alignment.
- runtime/ArrayBufferView.h:
(JSC::ArrayBufferView::verifyByteOffsetAlignment):
(JSC::ArrayBufferView::verifySubRangeLength):
(JSC::ArrayBufferView::verifySubRange): Deleted.
- runtime/GenericTypedArrayViewInlines.h:
(JSC::GenericTypedArrayView<Adaptor>::create):
- runtime/JSDataView.cpp:
(JSC::JSDataView::create):
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::create):
LayoutTests:
- fast/canvas/webgl/data-view-crash-expected.txt:
- fast/canvas/webgl/data-view-test-expected.txt:
- fast/canvas/webgl/data-view-test.html:
- 5:10 PM Changeset in webkit [171322] by
-
- 5 edits in trunk/Source/WebKit2
Correct sandbox profiles to fix some excess privileges
https://bugs.webkit.org/show_bug.cgi?id=135134
<rdar://problem/17741886>
<rdar://problem/17739080>
Reviewed by Alexey Proskuryakov.
This cleans up our sandbox profiles to fix a few issues - the profiles
no longer allow us to issue file extension we have the ability to consume,
and tightens some of the other file access rules.
This means we have to addd some rules to allow us to access things
that we previously had access to due to lax file system restrictions.
Some of the features were fixable simply by using entitlements on the
process rather than custom rules.
- Configurations/WebContent-iOS.entitlements:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 5:09 PM Changeset in webkit [171321] by
-
- 8 edits in trunk/Source
WK1 should always setAcceleratedCompositingForFixedPositionEnabled(true) on
Yosemite
https://bugs.webkit.org/show_bug.cgi?id=135135
Reviewed by Darin Adler.
Source/WebCore:
This patch gets rid of the ChromeClient function that was introduced with
http://trac.webkit.org/changeset/171308 We’ll just enable the Setting instead.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::fixedPositionCreatesStackingContext): Deleted.
- page/ChromeClient.h:
(WebCore::ChromeClient::requiresAcceleratedCompositingForViewportConstrainedPosition): Deleted.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
Source/WebKit/mac:
Get rid of the ChromeClient function, and enable the Setting instead.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::requiresAcceleratedCompositingForViewportConstrainedPosition): Deleted.
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
- 4:44 PM Changeset in webkit [171320] by
-
- 11 edits in trunk/Source
[iOS WK2] Turn off position:fixed behavior when the keyboard is up
https://bugs.webkit.org/show_bug.cgi?id=132537
Reviewed by Benjamin Poulain.
Source/WebCore:
Export RenderObject::localToContainerPoint().
- WebCore.exp.in:
Source/WebKit2:
Make interaction with form elements inside position:fixed less terrible by re-laying out
fixed elements relative to the document while we have an assisted node. This ensures
that all parts of a position:fixed are accessible (e.g. inputs on the right side
of a fixed-width top bar).
- Shared/AssistedNodeInformation.cpp: Add a flag for being inside postion:fixed,
and encode/decode it.
(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):
- Shared/AssistedNodeInformation.h:
(WebKit::AssistedNodeInformation::AssistedNodeInformation):
- UIProcess/PageClient.h: Add isAssistingNode().
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::isAssistingNode):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::computeCustomFixedPositionRect): If we have an assisted
node, just use the document rect as the custom fixed position rect.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation): Get the selection rect first,
since we have to fix it up for position:fixed. If the element is inside fixed
position in the main frame, re-set the fixed position rect to the document rect
(which forces a layout), re-fetch elementRect, then set it back. This ensures
that the UI process gets an elementRect which it can zoom to correctly.
- 4:10 PM Changeset in webkit [171319] by
-
- 3 edits2 adds in trunk
Tools: [Win] Extend auto-version.pl to support 5-tuple versions
https://bugs.webkit.org/show_bug.cgi?id=135124
<rdar://problem/17750334>
Reviewed by David Kilzer.
Add test cases for auto-version.pl.
- Scripts/webkitperl/auto-version_unittest: Added.
- Scripts/webkitperl/auto-version_unittest/autoVersionTests.pl: Added.
WebKitLibraries: [Win] Extend auto-version.pl to handle 5-tuple versions
https://bugs.webkit.org/show_bug.cgi?id=135124
<rdar://problem/17750334>
Reviewed by David Kilzer.
Extend tuple parsing to handle up to five tuples, and as
few as a single tuple. On Windows, the two additional
tuples are unused.
Also corrected regular expression capture logic to use local
blocks, preventing later capture expressions from reusing
previous capture results when the current expression failed
to find a match (GRRR, Perl!).
Clean up code by putting logic into a couple of subroutines.
- win/tools/scripts/auto-version.pl:
- 4:07 PM Changeset in webkit [171318] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: fast/layers/no-clipping-overflow-hidden-added-after-transform.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=135133
- platform/mac/TestExpectations: Marked it as such.
- 3:17 PM Changeset in webkit [171317] by
-
- 6 edits in trunk/Source/WebKit2
Random crashes on the Web Thread due to Timers firing on the wrong thread in the UI process
https://bugs.webkit.org/show_bug.cgi?id=135132
<rdar://problem/17719832>
Reviewed by Simon Fraser.
- UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::ProcessThrottler):
(WebKit::ProcessThrottler::suspendTimerFired):
- UIProcess/ProcessThrottler.h:
- UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired):
- UIProcess/mac/ViewGestureController.h:
- UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired):
We can't use WebCore timers in the UI process because of coexistence concerns
(they fire on the Web Thread if there is one!), so use RunLoop::Timer instead.
- 1:47 PM Changeset in webkit [171316] by
-
- 5 edits2 adds in trunk
[MSE] YouTube video decode error when variant-switching
https://bugs.webkit.org/show_bug.cgi?id=135128
Reviewed by Brent Fulgham.
Source/WebCore:
Test: media/media-source/media-source-overlapping-decodetime.html
When variant-switching, the situation can arise where an existing sample with a presentation
timestamp of N and a decode timestamp of M, and a new sample with a presentation timestamp > N
and the same decode timestamp of M, will keep the new sample from being added to the SampleMap.
This can result in a decode error when samples depending on that new, missing sample are enqueued.
The MSE spec is silent on the issue of overlapping decode timestamps. However, it guarantees that
presentation timestamps are non-overlapping. So instead of using just the decode timestamp as a key
for storing the samples in decode order, use both the decode timestamp and the presentation timestamp.
That ensures that samples with different presentation times but equal decode times are both inserted
into the decode queue, and in the correct order.
- Modules/mediasource/SampleMap.cpp:
(WebCore::SampleIsRandomAccess::operator()): Update the parameter type to match the new KeyType.
(WebCore::SampleMap::addSample): Pass both decodeTime and presentationTime as the key to decodeOrder.
(WebCore::SampleMap::removeSample): Ditto.
(WebCore::DecodeOrderSampleMap::findSampleWithDecodeKey): Renamed from findSampleWithDecodeTime.
(WebCore::DecodeOrderSampleMap::reverseFindSampleWithDecodeKey): renamed from reverseFindSampleWithDecodeTime.
(WebCore::DecodeOrderSampleMap::findSyncSamplePriorToPresentationTime): Use renamed version of above.
(WebCore::DecodeOrderSampleMap::findSyncSampleAfterPresentationTime): Ditto.
(WebCore::DecodeOrderSampleMap::findDependentSamples): Ditto.
(WebCore::DecodeOrderSampleMap::findSampleWithDecodeTime): Deleted.
(WebCore::DecodeOrderSampleMap::reverseFindSampleWithDecodeTime): Deleted.
- Modules/mediasource/SampleMap.h:
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::removeCodedFrames): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
(WebCore::SourceBuffer::reenqueueMediaForTime): Ditto.
LayoutTests:
- media/media-source/media-source-overlapping-decodetime-expected.txt: Added.
- media/media-source/media-source-overlapping-decodetime.html: Added.
- 12:26 PM Changeset in webkit [171315] by
-
- 2 edits in trunk/Tools
Allow MiniBrowser WK1 to do element fullscreen
https://bugs.webkit.org/show_bug.cgi?id=135125
Reviewed by Simon Fraser.
Allow WK1 windows to go fullscreen using the DOM API.
- MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController awakeFromNib]): Enable the preference for
fullscreen.
- 12:20 PM Changeset in webkit [171314] by
-
- 6 edits in trunk/Source
[iOS] Handle QuickLook ResourceLoaders in the web process
https://bugs.webkit.org/show_bug.cgi?id=135113
Reviewed by David Kilzer.
Source/WebCore:
No new tests. QuickLook is not testable from WebKit.
- WebCore.exp.in:
- loader/ResourceLoadScheduler.cpp:
(WebCore::ResourceLoadScheduler::maybeLoadQuickLookResource): Start loading the ResourceLoader if it is for a QuickLook resource.
- loader/ResourceLoadScheduler.h:
Source/WebKit2:
The QuickLook framework registers a NSURLProtocol to handle loading subresources of the HTML documents it
generates. In order for these loads to succeed, we need to start them in the same process in which QuickLook
generated the main resource.
- WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
- 12:20 PM Changeset in webkit [171313] by
-
- 2 edits in trunk/LayoutTests
fast/canvas/canvas-putImageData-zero-alpha.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=131787
- platform/mac/TestExpectations: Mark it as such.
- 12:16 PM Changeset in webkit [171312] by
-
- 7 edits1 add in trunk/Source/WebInspectorUI
Back/Forward arrows (modern) are too large.
https://bugs.webkit.org/show_bug.cgi?id=135073
Reviewed by Joseph Pecoraro.
Changes to adjust new forward and back arrow sizes to be more consistent with the
universal design language. Moved WebInspector.Platform definition to its own file.
Refactored handling of image versions inside ImageUtilities.js.
- UserInterface/Base/ImageUtilities.js:
(.restoreImage):
(.generateImage):
(generateColoredImagesForCSS):
Make the default image versioning smarter.
- UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.contentLoaded.WebInspector.Platform.version.toString): Deleted.
(WebInspector.contentLoaded.WebInspector.Platform.toString): Deleted.
- UserInterface/Base/Platform.js: Added.
Move platform information definition into Platform.js.
- UserInterface/Main.html: Include Platform.js.
- UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
- UserInterface/Views/FindBanner.css:
(.find-banner > button > .glyph):
(body.mac-platform.legacy .find-banner > button > .glyph):
(.find-banner > button.segmented.left > .glyph):
(body.mac-platform.legacy .find-banner > button.segmented.left > .glyph):
(.find-banner > button.segmented.right > .glyph):
(body.mac-platform.legacy .find-banner > button.segmented.right > .glyph):
(.find-banner > button.segmented):
(body.mac-platform.legacy .find-banner > button.segmented):
- UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
Size of forward and back arrows adjusted.
- 12:15 PM Changeset in webkit [171311] by
-
- 2 edits in trunk/Source/WebCore
Case sensitive file system build fix.
- page/scrolling/ScrollingStateTree.cpp:
- 12:04 PM Changeset in webkit [171310] by
-
- 2 edits in trunk/Source/WebKit/mac
Build fix.
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::requiresAcceleratedCompositingForViewportConstrainedPosition):
- 11:34 AM Changeset in webkit [171309] by
-
- 3 edits in trunk/LayoutTests
Unreviewed hidpi test gardening.
Use Ahem font to ensure font size predictability.
- fast/forms/hidpi-fieldset-on-subpixel-position-when-legend-is-present-expected.html:
- fast/forms/hidpi-fieldset-on-subpixel-position-when-legend-is-present.html:
- 11:31 AM Changeset in webkit [171308] by
-
- 7 edits in trunk/Source
Put position:fixed elements into layers when a WK1 view is layer-backed
https://bugs.webkit.org/show_bug.cgi?id=135075
Reviewed by Darin Adler.
Source/WebCore:
This patch adds a new ChromeClient function called
requiresAcceleratedCompositingForViewportConstrainedPosition(). Since a view can
go in and out of layer backing, we need a ChromeClient method that can be
dynamically re-evaluated rather than using the existing settings for enabling
accelerated fixed and fixed that creates a stacking context.
Ensure that fixed elements create a stacking context when
requiresAcceleratedCompositingForViewportConstrainedPosition is true.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
New ChromeClient function.
- page/ChromeClient.h:
Source/WebKit/mac:
Returns true when the WebHTMLView has a layer.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::requiresAcceleratedCompositingForViewportConstrainedPosition):
- 11:26 AM Changeset in webkit [171307] by
-
- 3 edits in trunk/Source/WebCore
Add helper functions to dump the scrolling state tree from the debugger
https://bugs.webkit.org/show_bug.cgi?id=135101
Reviewed by Darin Adler.
Add debug-only showScrollingStateTree() functions that take a ScrollingStateTree* and ScrollingStateNode*
for use while debugging.
- page/scrolling/ScrollingStateTree.cpp:
(showScrollingStateTree):
- page/scrolling/ScrollingStateTree.h:
- 11:26 AM Changeset in webkit [171306] by
-
- 3 edits in trunk/Source/WebCore
[iOS WK1] Single touch div scrolling doesn't work in framesets (breaks Word previews)
https://bugs.webkit.org/show_bug.cgi?id=135103
<rdar://problem/11830219>
Reviewed by Darin Adler.
After r166117 all layer flushing starts on the root frame; we no longer flush layers
for each frame during painting. However, flushing GraphicsLayers can set some state
on a subframe RenderLayerCompositor that is now never processed, which breaks scroll
layer registration.
Fix by doing a walk of the Frame tree, and calling didFlushLayers() on subframe RenderLayerCompositors
before calling didFlushLayers() on self.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::didFlushLayers):
(WebCore::RenderLayerCompositor::notifySubframesAfterLayerFlush):
(WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers): Drive-by nullptr.
- rendering/RenderLayerCompositor.h:
- 10:44 AM Changeset in webkit [171305] by
-
- 2 edits in trunk/WebKitLibraries
[Win] Correct auto-version.pl script for two-digit version numbers
https://bugs.webkit.org/show_bug.cgi?id=135119
<rdar://problem/17743959>
Reviewed by David Kilzer.
The $MAJOR_VERSION must be the first digit of $BUILD_MAJOR_VERSION,
and $MINOR_VERSION must be the remaining digits.
Also correct regexp (line 90) that was allowing version numbers
larger than three digits to be processed.
- win/tools/scripts/auto-version.pl: Correct regular expression.
- 10:30 AM Changeset in webkit [171304] by
-
- 5 edits in trunk/LayoutTests
Unreviewed hidpi test gardening.
- fast/inline/hidpi-selection-gap-on-subpixel-position-expected.html:
- fast/inline/hidpi-selection-gap-on-subpixel-position.html: Speculative fix.
- fast/inline/hidpi-selection-gap-overlaps-inline-selection-expected.html:
- fast/inline/hidpi-selection-gap-overlaps-inline-selection.html: Use Ahem.
- 10:14 AM Changeset in webkit [171303] by
-
- 5 edits in trunk/Source/WebKit2
DatabaseProcess doesn't relaunch after crashing.
<rdar://problem/17717343> and https://bugs.webkit.org/show_bug.cgi?id=135117
Reviewed by Alexey Proskuryakov.
- UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::didClose): Tell the WebContext.
- UIProcess/WebContext.cpp:
(WebKit::WebContext::databaseProcessCrashed): Notify supplements, then clear the DatabaseProcessProxy pointer.
- UIProcess/WebContext.h:
- UIProcess/WebContextSupplement.h:
(WebKit::WebContextSupplement::processDidClose): Added. No users right now, but the patch in bug 135035 will need this.
- 9:50 AM Changeset in webkit [171302] by
-
- 3 edits in trunk/LayoutTests
REGRESSION(r150169): http/tests/cache/willsendrequest-returns-null-for-memory-cache-load.html fails
https://bugs.webkit.org/show_bug.cgi?id=116259
Updating expectations to acknowledge that the test is flaky on WK1 too (it depends
on preceding tests).
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 9:41 AM Changeset in webkit [171301] by
-
- 3 edits in trunk/LayoutTests
Unreviewed hidpi test gardening.
Use Ahem font to ensure font size predictability.
- fast/inline/hidpi-selection-gap-and-inline-selection-have-gap-rtl-expected.html:
- fast/inline/hidpi-selection-gap-and-inline-selection-have-gap-rtl.html:
- 8:14 AM Changeset in webkit [171300] by
-
- 2 edits in trunk/LayoutTests
Unreviewed EFL gardening
Remove passing tests from TestExpectations file.
- platform/efl/TestExpectations:
- 8:03 AM Changeset in webkit [171299] by
-
- 4 edits in trunk/Source/WebCore
[iOS] a Paused media session is not active
https://bugs.webkit.org/show_bug.cgi?id=135108
Reviewed by Darin Adler.
Activating the shared AudioSession will pause audio playing in another application,
so only report a Playing media sessions as active.
- platform/audio/MediaSessionManager.cpp:
- platform/audio/MediaSessionManager.h:
(WebCore::MediaSessionManager::activeAudioSessionRequired): Renamed from hasActive to make
clear what it does. Only return true for a session that is Playing.
- platform/audio/mac/MediaSessionManagerMac.cpp:
(MediaSessionManager::updateSessionState): hasActive renamed to activeAudioSessionRequired.
- 7:46 AM EFLWebKit edited by
- Update few information as the latest (diff)
- 2:38 AM Changeset in webkit [171298] by
-
- 2 edits in trunk/Tools
[GTK] Documentation files are added twice to the tarball
https://bugs.webkit.org/show_bug.cgi?id=135115
Reviewed by Sergio Villar Senin.
- gtk/manifest.txt: Remove duplicated rules.
- 2:04 AM Changeset in webkit [171297] by
-
- 4 edits in trunk
[GTK] Simplify make-dist command line arguments
https://bugs.webkit.org/show_bug.cgi?id=134832
Reviewed by Martin Robinson.
.:
- Source/PlatformGTK.cmake: Use --version instead of
--tarball-root when running make-dist.py.
Tools:
Remove --tarball-root and -o command line options and add
--version, since the version can be used to build both, the
tarball root and the output filename. When the version it's not
provided, the pkg-config file is used to get the version. Also
change the default value of build-dir to the current directory,
since it's very common to call make-dist.py from the build dir.
- gtk/make-dist.py:
(get_tarball_root_and_output_filename_from_arguments):
- 1:30 AM Changeset in webkit [171296] by
-
- 2 edits in trunk/Tools
[GTK] Reduce the size of the tarball generated by distcheck
https://bugs.webkit.org/show_bug.cgi?id=134802
Reviewed by Martin Robinson.
Add more rules to the manifest to decide what files to add:
- Do not include platform specific directories of other ports.
- Do not include port specific cmake files.
- Do not include Objective-C sources.
- Do not include .orig and .rej files.
- Do not include mac specific sandbox files.
- Only include the resources we actually build.
- gtk/manifest.txt:
- 1:26 AM Changeset in webkit [171295] by
-
- 112 edits1 add in trunk/LayoutTests
[CSS Blending] Cleanup tests in css3/blending
https://bugs.webkit.org/show_bug.cgi?id=132600
Reviewed by Mihnea Ovidenie.
Summary of changes:
- move common stylesheet classes to blending-style.css.
- remove trailing white spaces.
- replace tabs with spaces.
- remove the 'html' tags for consistency with the most of blending tests.
This patch does not change the txt and png test expectations.
- css3/blending/background-blend-mode-background-attachement-fixed-expected.html:
- css3/blending/background-blend-mode-background-attachement-fixed.html:
- css3/blending/background-blend-mode-background-clip-content-box-expected.html:
- css3/blending/background-blend-mode-background-clip-content-box.html:
- css3/blending/background-blend-mode-background-clip-padding-box-expected.html:
- css3/blending/background-blend-mode-background-clip-padding-box.html:
- css3/blending/background-blend-mode-background-origin-border-box-expected.html:
- css3/blending/background-blend-mode-background-origin-border-box.html:
- css3/blending/background-blend-mode-background-position-percentage-expected.html:
- css3/blending/background-blend-mode-background-position-percentage.html:
- css3/blending/background-blend-mode-background-repeat-no-repeat-expected.html:
- css3/blending/background-blend-mode-background-repeat-no-repeat.html:
- css3/blending/background-blend-mode-background-size-contain-expected.html:
- css3/blending/background-blend-mode-background-size-contain.html:
- css3/blending/background-blend-mode-background-size-cover-expected.html:
- css3/blending/background-blend-mode-background-size-cover.html:
- css3/blending/background-blend-mode-body-image-expected.html:
- css3/blending/background-blend-mode-body-image.html:
- css3/blending/background-blend-mode-body-transparent-color-and-image-expected.html:
- css3/blending/background-blend-mode-body-transparent-color-and-image.html:
- css3/blending/background-blend-mode-body-transparent-image-expected.html:
- css3/blending/background-blend-mode-body-transparent-image.html:
- css3/blending/background-blend-mode-crossfade-image-expected.html:
- css3/blending/background-blend-mode-crossfade-image.html:
- css3/blending/background-blend-mode-data-uri-svg-image-expected.html:
- css3/blending/background-blend-mode-data-uri-svg-image.html:
- css3/blending/background-blend-mode-default-value.html:
- css3/blending/background-blend-mode-different-image-formats.html:
- css3/blending/background-blend-mode-gif-color-2.html:
- css3/blending/background-blend-mode-gif-color.html:
- css3/blending/background-blend-mode-gradient-color.html:
- css3/blending/background-blend-mode-gradient-gradient.html:
- css3/blending/background-blend-mode-gradient-image.html:
- css3/blending/background-blend-mode-image-color-dynamic-expected.html:
- css3/blending/background-blend-mode-image-color-dynamic.html:
- css3/blending/background-blend-mode-image-color.html:
- css3/blending/background-blend-mode-image-image.html:
- css3/blending/background-blend-mode-image-svg.html:
- css3/blending/background-blend-mode-multiple-background-layers.html:
- css3/blending/background-blend-mode-separate-layer-declaration-expected.html:
- css3/blending/background-blend-mode-separate-layer-declaration.html:
- css3/blending/background-blend-mode-single-layer-no-blending.html:
- css3/blending/background-blend-mode-svg-color.html:
- css3/blending/background-blend-mode-svg-expected.html:
- css3/blending/background-blend-mode-svg.html:
- css3/blending/background-blend-mode-tiled-layers.html:
- css3/blending/blend-mode-accelerated-parent-overflow-hidden-expected.html:
- css3/blending/blend-mode-accelerated-parent-overflow-hidden.html:
- css3/blending/blend-mode-accelerated-with-multiple-stacking-contexts.html:
- css3/blending/blend-mode-ancestor-clipping-layer.html:
- css3/blending/blend-mode-background.html:
- css3/blending/blend-mode-blended-element-overlapping-composited-sibling-should-have-compositing-layer.html:
- css3/blending/blend-mode-body-child-background-color-expected.html:
- css3/blending/blend-mode-body-child-background-color.html:
- css3/blending/blend-mode-body-child-isolate-background-color-expected.html:
- css3/blending/blend-mode-body-child-isolate-background-color.html:
- css3/blending/blend-mode-body-child-isolate-html-background-color-expected.html:
- css3/blending/blend-mode-body-child-isolate-html-background-color.html:
- css3/blending/blend-mode-body-child.html:
- css3/blending/blend-mode-body-element-expected.html:
- css3/blending/blend-mode-body-element.html:
- css3/blending/blend-mode-clip-accelerated-blending-canvas.html:
- css3/blending/blend-mode-clip-accelerated-blending-child-expected.html:
- css3/blending/blend-mode-clip-accelerated-blending-child.html:
- css3/blending/blend-mode-clip-accelerated-blending-double-expected.html:
- css3/blending/blend-mode-clip-accelerated-blending-double.html:
- css3/blending/blend-mode-clip-accelerated-blending-with-siblings-expected.html:
- css3/blending/blend-mode-clip-accelerated-blending-with-siblings.html:
- css3/blending/blend-mode-clip-accelerated-transformed-blending-expected.html:
- css3/blending/blend-mode-clip-accelerated-transformed-blending.html:
- css3/blending/blend-mode-clip-rect-accelerated-blending-expected.html:
- css3/blending/blend-mode-clip-rect-accelerated-blending.html:
- css3/blending/blend-mode-html-element-screen.html:
- css3/blending/blend-mode-isolated-group-1.html:
- css3/blending/blend-mode-isolated-group-2.html:
- css3/blending/blend-mode-isolated-group-3.html:
- css3/blending/blend-mode-isolation-accelerated-overflow-hidden.html:
- css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending.html:
- css3/blending/blend-mode-isolation-flags-append-stacking-context-blending.html:
- css3/blending/blend-mode-isolation-flags-remove-non-stacking-context-blending.html:
- css3/blending/blend-mode-isolation-flags-remove-stacking-context-blending.html:
- css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation.html:
- css3/blending/blend-mode-isolation-flags-turn-off-blending.html:
- css3/blending/blend-mode-isolation-flags-turn-off-stacking-context.html:
- css3/blending/blend-mode-isolation-flags-turn-on-blending.html:
- css3/blending/blend-mode-isolation-flags-turn-on-stacking-context.html:
- css3/blending/blend-mode-isolation-overflow-hidden-expected.html:
- css3/blending/blend-mode-isolation-overflow-hidden.html:
- css3/blending/blend-mode-isolation-turn-off-self-painting-layer.html:
- css3/blending/blend-mode-isolation-turn-off-self-painting-layer1.html:
- css3/blending/blend-mode-isolation-turn-off-self-painting-layer2.html:
- css3/blending/blend-mode-isolation-turn-on-self-painting-layer.html:
- css3/blending/blend-mode-layers.html:
- css3/blending/blend-mode-overflow.html:
- css3/blending/blend-mode-parent-of-composited-blended-has-layer.html:
- css3/blending/blend-mode-reflection.html:
- css3/blending/blend-mode-simple-composited.html:
- css3/blending/blend-mode-transform-style.html:
- css3/blending/blend-mode-with-accelerated-sibling.html:
- css3/blending/blend-mode-with-body-expected.html:
- css3/blending/blend-mode-with-body.html:
- css3/blending/blend-mode-with-composited-descendant-should-have-layer.html:
- css3/blending/effect-background-blend-mode-stacking.html:
- css3/blending/isolation-isolate-blended-child-expected.html:
- css3/blending/isolation-isolate-blended-child.html:
- css3/blending/repaint/blend-mode-isolate-stacking-context.html:
- css3/blending/repaint/blend-mode-turn-off-isolation-no-effect.html:
- css3/blending/repaint/blend-mode-turn-off-isolation.html:
- css3/blending/resources/blending-style.css: Added.
This file contains classes shared by multiple blending tests.
- css3/blending/resources/dump-layer-tree.js: Added.
- css3/blending/script-tests/background-blend-mode-property-parsing.js:
- css3/blending/script-tests/blend-mode-property-parsing-invalid.js:
- css3/blending/script-tests/blend-mode-property-parsing.js:
- 1:18 AM Changeset in webkit [171294] by
-
- 19 edits in trunk/Source/WebCore
Unreviewed. Update GObject DOM bindings test results after r171285.
- bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
- bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
- bindings/scripts/test/GObject/WebKitDOMattribute.cpp:
- bindings/scripts/test/GObject/WebKitDOMreadonly.cpp:
- 12:46 AM Changeset in webkit [171293] by
-
- 12 edits in trunk/LayoutTests
[CSS Grid Layout] Rename gridAutoFlow[Row|Column] to gridAutoFlow[Row|Column]Sparse
https://bugs.webkit.org/show_bug.cgi?id=135013
Rename CSS styles in grid layout tests to make the name more explicit.
As the default mode for auto-placement algorithm is "sparse".
Reviewed by Darin Adler.
- fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.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-sparse.html:
- fast/css-grid-layout/grid-item-addition-auto-placement-update.html:
- fast/css-grid-layout/grid-item-auto-placement-automatic-span.html:
- fast/css-grid-layout/grid-item-auto-placement-definite-span.html:
- fast/css-grid-layout/grid-item-order-auto-flow-resolution.html:
- fast/css-grid-layout/grid-item-removal-auto-placement-update.html:
- fast/css-grid-layout/resources/grid.css:
(.gridAutoFlowColumnSparse):
(.gridAutoFlowRowSparse):
(.gridAutoFlowColumn): Deleted.
(.gridAutoFlowRow): Deleted.
Jul 20, 2014:
- 11:16 PM Changeset in webkit [171292] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed Fix test crashes when cloning video layer since r171286
https://bugs.webkit.org/show_bug.cgi?id=135112
Unreviewed. Fix crashing tests by conditionalizing inline video layer change.
compositing/video/video-reflection.html [ Crash ]
media/video-layer-crash.html [ Crash ]
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: add conditional
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: ditto
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): ditto
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): ditto
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer): ditto
- 10:36 PM Changeset in webkit [171291] by
-
- 3 edits in trunk/Source/WebKit2
Fix warnings caused by unused parameter.
https://bugs.webkit.org/show_bug.cgi?id=134975
Patch by KwangHyuk Kim <hyuki.kim@samsung.com> on 2014-07-20
Reviewed by Gyuyoung Kim.
Fix warnings on EwkView.cpp and LegacySessionStateCodingNone.cpp that are caused by unused parameter data.
- UIProcess/API/efl/EwkView.cpp:
(EwkViewEventHandler<EVAS_CALLBACK_MOUSE_IN>::handleEvent):
- UIProcess/LegacySessionStateCodingNone.cpp:
(WebKit::decodeLegacySessionState):
- 10:34 PM Changeset in webkit [171290] by
-
- 3 edits in trunk/Tools
[EFL] Enable mpg123 feature for gst-plugin-bad.
https://bugs.webkit.org/show_bug.cgi?id=135016
Patch by KwangHyuk Kim <hyuki.kim@samsung.com> on 2014-07-20
Reviewed by Laszlo Gombos.
enable-mpg123 feature is added to jhbuild in order to support playback of mp3 format.
- efl/install-dependencies:
- efl/jhbuild.modules:
- 9:30 PM Changeset in webkit [171289] by
-
- 2 edits in trunk/Source/WebCore
Reduce the chances of a race condition when sharing SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=135060
<rdar://problem/17729444>
Reviewed by Darin Adler.
We currently pass a SharedBuffer wrapped in WebCoreSharedBufferData to ImageIO for image
decoding. This is not thread safe since ImageIO will access this buffer on a separate
thread. We access SharedBuffer::buffer() on the other thread which resizes the Vector
m_buffer if m_size is greater than the vector size. Since the code in SharedBuffer::append()
sets m_size before appending the data to the buffer, m_size is out of sync with the m_buffer
size for the entire duration of the Vector append which could be doing a lot of copying if
the resource is large. While this change does not fix the race condition, we can at least
reduce the chances of SharedBuffer::buffer() calling resize() by setting m_size after the
cector has finished appending.
No new tests because no functional changes.
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::append):
- 8:08 PM Changeset in webkit [171288] by
-
- 17 edits in trunk/Source
Disable ff/rw based on canPlayFastForward and canPlayFastRewind.
https://bugs.webkit.org/show_bug.cgi?id=134894
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-20
Reviewed by Darin Adler.
Source/WebCore:
- WebCore.exp.in: add symbol for canPlayFastReverse
- html/HTMLMediaElement.cpp: Add two new accessors
(WebCore::HTMLMediaElement::nextScanRate): possibly limit scanRate
(WebCore::HTMLMediaElement::canPlayFastForward): added
(WebCore::HTMLMediaElement::canPlayFastReverse): added
- html/HTMLMediaElement.h: declare two new methods
- platform/graphics/MediaPlayer.cpp: Plumb through two new accessors
(WebCore::MediaPlayer::maxFastForwardRate): added
(WebCore::MediaPlayer::minFastReverseRate): added
- platform/graphics/MediaPlayer.h: Declare new methods
- platform/graphics/MediaPlayerPrivate.h: Added two new methods.
(WebCore::MediaPlayerPrivateInterface::maxFastForwardRate): added
(WebCore::MediaPlayerPrivateInterface::minFastReverseRate): added
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: member to cache ff/rw enabled state
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): observe on item canPlayFastForward canPlayFastReverse
(WebCore::MediaPlayerPrivateAVFoundationObjC::canPlayFastForwardDidChange): added
(WebCore::MediaPlayerPrivateAVFoundationObjC::canPlayFastReverseDidChange): added
(WebCore::itemKVOProperties): observe canPlayFastForward canPlayFastRewind
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): ditto
- platform/ios/WebVideoFullscreenInterface.h: add new method
- platform/ios/WebVideoFullscreenInterfaceAVKit.h: ditto
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm: ditto
(WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse): Set value on WebAVPlayerController.
(-[WebAVPlayerController canScanBackward]): Deleted.
(+[WebAVPlayerController keyPathsForValuesAffectingCanScanBackward]): Deleted.
- platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::updateForEventName): update canPlayFastReverse.
Source/WebKit2:
Add setCanPlayFastReverse
- UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: ditto
- WebProcess/ios/WebVideoFullscreenManager.h: ditto
- WebProcess/ios/WebVideoFullscreenManager.mm: ditto
(WebKit::WebVideoFullscreenManager::setCanPlayFastReverse): ditto
- 7:34 PM Changeset in webkit [171287] by
-
- 2 edits in trunk/Source/WebCore
HTMLMediaElement should registerWithDocument on iOS
https://bugs.webkit.org/show_bug.cgi?id=135084
<rdar://problem/17702531>
Reviewed by Andreas Kling.
Otherwise it won't know when the visibility changes!
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::registerWithDocument):
(WebCore::HTMLMediaElement::unregisterWithDocument):
- 7:30 PM Changeset in webkit [171286] by
-
- 10 edits in trunk/Source
Decrease flicker when enter and exit fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=134919
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-20
Reviewed by Simon Fraser.
Source/WebCore:
Put AVPlayerLayer in a container layer so moving it between inline and fullscreen
is as easy as adding and removing it from a containter layer; no need to do a layout.
Make sure fullscreen layers are transparent before moving moving the AVPlayerLayer
between inline and fullscreen so you don't briefly see the empty fullscreen layers.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::platformLayer): remove fullscreen special case.
(WebCore::HTMLMediaElement::setVideoFullscreenLayer): no need to recalc style
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: add inline container layer
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
add WebVideoContainerLayer to contain AVPlayerLayer and keep layout correct.
(-[WebVideoContainerLayer setBounds:]): forward setbounds to set child frame.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): create the video container layer
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): destroy the video container layer
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer): use container layer instead of video layer
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): use transactions to prevent unwanted animation.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): ditto
- platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::layerTypeForPlatformLayer): WebVideoContainerLayer is a kind of AVPlayerLayer
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController didCleanupFullscreen]): remove video fullscreen layer first
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setupFullscreen): make background transparent during transition.
dispatch_async to allow CATransaction to complete before calling didSetupFullscreen()
Source/WebKit2:
Change the sequence of tear down and use transparency to prevent flicker when entering and exiting fullscreen.
- UIProcess/ios/WebVideoFullscreenManagerProxy.mm: wait to remove layerHost until didCleanupFullscreen
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen): removed from here
(WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen): added here
- WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::didSetupFullscreen): use transparent background during transition
- 7:19 PM Changeset in webkit [171285] by
-
- 17 edits in trunk/Source/WebCore
Move ExceptionCodeDescription.h into the files that actually need it
https://bugs.webkit.org/show_bug.cgi?id=134968
Reviewed by Darin Adler.
No new tests because no functional changes.
- Modules/indexeddb/IDBDatabaseException.cpp:
- Modules/webdatabase/SQLException.cpp:
- bindings/js/JSDOMBinding.cpp:
- bindings/objc/ExceptionHandlers.mm:
- bindings/scripts/CodeGeneratorGObject.pm:
(Generate):
- dom/DOMCoreException.cpp:
- dom/EventException.cpp:
- dom/ExceptionBase.cpp:
- dom/ExceptionCode.h:
- dom/RangeException.cpp:
- fileapi/FileException.cpp:
- inspector/DOMEditor.cpp:
- inspector/InspectorDOMAgent.cpp:
- svg/SVGException.cpp:
- xml/XMLHttpRequestException.cpp:
- xml/XPathException.cpp:
- 5:34 PM Changeset in webkit [171284] by
-
- 4 edits1 add in trunk
Source/WebCore: <rdar://problems/17742611> -[_WKActivatedElementInfo image] is often empty
https://bugs.webkit.org/show_bug.cgi?id=135107
Reviewed by Sam Weinig.
Test: TestWebKitAPI/Tests/mac/RenderedImageFromDOMNode.mm
- page/FrameView.cpp:
(WebCore::FrameView::paintContents): To work around http://webkit.org/b/135106, replace the
paint root with its nearest ancestor that isn’t an inline with culled line boxes, if needed.
Tools: Test for <rdar://problems/17742611> -[_WKActivatedElementInfo image] is often empty
https://bugs.webkit.org/show_bug.cgi?id=135107
Reviewed by Sam Weinig.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/RenderedImageFromDOMNode.mm: Added.
(-[RenderedImageFromDOMNodeFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):
- 1:11 PM Changeset in webkit [171283] by
-
- 4 edits in trunk/Source/WebCore
Crashes seen in wheel event handling
https://bugs.webkit.org/show_bug.cgi?id=135102
Reviewed by Beth Dakin.
Speculative fix based on guesses about what could be crashing.
The crash seems to be calling ref on an event target, and my guess is that this
has something to do with latching.
- page/EventHandler.cpp:
(WebCore::EventHandler::platformPrepareForWheelEvents): Updated argument types.
(WebCore::EventHandler::handleWheelEvent): Refactored a little and made some local
variables use RefPtr instead of raw pointers. Also added some comments.
- page/EventHandler.h: Changed argument types to RefPtr.
- page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::platformPrepareForWheelEvents): Updated argument types.
Also added a FIXME.
- 11:33 AM WikiStart edited by
- (diff)
- 11:31 AM JavaScriptCore edited by
- (diff)
- 11:27 AM FTLJIT edited by
- (diff)
- 11:00 AM Changeset in webkit [171282] by
-
- 2 edits in trunk/Source/WebCore
Print layerIDs in GraphicsLayer dumps
https://bugs.webkit.org/show_bug.cgi?id=135100
Reviewed by Darin Adler.
When calling showGraphicsLayerTree() from the debugger, it's useful to show
layerIDs so they can be correlated with remote layer tree transactions. So
when dumping with debug info, dump the primary layer ID.
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties):
- 9:49 AM Changeset in webkit [171281] by
-
- 1 edit in trunk/Source/WebKit2/ChangeLog
Updated Radar link
- 9:48 AM Changeset in webkit [171280] by
-
- 2 edits in trunk/Source/WebKit2
<rdar://problem/17739804> REGRESSION (r171057): Crash in WebPage::getPositionInformation()
https://bugs.webkit.org/show_bug.cgi?id=135099
Reviewed by David Kilzer.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation): Added a null check.
- 9:45 AM Changeset in webkit [171279] by
-
- 2 edits in trunk/Source/WebCore
[iOS] ignore requests to set volume
https://bugs.webkit.org/show_bug.cgi?id=135081
Applied post-review comments from Darin Adler.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume): Don't include unreachable
code on iOS.
- 9:16 AM Changeset in webkit [171278] by
-
- 7 edits in trunk
ES6: Implement Math.sign()
https://bugs.webkit.org/show_bug.cgi?id=134980
Patch by Diego Pino Garcia <Diego Pino Garcia> on 2014-07-20
Reviewed by Darin Adler.
Source/JavaScriptCore:
- runtime/MathObject.cpp:
(JSC::MathObject::finishCreation):
(JSC::mathProtoFuncSign):
LayoutTests:
- js/script-tests/Object-getOwnPropertyNames.js:
- js/script-tests/math.js:
- 8:08 AM Changeset in webkit [171277] by
-
- 2 edits in trunk/Tools
Checker: Value stored to 'kernResult' is never read (LayoutTestHelper.m:164)
<http://webkit.org/b/135096>
Reviewed by Alexey Proskuryakov.
- DumpRenderTree/mac/LayoutTestHelper.m:
(lockDownDiscreteGraphics): Check the return values of
IOServiceOpen() and IOObjectRelease(), and log if not
KERN_SUCCESS.
Jul 19, 2014:
- 9:32 PM Changeset in webkit [171276] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: TextContentView calls wrong prototype function in the hidden() function
https://bugs.webkit.org/show_bug.cgi?id=135097
Patch by Saam Barati <sbarati@apple.com> on 2014-07-19
Reviewed by Timothy Hatcher.
Corollary bug to: https://bugs.webkit.org/show_bug.cgi?id=135001
- UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView.prototype.hidden):
- 5:04 PM Changeset in webkit [171275] by
-
- 3 edits in branches/safari-537.78-branch
Merged r170946. <rdar://problem/17684656>
- 4:59 PM Changeset in webkit [171274] by
-
- 3 edits in branches/safari-537.78-branch
Merged r170135. <rdar://problem/17684651>
- 4:31 PM Changeset in webkit [171273] by
-
- 3 edits1 copy in branches/safari-537.78-branch/Source/WebKit2
Merged r169448. <rdar://problem/17684663>
- 4:19 PM Changeset in webkit [171272] by
-
- 2 edits in branches/safari-537.78-branch/Source/WebCore
Merged r170513. <rdar://problem/17684622>
- 4:07 PM Changeset in webkit [171271] by
-
- 3 edits in branches/safari-537.78-branch/Source/WebCore
Merged r170028. <rdar://problem/17689801>
- 4:03 PM Changeset in webkit [171270] by
-
- 2 edits in branches/safari-537.78-branch/Source/WebCore
Merged r170026. <rdar://problem/17689834>
- 4:00 PM Changeset in webkit [171269] by
-
- 3 edits3 copies in branches/safari-537.78-branch
Merged r169849. <rdar://problem/17684636>
- 3:56 PM Changeset in webkit [171268] by
-
- 3 edits2 copies in branches/safari-537.78-branch
Merged r169848. <rdar://problem/17684630>
- 3:50 PM Changeset in webkit [171267] by
-
- 2 edits in branches/safari-537.78-branch/Source/WebKit2
Merged r169757. <rdar://problem/17684670>
- 3:48 PM Changeset in webkit [171266] by
-
- 2 edits in branches/safari-537.78-branch/Source/WebCore
Merged r169726. <rdar://problem/17684616>
- 1:15 PM Changeset in webkit [171265] by
-
- 2 edits in trunk/Tools
Update.
- Scripts/webkitpy/common/config/watchlist:
- 11:07 AM Changeset in webkit [171264] by
-
- 3 edits in trunk/Source/WebCore
<https://webkit.org/b/135085> Ensure that make_names.pl generates the same result when run multiple times.
Perl 5.18 introduced hash randomization. This results in the iteration order of hashes being different
from one run to the next. To ensure identical output we can iterate over the hash keys in sorted order.
Reviewed by Alexey Proskuryakov.
- bindings/scripts/StaticString.pm:
(GenerateStrings):
(GenerateStringAsserts):
- dom/make_names.pl:
- 9:24 AM WebKitGTK/KeepingTheTreeGreen edited by
- (diff)
- 9:16 AM Changeset in webkit [171263] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed GTK gardening.
- platform/gtk/TestExpectations: Report and mark new failures. Update some expectations.
- 3:10 AM Changeset in webkit [171262] by
-
- 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):
- 3:08 AM Changeset in webkit [171261] by
-
- 2 edits in trunk/Source/WebCore
Document::unregisterNodeListforInvalidation() and Document::unregisterCollection() have incorrect assertions
https://bugs.webkit.org/show_bug.cgi?id=134869
Reviewed by Darin Adler.
Both methods should assert that the relevant HashMap is either empty if invalidation originates
from Document::invalidateNodeListAndCollectionCaches() or acutally contains the element that is
being invalidated. In the first case the HashMap is empty because its entries were moved out in
the Document::invalidateNodeListAndCollectionCaches().
This was exposed by r170995 (later rolled out in r170999) which introduced move constructor and
move assignment operators for HashTable. The assertions in the titular methods won't be passing
until r170995 relands.
- dom/Document.cpp:
(WebCore::Document::unregisterNodeListForInvalidation):
- 3:02 AM Changeset in webkit [171260] by
-
- 4 edits in trunk/Source/WebKit2
Consistently use uint64_t as the handle parameter type for the SetAcceleratedCompositingWindowId message
https://bugs.webkit.org/show_bug.cgi?id=135047
Reviewed by Darin Adler.
UIProcess' WebPageProxy is handling this parameter as an uint64_t, it should be handled as such
in WebProcess as well.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in: Also changed the parameter name to match other places.
- WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::setAcceleratedCompositingWindowId):
Jul 18, 2014:
- 10:25 PM Changeset in webkit [171259] by
-
- 2 edits in trunk/Source/WebCore
[iOS] ignore requests to set volume
https://bugs.webkit.org/show_bug.cgi?id=135081
Reviewed by Jer Noble.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume): Do nothing on iOS.
- 9:59 PM Changeset in webkit [171258] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Perf dashboard shouldn't show the full git hash
https://bugs.webkit.org/show_bug.cgi?id=135083
Reviewed by Benjamin Poulain.
Detect Git/Mercurial hash by checking the length.
If it's a hash, use the first 8 characters in the label
while retaining the full length to be used in hyperlinks.
- public/js/helper-classes.js:
(.this.formattedRevisions):
(TestBuild):
- 6:30 PM Changeset in webkit [171257] by
-
- 2 edits in trunk/Source/WebKit2
We don't provide an extension to the temp file used for uploads
https://bugs.webkit.org/show_bug.cgi?id=135079
Reviewed by Sam Weinig.
Make sure didChooseFilesForOpenPanelWithDisplayStringAndIcon vends
extensions for the files passed to the content process.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
- 5:52 PM Changeset in webkit [171256] by
-
- 2 edits in trunk/Source/WebKit2
ASSERTion failures in ViewGestureController indicating that we're copying WebBackForwardList
https://bugs.webkit.org/show_bug.cgi?id=135080
<rdar://problem/17734714>
Reviewed by Sam Weinig.
- UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::canSwipeInDirection):
- 5:51 PM Changeset in webkit [171255] by
-
- 2 edits in trunk/Tools
Revert accidental commit to MiniBrowser to make everything layer backed.
- MiniBrowser/mac/BrowserWindowController.m:
(-[BrowserWindowController windowDidLoad]):
- 5:47 PM Changeset in webkit [171254] by
-
- 3 edits2 copies in branches/safari-537.78-branch
Merge r169318.
- 5:21 PM Changeset in webkit [171253] by
-
- 2 edits in trunk/Source/WebKit2
_WKActivatedElementInfo.title should fallback to innerText if the link doesn't have title attribute.
https://bugs.webkit.org/show_bug.cgi?id=135077
When populate InteractionInformationAtPosition's title value, use a link element's innerText if it
doesn't have title attribute.
Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2014-07-18
Reviewed by Dan Bernstein.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
- 5:19 PM Changeset in webkit [171252] by
-
- 25 edits in trunk/Source
[iOS] Tapping "Allow Website" on a restricted page does not bring up the keypad
https://bugs.webkit.org/show_bug.cgi?id=135072
<rdar://problem/17528188>
Reviewed by David Kilzer.
Source/WebCore:
No new tests. Content filtering is not testable from WebKit.
- WebCore.exp.in: Exported necessary ContentFilter symbols.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading): Called FrameLoaderClient::contentFilterDidBlockLoad().
(WebCore::DocumentLoader::responseReceived): Created a new ContentFilter.
(WebCore::DocumentLoader::dataReceived): Called FrameLoaderClient::contentFilterDidBlockLoad().
(WebCore::DocumentLoader::setContentFilterForBlockedLoad): Deleted.
(WebCore::DocumentLoader::handleContentFilterRequest): Deleted.
- loader/DocumentLoader.h:
- loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::contentFilterDidBlockLoad):
- loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy): Removed the check for unblock navigations, as this is now
handled at the WebKit layer.
- platform/ContentFilter.h: ContentFilter no longer needs to be RefCounted, so made various changes in order to
make it compatible with unique_ptr.
- platform/ios/ContentFilterIOS.mm:
(WebCore::scheme): Changed from a public member function to a static inline free function.
(WebCore::ContentFilter::handleUnblockRequestAndDispatchIfSuccessful): Renamed from requestUnblockAndDispatchIfSuccessful.
- platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::ContentFilter): Added a default constructor for use during message decoding.
(WebCore::ContentFilter::addData): Removed calls to ref() and deref(). These were never actually needed since
we were dispatching the block synchronously.
(WebCore::ContentFilter::finishedAddingData): Ditto.
(WebCore::ContentFilter::encode): Encoded m_platformContentFilter to the NSKeyedArchiver if it conforms to NSSecureCoding.
(WebCore::ContentFilter::decode): Decoded m_platformContentFilter from the NSKeyedUnarchiver if it conforms to NSSecureCoding.
(WebCore::ContentFilter::create): Deleted.
Source/WebKit/mac:
- WebCoreSupport/WebFrameLoaderClient.h: Override contentFilterDidBlockLoad().
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDidStartProvisionalLoad): Reset contentFilterForBlockedLoad to nullptr.
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Check if this is navigation represents an
unblock request and ignore if so.
- WebView/WebFrame.mm:
(-[WebFrame _contentFilterDidHandleNavigationAction:]): Called ContentFilter::handleUnblockRequestAndDispatchIfSuccessful().
If the unblock is successful, reload the main frame.
- WebView/WebFrameInternal.h:
Source/WebKit2:
- Shared/WebCoreArgumentCoders.h: Declared an ArgumentCoder for WebCore::ContentFilter.
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<ContentFilter>::encode): Encoded the ContentFilter using a NSKeyedArchiver.
(IPC::ArgumentCoder<ContentFilter>::decode): Decoded the ContentFilter using a NSKeyedUnarchiver.
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): Called WebFrameProxy::setContentFilterForBlockedLoad().
- UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didStartProvisionalLoad): Reset m_contentFilterForBlockedLoad to nullptr.
(WebKit::WebFrameProxy::contentFilterDidHandleNavigationAction): Called ContentFilter::handleUnblockRequestAndDispatchIfSuccessful().
If the unblock is successful, reload the WebPageProxy.
- UIProcess/WebFrameProxy.h:
(WebKit::WebFrameProxy::setContentFilterForBlockedLoad):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction): Check if this is navigation represents an unblock
request and ignore if so.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in: Defined ContentFilterDidBlockLoadForFrame.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad): Sent ContentFilterDidBlockLoadForFrame to the WebPageProxy.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- 5:11 PM Changeset in webkit [171251] by
-
- 2 edits in branches/safari-537.78-branch/Source/JavaScriptCore
Merge patch for <rdar://problem/16589513>
- 5:00 PM Changeset in webkit [171250] by
-
- 5 edits3 adds in trunk
[iOS WK2] position:fixed in iframes with programmatic scroll could end up in the wrong place
https://bugs.webkit.org/show_bug.cgi?id=135078
Source/WebCore:
<rdar://problem/17401823>
Reviewed by Tim Horton.
When the UI-side scrolling tree receives a requested scroll position update, it scrolls
the node (e.g. a frame) then traverses child nodes to update them, e.g. for fixed position.
However, we would always use a viewport rect for the main document (from the scrolling tree),
which is not appropriate for subframes. Subframes should just use their own visible
rect to position fixed children.
Test: platform/mac-wk2/tiled-drawing/scrolling/frames/fixed-inside-frame.html
- page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
(WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
Source/WebKit2:
<rdar://problem/17401823>
Reviewed by Tim Horton.
Fix the logging of requested scroll position and frame scale factor.
- Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::RemoteScrollingTreeTextStream::dump):
LayoutTests:
Reviewed by Tim Horton.
Test with position:fixed inside an iframe that scrolls programmatically.
- platform/mac-wk2/tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt: Added.
- platform/mac-wk2/tiled-drawing/scrolling/frames/fixed-inside-frame.html: Added.
- platform/mac-wk2/tiled-drawing/scrolling/frames/resources/autoscrolling-frame-with-fixed.html: Added.
- 4:57 PM Changeset in webkit [171249] by
-
- 1 edit1 add in trunk
Add a manual test for r135044
<https://bugs.webkit.org/show_bug.cgi?id=135044>
Rubber-stamped by Andy Estes.
- ManualTests/ios/typing-in-field-that-clears-on-keyup.html: Added.
- 3:50 PM Changeset in webkit [171248] by
-
- 2 edits in tags/Safari-538.46.41/Source/WebCore
Merged r171215. <rdar://problem/17721209>
- 3:39 PM Changeset in webkit [171247] by
-
- 8 edits in trunk
Add a new 'analyze' target to the makefile. This will make use of a new
'PATH_TO_SCAN_BUILD' which, if set will wrap xcodebuild in the clang
static analyzer.
https://bugs.webkit.org/show_bug.cgi?id=135057
<rdar://problem/10193187>
Reviewed by David Kilzer.
- Makefile:
- Makefile.shared:
- Source/Makefile:
- 3:24 PM Changeset in webkit [171246] by
-
- 3 edits in trunk/Source/WebCore
Fixed position elements are misplaced when a WK1 view has contentInsets set
https://bugs.webkit.org/show_bug.cgi?id=135031
-and corresponding-
<rdar://problem/17682335>
Reviewed by Tim Horton.
[NSScrollView documentVisibleRect] includes content that is within the inset-area
of a view, but WebCore is interested in the content that is fully visible, so we
need to factor the inset sizes out of this rect.
Implement contract() to avoid the awkwardness of calling expand() with negative
values.
- platform/graphics/IntSize.h:
(WebCore::IntSize::contract):
Factor out insets
- platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformVisibleContentRect):
(WebCore::ScrollView::platformVisibleContentSize):
- 3:08 PM Changeset in webkit [171245] by
-
- 2 edits in trunk/Tools
Fix EFL+GTK.
- Scripts/run-jsc-stress-tests:
- 2:30 PM Changeset in webkit [171244] by
-
- 2 edits in tags/Safari-538.46.41/Source/WebCore
Rollout r171236. <rdar://problem/17721209>
- 2:26 PM Changeset in webkit [171243] by
-
- 5 edits in tags/Safari-538.46.41/Source
Versioning.
- 1:58 PM Changeset in webkit [171242] by
-
- 2 edits in trunk/LayoutTests
media/video-seek-with-negative-playback.html is flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=135071
- platform/mac/TestExpectations: Marked it as such.
- 1:54 PM Changeset in webkit [171241] by
-
- 5 edits in trunk
Exception fuzzing should work on iOS
https://bugs.webkit.org/show_bug.cgi?id=135070
Reviewed by Mark Hahnenberg.
Source/JavaScriptCore:
- tests/exceptionFuzz.yaml:
Tools:
- Scripts/jsc-stress-test-helpers/js-exception-fuzz:
(fail):
- Scripts/run-jsc-stress-tests:
- 1:50 PM Changeset in webkit [171240] by
-
- 3 edits in trunk/Source/WebKit2
[Cocoa] Use RetainPtr in _WKRemoteObjectInterface
https://bugs.webkit.org/show_bug.cgi?id=135062
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-18
Reviewed by Anders Carlsson.
Switch to RetainPtr instead of manual memory management of ivars.
- Shared/API/Cocoa/_WKRemoteObjectInterface.h:
- Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(-[_WKRemoteObjectInterface initWithProtocol:identifier:]):
(-[_WKRemoteObjectInterface identifier]):
(-[_WKRemoteObjectInterface description]):
(-[_WKRemoteObjectInterface dealloc]): Deleted.
- 1:34 PM Changeset in webkit [171239] by
-
- 15 edits in trunk/Source
Take navigation snapshots whenever the current back-forward item is going to change
https://bugs.webkit.org/show_bug.cgi?id=135058
<rdar://problem/17464515>
Reviewed by Dan Bernstein.
Instead of trying to have the UI process figure out when to take navigation snapshots by itself,
snapshot whenever the Web process says that the current back-forward item is going to change.
This fixes snapshotting timing with pushState, and lets us bottleneck snapshotting down to
just two places instead of 5.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::goForward):
(WebKit::WebPageProxy::goBack):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
We no longer need to special-case taking navigation snapshots
when the UI process changes the back forward item or upon
didStartProvisionalLoadForFrame, because we'll always snapshot
in willChangeCurrentHistoryItem in all of these cases.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willChangeCurrentHistoryItem):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
Add willChangeCurrentHistoryItem message, which comes from the Web process.
When it arrives, take a navigation snapshot.
- UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
Take the pre-swipe navigation snapshot before telling WebPageProxy that we're doing a swipe,
so that it doesn't bail from taking the snapshot because we have a snapshot up.
(WebKit::ViewGestureController::endSwipeGesture):
We no longer need to explicitly disable snapshotting while navigating, because
we will avoid taking the snapshot if there's a snapshot being displayed.
- UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::~ViewGestureController):
Remove the snapshot if it's still up when ViewGestureController is destroyed.
The Mac version of ViewGestureController is destroyed on Web process crashes
because it is a message receiver, so it is not guaranteed to have the same
lifetime as the WebPageProxy and friends.
(WebKit::ViewGestureController::trackSwipeGesture):
Make use of recordNavigationSnapshot.
(WebKit::ViewGestureController::endSwipeGesture):
Ditto from the Mac version.
- UIProcess/mac/ViewSnapshotStore.h:
(WebKit::ViewSnapshotStore::disableSnapshotting): Deleted.
(WebKit::ViewSnapshotStore::enableSnapshotting): Deleted.
- UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::ViewSnapshotStore):
(WebKit::ViewSnapshotStore::recordSnapshot):
Remove the snapshot disabling mechanism and bail from snapshotting if we're
showing a snapshot, as mentioned above.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willChangeCurrentHistoryItem):
- WebProcess/WebPage/WebPage.h:
Proxy willChangeCurrentHistoryItem from HistoryController to the UI process.
- loader/HistoryController.cpp:
(WebCore::HistoryController::updateForCommit):
(WebCore::HistoryController::recursiveUpdateForCommit):
(WebCore::HistoryController::recursiveUpdateForSameDocumentNavigation):
(WebCore::HistoryController::createItem):
Use setCurrentItem instead of duplicating the contents of it inside each of these functions.
(WebCore::HistoryController::setCurrentItem):
(WebCore::HistoryController::replaceCurrentItem):
When setting or replacing the current item, let the FrameLoaderClient know that we're going
to change which history item is "current".
- loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::willChangeCurrentHistoryItem): Added.
- 12:41 PM Changeset in webkit [171238] by
-
- 2 edits in trunk/Tools
run-jsc-stress-tests should be able to run helper-based tests in remote mode
https://bugs.webkit.org/show_bug.cgi?id=135064
Reviewed by Mark Hahnenberg.
- Scripts/run-jsc-stress-tests:
- 12:29 PM Changeset in webkit [171237] by
-
- 2 edits in trunk/Tools
run-jsc-stress-tests: rename $copy to $doNotMessWithVMPath
https://bugs.webkit.org/show_bug.cgi?id=135061
Rubber stamped by Mark Hahnenberg.
- Scripts/run-jsc-stress-tests:
- 12:17 PM Changeset in webkit [171236] by
-
- 2 edits in tags/Safari-538.46.41/Source/WebCore
Merged r171215. <rdar://problem/17721209>
- 12:15 PM Changeset in webkit [171235] by
-
- 2 edits in branches/safari-600.1-branch/Source/WebKit2
Merged r171209. <rdar://problem/17720696>
- 12:13 PM Changeset in webkit [171234] by
-
- 2 edits in tags/Safari-600.1.1.1/Source/WebKit2
Merged r171209. <rdar://problem/17720696>
- 12:13 PM Changeset in webkit [171233] by
-
- 2 edits in trunk/Tools
Refactor run-jsc-stress-tests VM copying code to remove some abstractions
https://bugs.webkit.org/show_bug.cgi?id=135059
Reviewed by Mark Lam.
This is meant to make it easier for me to extend the copying functionality to copy things other than
the framework.
- Scripts/run-jsc-stress-tests:
- 12:08 PM Changeset in webkit [171232] by
-
- 5 edits in tags/Safari-600.1.1.1/Source
Versioning.
- 11:58 AM Changeset in webkit [171231] by
-
- 1 copy in tags/Safari-600.1.1.1
New tag.
- 11:55 AM Changeset in webkit [171230] by
-
- 5 edits in tags/Safari-538.46.41/Source
Versioning.
- 11:50 AM Changeset in webkit [171229] by
-
- 1 copy in tags/Safari-538.46.41
New Tag.
- 11:41 AM Changeset in webkit [171228] by
-
- 4 edits in trunk
Fix cloop build.
Source/JavaScriptCore:
- jsc.cpp:
(jscmain):
Tools:
- Scripts/jsc-stress-test-helpers/js-exception-fuzz:
- 11:20 AM Changeset in webkit [171227] by
-
- 3 edits in trunk/Source/WebInspectorUI
Revert r169735 since it broke Timeline, and fix bug 129696 in a more targeted way.
REGRESSION (r169735): Web Inspector: Timeline tree outline missing data until collapse-expand.
https://bugs.webkit.org/show_bug.cgi?id=134845
Reviewed by Joseph Pecoraro.
- UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.adjustCollapsedRange): Use button isteand of assuming
item.listItemElement will be ready to use. The listItemElement node is lazily created.
- UserInterface/Views/TreeOutline.js:
(TreeOutline.prototype.appendChild): Don't attach unless _childrenListNode exists.
(TreeOutline.prototype.insertChild): Ditto.
- 11:01 AM Changeset in webkit [171226] by
-
- 2 edits in trunk/LayoutTests
Add timeout for transition end. Speculative layout test fix.
- fast/layers/no-clipping-overflow-hidden-added-after-transform.html:
- 10:21 AM Changeset in webkit [171225] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION: Crash when typing into text field that clears itself on iOS
<https://bugs.webkit.org/show_bug.cgi?id=135044>
<rdar://problem/17640443>
Reviewed by Darin Adler.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestAutocorrectionData):
wordRangeFromPosition() returns null in some cases; null check range
before dereferencing it. Moved some variable declarations around to
better match our style.
- 10:14 AM Changeset in webkit [171224] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, rolling out r171207.
https://bugs.webkit.org/show_bug.cgi?id=135056
Broke multiple tests on Yosemite (Requested by ap on #webkit).
Reverted changeset:
"Fixed position elements are misplaced when a WK1 view has
contentInsets set"
https://bugs.webkit.org/show_bug.cgi?id=135031
http://trac.webkit.org/changeset/171207
- 10:01 AM Changeset in webkit [171223] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed gardening. Removing failure expectations for tests now passing.
- platform/gtk/TestExpectations: Removed failure expectations.
- 9:53 AM Changeset in webkit [171222] by
-
- 9 edits2 deletes in trunk
Unreviewed, rolling out r171218.
https://bugs.webkit.org/show_bug.cgi?id=135055
Made fast/dom/HTMLObjectElement/beforeload-set-text-
crash.xhtml crash (Requested by ap on #webkit).
Reverted changeset:
"REGRESSION (r169105): Crash in selection"
https://bugs.webkit.org/show_bug.cgi?id=134303
http://trac.webkit.org/changeset/171218
- 8:23 AM Changeset in webkit [171221] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed GTK gardening. Tests passing after SVN r171001
- platform/gtk/TestExpectations: Removed tests that are now passing.
- 7:37 AM WebKitGTK/KeepingTheTreeGreen edited by
- (diff)
- 7:12 AM Changeset in webkit [171220] by
-
- 2 edits in trunk/Tools
Fix -vverbose option in sort-export-file script. https://bugs.webkit.org/show_bug.cgi?id=135043
Patch by Renato Nagy <nagy.renato@stud.u-szeged.hu> on 2014-07-18
Reviewed by Tim Horton.
-vverbose option does not work. Option added to getOptionsResult. - Scripts/sort-export-file:
- 6:41 AM Changeset in webkit [171219] by
-
- 6 edits in trunk/Source/WebKit2
[WK2] Provide a mechanism to grab the back-forward list for gesture navigation purposes from another WKWebView
https://bugs.webkit.org/show_bug.cgi?id=134999
<rdar://problem/17238025>
Reviewed by Sam Weinig.
In some cases, clients may need to throw a WKWebView with no back-forward list over
another WKWebView, and want to participate in gesture swipe as if they were actually
the page being overlaid.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView setAllowsBackForwardNavigationGestures:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _alternateWebViewForNavigationGestures]):
(-[WKWebViewConfiguration _setAlternateWebViewForNavigationGestures:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
Keep an "alternate" WKWebView "for navigation gestures", which ViewGestureController
will use as the real source of back-forward items, and the destination of the swipe navigation.
All swipe delegate callbacks will also fire from the alternate view, because it owns the items
and will be doing the navigation.
- UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::setAlternateBackForwardListSourceView):
(WebKit::ViewGestureController::beginSwipeGesture):
Send navigationGestureDidBegin via the alternate view's WebPageProxy if it exists.
Record a new snapshot on the current page, but copy it to the alternate view if necessary,
so that when swiping forward from the alternate view, it will have the "right" snapshot.
Get the target back forward item from the alternate view.
Send navigationGestureWillEnd via the alternate view's WebPageProxy if it exists.
(WebKit::ViewGestureController::canSwipeInDirection):
Determine if we can swipe in a direction by looking at the alternate view's back-forward list if necessary.
(WebKit::ViewGestureController::endSwipeGesture):
Send navigationGestureDidEnd via the alternate view's WebPageProxy if it exists.
Perform the navigation on the alternate view if necessary.
(WebKit::ViewGestureController::removeSwipeSnapshot):
Send navigationGestureSnapshotWasRemoved via the alternate view's WebPageProxy if it exists.
- UIProcess/mac/ViewGestureController.h:
- 2:50 AM Changeset in webkit [171218] by
-
- 9 edits2 adds in trunk
REGRESSION (r169105): Crash in selection
https://bugs.webkit.org/show_bug.cgi?id=134303
Patch by Radu Stavila <stavila@adobe.com> on 2014-07-18
Reviewed by Ryosuke Niwa.
Source/WebCore:
When splitting the selection between different subtrees, all subtrees must have their selection cleared before
starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
we get inconsistent data.
To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
method first iterates through all subtrees and performs the "clear" method and then starts all over again
and performs the "apply" method.
Also, the selectionStart/End members in RenderView have been renamed to fix problems caused by the fact that
RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.
Test: fast/regions/selection/crash-deselect.html
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelectionRoot):
- rendering/RenderSelectionInfo.h:
- rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
(WebCore::RenderView::setSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
(WebCore::RenderView::splitSelectionBetweenSubtrees):
(WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
(WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
(WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
(WebCore::RenderView::getSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
(WebCore::RenderView::setSubtreeSelection): Deleted.
- rendering/RenderView.h:
- rendering/SelectionSubtreeRoot.cpp:
(WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
- rendering/SelectionSubtreeRoot.h:
(WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):
LayoutTests:
Added test for the crash that occurred in some cases when selecting.
- fast/regions/selection/crash-deselect-expected.txt: Added.
- fast/regions/selection/crash-deselect.html: Added.
- 12:13 AM Changeset in webkit [171217] by
-
- 2 edits in trunk/Tools
Really remove dependency on ShellQuote.
- Scripts/jsc-stress-test-helpers/js-exception-fuzz:
- 12:11 AM Changeset in webkit [171216] by
-
- 3 edits in trunk/Tools
Unreviewed, fix build for platforms that don't have ShellQuote.
- Scripts/jsc-stress-test-helpers/js-exception-fuzz: Take a single argument that has the whole command string.
- Scripts/run-jsc-stress-tests: Do the escaping in Ruby.
Jul 17, 2014:
- 11:16 PM Changeset in webkit [171215] by
-
- 2 edits in trunk/Source/WebCore
[MSE] Re-enqueue after a removeCodedFrames() only if the removed frames overlap what may have possibly been enqueued but undisplayed.
https://bugs.webkit.org/show_bug.cgi?id=135039
Reviewed by Eric Carlson.
When a client calls removeCodedFrames(), we must re-enqueue those ranges if the removed samples overlap with
enqueued but possibly un-displayed samples. Otherwise, replacement samples may lead to decode errors as those
new samples dependencies are not met. But if we re-enqueue too frequently, this may cause subtle but noticible
display timing glitches, so only re-enqueue when removeCodedFrames have a possiblity of removing enqueued, but
not yet displayed samples.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::removeCodedFrames):
- 10:55 PM Changeset in webkit [171214] by
-
- 3 edits2 adds in branches/ftlopt/Source/JavaScriptCore
[ftlopt] DFG Flush(SetLocal) store elimination is overzealous for captured variables in the presence of nodes that have no effects but may throw (merge trunk r171190)
https://bugs.webkit.org/show_bug.cgi?id=135019
Reviewed by Oliver Hunt.
Behaviorally, this is just a merge of trunk r171190, except that the relevant functionality
has moved to StrengthReductionPhase and is written in a different style. Same algorithm,
different code.
- dfg/DFGNodeType.h:
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
- tests/stress/capture-escape-and-throw.js: Added.
(foo.f):
(foo):
- tests/stress/new-array-with-size-throw-exception-and-tear-off-arguments.js: Added.
(foo):
(bar):
- 9:34 PM Changeset in webkit [171213] by
-
- 18 edits6 adds in trunk
Need ability to fuzz exception throwing
https://bugs.webkit.org/show_bug.cgi?id=134945
<rdar://problem/17722027>
Reviewed by Sam Weinig.
Source/JavaScriptCore:
Adds the ability to instrument exception checks, and to force some random
exception check to artificially throw an exception. Also adds new tests that
are suitable for testing this. Note that this is closely tied to the Tools
directory changes that are also part of this changeset.
This also fixes an activation tear-off bug that arises if we ever throw an
exception from operationOptimize, or if due to some other bug it's only due
to the operationOptimize exception check that we realize that there is an
exception to be thrown.
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::fastExceptionCheck):
- ftl/FTLIntrinsicRepository.h:
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::callCheck):
- interpreter/Interpreter.cpp:
(JSC::unwindCallFrame):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::emitExceptionCheck):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitExceptionCheck): Deleted.
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_enter):
- jit/JITOperations.cpp:
(JSC::numberOfExceptionFuzzChecks):
- jit/JITOperations.h:
- jsc.cpp:
(jscmain):
- runtime/Options.h:
- runtime/TestRunnerUtils.h:
- tests/exceptionFuzz.yaml: Added.
- tests/exceptionFuzz: Added.
- tests/exceptionFuzz/3d-cube.js: Added.
- tests/exceptionFuzz/date-format-xparb.js: Added.
- tests/exceptionFuzz/earley-boyer.js: Added.
Tools:
Adds a new script, js-exception-fuzz, which will run some jsc command-line using
exception fuzzing. This means that we will force exceptions to be thrown in random
places to see how the engine reacts. This is now integrated with the various test
drivers, so run-javascriptcore-tests will run some exception fuzzing tests by
default.
- Scripts/jsc-stress-test-helpers/js-exception-fuzz: Added.
(fail):
- Scripts/run-javascriptcore-tests:
- Scripts/run-jsc-stress-tests:
- 8:59 PM Changeset in webkit [171212] by
-
- 21 edits1 delete in trunk/Source
SECTORDER_FLAGS should be defined in target's xcconfig file, not Base.xcconfig
<http://webkit.org/b/135006>
Reviewed by Darin Adler.
Source/JavaScriptCore:
- Configurations/Base.xcconfig: Move SECTORDER_FLAGS to
JavaScriptCore.xcconfig.
- Configurations/CompileRuntimeToLLVMIR.xcconfig: Remove empty
SECTORDER_FLAGS definition.
- Configurations/DebugRelease.xcconfig: Ditto.
- Configurations/JavaScriptCore.xcconfig: Use $(CONFIGURATION)
so SECTORDER_FLAGS is only set on Production builds.
Source/WebCore:
- Configurations/Base.xcconfig: Move SECTORDER_FLAGS to
WebCore.xcconfig.
- Configurations/DebugRelease.xcconfig: Remove empty
SECTORDER_FLAGS definition.
- Configurations/WebCoreTestShim.xcconfig: Ditto.
- Configurations/WebCoreTestSupport.xcconfig: Ditto.
- Configurations/WebCore.xcconfig: Use $(CONFIGURATION) so
SECTORDER_FLAGS is only set on Production builds.
Source/WebKit:
- WebKit.xcodeproj/project.pbxproj: Remove references to unused
WebKit.xcconfig file.
Source/WebKit/mac:
- Configurations/Base.xcconfig: Move SECTORDER_FLAGS to
WebKitLegacy.xcconfig.
- Configurations/DebugRelease.xcconfig: Remove empty
SECTORDER_FLAGS definition.
- Configurations/WebKit.xcconfig: Removed. Unused.
- Configurations/WebKitLegacy.xcconfig: Use $(CONFIGURATION) so
SECTORDER_FLAGS is only set on Production builds.
Source/WebKit2:
- Configurations/Base.xcconfig: Move SECTORDER_FLAGS to
WebKit.xcconfig.
- Configurations/DebugRelease.xcconfig: Remove empty
SECTORDER_FLAGS definition.
- Configurations/WebKit.xcconfig: Use $(CONFIGURATION) so
SECTORDER_FLAGS is only set on Production builds.
- 7:16 PM Changeset in webkit [171211] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION (r171167): LoaderClient processDidCrash call is made after load state changes
https://bugs.webkit.org/show_bug.cgi?id=135032
<rdar://problem/17716602>
Reviewed by Dan Bernstein.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processDidCrash): Create a transaction, so that the nested
transaction in resetStateAfterProcessExited() wouldn't be committed.
(WebKit::WebPageProxy::resetStateAfterProcessExited): Don't use auto - it was hiding
the most important fact that this is a stack object that can't be simply moved to
a different function.
- 6:56 PM Changeset in webkit [171210] by
-
- 4 edits2 adds in trunk
Subpixel rendering: Embedded non-compositing rotate transform paints to wrong position.
https://bugs.webkit.org/show_bug.cgi?id=135028
Reviewed by Simon Fraser.
CTM always translates to where the layer's renderer() is going to paint.
It ensures that the pixel snapped renderer() always end up painting to (0, 0) which is
required to be able to position properly on transformed context.
Source/WebCore:
Test: fast/layers/hidpi-transform-on-child-content-is-mispositioned.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::paintLayerByApplyingTransform):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::calculateClipRects):
- rendering/RenderLayer.h:
LayoutTests:
- fast/layers/hidpi-transform-on-child-content-is-mispositioned-expected.html: Added.
- fast/layers/hidpi-transform-on-child-content-is-mispositioned.html: Added.
- 6:16 PM Changeset in webkit [171209] by
-
- 2 edits in trunk/Source/WebKit2
[iOS][WK2] Fix the updateVisibleContentRects synchronization for load after r171154
https://bugs.webkit.org/show_bug.cgi?id=135036
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-17
Reviewed by Dan Bernstein.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
I forgot to update one of the condition after changing from lastTransaction to next transaction
in r171154.
- 4:59 PM Changeset in webkit [171208] by
-
- 2 edits in trunk/Source/JavaScriptCore
Disable live-out calculation for stackmap intrinsics.
https://bugs.webkit.org/show_bug.cgi?id=134366
The live-out variables are not required for the stackmaps, because we
don't care about preserving the state when we perform destructive
patching.
Patch by Juergen Ributzka <juergen@apple.com> on 2014-07-17
Reviewed by Filip Pizlo.
- llvm/library/LLVMExports.cpp:
(initializeAndGetJSCLLVMAPI):
- 4:49 PM Changeset in webkit [171207] by
-
- 3 edits in trunk/Source/WebCore
Fixed position elements are misplaced when a WK1 view has contentInsets set
https://bugs.webkit.org/show_bug.cgi?id=135031
-and corresponding-
<rdar://problem/17682335>
Reviewed by Tim Horton.
[NSScrollView documentVisibleRect] is not the rect that we are looking for when
this function is called. WebCore is interested in the rect that does not include
content that is within the inset region.
Implement contract() to avoid the awkwardness of calling expand() with negative
values.
- platform/graphics/IntSize.h:
(WebCore::IntSize::contract):
Use _insetBounds instead of documentVisibleRect, and when it’s necessary to use
the frame’s dimensions, extract the inset from that size.
- platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformVisibleContentRect):
(WebCore::ScrollView::platformVisibleContentSize):
- 4:39 PM Changeset in webkit [171206] by
-
- 6 edits in branches/safari-600.1-branch
Rollout of r171167. <rdar://problem/17716602>
- 4:37 PM Changeset in webkit [171205] by
-
- 6 edits in tags/Safari-600.1.1
Rollout r171167. <rdar://problem/17716602>
- 4:30 PM Changeset in webkit [171204] by
-
- 2 edits in trunk/Source/JavaScriptCore
Follow-up fix to r171195 to prevent ASSERT in fast/profiler/profile-with-no-title.html
Rubber-stamped by Alexey Proskuryakov.
Null / empty titles should be fine. Tests pass in release builds
which allowed empty titles, and it looks like the LegacyProfiler
stopProfiling handles empty titles as expected already.
- profiler/LegacyProfiler.cpp:
(JSC::LegacyProfiler::startProfiling):
- 3:46 PM Changeset in webkit [171203] by
-
- 7 edits in trunk/Source
[REGRESSION WK2]The menu bar does not show up when tapping on the caret.
https://bugs.webkit.org/show_bug.cgi?id=135023
<rdar://problem/17617282>
../WebCore:
Reviewed by Benjamin Poulain.
Adding some exports.
- WebCore.exp.in:
../WebKit2:
Reviewed by Benjamin Poulain and Ryosuke Niwa.
WKContentView needs to implement hasContent to correctly show
the appropriate menu bar content. The patch adds this information
to the EditorState.
- Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
- Shared/EditorState.h:
(WebKit::EditorState::EditorState):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView hasContent]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
- 3:08 PM Changeset in webkit [171202] by
-
- 5 edits in branches/safari-537.78-branch/Source
Versioning.
- 3:08 PM Changeset in webkit [171201] by
-
- 3 edits in trunk/Source/WebKit2
[iOS][WK2] Add SPI to do a dynamic viewport update without showing any content
https://bugs.webkit.org/show_bug.cgi?id=135010
Reviewed by Darin Adler.
This patch add a new SPI, [WKWebView _resizeWhileHidingContentWithUpdates:] to perform all the work
of a dynamic viewport size update, but instead of animating the old content, it is hidden.
The patch is built on top of the animated resize mechanism. Instead of having an animation driving
the beginning and end, we let the content do that. The dynamic resize begins, it runs for as long as
the WebProcess needs, and it ends when first layer tree commit with the new content is processed.
The attribute "_isAnimatingResize" is generalized to support two modes of resizing: animated and
hiding content.
The attribute "_hasCommittedLoadForMainFrame" is rather silly. It is only needed because
[WKWebView _resizeWhileHidingContentWithUpdates:] is intended to be called a lot before the page
is initialized, and doing an animated resize would trash the WebProcess state.
I wish I had a better solution, this is not great.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _processDidExit]):
(-[WKWebView _didCommitLoadForMainFrame]):
(-[WKWebView _didCommitLayerTree:]):
This is the key to make this work properly. We want _resizeWhileHidingContentWithUpdates: to behave
exactly like an animated resize to avoid bugs. So we went to the whole update mechanism using
_resizeAnimationTransformAdjustments to accumulate the adjustments, now we need to restore a correct
view state.
Calling [WKWebView _endAnimatedResize] will do exactly that, but we need to make sure we do not hit
the synchronization path or we would be blocked there for a while, which is what we are trying to avoid.
After r171154, WebPageProxy keeps track of what stage of dynamic viewport update we are in. Since we are
executing the layer tree update stage, with the right transaction ID, WebPageProxy already knows we have
everything we need and does not use any synchronous messages.
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]):
(-[WKWebView _restorePageStateToExposedRect:scale:]):
(-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):
(-[WKWebView _scrollToContentOffset:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _setMinimumLayoutSizeOverride:]):
(-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
(-[WKWebView _setInterfaceOrientationOverride:]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- 3:02 PM Changeset in webkit [171200] by
-
- 1 copy in branches/safari-537.78-branch
New Branch.
- 2:38 PM Changeset in webkit [171199] by
-
- 3 edits in trunk/Tools
Fix failing API tests.
- TestWebKitAPI/mac/PlatformWebViewMac.mm:
(-[ActiveOffscreenWindow isVisible]):
Override isVisible to make the NSWindows pretend they are visible.
- 2:33 PM Changeset in webkit [171198] by
-
- 3 edits in trunk/LayoutTests
fast/repaint/obscured-background-no-repaint.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=131477
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
Moved the expectation out of WK2, as this also happens with WK1 on some bots.
- 2:27 PM Changeset in webkit [171197] by
-
- 2 edits in trunk/Source/WebKit2
[Mac] Full screen video not always animating in the correct Space
https://bugs.webkit.org/show_bug.cgi?id=135020
<rdar://problem/17542310>
Reviewed by Dean Jackson.
The fullscreen window can "remember" the Space it was part of the first time you enter fullscreen
mode. Subsequent fullscreen transitions will always start from this Space, even if you move
the WebKit-hosted application to a different Space.
We can help the display system know when we've moved to a new Space by calling NSWindow's
'orderBack' method on the fullscreen window prior to starting the transition to fullscreen mode.
This method call hooks the window into the current Space so everything works properly.
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): Add the
new fullscreen window to the current Space before starting transition to fullscreen.
- 2:27 PM Changeset in webkit [171196] by
-
- 3 edits in trunk/LayoutTests
Remove inspector-protocol/profiler tests from TestExpectations, now that they no
longer exist.
- platform/gtk/TestExpectations:
- platform/mac/TestExpectations:
- 2:16 PM Changeset in webkit [171195] by
-
- 27 edits1 add1 delete in trunk
Make console.profile record to the Timeline.
https://bugs.webkit.org/show_bug.cgi?id=134643
Reviewed by Joseph Pecoraro.
Source/WebCore:
Passes existing profiler tests in fast/profiler.
- bindings/js/ScriptState.cpp:
(WebCore::domWindowFromExecState):
(WebCore::frameFromExecState):
(WebCore::scriptExecutionContextFromExecState):
(WebCore::mainWorldExecState):
(WebCore::execStateFromNode):
- bindings/js/ScriptState.h:
- inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::profilerEnabled):
(WebCore::InspectorController::setProfilerEnabled):
- inspector/InspectorController.h:
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::startProfilingImpl):
(WebCore::InspectorInstrumentation::stopProfilingImpl):
- inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::startProfiling):
(WebCore::stopProfiling):
(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):
(WebCore::InspectorTimelineAgent::didWriteHTML):
(WebCore::InspectorTimelineAgent::breakpointActionProbe):
(WebCore::toProtocol):
(WebCore::InspectorTimelineAgent::addRecordToTimeline):
(WebCore::InspectorTimelineAgent::didCompleteRecordEntry):
(WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::sendEvent):
(WebCore::InspectorTimelineAgent::createRecordEntry):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):
- inspector/InspectorTimelineAgent.h:
(WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):
- inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
- inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::persistentInspectorTimelineAgent):
(WebCore::InstrumentingAgents::setPersistentInspectorTimelineAgent):
- inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createConsoleProfileData):
- inspector/TimelineRecordFactory.h:
- inspector/protocol/Timeline.json:
- page/PageConsole.cpp:
(WebCore::PageConsole::profileEnd):
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.stopCapturing):
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype.capturingStopped):
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):
- UserInterface/Images/TimelineRecordConsoleProfile.svg: Added.
- UserInterface/Models/ScriptTimelineRecord.js:
- UserInterface/Protocol/TimelineObserver.js:
(WebInspector.TimelineObserver.prototype.eventRecorded):
(WebInspector.TimelineObserver.prototype.recordingStarted):
(WebInspector.TimelineObserver.prototype.recordingStopped):
- UserInterface/Views/TimelineIcons.css:
(.console-profile-record .icon):
- UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
Source/WebKit/mac:
- WebInspector/WebInspector.mm:
(-isProfilingJavaScript):
(-toggleProfilingJavaScript:):
(-startProfilingJavaScript:):
(-stopProfilingJavaScript:):
(-isJavaScriptProfilingEnabled):
(-setJavaScriptProfilingEnabled:):
Source/WebKit2:
- WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::setJavaScriptProfilingEnabled):
(WebKit::WebInspector::startJavaScriptProfiling):
(WebKit::WebInspector::stopJavaScriptProfiling):
LayoutTests:
- fast/profiler/profile-with-no-title-expected.txt:
- inspector-protocol/profiler/console-profile-expected.txt: Removed.
- inspector-protocol/profiler/console-profile.html: Removed.
- inspector-protocol/profiler/console-profileEnd-parameterless-expected.txt: Removed.
- inspector-protocol/profiler/console-profileEnd-parameterless.html: Removed.
Removed because console.profile does not go through the profiler protocol now.
- 2:04 PM Changeset in webkit [171194] by
-
- 2 edits in trunk/Source/WebKit2
Crash in ServicesOverlayController::~ServicesOverlayController.
<rdar://problem/17622172> and https://bugs.webkit.org/show_bug.cgi?id=135022
Reviewed by Tim Horton.
- WebProcess/WebPage/mac/ServicesOverlayController.mm:
(WebKit::ServicesOverlayController::~ServicesOverlayController): Don’t need to uninstall the
PageOverlay as it has already been destroyed by this point in WebPage::~WebPage.
- 12:31 PM Changeset in webkit [171193] by
-
- 2 edits in trunk/Tools
Disable button animations in regression tests
https://bugs.webkit.org/show_bug.cgi?id=133647
<rdar://problem/16677530>
Reviewed by Dean Jackson.
- DumpRenderTree/mac/DumpRenderTree.mm: (setDefaultsToConsistentValuesForTesting):
We already did this for WebKit2, let's do it for WebKit1 too.
- 12:20 PM Changeset in webkit [171192] by
-
- 1 edit2 adds in trunk/LayoutTests
Add test for r169820.
Reviewed by Dean Jackson.
- platform/mac-wk2/plugins/snapshotting/autoplay-dominant-blank-plugin-moved-into-view-expected.txt: Added.
- plugins/snapshotting/autoplay-dominant-blank-plugin-moved-into-view.html: Added.
- 12:19 PM Changeset in webkit [171191] by
-
- 9 edits in trunk/Source/WebKit2
Sometimes purgeable (or empty!) tiles are shown on screen when resuming the app
https://bugs.webkit.org/show_bug.cgi?id=135018
<rdar://problem/17615038>
Reviewed by Simon Fraser.
- UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::hideContentUntilNextUpdate):
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilNextUpdate):
- UIProcess/mac/RemoteLayerTreeHost.h:
- UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::detachRootLayer):
Add a mechanism to "hide" drawing area content until the next commit,
by detaching the root layer. RemoteLayerTreeHost will automatically reattach
it at the next commit.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
- UIProcess/WebPageProxy.h:
Add a parameter to viewStateDidChange specifying whether dispatching the change
to the Web process is deferrable or not. We will also automatically use "Immediate" if
the view is coming in-window, like we did before.
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _applicationWillEnterForeground:]):
Make use of the aforementioned new mechanisms to ensure that we immediately dispatch
view state changes when coming into the foreground, and will have removed the root layer
if a commit didn't come in while waitForDidUpdateViewState blocks.
- 11:17 AM Changeset in webkit [171190] by
-
- 3 edits2 adds in trunk/Source/JavaScriptCore
DFG Flush(SetLocal) store elimination is overzealous for captured variables in the presence of nodes that have no effects but may throw
https://bugs.webkit.org/show_bug.cgi?id=134988
<rdar://problem/17706349>
Reviewed by Oliver Hunt.
Luckily, we also don't need this optimization to be super powerful: the only place
where it really matters is for getting rid of the redundancy between op_enter and
op_init_lazy_reg, and in that case, there is a small set of possible nodes between the
two things. This change updates the store eliminator to know about only that small,
obviously safe, set of nodes over which we can store-eliminate.
This shouldn't have any performance impact in the DFG because this optimization kicks
in relatively rarely already. And once we tier up into the FTL, we get a much better
store elimination over LLVM IR, so this really shouldn't matter at all.
The tricky part of this patch is that there is a close relative of this optimization,
for uncaptured variables that got flushed. This happens for arguments to inlined calls.
I make this work by splitting it into two different store eliminators.
Note that in the process of crafting the tests, I realized that we were incorrectly
DCEing NewArrayWithSize. That's not cool, since that can throw an exception for
negative array sizes. If we ever did want to DCE this node, we'd need to lower the node
to a check node followed by the actual allocation.
- dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::uncapturedSetLocalStoreElimination):
(JSC::DFG::CSEPhase::capturedSetLocalStoreElimination):
(JSC::DFG::CSEPhase::setLocalStoreElimination):
(JSC::DFG::CSEPhase::performNodeCSE):
(JSC::DFG::CSEPhase::SetLocalStoreEliminationResult::SetLocalStoreEliminationResult): Deleted.
- dfg/DFGNodeType.h:
- tests/stress/capture-escape-and-throw.js: Added.
(foo.f):
(foo):
- tests/stress/new-array-with-size-throw-exception-and-tear-off-arguments.js: Added.
(foo):
(bar):
- 10:43 AM Changeset in webkit [171189] by
-
- 1 edit2 deletes in branches/ftlopt/LayoutTests
sputnik/Implementation_Diagnostics/S12.6.4_D1.html depends on undefined behavior
https://bugs.webkit.org/show_bug.cgi?id=135007
Reviewed by Filip Pizlo.
EcmaScript 5.1 specifies that during for-in enumeration newly added properties may or may not be
visited during the current enumeration. Specifically, in section 12.6.4 the spec states:
"If new properties are added to the object being enumerated during enumeration, the newly added properties
are not guaranteed to be visited in the active enumeration."
The sputnik/Implementation_Diagnostics/S12.6.4_D1.html layout test is from before sputnik was added
to the test262 suite. I believe it has since been removed, so it would probably be okay to remove it
from our layout test suite.
- sputnik/Implementation_Diagnostics/S12.6.4_D1-expected.txt: Removed.
- sputnik/Implementation_Diagnostics/S12.6.4_D1.html: Removed.
- 10:35 AM Changeset in webkit [171188] by
-
- 6 edits1 add in trunk/Source/WebCore
Don't send geolocation permission requests when the page is not visible
<rdar://problem/17208715>
https://bugs.webkit.org/show_bug.cgi?id=134989
Reviewed by Darin Adler.
Instead of eagerly requesting geolocation permission for pages that aren't visible,
store a set of pending requests, and send them only once the page has become visible.
- Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::GeolocationController):
(WebCore::GeolocationController::~GeolocationController):
(WebCore::GeolocationController::requestPermission):
(WebCore::GeolocationController::cancelPermissionRequest):
(WebCore::GeolocationController::viewStateDidChange):
(WebCore::provideGeolocationTo):
- Modules/geolocation/GeolocationController.h:
Store pending requests to be fired once the page is visible.
- WebCore.xcodeproj/project.pbxproj:
Add ViewStateChangeObserver.h
- page/Page.cpp:
(WebCore::Page::addViewStateChangeObserver):
(WebCore::Page::removeViewStateChangeObserver):
(WebCore::Page::setViewState):
- page/Page.h:
Add a set of registered view state observers, and notify them when the
view state changes.
- page/ViewStateChangeObserver.h: Added.
(WebCore::ViewStateChangeObserver::~ViewStateChangeObserver):
Add an observer that can register with the page for view state changes.
- 10:33 AM Changeset in webkit [171187] by
-
- 2 edits in trunk/LayoutTests
plugins/quicktime-plugin-replacement.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=135015
- platform/mac/TestExpectations: Marked as such.
- 10:26 AM Changeset in webkit [171186] by
-
- 6 edits in trunk/LayoutTests
Some inspector-protocol test expectations gardening.
Moved cross-platform expectations for inspector-protocol/debugger/setBreakpoint-dfg*
tests to a cross-platform file, and added a Mac expectation for
inspector-protocol/profiler/console-profile.html.
- TestExpectations:
- platform/efl/TestExpectations:
- platform/gtk/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- 10:07 AM Changeset in webkit [171185] by
-
- 2 edits in trunk/LayoutTests
Flaky Test: media/video-ended-event-negative-playback.html
https://bugs.webkit.org/show_bug.cgi?id=134490
- platform/mac/TestExpectations: Marking as such.
- 9:27 AM Changeset in webkit [171184] by
-
- 7 edits in trunk
Enable legacy fullscreen API in media controls
https://bugs.webkit.org/show_bug.cgi?id=134985
Reviewed by Eric Carlson.
Source/WebCore:
Allow clients who have not enabled HTML5 Fullscreen APIs to still use fullscreen mode
with <video> elements by using the legacy, video-element-specific fullscreen APIs in
the <video> media controls.
- Modules/mediacontrols/mediaControlsApple.js:
(Controller):
(Controller.prototype.handleReadyStateChange):
(Controller.prototype.isFullScreen):
(Controller.prototype.handlePlayButtonClicked):
(Controller.prototype.updateFullscreenButton):
(Controller.prototype.handleFullscreenButtonClicked):
LayoutTests:
Rebaseline expected results.
- platform/mac/fast/hidpi/video-controls-in-hidpi-expected.txt:
- platform/mac/fast/layers/video-layer-expected.txt:
- platform/mac/media/media-controls-clone-expected.txt:
- platform/mac/webarchive/loading/video-in-webarchive-expected.txt:
- 8:58 AM Changeset in webkit [171183] by
-
- 4 edits in trunk/LayoutTests
[CSS Grid Layout] Add element.style coverage for grid-auto-flow
https://bugs.webkit.org/show_bug.cgi?id=134966
Reviewed by Sergio Villar Senin.
As follow-up patch after r170996 we're adding new test cases for
grid-auto-flow to check the correct behavior of element.style.
- fast/css-grid-layout/grid-auto-flow-get-set-expected.txt: Updated
expectations accordingly.
- fast/css-grid-layout/grid-auto-flow-get-set.html: Updated test to add
checks for element.style.
- fast/css-grid-layout/resources/grid-definitions-parsing-utils.js:
(checkGridAutoFlowSetCSSValue): Add new helper method to check
grid-auto-flow property.
(checkGridAutoFlowSetJSValue): Ditto.
- 3:55 AM Changeset in webkit [171182] by
-
- 7 edits in trunk/Source/WebKit2
[EFL][WK2] Add a "focus,notfound" signal.
https://bugs.webkit.org/show_bug.cgi?id=134674
Patch by Sanghyup Lee <sh53.lee@samsung.com> on 2014-07-17
Reviewed by Gyuyoung Kim.
Add a "focus,notfound" signal to handover focus control to application
because there are no elements of webview to focus on the given direction.
Application can decide to move the focus to next widget of ewk_view or something else
by using this signal.
- UIProcess/API/efl/EwkViewCallbacks.h:
- UIProcess/API/efl/ewk_view.h:
- UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: Added keyDown and keyUp function.
(EWK2UnitTest::EWK2UnitTestBase::waitUntilDirectionChanged):
(EWK2UnitTest::EWK2UnitTestBase::keyDown):
(EWK2UnitTest::EWK2UnitTestBase::keyUp):
- UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- UIProcess/API/efl/tests/test_ewk2_view.cpp:
(EWK2ViewTest::FocusNotFoundCallback):
(TEST_F):
- UIProcess/efl/PageUIClientEfl.cpp: Removed unnecessary calls to evas_object_focus_set().
(WebKit::PageUIClientEfl::takeFocus):
- 2:29 AM Changeset in webkit [171181] by
-
- 8 edits in trunk/Source/WebCore
[GObject] StrictTypeChecking extended attribute fails for methods with sequence<T>.
https://bugs.webkit.org/show_bug.cgi?id=121698
Patch by Vineet Chaudhary <code.vineet@gmail.com> on 2014-07-17
Reviewed by Antonio Gomes.
GodeGenerator was including wrong heeaders as WebKitDOMlong[] for methods with
array parameters and StrictTypeChecking extended attribute.
No new tests. TestObj.idl covers the tests.
- bindings/scripts/CodeGenerator.pm:
(GetArrayOrSequenceType):
- bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunction):
- bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_strict_function_with_array):
- bindings/scripts/test/GObject/WebKitDOMTestObj.h:
- bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
(webkit_dom_test_typedefs_func):
(webkit_dom_test_typedefs_nullable_array_arg):
- bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
- bindings/scripts/test/TestObj.idl:
- 1:13 AM Changeset in webkit [171180] by
-
- 5 edits in branches/safari-600.1-branch/Source
Versioning.
- 1:11 AM Changeset in webkit [171179] by
-
- 1 copy in tags/Safari-600.1.1
New Tag.
- 1:10 AM Changeset in webkit [171178] by
-
- 10 edits in branches/safari-600.1-branch/Source
Merge patch from <rdar://problem/17675068>.
- 12:58 AM Changeset in webkit [171177] by
-
- 3 edits in trunk/Source/WebCore
CSS JIT: Clean up return path
https://bugs.webkit.org/show_bug.cgi?id=135011
Reviewed by Benjamin Poulain.
Clean up the existing CSS JIT return path before adding new early return path
for pseudo elements.
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
- cssjit/StackAllocator.h:
(WebCore::StackAllocator::StackReference::StackReference):
(WebCore::StackAllocator::StackReference::isValid):
(WebCore::StackAllocator::popAndDiscard): Deleted.
- 12:55 AM Changeset in webkit [171176] by
-
- 5 edits in trunk/Source
Fix Versioning after r171175.
- 12:41 AM Changeset in webkit [171175] by
-
- 5 edits in trunk/Source
Versioning.
- 12:39 AM Changeset in webkit [171174] by
-
- 1 copy in branches/safari-600.1-branch
New Branch.
- 12:14 AM Changeset in webkit [171173] by
-
- 5 edits in trunk/Source
Fix Versioning after r171118.
Jul 16, 2014:
- 9:07 PM Changeset in webkit [171172] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: TextContentView calls the wrong super function in shown()
https://bugs.webkit.org/show_bug.cgi?id=135001
Patch by Saam Barati <sbarati@apple.com> on 2014-07-16
Reviewed by Timothy Hatcher.
TextContentView calls ResourceContentView.shown instead of ContentView.shown.
It should call ContentView.shown because ContentView is its prototype.
- UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView.prototype.shown):
- 8:31 PM Changeset in webkit [171171] by
-
- 3 edits in trunk/Source/WebKit2
Reintroduce the SPI _websiteDataURLForContainerWithURL: that was removed in r171160
https://bugs.webkit.org/show_bug.cgi?id=134984
Reviewed by David Kilzer.
- UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _websiteDataURLForContainerWithURL:]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- 8:04 PM Changeset in webkit [171170] by
-
- 5 edits in trunk/Source
Versioning.
- 7:52 PM Changeset in webkit [171169] by
-
- 3 edits1 add in trunk/LayoutTests
[GTK] Unreviewed GTK gardening.
- platform/gtk/TestExpectations: Report and mark new failures. Update some expectations.
- platform/gtk/http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Rebaseline after r171033.
- platform/gtk/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt: Added. Rebaseline after r171046.
- 7:50 PM Changeset in webkit [171168] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening. Skip some text track tests that fail only on release wk1 builds.
- platform/mac-wk1/TestExpectations:
- 7:31 PM WebKitGTK/KeepingTheTreeGreen edited by
- (diff)
- 7:28 PM WebKitGTK/KeepingTheTreeGreen edited by
- (diff)
- 7:26 PM Changeset in webkit [171167] by
-
- 6 edits in trunk
A test that hangs at cleanup stage confuses webkitpy hugely
https://bugs.webkit.org/show_bug.cgi?id=122475
<rdar://problem/17184354>
Reviewed by Anders Carlsson.
Source/WebKit2:
Reset m_pageLoadState when the process exits cleanly - otherwise messages from a
new process for the same WebPageProxy would hit assertions.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processDidCrash):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
Tools:
Terminate WebContent process if it freezes between tests. Ideally, we should report
this somehow, but this is better than blaming the wrong test.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::terminateWebContentProcess):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::invoke):
- 6:59 PM Changeset in webkit [171166] by
-
- 2 edits in trunk/LayoutTests
Unreviewed. Skip in-band text track test on Mountain Lion.
- platform/mac/TestExpectations:
In-band text tracks not supported on ML.
- 6:47 PM Changeset in webkit [171165] by
-
- 3 edits2 adds in trunk
Subpixel rendering: Adjust cliprect with devicePixelFractionFromRenderer() before painting.
https://bugs.webkit.org/show_bug.cgi?id=134950
<rdar://problem/17617994>
Reviewed by Simon Fraser.
The cliprect coming from the graphics layer needs to be adjusted with the subpixel gap
from renderer. This is symmetric with the offsetting we do, when the dirty rect is sent off to the GraphicsLayer.
It puts us back to the correct coordinating system for intersecting with renderers.
Source/WebCore:
Test: compositing/hidpi-compositing-layer-with-tile-layers-on-subpixel-position.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::clipToRect):
LayoutTests:
- compositing/hidpi-compositing-layer-with-tile-layers-on-subpixel-position-expected.html: Added.
- compositing/hidpi-compositing-layer-with-tile-layers-on-subpixel-position.html: Added.
- 6:38 PM Changeset in webkit [171164] by
-
- 4 edits in trunk/Source
[iOS] Update order file paths for WebKit and WebKit2
<http://webkit.org/b/134993>
<rdar://problem/17557776>
Reviewed by Darin Adler.
Source/WebKit/mac:
- Configurations/Base.xcconfig: Rename WebKit.order to
WebKitLegacy.order.
Source/WebKit2:
- Configurations/Base.xcconfig: Add order file for iOS
named WebKit.order.
- 6:10 PM Changeset in webkit [171163] by
-
- 2 edits in trunk/Source/WebCore
Fix a typo noticed by Darin.
- rendering/RenderBox.cpp:
(WebCore::shouldApplyContainersClipAndOffset):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::shouldAppyContainersClipAndOffset): Deleted.
- 6:04 PM Changeset in webkit [171162] by
-
- 2 edits in trunk/Source/WebCore
Improve showTree() logging
https://bugs.webkit.org/show_bug.cgi?id=134997
Reviewed by Tim Horton.
Have the debug showTree(), which dumps the Node/Element tree, show which nodes need
style recalc, and print element renderers.
- dom/Node.cpp:
(WebCore::Node::showNode):
- 6:04 PM Changeset in webkit [171161] by
-
- 3 edits in trunk/Source/WebCore
[iOS] Expose the points on WebEventRegion
https://bugs.webkit.org/show_bug.cgi?id=134978
Reviewed by Tim Horton.
Expose WebEventRegion's points so that UIKit can get at them.
- page/ios/WebEventRegion.h:
- page/ios/WebEventRegion.mm:
(-[WebEventRegion p1]):
(-[WebEventRegion p2]):
(-[WebEventRegion p3]):
(-[WebEventRegion p4]):
- 5:20 PM Changeset in webkit [171160] by
-
- 13 edits in trunk/Source
Add WebSecurityOrigin "webSecurityOriginFromDatabaseIdentifier" SPI and change _websiteDataURLForContainerWithURL: SPI
Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=134984
Reviewed by Dan Bernstein.
- WebCore.exp.in:
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::maybeCreateFromDatabaseIdentifier): Add a form of createFromDatabaseIdentifier
that can fail and return a nullptr.
(WebCore::SecurityOrigin::createFromDatabaseIdentifier): Use maybeCreateFromDatabaseIdentifier before creating
the empty origin.
- page/SecurityOrigin.h:
Source/WebKit/mac:
<rdar://problem/17454712> and https://bugs.webkit.org/show_bug.cgi?id=134984
Reviewed by Dan Bernstein.
- WebCoreSupport/WebSecurityOrigin.mm:
(+[WebSecurityOrigin webSecurityOriginFromDatabaseIdentifier:]): Added.
(-[WebSecurityOrigin initWithURL:]): Update using RefPtr API to avoid a ref().
- WebCoreSupport/WebSecurityOriginPrivate.h:
Source/WebKit2:
<rdar://problem/17454712> and https://bugs.webkit.org/show_bug.cgi?id=134984
Reviewed by Dan Bernstein.
Change _websiteDataURLForContainerWithURL: SPI to include an optional bundle identifier argument:
- UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _websiteDataURLForContainerWithURL:bundleIdentifierIfNotInContainer:]):
(+[WKProcessPool _websiteDataURLForContainerWithURL:]): Deleted.
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
Add a big shiny comment in a few key places:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::initializeDatabaseProcess):
- DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::UniqueIDBDatabase):
- UIProcess/WebContext.cpp:
(WebKit::WebContext::applyPlatformSpecificConfigurationDefaults):
(WebKit::WebContext::ensureDatabaseProcess):
- 5:00 PM Changeset in webkit [171159] by
-
- 3 edits in trunk/Source/WebKit2
REGRESSION (iOS WebKit2): Cannot scroll while dragging a selection.
https://bugs.webkit.org/show_bug.cgi?id=134992
<rdar://problem/17528020>
Reviewed by Benjamin Poulain.
This patch exposes the scroller and the visible content rect so that
UIKit can implement autoscroll when dragging the selections.
It also changes that way we do hit testing to allow hit test outside
the clipping region and fixes the way we compute the selection rectangle
for the block selection, ensuring that we consider also non text elements
like images.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView scroller]):
(-[WKContentView visibleRect]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::selectionBoxForRange):
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::rangeForBlockAtPoint):
(WebKit::WebPage::expandedRangeFromHandle):
(WebKit::WebPage::contractedRangeFromHandle):
(WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle):
(WebKit::WebPage::changeBlockSelection):
- 4:34 PM Changeset in webkit [171158] by
-
- 6 edits5 adds3 deletes in trunk
Captions container should not clip content.
https://bugs.webkit.org/show_bug.cgi?id=134840.
<rdar://problem/14553608>.
Reviewed by Simon Fraser.
Tests: media/track/track-in-band-subtitles-too-large.html
media/track/track-long-word-container-sizing.html
- Modules/mediacontrols/mediaControlsApple.css:
(video::-webkit-media-text-track-container):
Set word break property of WebCTT cues to normal to make it consistent with in-band cues.
- html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
Set -webkit-min-content on min-width/min-height property of the text track display.
- html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
Do the same for WebVTT cues.
- media/track/track-cue-rendering-snap-to-lines-not-set-expected.txt: Rebaseline.
- media/track/captions-webvtt/long-word-small-track-display.vtt: Added.
- media/track/track-in-band-subtitles-too-large-expected.txt: Added.
- media/track/track-in-band-subtitles-too-large.html: Added.
- media/track/track-long-word-container-sizing-expected.txt: Added.
- media/track/track-long-word-container-sizing.html: Added.
We no longer break in the middle of a word, this test is no longer useful.
- media/track/captions-webvtt/long-word.vtt: Removed.
- media/track/track-word-breaking-expected.txt: Removed.
- media/track/track-word-breaking.html: Removed.
- 4:11 PM Changeset in webkit [171157] by
-
- 3 edits in trunk/Source/WebCore
[Mac] replace AVPlayerItem on the main thread
https://bugs.webkit.org/show_bug.cgi?id=134983
Reviewed by Jer Noble.
No new tests, this fixes a problem with a thread configuration not present in the
test environment.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setAVPlayerItem): New, when called off of
the main thread, dispatch to the main thread before setting AVPlayerItem.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Call setAVPlayerItem.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldBufferData): Ditto.
- 4:08 PM Changeset in webkit [171156] by
-
- 2 edits in trunk/Source/WebKit2
<rdar://problem/17669097> REGRESSION (r170155): Sandbox violations using a wrong
CFNetwork cache path in WebContent process
Rubber-stamped by Sam Weinig.
Before r170155, we incorrectly checked usesNetworkProcess(), which always returns
false at this point in initialization sequence. But we did the right thing, as we
always need to set the cache path, even when network process is used for most loading.
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):
- 3:36 PM Changeset in webkit [171155] by
-
- 2 edits in trunk/Source/WebKit2
Dispatch top content inset changes immediately if synchronously waiting for view state changes
https://bugs.webkit.org/show_bug.cgi?id=134942
<rdar://problem/17666800>
Reviewed by Simon Fraser.
- UIProcess/API/mac/WKView.mm:
(-[WKView _dispatchSetTopContentInset]):
(-[WKView _setTopContentInset:]):
Move the check from _setTopContentInset: to _dispatchSetTopContentInset
that ensures that we only send the message if the top content inset changed.
- 3:26 PM Changeset in webkit [171154] by
-
- 14 edits in trunk/Source/WebKit2
[iOS][WK2] Synchronize the dynamic viewport updates with their layer tree commit
https://bugs.webkit.org/show_bug.cgi?id=134965
Related to <rdar://problem/17082607>
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-16
Reviewed by Tim Horton.
Dynamic viewport update relies on the _resizeAnimationTransformAdjustments being applied
to the page at the new size during the transition.
Because of the races between the LayerTree Commit and DynamicViewportSizeUpdate, the transform
can be applied to the wrong set of tiles.
This is mostly a problem for unresponsive WebProcess or when the synchronization is done
immediately.
There is at least one more case that is not handled: if synchronizeDynamicViewportUpdate()
completely fails to get the new page, the UIProcess is in a somewhat messy state.
I will look into that separately than the layer tree synchronization.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]):
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]): Deleted.
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::resetState):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::dynamicViewportUpdateChangedTarget):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
(WebKit::WebPageProxy::didCommitLayerTree):
(WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::didCommitLoad):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::synchronizeDynamicViewportUpdate):
(WebKit::WebPage::updateVisibleContentRects):
- WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
(WebKit::RemoteLayerTreeDrawingArea::nextTransactionID):
(WebKit::RemoteLayerTreeDrawingArea::currentTransactionID): Deleted.
- 2:33 PM Changeset in webkit [171153] by
-
- 3 edits in branches/ftlopt/Source/JavaScriptCore
[ftlopt] Constant fold GetGetter and GetSetter if the GetterSetter is a constant
https://bugs.webkit.org/show_bug.cgi?id=134962
Reviewed by Oliver Hunt.
This removes yet another steady-state-throughput implication of using getters and setters:
if your accessor call is monomorphic then you'll just get a structure check, nothing more.
No more loads to get to the GetterSetter object or the accessor function object.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- runtime/GetterSetter.h:
(JSC::GetterSetter::getterConcurrently):
(JSC::GetterSetter::setGetter):
(JSC::GetterSetter::setterConcurrently):
(JSC::GetterSetter::setSetter):
- 2:31 PM Changeset in webkit [171152] by
-
- 3 edits in branches/ftlopt/Source/JavaScriptCore
[ftlopt] Identity replacement in CSE shouldn't create a Phantom over the Identity's children
https://bugs.webkit.org/show_bug.cgi?id=134893
Reviewed by Oliver Hunt.
Replace Identity with Check instead of Phantom. Phantom means that the child of the
Identity should be unconditionally live. The liveness semantics of Identity are such that
if the parents of Identity are live then the child is live. Removing the Identity entirely
preserves such liveness semantics. So, the only thing that should be left behind is the
type check on the child, which is what Check means: do the check but don't keep the child
alive if the check isn't needed.
- dfg/DFGCSEPhase.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToCheck):
- 1:51 PM Changeset in webkit [171151] by
-
- 5 edits in trunk/Source/WebCore
[MSE] http/tests/media/media-source/mediasource-buffered.html is flakey
https://bugs.webkit.org/show_bug.cgi?id=134949
Reviewed by Eric Carlson.
Depending on which SourceBuffer is successfully parsed first, the order of activeSourceBuffers
may change from run to run, breaking the http/tests/media/media-source/mediasource-buffered.html
test. Make the order of activeSourceBuffers the same as (a subset of) sourceBuffers, by replacing
calls to activeSourceBuffers->add() and with a new call to regenerateActiveSourceBuffers(), which
swaps the contents of the SourceBufferList with a new, ordered Vector.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::sourceBufferDidChangeAcitveState):
(WebCore::MediaSource::regenerateActiveSourceBuffers):
- Modules/mediasource/MediaSource.h:
- Modules/mediasource/SourceBufferList.cpp:
(WebCore::SourceBufferList::swap):
- Modules/mediasource/SourceBufferList.h:
- 1:31 PM Changeset in webkit [171150] by
-
- 5 edits10 deletes in trunk
CSP: Drop 'script-nonce' directive.
https://bugs.webkit.org/show_bug.cgi?id=134926
Reviewed by Darin Adler.
Source/WebCore:
This patch drops the outdated 'script-nonce' Content Security
Policy directive. It was removed from the spec, and replaced in
CSP2 with a new 'script-src' syntax. We should implement that
instead.
Until then, removing the outdated syntax will ensure that no one
ends up relying on it in WebKit's implementation.
This should have limited web-visible impact, as the feature is
behind the CSP_NEXT flag, which is not enabled by default.
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript):
(WebCore::ScriptElement::executeScript):
- page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::allowJavaScriptURLs):
(WebCore::CSPDirectiveList::allowInlineEventHandlers):
(WebCore::CSPDirectiveList::addDirective):
(WebCore::NonceDirective::NonceDirective): Deleted.
(WebCore::NonceDirective::allows): Deleted.
(WebCore::NonceDirective::parse): Deleted.
(WebCore::CSPDirectiveList::checkNonce): Deleted.
(WebCore::CSPDirectiveList::checkNonceAndReportViolation): Deleted.
(WebCore::CSPDirectiveList::allowScriptNonce): Deleted.
(WebCore::isAllowedByAllWithNonce): Deleted.
(WebCore::ContentSecurityPolicy::allowScriptNonce): Deleted.
(WebCore::ContentSecurityPolicy::reportInvalidNonce): Deleted.
- page/ContentSecurityPolicy.h:
LayoutTests:
Dropping the nonce tests, as we're removing the functionality.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-expected.txt: Removed.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed.html: Removed.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-expected.txt: Removed.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked.html: Removed.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce-expected.txt: Removed.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce.html: Removed.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-scriptsrc-blocked-expected.txt: Removed.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-scriptsrc-blocked.html: Removed.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-separators-allowed-expected.txt: Removed.
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-separators-allowed.html: Removed.
- 12:10 PM Changeset in webkit [171149] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(r171069) 75% repro crash in WebCore::AudioHardwareListenerMac::processIsRunningChanged()
https://bugs.webkit.org/show_bug.cgi?id=134986
Reviewed by Eric Carlson.
Add a WeakPtrFactory to AudioHardwareListenerMac, so that if CoreAudio calls our block after
being unregistered, we can bail early instead of calling into a deleted object.
- platform/audio/mac/AudioHardwareListenerMac.cpp:
(WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac):
- platform/audio/mac/AudioHardwareListenerMac.h:
- 11:05 AM Changeset in webkit [171148] by
-
- 5 edits in trunk
[MSE] REGRESSION(r171033): ASSERT in WebCore::MediaSource::onReadyStateChange()
https://bugs.webkit.org/show_bug.cgi?id=134941
Reviewed by Eric Carlson.
Source/WebCore:
Only do our modified-order change of the readyState if the error parameter is empty,
as that's the only case where a duration change will cause an inadvertant readyState
change.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::streamEndedWithError):
LayoutTests:
Update media/media-source/media-source-end-of-stream.html to use an empty parameter, rather
than an empty string parameter, to endOfStream().
- media/media-source/media-source-end-of-stream-expected.txt:
- media/media-source/media-source-end-of-stream.html:
- 9:51 AM WebKitGTK/KeepingTheTreeGreen edited by
- (diff)
- 9:42 AM Changeset in webkit [171147] by
-
- 3 edits in trunk/Source/WebCore
Remove svn:executable property erroneously added in <http://trac.webkit.org/changeset/171144> somehow.
- ChangeLog: Removed property svn:executable.
- svg/SVGSVGElement.h: Removed property svn:executable.
- svg/animation/SVGSMILElement.h: Removed property svn:executable.
- 9:33 AM Changeset in webkit [171146] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION (r170653): Web Content service’s Info.plist has wrong format
https://bugs.webkit.org/show_bug.cgi?id=134973
Reviewed by Alexey Proskuryakov.
- WebKit2.xcodeproj/project.pbxproj: Updated the Add CFBundle Localization Info.plist Key
script build phases to convert Info.plist back to binary format if the
PLIST_FILE_OUTPUT_FORMAT build setting requires it.
- 8:38 AM Changeset in webkit [171145] by
-
- 2 edits in trunk/Source/WebCore
Substitute CGRectZero for NSZeroRect in -[DOMNode hrefFrame].
Rubber-stamped by Zalan Bujtas.
The method -[DOMNode hrefFrame] returns a CGRect. So, when we don't have a renderer
we should return CGRectZero instead of a NSZeroRect.
- bindings/objc/DOM.mm:
(-[DOMNode hrefFrame]): Also, fix up some code style issues.
- 8:03 AM Changeset in webkit [171144] by
-
- 3 edits in trunk/Source/WebCore
mutable pointers from const methods, timeContainer().
https://bugs.webkit.org/show_bug.cgi?id=134757
Patch by Jeongeun Kim <je_julie.kim@samsung.com> on 2014-07-16
Reviewed by Alexey Proskuryakov.
Avoid return mutable pointers from const methods.
No new tests, no behavior change.
- svg/SVGSVGElement.h:
- svg/animation/SVGSMILElement.h:
(WebCore::SVGSMILElement::timeContainer):
- 7:47 AM WebKitGTK/KeepingTheTreeGreen edited by
- (diff)
- 5:24 AM Changeset in webkit [171143] by
-
- 11 edits3 adds in trunk/LayoutTests
[EFL] Unreviewed EFL gardening.
Rebaseline tests after r168575, r170138 and r170418.
- platform/efl/fast/dynamic/text-combine-expected.png: Rebaseline after r170418.
- platform/efl/fast/dynamic/text-combine-expected.txt: Rebaseline after r170418.
- platform/efl/fast/forms/control-restrict-line-height-expected.png: Rebaseline after r168575.
- platform/efl/fast/forms/control-restrict-line-height-expected.txt: Rebaseline after r168575.
- platform/efl/fast/forms/placeholder-position-expected.png: Rebaseline after r168575.
- platform/efl/fast/forms/placeholder-position-expected.txt: Rebaseline after r168575.
- platform/efl/fast/repaint/japanese-rl-selection-clear-expected.png: Rebaseline after r170418.
- platform/efl/fast/repaint/japanese-rl-selection-clear-expected.txt: Added. Rebaseline after r170418.
- platform/efl/fast/repaint/japanese-rl-selection-repaint-expected.png: Rebaseline after r170418.
- platform/efl/fast/repaint/japanese-rl-selection-repaint-expected.txt: Added. Rebaseline after r170418.
- platform/efl/fast/text/international/wrap-CJK-001-expected.txt: Added. Rebaseline after r170418.
- platform/efl/fast/writing-mode/Kusa-Makura-background-canvas-expected.png: Rebaseline after r170418.
- platform/efl/fast/writing-mode/Kusa-Makura-background-canvas-expected.txt: Rebaseline after r170418.
- 4:20 AM Changeset in webkit [171142] by
-
- 2 edits in trunk/Tools
Change style check path with EFL WK2's path in checker_unittest.py
https://bugs.webkit.org/show_bug.cgi?id=134967
Reviewed by Csaba Osztrogonác.
- Scripts/webkitpy/style/checker_unittest.py: Change ewk_view.h path.
(GlobalVariablesTest.test_path_rules_specifier):
- 3:26 AM Changeset in webkit [171141] by
-
- 2 edits in trunk/Tools
Unreviewed. Added myself to the list of committers.
- Scripts/webkitpy/common/config/contributors.json:
- 2:48 AM Changeset in webkit [171140] by
-
- 3 edits in trunk/LayoutTests
[EFL] Unreviewed EFL gardening after r170138.
- platform/efl/accessibility/image-map2-expected.txt: Updated.
- platform/efl/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt: Updated.
Jul 15, 2014:
- 11:04 PM Changeset in webkit [171139] by
-
- 2 edits in trunk
[CMAKE] ENABLE_ENCRYPTED_MEDIA_V2 should depend on ENABLE_VIDEO
https://bugs.webkit.org/show_bug.cgi?id=134963
Reviewed by Gyuyoung Kim.
ENCRYPTED_MEDIA_V2 requires VIDEO enabled.
- Source/cmake/WebKitFeatures.cmake: Added the dependency for ENABLE_ENCRYPTED_MEDIA_V2.
- 9:44 PM Changeset in webkit [171138] by
-
- 7 edits in trunk/Source/WebCore
CSS: Generalize CSS First Letter treatment
https://bugs.webkit.org/show_bug.cgi?id=134936
Reviewed by Benjamin Poulain.
first-letter pseudo element rule is handled differently from the other rules
such as first-line. This patch removes this special handling in SelectorChecker
and handles it in RulesFeatureSet.
- css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::collectFeaturesFromSelector):
(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):
- css/RuleFeature.h:
(WebCore::RuleFeatureSet::RuleFeatureSet):
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
- css/StyleResolver.h:
(WebCore::StyleResolver::usesFirstLetterRules):
- dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::combineCSSFeatureFlags):
(WebCore::DocumentStyleSheetCollection::resetCSSFeatureFlags):
- dom/DocumentStyleSheetCollection.h:
(WebCore::DocumentStyleSheetCollection::setUsesFirstLetterRules): Deleted.
- 9:33 PM Changeset in webkit [171137] by
-
- 2 edits in trunk/Tools
[EFL] Remove EFL WK1 directory from the checker.py
https://bugs.webkit.org/show_bug.cgi?id=134954
Reviewed by Gyuyoung Kim.
- Scripts/webkitpy/style/checker.py:
- 9:31 PM Changeset in webkit [171136] by
-
- 2 edits in trunk/Tools
Adding myself to contributors.json breaks a webkitpy test
https://bugs.webkit.org/show_bug.cgi?id=134958
Reviewed by Ryosuke Niwa.
- Scripts/webkitpy/tool/bot/irc_command_unittest.py:
(IRCCommandTest.test_whois): Be more specific and include also the
first name when asking for the whois of Xan in the unit test.
- 8:56 PM Changeset in webkit [171135] by
-
- 2 edits in trunk/Source/WebKit2
Fix r171124
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-15
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:]):
On landing, I changed the min/max branches to shrunkTo/expandedTo, but the return value
of those was ignored.
- 8:07 PM Changeset in webkit [171134] by
-
- 25 edits2 copies in trunk/Source/WebInspectorUI
Web Inspector: Modernize UI styles and better sync with platform styles
https://bugs.webkit.org/show_bug.cgi?id=134846
Reviewed by Timothy Hatcher.
Updated styles to better match the OS UI design. Updated the forward/back button.
Moved several rules to selectors that support older OS designs. Added global platform
data to support this patch.
- UserInterface/Images/BackArrow.svg: Added.
- UserInterface/Images/BackArrowLegacy.svg: Copied from Source/WebInspectorUI/UserInterface/Images/BackArrow.svg.
- UserInterface/Images/ForwardArrow.svg: Added.
- UserInterface/Images/ForwardArrowLegacy.svg: Copied from Source/WebInspectorUI/UserInterface/Images/ForwardArrow.svg.
- UserInterface/Base/ImageUtilities.js: Updated image version
(.generateImage.generateModernImage):
(.generateImage.generateLegacyImage):
(.generateImage):
Updated image generation to support modern look. Updated versioning scheme and version.
- UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded.WebInspector.Platform.version.toString):
(WebInspector.contentLoaded.WebInspector.Platform.toString):
(WebInspector.contentLoaded):
Added global platform information.
- UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
Updated back and forward buttons.
- UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
Updated images for the find banner.
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
Added new images.
- UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button > .label):
(body.mac-platform.legacy .toolbar .item.button > .label):
- UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section):
(body.mac-platform.legacy .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section + .style-declaration-section):
(.style-declaration-section.last-in-group):
(body.mac-platform.legacy .style-declaration-section.last-in-group):
(.style-declaration-section.last-in-group + .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:last-child):
(.style-declaration-section + .style-declaration-section): Deleted.
(.style-declaration-section.last-in-group + .style-declaration-section:last-child): Deleted.
- UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content > .pseudo-classes):
- UserInterface/Views/DOMTreeOutline.css:
(.dom-tree-outline li.hovered:not(.selected) .selection):
(body.mac-platform.legacy .dom-tree-outline li.hovered:not(.selected) .selection):
(.dom-tree-outline li.elements-drag-over .selection):
(body.mac-platform.legacy .dom-tree-outline li.elements-drag-over .selection):
(.dom-tree-outline:focus li.selected .selection):
(body.mac-platform.legacy .dom-tree-outline:focus li.selected .selection):
- UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
(body.mac-platform.legacy .toolbar .dashboard-container):
(body.window-inactive .toolbar .dashboard-container):
(body.mac-platform.legacy.window-inactive .toolbar .dashboard-container):
(.toolbar .dashboard):
(body.window-inactive .toolbar .dashboard):
(body.mac-platform.legacy.window-inactive .toolbar .dashboard):
- UserInterface/Views/DataGrid.css:
(.data-grid th):
(body.mac-platform.legacy .data-grid th):
(.data-grid tr.selected):
(body.mac-platform.legacy .data-grid tr.selected):
(.data-grid:focus tr.selected):
(body.mac-platform.legacy .data-grid:focus tr.selected):
- UserInterface/Views/DetailsSection.css:
(.details-section):
(body.mac-platform.legacy .details-section):
(.details-section .details-section):
(body.mac-platform.legacy .details-section .details-section):
(.details-section .details-section:last-child):
(.details-section .details-section:first-child):
(.details-section > .header):
(body.mac-platform.legacy .details-section > .header):
(.details-section .details-section > .header):
(body.mac-platform.mountain-lion .details-section .details-section > .header):
(.details-section .details-section.collaspsed > .header):
(.details-section.computed-style-properties:not(.collapsed) > .header):
(body.mac-platform.legacy .details-section.computed-style-properties:not(.collapsed) > .header):
(.details-section > .content > .group):
(body.mac-platform.legacy .details-section > .content > .group):
(.details-section > .content > .group:last-child):
(.details-section > .content > .group:nth-child(even)):
(body.mac-platform.legacy .details-section > .content > .group:nth-child(even)):
(body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *):
(.details-section > .content > .group:last-child > .row.simple:last-child > *): Deleted.
- UserInterface/Views/FilterBar.css:
(.filter-bar > input[type="search"]):
(body.mac-platform.legacy .filter-bar > input[type="search"]):
- UserInterface/Views/NavigationSidebarPanel.css:
(.navigation-sidebar-panel-content-tree-outline .item.selected):
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline .item.selected):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline:focus .item.selected):
(body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
(body.mac-platform.legacy.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
- UserInterface/Views/RadioButtonNavigationItem.css:
(.navigation-bar .item.radio.button.text-only.selected):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected):
- UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(.sidebar > .panel.details.css-style .rules .new-rule):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule):
(.sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
- UserInterface/Views/ScopeBar.css:
(.scope-bar > li):
(body.mac-platform.legacy .scope-bar > li):
(.scope-bar > li.selected):
(body.mac-platform.legacy .scope-bar > li.selected):
- UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]):
(body.mac-platform.legacy .search-bar > input[type="search"]):
- UserInterface/Views/Sidebar.css:
(.sidebar):
(body.mac-platform.legacy .sidebar):
(body.mac-platform.legacy.window-inactive .sidebar):
(body.mac-platform.legacy .sidebar.right):
(body.window-inactive .sidebar): Deleted.
(.sidebar.right): Deleted.
- UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline > .title-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar):
Style updates for new look and feel.
- 8:06 PM Changeset in webkit [171133] by
-
- 2 edits in trunk/Source/WebCore
Fix non-iOS builds.
- rendering/RenderBox.cpp:
(WebCore::shouldAppyContainersClipAndOffset):
- 7:58 PM Changeset in webkit [171132] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Fix touches inside accelerated overflow:scroll
https://bugs.webkit.org/show_bug.cgi?id=134961
<rdar://problem/16088789>
Reviewed by Benjamin Poulain.
When individual elements inside an overflow:scroll with -webkit-overflow-scrolling: touch
had touch event listeners, we would fail to take the scroll offset into account when
building the touch event region, causing touches on those elements to fail after scrolling.
Touch event region building uses RenderObject::absoluteClippedOverflowRect(), and that
code path tries to fix up repaint rects to work correctly in composited overflow:scroll.
However, that broke the touch region computation.
Fix by only ignoring the scroll offset for calls to computeRectForRepaint() which
have a non-null repaintContainer (which indicates that we're doing a repaint in the
compositing layer), and for which the repaintContainer is the containing block
which is using composited scrolling. This restores correct behavior to the event region
code which always calls this with a null repaintContainer.
- rendering/RenderBox.cpp:
(WebCore::shouldAppyContainersClipAndOffset):
(WebCore::RenderBox::computeRectForRepaint):
- 7:26 PM Changeset in webkit [171131] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, rolling out r171107.
https://bugs.webkit.org/show_bug.cgi?id=134959
This was not the problem! (Requested by kling on #webkit).
Reverted changeset:
"Revert: Run the FastMalloc scavenger thread on iOS as well."
https://bugs.webkit.org/show_bug.cgi?id=134927
http://trac.webkit.org/changeset/171107
- 6:40 PM Changeset in webkit [171130] by
-
- 2 edits in trunk/Websites/webkit.org
Make css jit benchmark work on IE11.
https://bugs.webkit.org/show_bug.cgi?id=134956
Reviewed by Benjamin Poulain.
- blog-files/css-jit-introduction/html5-single-page-microbenchmark.html:
Remove an iframe which caused IE11 to try to open content as a URL.
- 6:29 PM Changeset in webkit [171129] by
-
- 2 edits in trunk/Source/WebKit2
WKWebView’s FormClient::willSubmitForm should use CompletionHandlerCallChecker
https://bugs.webkit.org/show_bug.cgi?id=134951
Reviewed by Tim Horton.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setFormDelegate:]):
- 5:53 PM Changeset in webkit [171128] by
-
- 2 edits in tags/Safari-538.46.3/Source/WebCore
Merged r171099. <rdar://problem/16917699>
- 5:51 PM Changeset in webkit [171127] by
-
- 2 edits in tags/Safari-538.46.3/Source/WebCore
Merged r171089. <rdar://problem/16917699>
- 5:47 PM Changeset in webkit [171126] by
-
- 5 edits in tags/Safari-538.46.3/Source
Versioning.
- 5:43 PM Changeset in webkit [171125] by
-
- 1 copy in tags/Safari-538.46.3
New tag.
- 5:14 PM Changeset in webkit [171124] by
-
- 4 edits in trunk/Source/WebKit2
[iOS][WK2] Scrolling request from the scrolling tree must be limited to offsets in the document
https://bugs.webkit.org/show_bug.cgi?id=134952
<rdar://problem/17647116>
Reviewed by Enrica Casucci.
When we received a scroll request, we were taking that offset directly to set the UIScrollView
scroll position. This is a problem if a page request scrolling to an invalid position, we were
still doing it.
This patch limits the position to be inside the document.
-- Why not limit the scroll offset in the WebProcess when we receive the scroll request? --
Some pages rely on the page scale factor changing instantly, because that is how it worked
on WebKit1.
On WebKit2, the WebProcess cannot know the valid range because the obscured insets are changing
dynamically, and the page scale factor can change in response to WebProcess events (the focus
changing for example). To make the page works, the WebProcess does not restrict the scroll position.
In that architecture, the UIProcess has to sanitize the input, which was not done before this patch.
-- Why not use changeContentOffsetBoundedInValidRange()?
The scroll offset as seen by the page is relative to the unobscured rect. While the position used
for history item is a visual position. All we need in this case is a position in the view.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:]):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::resendLastVisibleContentRects):
- 4:59 PM Changeset in webkit [171123] by
-
- 8 edits in trunk/Source/JavaScriptCore
Reduce the overhead of updating the AssemblerBuffer
https://bugs.webkit.org/show_bug.cgi?id=134659
Reviewed by Gavin Barraclough.
In r164548, the linker was changed to allow the LinkBuffer to survive its MacroAssembler.
That feature is useful for JSC to get offsets inside a linked buffer in order to jump directly
there.
On ARM, we use branch compaction and we need to keep the "compaction offset" somewher to be able
to get the real address of a lable. That is done by reusing the memory of AssemblerData.
To share the memory between LinkBuffer and the Assembler, r164548 moved the AssemblerData into
a ref-counted object. Unfortunately, the extra complexity related to the new AssemblerData was enough
to make clang give up a bunch of optimizations.
This patch solve (some of) the problems by making AssemblerBuffer and AssemblerData super low overhead structures.
In particular, the grow() function becomes 8 Thumb instructions, which is easily inlined everywhere it is used.
Instead of sharing ownership between the Assembler and LinkBuffer, LinkBuffer now takes full ownership of
the AssemblerData. I feel this is also safer since LinkBuffer is reusing the AssemblerData is a very
specific way that would make it unusable for the Assembler.
-- Technical details --
From LinkBuffer, we don't want to ever access the Assembler after releasing its buffer (or writting anything
into it really). This was obviously already the case, but that was hard to prove from LinkBuffer::copyCompactAndLinkCode().
To make this easier to work with, I changed all the assembler specific function to be static. This way we know
exactly what code access the Assembler instance. The code that does access the instance is then moved
at the beginning, before we modify anything.
The function recordLinkOffsets() that was on the MacroAssembler and copied in Assembler was moved directly
to LinkBuffer. This make the modification of AssemblerData completely explicit, and that code is specific
to LinkBuffer anyway (see LinkBuffer::executableOffsetFor()).
-- Perf impact --
This does not put us exactly at before r164548 due to the missing inline buffer. Still, it is very close.
On ARMv7, this reduces the time spent in Assembler by half. On the CSS JIT, this reduces the compilation
time by ~20%.
I could not measure any difference on x86_64.
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::jumpSizeDelta):
(JSC::ARM64Assembler::canCompact):
(JSC::ARM64Assembler::computeJumpType):
(JSC::ARM64Assembler::link):
(JSC::ARM64Assembler::recordLinkOffsets): Deleted.
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::ifThenElseConditionBit):
(JSC::ARMv7Assembler::ifThenElse):
(JSC::ARMv7Assembler::jumpSizeDelta):
(JSC::ARMv7Assembler::canCompact):
(JSC::ARMv7Assembler::computeJumpType):
(JSC::ARMv7Assembler::link):
(JSC::ARMv7Assembler::linkJumpT1):
(JSC::ARMv7Assembler::linkJumpT3):
(JSC::ARMv7Assembler::linkConditionalJumpT4):
(JSC::ARMv7Assembler::linkConditionalBX):
(JSC::ARMv7Assembler::recordLinkOffsets): Deleted.
- assembler/AssemblerBuffer.h:
(JSC::AssemblerData::AssemblerData):
(JSC::AssemblerData::operator=):
(JSC::AssemblerData::~AssemblerData):
(JSC::AssemblerData::buffer):
(JSC::AssemblerData::capacity):
(JSC::AssemblerData::grow):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::isAvailable):
(JSC::AssemblerBuffer::data):
(JSC::AssemblerBuffer::releaseAssemblerData):
(JSC::AssemblerBuffer::putIntegral):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::AssemblerBuffer::append):
(JSC::AssemblerBuffer::grow):
(JSC::AssemblerBuffer::~AssemblerBuffer): Deleted.
(JSC::AssemblerBuffer::storage): Deleted.
- assembler/LinkBuffer.cpp:
(JSC::recordLinkOffsets):
(JSC::LinkBuffer::copyCompactAndLinkCode):
- assembler/LinkBuffer.h:
(JSC::LinkBuffer::LinkBuffer):
(JSC::LinkBuffer::executableOffsetFor):
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::canCompact):
(JSC::MacroAssemblerARM64::computeJumpType):
(JSC::MacroAssemblerARM64::jumpSizeDelta):
(JSC::MacroAssemblerARM64::link):
(JSC::MacroAssemblerARM64::recordLinkOffsets): Deleted.
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::canCompact):
(JSC::MacroAssemblerARMv7::computeJumpType):
(JSC::MacroAssemblerARMv7::jumpSizeDelta):
(JSC::MacroAssemblerARMv7::link):
(JSC::MacroAssemblerARMv7::recordLinkOffsets): Deleted.
- 4:12 PM Changeset in webkit [171122] by
-
- 5 edits in tags/Safari-538.46.40/Source
Versioning.
- 3:55 PM Changeset in webkit [171121] by
-
- 1 copy in tags/Safari-538.46.40
New Tag.
- 3:51 PM Changeset in webkit [171120] by
-
- 2 edits in trunk/Source/WebKit/mac
[OSX] [WK1] Crash when exiting fullscreen
https://bugs.webkit.org/show_bug.cgi?id=134943
Reviewed by Dean Jackson.
AppKit doesn't remove a view from the Key View Loop when removing it from its superview.
This codepath is already "tested" in fullscreen/full-screen-cancel.html, but because of our
testing infrastructure, the broken codepath doesn't actually get hit in DRT. Therefore,
there is no test.
- WebView/WebFullScreenController.mm:
(-[WebFullScreenController enterFullScreen:]):
- 3:25 PM Changeset in webkit [171119] by
-
- 9 edits in trunk/Source/WebCore
[iOS] Fix issues drawing subsampled image elements and CSS images
https://bugs.webkit.org/show_bug.cgi?id=134944
<rdar://problem/17634095>
Reviewed by Dean Jackson.
After r170675 it is important for BitmapImage::draw() to be given a srcRect computed
using the original size of the image, not the subsampled size.
So fix various code paths that end up in image drawing to use the originalSize(),
which requires giving Image a virtual function that just returns size(), and hence has
a FloatSize return value.
Tested by setting a very low subsampling threshold and browsing various sites.
A better longterm fix will happen via bug 134916.
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::originalSize):
- platform/graphics/BitmapImage.h:
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
- platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
(WebCore::Image::computeIntrinsicDimensions):
- platform/graphics/Image.h:
(WebCore::Image::originalSize):
- platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::BitmapImage): Just use m_size for initializing the other members.
(WebCore::BitmapImage::draw):
- platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):
- platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern):
- 2:32 PM Changeset in webkit [171118] by
-
- 5 edits in trunk/Source
Versioning.
- 2:26 PM Changeset in webkit [171117] by
-
- 2 edits in trunk/Source/WebKit2
Dispatch top content inset changes immediately if synchronously waiting for view state changes
https://bugs.webkit.org/show_bug.cgi?id=134942
<rdar://problem/17666800>
Reviewed by Simon Fraser.
- UIProcess/API/mac/WKView.mm:
(-[WKView endDeferringViewInWindowChanges]):
(-[WKView endDeferringViewInWindowChangesSync]):
(-[WKView _dispatchSetTopContentInset]):
(-[WKView _setTopContentInset:]):
Send top content inset changes immediately before sync-waiting for new tiles from the Web Process.
This will ensure that the incoming contents have the right top content inset, and we don't
flash between the wrong inset and the right one.
- 2:17 PM Changeset in webkit [171116] by
-
- 3 edits in trunk/Source/WebCore
[Win] Unreviewed build fix after r171069.
Add missing AudioHardwareListener implementation on Windows.
- WebCore.vcxproj/WebCore.vcxproj:
- WebCore.vcxproj/WebCore.vcxproj.filters:
- 2:05 PM Changeset in webkit [171115] by
-
- 10 edits in trunk/Source/JavaScriptCore
Stores to PropertyTable use the Structure as the owner
https://bugs.webkit.org/show_bug.cgi?id=134595
Reviewed by Darin Adler.
Since PropertyTable is the object that does the marking of these references, it should be the owner.
Also removed some unused parameters to other methods that historically used the Structure as the owner.
- runtime/JSPropertyNameIterator.h:
(JSC::StructureRareData::setEnumerationCache):
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToString):
- runtime/PropertyMapHashTable.h:
(JSC::PropertyTable::copy):
- runtime/PropertyTable.cpp:
(JSC::PropertyTable::clone):
(JSC::PropertyTable::PropertyTable):
- runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap):
(JSC::Structure::addPropertyTransition):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::copyPropertyTable):
(JSC::Structure::copyPropertyTableForPinning):
(JSC::Structure::putSpecificValue):
- runtime/Structure.h:
(JSC::Structure::setObjectToStringValue):
(JSC::Structure::setPreviousID):
- runtime/StructureInlines.h:
(JSC::Structure::setEnumerationCache):
- runtime/StructureRareData.h:
- runtime/StructureRareDataInlines.h:
(JSC::StructureRareData::setPreviousID):
(JSC::StructureRareData::setObjectToStringValue):
- 1:52 PM Changeset in webkit [171114] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION(WK2 iOS): Safari hangs when switching focus from a field using the Tab key.
https://bugs.webkit.org/show_bug.cgi?id=134934
<rdar://problem/17224638>
Reviewed by Tim Horton.
- UIProcess/ios/WKContentViewInteraction.mm:
Tab and back tab should be handled as special keys that have
a command associated. The command specifies for each key the relevant
action. This patch implements the commands property to create the association
between key and command and the relevant actions that will execute the same
code executed when the used taps on the < > buttons in the accessory bar.
(-[WKContentView keyCommands]):
(-[WKContentView _nextAccessoryTab:]):
(-[WKContentView _prevAccessoryTab:]):
- 1:31 PM Changeset in webkit [171113] by
-
- 2 edits in trunk/Source/WebKit2
More tidying of the webcontent sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=134938
Reviewed by Alexey Proskuryakov.
Remove some excessive abilities from the profile and make
the required ones explicit.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 12:41 PM Changeset in webkit [171112] by
-
- 2 edits in tags/Safari-538.46.1.1/Source/WebCore
Merged r171099. <rdar://problem/16917699>
- 12:38 PM Changeset in webkit [171111] by
-
- 2 edits in tags/Safari-538.46.1.1/Source/WebCore
Merged r171089. <rdar://problem/16917699>
- 12:30 PM Changeset in webkit [171110] by
-
- 5 edits in tags/Safari-538.46.1.1/Source
Versioning.
- 12:27 PM Changeset in webkit [171109] by
-
- 1 copy in tags/Safari-538.46.1.1
New tag.
- 12:11 PM Changeset in webkit [171108] by
-
- 2 edits in trunk/Source/JavaScriptCore
ScriptExecutable::forEachCodeBlock can dereference null CodeBlocks
https://bugs.webkit.org/show_bug.cgi?id=134928
Reviewed by Andreas Kling.
- bytecode/CodeBlock.h:
(JSC::ScriptExecutable::forEachCodeBlock): Check for null CodeBlocks before calling forEachRelatedCodeBlock.
- 11:34 AM Changeset in webkit [171107] by
-
- 2 edits in trunk/Source/WTF
Revert: Run the FastMalloc scavenger thread on iOS as well.
<https://webkit.org/b/134927>
<rdar://problem/17485079>
This appears to be the cause of some elusive crashes, and since I don't
have a way to reproduce them, let's just go back to not running the
scavenger thread on iOS.
Reviewed by Antti Koivisto.
- wtf/FastMalloc.cpp:
- 8:48 AM Changeset in webkit [171106] by
-
- 21 edits13 adds in branches/ftlopt
[ftlopt] DFG should be able to do GCSE in SSA and this should be unified with the CSE in CPS, and both of these things should use abstract heaps for reasoning about effects
https://bugs.webkit.org/show_bug.cgi?id=134677
Reviewed by Sam Weinig.
Source/JavaScriptCore:
This removes the old local CSE phase, which was based on manually written backward-search
rules for all of the different kinds of things we cared about, and adds a new local/global
CSE (local for CPS and global for SSA) that leaves the node semantics almost entirely up to
clobberize(). Thus, the CSE phase itself just worries about the algorithms and data
structures used for storing sets of available values. This results in a large reduction in
code size in CSEPhase.cpp while greatly increasing the phase's power (since it now does
global CSE) and reducing compile time (since local CSE is now rewritten to use smarter data
structures). Even though LLVM was already running GVN, the extra GCSE at DFG IR level means
that this is a significant (~0.7%) throughput improvement.
This work is based on the concept of "def" to clobberize(). If clobberize() calls def(), it
means that the node being analyzed makes available some value in some DFG node, and that
future attempts to compute that value can simply use that node. In other words, it
establishes an available value mapping of the form value=>node. There are two kinds of
values that can be passed to def():
PureValue. This captures everything needed to determine whether two pure nodes - nodes that
neither read nor write, and produce a value that is a CSE candidate - are identical. It
carries the NodeType, an AdjacencyList, and one word of meta-data. The meta-data is
usually used for things like the arithmetic mode or constant pointer. Passing a
PureValue to def() means that the node produces a value that is valid anywhere that the
node dominates.
HeapLocation. This describes a location in the heap that could be written to or read from.
Both stores and loads can def() a HeapLocation. HeapLocation carries around an abstract
heap that both serves as part of the "name" of the heap location (together with the
other fields of HeapLocation) and also tells us what write()'s to watch for. If someone
write()'s to an abstract heap that overlaps the heap associated with the HeapLocation,
then it means that the values for that location are no longer available.
This approach is sufficiently clever that the CSEPhase itself can focus on the mechanism of
tracking the PureValue=>node and HeapLocation=>node maps, without having to worry about
interpreting the semantics of different DFG node types - that is now almost entirely in
clobberize(). The only things we special-case inside CSEPhase are the Identity node, which
CSE is traditionally responsible for eliminating even though it has nothing to do with CSE,
and the LocalCSE rule for turning PutByVal into PutByValAlias.
This is a slight Octane, SunSpider, and Kraken speed-up - all somewhere arond 0.7% . It's
not a bigger win because LLVM was already giving us most of what we needed in its GVN.
Also, the SunSpider speed-up isn't from GCSE as much as it's a clean-up of local CSE - that
is no longer O(n2). Basically this is purely good: it reduces the amount of LLVM IR we
generate, it removes the old CSE's heap modeling (which was a constant source of bugs), and
it improves both the quality of the code we generate and the speed with which we generate
it. Also, any future optimizations that depend on GCSE will now be easier to implement.
During the development of this patch I also rationalized some other stuff, like Graph's
ordered traversals - we now have preorder and postorder rather than just "depth first".
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAbstractHeap.h:
- dfg/DFGAdjacencyList.h:
(JSC::DFG::AdjacencyList::hash):
(JSC::DFG::AdjacencyList::operator==):
- dfg/DFGBasicBlock.h:
- dfg/DFGCSEPhase.cpp:
(JSC::DFG::performLocalCSE):
(JSC::DFG::performGlobalCSE):
(JSC::DFG::CSEPhase::CSEPhase): Deleted.
(JSC::DFG::CSEPhase::run): Deleted.
(JSC::DFG::CSEPhase::endIndexForPureCSE): Deleted.
(JSC::DFG::CSEPhase::pureCSE): Deleted.
(JSC::DFG::CSEPhase::constantCSE): Deleted.
(JSC::DFG::CSEPhase::constantStoragePointerCSE): Deleted.
(JSC::DFG::CSEPhase::getCalleeLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getArrayLengthElimination): Deleted.
(JSC::DFG::CSEPhase::globalVarLoadElimination): Deleted.
(JSC::DFG::CSEPhase::scopedVarLoadElimination): Deleted.
(JSC::DFG::CSEPhase::varInjectionWatchpointElimination): Deleted.
(JSC::DFG::CSEPhase::getByValLoadElimination): Deleted.
(JSC::DFG::CSEPhase::checkFunctionElimination): Deleted.
(JSC::DFG::CSEPhase::checkExecutableElimination): Deleted.
(JSC::DFG::CSEPhase::checkStructureElimination): Deleted.
(JSC::DFG::CSEPhase::structureTransitionWatchpointElimination): Deleted.
(JSC::DFG::CSEPhase::getByOffsetLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getGetterSetterByOffsetLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getPropertyStorageLoadElimination): Deleted.
(JSC::DFG::CSEPhase::checkArrayElimination): Deleted.
(JSC::DFG::CSEPhase::getIndexedPropertyStorageLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getInternalFieldLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getMyScopeLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getLocalLoadElimination): Deleted.
(JSC::DFG::CSEPhase::invalidationPointElimination): Deleted.
(JSC::DFG::CSEPhase::setReplacement): Deleted.
(JSC::DFG::CSEPhase::eliminate): Deleted.
(JSC::DFG::CSEPhase::performNodeCSE): Deleted.
(JSC::DFG::CSEPhase::performBlockCSE): Deleted.
(JSC::DFG::performCSE): Deleted.
- dfg/DFGCSEPhase.h:
- dfg/DFGClobberSet.cpp:
(JSC::DFG::addReads):
(JSC::DFG::addWrites):
(JSC::DFG::addReadsAndWrites):
(JSC::DFG::readsOverlap):
(JSC::DFG::writesOverlap):
- dfg/DFGClobberize.cpp:
(JSC::DFG::doesWrites):
(JSC::DFG::accessesOverlap):
(JSC::DFG::writesOverlap):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
(JSC::DFG::NoOpClobberize::operator()):
(JSC::DFG::CheckClobberize::operator()):
(JSC::DFG::ReadMethodClobberize::ReadMethodClobberize):
(JSC::DFG::ReadMethodClobberize::operator()):
(JSC::DFG::WriteMethodClobberize::WriteMethodClobberize):
(JSC::DFG::WriteMethodClobberize::operator()):
(JSC::DFG::DefMethodClobberize::DefMethodClobberize):
(JSC::DFG::DefMethodClobberize::operator()):
- dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::run):
(JSC::DFG::DCEPhase::fixupBlock):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::getBlocksInPreOrder):
(JSC::DFG::Graph::getBlocksInPostOrder):
(JSC::DFG::Graph::addForDepthFirstSort): Deleted.
(JSC::DFG::Graph::getBlocksInDepthFirstOrder): Deleted.
- dfg/DFGGraph.h:
- dfg/DFGHeapLocation.cpp: Added.
(JSC::DFG::HeapLocation::dump):
(WTF::printInternal):
- dfg/DFGHeapLocation.h: Added.
(JSC::DFG::HeapLocation::HeapLocation):
(JSC::DFG::HeapLocation::operator!):
(JSC::DFG::HeapLocation::kind):
(JSC::DFG::HeapLocation::heap):
(JSC::DFG::HeapLocation::base):
(JSC::DFG::HeapLocation::index):
(JSC::DFG::HeapLocation::hash):
(JSC::DFG::HeapLocation::operator==):
(JSC::DFG::HeapLocation::isHashTableDeletedValue):
(JSC::DFG::HeapLocationHash::hash):
(JSC::DFG::HeapLocationHash::equal):
- dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::run):
- dfg/DFGNode.h:
(JSC::DFG::Node::replaceWith):
(JSC::DFG::Node::convertToPhantomUnchecked): Deleted.
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGPureValue.cpp: Added.
(JSC::DFG::PureValue::dump):
- dfg/DFGPureValue.h: Added.
(JSC::DFG::PureValue::PureValue):
(JSC::DFG::PureValue::operator!):
(JSC::DFG::PureValue::op):
(JSC::DFG::PureValue::children):
(JSC::DFG::PureValue::info):
(JSC::DFG::PureValue::hash):
(JSC::DFG::PureValue::operator==):
(JSC::DFG::PureValue::isHashTableDeletedValue):
(JSC::DFG::PureValueHash::hash):
(JSC::DFG::PureValueHash::equal):
- dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::lower):
LayoutTests:
- js/regress/gcse-expected.txt: Added.
- js/regress/gcse-poly-get-expected.txt: Added.
- js/regress/gcse-poly-get-less-obvious-expected.txt: Added.
- js/regress/gcse-poly-get-less-obvious.html: Added.
- js/regress/gcse-poly-get.html: Added.
- js/regress/gcse.html: Added.
- js/regress/script-tests/gcse-poly-get-less-obvious.js: Added.
- js/regress/script-tests/gcse-poly-get.js: Added.
- js/regress/script-tests/gcse.js: Added.
- 7:59 AM Changeset in webkit [171105] by
-
- 3 edits2 adds in trunk
REGRESSION (r155957): Invalid cast in WebCore::RenderNamedFlowThread::getRanges
https://bugs.webkit.org/show_bug.cgi?id=134888
Reviewed by Mihnea Ovidenie.
Source/WebCore:
Test: fast/regions/flowthread-getranges-box-cast.html
- rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::getRanges): Test the type before casting.
LayoutTests:
- fast/regions/flowthread-getranges-box-cast-expected.txt: Added.
- fast/regions/flowthread-getranges-box-cast.html: Added.
- 3:49 AM Changeset in webkit [171104] by
-
- 2 edits in trunk/Source/JavaScriptCore
Buildfix if LLINT_SLOW_PATH_TRACING is enabled
https://bugs.webkit.org/show_bug.cgi?id=133790
Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-07-15
Reviewed by Mark Lam.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- 2:34 AM Changeset in webkit [171103] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Update GObject DOM bindings symbols file after r171014.
https://bugs.webkit.org/show_bug.cgi?id=134907
Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-07-15
Reviewed by Philippe Normand.
- bindings/gobject/webkitdom.symbols: Update to the current API.
- 2:15 AM Changeset in webkit [171102] by
-
- 2 edits in trunk/Source/WebCore
Unreviwed fix wrong indentation from r171082.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
Jul 14, 2014:
- 8:04 PM Changeset in webkit [171101] by
-
- 2 edits in trunk/Source/WebKit2
[iOS] Don't progressively re-render tiles while pinch-zooming under memory pressure.
<https://webkit.org/b/134915>
When we're under memory pressure, the last thing we want to be doing is
creating gratuitous new IOSurfaces. Just wait for the gesture to end before
rendering at the new scale.
Reviewed by Tim Horton.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
- 7:55 PM Changeset in webkit [171100] by
-
- 3 edits2 adds in trunk
Subpixel rendering: Zero sized compositing container's content positioned off by one device pixel.
https://bugs.webkit.org/show_bug.cgi?id=134903
Reviewed by Simon Fraser.
The compositing layer boundaries are calculated using its renderer()'s and the renderer()'s
descendants' bounds. However when the renderer() is zero sized, its bounds are omitted.
In such cases, when the child content has offset from the renderer(), the subpixel adjustment
of the compositing layer becomes negative (-meaning that the compositing layer is to the right/bottom
direction from its renderer()). Remove fabs() to be able to express such direction.
Source/WebCore:
Test: compositing/hidpi-compositing-layer-with-zero-sized-container.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
LayoutTests:
- compositing/hidpi-compositing-layer-with-zero-sized-container-expected.html: Added.
- compositing/hidpi-compositing-layer-with-zero-sized-container.html: Added.
- 7:15 PM Changeset in webkit [171099] by
-
- 2 edits in trunk/Source/WebCore
Fix crash on WebVideoFullscreenManagerProxy construction.
https://bugs.webkit.org/show_bug.cgi?id=134909
Unreviewed fix crash from r171089
Remove unnecessary dispatch to main queue since it can happen during construction.
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-14
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): remove dispatch_async
- 6:52 PM Changeset in webkit [171098] by
-
- 2 edits in trunk/Source/WebKit2
[Cocoa] _WKRemoteObjectInterface leaks NSString ivar
https://bugs.webkit.org/show_bug.cgi?id=134914
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-14
Reviewed by Simon Fraser.
Release our copied NSString in dealloc.
- Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(-[_WKRemoteObjectInterface dealloc]):
- 6:37 PM Changeset in webkit [171097] by
-
- 1 edit4 adds in trunk/LayoutTests
Provide some large JPEG images with EXIF orientation for subsampling tests
https://bugs.webkit.org/show_bug.cgi?id=134847
Reviewed by Sam Weinig.
Four images (either 3000x2000 or 2000x3000) that each have EXIF rotation
attributes that should render with an arrow pointing UP. The
orientation-rotate-0.jpg should always render correctly, even if EXIF
rotation is ignored. The others are variations on that image that were
saved in rotated form, then reverted to the correct orientation via EXIF.
- fast/canvas/resources/orientation-rotate-0.jpg: Added.
- fast/canvas/resources/orientation-rotate-180.jpg: Added.
- fast/canvas/resources/orientation-rotate-90-ccw.jpg: Added.
- fast/canvas/resources/orientation-rotate-90-cw.jpg: Added.
- 5:41 PM Changeset in webkit [171096] by
-
- 29 edits19 adds in trunk/Source/JavaScriptCore
Allow for Int52Rep to see things other than Int32, and make this testable
https://bugs.webkit.org/show_bug.cgi?id=134873
<rdar://problem/17641915>
Reviewed by Geoffrey Garen and Mark Hahnenberg.
A major premise of our type inference is that prediction propagation can say whatever it
wants and we'll still have valid IR after Fixup. This previously didn't work with Int52s.
We required some kind of agreement between prediction propagation and fixup over which
data flow paths were Int52 and which weren't.
It turns out that we basically had such an agreement, with the exception of code that was
unreachable due to ForceOSRExit. Then, fixup and prediction propagation would disagree. It
might be nice to fix that bug - but it's only in the case of Int52 that such a thing would
be a bug! Normally, we allow sloppiness in prediction propagation.
This patch allows us to be sloppy with Int52 prediction propagation by giving Int52Rep the
ability to see inputs other than Int32. This fixes the particular ForceOSRExit bug (see
int52-force-osr-exit-path.js for the reduced test case). To make sure that the newly
empowered Int52Rep is actually correct - in case we end up using it on paths other than
ForceOSRExit - this patch introduces an internal intrinsic called fiatInt52() that forces
us to attempt Int52 conversion on the input. This patch adds a bunch of tests that stress
this intrinsic. This means that we're now stressing Int52Rep more so than ever before!
Note that it would still be a bug for prediction propagation to ever cause us to create an
Int52Rep node for a non-Int32 input. But, this will now be a performance bug, rather than
a crash bug.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::fixTypeForRepresentation):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsic):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
- dfg/DFGGraph.h:
(JSC::DFG::Graph::isMachineIntConstant):
- dfg/DFGNode.h:
(JSC::DFG::Node::isMachineIntConstant):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::speculate):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertMachineInt):
(JSC::DFG::SpeculativeJIT::speculateMachineInt):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepMachineInt):
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
- dfg/DFGUseKind.cpp:
(WTF::printInternal):
- dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):
(JSC::DFG::isDouble):
- dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validate):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLIntrinsicRepository.h:
- ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileInt52Rep):
(JSC::FTL::LowerDFGToLLVM::doubleToInt32):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::doubleToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateMachineInt):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepMachineInt):
- jit/JITOperations.h:
- jsc.cpp:
(GlobalObject::finishCreation):
(functionIdentity):
- runtime/Intrinsic.h:
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
(JSC::tryConvertToInt52):
(JSC::isInt52):
(JSC::JSValue::isMachineInt):
- tests/stress/dead-fiat-double-to-int52-then-exit-not-int52.js: Added.
(foo):
- tests/stress/dead-fiat-double-to-int52.js: Added.
(foo):
- tests/stress/dead-fiat-int32-to-int52.js: Added.
(foo):
- tests/stress/dead-fiat-value-to-int52-double-path.js: Added.
(foo):
(bar):
- tests/stress/dead-fiat-value-to-int52-then-exit-not-double.js: Added.
(foo):
(bar):
- tests/stress/dead-fiat-value-to-int52-then-exit-not-int52.js: Added.
(foo):
(bar):
- tests/stress/dead-fiat-value-to-int52.js: Added.
(foo):
(bar):
- tests/stress/fiat-double-to-int52-then-exit-not-int52.js: Added.
(foo):
- tests/stress/fiat-double-to-int52-then-fail-to-fold.js: Added.
(foo):
- tests/stress/fiat-double-to-int52-then-fold.js: Added.
(foo):
- tests/stress/fiat-double-to-int52.js: Added.
(foo):
- tests/stress/fiat-int32-to-int52.js: Added.
(foo):
- tests/stress/fiat-value-to-int52-double-path.js: Added.
(foo):
(bar):
- tests/stress/fiat-value-to-int52-then-exit-not-double.js: Added.
(foo):
(bar):
- tests/stress/fiat-value-to-int52-then-exit-not-int52.js: Added.
(foo):
(bar):
- tests/stress/fiat-value-to-int52-then-fail-to-fold.js: Added.
(foo):
- tests/stress/fiat-value-to-int52-then-fold.js: Added.
(foo):
- tests/stress/fiat-value-to-int52.js: Added.
(foo):
(bar):
- tests/stress/int52-force-osr-exit-path.js: Added.
(foo):
- 5:14 PM Changeset in webkit [171095] by
-
- 2 edits in trunk/Source/WebKit2
[PlugIns] Check for a non-null snapshot image before trying to decode it
https://bugs.webkit.org/show_bug.cgi?id=134913
<rdar://problem/17606033>
Reviewed by Tim Horton.
Changeset r169820 introduced a bug where we could examine the pixels of
an image (looking for solid colors) before checking if the image actually
existed.
I added a null check, and moved the code around a bit to avoid checking
for existence three times.
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pluginSnapshotTimerFired): Check that snapshotImage exists
before trying to look at it.
- 5:14 PM Changeset in webkit [171094] by
-
- 2 edits6 adds in trunk
[iOS] Add tests to ensure CSS :active and :hover are applied when processing touch events
https://bugs.webkit.org/show_bug.cgi?id=134905
<rdar://problem/16602779>
Reviewed by Simon Fraser.
.:
Add a manual test to ensure that styles for CSS pseudo-class :hover aren't temporarily cleared
on the tapped element when processing a touchend as a result of finger pressing and releasing
on the same element that is initially positioned outside the visible content area.
- ManualTests/ios/touchstart-touchend-on-same-element-should-not-clear-hover.html: Added.
LayoutTests:
Upstream tests by Andreas Kling for <rdar://problem/14324231>.
Add a DRT test to ensure that we apply the style for the CSS pseudo-class :active when
processing touch events.
- platform/iphone-simulator/fast/events/ontouchstart-active-selector-expected.txt: Added.
- platform/iphone-simulator/fast/events/ontouchstart-active-selector.html: Added.
- 5:09 PM Changeset in webkit [171093] by
-
- 2 edits in trunk/Source/WebKit2
Fix 32-bit build.
- UIProcess/Cocoa/SessionStateCoding.mm:
(WebKit::encodeSessionState):
- 4:59 PM Changeset in webkit [171092] by
-
- 4 edits1 add in trunk/Source/JavaScriptCore
Flattening dictionaries with oversize backing stores can cause crashes
https://bugs.webkit.org/show_bug.cgi?id=134906
Reviewed by Filip Pizlo.
The collector expects any pointers into CopiedSpace passed to copyLater are within 32 KB
of the CopiedBlock header. This was always the case except for when flattening a dictionary
caused the size of the Butterfly to decrease. This was equivalent to moving the base of the
Butterfly to higher addresses. If the object was reduced sufficiently in size, the base
would no longer be within the first 32 KB of the CopiedBlock and the next collection would
choke on the Butterfly pointer.
This patch fixes this issue by detect this situation during flattening and memmove-ing
the Butterfly down to where the old base was.
- runtime/JSObject.cpp:
(JSC::JSObject::shiftButterflyAfterFlattening):
- runtime/JSObject.h:
(JSC::JSObject::butterflyPreCapacity):
(JSC::JSObject::butterflyTotalSize):
- runtime/Structure.cpp:
(JSC::Structure::flattenDictionaryStructure):
- tests/stress/flatten-oversize-dictionary-object.js: Added.
(foo):
- 4:35 PM Changeset in webkit [171091] by
-
- 2 edits in trunk/Source/WebKit2
Use the legacy session coder for encoding/decoding session state
https://bugs.webkit.org/show_bug.cgi?id=134910
Reviewed by Beth Dakin.
- UIProcess/Cocoa/SessionStateCoding.mm:
(WebKit::encodeSessionState):
(WebKit::decodeSessionState):
- 4:13 PM Changeset in webkit [171090] by
-
- 2 edits in trunk/Source/WebKit2
Restrict network process to remote connections
https://bugs.webkit.org/show_bug.cgi?id=134908
Reviewed by Geoffrey Garen.
Further restrict network client
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 3:32 PM Changeset in webkit [171089] by
-
- 2 edits in trunk/Source/WebCore
WebVideoFullscreenInterfaceAVKit should only call the UI from main thread.
https://bugs.webkit.org/show_bug.cgi?id=134890
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-14
Reviewed by Eric Carlson.
dispatch_async to the main thread before setting properties that would affect the UI.
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): wrap in call to dispatch_async
(WebVideoFullscreenInterfaceAVKit::setDuration): ditto
(WebVideoFullscreenInterfaceAVKit::setCurrentTime): ditto
(WebVideoFullscreenInterfaceAVKit::setRate): ditto
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions): ditto
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges): ditto
(WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions): ditto
(WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions): ditto
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback): ditto
- 3:22 PM Changeset in webkit [171088] by
-
- 3 edits in trunk/Tools
check-webkit-style should apply C++ rules to Objective-C++ files
https://bugs.webkit.org/show_bug.cgi?id=134884
Reviewed by Joseph Pecoraro.
Fixes an issue where check-webkit-style doesn't apply applicable C++ rules to
Objective-C++ files.
Currently check-webkit-style doesn't apply the following rules to Objective-C++
files: build/using_std, runtime/max_min_macros, runtime/wtf_move, readability/null.
Instead, we should teach check-webkit-style to apply these rules because, as
its name implies, an Objective-C++ file may contain C++ code.
- Scripts/webkitpy/style/checkers/cpp.py:
(_FileState.init): Add instance variable _is_objective_cpp to track whether a file has
extension mm (i.e. an Objective-C++ file).
(_FileState.is_objective_c_or_objective_cpp): Added; returns true if the file
has extension m or mm or if the file has extension h and contains Objective-C directives.
(check_for_null): No change in behavior; don't apply rule to Objective-C++ file.
(check_identifier_name_in_declaration): Substitute _FileState.is_objective_c_or_objective_cpp() for
_FileState.is_c_or_objective_c()
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_null_false_zero): Added test case for Objective-C++ file.
(WebKitStyleTest.test_max_macro): Add test case for Objective-C and Objective-C++ file.
(WebKitStyleTest.test_min_macro): Ditto.
(WebKitStyleTest.test_wtf_move): Add test case for Objective-C++ file.
- 3:00 PM Changeset in webkit [171087] by
-
- 2 edits in trunk/Source/WebKit2
ASSERT(isMainThread()) under OneShotDisplayLinkHandler
https://bugs.webkit.org/show_bug.cgi?id=134900
Reviewed by Simon Fraser.
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(-[OneShotDisplayLinkHandler displayLinkFired:]):
isMainThread means the Web thread sometimes.
- 2:57 PM Changeset in webkit [171086] by
-
- 3 edits in trunk/Source/WebKit2
Fix the build.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
- UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _frameOrBoundsChanged]):
- 2:42 PM Changeset in webkit [171085] by
-
- 10 edits in tags/Safari-538.46.2/Source/WebKit2
Merged r171057. <rdar://problem/17295636>
- 2:37 PM Changeset in webkit [171084] by
-
- 2 edits in trunk/Source/WebKit2
[UNIX] Log error description when failing to create shared memory file.
https://bugs.webkit.org/show_bug.cgi?id=134892
Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-07-14
Reviewed by Darin Adler.
- Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::create): Print the string describing the error number (errno).
- 2:29 PM Changeset in webkit [171083] by
-
- 3 edits in trunk/Source/WebCore
Fix the !ENABLE(FILTERS) && !ENABLE(CSS_FILTERS) build after r167497
https://bugs.webkit.org/show_bug.cgi?id=134679
Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-07-14
Reviewed by Darin Adler.
- html/ImageData.cpp:
- platform/graphics/cairo/ImageBufferCairo.cpp:
- 2:23 PM Changeset in webkit [171082] by
-
- 14 edits2 adds in trunk
[CSS Grid Layout] Support sparse in auto-placement algorithm
https://bugs.webkit.org/show_bug.cgi?id=134544
Reviewed by Sergio Villar Senin.
Source/WebCore:
This patch implements sparse mode for auto-placement algorithm, which is
the default mode in the new grid-auto-flow syntax. It keeps track of the
auto-placement cursor in
RenderGrid::placeAutoMajorAxisItemsOnGrid() and updates it accordingly
when auto-positioned items are placed.
If we're in dense mode it resets the cursor after each item (which keeps
the old behavior that was using dense mode by default).
GridIterator has been adapted to look for empty areas from a given
position in both directions.
Test: fast/css-grid-layout/grid-auto-flow-sparse.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::GridIterator): Modify constructor to
add an optional argument for the varying index. This allows to look for
empty areas in both axis.
(WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid): Defined the
auto-placement cursor and rested after each item if we're in dense mode.
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): Use auto-placement
cursor to look for empty areas from the last auto-positioned item
placed.
- rendering/RenderGrid.h: Modify placeAutoMajorAxisItemOnGrid() header
to receive the auto-placement cursor.
LayoutTests:
Test cases have been adapted accordingly, adding new cases to cover both
sparse and dense options.
- fast/css-grid-layout/grid-auto-flow-resolution-expected.txt:
- fast/css-grid-layout/grid-auto-flow-resolution.html:
- fast/css-grid-layout/grid-auto-flow-sparse-expected.txt: Added.
- fast/css-grid-layout/grid-auto-flow-sparse.html: Added.
- fast/css-grid-layout/grid-container-change-named-grid-lines-recompute-child.html:
- fast/css-grid-layout/grid-item-auto-placement-automatic-span-expected.txt:
- fast/css-grid-layout/grid-item-auto-placement-automatic-span.html:
- fast/css-grid-layout/grid-item-auto-placement-definite-span-expected.txt:
- fast/css-grid-layout/grid-item-auto-placement-definite-span.html:
- fast/css-grid-layout/grid-item-removal-auto-placement-update.html:
- fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
- fast/css-grid-layout/resources/grid.css:
(.autoRowAutoColumnSpanning2):
(.autoRowSpanning2AutoColumn):
(.autoRowSpanning2AutoColumnSpanning3):
(.autoRowSpanning3AutoColumnSpanning2):
(.gridAutoFlowColumnDense):
(.gridAutoFlowRowDense):
- 2:22 PM Changeset in webkit [171081] by
-
- 8 edits in trunk/Source/WebCore
[iOS] Some videos play as inline audio-only content
https://bugs.webkit.org/show_bug.cgi?id=134898.
<rdar://problem/17629379>
Reviewed by Eric Carlson.
Add a new 'presentationType' accessor that indicates if the media
element is playing in 'audio' mode. This can happen if a video
element plays an HLS stream that starts off in audio-only mode.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::presentationType): Added.
- html/HTMLMediaElement.h:
- platform/audio/MediaSession.cpp:
(WebCore::MediaSession::presentationType): Added.
- platform/audio/MediaSession.h:
- platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::sessionRestrictsInlineVideoPlayback):
Use the presentationType, rather than the mediaType to control
inline playback behavior.
- platform/audio/ios/AudioDestinationIOS.h:
(WebCore::AudioDestinationMac::presentationType): Add presentationType.
- platform/audio/mac/AudioDestinationMac.h:
(WebCore::AudioDestinationMac::presentationType): Ditto.
- 2:07 PM Changeset in webkit [171080] by
-
- 5 edits in trunk/Source/WebKit2
[iOS][WK2] On rotation, RemoteLayerTreeDrawingArea renders one extra frame at the wrong orientation
https://bugs.webkit.org/show_bug.cgi?id=134875
Reviewed by Tim Horton.
On animated resize, the size of the DrawingAreaProxy was changed before the layout parameters were
changed. This in turn caused the WebProcess's DrawingArea to flush the layer tree while still
at the wrong orientation.
This patch fixes the issue by making a special case for animated resize:
-While starting animated resize, _frameOrBoundsChanged can be called several times in response to
the API's client changing the WKWebView. In that case, we do not update the drawing area.
-After the "updateBlock" is executed and the size have been changed, the dynamic viewport update
is computed, the dynamicViewportSizeUpdate is sent to the WebProcess, followed by the message
DrawingArea::updateGeometry(). Since both messages are asynchronous, they are received in that
order, and the updateGeometry() is always done after the viewport configuration has been updated.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
- UIProcess/ios/WKContentView.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView setMinimumSize:]): Deleted.
- 2:06 PM Changeset in webkit [171079] by
-
- 5 edits in tags/Safari-538.46.2/Source
Versioning.
- 2:02 PM Changeset in webkit [171078] by
-
- 3 edits in trunk/Source/WebKit2
[iOS][WK2] Fix withinEpsilon()
https://bugs.webkit.org/show_bug.cgi?id=134798
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-14
Reviewed by Darin Adler.
Move the function back to WKWebView, it is no longer needed in WKContentView.
Use the real types as input to properly verify that the two inputs are within
a small value of the 32bit floating point.
The epsilon we use is always on 32 bits float because we want to avoid doing work for changes
that would not make any difference on float.
The source of those small changes comes from the fact UIProcess does a lot of processing
on CGFloat, which are double on 64bits architecture, while the WebProcess use 32bits floating point
for scale. When we are getting updates from the WebProcess, we should ignore any small differences
caused by the computations done with less precision.
- UIProcess/API/Cocoa/WKWebView.mm:
(withinEpsilon):
- UIProcess/ios/WKContentViewInteraction.h:
(withinEpsilon): Deleted.
- 2:01 PM Changeset in webkit [171077] by
-
- 1 copy in tags/Safari-538.46.2
New Tag.
- 1:55 PM Changeset in webkit [171076] by
-
- 4 edits in trunk/Source/JavaScriptCore
Remove some dead code from FTLJITFinalizer
https://bugs.webkit.org/show_bug.cgi?id=134874
Reviewed by Geoffrey Garen.
Not sure what that code was for...but it does not do anything :)
- ftl/FTLJITFinalizer.cpp:
(JSC::FTL::JITFinalizer::finalizeFunction):
The pointer of the label is computed but never used.
- ftl/FTLJITFinalizer.h:
- ftl/FTLLink.cpp:
(JSC::FTL::link):
The label is never set to anything.
- 1:12 PM Changeset in webkit [171075] by
-
- 10 edits in trunk
[Feature Queries] Enable Feature Queries on Mac
https://bugs.webkit.org/show_bug.cgi?id=134404
Reviewed by Antti Koivisto.
Source/JavaScriptCore:
Enable Feature Queries on Mac and resume running the
feature tests.
- Configurations/FeatureDefines.xcconfig: Turn on
ENABLE_CSS3_CONDITIONAL_RULES.
Source/WebCore:
Enable Feature Queries on Mac and resume running the
feature tests.
- Configurations/FeatureDefines.xcconfig: Turn on
ENABLE_CSS3_CONDITIONAL_RULES.
Source/WebKit/mac:
Enable Feature Queries on Mac and resume running the
feature tests.
- Configurations/FeatureDefines.xcconfig: Turn on
ENABLE_CSS3_CONDITIONAL_RULES.
Source/WebKit2:
Enable Feature Queries on Mac and resume running the
feature tests.
- Configurations/FeatureDefines.xcconfig: Turn on
ENABLE_CSS3_CONDITIONAL_RULES.
LayoutTests:
Resume running the Feature Queries tests on Mac.
- platform/mac/TestExpectations: Unskip the tests.
- 12:51 PM Changeset in webkit [171074] by
-
- 3 edits in trunk/Source/WebCore
<rdar://problem/17305458> Cannot interact with video controls in ePubs
Bug 134836 - [New Multicolumn] Crawl to check for compositing between us and the enclosingPaginationLayer
https://bugs.webkit.org/show_bug.cgi?id=134836
Reviewed by Dean Jackson.
The paginatedAndComposited bit being set in updateLayerPositions just didn't work, since compositing states
can change without triggering that function. This patch just gets rid of the bit and does a crawl every time
to check. This ensures that changes in compositing states don't necessitate any changes in pagination,
since the lookup will always check the current compositing state.
The new function that does this check is hasCompositedLayerInEnclosingPaginationChain.
I have been unable to reproduce this issue, and this is therefore a purely speculative fix. I have no test
case to provide because of this.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::hasCompositedLayerInEnclosingPaginationChain):
(WebCore::RenderLayer::updatePagination):
- rendering/RenderLayer.h:
- 12:15 PM Changeset in webkit [171073] by
-
- 4 edits in trunk/Source/WebCore
Move composite bounds calculation to RenderLayerBacking.
https://bugs.webkit.org/show_bug.cgi?id=134864
Reviewed by Darin Adler.
No change in functionality.
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCompositedBounds):
- rendering/RenderLayerCompositor.cpp: it was just proxying the calculateLayerBounds()
to the RenderLayer.
(WebCore::RenderLayerCompositor::calculateCompositedBounds): Deleted.
- rendering/RenderLayerCompositor.h:
- 12:14 PM Changeset in webkit [171072] by
-
- 6 edits in trunk
Make shouldKeepCurrentBackForwardListItemInList part of WKPageLoaderClientV5 to avoid breaking ABI
https://bugs.webkit.org/show_bug.cgi?id=134889
Reviewed by Beth Dakin.
Source/WebKit2:
- UIProcess/API/C/WKPage.cpp:
- UIProcess/API/C/WKPageLoaderClient.h:
Tools:
Bump loader version number to 5.
- TestWebKitAPI/Tests/WebKit2/ShouldKeepCurrentBackForwardListItemInList.cpp:
(TestWebKitAPI::setPageLoaderClient):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::createWebViewWithOptions):
- 11:54 AM Changeset in webkit [171071] by
-
- 2 edits in trunk/Source/WebCore
Fix the build.
- platform/audio/MediaSessionManager.h:
- 11:31 AM Changeset in webkit [171070] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION (r171045): Reproducible crash on navigation in PageClientImpl::willRecordNavigationSnapshot
https://bugs.webkit.org/show_bug.cgi?id=134887
Reviewed by Tim Horton.
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::navigationGestureDidBegin): nil-check m_webView. It can be nil when
the client is using WKView directly.
(WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
(WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.
(WebKit::PageClientImpl::willRecordNavigationSnapshot): Ditto.
- 11:17 AM Changeset in webkit [171069] by
-
- 16 edits1 delete in trunk/Source
[Mac] don't enable low power audio mode on external output devices
https://bugs.webkit.org/show_bug.cgi?id=134877
Reviewed by Sam Weinig.
Source/WebCore:
No new tests, this deals with changes to the audio hardware at runtime.
- WebCore.xcodeproj/project.pbxproj: Remove AudioSessionListener.h.
- WebCore.vcxproj/WebCore.vcxproj: Ditto.
- platform/audio/AudioHardwareListener.cpp:
(WebCore::AudioHardwareListener::AudioHardwareListener): Initialize m_outputDeviceSupportsLowPowerMode
to true on iOS.
- platform/audio/AudioHardwareListener.h:
(WebCore::AudioHardwareListener::outputDeviceSupportsLowPowerMode): New accessor.
(WebCore::AudioHardwareListener::setHardwareActivity): New setter for derived classes.
(WebCore::AudioHardwareListener::setOutputDeviceSupportsLowPowerMode): Ditto.
Remove AudioSessionListener interface, it wasn't being used.
- platform/audio/AudioSession.cpp:
(WebCore::AudioSession::addListener): Deleted.
(WebCore::AudioSession::removeListener): Deleted.
(WebCore::AudioSession::beganAudioInterruption): Deleted.
(WebCore::AudioSession::endedAudioInterruption): Deleted.
- platform/audio/AudioSession.h:
- platform/audio/AudioSessionListener.h: Removed.
- platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::addSession): Allocate the AudioHardwareListener if necessary.
(WebCore::MediaSessionManager::removeSession): Free the AudioHardwareListener if necessary.
(WebCore::MediaSessionManager::audioOutputDeviceChanged): AudioHardwareListener client interface
called when the output device changes, call updateSessionState to make sure we are using
the correct buffer size.
- platform/audio/MediaSessionManager.h:
- platform/audio/ios/AudioDestinationIOS.h:
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionPrivate::AudioSessionPrivate): Drive-by cleanup, remove ObjC helper object
that was used to listen for OS notifications, it is no longer used.
(SOFT_LINK_POINTER): Deleted.
(-[WebAudioSessionHelper initWithCallback:]): Deleted.
(-[WebAudioSessionHelper dealloc]): Deleted.
(-[WebAudioSessionHelper interruption:]): Deleted.
- platform/audio/mac/AudioHardwareListenerMac.cpp:
(WebCore::currentDeviceSupportsLowPowerBufferSize): New, return true only if using build-in
transport device.
(WebCore::processIsRunningPropertyDescriptor): Return reference to static AudioObjectPropertyAddress
for kAudioHardwarePropertyProcessIsRunning instead of declaring one in every method
that needs one.
(WebCore::outputDevicePropertyDescriptor): Return reference to static AudioObjectPropertyAddress
for kAudioHardwarePropertyDefaultOutputDevice.
(WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac): Restructure and add audio object
listener for default output device.
(WebCore::AudioHardwareListenerMac::~AudioHardwareListenerMac): *Remove* listener audio object
property listener instead of *Adding* a new one. Remove new listener.
(WebCore::AudioHardwareListenerMac::propertyChanged): Enumerate the properties that changed,
call appropriate method.
(WebCore::AudioHardwareListenerMac::processIsRunningChanged): Renamed from setHardwareActive,
cleanup.
(WebCore::AudioHardwareListenerMac::outputDeviceChanged): New, call client.audioHardwareOutputDeviceChanged.
(WebCore::AudioHardwareListenerMac::setHardwareActive): Deleted, renamed processIsRunningChanged.
- platform/audio/mac/AudioHardwareListenerMac.h:
- platform/audio/mac/MediaSessionManagerMac.cpp:
(MediaSessionManager::updateSessionState): Only set the output buffer size to 4K when hardware
supports it.
Source/WebKit2:
- PluginProcess/PluginProcess.h: Add an empty implementation of
AudioHardwareListener::audioOutputDeviceChanged.
- 11:11 AM Changeset in webkit [171068] by
-
- 3 edits in trunk/Source/WebKit2
[iOS] Throttle painting using a UI-process-side CADisplayLink
https://bugs.webkit.org/show_bug.cgi?id=134879
<rdar://problem/17641699>
Reviewed by Simon Fraser.
Just waiting for CA to commit is insufficient to actually throttle to 60fps,
because nothing will block the main runloop from spinning.
Instead, listen to a CADisplayLink, and send didUpdate to the WebProcess
the first time it fires after we commit. This is not a guarantee that
our content is on the screen, but we don't have any way to make that guarantee yet.
This will throttle painting, rAF, etc. to the display refresh rate.
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(-[OneShotDisplayLinkHandler initWithDrawingAreaProxy:]):
(-[OneShotDisplayLinkHandler dealloc]):
(-[OneShotDisplayLinkHandler displayLinkFired:]):
(-[OneShotDisplayLinkHandler invalidate]):
(-[OneShotDisplayLinkHandler schedule]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers): Deleted.
- 10:16 AM Changeset in webkit [171067] by
-
- 3 edits2 adds in trunk/LayoutTests
[css3-text] Add editing test for CSS3 Text Decoration properties
https://bugs.webkit.org/show_bug.cgi?id=120114
Reviewed by Darin Adler.
Adds editing layout test to verify that CSS3 Text Decoration properties
are being properly propagated.
- editing/pasteboard/insert-text-decoration-expected.txt: Added.
- editing/pasteboard/insert-text-decoration.html: Added.
- platform/mac/TestExpectations: Skip while CSS3_TEXT is disabled by default.
- platform/win/TestExpectations: Skip while CSS3_TEXT is disabled by default.
- 9:17 AM Changeset in webkit [171066] by
-
- 6 edits in trunk/Source/WebKit2
<rdar://problem/17657391> [iOS] Networking process writes persistent credentials to the keychain
https://bugs.webkit.org/show_bug.cgi?id=134878
Reviewed by Sam Weinig.
Route CFNetwork’s calls to Security API through to the UI process.
- NetworkProcess/ios/NetworkProcessIOS.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcess): Initialize SecItemShim.
- Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::initialize): On iOS, rather than using a shim library, supply
CFNetwork with alternate functions to call.
- Shared/mac/SecItemShim.messages.in: Removed #if !PLATFORM(IOS).
- UIProcess/mac/SecItemShimProxy.messages.in: Ditto.
- config.h: Define ENABLE_SEC_ITEM_SHIM to 1 on iOS as well.
- 9:16 AM Changeset in webkit [171065] by
-
- 3 edits in trunk/Tools
Teach check-webkit-style to suggest WTF::move() when it sees std::move()
https://bugs.webkit.org/show_bug.cgi?id=134620
Reviewed by Joseph Pecoraro.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_max_min_macros): Fix up comment so that it reads well.
(check_wtf_move): Added.
(check_style): Modified to call check_wtf_move().
(CppChecker): Add category "runtime/wtf_move".
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_wtf_move): Added.
- 3:56 AM Changeset in webkit [171064] by
-
- 22 edits3 adds in trunk/LayoutTests
[EFL] Unreviewed EFL gardening.
Rebaseline tests after r170418 and r170433.
- platform/efl/fast/regions/repaint/japanese-rl-selection-repaint-in-regions-expected.png: Added. Rebaseline after r170418.
- platform/efl/fast/regions/repaint/japanese-rl-selection-repaint-in-regions-expected.txt: Rebaseline after r170418.
- platform/efl/fast/text/decorations-with-text-combine-expected.png: Rebaseline after r170418.
- platform/efl/fast/text/decorations-with-text-combine-expected.txt: Rebaseline after r170418.
- platform/efl/fast/text/emphasis-vertical-expected.png: Rebaseline after r170418.
- platform/efl/fast/text/emphasis-vertical-expected.txt: Rebaseline after r170418.
- platform/efl/fast/text/international/002-expected.png: Rebaseline after r170418.
- platform/efl/fast/text/international/002-expected.txt: Rebaseline after r170418.
- platform/efl/fast/text/international/text-combine-image-test-expected.png: Rebaseline after r170418.
- platform/efl/fast/text/international/text-combine-image-test-expected.txt: Rebaseline after r170418.
- platform/efl/fast/text/international/wrap-CJK-001-expected.png: Rebaseline after r170418.
- platform/efl/fast/writing-mode/border-vertical-lr-expected.png: Rebaseline after r170418.
- platform/efl/fast/writing-mode/border-vertical-lr-expected.txt: Rebaseline after r170418.
- platform/efl/fast/writing-mode/japanese-lr-selection-expected.png: Rebaseline after r170418.
- platform/efl/fast/writing-mode/japanese-lr-selection-expected.txt: Rebaseline after r170418.
- platform/efl/fast/writing-mode/japanese-lr-text-expected.png: Rebaseline after r170418.
- platform/efl/fast/writing-mode/japanese-lr-text-expected.txt: Rebaseline after r170418.
- platform/efl/fast/writing-mode/japanese-rl-selection-expected.png: Rebaseline after r170418.
- platform/efl/fast/writing-mode/japanese-rl-selection-expected.txt: Rebaseline after r170418.
- platform/efl/fast/writing-mode/japanese-rl-text-expected.png: Rebaseline after r170418.
- platform/efl/fast/writing-mode/japanese-rl-text-expected.txt: Rebaseline after r170418.
- platform/efl/svg/W3C-SVG-1.1/filters-blend-01-b-expected.png: Rebaseline after r170433.
- platform/efl/svg/W3C-SVG-1.1/filters-blend-01-b-expected.txt: Added. Rebaseline after r170433.
- platform/efl/svg/filters/feBlend-all-blendmodes-expected.txt: Added. Rebaseline after r170433.
- 3:25 AM Changeset in webkit [171063] by
-
- 2 edits in trunk/LayoutTests
[EFL] Unreviewed EFL gardening.
Remove failure expectations for tests that have been passing after r168350, r169309 and r169620.
- platform/efl/TestExpectations:
- 3:07 AM Changeset in webkit [171062] by
-
- 3 edits in trunk/LayoutTests
[EFL] Unreviewed EFL gardening.
- 12:19 AM Changeset in webkit [171061] by
-
- 1 edit in trunk/Source/WebKit2/ChangeLog
Added Radar link to the last ChangeLog entry
- 12:18 AM Changeset in webkit [171060] by
-
- 4 edits in trunk/Source/WebKit2
NetworkProcess sometimes hangs under copyDefaultCredentialForProtectionSpace
https://bugs.webkit.org/show_bug.cgi?id=134666
Reviewed by Tim Horton.
A SecItem may have an attribute whose value is a SecAccessControlRef, which is not supported
by ArgumentCodersCF. In debug builds, trying to encode a CFDictionary containing a value of
unsupprted type causes an assertion to fail, but in release builds encoding succeeds, and
only decoding fails, in this case silently, simply not delivering the
SecItemShim::secItemResponse message.
The fix is to teach ArgumentCodersCF about SecAccessControlRef.
- Shared/cf/ArgumentCodersCF.cpp:
(IPC::typeFromCFTypeRef): Check for the SecAccessControlRef type.
(IPC::encode): Encode the SecAccessControl serialized into CFData.
(IPC::decode): Deserialize a SecAccessControl from the decoded CFData.
- Shared/cf/ArgumentCodersCF.h:
- config.h: Defined HAVE_SEC_ACCESS_CONTROL.
Jul 13, 2014:
- 2:51 PM Changeset in webkit [171059] by
-
- 5 edits in trunk/Source/WebCore
Remove SelectorCheckerFastPath from the style resolution algorithm
https://bugs.webkit.org/show_bug.cgi?id=134866
Reviewed by Antti Koivisto.
SelectorCheckerFastPath is now pure overhead because it can almost never match
if the CSS JIT was unable to compile.
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ruleMatches):
The "pre-filter" behind fastCheckableSelector had two parts:
1) Filtering the pseudoID.
2) Filtering on the rule hash.
The first part has been generalized (RuleDatacanMatchPseudoElement())
and moved to collectMatchingRulesForList().
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
- css/RuleSet.cpp:
(WebCore::selectorCanMatchPseudoElement):
(WebCore::RuleData::RuleData):
(WebCore::RuleSet::addRegionRule):
(WebCore::RuleSet::addRulesFromSheet):
- css/RuleSet.h:
(WebCore::RuleData::canMatchPseudoElement):
(WebCore::RuleData::hasFastCheckableSelector): Deleted.
- css/StyleResolver.cpp:
- 2:46 PM Changeset in webkit [171058] by
-
- 2 edits in trunk/Source/WebCore
Remove an useless check from SelectorChecker
https://bugs.webkit.org/show_bug.cgi?id=134868
Reviewed by Darin Adler.
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
The condition of this if() branch can never be met for the mode "QueryingRules".
The next condition in that if() is "dynamicPseudo != NOPSEUDO", which implies
a pseudo element was matched prior to the current context/simple selector.
This cannot happen with QueryingRules, since we never match pseudo elements for
SelectorQuery.
- 12:39 PM Changeset in webkit [171057] by
-
- 10 edits in trunk/Source/WebKit2
<rdar://problem/17295636> [Cocoa] Include element snapshot in _WKActivatedElementInfo
https://bugs.webkit.org/show_bug.cgi?id=134872
Reviewed by Sam Weinig.
- Shared/InteractionInformationAtPosition.cpp:
(WebKit::InteractionInformationAtPosition::encode): Encode the image if there is one.
(WebKit::InteractionInformationAtPosition::decode): Decode the image if there is one.
- Shared/InteractionInformationAtPosition.h: Added an image member to the struct.
- UIProcess/API/Cocoa/_WKActivatedElementInfo.h: Exposed the boundingRect property and added
an image property.
- UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:
(-[_WKActivatedElementInfo _initWithType:URL:location:title:rect:image:]): Added an image
parameter, which is stored in a new ivar.
(-[_WKActivatedElementInfo image]): Added this getter, which converts the ShareableBitmap
into a cached Cocoa image and returns it.
- UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h: Added image parameter to the
initializer, removed _boundingRect property declaration from here.
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant showImageSheet]): Pass the image from the position information
into the _WKActivatedElementInfo initializer.
(-[WKActionSheetAssistant showLinkSheet]): Ditto.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::snapshotNode): Added.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation): If the element is a link or an image, store a
snapshot of it in the image member of the InteractionInformationAtPosition.
- 11:55 AM Changeset in webkit [171056] by
-
- 5 edits in tags/Safari-538.43.42/Source
Versioning.
- 11:54 AM Changeset in webkit [171055] by
-
- 1 copy in tags/Safari-538.43.42
New tag.
- 11:39 AM Changeset in webkit [171054] by
-
- 5 edits in tags/Safari-538.43.41/Source
Versioning.
- 11:36 AM Changeset in webkit [171053] by
-
- 1 copy in tags/Safari-538.43.41
New tag.
- 10:26 AM Changeset in webkit [171052] by
-
- 2 edits in branches/ftlopt/Source/JavaScriptCore
Unreviewed, revert unintended change in r171051.
- dfg/DFGCSEPhase.cpp:
- 10:18 AM Changeset in webkit [171051] by
-
- 4 edits in branches/ftlopt/Source
Merge trunk r171049.
2014-07-13 Filip Pizlo <fpizlo@apple.com>
HashMap should have removeIf()
https://bugs.webkit.org/show_bug.cgi?id=134870
Reviewed by Sam Weinig.
Expose a new HashMap method, called removeIf(), which allows you to do an efficient
pass over the map and remove a bunch of things at once. This is used by DFG GCSE as
part of https://bugs.webkit.org/show_bug.cgi?id=134677.
- wtf/HashMap.h: (WTF::X>::removeIf):
- wtf/HashTable.h: (WTF::KeyTraits>::removeIf):
- 10:09 AM Changeset in webkit [171050] by
-
- 3 edits in trunk/Source/WebKit2
[Cocoa] Clean up session state API a little
https://bugs.webkit.org/show_bug.cgi?id=134871
Reviewed by Darin Adler.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _sessionState]):
(-[WKWebView _restoreFromSessionState:]): Deleted.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- 10:03 AM Changeset in webkit [171049] by
-
- 3 edits in trunk/Source/WTF
HashMap should have removeIf()
https://bugs.webkit.org/show_bug.cgi?id=134870
Reviewed by Sam Weinig.
Expose a new HashMap method, called removeIf(), which allows you to do an efficient
pass over the map and remove a bunch of things at once. This is used by DFG GCSE as
part of https://bugs.webkit.org/show_bug.cgi?id=134677.
- wtf/HashMap.h:
(WTF::X>::removeIf):
- wtf/HashTable.h:
(WTF::KeyTraits>::removeIf):
- 4:28 AM Changeset in webkit [171048] by
-
- 3 edits in trunk/Source/WebKit2
REGRESSION(r171045) [GTK] Build broken.
https://bugs.webkit.org/show_bug.cgi?id=134867
Unreviewed GTK build fix after r171045.
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::willRecordNavigationSnapshot):
- UIProcess/API/gtk/PageClientImpl.h:
- 3:35 AM Changeset in webkit [171047] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed, EFL build fix since r171045.
- UIProcess/CoordinatedGraphics/WebView.h:
Jul 12, 2014:
- 11:35 PM Changeset in webkit [171046] by
-
- 11 edits12 adds in trunk
Elements with rendering disabled due to dimensions should not contribute to parent bounding box
https://bugs.webkit.org/show_bug.cgi?id=134184
Patch by Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au> on 2014-07-12
Reviewed by Dirk Schulze.
Source/WebCore:
SVG elements that have rendering disabled should not contribute to any ancestor elements bounding box.
Examples of elements with rendering disabled:
- basic shape with width <= 0 or height <= 0
- path with no path data (d attribute missing or empty)
- polyline or polygon element with no point data (points attribute missing or empty)
To achieve this a method (isRenderingDisabled) was added to RenderSVGShape and it's derived classes.
This is used to determine if an element is included when creating the union of child bounding boxes
in a container element.
Tests: svg/custom/GetBBox-path-nodata.html
svg/custom/GetBBox-polygon-nodata.html
svg/custom/GetBBox-polyline-nodata.html
svg/custom/getBBox-container-hiddenchild.html
- rendering/svg/RenderSVGEllipse.cpp:
(WebCore::RenderSVGEllipse::isRenderingDisabled):
New method added. Checks bounding box to determine if rendering is disabled.
- rendering/svg/RenderSVGEllipse.h:
- rendering/svg/RenderSVGPath.cpp:
(WebCore::RenderSVGPath::isRenderingDisabled):
New method added. Checks bounding box to determine if rendering is disabled.
- rendering/svg/RenderSVGPath.h:
- rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::isRenderingDisabled):
New method added. Checks bounding box to determine if rendering is disabled.
- rendering/svg/RenderSVGRect.h:
- rendering/svg/RenderSVGShape.h:
(WebCore::RenderSVGShape::isRenderingDisabled):
New method added. Always returns false so that derived classes that do not
implement this method retain the existing behaviour.
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
For each element potentially being included in the unioned bounding box of
a container, check isRenderingDisabled and skip that element if true.
- rendering/svg/RenderSVGEllipse.cpp:
(WebCore::RenderSVGEllipse::isRenderingDisabled):
- rendering/svg/RenderSVGEllipse.h:
- rendering/svg/RenderSVGPath.cpp:
(WebCore::RenderSVGPath::isRenderingDisabled):
- rendering/svg/RenderSVGPath.h:
- rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::isRenderingDisabled):
- rendering/svg/RenderSVGRect.h:
- rendering/svg/RenderSVGShape.h:
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
LayoutTests:
Test, for each element type, that when rendering is disabled, that element does not contribute
to the bounding box for an ancestor element.
Added test to ensure zero width/height polyline and polygon do contribute to ancestor bounding box.
Updated expected results for 1 existing test (shapes-rect-02-t) as this test included zero
width and zero height rects and these were previously included in the repaint rect.
- platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
- svg/custom/GetBBox-path-nodata-expected.txt: Added.
- svg/custom/GetBBox-path-nodata.html: Added.
- svg/custom/GetBBox-polygon-nodata-expected.txt: Added.
- svg/custom/GetBBox-polygon-nodata.html: Added.
- svg/custom/GetBBox-polyline-nodata-expected.txt: Added.
- svg/custom/GetBBox-polyline-nodata.html: Added.
- svg/custom/getBBox-container-hiddenchild-expected.txt: Added.
- svg/custom/getBBox-container-hiddenchild.html: Added.
- svg/custom/getBBox-perpendicular-polygon-expected.txt: Added.
- svg/custom/getBBox-perpendicular-polygon.svg: Added.
- svg/custom/getBBox-perpendicular-polyline-expected.txt: Added.
- svg/custom/getBBox-perpendicular-polyline.svg: Added.
- 10:51 PM Changeset in webkit [171045] by
-
- 12 edits in trunk/Source/WebKit2
[Cocoa] Notify the client when a navigation snapshot is taken
https://bugs.webkit.org/show_bug.cgi?id=134865
Reviewed by Sam Weinig.
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method.
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate): Initialize new flag in
m_navigationDelegateMethods.
(WebKit::NavigationState::willRecordNavigationSnapshot): Added. Calls the new
WKNavigationDelegate method.
- UIProcess/PageClient.h: Declared new client function.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willRecordNavigationSnapshot): Added. Calls the new client function.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::willRecordNavigationSnapshot): Override that calls
NavigationState::willRecordNavigationSnapshot.
- UIProcess/mac/PageClientImpl.h:
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::willRecordNavigationSnapshot): Ditto.
- UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::recordSnapshot): Added a call to
WebPageProxy::willRecordNavigationSnapshot.
- 7:37 PM Changeset in webkit [171044] by
-
- 3 edits in trunk/Tools
Style checker complains about namespace indentation when there is no namespace
https://bugs.webkit.org/show_bug.cgi?id=105427
Patch by Peter Szanka <h868064@stud.u-szeged.hu> on 2014-07-12
Reviewed by Darin Adler.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_namespace_indentation):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_indentation):
The indentation level depends on the parantheses too, to avoid false warning in case of several statements inside macros.
- 7:24 PM Changeset in webkit [171043] by
-
- 2 edits in trunk/Source/WebCore
Rename selectorListContainsUncommonAttributeSelector() to selectorListContainsAttributeSelector()
https://bugs.webkit.org/show_bug.cgi?id=134862
Reviewed by Sam Weinig.
Unlike containsUncommonAttributeSelector(), selectorListContainsUncommonAttributeSelector() does not
evaluate the attribute for "uncommon" types.
It would be possible to change the function instead to evaluate common attributes based
on the match type and the pseudo class type. Such change would be more risky
and we would get very little benefit from it, I leave that for later if that ever becomes useful.
- css/RuleSet.cpp:
(WebCore::selectorListContainsAttributeSelector):
(WebCore::containsUncommonAttributeSelector):
(WebCore::selectorListContainsUncommonAttributeSelector): Deleted.
- 6:44 PM Changeset in webkit [171042] by
-
- 3 edits in trunk/Source/WebKit2
Unreviewed, fix EFL build break since r171034.
- UIProcess/CoordinatedGraphics/WebView.h:
- UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebContext::platformMediaCacheDirectory):
- 6:27 PM Changeset in webkit [171041] by
-
- 2 edits in trunk/Source/WebKit2
Try to fix 32-bit Mac build.
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::navigationGestureDidBegin): Added WK_API_ENABLED conditional.
(WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
(WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.
- 6:09 PM Changeset in webkit [171040] by
-
- 3 edits in trunk/Source/WebKit2
REGRESSION(r171034) [GTK] Build broken.
https://bugs.webkit.org/show_bug.cgi?id=134861
Unreviewed GTK build fix.
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::navigationGestureDidBegin):
(WebKit::PageClientImpl::navigationGestureWillEnd):
(WebKit::PageClientImpl::navigationGestureDidEnd):
- UIProcess/API/gtk/PageClientImpl.h:
- 5:54 PM Changeset in webkit [171039] by
-
- 2 edits in trunk/Tools
Remove excessive nesting from _EnumState.process_clean_line at cpp style checker
https://bugs.webkit.org/show_bug.cgi?id=125317
Patch by Daker Fernandes Pinheiro <daker.pinheiro@openbossa.org> on 2014-07-12
Reviewed by Darin Adler.
- Scripts/webkitpy/style/checkers/cpp.py:
(_EnumState.process_clean_line):
- 5:31 PM Changeset in webkit [171038] by
-
- 3 edits in trunk/Tools
Style Checker should prevent enums in bitfields
https://bugs.webkit.org/show_bug.cgi?id=57352
Reviewed by Darin Adler.
Added check that enums are not used as types for bitfields
and a unit test.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_language):
(CppChecker):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest):
(CppStyleTest.test_enum_bitfields):
(CppStyleTest.test_plain_integral_bitfields):
- 5:19 PM Changeset in webkit [171037] by
-
- 2 edits in trunk/Source/WebCore
Use braced-init-list to create one-item Vector object in insertPerformanceEntry
https://bugs.webkit.org/show_bug.cgi?id=133675
Patch by Zan Dobersek <zdobersek@igalia.com> on 2014-07-12
Reviewed by Darin Adler.
- page/PerformanceUserTiming.cpp:
(WebCore::insertPerformanceEntry): Avoid wasting three lines for creating a
Vector object with just one item that in the end gets copied. Use the
braced-init-list syntax instead, leveraging Vector's std::initializer_list
constructor.
- 5:10 PM Changeset in webkit [171036] by
-
- 2 edits in trunk/Source/WebCore
Memory leaks with autoLoadImages off
https://bugs.webkit.org/show_bug.cgi?id=124411
Reviewed by Darin Adler.
Do not emit notifyFinished for images with deferred load,
and allow deferred loads to be cancelled.
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::checkNotify):
(WebCore::CachedResource::cancelLoad):
- 4:39 PM Changeset in webkit [171035] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION(r171024) [GTK] Build broken.
https://bugs.webkit.org/show_bug.cgi?id=134859
Unreviewed GTK build fix.
- UIProcess/gtk/WebContextGtk.cpp:
(WebKit::WebContext::platformMediaCacheDirectory):
- 4:32 PM Changeset in webkit [171034] by
-
- 15 edits in trunk/Source/WebKit2
<rdar://problem/16020380> [Cocoa] Inform the client when back-forward navigation gestures begin and end
https://bugs.webkit.org/show_bug.cgi?id=134853
Reviewed by Sam Weinig.
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new WKNavigationDelegate
methods.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isShowingNavigationGestureSnapshot]): Added this getter.
- UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared new property
_isShowingNavigationGestureSnapshot.
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate): Initialize new flags in
m_navigationDelegateMethods.
(WebKit::NavigationState::navigationGestureDidBegin): Added. Calls the new
WKNavigationDelegate method.
(WebKit::NavigationState::navigationGestureWillEnd): Ditto.
(WebKit::NavigationState::navigationGestureDidEnd): Ditto.
- UIProcess/PageClient.h: Declared new client functions.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Initialize new member variable.
(WebKit::WebPageProxy::navigationGestureDidBegin): Set m_isShowingNavigationGestureSnapshot
and call the new client function.
(WebKit::WebPageProxy::navigationGestureWillEnd): Call the new client function.
(WebKit::WebPageProxy::navigationGestureDidEnd): Ditto.
(WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved): Clear
m_isShowingNavigationGestureSnapshot.
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::isShowingNavigationGestureSnapshot): Added this getter.
- UIProcess/ios/PageClientImplIOS.h: Declared overrides of new client functions.
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::navigationGestureDidBegin): Override that calls the new
NavigationState function.
(WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
(WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.
- UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture): Added calls to
WebPageProxy::navigationGestureDidBegin and WebPageProxy::navigationGestureWillEnd.
(WebKit::ViewGestureController::endSwipeGesture): Added calls to
WebPageProxy::navigationGestureDidEnd.
(WebKit::ViewGestureController::removeSwipeSnapshot): Added call to
WebPageProxy::navigationGestureSnapshotWasRemoved.
- UIProcess/mac/PageClientImpl.h: Declared overrides of new client functions.
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::navigationGestureDidBegin): Override that calls the new
NavigationState function.
(WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
(WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.
- UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSwipeGesture): Added call to
WebPageProxy::navigationGestureDidBegin.
(WebKit::ViewGestureController::endSwipeGesture): Added calls to
WebPageProxy::navigationGestureDidEnd.
(WebKit::ViewGestureController::removeSwipeSnapshot): Added call to
WebPageProxy::navigationGestureSnapshotWasRemoved.
- 3:39 PM Changeset in webkit [171033] by
-
- 22 edits in trunk
[MSE] http/tests/media/media-source/mediasource-duration.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=134852
Reviewed by Eric Carlson.
Source/WebCore:
Fixes the following tests:
http/tests/media/media-source/mediasource-config-change-mp4-a-bitrate.html
http/tests/media/media-source/mediasource-config-change-mp4-av-audio-bitrate.html
http/tests/media/media-source/mediasource-config-change-mp4-av-video-bitrate.html
http/tests/media/media-source/mediasource-config-change-mp4-v-bitrate.html
http/tests/media/media-source/mediasource-config-change-mp4-v-framerate.html
http/tests/media/media-source/mediasource-duration.html
http/tests/media/media-source/mediasource-play.html
The primary change necessary to fix the mediasource-duration.html test was to add support
for delaying the completion of a seek operation until the HTMLMediaElement's readyState
rises to > HAVE_CURRENT_DATA. This is accomplished by modifying MediaSourcePrivate to have
waitForSeekCompleted() and seekCompleted() virtual methods. These are called by MediaSource
when a seek operation results in the current time moving outside the currently buffered time
ranges, and when an append operation results in the readyState changing, respectively.
A number of other drive-by fixes were necessary to get this test fully passing, as noted
below.
Make the MediaSource the primary owner of the media's duration, rather than the MediaSourcePrivate.
Move the MediaSourcePrivateClient pointer to the MediaSourcePrivate from the MediaPlayerPrivate, so
the MediaSource's duration can be retrieved. While we're at it, do the same thing for buffered.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::MediaSource): Initialize m_duration.
(WebCore::MediaSource::duration): Simple accessor.
(WebCore::MediaSource::setDurationInternal): Bring 'duration change algorithm' up to spec.
(WebCore::MediaSource::setReadyState): Reset m_duration on close.
- Modules/mediasource/MediaSource.h:
- platform/graphics/MediaSourcePrivate.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Do not call setPrivateAndOpen().
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationDouble): Pass through to MediaSourcePrivateAVFObjC.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Ditto.
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::create): Call setPrivateAndOpen().
(WebCore::MediaSourcePrivateAVFObjC::MediaSourcePrivateAVFObjC): Set m_client.
(WebCore::MediaSourcePrivateAVFObjC::duration): Pass through to MediaSourcePrivateClient.
(WebCore::MediaSourcePrivateAVFObjC::buffered): Ditto.
(WebCore::MediaSourcePrivateAVFObjC::durationChanged): Pass through to MediaPlayerPrivateMediaSourceAVFObjC.
(WebCore::MediaSourcePrivateAVFObjC::setDuration): Deleted.
- platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
(WebCore::MediaSourceGStreamer::open): Pass in MediaSourcePrivateClient.
(WebCore::MediaSourceGStreamer::MediaSourceGStreamer): Initialize m_mediaSource.
(WebCore::MediaSourceGStreamer::durationChanged): Retrieve the duration from MediaSourcePrivateClient.
(WebCore::MediaSourceGStreamer::markEndOfStream): Remove unnecssary ASSERT.
(WebCore::MediaSourceGStreamer::unmarkEndOfStream): Ditto.
(WebCore::MediaSourceGStreamer::setDuration): Deleted.
- platform/graphics/gstreamer/MediaSourceGStreamer.h:
- platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::load): Do not call setPrivateAndOpen().
(WebCore::MockMediaPlayerMediaSource::buffered): Pass through to MockMediaSourcePrivate.
(WebCore::MockMediaPlayerMediaSource::durationDouble): Ditto.
(WebCore::MockMediaPlayerMediaSource::advanceCurrentTime): Ditto.
- platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::create): Call setPrivateAndOpen().
(WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate): Set m_client.
(WebCore::MockMediaSourcePrivate::duration): Pass through to MediaSourcePrivateClient.
(WebCore::MockMediaSourcePrivate::buffered): Ditto.
(WebCore::MockMediaSourcePrivate::durationChanged): Pass thorugh to MockMediaPlayerMediaSource.
(WebCore::MockMediaSourcePrivate::setDuration): Deleted.
Route seekToTime through MediaSource, rather than through MediaSourcePrivate, so that
the time can be compared against the buffered ranges, and trigger the delay of the seek
operation if necessary. Add a seekTimer to MediaPlayerPrivateMediaSourceAVFObjC, as this
guarantees the order of asynchronous operations, rather than callOnMainThread, which can
cause async operations to occur out of order.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::seekToTime): Bring up to spec.
(WebCore::MediaSource::completeSeek): Ditto.
(WebCore::MediaSource::monitorSourceBuffers): Call completeSeek() when appropriate.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime): Deleted.
(WebCore::SourceBuffer::seekToTime): Renamed from sourceBufferPrivateSeekToTime().
- platform/graphics/MediaSourcePrivate.h:
- platform/graphics/MediaSourcePrivateClient.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): Add seekTimer. Only
call timeChanged() if no longer seeking, thereby triggering a 'seeked' event.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC): Clear m_seekTimer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance): Use m_seekTimer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekTimerFired): Call seekInternal.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal): Add logging.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitForSeekCompleted): Added.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted): Added; trigger 'seeked'.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): No longer attempt to finish seek when
readyState changes here; this has been moved up to MediaSource.cpp.
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::waitForSeekCompleted): Pass through to MediaPlayerPrivateMediaSourceAVFObjC.
(WebCore::MediaSourcePrivateAVFObjC::seekCompleted): Ditto.
(WebCore::MediaSourcePrivateAVFObjC::seekToTime): Pass through to MediaSourcePrivateClient.
(WebCore::MediaSourcePrivateAVFObjC::fastSeekTimeForMediaTime): Ditto.
- platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::MockMediaPlayerMediaSource): Initialize m_seekCompleted.
(WebCore::MockMediaPlayerMediaSource::seeking): Check for an uncompleted seek operation.
(WebCore::MockMediaPlayerMediaSource::seekWithTolerance): Ditto.
(WebCore::MockMediaPlayerMediaSource::waitForSeekCompleted): Added.
(WebCore::MockMediaPlayerMediaSource::seekCompleted): Added; trigger 'seeked'.
- platform/mock/mediasource/MockMediaPlayerMediaSource.h:
- platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::waitForSeekCompleted): Pass through to MockMediaPlayerMediaSource.
(WebCore::MockMediaSourcePrivate::seekCompleted): Ditto.
- platform/mock/mediasource/MockMediaSourcePrivate.h:
Drive-by fixes.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::streamEndedWithError): Re-order the steps in streamEndedWithError()
to avoid the MediaSource being closed and re-opened by the resulting duration change
operation.
- Modules/mediasource/MediaSource.h:
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::remove): Added logging.
(WebCore::SourceBuffer::removeCodedFrames): Ditto.
(WebCore::SourceBuffer::hasFutureTime): Swap an ASSERT for an early-return; it's possible
for currentTime() to be outside of a buffered area.
- Modules/mediasource/SourceBuffer.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Do not issue an additional 'timeupdate' event
after finishSeek() issues one of its own.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::globalDataParserQueue): Allow parsing operations to happen concurrently on
background queues.
LayoutTests:
Eliminate flakiness in the mediasource-duration.html test by not playing
the media while testing seeking and duration.
- http/tests/media/media-source/mediasource-duration.html:
Update testharness.js to the latest W3C version:
- http/tests/w3c/resources/testharness.js:
- 3:14 PM Changeset in webkit [171032] by
-
- 3 edits in trunk/Source/WebCore
[iOS] update control type when playback state changes
https://bugs.webkit.org/show_bug.cgi?id=134856
Reviewed by Dean Jackson.
Check to make sure the correct type of media controls are showing when playback state
changes so we don't end up with the wrong type of controls during playback.
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.HandledVideoEvents): Drive-by fix, call handlePlay on 'playing' instead
of 'play' so controls don't hide too early.
- Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.setPlaying): New, call updateControls to make sure inline
controls are shown when appropriate.
- 2:55 PM Changeset in webkit [171031] by
-
- 2 edits in tags/Safari-538.46.1/Source/WebKit2
Merged r171030.
- 2:49 PM Changeset in webkit [171030] by
-
- 2 edits in trunk/Source/WebKit2
Fix typo in prior patch
https://bugs.webkit.org/show_bug.cgi?id=134858
Reviewed by Sam Weinig.
Fix typo
- UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformDefaultCookieStorageDirectory):
- 2:36 PM Changeset in webkit [171029] by
-
- 2 edits in trunk/Source/WebCore
[iOS Media] Start playback button should indicate when it can't play
https://bugs.webkit.org/show_bug.cgi?id=134851
Post-commit review with Eric Carlson on IRC.
- Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.updateStatusDisplay): Remove the line that sets the
class on the inline play button.
- 2:17 PM Changeset in webkit [171028] by
-
- 3 edits in trunk/Source/WebCore
[iOS Media] Start playback button should indicate when it can't play
https://bugs.webkit.org/show_bug.cgi?id=134851
Reviewed by Sam Weinig.
If a video element has errors and cannot play, then the start
playback button should use the "broken" icon.
- Modules/mediacontrols/mediaControlsApple.js: Add a new "failed" class.
- Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.shouldHaveStartPlaybackButton): We need a playback button
even when there is an error.
(ControllerIOS.prototype.handleWirelessPickerButtonTouchStart): Don't offer Airplay
if we're in an error state.
(ControllerIOS.prototype.updateStatusDisplay): Set the "failed" class on
the playback buttons if we are in an error state.
- 1:40 PM Changeset in webkit [171027] by
-
- 10 edits in trunk/Source/WebKit2
[Cocoa] Client is not notified of same-document navigations
https://bugs.webkit.org/show_bug.cgi?id=134855
Reviewed by Sam Weinig.
- UIProcess/API/APILoaderClient.h:
(API::LoaderClient::didSameDocumentNavigationForFrame): Added navigationID parameter.
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient): Ditto.
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Added new enum and delegate method.
- UIProcess/Cocoa/NavigationState.h: Declare override of
API::LoaderClient::didSameDocumentNavigationForFrame. Added flag in
m_navigationDelegateMethods struct.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate): Initialize new m_navigationDelegateMethods
flag.
(WebKit::toWKSameDocumentNavigationType): Added this helper to convert from internal to API
values.
(WebKit::NavigationState::LoaderClient::didSameDocumentNavigationForFrame): Override to call
the delegate method, if implemented.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame): Added navigationID parameter,
which is forwarded to the client.
- UIProcess/WebPageProxy.h: Added navigationID parameter.
- UIProcess/WebPageProxy.messages.in: Ditto.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage): Send the navigation ID.
(WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage): Ditto.
(WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage): Ditto.
(WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage): Ditto.
- 12:10 PM Changeset in webkit [171026] by
-
- 8 edits in tags/Safari-538.46.1/Source/WebKit2
Merged r171024.
- 12:02 PM Changeset in webkit [171025] by
-
- 2 edits in tags/Safari-538.46.1/Source/WebKit2
Merged r171023.
- 11:33 AM Changeset in webkit [171024] by
-
- 8 edits in trunk/Source/WebKit2
Extend WebContent sandbox to allow some extra access for frameworks
https://bugs.webkit.org/show_bug.cgi?id=134844
Reviewed by Sam Weinig.
Open up the webcontent sandbox a bit so that some external frameworks
can work correctly.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::mediaCacheDirectory):
- UIProcess/WebContext.h:
- UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformMediaCacheDirectory):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 11:32 AM Changeset in webkit [171023] by
-
- 2 edits in trunk/Source/WebKit2
Temporary work around for <rdar://<rdar://problem/17513375>
https://bugs.webkit.org/show_bug.cgi?id=134848
Reviewed by Sam Weinig.
Temporarily work around <rdar://<rdar://problem/17513375> by
dropping the explicit cookie storage if it points out of the
container.
- UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformDefaultCookieStorageDirectory):
- 11:13 AM Changeset in webkit [171022] by
-
- 5 edits in tags/Safari-538.46.1/Source
Versioning.
- 11:07 AM Changeset in webkit [171021] by
-
- 1 copy in tags/Safari-538.46.1
New tag.