1. 08 Nov, 2013 40 commits
    • timothy_horton@apple.com's avatar
      Remote Layer Tree: RemoteLayerBackingStore partial repaint is broken for the tile cache · c016bd71
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123944
      
      Reviewed by Simon Fraser.
      
      Ensure that the tile cache retrieves repaint rects from the tile layer,
      not from the tiled backing layer.
      
      Rework RemoteLayerBackingStore painting to fix some rounding issues
      that would cause pixel cracks upon repaint, and to speed it up a bit.
      
      * Shared/mac/RemoteLayerBackingStore.h:
      Redefine RepaintRectList because we can't include WebLayer.h here yet.
      Remove createBackingStore, which was never implemented.
      Remove mapToContentCoordinates, because we don't need it on Mac.
      
      (WebKit::RemoteLayerBackingStore::paintingRects): Added.
      
      * Shared/mac/RemoteLayerBackingStore.mm:
      (RemoteLayerBackingStore::setNeedsDisplay):
      (RemoteLayerBackingStore::display):
      Stop using mapToContentCoordinates.
      
      (RemoteLayerBackingStore::drawInContext):
      Use clipping instead of painting the image multiple times.
      Never repaint more than the dirty region's bounds.
      Don't waste time with all of the drawNativeImage code, just use CG.
      Unindent the switch's cases.
      Store the rects we're painting so that enumerateRectsBeingDrawn can get them.
      Pixel-snap the rects we're painting.
      Clip the context before going to paint.
      
      * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
      (PlatformCALayerRemote::enumerateRectsBeingDrawn):
      * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
      Retrieve the rects currently being painted from our backing store, and
      transform them (mostly) according to the CTM, to match the transformation
      that will have occurred underneath wkCALayerEnumerateRectsBeingDrawnWithBlock.
      
      * platform/graphics/ca/PlatformCALayer.h:
      * platform/graphics/ca/mac/PlatformCALayerMac.h:
      * platform/graphics/ca/mac/PlatformCALayerMac.mm:
      (PlatformCALayerMac::enumerateRectsBeingDrawn):
      Allow the PlatformCALayer to decide how to enumerate rects to paint.
      
      * WebCore.exp.in:
      * platform/graphics/mac/WebLayer.h:
      Add RepaintRectList, remove some unnecessary WebCore::s.
      
      * platform/graphics/mac/WebLayer.mm:
      (WebCore::collectRectsToPaint):
      Factor collectRectsToPaint out; it just grabs the rects from
      the layer and makes the decision whether to repaint the bounds
      of the dirty region or just the subregions.
      
      Move calls to collectRectsToPaint() to callers of drawLayerContents(),
      so that TileController can collect rects from the appropriate source
      (the Tile layer) and other layers just continue grabbing them from
      their relevant layers.
      
      Make sure that the list that comes from collectRectsToPaint() always
      has at least one rect in it (appending the clip bounds if we don't
      want to repaint subregions) so we can simplify logic in drawLayerContents.
      
      (WebCore::drawLayerContents):
      Remove code to support CompositingCoordinatesBottomUp, as it's only
      used on Windows, so this Mac-specific code doesn't need to support it.
      
      Simplify logic given that dirtyRects will always be non-empty.
      
      (-[WebLayer drawInContext:]):
      (-[WebSimpleLayer setNeedsDisplayInRect:]):
      * platform/graphics/ca/mac/TileController.mm:
      (WebCore::TileController::platformCALayerPaintContents):
      Adopt collectRectsToPaint.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158982 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c016bd71
    • fpizlo@apple.com's avatar
      Get rid of the bizarre Darwin/x86-only... · dbc7c4d8
      fpizlo@apple.com authored
      Get rid of the bizarre Darwin/x86-only MacroAssembler::shouldBlindForSpecificArch(uintptr_t) overload
      https://bugs.webkit.org/show_bug.cgi?id=124087
      
      Reviewed by Michael Saboff.
      
      * assembler/MacroAssembler.h:
      (JSC::MacroAssembler::shouldBlindPointerForSpecificArch):
      (JSC::MacroAssembler::shouldBlind):
      * assembler/MacroAssemblerX86Common.h:
      (JSC::MacroAssemblerX86Common::shouldBlindForSpecificArch):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158981 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dbc7c4d8
    • andersca@apple.com's avatar
      Implement more KeyedEncoder functionality · 955aabc0
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124089
      
      Reviewed by Beth Dakin.
      
      Source/WebCore:
      
      * bindings/js/SerializedScriptValue.h:
      * history/HistoryItem.cpp:
      (WebCore::HistoryItem::encodeBackForwardTreeNode):
      * platform/KeyedCoding.h:
      (WebCore::KeyedEncoder::encodeConditionalObject):
      
      Source/WebKit2:
      
      * Shared/cf/KeyedEncoder.cpp:
      (WebKit::KeyedEncoder::encodeBytes):
      (WebKit::KeyedEncoder::encodeInt32):
      (WebKit::KeyedEncoder::encodeFloat):
      * Shared/cf/KeyedEncoder.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158980 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      955aabc0
    • eric.carlson@apple.com's avatar
      getCueAsHTML() on an empty cue should return a document fragment · 1ff486e6
      eric.carlson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124084
      
      Reviewed by Darin Adler.
      
      Source/WebCore: 
      
      Test: media/track/track-cue-empty-cue-text.html
      
      * html/track/WebVTTParser.cpp:
      (WebCore::WebVTTParser::createDocumentFragmentFromCueText): Don't return early when the
          passed an empty string.
      
      LayoutTests: 
      
      * media/track/track-cue-empty-cue-text-expected.txt: Added.
      * media/track/track-cue-empty-cue-text.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158979 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1ff486e6
    • andersca@apple.com's avatar
      KeyedEncoder should be able to encoder objects · d66ca8b7
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124085
      
      Reviewed by Sam Weinig.
      
      Source/WebCore:
      
      * history/HistoryItem.cpp:
      (WebCore::HistoryItem::encodeBackForwardTree):
      Encode the root object.
      
      (WebCore::HistoryItem::encodeBackForwardTreeNode):
      Encode the target.
      
      * history/HistoryItem.h:
      Add new members.
      
      * platform/KeyedCoding.h:
      (WebCore::KeyedEncoder::encodeObject):
      Call beginObject, call the functor and then call endObject().
      
      Source/WebKit2:
      
      Add a dictionary stack to KeyedEncoder that's pushed and popped by
      beginObject/endObject.
      
      * Shared/cf/KeyedEncoder.cpp:
      (WebKit::KeyedEncoder::KeyedEncoder):
      (WebKit::KeyedEncoder::~KeyedEncoder):
      (WebKit::KeyedEncoder::encodeUInt32):
      (WebKit::KeyedEncoder::encodeString):
      (WebKit::KeyedEncoder::beginObject):
      (WebKit::KeyedEncoder::endObject):
      * Shared/cf/KeyedEncoder.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158978 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d66ca8b7
    • fpizlo@apple.com's avatar
      FTL should support NewArrayBuffer · ae909c1e
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124067
      
      Reviewed by Michael Saboff.
              
      This expanded coverage and revealed some bugs.
              
      This revealed a bug in FTL::OSRExitCompiler where it was assuming that it could save
      the framePointer in regT3 even though DFG::reifyInlinedCallFrames() would clobber it.
      It turns out that this can be fixed by just completely restoring the stack prior to
      doing reifyInlineCallFrames().
              
      I used this as an opportunity to simplify NewArray. That revealed a bug; whenever we say
      lowJSValue() in there we need to use ManualOperandSpeculation since we're using it to
      rebox values even when we also have to do some speculations. The speculations are done
      at the top of compileNewArray().
              
      This also revealed a bug in StringCharAt() for the OOB case.
      
      * ftl/FTLAbstractHeapRepository.h:
      (JSC::FTL::AbstractHeapRepository::forIndexingType):
      * ftl/FTLCapabilities.cpp:
      (JSC::FTL::canCompile):
      * ftl/FTLIntrinsicRepository.h:
      * ftl/FTLLowerDFGToLLVM.cpp:
      (JSC::FTL::LowerDFGToLLVM::compileNode):
      (JSC::FTL::LowerDFGToLLVM::compileNewArray):
      (JSC::FTL::LowerDFGToLLVM::compileNewArrayBuffer):
      (JSC::FTL::LowerDFGToLLVM::compileStringCharAt):
      * ftl/FTLOSRExitCompiler.cpp:
      (JSC::FTL::compileStub):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158977 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ae909c1e
    • achicu@adobe.com's avatar
      Web Inspector: It should be possible to debug the Inspector code · 6fc29267
      achicu@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124065
      
      Reviewed by Timothy Hatcher.
      
      Source/WebKit2:
      
      When the script is paused, the debugger will pause all the pages in the same PageGroup.
      All the Inspector windows were created in the same PageGroup, so pausing one debugger
      would stop the other too.
      
      Added WebInspectorPageGroups to manage the PageGroups created for the Inspectors.
      The WebInspectors will now use the inspection "level" to figure out which PageGroup to use.
      The inspector that debugs the main page will use "__WebInspectorPageGroupLevel1__",
      the second inspector (that debugs the first inspector) will use "__WebInspectorPageGroupLevel2__" ...
      
      * UIProcess/WebInspectorProxy.cpp:
      (WebKit::WebInspectorPageGroups::shared):
      (WebKit::WebInspectorPageGroups::inspectorLevel):
      (WebKit::WebInspectorPageGroups::isInspectorPageGroup):
      (WebKit::WebInspectorPageGroups::inspectorPageGroupLevel):
      (WebKit::WebInspectorPageGroups::inspectorPageGroupForLevel):
      (WebKit::WebInspectorPageGroups::createInspectorPageGroup):
      (WebKit::WebInspectorProxy::WebInspectorProxy):
      (WebKit::WebInspectorProxy::inspectorPageGroup):
      (WebKit::WebInspectorProxy::isInspectorPage):
      (WebKit::WebInspectorProxy::canAttach):
      * UIProcess/WebInspectorProxy.h:
      
      LayoutTests:
      
      Added test to check that a second inspector window can be used to debug the first one.
      
      * inspector-protocol/debugger/nested-inspectors-expected.txt: Added.
      * inspector-protocol/debugger/nested-inspectors.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158976 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6fc29267
    • fpizlo@apple.com's avatar
      It should be easy to disable blinding on a per-architecture basis · 0cd24621
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124083
      
      Reviewed by Michael Saboff.
      
      * assembler/AbstractMacroAssembler.h:
      (JSC::AbstractMacroAssembler::haveScratchRegisterForBlinding):
      (JSC::AbstractMacroAssembler::scratchRegisterForBlinding):
      (JSC::AbstractMacroAssembler::canBlind):
      (JSC::AbstractMacroAssembler::shouldBlindForSpecificArch):
      * assembler/MacroAssembler.h:
      (JSC::MacroAssembler::shouldBlind):
      (JSC::MacroAssembler::store32):
      (JSC::MacroAssembler::branch32):
      (JSC::MacroAssembler::branchAdd32):
      (JSC::MacroAssembler::branchMul32):
      * assembler/MacroAssemblerX86Common.h:
      (JSC::MacroAssemblerX86Common::canBlind):
      * assembler/MacroAssemblerX86_64.h:
      (JSC::MacroAssemblerX86_64::haveScratchRegisterForBlinding):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158975 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0cd24621
    • weinig@apple.com's avatar
      Teach CanvasObserver about references · 6b952d67
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124082
      
      Reviewed by Anders Carlsson.
      
      * css/CSSCanvasValue.cpp:
      * css/CSSCanvasValue.h:
      * html/HTMLCanvasElement.cpp:
      * html/HTMLCanvasElement.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158972 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6b952d67
    • andersca@apple.com's avatar
      Begin stubbing out a KeyedEncoder class in WebCore · 0a62cead
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124079
      
      Reviewed by Sam Weinig.
      
      Source/WebCore:
      
      * WebCore.exp.in:
      Add symbol needed by WebCore.
      
      * WebCore.xcodeproj/project.pbxproj:
      Add new header file.
      
      * history/HistoryItem.cpp:
      (WebCore::HistoryItem::encodeBackForwardTree):
      * history/HistoryItem.h:
      Add an encodeBackForwardTree overload that takes a KeyedEncoder object. Encode the version.
      
      * platform/KeyedCoding.h:
      Add a KeyedEncoder class that just has a single encodeUInt32 member function for now.
      
      Source/WebKit2:
      
      * Shared/KeyedEncoder.h: Removed.
      * Shared/cf/KeyedCodingValueCF.cpp: Removed.
      * Shared/cf/KeyedEncoder.cpp: Added.
      Remove old keyed encoders.
      
      (WebKit::createDictionary):
      Helper function to create a mutable dictionary.
      (WebKit::KeyedEncoder::KeyedEncoder):
      Create the root dictionary.
      
      (WebKit::KeyedEncoder::encodeUInt32):
      Create a CFNumberRef and add it to the dictionary.
      
      * Shared/cf/KeyedEncoder.h: Added.
      * WebKit2.xcodeproj/project.pbxproj:
      Add new files.
      
      * WebProcess/WebPage/WebBackForwardListProxy.cpp:
      (WebKit::updateBackForwardItem):
      Create a KeyedEncoder and encode the history tree.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158971 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0a62cead
    • beidson@apple.com's avatar
      Merge IDBTransactionBackendInterface and IDBTransactionBackendImpl · 37036791
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124077
      
      Reviewed by Alexey Proskuryakov.
      
      Source/WebCore:
      
      The abstraction is no longer needed.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * WebCore.xcodeproj/project.pbxproj:
      
      * Modules/indexeddb/IDBTransactionBackendInterface.h: Removed.
      
      * Modules/indexeddb/IDBTransactionBackend.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp.
      * Modules/indexeddb/IDBTransactionBackend.h: Renamed from Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h.
      
      * Modules/indexeddb/IDBBackingStoreInterface.h:
      * Modules/indexeddb/IDBCursorBackend.cpp:
      * Modules/indexeddb/IDBCursorBackend.h:
      * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
      * Modules/indexeddb/IDBDatabaseBackendImpl.h:
      * Modules/indexeddb/IDBFactoryBackendInterface.h:
      * Modules/indexeddb/IDBTransactionBackendOperations.h:
      * Modules/indexeddb/IDBTransactionCoordinator.cpp:
      * Modules/indexeddb/IDBTransactionCoordinator.h:
      * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
      * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
      
      Source/WebKit2:
      
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158969 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      37036791
    • simon.fraser@apple.com's avatar
      REGRESSION (r155660): Some Etherpad pages not scrollable with overlay scrollbars · f760ec12
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124075
      
      Reviewed by Beth Dakin.
      
      In r155660 I removed some scrollbar-related layouts when scrollbars
      are in overlay mode.
      
      However, ScrollView::updateScrollbars() has a case where we still need
      to do multiple pases, related to its "Never ever try to both gain/lose a
      scrollbar in the same pass" comment. When we avoid making a new scrollbar
      because the other was removed, we need to do another pass to bring the
      correct scrollbar back.
      
      Can't test overlay scrollbars in tests.
      
      * platform/ScrollView.cpp:
      (WebCore::ScrollView::updateScrollbars):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158968 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f760ec12
    • hmuller@adobe.com's avatar
      [CSS Shapes] Image valued shape-outside that extends vertically into the margin-box is top-clipped · aeafe619
      hmuller@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123769
      
      Reviewed by Dirk Schulze.
      
      Source/WebCore:
      
      Remove the assumption that Y coordinates are >= 0 from the RasterShapeIntervals class
      and correct its computeShapeMarginIntervals() method. The computeShapeMarginIntervals()
      method now generates intervals with Y coordinates that begin at the image shape's
      bounds.y - shape-margin, which may be less than 0.
      
      The RasterShapeIntervals::intervalsAt() method now offsets its Y coordinate parameter
      by the shape-margin. A non-const overload of the method was added to centralize all
      access to m_intervalLists.
      
      Test: fast/shapes/shape-outside-floats/shape-outside-floats-image-margin-004.html
            fast/shapes/shape-outside-floats/shape-outside-floats-image-margin-005.html
      
      * rendering/shapes/RasterShape.cpp:
      (WebCore::MarginIntervalGenerator::intervalAt): Don't clip X coordinates to 0 since they can extend into the margin-box.
      (WebCore::RasterShapeIntervals::appendInterval): Use the non-const intervalsAt() method.
      (WebCore::RasterShapeIntervals::uniteMarginInterval): Ditto.
      (WebCore::RasterShapeIntervals::computeShapeMarginIntervals): See above.
      * rendering/shapes/RasterShape.h:
      (WebCore::RasterShapeIntervals::RasterShapeIntervals): Added a field for the margin.
      (WebCore::RasterShapeIntervals::intervalsAt): Offset y coordinates by the margin; added a non-const overload.
      
      LayoutTests:
      
      Verify that lines overlap a shape-outside that extends into the top of the margin-box
      do wrap around the top of the shape as well its side and bottom.
      
      * fast/shapes/shape-outside-floats/shape-outside-floats-image-margin-004-expected.html: Added.
      * fast/shapes/shape-outside-floats/shape-outside-floats-image-margin-004.html: Added.
      * fast/shapes/shape-outside-floats/shape-outside-floats-image-margin-005-expected.html: Added.
      * fast/shapes/shape-outside-floats/shape-outside-floats-image-margin-005.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158967 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      aeafe619
    • commit-queue@webkit.org's avatar
      Web Inspector: remove -webkit-min and -webkit-max from CSS completions · 7e8a767b
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124072
      
      Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-11-08
      Reviewed by Timothy Hatcher.
      
      -webkit-min and -webkit-max are not implemented in WebCore, despite mentions of it.
      
      * UserInterface/CSSKeywordCompletions.js:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7e8a767b
    • commit-queue@webkit.org's avatar
      Ended event should work also when playback rate is negative · 4053990b
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=123879
      
      Patch by Piotr Grad <p.grad@samsung.com> on 2013-11-08
      Reviewed by Eric Carlson.
      
      Source/WebCore:
      
      According to W3C specification playback is ended also when playback rate is
      negative and position is the earliest possible position.
      
      Test: media/video-ended-event-negative-playback.html
      
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
      
      LayoutTests:
      
      Tests if ended event is triggered for audio/video elements after
      changing playback rate to negative.
      
      * media/video-ended-event-negative-playback-expected.txt: Added.
      * media/video-ended-event-negative-playback.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158965 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4053990b
    • commit-queue@webkit.org's avatar
      Checking for TypeError in RTCPeerConnection object creation · 9d56fba8
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=124049
      
      Patch by Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> on 2013-11-08
      Reviewed by Eric Carlson.
      
      Source/WebCore:
      
      If invalid parameters are passed on RTCPeerConnection creation we must throw a TypeError exception.
      According to the spec it requires a Dictionary argument, the RTCConfiguration, which is mandatory.
      
      Please notice that this patch does not make every tests run as expected,
      RTCPeerConnectionHandlerMock needs to be update to deal with contraints.
      
      Existing tests were updated.
      
      * GNUmakefile.list.am:
      * Modules/mediastream/RTCPeerConnection.idl:
      * UseJSC.cmake:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/js/JSRTCPeerConnectionCustom.cpp: Added.
      (WebCore::JSRTCPeerConnectionConstructor::constructJSRTCPeerConnection):
      
      LayoutTests:
      
      Please notice that this patch does not make every tests run as expected,
      RTCPeerConnectionHandlerMock needs to be update to deal with contraints.
      
      * fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
      * fast/mediastream/RTCPeerConnection-createAnswer.html:
      * fast/mediastream/RTCPeerConnection-createOffer.html:
      * fast/mediastream/RTCPeerConnection-datachannel.html:
      * fast/mediastream/RTCPeerConnection-dtmf.html:
      * fast/mediastream/RTCPeerConnection-events.html:
      * fast/mediastream/RTCPeerConnection-expected.txt:
      * fast/mediastream/RTCPeerConnection-ice-expected.txt:
      * fast/mediastream/RTCPeerConnection-ice.html:
      * fast/mediastream/RTCPeerConnection-localDescription.html:
      * fast/mediastream/RTCPeerConnection-onnegotiationneeded.html:
      * fast/mediastream/RTCPeerConnection-remoteDescription.html:
      * fast/mediastream/RTCPeerConnection-stats-expected.txt:
      * fast/mediastream/RTCPeerConnection-stats.html:
      * fast/mediastream/RTCPeerConnection-statsSelector-expected.txt:
      * fast/mediastream/RTCPeerConnection-statsSelector.html:
      * fast/mediastream/RTCPeerConnection.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158964 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9d56fba8
    • bjonesbe@adobe.com's avatar
      Use references instead of pointers to RenderBlockFlow in FloatingObjects and... · 2e94fff3
      bjonesbe@adobe.com authored
      Use references instead of pointers to RenderBlockFlow in FloatingObjects and ComputeFloatOffsetAdapter
      https://bugs.webkit.org/show_bug.cgi?id=124074
      
      Reviewed by Sam Weinig.
      
      Just a straightforward conversion from const pointers to const references.
      
      Also, remove unneeded argument from FloatingObjects constructor.
      
      No new tests, no behavior change.
      
      * rendering/FloatingObjects.cpp:
      (WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
      (WebCore::FloatingObjects::findNextFloatLogicalBottomBelow):
      (WebCore::FloatingObjects::findNextFloatLogicalBottomBelowForBlock):
      (WebCore::FloatingObjects::FloatingObjects):
      (WebCore::FloatingObjects::clearLineBoxTreePointers):
      (WebCore::FloatingObjects::computePlacedFloatsTree):
      (WebCore::shapeInfoForFloat):
      (WebCore::::updateOffsetIfNeeded):
      (WebCore::::collectIfNeeded):
      (WebCore::::heightRemaining):
      * rendering/FloatingObjects.h:
      * rendering/RenderBlockFlow.cpp:
      (WebCore::RenderBlockFlow::createFloatingObjects):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158963 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2e94fff3
    • weinig@apple.com's avatar
      Teach SubframeLoader a bit about references · f6e717bf
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124076
      
      Reviewed by Anders Carlsson.
      
      * html/HTMLAppletElement.cpp:
      * html/HTMLFrameElementBase.cpp:
      * html/HTMLMediaElement.cpp:
      * loader/SubframeLoader.cpp:
      * loader/SubframeLoader.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158962 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f6e717bf
    • beidson@apple.com's avatar
      Blind Windows build-fix attempt after r158959 · a22de8cc
      beidson@apple.com authored
      * WebCore.vcxproj/WebCore.vcxproj:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158961 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a22de8cc
    • beidson@apple.com's avatar
      Merge IDBCursorBackendInterface and IDBCursorBackendImpl · 96d115ed
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124068
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore:
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * WebCore.xcodeproj/project.pbxproj:
      
      * Modules/indexeddb/IDBCursorBackendInterface.h: Removed.
      
      * Modules/indexeddb/IDBCursorBackend.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp.
      * Modules/indexeddb/IDBCursorBackend.h: Renamed from Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.h.
      
      * Modules/indexeddb/IDBCallbacks.h:
      * Modules/indexeddb/IDBCursor.cpp:
      * Modules/indexeddb/IDBCursor.h:
      * Modules/indexeddb/IDBCursorWithValue.cpp:
      * Modules/indexeddb/IDBCursorWithValue.h:
      * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
      * Modules/indexeddb/IDBFactoryBackendInterface.h:
      * Modules/indexeddb/IDBRequest.cpp:
      * Modules/indexeddb/IDBRequest.h:
      * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
      * Modules/indexeddb/IDBTransactionBackendImpl.h:
      * Modules/indexeddb/IDBTransactionBackendInterface.h:
      * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
      * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
      
      Source/WebKit2:
      
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
      (WebKit::WebIDBFactoryBackend::createCursorBackend):
      * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      96d115ed
    • weinig@apple.com's avatar
      Modernize FrameLoader a bit · eefc25d1
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124073
      
      Reviewed by Anders Carlsson.
      
      * loader/FrameLoader.cpp:
      * loader/FrameLoader.h:
      Use std::unique_ptrs rather than OwnPtrs.
      
      * loader/MixedContentChecker.cpp:
      * loader/MixedContentChecker.h:
      Switch to hold a Frame& rather than Frame*.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158958 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eefc25d1
    • oliver@apple.com's avatar
      Remove more accidentally added files. · 5cfefe0b
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5cfefe0b
    • zandobersek@gmail.com's avatar
      Remove code guarded with ENABLE(STREAM) · dad47d4d
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123667
      
      Reviewed by Anders Carlsson.
      
      Remove ENABLE(STREAM)-guarded code. This was added in the effort to provide Stream API support, but
      no port enables the feature and the work on this feature has wound down after the Chromium port forked,
      leaving this code unmaintained.
      
      * fileapi/FileReaderLoader.cpp:
      * fileapi/FileReaderLoader.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158956 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dad47d4d
    • andersca@apple.com's avatar
      Remove a workaround for a bug in malloc on Symbian · 1c2878d2
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124069
      
      Reviewed by Sam Weinig.
      
      * Platform/CoreIPC/ArgumentDecoder.cpp:
      (CoreIPC::ArgumentDecoder::~ArgumentDecoder):
      (CoreIPC::ArgumentDecoder::initialize):
      * Platform/CoreIPC/ArgumentDecoder.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158955 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1c2878d2
    • bjonesbe@adobe.com's avatar
      RenderBlockFlow::nextFloatLogicalBottomBelow should not use ShapeOutsideFloatOffsetMode · edea3428
      bjonesbe@adobe.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123931
      
      Reviewed by Sam Weinig.
      
      Rewrite nextFloatLogicalBottomBelow to use the placed floats tree for
      the search and to not need ShapeOutsideFloatOffsetMode anymore. This
      moves almost all of the logic into FloatingObjects, making a small
      reduction in the amount that RenderBlockFlow needs to know about the
      implementation of FloatingObjects.
      
      In addition, change ComputeFloatOffsetAdapter to take in LayoutUnits
      and roundToInt itself so that all of it's callers can be simplified.
      
      No new tests, no new behavior.
      
      * rendering/FloatingObjects.cpp:
      (WebCore::rangesIntersect):
      (WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
      (WebCore::FindNextFloatLogicalBottomAdapter::FindNextFloatLogicalBottomAdapter):
      (WebCore::FindNextFloatLogicalBottomAdapter::lowValue):
      (WebCore::FindNextFloatLogicalBottomAdapter::highValue):
      (WebCore::FindNextFloatLogicalBottomAdapter::nextLogicalBottom):
      (WebCore::FindNextFloatLogicalBottomAdapter::nextShapeLogicalBottom):
      (WebCore::FindNextFloatLogicalBottomAdapter::collectIfNeeded):
      (WebCore::FloatingObjects::findNextFloatLogicalBottomBelow):
      (WebCore::FloatingObjects::findNextFloatLogicalBottomBelowForBlock):
      (WebCore::FloatingObjects::logicalLeftOffsetForPositioningFloat):
      (WebCore::FloatingObjects::logicalRightOffsetForPositioningFloat):
      (WebCore::FloatingObjects::logicalLeftOffset):
      (WebCore::FloatingObjects::logicalRightOffset):
      * rendering/FloatingObjects.h:
      * rendering/LineWidth.cpp:
      (WebCore::LineWidth::fitBelowFloats):
      * rendering/RenderBlockFlow.cpp:
      (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow):
      (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelowForBlock):
      (WebCore::RenderBlockFlow::getClearDelta):
      * rendering/RenderBlockFlow.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      edea3428
    • andersca@apple.com's avatar
      More build fixes. · 3f46679b
      andersca@apple.com authored
      * UIProcess/API/mac/WKBrowsingContextController.mm:
      * UIProcess/API/mac/WKConnection.mm:
      (didReceiveMessage):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158949 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3f46679b
    • andersca@apple.com's avatar
      More build fixes. · 3df9f6e3
      andersca@apple.com authored
      * UIProcess/API/mac/WKConnection.h:
      * UIProcess/API/mac/WKConnection.mm:
      (didReceiveMessage):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158948 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3df9f6e3
    • andersca@apple.com's avatar
      Try to fix the 32-bit build. · 87bb3cde
      andersca@apple.com authored
      * Shared/API/Cocoa/WKBrowsingContextHandleInternal.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158947 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      87bb3cde
    • matthew_hanson@apple.com's avatar
      Added myself as a contributor. · 241e392e
      matthew_hanson@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158946 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      241e392e
    • ap@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=124064 · 83bcc61e
      ap@apple.com authored
      Some WebCrypto files are not in correct directories
      
      Rubber-stamped by Anders Carlsson.
      
      * WebCore.xcodeproj/project.pbxproj:
      * crypto/CryptoAlgorithmAesCbcParams.h: Removed.
      * crypto/CryptoAlgorithmAesKeyGenParams.h: Removed.
      * crypto/CryptoKeyAES.cpp: Removed.
      * crypto/CryptoKeyAES.h: Removed.
      * crypto/CryptoKeyMac.cpp: Removed.
      * crypto/keys/CryptoKeyAES.cpp: Copied from Source/WebCore/crypto/CryptoKeyAES.cpp.
      * crypto/keys/CryptoKeyAES.h: Copied from Source/WebCore/crypto/CryptoKeyAES.h.
      * crypto/mac/CryptoKeyMac.cpp: Copied from Source/WebCore/crypto/CryptoKeyMac.cpp.
      * crypto/parameters/CryptoAlgorithmAesCbcParams.h: Copied from Source/WebCore/crypto/CryptoAlgorithmAesCbcParams.h.
      * crypto/parameters/CryptoAlgorithmAesKeyGenParams.h: Copied from Source/WebCore/crypto/CryptoAlgorithmAesKeyGenParams.h.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158945 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      83bcc61e
    • andersca@apple.com's avatar
      Replace __alignof with alignof. · 68a3c31b
      andersca@apple.com authored
      Rubber-stamped by Beth Dakin.
      
      * Platform/CoreIPC/ArgumentCoders.cpp:
      (CoreIPC::::encode):
      (CoreIPC::decodeStringText):
      * Platform/CoreIPC/ArgumentCoders.h:
      (CoreIPC::SimpleArgumentCoder::encode):
      (CoreIPC::SimpleArgumentCoder::decode):
      * Platform/CoreIPC/ArgumentDecoder.h:
      (CoreIPC::ArgumentDecoder::bufferIsLargeEnoughToContain):
      * WebProcess/WebPage/DecoderAdapter.cpp:
      (WebKit::DecoderAdapter::decodeString):
      * WebProcess/WebPage/EncoderAdapter.cpp:
      (WebKit::EncoderAdapter::encodeString):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158944 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      68a3c31b
    • ap@apple.com's avatar
      Implement JWK key import for HMAC and AES-CBC · 7f6fd501
      ap@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124059
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore: 
      
      Tests: crypto/subtle/aes-cbc-import-jwk.html
             crypto/subtle/hmac-import-jwk.html
             crypto/subtle/import-jwk.html
      
      WebCrypto supports multiple key formats - raw, pkcs8, spki, jwk. The design is that
      we'll transform these into parsed KeyData subclasses before passing to algorithms.
      
      CryptoKeySerialization is a base class for handling all these formats.
      
      * WebCore.xcodeproj/project.pbxproj: Added new files. Removed CryptoKeyFormat.h.
              
      * bindings/js/JSCryptoKeySerializationJWK.h: Added.
      * bindings/js/JSCryptoKeySerializationJWK.cpp: Added.
      (WebCore::getStringFromJSON): A helper. Note that we can rely on the object being
      a nice freshly parsed JSON, no getters or anything.
      (WebCore::getBooleanFromJSON): Ditto.
      (WebCore::JSCryptoKeySerializationJWK::JSCryptoKeySerializationJWK):
      (WebCore::JSCryptoKeySerializationJWK::~JSCryptoKeySerializationJWK):
      (WebCore::createHMACParameters): A simple helper.
      (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm): WebCrypto API is weird,
      you can have algorithm parameters both inside a JWK key and passed as importKey()
      arguments. They need to agree, whatever that means for specific serialization's
      algorithm options (not all necessarily have a 1-1 matching to WebCrypto).
      (WebCore::JSCryptoKeySerializationJWK::reconcileUsages): Take an intersection of usages.
      (WebCore::JSCryptoKeySerializationJWK::reconcileExtractable): Only extractable if
      both JWK and the caller agree.
      (WebCore::JSCryptoKeySerializationJWK::keySizeIsValid): Verify validity of JWK key.
      (WebCore::JSCryptoKeySerializationJWK::keyData): Return an appropriate KeyData
      subclass.
      
      * bindings/js/JSSubtleCryptoCustom.cpp:
      (WebCore::ENUM_CLASS): Moved CryptoKeyFormat here.
      (WebCore::cryptoKeyFormatFromJSValue): Added a human readable string to an exception.
      (WebCore::JSSubtleCrypto::importKey): Support multiple key formats, not just raw.
      
      * crypto/CryptoAlgorithm.cpp: (WebCore::CryptoAlgorithm::importKey):
      * crypto/CryptoAlgorithm.h:
      Updated signature for importKey to one that makes more sense. Decoding formats all
      the way from a binary blob is not something that CryptoAlgorithm subclasses should
      do, we now pass a KeyData subclass instead.
      Removed exportKey/wrapKey/unwrapKey altogether, because I don't yet know what the
      signatures will be.
      
      * crypto/CryptoKeyData.h: Added.
      (WebCore::CryptoKeyData::ENUM_CLASS):
      (WebCore::CryptoKeyData::CryptoKeyData):
      (WebCore::CryptoKeyData::~CryptoKeyData):
      (WebCore::CryptoKeyData::format):
      A base class for passing key material to algorithms. Currently, only one type is
      supported, that being OctetSequence for secret keys. Keys for RSA and EC are more
      complicated, and secret/public ones are different too.
      
      * crypto/CryptoKeyFormat.h: Removed. There are too many key format classes
      confusingly floating around, and this was only needed in one file for parsing.
      
      * crypto/CryptoKeySerialization.h: Added.
      Base class for handling raw/pkcs8/spki/jwk keys.
      
      * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
      (WebCore::CryptoAlgorithmAES_CBC::importKey):
      * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
      Updated to use CryptoKeyData.
      
      * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
      (WebCore::CryptoAlgorithmHMAC::importKey):
      * crypto/algorithms/CryptoAlgorithmHMAC.h:
      Updated to use CryptoKeyData.
      
      * crypto/keys/CryptoKeyDataOctetSequence.cpp: Added.
      (WebCore::CryptoKeyDataOctetSequence::CryptoKeyDataOctetSequence):
      (WebCore::CryptoKeyDataOctetSequence::~CryptoKeyDataOctetSequence):
      * crypto/keys/CryptoKeyDataOctetSequence.h: Added.
      (WebCore::asCryptoKeyDataOctetSequence):
      * crypto/keys/CryptoKeySerializationRaw.cpp: Added.
      (WebCore::CryptoKeySerializationRaw::CryptoKeySerializationRaw):
      (WebCore::CryptoKeySerializationRaw::~CryptoKeySerializationRaw):
      (WebCore::CryptoKeySerializationRaw::reconcileAlgorithm):
      (WebCore::CryptoKeySerializationRaw::reconcileUsages):
      (WebCore::CryptoKeySerializationRaw::reconcileExtractable):
      (WebCore::CryptoKeySerializationRaw::keyData):
      * crypto/keys/CryptoKeySerializationRaw.h: Added.
      Much code to pass around a Vector<char>.
      
      LayoutTests: 
      
      * crypto/subtle/aes-cbc-import-jwk-expected.txt: Added.
      * crypto/subtle/aes-cbc-import-jwk.html: Added.
      * crypto/subtle/hmac-import-jwk-expected.txt: Added.
      * crypto/subtle/hmac-import-jwk.html: Added.
      * crypto/subtle/import-jwk-expected.txt: Added.
      * crypto/subtle/import-jwk.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7f6fd501
    • andersca@apple.com's avatar
      Add a way to get a WKWebProcessPlugInBrowserContextController from a handle · d05dab7a
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124063
      
      Reviewed by Beth Dakin.
      
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
      (+[WKWebProcessPlugInBrowserContextController lookUpBrowsingContextFromHandle:]):
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d05dab7a
    • oliver@apple.com's avatar
      Remove accidentally added files. · 3c3ae871
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3c3ae871
    • oliver@apple.com's avatar
      Fix minor (unobservable) bug in ArrayIterator::next() · df2e4485
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124061
      
      Reviewed by Beth Dakin.
      
      I noticed this while reading the array iterator code.  Due to how
      ArrayIterator::next() and our enumeration behaviour is implemented
      this is not actually a code path that can be hit.  But in order to
      future proof this it should be correct.
      
      * runtime/JSArrayIterator.cpp:
      (JSC::arrayIteratorNext):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158940 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      df2e4485
    • andersca@apple.com's avatar
      More work on WKBrowsingContextHandle · 181d4157
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124060
      
      Reviewed by Beth Dakin.
      
      Implement -hash and -isEqual: and add -[WKWebProcessPlugInBrowserContextController handle].
      
      * Shared/API/Cocoa/WKBrowsingContextHandle.mm:
      (-[WKBrowsingContextHandle hash]):
      (-[WKBrowsingContextHandle isEqual:]):
      * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
      (decodeInvocation):
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
      (-[WKWebProcessPlugInBrowserContextController mainFrameDocument]):
      (-[WKWebProcessPlugInBrowserContextController selectedRange]):
      (-[WKWebProcessPlugInBrowserContextController handle]):
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h:
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158939 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      181d4157
    • mark.lam@apple.com's avatar
      Move breakpoint (and exception break) functionality into JSC::Debugger. · 26c53408
      mark.lam@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121796.
      
      Reviewed by Geoffrey Garen.
      
      Source/JavaScriptCore: 
      
      - In ScriptDebugServer and JSC::Debugger, SourceID and BreakpointID are
        now numeric tokens.
      
      - JSC::Debugger now tracks user defined breakpoints in a JSC::Breakpoint
        record. Previously, this info is tracked in the ScriptBreakpoint record
        in ScriptDebugServer. The only element of ScriptBreakpoint that is not
        being tracked by JSC::Breakpoint is the ScriptBreakpointAction.
           The ScriptBreakpointAction is still tracked by the ScriptDebugServer
        in a list keyed on the corresponding BreakpointID.
           The ScriptBreakpoint record is now only used as a means of passing
        breakpoint paramaters to the ScriptDebugServer.
      
      - ScriptDebugServer now no longer accesses the JSC::CallFrame* directly.
        It always goes through the DebuggerCallFrame.
      
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * debugger/Breakpoint.h: Added.
      (JSC::Breakpoint::Breakpoint):
      - Breakpoint class to track info for each breakpoint in JSC::Debugger.
      * debugger/Debugger.cpp:
      (JSC::DebuggerCallFrameScope::DebuggerCallFrameScope):
      (JSC::DebuggerCallFrameScope::~DebuggerCallFrameScope):
      (JSC::Debugger::Debugger):
      (JSC::Debugger::detach):
      (JSC::Debugger::updateNeedForOpDebugCallbacks):
      (JSC::Debugger::setBreakpoint):
      (JSC::Debugger::removeBreakpoint):
      (JSC::Debugger::hasBreakpoint):
      (JSC::Debugger::clearBreakpoints):
      (JSC::Debugger::setBreakpointsActivated):
      (JSC::Debugger::setPauseOnExceptionsState):
      (JSC::Debugger::setPauseOnNextStatement):
      (JSC::Debugger::breakProgram):
      (JSC::Debugger::continueProgram):
      (JSC::Debugger::stepIntoStatement):
      (JSC::Debugger::stepOverStatement):
      (JSC::Debugger::stepOutOfFunction):
      (JSC::Debugger::updateCallFrame):
      (JSC::Debugger::updateCallFrameAndPauseIfNeeded):
      (JSC::Debugger::pauseIfNeeded):
      (JSC::Debugger::exception):
      (JSC::Debugger::atStatement):
      (JSC::Debugger::callEvent):
      (JSC::Debugger::returnEvent):
      (JSC::Debugger::willExecuteProgram):
      (JSC::Debugger::didExecuteProgram):
      (JSC::Debugger::didReachBreakpoint):
      (JSC::Debugger::currentDebuggerCallFrame):
      * debugger/Debugger.h:
      * debugger/DebuggerCallFrame.cpp:
      (JSC::DebuggerCallFrame::sourceID):
      (JSC::DebuggerCallFrame::sourceIDForCallFrame):
      * debugger/DebuggerCallFrame.h:
      * debugger/DebuggerPrimitives.h: Added.
      - define SourceID, noSourceID, BreakpointID, and noBreakpointID.
      
      Source/WebCore: 
      
      No new tests.
      
      - In ScriptDebugServer and JSC::Debugger, SourceID and BreakpointID are
        now numeric tokens.
      
      - JSC::Debugger now tracks user defined breakpoints in a JSC::Breakpoint
        record. Previously, this info is tracked in the ScriptBreakpoint record
        in ScriptDebugServer. The only element of ScriptBreakpoint that is not
        being tracked by JSC::Breakpoint is the ScriptBreakpointAction.
           The ScriptBreakpointAction is still tracked by the ScriptDebugServer
        in a list keyed on the corresponding BreakpointID.
           The ScriptBreakpoint record is now only used as a means of passing
        breakpoint paramaters to the ScriptDebugServer.
      
      - ScriptDebugServer now no longer accesses the JSC::CallFrame* directly.
        It always goes through the DebuggerCallFrame.
      
      * GNUmakefile.list.am:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/js/BreakpointID.h: Added.
      * bindings/js/ScriptDebugServer.cpp:
      (WebCore::ScriptDebugServer::ScriptDebugServer):
      (WebCore::ScriptDebugServer::setBreakpoint):
      (WebCore::ScriptDebugServer::removeBreakpoint):
      (WebCore::ScriptDebugServer::clearBreakpoints):
      (WebCore::ScriptDebugServer::dispatchDidPause):
      (WebCore::ScriptDebugServer::dispatchDidContinue):
      (WebCore::ScriptDebugServer::dispatchDidParseSource):
      (WebCore::ScriptDebugServer::notifyDoneProcessingDebuggerEvents):
      (WebCore::ScriptDebugServer::needPauseHandling):
      (WebCore::ScriptDebugServer::handleBreakpointHit):
      (WebCore::ScriptDebugServer::handleExceptionInBreakpointCondition):
      (WebCore::ScriptDebugServer::handlePause):
      * bindings/js/ScriptDebugServer.h:
      * bindings/js/SourceID.h: Added.
      * bindings/js/WorkerScriptDebugServer.cpp:
      (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
      * bindings/js/WorkerScriptDebugServer.h:
      * inspector/InspectorDebuggerAgent.cpp:
      (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
      (WebCore::parseLocation):
      (WebCore::InspectorDebuggerAgent::setBreakpoint):
      (WebCore::InspectorDebuggerAgent::continueToLocation):
      (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
      (WebCore::InspectorDebuggerAgent::searchInContent):
      (WebCore::InspectorDebuggerAgent::getScriptSource):
      (WebCore::InspectorDebuggerAgent::didParseSource):
      (WebCore::InspectorDebuggerAgent::didPause):
      (WebCore::InspectorDebuggerAgent::clear):
      * inspector/InspectorDebuggerAgent.h:
      * inspector/ScriptDebugListener.h:
      
      Source/WebKit/mac: 
      
      * WebView/WebScriptDebugger.h:
      * WebView/WebScriptDebugger.mm:
      (WebScriptDebugger::WebScriptDebugger):
      (WebScriptDebugger::handlePause):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158937 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      26c53408
    • andersca@apple.com's avatar
      Add A WKBrowsingContextHandle class · 563f8c86
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=124058
      
      Reviewed by Sam Weinig.
      
      The WKBrowsingContextHandle class represents a browsing context and can be sent across process boundaries.
      
      * Shared/API/Cocoa/WKBrowsingContextHandle.h: Added.
      * Shared/API/Cocoa/WKBrowsingContextHandle.mm: Added.
      (-[WKBrowsingContextHandle _initWithPageID:]):
      (-[WKBrowsingContextHandle encodeWithCoder:]):
      (-[WKBrowsingContextHandle initWithCoder:]):
      (+[WKBrowsingContextHandle supportsSecureCoding]):
      * Shared/API/Cocoa/WKBrowsingContextHandleInternal.h: Added.
      * UIProcess/API/mac/WKBrowsingContextController.mm:
      (-[WKBrowsingContextController handle]):
      * UIProcess/API/mac/WKBrowsingContextControllerInternal.h:
      * UIProcess/API/mac/WKBrowsingContextControllerPrivate.h:
      (NS_ENUM):
      * WebKit2.xcodeproj/project.pbxproj:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158936 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      563f8c86
    • commit-queue@webkit.org's avatar
      InspectorConsoleAgent::didFinishXHRLoading ConsoleMessage should include a column number · 123c7261
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=114316
      
      Patch by László Langó <lango@inf.u-szeged.hu> on 2013-11-08
      Reviewed by Timothy Hatcher.
      
      InspectorConsoleAgent::didFinishXHRLoading creates a ConsoleMessage with a line number,
      but it should also include a column number. It looks like ultimately the line number comes from
      JSXMLHttpRequest::send, it should also be possible to get the column number at the time.
      The column number would be needed by the Web Inspector to jump to the proper place in source code
      to show where the XHR originated from.
      
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::SendFunctor::SendFunctor):
      (WebCore::SendFunctor::column):
      (WebCore::SendFunctor::operator()):
      (WebCore::JSXMLHttpRequest::send):
      * inspector/InspectorConsoleAgent.cpp:
      (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
      * inspector/InspectorConsoleAgent.h:
      * inspector/InspectorInstrumentation.cpp:
      (WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
      * inspector/InspectorInstrumentation.h:
      (WebCore::InspectorInstrumentation::didFinishXHRLoading):
      * xml/XMLHttpRequest.cpp:
      (WebCore::XMLHttpRequest::XMLHttpRequest):
      (WebCore::XMLHttpRequest::setLastSendLineAndColumnNumber):
      (WebCore::XMLHttpRequest::didFinishLoading):
      * xml/XMLHttpRequest.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158935 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      123c7261
    • simon.fraser@apple.com's avatar
      Left sidebar on cubic-bezier.com flickers · 1d125271
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=123128
      
      Source/WebCore:
      
      Reviewed by Dean Jackson.
      
      The logic that determined whether position:fixed elements outside the viewport
      should be composited was incorrect if the fixed element also had a transform.
      
      layer.calculateLayerBounds() only takes into account painted transforms (since they
      affect layer bounds). So we need to compute the bounds relative to the layer
      itself, then use localToContainerQuad() to map them to document coordinates,
      but only to the RenderView so that we don't hit the page scale transform.
      
      Tests: compositing/layer-creation/fixed-position-transformed-into-view.html
             compositing/layer-creation/fixed-position-transformed-outside-view.html
      
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
      
      LayoutTests:
      
      Reviewed by Dean Jackson.
      
      Tests with transformed, fixed elements which dump the layer tree to see
      which layers get composited.
      
      * compositing/layer-creation/fixed-position-transformed-into-view-expected.txt: Added.
      * compositing/layer-creation/fixed-position-transformed-into-view.html: Added.
      * compositing/layer-creation/fixed-position-transformed-outside-view-expected.txt: Added.
      * compositing/layer-creation/fixed-position-transformed-outside-view.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158934 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1d125271