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

Timeline



Apr 12, 2014:

6:50 PM Changeset in webkit [167191] by fpizlo@apple.com
  • 5 edits in trunk

Make slow-stress tests run faster by running fewer VM variants.

Rubber stamped by Geoffrey Garen.

Tools:

  • Scripts/run-javascriptcore-tests:
  • Scripts/run-jsc-stress-tests:

LayoutTests:

  • jsc-layout-tests.yaml:
4:59 PM Changeset in webkit [167190] by aestes@apple.com
  • 3 edits in trunk/Source/WebCore

Fix the iOS build after r167183.

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

(WebCore::ResourceHandle::schedule):
(WebCore::ResourceHandle::unschedule):

4:01 PM Changeset in webkit [167189] by fpizlo@apple.com
  • 16 edits
    3 adds in trunk

Math.fround() should be an intrinsic
https://bugs.webkit.org/show_bug.cgi?id=131583

Source/JavaScriptCore:

Reviewed by Geoffrey Garen.

Makes programs that use Math.fround() run up to 6x faster.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsic):

  • dfg/DFGCSEPhase.cpp:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileArithFRound):

  • runtime/Intrinsic.h:
  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

LayoutTests:

Reviewed by Geoffrey Garen.

This test runs 4.4635x faster with the intrinsic.

  • js/regress/fround-expected.txt: Added.
  • js/regress/fround.html: Added.
  • js/regress/script-tests/fround.js: Added.
2:06 PM Changeset in webkit [167188] by aestes@apple.com
  • 6 edits in trunk/Source

[iOS] Move QuickLookHandle from ResourceLoader to WebResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=131580

Reviewed by Darin Adler.

There's no need to bloat WebKit1's ResourceLoader with a pointer that
only WebKit2's WebResourceLoader cares about.

Source/WebCore:

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::quickLookHandle): Deleted.
(WebCore::ResourceLoader::setQuickLookHandle): Deleted.

Source/WebKit2:

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::didFailResourceLoad):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/ios/WebResourceLoaderIOS.mm:

(WebKit::WebResourceLoader::setUpQuickLookHandleIfNeeded):

1:41 PM Changeset in webkit [167187] by fpizlo@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

FTL should use stackmap register liveness
https://bugs.webkit.org/show_bug.cgi?id=130791

Reviewed by Goeffrey Garen.

Enable the stackmap register liveness support by fixing the two last bugs:

  • If everything is dead after the patchpoint - a good possibility for a put_by_id - then we shouldn't crash due to a null scratch buffer.


  • Always consider callee-saves as if they were live. More precisely, we should consider those callee-saves that are not saved by the enclosing function to be live. For now we do the much simpler thing and consider callee-saves to be always live since it has minimal impact on the scratch register allocator. It will know not to preserve those for calls, anyway.


I tried writing a test for the null scratch buffer thing, but failed. I will land the
test anyway since it seems useful.

  • ftl/FTLCompile.cpp:

(JSC::FTL::usedRegistersFor):

  • jit/ScratchRegisterAllocator.cpp:

(JSC::ScratchRegisterAllocator::preserveUsedRegistersToScratchBufferForCall):
(JSC::ScratchRegisterAllocator::restoreUsedRegistersFromScratchBufferForCall):

  • runtime/Options.h:
  • tests/stress/repeated-put-by-id-reallocating-transition.js: Added.

(foo):

1:06 PM Changeset in webkit [167186] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Cleanup AccessibilityObject::getAttribute
https://bugs.webkit.org/show_bug.cgi?id=131555

Reviewed by Darin Adler.

No new functionality.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::getAttribute):

1:01 PM Changeset in webkit [167185] by commit-queue@webkit.org
  • 8 edits in trunk

[SOUP] Libsoup internal credential setting should be controlled by loader decision
https://bugs.webkit.org/show_bug.cgi?id=130963

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-04-12
Reviewed by Darin Adler.

Source/WebCore:

Disabled libsoup internal authentication manager for messages for which no credential is available and no stored credentials should be used.
Updated synchronous loader to return whether using credentials or not according StoredCredential loader option parameter.
Unskipped test http/tests/xmlhttprequest/cross-origin-no-authorization.html covers the patch.

  • platform/network/ResourceHandleInternal.h:

(WebCore::ResourceHandleInternal::ResourceHandleInternal): Added m_useAuthenticationManager boolean to control whether disable authentication manager or not.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): Added m_storedCredentials member.
(WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage): Return true if stored credentials are allowed.
(WebCore::applyAuthenticationToRequest): Set m_useAuthenticationManager value to disable authentication manager if cannot use stored credentials and ResourceHandleInternal has no username and password.
(WebCore::createSoupMessageForHandleAndRequest): Disable authentication mananger according m_useAuthenticationManager value.
(WebCore::ResourceHandle::platformLoadResourceSynchronously): Added StoredCredentials loader option to the sync loader constructor.

Source/WebKit/efl:

  • WebCoreSupport/FrameLoaderClientEfl.cpp:

(WebCore::FrameLoaderClientEfl::shouldUseCredentialStorage): Similarly to GTK, let soup/loader layer handle when to use credential storage. Return always true

LayoutTests:

  • platform/efl/TestExpectations: Unskipped http/tests/xmlhttprequest/cross-origin-no-authorization.html.
  • platform/gtk/TestExpectations: Ditto.
12:34 PM Changeset in webkit [167184] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

(before-mar-1-1000) In correct date creation prior to 1 Mar 1000
https://bugs.webkit.org/show_bug.cgi?id=129308

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-04-12
Reviewed by Darin Adler.

  • js/date-constructor-expected.txt:
  • js/script-tests/date-constructor.js:
12:10 PM Changeset in webkit [167183] by Darin Adler
  • 9 edits in trunk/Source/WebCore

Some small loader refinements and refactoring
https://bugs.webkit.org/show_bug.cgi?id=131541

Reviewed by Alexey Proskuryakov.

Cut down on use of ResourceLoader::handle, which always returns null when
using a network process. Also streamlined conditionals and did some other
small refactoring.

  • loader/DocumentLoader.h: Use references rather than pointers for SchedulePair.
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didChangePriority): Use m_handle instead of handle(),
since we'd like to delete handle() entirely soon.
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Ditto.
(WebCore::ResourceLoader::schedule): Added.
(WebCore::ResourceLoader::unschedule): Ditto.

  • loader/ResourceLoader.h: Rearranged header to eliminate nested conditionals.

Added schedule and unschedule functions for Mac.

  • loader/mac/DocumentLoaderMac.cpp:

(WebCore::scheduleAll): Changed to take a reference and call ResourceLoader::schedule.
(WebCore::unscheduleAll): Ditto.
(WebCore::DocumentLoader::schedule): Ditto.
(WebCore::DocumentLoader::unschedule): Ditto.

  • page/mac/PageMac.cpp:

(WebCore::Page::addSchedulePair): Pass a reference rather than a pointer to schedule.
(WebCore::Page::removeSchedulePair): Ditto.

  • platform/network/ResourceHandle.h: Did a bit of reformatting and reorganizing of

conditionals.

  • platform/network/ResourceHandleInternal.h: Removed a tiny bit of unneeded declaration.
  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::schedule): Updated to take a reference rather than a pointer.
(WebCore::ResourceHandle::unschedule): Ditto.

11:22 AM Changeset in webkit [167182] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

DFG::FixupPhase should insert conversion nodes after the rest of fixup so that we know how the types settled
https://bugs.webkit.org/show_bug.cgi?id=131424

Reviewed by Geoffrey Garen.

This defers type conversion injection until we've decided on types. This makes the
process of deciding types a bit more flexible - for example we can naturally fixpoint
and change our minds. Only when things are settled do we actually insert conversions.

This is a necessary prerequisite for keeping double, int52, and JSValue data flow
separate. A SetLocal/GetLocal will appear to be JSValue until we fixpoint and realize
that there are typed uses. If we were eagerly inserting type conversions then we would
first insert a to/from-JSValue conversion in some cases only to then replace it by
the other conversions. It's probably trivial to remove those redundant conversions later
but I think it's better if we don't insert them to begin with.

  • bytecode/CodeOrigin.h:

(JSC::CodeOrigin::operator!):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::run):
(JSC::DFG::FixupPhase::fixupBlock):
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupSetLocalsInBlock):
(JSC::DFG::FixupPhase::fixEdge):
(JSC::DFG::FixupPhase::fixIntEdge):
(JSC::DFG::FixupPhase::injectTypeConversionsInBlock):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
(JSC::DFG::FixupPhase::addRequiredPhantom):
(JSC::DFG::FixupPhase::addPhantomsIfNecessary):
(JSC::DFG::FixupPhase::clearPhantomsAtEnd):
(JSC::DFG::FixupPhase::observeUntypedEdge): Deleted.
(JSC::DFG::FixupPhase::fixupUntypedSetLocalsInBlock): Deleted.
(JSC::DFG::FixupPhase::injectInt32ToDoubleNode): Deleted.

Apr 11, 2014:

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

Make NodeList.length inline-cacheable by JSC.
<https://webkit.org/b/131579>

For objects with custom index or name getters, we have to make sure
that builtin properties take precedence. We do this by scanning the
ancestor chain for a suitable property slot before moving on to
named items.

With this patch, we now mark such builtins as cacheable. This is
safe since the whole point of doing this before processing named
items is to ensure the same slot is returned consistently.

Reviewed by Benjamin Poulain.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlotBody):

8:09 PM Changeset in webkit [167180] by ap@apple.com
  • 5 edits in trunk/Source/WebKit2

[Mac] Crashes when copying or pasting huge images
https://bugs.webkit.org/show_bug.cgi?id=131576
<rdar://problem/12131833>
<rdar://problem/14427398>

Reviewed by Darin Adler.

Added a few null checks for SharedMemory::create() return value in pasteboard code.
Error handling feels a bit sketchy, but

  • I'm not sure what it should look like ideally;
  • it matches the kind of error handling we already have in these functions;
  • it appears to work reasonably well in practice. We get empty content, which

is not nice, but not particularly problematic either. When copying an animated GIF,
we also get the GIF in RTFD flavor, so even pasting into NSTextViews works!

  • Platform/mac/SharedMemoryMac.cpp:

(WebKit::SharedMemory::createFromVMBuffer):

  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::getPasteboardBufferForType):
(WebKit::WebContext::readBufferFromPasteboard):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::setBufferForType):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: (WebKit::WebDragClient::declareAndWriteDragImage):

Also renamed some variables to prevent name collisions with with nested scope.

7:49 PM Changeset in webkit [167179] by ryuan.choi@samsung.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix on the EFL port after r167152

  • WebProcess/WebPage/PageOverlay.cpp:

(WebKit::PageOverlay::bounds):

6:56 PM Changeset in webkit [167178] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[WK2] WebProcess crashes, when closing window after opening page by means of context menu
https://bugs.webkit.org/show_bug.cgi?id=131439

Patch by Hyowon Kim <hw1008.kim@samsung.com> on 2014-04-11
Reviewed by Tim Horton.

CoordinatedGraphicsLayer calls notifyFlushRequired() through its client when destroyed.
When PageOverlayController::notifyFlushRequired() is called, the DrawingArea could be null
because it's destoryed in WebPage::close().

  • WebProcess/WebPage/PageOverlayController.cpp:

(WebKit::PageOverlayController::notifyFlushRequired): Add null check of m_webPage->drawingArea().

6:24 PM Changeset in webkit [167177] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Lots of compositing test failures after r167152
https://bugs.webkit.org/show_bug.cgi?id=131574

Reviewed by Simon Fraser.

  • WebProcess/WebPage/PageOverlayController.h:

Skip page overlay layers in layer tree dumps, for consistency between platforms.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::dumpProperties):
We were asking the parent's client whether the child should be dumped,
but really the child's client is the one who should decide.

5:43 PM Changeset in webkit [167176] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

ViewportConfiguration::layoutWidth() compute the width incorrectly when initial-scale+width do not fit in view
https://bugs.webkit.org/show_bug.cgi?id=131575

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

I made a mistake when writing the new viewport code: ViewportConfiguration::layoutWidth() uses m_contentSize in one place.
That make no sense, contentSize depends on the layout width.

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::layoutWidth):

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

Remove "numeric index getter" stuff from bindings code generator.
<https://webkit.org/b/131565>

This was used for an earlier generation of typed arrays. Now that JSC
has native typed array support, we're not using this functionality and
can just remove it.

Reviewed by Geoffrey Garen.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlotBody):
(HasComplexGetOwnProperty):
(InterfaceRequiresAttributesOnInstance):
(InstanceOverridesGetOwnPropertySlot):
(GenerateHeader):
(GenerateImplementation):

5:25 PM Changeset in webkit [167174] by Brian Burg
  • 3 edits
    1 copy
    4 adds in trunk/Source/JavaScriptCore

Web Replay: code generator should consider enclosing class when computing duplicate type names
https://bugs.webkit.org/show_bug.cgi?id=131554

Reviewed by Timothy Hatcher.

We need to prepend an enum's enclosing class, if any, so that multiple enums with the same name
can coexist without triggering a "duplicate types" error. Now, such enums must be referenced
by the enclosing class and enum name.

Added tests for the new syntax, and rebaselined one test to reflect a previous patch's change.

  • replay/scripts/CodeGeneratorReplayInputs.py:

(Type.type_name): Prepend the enclosing class name.
(Type.type_name.is):

  • replay/scripts/tests/expected/fail-on-duplicate-enum-type.json-error: Added.
  • replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.cpp: Added.
  • replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.h: Added.
  • replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.h: Rebaseline.
  • replay/scripts/tests/fail-on-duplicate-enum-type.json: Added.
  • replay/scripts/tests/generate-enums-with-same-base-name.json: Added.
5:19 PM Changeset in webkit [167173] by Brian Burg
  • 2 edits in trunk/Source/WebCore

Web Replay: consolidate decoding macros used in SerializationMethods
https://bugs.webkit.org/show_bug.cgi?id=131564

Reviewed by Timothy Hatcher.

We can use EncodingTraits<T>::DecodedType to create a local variable
with the appropriate decoded type, rather than special casing.

  • replay/SerializationMethods.cpp:

(JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):
(JSC::EncodingTraits<KeypressCommand>::decodeValue):
(JSC::EncodingTraits<PlatformKeyboardEvent>::decodeValue):
(JSC::EncodingTraits<PlatformMouseEvent>::decodeValue):
(JSC::EncodingTraits<PlatformWheelEvent>::decodeValue):
(JSC::EncodingTraits<PluginData>::decodeValue):

4:51 PM Changeset in webkit [167172] by Beth Dakin
  • 13 edits in trunk/Source

Need WK2 API to disable rubber-banding
https://bugs.webkit.org/show_bug.cgi?id=131567

Reviewed by Simon Fraser.

Source/WebCore:

Page will now store a vertical and horizontal ScrollElasticity in case the API has
been called before the FrameView even exists.

New Page functions.

  • WebCore.exp.in:

Use Page’s cached ScrollElasticity.

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):

If there is already a FrameView, then assign it the new ScrollElasticity.

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::setVerticalScrollElasticity):
(WebCore::Page::setHorizontalScrollElasticity):

  • page/Page.h:

(WebCore::Page::verticalScrollElasticity):
(WebCore::Page::horizontalScrollElasticity):

Source/WebKit2:

New API allows the client to enable/disable horizontal or vertical rubber-banding.
By default, rubber-banding is enabled.

  • UIProcess/API/C/WKPage.cpp:

(WKPageVerticalRubberBandingIsEnabled):
(WKPageSetEnableVerticalRubberBanding):
(WKPageHorizontalRubberBandingIsEnabled):
(WKPageSetEnableHorizontalRubberBanding):

  • UIProcess/API/C/WKPage.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setEnableVerticalRubberBanding):
(WebKit::WebPageProxy::verticalRubberBandingIsEnabled):
(WebKit::WebPageProxy::setEnableHorizontalRubberBanding):
(WebKit::WebPageProxy::horizontalRubberBandingIsEnabled):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setEnableVerticalRubberBanding):
(WebKit::WebPage::setEnableHorizontalRubberBanding):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
4:50 PM Changeset in webkit [167171] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the Mac build.

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindIndicator):

4:49 PM Changeset in webkit [167170] by Martin Robinson
  • 3 edits in trunk/Source/WebCore

REGRESSION(167145): Many media tests fail
https://bugs.webkit.org/show_bug.cgi?id=131569

