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

Timeline



Dec 8, 2013:

11:46 PM Changeset in webkit [160301] by ryuan.choi@samsung.com
  • 6 edits
    1 delete in trunk/Source/WebKit2

[EFL][WK2] Move FullScreenManager logic to WebViewEfl
https://bugs.webkit.org/show_bug.cgi?id=125438

Reviewed by Gyuyoung Kim.

This patch fixed build break on EFL port Since r160296.

  • PlatformEfl.cmake: Removed WebFullScreenManagerProxyEfl.cpp.
  • UIProcess/WebFullScreenManagerProxy.cpp: Removed EFL specific code.

(WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy):

  • UIProcess/WebFullScreenManagerProxy.h: Ditto.
  • UIProcess/efl/WebFullScreenManagerProxyEfl.cpp: Removed file and moved logic to WebViewEfl.
  • UIProcess/efl/WebViewEfl.cpp:

(WebKit::WebViewEfl::WebViewEfl):
(WebKit::WebViewEfl::setEwkView): Removed call to setWebView().
(WebKit::WebViewEfl::fullScreenManagerProxyClient):
(WebKit::WebViewEfl::isFullScreen):
(WebKit::WebViewEfl::enterFullScreen):
(WebKit::WebViewEfl::exitFullScreen):

  • UIProcess/efl/WebViewEfl.h:
9:44 PM Changeset in webkit [160300] by weinig@apple.com
  • 4 edits in trunk/Source/WebKit2

Remove WebContext::sharedProcessContext()
https://bugs.webkit.org/show_bug.cgi?id=125437

Reviewed by Dan Bernstein.

  • UIProcess/API/ios/WKGeolocationProviderIOS.mm:
  • UIProcess/WebContext.cpp:
  • UIProcess/WebContext.h:
9:13 PM Changeset in webkit [160299] by rniwa@webkit.org
  • 5 edits in trunk

getComputedStyle border-radius shorthand omits vertical radius information
https://bugs.webkit.org/show_bug.cgi?id=125394

Reviewed by Andreas Kling.

Source/WebCore:

Merge https://chromium.googlesource.com/chromium/blink/+/4c2866855dddbb28bb7d978ad627acc368af23d0

getComputedStyle of border-radius shows the vertical radius components if they differ from their horizontal counterpants.
We were incorrectly detecting this case and over simplifying the results of getComputedStyle.
This patch ensures we only hide the vertical values if they are identical to the horizontal values.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::getBorderRadiusShorthandValue):

LayoutTests:

  • fast/css/getComputedStyle/getComputedStyle-border-radius-shorthand-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-border-radius-shorthand.html:
8:51 PM Changeset in webkit [160298] by weinig@apple.com
  • 3 edits in trunk/Tools

32-bit MiniBrowser doesn't build
https://bugs.webkit.org/show_bug.cgi?id=125420

Reviewed by Dan Bernstein.

  • MiniBrowser/mac/AppDelegate.h:
  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate init]):
(-[BrowserAppDelegate applicationWillTerminate:]):

8:23 PM Changeset in webkit [160297] by weinig@apple.com
  • 3 edits
    1 delete in trunk/Source/WebKit2

Fix the iOS build.

  • UIProcess/API/ios/PageClientImplIOS.h:
  • UIProcess/API/ios/PageClientImplIOS.mm:
  • UIProcess/ios/WebFullScreenManagerProxyIOS.mm: Removed.
8:11 PM Changeset in webkit [160296] by weinig@apple.com
  • 11 edits
    1 delete in trunk/Source/WebKit2

[Cocoa] Remove knowledge of the WKView from the WebFullScreenManagerProxy by adding a proper client
https://bugs.webkit.org/show_bug.cgi?id=125427

Reviewed by Dan Bernstein.

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

