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

Timeline



Apr 7, 2015:

11:41 PM Changeset in webkit [182522] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Fix the build.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawGlyphs):

  • platform/spi/cg/CoreGraphicsSPI.h:
11:03 PM Changeset in webkit [182521] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, another iOS build fix after r182516.

I missed another use of MAC_OS_X_VERSION_MIN_REQUIRED without a
PLATFORM(MAC) check.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:
10:57 PM Changeset in webkit [182520] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Bug 142887 - role progress bar does not support indeterminate state
https://bugs.webkit.org/show_bug.cgi?id=142887

Patch by Michael Peechatt <mpeechatt@gmail.com> on 2015-04-07
Reviewed by Chris Fleizach.

Source/WebCore:

Test: platform/mac/accessibility/progressbar-indeterminate.html

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
When getting min or max value of an indeterminate progress indicator, return 0.
This is so VoiceOver will recognize it as indeterminate.

LayoutTests:

  • platform/mac/accessibility/progressbar-indeterminate-expected.txt: Added.
  • platform/mac/accessibility/progressbar-indeterminate.html: Added.

Test that checks if 0 is returned for indetermiate progress indicators when
aria min and max values are non zero.

10:44 PM Changeset in webkit [182519] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, speculative iOS build fix after r182516.

Add #if PLATFORM(MAC) checks.

  • platform/spi/cg/CoreGraphicsSPI.h:
10:31 PM Changeset in webkit [182518] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Try to fix incremental builds by forcing *InternalSettings* to get
regenerated.

  • testing/InternalSettings.idl:
9:24 PM Changeset in webkit [182517] by Chris Dumez
  • 4 edits
    2 adds in trunk

Open WebSockets should not prevent a page from entering PageCache
https://bugs.webkit.org/show_bug.cgi?id=143505
<rdar://problem/19923085>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Open WebSockets should not prevent a page from entering PageCache. This
is currently causing mobile.nytimes.com to not be page-cacheable.

In this patch, We close open WebSockets when entering the page cache
and fire the "close" events after resuming, similarly to what we did
for XMLHttpRequest in r181480. This gives a chance for the content to
handle the 'close' event (with wasClean being false and code being
1006) in order to reopen the connection if necessary.

Test: http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::WebSocket):
(WebCore::WebSocket::canSuspend):
(WebCore::WebSocket::suspend):
(WebCore::WebSocket::resume):
(WebCore::WebSocket::resumeTimerFired):
(WebCore::WebSocket::didClose):

  • Modules/websockets/WebSocket.h:

LayoutTests:

Add a layout test to check that an open WebSocket does not prevent a
page from entering page cache and that a 'close' event is fired after
resuming (restoring from the page cache).

  • http/tests/websocket/tests/hybi/closed-when-entering-page-cache-expected.txt: Added.
  • http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html: Added.
9:15 PM Changeset in webkit [182516] by Simon Fraser
  • 11 edits in trunk/Source/WebCore

Add experimental code to use custom font dilation when rendering into non-opaque contexts
https://bugs.webkit.org/show_bug.cgi?id=143508

Reviewed by Sam Weinig.

Add GraphicsContext::setAntialiasedFontDilationEnabled(), and set it to true
when rendering into a compositing layer which is not opaque (at the same location
where we disable font smoothing).

If Settings::antialiasedFontDilationEnabled() is true, when rendering non-smoothed
text (and if CSS hasn't opted into antialiased mode), use custom font dilation
parameters, chosen using a light/medium/dark heuristic, to make this text
match more closely with LCD-smoothed text.

  • page/Settings.cpp:

(WebCore::Settings::Settings):
(WebCore::Settings::setAntialiasedFontDilationEnabled): Set global state
in FontCascade (which can't easily get at Settings). This it not ideal,
but is temporary.

  • page/Settings.h:

(WebCore::Settings::antialiasedFontDilationEnabled):

  • page/Settings.in: Can't autogenerate this setting any more.
  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::setAntialiasedFontDilationEnabled): Set the global.
(WebCore::FontCascade::antialiasedFontDilationEnabled):

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

(WebCore::GraphicsContext::setAntialiasedFontDilationEnabled): Set graphics state
to say that we should do dilation of antialiased text.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContext::antialiasedFontDilationEnabled):

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

(PlatformCALayer::drawLayerContents): If the layer is not opaque, enable the
dilated text code path.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::dilationSizeForTextColor): Heuristic (values chosen empirically) to
computed custom dilation based on foreground color.
(WebCore::FontCascade::drawGlyphs): Set the custom dilation parameters, and the
antialiasing state if we're not doing smoothing, and CSS hasn't opted into the
antialiased path.

  • platform/spi/cg/CoreGraphicsSPI.h: New SPI.
8:40 PM Changeset in webkit [182515] by ap@apple.com
  • 2 edits in trunk/Tools

PageVisibilityStateWithWindowChanges should only be enabled on Yosemite
rdar://problem/20461342

  • TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:
8:39 PM Changeset in webkit [182514] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Perf dashboard should have a way of marking outliers
https://bugs.webkit.org/show_bug.cgi?id=143466

Reviewed by Chris Dumez.

Address kling's in-person comment to notify users when the new run status is saved in the database.

  • public/v2/app.js:

(App.PaneController._selectedItemIsMarkedOutlierDidChange)

  • public/v2/chart-pane.css: Fixed a typo.
6:51 PM Changeset in webkit [182513] by commit-queue@webkit.org
  • 9 edits
    3 deletes in trunk

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

caused debug test failures (Requested by alexchristensen on
#webkit).

Reverted changeset:

"Block popups from content extensions."
https://bugs.webkit.org/show_bug.cgi?id=143497
http://trac.webkit.org/changeset/182511

6:08 PM Changeset in webkit [182512] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

[Cocoa] System fonts do not get correct tracking
https://bugs.webkit.org/show_bug.cgi?id=143395

Reviewed by Ryosuke Niwa.

Inside FontPlatformData, we have two CTFonts. If the user has specified
-webkit-system-font, we will pass in a CTFont, and the FontPlatformData
will wrap it. However, we will then roundtrip through CGFont in order
to create a second CTFont. We were basing our tracking and system
font knowledge off of this round-tripped font instead of the original font.

Note that this design is terrible and needs to be overhauled.
FontPlatformData should only have a single platform font inside it.

This patch also caches whether or not a font is a system font.

No new tests because it is impossible to test the tracking of the
system font in a robust way.

  • platform/graphics/Font.cpp:

(WebCore::Font::Font): Rearrange member variables.

  • platform/graphics/Font.h: Move member variables around for better

packing, and cache whether or not the font is a system font.

  • platform/graphics/FontData.h: Add comment
  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit): Cache whether or not the font is a system
font.
(WebCore::hasCustomTracking): Use cached value.
(WebCore::canUseFastGlyphAdvanceGetter):
(WebCore::Font::platformWidthForGlyph):

5:38 PM Changeset in webkit [182511] by commit-queue@webkit.org
  • 9 edits
    3 adds in trunk

Block popups from content extensions.
https://bugs.webkit.org/show_bug.cgi?id=143497

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

Source/WebCore:

Test: http/tests/contentextensions/popups.html

  • loader/ResourceLoadInfo.cpp:

(WebCore::readResourceType):

  • loader/ResourceLoadInfo.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/UserContentController.cpp:

(WebCore::UserContentController::actionsForResourceLoad):

  • page/UserContentController.h:

Check content extensions before opening a window.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):
Added popup test.

LayoutTests:

  • http/tests/contentextensions/popups-expected.txt: Added.
  • http/tests/contentextensions/popups.html: Added.
  • http/tests/contentextensions/popups.html.json: Added.
4:53 PM Changeset in webkit [182510] by bshafiei@apple.com
  • 5 edits in branches/safari-600.5.17-branch/Source

Versioning.

4:42 PM Changeset in webkit [182509] by benjamin@webkit.org
  • 6 edits in trunk

Get the features.json files ready for open contributions
https://bugs.webkit.org/show_bug.cgi?id=143436

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • features.json:

Source/WebCore:

  • features.json:

Tools:

  • Scripts/webkitpy/style/checkers/jsonchecker.py:

(JSONFeaturesChecker.check):
Extend the syntax checking a bit, but leave everything non-mandatory
very loose until we figure what fields are important.

4:37 PM Changeset in webkit [182508] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

More unreviewed fixing API tests.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
Don't check for javascript protocol.

4:33 PM Changeset in webkit [182507] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.5.17.1

New tag.

4:27 PM Changeset in webkit [182506] by bshafiei@apple.com
  • 7 edits in branches/safari-600.5.17-branch/Source

Merged r181628. rdar://problem/20394343

4:21 PM Changeset in webkit [182505] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] never update caption user style sheet during parsing
https://bugs.webkit.org/show_bug.cgi?id=143499

Reviewed by Jer Noble.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
(WebCore::CaptionUserPreferencesMediaAF::captionPreferencesChanged): Ignore a

"preferences changed" notification fired while registering for said notification, we
already create and insert the style sheet after a brief delay anyway.

  • page/CaptionUserPreferencesMediaAF.h:
4:14 PM Changeset in webkit [182504] by bshafiei@apple.com
  • 5 edits in branches/safari-600.5.17-branch/Source

Versioning.

4:10 PM Changeset in webkit [182503] by bshafiei@apple.com
  • 1 copy in branches/safari-600.5.17-branch

New Branch.

4:09 PM Changeset in webkit [182502] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix after r182494.

  • platform/win/ContextMenuItemWin.cpp:

(WebCore::ContextMenuItem::ContextMenuItem): Deleted.

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

Fix the build.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _setFixedLayoutSize:]):

3:49 PM Changeset in webkit [182500] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

Unreviewed fixing API tests.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):

  • platform/URL.cpp:

(WebCore::URL::init):

  • platform/URL.h:

(WebCore::URL::protocolIsData):
(WebCore::URL::protocolIsJavaScript): Deleted.
Revert part of r182492 that changed URL.h.

3:37 PM Changeset in webkit [182499] by timothy_horton@apple.com
  • 10 edits
    1 add in trunk

Expose and test fixedLayoutSize via modern WebKit SPI
https://bugs.webkit.org/show_bug.cgi?id=143500

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isFixedLayoutEnabled]):
(-[WKWebView _setFixedLayoutEnabled:]):
(-[WKWebView _fixedLayoutSize]):
(-[WKWebView _setFixedLayoutSize:]):

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

(-[WKView _isFixedLayoutEnabled]):
(-[WKView _setFixedLayoutEnabled:]):
(-[WKView _fixedLayoutSize]):
(-[WKView _setFixedLayoutSize:]):
Add API for adjusting the fixed layout size, and whether or not we use it.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Repair a mistake I made in r139822, where I brought odd TILED_BACKING_STORE-only
logic (which disables scrollbars if fixedLayoutSize is enabled) to the rest of the ports.
Put it back as TILED_BACKING_STORE-only.

Persist the fixedLayoutSize through view creation; we already persist the enabled state,
but not the size, which doesn't make any sense.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::fixedLayoutSize):

  • WebProcess/WebPage/WebPage.h:

Add a fixedLayoutSize() getter.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/FixedLayoutSize.mm: Added.

(-[FixedLayoutSizeNavigationDelegate webView:didFinishNavigation:]):
(TEST):
Add a test that verifies that fixedLayoutSize works at all, that
it persists through a navigation, and that turning it back off reverts to
laying out at the size of the view.

3:09 PM Changeset in webkit [182498] by fpizlo@apple.com
  • 20 edits
    1 add in trunk/Source/JavaScriptCore

Constant folding of typed array properties should be handled by AI rather than strength reduction
https://bugs.webkit.org/show_bug.cgi?id=143496

Reviewed by Geoffrey Garen.

Handling constant folding in AI is better because it precludes us from having to fixpoint the CFA
phase and whatever other phase did the folding in order to find all constants.

This also removes the TypedArrayWatchpoint node type because we can just set the watchpoint
directly.

This also fixes a bug in FTL lowering of GetTypedArrayByteOffset. The bug was previously not
found because all of the tests for it involved the property getting constant folded. I found that
the codegen was bad because an earlier version of the patch broke that constant folding. This
adds a new test for that node type, which makes constant folding impossible by allocating a new
typed array every type. The lesson here is: if you write a test for something, run the test with
full IR dumps to make sure it's actually testing the thing you want it to test.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::tryGetFoldableView):
(JSC::DFG::Graph::tryGetFoldableViewForChild1): Deleted.

  • dfg/DFGGraph.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasTypedArray): Deleted.
(JSC::DFG::Node::typedArray): Deleted.

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):
(JSC::DFG::StrengthReductionPhase::foldTypedArrayPropertyToConstant): Deleted.
(JSC::DFG::StrengthReductionPhase::prepareToFoldTypedArray): Deleted.

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):
(JSC::DFG::WatchpointCollectionPhase::addLazily):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileGetTypedArrayByteOffset):
(JSC::FTL::LowerDFGToLLVM::typedArrayLength):

  • tests/stress/fold-typed-array-properties.js:

(foo):

  • tests/stress/typed-array-byte-offset.js: Added.

(foo):

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

More work on making the application cache storage be per page
https://bugs.webkit.org/show_bug.cgi?id=143498

Reviewed by Andreas Kling.

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::create):
(WebCore::ApplicationCacheStorage::singleton):

  • loader/appcache/ApplicationCacheStorage.h:
  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore::Page::applicationCacheStorage):

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration): Deleted.

  • page/PageConfiguration.h:
2:42 PM Changeset in webkit [182496] by rniwa@webkit.org
  • 14 edits
    1 add in trunk/Websites/perf.webkit.org

Perf dashboard should have a way of marking outliers
https://bugs.webkit.org/show_bug.cgi?id=143466

Reviewed by Chris Dumez.

Added UI to mark a data point as an outlier as well as a button to toggle the visibility of outliers.
Added a new privileged API /privileged-api/update-run-status to store this boolean flag.

  • init-database.sql: Added run_marked_outlier column to test_runs table.
  • public/admin/tests.php:
  • public/api/runs.php:

(main): Only emit Cache-Control and Expires headers in v1 UI.
(RunsGenerator::format_run): Emit markedOutlier.

  • public/include/admin-header.php:
  • public/include/db.php:

(Database::is_true): Made it static.

  • public/include/manifest.php:

(Manifest::platforms):

  • public/index.html: Call into /api/runs/ with ?cache=true.
  • public/privileged-api/update-run-status.php: Added.

(main): Updates the newly added column in test_runs table.

  • public/v2/app.js:

(App.Pane._fetch):
(App.Pane.refetchRuns): Extracted from App.Pane._fetch.
(App.Pane._didFetchRuns): Renamed from _updateChartData.
(App.Pane._setNewChartData): Added. Pick the right time series based based on the value of showOutlier.
Cloning chartData is necessary when toggling the outlier visibility or using statistics tools because
the interactive chart component only observes changes to chartData and not individual properties of it.
(App.Pane._highlightPointsMarkedAsOutlier): Added. Highlight points marked as outliers.
(App.Pane._movingAverageOrEnvelopeStrategyDidChange): Call to _setNewChartData replaced the code to
clone chartData here.

(App.PaneController.actions.toggleShowOutlier): Toggle the visibility of points marked as outliers by
invoking App.Pane._setNewChartData.
(App.PaneController._detailsChanged): Don't hide the analysis pane when details changed since keep
opening the pane for marking points as outliers would be annoying.
(App.PaneController._updateCanAnalyze): Update 'cannotMarkOutlier' as well as 'cannotAnalyze'.
(App.PaneController.selectedMeasurement): Added.
(App.PaneController.showOutlierTitle): Added.
(App.PaneController._selectedItemIsMarkedOutlierDidChange): Added. Call out to setMarkedOutlier to
mark the selected point as an outlier via the newly added privileged API.

  • public/v2/chart-pane.css: Updated styles.
  • public/v2/data.js:

(PrivilegedAPI._post): Report the semantic errors.
(Measurement.prototype.markedOutlier): Added.
(Measurement.prototype.setMarkedOutlier): Added. Uses PrivilegedAPI to update the database.
(RunsData.prototype.timeSeriesByCommitTime): Added a new argument, includeOutliers, to indicate
whether the time series should include measurements marked as outliers or not.
(RunsData.prototype.timeSeriesByBuildTime): Ditto.
(RunsData.prototype._timeSeriesByTimeInternal): Extracted from timeSeriesByCommitTime and
timeSeriesByBuildTime to share code. Now ignores measurements marked as outliers if needed.

  • public/v2/index.html: Added an icon for showing and hiding outliers. Also added a checkbox to

mark individual points as outliers.

  • public/v2/interactive-chart.js:

(App.InteractiveChartComponent._selectClosestPointToMouseAsCurrentItem): Re-enable the distance
heuristics that takes vertical closeness into account. This heuristics is more useful when marking
some points as outliers. This heuristics was disabled because the behavior was unpredictable but
with the arrow key navigation support, this is no longer an issue.

  • public/v2/manifest.js:

(App.Manifest._formatFetchedData): Added showOutlier to the chart data. This function dynamically
updates the time series in this chart data in order to include or exclude outliers.

2:34 PM Changeset in webkit [182495] by mmirman@apple.com
  • 33 edits
    1 add in trunk

Source and stack information should get appended only to native errors
Source/JavaScriptCore:

and should be added directly after construction rather than when thrown.
This fixes frozen objects being unfrozen when thrown while conforming to
ecma script standard and other browser behavior.
rdar://problem/19927293
https://bugs.webkit.org/show_bug.cgi?id=141871

Reviewed by Geoffrey Garen.

Appending stack, source, line, and column information to an object whenever that object is thrown
is incorrect because it violates the ecma script standard for the behavior of throw. Suppose for example
that the object being thrown already has one of these properties or is frozen. Adding the properties
would then violate the frozen contract or overwrite those properties. Other browsers do not do this,
and doing this causes unnecessary performance hits in code with heavy use of the throw construct as
a control flow construct rather than just an error reporting mechanism.

Because WebCore adds "native" errors which do not inherit from any JSC native error,
appending the error properties as a seperate call after construction of the error is required
to avoid having to manually truncate the stack and gather local source information due to
the stack being extended by a nested call to construct one of the native jsc error.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • interpreter/Interpreter.h:
  • parser/ParserError.h:

(JSC::ParserError::toErrorObject):

  • runtime/CommonIdentifiers.h:
  • runtime/Error.cpp:

(JSC::createError):
(JSC::createEvalError):
(JSC::createRangeError):
(JSC::createReferenceError):
(JSC::createSyntaxError):
(JSC::createTypeError):
(JSC::createNotEnoughArgumentsError):
(JSC::createURIError):
(JSC::createOutOfMemoryError):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::foundCallFrame):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::index):
(JSC::addErrorInfoAndGetBytecodeOffset): Added.
(JSC::addErrorInfo): Added special case for appending complete error info
to a newly constructed error object.

  • runtime/Error.h:
  • runtime/ErrorConstructor.cpp:

(JSC::Interpreter::constructWithErrorConstructor):
(JSC::Interpreter::callErrorConstructor):

  • runtime/ErrorInstance.cpp:

(JSC::appendSourceToError): Moved from VM.cpp
(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::foundCallFrame):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::index):
(JSC::addErrorInfoAndGetBytecodeOffset):
(JSC::ErrorInstance::finishCreation):

  • runtime/ErrorInstance.h:

(JSC::ErrorInstance::create):

  • runtime/ErrorPrototype.cpp:

(JSC::ErrorPrototype::finishCreation):

  • runtime/ExceptionFuzz.cpp:

(JSC::doExceptionFuzzing):

  • runtime/ExceptionHelpers.cpp:

(JSC::createError):
(JSC::createInvalidFunctionApplyParameterError):
(JSC::createInvalidInParameterError):
(JSC::createInvalidInstanceofParameterError):
(JSC::createNotAConstructorError):
(JSC::createNotAFunctionError):
(JSC::createNotAnObjectError):
(JSC::throwOutOfMemoryError):
(JSC::createStackOverflowError): Deleted.
(JSC::createOutOfMemoryError): Deleted.

  • runtime/ExceptionHelpers.h:
  • runtime/JSArrayBufferConstructor.cpp:

(JSC::constructArrayBuffer):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferProtoFuncSlice):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):

  • runtime/NativeErrorConstructor.cpp:

(JSC::Interpreter::constructWithNativeErrorConstructor):
(JSC::Interpreter::callNativeErrorConstructor):

  • runtime/VM.cpp:

(JSC::VM::throwException):
(JSC::appendSourceToError): Moved to Error.cpp
(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::foundCallFrame): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::index): Deleted.

  • tests/stress/freeze_leek.js: Added.

Source/WebCore:

and should be added directly after construction rather than when thrown.
This fixes frozen objects being unfrozen when thrown while conforming to
ecma script standard and other browser behavior.
rdar://problem/19927293
https://bugs.webkit.org/show_bug.cgi?id=141871

Reviewed by Geoffrey Garen.

Covered by existing tests.

Sets line, column, source and stack information for DOMExceptions as
expected by the webinspector for native errors.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::setDOMException):

LayoutTests:

and should be added after construction rather than when thrown.
This fixes frozen objects being unfrozen when thrown while conforming to
ecma script standard and other browser behavior.
rdar://problem/19927293
https://bugs.webkit.org/show_bug.cgi?id=141871

Reviewed by Geoffrey Garen.

Fixes tests to throw new Errors such that they will contain line, column, and stack information
as expected, and fixes the column in the error in the expected output.

  • http/tests/w3c/resources/testharness.js: Other browsers don't expect stack information

with this test, but we do, and so the AssertionError should include stack information gathered from Error.
This could also have been fixed by changing expectations, but its a good idea to check the stack anyway.

  • js/dom/exception-linenums-in-html-1.html: Throw "new Error()" rather than "{}".
  • js/dom/exception-linenums-in-html-2.html: ditto.
  • js/dom/exception-linenums-in-html-3.html: ditto.
  • js/dom/script-tests/stack-trace.js: ditto.

(throwError): ditto.
(h): ditto.
(inlineableThrow): ditto.
(dfgThing.get willThrow): ditto.
(dfgThing.willThrowFunc): ditto.

  • js/dom/stack-trace-expected.txt: fixed error column expectation.
  • js/exception-properties-expected.txt: ditto.
  • js/script-tests/exception-linenums.js:

(exceptionInFunction): throw "new Error()" rather than "{}".
(firstPropIsGetter.get getter): ditto
(secondPropIsGetter.get getter): ditto
(firstPropIsSetter.set setter): ditto
(secondPropIsSetter.set setter): ditto

  • js/script-tests/exception-properties.js: now checking that column, line, and sourceURL are existant on a "new Error"

since we now add these at error construction rather than at error throwing.

  • platform/mac/http/tests/media/media-source/mediasource-addsourcebuffer-expected.txt: fixed expectation to match.
  • platform/mac/http/tests/media/media-source/mediasource-sourcebuffer-mode-expected.txt: ditto.
2:29 PM Changeset in webkit [182494] by beidson@apple.com
  • 10 edits in trunk/Source

ContextMenuItem refactoring
https://bugs.webkit.org/show_bug.cgi?id=143485

Reviewed by Beth Dakin.

Source/WebCore:

  • platform/ContextMenuItem.h:

(WebCore::ContextMenuItem::isNull):

  • platform/gtk/ContextMenuItemGtk.cpp:

(WebCore::ContextMenuItem::ContextMenuItem):

  • platform/mac/ContextMenuItemMac.mm:

(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::platformDescription):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::releasePlatformDescription): Deleted.
(WebCore::ContextMenuItem::getPlatformDescription): Deleted.

  • platform/mac/ContextMenuMac.mm:

(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenu::insertItem):
(WebCore::platformMenuDescription):

  • platform/win/ContextMenuItemWin.cpp:

(WebCore::ContextMenuItem::ContextMenuItem):

Source/WebKit/mac:

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::contextMenuItemSelected):

Source/WebKit2:

  • Shared/mac/NativeContextMenuItem.mm:

(WebKit::NativeContextMenuItem::NativeContextMenuItem):

2:28 PM Changeset in webkit [182493] by Joseph Pecoraro
  • 15 edits in trunk

Web Inspector: ES6: Show Symbol properties on Objects
https://bugs.webkit.org/show_bug.cgi?id=141279

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Runtime.json:

Give PropertyDescriptor a reference to the Symbol RemoteObject
if the property is a symbol property.

  • inspector/InjectedScriptSource.js:

Enumerate symbol properties on objects.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/PropertyDescriptor.js:

(WebInspector.PropertyDescriptor.get symbol):

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.wrappedCallback):
Update new PropertyDescriptor call site.

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement._logSymbolProperty):
Provide a context menu for rows with Symbol properties to log
the Symbol property, and therefore get a reference to it.

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.comparePropertyDescriptors):
Better handle symbol properties in sorting.

  • UserInterface/Views/TypePropertiesSection.js:

(WebInspector.TypePropertiesSection.PropertyComparator):
Return better value when values are equal.

LayoutTests:

  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object-get-properties-expected.txt:
  • inspector/model/remote-object-get-properties.html:
  • inspector/model/remote-object.html:

Update tests to include objects with Symbol properties.

2:17 PM Changeset in webkit [182492] by achristensen@apple.com
  • 7 edits in trunk/Source/WebCore

Optimize content extensions interpreting speed.
https://bugs.webkit.org/show_bug.cgi?id=143490

Reviewed by Brady Eidson.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
Measure total time added by content extensions.

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::DFABytecodeCompiler::compileNode):
(WebCore::ContentExtensions::DFABytecodeCompiler::compile):
When jumping to the root, don't re-add all the actions.

  • contentextensions/DFABytecodeCompiler.h:
  • platform/URL.cpp:

(WebCore::URL::init):

  • platform/URL.h:

(WebCore::URL::protocolIsJavaScript): Added.

2:11 PM Changeset in webkit [182491] by Simon Fraser
  • 9 edits in trunk/Source

Add a new setting, AntialiasedFontDilationEnabled, exposed via WK2.
https://bugs.webkit.org/show_bug.cgi?id=143495

Reviewed by Tim Horton.
Source/WebCore:

Add a new Setting, antialiasedFontDilationEnabled, which defaults to true. This
will be used in an upcoming patch.

  • page/Settings.in:

Source/WebKit2:

Exposed the antialiasedFontDilationEnabled setting via WK C SPI and Objective-C SPI.

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

(WKPreferencesSetAntialiasedFontDilationEnabled):
(WKPreferencesGetAntialiasedFontDilationEnabled):

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

(-[WKPreferences _antialiasedFontDilationEnabled]):
(-[WKPreferences _setAntialiasedFontDilationEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

1:50 PM Changeset in webkit [182490] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.25.1/Source/WebCore

Merged r182292. rdar://problem/20407648

1:48 PM Changeset in webkit [182489] by aestes@apple.com
  • 7 edits in trunk/Source/WebCore

[Content Filtering] Add logging
https://bugs.webkit.org/show_bug.cgi?id=143470

Reviewed by Daniel Bates.

Added a new ContentFiltering logging channel, and started logging some useful diagnostic messages.

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::~ContentFilter):
(WebCore::ContentFilter::willSendRequest):
(WebCore::ContentFilter::startFilteringMainResource):
(WebCore::ContentFilter::responseReceived):
(WebCore::ContentFilter::dataReceived):
(WebCore::ContentFilter::notifyFinished):
(WebCore::ContentFilter::didDecide):

  • platform/Logging.h:
  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::canHandleRequest):
(WebCore::ContentFilterUnblockHandler::requestUnblockAsync):

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::enabled):
(WebCore::NetworkExtensionContentFilter::unblockHandler):
(WebCore::NetworkExtensionContentFilter::handleDecision):

  • platform/cocoa/ParentalControlsContentFilter.mm:

(WebCore::ParentalControlsContentFilter::enabled):
(WebCore::ParentalControlsContentFilter::updateFilterState):

  • testing/MockContentFilter.cpp:

(WebCore::MockContentFilter::enabled):
(WebCore::MockContentFilter::unblockHandler):
(WebCore::MockContentFilter::maybeDetermineStatus):

1:45 PM Changeset in webkit [182488] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.25.1/Source

Versioning.

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

New tag.

1:23 PM Changeset in webkit [182486] by eric.carlson@apple.com
  • 16 edits in trunk/Source/WebCore

[Mac] video playing to external device should not be interrupted
https://bugs.webkit.org/show_bug.cgi?id=143492

Reviewed by Jer Noble.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handlePanelTransitionEnd): Drive-by fix to make sure the controls are

not hidden if the opacity timer is primed before they go into a state where they should
never be hidden.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canPlayToWirelessPlaybackTarget): Make it const.
(WebCore::HTMLMediaElement::isPlayingToWirelessPlaybackTarget): New.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::canPlayToWirelessPlaybackTarget): New. Short-circuit call to

client when we already know the answer.

(WebCore::HTMLMediaSession::isPlayingToWirelessPlaybackTarget): Ditto.
(WebCore::HTMLMediaSession::startPlayingToPlaybackTarget): Ditto.
(WebCore::HTMLMediaSession::stopPlayingToPlaybackTarget): Ditto.

  • html/HTMLMediaSession.h:
  • platform/audio/MediaSession.cpp:

(WebCore::MediaSession::canPlayToWirelessPlaybackTarget): Deleted, moved inline and neutered

because only HTMLMediaSession needs to use them.

(WebCore::MediaSession::startPlayingToPlaybackTarget): Ditto.
(WebCore::MediaSession::stopPlayingToPlaybackTarget): Ditto.

  • platform/audio/MediaSession.h:

(WebCore::MediaSession::canPlayToWirelessPlaybackTarget):
(WebCore::MediaSession::isPlayingToWirelessPlaybackTarget):
(WebCore::MediaSession::startPlayingToPlaybackTarget):
(WebCore::MediaSession::stopPlayingToPlaybackTarget):
(WebCore::MediaSessionClient::canPlayToWirelessPlaybackTarget):
(WebCore::MediaSessionClient::isPlayingToWirelessPlaybackTarget):

  • platform/audio/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::MediaSessionManager):
(WebCore::MediaSessionManager::sessionShouldBeginPlayingToWirelessPlaybackTarget): New.
(WebCore::MediaSessionManager::sessionWillBeginPlayback): Don't interrupt an active session

playing to a target device.

  • platform/audio/MediaSessionManager.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::isPlayingToWirelessPlaybackTarget): New, passthrough.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::isPlayingToWirelessPlaybackTarget):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::canPlayToWirelessPlaybackTarget):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget): Explicitly call

when passed a nil or inactive target context.

(WebCore::MediaPlayerPrivateAVFoundationObjC::startPlayingToPlaybackTarget): Add logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::stopPlayingToPlaybackTarget): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::isPlayingToWirelessPlaybackTarget): New. Return

true when playing with an active context.

(WebCore::playerKVOProperties): "outputContext" is not observable.

1:14 PM Changeset in webkit [182485] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Should only propagate pressure events with relevant phases
https://bugs.webkit.org/show_bug.cgi?id=143494
-and corresponding-
rdar://problem/20453738

Reviewed by Tim Horton.

We only care about the changed, began, and ended phases.

  • UIProcess/API/mac/WKView.mm:

(-[WKView pressureChangeWithEvent:]):

12:50 PM Changeset in webkit [182484] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
12:41 PM Changeset in webkit [182483] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

Make it possible to enable LLVM FastISel
https://bugs.webkit.org/show_bug.cgi?id=143489

Reviewed by Michael Saboff.

The decision to enable FastISel is made by Options.h|cpp, but the LLVM library can disable it if it finds that it is built
against a version of LLVM that doesn't support it. Thereafter, JSC::enableLLVMFastISel is the flag that tells the system
if we should enable it.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • llvm/InitializeLLVM.cpp:

(JSC::initializeLLVMImpl):

  • llvm/InitializeLLVM.h:
  • llvm/InitializeLLVMLinux.cpp:

(JSC::getLLVMInitializerFunction):
(JSC::initializeLLVMImpl): Deleted.

  • llvm/InitializeLLVMMac.cpp:

(JSC::getLLVMInitializerFunction):
(JSC::initializeLLVMImpl): Deleted.

  • llvm/InitializeLLVMPOSIX.cpp:

(JSC::getLLVMInitializerFunctionPOSIX):
(JSC::initializeLLVMPOSIX): Deleted.

  • llvm/InitializeLLVMPOSIX.h:
  • llvm/InitializeLLVMWin.cpp:

(JSC::getLLVMInitializerFunction):
(JSC::initializeLLVMImpl): Deleted.

  • llvm/LLVMAPI.cpp:
  • llvm/LLVMAPI.h:
  • llvm/library/LLVMExports.cpp:

(initCommandLine):
(initializeAndGetJSCLLVMAPI):

  • runtime/Options.cpp:

(JSC::Options::initialize):

11:49 AM CommitterTips edited by Michael Catanzaro
WebKit2 owners exist now, so don't advise reviewers otherwise (diff)
11:35 AM Changeset in webkit [182482] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: HierarchicalPathNavigationItem's additionalClassNames should be _additionalClassNames
https://bugs.webkit.org/show_bug.cgi?id=143487

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/HierarchicalPathNavigationItem.js:

(WebInspector.HierarchicalPathNavigationItem.prototype.get _additionalClassNames):

11:06 AM Changeset in webkit [182481] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Bots complain about missing /etc/catalog
https://bugs.webkit.org/show_bug.cgi?id=143484

Reviewed by Chris Dumez.

The libxml2 build on Mac, iOS, and Windows does not provide the set
of default catalog files. We do not actually need these for our
purposes, but we get warnings and some bot flakiness because they
are not present.

We can avoid both problems the same way the Mac and iOS ports do,
by setting the XML_CATALOG_FILES environment variable to 'empty string',
which avoid the warnings and bot problems.

  • Scripts/webkitpy/port/win.py:

(WinPort.setup_environ_for_server): Added.

10:50 AM Changeset in webkit [182480] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r181643 - [GTK] Wrong transfer annotations used in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=142780

Reviewed by Gustavo Noronha Silva.

We are using transfer none for all methods returning a GObject DOM
Object. That's not true. Only objects derived from Node are
automatically released by the DOM object cache and can be transfer
none. All other objects are added to the cache only to avoid
creating the same wrapper twice for the same core object, but
caller should release the returned reference.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GetTransferTypeForReturnType):
(GenerateFunction):

10:38 AM Changeset in webkit [182479] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.4/Source

Merge r180214 - [GTK] GObject DOM bindings object are cached forever
https://bugs.webkit.org/show_bug.cgi?id=141558

Reviewed by Sergio Villar Senin.

Source/WebCore:

Rework the DOMObjectCache to avoid having to manually clear the
objects when the frame is destroyed, using a FrameDestructionObserver
instead. When a new object associated to a Frame is added to the
cache, a FrameDestructionObserver is created for the frame if
needed, and the DOM object is tracked by the observer too. When
the frame is detached from the page all its objects are cleared,
and if the aren't additional references, the object is finalized
and removed from the cache normally.
This patch also simplifies and modernizes the code to make it
easier to read an maintain.

  • bindings/gobject/DOMObjectCache.cpp:

(WebKit::DOMObjectCacheData::DOMObjectCacheData): Add constructor
to initialize its members and simplify the callers.
(WebKit::DOMObjectCacheData::clearObject): Remove the references
added by the cache, ensuring the GObject is not finalized until
the method returns.
(WebKit::DOMObjectCacheData::refObject): Adds a reference owned by
the cache.
(WebKit::domObjectCacheFrameObservers): Map a frame to a FrameDestructionObserver.
(WebKit::getOrCreateDOMObjectCacheFrameObserver): Create a new
FrameDestructionObserver for the given Frame or return the
existing one.
(WebKit::domObjects): Map wrapped object to wrapper object.
(WebKit::DOMObjectCache::forget): Remove the wrapped object from
the cache.
(WebKit::DOMObjectCache::get): Return the wrapped object if it is
in the cache, increasing the cache references.
(WebKit::DOMObjectCache::put): Add the wrapper object to the cache
for the given wrapped object. If it's a Node and has a frame add
the node to the FrameDestructionObserver corresponding to the frame.
(WebKit::getFrameFromHandle): Deleted.
(WebKit::weakRefNotify): Deleted.
(WebKit::DOMObjectCache::clearByFrame): Deleted.
(WebKit::DOMObjectCache::~DOMObjectCache): Deleted.

  • bindings/gobject/DOMObjectCache.h:

Merge r181631 - [GTK] WebKitDOM objects leaking
https://bugs.webkit.org/show_bug.cgi?id=118788

Reviewed by Darin Adler and Sergio Villar Senin.

Source/WebCore:

Use a DOMwindowObserver class, derived from DOMWindowProperty to
be notified when the window object is detached from the frame to
clear the DOM objects associated to that frame in that case too.

  • bindings/gobject/DOMObjectCache.cpp:
10:22 AM Changeset in webkit [182478] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Re-add JSReadableStream and JSReadableStreamReader the Xcode project to
make Xcode happy.

  • WebCore.xcodeproj/project.pbxproj:
10:18 AM Changeset in webkit [182477] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix; make calls to new SPI conditional on iOS version.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):

10:07 AM Changeset in webkit [182476] by achristensen@apple.com
  • 5 edits
    3 adds in trunk/Tools

Use content extensions in MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=143446

Patch by Sam Weinig <sam@webkit.org> on 2015-04-06
Reviewed by Alex Christensen.

  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
  • MiniBrowser/mac/AppDelegate.h:
  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate init]):
(-[BrowserAppDelegate showExtensionsManager:]):
(-[BrowserAppDelegate userContentContoller]):

  • MiniBrowser/mac/ExtensionManagerWindowController.h: Added.
  • MiniBrowser/mac/ExtensionManagerWindowController.m: Added.

(-[ExtensionManagerWindowController init]):
(-[ExtensionManagerWindowController windowDidLoad]):
(-[ExtensionManagerWindowController add:]):
(-[ExtensionManagerWindowController remove:]):

  • MiniBrowser/mac/ExtensionManagerWindowController.xib: Added.
  • MiniBrowser/mac/MainMenu.xib:
9:32 AM Changeset in webkit [182475] by Carlos Garcia Campos
  • 11 edits
    2 deletes in releases/WebKitGTK/webkit-2.4/Tools

Merge r176563 - [GTK] Use custom JavaScript instead of DBus to implement WebProcess tests
https://bugs.webkit.org/show_bug.cgi?id=138834

Reviewed by Sergio Villar Senin.

It makes everyting simpler and the tests run faster too, since we
don't need to spawn the private bus and wait until the DBus name
is registered. The web extension registers a new JavaSCript class
with a status method to run the tests, similar to the DBus
method. In the UI process side, tests use webkit_web_view_run_java_script()
instead of sending a DBus message.

  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp:

(WebKitDOMNodeFilterTest::create):
(WebKitDOMNodeFilterTest::testTreeWalker):
(WebKitDOMNodeFilterTest::testNodeIterator):
(WebKitDOMNodeFilterTest::webPageFromArgs): Deleted.
(WebKitDOMNodeFilterTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:

(WebKitDOMNodeTest::create):
(WebKitDOMNodeTest::testHierarchyNavigation):
(WebKitDOMNodeTest::testInsertion):
(WebKitDOMNodeTest::testTagNames):
(WebKitDOMNodeTest::webPageFromArgs): Deleted.
(WebKitDOMNodeTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMXPathNSResolverTest.cpp:

(WebKitDOMXPathNSResolverTest::create):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverNative):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverCustom):
(WebKitDOMXPathNSResolverTest::webPageFromArgs): Deleted.
(WebKitDOMXPathNSResolverTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/FrameTest.cpp:

(WebKitFrameTest::create):
(WebKitFrameTest::testMainFrame):
(WebKitFrameTest::testURI):
(WebKitFrameTest::testJavaScriptContext):
(WebKitFrameTest::webPageFromArgs): Deleted.
(WebKitFrameTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp:

(testWebKitDOMNodeHierarchyNavigation):
(testWebKitDOMNodeInsertion):
(testWebKitDOMNodeTagNames):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNodeFilter.cpp:

(runTest):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMXPathNSResolver.cpp:

(testWebKitDOMXPathNSResolverNative):
(testWebKitDOMXPathNSResolverCustom):
(beforeAll):
(afterAll):
(runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestFrame.cpp:

(webkitFrameTestRun):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:

(testsMap):
(WebProcessTest::add):
(WebProcessTest::create):
(runTest):
(windowObjectClearedCallback):
(webkit_web_extension_initialize):
(methodCallCallback): Deleted.
(webkit_web_extension_initialize_with_user_data): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h:
  • TestWebKitAPI/gtk/WebKit2Gtk/WebProcessTestRunner.cpp: Removed.
  • TestWebKitAPI/gtk/WebKit2Gtk/WebProcessTestRunner.h: Removed.
  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::runWebProcessTest):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
9:05 AM Changeset in webkit [182474] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.4/Tools

Merge r178644 - [GTK] [WK2] TestWebKitWebView snapshot fails
https://bugs.webkit.org/show_bug.cgi?id=120404

Reviewed by Žan Doberšek.

Rework the test to make sure the snapshot is always created at the
desired size.

  • Scripts/run-gtk-tests:

(TestRunner): Unskip /webkit2/WebKitWebView/snapshot.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewSnapshot): Use a fixed size for the document, and
disable scrollbars to make sure the visible area is always the
WebView size.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::showInWindowAndWaitUntilMapped): Add optional width
and height parameters to create the window with a given size.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
9:01 AM Changeset in webkit [182473] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Tools

Merge r173832 - [GTK] Test /webkit2/WebKitWebView/can-show-mime-type fails if evince browser plugin is installed
https://bugs.webkit.org/show_bug.cgi?id=136998

Reviewed by Philippe Normand.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewCanShowMIMEType): Remove the check of PDF as
unsupported MIME type.

7:53 AM Changeset in webkit [182472] by svillar@igalia.com
  • 6 edits
    2 adds in trunk

[CSS Grid Layout] Update track sizes after distributing extra space
https://bugs.webkit.org/show_bug.cgi?id=141422

Reviewed by Antti Koivisto.

Source/WebCore:

Both old and new tracks sizing algorithms instruct us to update
the sizes of the content sized tracks only after distributing the
extra space for all the items in the same span group. So far we
were doing it inside distributeSpaceToTracks(), i.e., once for
every single item. That is wrong because it makes the algorithm
order dependent.

Our old implementation looked something like this (pseudocode):

resolveContentBasedTrackSizingFunctions()

foreach item

resolveContentBasedTrackSizingFunctionsForItems() (x4)

distributeSpaceToTracks()

updateTrackSizes()

Now it's done this way (pseudocode):

resolveContentBasedTrackSizingFunctions()

foreach spanGroup

resolveContentBasedTrackSizingFunctionsForItems() (x4)

foreach item in spanGroup

distributeSpaceToTracks()

updateTrackSizes()

As it can be seen the update of track sizes only happens after
processing all the items of a given span group. In order to
accomplish this a new field was added to GridTrack called
tempIncrease which stores per-track increases while distributing
the extra space among the items in the same span group. That
temporal increase could eventually be used to update the
plannedIncrease which is the one we use to finally set the new
size of the track.

This change makes our implementation closer to the spec, removes
the order dependency and ensures that every track satisfies their
min track sizing functions before starting to consider the max
track sizing functions.

Test: fast/css-grid-layout/grid-update-sizes-after-distributing-all.html

  • rendering/RenderGrid.cpp:

(WebCore::GridTrack::plannedSize):
(WebCore::GridTrack::setPlannedSize): New setter.
(WebCore::GridTrack::tempSize): New attribute.
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
RenderGrid::distributeSpaceToTracks() no longer updates the track
sizes so we have to do it after the call returns.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
Call RenderGrid::resolveContentBasedTrackSizingFunctionsForItems()
passing a span group instead of a single item.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
It now receives a span group instead of a single item. Apart from
that we need an extra function to get the unaltered track size (as
the current one returns the base size whenever the growth limit is
infinity).
(WebCore::RenderGrid::distributeSpaceToTracks): This no longer
updates track sizes but only the track's planned size;

  • rendering/RenderGrid.h:

LayoutTests:

  • fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt:
  • fast/css-grid-layout/grid-content-sized-columns-resolution.html:
  • fast/css-grid-layout/grid-update-sizes-after-distributing-all-expected.txt: Added.
  • fast/css-grid-layout/grid-update-sizes-after-distributing-all.html: Added.
6:28 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
6:28 AM Changeset in webkit [182471] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.4/Source/WTF

Merge r178725 - Fix failed to build for Linux/MIPS64EL
https://bugs.webkit.org/show_bug.cgi?id=124370

Patch by YunQiang Su <wzssyqa@gmail.com> on 2015-01-20
Reviewed by Darin Adler.

Add MIPS64EL support.

  • wtf/Platform.h:
  • wtf/dtoa/utils.h:
6:25 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
6:24 AM Changeset in webkit [182470] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

[GTK] [WebKit1] Crash under WebCore::ScrollView::contentsToWindow()
https://bugs.webkit.org/show_bug.cgi?id=142343

Patch by Milan Crha <mcrha@redhat.com> on 2015-04-07
Reviewed by Carlos Garcia Campos.

Return early from frameRectsChanged() if the plugin widget doesn't
have a parent.

  • platform/gtk/GtkPluginWidget.cpp:

(WebCore::GtkPluginWidget::frameRectsChanged):

6:10 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
6:09 AM Changeset in webkit [182469] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebKit/gtk

[GTK] Memory leak from webkit_web_policy_decision_new()
https://bugs.webkit.org/show_bug.cgi?id=141564

Patch by Milan Crha <mcrha@redhat.com> on 2015-02-16
Reviewed by Carlos Garcia Campos.

  • webkit/webkitwebpolicydecision.cpp:
6:03 AM Changeset in webkit [182468] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r180141 - [GTK] Loading page into WebView shows g_closure_unref warning
https://bugs.webkit.org/show_bug.cgi?id=127474

Patch by Milan Crha <mcrha@redhat.com> on 2015-02-16
Reviewed by Carlos Garcia Campos.

  • bindings/gobject/GObjectEventListener.cpp:

(WebCore::GObjectEventListener::gobjectDestroyed):

6:01 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
6:01 AM Changeset in webkit [182467] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r178231 - Calling clearSelection on a detached RenderObject leads to segfault.
https://bugs.webkit.org/show_bug.cgi?id=140275

Reviewed by Simon Fraser.

We collect selection rects and compute selection gaps in order to
paint/clear selection. With certain content, we need to be able
to walk the tree up to a particular container to compute the selection rect.
However this container might not be available when the selection is part of a detached tree.
This is a null-check fix to ensure we don't crash in such cases, but in the long run
selection gaps and rect should be cached between two layouts so that we don't need to
keep collecting/recomputing them. Tracked here: webkit.org/b/140321

Source/WebCore:

Test: editing/selection/clearselection-on-detached-subtree-crash.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::containingBlockLogicalWidthForContent):
(WebCore::RenderBox::containingBlockLogicalHeightForContent):

  • rendering/RenderView.cpp:

(WebCore::RenderView::clearSelection):

LayoutTests:

  • editing/selection/clearselection-on-detached-subtree-crash-expected.txt: Added.
  • editing/selection/clearselection-on-detached-subtree-crash.html: Added.
5:57 AM Changeset in webkit [182466] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/LayoutTests

[GTK] Gardening 7th April
https://bugs.webkit.org/show_bug.cgi?id=143467

Unreviewed

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-04-07

  • platform/gtk/TestExpectations:
  • platform/gtk/editing/deleting/regional-indicators-expected.txt: Rebaselined after r182137.
  • platform/gtk/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Rebaselined after r181889.
  • platform/gtk/inspector-protocol/debugger/regress-133182-expected.txt: Added. Rebaselined after r181810.
5:27 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:27 AM Changeset in webkit [182465] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r176254 - AX: [ATK] Crash getting the orientation of a MenuListOption after the MenuList was removed from the document
https://bugs.webkit.org/show_bug.cgi?id=138727