Reviewed by Brent Fulgham.

  • PlatformGTK.cmake: Add the localized strings file to the list of user agent scripts.
  • platform/gtk/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::mediaControlsScript): Include the localized strings file in the script body.

4:31 PM Changeset in webkit [167169] by timothy_horton@apple.com
  • 7 edits
    2 adds in trunk/Source

[iOS WebKit2] Find-in-page indicator
https://bugs.webkit.org/show_bug.cgi?id=131510
<rdar://problem/16547777>

Reviewed by Simon Fraser and Enrica Casucci.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindUIAfterPageScroll):
WebKit2 will clear the selection if we reveal it while not enabling selection painting.
So, avoid revealing it.

(WebKit::FindController::findString):
(WebKit::FindController::hideFindIndicator):
(WebKit::FindController::willFindString):
(WebKit::FindController::didFailToFindString):
(WebKit::FindController::didHideFindIndicator):
#if out the cross-platform find indicator code on iOS; it will be replaced
by the code in FindControllerIOS.

  • WebProcess/WebPage/FindController.h:
  • WebProcess/WebPage/ios/FindControllerIOS.mm: Added.

(highlightColor):
(WebKit::FindIndicatorOverlayClientIOS::drawRect):
Paint the selection (with black text forced on), and the yellow rounded rect
into the indicator page overlay.

(WebKit::FindController::updateFindIndicator):
Create or update a small document-relative page overlay in the selection rect.

(WebKit::FindController::hideFindIndicator):
(WebKit::FindController::willFindString):
(WebKit::FindController::didFailToFindString):
(WebKit::FindController::didHideFindIndicator):
Add willFindString, didFailToFindString, and didHideFindIndicator functions.
They do nothing, except on iOS where they are used to prevent selection change
messages from being dispatched while using find-in-page, and to force
WebCore to compute a selection rect (via updateAppearance) despite the selection not being painted.

  • WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:

(WebKit::FindIndicatorOverlayClientIOS::setFrame):

  • editing/Editor.cpp:

(WebCore::Editor::findString):

  • editing/FindOptions.h:

Add a find option which prevents WebCore from revealing the selection
after selecting a successful find match.

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

[GTK] Add HighDPI support for non-accelerated compositing contents
https://bugs.webkit.org/show_bug.cgi?id=131562

Patch by Owen Taylor <otaylor@redhat.com> on 2014-04-11
Reviewed by Martin Robinson.

Source/WebCore:

No new tests. This will be tested once we have the proper dependencies in the WebKit testing
JHBuild.

  • platform/cairo/WidgetBackingStore.h:

(WebCore::WidgetBackingStore::WidgetBackingStore): Accept a device scale argument.

  • platform/cairo/WidgetBackingStoreCairo.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
  • platform/cairo/WidgetBackingStoreCairo.h: Accept a device scale argument.
  • platform/graphics/cairo/CairoUtilities.cpp: Add a new helper to set the device scale if Cairo built against is new enough.
  • platform/graphics/cairo/CairoUtilities.h:
  • platform/gtk/GtkVersioning.h: Add the HAVE_GTK_SCALE_FACTOR macro.
  • platform/gtk/WidgetBackingStoreGtkX11.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
  • platform/gtk/WidgetBackingStoreGtkX11.h: Accept a device scale argument.

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(scaleFactorChanged): Added this callback to pass scale changes to the page proxy.
(webkitWebViewBaseCreateWebPage): Attach the callback to the notify signal.

  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::createBackingStoreForGTK): Pass the scale factor to the WebCore backing store.
(WebKit::BackingStore::incorporateUpdate): Ditto.

4:09 PM Changeset in webkit [167167] by jhoneycutt@apple.com
  • 3 edits
    2 adds in trunk

Assertion failure changing select element size during focus event
dispatch
<https://bugs.webkit.org/show_bug.cgi?id=131566>
<rdar://problem/16400735>

Reviewed by Andy Estes.

Source/WebCore:

Test: fast/forms/select-change-size-during-focus.html

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
Adopt the fix from Chromium r171216; check that the renderer is still
of the expected type, and return early if it is not.

LayoutTests:

  • fast/forms/select-change-size-during-focus-expected.txt: Added.
  • fast/forms/select-change-size-during-focus.html: Added.
3:46 PM Changeset in webkit [167166] by Bem Jones-Bey
  • 3 edits
    2 adds in trunk

Clear sibling floats while splitting inline flow
https://bugs.webkit.org/show_bug.cgi?id=130905

Reviewed by David Hyatt.

Source/WebCore:

This is a port of a Blink patch by kenrb@chromium.org.
(https://src.chromium.org/viewvc/blink?revision=169658&view=revision)

During RenderInline::splitFlow(), floats are cleared on an anonymous
containingBlock() for the inline being split. This is a problem if
siblings of the block contain references to the same floats, since the
float removal code in markSiblingsWithFloatsForLayout() will not later
find them.

This change also affects RenderBlock::splitFlow() and
RenderBoxModelObject::moveChildrenTo, since those are called in
similar situations as RenderInline::splitFlow().

Test: fast/block/float/split-inline-sibling-of-float-crash.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::removeFloatingObjects): Add call to

markSiblingsWithFloatsForLayout() before removing floats.

LayoutTests:

This test will only crash if run with Address Sanitizer or some other
address checking tool.

  • fast/block/float/split-inline-sibling-of-float-crash-expected.txt: Added.
  • fast/block/float/split-inline-sibling-of-float-crash.html: Added.
3:38 PM Changeset in webkit [167165] by barraclough@apple.com
  • 69 edits
    2 adds
    3 deletes in trunk

Rollout - Rewrite Function.bind as a builtin
https://bugs.webkit.org/show_bug.cgi?id=131083

Unreviewed.

Rolling out r167020 while investigating a performance regression.

Source/JavaScriptCore:

  • API/JSObjectRef.cpp:

(JSObjectMakeConstructor):

  • API/JSScriptRef.cpp:

(parseScript):

(JSC::BuiltinExecutables::createBuiltinExecutable):

  • builtins/Function.prototype.js:

(apply):
(bind.bindingFunction): Deleted.
(bind.else.bindingFunction): Deleted.
(bind): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::generateFunctionCodeBlock):

  • bytecompiler/NodesCodegen.cpp:

(JSC::InstanceOfNode::emitBytecode):

  • interpreter/Interpreter.cpp:
  • parser/Lexer.cpp:

(JSC::Lexer<T>::Lexer):
(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):

  • parser/Lexer.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):

  • parser/Parser.h:

(JSC::parse):

  • parser/ParserModes.h:
  • runtime/ArgumentsIteratorConstructor.cpp:

(JSC::ArgumentsIteratorConstructor::finishCreation):

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::finishCreation):

  • runtime/BooleanConstructor.cpp:

(JSC::BooleanConstructor::finishCreation):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

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

(JSC::checkSyntax):

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::finishCreation):

  • runtime/ErrorConstructor.cpp:

(JSC::ErrorConstructor::finishCreation):

  • runtime/Executable.cpp:

(JSC::ProgramExecutable::checkSyntax):

  • runtime/FunctionConstructor.cpp:

(JSC::FunctionConstructor::finishCreation):

  • runtime/FunctionPrototype.cpp:

(JSC::FunctionPrototype::addFunctionProperties):
(JSC::functionProtoFuncBind):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSArrayBufferConstructor::finishCreation):

  • runtime/JSBoundFunction.cpp: Added.

(JSC::boundFunctionCall):
(JSC::boundFunctionConstruct):
(JSC::JSBoundFunction::create):
(JSC::JSBoundFunction::destroy):
(JSC::JSBoundFunction::customHasInstance):
(JSC::JSBoundFunction::JSBoundFunction):
(JSC::JSBoundFunction::finishCreation):
(JSC::JSBoundFunction::visitChildren):

  • runtime/JSBoundFunction.h: Added.

(JSC::JSBoundFunction::targetFunction):
(JSC::JSBoundFunction::boundThis):
(JSC::JSBoundFunction::boundArgs):
(JSC::JSBoundFunction::createStructure):

  • runtime/JSFunction.cpp:

(JSC::RetrieveCallerFunctionFunctor::RetrieveCallerFunctionFunctor):
(JSC::RetrieveCallerFunctionFunctor::operator()):
(JSC::retrieveCallerFunction):
(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::finishCreation):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::reset):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncSetTypeErrorAccessor): Deleted.

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectPrototypeProperty): Deleted.
(JSC::JSObject::putDirectPrototypePropertyWithoutTransitions): Deleted.

  • runtime/JSObject.h:
  • runtime/JSPromiseConstructor.cpp:

(JSC::JSPromiseConstructor::finishCreation):

  • runtime/MapConstructor.cpp:

(JSC::MapConstructor::finishCreation):

  • runtime/MapIteratorConstructor.cpp:

(JSC::MapIteratorConstructor::finishCreation):

  • runtime/NameConstructor.cpp:

(JSC::NameConstructor::finishCreation):

  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructor::finishCreation):

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::finishCreation):

  • runtime/SetConstructor.cpp:

(JSC::SetConstructor::finishCreation):

  • runtime/SetIteratorConstructor.cpp:

(JSC::SetIteratorConstructor::finishCreation):

  • runtime/StringConstructor.cpp:

(JSC::StringConstructor::finishCreation):

  • runtime/WeakMapConstructor.cpp:

(JSC::WeakMapConstructor::finishCreation):

Source/WebCore:

  • bindings/js/JSImageConstructor.cpp:

(WebCore::JSImageConstructor::finishCreation):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorHelperMethods):

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

(WebCore::JSTestActiveDOMObjectConstructor::finishCreation):

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

(WebCore::JSTestCustomNamedGetterConstructor::finishCreation):

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

(WebCore::JSTestEventConstructorConstructor::finishCreation):

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

(WebCore::JSTestEventTargetConstructor::finishCreation):

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

(WebCore::JSTestExceptionConstructor::finishCreation):

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

(WebCore::JSTestGenerateIsReachableConstructor::finishCreation):

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

(WebCore::JSTestInterfaceConstructor::finishCreation):

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

(WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):

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

(WebCore::JSTestNamedConstructorConstructor::finishCreation):
(WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):

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

(WebCore::JSTestNodeConstructor::finishCreation):

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

(WebCore::JSTestObjConstructor::finishCreation):

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

(WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):

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

(WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):

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

(WebCore::JSTestTypedefsConstructor::finishCreation):

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

(WebCore::JSattributeConstructor::finishCreation):

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

(WebCore::JSreadonlyConstructor::finishCreation):

LayoutTests:

  • js/dom/function-bind-expected.txt:
  • js/regress/function-bind-expected.txt: Removed.
  • js/regress/function-bind.html: Removed.
  • js/regress/script-tests/function-bind.js: Removed.
3:36 PM Changeset in webkit [167164] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[WK2] Dispatch to main thread's run loop to handle cookie requests.
https://bugs.webkit.org/show_bug.cgi?id=131524

Reviewed by Brady Eidson.

When using synchronous network APIs from the main thread (e.g., -[NSImage
initWithContentsOfURL:]) our cookie shim would attempt to dispath_async
to the main thread to handle the cookie request, and block against the original
request. CFNetwork is still servicing the run loop however, so rather than
dispatch_async to the main queue, use the RunLoop to dispatch to the main thread.

  • Shared/mac/CookieStorageShim.mm:

(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):

3:29 PM Changeset in webkit [167163] by Lucas Forschler
  • 2 edits in tags/Safari-538.26.5/Source/WebCore

Merged r167160.

3:23 PM Changeset in webkit [167162] by mmaxfield@apple.com
  • 1 edit in trunk/Source/WebCore/ChangeLog

Build Fix after r167151.

Unreviewed.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyAlternativeTextToRange):

3:17 PM Changeset in webkit [167161] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[EME][Mac] Using KeySession.update([renew]) should trigger KeyMessage event instead of NeedKey event
https://bugs.webkit.org/show_bug.cgi?id=131527

Reviewed by Eric Carlson.

Rather than triggering a needKey() event, necessatating the creation
of an entirely new MediaKeySession, cause a new key request to be
created by sending the same initData back into the AVSampleDataParser.

Also, do some drive-by clean up suggested by Darin in the review for
r166509.

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

(WebCore::isEqual): Support an alloc-free equality check between

Uint8Array and static strings.

(WebCore::CDMSessionMediaSourceAVFObjC::update):

3:13 PM Changeset in webkit [167160] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix (r167151): Do not dereference Node::document() before passing to Range::create()
<https://webkit.org/b/131475>

Fixes the following build failure:

WebCore/editing/AlternativeTextController.cpp:275:71: error: indirection requires pointer operand ('WebCore::Document' invalid)

int paragraphStartIndex = TextIterator::rangeLength(Range::create(*rootNode.document(), &rootNode, 0, paragraphRangeContainingCorrection.get()->startContainer(), paragraphRangeContainingCorrection.get()->startOffset()).get());

~

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyAlternativeTextToRange):
Remove unneeded '*' operator since Node::document() returns a
Document& and Range::create() accepts a Document& for its first
argument.

3:07 PM Changeset in webkit [167159] by Lucas Forschler
  • 2 edits
    1 copy in tags/Safari-538.26.5

Merged r167151.

3:02 PM Changeset in webkit [167158] by Lucas Forschler
  • 5 edits in tags/Safari-538.26.5/Source

Versioning.

3:01 PM Changeset in webkit [167157] by Brian Burg
  • 3 edits
    1 add in trunk

Web Replay: memoize nondeterministic attributes of the Navigator interface
https://bugs.webkit.org/show_bug.cgi?id=131340

Reviewed by Timothy Hatcher.

.:

  • ManualTests/inspector/replay-window-navigator-basic.html: Added.

Source/WebCore:

Most attributes of window.navigator do not change very often, but they
could be easily changed by the user or embedder. So, memoize attribute values.

This change does not include navigator.mimeTypes and navigator.plugins,
which will be handled at a different level. <https://webkit.org/b/131341>

Test: ManualTests/inspector/replay-window-navigator-basic.html

  • page/Navigator.idl: Add Nondeterministic attribute.
2:58 PM April 2014 Meeting edited by ddkilzer@apple.com
(diff)
2:58 PM Changeset in webkit [167156] by Lucas Forschler
  • 1 copy in tags/Safari-538.26.5

New Tag.

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

Make the stylebot happier with r167154.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
2:55 PM Changeset in webkit [167154] by timothy_horton@apple.com
  • 9 edits in trunk/Source/WebKit2

[iOS WebKit2] Expose a simplified zoom-to-rect to the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=131563

Reviewed by Simon Fraser.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::zoomToRect):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::zoomToRect):

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

(WebKit::WebPage::zoomToRect):
Add a simple message that calls WKContentView's zoom-to-rect code given just a rect and min/max scale.
We will use the center of the rect as the zoom origin, and will try to show the whole rect.

2:50 PM Changeset in webkit [167153] by jer.noble@apple.com
  • 10 edits in trunk/Source

[iOS][WK2] Videos should animate into and out of fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=131497

Reviewed by Simon Fraser.

Source/WebCore:

Use AVPlayerViewController's new enterFullScreenWithCompletionHandler: and exitFullScreenWithCompletionHandler:
methods to animate into and out of full screen. To do so, use the provided initialFrame and finalFrame screen
rects to correctly place the AVPlayerViewController's view before entering or exiting fullscreen.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(-[WebVideoFullscreenController enterFullscreen:]): Pass the media element's screen rect.
(-[WebVideoFullscreenController exitFullscreen]): Ditto.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerController playerViewController:shouldExitFullScreenWithReason:]): Renamed from shouldDismissWithReason.
(WebVideoFullscreenInterfaceAVKit::enterFullscreen): Use the new AVKit APIs.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen): Ditto.

  • WebCore.exp.in: Modify the exported symbols for enter and exitFullscreen.

Source/WebKit2:

Pass a starting rect for the enterFullscreen animation and an ending rect
for the exitFullscreen animation.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.h:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::enterFullscreenWithID): Pass initialFrame.

  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::screenRectOfContents): Casts node -> element and returns its screenRect().
(WebKit::WebVideoFullscreenManager::enterFullscreenForNode): Pass initialFrame.
(WebKit::WebVideoFullscreenManager::exitFullscreenForNode): Pass finalFrame.

2:41 PM Changeset in webkit [167152] by timothy_horton@apple.com
  • 16 edits in trunk/Source