(WebKit::PageClientImpl::fullScreenManagerProxyClient):
(WebKit::PageClientImpl::closeFullScreenManager):
(WebKit::PageClientImpl::isFullScreen):
(WebKit::PageClientImpl::enterFullScreen):
(WebKit::PageClientImpl::exitFullScreen):
(WebKit::PageClientImpl::beganEnterFullScreen):
(WebKit::PageClientImpl::beganExitFullScreen):
Implement the new client.

  • UIProcess/API/mac/WKView.mm:

Remove call to setWebView() and do some cleanup.

  • UIProcess/API/mac/WKViewInternal.h:

Convert to property syntax and re-arrange.

  • UIProcess/PageClient.h:

Expose access to the new client.

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::create):
(WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy):
(WebKit::WebFullScreenManagerProxy::invalidate):
(WebKit::WebFullScreenManagerProxy::close):
(WebKit::WebFullScreenManagerProxy::isFullScreen):
(WebKit::WebFullScreenManagerProxy::enterFullScreen):
(WebKit::WebFullScreenManagerProxy::exitFullScreen):
(WebKit::WebFullScreenManagerProxy::beganEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::beganExitFullScreen):

  • UIProcess/WebFullScreenManagerProxy.h:

Use the new client.

  • UIProcess/WebPageProxy.cpp:

Pass the new client.

  • UIProcess/mac/WebFullScreenManagerProxyMac.mm:

Removed. Now goes through the client.

  • WebKit2.xcodeproj/project.pbxproj:

Remove WebFullScreenManagerProxyMac.mm.

5:08 PM Changeset in webkit [160295] by fpizlo@apple.com
  • 17 edits in trunk/Source/JavaScriptCore

Add the notion of ConstantStoragePointer to DFG IR
https://bugs.webkit.org/show_bug.cgi?id=125395

Reviewed by Oliver Hunt.

This pushes more typed array folding into StrengthReductionPhase, and enables CSE on
storage pointers. Previously, you might have separate nodes for the same storage
pointer and this would cause some bad register pressure in the DFG. Note that this
was really a theoretical problem and not, to my knowledge a practical one - so this
patch is basically just a clean-up.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::::executeEffects):

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::constantStoragePointerCSE):
(JSC::DFG::CSEPhase::performNodeCSE):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToConstantStoragePointer):
(JSC::DFG::Node::hasStoragePointer):
(JSC::DFG::Node::storagePointer):

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileConstantStoragePointer):
(JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):

  • dfg/DFGSpeculativeJIT.h:
  • 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):
(JSC::DFG::StrengthReductionPhase::prepareToFoldTypedArray):

  • dfg/DFGWatchpointCollectionPhase.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileConstantStoragePointer):
(JSC::FTL::LowerDFGToLLVM::compileGetIndexedPropertyStorage):

5:06 PM Changeset in webkit [160294] by fpizlo@apple.com
  • 6 edits
    2 adds in trunk/Source/JavaScriptCore

FTL should support UntypedUse versions of Compare nodes
https://bugs.webkit.org/show_bug.cgi?id=125426

Reviewed by Oliver Hunt.

This adds UntypedUse versions of all comparisons except CompareStrictEq, which is
sufficiently different that I thought I'd do it in another patch.

