1. 18 Jul, 2012 40 commits
    • hbono@chromium.org's avatar
      Move contents right when a vertical scrollbar is shown at the left side of an RTL element. · 49710b19
      hbono@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=85856
      
      Reviewed by Hajime Morita.
      
      Source/WebCore:
      
      This change prevents the scrollWidth value from being cropped by the width of a
      scrollbar when a vertical scrollbar is shown at the left side of an RTL element.
      This change also increases the clientLeft value by this scrollbar width and move
      contents right to improve compliance with CSSOM <http://www.w3.org/TR/cssom-view>.
      
      Tests: scrollbars/rtl/div-horizontal.html
             scrollbars/rtl/div-vertical.html
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::paintObject): Move contents to the right.
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::topLeftLocationOffset): Move the top-left corner to the right to prevent WebKit from cropping scrollWidth.
      * rendering/RenderBox.h:
      (WebCore::RenderBox::clientLeft): Increase clientLeft by the width of a scrollbar.
      
      LayoutTests:
      
      This changes adds a couple of tests that verify CSSOM properties of RTL elements
      are compliant with <http://www.w3.org/TR/cssom-view> regardless of their
      scrollbar positions.
      
      * platform/chromium/TestExpectations:
      * scrollbars/rtl: Added.
      * scrollbars/rtl/div-horizontal-expected.txt: Added.
      * scrollbars/rtl/div-horizontal.html: Added.
      * scrollbars/rtl/div-vertical-expected.txt: Added.
      * scrollbars/rtl/div-vertical.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123067 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      49710b19
    • tkent@chromium.org's avatar
      Form state restore: Classify form control sates by owners in internal and... · 79ff7c25
      tkent@chromium.org authored
      Form state restore: Classify form control sates by owners in internal and serialized representations
      https://bugs.webkit.org/show_bug.cgi?id=91594
      
      Reviewed by Hajime Morita.
      
      Source/WebCore:
      
      Before this change, the internal representation of form control states
      was a map like:
      
          {name, type, formKey} -> [FormControlState, FormControlState, ...]
      
      Also, the serialized representation was:
      
          [name, type, formKey, FormControlState,
           name, type, formKey, formControlState,
           ...]
      
      This changes these represenations. The internal representation is
      
          A map owned by FormController:
              formKey -> SavedFormState
          SavedFormState owns a map like:
              {name, type} -> [FormControlState, FormControlState, ...]
      
      The serialized representation is:
      
          [formKey, count,
           name, type, FormControlState,
           name, type, FormControlState,
           name, type, FormControlState,
           ....
           formKey, count,
           name, type, FormControlState,
           name, type, FormControlState,
           name, type, FormControlState,
           ....]
      
      The serialized representation would be smaller in many cases because
      each of items doesn't have formKey.
      
      Tests: Covered by fast/forms/state-restore-broken-state.html,
      state-restore-per-form.html, and state-restore-skip-stateless.html.
      
      * html/FormController.cpp:
      (FormElementKey): Remove formKey argument and m_formKey.
      (WebCore::FormElementKey::FormElementKey):
      (WebCore::FormElementKey::operator=):
      (WebCore::FormElementKey::ref):
      (WebCore::FormElementKey::deref):
      (WebCore::operator==):
      
      (SavedFormState):
       - The role of SavedFromState was changed. It represented all of control
        states. Now it represent control states owned by a signle form.
       - Make this non-copyable and fast-allocated.
       - Add m_controlStateCount, a counter of FormControlState
      (WebCore::SavedFormState::SavedFormState):
       Initialize m_controlStateCount.
      (WebCore::isNotFormControlTypeCharacter):
      Moved from another place in this file.
      (WebCore::SavedFormState::deserialize):
      Added. Build a SavedFromState with the specified stateVector.
      (WebCore::SavedFormState::serializeTo):
      Added. m_controlStateCount is needed here.
      (WebCore::SavedFormState::appendControlState):
       - Remove formKey arguement.
       - Update m_controlStateCount.
      (WebCore::SavedFormState::takeControlState): ditto.
      
      (WebCore::formStateSignature): Bump the version.
      (WebCore::FormController::createSavedFormStateMap):
      Added. Build a SavedFormStateMap from the form control list. This is a
      helper for formElementsState, and classifies controls in the document.
      (WebCore::FormController::formElementsState):
      Build a SavedFormStateMap with createSavedFormStateMap(),
      then serializes it.
      (WebCore::FormController::setStateForNewFormElements):
      Deserialize SavedFormState, and build SavedFormStateMap.
      (WebCore::FormController::takeStateForFormElement):
      Finds the corresponding SavedFormState with a formKey, and uses it.
      * html/FormController.h:
      Declare createSavedFormStateMap(), and moved typedefs for it.
      
      LayoutTests:
      
      Because the state serialization order depends on iteration order of
      HashMap, serialized state array is not stable. We should remove raw dump
      of serialized state array.
      
      * fast/forms/state-restore-per-form.html: Remove the code to dump the
      form state. It's useless because the test have enough assertions.
      * fast/forms/state-restore-per-form-expected.txt:
      * fast/forms/resources/state-restore-per-form-back.html: Removed.
      
      * fast/forms/resources/state-restore-skip-stateless-dump.html:
      Instead of dumping form state, check existence of types with JavaScript code.
      * fast/forms/state-restore-skip-stateless-expected.txt:
      * fast/forms/state-restore-skip-stateless.html: Fix a typo.
      
      * fast/forms/state-restore-broken-state-expected.txt:
      Update the expectation because of the serialization format change.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      79ff7c25
    • piman@chromium.org's avatar
      [chromium] Introduce CCResourceProvider, replacing TextureAllocator and hiding... · c75080f0
      piman@chromium.org authored
      [chromium] Introduce CCResourceProvider, replacing TextureAllocator and hiding textures from clients to allow transport
      https://bugs.webkit.org/show_bug.cgi?id=91044
      
      Reviewed by Adrienne Walker.
      
      This does several things:
      - Add a CCResourceProvider class, that hides textures and the 3D context
      from layers (except those that need it). Instead layers manage
      "resources". In the future, resources are expected to be transportable
      to a "parent" CCResourceProvider to allow flattening of nested
      compositors.
      - Replace texture ids by resource ids in DrawQuads (allowing them to be
      serializable).
      - Replace TextureAllocator uses by the CCResourceProvider class.
      - Upload of data is done through the CCResourceProvider instead of
      explicit GL calls.
      - External textures are wrapped into a resource at draw time (see
      caveat/FIXME in CCTextureLayerImpl).
      - Rendering with the resources is done through an explicit
      beginRenderFrom/endRenderFrom that exposes the texture only between that
      pair.
      - Merge all the LayerTextureSubImage instances (one per layer), into a
      single instance on the CCResourceProvider.
      
      Added CCResourceProviderTest, the refactoring is covered by existing tests.
      
      Source/Platform:
      
      * chromium/public/WebCompositorTextureQuad.h:
      (WebCompositorTextureQuad):
      (WebKit::WebCompositorTextureQuad::resourceId):
      * chromium/public/WebCompositorTileQuad.h:
      (WebCompositorTileQuad):
      (WebKit::WebCompositorTileQuad::resourceId):
      
      Source/WebCore:
      
      * WebCore.gypi:
      * platform/chromium/support/WebCompositorTextureQuad.cpp:
      (WebKit::WebCompositorTextureQuad::create):
      (WebKit::WebCompositorTextureQuad::WebCompositorTextureQuad):
      * platform/chromium/support/WebCompositorTileQuad.cpp:
      (WebKit::WebCompositorTileQuad::create):
      (WebKit::WebCompositorTileQuad::WebCompositorTileQuad):
      * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
      (WebCore::BitmapCanvasLayerTextureUpdater::Texture::updateRect):
      (WebCore::BitmapCanvasLayerTextureUpdater::create):
      (WebCore::BitmapCanvasLayerTextureUpdater::BitmapCanvasLayerTextureUpdater):
      (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
      (WebCore::BitmapCanvasLayerTextureUpdater::updateTextureRect):
      * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
      (WebCore):
      (Texture):
      (BitmapCanvasLayerTextureUpdater):
      * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
      (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
      (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::create):
      (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::BitmapSkPictureCanvasLayerTextureUpdater):
      * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
      (Texture):
      (BitmapSkPictureCanvasLayerTextureUpdater):
      * platform/graphics/chromium/ContentLayerChromium.cpp:
      (WebCore::ContentLayerChromium::createTextureUpdaterIfNeeded):
      * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
      (WebCore::createAcceleratedCanvas):
      (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
      (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
      * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
      (Texture):
      (FrameBufferSkPictureCanvasLayerTextureUpdater):
      * platform/graphics/chromium/ImageLayerChromium.cpp:
      (WebCore::ImageLayerTextureUpdater::create):
      (WebCore::ImageLayerTextureUpdater::updateTextureRect):
      (WebCore::ImageLayerTextureUpdater::ImageLayerTextureUpdater):
      (ImageLayerTextureUpdater):
      (WebCore::ImageLayerChromium::createTextureUpdaterIfNeeded):
      * platform/graphics/chromium/LayerRendererChromium.cpp:
      (WebCore::LayerRendererChromium::create):
      (WebCore::LayerRendererChromium::LayerRendererChromium):
      (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
      (WebCore::applyFilters):
      (WebCore::LayerRendererChromium::drawBackgroundFilters):
      (WebCore::LayerRendererChromium::drawRenderPassQuad):
      (WebCore::LayerRendererChromium::drawTileQuad):
      (WebCore::LayerRendererChromium::drawYUVVideoQuad):
      (WebCore::LayerRendererChromium::drawTextureQuad):
      (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
      (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
      (WebCore::LayerRendererChromium::finishDrawingFrame):
      (WebCore::LayerRendererChromium::getFramebufferTexture):
      (WebCore::LayerRendererChromium::useRenderPass):
      (WebCore::LayerRendererChromium::useScopedTexture):
      (WebCore::LayerRendererChromium::bindFramebufferToTexture):
      (WebCore::LayerRendererChromium::finishCurrentFramebuffer):
      (WebCore):
      (WebCore::LayerRendererChromium::initializeSharedObjects):
      * platform/graphics/chromium/LayerRendererChromium.h:
      (LayerRendererChromium):
      (WebCore::LayerRendererChromium::resourceProvider):
      * platform/graphics/chromium/LayerTextureSubImage.cpp:
      (WebCore::LayerTextureSubImage::LayerTextureSubImage):
      (WebCore::LayerTextureSubImage::upload):
      (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
      (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
      * platform/graphics/chromium/LayerTextureSubImage.h:
      (WebKit):
      (LayerTextureSubImage):
      * platform/graphics/chromium/LayerTextureUpdater.h:
      (WebCore):
      (Texture):
      * platform/graphics/chromium/ManagedTexture.cpp:
      (WebCore::ManagedTexture::ManagedTexture):
      (WebCore::ManagedTexture::reserve):
      (WebCore::ManagedTexture::allocate):
      (WebCore::ManagedTexture::steal):
      (WebCore::ManagedTexture::clear):
      * platform/graphics/chromium/ManagedTexture.h:
      (WebCore::ManagedTexture::resourceId):
      (ManagedTexture):
      * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
      (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
      (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
      * platform/graphics/chromium/TextureCopier.cpp:
      (WebCore::AcceleratedTextureCopier::copyTexture):
      (WebCore):
      (WebCore::AcceleratedTextureCopier::flush):
      * platform/graphics/chromium/TextureCopier.h:
      (TextureCopier):
      (AcceleratedTextureCopier):
      * platform/graphics/chromium/TextureManager.cpp:
      (WebCore::TextureManager::TextureManager):
      (WebCore::TextureManager::deleteEvictedTextures):
      (WebCore::TextureManager::removeTexture):
      (WebCore::TextureManager::allocateTexture):
      (WebCore::TextureManager::requestTexture):
      * platform/graphics/chromium/TextureManager.h:
      (WebCore):
      (WebCore::TextureManager::create):
      (TextureManager):
      (TextureInfo):
      (EvictionEntry):
      * platform/graphics/chromium/TextureUploader.h:
      (TextureUploader):
      * platform/graphics/chromium/ThrottledTextureUploader.cpp:
      (WebCore::ThrottledTextureUploader::uploadTexture):
      * platform/graphics/chromium/ThrottledTextureUploader.h:
      (ThrottledTextureUploader):
      * platform/graphics/chromium/TiledLayerChromium.cpp:
      (WebCore::TiledLayerChromium::pushPropertiesTo):
      * platform/graphics/chromium/TrackingTextureAllocator.cpp: Removed.
      * platform/graphics/chromium/TrackingTextureAllocator.h: Removed.
      * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
      (WebCore::CCHeadsUpDisplay::draw):
      * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
      (WebCore::CCIOSurfaceLayerImpl::willDraw):
      * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
      (CCIOSurfaceLayerImpl):
      * platform/graphics/chromium/cc/CCLayerImpl.cpp:
      (WebCore::CCLayerImpl::willDraw):
      (WebCore::CCLayerImpl::didDraw):
      (WebCore::CCLayerImpl::contentsResourceId):
      * platform/graphics/chromium/cc/CCLayerImpl.h:
      (CCLayerImpl):
      * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
      (WebCore::CCLayerTreeHost::initializeLayerRenderer):
      (WebCore::CCLayerTreeHost::deleteContentsTexturesOnImplThread):
      (WebCore::CCLayerTreeHost::beginCommitOnImplThread):
      * platform/graphics/chromium/cc/CCLayerTreeHost.h:
      (WebCore):
      (CCLayerTreeHost):
      * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
      (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
      (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
      (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
      (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
      * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
      (WebCore):
      (WebCore::CCLayerTreeHostImpl::resourceProvider):
      (CCLayerTreeHostImpl):
      * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp:
      (WebCore::CCPrioritizedTexture::acquireBackingTexture):
      (WebCore::CCPrioritizedTexture::resourceId):
      (WebCore::CCPrioritizedTexture::upload):
      (WebCore::CCPrioritizedTexture::beginRenderTo):
      (WebCore::CCPrioritizedTexture::endRenderTo):
      (WebCore):
      * platform/graphics/chromium/cc/CCPrioritizedTexture.h:
      (WebCore):
      (CCPrioritizedTexture):
      (WebCore::CCPrioritizedTexture::Backing::resourceId):
      (WebCore::CCPrioritizedTexture::Backing::Backing):
      (Backing):
      * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
      (WebCore::CCPrioritizedTextureManager::CCPrioritizedTextureManager):
      (WebCore::CCPrioritizedTextureManager::~CCPrioritizedTextureManager):
      (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
      (WebCore::CCPrioritizedTextureManager::reduceMemory):
      (WebCore::CCPrioritizedTextureManager::clearAllMemory):
      (WebCore::CCPrioritizedTextureManager::allBackingTexturesWereDeleted):
      (WebCore::CCPrioritizedTextureManager::createBacking):
      (WebCore::CCPrioritizedTextureManager::destroyBacking):
      * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
      (WebCore::CCPrioritizedTextureManager::create):
      (CCPrioritizedTextureManager):
      * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
      (WebCore::CCRenderPassDrawQuad::create):
      (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
      * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
      (CCRenderPassDrawQuad):
      (WebCore::CCRenderPassDrawQuad::maskResourceId):
      * platform/graphics/chromium/cc/CCRenderSurface.cpp:
      (WebCore::CCRenderSurface::appendQuads):
      * platform/graphics/chromium/cc/CCRenderer.h:
      (WebCore):
      (CCRenderer):
      * platform/graphics/chromium/cc/CCResourceProvider.cpp: Added.
      (WebCore):
      (WebCore::textureToStorageFormat):
      (WebCore::isTextureFormatSupportedForStorage):
      (WebCore::CCResourceProvider::create):
      (WebCore::CCResourceProvider::~CCResourceProvider):
      (WebCore::CCResourceProvider::graphicsContext3D):
      (WebCore::CCResourceProvider::inUseByConsumer):
      (WebCore::CCResourceProvider::createResource):
      (WebCore::CCResourceProvider::createResourceFromExternalTexture):
      (WebCore::CCResourceProvider::deleteResource):
      (WebCore::CCResourceProvider::deleteOwnedResources):
      (WebCore::CCResourceProvider::upload):
      (WebCore::CCResourceProvider::beginRenderTo):
      (WebCore::CCResourceProvider::endRenderTo):
      (WebCore::CCResourceProvider::beginRenderFrom):
      (WebCore::CCResourceProvider::endRenderFrom):
      (WebCore::CCResourceProvider::CCResourceProvider):
      (WebCore::CCResourceProvider::initialize):
      * platform/graphics/chromium/cc/CCResourceProvider.h: Added.
      (WebKit):
      (WebCore):
      (CCResourceProvider):
      (WebCore::CCResourceProvider::maxTextureSize):
      (WebCore::CCResourceProvider::numResources):
      (Resource):
      * platform/graphics/chromium/cc/CCScopedTexture.cpp:
      (WebCore::CCScopedTexture::CCScopedTexture):
      (WebCore::CCScopedTexture::allocate):
      (WebCore::CCScopedTexture::free):
      * platform/graphics/chromium/cc/CCScopedTexture.h:
      (WebCore::CCScopedTexture::create):
      (CCScopedTexture):
      (WebCore::CCScopedTexture::beginRenderTo):
      (WebCore::CCScopedTexture::endRenderTo):
      (WebCore::CCScopedTexture::beginRenderFrom):
      (WebCore::CCScopedTexture::endRenderFrom):
      * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
      (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
      (WebCore):
      (WebCore::CCScrollbarLayerImpl::appendQuads):
      * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
      (WebCore::CCScrollbarLayerImpl::setBackTrackResourceId):
      (WebCore::CCScrollbarLayerImpl::setForeTrackResourceId):
      (WebCore::CCScrollbarLayerImpl::setThumbResourceId):
      (CCScrollbarLayerImpl):
      * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
      (WebCore::CCSingleThreadProxy::recreateContext):
      (WebCore::CCSingleThreadProxy::doCommit):
      (WebCore::CCSingleThreadProxy::stop):
      * platform/graphics/chromium/cc/CCTexture.h:
      (WebCore::CCTexture::id):
      (WebCore::CCTexture::setId):
      (CCTexture):
      * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
      (WebCore::CCTextureLayerImpl::CCTextureLayerImpl):
      (WebCore::CCTextureLayerImpl::willDraw):
      (WebCore):
      (WebCore::CCTextureLayerImpl::appendQuads):
      (WebCore::CCTextureLayerImpl::didDraw):
      * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
      (CCTextureLayerImpl):
      * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
      (WebCore::CCTextureUpdater::update):
      * platform/graphics/chromium/cc/CCTextureUpdater.h:
      (WebCore):
      (CCTextureUpdater):
      * platform/graphics/chromium/cc/CCThreadProxy.cpp:
      (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
      (WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
      (WebCore::CCThreadProxy::recreateContextOnImplThread):
      * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
      (WebCore::DrawableTile::resourceId):
      (WebCore::DrawableTile::setResourceId):
      (WebCore::DrawableTile::DrawableTile):
      (DrawableTile):
      (WebCore::CCTiledLayerImpl::contentsResourceId):
      (WebCore::CCTiledLayerImpl::hasTextureIdForTileAt):
      (WebCore::CCTiledLayerImpl::appendQuads):
      (WebCore::CCTiledLayerImpl::pushTileProperties):
      * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
      (CCTiledLayerImpl):
      * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
      (WebCore::CCVideoLayerImpl::CCVideoLayerImpl):
      (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
      (WebCore::CCVideoLayerImpl::willDraw):
      (WebCore::CCVideoLayerImpl::willDrawInternal):
      (WebCore::CCVideoLayerImpl::appendQuads):
      (WebCore::CCVideoLayerImpl::didDraw):
      (WebCore::CCVideoLayerImpl::FramePlane::allocateData):
      (WebCore::CCVideoLayerImpl::FramePlane::freeData):
      (WebCore::CCVideoLayerImpl::allocatePlaneData):
      (WebCore::CCVideoLayerImpl::copyPlaneData):
      (WebCore::CCVideoLayerImpl::freePlaneData):
      (WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
      (WebCore::CCVideoLayerImpl::didLoseContext):
      * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
      (CCVideoLayerImpl):
      (FramePlane):
      (WebCore::CCVideoLayerImpl::FramePlane::FramePlane):
      
      Source/WebKit/chromium:
      
      * WebKit.gypi:
      * tests/CCLayerTreeHostImplTest.cpp:
      * tests/CCPrioritizedTextureTest.cpp:
      (WTF::CCPrioritizedTextureTest::CCPrioritizedTextureTest):
      (WTF::CCPrioritizedTextureTest::createManager):
      (WTF::CCPrioritizedTextureTest::validateTexture):
      (WTF::CCPrioritizedTextureTest::resourceProvider):
      (CCPrioritizedTextureTest):
      (WTF::TEST_F):
      * tests/CCQuadCullerTest.cpp:
      * tests/CCResourceProviderTest.cpp: Added.
      (WebKit):
      (ResourceProviderContext):
      (WebKit::ResourceProviderContext::create):
      (WebKit::ResourceProviderContext::bindTexture):
      (WebKit::ResourceProviderContext::createTexture):
      (WebKit::ResourceProviderContext::deleteTexture):
      (WebKit::ResourceProviderContext::texStorage2DEXT):
      (WebKit::ResourceProviderContext::texImage2D):
      (WebKit::ResourceProviderContext::texSubImage2D):
      (WebKit::ResourceProviderContext::getPixels):
      (WebKit::ResourceProviderContext::textureCount):
      (WebKit::ResourceProviderContext::textureSize):
      (WebKit::ResourceProviderContext::ResourceProviderContext):
      (WebKit::ResourceProviderContext::Texture::Texture):
      (Texture):
      (WebKit::ResourceProviderContext::allocateTexture):
      (WebKit::ResourceProviderContext::setPixels):
      (CCResourceProviderTest):
      (WebKit::CCResourceProviderTest::CCResourceProviderTest):
      (WebKit::CCResourceProviderTest::context):
      (WebKit::CCResourceProviderTest::getResourcePixels):
      (WebKit::TEST_F):
      * tests/CCScopedTextureTest.cpp:
      (WebKitTests::TEST):
      * tests/CCTiledLayerImplTest.cpp:
      (CCLayerTestCommon::createLayer):
      (CCLayerTestCommon::TEST):
      * tests/CCTiledLayerTestCommon.cpp:
      (WebKitTests::FakeLayerTextureUpdater::Texture::updateRect):
      * tests/CCTiledLayerTestCommon.h:
      (Texture):
      (WebKitTests::FakeTextureCopier::copyTexture):
      (WebKitTests::FakeTextureCopier::flush):
      (WebKitTests::FakeTextureUploader::uploadTexture):
      * tests/ContentLayerChromiumTest.cpp:
      (WebKit::TEST):
      * tests/FakeCCGraphicsContext.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTexture.h.
      (WebKit):
      (WebKit::createFakeCCGraphicsContext):
      * tests/LayerRendererChromiumTest.cpp:
      (FakeLayerRendererChromium::FakeLayerRendererChromium):
      (LayerRendererChromiumTest::LayerRendererChromiumTest):
      (LayerRendererChromiumTest::context):
      (LayerRendererChromiumTest):
      (TEST_F):
      (TEST):
      * tests/TextureCopierTest.cpp:
      * tests/TextureManagerTest.cpp:
      (WTF::TextureManagerTest::TextureManagerTest):
      (WTF::TextureManagerTest::createTextureManager):
      (WTF::TextureManagerTest::requestTexture):
      (TextureManagerTest):
      * tests/TiledLayerChromiumTest.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123065 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c75080f0
    • hayato@chromium.org's avatar
      [Shadow] A 'selectstart' event fired on distributed nodes should not be... · 45c17bb5
      hayato@chromium.org authored
      [Shadow] A 'selectstart' event fired on distributed nodes should not be stopped at shadow boundary of the parent shadow host.
      https://bugs.webkit.org/show_bug.cgi?id=90508
      
      Reviewed by Dimitri Glazkov.
      
      Source/WebCore:
      
      We should not stop some kinds of events at the shadow boundary of a shadow host if the
      event is fired on distributed nodes.
      
      See the spec for such kinds of events.
      http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#events-that-are-always-stopped
      
      Test: fast/dom/shadow/events-stopped-at-shadow-boundary.html
      
      * dom/EventDispatcher.cpp:
      (WebCore::EventDispatcher::ensureEventAncestors):
      (WebCore::inTheSameScope):
      (WebCore):
      (WebCore::EventDispatcher::determineDispatchBehavior):
      * dom/EventDispatcher.h:
      (EventDispatcher):
      
      LayoutTests:
      
      * fast/dom/shadow/events-stopped-at-shadow-boundary-expected.txt:
      * fast/dom/shadow/events-stopped-at-shadow-boundary.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123064 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      45c17bb5
    • morrita@google.com's avatar
      Add window resize benchmark · c9688402
      morrita@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=91070
      
      Reviewed by Ryosuke Niwa.
      
      PerformanceTests:
      
      Added window-resize.html which exercise html5.html. This test
      resizes the window and forces re-layout repeatedly.
      
      * Interactive/resources/window-resize.js: Added.
      * Interactive/window-resize.html: Added.
      * Parser/resources/html5.html: Modified to inject driver scripts.
      
      Tools:
      
      Added some more output filters to take care of html5.html output.
      
      * Scripts/webkitpy/performance_tests/perftest.py:
      (PerfTest):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123063 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c9688402
    • jchaffraix@webkit.org's avatar
      Crash in RenderTableSection::addCell. · bef181c9
      jchaffraix@webkit.org authored
      http://webkit.org/b/89496
      
      Reviewed by Abhishek Arya.
      
      Source/WebCore:
      
      The issue comes from RenderBox::splitAnonymousBoxesAroundChild that would move sections
      across tables but didn't force the table to do a synchronous section recalc. This opened
      the way for race conditions where we would query the table column structure while it's dirty
      (this is not uncommon but as usually the table's column representation is always bigger or
      more split than a section's, it's usually harmless).
      
      The fix is to force a synchronous section recalc.
      
      Test: fast/table/split-table-no-section-update-crash.html
      
      * rendering/RenderBox.cpp:
      (WebCore::markBoxForRelayoutAfterSplit):
      Changed to call forceSectionsRecalc ie force a section recalc.
      
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::recalcSections):
      Added missing ASSERT for unneeded calls.
      
      * rendering/RenderTable.h:
      (WebCore::RenderTable::forceSectionsRecalc):
      Added this helper function.
      
      LayoutTests:
      
      The test is still pretty complex as it involves lots of generated content. It should
      be possible to get a smaller test case based on the conditions for the crash. However
      this test is a pretty good stress test so I decided against creating a more simple test
      case.
      
      * fast/table/split-table-no-section-update-crash-expected.txt: Added.
      * fast/table/split-table-no-section-update-crash.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123062 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bef181c9
    • jchaffraix@webkit.org's avatar
      Avoid calling GraphicsContext drawing primitives for 0px borders · 9806d9bd
      jchaffraix@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=90039
      
      Reviewed by Eric Seidel.
      
      Source/WebCore:
      
      The current code would happily call GraphicsContext to draw empty (0px) borders.
      There is no good use case for going all the way to GraphicsContext in this case as
      0px borders, regardless of the border-style, will not be painted. Thus this is a waste
      of time on all platforms. On Chromium, this trigger some issues with pdf rendering as
      Skia interprets 0px lines as very thin lines.
      
      This change adds 0-checks in the border painting code as well as ASSERTs for
      performance and to catch future bad use.
      
      Test: fast/borders/0px-borders.html
      
      * platform/graphics/cairo/GraphicsContextCairo.cpp:
      (WebCore::GraphicsContext::drawRect):
      * platform/graphics/cg/GraphicsContextCG.cpp:
      (WebCore::GraphicsContext::drawRect):
      * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
      (WebCore::GraphicsContext::drawRect):
      * platform/graphics/qt/GraphicsContextQt.cpp:
      (WebCore::GraphicsContext::drawRect):
      * platform/graphics/skia/GraphicsContextSkia.cpp:
      (WebCore::GraphicsContext::drawRect):
      * platform/graphics/wx/GraphicsContextWx.cpp:
      (WebCore::GraphicsContext::drawRect):
      Added an ASSERT on all platforms to catch incorrect use.
      
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::BorderEdge::shouldRender):
      Changed to not render 0px borders, which should avoid unneeded work
      in the patining code (context saving / restoring or transparency layer
      push).
      
      (WebCore::RenderBoxModelObject::paintOneBorderSide):
      Added an ASSERT here that the border side is not empty.
      
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::drawLineForBoxSide):
      Added an early return with a comment as to why it's not feasible to
      ASSERT as would be best.
      
      LayoutTests:
      
      The ref-tests are pretty similar and the exact rendering doesn't matter. What matters
      is that we try to exercise the border painting code with 0px borders. Note that the
      test were passing before already as they are meant to trigger the newly added ASSERTs
      if something changes.
      
      * fast/borders/0px-borders-expected.html: Added.
      * fast/borders/0px-borders.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123061 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9806d9bd
    • commit-queue@webkit.org's avatar
      REGRESSION (r89900): Assertion failure on null view() when destroying the document · 3f308b7f
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91547
      
      Patch by Elliott Sprehn <esprehn@gmail.com> on 2012-07-18
      Reviewed by Abhishek Arya.
      
      Source/WebCore:
      
      Check for document destruction during insertion to avoid crash on null RenderView when trying
      to count the number of RenderQuote and RenderCounter objects.
      
      Test: fast/css-generated-content/bug91547.html
      
      * rendering/RenderObjectChildList.cpp:
      (WebCore::RenderObjectChildList::appendChildNode):
      (WebCore::RenderObjectChildList::insertChildNode):
      
      LayoutTests:
      
      Test for crash caused by null RenderView in RenderQuote and RenderCounter.
      
      * fast/css-generated-content/bug91547-expected.txt: Added.
      * fast/css-generated-content/bug91547.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3f308b7f
    • dgrogan@chromium.org's avatar
      IndexedDB: Add intVersion to chromium/public/WebIDBMetadata.h · fc75a797
      dgrogan@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91408
      
      Reviewed by Adam Barth.
      
      This is in support of the new upgradeneeded versioning api.
      intVersion will eventually replace the WebString version member.
      
      * public/WebIDBMetadata.h:
      (WebKit::WebIDBMetadata::WebIDBMetadata):
      The spec uses unsigned long long for version numbers but we use signed
      long long so that we can use -1 as a sentinel. It indicates that a
      database still uses a string version.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123059 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fc75a797
    • dpranke@chromium.org's avatar
      nrwt: merge WebKitDriver into Driver · acb2ca47
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91696
      
      Reviewed by Adam Barth.
      
      As part of merging WebKitPort into Port, we also should merge
      WebKitDriver into Driver, since all of the non-test Drivers now
      inherit from WebKitDriver.
      
      There are no functional changes in this patch, and all the changes should
      be covered by the existing tests.
      
      * Scripts/webkitpy/layout_tests/port/base.py:
      (Port._driver_class):
      * Scripts/webkitpy/layout_tests/port/chromium.py:
      (ChromiumPort._check_file_exists):
      * Scripts/webkitpy/layout_tests/port/chromium_android.py:
      (ChromiumAndroidDriver):
      (ChromiumAndroidDriver.__init__):
      (ChromiumAndroidDriver._drt_cmd_line):
      * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py:
      (ChromiumAndroidDriverTest.test_read_prompt):
      * Scripts/webkitpy/layout_tests/port/driver.py:
      (Driver):
      (Driver.__init__):
      (Driver.__del__):
      (Driver.run_test):
      (Driver.has_crashed):
      (Driver.start):
      (Driver._start):
      (Driver.stop):
      (Driver.cmd_line):
      (Driver._check_for_driver_crash):
      (Driver._command_from_driver_input):
      (Driver._read_first_block):
      (Driver._read_optional_image_block):
      (Driver._read_header):
      (Driver._process_stdout_line):
      (Driver._strip_eof):
      (Driver._read_block):
      (ContentBlock):
      (ContentBlock.__init__):
      (ContentBlock.decode_content):
      * Scripts/webkitpy/layout_tests/port/driver_unittest.py:
      (DriverTest.make_port):
      (DriverTest._assert_wrapper):
      (DriverTest.test_read_block):
      (DriverTest):
      (DriverTest.test_read_binary_block):
      (DriverTest.test_read_base64_block):
      (DriverTest.test_no_timeout):
      (DriverTest.test_check_for_driver_crash):
      (DriverTest.test_check_for_driver_crash.FakeServerProcess):
      (DriverTest.test_check_for_driver_crash.FakeServerProcess.__init__):
      (DriverTest.test_check_for_driver_crash.FakeServerProcess.pid):
      (DriverTest.test_check_for_driver_crash.FakeServerProcess.name):
      (DriverTest.test_check_for_driver_crash.FakeServerProcess.has_crashed):
      (DriverTest.test_check_for_driver_crash.FakeServerProcess.stop):
      (DriverTest.test_check_for_driver_crash.assert_crash):
      (DriverTest.test_creating_a_port_does_not_write_to_the_filesystem):
      (DriverTest.test_stop_cleans_up_properly):
      (DriverTest.test_two_starts_cleans_up_properly):
      (MockServerProcess):
      (MockServerProcess.__init__):
      (MockServerProcess.has_crashed):
      (MockServerProcess.read_stdout_line):
      (MockServerProcess.read_stdout):
      (MockServerProcess.read_either_stdout_or_stderr_line):
      (MockServerProcess.start):
      (MockServerProcess.stop):
      (MockServerProcess.kill):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      * Scripts/webkitpy/layout_tests/port/webkit.py:
      (WebKitPort._read_image_diff):
      (WebKitPort.skipped_layout_tests):
      * Scripts/webkitpy/layout_tests/port/webkit_unittest.py:
      (test_path_to_apache_config_file):
      * Scripts/webkitpy/layout_tests/port/xvfbdriver.py:
      (XvfbDriver):
      (XvfbDriver.stop):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      acb2ca47
    • benjamin@webkit.org's avatar
      [Mac] Make WebDataSourcePrivate lighter · ccbd02a8
      benjamin@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91511
      
      Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-07-18
      Reviewed by Anders Carlsson.
      
      Make WebDataSourcePrivate a simple C++ class and use smart pointers for memory management.
      
      Since the "loader" attribute is only set on initialization, all the assertions spread in
      various function are removed in favor of assertions on initialization.
      
      * WebView/WebDataSource.h:
      * WebView/WebDataSource.mm:
      (WebDataSourcePrivate):
      (WebDataSourcePrivate::WebDataSourcePrivate):
      (WebDataSourcePrivate::~WebDataSourcePrivate):
      Use a class instead of a Objective-C object for WebDataSourcePrivate.
      Use smart pointers instead of ref counting manually.
      
      (-[WebDataSource _setRepresentation:]):
      (-[WebDataSource _addSubframeArchives:]):
      (-[WebDataSource _transferApplicationCache:]):
      (-[WebDataSource _setDeferMainResourceDataLoad:]):
      (-[WebDataSource _documentFragmentWithArchive:]):
      (-[WebDataSource _initWithDocumentLoader:]):
      
      (+[WebDataSource initialize]):
      (-[WebDataSource dealloc]):
      (-[WebDataSource finalize]):
      WebDataSource takes the special initialization and destruction that was done in WebDataSourcePrivate.
      
      (-[WebDataSource representation]):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ccbd02a8
    • nduca@chromium.org's avatar
      [chromium] Add histogram for tracking compositor-thread frame rate · 06e234a1
      nduca@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91692
      
      Reviewed by Adrienne Walker.
      
      This patch tracks the interval between compositor thread frames
      and pushes it into a platform histogram. This allows us to track
      compositor-thread frame rate in the wild.
      
      * platform/graphics/chromium/cc/CCFrameRateCounter.cpp:
      (WebCore::CCFrameRateCounter::markBeginningOfFrame):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123056 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      06e234a1
    • dpranke@chromium.org's avatar
      webkitpy.common.system.executive_unittest.ExecutiveTest.test_kill_process is flaky · 43c7c711
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91698
      
      Unreviewed, build fix.
      
      This is a workaround for the test failing (apparently mostly?)
      when run in parallel with other tests. The underlying bug still
      needs to be diagnosed as we shouldn't be getting ECHILD from
      process.wait().
      
      * Scripts/webkitpy/common/system/executive_unittest.py:
      (ExecutiveTest.test_kill_process):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123055 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      43c7c711
    • dpranke@chromium.org's avatar
      Disable running python unit tests in parallel on win32 for now. · 38199272
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91697
      
      Unreviewed, build fix.
      
      * Scripts/webkitpy/test/main.py:
      (Tester._parse_args):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123054 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      38199272
    • jer.noble@apple.com's avatar
      [mac] Unreviewed gardening. · 37bc51c4
      jer.noble@apple.com authored
      Rebaseline (by partially reverting) r122883.
      
      * platform/mac/fast/inline/002-expected.txt:
      * platform/mac/fast/table/table-display-types-strict-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123053 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      37bc51c4
    • fpizlo@apple.com's avatar
      DFG should emit inline code for property storage (re)allocation · 1ffdcff1
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=91597
      
      Reviewed by Oliver Hunt.
      
      This adds two new ops to the DFG IR: AllocatePropertyStorage and
      ReallocatePropertyStorage. It enables these to interact properly with
      CSE so that a GetPropertyStorage on something for which we have
      obviously done a (Re)AllocatePropertyStorage will result in the
      GetPropertyStorage being eliminated. Other than that, the code
      emitted for these ops is identical to the code we were emitting in
      the corresponding PutById stub.
      
      * dfg/DFGAbstractState.cpp:
      (JSC::DFG::AbstractState::execute):
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::parseBlock):
      * dfg/DFGCSEPhase.cpp:
      (JSC::DFG::CSEPhase::putStructureStoreElimination):
      (JSC::DFG::CSEPhase::getPropertyStorageLoadElimination):
      * dfg/DFGNode.h:
      (JSC::DFG::Node::hasStructureTransitionData):
      * dfg/DFGNodeType.h:
      (DFG):
      * dfg/DFGOperations.cpp:
      * dfg/DFGOperations.h:
      * dfg/DFGPredictionPropagationPhase.cpp:
      (JSC::DFG::PredictionPropagationPhase::propagate):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
      (DFG):
      (JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
      * dfg/DFGSpeculativeJIT.h:
      (JSC::DFG::SpeculativeJIT::callOperation):
      (SpeculativeJIT):
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * runtime/Structure.cpp:
      (JSC::nextOutOfLineStorageCapacity):
      * runtime/Structure.h:
      (JSC):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123052 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1ffdcff1
    • jer.noble@apple.com's avatar
      [chromium] Drag image for image elements should be scaled with device scale factor. · 013243d1
      jer.noble@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=89688
      
      Patch by Varun Jain <varunjain@chromium.org> on 2012-07-18
      Reviewed by Adam Barth.
      
      * ManualTests/chromium/drag-image-accounts-for-device-scale.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123051 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      013243d1
    • mitz@apple.com's avatar
      Hit testing in the gap between pages returns incorrect results · 8fb34436
      mitz@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=91695
      
      Reviewed by Dave Hyatt.
      
      Source/WebCore: 
      
      Test: fast/multicol/hit-test-gap-between-pages.html
      
      * rendering/RenderBlock.h:
      (RenderBlock): Promoted adjustPointToColumnContents from private to protected.
      * rendering/RenderView.cpp:
      (WebCore::RenderView::updateHitTestResult): If we get here, and we make the document element
      the inner node, adjust the local point for columns.
      
      LayoutTests: 
      
      * fast/multicol/hit-test-gap-between-pages-expected.txt: Added.
      * fast/multicol/hit-test-gap-between-pages.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123050 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8fb34436
    • abarth@webkit.org's avatar
      Disable printing on chromium-android · ae24ff2e
      abarth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91550
      
      Reviewed by Tony Chang.
      
      We don't implement printing on Android.
      
      * features.gypi:
      * src/WebFrameImpl.cpp:
      (WebKit::WebFrameImpl::printPage):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123049 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ae24ff2e
    • jsbell@chromium.org's avatar
      IndexedDB: Direction parameter ignored by some openCursor() overloads · e85f95a5
      jsbell@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91687
      
      Reviewed by Tony Chang.
      
      Source/WebCore:
      
      A few of the openCursor() and openKeyCursor() overloads were not passing along the
      direction parameter, resulting in the default direction being used. Trivial fixes.
      Also, added a whitespace fix to a relevant console warning.
      
      Test: storage/indexeddb/cursor-overloads.html
      
      * Modules/indexeddb/IDBIndex.cpp:
      (WebCore::IDBIndex::openCursor):
      (WebCore::IDBIndex::openKeyCursor):
      * Modules/indexeddb/IDBObjectStore.cpp:
      (WebCore::IDBObjectStore::openCursor):
      
      LayoutTests:
      
      Test the overloads to ensure cursor direction is set correctly.
      
      * storage/indexeddb/cursor-overloads-expected.txt: Added.
      * storage/indexeddb/cursor-overloads.html: Added.
      * storage/indexeddb/legacy-constants-expected.txt: Fix whitespace in console warnings.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123048 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e85f95a5
    • arv@chromium.org's avatar
      [V8] Improve Replaceable extended attribute · d3b4a56b
      arv@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91668
      
      Reviewed by Adam Barth.
      
      Replaceable is working by chance in the V8 bindings because V8 does not correctly handle
      read only properties on the prototype chain. With this change we generate a setter that
      uses ForceSet to replace the existing property when set.
      
      Source/WebCore:
      
      Test: fast/dom/Window/replaceable.html
      
      * bindings/scripts/CodeGeneratorV8.pm:
      (GenerateReplaceableAttrSetter):
      (GenerateFunctionCallback):
      (GenerateSingleBatchedAttribute):
      (GenerateImplementation):
      * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
      (WebDOMTestObj::replaceableAttribute):
      * bindings/scripts/test/CPP/WebDOMTestObj.h:
      * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
      (webkit_dom_test_obj_get_property):
      (webkit_dom_test_obj_class_init):
      (webkit_dom_test_obj_get_replaceable_attribute):
      * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
      * bindings/scripts/test/JS/JSTestObj.cpp:
      (WebCore):
      (WebCore::jsTestObjReplaceableAttribute):
      (WebCore::setJSTestObjReplaceableAttribute):
      * bindings/scripts/test/JS/JSTestObj.h:
      (WebCore):
      * bindings/scripts/test/ObjC/DOMTestObj.h:
      * bindings/scripts/test/ObjC/DOMTestObj.mm:
      (-[DOMTestObj replaceableAttribute]):
      (-[DOMTestObj setReplaceableAttribute:]):
      * bindings/scripts/test/TestObj.idl:
      * bindings/scripts/test/V8/V8TestObj.cpp:
      (WebCore::TestObjV8Internal::replaceableAttributeAttrGetter):
      (TestObjV8Internal):
      (WebCore::TestObjV8Internal::TestObjReplaceableAttrSetter):
      (WebCore):
      
      LayoutTests:
      
      * fast/dom/Window/replaceable-expected.txt: Added.
      * fast/dom/Window/replaceable.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123047 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d3b4a56b
    • jer.noble@apple.com's avatar
      Unreviewed gardening. · 53b78c40
      jer.noble@apple.com authored
      Correct a path error introduced by r122769 for the fast/sub-pixel/selection/selection-gaps-at-fractional-offsets.html
      test in many Skipped lists.
      
      * platform/mac-lion/Skipped:
      * platform/mac-snowleopard/Skipped:
      * platform/mac-wk2/Skipped:
      * platform/mac/Skipped:
      * platform/qt-4.8/Skipped:
      * platform/qt/Skipped:
      * platform/win-wk2/Skipped:
      * platform/win-xp/Skipped:
      * platform/win/Skipped:
      * platform/wincairo/Skipped:
      * platform/wk2/Skipped:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123046 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      53b78c40
    • jsbell@chromium.org's avatar
      [chromium] Unreviewed TestExpectations update for WK90469. · 1651ff73
      jsbell@chromium.org authored
      Restore a test that was skipped to test a theory.
      https://bugs.webkit.org/show_bug.cgi?id=90469
      
      * platform/chromium/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123045 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1651ff73
    • commit-queue@webkit.org's avatar
      [EFL][DRT] Add heap profiling tests to Skipped list · b005a19d
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91684
      
      Unreviewed gardening.
      
      JSC doesn't support heap profiling.
      
      Patch by Seokju Kwon <seokju.kwon@samsung.com> on 2012-07-18
      
      * platform/efl/Skipped:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b005a19d
    • arv@chromium.org's avatar
      [V8] Remove temporary flag override for es52_globals · 39179092
      arv@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91681
      
      Reviewed by Adam Barth.
      
      V8 has now changed their default value for the es52_globals so we no longer needs this override.
      
      No new tests. No change in functionality.
      
      * bindings/v8/V8DOMWindowShell.cpp:
      (WebCore::V8DOMWindowShell::initContextIfNeeded):
      * bindings/v8/WorkerContextExecutionProxy.cpp:
      (WebCore::WorkerContextExecutionProxy::initIsolate):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123043 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      39179092
    • oliver@apple.com's avatar
      dumpCallFrame is broken in ToT · a08210bc
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=91444
      
      Reviewed by Gavin Barraclough.
      
      Various changes have been made to the SF calling convention, but
      dumpCallFrame has not been updated to reflect these changes.
      That resulted in both bogus information, as well as numerous
      assertions of sadness.
      
      This patch makes dumpCallFrame actually work again and adds the
      wonderful feature of telling you the name of the variable that a
      register reflects, or what value it contains.
      
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::nameForRegister):
          A really innefficient mechanism for finding the name of a local register.
          This should only ever be used by debug code so this should be okay.
      * bytecode/CodeBlock.h:
      (CodeBlock):
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::generate):
          Debug builds no longer throw away a functions symbol table, this allows
          us to actually perform a register# to name mapping
      * dfg/DFGJITCompiler.cpp:
      (JSC::DFG::JITCompiler::link):
          We weren't propogating the bytecode offset here leading to assertions
          in debug builds when dumping bytecode of DFG compiled code.
      * interpreter/Interpreter.cpp:
      (JSC):
      (JSC::Interpreter::dumpRegisters):
           Rework to actually be correct.
      (JSC::getCallerInfo):
           Return the byteocde offset as well now, given we have to determine it
           anyway.
      (JSC::Interpreter::getStackTrace):
      (JSC::Interpreter::retrieveCallerFromVMCode):
      * interpreter/Interpreter.h:
      (Interpreter):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      (functionDumpCallFrame):
           Give debug builds of JSC a method for calling dumpCallFrame so we can
           inspect a callframe without requiring us to break in a debugger.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123042 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a08210bc
    • commit-queue@webkit.org's avatar
      [chromium] Add gl_tests to flakiness dashboard. · a58e50bb
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91680
      
      Patch by Dave Tu <dtu@chromium.org> on 2012-07-18
      Reviewed by Dirk Pranke.
      
      * TestResultServer/static-dashboards/builders.js:
      (loadBuildersList):
      * TestResultServer/static-dashboards/dashboard_base.js:
      (currentBuilderGroupCategory):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123041 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a58e50bb
    • dpranke@chromium.org's avatar
      fix python unit tests failing under cygwin · c9cf2a9a
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91678
      
      Reviewed by Adam Barth.
      
      Fix a case where executive.kill_process was failing under cygwin
      (apple win port) in an unexpected way.
      
      * Scripts/webkitpy/common/system/executive.py:
      (Executive.kill_process):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123040 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c9cf2a9a
    • jer.noble@apple.com's avatar
      REGRESSION (r122660-r122663): mathml/presentation/mo.xhtml,... · a5255f17
      jer.noble@apple.com authored
      REGRESSION (r122660-r122663): mathml/presentation/mo.xhtml, mathml/presentation/row.xhtml failing on Mountain Lion Production Tests
      https://bugs.webkit.org/show_bug.cgi?id=91677
      
      Reviewed by Eric Seidel.
      
      Rebaseline after r122663.
      
      * platform/mac/mathml/presentation/mo-expected.txt:
      * platform/mac/mathml/presentation/row-expected.txt:
      * platform/mac/mathml/presentation/mo-expected.png:
      * platform/mac/mathml/presentation/row-expected.png:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123039 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a5255f17
    • commit-queue@webkit.org's avatar
      [chromium] Ubercomp: add id to SharedQuadState · 87732705
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91670
      
      Patch by Alexandre Elias <aelias@google.com> on 2012-07-18
      Reviewed by Adrienne Walker.
      
      This assigns an integer ID to SharedQuadState objects and a
      corresponding ID to quads.  This ID is unique only within a
      RenderPass and currently is just set to the index in the shared quad
      state list.  This is redundant with the pointer and exists to
      simplify serialization.
      
      I found out that pointer rewriting within a pickler is blocked by
      pointers to memory being const there, so the reassignment will have to
      be performed in the application layer anyway.  In that case, it's
      simplest to add some ID integers.
      
      Source/Platform:
      
      * chromium/public/WebCompositorQuad.h:
      (WebKit::WebCompositorQuad::sharedQuadStateId):
      (WebCompositorQuad):
      * chromium/public/WebCompositorSharedQuadState.h:
      (WebCompositorSharedQuadState):
      
      Source/WebCore:
      
      No new tests (will introduce them when making use of the ID).
      
      * platform/chromium/support/WebCompositorQuad.cpp:
      (WebKit::WebCompositorQuad::WebCompositorQuad):
      (WebKit::WebCompositorQuad::setSharedQuadState):
      (WebKit):
      * platform/chromium/support/WebCompositorSharedQuadState.cpp:
      (WebKit::WebCompositorSharedQuadState::WebCompositorSharedQuadState):
      (WebKit::WebCompositorSharedQuadState::create):
      * platform/graphics/chromium/cc/CCLayerImpl.cpp:
      (WebCore::CCLayerImpl::createSharedQuadState):
      * platform/graphics/chromium/cc/CCLayerImpl.h:
      (CCLayerImpl):
      * platform/graphics/chromium/cc/CCRenderPass.cpp:
      (WebCore::CCRenderPass::appendQuadsForLayer):
      (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
      (WebCore::CCRenderPass::appendQuadsToFillScreen):
      * platform/graphics/chromium/cc/CCRenderSurface.cpp:
      (WebCore::CCRenderSurface::createSharedQuadState):
      (WebCore::CCRenderSurface::createReplicaSharedQuadState):
      * platform/graphics/chromium/cc/CCRenderSurface.h:
      (CCRenderSurface):
      
      Source/WebKit/chromium:
      
      * tests/CCLayerTreeHostImplTest.cpp:
      * tests/CCQuadCullerTest.cpp:
      * tests/CCRenderSurfaceTest.cpp:
      * tests/CCSolidColorLayerImplTest.cpp:
      (CCLayerTestCommon::TEST):
      * tests/CCTiledLayerImplTest.cpp:
      (CCLayerTestCommon::TEST):
      (CCLayerTestCommon::getQuads):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123038 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      87732705
    • hclam@chromium.org's avatar
      [chromium] Not reviewed. Build fix. · f5fbd933
      hclam@chromium.org authored
      Add CR before bug number to avoid lint error.
      
      * platform/chromium/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123037 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f5fbd933
    • commit-queue@webkit.org's avatar
      Source/WebCore: [chromium] Ubercomp: clean up CCRenderer interface · e910353f
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91555
      
      Patch by Alexandre Elias <aelias@google.com> on 2012-07-18
      Reviewed by Adrienne Walker.
      
      I replaced the one-by-one RenderPass calls with a new drawFrame()
      method that directly takes a CCRenderPassList, and moved a small
      amount of code from CCLayerTreeHostImpl to implement it.  In ubercomp
      mode, we will produce a frame bundle rather than a command-stream, so
      the full list is easier to work with.
      
      Also, give empty default implementations for the methods that don't
      need to do anything in a non-GL context, and make private
      setScissorToRect.
      
      No new tests (no-op refactoring).
      
      * platform/graphics/chromium/LayerRendererChromium.cpp:
      (WebCore::LayerRendererChromium::drawFrame):
      (WebCore):
      * platform/graphics/chromium/LayerRendererChromium.h:
      (LayerRendererChromium):
      * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
      (WebCore::CCLayerTreeHostImpl::drawLayers):
      * platform/graphics/chromium/cc/CCRenderer.h:
      (WebCore::CCRenderer::viewportChanged):
      (WebCore::CCRenderer::decideRenderPassAllocationsForFrame):
      (WebCore::CCRenderer::haveCachedResourcesForRenderPassId):
      (CCRenderer):
      (WebCore::CCRenderer::finishDrawingFrame):
      (WebCore::CCRenderer::doNoOp):
      (WebCore::CCRenderer::isContextLost):
      
      Source/WebKit/chromium: Add WebTextInputType enum values for text areas and
      content-editable.
      https://bugs.webkit.org/show_bug.cgi?id=91654
      
      Patch by Nate Chapin <japhet@chromium.org> on 2012-07-18
      Reviewed by Adam Barth.
      
      No new tests, no behavior change without corresponding chromium.org changes.
      
      * public/WebTextInputType.h:
      * src/WebViewImpl.cpp:
      (WebKit::WebViewImpl::textInputType):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123036 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e910353f
    • dpranke@chromium.org's avatar
      test-webkitpy: run tests in parallel by default · 6267e691
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91422
      
      Reviewed by Adam Barth.
      
      We use multiprocessing.cpu_count() for the default number of
      jobs to run; memory overhead should be very low, so this should
      be fine.
      
      * Scripts/webkitpy/test/main.py:
      (Tester._parse_args):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123035 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6267e691
    • rniwa@webkit.org's avatar
      Another Chromium Windows build fix attempt after r123014. · feb3de60
      rniwa@webkit.org authored
      * chromium/public/Platform.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123034 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      feb3de60
    • commit-queue@webkit.org's avatar
      [chromium] Ubercomp: clean up CCRenderer interface · df90da70
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91555
      
      Patch by Alexandre Elias <aelias@google.com> on 2012-07-18
      Reviewed by Adrienne Walker.
      
      I replaced the one-by-one RenderPass calls with a new drawFrame()
      method that directly takes a CCRenderPassList, and moved a small
      amount of code from CCLayerTreeHostImpl to implement it.  In ubercomp
      mode, we will produce a frame bundle rather than a command-stream, so
      the full list is easier to work with.
      
      Also, give empty default implementations for the methods that don't
      need to do anything in a non-GL context, and make private
      setScissorToRect.
      
      Source/WebCore:
      
      No new tests (no-op refactoring).
      
      * platform/graphics/chromium/LayerRendererChromium.cpp:
      (WebCore::LayerRendererChromium::drawFrame):
      (WebCore):
      * platform/graphics/chromium/LayerRendererChromium.h:
      (LayerRendererChromium):
      * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
      (WebCore::CCLayerTreeHostImpl::drawLayers):
      * platform/graphics/chromium/cc/CCRenderer.h:
      (WebCore::CCRenderer::viewportChanged):
      (WebCore::CCRenderer::decideRenderPassAllocationsForFrame):
      (WebCore::CCRenderer::haveCachedResourcesForRenderPassId):
      (CCRenderer):
      (WebCore::CCRenderer::finishDrawingFrame):
      (WebCore::CCRenderer::doNoOp):
      (WebCore::CCRenderer::isContextLost):
      
      Source/WebKit/chromium:
      
      * tests/LayerRendererChromiumTest.cpp:
      (FakeCCRendererClient::FakeCCRendererClient):
      (FakeCCRendererClient::renderPasses):
      (FakeCCRendererClient):
      (TEST_F):
      (TEST):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123033 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      df90da70
    • commit-queue@webkit.org's avatar
      [BlackBerry] Implement currentTime() and monotonicallyIncreasingTime() for OS(QNX) · 13ea60f7
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91659
      
      Patch by Yong Li <yoli@rim.com> on 2012-07-18
      Reviewed by Rob Buis.
      
      Implement currentTime() and monotonicallyIncreasingTime() for OS(QNX) with clock_gettime().
      
      * wtf/CurrentTime.cpp:
      (WTF):
      (WTF::currentTime):
      (WTF::monotonicallyIncreasingTime):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123032 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      13ea60f7
    • commit-queue@webkit.org's avatar
      Content size of child having percent height inside a fixed height container... · 1593ea82
      commit-queue@webkit.org authored
      Content size of child having percent height inside a fixed height container having overflow:auto is wrongly calculated
      https://bugs.webkit.org/show_bug.cgi?id=11355
      
      Patch by Pravin D <pravind.2k4@gmail.com> on 2012-07-18
      Reviewed by Julien Chaffraix.
      
      Source/WebCore:
      
      The content height of a child must be container height minus padding, border width and height of horizontal scrollbar(if any).
      
      Tests: fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto.html
             fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto.html
      
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::computePercentageLogicalHeight):
      (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
      Subtracting the height of the scrollbar from the client height when the client has percentage height.
      
      LayoutTests:
      
      * fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto-expected.txt: Added.
      * fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto.html: Added.
      * fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto-expected.txt: Added.
      * fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123031 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1593ea82
    • rniwa@webkit.org's avatar
      Add Pravin D to the list of contributors. · 09070b9f
      rniwa@webkit.org authored
      * Scripts/webkitpy/common/config/committers.py:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      09070b9f
    • commit-queue@webkit.org's avatar
      [chromium] Ensure that the compositor code which is aware of flipped status of video-textures · 72c82746
      commit-queue@webkit.org authored
      per platform sets the flipped bit to false on Windows.
      https://bugs.webkit.org/show_bug.cgi?id=91562
      
      Patch by Anantanarayanan G Iyengar <ananta@chromium.org> on 2012-07-18
      Reviewed by Adrienne Walker.
      
      No new tests. (HW video decode is still only being tested manually for orientation)
      
      * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
      (WebCore::CCVideoLayerImpl::appendQuads):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123029 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      72c82746
    • fpizlo@apple.com's avatar
      DFG 32-bit PutById transition stub storage reallocation case copies the first... · c6429b8f
      fpizlo@apple.com authored
      DFG 32-bit PutById transition stub storage reallocation case copies the first pointer of each JSValue instead of the whole JSValue
      https://bugs.webkit.org/show_bug.cgi?id=91599
      
      Source/JavaScriptCore: 
      
      Reviewed by Geoffrey Garen.
      
      * dfg/DFGRepatch.cpp:
      (JSC::DFG::emitPutTransitionStub):
      
      LayoutTests: 
      
      Rubber stamped by Mark Hahnenberg.
      
      It turns out we previously didn't have adequate coverage for this. Now we do.
      
      * fast/js/dfg-put-by-id-allocate-storage-expected.txt: Added.
      * fast/js/dfg-put-by-id-allocate-storage-polymorphic-expected.txt: Added.
      * fast/js/dfg-put-by-id-allocate-storage-polymorphic.html: Added.
      * fast/js/dfg-put-by-id-allocate-storage.html: Added.
      * fast/js/dfg-put-by-id-reallocate-storage-expected.txt: Added.
      * fast/js/dfg-put-by-id-reallocate-storage-polymorphic-expected.txt: Added.
      * fast/js/dfg-put-by-id-reallocate-storage-polymorphic.html: Added.
      * fast/js/dfg-put-by-id-reallocate-storage.html: Added.
      * fast/js/script-tests/dfg-put-by-id-allocate-storage-polymorphic.js: Added.
      (foo):
      * fast/js/script-tests/dfg-put-by-id-allocate-storage.js: Added.
      (foo):
      * fast/js/script-tests/dfg-put-by-id-reallocate-storage-polymorphic.js: Added.
      (foo):
      * fast/js/script-tests/dfg-put-by-id-reallocate-storage.js: Added.
      (foo):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123028 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c6429b8f