Support document-relative and custom-frame page overlays
https://bugs.webkit.org/show_bug.cgi?id=131560
<rdar://problem/16595556>

Reviewed by Simon Fraser.

Add "document-relative" overlays, which attach to (and scroll with) the document,
and can be given a frame rect within the document to avoid overallocation of backing store.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::didChangeScrollOffset):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mainFrame):
(WebKit::WebPage::mainFrameView):
(WebKit::WebPage::didChangeScrollOffsetForFrame):

  • WebProcess/WebPage/WebPage.h:

Let the PageOverlayController know *which* frame scrolled, instead of "any frame".

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindUIAfterPageScroll):
Factor out shared code.

(WebKit::FindController::willMoveToWebPage):
(WebKit::FindController::drawRect):
We can use clearRect() instead of a transparency layer and fillRect().
I've looked through all the other overlay clients I know of and none of them
depend on having a transparency layer at the overlay level.

  • WebProcess/WebPage/PageOverlay.cpp:

(WebKit::PageOverlay::create):
(WebKit::PageOverlay::PageOverlay):
(WebKit::PageOverlay::bounds):
(WebKit::PageOverlay::frame):
(WebKit::PageOverlay::setFrame):
(WebKit::PageOverlay::drawRect):
Add OverlayType, which allows creation of Document or View relative overlays.
All overlays up to this point are View relative, so we default to that.
Document-relative overlays scroll with the page instead of repainting as
the page scrolls. They can also be given an explicit frame, allowing them
to be smaller than the entire document.

  • WebProcess/WebPage/PageOverlay.h:

(WebKit::PageOverlay::overlayType):
(WebKit::PageOverlay::webPage):
(WebKit::PageOverlay::client): Deleted.

  • WebProcess/WebPage/PageOverlayController.cpp:

(WebKit::PageOverlayController::initialize):
(WebKit::PageOverlayController::installPageOverlay):
(WebKit::PageOverlayController::uninstallPageOverlay):
(WebKit::PageOverlayController::updateForceSynchronousScrollLayerPositionUpdates):
(WebKit::updateOverlayGeometry):
(WebKit::PageOverlayController::setPageOverlayNeedsDisplay):
(WebKit::PageOverlayController::didChangeViewSize):
(WebKit::PageOverlayController::didChangeDocumentSize):
(WebKit::PageOverlayController::didChangeDeviceScaleFactor):
(WebKit::PageOverlayController::didScrollFrame):
(WebKit::PageOverlayController::flushPageOverlayLayers):
(WebKit::PageOverlayController::didChangeOverlayFrame):
Keep two overlay root layers - one for view-relative
and one for document-relative overlays.
Don't force synchronous scrolling if we only have document-relative overlays.
Update the overlay's position as well as its size whenever necessary.
Update document-relative overlay geometry when the document size changes.
Only explicitly flush view-relative overlays; document-relative ones
are plugged into the WebCore layer tree and flushed along with the page.

  • WebProcess/WebPage/PageOverlayController.h:

(WebKit::PageOverlayController::documentOverlayRootLayer):
(WebKit::PageOverlayController::viewOverlayRootLayer):

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

(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
(WebKit::RemoteLayerTreeDrawingArea::mainFrameContentSizeChanged):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
Let the PageOverlay controller know when the document size changes.
When we set up compositing, push the document overlay root layer
down into WebCore.

  • WebCore.exp.in:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer):

  • rendering/RenderLayerCompositor.h:

Add the concept of a document overlay layer, which is plugged in as the
last child of the root content layer. Expose it to WebKit2.

2:35 PM Changeset in webkit [167151] by mmaxfield@apple.com
  • 2 edits
    1 add in trunk

Autocorrection causes ASSERT when replacing alternative string
https://bugs.webkit.org/show_bug.cgi?id=131475

Reviewed by Ryosuke Niwa.

In AlternativeTextController::applyAlternativeTextToRange(), we attempt to create
a Range that crosses from outside of a shadow root to inside of one. Instead,
we should keep the Range entirely within the shadow root.

Test: ManualTests/autocorrection/autocorrection-accept-crash.html

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyAlternativeTextToRange):

2:27 PM Changeset in webkit [167150] by hmuller@adobe.com
  • 4 edits
    2 adds in trunk

[CSS Shapes] shape-outside from image doesn't load properly
https://bugs.webkit.org/show_bug.cgi?id=131491

Reviewed by Bem Jones-Bey.

Source/WebCore:

Make RenderImage::imageChanged() call super if there's a shape-outside
image because the shape-outside imageChanged() logic is in RenderBox.

Test: http/tests/css/shape-image-file.html

  • rendering/RenderElement.h:

(WebCore::RenderElement::hasShapeOutside):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageChanged):

LayoutTests:

  • http/tests/css/shape-image-file-expected.html: Added.
  • http/tests/css/shape-image-file.html: Added.
2:11 PM Changeset in webkit [167149] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[ASan] Build broke because libCompileRuntimeToLLVMIR.a links to libclang_rt.asan_osx_dynamic.dylib
<http://webkit.org/b/131556>
<rdar://problem/16591856>

Reviewed by Brent Fulgham.

  • Configurations/CompileRuntimeToLLVMIR.xcconfig: Clear

OTHER_LDFLAGS so the ASan build does not try to link to
libclang_rt.asan_osx_dynamic.dylib.

2:09 PM Changeset in webkit [167148] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Aggregate multiple "respondToChangedSelection" calls to one scan for telephone numbers
https://bugs.webkit.org/show_bug.cgi?id=131559

Reviewed by Gavin Barraclough.

No new tests (Perf-only change to an untested feature)

  • editing/Editor.cpp:

(WebCore::Editor::Editor):
(WebCore::Editor::respondToChangedSelection): Start a one shot timer for scanSelectionForTelephoneNumbers

instead of scanning synchronously.

(WebCore::Editor::scanSelectionForTelephoneNumbers):

  • editing/Editor.h:
2:01 PM Changeset in webkit [167147] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Try to fix windows build.

Patch by Antti Koivisto <Antti Koivisto> on 2014-04-11

  • platform/graphics/ca/GraphicsLayerCA.h:
1:58 PM Changeset in webkit [167146] by Antti Koivisto
  • 1 edit in trunk/Source/WebCore/ChangeLog

Try to fix windows build.

  • platform/graphics/ca/GraphicsLayerCA.h:
1:49 PM April 2014 Meeting edited by Bem Jones-Bey
(diff)
1:42 PM Changeset in webkit [167145] by Brent Fulgham
  • 8 edits
    2 adds in trunk/Source/WebCore

Regression: media controls and status messages are no longer localized.
https://bugs.webkit.org/show_bug.cgi?id=120956

Reviewed by Jer Noble.

  • English.lproj/mediaControlsLocalizedStrings.js: Added.

(mediaControlsLocalizedStrings): Moved from mediaControlsApple.js.

  • English.lproj/mediaControlsLocalizedStringsiOS.js: Added.

(mediaControlsLocalizedStringsiOS): Moved from mediaControlsiOS.js.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.UIString): Get strings from external file.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.UIString): Ditto.

  • WebCore.vcxproj/copyWebCoreResourceFiles.cmd: Copy to Windows bundle.
  • WebCore.xcodeproj/project.pbxproj: Copy new files to bundle.
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsScript): Load the locale-specific
string resource when loading the media controls.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsScript): Ditto.

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::mediaControlsScript): Ditto.

1:36 PM Changeset in webkit [167144] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Build fix after r167138

  • platform/graphics/ca/GraphicsLayerCA.h: The TileController is

only available on Mac/Cocoa builds.

1:33 PM Changeset in webkit [167143] by psolanki@apple.com
  • 3 edits in trunk/Source/WebKit2

[iOS WebKit2]: Share NSURLCache directory for webkit processes
https://bugs.webkit.org/show_bug.cgi?id=131513
<rdar://problem/16420859>

Reviewed by Alexey Proskuryakov.

Use iOS specific NSURLCache API to share the cache directory used by the networking process,
web process and Safari.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

1:29 PM April 2014 Meeting edited by Bem Jones-Bey
(diff)
1:24 PM Changeset in webkit [167142] by mark.lam@apple.com
  • 20 edits
    2 adds in trunk