This also extends our ability to abstract over comparison kind and removes a bunch of
copy-paste code.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::LowerDFGToLLVM::compileCompareLess):
(JSC::FTL::LowerDFGToLLVM::compileCompareLessEq):
(JSC::FTL::LowerDFGToLLVM::compileCompareGreater):
(JSC::FTL::LowerDFGToLLVM::compileCompareGreaterEq):
(JSC::FTL::LowerDFGToLLVM::compare):
(JSC::FTL::LowerDFGToLLVM::nonSpeculativeCompare):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::icmp):
(JSC::FTL::Output::equal):
(JSC::FTL::Output::notEqual):
(JSC::FTL::Output::above):
(JSC::FTL::Output::aboveOrEqual):
(JSC::FTL::Output::below):
(JSC::FTL::Output::belowOrEqual):
(JSC::FTL::Output::greaterThan):
(JSC::FTL::Output::greaterThanOrEqual):
(JSC::FTL::Output::lessThan):
(JSC::FTL::Output::lessThanOrEqual):
(JSC::FTL::Output::fcmp):
(JSC::FTL::Output::doubleEqual):
(JSC::FTL::Output::doubleNotEqualOrUnordered):
(JSC::FTL::Output::doubleLessThan):
(JSC::FTL::Output::doubleLessThanOrEqual):
(JSC::FTL::Output::doubleGreaterThan):
(JSC::FTL::Output::doubleGreaterThanOrEqual):
(JSC::FTL::Output::doubleEqualOrUnordered):
(JSC::FTL::Output::doubleNotEqual):
(JSC::FTL::Output::doubleLessThanOrUnordered):
(JSC::FTL::Output::doubleLessThanOrEqualOrUnordered):
(JSC::FTL::Output::doubleGreaterThanOrUnordered):
(JSC::FTL::Output::doubleGreaterThanOrEqualOrUnordered):

  • tests/stress/untyped-equality.js: Added.

(foo):

  • tests/stress/untyped-less-than.js: Added.

(foo):

12:09 PM Changeset in webkit [160293] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WK2] Add ENABLE_NETWORK_PROCESS flag
https://bugs.webkit.org/show_bug.cgi?id=125421

Add support to build with the Network Process enabled.

Patch by Brian Holt <brian.holt@samsung.com> on 2013-12-08
Reviewed by Martin Robinson.

  • Scripts/webkitperl/FeatureList.pm:
11:01 AM Changeset in webkit [160292] by fpizlo@apple.com
  • 25 edits
    4 adds in trunk

Fold typedArray.length if typedArray is constant
https://bugs.webkit.org/show_bug.cgi?id=125252

Source/JavaScriptCore:

Reviewed by Sam Weinig.

This was meant to be easy. The problem is that there was no good place for putting
the folding of typedArray.length to a constant. You can't quite do it in the
bytecode parser because at that point you don't yet know if typedArray is really
a typed array. You can't do it as part of constant folding because the folder
assumes that it can opportunistically forward-flow a constant value without changing
the IR; this doesn't work since we need to first change the IR to register a
desired watchpoint and only after that can we introduce that constant. We could have
done it in Fixup but that would have been awkward since Fixup's code for turning a
GetById of "length" into GetArrayLength is already somewhat complex. We could have
done it in CSE but CSE is already fairly gnarly and will probably get rewritten.

So I introduced a new phase, called StrengthReduction. This phase should have any
transformations that don't requite CFA or CSE and that it would be weird to put into
those other phases.

I also took the opportunity to refactor some of the other folding code.

This also adds a test, but the test couldn't quite be a LayoutTests/js/regress so I
introduced the notion of JavaScriptCore/tests/stress.

The goal of this patch isn't really to improve performance or anything like that.
It adds an optimization for completeness, and in doing so it unlocks a bunch of new
possibilities. The one that I'm most excited about is revealing array length checks
in DFG IR, which will allow for array bounds check hoisting and elimination.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::::executeEffects):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::tryGetFoldableView):
(JSC::DFG::Graph::tryGetFoldableViewForChild1):

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

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

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

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

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStrengthReductionPhase.cpp: Added.

(JSC::DFG::StrengthReductionPhase::StrengthReductionPhase):
(JSC::DFG::StrengthReductionPhase::run):
(JSC::DFG::StrengthReductionPhase::handleNode):
(JSC::DFG::StrengthReductionPhase::foldTypedArrayPropertyToConstant):
(JSC::DFG::performStrengthReduction):

  • dfg/DFGStrengthReductionPhase.h: Added.
  • dfg/DFGWatchpointCollectionPhase.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileGetIndexedPropertyStorage):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::LowerDFGToLLVM::typedArrayLength):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionTransferArrayBuffer):

  • runtime/ArrayBufferView.h:
  • tests/stress: Added.
  • tests/stress/fold-typed-array-properties.js: Added.

