1. 29 Aug, 2013 40 commits
    • oliver@apple.com's avatar
      Implement ES6 Map object · 005f9e8f
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120333
      
      Reviewed by Geoffrey Garen.
      
      Source/JavaScriptCore:
      
      Implement support for the ES6 Map type and related classes.
      
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * heap/CopyToken.h: Add a new token to track copying the backing store
      * runtime/CommonIdentifiers.h: Add new identifiers
      * runtime/JSGlobalObject.cpp:
      * runtime/JSGlobalObject.h:
          Add new structures and prototypes
      
      * runtime/JSMap.cpp: Added.
      * runtime/JSMap.h: Added.
          New JSMap class to represent a Map instance
      
      * runtime/MapConstructor.cpp: Added.
      * runtime/MapConstructor.h: Added.
          The Map constructor
      
      * runtime/MapData.cpp: Added.
      * runtime/MapData.h: Added.
          The most interesting data structure.  The roughly corresponds
          to the ES6 notion of MapData.  It provides the core JSValue->JSValue
          map implementation.  We implement it using 2 hashtables and a flat
          table.  Due to the different semantics of string comparisons vs.
          all others we need have one map keyed by String and the other by
          generic JSValue.  The actual table is represented more or less
          exactly as described in the ES6 draft - a single contiguous list of
          key/value pairs.  The entire map could be achieved with just this
          table, however we need the HashMaps in order to maintain O(1) lookup.
      
          Deleted values are simply cleared as the draft says, however the
          implementation compacts the storage on copy as long as the are no
          active iterators.
      
      * runtime/MapPrototype.cpp: Added.
      * runtime/MapPrototype.h: Added.
          Implement Map prototype functions
      
      * runtime/VM.cpp:
          Add new structures.
      
      LayoutTests:
      
      Tests
      
      * fast/js/basic-map-expected.txt: Added.
      * fast/js/basic-map.html: Added.
      * fast/js/script-tests/basic-map.js: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154861 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      005f9e8f
    • commit-queue@webkit.org's avatar
      [Mac] Web Inspector: inspector/storage-panel-dom-storage-update.html fails · 7fc419f3
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=116241
      
      Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-08-29
      Reviewed by Darin Adler.
      
      * platform/mac/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154860 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7fc419f3
    • rniwa@webkit.org's avatar
      Avoid Node references from AXObjectCache from leaking · bb8def20
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=120501
      
      Reviewed by Darin Adler.
      
      Merge https://chromium.googlesource.com/chromium/blink/+/454f31497613b6d0fbcfb0df757254b64a177c06
      without any tests since we don't have the same infrastructure to detect leaks in WebKit.
      
      A real world example of this would be selecting an <option> item inside frame by keyboard. The node will not be deref()-ed until the topDocument() is detached. 
      
      The issue was that AccessibilityMenuListOption is created in childrenChanged()
      hook called when its RenderObject is being destroyed. This patch modifies AccessibilityMenuListPopup so it won't create AccessibilityMenuListOption if its
      element is already detached.
      
      * accessibility/AccessibilityMenuListPopup.cpp:
      (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
      * rendering/RenderMenuList.cpp:
      (WebCore::RenderMenuList::didUpdateActiveOption):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154859 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb8def20
    • simon.fraser@apple.com's avatar
      Implement object-fit CSS property · 74523e7c
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=52040
      
      Source/WebCore:
      
      Reviewed by Antti Koivisto, Sam Weinig.
      
      Merge object-fit patch from Blink r156535, which started as a patch
      by me.
      
      Since then, the spec has gone to CR. This patch is an
      implementation of object-fit as described in
      http://www.w3.org/TR/2012/CR-css3-images-20120417/#object-fit
      
      Object-fit is used to maintain the aspect ratio of replaced content
      within its content box. All object-fit values but the initial one
      ('fill') will always ensure that the aspect ratio is retained, in
      different ways (fit inside the content box, cover the content box, or
      use intrinsic size). Painting is always clipped against the content
      box, regardless of the 'overflow' property.
      
      Tests: fast/css/object-fit/object-fit-canvas.html
             fast/css/object-fit/object-fit-embed.html
             fast/css/object-fit/object-fit-grow-landscape.html
             fast/css/object-fit/object-fit-grow-portrait.html
             fast/css/object-fit/object-fit-img-svg.html
             fast/css/object-fit/object-fit-img-svg2.html
             fast/css/object-fit/object-fit-img.html
             fast/css/object-fit/object-fit-input-image.html
             fast/css/object-fit/object-fit-object.html
             fast/css/object-fit/object-fit-shrink.html
             fast/css/object-fit/object-fit-video-poster.html
             fast/css/parsing-object-fit.html
             http/tests/css/object-fit-delayed-img-svg.html
             media/video-object-fit-change.html
             media/video-object-fit.html
      
      * css/CSSComputedStyleDeclaration.cpp:
      (WebCore::ComputedStyleExtractor::propertyValue):
      * css/CSSParser.cpp:
      (WebCore::isValidKeywordPropertyAndValue):
      (WebCore::isKeywordPropertyID):
      (WebCore::CSSParser::parseValue):
      * css/CSSPrimitiveValueMappings.h:
      (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
      (WebCore::CSSPrimitiveValue::operator EObjectFit):
      * css/CSSProperty.cpp:
      (WebCore::CSSProperty::isInheritedProperty):
      * css/CSSPropertyNames.in:
      * css/CSSValueKeywords.in:
      * css/DeprecatedStyleBuilder.cpp:
      (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
      * css/StyleResolver.cpp:
      (WebCore::StyleResolver::applyProperty):
      * css/html.css:
      (video): Set object-fit to 'contain'. This is how VIDEO elements
      work, apparently.
      * loader/cache/CachedImage.cpp:
      (WebCore::CachedImage::imageSizeForRenderer):
      * loader/cache/CachedImage.h:
      * platform/graphics/LayoutSize.h:
      (WebCore::fitLayoutSizeToAspectRatio): New function to grow or shrink
      in one dimension to fit to the aspect ratio.
      * rendering/RenderHTMLCanvas.cpp:
      (WebCore::RenderHTMLCanvas::paintReplaced): Apply object-fit and
      clip if necessary.
      * rendering/RenderImage.cpp:
      (WebCore::RenderImage::updateInnerContentRect):
      (WebCore::RenderImage::imageDimensionsChanged): Update intrinsic
      size properly, and recalculate the inner content rectangle (the
      exact area occupied by the replaced content) again if appropriate.
      (WebCore::RenderImage::paintReplaced): Apply object-fit and clip
      if necessary.
      (WebCore::RenderImage::foregroundIsKnownToBeOpaqueInRect):
      object-fit may leave parts of the content box empty, in which case
      it won't be fully obscured.
      (WebCore::RenderImage::layout):
      * rendering/RenderImage.h:
      * rendering/RenderImageResource.cpp:
      (WebCore::RenderImageResource::intrinsicSize): Need this to
      differentiate between intrinsic and extrinsic size for SVG images.
      * rendering/RenderImageResource.h:
      * rendering/RenderImageResourceStyleImage.h:
      * rendering/RenderReplaced.cpp:
      (WebCore::RenderReplaced::replacedContentRect): Return the
      rectangle occupied by the replaced content. This will be identical
      to the content box if object-fit is 'fill', but will typically be
      something else for other values.
      * rendering/RenderReplaced.h:
      * rendering/RenderVideo.cpp:
      (WebCore::RenderVideo::videoBox): Not much left to do here, with
      the new RenderReplaced::replacedContentRect() method in place.
      (WebCore::RenderVideo::paintReplaced): Apply object-fit and clip
      if necessary.
      * rendering/style/RenderStyle.cpp:
      (WebCore::RenderStyle::changeRequiresRepaint):
      * rendering/style/RenderStyle.h:
      * rendering/style/RenderStyleConstants.h:
      * rendering/style/StyleRareNonInheritedData.cpp:
      (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
      (WebCore::StyleRareNonInheritedData::operator==):
      * rendering/style/StyleRareNonInheritedData.h:
      
      LayoutTests:
      
      Reviewed by Antti Koivisto, Sam Weinig.
      
      Tests for object-fit.
      
      * fast/css/object-fit/object-fit-canvas-expected.html: Added.
      * fast/css/object-fit/object-fit-canvas.html: Added.
      * fast/css/object-fit/object-fit-embed-expected.html: Added.
      * fast/css/object-fit/object-fit-embed.html: Added.
      * fast/css/object-fit/object-fit-grow-landscape-expected.html: Added.
      * fast/css/object-fit/object-fit-grow-landscape.html: Added.
      * fast/css/object-fit/object-fit-grow-portrait-expected.html: Added.
      * fast/css/object-fit/object-fit-grow-portrait.html: Added.
      * fast/css/object-fit/object-fit-img-expected.html: Added.
      * fast/css/object-fit/object-fit-img-svg-expected.html: Added.
      * fast/css/object-fit/object-fit-img-svg.html: Added.
      * fast/css/object-fit/object-fit-img-svg2-expected.html: Added.
      * fast/css/object-fit/object-fit-img-svg2.html: Added.
      * fast/css/object-fit/object-fit-img.html: Added.
      * fast/css/object-fit/object-fit-input-image-expected.html: Added.
      * fast/css/object-fit/object-fit-input-image.html: Added.
      * fast/css/object-fit/object-fit-object-expected.html: Added.
      * fast/css/object-fit/object-fit-object.html: Added.
      * fast/css/object-fit/object-fit-shrink-expected.html: Added.
      * fast/css/object-fit/object-fit-shrink.html: Added.
      * fast/css/object-fit/object-fit-video-poster-expected.html: Added.
      * fast/css/object-fit/object-fit-video-poster.html: Added.
      * fast/css/parsing-object-fit-expected.txt: Added.
      * fast/css/parsing-object-fit.html: Added.
      * fast/css/resources/circle.svg: Added.
      * fast/css/resources/circle2.svg: Added.
      * fast/css/resources/circles-landscape-small.png: Added.
      * fast/css/resources/circles-landscape.png: Added.
      * fast/css/resources/circles-portrait-small.png: Added.
      * fast/css/resources/circles-portrait.png: Added.
      * http/tests/css/object-fit-delayed-img-svg-expected.html: Added.
      * http/tests/css/object-fit-delayed-img-svg.html: Added.
      * media/video-object-fit-change-expected.html: Added.
      * media/video-object-fit-change.html: Added.
      * media/video-object-fit-expected.html: Added.
      * media/video-object-fit.html: Added.
      * platform/mac/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154858 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      74523e7c
    • commit-queue@webkit.org's avatar
      new-run-webkit-tests does not respect --no-sample-on-timeout switch · 7ba627f4
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=120491
      
      Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-08-29
      Reviewed by Darin Adler.
      
      * Scripts/webkitpy/port/server_process.py:
      (ServerProcess._handle_timeout):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154857 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7ba627f4
    • timothy_horton@apple.com's avatar
      SVG clipping, masking, and gradients-on-text do not respect the device scale factor · 7cf2fd3b
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120377
      <rdar://problem/14777944>
      
      Reviewed by Simon Fraser.
      
      Tests: svg/custom/masking-clipping-hidpi.svg
      
      calculateTransformationToOutermostCoordinateSystem should include the page's
      device scale factor in its transform.
      
      * rendering/svg/SVGRenderingContext.cpp:
      (WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):
      
      Add a test that ensures that when deviceScaleFactor=2, masks, clipping,
      gradients, and patterns are rendered @2x.
      
      * svg/custom/masking-clipping-hidpi-expected.svg: Added.
      * svg/custom/masking-clipping-hidpi.svg: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154856 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7cf2fd3b
    • cfleizach@apple.com's avatar
      AX: Crash when VoiceOver reference a TextMarker from an iframe that has been removed · 0c1186bf
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120318
      
      Reviewed by Darin Adler.
      
      Source/WebCore:
      
      These crashes occur because an AXTextMarker is retrieved that reference a Node in an iframe.
      The iframe goes away, but when it tries to clean up and remove that Node from the InUse cache,
      the document() tree has already been detached, so it never clears the actual InUse cache.
      
      The fix here is to pre-emptively clean up any nodes in the document going away when the frame is about to disconnect.
      
      I'm removing the clearAXObjectCache() at the disconnectOwnerElement because it
         1) Cleared the AXObjectCache for the iframe document (which is always empty -- only the top level doc maintains the cache), because
              the document() tree had already been detached... so it essentially did nothing.
         2) And if it did work, we wouldn't want this behavior -- that is to say, when an iframe goes away, we don't want to clear the entire cache for all
             the other documents (there's even an existing layout test to verify this behavior).
      
      Test: platform/mac/accessibility/stale-textmarker-crash.html
      
      * accessibility/AXObjectCache.cpp:
      (WebCore::AXObjectCache::clearTextMarkerNodesInUse):
      * accessibility/AXObjectCache.h:
      * page/Frame.cpp:
      (WebCore::Frame::disconnectOwnerElement):
      
      LayoutTests:
      
      * platform/mac/accessibility/stale-textmarker-crash-expected.txt: Added.
      * platform/mac/accessibility/stale-textmarker-crash.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154855 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0c1186bf
    • fpizlo@apple.com's avatar
      Teach DFG::Worklist and its clients that it may be reused for different kinds of compilations · 6931c476
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120489
      
      Reviewed by Geoffrey Garen.
              
      If the baseline JIT hits an OSR entry trigger into the DFG and we already have a
      DFG compilation but we've also started one or more FTL compilations, then we
      shouldn't get confused. Previously we would have gotten confused because we would
      see an in-process deferred compile (the FTL compile) and also an optimized
      replacement (the DFG code).
              
      If the baseline JIT hits an OSR entry trigger into the DFG and we previously
      did two things in this order: triggered a tier-up compilation from the DFG into
      the FTL, and then jettisoned the DFG code because it exited a bunch, then we
      shouldn't be confused by the presence of an in-process deferred compile (the FTL
      compile). Previously we would have waited for that compile to finish; but the more
      sensible thing to do is to let it complete and then invalidate it, while at the
      same time enqueueing a DFG compile to create a new, more valid, DFG code block.
              
      If the DFG JIT hits a loop OSR entry trigger (into the FTL) and it has already
      triggered an FTL compile for replacement, then it should fire off a second compile
      instead of thinking that it can wait for that one to finish. Or vice-versa. We
      need to allow for two FTL compiles to be enqueued at the same time (one for
      replacement and one for OSR entry in a loop).
              
      Then there's also the problem that DFG::compile() is almost certainly going to be
      the hook for triggering both DFG compiles and the two kinds of FTL compiles, but
      right now there is no way to tell it which one you want.
              
      This fixes these problems and removes a bunch of potential confusion by making the
      key for a compile in the DFG::Worklist be a CompilationMode (one of DFGMode,
      FTLMode, or FTLForOSREntryMode). That mode is also passed to DFG::compile().
              
      Awkwardly, this still leaves us in a no DFG->FTL tier-up situation - so
      DFG::compile() is always passed DFGMode and then it might do an FTL compile if
      possible. Fixing that is a bigger issue for a later changeset.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::checkIfOptimizationThresholdReached):
      * dfg/DFGCompilationKey.cpp: Added.
      (JSC::DFG::CompilationKey::dump):
      * dfg/DFGCompilationKey.h: Added.
      (JSC::DFG::CompilationKey::CompilationKey):
      (JSC::DFG::CompilationKey::operator!):
      (JSC::DFG::CompilationKey::isHashTableDeletedValue):
      (JSC::DFG::CompilationKey::profiledBlock):
      (JSC::DFG::CompilationKey::mode):
      (JSC::DFG::CompilationKey::operator==):
      (JSC::DFG::CompilationKey::hash):
      (JSC::DFG::CompilationKeyHash::hash):
      (JSC::DFG::CompilationKeyHash::equal):
      * dfg/DFGCompilationMode.cpp: Added.
      (WTF::printInternal):
      * dfg/DFGCompilationMode.h: Added.
      * dfg/DFGDriver.cpp:
      (JSC::DFG::compileImpl):
      (JSC::DFG::compile):
      * dfg/DFGDriver.h:
      * dfg/DFGPlan.cpp:
      (JSC::DFG::Plan::Plan):
      (JSC::DFG::Plan::key):
      * dfg/DFGPlan.h:
      * dfg/DFGWorklist.cpp:
      (JSC::DFG::Worklist::enqueue):
      (JSC::DFG::Worklist::compilationState):
      (JSC::DFG::Worklist::completeAllReadyPlansForVM):
      (JSC::DFG::Worklist::runThread):
      * dfg/DFGWorklist.h:
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154854 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6931c476
    • bfulgham@apple.com's avatar
      [Windows] Unreviewed build fix after r154847. · 59af0f55
      bfulgham@apple.com authored
      If you are going to exclude promises, actually exclude the build components.
      
      * interpreter/CallFrame.h: Exclude promise declarations
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::reset): Exclude promise code.
      (JSC::JSGlobalObject::visitChildren): Ditto.
      * runtime/VM.cpp: Ditto.
      (JSC::VM::VM):
      (JSC::VM::~VM):
      * runtime/VM.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154853 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      59af0f55
    • bfulgham@apple.com's avatar
      [Windows] Unreviewed build fix after r154847. · a2305de8
      bfulgham@apple.com authored
      * win/tools/vsprops/FeatureDefines.props: Add missing definition for ENABLE_PROMISES
      * win/tools/vsprops/FeatureDefinesCairo.props: Ditto
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154852 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a2305de8
    • timothy@apple.com's avatar
      Make incrementing and decrementing numbers by 0.1 require the control key, and... · ea6e323b
      timothy@apple.com authored
      Make incrementing and decrementing numbers by 0.1 require the control key, and not near zero numbers.
      
      https://bugs.webkit.org/show_bug.cgi?id=120492
      <rdar://problem/13738935> Incrementing and decrementing numbers near zero is annoying compared to earlier releases
      
      Reviewed by Joseph Pecoraro.
      
      * UserInterface/CodeMirrorAdditions.js:
      (alterNumber): Remove near zero check.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154851 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ea6e323b
    • bfulgham@apple.com's avatar
      [Windows] More unreviewed gardening of project file. · 614ac2e2
      bfulgham@apple.com authored
      Move css files inline with related source code.
      
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154850 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      614ac2e2
    • commit-queue@webkit.org's avatar
      [BlackBerry] Scrolling text with FCC does not work while composing an email · cb56c461
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=120493
      
      Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-08-29
      Reviewed by Rob Buis.
      Internally reviewed by Gen Mak and Konrad Piascik.
      
      JIRA 468007
      m_cannotScrollIfHasFloatLayoutSizeRoundingError was true which prevented
      FCC scrolling.
      TransformedActualVisibleSize is quite different in email compose card
      than browser. In this case, the issue was caused by transformedActualVisibleSize(768, 750)
      which was not the actual visible size of the webkit part of the Cascades
      view when keyboard popped up. We usually don't do keyboard adaptation for
      windowless page clients; therefore, there will be no viewport change of
      WebKit.
      To fix the bug, we can ignore the windowless page clients.
      
      * Api/WebPage.cpp:
      (BlackBerry::WebKit::WebPagePrivate::hasFloatLayoutSizeRoundingError):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154849 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cb56c461
    • weinig@apple.com's avatar
      .: Add ENABLE guards for Promises · b7188858
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120488
      
      Reviewed by Andreas Kling.
      
      * Source/autotools/SetupWebKitFeatures.m4:
      * Source/cmake/WebKitFeatures.cmake:
      * Source/cmakeconfig.h.cmake:
      
      Source/JavaScriptCore: Add ENABLE guards for Promises
      https://bugs.webkit.org/show_bug.cgi?id=120488
      
      Reviewed by Andreas Kling.
      
      * Configurations/FeatureDefines.xcconfig:
      * runtime/JSGlobalObject.cpp:
      * runtime/JSGlobalObject.h:
      * runtime/JSPromise.cpp:
      * runtime/JSPromise.h:
      * runtime/JSPromiseCallback.cpp:
      * runtime/JSPromiseCallback.h:
      * runtime/JSPromiseConstructor.cpp:
      * runtime/JSPromiseConstructor.h:
      * runtime/JSPromisePrototype.cpp:
      * runtime/JSPromisePrototype.h:
      * runtime/JSPromiseResolver.cpp:
      * runtime/JSPromiseResolver.h:
      * runtime/JSPromiseResolverConstructor.cpp:
      * runtime/JSPromiseResolverConstructor.h:
      * runtime/JSPromiseResolverPrototype.cpp:
      * runtime/JSPromiseResolverPrototype.h:
      
      Source/WebCore: Add ENABLE guards for Promises
      https://bugs.webkit.org/show_bug.cgi?id=120488
      
      Reviewed by Andreas Kling.
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebKit/mac: Add ENABLE gaurds for Promises
      https://bugs.webkit.org/show_bug.cgi?id=120488
      
      Reviewed by Andreas Kling.
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebKit2: Add ENABLE gaurds for Promises
      https://bugs.webkit.org/show_bug.cgi?id=120488
      
      Reviewed by Andreas Kling.
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WTF: Add ENABLE guards for Promises
      https://bugs.webkit.org/show_bug.cgi?id=120488
      
      Reviewed by Andreas Kling.
      
      * wtf/FeatureDefines.h:
      
      Tools: Add ENABLE guards for Promises
      https://bugs.webkit.org/show_bug.cgi?id=120488
      
      Reviewed by Andreas Kling.
      
      * Scripts/webkitperl/FeatureList.pm:
      * qmake/mkspecs/features/features.pri:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154847 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b7188858
    • msaboff@apple.com's avatar
      REGRESSION (r153222, 32-bit): NULL JSValue() seen when running peacekeeper benchmark · 251f6b5d
      msaboff@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120080
      
      Rubber stamped by Oliver Hunt.
      
      Added layout test that crashes without the fix in bug 120080.
      
      * fast/js/lazy-create-arguments-from-get-by-val-expected.txt: Added.
      * fast/js/lazy-create-arguments-from-get-by-val.html: Added.
      * fast/js/script-tests/lazy-create-arguments-from-get-by-val.js: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      251f6b5d
    • fpizlo@apple.com's avatar
      Unreviewed, fix FTL build. · bfb053b9
      fpizlo@apple.com authored
      * ftl/FTLLowerDFGToLLVM.cpp:
      (JSC::FTL::LowerDFGToLLVM::callCheck):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154845 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bfb053b9
    • akling@apple.com's avatar
      Inspector: Use a bit of RefPtr::release() in generated code. · bf74292f
      akling@apple.com authored
      <https://webkit.org/b/120485>
      
      Reviewed by Darin Adler.
      
      Just something I spotted while reading InspectorBackendDispatcher.cpp.
      Avoid 3 cases of reference count churnery.
      
      * inspector/CodeGeneratorInspectorStrings.py:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154843 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bf74292f
    • dino@apple.com's avatar
      XMLSerializer-attribute-namespace-prefix-conflicts can't produce reliable results · 2e66b71c
      dino@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120490
      
      Marking as [ Pass Failure ] for the moment.
      
      * TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154842 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2e66b71c
    • commit-queue@webkit.org's avatar
      [GTK] Should enable WebGL by default on MiniBrowser · 34993ac0
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=120420
      
      Patch by Andre Moreira Magalhaes <andre.magalhaes@collabora.co.uk> on 2013-08-29
      Reviewed by Gustavo Noronha Silva.
      
      Enable WebGL by default on MiniBrowser.
      
      * MiniBrowser/gtk/main.c:
      (main):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154841 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      34993ac0
    • ch.dumez@sisa.samsung.com's avatar
      According to DOM4, all DocType nodes should have a document · cfaa7e92
      ch.dumez@sisa.samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99244
      
      Reviewed by Darin Adler.
      
      Source/WebCore:
      
      Doctypes now always have a node document and can be moved across document boundaries as per
      the latest DOM4 specification:
      http://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype
      http://dom.spec.whatwg.org/#dom-node-ownerdocument
      
      This means that DOMImplementation.createDocumentType() now sets the ownerDocument of the
      new DocumentType Node to the associated document of the current "context" object. In
      DOM4, all nodes have a document at all times. DocumentType nodes can now be moved across
      document boundaries so that the node can be added to a Document after being created.
      
      This means we will no longer need to special case DocumentType nodes in the code and
      Node::document() can no longer return NULL, which means that we'll be able to remove
      NULL checks in call sites.
      
      Firefox stable and since recently Blink already follow DOM4 here while IE10 does not (yet).
      
      Test: fast/dom/createDocumentType-ownerDocument.html
      
      * dom/ContainerNode.cpp:
      (WebCore::checkAcceptChild):
      * dom/DOMImplementation.cpp:
      (WebCore::DOMImplementation::createDocumentType):
      (WebCore::DOMImplementation::createDocument):
      * dom/Node.h:
      (WebCore::Node::document):
      
      LayoutTests:
      
      Add layout test to check that DocumentType Nodes have a document after being
      created. Also update a few existing test cases to reflect this change.
      
      * fast/dom/DOMImplementation/createDocument-with-used-doctype-expected.txt:
      * fast/dom/DOMImplementation/createDocument-with-used-doctype.html:
      * fast/dom/DOMImplementation/resources/createDocument-with-used-doctype-frame.html:
      * fast/dom/XMLSerializer-doctype2-expected.txt:
      * fast/dom/XMLSerializer-doctype2.html:
      * fast/dom/createDocumentType-ownerDocument-expected.txt: Added.
      * fast/dom/createDocumentType-ownerDocument.html: Added.
      * fast/dom/move-nodes-across-documents.html:
      * fast/dom/node-iterator-with-doctype-root-expected.txt:
      * fast/dom/node-iterator-with-doctype-root.html:
      * fast/events/dispatch-event-no-document-expected.txt:
      * fast/events/dispatch-event-no-document.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154840 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cfaa7e92
    • commit-queue@webkit.org's avatar
      REGRESSION(r153222, 32-bit): NULL JSValue() seen when running peacekeeper benchmark. · 83f6c4a5
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=120080
      
      Patch by Julien Brianceau <jbriance@cisco.com> on 2013-08-29
      Reviewed by Michael Saboff.
      
      * jit/JITOpcodes32_64.cpp:
      (JSC::JIT::emitSlow_op_get_argument_by_val): Revert changes introduced by r153222 in this function.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154839 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      83f6c4a5
    • fpizlo@apple.com's avatar
      Kill code that became dead after http://trac.webkit.org/changeset/154833 · fc5d05a0
      fpizlo@apple.com authored
      Rubber stamped by Oliver Hunt.
      
      * dfg/DFGDriver.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154838 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fc5d05a0
    • fpizlo@apple.com's avatar
      CodeBlock's magic for scaling tier-up thresholds should be more reusable · e5b68643
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120486
      
      Reviewed by Oliver Hunt.
              
      Removed the counterValueForBlah() methods and exposed the reusable scaling logic
      as a adjustedCounterValue() method.
      
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::adjustedCounterValue):
      (JSC::CodeBlock::optimizeAfterWarmUp):
      (JSC::CodeBlock::optimizeAfterLongWarmUp):
      (JSC::CodeBlock::optimizeSoon):
      * bytecode/CodeBlock.h:
      * dfg/DFGOSRExitCompilerCommon.cpp:
      (JSC::DFG::handleExitCounts):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154837 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e5b68643
    • darin@apple.com's avatar
      Pasteboard::writeSelection violates layering (first step, fixes it for Mac platform only) · 860f0ea8
      darin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120483
      
      Reviewed by Anders Carlsson.
      
      * editing/Editor.cpp:
      (WebCore::Editor::cut): Added some comments. Use the new writeSelectionToPasteboard
      function on Mac instead of Pasteboard::writeSelection.
      (WebCore::Editor::copy): Ditto.
      
      * editing/Editor.h: Removed an old unused Mac-only writeSelectionToPasteboard function
      that was a cover that called through to Pasteboard::writeSelectionForTypes. Added a new
      Mac-only writeSelectionToPasteboard function that is destined to become cross-platform soon.
      
      * editing/mac/EditorMac.mm:
      (WebCore::Editor::writeSelectionToPasteboard): Added. Uses a new pattern where the Editor
      puts all the data into a structure called PasteboardWebContent then calls the Pasteboard to
      do the work. The platform-specific aspect of PasteboardWebContent is what formats are needed
      for each platform.
      
      * page/DragController.cpp:
      (WebCore::DragController::startDrag): Added some comments. Use the new writeSelectionToPasteboard
      function on Mac instead of Pasteboard::writeSelection.
      
      * platform/Pasteboard.h: Remove some unneeded forward declarations. Added comments for all functions
      that don't belong in this class because they are layering violations; this becomes the to do list for
      the project we are beginning here. Added the new PasteboardWebContent structure, empty on all platforms
      except for Mac for now. Removed writeSelectionForTypes, a Mac-only function that is no longer used.
      Added setTypes and writeAfterSettingTypes, the two halves of the future function named writeWebContent.
      Put the writeSelection function inside a "not Mac" if statement. Later to be deleted entirely.
      
      * platform/mac/PasteboardMac.mm: Removed now-unneeded selectionPasteboardTypes,
      Pasteboard::writeSelectionForTypes, and writeSelection functions.
      (WebCore::Pasteboard::setTypes): Added. First half of writing web content to the pasteboard.
      (WebCore::Pasteboard::writeAfterSettingTypes): Added. Second half of writing web content to the pasteboard.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154836 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      860f0ea8
    • antti@apple.com's avatar
      Remove code behind ENABLE(DIALOG_ELEMENT) · c85aaaf9
      antti@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120467
      
      Reviewed by Darin Adler.
      
      It is incomplete and no one is building it.
      
      * CMakeLists.txt:
      * Configurations/FeatureDefines.xcconfig:
      * DerivedSources.make:
      * DerivedSources.pri:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.exp.in:
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/generic/RuntimeEnabledFeatures.cpp:
      * bindings/generic/RuntimeEnabledFeatures.h:
      * css/StyleResolver.cpp:
      (WebCore::StyleResolver::adjustRenderStyle):
      * css/html.css:
      * dom/ContextFeatures.cpp:
      * dom/ContextFeatures.h:
      * dom/Document.cpp:
      * dom/Document.h:
      * dom/Element.cpp:
      (WebCore::Element::removedFrom):
      (WebCore::Element::setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries):
      * dom/Element.h:
      (WebCore::Element::isDisabledFormControl):
      * dom/ElementRareData.h:
      (WebCore::ElementRareData::ElementRareData):
      * html/HTMLDialogElement.cpp: Removed.
      * html/HTMLDialogElement.h: Removed.
      * html/HTMLDialogElement.idl: Removed.
      * html/HTMLElementsAllInOne.cpp:
      * html/HTMLTagNames.in:
      * rendering/RenderDialog.cpp: Removed.
      * rendering/RenderDialog.h: Removed.
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::rebuildZOrderLists):
      (WebCore::RenderLayer::collectLayers):
      * rendering/RenderLayer.h:
      * rendering/RenderObject.h:
      (WebCore::RenderObject::isCounter):
      * rendering/RenderingAllInOne.cpp:
      * testing/InternalSettings.cpp:
      (WebCore::InternalSettings::Backup::Backup):
      (WebCore::InternalSettings::Backup::restoreTo):
      * testing/InternalSettings.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c85aaaf9
    • dino@apple.com's avatar
      Reverting a change that was made in https://bugs.webkit.org/show_bug.cgi?id=120472. · 828692af
      dino@apple.com authored
      * media/track/track-cue-rendering-on-resize-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      828692af
    • fpizlo@apple.com's avatar
      CodeBlock::prepareForExecution() is silly · 1342e7a8
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120453
      
      Reviewed by Oliver Hunt.
              
      Instead of saying:
              
          codeBlock->prepareForExecution(stuff, BaselineJIT, more stuff)
              
      we should just say:
              
          JIT::compile(stuff, codeBlock, more stuff);
              
      And similarly for the LLInt and DFG.
              
      This kills a bunch of code, since CodeBlock::prepareForExecution() is just a
      wrapper that uses the JITType argument to call into the appropriate execution
      engine, which is what the user wanted to do in the first place.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/CodeBlock.cpp:
      * bytecode/CodeBlock.h:
      * dfg/DFGDriver.cpp:
      (JSC::DFG::compileImpl):
      (JSC::DFG::compile):
      * dfg/DFGDriver.h:
      (JSC::DFG::tryCompile):
      * dfg/DFGOSRExitPreparation.cpp:
      (JSC::DFG::prepareCodeOriginForOSRExit):
      * dfg/DFGWorklist.cpp:
      (JSC::DFG::globalWorklist):
      * dfg/DFGWorklist.h:
      * jit/JIT.cpp:
      (JSC::JIT::privateCompile):
      * jit/JIT.h:
      (JSC::JIT::compile):
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      * llint/LLIntEntrypoint.cpp: Copied from Source/JavaScriptCore/llint/LLIntEntrypoints.cpp.
      (JSC::LLInt::setFunctionEntrypoint):
      (JSC::LLInt::setEvalEntrypoint):
      (JSC::LLInt::setProgramEntrypoint):
      (JSC::LLInt::setEntrypoint):
      * llint/LLIntEntrypoint.h: Copied from Source/JavaScriptCore/llint/LLIntEntrypoints.h.
      * llint/LLIntEntrypoints.cpp: Removed.
      * llint/LLIntEntrypoints.h: Removed.
      * llint/LLIntSlowPaths.cpp:
      (JSC::LLInt::jitCompileAndSetHeuristics):
      * runtime/Executable.cpp:
      (JSC::ScriptExecutable::prepareForExecutionImpl):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154833 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1342e7a8
    • simon.fraser@apple.com's avatar
      Fix slider thumb event handling to use local, not absolute coordinates · 63a45cfe
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120480
      
      Reviewed by Darin Adler.
      
      SliderThumbElement::setPositionFromPoint() did all of its coordinate
      math by mapping renderer rects into absolute coordinates, which was
      unnecessary and expensive.
      
      Fix by doing all the math in the coordinate space of the input's
      renderer. This simplified the code. Also, currentPosition
      was computed but unused, so was removed.
      
      No behavior change. Tested by fast/forms/range/slider-transformed.html
      
      * html/shadow/SliderThumbElement.cpp:
      (WebCore::SliderThumbElement::setPositionFromPoint):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      63a45cfe
    • simon.fraser@apple.com's avatar
      Add a Command-R shortcut in MiniBrowser · a3e2d240
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120442
      
      Reviewed by Dean Jackson.
      
      Add a "Reload Page" item to the View menu with a Command-R
      shortcut.
      
      * MiniBrowser/mac/MainMenu.xib:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154831 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a3e2d240
    • zandobersek@gmail.com's avatar
      [Automake] libWebCoreDOM.la could use a better name · 4fe2d206
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120232
      
      Reviewed by Martin Robinson.
      
      Source/WebCore: 
      
      * bindings/gobject/GNUmakefile.am: Rename the libWebCoreDOM library to libGObjectDOMBindings.
      
      Source/WebKit/gtk: 
      
      * GNUmakefile.am: libWebCoreDOM has a new name - libGObjectDOMBindings.
      
      Source/WebKit2: 
      
      * GNUmakefile.am: libWebCoreDOM has a new name - libGObjectDOMBindings.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154830 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4fe2d206
    • joepeck@webkit.org's avatar
      Web Inspector: Consolidate inspector-protocol tests into domains · a64a4b46
      joepeck@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=120450
      
      Reviewed by Timothy Hatcher.
      
      Move around tests and clean them up in the process.
      
      * http/tests/inspector-protocol/resources/protocol-test.js:
      * inspector-protocol/css/getSupportedCSSProperties-expected.txt: Renamed from LayoutTests/inspector-protocol/css-getSupportedCSSProperties-expected.txt.
      * inspector-protocol/css/getSupportedCSSProperties.html: Renamed from LayoutTests/inspector-protocol/css-getSupportedCSSProperties.html.
      * inspector-protocol/dom/focus-expected.txt: Renamed from LayoutTests/inspector-protocol/dom-focus-expected.txt.
      * inspector-protocol/dom/focus.html: Renamed from LayoutTests/inspector-protocol/dom-focus.html.
      * inspector-protocol/dom/request-child-nodes-depth-expected.txt: Renamed from LayoutTests/inspector-protocol/dom-request-child-nodes-depth-expected.txt.
      * inspector-protocol/dom/request-child-nodes-depth.html: Renamed from LayoutTests/inspector-protocol/dom-request-child-nodes-depth.html.
      * inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.html:
      * inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.html:
      * inspector-protocol/heap-profiler/take-heap-snapshot.html:
      * inspector-protocol/nmi-webaudio-expected.txt: Removed.
      * inspector-protocol/nmi-webaudio-leak-test-expected.txt: Removed.
      * inspector-protocol/nmi-webaudio-leak-test.html: Removed.
      * inspector-protocol/nmi-webaudio.html: Removed.
      * inspector-protocol/page/frameScheduledNavigation.html:
      * inspector-protocol/page/frameStartedLoading.html:
      * inspector-protocol/page/resources/blank.html: Renamed from LayoutTests/inspector-protocol/resources/blank.html.
      * inspector-protocol/page/setEmulatedMedia-expected.txt: Renamed from LayoutTests/inspector-protocol/media-query-listener-exception-expected.txt.
      * inspector-protocol/page/setEmulatedMedia.html: Renamed from LayoutTests/inspector-protocol/media-query-listener-exception.html.
      * inspector-protocol/resources/audio-context.html: Removed.
      * inspector-protocol/runtime/getProperties-expected.txt: Renamed from LayoutTests/inspector-protocol/runtime-getProperties-expected.txt.
      * inspector-protocol/runtime/getProperties.html: Renamed from LayoutTests/inspector-protocol/runtime-getProperties.html.
      * platform/efl/TestExpectations:
      * platform/gtk-wk1/TestExpectations:
      * platform/gtk/TestExpectations:
      * platform/mac/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/win/TestExpectations:
      * platform/wincairo/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154829 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a64a4b46
    • joepeck@webkit.org's avatar
      Web Inspector: Download Web Archive of Inspected Page · e061c7f1
      joepeck@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=119774
      
      Reviewed by Timothy Hatcher.
      
      Source/WebCore:
      
      Add PageAgent.archive which will return a Base-64 encoded web archive
      when successful. In order to then allow saving non-string files, extend
      InspectorFrontendHost.save to allow for Base-64 encoded data.
      
      * inspector/Inspector.json:
      * inspector/InspectorPageAgent.cpp:
      (WebCore::InspectorPageAgent::archive):
      * inspector/InspectorPageAgent.h:
      Introduce and implement PageAgent.archive. Create a Web Archive of the
      page's main frame.
      
      * inspector/InspectorFrontendClient.h:
      * inspector/InspectorFrontendClientLocal.h:
      (WebCore::InspectorFrontendClientLocal::save):
      * inspector/InspectorFrontendHost.cpp:
      (WebCore::InspectorFrontendHost::save):
      * inspector/InspectorFrontendHost.h:
      * inspector/InspectorFrontendHost.idl:
      Extend InspectorFrontendHost.save to include a base64Encoded param.
      
      * inspector/front-end/FileManager.js:
      * inspector/front-end/InspectorFrontendHostStub.js:
      (.WebInspector.InspectorFrontendHostStub.prototype.save):
      Misc. updates to the old inspector for function changes.
      
      Source/WebInspectorUI:
      
      * UserInterface/ContentBrowser.js:
      (WebInspector.ContentBrowser.prototype._saveDataToFile):
      Allow a custom save handler which will do all the work.
      
      * UserInterface/DOMTreeContentView.js:
      (WebInspector.DOMTreeContentView):
      (WebInspector.DOMTreeContentView.prototype.get supportsSave):
      (WebInspector.DOMTreeContentView.prototype.get saveData.saveHandler):
      (WebInspector.DOMTreeContentView.prototype.get saveData):
      Allow Save keyboard shortcut to download an archive viewing the DOM Tree.
      
      * UserInterface/ResourceTreeElement.js:
      (WebInspector.ResourceTreeElement.prototype._updateStatus):
      * UserInterface/FrameTreeElement.js:
      (WebInspector.FrameTreeElement):
      (WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
      (WebInspector.FrameTreeElement.prototype._mainResourceDidChange):
      (WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders):
      (WebInspector.FrameTreeElement.prototype._reloadPageClicked):
      (WebInspector.FrameTreeElement.prototype._downloadButtonClicked):
      (WebInspector.FrameTreeElement.prototype._updateDownloadButton):
      (WebInspector.FrameTreeElement.prototype._pageArchiveStarted):
      (WebInspector.FrameTreeElement.prototype._pageArchiveEnded):
      Move handling of main frame TreeElement buttons to FrameTreeElement.
      Add a Download button, and enable/disable it appropriately.
      
      * UserInterface/ResourceTreeElement.css:
      * UserInterface/TreeElementStatusButton.css: Copied from Source/WebInspectorUI/UserInterface/ResourceTreeElement.css.
      (.item > .status > .status-button):
      (.item > .status > .status-button > svg *):
      (.item.selected > .status > .status-button > svg *):
      (.item.selected > .status > .status-button:active > svg *):
      (.item > .status > .status-button.disabled > svg *):
      (.item.selected > .status > .status-button.disabled > svg *):
      * UserInterface/TreeElementStatusButton.js: Added.
      (WebInspector.TreeElementStatusButton):
      (WebInspector.TreeElementStatusButton.prototype.get element):
      (WebInspector.TreeElementStatusButton.prototype.get hidden):
      (WebInspector.TreeElementStatusButton.prototype.set hidden):
      (WebInspector.TreeElementStatusButton.prototype.get enabled):
      (WebInspector.TreeElementStatusButton.prototype.set enabled):
      (WebInspector.TreeElementStatusButton.prototype._clicked):
      Make buttons in the TreeElement status a generic class to share styling
      and handling of the buttons. New "disabled" state with even more
      transparent is used when the page is downloading.
      
      * UserInterface/Main.html:
      * UserInterface/Main.js:
      (WebInspector.archiveMainFrame):
      (WebInspector.canArchiveMainFrame):
      Generic API for archiving the page and determining if you can archive it.
      
      * UserInterface/InspectorBackendCommands.js:
      * UserInterface/InspectorFrontendHostStub.js:
      (.WebInspector.InspectorFrontendHostStub.prototype.save):
      * UserInterface/Images/DownloadArrow.svg: Added.
      * Localizations/en.lproj/localizedStrings.js:
      Misc. updates and new files.
      
      Source/WebKit/mac:
      
      Update to support InspectorFrontendHost.save's new base64Encoded
      parameter. It means the incoming content is binary data, not a string.
      
      * WebCoreSupport/WebInspectorClient.h:
      * WebCoreSupport/WebInspectorClient.mm:
      (WebInspectorFrontendClient::save):
      
      Source/WebKit2:
      
      Update to support InspectorFrontendHost.save's new base64Encoded
      parameter. It means the incoming content is binary data, not a string.
      
      * UIProcess/WebInspectorProxy.cpp:
      (WebKit::WebInspectorProxy::save):
      * UIProcess/WebInspectorProxy.h:
      * UIProcess/WebInspectorProxy.messages.in:
      * UIProcess/efl/WebInspectorProxyEfl.cpp:
      (WebKit::WebInspectorProxy::platformSave):
      * UIProcess/gtk/WebInspectorProxyGtk.cpp:
      (WebKit::WebInspectorProxy::platformSave):
      * UIProcess/mac/WebInspectorProxyMac.mm:
      (WebKit::WebInspectorProxy::platformSave):
      * UIProcess/qt/WebInspectorProxyQt.cpp:
      (WebKit::WebInspectorProxy::platformSave):
      * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
      (WebKit::WebInspectorFrontendClient::save):
      * WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
      * WebProcess/WebPage/WebInspector.cpp:
      (WebKit::WebInspector::save):
      * WebProcess/WebPage/WebInspector.h:
      
      LayoutTests:
      
      * inspector-protocol/page/archive-expected.txt: Added.
      * inspector-protocol/page/archive.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e061c7f1
    • mark.lam@apple.com's avatar
      Gardening: fixed broken non-DFG build. · be668e75
      mark.lam@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120481.
      
      Not reviewed.
      
      * interpreter/StackIterator.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154827 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      be668e75
    • robert@webkit.org's avatar
      Positioned Replaced Elements That Aren't RenderReplaced get Incorrect Width · 38663b36
      robert@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=93735
      
      Reviewed by David Hyatt.
      
      Source/WebCore:
      
      Replaced elements that aren't RenderReplaced aren't |isReplaced| and don't have an
      intrinsic height or width. This causes them to go down the wrong height and width computation
      path in RenderBox when they are absolute positioned.
      
      The notion of |isReplaced| is entwined with the notion of being |isInline| so it isn't really
      possible to make them isReplaced without re-wiring a lot of code. So instead use an ad-hoc definition
      of isReplacedElement in RenderBox to bring all replaced elements into the height and width calculation.
      To make sure we get the right height and width in there, give non-RenderReplaced replaced renderers
      the helpers for returning their approximation of intrinsic height and width.
      
      The initial attempt at landing this patch had to be rolled out because it used LayoutUnit() for default
      intrinsic height of some replaced elements and this made the layout of the elements unstable in some sites.
      The fix for this issue is captured in intrinsic-button-and-input-height.html.
      
      Tests: fast/replaced/intrinsic-button-and-input-height.html
             fast/replaced/width-and-height-of-positioned-replaced-elements.html
      
      * rendering/RenderBox.cpp:
      (WebCore::isReplacedElement):
      (WebCore::RenderBox::computePositionedLogicalWidth):
      (WebCore::RenderBox::computePositionedLogicalHeight):
      * rendering/RenderBox.h:
      (WebCore::RenderBox::intrinsicSize):
      * rendering/RenderButton.h:
      * rendering/RenderFileUploadControl.cpp:
      (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
      * rendering/RenderListBox.cpp:
      (WebCore::RenderListBox::RenderListBox):
      (WebCore::RenderListBox::computePreferredLogicalWidths):
      (WebCore::RenderListBox::computeLogicalHeight):
      * rendering/RenderListBox.h:
      * rendering/RenderMenuList.h:
      * rendering/RenderReplaced.h:
      * rendering/RenderSlider.cpp:
      (WebCore::RenderSlider::computePreferredLogicalWidths):
      * rendering/RenderTextControl.cpp:
      (WebCore::RenderTextControl::RenderTextControl):
      (WebCore::RenderTextControl::computeLogicalHeight):
      * rendering/RenderTextControl.h:
      
      LayoutTests:
      
      * fast/replaced/intrinsic-button-and-input-height-expected.txt: Added.
      * fast/replaced/intrinsic-button-and-input-height.html: Added.
      * fast/replaced/width-and-height-of-positioned-replaced-elements.html: Added.
      * platform/qt/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.png: Added.
      * platform/qt/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.txt: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154826 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      38663b36
    • bfulgham@apple.com's avatar
      [Windows] Unreviewed gardening. Add missing *.css files from project. · fdaac04c
      bfulgham@apple.com authored
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154825 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fdaac04c
    • fpizlo@apple.com's avatar
      CodeBlock compilation and installation should be simplified and rationalized · 62b6af85
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120326
      
      Reviewed by Oliver Hunt.
              
      Rolling r154804 back in after fixing no-LLInt build.
              
      Previously Executable owned the code for generating JIT code; you always had
      to go through Executable. But often you also had to go through CodeBlock,
      because ScriptExecutable couldn't have virtual methods, but CodeBlock could.
      So you'd ask CodeBlock to do something, which would dispatch through a
      virtual method that would select the appropriate Executable subtype's method.
      This all meant that the same code would often be duplicated, because most of
      the work needed to compile something was identical regardless of code type.
      But then we tried to fix this, by having templatized helpers in
      ExecutionHarness.h and JITDriver.h. The result was that if you wanted to find
      out what happened when you asked for something to be compiled, you'd go on a
      wild ride that started with CodeBlock, touched upon Executable, and then
      ricocheted into either ExecutionHarness or JITDriver (likely both).
              
      Another awkwardness was that for concurrent compiles, the DFG::Worklist had
      super-special inside knowledge of what JITStubs.cpp's cti_optimize would have
      done once the compilation finished.
              
      Also, most of the DFG JIT drivers assumed that they couldn't install the
      JITCode into the CodeBlock directly - instead they would return it via a
      reference, which happened to be a reference to the JITCode pointer in
      Executable. This was super weird.
              
      Finally, there was no notion of compiling code into a special CodeBlock that
      wasn't used for handling calls into an Executable. I'd like this for FTL OSR
      entry.
              
      This patch solves these problems by reducing all of that complexity into just
      three primitives:
              
      - Executable::newCodeBlock(). This gives you a new code block, either for call
        or for construct, and either to serve as the baseline code or the optimized
        code. The new code block is then owned by the caller; Executable doesn't
        register it anywhere. The new code block has no JITCode and isn't callable,
        but it has all of the bytecode.
              
      - CodeBlock::prepareForExecution(). This takes the CodeBlock's bytecode and
        produces a JITCode, and then installs the JITCode into the CodeBlock. This
        method takes a JITType, and always compiles with that JIT. If you ask for
        JITCode::InterpreterThunk then you'll get JITCode that just points to the
        LLInt entrypoints. Once this returns, it is possible to call into the
        CodeBlock if you do so manually - but the Executable still won't know about
        it so JS calls to that Executable will still be routed to whatever CodeBlock
        is associated with the Executable.
              
      - Executable::installCode(). This takes a CodeBlock and makes it the code-for-
        entry for that Executable. This involves unlinking the Executable's last
        CodeBlock, if there was one. This also tells the GC about any effect on
        memory usage and does a bunch of weird data structure rewiring, since
        Executable caches some of CodeBlock's fields for the benefit of virtual call
        fast paths.
              
      This functionality is then wrapped around three convenience methods:
              
      - Executable::prepareForExecution(). If there is no code block for that
        Executable, then one is created (newCodeBlock()), compiled
        (CodeBlock::prepareForExecution()) and installed (installCode()).
              
      - CodeBlock::newReplacement(). Asks the Executable for a new CodeBlock that
        can serve as an optimized replacement of the current one.
              
      - CodeBlock::install(). Asks the Executable to install this code block.
              
      This patch allows me to kill *a lot* of code and to remove a lot of
      specializations for functions vs. not-functions, and a lot of places where we
      pass around JITCode references and such. ExecutionHarness and JITDriver are
      both gone. Overall this patch has more red than green.
              
      It also allows me to work on FTL OSR entry and tier-up:
              
      - FTL tier-up: this will involve DFGOperations.cpp asking the DFG::Worklist
        to do some compilation, but it will require the DFG::Worklist to do
        something different than what JITStubs.cpp would want, once the compilation
        finishes. This patch introduces a callback mechanism for that purpose.
              
      - FTL OSR entry: this will involve creating a special auto-jettisoned
        CodeBlock that is used only for FTL OSR entry. The new set of primitives
        allows for this: Executable can vend you a fresh new CodeBlock, and you can
        ask that CodeBlock to compile itself with any JIT of your choosing. Or you
        can take that CodeBlock and compile it yourself. Previously the act of
        producing a CodeBlock-for-optimization and the act of compiling code for it
        were tightly coupled; now you can separate them and you can create such
        auto-jettisoned CodeBlocks that are used for a one-shot OSR entry.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::unlinkIncomingCalls):
      (JSC::CodeBlock::prepareForExecutionImpl):
      (JSC::CodeBlock::prepareForExecution):
      (JSC::CodeBlock::prepareForExecutionAsynchronously):
      (JSC::CodeBlock::install):
      (JSC::CodeBlock::newReplacement):
      (JSC::FunctionCodeBlock::jettisonImpl):
      * bytecode/CodeBlock.h:
      (JSC::CodeBlock::hasBaselineJITProfiling):
      * bytecode/DeferredCompilationCallback.cpp: Added.
      (JSC::DeferredCompilationCallback::DeferredCompilationCallback):
      (JSC::DeferredCompilationCallback::~DeferredCompilationCallback):
      * bytecode/DeferredCompilationCallback.h: Added.
      * dfg/DFGDriver.cpp:
      (JSC::DFG::tryCompile):
      * dfg/DFGDriver.h:
      (JSC::DFG::tryCompile):
      * dfg/DFGFailedFinalizer.cpp:
      (JSC::DFG::FailedFinalizer::finalize):
      (JSC::DFG::FailedFinalizer::finalizeFunction):
      * dfg/DFGFailedFinalizer.h:
      * dfg/DFGFinalizer.h:
      * dfg/DFGJITFinalizer.cpp:
      (JSC::DFG::JITFinalizer::finalize):
      (JSC::DFG::JITFinalizer::finalizeFunction):
      * dfg/DFGJITFinalizer.h:
      * dfg/DFGOSRExitPreparation.cpp:
      (JSC::DFG::prepareCodeOriginForOSRExit):
      * dfg/DFGOperations.cpp:
      * dfg/DFGPlan.cpp:
      (JSC::DFG::Plan::Plan):
      (JSC::DFG::Plan::compileInThreadImpl):
      (JSC::DFG::Plan::notifyReady):
      (JSC::DFG::Plan::finalizeWithoutNotifyingCallback):
      (JSC::DFG::Plan::finalizeAndNotifyCallback):
      * dfg/DFGPlan.h:
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGWorklist.cpp:
      (JSC::DFG::Worklist::completeAllReadyPlansForVM):
      (JSC::DFG::Worklist::runThread):
      * ftl/FTLJITFinalizer.cpp:
      (JSC::FTL::JITFinalizer::finalize):
      (JSC::FTL::JITFinalizer::finalizeFunction):
      * ftl/FTLJITFinalizer.h:
      * heap/Heap.h:
      (JSC::Heap::isDeferred):
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::execute):
      (JSC::Interpreter::executeCall):
      (JSC::Interpreter::executeConstruct):
      (JSC::Interpreter::prepareForRepeatCall):
      * jit/JITDriver.h: Removed.
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      (JSC::jitCompileFor):
      (JSC::lazyLinkFor):
      * jit/JITToDFGDeferredCompilationCallback.cpp: Added.
      (JSC::JITToDFGDeferredCompilationCallback::JITToDFGDeferredCompilationCallback):
      (JSC::JITToDFGDeferredCompilationCallback::~JITToDFGDeferredCompilationCallback):
      (JSC::JITToDFGDeferredCompilationCallback::create):
      (JSC::JITToDFGDeferredCompilationCallback::compilationDidBecomeReadyAsynchronously):
      (JSC::JITToDFGDeferredCompilationCallback::compilationDidComplete):
      * jit/JITToDFGDeferredCompilationCallback.h: Added.
      * llint/LLIntEntrypoints.cpp:
      (JSC::LLInt::setFunctionEntrypoint):
      (JSC::LLInt::setEvalEntrypoint):
      (JSC::LLInt::setProgramEntrypoint):
      * llint/LLIntEntrypoints.h:
      * llint/LLIntSlowPaths.cpp:
      (JSC::LLInt::jitCompileAndSetHeuristics):
      (JSC::LLInt::setUpCall):
      * runtime/ArrayPrototype.cpp:
      (JSC::isNumericCompareFunction):
      * runtime/CommonSlowPaths.cpp:
      * runtime/CompilationResult.cpp:
      (WTF::printInternal):
      * runtime/CompilationResult.h:
      * runtime/Executable.cpp:
      (JSC::ScriptExecutable::installCode):
      (JSC::ScriptExecutable::newCodeBlockFor):
      (JSC::ScriptExecutable::newReplacementCodeBlockFor):
      (JSC::ScriptExecutable::prepareForExecutionImpl):
      * runtime/Executable.h:
      (JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor):
      (JSC::ExecutableBase::offsetOfNumParametersFor):
      (JSC::ScriptExecutable::prepareForExecution):
      (JSC::FunctionExecutable::jettisonOptimizedCodeFor):
      * runtime/ExecutionHarness.h: Removed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      62b6af85
    • psolanki@apple.com's avatar
      SharedBuffer m_segments and m_dataArray must be exclusive · 262a9905
      psolanki@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=77715
      
      Patch by Pratik Solanki <pratik.solanki@gmail.com> on 2013-08-29
      Reviewed by Benjamin Poulain.
      
      When USE(NETWORK_CFDATA_ARRAY_CALLBACK) is enabled, we use m_dataArray to hold the incoming
      data. We do not use m_segments. Since they are exclusive in practice, do not define or use
      m_segments when NETWORK_CFDATA_ARRAY_CALLBACK is enabled.
      
      No new tests because no functional changes.
      
      * platform/SharedBuffer.cpp:
      (WebCore::SharedBuffer::append):
      (WebCore::SharedBuffer::clear):
      (WebCore::SharedBuffer::copy):
      (WebCore::SharedBuffer::buffer):
      (WebCore::SharedBuffer::getSomeData):
      * platform/SharedBuffer.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      262a9905
    • commit-queue@webkit.org's avatar
      Web Inspector: Consolidate inspector-protocol Debugger tests · 5b4714c6
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=120449
      
      Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-08-29
      Reviewed by Timothy Hatcher.
      
      Move the tests, and clean-up their syntax a bit to be more
      consistent, readable, and compact.
      
      * inspector-protocol/debugger/column-breakpoint.html:
      * inspector-protocol/debugger/pause-dedicated-worker-expected.txt: Renamed from LayoutTests/inspector-protocol/debugger-pause-dedicated-worker-expected.txt.
      * inspector-protocol/debugger/pause-dedicated-worker.html: Renamed from LayoutTests/inspector-protocol/debugger-pause-dedicated-worker.html.
      * inspector-protocol/debugger/resources/dedicated-worker.js: Renamed from LayoutTests/inspector-protocol/resources/dedicated-worker.js.
      * inspector-protocol/debugger/setVariableValue-expected.txt: Renamed from LayoutTests/inspector-protocol/debugger-setVariableValue-expected.txt.
      * inspector-protocol/debugger/setVariableValue.html: Renamed from LayoutTests/inspector-protocol/debugger-setVariableValue.html.
      * inspector-protocol/debugger/terminate-dedicated-worker-while-paused-expected.txt: Renamed from LayoutTests/inspector-protocol/debugger-terminate-dedicated-worker-while-paused-expected.txt.
      * inspector-protocol/debugger/terminate-dedicated-worker-while-paused.html: Renamed from LayoutTests/inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html.
      * platform/efl/TestExpectations:
      * platform/gtk/TestExpectations:
      * platform/mac/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/win/TestExpectations:
      * platform/wincairo/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5b4714c6
    • mark.lam@apple.com's avatar
      Change StackIterator to not require writes to the JS stack. · fd86164a
      mark.lam@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=119657.
      
      Reviewed by Geoffrey Garen.
      
      * GNUmakefile.list.am:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
      * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * interpreter/CallFrame.h:
      - Removed references to StackIteratorPrivate.h.
      * interpreter/StackIterator.cpp:
      (JSC::StackIterator::numberOfFrames):
      (JSC::StackIterator::gotoFrameAtIndex):
      (JSC::StackIterator::gotoNextFrame):
      (JSC::StackIterator::resetIterator):
      (JSC::StackIterator::find):
      (JSC::StackIterator::readFrame):
      (JSC::StackIterator::readNonInlinedFrame):
      - Reads in the current CallFrame's data for non-inlined frames.
      (JSC::inlinedFrameOffset):
      - Convenience function to compute the inlined frame offset based on the
        CodeOrigin. If the offset is 0, then we're looking at the physical frame.
        Otherwise, it's an inlined frame.
      (JSC::StackIterator::readInlinedFrame):
      - Determines the inlined frame's caller frame. Will read in the caller
        frame if it is also an inlined frame i.e. we haven't reached the
        outer most frame yet. Otherwise, will call readNonInlinedFrame() to
        read on the outer most frame.
        This is based on the old StackIterator::Frame::logicalFrame().
      (JSC::StackIterator::updateFrame):
      - Reads the data of the caller frame of the current one. This function
        is renamed and moved from the old StackIterator::Frame::logicalCallerFrame(),
        but is now simplified because it delegates to the readInlinedFrame()
        to get the caller for inlined frames.
      (JSC::StackIterator::Frame::arguments):
      - Fixed to use the inlined frame versions of Arguments::create() and
        Arguments::tearOff() when the frame is an inlined frame.
      (JSC::StackIterator::Frame::print):
      (debugPrintCallFrame):
      (debugPrintStack):
      - Because sometimes, we want to see the whole stack while debugging.
      * interpreter/StackIterator.h:
      (JSC::StackIterator::Frame::argumentCount):
      (JSC::StackIterator::Frame::callerFrame):
      (JSC::StackIterator::Frame::callee):
      (JSC::StackIterator::Frame::scope):
      (JSC::StackIterator::Frame::codeBlock):
      (JSC::StackIterator::Frame::bytecodeOffset):
      (JSC::StackIterator::Frame::inlinedFrameInfo):
      (JSC::StackIterator::Frame::isJSFrame):
      (JSC::StackIterator::Frame::isInlinedFrame):
      (JSC::StackIterator::Frame::callFrame):
      (JSC::StackIterator::Frame::Frame):
      (JSC::StackIterator::Frame::~Frame):
      - StackIterator::Frame now caches commonly used accessed values from
        the CallFrame. It still delegates argument queries to the CallFrame.
      (JSC::StackIterator::operator*):
      (JSC::StackIterator::operator->):
      (JSC::StackIterator::operator!=):
      (JSC::StackIterator::operator++):
      (JSC::StackIterator::end):
      (JSC::StackIterator::operator==):
      * interpreter/StackIteratorPrivate.h: Removed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fd86164a
    • dbates@webkit.org's avatar
      [iOS] Upstream changes to WebCore/style · 619fc75d
      dbates@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=120173
      
      Reviewed by Darin Adler.
      
      * style/StyleResolveTree.cpp:
      (WebCore::Style::elementImplicitVisibility): Added; specific to iOS.
      (WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::CheckForVisibilityChangeOnRecalcStyle): Added; specific to iOS.
      (WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::~CheckForVisibilityChangeOnRecalcStyle): Added; specific to iOS.
      (WebCore::Style::resolveTree): Modified to instantiate CheckForVisibilityChangeOnRecalcStyle when building on iOS.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154820 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      619fc75d