JSMainThreadExecState::call() should clear exceptions before returning.
<https://webkit.org/b/131530>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Added a version of JSC::call() that return any uncaught exception instead
of leaving it pending in the VM.

As part of this change, I updated various parts of the code base to use the
new API as needed.

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptFunctionCall::call):

  • ScriptFunctionCall::call() is only used by the inspector to inject scripts. The injected scripts that will include Inspector scripts that should catch and handle any exceptions that were thrown. We should not be seeing any exceptions returned from this call. However, we do have checks for exceptions in case there are bugs in the Inspector scripts which allowed the exception to leak through. Hence, it is proper to clear the exception here, and only record the fact that an exception was seen (if present).
  • bindings/ScriptFunctionCall.h:
  • inspector/InspectorEnvironment.h:
  • runtime/CallData.cpp:

(JSC::call):

  • runtime/CallData.h:

Source/WebCore:

Test: fast/dom/regress-131530.html

Previously, JSMainThreadExecState::call() did not clear any pending
exceptions in the VM before returning. On returning, the
JSMainThreadExecState destructor may re-enter the VM to notify
MutationObservers. This may result in a crash because the VM expects
exceptions to be cleared at entry.

We now change JSMainThreadExecState::call() to return the exception
(if present) via an argument, and clear it from the VM before returning.

As part of this change, I updated various parts of the code base to use the
new API as needed.

  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSDOMGlobalObjectTask.cpp:
  • Assert that there's no unhandled exception after the Microtask returns. See comment for WebCore::JSMainThreadExecState::runTask below for more details.
  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSHTMLDocumentCustom.cpp:

(WebCore::JSHTMLDocument::open):

  • Document.open() cannot be the first function on the JS stack. Hence, there is no need to use JSMainThreadExecState to call into the VM, as this is only needed to catch the event of returning from the first function for the purpose of notifying MutationObservers. Change to call JSC::call() directly.
  • bindings/js/JSMainThreadExecState.cpp:

(WebCore::functionCallHandlerFromAnyThread):

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadExecState::call):
(WebCore::JSMainThreadExecState::evaluate):

  • Remove the explicitly acquisition of the JSLock here because we now acquire the JSLock as part of the JSMainThreadExecState instance.

(WebCore::JSMainThreadExecState::runTask):

  • Added an assert to verify that the task does not return with an unhandled exception. Currently, the only Microtask in use is for the Promise implementation, which will eat the exception before returning. This assertion is added here to verify that this contract does not inadvertantly change in the future.

(WebCore::JSMainThreadExecState::JSMainThreadExecState):

  • Now acquires the JSLock as well since by definition, we're only instantiating the JSMainThreadExecState because we're about to enter the VM.
  • bindings/js/JSMutationCallback.cpp:

(WebCore::JSMutationCallback::call):

  • bindings/js/JSNodeFilterCondition.cpp:

(WebCore::JSNodeFilterCondition::acceptNode):

  • acceptNode() is only used in the TreeWalker and NodeIterator APIs which cannot be the first function on the JS stack. Hence, we should call JSC::call() directly instead of going through JSMainThreadExecState.
  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

  • bindings/objc/WebScriptObject.mm:

(WebCore::addExceptionToConsole):
(-[WebScriptObject callWebScriptMethod:withArguments:]):

LayoutTests:

  • fast/dom/regress-131530-expected.txt: Added.
  • fast/dom/regress-131530.html: Added.
1:22 PM Changeset in webkit [167141] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac] Add IconServices to WebProcess sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=131558
<rdar://problem/16552397>

Reviewed by Brady Eidson.

  • WebProcess/com.apple.WebProcess.sb.in:
1:20 PM April 2014 Meeting edited by Bem Jones-Bey
(diff)
1:17 PM April 2014 Meeting edited by Bem Jones-Bey
(diff)
1:05 PM Changeset in webkit [167140] by Brian Burg
  • 2 edits
    10 adds in trunk/Source/WebCore

Web Replay: CodeGeneratorJS should guard includes of replay-related headers
https://bugs.webkit.org/show_bug.cgi?id=131407

Reviewed by Timothy Hatcher.

This patch adds guards to headers that are only required by generated replay code
that is itself guarded. Other ports probably haven't added the headers to their
build files, so we don't want to emit the unused header includes.

This patch also converts generated uses of DEFINE_STATIC_LOCAL to NeverDestroyed<T>.
Finally, a new bindings test was added to document changes to generated replay code.

Test: Source/WebCore/bindings/scripts/test/TestNondeterministic.idl

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateImplementationFunctionCall):

  • bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.h: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.symbols: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestNondeterministicPrivate.h: Added.
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp: Added.
  • bindings/scripts/test/JS/JSTestNondeterministic.h: Added.
  • bindings/scripts/test/ObjC/DOMTestNondeterministic.h: Added.
  • bindings/scripts/test/ObjC/DOMTestNondeterministic.mm: Added.
  • bindings/scripts/test/ObjC/DOMTestNondeterministicInternal.h: Added.
  • bindings/scripts/test/TestNondeterministic.idl: Added.
12:04 PM Changeset in webkit [167139] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

Support for audio and video tracks was added on r158436. Stop skipping the following tests:

media/track/audio-track.html
media/track/video-track.html

Update bug number for media/track/track*in-band*.html tests

Report and update text expectations for new failing tests:

media/track/track-remove-track.html
fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-svg.html
media/media-event-listeners.html

Update timeout expectation for media/video-controls-captions.html

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

  • platform/gtk/TestExpectations:
11:58 AM Changeset in webkit [167138] by Antti Koivisto
  • 16 edits in trunk/Source

Pipe initial scale factor to TileController
https://bugs.webkit.org/show_bug.cgi?id=131521

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.exp.in:
  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::setZoomedOutPageScaleFactor):

  • page/Page.h:

(WebCore::Page::zoomedOutPageScaleFactor):

  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::zoomedOutPageScaleFactor):

  • platform/graphics/TiledBacking.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateContentsScale):

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

(WebCore::TileController::TileController):
(WebCore::TileController::setContentsScale):
(WebCore::TileController::setZoomedOutContentsScale):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::zoomedOutPageScaleFactor):

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

(WebCore::RenderLayerCompositor::zoomedOutPageScaleFactor):

  • rendering/RenderLayerCompositor.h:

Source/WebKit2:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::viewportConfigurationChanged):

11:39 AM Changeset in webkit [167137] by oliver@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Add BuiltinLog function to make debugging builtins easier
https://bugs.webkit.org/show_bug.cgi?id=131550

Reviewed by Andreas Kling.

Add a logging function that builtins can use for debugging.

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

(JSC::JSGlobalObject::reset):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncBuiltinLog):

  • runtime/JSGlobalObjectFunctions.h:
11:32 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
11:23 AM Changeset in webkit [167136] by Chris Fleizach
  • 2 edits in trunk/Source/WebKit2

AX: WebProcess at com.apple.WebCore: WebCore::AXObjectCache::rootObject + 18
https://bugs.webkit.org/show_bug.cgi?id=131522

Reviewed by Anders Carlsson.

Protect against documents that have had their render tree destroyed, and no longer return a valid cache.

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:
11:18 AM Changeset in webkit [167135] by Chris Fleizach
  • 3 edits
    2 adds in trunk

Heap-use-after-free in WebCore::SpeechSynthesisUtterance::startTime
https://bugs.webkit.org/show_bug.cgi?id=131482

Reviewed by David Kilzer.

Source/WebCore:

Hold onto the utterance until it has time to fire, in case other references have been removed.

Merged from Blink r171077 by <dmazzoni@chromium.org>

Test: platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::handleSpeakingCompleted):

LayoutTests:

  • platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash-expected.txt: Added.
  • platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html: Added.
10:56 AM Changeset in webkit [167134] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

Avoid Vector copies in RenderGrid::placeItemsOnGrid()
https://bugs.webkit.org/show_bug.cgi?id=131452

Reviewed by Sergio Villar Senin.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid): Take in a const reference to the
Vector object. Make the for-loop that iterates through it range-based.
(WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid): Ditto.

  • rendering/RenderGrid.h:
10:48 AM Changeset in webkit [167133] by commit-queue@webkit.org
  • 15 edits
    1 move
    1 add
    1 delete in trunk/Source/WebCore