(foo):

Tools:

Reviewed by Sam Weinig.

Add Source/JavaScriptCore/tests/stress to the set of JS tests. This is where you
should put tests that run just like JSRegress but don't run as part of LayoutTests.
Currently I'm using it for tests that require some surgical support from jsc.cpp.

  • Scripts/run-javascriptcore-tests:
10:57 AM Changeset in webkit [160291] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

[Cocoa] Remove webProcessPlugInInitialize: from the WKWebProcessPlugIn protocol
https://bugs.webkit.org/show_bug.cgi?id=125405

Reviewed by Dan Bernstein.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::load):

10:26 AM Changeset in webkit [160290] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[WK2] Guard include of SecItemShim.h with ENABLE(SEC_ITEM_SHIM)
https://bugs.webkit.org/show_bug.cgi?id=125415

Patch by Brian Holt <brian.holt@samsung.com> on 2013-12-08
Reviewed by Gustavo Noronha Silva.

  • NetworkProcess/NetworkProcess.cpp:
  • UIProcess/Network/NetworkProcessProxy.cpp:
10:22 AM Changeset in webkit [160289] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebCore

[GTK] Do not skip attributes with only custom setter
https://bugs.webkit.org/show_bug.cgi?id=125417

Reviewed by Gustavo Noronha Silva.

For attributes with a custom setter, we now generate the code as a
read-only attribute with a getter method, unless it also has a
custom getter in which case the attribute is skipped.

  • bindings/gobject/GNUmakefile.am: Generate WebKitDOMMediaController

that is now required by an attribute having a custom setter.

  • bindings/gobject/WebKitDOMCustom.cpp: Remove methods that are now generated.
  • bindings/gobject/WebKitDOMCustom.h: Ditto.
  • bindings/gobject/WebKitDOMCustom.symbols: Ditto.
  • bindings/gobject/webkitdom.symbols: Add new symbols.
  • bindings/scripts/CodeGeneratorGObject.pm:

(SkipAttribute): Do not skip attributes having a custom setter.
(GetWriteableProperties): Do not include attributes having a
custom setter.
(GenerateProperty): Do not return early for attributes having
custom setter.
(GenerateFunctions): Do not generate setter for attributes having
a custom setter.

10:16 AM Changeset in webkit [160288] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] Do not generate new dispatch_event methods marked as deprecated
https://bugs.webkit.org/show_bug.cgi?id=125416

Reviewed by Gustavo Noronha Silva.

  • bindings/scripts/CodeGeneratorGObject.pm:

(SkipFunction): Skip dispatch_event methods for objects
implementing EventTarget interface unless they are already
deprecated.
(GenerateFunction): Pass also the parentNode to SkipFunction().

8:51 AM Changeset in webkit [160287] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

[gdb] Update printers for WTF::CString, JSC::JSString
https://bugs.webkit.org/show_bug.cgi?id=124600

Reviewed by Gustavo Noronha Silva.

Update the two printers after they fell behind the changes in implementation.

  • gdb/webkit.py:

(WTFCStringPrinter.to_string):
(JSCJSStringPrinter.to_string):

8:50 AM Changeset in webkit [160286] by zandobersek@gmail.com
  • 1 edit
    1 add in trunk/Tools

[webkitpy] Add a WestonDriver unit test
https://bugs.webkit.org/show_bug.cgi?id=125408

Reviewed by Gustavo Noronha Silva.

Add a webkitpy unit test for the Weston driver.

  • Scripts/webkitpy/port/westondriver_unittest.py: Added.

(WestonDriverTest):
(WestonDriverTest.make_driver): Sets up a new WestonDriver instance for testing purposes.
(WestonDriverTest.test_start): Check that the Weston compositor is launched properly and that
the server environment contains proper WAYLAND and GDK_BACKEND entries.
(WestonDriverTest.test_stop): Check that the Weston compositor is terminated properly and that
the driver cleans up the temporary directory.
(WestonDriverTest.test_stop.FakeWestonProcess): A helper class that logs the expected termination.
(WestonDriverTest.test_stop.FakeWestonProcess.terminate):