Reviewed by Chris Fleizach.

Source/WebCore:

AccessibilityMenuListOption::elementRect() returns the value of the
grandparent MenuList, asserting that the grandparent exists with that
role. But it is possible to have an existing MenuListOption and remove
the element which had been backing that MenuList from the document.
Adding null checks prior to the assertions prevents our crashing if the
parent or grandparent was removed.

Test: platform/gtk/accessibility/combobox-descendants-orientation-crash.html

  • accessibility/AccessibilityMenuListOption.cpp:

(WebCore::AccessibilityMenuListOption::elementRect):

LayoutTests:

  • platform/gtk/accessibility/combobox-descendants-orientation-crash-expected.txt: Added.
  • platform/gtk/accessibility/combobox-descendants-orientation-crash.html: Added.
5:25 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:25 AM Changeset in webkit [182464] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r176091 - AX: [ATK] Do not return ATK_ROLE_UNKNOWN for null or otherwise invalid accessible objects
https://bugs.webkit.org/show_bug.cgi?id=137867

Reviewed by Chris Fleizach.

Source/WebCore:

Return ATK_ROLE_INVALID for null or otherwise invalid accessible objects.

Test: platform/gtk/accessibility/detached-object-role.html

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetRole):

Tools:

Add ATK_ROLE_INVALID to roleToString. Remove the null AtkRole check in
AccessibilityUIElement::role: ATK_ROLE_INVALID = 0, and we need to be
able to test for the presence of ATK_ROLE_INVALID.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::role):

LayoutTests:

  • platform/gtk/accessibility/detached-object-role-expected.txt: Added.
  • platform/gtk/accessibility/detached-object-role.html: Added.
5:23 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:23 AM Changeset in webkit [182463] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r176076 - AX: [ATK] Accessible focus events are emitted when the selection is changed in non-focused combo boxes
https://bugs.webkit.org/show_bug.cgi?id=137866

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Check that the AccessibilityMenuList is really focused before notifying
the platform that it is focused. Likewise, only notify the platform of
an AccessibilityMenuListOption focus gain if the AccessibilityMenuList
containing that option is expanded.

Test: platform/gtk/accessibility/menu-list-unfocused-notifications.html

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::notifyChildrenSelectionChange):
(WebCore::AXObjectCache::postPlatformNotification):

LayoutTests:

  • platform/gtk/accessibility/menu-list-unfocused-notifications-expected.txt: Added.
  • platform/gtk/accessibility/menu-list-unfocused-notifications.html: Added.
5:12 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:12 AM Changeset in webkit [182462] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r175347 - Notify Settings object when its Page object goes away.
https://bugs.webkit.org/show_bug.cgi?id=138183
rdar://problem/18786900

Reviewed by Andreas Kling.

I could not make a test for this issue.

  • page/Page.cpp:

(WebCore::Page::~Page):

  • page/Settings.cpp:

(WebCore::setImageLoadingSettings):
(WebCore::Settings::Settings):
(WebCore::Settings::setTextAutosizingEnabled):
(WebCore::Settings::setTextAutosizingWindowSizeOverride):
(WebCore::Settings::setTextAutosizingFontScaleFactor):
(WebCore::Settings::setMediaTypeOverride):
(WebCore::Settings::setScriptEnabled):
(WebCore::Settings::setUserStyleSheetLocation):
(WebCore::Settings::setMinDOMTimerInterval):
(WebCore::Settings::minDOMTimerInterval):
(WebCore::Settings::domTimerAlignmentInterval):
(WebCore::Settings::setUsesPageCache):
(WebCore::Settings::setScreenFontSubstitutionEnabled):
(WebCore::Settings::setFontRenderingMode):
(WebCore::Settings::setDNSPrefetchingEnabled):
(WebCore::Settings::setStorageBlockingPolicy):
(WebCore::Settings::setBackgroundShouldExtendBeyondPage):
(WebCore::Settings::setScrollingPerformanceLoggingEnabled):
(WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):
(WebCore::Settings::setHiddenPageCSSAnimationSuspensionEnabled):
(WebCore::Settings::setFontFallbackPrefersPictographs):

  • page/Settings.h:

(WebCore::Settings::pageDestroyed):

4:58 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
4:18 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
4:18 AM Changeset in webkit [182461] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r175277 - FrameProgressTracker expects Page to not have detached
https://bugs.webkit.org/show_bug.cgi?id=138061

Reviewed by Alexey Proskuryakov.

In some cases, a Page may be detached from a Frame before its
FrameLoader is torn down, causing FrameProgressTracker's destructor
to hit a null pointer.

No new tests; it is impossible to reliably simulate the null pointer
case without intrusive code changes.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameProgressTracker::~FrameProgressTracker):

3:49 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
3:49 AM Changeset in webkit [182460] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Merge r175158 - WebContent crash at WebCore::RenderTextControl::textFormControlElement const.
https://bugs.webkit.org/show_bug.cgi?id=138035

Reviewed by Antti Koivisto.

NULL-check element().renderer() before using it.

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::didSetValueByUserEdit):

3:33 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
3:33 AM Changeset in webkit [182459] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4/Source

Merge r172759 - TEXTREL in libjavascriptcoregtk-1.0.so.0.11.0 on x86 (or i586)
https://bugs.webkit.org/show_bug.cgi?id=70610

Patch by Magnus Granberg <zorry@gentoo.org> on 2014-08-19
Reviewed by Darin Adler.

Source/JavaScriptCore:

Setup %ebx so we can use the plt.

  • jit/ThunkGenerators.cpp:

Source/WTF:

Add PLT if we're building with PIC.

  • wtf/InlineASM.h:
3:08 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
3:07 AM Changeset in webkit [182458] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

REGRESSION(r177885): [GTK][WK1] Cannot compile 2.4.8 when WK2 is disabled
https://bugs.webkit.org/show_bug.cgi?id=140241

Patch by Tomas Popela <tpopela@redhat.com> on 2015-04-07
Reviewed by Carlos Garcia Campos.

We have to compile the PluginPackageNone.cpp and PluginViewNone.cpp
just when WebKit2 is enabled and we are not building for X11.

  • GNUmakefile.list.am:
2:29 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
2:28 AM Changeset in webkit [182457] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.4

configure check for clang version is incorrect
https://bugs.webkit.org/show_bug.cgi?id=126324

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-04-07
Reviewed by Carlos Garcia Campos.

  • Source/autotools/CheckSystemAndBasicDependencies.m4:

Change compiler version checks of Clang and GCC so that they
handle major/minor versions correctly.

2:23 AM Changeset in webkit [182456] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.4/Source

Unreviewed. Fix the build with newer GLib.

Source/WebCore:

Use WTF::GMutexLocker.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::paint):

  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(webkitVideoSinkTimeoutCallback):
(webkitVideoSinkRender):
(unlockBufferMutex):
(webkitVideoSinkUnlockStop):
(webkitVideoSinkStart):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcStop):
(webKitWebSrcStart):
(webKitWebSrcChangeState):
(webKitWebSrcQueryWithParent):
(webKitWebSrcGetUri):
(webKitWebSrcSetUri):
(webKitWebSrcNeedDataMainCb):
(webKitWebSrcNeedDataCb):
(webKitWebSrcEnoughDataMainCb):
(webKitWebSrcEnoughDataCb):
(webKitWebSrcSeekMainCb):
(webKitWebSrcSeekDataCb):
(webKitWebSrcSetMediaPlayer):
(StreamingClient::createReadBuffer):
(StreamingClient::handleResponseReceived):
(StreamingClient::handleDataReceived):
(StreamingClient::handleNotifyFinished):
(ResourceHandleStreamingClient::wasBlocked):
(ResourceHandleStreamingClient::cannotShowURL):

Source/WTF:

  • wtf/gobject/GMutexLocker.h: Move to the WTF namespace.
1:11 AM Changeset in webkit [182455] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Tools

web-platform-tests server should retrieve the modules file relatively to its docroot path
https://bugs.webkit.org/show_bug.cgi?id=142742

Reviewed by Darin Adler.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._install_modules): Compute the modules description file path according wpt server doc root path.

1:06 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
12:45 AM Changeset in webkit [182454] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.6.6

WebKitGTK+ 2.6.6

12:44 AM Changeset in webkit [182453] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.6.6 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.6.6.
12:26 AM Changeset in webkit [182452] by Yusuke Suzuki
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

put_by_val_direct need to check the property is index or not for using putDirect / putDirectIndex
https://bugs.webkit.org/show_bug.cgi?id=140426

Reviewed by Darin Adler.

In the put_by_val_direct operation, we use JSObject::putDirect.
However, it only accepts non-index property. For index property, we need to use JSObject::putDirectIndex.
This patch checks toString-ed Identifier is index or not to choose putDirect / putDirectIndex.

  • dfg/DFGOperations.cpp:

(JSC::DFG::putByVal):
(JSC::DFG::operationPutByValInternal):

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

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/Identifier.h:

(JSC::isIndex):
(JSC::parseIndex):

  • tests/stress/dfg-put-by-val-direct-with-edge-numbers.js: Added.

(lookupWithKey):
(toStringThrowsError.toString):

Apr 6, 2015:

11:52 PM Changeset in webkit [182451] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6

Merge r182450 - [GTK] Fix HPPA build
https://bugs.webkit.org/show_bug.cgi?id=143453

Reviewed by Darin Adler.

Add HPPA to the list of supported CPUs.

  • CMakeLists.txt:
11:25 PM Changeset in webkit [182450] by berto@igalia.com
  • 4 edits in trunk

[GTK] Fix HPPA build
https://bugs.webkit.org/show_bug.cgi?id=143453

Reviewed by Darin Adler.

Add HPPA to the list of supported CPUs.

  • CMakeLists.txt:
11:22 PM Changeset in webkit [182449] by Chris Dumez
  • 8 edits
    4 adds in trunk

Bing video search result pages are not PageCacheable
https://bugs.webkit.org/show_bug.cgi?id=143463
<rdar://problem/20440916>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Bing video search result pages are not PageCacheable (tested on iOS).
It both:

  • is bad for power usage as it causes a reload when clicking one of the results then navigating back in history.
  • degrades user experience because the results page uses infinite scrolling and the scroll position is not properly restored when navigating back, not to mention the user has to wait for the reload to complete.

The issue was that the bing search page was doing a ping load when
clicking on one of the search results. The ping load was done by
create an image and its 'src' attribute to the ping URL. This load
usually did not have time to complete when navigating away so we would
cancel it and the main document would end up with an error that would
prevent the page from entering the page cache. We already have code
making sure load cancellations do not prevent page caching as long as
the loads are for XHR or images. However, the latter check was broken
in the case where the ResourceRequest's cachePartition was non-empty.
This is because the check was using the MemoryCache::ResourceForUrl()
API which rarely does what we want because it will request a dummy
ResourceRequest (without cachePartition) and then call
MemoryCache::resourceForRequest(). This patch updates the check
to use resourceForRequest() directly as we have the ResourceRequest
at this point.

This patch also gets rid of the MemoryCache::ResourceForUrl() API as
it rarely does what we want and it is bug prone. It was only used in
2 places, one of them causing this bug and the other in Internals.

Tests: http/tests/navigation/page-cache-pending-image-load-cache-partition.html

http/tests/navigation/page-cache-pending-image-load.html

  • loader/DocumentLoader.cpp:

(WebCore::areAllLoadersPageCacheAcceptable):
Use MemoryCache::resourceForRequest() instead of resourceForUrl() as
we have the ResourceRequest and calling resourceForUrl() would loose
the cachePartition.

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::resourceForURL): Deleted.
Drop this API as it is bug prone and rarely does what we want.

  • testing/Internals.cpp:

(WebCore::Internals::isLoadingFromMemoryCache):
Update call to create a dummy ResourceRequest and call
resourceForRequest() instead of resourceForUrl(), as this API no
longer exists. The new code also set the cachePartition on the
dummy request so that this function actually behaves as expected
if the cachePartition in the memory cache is non-empty.

Source/WebKit/mac:

Fix the iOS / WK1 build by using MemoryCache::resourceForRequest()
instead of resourceForUrl().

  • Misc/WebCache.mm:

(+[WebCache imageForURL:]):

LayoutTests:

Add layout tests to confirm that a pending image load does not prevent
a page from entering the page cache. There are 2 tests, once that cover
the case where the request's cachePartion is empty (passing without the
fix), and another where the request's cachePartition is non-empty
(which only passes with the fix).

  • http/tests/navigation/page-cache-pending-image-load-cache-partition-expected.txt: Added.
  • http/tests/navigation/page-cache-pending-image-load-cache-partition.html: Added.
  • http/tests/navigation/page-cache-pending-image-load-expected.txt: Added.
  • http/tests/navigation/page-cache-pending-image-load.html: Added.
5:29 PM Changeset in webkit [182448] by aestes@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/contentfiltering/block-after-redirect.html fails on Windows
https://bugs.webkit.org/show_bug.cgi?id=143460

  • platform/win/TestExpectations: Marked test as ImageOnlyFailure.
5:05 PM Changeset in webkit [182447] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Create the web inspector process pool lazily
https://bugs.webkit.org/show_bug.cgi?id=143456
rdar://problem/20146520

Reviewed by Mark Lam.

Add and implement WebInspectorProxy::isInspectorProcessPool instead of always creating the inspector process pool
when trying to determine if a given process pool is the inspector process pool.

This should speed up initialization somewhat and avoid creating a storage manager for example.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::inspectorProcessPool):
(WebKit::WebInspectorProxy::isInspectorProcessPool):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions):

4:24 PM Changeset in webkit [182446] by achristensen@apple.com
  • 5 edits
    3 deletes in trunk/Tools

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

broke 32 bit build (Requested by alexchristensen on #webkit).

Reverted changeset:

"Use content extensions in MiniBrowser."
https://bugs.webkit.org/show_bug.cgi?id=143446
http://trac.webkit.org/changeset/182445

Patch by Commit Queue <commit-queue@webkit.org> on 2015-04-06

4:15 PM Changeset in webkit [182445] by achristensen@apple.com
  • 5 edits
    3 adds in trunk/Tools

Use content extensions in MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=143446

Patch by Sam Weinig <sam@webkit.org> on 2015-04-06
Reviewed by Alex Christensen.

  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
  • MiniBrowser/mac/AppDelegate.h:
  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate init]):
(-[BrowserAppDelegate showExtensionsManager:]):
(-[BrowserAppDelegate userContentContoller]):

  • MiniBrowser/mac/ExtensionManagerWindowController.h: Added.
  • MiniBrowser/mac/ExtensionManagerWindowController.m: Added.

(-[ExtensionManagerWindowController init]):
(-[ExtensionManagerWindowController windowDidLoad]):
(-[ExtensionManagerWindowController add:]):
(-[ExtensionManagerWindowController remove:]):

  • MiniBrowser/mac/ExtensionManagerWindowController.xib: Added.
  • MiniBrowser/mac/MainMenu.xib:
3:53 PM WindowsWithoutCygwin edited by mmaxfield@apple.com
(diff)
3:48 PM Changeset in webkit [182444] by mark.lam@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

In the 64-bit DFG and FTL, Array::Double case for HasIndexedProperty should set its result to true when all is well.
<https://webkit.org/b/143396>

Reviewed by Filip Pizlo.

The DFG was neglecting to set the result boolean. The FTL was setting it with
an inverted value. Both of these are now resolved.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileHasIndexedProperty):

  • tests/stress/for-in-array-mode.js: Added.

(.):
(test):

3:39 PM Changeset in webkit [182443] by mmaxfield@apple.com
  • 2 edits in trunk/WebKitLibraries

[Win] [SVG -> OTF Converter] Turn off on Windows until I can get the tests under control

Unreviewed.

  • win/tools/vsprops/FeatureDefines.props:
3:33 PM Changeset in webkit [182442] by beidson@apple.com
  • 17 edits
    1 add
    2 deletes in trunk/Source/WebKit2

Combine ActionMenuHitTestResult with WebHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=143444