Web Inspector: Remove shared PageScriptDebugServer, create per-Page
https://bugs.webkit.org/show_bug.cgi?id=131523

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

Having a shared PageScriptDebugServer was causing issues when we called
JSC::Debugger::clearBreakpoints() closing one inspector while another
is open for another WebCore::Page in the same process. Having the same
JSC::Debugger underlying multiple InspectorDebuggerAgent instances
means that when clearBreakpoints is called, the real JSC breakpoints
underlying other InspectorDebuggerAgent's get removed. When those
InspectorDebuggerAgents attempt to remove their breakpoints they
encounter unexpected issues.

This entirely rebuilds PageScriptDebugServer to be per-Page instead
of shared across all pages. So take this opportunity to move the
file from WebCore/bindings/js to WebCore/inspector.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/PageScriptDebugServer.h: Removed.
  • inspector/InspectorAllInOne.cpp:

Move PageScriptDebugServer.

  • inspector/InspectorController.h:
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
Set the ScriptDebugServer directly on some other agents that
were previously using the global debug server.

  • inspector/InspectorProfilerAgent.h:

(WebCore::InspectorProfilerAgent::scriptDebugServer):

  • inspector/InspectorProfilerAgent.cpp:

(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
(WebCore::InspectorProfilerAgent::setScriptDebugServer):
(WebCore::InspectorProfilerAgent::start):
(WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend): Deleted.

  • inspector/InspectorTimelineAgent.h:
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::InspectorTimelineAgent::setPageScriptDebugServer):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
Refactor these two agents to take in a script debug server.
The server is expected to be set during initialization and
to always be valid (like debug server on RuntimeAgent).

  • inspector/PageDebuggerAgent.h:
  • inspector/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::PageDebuggerAgent):
(WebCore::PageDebuggerAgent::startListeningScriptDebugServer):
(WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
(WebCore::PageDebuggerAgent::scriptDebugServer):
Have PageDebuggerAgent hold the PageScriptDebugServer.
Update for the simplified interfaces.

  • inspector/PageScriptDebugServer.h: Added.
  • inspector/PageScriptDebugServer.cpp: Renamed from Source/WebCore/bindings/js/PageScriptDebugServer.cpp.

(WebCore::PageScriptDebugServer::PageScriptDebugServer):
(WebCore::PageScriptDebugServer::addListener):
(WebCore::PageScriptDebugServer::removeListener):
(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
(WebCore::PageScriptDebugServer::didPause):
(WebCore::PageScriptDebugServer::didContinue):
(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
(WebCore::PageScriptDebugServer::runEventLoopWhilePausedInternal):
(WebCore::PageScriptDebugServer::isContentScript):
(WebCore::PageScriptDebugServer::reportException):
(WebCore::PageScriptDebugServer::setJavaScriptPaused):
Model after JSGlobalObjectScriptDebugServer, the PageScriptDebugServer
holds a reference to a Page.

10:09 AM Changeset in webkit [167132] by betravis@adobe.com
  • 14 edits in trunk

[CSS Shapes] inset args and radial args should serialize to the simplest form
https://bugs.webkit.org/show_bug.cgi?id=129825

Reviewed by Dirk Schulze.

Source/WebCore:

Modify inset serialization to omit components where possible. The insets simplify
according to the margin shorthand, while the corner radii simplify according to
the border-radius shorthand.

Modifying existing parsing tests.

  • css/CSSBasicShapes.cpp:

(WebCore::buildInsetRadii): Add the necessary radii, omitting components where possible.
(WebCore::buildInsetString): Omit components where possible.

LayoutTests:

Modify tests to use the shortened inset serialization.

  • animations/resources/animation-test-helpers.js: Accept shortened inset forms.
  • css3/masking/clip-path-animation-expected.txt:
  • css3/masking/clip-path-animation.html:
  • fast/masking/parsing-clip-path-shape-expected.txt:
  • fast/masking/parsing-clip-path-shape.html:
  • fast/shapes/parsing/parsing-shape-lengths-expected.txt:
  • fast/shapes/parsing/parsing-shape-lengths.html:
  • fast/shapes/parsing/parsing-shape-outside-expected.txt:
  • fast/shapes/parsing/parsing-test-utils.js:
  • fast/shapes/shape-outside-floats/shape-outside-animation-expected.txt:
  • fast/shapes/shape-outside-floats/shape-outside-animation.html:
9:52 AM Changeset in webkit [167131] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

"playbackTime" parameter is not present in AudioProcessingEvent Interface as per W3C spec
https://bugs.webkit.org/show_bug.cgi?id=105518

Patch by Praveen R Jadhav <praveen.j@samsung.com> on 2014-04-11
Reviewed by Jer Noble.

Source/WebCore:

Attribute "playbackTime" in AudioProcessingEvent implemented to pass playback time of
audiobuffer associated with ScriptProcessorNode of the context.

Reference: https://codereview.chromium.org/210973002

Spec: http://www.w3.org/TR/webaudio/#AudioProcessingEvent

Test: webaudio/audioprocessingevent.html

  • Modules/webaudio/AudioProcessingEvent.cpp:

(WebCore::AudioProcessingEvent::create):
(WebCore::AudioProcessingEvent::AudioProcessingEvent):

  • Modules/webaudio/AudioProcessingEvent.h:

(WebCore::AudioProcessingEvent::playbackTime):

  • Modules/webaudio/AudioProcessingEvent.idl:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::fireProcessEvent):

LayoutTests:

Test case added to check AudioProcessingEvent attributes.

  • webaudio/audioprocessingevent-expected.txt: Added.
  • webaudio/audioprocessingevent.html: Added.
9:51 AM Changeset in webkit [167130] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

[Mac] Prevent crash when exiting fullscreen mode
https://bugs.webkit.org/show_bug.cgi?id=131528

Reviewed by Jer Noble.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
Clean up the _scaleAnimation controller, not just the _fadeAnimation controller.
(-[WKFullScreenWindowController close]): If we are doing an immediate
close of the view, we need to stop animations so we avoid any
final timer events from interacting with invalid window handles.

9:50 AM Changeset in webkit [167129] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Subpixel rendering: WK1: Trail of cruft in redraw during animations.
https://bugs.webkit.org/show_bug.cgi?id=131525

Reviewed by Simon Fraser.

Use enclosing rect instead of snapping to make sure the repaint rect always
covers the dirty area when painting is requested in a non-compositing RenderView.
This only applies to WK1 as WK2 has compositing RenderView and the repainting
is managed by RenderLayerBacking.

This is a temporary solution until after ScrollView/FrameView/RenderView
is transitioned to device pixels. (tracked here: webkit.org/b/131526).

Source/WebCore:

Test: fast/repaint/hidpi-block-width-change-leaves-cruft.html

  • rendering/RenderView.cpp:

(WebCore::RenderView::repaintViewRectangle):

LayoutTests:

  • fast/repaint/hidpi-block-width-change-leaves-cruft-expected.html: Added.
  • fast/repaint/hidpi-block-width-change-leaves-cruft.html: Added.
9:00 AM Changeset in webkit [167128] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

wk2-gtk does not display anything
https://bugs.webkit.org/show_bug.cgi?id=125558

Reviewed by Martin Robinson.

Remove fcntl call to set access mode flags on the duplicated files
descriptor. Those flags are ignored in Linux and make fcntl to
fail in FreeBSD. We should handle the case where the passed
protection is ReadOnly.
Thanks to Raphael Kubo da Costa who proposed the solution.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::createHandle):
(WebKit::accessModeFile): Deleted.

8:55 AM Changeset in webkit [167127] by Julien Brianceau
  • 5 edits in trunk/Source/JavaScriptCore

Fix LLInt for sh4 architecture (broken since C stack merge).
https://bugs.webkit.org/show_bug.cgi?id=131532

Reviewed by Mark Lam.

This patch fixes build and also implements sh4 parts for initPCRelative and
setEntryAddress macros introduced in http://trac.webkit.org/changeset/167094.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • offlineasm/instructions.rb:
  • offlineasm/sh4.rb:
8:43 AM Changeset in webkit [167126] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

WebGL: need error checking after texture uploads
https://bugs.webkit.org/show_bug.cgi?id=62902
rdar://problem/9640309

Reviewed by Brent Fulgham.

A followup to Darin's r167109. We need to also check for errors
in the texImage2D case.

This is difficult to reproducibly test because it would require
attempting to exhaust GPU memory.

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::compressedTexImage2D): Check for errors by calling
moveErrorsToSyntheticErrorList twice, once before and once after. If an error
occurred, explicitly mark the texture as invalid.
(WebCore::WebGLRenderingContext::texImage2DBase): Ditto.

  • html/canvas/WebGLTexture.cpp:

(WebCore::WebGLTexture::markInvalid): If the LevelInfo exists for this
mipmap level, then set the valid flag to false. There is a chance that
a previous call to texImage2D succeeded for this level, but it's probably
better to assume that is now invalid.

  • html/canvas/WebGLTexture.h: New markInvalid method.
6:20 AM Changeset in webkit [167125] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

Update test expectations for flaky tests timing out:

media/track/track-remove-active-cue-crash.html
media/media-ended.html
media/audio-mpeg-supported.html

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2014-04-11

  • platform/gtk/TestExpectations:
6:08 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
5:52 AM WebKitGTK/KeepingTheTreeGreen edited by Andres Gomez
Tanty won't have the needed time :( (diff)
5:51 AM WebKitGTK/KeepingTheTreeGreen edited by eocanha@igalia.com
(diff)
5:49 AM WebKitGTK/KeepingTheTreeGreen edited by eocanha@igalia.com
(diff)
5:44 AM Changeset in webkit [167124] by krit@webkit.org
  • 1 edit
    2 adds in trunk/PerformanceTests

Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
https://bugs.webkit.org/show_bug.cgi?id=79659

Patch by Dirk Schulze <krit@webkit.org> on 2014-04-11
Reviewed by Andreas Kling.

Add performance tests for real this time.

  • Canvas/compositing-drawimage.html: Added.
  • Canvas/compositing-fillRect.html: Added.
5:37 AM Changeset in webkit [167123] by krit@webkit.org
  • 1 edit in trunk/PerformanceTests/ChangeLog

Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
https://bugs.webkit.org/show_bug.cgi?id=79659

Patch by Dirk Schulze <krit@webkit.org> on 2014-04-11
Reviewed by Andreas Kling.

Add performance tests for fillRect() and drawImage() on composited contexts.

  • Canvas/compositing-drawimage.html: Added.
  • Canvas/compositing-fillRect.html: Added.
3:52 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
3:50 AM Changeset in webkit [167122] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.4/Source/WebKit2

Merge r167116 - [GTK][WK2] Move Vector objects into WebEditorClient::executePendingEditorCommands() invocations
https://bugs.webkit.org/show_bug.cgi?id=131454

Reviewed by Carlos Garcia Campos.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::executePendingEditorCommands): Take a const reference of the Vector
object to avoid unnecessary copies. Also deploy two range-based for loops and efficiently move
the Editor::Command objects into the other Vector.

3:49 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
3:39 AM Changeset in webkit [167121] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.4

Merge r166924 - [SOUP] Control cookie management according ResourceRequest.allowCookies()
https://bugs.webkit.org/show_bug.cgi?id=131026

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-04-08
Reviewed by Sergio Villar Senin.

Source/WebCore:

Added per soup-message disabling of cookie jar manager when related ResourceRequest does not allow cookies (e.g. some cross-origin requests).

Patch is covered by unskipped test http/tests/xmlhttprequest/cross-origin-cookie-storage.html.

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateSoupMessageMembers): Added disabling of cookie jar manager if cookies are not allowed.

Source/WebKit2:

Added setting of accept cookies policy for the current soup network session cookie jar and all tracked sessions.
Moved the implementation of cookie policy setting from WebCookieManager to WebFrameNetworkingContext.

  • WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:

(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Moved implementation to WebCookieManager::platformSetHTTPCookieAcceptPolicy.

  • WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:

(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Moved implementation from WebCookieManager::platformSetHTTPCookieAcceptPolicy and set the cookie jar accept policy to the cookie jars of all sessions in addition to the default cookie jar.

  • WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h: Added method prototype.

LayoutTests:

  • platform/efl/TestExpectations: Unskipped test http/tests/xmlhttprequest/cross-origin-cookie-storage.html.
  • platform/gtk/TestExpectations: Ditto.
3:22 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
3:22 AM Changeset in webkit [167120] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.4/Source/WebCore

Unreviewed. [GTK] Plugin process crashes when loading totem plugin
https://bugs.webkit.org/show_bug.cgi?id=131357

Make Netscape browser functions static to avoid conflicts with
plugins defining those functions as well.

  • GNUmakefile.list.am: Do not build npapi.cpp.
  • plugins/PluginPackage.cpp:

(WebCore::pluginViewForInstance):
(WebCore::NPN_MemAlloc):
(WebCore::NPN_MemFree):
(WebCore::NPN_MemFlush):
(WebCore::NPN_ReloadPlugins):
(WebCore::NPN_RequestRead):
(WebCore::NPN_GetURLNotify):
(WebCore::NPN_GetURL):
(WebCore::NPN_PostURLNotify):
(WebCore::NPN_PostURL):
(WebCore::NPN_NewStream):
(WebCore::NPN_Write):
(WebCore::NPN_DestroyStream):
(WebCore::NPN_UserAgent):
(WebCore::NPN_Status):
(WebCore::NPN_InvalidateRect):
(WebCore::NPN_InvalidateRegion):
(WebCore::NPN_ForceRedraw):
(WebCore::NPN_GetValue):
(WebCore::NPN_SetValue):
(WebCore::NPN_GetJavaEnv):
(WebCore::NPN_GetJavaPeer):
(WebCore::NPN_PushPopupsEnabledState):
(WebCore::NPN_PopPopupsEnabledState):
(WebCore::NPN_PluginThreadAsyncCall):
(WebCore::NPN_GetValueForURL):
(WebCore::NPN_SetValueForURL):
(WebCore::NPN_GetAuthenticationInfo):
(WebCore::NPN_PopUpContextMenu):

  • plugins/PluginPackage.h:

(WebCore::PluginPackage::browserFuncs): Add accessor to browser
function pointers.

  • plugins/PluginView.cpp:

(WebCore::PluginView::stop): Use browser function pointers instead
of NPN wrappers that are now private.
(WebCore::PluginView::getValueForURL): Ditto.

2:23 AM Changeset in webkit [167119] by mitz@apple.com
  • 7 edits in tags/Safari-538.28.2/Source/WebKit2

Merged r167096.

2014-04-10 Enrica Casucci <enrica@apple.com>

[iOS WebKit2] Support phraseboundary gesture recognizer for CJK.
https://bugs.webkit.org/show_bug.cgi?id=131493
<rdar://problem/16319583>

Reviewed by Benjamin Poulain.

On iOS it is possible with a gesture to change the selection
within the marked text.
Changing the selection triggers also the update of the inline candidates
over the keyboard area.
The patch adds the logic to decide whether the gesture can begin
as well as the code for the movement of
the selection within the marked range.
The gesture is allowed to start within a given radius from the marked
area.

  • Shared/InteractionInformationAtPosition.cpp:

(WebKit::InteractionInformationAtPosition::encode):
(WebKit::InteractionInformationAtPosition::decode):

  • Shared/InteractionInformationAtPosition.h:

(WebKit::InteractionInformationAtPosition::InteractionInformationAtPosition):

  • Shared/ios/GestureTypes.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::editorStateChanged):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView pointIsNearMarkedText:]):
(toGestureType):
(toUIWKGestureType):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture):
(WebKit::WebPage::getPositionInformation):

2:17 AM Changeset in webkit [167118] by mitz@apple.com
  • 5 edits in tags/Safari-538.28.2/Source

Versioning.

2:11 AM Changeset in webkit [167117] by mitz@apple.com
  • 1 copy in tags/Safari-538.28.2

New tag.

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

[GTK][WK2] Move Vector objects into WebEditorClient::executePendingEditorCommands() invocations
https://bugs.webkit.org/show_bug.cgi?id=131454

Reviewed by Carlos Garcia Campos.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::executePendingEditorCommands): Take a const reference of the Vector
object to avoid unnecessary copies. Also deploy two range-based for loops and efficiently move
the Editor::Command objects into the other Vector.

12:53 AM WebKitGTK/2.4.x edited by sergio@webkit.org
Stable branch not affected by 131471 (diff)
Note: See TracTimeline for information about the timeline view.