7:30 AM Changeset in webkit [160285] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Gtk] install-dependencies doesn't install libgtk-3-dev
https://bugs.webkit.org/show_bug.cgi?id=125320

Patch by Brendan Long <b.long@cablelabs.com> on 2013-12-08
Reviewed by Gustavo Noronha Silva.

  • gtk/install-dependencies: Add libgtk-3-dev, libsoup2.4 and subversion
5:09 AM Changeset in webkit [160284] by zandobersek@gmail.com
  • 2 edits
    1 delete in trunk/LayoutTests

Unreviewed GTK gardening.

Removing the baseline added in r160283. It's not really required, the failure is originating
in an unnecessary and wrong patch that's applied on the Freetype source tree that's used in the
GTK's Jhbuild setup. That patch will be removed in the near future, but until then the failure
of accessibility/press-targers-center-point.html should be handled through an expectation.

  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/press-targets-center-point-expected.txt: Removed.
2:09 AM Changeset in webkit [160283] by zandobersek@gmail.com
  • 2 edits
    1 add in trunk/LayoutTests

Unreviewed GTK gardening. Adding expectations for the current test failures.
Adding a GTK-specific baseline for a recently introduced a11y test.

  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/press-targets-center-point-expected.txt: Added.

Dec 7, 2013:

10:43 PM Changeset in webkit [160282] by jer.noble@apple.com
  • 12 edits
    2 adds in trunk

[MSE] Bring end-of-stream algorithm section up to current spec.
https://bugs.webkit.org/show_bug.cgi?id=125270

Reviewed by Darin Adler.

Source/WebCore:

Test: media/media-source/media-source-end-of-stream.html

Separate the "endOfStream()" method from the "end of stream algorithm".

  • Modules/mediasource/MediaSource.cpp:

(WebCore::SourceBufferIsUpdating): Added predicate function.
(WebCore::MediaSource::endOfStream): Call streamEndedWithError().
(WebCore::MediaSource::streamEndedWithError): Added.

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

(WebCore::SourceBuffer::appendBufferTimerFired): Call streamEndedWithError().
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.

  • Modules/mediasource/SourceBuffer.h:
  • html/HTMLMediaElement.cpp:

(HTMLMediaElement::mediaLoadingFailedFatally): Renamed from mediaEngineError.
(HTMLMediaElement::mediaLoadingFailed): Call renamed method.

  • html/HTMLMediaElement.h:
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::markEndOfStream): Set load state to Loaded.

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::setNetworkState): Simple setter.

  • platform/mock/mediasource/MockMediaPlayerMediaSource.h:
  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate): Set the intitial duration to NaN.
(WebCore::MockMediaSourcePrivate::markEndOfStream): Set load state to Loaded.

LayoutTests:

  • media/media-source/media-source-end-of-stream-expected.txt: Added.
  • media/media-source/media-source-end-of-stream.html: Added.
10:39 PM Changeset in webkit [160281] by jer.noble@apple.com
  • 7 edits in trunk/Source/WebCore

[MSE][Mac] Crash when removing MediaSource from HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=125269

Reviewed by Sam Weinig.

Fixes the media/media-source/media-source-fastseek.html test when run with MallocScribble enabled.

It's possible for a SourceBufferPrivateAVFObjC to outlive its MediaSourcePrivateAVFObjC, so
make sure to clear the pointer from the former to the latter when the latter is destroyed.
That means we now have to check to see if the pointer to the latter is still valid at every
call site.

As a drive-by fix, rename m_parent to m_mediaSource to more accurately reflect what the pointer
points to.

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

(WebCore::MediaSourcePrivateAVFObjC::~MediaSourcePrivateAVFObjC): Clear the SourceBuffer's backpointer.

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