Reviewed by Beth Dakin.

  • Shared/mac/ActionMenuHitTestResult.h: Removed.
  • Shared/mac/ActionMenuHitTestResult.mm: Removed.
  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
(WebKit::WebHitTestResult::Data::platformEncode):
(WebKit::WebHitTestResult::Data::platformDecode):

  • Shared/WebHitTestResult.h:
  • Shared/mac/WebHitTestResult.mm: Added.

(WebKit::WebHitTestResult::Data::platformEncode):
(WebKit::WebHitTestResult::Data::platformDecode):

  • UIProcess/API/mac/WKView.mm:

(-[WKView _didPerformActionMenuHitTest:forImmediateAction:contentPreventsDefault:userData:]):
(-[WKView _didPerformActionMenuHitTest:forImmediateAction:userData:]): Deleted.

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

(WebKit::WebPageProxy::didPerformActionMenuHitTest):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::didPerformActionMenuHitTest):

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

(-[WKActionMenuController willDestroyView:]):
(-[WKActionMenuController _clearActionMenuState]):
(-[WKActionMenuController didPerformActionMenuHitTest:userData:]):
(-[WKActionMenuController _hitTestResultDataImage]):
(-[WKActionMenuController _defaultMenuItemsForImage]):
(-[WKActionMenuController _copyImage:]):
(-[WKActionMenuController _addImageToPhotos:]):
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
(-[WKActionMenuController _defaultMenuItemsForEditableTextWithSuggestions]):
(-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]):
(-[WKActionMenuController _webHitTestResult]):
(-[WKActionMenuController _defaultMenuItems]):
(-[WKActionMenuController _hitTestResultImage]): Deleted.

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

(-[WKImmediateActionController willDestroyView:]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController didPerformActionMenuHitTest:contentPreventsDefault:userData:]):
(-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
(-[WKImmediateActionController _webHitTestResult]):
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _updateImmediateActionItem]):
(-[WKImmediateActionController _menuItemForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForText]):
(-[WKImmediateActionController didPerformActionMenuHitTest:userData:]): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performActionMenuHitTestAtLocation):

3:27 PM Changeset in webkit [182441] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] install-dependencies should prefer dnf to yum
https://bugs.webkit.org/show_bug.cgi?id=143441

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-04-06
Reviewed by Martin Robinson.

Test for the existance of dnf before yum, and only try to use yum if dnf does not exist.

  • gtk/install-dependencies:
3:16 PM Changeset in webkit [182440] by aestes@apple.com
  • 2 edits in trunk/Tools

[iOS] 'make clean' fails in Tools/WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=143455

Reviewed by Dan Bernstein.

This Makefile adds '-target WebKitTestRunnerApp' to OTHER_OPTIONS during iOS builds, but the top-level
Makefile.shared adds '-alltargets' for clean builds, and xcodebuild does not allow both -target and -alltargets.

  • WebKitTestRunner/Makefile: Don't add '-target WebKitTestRunerApp' to OTHER_OPTIONS on clean builds.
3:02 PM Changeset in webkit [182439] by jer.noble@apple.com
  • 12 edits
    1 add in trunk/Source

Synchronize fullscreen animation between processes.
https://bugs.webkit.org/show_bug.cgi?id=143131

Reviewed by Simon Fraser.

Source/WebCore:

Rather than attempt to synchcronize animations across the WebProcess / UIProcess boundary,
do the bounds-change animation in-process by applying a sublayer transformation to the
video layer. This gives the same visual effect as a synchronized bounds animation, but
without needing a synchronization fence. Resolve the difference between the transformation
and bounds by doing a fence-synchronized bounds change after the current animation is
scheduled to complete.

To do this calculation correctly, WebAVPlayer needs to query both the effective
videoLayerFrame and the videoLayerGravity. To that end, add getter methods for
videoLayerFrame() and videoLayerGravity().

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::videoFullscreenGravity):

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVVideoLayer dealloc]): Cancel outstanding performSelector requests.
(-[WebAVVideoLayer setBounds:]): Add a scale transform to simulate a bonuds change.
(-[WebAVVideoLayer resolveBounds]): Reset the scale transform and set the bounds.
(WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal): Set the initial video frame bounds.
(-[WebAVPlayerController layoutSublayersOfLayer:]): Deleted.

  • platform/ios/WebVideoFullscreenModel.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.h:
  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::videoLayerFrame): Added; simple getter.
(WebVideoFullscreenModelVideoElement::videoLayerGravity): Ditto.

Source/WebKit2:

Support synchronize resizing by animating within the UIProcess. Since setVideoLayerFrameFenced() is now only
ever called from within a 0-duration transaction, make that the official contract of the function and wrap
the WebProcess side of that method in its own 0-duration transaction.

  • Platform/spi/ios/BackBoardServicesSPI.h: Added.
  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.h:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Remember the initial rect.
(WebKit::WebVideoFullscreenManagerProxy::videoLayerFrame): Added; simple getter.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): Use a different synchronization fence primative.

Save the cached frame value.

(WebKit::WebVideoFullscreenManagerProxy::videoLayerGravity): Added; simple getter.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerGravity): Save the cached gravity value.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): Wrap in a 0-length transaction.

2:08 PM Changeset in webkit [182438] by rniwa@webkit.org
  • 6 edits in trunk/Websites/perf.webkit.org

Perf dashboard should be able to trigger A/B testing jobs for iOS
https://bugs.webkit.org/show_bug.cgi?id=143398

Reviewed by Chris Dumez.

Fix various bugs in the perf dashboard so that it can schedule A/B testing jobs for iOS.

Also generalized sync-with-buildbot.py slightly to meet the requirements of iOS builders.

  • public/api/triggerables.php:

(main): Avoid spitting a warning when $id_to_triggerable doesn't contain the triggerable.

  • public/v2/analysis.js:

(App.AnalysisTask.triggerable): Log an error when failed to fetch triggerables for debugging purposes.

  • public/v2/app.js:

(App.AnalysisTaskController.updateRootConfigurations): Show 'None' when a revision is missing from
some of the data points. This will happen when we modify the list of projects we build for iOS.
(App.AnalysisTaskController.actions.createTestGroup): Gracefully fail by showing alerts when an user
attempts to create an invalid test group; when there is already another test group of the same or when
only either configuration specifies the revision for some repository.
(App.AnalysisTaskController._updateRootsBySelectedPoints): Fixed a typo: sets[i] -> set.

  • public/v2/index.html: Don't show the form to create a new test group if it's not available.
  • tools/sync-with-buildbot.py:

(find_request_updates):
(schedule_request): iOS builders take a JSON that contains the list of roots. Generate this JSON when
a dictionary of the form {rootsExcluding: WebKit} is specified. Also replaced the way we refer to
a revision from $-based text replacements to an explicit dictionary of the form {root: "WebKit"}.
(request_id_from_build): Don't hard code the parameter name here. Retrieve the name from the config.

1:49 PM Changeset in webkit [182437] by Chris Dumez
  • 5 edits in trunk/Source/WebKit2

[WK2][iOS] Regression(r182323): ASSERTION FAILED: WebCore::SQLiteDatabaseTracker::hasTransactionInProgress() in NetworkCache::Statistics::initialize()
https://bugs.webkit.org/show_bug.cgi?id=143451
<rdar://problem/20437994>

Reviewed by Anders Carlsson.

Initialize WebProcess::m_webSQLiteDatabaseTracker and
NetworkProcess::m_webSQLiteDatabaseTracker in their respective class
constructors instead of doing it later in the initializeWebProcess() /
initializeNetworkProcess() methods.

If we do it later, it can happen that the tracker gets set after
a SQLiteTransactionInProgressAutoCounter initialization and before
the actual transaction. When this happens, the
SQLiteTransactionInProgressAutoCounter variable fails to increment the
transaction count. Then when the transaction is executed,
SQLiteDatabaseTracker::hasTransactionInProgress() can return false.
This would lead to possible assertions on start up on iOS.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
1:39 PM Changeset in webkit [182436] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Simple line layout: RunResolver::Iterator class cleanup.
https://bugs.webkit.org/show_bug.cgi?id=143445

Reviewed by Antti Koivisto.

  1. SimpleLineLayout::Run is an intermediate structure and should not be publicly accessible through RunResolver::Iterator.

RunResolver::Run is the class to use to access run properties.

  1. Also move advance()/advanceLine() to private. Callers should use LineResolver to advance on lines.

No change in functionality.

  • rendering/SimpleLineLayoutResolver.h:
1:26 PM Changeset in webkit [182435] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

https://trac.webkit.org/changeset/182338 introduced a build failure that I
attempted to fix with https://trac.webkit.org/changeset/182341 , but that disabled
the feature accidentally. This should do the right thing.

  • UIProcess/API/mac/WKView.mm:

(-[WKView pressureChangeWithEvent:]):

12:58 PM Changeset in webkit [182434] by ap@apple.com
  • 2 edits in trunk/Tools

WebKit1.SetAndUpdateCacheModelPreferencesChangeMix fails on some machines
https://bugs.webkit.org/show_bug.cgi?id=143450

Reviewed by Anders Carlsson.

  • TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: (TestWebKitAPI::TEST):

Make sure that the view is actually closed, regardless of anything else that happens beneath.
Also, removed unnecessary get() calls.

12:07 PM Changeset in webkit [182433] by Yusuke Suzuki
  • 21 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] DFG and FTL should be aware of that StringConstructor behavior for symbols becomes different from ToString
https://bugs.webkit.org/show_bug.cgi?id=143424

Reviewed by Geoffrey Garen.

In ES6, StringConstructor behavior becomes different from ToString abstract operations in the spec. (and JSValue::toString).

ToString(symbol) throws a type error.
However, String(symbol) produces SymbolDescriptiveString(symbol).

So, in DFG and FTL phase, they should not inline StringConstructor to ToString.

Now, in the template literals patch, ToString DFG operation is planned to be used.
And current ToString behavior is aligned to the spec (and JSValue::toString) and it's better.
So intead of changing ToString behavior, this patch adds CallStringConstructor operation into DFG and FTL.
In CallStringConstructor, all behavior in DFG analysis is the same.
Only the difference from ToString is, when calling DFG operation functions, it calls
operationCallStringConstructorOnCell and operationCallStringConstructor instead of
operationToStringOnCell and operationToString.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupToStringOrCallStringConstructor):
(JSC::DFG::FixupPhase::attemptToMakeFastStringAdd):
(JSC::DFG::FixupPhase::fixupToString): Deleted.

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOnCell):
(JSC::DFG::SpeculativeJIT::compileToStringOnCell): Deleted.

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

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStructureRegistrationPhase.cpp:

(JSC::DFG::StructureRegistrationPhase::run):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileToStringOrCallStringConstructor):
(JSC::FTL::LowerDFGToLLVM::compileToString): Deleted.

  • runtime/StringConstructor.cpp:

(JSC::stringConstructor):
(JSC::callStringConstructor):

  • runtime/StringConstructor.h:
  • tests/stress/symbol-and-string-constructor.js: Added.

(performString):

11:37 AM Changeset in webkit [182432] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

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

This will disturb network cache efficacy logging, we should
reland this later. (Requested by cdumez on #webkit).

Reverted changeset:

"[WK2][NetworkCache] Drop HTTP method from NetworkCache::Key"
https://bugs.webkit.org/show_bug.cgi?id=143348
http://trac.webkit.org/changeset/182296

10:00 AM Changeset in webkit [182431] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Use a RenderObject bit for isRenderFlowThread()
https://bugs.webkit.org/show_bug.cgi?id=143439

Reviewed by Darin Adler.

Turning isRenderFlowThread() into a bit in rare data rather than a virtual function reduces
the time under RenderLayer::scrollTo() on a large overflow:scroll table from 56% to 44%.

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::RenderFlowThread):

  • rendering/RenderFlowThread.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setIsRenderFlowThread):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isDragging):
(WebCore::RenderObject::hasReflection):
(WebCore::RenderObject::isRenderFlowThread):
(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):

9:32 AM Changeset in webkit [182430] by Carlos Garcia Campos
  • 6 edits
    2 deletes in releases/WebKitGTK/webkit-2.8/Source

Merge r182175 - [GTK] DnD icon/widget has odd background
https://bugs.webkit.org/show_bug.cgi?id=143217

Reviewed by Martin Robinson.

Source/WebCore:

Remove DragIcon class since it's no longer needed with GTK+3 and
the GTK+2 code there is unused. GTK+ knows what to do with a cairo
surface, I guess we migrated the GTK+2 code to GTK+3 without
realizing that using the surface was enough.

  • PlatformGTK.cmake:
  • platform/gtk/DragIcon.cpp: Removed.
  • platform/gtk/DragIcon.h: Removed.

Source/WebKit2:

Use gtk_drag_set_icon_surface() to set the drag icon image,
instead of DragIcon class.

  • UIProcess/API/gtk/WebKitWebView.cpp:
  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::startDrag):

  • UIProcess/gtk/DragAndDropHandler.h:
9:30 AM Changeset in webkit [182429] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r182051 - Inline continuation code should not take anonymous containing wrapper granted.
https://bugs.webkit.org/show_bug.cgi?id=133312

Reviewed by Dave Hyatt.

It's wrong to assume that when RenderInline is part of an inline continuation, its containing block
is an anonymous wrapper and its sibling might be a block level renderer.
When the inline continuation is no longer needed, for example when the block level renderer that initiated the continuation
is detached from the render tree, the inline renderes still continue to form continuation.(however they no longer require
anonymous wrappers)

Source/WebCore:

Test: fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation.html

  • rendering/RenderInline.cpp:

(WebCore::updateStyleOfAnonymousBlockContinuations):
(WebCore::RenderInline::styleDidChange):

LayoutTests:

  • fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation-expected.txt: Added.
  • fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation.html: Added.
9:28 AM Changeset in webkit [182428] by ap@apple.com
  • 18 edits
    1 delete in trunk

Reduce the dependency on Flash in regression tests
https://bugs.webkit.org/show_bug.cgi?id=143391

Reviewed by Anders Carlsson.

Tools:

  • WebKitTestRunner/TestController.cpp: (WTR::TestController::decidePolicyForPluginLoad):

Only allow QuickTime and the test plug-in.

LayoutTests:

  • accessibility/inline-block-assertion.html:
  • accessibility/plugin.html:
  • compositing/geometry/empty-embed-rects.html:
  • fast/history/resources/subframe-with-plugin.html:
  • fast/images/embed-does-not-propagate-dimensions-to-object-ancestor.html:
  • fast/loader/loadInProgress.html:
  • fast/replaced/border-radius-clip.html:
  • fast/replaced/embed-display-none.html:
  • plugins/crash-restoring-plugin-page-from-page-cache.html:
  • plugins/object-embed-plugin-scripting.html:
  • plugins/resources/plugin-frame.html:

Use TestNetscapePlugin, as the tests don't appear to have any real need for Flash.

  • plugins/iframe-shims.html: Removed. This was a test for a chromium only feature

that never existed in WebKit.

  • platform/mac/TestExpectations:
  • platform/wincairo/TestExpectations:

Removed the deleted plugins/iframe-shims.html.

  • platform/mac-wk2/TestExpectations: Skip snapshotting tests that use Flash,

because they make WebKitTestRunner crash now. Marked all other snapshotting tests
as Pass/Failure, because they don't really make any sense, and are only useful for
finsing crashes.

  • platform/wk2/TestExpectations: Skipped a few remaining tests that use Flash.

These tests still run (and pass) under WebKit1, regardless of whether Flash is
installed, so they don't seem like very accurate tests.

9:28 AM Changeset in webkit [182427] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r182051 - Inline continuation code should not take anonymous containing wrapper granted.
https://bugs.webkit.org/show_bug.cgi?id=133312

Reviewed by Dave Hyatt.

It's wrong to assume that when RenderInline is part of an inline continuation, its containing block
is an anonymous wrapper and its sibling might be a block level renderer.
When the inline continuation is no longer needed, for example when the block level renderer that initiated the continuation
is detached from the render tree, the inline renderes still continue to form continuation.(however they no longer require
anonymous wrappers)

Source/WebCore:

Test: fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation.html

  • rendering/RenderInline.cpp:

(WebCore::updateStyleOfAnonymousBlockContinuations):
(WebCore::RenderInline::styleDidChange):

LayoutTests:

  • fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation-expected.txt: Added.
  • fast/inline/crash-when-position-property-is-changed-and-no-longer-in-continuation.html: Added.
9:16 AM Changeset in webkit [182426] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.6

Merge r180020 - Drop the quirks-mode exception for CSS MIME types
https://bugs.webkit.org/show_bug.cgi?id=141501

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Drop the quirks-mode exception for CSS MIME types.
This matches Firefox's behavior.

This patch is based on the following Blink revision:
http://src.chromium.org/viewvc/blink?view=revision&revision=189669

Tests:

  • http/tests/misc/css-accept-any-type.html
  • http/tests/security/cross-origin-css.html
  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::parseAuthorStyleSheet):

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::setCSSStyleSheet):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResourceContent):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::sheetText):
(WebCore::CachedCSSStyleSheet::canUseSheet):

  • loader/cache/CachedCSSStyleSheet.h:

LayoutTests:

Update a couple of layout tests now that we dropped the quirks-mode
exception for CSS MIME types.

  • http/tests/misc/css-accept-any-type-expected.txt:
  • http/tests/misc/css-accept-any-type.html:
  • http/tests/security/cross-origin-css-expected.txt:
  • http/tests/security/cross-origin-css.html:
9:04 AM Changeset in webkit [182425] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WTF

Merge r178725 - Fix failed to build for Linux/MIPS64EL
https://bugs.webkit.org/show_bug.cgi?id=124370

Patch by YunQiang Su <wzssyqa@gmail.com> on 2015-01-20
Reviewed by Darin Adler.

Add MIPS64EL support.

  • wtf/Platform.h:
  • wtf/dtoa/utils.h:
8:49 AM Changeset in webkit [182424] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed test update after r182369.

New test does not pass on Windows.

  • platform/win/TestExpectations: Skip.
8:30 AM Changeset in webkit [182423] by mmaxfield@apple.com
  • 6 edits in trunk

[Win] [SVG -> OTF Converter] Support the SVG -> OTF Font Converter
https://bugs.webkit.org/show_bug.cgi?id=143402

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-04-06
Reviewed by Darin Adler.

Source/WebCore:

There are a few pieces to the converter that Windows requires that we haven't already
implemented:

  1. Checksums were being calculated with the wrong endianness
  2. Windows requires a format 4 'cmap' subtable in addition to the format 12 one we already

were using

  1. Windows requires a reference to a Private DICT inside the CFF table, even if the DICT

is of 0 length.

Covered by all our existing SVG font tests.

  • svg/SVGFontFaceElement.h: Add capHeight accessor.
  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::capHeight): Ditto.

  • svg/SVGToOTFConversion.cpp: Update the conversion process according to the above

requirements.
(WebCore::SVGToOTFFontConverter::appendFormat12CMAPTable):
(WebCore::SVGToOTFFontConverter::appendFormat4CMAPTable):
(WebCore::SVGToOTFFontConverter::appendCMAPTable): Use helpers.
(WebCore::SVGToOTFFontConverter::appendHHEATable): Use member variables.
(WebCore::SVGToOTFFontConverter::appendOS2Table): Update to version 2.
(WebCore::SVGToOTFFontConverter::appendCFFTable): Create a reference to a
zero-sized Private DICT
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Populate member
variables.
(WebCore::SVGToOTFFontConverter::calculateChecksum): Flip endianness

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props: Enable the define.
8:25 AM Changeset in webkit [182422] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6

Merge r181864 - Source/WebKit2:
Make platform/mac-wk2/plugins/destroy-during-async-npp-new.html work again.
https://bugs.webkit.org/show_bug.cgi?id=133692
rdar://problem/17255947

Reviewed by Alexey Proskuryakov.

Add plug-in destruction protectors around message receiver code that can call out to NPObjects or JavaScript
where we need the plug-in to stay around after the call.

  • Shared/Plugins/NPObjectMessageReceiver.cpp:

(WebKit::NPObjectMessageReceiver::invoke):
(WebKit::NPObjectMessageReceiver::invokeDefault):
(WebKit::NPObjectMessageReceiver::getProperty):
(WebKit::NPObjectMessageReceiver::setProperty):
(WebKit::NPObjectMessageReceiver::construct):

LayoutTests:
Make platform/mac-wk2/plugins/destroy-during-async-npp-new.html work again
https://bugs.webkit.org/show_bug.cgi?id=133692
rdar://problem/17255947

Reviewed by Alexey Proskuryakov.

  • platform/mac-wk2/TestExpectations:

Unskip test.

8:23 AM Changeset in webkit [182421] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

Merge r181835 - DFG OSR exit shouldn't assume that the frame count for exit is greater than the frame count in DFG
https://bugs.webkit.org/show_bug.cgi?id=142948

Reviewed by Sam Weinig.

It's necessary to ensure that the stack pointer accounts for the extent of our stack usage
since a signal may clobber the area below the stack pointer. When the DFG is executing,
the stack pointer accounts for the DFG's worst-case stack usage. When we OSR exit back to
baseline, we will use a different amount of stack. This is because baseline is a different
compiler. It will make different decisions. So it will use a different amount of stack.

This gets tricky when we are in the process of doing an OSR exit, because we are sort of
incrementally transforming the stack from how it looked in the DFG to how it will look in
baseline. The most conservative approach would be to set the stack pointer to the max of
DFG and baseline.

When this code was written, a reckless assumption was made: that the stack usage in
baseline is always at least as large as the stack usage in DFG. Based on this incorrect
assumption, the code first adjusts the stack pointer to account for the baseline stack
usage. This sort of usually works, because usually baseline does happen to use more stack.
But that's not an invariant. Nobody guarantees this. We will never make any changes that
would make this be guaranteed, because that would be antithetical to how optimizing
compilers work. The DFG should be allowed to use however much stack it decides that it
should use in order to get good performance, and it shouldn't try to guarantee that it
always uses less stack than baseline.

As such, we must always assume that the frame size for DFG execution (i.e.
frameRegisterCount) and the frame size in baseline once we exit (i.e.
requiredRegisterCountForExit) are two independent quantities and they have no
relationship.

Fortunately, though, this code can be made correct by just moving the stack adjustment to
just before we do conversions. This is because we have since changed the OSR exit
algorithm to first lift up all state from the DFG state into a scratch buffer, and then to
drop it out of the scratch buffer and into the stack according to the baseline layout. The
point just before conversions is the point where we have finished reading the DFG frame
and will not read it anymore, and we haven't started writing the baseline frame. So, at
this point it is safe to set the stack pointer to account for the frame size at exit.

This is benign because baseline happens to create larger frames than DFG.

  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::adjustAndJumpToTarget):

8:19 AM Changeset in webkit [182420] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r181773 - Source/WebCore:
REGRESSION (r109593): Clicking after last inline element could cause a crash.
https://bugs.webkit.org/show_bug.cgi?id=142880
rdar://problem/17222294

Reviewed by Ryosuke Niwa.

Test: editing/selection/click-after-last-inline-crash.html

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::closestLeafChildForLogicalLeftPosition):

8:18 AM Changeset in webkit [182419] by Carlos Garcia Campos
  • 9 edits
    4 adds in releases/WebKitGTK/webkit-2.6

Merge r181691 - Flex and grid items should be painted as inline-blocks
https://bugs.webkit.org/show_bug.cgi?id=142266

Reviewed by Darin Adler.

Source/WebCore:

Based on Blink r157004 by <cbiesinger@chromium.org>.
https://src.chromium.org/viewvc/blink?revision=157004&view=revision

Both flexbox and grid specs define that the painting order of flex/grid
items is the same as inline blocks. See
http://dev.w3.org/csswg/css-flexbox/#painting and
http://dev.w3.org/csswg/css-grid/#z-order.

Extracted inline blocks painting code from InlineElementBox and moved to
a helper method that will be reused for flexboxes and grids.

Tests: css3/flexbox/flex-item-text-background-not-interleaved.html

fast/css-grid-layout/grid-item-text-background-not-interleaved.html

  • rendering/InlineElementBox.cpp:

(WebCore::InlineElementBox::paint): Move code to
RenderElement::paintAsInlineBlock().

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintChild): Add new argument to paint children
as inline blocks.

  • rendering/RenderBlock.h: Define PaintType enmu and modify paintChild()

signature to add the new argument.

  • rendering/RenderElement.cpp:

(WebCore::paintPhase): Paint element in a phase.
(WebCore::RenderElement::paintAsInlineBlock): Code extracted from
InlineElementBox::paint().

  • rendering/RenderElement.h: Add new method signature.
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::paintChildren): Call
RenderBlock::paintChild() with the new argument.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::paintChildren): Ditto.

LayoutTests:

  • css3/flexbox/flex-item-text-background-not-interleaved-expected.html: Added.
  • css3/flexbox/flex-item-text-background-not-interleaved.html: Added.
  • fast/css-grid-layout/float-not-protruding-into-next-grid-item-expected.html:

Add some vertical space to avoid issues with backgrounds.

  • fast/css-grid-layout/float-not-protruding-into-next-grid-item.html:

Ditto.

  • fast/css-grid-layout/grid-item-text-background-not-interleaved-expected.html: Added.
  • fast/css-grid-layout/grid-item-text-background-not-interleaved.html: Added.
8:09 AM Changeset in webkit [182418] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181787 - [GTK] Crash due to empty drag image during drag-and-drop
https://bugs.webkit.org/show_bug.cgi?id=142671

Reviewed by Philippe Normand.

Return early from ImageBuffer constructor if an empty size is
given. This is a speculative fix for a crash while starting a drag
and drop operation, that I haven't been able to reproduce.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::ImageBuffer):

8:07 AM Changeset in webkit [182417] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r181600 - AX: Crash viewing http://www.last.fm/
https://bugs.webkit.org/show_bug.cgi?id=142309

Reviewed by Chris Fleizach.

Source/WebCore:

The crash occurs when a not-yet-rendered object emits a children-changed
signal. If an assistive technology is listening, AT-SPI2 will attempt to
create and cache the state set for the child being added and the creation
of the state set assumes a rendered object.

Test: platform/gtk/accessibility/no-notification-for-unrendered-iframe-children.html

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::attachWrapper):

LayoutTests:

This test doesn't verify the absence of the crash because the crash seems
to require that an assistive technology is listening for events, and that
AT-SPI2 is caching the tree for that assistive technology -- something we
cannot count on being the case on our bots. (I suspect that the reason non-
assistive technology users of Epiphany were getting hit by this is because
Caribou was listening for events in the background, thus they were AT users
without realizing it. That Caribou issue is in theory now resolved.) What
this test does verify is the absence of children-changed:add accessibility
signals for non-rendered objects, which is the source of the crash given
the aforementioned environment.

  • platform/gtk/accessibility/no-notification-for-unrendered-iframe-children-expected.txt: Added.
  • platform/gtk/accessibility/no-notification-for-unrendered-iframe-children.html: Added.
8:06 AM Changeset in webkit [182416] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r181599 - ASSERT(m_plugin) on plugins/snapshotting/snapshot-plugin-not-quite-blocked-by-image.html
https://bugs.webkit.org/show_bug.cgi?id=142637

Reviewed by Dean Jackson.

  • WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::pluginSnapshotTimerFired):

m_plugin can be legitimately null.

8:05 AM Changeset in webkit [182415] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181565 - URLs visited during private browsing show up in WebpageIcons.db
rdar://problem/11254910 and https://bugs.webkit.org/show_bug.cgi?id=142733

Patch by Sam Weinig. Reviewed by Brady Eidson.

  • loader/icon/IconController.cpp:

(WebCore::IconController::startLoader): Bail early here if the page is using an ephemeral session.
(WebCore::IconController::continueLoadWithDecision): Instead of here.

8:03 AM Changeset in webkit [182414] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181449 - Stop using single-include headers that are only available since GStreamer >= 1.2.

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

Patch by Sebastian Dröge <sebastian@centricular.com> on 2015-03-12
Reviewed by Philippe Normand.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
  • platform/graphics/gstreamer/GStreamerUtilities.cpp:
  • platform/graphics/gstreamer/GStreamerUtilities.h:
  • platform/graphics/gstreamer/ImageGStreamer.h:

Instead of using single-include headers for the GStreamer libraries,
directly include the headers we need. The single-include headers were
only added in 1.2, and this would be the only reason why we would
depend on 1.2.

7:56 AM Changeset in webkit [182413] by Carlos Garcia Campos
  • 7 edits
    1 add in releases/WebKitGTK/webkit-2.6/Source

Merge r181305 - 8-bit version of weakCompareAndSwap() can cause an infinite loop.
https://webkit.org/b/142513>

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Added a test that exercises the 8-bit CAS from multiple threads. The threads
will contend to set bits in a large array of bytes using the CAS function.

  • API/tests/CompareAndSwapTest.cpp: Added.

(Bitmap::Bitmap):
(Bitmap::numBits):
(Bitmap::clearAll):
(Bitmap::concurrentTestAndSet):
(setBitThreadFunc):
(testCompareAndSwap):

  • API/tests/testapi.c:

(main):

Source/WTF:

Presently, Bitmap::concurrentTestAndSet() uses the 8-bit version of
weakCompareAndSwap() (which compares and swaps an uint8_t value).
Bitmap::concurrentTestAndSet() has a loop that checks if a bit in the
byte of interest has been set. If not, it will call the 8-bit CAS
function to set the bit.

Under the covers, for ARM, the 8-bit CAS function actually works with a
32-bit CAS. The 8-bit CAS will first fetch the 32-bit value in memory
that should contain the 8-bit value, and check if it contains the
expected byte. If the value in memory doesn't have the expected byte,
it will return early to its caller. The expectation is that the caller
will reload the byte from memory and call the 8-bit CAS again.

Unfortunately, this code path that returns early does not have a
compiler fence. Without a compiler fence, the C++ compiler can
optimize away the reloading of the expected byte value, leaving it
unchanged. As a result, we'll have a infinite loop here that checks a
value that will never change, and the loop will not terminate until the
value changes.

The fix is to eliminate the early return check in the 8-bit CAS, and
have it always call down to the 32-bit CAS. The 32-bit CAS has a
compiler fence which will prevent this issue.

  • wtf/Atomics.h:

(WTF::weakCompareAndSwap):

6:35 AM Changeset in webkit [182412] by Carlos Garcia Campos
  • 18 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r180772 - Use NeverDestroyed for JS wrapper owners.
<https://webkit.org/b/142090>

Reviewed by Chris Dumez.