(WebCore::SourceBufferPrivateAVFObjC::clearMediaSource):

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

(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC): Rename m_parent -> m_mediaSource.
(WebCore::SourceBufferPrivateAVFObjC::append): Check m_mediaSource before calling.
(WebCore::SourceBufferPrivateAVFObjC::removedFromMediaSource): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::readyState): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::setReadyState): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::flushAndEnqueueNonDisplayingSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::setActive): Ditto.

  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockMediaSourcePrivate::~MockMediaSourcePrivate): Clear the SourceBuffer's backpointer.

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockSourceBufferPrivate::MockSourceBufferPrivate): Rename m_parent -> m_mediaSource.
(WebCore::MockSourceBufferPrivate::removedFromMediaSource): Check m_mediaSource before calling.
(WebCore::MockSourceBufferPrivate::readyState): Ditto.
(WebCore::MockSourceBufferPrivate::setReadyState): Ditto.
(WebCore::MockSourceBufferPrivate::setActive): Ditto.

  • platform/mock/mediasource/MockSourceBufferPrivate.h:

(WebCore::MockSourceBufferPrivate::clearMediaSource):

10:17 PM Changeset in webkit [160280] by weinig@apple.com
  • 7 edits in trunk/Source/WebKit2

[Cocoa] Make WKWebProcessPlugInController work with WKObject wrapping
https://bugs.webkit.org/show_bug.cgi?id=125404

Reviewed by Dan Bernstein.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Shared/mac/ObjCObjectGraphCoders.mm:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:

(-[WKWebProcessPlugInController dealloc]):
(didCreatePage):
(willDestroyPage):
(-[WKWebProcessPlugInController _setPrincipalClassInstance:]):
(-[WKWebProcessPlugInController API::]):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h:

(WebKit::wrapper):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInPrivate.h:
  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::load):

9:53 PM Changeset in webkit [160279] by zoltan@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove statusWithDirection static function from RenderBlockLineLayout
https://bugs.webkit.org/show_bug.cgi?id=125372

Reviewed by Andreas Kling.

I run into a FIXME about using BidiStatus constructor rather than statusWithDirection,
once it's implemented. BidiStatus has got the appropriate constructor now, so I removed
statusWithDirection and updated the code to use the constructor of BidiStatus.

No new tests, no behavior change.

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::constructBidiRunsForSegment):

9:23 PM Changeset in webkit [160278] by mitz@apple.com
  • 3 edits
    2 adds in trunk/Source/WebKit2

[Cocoa] WebData has a generic wrapper
https://bugs.webkit.org/show_bug.cgi?id=125402

Reviewed by Sam Weinig.

Added WKNSData, an NSData subclass that confroms to WKObject and wraps a WebData.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject): Allocate a WKNSData if the API::Object is data.

  • Shared/Cocoa/WKNSData.h: Added.

(WebKit::wrapper): Added. Returns a WebData’s wrapper as an NSData.

  • Shared/Cocoa/WKNSData.mm: Added.

(-[WKNSData dealloc]): Calls the WebData destructor.
(-[WKNSData length]): Added.
(-[WKNSData bytes]): Added.
(-[WKNSData copyWithZone:]): Retains self.
(-[WKNSData _apiObject]): Returns the wrapped WebData.

  • WebKit2.xcodeproj/project.pbxproj: Added references to new files.
9:22 PM Changeset in webkit [160277] by weinig@apple.com
  • 8 edits in trunk/Source/WebKit2

[Cocoa] Make WKWebProcessPlugInBrowserContextController work with WKObject wrapping
https://bugs.webkit.org/show_bug.cgi?id=125403

Reviewed by Dan Bernstein.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Shared/mac/ObjCObjectGraphCoders.mm:

(WebKit::InjectedBundleObjCObjectGraphDecoderImpl::decode):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:

(didCreatePage):
(willDestroyPage):
(setUpBundleClient):
(-[WKWebProcessPlugInController _initWithPrincipalClassInstance:bundle:]):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController dealloc]):
(-[WKWebProcessPlugInBrowserContextController mainFrameDocument]):
(-[WKWebProcessPlugInBrowserContextController selectedRange]):
(-[WKWebProcessPlugInBrowserContextController API::]):
(-[WKWebProcessPlugInBrowserContextController _bundlePageRef]):
(-[WKWebProcessPlugInBrowserContextController handle]):
(+[WKWebProcessPlugInBrowserContextController lookUpBrowsingContextFromHandle:]):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h:

(WebKit::wrapper):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h:
  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::load):

7:00 PM Changeset in webkit [160276] by weinig@apple.com
  • 2 edits in trunk/Tools

[Cocoa] Convert a few more parts of MiniBrowser over to the Objective-C API
https://bugs.webkit.org/show_bug.cgi?id=125401

Reviewed by Dan Bernstein.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController fetch:]):
(-[WK2BrowserWindowController reload:]):
(-[WK2BrowserWindowController goBack:]):
(-[WK2BrowserWindowController goForward:]):
(-[WK2BrowserWindowController validateUserInterfaceItem:]):
(-[WK2BrowserWindowController currentZoomFactor]):
(-[WK2BrowserWindowController setCurrentZoomFactor:]):
(-[WK2BrowserWindowController zoomIn:]):
(-[WK2BrowserWindowController zoomOut:]):
(-[WK2BrowserWindowController canResetZoom]):
(-[WK2BrowserWindowController resetZoom:]):
(-[WK2BrowserWindowController toggleZoomMode:]):
(-[WK2BrowserWindowController updateTextFieldFromURL:]):

6:36 PM Changeset in webkit [160275] by weinig@apple.com
  • 5 edits in trunk/Tools

Convert MiniBrowser to use WKProcessGroup and WKBrowsingContextGroup
https://bugs.webkit.org/show_bug.cgi?id=125400

Reviewed by Dan Bernstein.

  • MiniBrowser/mac/AppDelegate.h:
  • MiniBrowser/mac/AppDelegate.m:
  • MiniBrowser/mac/WK2BrowserWindowController.h:
  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController initWithProcessGroup:browsingContextGroup:]):
(-[WK2BrowserWindowController dealloc]):
(createNewPage):
(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController browsingContextController:didNavigateWithNavigationData:]):
(-[WK2BrowserWindowController browsingContextController:didPerformClientRedirectFromURL:toURL:]):
(-[WK2BrowserWindowController browsingContextController:didPerformServerRedirectFromURL:toURL:]):
(-[WK2BrowserWindowController browsingContextController:didUpdateHistoryTitle:forURL:]):
Replace global WKContextRef and WKPageGroupRef with WKProcessGroup and WKBrowsingContextGroup. Also
replace context based WKContextHistoryClient with WKBrowsingContextController based WKBrowsingContextHistoryDelegate

9:39 AM Changeset in webkit [160274] by Gustavo Noronha Silva
  • 2 edits in trunk/Tools

[GTK] Run each gtest subtest separately instead of in one go
https://bugs.webkit.org/show_bug.cgi?id=125386

Reviewed by Martin Robinson.

This is what other ports are doing (except they build each test as a separate binary)
and will help with the timeouts we sometimes hit because it applies to the full test
run.

  • Scripts/run-gtk-tests:

(TestRunner._get_tests_from_google_test_suite): get a list of available sub-tests.
(TestRunner._run_google_test): run a single subtest from a gtest binary.
(TestRunner._run_google_test_suite): call the binary once per subtest.

8:50 AM Changeset in webkit [160273] by ChangSeok Oh
  • 2 edits in trunk/Source/WebCore

Unreviewed. Build fix for gtk port after r160260.

  • loader/cache/CachedImage.h: Add missing a header.
8:33 AM Changeset in webkit [160272] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[Win][64-bit] Hitting breakpoint assembler instruction in callToJavaScript.
https://bugs.webkit.org/show_bug.cgi?id=125382