Using NeverDestroyed puts these objects in BSS which is preferable
since that prevents them from pinning down entire malloc pages forever.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL.

  • bindings/scripts/test/JS/*: Rebaseline bindings tests for this change.
6:13 AM Changeset in webkit [182411] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r180767 - Use after free in WebCore::RenderNamedFlowFragment::restoreRegionObjectsOriginalStyle
https://bugs.webkit.org/show_bug.cgi?id=138366

Reviewed by Dave Hyatt.

This patch ensures that we clean up RenderNamedFlowFragment::m_renderObjectRegionStyle when embedded flow content is getting destroyed.

In m_renderObjectRegionStyle hash map, we store style information about the named flow's descendant children.
When a child is being detached from the tree, it removes itself from this hashmap.
We do it by traversing up on the ancestor chain and call removeFlowChildInfo() on the parent flow.
However in case of embedded flows (for example multicolumn content inside a region), we need to check whether the parent flow
is inside a flow too and continue the cleanup accordingly.

Source/WebCore:

Test: fast/regions/region-with-multicolumn-embedded-crash.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::removeFromRenderFlowThreadIncludingDescendants):

LayoutTests:

  • fast/regions/region-with-multicolumn-embedded-crash-expected.txt: Added.
  • fast/regions/region-with-multicolumn-embedded-crash.html: Added.
5:54 AM Changeset in webkit [182410] by Carlos Garcia Campos
  • 2 edits
    1 add in releases/WebKitGTK/webkit-2.6/Source/JavaScriptCore

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

Reviewed by Benjamin Poulain.

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

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • tests/stress/regress-141883.js: Added. Hacked the original test to be faster while still crashing before this fix.
5:47 AM Changeset in webkit [182409] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

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

Reviewed by Žan Doberšek.

Invoke languageChanged only if the language code actually
changed.

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):

5:45 AM Changeset in webkit [182408] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6

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

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

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

  • Source/cmake/OptionsGTK.cmake:
5:42 AM Changeset in webkit [182407] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WTF

Merge r180434 - RunLoop::dispatch() should drop the mutex before calling wakeUp().
https://bugs.webkit.org/show_bug.cgi?id=141820

Reviewed by Alexey Proskuryakov.

RunLoop::wakeUp() calls into CoreFoundation which could take time,
so scope the mutex just to protect m_functionQueue.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::dispatch):

5:40 AM Changeset in webkit [182406] by Yusuke Suzuki
  • 28 edits in trunk/Source

Return Optional<uint32_t> from PropertyName::asIndex
https://bugs.webkit.org/show_bug.cgi?id=143422

Reviewed by Darin Adler.

Source/JavaScriptCore:

PropertyName::asIndex returns uint32_t and use UINT_MAX as NotAnIndex.
But it's not obvious to callers.

This patch changes

  1. PropertyName::asIndex() to return Optional<uint32_t> and
  2. function name asIndex() to parseIndex().

It forces callers to check the value is index or not explicitly.

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFor):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFor):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDirectPutById):

  • jit/Repatch.cpp:

(JSC::emitPutTransitionStubAndGetOldStructure):

  • jsc.cpp:
  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncSort):

  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::getOwnPropertySlot):
(JSC::GenericArguments<Type>::put):
(JSC::GenericArguments<Type>::deleteProperty):
(JSC::GenericArguments<Type>::defineOwnProperty):

  • runtime/Identifier.h:

(JSC::parseIndex):
(JSC::Identifier::isSymbol):

  • runtime/JSArray.cpp:

(JSC::JSArray::defineOwnProperty):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlot):
(JSC::JSGenericTypedArrayView<Adaptor>::put):
(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):

  • runtime/JSObject.cpp:

(JSC::JSObject::put):
(JSC::JSObject::putDirectAccessor):
(JSC::JSObject::putDirectCustomAccessor):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::putDirectMayBeIndex):
(JSC::JSObject::defineOwnProperty):

  • runtime/JSObject.h:

(JSC::JSObject::getOwnPropertySlot):
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::putDirectInternal):

  • runtime/JSString.cpp:

(JSC::JSString::getStringPropertyDescriptor):

  • runtime/JSString.h:

(JSC::JSString::getStringPropertySlot):

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::parse):

  • runtime/PropertyName.h:

(JSC::parseIndex):
(JSC::toUInt32FromCharacters): Deleted.
(JSC::toUInt32FromStringImpl): Deleted.
(JSC::PropertyName::asIndex): Deleted.

  • runtime/PropertyNameArray.cpp:

(JSC::PropertyNameArray::add):

  • runtime/StringObject.cpp:

(JSC::StringObject::deleteProperty):

  • runtime/Structure.cpp:

(JSC::Structure::prototypeChainMayInterceptStoreTo):

Source/WebCore:

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):

  • bindings/js/JSHTMLAllCollectionCustom.cpp:

(WebCore::callHTMLAllCollection):
(WebCore::JSHTMLAllCollection::item):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlotBody):
(GenerateImplementation):

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

(WebCore::JSFloat64Array::getOwnPropertySlot):
(WebCore::JSFloat64Array::getOwnPropertyDescriptor):
(WebCore::JSFloat64Array::put):

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

(WebCore::JSTestEventTarget::getOwnPropertySlot):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::getOwnPropertySlot):
(JSC::RuntimeArray::put):

5:38 AM Changeset in webkit [182405] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.6

Merge r180328 - REGRESSION(r174761) Dangling spanner pointer in RenderMultiColumnSpannerPlaceholder.
https://bugs.webkit.org/show_bug.cgi?id=138224

Reviewed by Dave Hyatt.

It's wrong to call flowThreadRelativeWillBeRemoved(child).
RenderMultiColumnFlowThread::removeFlowChildInfo() does not mean that the child is actually about to be removed.
Should this introduce any regressions, we need to deal with those separately.

Source/WebCore:

Test: fast/multicol/crash-when-spanner-gets-moved-around.html

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::removeFlowChildInfo): Deleted.

  • rendering/RenderMultiColumnFlowThread.h:

LayoutTests:

  • fast/multicol/crash-when-spanner-gets-moved-around-expected.txt: Added.
  • fast/multicol/crash-when-spanner-gets-moved-around.html: Added.
5:33 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
5:33 AM Changeset in webkit [182404] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r180928 - [SOUP] Use SoupMessage::starting instead of SoupSession::request-started
https://bugs.webkit.org/show_bug.cgi?id=142164

Reviewed by Sergio Villar Senin.

SoupSession::request-started is deprecated in libsoup 2.50. Both
signals are equivalent, but SoupMessage::starting is also emitted
for resources loaded from the disk cache. This fixes web timing
calculations for cached resources, since we were not initializing
m_requestStart.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::startingCallback):
(WebCore::createSoupMessageForHandleAndRequest):

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):

5:30 AM Changeset in webkit [182403] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r180997 - [GStreamer] the GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED should be wrapped by a ifdef
https://bugs.webkit.org/show_bug.cgi?id=142274

Patch by Philippe Normand <pnormand@igalia.com> on 2015-03-04
Reviewed by Carlos Garcia Campos.

Don't handle scheduling queries if building against versions of
GStreamer older than 1.2.0.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcQueryWithParent):

5:29 AM Changeset in webkit [182402] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r180141 - [GTK] Loading page into WebView shows g_closure_unref warning
https://bugs.webkit.org/show_bug.cgi?id=127474

Patch by Milan Crha <mcrha@redhat.com> on 2015-02-16
Reviewed by Carlos Garcia Campos.

  • bindings/gobject/GObjectEventListener.cpp:

(WebCore::GObjectEventListener::gobjectDestroyed):

5:27 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
5:20 AM Changeset in webkit [182401] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181074 - [SOUP] Check TLS errors as soon as they are set in the SoupMessage
https://bugs.webkit.org/show_bug.cgi?id=142244

Reviewed by Sergio Villar Senin.

Source/WebCore:

Connect to the notify::tls-errors signal of SoupMessage to cancel
the load earlier in case of TLS failure, preventing any private
data from being sent to the server before the TLS errors are checked.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::tlsErrorsChangedCallback):
(WebCore::gotHeadersCallback):
(WebCore::createSoupMessageForHandleAndRequest):

5:15 AM Changeset in webkit [182400] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Tools

Merge r181159 - [GTK] Test /webkit2/WebKitWebView/sync-request-on-max-conns might fail after finished
https://bugs.webkit.org/show_bug.cgi?id=142385

Reviewed by Sergio Villar Senin.

Use stack allocated GMainLoopSources to make sure they are
cancelled automatically if the test finishes before they have
been processed.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:

(testWebViewSyncRequestOnMaxConns):

5:14 AM Changeset in webkit [182399] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6

Merge r180927 - [SOUP] Synchronous XMLHttpRequests can time out when we reach the max connections limit
https://bugs.webkit.org/show_bug.cgi?id=141508

Reviewed by Sergio Villar Senin.

Source/WebCore:

Use SOUP_MESSAGE_IGNORE_CONNECTION_LIMITS flag when loading a
synchronous message instead of increasing the maximum number of
connections allowed if the soup version is recent enough.
The current solution of increasing/decreasing the limits doesn't
always work, because connections are not marked as IDLE in libsoup
until the message is unqueued, but we don't wait for the message
to be unqueued to finish our loads in WebKit, we finish them as
soon as we have finished reading the stream. This causes that
synchronous loads keep blocked in the nested main loop until the
timeout of 10 seconds is fired and the load fails.
Also marked WebCoreSynchronousLoader class as final, the virtual
methods as override and removed the unsused method isSynchronousClient.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::createSoupMessageForHandleAndRequest):
(WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
(WebCore::WebCoreSynchronousLoader::isSynchronousClient): Deleted.
(WebCore::WebCoreSynchronousLoader::didReceiveResponse):
(WebCore::WebCoreSynchronousLoader::didReceiveData):
(WebCore::WebCoreSynchronousLoader::didReceiveBuffer):
(WebCore::WebCoreSynchronousLoader::didFinishLoading):
(WebCore::WebCoreSynchronousLoader::didFail):
(WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
(WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage):

Tools:

Add a unit test to check that synchronous XHRs load even if the
maximum connection limits are reached.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:

(testWebViewSyncRequestOnMaxConns):
(serverCallback):
(beforeAll):

  • gtk/jhbuild.modules: Bump libsoup version to 2.49.91.
5:11 AM Changeset in webkit [182398] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6

Merge r180565 - Crash loading local file with WebPageProxy::loadAlternateHTMLString
https://bugs.webkit.org/show_bug.cgi?id=141867

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-02-24
Reviewed by Anders Carlsson.

Source/WebKit2:

WebPageProxy::loadAlternateHTMLString needs to assume read access to unreachableURL as well
as baseURL, because unreachableURL will get added to the back/forward list, causing us to
crash later on when we notice the unexpected URL received in checkURLReceivedFromWebProcess.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString):

Tools:

  • TestWebKitAPI/Tests/WebKit2/LoadAlternateHTMLStringWithNonDirectoryURL.cpp:

(TestWebKitAPI::loadAlternateHTMLString): Split most of this test into a function so it can
be shared with the new test.
(TestWebKitAPI::TEST): Add a cross-platform test for this crash.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp: Add a GTK+ test for this crash.

(testLoadAlternateHTMLForLocalPage):
(beforeAll):

5:08 AM Changeset in webkit [182397] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181643 - [GTK] Wrong transfer annotations used in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=142780

Reviewed by Gustavo Noronha Silva.

We are using transfer none for all methods returning a GObject DOM
Object. That's not true. Only objects derived from Node are
automatically released by the DOM object cache and can be transfer
none. All other objects are added to the cache only to avoid
creating the same wrapper twice for the same core object, but
caller should release the returned reference.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GetTransferTypeForReturnType):
(GenerateFunction):

5:03 AM Changeset in webkit [182396] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6

Merge r181631 - [GTK] WebKitDOM objects leaking
https://bugs.webkit.org/show_bug.cgi?id=118788

Reviewed by Darin Adler and Sergio Villar Senin.

Source/WebCore:

Use a DOMwindowObserver class, derived from DOMWindowProperty to
be notified when the window object is detached from the frame to
clear the DOM objects associated to that frame in that case too.

  • bindings/gobject/DOMObjectCache.cpp:

Tools:

Update DOMObjectCache unit test to check that DOM objects are also
released when new contents are loaded in the web view, and the old
document is detached from the frame.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp:

(testWebKitDOMObjectCache):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:

(runTest):

5:00 AM Changeset in webkit [182395] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Tools

Merge r180215 - Unreviewed. Fix /webkit2/WebKitDOMNode/dom-cache after r180214.

I forgot to add the return of a bool function.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:

(WebKitDOMNodeTest::testDOMCache):

4:59 AM Changeset in webkit [182394] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.6

Merge r180214 - [GTK] GObject DOM bindings object are cached forever
https://bugs.webkit.org/show_bug.cgi?id=141558

Reviewed by Sergio Villar Senin.

Source/WebCore:

Rework the DOMObjectCache to avoid having to manually clear the
objects when the frame is destroyed, using a FrameDestructionObserver
instead. When a new object associated to a Frame is added to the
cache, a FrameDestructionObserver is created for the frame if
needed, and the DOM object is tracked by the observer too. When
the frame is detached from the page all its objects are cleared,
and if the aren't additional references, the object is finalized
and removed from the cache normally.
This patch also simplifies and modernizes the code to make it
easier to read an maintain.

  • bindings/gobject/DOMObjectCache.cpp:

(WebKit::DOMObjectCacheData::DOMObjectCacheData): Add constructor
to initialize its members and simplify the callers.
(WebKit::DOMObjectCacheData::clearObject): Remove the references
added by the cache, ensuring the GObject is not finalized until
the method returns.
(WebKit::DOMObjectCacheData::refObject): Adds a reference owned by
the cache.
(WebKit::domObjectCacheFrameObservers): Map a frame to a FrameDestructionObserver.
(WebKit::getOrCreateDOMObjectCacheFrameObserver): Create a new
FrameDestructionObserver for the given Frame or return the
existing one.
(WebKit::domObjects): Map wrapped object to wrapper object.
(WebKit::DOMObjectCache::forget): Remove the wrapped object from
the cache.
(WebKit::DOMObjectCache::get): Return the wrapped object if it is
in the cache, increasing the cache references.
(WebKit::DOMObjectCache::put): Add the wrapper object to the cache
for the given wrapped object. If it's a Node and has a frame add
the node to the FrameDestructionObserver corresponding to the frame.
(WebKit::getFrameFromHandle): Deleted.
(WebKit::weakRefNotify): Deleted.
(WebKit::DOMObjectCache::clearByFrame): Deleted.
(WebKit::DOMObjectCache::~DOMObjectCache): Deleted.

  • bindings/gobject/DOMObjectCache.h:

Tools:

Add checks for all DOM objects to ensure they are not leaked. Also
add a dedicated test for the DOM Object Cache.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp:

(WebKitDOMNodeFilterTest::testTreeWalker):
(WebKitDOMNodeFilterTest::testNodeIterator):

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:

(WebKitDOMNodeTest::testHierarchyNavigation):
(WebKitDOMNodeTest::testInsertion):
(WebKitDOMNodeTest::testTagNames):
(WebKitDOMNodeTest::testDOMCache):
(registerTests):

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMXPathNSResolverTest.cpp:

(WebKitDOMXPathNSResolverTest::evaluateFooChildTextAndCheckResult):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverNative):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverCustom):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp:

(testWebKitDOMObjectCache):
(beforeAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:

(documentLoadedCallback):

4:06 AM Changeset in webkit [182393] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.6

Merge r180211 - [GTK] WebKitFrame objects are never released
https://bugs.webkit.org/show_bug.cgi?id=141641

Reviewed by Martin Robinson.

Source/WebKit2:

Use a FrameDestructionObserver derived class to wrap our
WebKitFrame objects and delete them when the frame is destroyed,
instead of using willDestroyFrame callback of WKBundlePageLoaderClient
that has never worked.

  • WebProcess/InjectedBundle/API/gtk/WebKitFrame.cpp:

(webkitFrameGetWebFrame):

  • WebProcess/InjectedBundle/API/gtk/WebKitFramePrivate.h:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

(webkitFrameGetOrCreate):
(webkitFrameDestroy):
(webkitWebPageCreate):
(willDestroyFrame): Deleted.

Tools:

Add a way to check GObjects leaks for WebProcess tests and check
WebKitFrame objects are not leaked.

  • TestWebKitAPI/Tests/WebKit2Gtk/FrameTest.cpp:

(WebKitFrameTest::testMainFrame):
(WebKitFrameTest::testURI):
(WebKitFrameTest::testJavaScriptContext):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:

(WebProcessTest::assertObjectIsDeletedWhenTestFinishes):
(runTest):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h:
4:03 AM Changeset in webkit [182392] by Carlos Garcia Campos
  • 14 edits
    2 deletes in releases/WebKitGTK/webkit-2.6/Tools

Merge r176563 - [GTK] Use custom JavaScript instead of DBus to implement WebProcess tests
https://bugs.webkit.org/show_bug.cgi?id=138834

Reviewed by Sergio Villar Senin.

It makes everyting simpler and the tests run faster too, since we
don't need to spawn the private bus and wait until the DBus name
is registered. The web extension registers a new JavaSCript class
with a status method to run the tests, similar to the DBus
method. In the UI process side, tests use webkit_web_view_run_java_script()
instead of sending a DBus message.

  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp:

(WebKitDOMNodeFilterTest::create):
(WebKitDOMNodeFilterTest::testTreeWalker):
(WebKitDOMNodeFilterTest::testNodeIterator):
(WebKitDOMNodeFilterTest::webPageFromArgs): Deleted.
(WebKitDOMNodeFilterTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:

(WebKitDOMNodeTest::create):
(WebKitDOMNodeTest::testHierarchyNavigation):
(WebKitDOMNodeTest::testInsertion):
(WebKitDOMNodeTest::testTagNames):
(WebKitDOMNodeTest::webPageFromArgs): Deleted.
(WebKitDOMNodeTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/DOMXPathNSResolverTest.cpp:

(WebKitDOMXPathNSResolverTest::create):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverNative):
(WebKitDOMXPathNSResolverTest::testXPathNSResolverCustom):
(WebKitDOMXPathNSResolverTest::webPageFromArgs): Deleted.
(WebKitDOMXPathNSResolverTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/FrameTest.cpp:

(WebKitFrameTest::create):
(WebKitFrameTest::testMainFrame):
(WebKitFrameTest::testURI):
(WebKitFrameTest::testJavaScriptContext):
(WebKitFrameTest::webPageFromArgs): Deleted.
(WebKitFrameTest::runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp:

(testWebKitDOMNodeHierarchyNavigation):
(testWebKitDOMNodeInsertion):
(testWebKitDOMNodeTagNames):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNodeFilter.cpp:

(runTest):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDOMXPathNSResolver.cpp:

(testWebKitDOMXPathNSResolverNative):
(testWebKitDOMXPathNSResolverCustom):
(beforeAll):
(afterAll):
(runTest): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestFrame.cpp:

(webkitFrameTestRun):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:

(testsMap):
(WebProcessTest::add):
(WebProcessTest::create):
(runTest):
(windowObjectClearedCallback):
(webkit_web_extension_initialize):
(methodCallCallback): Deleted.
(webkit_web_extension_initialize_with_user_data): Deleted.

  • TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h:
  • TestWebKitAPI/gtk/WebKit2Gtk/WebProcessTestRunner.cpp: Removed.
  • TestWebKitAPI/gtk/WebKit2Gtk/WebProcessTestRunner.h: Removed.
  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::runWebProcessTest):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
3:06 AM Changeset in webkit [182391] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.6/Tools

Merge r179248 - [GTK] Unit test /webkit2/WebKitWebView/page-visibility from WebKit2Gtk/TestWebKitWebView fails
https://bugs.webkit.org/show_bug.cgi?id=131731

Reviewed by Žan Doberšek.

A web page loaded offscreen is in prerender state not hidden.

  • Scripts/run-gtk-tests:

(TestRunner): Unskip /webkit2/WebKitWebView/page-visibility.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewPageVisibility):

3:02 AM Changeset in webkit [182390] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6/Tools

Merge r178644 - [GTK] [WK2] TestWebKitWebView snapshot fails
https://bugs.webkit.org/show_bug.cgi?id=120404

Reviewed by Žan Doberšek.

Rework the test to make sure the snapshot is always created at the
desired size.

  • Scripts/run-gtk-tests:

(TestRunner): Unskip /webkit2/WebKitWebView/snapshot.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewSnapshot): Use a fixed size for the document, and
disable scrollbars to make sure the visible area is always the
WebView size.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::showInWindowAndWaitUntilMapped): Add optional width
and height parameters to create the window with a given size.

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:
2:56 AM Changeset in webkit [182389] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6/Source

Merge r179397 - [GTK] Resize the redirected XComposite again after leaving accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=140935

Reviewed by Sergio Villar Senin.

Since r178414 we don't resize the redirected XComposite window
until we enter accelerated compositing mode, but after leaving it
the redirected window keeps its size. We should resize it to 1x1
again and free the XPixmap and cairo surface to save that memory
while not in accelerated compositing mode.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::enterAcceleratedCompositingMode): Notify
the WebKitWebViewBase.
(WebKit::PageClientImpl::exitAcceleratedCompositingMode): Ditto.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseEnterAcceleratedCompositingMode): Resize the
XComposite window to the current drawing area size.
(webkitWebViewBaseExitAcceleratedCompositingMode): Resize the
XComposite window to and empty size.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
Do not initialize m_size since we now handle the empty size as a
especial case. Make sure we always create the X window with at
least 1x1 size.
(WebKit::RedirectedXCompositeWindow::resize): Resize the window to
at least 1x1, but when en empty size is given, call
cleanupPixmapAndPixmapSurface() to release those resources.
(WebKit::RedirectedXCompositeWindow::surface): Create the cairo
surface with at least 1x1 size.

2:55 AM Changeset in webkit [182388] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

[WK2] API::Array::copy() should move the resulting Vector<> of copies into the Array::create() call
https://bugs.webkit.org/show_bug.cgi?id=143413

Reviewed by Darin Adler.

Move the Vector<> object containing the copied elements into the Array::create()
call, avoiding copying all the elements again.

While here, change the Vector<> parameters for Array::create() and the Array
constructor to rvalue references. This will ensure that the passed-in object
is moved into the Array::create() call if possible, or explicitly copied
otherwise. The constructor is moved into the header for inlining opportunities
and the unnecessary parameter in the create(Vector<>&&) method declaration
removed.

  • Shared/API/APIArray.cpp:

(API::Array::create):
(API::Array::copy):
(API::Array::Array): Deleted.

  • Shared/API/APIArray.h:
2:39 AM Changeset in webkit [182387] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Merge r179744 - ASSERTION FAILED: !m_adoptionIsRequired in WTF::RefCountedBase::ref
https://bugs.webkit.org/show_bug.cgi?id=141035

Reviewed by Sergio Villar Senin.

Rename PrinterListGtk::singleton() as PrinterListGtk::getOrCreate(), and
make it return nullptr when the shared PrinterListGtk object is
still being created. This can happen if the nested loop used by
gtk_enumerate_printers dispatches a GSource that starts a new
synchronous print operation. In that case we just ignore the
second print operation, since there's already one ongoing.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::print): Return early if
PrinterListGtk::getOrCreate() return nullptr.

  • WebProcess/WebPage/gtk/PrinterListGtk.cpp:

(WebKit::PrinterListGtk::getOrCreate): Return nullptr if the
PrinterListGtk is still enumerating the printers.
(WebKit::PrinterListGtk::PrinterListGtk): Initialize
m_enumeratingPrinters to true before calling
gtk_enumerate_printers, and to false once it finishes.
(WebKit::PrinterListGtk::singleton): Deleted.
(WebKit::PrinterListGtk::enumeratePrintersFunction): Deleted.

  • WebProcess/WebPage/gtk/PrinterListGtk.h:
  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Add an

assertion here since PrinterListGtk::getOrCreate() should never
return nullptr at this point.

2:06 AM Changeset in webkit [182386] by youenn.fablet@crf.canon.fr
  • 7 edits
    1 add
    1 delete in trunk

W3C test importer should generate the modules installed dynamically to run wpt tests
https://bugs.webkit.org/show_bug.cgi?id=142738

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Renamed WPTModules to web-platform-test-modules.json
Updated TestRepositories to ask the importer to generate web-platform-test-modules.json at import time.

  • resources/TestRepositories:
  • resources/WPTModules: Removed.
  • resources/web-platform-tests-modules.json: Added.

Tools:

The test importer can now generate the submodules description file based on information extracted from the corresponding git repository.
The implementation is done within TestDownloader and it is activated for the WPT repository.
LayoutTests/imported/w3c/resources/WPTModules is renamed as LayoutTests/imported/w3c/resources/web-platform-tests-modules.json for that reason.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._install_modules): Updated to cope with path as array.

  • Scripts/webkitpy/w3c/test_downloader.py:

(TestDownloader._git_submodules_status): Added so that it can be overriden for unit tests.
(TestDownloader):
(TestDownloader._git_submodules_description): Computes submodule description.
(TestDownloader.generate_git_submodules_description): Write submodule description in a file.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.do_import): Added the possibility to post process the tests.
(TestImporter):
(TestImporter.generate_git_submodules_description_for_all_repositories): Enable generating module description file.
(TestImporter.should_convert_test_harness_links): Updated according new options format.

  • Scripts/webkitpy/w3c/test_importer_unittest.py:

(TestImporterTest.import_downloaded_tests): Making use of TestDownloaderMock.
(TestImporterTest.import_downloaded_tests.TestDownloaderMock): Added to override submodule status gathering.
(TestImporterTest.import_downloaded_tests.TestDownloaderMock.init):
(TestImporterTest.import_downloaded_tests.TestDownloaderMock._git_submodules_status):
(TestImporterTest.test_submodules_generation): Added to check that modules description files works.

2:01 AM Changeset in webkit [182385] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebCore

Merge r181744 - [GTK] Scrollbars look bad with GTK+ 3.16
https://bugs.webkit.org/show_bug.cgi?id=140800

Reviewed by Sergio Villar Senin.

Take margin into account when rendering scrollbars. This fixes the
huge scrollbars rendered with GTK+ 3.16. We don't need to check
the GTK+ version because in previous versions the marging were 0,
so the same code just works.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::adjustRectAccordingToMargin):
(WebCore::ScrollbarThemeGtk::paintTrackBackground):
(WebCore::ScrollbarThemeGtk::paintThumb):

1:43 AM Changeset in webkit [182384] by Carlos Garcia Campos
  • 6 edits
    2 deletes in releases/WebKitGTK/webkit-2.6/Source

Merge r182175 - [GTK] DnD icon/widget has odd background
https://bugs.webkit.org/show_bug.cgi?id=143217

Reviewed by Martin Robinson.

Source/WebCore:

Remove DragIcon class since it's no longer needed with GTK+3 and
the GTK+2 code there is unused. GTK+ knows what to do with a cairo
surface, I guess we migrated the GTK+2 code to GTK+3 without
realizing that using the surface was enough.

  • PlatformGTK.cmake:
  • platform/gtk/DragIcon.cpp: Removed.
  • platform/gtk/DragIcon.h: Removed.

Source/WebKit2:

Use gtk_drag_set_icon_surface() to set the drag icon image,
instead of DragIcon class.

  • UIProcess/API/gtk/WebKitWebView.cpp:
  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::startDrag):

  • UIProcess/gtk/DragAndDropHandler.h:
1:37 AM Changeset in webkit [182383] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.6/Source/WebKit2

Unreviewed. Fix typo in API doc comment.

  • UIProcess/API/gtk/WebKitUserContent.cpp:
1:34 AM Changeset in webkit [182382] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.6/Source

Merge r179866 - [GTK] GMutexLocker build issue
https://bugs.webkit.org/show_bug.cgi?id=141381

Reviewed by Žan Doberšek.

Source/WebCore:

Use always WTF::GMutexLocker because newer glib versions have a
GMutexLocker in the public API.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::paint):

  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(webkitVideoSinkTimeoutCallback):
(webkitVideoSinkRender):
(unlockSampleMutex):
(webkitVideoSinkUnlockStop):
(webkitVideoSinkStart):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcGetProperty):
(webKitWebSrcStop):
(webKitWebSrcStart):
(webKitWebSrcChangeState):
(webKitWebSrcQueryWithParent):
(webKitWebSrcGetUri):
(webKitWebSrcSetUri):
(webKitWebSrcNeedDataMainCb):
(webKitWebSrcNeedDataCb):
(webKitWebSrcEnoughDataMainCb):
(webKitWebSrcEnoughDataCb):
(webKitWebSrcSeekDataCb):
(webKitWebSrcSetMediaPlayer):
(StreamingClient::createReadBuffer):
(StreamingClient::handleResponseReceived):
(StreamingClient::handleDataReceived):
(StreamingClient::handleNotifyFinished):
(ResourceHandleStreamingClient::wasBlocked):
(ResourceHandleStreamingClient::cannotShowURL):

Source/WTF:

Remove using WTF::GMutexLocker from the header, since newer glib
versions have a GMutexLocker in the public API.

  • wtf/gobject/GMutexLocker.h:
12:51 AM Changeset in webkit [182381] by Carlos Garcia Campos
  • 10 edits
    2 moves in releases/WebKitGTK/webkit-2.6

Merge r179111 - [GTK] gtkdoc does not appear in DevHelp
https://bugs.webkit.org/show_bug.cgi?id=139369

.:

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-01-26
Reviewed by Philippe Normand.

Expect the gtkdoc to be generated in folders named with the API version.

  • Source/PlatformGTK.cmake:

Source/WebCore:

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-01-26
Reviewed by Philippe Normand.

  • PlatformGTK.cmake: Include the API version in the gtkdoc filenames.

Source/WebKit2:

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-01-26
Reviewed by Philippe Normand.

  • PlatformGTK.cmake: Include the API version in the gtkdoc filenames.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Renamed from Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Renamed from Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk.types.

Tools:

Patch by Michael Catanzaro <Michael Catanzaro> and Carlos Garcia Campos <cgarcia@igalia.com> on 2015-01-26
Reviewed by Philippe Normand.

  • gtk/generate-gtkdoc: Create the generators in the main function

and use them to get the local cross renference dependencies. Also
pass the generator module name to webkitdom.write_doc_files().
(get_gtkdoc_module_paths): Receive a list of local cross reference
dependencies.
(get_generator_for_config): Set the main_sgml_file property of the
GtkDoc object from the configuration file.
(generate_documentation): Generate the documentation for the given
generator.
(generate_documentation_for_config): Deleted.

  • gtk/manifest.txt.in: Expect the API version in the gtkdoc filenames.
  • gtk/webkitdom.py:

(write_doc_files): Receive the module name used to build the
-sections.txt filename.

12:46 AM Changeset in webkit [182380] by Carlos Garcia Campos
  • 4 edits
    1 move in releases/WebKitGTK/webkit-2.6

Merge r178672 - [GTK] Generate the make dist manifest from a CMake template file
https://bugs.webkit.org/show_bug.cgi?id=139387

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-01-19
Reviewed by Martin Robinson.

.:

Generate manifest.txt from manifest.txt.in. Only expose the dist and
distcheck targets for developer builds, as they won't work when
building from a tarball because the manifest is not distributed.

  • Source/PlatformGTK.cmake:

Tools:

Remove the code that performs variable substitution on manifest.txt.
Replace the custom variables used in that file with CMake variables.

  • gtk/make-dist.py:

(Manifest.add_directory):
(Manifest.get_full_source_path):
(Manifest.process_line):
(Manifest.resolve_variables): Deleted.
(Manifest.get_full_tarball_path): Deleted.

  • gtk/manifest.txt.in: Renamed from Tools/gtk/manifest.txt.
12:39 AM WebKitGTK/2.6.x edited by Carlos Garcia Campos
(diff)
12:22 AM Changeset in webkit [182379] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

FileList constructor should move the passed-in Vector<> rvalue reference into the member variable
https://bugs.webkit.org/show_bug.cgi?id=143412

Reviewed by Darin Adler.

  • fileapi/FileList.h:

(WebCore::FileList::FileList): An explicit move of the passed-in rvalue
reference into the member variable is required, otherwise a copy is
performed since an rvalue reference is just an lvalue.

12:21 AM Changeset in webkit [182378] by zandobersek@gmail.com
  • 5 edits in trunk/Source

Source/WebCore:
UserScript, UserStyleSheet constructors should take in Vector<String> rvalue references
https://bugs.webkit.org/show_bug.cgi?id=143411

Reviewed by Darin Adler.

Have the UserScript and UserStyleSheet constructors take in Vector<String>
rvalue references for the whitelist and blacklist parameters. Both classes
store these Vector<String> objects, so the referenced objects can simply be
moved into the member variable.

Because the constructor is now demanding an rvalue, it's up to the caller
to move in the desired object if possible, or create an explicit copy
otherwise.

  • page/UserScript.h:

(WebCore::UserScript::UserScript):

  • page/UserStyleSheet.h:

(WebCore::UserStyleSheet::UserStyleSheet):

Source/WebKit2:
UserScript, UserStyleSheet constructors should take in Vector<String> rvalues
https://bugs.webkit.org/show_bug.cgi?id=143411

Reviewed by Darin Adler.

Move the whitelist and blacklist Vector<String> objects into the
UserScript and UserStyleSheet constructors in ArgumentCoder<T>::decode
functions.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<UserStyleSheet>::decode):
(IPC::ArgumentCoder<UserScript>::decode):

Note: See TracTimeline for information about the timeline view.