Patch by peavo@outlook.com <peavo@outlook.com> on 2013-12-07
Reviewed by Michael Saboff.

The WinCairo results from run-javascriptcore-tests are the same as the WinCairo 32-bits results, when removing these breakpoints.

  • jit/JITStubsMSVC64.asm: Remove breakpoint instructions.
6:54 AM Changeset in webkit [160271] by commit-queue@webkit.org
  • 6 edits in trunk/Tools

Move PrettyPatch related code to prettypatch.py
https://bugs.webkit.org/show_bug.cgi?id=124937

Patch by Dániel Bátyai <Batyai.Daniel@stud.u-szeged.hu> on 2013-12-07
Reviewed by Ryosuke Niwa.

This code seems to have a better place here than in Port, since PrettyPatch already knows
pretty_patch_path, and this also unifies the usage of PrettyPatch

  • Scripts/webkitpy/common/prettypatch.py:

(PrettyPatch.init):
(PrettyPatch.pretty_diff):
(PrettyPatch):
(PrettyPatch.pretty_patch_available):
(PrettyPatch.check_pretty_patch):
(PrettyPatch.pretty_patch_text):

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.create_text_diff_and_write_result):

  • Scripts/webkitpy/layout_tests/models/test_run_results.py:

(summarize_results):

  • Scripts/webkitpy/port/base.py:

(Port.init):
(Port.wdiff_available):
(Port.check_image_diff):
(Port.wdiff_text):

  • Scripts/webkitpy/port/base_unittest.py:

(PortTest.test_pretty_patch_os_error):
(PortTest.test_pretty_patch_script_error):

5:03 AM Changeset in webkit [160270] by Gustavo Noronha Silva
  • 4 edits in trunk/Source

Fix API test expectation following 160220.

Rubber-stamped by Martin Robinson.

Source/WebKit/gtk:

  • tests/testatkroles.c:

(finish_loading): rename variable documentFrame -> document.
(test_webkit_atk_get_role_document_frame): check for ATK_ROLE_DOCUMENT_WEB instead of
ATK_ROLE_DOCUMENT_FRAME.
(test_webkit_atk_get_role_heading): rename variable documentFrame -> document.
(test_webkit_atk_get_role_image): ditto.
(test_webkit_atk_get_role_link): ditto.
(test_webkit_atk_get_role_list_and_item): ditto.
(test_webkit_atk_get_role_paragraph): ditto.
(test_webkit_atk_get_role_section): ditto.
(test_webkit_atk_get_role_table): ditto.
(test_webkit_atk_get_role_separator): ditto.
(test_webkit_atk_get_role_combobox): ditto.
(test_webkit_atk_get_role_form): ditto.
(test_webkit_atk_get_role_check_box): ditto.
(test_webkit_atk_get_role_entry): ditto.
(test_webkit_atk_get_role_label): ditto.
(test_webkit_atk_get_role_listbox): ditto.
(test_webkit_atk_get_role_password_text): ditto.
(test_webkit_atk_get_role_push_button): ditto.
(test_webkit_atk_get_role_radio_button): ditto.

Source/WebKit2:

  • UIProcess/API/gtk/tests/TestWebKitAccessibility.cpp:

(testAtspiBasicHierarchy): check for ATK_ROLE_DOCUMENT_WEB instead of ATK_ROLE_DOCUMENT_FRAME.

3:50 AM Changeset in webkit [160269] by Gustavo Noronha Silva
  • 2 edits in trunk/Source/WebCore

ubuntu software center hits _XReadEvents() error
https://bugs.webkit.org/show_bug.cgi?id=123480

Reviewed by Martin Robinson.

  • platform/gtk/WidgetBackingStoreGtkX11.cpp:

(WebCore::WidgetBackingStoreGtkX11::~WidgetBackingStoreGtkX11): clear the surface
before freeing the associated pixmap.

Note: See TracTimeline for information about the timeline view.