1. 22 Aug, 2012 40 commits
    • jpfau@apple.com's avatar
      Allow blocking of Web SQL databases in third-party web workers · bcbbf661
      jpfau@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=94170
      
      Reviewed by Adam Barth.
      
      Source/WebCore:
      
      Web workers did not previously know anything about the document that
      spawned them. This is undefined for shared workers, but for dedicated
      workers, we now pipe the information through.
      
      Tests: http/tests/security/cross-origin-worker-websql-allowed.html
             http/tests/security/cross-origin-worker-websql.html
      
      * Modules/webdatabase/WorkerContextWebDatabase.cpp: Pass information about the top origin to canAccessDatabase
      (WebCore::WorkerContextWebDatabase::openDatabase):
      (WebCore::WorkerContextWebDatabase::openDatabaseSync):
      * WebCore.exp.in: Make SecurityOrigin::isolatedCopy const
      * page/SecurityOrigin.cpp:
      (WebCore::SecurityOrigin::isolatedCopy):
      (WebCore::SecurityOrigin::canAccessStorage):
      * page/SecurityOrigin.h:
      * workers/DedicatedWorkerContext.cpp: Pass topOrigin
      (WebCore::DedicatedWorkerContext::create):
      (WebCore::DedicatedWorkerContext::DedicatedWorkerContext):
      * workers/DedicatedWorkerContext.h:
      (DedicatedWorkerContext):
      * workers/DedicatedWorkerThread.cpp: Pass topOrigin
      (WebCore::DedicatedWorkerThread::create):
      (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
      (WebCore::DedicatedWorkerThread::createWorkerContext):
      * workers/DedicatedWorkerThread.h:
      (DedicatedWorkerThread):
      * workers/SharedWorkerContext.cpp: Pass topOrigin
      (WebCore::SharedWorkerContext::SharedWorkerContext):
      * workers/SharedWorkerThread.cpp:
      (WebCore::SharedWorkerThread::SharedWorkerThread):
      (WebCore::SharedWorkerThread::createWorkerContext):
      * workers/SharedWorkerThread.h:
      (SharedWorkerThread): Pass topOrigin
      * workers/WorkerContext.cpp:
      (WebCore::WorkerContext::WorkerContext):
      * workers/WorkerContext.h:
      (WebCore::WorkerContext::topOrigin):
      (WorkerContext):
      * workers/WorkerMessagingProxy.cpp: Pass topOrigin
      (WebCore::WorkerMessagingProxy::startWorkerContext):
      * workers/WorkerThread.cpp:
      (WebCore::WorkerThreadStartupData::create):
      (WorkerThreadStartupData):
      (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
      (WebCore::WorkerThread::WorkerThread):
      (WebCore::WorkerThread::workerThread):
      * workers/WorkerThread.h:
      (WorkerThread):
      
      Source/WebKit/chromium:
      
      Web workers did not previously know anything about the document that
      spawned them. This is undefined for shared workers, but for dedicated
      workers, we now pipe the information through.
      
      * src/WebWorkerClientImpl.cpp:
      (WebKit::WebWorkerClientImpl::startWorkerContext): Pass top document's origin
      
      LayoutTests:
      
      Created tests for accessing openDatabase from a third party and first party dedicated workers when third-party blocking is on and off.
      
      * http/tests/security/cross-origin-worker-websql-allowed-expected.txt: Added.
      * http/tests/security/cross-origin-worker-websql-allowed.html: Added.
      * http/tests/security/cross-origin-worker-websql-expected.txt: Added.
      * http/tests/security/cross-origin-worker-websql.html: Added.
      * http/tests/security/resources/cross-origin-iframe-for-worker-websql.html: Added.
      * http/tests/security/resources/document-for-cross-origin-worker-websql.html: Added.
      * http/tests/security/resources/worker-for-websql.js: Added.
      (self.onmessage):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126365 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bcbbf661
    • annacc@chromium.org's avatar
      [Chromium/GTK/EFL] Flaky media/track/track-mode test. · 8a159092
      annacc@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=83878
      
      Reviewed by Eric Seidel.
      
      This test should only care that cuechange events are fired when the TextTrack
      mode is set to HIDDEN or SHOWING.  Because the events are asynchronous, we
      shouldn't test the order of them, just that they occur.
      
      * media/track/track-mode-expected.txt:
      * media/track/track-mode.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126364 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8a159092
    • haraken@chromium.org's avatar
      [V8] Move context() from V8Proxy to ScriptController · 610d9427
      haraken@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94593
      
      Reviewed by Adam Barth.
      
      Source/WebCore:
      
      - This patch removes V8Proxy::context(Frame*).
      - This patch moves V8Proxy::context() to ScriptController::context().
      - This patch renames ScriptController::context() to ScriptController::currentWorldContext(),
      for naming consistency with ScriptController::maintWorldContext().
      
      No tests. No change in behavior.
      
      * bindings/scripts/CodeGeneratorV8.pm:
      (GenerateToV8Converters):
      * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
      (WebCore::V8TestActiveDOMObject::wrapSlow):
      * bindings/scripts/test/V8/V8TestNode.cpp:
      (WebCore::V8TestNode::wrapSlow):
      * bindings/v8/ScriptController.cpp:
      (WebCore::ScriptController::context):
      (WebCore):
      * bindings/v8/ScriptController.h:
      (ScriptController):
      * bindings/v8/V8DOMWrapper.cpp:
      (WebCore::V8DOMWrapper::setNamedHiddenWindowReference):
      * bindings/v8/V8Proxy.cpp:
      * bindings/v8/V8Proxy.h:
      (V8Proxy):
      * bindings/v8/custom/V8DOMWindowCustom.cpp:
      (WebCore::WindowSetTimeoutImpl):
      (WebCore::V8DOMWindow::eventAccessorGetter):
      (WebCore::V8DOMWindow::eventAccessorSetter):
      (WebCore::DialogHandler::dialogCreated):
      (WebCore::toV8):
      * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
      (WebCore::V8HTMLDocument::openCallback):
      
      Source/WebKit/chromium:
      
      To kill V8Proxy, we can move context() from V8Proxy to ScriptController.
      
      No tests. No change in behavior.
      
      * src/InspectorFrontendClientImpl.cpp:
      (WebKit::InspectorFrontendClientImpl::windowObjectCleared):
      * src/WebDevToolsFrontendImpl.cpp:
      (WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126363 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      610d9427
    • haraken@chromium.org's avatar
      [V8] Remove V8Proxy from V8DOMWrapper::instantiateV8Object() · 57aa1bfe
      haraken@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94713
      
      Reviewed by Adam Barth.
      
      To kill V8Proxy, V8DOMWrapper::instantiateV8Object() should receive Frame*
      instead of V8Proxy*.
      
      No tests. No change in behavior.
      
      * bindings/scripts/CodeGeneratorV8.pm:
      (GenerateToV8Converters):
      * bindings/scripts/test/V8/V8Float64Array.cpp:
      (WebCore::V8Float64Array::wrapSlow):
      * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
      (WebCore::V8TestActiveDOMObject::wrapSlow):
      * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
      (WebCore::V8TestCustomNamedGetter::wrapSlow):
      * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
      (WebCore::V8TestEventConstructor::wrapSlow):
      * bindings/scripts/test/V8/V8TestEventTarget.cpp:
      (WebCore::V8TestEventTarget::wrapSlow):
      * bindings/scripts/test/V8/V8TestException.cpp:
      (WebCore::V8TestException::wrapSlow):
      * bindings/scripts/test/V8/V8TestInterface.cpp:
      (WebCore::V8TestInterface::wrapSlow):
      * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
      (WebCore::V8TestMediaQueryListListener::wrapSlow):
      * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
      (WebCore::V8TestNamedConstructor::wrapSlow):
      * bindings/scripts/test/V8/V8TestNode.cpp:
      (WebCore::V8TestNode::wrapSlow):
      * bindings/scripts/test/V8/V8TestObj.cpp:
      (WebCore::V8TestObj::wrapSlow):
      * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
      (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
      * bindings/v8/V8DOMWrapper.cpp:
      (WebCore):
      (WebCore::V8DOMWrapper::instantiateV8Object):
      * bindings/v8/V8DOMWrapper.h:
      (V8DOMWrapper):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126362 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      57aa1bfe
    • jsbell@chromium.org's avatar
      IndexedDB: IDBRequest can be destructed during abort · 41295200
      jsbell@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94618
      
      Reviewed by Tony Chang.
      
      If there are no script references, an IDBRequest could be kept alive
      only by enqueued events. On document destruction, the parent transaction
      is aborted, which aborts the request. During the abort, the enqueued events
      are deleted, releasing the last reference to the IDBRequest which then
      destructs in mid-method call and an "unfinished" state, hitting an assert.
      
      This patch keeps the IDBRequest alive through the completion of the abort()
      method, which will enqueue another event. In the document destruction case,
      this will end up with the IDBRequest having stop() called on it which will
      send the IDBRequest into EarlyDeath state, satisfying the destructor assert.
      
      Addresses existing layout tests that behave flakily in Chromium port.
      
      * Modules/indexeddb/IDBRequest.cpp:
      (WebCore::IDBRequest::abort):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126361 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      41295200
    • haraken@chromium.org's avatar
      [V8] Move precompileScript() from V8Proxy to ScriptSourceCode · 11117240
      haraken@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94701
      
      Reviewed by Adam Barth.
      
      To kill V8Proxy, we can move precompileScript() from V8Proxy
      to ScriptSourceCode.
      
      No tests. No change in behavior.
      
      * bindings/v8/ScriptSourceCode.cpp:
      (WebCore::ScriptSourceCode::precompileScript):
      (WebCore):
      * bindings/v8/ScriptSourceCode.h:
      (ScriptSourceCode):
      * bindings/v8/V8Proxy.cpp:
      (WebCore::V8Proxy::evaluate):
      * bindings/v8/V8Proxy.h:
      (V8Proxy):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      11117240
    • commit-queue@webkit.org's avatar
      Reduce Font.h includes across project -- improves RenderObject.h compile time · d0c076d4
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=93629
      
      Patch by Nikhil Bhargava <nbhargava@google.com> on 2012-08-22
      Reviewed by Eric Seidel.
      
      Source/WebCore:
      
      RenderStyle.h no longer depends on Font.h. The files that transitively
      need to be updated with proper includes are fixed.
      
      No new tests. Functionality should remain the same.
      
      * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
      * accessibility/mac/WebAccessibilityObjectWrapper.mm:
      * bindings/objc/DOM.mm:
      * css/CSSComputedStyleDeclaration.cpp:
      * css/CSSPrimitiveValue.cpp:
      * css/StyleResolver.h:
      * dom/CharacterData.cpp:
      * dom/ElementRareData.h:
      * dom/NodeRenderingContext.cpp:
      * dom/Text.cpp:
      * editing/TextIterator.cpp:
      * editing/mac/EditorMac.mm:
      * html/HTMLTitleElement.cpp:
      * html/shadow/TextControlInnerElements.cpp:
      * inspector/InspectorOverlay.cpp:
      * page/ContextMenuController.cpp:
      * page/PrintContext.cpp:
      * platform/efl/RenderThemeEfl.cpp:
      * platform/graphics/FontMetrics.h:
      * platform/gtk/RenderThemeGtk.cpp:
      * platform/gtk/RenderThemeGtk2.cpp:
      * platform/mac/HTMLConverter.mm:
      * rendering/EllipsisBox.cpp:
      * rendering/FlowThreadController.cpp:
      * rendering/InlineBox.cpp:
      * rendering/InlineFlowBox.cpp:
      * rendering/InlineFlowBox.h:
      (WebCore):
      * rendering/RenderButton.cpp:
      * rendering/RenderCombineText.cpp:
      * rendering/RenderCombineText.h:
      * rendering/RenderDeprecatedFlexibleBox.cpp:
      * rendering/RenderEmbeddedObject.h:
      (WebCore):
      * rendering/RenderFileUploadControl.cpp:
      * rendering/RenderFullScreen.h:
      * rendering/RenderImage.cpp:
      * rendering/RenderInline.cpp:
      * rendering/RenderListItem.cpp:
      * rendering/RenderListMarker.cpp:
      * rendering/RenderMultiColumnBlock.cpp:
      * rendering/RenderRegion.h:
      * rendering/RenderRuby.cpp:
      * rendering/RenderRubyRun.cpp:
      * rendering/RenderScrollbar.cpp:
      * rendering/RenderTable.cpp:
      * rendering/RenderTableCell.cpp:
      * rendering/RenderTableRow.cpp:
      * rendering/RenderTableSection.cpp:
      * rendering/RenderTextControl.cpp:
      * rendering/RenderTextControlMultiLine.cpp:
      * rendering/RenderThemeChromiumSkia.cpp:
      * rendering/RenderView.cpp:
      * rendering/TextAutosizer.cpp:
      * rendering/mathml/RenderMathMLBlock.h:
      * rendering/style/KeyframeList.h:
      * rendering/style/RenderStyle.cpp:
      * rendering/style/RenderStyle.h:
      (WebCore):
      * rendering/style/StyleInheritedData.cpp:
      * rendering/svg/RenderSVGBlock.cpp:
      * rendering/svg/RenderSVGInlineText.h:
      * svg/SVGLengthContext.cpp:
      * svg/SVGTRefElement.cpp:
      
      Source/WebKit/chromium:
      
      Adds includes due to change in RenderStyle.h
      
      * src/WebFrameImpl.cpp:
      * src/mac/WebSubstringUtil.mm:
      
      Source/WebKit/win:
      
      Adds includes due to change in RenderStyle.h
      
      * DOMCoreClasses.cpp:
      
      Source/WebKit2:
      
      Adds includes due to change in RenderStyle.h
      
      * WebProcess/WebPage/mac/WebPageMac.mm:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126359 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d0c076d4
    • commit-queue@webkit.org's avatar
      Test cases under fast/filesystem/workers are flaky when using JSC · 1bd12baa
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94747
      
      Patch by Leo Yang <leoyang@rim.com> on 2012-08-22
      Reviewed by Yong Li.
      
      These test cases sometimes can't complete because the worker object
      created by startWorker() has been gc'ed before the worker thread complete.
      We should reference the object to avoid it being gc'ed.
      
      * fast/filesystem/workers/async-operations.html:
      * fast/filesystem/workers/file-entry-to-uri-sync.html:
      * fast/filesystem/workers/file-from-file-entry-sync.html:
      * fast/filesystem/workers/file-from-file-entry.html:
      * fast/filesystem/workers/file-writer-empty-blob.html:
      * fast/filesystem/workers/file-writer-events.html:
      * fast/filesystem/workers/file-writer-gc-blob.html:
      * fast/filesystem/workers/file-writer-sync-truncate-extend.html:
      * fast/filesystem/workers/file-writer-sync-write-overlapped.html:
      * fast/filesystem/workers/file-writer-truncate-extend.html:
      * fast/filesystem/workers/file-writer-write-overlapped.html:
      * fast/filesystem/workers/simple-persistent-sync.html:
      * fast/filesystem/workers/simple-persistent.html:
      * fast/filesystem/workers/simple-temporary-sync.html:
      * fast/filesystem/workers/simple-temporary.html:
      * fast/filesystem/workers/sync-operations.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126358 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1bd12baa
    • commit-queue@webkit.org's avatar
      win64 compile error fix for BinaryPropertyList.cpp · 39703d20
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94122
      
      Patch by Alex Christensen <alex.christensen@flexsim.com> on 2012-08-22
      Reviewed by Eric Seidel.
      
      Fixed compile errors for MSVC x64 without changing performance
      
      * platform/cf/BinaryPropertyList.cpp:
      (WebCore::BinaryPropertyListSerializer::appendStringObject):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126357 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      39703d20
    • commit-queue@webkit.org's avatar
      Don't unconditionally define NOMINMAX on Windows · 12457525
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94742
      
      Patch by Scott Graham <scottmg@chromium.org> on 2012-08-22
      Reviewed by Adrienne Walker.
      
      Avoids a warning when building on Windows when NOMINMAX is defined
      elsewhere or on the command line.
      
      * TestWebKitAPI/config.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      12457525
    • commit-queue@webkit.org's avatar
      HTMLTreeBuilder::furthestBlockForFormattingElement should belong to HTMLElementStack · f118a09c
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=93857
      
      Patch by Kwang Yul Seo <skyul@company100.net> on 2012-08-22
      Reviewed by Eric Seidel.
      
      HTMLTreeBuilder::furthestBlockForFormattingElement should belong to
      HTMLElementStack because it traverses the element stack and finds the
      furthest block for the given formatting element.
      
      Currently, it belongs to HTMLTreeBuilder just because
      isSpecialNode(const HTMLStackItem*) function used by
      furthestBlockForFormattingElement is internal to HTMLTreeBuilder.
      
      Moved isSpecialNode to HTMLStackItem and changed
      furthestBlockForFormattingElement to be a method of HTMLElementStack.
      
      No behavior change. Just a refactoring.
      
      * html/parser/HTMLElementStack.cpp:
      (WebCore):
      (WebCore::HTMLElementStack::popUntilNumberedHeaderElementPopped):
      (WebCore::HTMLElementStack::hasNumberedHeaderElementInScope):
      (WebCore::HTMLElementStack::furthestBlockForFormattingElement):
      * html/parser/HTMLElementStack.h:
      (HTMLElementStack):
      * html/parser/HTMLStackItem.h:
      (WebCore::HTMLStackItem::isInHTMLNamespace):
      (HTMLStackItem):
      (WebCore::HTMLStackItem::isNumberedHeaderElement):
      (WebCore::HTMLStackItem::isTableBodyContextElement):
      (WebCore::HTMLStackItem::isSpecialNode):
      * html/parser/HTMLTreeBuilder.cpp:
      (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
      (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
      (WebCore::HTMLTreeBuilder::processStartTagForInBody):
      (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
      (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
      (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
      (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
      * html/parser/HTMLTreeBuilder.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f118a09c
    • mhahnenberg@apple.com's avatar
      Separate MarkStackThreadSharedData from MarkStack · 20f21f37
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=94294
      
      Reviewed by Filip Pizlo.
      
      MarkStackThreadSharedData is soon going to have data to allow for a parallel copying
      mode too, so to separate our concerns we should split it out into its own set of files
      and rename it to GCThreadSharedData. For now this is purely a cosmetic refactoring.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * heap/GCThreadSharedData.cpp: Added.
      (JSC):
      (JSC::GCThreadSharedData::resetChildren):
      (JSC::GCThreadSharedData::childVisitCount):
      (JSC::GCThreadSharedData::markingThreadMain):
      (JSC::GCThreadSharedData::markingThreadStartFunc):
      (JSC::GCThreadSharedData::GCThreadSharedData):
      (JSC::GCThreadSharedData::~GCThreadSharedData):
      (JSC::GCThreadSharedData::reset):
      * heap/GCThreadSharedData.h: Added.
      (JSC):
      (GCThreadSharedData):
      * heap/Heap.h:
      (Heap):
      * heap/ListableHandler.h:
      (ListableHandler):
      * heap/MarkStack.cpp:
      (JSC::MarkStack::MarkStack):
      (JSC::MarkStack::~MarkStack):
      * heap/MarkStack.h:
      (JSC):
      (MarkStack):
      (JSC::MarkStack::sharedData):
      * heap/MarkStackInlineMethods.h: Added.
      (JSC):
      (JSC::MarkStack::append):
      (JSC::MarkStack::appendUnbarrieredPointer):
      (JSC::MarkStack::appendUnbarrieredValue):
      (JSC::MarkStack::internalAppend):
      (JSC::MarkStack::addWeakReferenceHarvester):
      (JSC::MarkStack::addUnconditionalFinalizer):
      (JSC::MarkStack::addOpaqueRoot):
      (JSC::MarkStack::containsOpaqueRoot):
      (JSC::MarkStack::opaqueRootCount):
      * heap/SlotVisitor.h:
      (JSC):
      (SlotVisitor):
      (JSC::SlotVisitor::SlotVisitor):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126354 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      20f21f37
    • zandobersek@gmail.com's avatar
      REGRESSION(r126189): Reftest mismatches are (again) run through ImageDiff with 0.1 tolerance · 97cc7879
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=94704
      
      Reviewed by Dirk Pranke.
      
      Use tolerance=0 when acquiring diff image of reftest output.
      
      * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
      (SingleTestRunner._compare_output_with_reference):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      97cc7879
    • commit-queue@webkit.org's avatar
      Speed up compilation of tests involving WebTransformationMatrix · 069a702c
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94639
      
      Patch by Nikhil Bhargava <nbhargava@google.com> on 2012-08-22
      Reviewed by James Robinson.
      
      EXPECT_TRANSFORMATION_MATRIX_EQ was changed to become mainly a function.
      As a macro that expanded into 16 other macros, it caused an unneeded
      slow down of close to 45s in the compile time of CCLayerTreeHostCommonTest
      Bugs have been filed to clang and gcc noting the errant behavior:
      http://llvm.org/bugs/show_bug.cgi?id=13651 and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54337
      
      * tests/CCLayerTreeHostCommonTest.cpp:
      * tests/CCLayerTreeTestCommon.h:
      (WebKitTests):
      (WebKitTests::ExpectTransformationMatrixEq):
      * tests/WebTransformOperationsTest.cpp:
      (TEST):
      (checkProgress):
      * tests/WebTransformationMatrixTest.cpp:
      (WebKit::TEST):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      069a702c
    • commit-queue@webkit.org's avatar
      [chromium] Add software bitmap resources to CCResourceProvider · 1f7a1819
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=93677
      
      Patch by Alexandre Elias <aelias@google.com> on 2012-08-22
      Reviewed by Adrienne Walker.
      
      Second commit after revert.
      
      This adds the ability to CCResourceProvider to use software bitmaps.
      They are allocated as plain-old-memory, and exposed as Skia objects.
      
      We want the ResourceProvider to be able to handle different resource
      types at the same time.  In practice, a default resource type is
      desired for most uses within a single compositor instance, which is
      specified by the default resource type.  Default resource types are
      expected to be mostly 1-to-1 with CCRenderer types.
      
      New tests added by parametrizing existing CCResourceProvider tests.
      
      Source/WebCore:
      
      * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
      (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
      * platform/graphics/chromium/LayerRendererChromium.cpp:
      (WebCore::applyFilters):
      (WebCore::LayerRendererChromium::drawRenderPassQuad):
      (WebCore::LayerRendererChromium::drawTileQuad):
      (WebCore::LayerRendererChromium::drawYUVVideoQuad):
      (WebCore::LayerRendererChromium::drawTextureQuad):
      (WebCore::LayerRendererChromium::getFramebufferTexture):
      (WebCore::LayerRendererChromium::bindFramebufferToTexture):
      * platform/graphics/chromium/LayerRendererChromium.h:
      (DrawingFrame):
      * platform/graphics/chromium/cc/CCResourceProvider.cpp:
      (WebCore::CCResourceProvider::createResource):
      (WebCore):
      (WebCore::CCResourceProvider::createGLTexture):
      (WebCore::CCResourceProvider::createBitmap):
      (WebCore::CCResourceProvider::createResourceFromExternalTexture):
      (WebCore::CCResourceProvider::deleteResource):
      (WebCore::CCResourceProvider::upload):
      (WebCore::CCResourceProvider::flush):
      (WebCore::CCResourceProvider::shallowFlushIfSupported):
      (WebCore::CCResourceProvider::lockForRead):
      (WebCore::CCResourceProvider::unlockForRead):
      (WebCore::CCResourceProvider::lockForWrite):
      (WebCore::CCResourceProvider::unlockForWrite):
      (WebCore::CCResourceProvider::ScopedReadLockGL::ScopedReadLockGL):
      (WebCore::CCResourceProvider::ScopedReadLockGL::~ScopedReadLockGL):
      (WebCore::CCResourceProvider::ScopedWriteLockGL::ScopedWriteLockGL):
      (WebCore::CCResourceProvider::ScopedWriteLockGL::~ScopedWriteLockGL):
      (WebCore::CCResourceProvider::populateSkBitmapWithResource):
      (WebCore::CCResourceProvider::ScopedReadLockSoftware::ScopedReadLockSoftware):
      (WebCore::CCResourceProvider::ScopedReadLockSoftware::~ScopedReadLockSoftware):
      (WebCore::CCResourceProvider::ScopedWriteLockSoftware::ScopedWriteLockSoftware):
      (WebCore::CCResourceProvider::ScopedWriteLockSoftware::~ScopedWriteLockSoftware):
      (WebCore::CCResourceProvider::CCResourceProvider):
      * platform/graphics/chromium/cc/CCResourceProvider.h:
      (WebCore):
      (WebCore::CCResourceProvider::setCreationPolicy):
      (WebCore::CCResourceProvider::creationPolicy):
      (CCResourceProvider):
      (ScopedReadLockGL):
      (WebCore::CCResourceProvider::ScopedReadLockGL::textureId):
      (ScopedWriteLockGL):
      (WebCore::CCResourceProvider::ScopedWriteLockGL::textureId):
      (ScopedReadLockSoftware):
      (WebCore::CCResourceProvider::ScopedReadLockSoftware::skBitmap):
      (ScopedWriteLockSoftware):
      (WebCore::CCResourceProvider::ScopedWriteLockSoftware::skCanvas):
      (Resource):
      
      Source/WebKit/chromium:
      
      * tests/CCResourceProviderTest.cpp:
      (WebKit::CCResourceProviderTest::getResourcePixels):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126351 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1f7a1819
    • annacc@chromium.org's avatar
      Update the TextTrackCue Constructor · 80de8d39
      annacc@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=88583
      
      Reviewed by Eric Carlson.
      
      The TextTrackCue constructor has been changed to:
      [Constructor(double startTime, double endTime, DOMString text)]
      http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcue
      
      Source/WebCore:
      
      No new tests.  Update to media/track/track-add-remove-cue.html
      
      * html/track/TextTrackCue.cpp:
      (WebCore::TextTrackCue::TextTrackCue):
      * html/track/TextTrackCue.h:
      (WebCore::TextTrackCue::create):
      (TextTrackCue):
      * html/track/TextTrackCue.idl:
      * html/track/WebVTTParser.cpp:
      (WebCore::WebVTTParser::createNewCue):
      
      LayoutTests:
      
      * media/track/track-add-remove-cue-expected.txt:
      * media/track/track-add-remove-cue.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126350 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      80de8d39
    • arv@chromium.org's avatar
      Changing class attribute is not reflected in the classList property · 0f7f784f
      arv@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=93665
      
      Reviewed by Ojan Vafai.
      
      Before this change classAttributeChanged was only called for StyledElement. With this refactoring
      it gets called for all Elements when the class attribute changes.
      
      Source/WebCore:
      
      Test: fast/dom/Element/class-list-update.html
      
      * css/StyleResolver.cpp:
      (WebCore::StyleResolver::collectMatchingRules): To match the old behavior we only include StyledElements.
      * dom/ClassNodeList.cpp:
      (WebCore::ClassNodeList::nodeMatches): Ditto.
      * dom/Element.cpp:
      (WebCore::Element::attributeChanged): Moved the call to parseAttribute here, from StyledElement::attributeChanged.
      (WebCore::Element::parseAttribute): Moved from StyledElement.
      (WebCore):
      (WebCore::Element::classAttributeChanged): Ditto.
      * dom/Element.h:
      (Element):
      (WebCore::Element::classNames): Ditto.
      (WebCore):
      * dom/StyledElement.cpp:
      (WebCore::StyledElement::attributeChanged): Let Element::attributeChanged call parseAttribtue instead.
      (WebCore::StyledElement::parseAttribute): Move the class attribute handling to Element::parseAttribute.
      * dom/StyledElement.h:
      (StyledElement):
      
      LayoutTests:
      
      * fast/dom/Element/class-list-update-expected.txt: Added.
      * fast/dom/Element/class-list-update.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126349 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0f7f784f
    • haraken@chromium.org's avatar
      [V8] Replace v8::String::NewSymbol() in CodeGeneratorV8.pm with v8String() · a793efe4
      haraken@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94588
      
      Reviewed by Eric Seidel.
      
      v8String() is faster than String::NewSymbol().
      This patch implements v8String(char*, Isolate*) and
      replaces String::NewSymbol(char*) in CodeGeneratorV8.pm
      with v8String(char*, Isolate*).
      
      Performance result:
      
      // 272 nano sec
      static v8::Handle<v8::Value> attr3AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
      {
          v8::Handle<v8::Value> v1 = v8String(String("foo"));
          v8::Handle<v8::Value> v2 = v8String(String("bar"));
          if (!v1.IsEmpty() && !v2.IsEmpty())
              return v8Undefined();
          return v8::Null(); // Never reach.
      }
      
      // 377 nano sec
      static v8::Handle<v8::Value> attr4AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
      {
          v8::Handle<v8::Value> v1 = v8::String::NewSymbol("foo");
          v8::Handle<v8::Value> v2 = v8::String::NewSymbol("bar");
          if (!v1.IsEmpty() && !v2.IsEmpty())
              return v8Undefined();
          return v8::Null(); // Never reach.
      }
      
      No tests. No change in behavior.
      
      * bindings/scripts/CodeGeneratorV8.pm:
      (GenerateNormalAttrGetter):
      (GenerateNormalAttrSetter):
      (GenerateNamedConstructorCallback):
      (GenerateNonStandardFunction):
      (GenerateImplementation):
      * bindings/scripts/test/V8/V8Float64Array.cpp:
      (WebCore::ConfigureV8Float64ArrayTemplate):
      * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
      (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
      * bindings/scripts/test/V8/V8TestEventTarget.cpp:
      (WebCore::ConfigureV8TestEventTargetTemplate):
      * bindings/scripts/test/V8/V8TestInterface.cpp:
      (WebCore::ConfigureV8TestInterfaceTemplate):
      * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
      (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
      * bindings/scripts/test/V8/V8TestObj.cpp:
      (WebCore::ConfigureV8TestObjTemplate):
      (WebCore::V8TestObj::installPerContextProperties):
      * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
      (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
      (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
      (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
      * bindings/v8/V8Binding.h:
      (WebCore):
      (WebCore::v8String):
      * html/HTMLDivElement.idl:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126348 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a793efe4
    • kbr@google.com's avatar
      [Chromium] Need baselines for new paged-x and paged-y tests in fast/overflow after r126343 · e737ff7e
      kbr@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=94748
      
      Unreviewed gardening; suppressing new failures until baselines are generated.
      
      * platform/chromium/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126347 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e737ff7e
    • psolanki@apple.com's avatar
      Setting WebKitEnableHTTPPipelining doesn't work if default is true · 0baa4a16
      psolanki@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=94537
      
      Reviewed by David Kilzer.
      
      * platform/network/cf/ResourceRequestCFNet.cpp:
      (WebCore::initializeMaximumHTTPConnectionCountPerHost): Read in the HTTP pipelining pref and
      allow it to override the default pipelining behavior if it was actually set.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0baa4a16
    • wjmaclean@chromium.org's avatar
      [chromium] Add touch link highlight animation layers. · 78b613c7
      wjmaclean@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=84487
      
      Reviewed by James Robinson.
      
      Adds support for creating composited touch link highlights in renderer thread. Clipping not yet
      implemented for non-composited frames/overflow divs, but scrolling and layout changes are supported.
      Transform support currently limited to translation.
      
      Source/WebCore:
      
      Unit tests for LinkHighlight revised.
      
      Tests: platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-clipped.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-composite.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-noncomposite.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled-clipped.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scroll-clip.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scrolled.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-2.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scroll-clip.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-composite.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-noncomposite.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-inner.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-outer.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-clipped.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-late-composite.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-clipped.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-late-composite.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-inner.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-outer.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-inner.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-outer.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-rotated.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledX.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledY.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-window-scroll.html
             platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple.html
      
      * WebCore.gypi:
      * platform/graphics/chromium/GraphicsLayerChromium.cpp:
      (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
      (WebCore::GraphicsLayerChromium::willBeDestroyed): Adds notification to LinkHighlight when layer goes away.
      (WebCore::GraphicsLayerChromium::updateNames): Now sets debug name for LinkHighlight layer.
      (WebCore::GraphicsLayerChromium::setSize): Invalidates LinkHighlight if present.
      (WebCore::GraphicsLayerChromium::setNeedsDisplay): Invalidates LinkHighlight if present.
      (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect): Invalidates LinkHighlight if present.
      (WebCore::GraphicsLayerChromium::setLinkHighlight): Registers LinkHighlightClient* with GraphicsLayerChromium.
      (WebCore::GraphicsLayerChromium::updateChildList): Now adds LinkHighlight WebLayer if highlight active.
      (WebCore::GraphicsLayerChromium::updateLayerIsDrawable): Invalidates LinkHighlight if present.
      * platform/graphics/chromium/GraphicsLayerChromium.h:
      (WebCore):
      (LinkHighlightClient): Abstract interface seen by GraphicsLayerChromium.
      (WebCore::LinkHighlightClient::~LinkHighlightClient):
      (GraphicsLayerChromium):
      (WebCore::GraphicsLayerChromium::linkHighlight):
      * platform/graphics/chromium/LinkHighlight.cpp: Removed.
      
      Source/WebKit/chromium:
      
      Unit tests for LinkHighlight revised.
      
      * WebKit.gyp:
      * src/LinkHighlight.cpp: Added.
      (WebKit):
      (WebKit::LinkHighlight::create):
      (WebKit::LinkHighlight::LinkHighlight):
      (WebKit::LinkHighlight::~LinkHighlight):
      (WebKit::LinkHighlight::contentLayer): Accessor for layer containing highlight.
      (WebKit::LinkHighlight::clipLayer): Accessor for layer that provides clipping for highlight.
      (WebKit::LinkHighlight::releaseResources): Releases Node* for highlight target, clears client/delegate pointers.
      (WebKit::LinkHighlight::computeEnclosingCompositingLayer): Determines which GraphicsLayerChromium to attach highlight to.
      (WebKit::LinkHighlight::computeHighlightLayerPathAndPosition): Determines coordinates of highlight in owning GraphicsLayerChromium's coordinates.
      (WebKit::LinkHighlight::paintContents): If highlight active, paints highlight.
      (WebKit::LinkHighlight::startHighlightAnimation): Called to start highlight animation.
      (WebKit::LinkHighlight::clearGraphicsLayerLinkHighlightPointer): Removes this LinkHighlight's pointer from owning GraphicsLayerChromium.
      (WebKit::LinkHighlight::notifyAnimationStarted): Implements WebAnimationDelegate.
      (WebKit::LinkHighlight::notifyAnimationFinished): Implements WebAnimationDelegate, releases resources when animation completes.
      (WebKit::LinkHighlight::updateGeometry): Invokes computation of which GraphicsLayerChromium to attach to, and highlight shape & position.
          Computations proceed only if preceded by call to invalidate().
      (WebKit::LinkHighlight::clearCurrentGraphicsLayer): Handles notification that current GraphicsLayerChromium* is no longer valid.
      (WebKit::LinkHighlight::invalidate): Sets flag to allow geometry update on next call from WebViewImpl::layout().
      (WebKit::LinkHighlight::layer): Exports WebLayer* for use in GraphicsLayerChromium.
      * src/LinkHighlight.h: Renamed from Source/WebCore/platform/graphics/chromium/LinkHighlight.h.
      (WebCore):
      (WebKit):
      (LinkHighlight):
      * src/WebViewImpl.cpp:
      (WebKit::WebViewImpl::handleGestureEvent):
      (WebKit):
      (WebKit::highlightConditions):
      (WebKit::WebViewImpl::bestTouchLinkNode): Find highlight target node for touch event location.
      (WebKit::WebViewImpl::enableTouchHighlight): Invokes highlight for node at current touch event location.
      (WebKit::WebViewImpl::layout): Adds call to LinkHighlight::updateGeometry().
      * src/WebViewImpl.h:
      (WebKit):
      (WebViewImpl):
      (WebKit::WebViewImpl::linkHighlight):
      * tests/LinkHighlightTest.cpp:
      (WebCore):
      (WebCore::TEST):
      * tests/data/test_touch_link_highlight.html: Added.
      
      LayoutTests:
      
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-clipped.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-composite.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-noncomposite.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scroll-clip.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scrolled.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-2.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-composite.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-noncomposite.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-inner.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-outer.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-late-composite.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-late-composite.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-inner.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-outer.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-inner.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-outer.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-window-scroll.html: Added.
      * platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple.html: Added.
      * platform/chromium-linux/compositing/gestures/resources/1-frame-composited.html: Added.
      * platform/chromium-linux/compositing/gestures/resources/1-frame-noncomposited.html: Added.
      * platform/chromium-linux/compositing/gestures/resources/1-nested-frame-composited.html: Added.
      * platform/chromium-linux/compositing/gestures/resources/1-nested-frame-noncomposited.html: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-clipped-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-clipped-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-composite-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-composite-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-noncomposite-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-noncomposite-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scroll-clip-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scroll-clip-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scrolled-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scrolled-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-2-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-2-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-composite-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-composite-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-noncomposite-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-noncomposite-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-inner-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-inner-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-outer-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-outer-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-late-composite-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-late-composite-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-late-composite-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-late-composite-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-inner-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-inner-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-outer-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-outer-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-inner-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-inner-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-outer-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-outer-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-expected.txt: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-window-scroll-expected.png: Added.
      * platform/chromium-linux/platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-window-scroll-expected.txt: Added.
      * platform/chromium/TestExpectations:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126345 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      78b613c7
    • abarth@webkit.org's avatar
      WebWidget should be able to paint into a zoomed canvas without aliasing · 3519c51c
      abarth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=92043
      
      Reviewed by James Robinson.
      
      If accelerated compositing is enabled, WebWidget::paint reads back from
      the compositor rather than re-painting the widget. That approach works
      well if the canvas we're rendering into is at a similar resolution to
      the pixels in the compositor, but if the canvas has been scaled (e.g.,
      to help the user disambiguate links), then reading back from the
      compositor will cause aliasing artifacts.
      
      This patch adds an option to paint to let the embedder request a
      software re-rendering of the widget to avoid these aliasing artifacts.
      
      * public/WebWidget.h:
      (WebKit::WebWidget::paint):
      * src/WebPagePopupImpl.cpp:
      (WebKit::WebPagePopupImpl::paint):
      * src/WebPagePopupImpl.h:
      (WebPagePopupImpl):
      * src/WebPopupMenuImpl.cpp:
      (WebKit::WebPopupMenuImpl::paint):
      * src/WebPopupMenuImpl.h:
      * src/WebViewImpl.cpp:
      (WebKit::canvasBackgroundForTransparencey):
      (WebKit):
      (WebKit::WebViewImpl::paint):
      * src/WebViewImpl.h:
      (WebViewImpl):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126344 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3519c51c
    • bdakin@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=94401 · 231bd90a
      bdakin@apple.com authored
      Add support for making a web site become paginated using overflow: 
      paged-x | paged-y
      -and corresponding-
      <rdar://problem/11831783> 
      
      Reviewed by Dave Hyatt.
      
      .: 
      
      * Source/autotools/symbols.filter:
      
      Source/WebCore: 
      
      This patch adds two new possible values for overflow-y. They are -
      webkit-paged-x and -webkit-paged-y. When you set these as overflow-y 
      values on the html or body element, they make the RenderView 
      paginated, much like the API on Page.
      
      -webkit-paged-x and -webkit-paged-y are only valid values for 
      overflow-y, NOT overflow-x. overflow-x defaults to a value of auto 
      (for now) unless it has been set to something else.
      * css/CSSParser.cpp:
      (WebCore::isValidKeywordPropertyAndValue):
      (WebCore::CSSParser::parseValue):
      
      Two new CSS value keywords.
      * css/CSSValueKeywords.in:
      
      EOverflow has two new values for pagination. 
      * rendering/style/RenderStyleConstants.h:
      * css/CSSPrimitiveValueMappings.h:
      (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
      (WebCore::CSSPrimitiveValue::operator EOverflow):
      
      A bunch of existing code from StyleResolver::styleForDocument() is 
      moved into a helper function so that it can be called from two 
      places. 
      * css/StyleResolver.cpp:
      (WebCore::StyleResolver::collectMatchingRulesForList):
      
      Even though this pagination is very similar to Page::pagination(), it 
      is different in one critical way. Page::pagination() will apply to 
      all FrameViews, even those in the page cache. For this reason, 
      FrameView needs to keep its own Pagination value that just applies to 
      this FrameView.
      * page/FrameView.cpp:
      * page/FrameView.h:
      (WebCore):
      (FrameView):
      
      Map RenderStyle values to a Pagination::Mode.
      (WebCore::paginationModeForRenderStyle):
      (WebCore):
      
      Account for paged-x and paged-y here.
      (WebCore::FrameView::applyOverflowToViewport):
      
      As is explained in the header, FrameView::pagination() will return 
      m_pagination if it has been set. Otherwise, it will return 
      Page::pagination() since currently there are no callers that need to 
      distinguish between the two.
      (WebCore::FrameView::pagination):
      (WebCore::FrameView::setPagination):
      
      Generally this means that everywhere in WebCore should ask FrameView 
      for the pagination(), not Page. These call sites all look to 
      FrameView now.
      (WebCore::FrameView::paintContents):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::requiresColumns):
      (WebCore::RenderView::calcColumnWidth):
      (WebCore::RenderView::paginationUnit):
      (WebCore::RenderView::viewLogicalHeight):
      
      Since we need to define Pagination in Page.h AND FrameView.h, it is 
      now in its own header, Pagination.h. And therefore it is no longer 
      WebCore::Page::Pagination, but rather it is just WebCore::Pagination.
      * page/Page.h:
      (Page):
      * rendering/Pagination.h: Added.
      (WebCore):
      (WebCore::Pagination::Pagination):
      (Pagination):
      (WebCore::Pagination::operator==):
      (WebCore::Pagination::operator!=):
      * WebCore.exp.in:
      * WebCore.xcodeproj/project.pbxproj:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.exp.in:
      * WebCore.gypi:
      
      Certain ColumnInfo values are set based on the RenderStyle. So if 
      those RenderStyle values change, the ColumnInfo needs to be updated.
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::updateColumnInfoFromStyle):
      (WebCore):
      * rendering/RenderBlock.h:
      (RenderBlock):
      
      Factor in paged-x and paged-y when determining if a RenderBlock 
      requires columns.
      (WebCore::RenderBlock::requiresColumns):
      
      RenderStyle::specifiesColumns() is an odd and probably broken 
      function. At the very least, it should be re-named, if not removed 
      entirely. It does not accurately assess if columns have been 
      specified. I had to add this code here because specifiesColumns() 
      returns false for paged-x and true for paged-y. We were hitting a 
      number of crashes with paged-y because of this, so I chose for the 
      time being to limit this check to non-root layers.
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::shouldBeNormalFlowOnly):
      
      It's just Pagination now, not Page::Pagination.
      * testing/InternalSettings.cpp:
      (WebCore::InternalSettings::reset):
      (WebCore::InternalSettings::setPagination):
      
      Source/WebKit/mac: 
      
      WebCore::Page::Pagination is now just WebCore::Pagination.
      * WebView/WebView.mm:
      (-[WebView _setPaginationMode:]):
      (-[WebView _paginationMode]):
      (-[WebView _setPaginationBehavesLikeColumns:]):
      (-[WebView _setPageLength:]):
      (-[WebView _setGapBetweenPages:]):
      
      Source/WebKit2: 
      
      WebCore::Page::Pagination is now just WebCore::Pagination.
      * Shared/WebPageCreationParameters.h:
      (WebPageCreationParameters):
      * UIProcess/API/C/WKPage.cpp:
      (WKPageSetPaginationMode):
      (WKPageGetPaginationMode):
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::WebPageProxy):
      (WebKit::WebPageProxy::setPaginationMode):
      * UIProcess/WebPageProxy.h:
      (WebPageProxy):
      (WebKit::WebPageProxy::paginationMode):
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::setPaginationMode):
      (WebKit::WebPage::setPaginationBehavesLikeColumns):
      (WebKit::WebPage::setPageLength):
      (WebKit::WebPage::setGapBetweenPages):
      * WebProcess/WebPage/WebPage.h:
      (WebPage):
      
      LayoutTests: 
      
      Test the parsing of the two new values.
      * fast/css/overflow-property-expected.txt:
      * fast/css/overflow-property.html:
      
      New tests.
      * fast/overflow/paged-x-div.html: Added.
      * fast/overflow/paged-x-on-root.html: Added.
      * fast/overflow/paged-y-div.html: Added.
      * fast/overflow/paged-y-on-root.html: Added.
      * platform/mac/fast/overflow/paged-x-div-expected.png: Added.
      * platform/mac/fast/overflow/paged-x-div-expected.txt: Added.
      * platform/mac/fast/overflow/paged-x-on-root-expected.png: Added.
      * platform/mac/fast/overflow/paged-x-on-root-expected.txt: Added.
      * platform/mac/fast/overflow/paged-y-div-expected.png: Added.
      * platform/mac/fast/overflow/paged-y-div-expected.txt: Added.
      * platform/mac/fast/overflow/paged-y-on-root-expected.png: Added.
      * platform/mac/fast/overflow/paged-y-on-root-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126343 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      231bd90a
    • dino@apple.com's avatar
      [WebGL] Mac/ATI/AMD systems need to translate built-in GLSL functions · ab1b45a4
      dino@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=94030
      
      Reviewed by Tim Horton.
      
      ATI/AMD GPUs on Apple platforms do not give correct values for some of
      the built-in GLSL functions. Add a compile flag that is passed to ANGLE
      so that, with this configuration, it will rewrite the shader to emulate
      the function in code.
      
      This is exposing some design weaknesses in the way we call ANGLE. We'll
      soon need to add more compiler flags; Future bugs will likely clean
      this code up. But this approach is satisfactory for the moment.
      
      This change is tested by the Khronos WebGL conformance test suite, in particular:
      conformance/glsl/functions/glsl-function-distance.html
      conformance/glsl/functions/glsl-function-dot.html
      conformance/glsl/functions/glsl-function-length.html
      
      * platform/graphics/ANGLEWebKitBridge.cpp:
      (WebCore::ANGLEWebKitBridge::validateShaderSource): Test for ATI cards
      on the Mac platform, and pass in an extra flag to the translation step.
      * platform/graphics/ANGLEWebKitBridge.h:
      (ANGLEWebKitBridge): Add a new parameter to getTranslatedShaderSourceANGLE
      that accepts some extra options to pass to ANGLE.
      * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
      (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Pass
      the extra options into ANGLE's compile function.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126342 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ab1b45a4
    • tommyw@google.com's avatar
      [chromium] MediaStream API: Add MockWebRTCPeerConnectionHandler · b3fc0e19
      tommyw@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=93091
      
      Reviewed by Adam Barth.
      
      Source/WebCore:
      
      Fixing a FIXME that the patch obsoletes.
      
      Covered by existing tests.
      
      * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
      (WebCore::RTCPeerConnectionHandlerChromium::initialize):
      
      Tools:
      
      Add a skeleton MockWebRTCPeerConnectionHandler to DumpRenderTree,
      to complete the infrastructure for RTCPeerConnection.
      
      * DumpRenderTree/DumpRenderTree.gypi:
      * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp:
      (MockWebKitPlatformSupport::createRTCPeerConnectionHandler):
      * DumpRenderTree/chromium/MockWebKitPlatformSupport.h:
      (MockWebKitPlatformSupport):
      * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp:
      * DumpRenderTree/chromium/MockWebMediaStreamCenter.h:
      * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h.
      (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler):
      (MockWebRTCPeerConnectionHandler::initialize):
      * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h.
      (WebKit):
      (MockWebRTCPeerConnectionHandler):
      (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126341 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b3fc0e19
    • commit-queue@webkit.org's avatar
      [chromium] Simplify updateContentRect, removing rect parameter, refactor unit tests. · 8fc23eb9
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94165
      
      Patch by Eric Penner <epenner@google.com> on 2012-08-22
      Reviewed by Adrienne Walker.
      
      Source/WebCore:
      
      Remove visible rect parameter from TiledLayerChromium functions. Passing a
      rect that is not the visible rect wouldn't make sense, and soon we might
      need further visibility information.
      
      In refactoring the unit tests, I removed texture manager from all tests
      and put it in the test class. I also made some utility functions to
      simulate the commit flow and remove tons of boilerplate code. I refactored
      about half the unit tests to use the utility functions.
      
      Refactored tests.
      
      * platform/graphics/chromium/ContentLayerChromium.cpp:
      (WebCore::ContentLayerChromium::update):
      (WebCore::ContentLayerChromium::needMoreUpdates):
      * platform/graphics/chromium/ImageLayerChromium.cpp:
      (WebCore::ImageLayerChromium::update):
      * platform/graphics/chromium/TiledLayerChromium.cpp:
      (WebCore):
      (WebCore::TiledLayerChromium::setTexturePriorities):
      (WebCore::TiledLayerChromium::resetUpdateState):
      (WebCore::TiledLayerChromium::update):
      (WebCore::TiledLayerChromium::needsIdlePaint):
      (WebCore::TiledLayerChromium::idlePaintRect):
      * platform/graphics/chromium/TiledLayerChromium.h:
      (TiledLayerChromium):
      
      Source/WebKit/chromium:
      
      Refactored tests to remove lots of boilerplate code.
      
      * tests/CCTiledLayerTestCommon.cpp:
      * tests/CCTiledLayerTestCommon.h:
      (FakeTiledLayerChromium):
      * tests/TiledLayerChromiumTest.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126340 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8fc23eb9
    • commit-queue@webkit.org's avatar
      [BlackBerry] Make all pickers non-zoomable · 34f3ade6
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94729
      
      Patch by Crystal Zhang <haizhang@rim.com> on 2012-08-22
      Reviewed by Antonio Gomes.
      
      Move HTML header initialization to PagePopupBlackBerry as that part are all the same, and make all pickers non-zoomable.
      
      * Api/WebPage.cpp:
      (BlackBerry::WebKit::WebPagePrivate::screenSize):
      (WebKit):
      * Api/WebPage_p.h:
      (WebPagePrivate):
      * WebCoreSupport/DatePickerClient.cpp:
      (WebCore::DatePickerClient::generateHTML):
      (WebCore::DatePickerClient::writeDocument):
      * WebCoreSupport/PagePopupBlackBerry.cpp:
      (WebCore::PagePopupBlackBerry::init):
      (WebCore::PagePopupBlackBerry::generateHTML):
      (WebCore):
      * WebCoreSupport/PagePopupBlackBerry.h:
      (PagePopupBlackBerry):
      * WebCoreSupport/SelectPopupClient.cpp:
      (WebCore::SelectPopupClient::generateHTML):
      (WebCore::SelectPopupClient::writeDocument):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126338 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      34f3ade6
    • commit-queue@webkit.org's avatar
      Skipping css3/flexbox/flexitem.html. · 5a88c751
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94723.
      
      Patch by Mark Lam <mark.lam@apple.com> on 2012-08-22
      Reviewed by Simon Fraser.
      
      * platform/mac/Skipped:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5a88c751
    • commit-queue@webkit.org's avatar
      [BlackBerry] Add a check to filter out cookies that tries to set the · 1082c3de
      commit-queue@webkit.org authored
      domain to a top level domain
      https://bugs.webkit.org/show_bug.cgi?id=94722
      
      Patch by Otto Derek Cheung <otcheung@rim.com> on 2012-08-22
      Reviewed by Rob Buis.
      
      Adding conditions to check whether a cookie domain is a top level domain.
      If it is, throw it out when parsing.
      
      Manual Testing by trying to insert a cookie with an invalid domain
      using web-inspector. (ex: when on news.yahoo.com.hk, try to document.
      cookie="test1=seeifthiscookieexist; domain=.com.hk")
      
      PR121622
      
      * platform/blackberry/CookieParser.cpp:
      WebCore::CookieParser::parseOneCookie):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126336 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1082c3de
    • rwlbuis@webkit.org's avatar
      Remove RenderBlock::paintEllipsisBoxes · 3a8e2007
      rwlbuis@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94709
      
      Reviewed by Eric Seidel.
      
      Remove unused method.
      
      No change in functionality, no new tests.
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::paintFloats):
      * rendering/RenderBlock.h:
      (RenderBlock):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126335 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3a8e2007
    • rniwa@webkit.org's avatar
      Merge TestExpectationSerializer into TestExpectationLine · b1eb092a
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94638
      
      Reviewed by Dimitri Glazkov.
      
      Moved all methods except, list_to_string which was moved to TestExpectations
      from TestExpectationSerializer to TestExpectationLine and removed TestExpectationSerializer.
      
      * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor_unittest.py:
      (TestExpectationEditorTests.assert_remove_roundtrip):
      (TestExpectationEditorTests.assert_update_roundtrip):
      * Scripts/webkitpy/layout_tests/models/test_expectations.py:
      (ParseError.__repr__):
      (TestExpectationLine):
      (TestExpectationLine.create_passing_expectation):
      (TestExpectationLine.to_string): Moved from TestExpectationSerializer.
      (TestExpectationLine.to_csv): Ditto.
      (TestExpectationLine._serialize_parsed_expectations): Ditto.
      (TestExpectationLine._serialize_parsed_modifiers): Ditto.
      (TestExpectationLine._format_line):
      (TestExpectations.remove_configuration_from_test):
      (TestExpectations.remove_rebaselined_tests):
      (TestExpectations.add_skipped_tests):
      (TestExpectations):
      (TestExpectations.list_to_string): Moved from TestExpectationSerializer.
      (TestExpectations.list_to_string.serialize):
      (TestExpectations.list_to_string.nones_out):
      * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
      (TestExpectationSerializationTests): Renamed from TestExpectationSerializerTests.
      (TestExpectationSerializationTests.__init__):
      (TestExpectationSerializationTests.assert_round_trip):
      (TestExpectationSerializationTests.assert_list_round_trip):
      (TestExpectationSerializationTests.test_unparsed_to_string):
      (TestExpectationSerializationTests.test_unparsed_list_to_string):
      (TestExpectationSerializationTests.test_parsed_to_string):
      (TestExpectationSerializationTests.test_serialize_parsed_expectations):
      (TestExpectationSerializationTests.test_serialize_parsed_modifier_string):
      (TestExpectationSerializationTests.test_format_line):
      (TestExpectationSerializationTests.test_reconstitute_only_these):
      * Scripts/webkitpy/tool/commands/expectations.py:
      (OptimizeExpectations.execute):
      * Scripts/webkitpy/tool/commands/queries.py:
      (PrintExpectations.execute):
      (PrintExpectations._format_lines):
      * Scripts/webkitpy/tool/servers/gardeningserver.py:
      (GardeningExpectationsUpdater.update_expectations):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126334 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b1eb092a
    • tommyw@google.com's avatar
      MediaStream API: Introduce RTCSessionDescription · fd61222d
      tommyw@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=93119
      
      Reviewed by Adam Barth.
      
      Source/WebCore:
      
      This patch introduces RTCSessionDescription together with its
      corresponding WebCore/platform representation.
      
      Test: fast/mediastream/RTCSessionDescription.html
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * Modules/mediastream/DOMWindowMediaStream.idl:
      * Modules/mediastream/RTCSessionDescription.cpp: Added.
      (WebCore):
      (WebCore::RTCSessionDescription::create):
      (WebCore::RTCSessionDescription::RTCSessionDescription):
      (WebCore::RTCSessionDescription::~RTCSessionDescription):
      (WebCore::RTCSessionDescription::type):
      (WebCore::RTCSessionDescription::setType):
      (WebCore::RTCSessionDescription::sdp):
      (WebCore::RTCSessionDescription::setSdp):
      (WebCore::RTCSessionDescription::descriptor):
      * Modules/mediastream/RTCSessionDescription.h: Added.
      (WebCore):
      (RTCSessionDescription):
      * Modules/mediastream/RTCSessionDescription.idl: Added.
      * WebCore.gypi:
      * platform/mediastream/RTCSessionDescriptionDescriptor.cpp: Added.
      (WebCore):
      (WebCore::RTCSessionDescriptionDescriptor::create):
      (WebCore::RTCSessionDescriptionDescriptor::RTCSessionDescriptionDescriptor):
      (WebCore::RTCSessionDescriptionDescriptor::~RTCSessionDescriptionDescriptor):
      * platform/mediastream/RTCSessionDescriptionDescriptor.h: Added.
      (WebCore):
      (RTCSessionDescriptionDescriptor):
      (WebCore::RTCSessionDescriptionDescriptor::type):
      (WebCore::RTCSessionDescriptionDescriptor::setType):
      (WebCore::RTCSessionDescriptionDescriptor::sdp):
      (WebCore::RTCSessionDescriptionDescriptor::setSdp):
      
      LayoutTests:
      
      * fast/mediastream/RTCSessionDescription-expected.txt: Added.
      * fast/mediastream/RTCSessionDescription.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126333 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fd61222d
    • aelias@chromium.org's avatar
      Unreviewed, add aelias@chromium.org to committers · 46ac0b8b
      aelias@chromium.org authored
      I (aelias@chromium.org) have been approved for commit access and Apple
      has confirmed receipt of my committer agreement.
      
      * Scripts/webkitpy/common/config/committers.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126332 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      46ac0b8b
    • victor@rosedu.org's avatar
      DOM manipulation crashes the browser · cc779edc
      victor@rosedu.org authored
      Creating a DOM track element by script and changing the mode crashes
      results in a browser crash.
      https://bugs.webkit.org/show_bug.cgi?id=94628
      
      Reviewed by Eric Carlson.
      
      Source/WebCore:
      
      Simple fix that creates the text track cue list in case of mode change.
      
      Test: media/track/track-element-dom-change-crash.html
      
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::textTrackModeChanged):
      
      LayoutTests:
      
      * media/track/track-element-dom-change-crash-expected.txt: Added.
      * media/track/track-element-dom-change-crash.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126331 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cc779edc
    • rniwa@webkit.org's avatar
      Microdata build fix. · 4e369c88
      rniwa@webkit.org authored
      * html/HTMLPropertiesCollection.h:
      (WebCore::HTMLPropertiesCollection::updatePropertyCache):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4e369c88
    • zandobersek@gmail.com's avatar
      Unreviewed GTK gardening. · 578967b3
      zandobersek@gmail.com authored
      Adding platform-specific baseline for css3/flexbox/flexitem.html that's
      required after r126257.
      
      Removing failure expectation for fast/forms/range/range-hit-test-with-padding.html
      after the test was refactored in r126252 and is now passing.
      
      Skipping two more failing tests that take too long to fail.
      
      * platform/gtk/TestExpectations:
      * platform/gtk/css3/flexbox: Added.
      * platform/gtk/css3/flexbox/flexitem-expected.txt: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      578967b3
    • tommyw@google.com's avatar
      MediaStream API: Introduce RTCIceCandidate · ab240673
      tommyw@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=93117
      
      Reviewed by Adam Barth.
      
      Source/WebCore:
      
      This patch introduces RTCIceCandidate together with its corresponding
      WebCore/platform representation.
      
      Test: fast/mediastream/RTCIceCandidate.html
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * Modules/mediastream/DOMWindowMediaStream.idl:
      * Modules/mediastream/RTCIceCandidate.cpp: Added.
      (WebCore):
      (WebCore::RTCIceCandidate::create):
      (WebCore::RTCIceCandidate::RTCIceCandidate):
      (WebCore::RTCIceCandidate::~RTCIceCandidate):
      (WebCore::RTCIceCandidate::candidate):
      (WebCore::RTCIceCandidate::sdpMid):
      (WebCore::RTCIceCandidate::sdpMLineIndex):
      (WebCore::RTCIceCandidate::descriptor):
      * Modules/mediastream/RTCIceCandidate.h: Added.
      (WebCore):
      (RTCIceCandidate):
      * Modules/mediastream/RTCIceCandidate.idl: Added.
      * WebCore.gypi:
      * platform/mediastream/RTCIceCandidateDescriptor.cpp: Added.
      (WebCore):
      (WebCore::RTCIceCandidateDescriptor::create):
      (WebCore::RTCIceCandidateDescriptor::RTCIceCandidateDescriptor):
      (WebCore::RTCIceCandidateDescriptor::~RTCIceCandidateDescriptor):
      * platform/mediastream/RTCIceCandidateDescriptor.h: Added.
      (WebCore):
      (RTCIceCandidateDescriptor):
      (WebCore::RTCIceCandidateDescriptor::candidate):
      (WebCore::RTCIceCandidateDescriptor::sdpMid):
      (WebCore::RTCIceCandidateDescriptor::sdpMLineIndex):
      
      LayoutTests:
      
      * fast/mediastream/RTCIceCandidate-expected.txt: Added.
      * fast/mediastream/RTCIceCandidate.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126328 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ab240673
    • commit-queue@webkit.org's avatar
      [chromium] Remove WebFrame::setSelectionToRange · cab36590
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=94685
      
      Patch by Iain Merrick <husky@chromium.org> on 2012-08-22
      Reviewed by Adam Barth.
      
      It has basically the same functionality as WebFrame::selectRange.
      The calling code was removed in Chromium patch 152608.
      
      * public/WebFrame.h:
      (WebFrame):
      * src/WebFrameImpl.cpp:
      * src/WebFrameImpl.h:
      (WebFrameImpl):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126327 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cab36590
    • mrowe@apple.com's avatar
      <http://webkit.org/b/94679> WebCore scrolling thread leaks objects due to them... · 14c96423
      mrowe@apple.com authored
      <http://webkit.org/b/94679> WebCore scrolling thread leaks objects due to them being autoreleased without any autorelease pool in place
      
      Reviewed by Dan Bernstein.
      
      * page/scrolling/mac/ScrollingThreadMac.mm:
      (WebCore::ScrollingThread::threadRunLoopSourceCallback): Ensure that an autorelease pool is in place when
      dispatching functions on the scrolling thread.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126326 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      14c96423
    • psolanki@apple.com's avatar
      Failure to dispatch delegate callbacks if resource load fails synchronously · 6faa2aea
      psolanki@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=94644
      
      Reviewed by Antti Koivisto.
      
      Resource loads can be triggered by layout after document load is
      complete but before we have dispatched didFinishLoadForFrame callback.
      In such cases, if the load fails synchronously due to the client
      returning 0 from willSendRequest callback, we would fail to call
      didFinishLoading. this was fixed for Font resources in r122446 for bug
      91018. This fixes it in the general case by having CachedResourceLoader
      call FrameLoader::checkLoadComplete() when it is done loading all
      resources.
      
      * css/CSSFontSelector.cpp:
      (WebCore::CSSFontSelector::beginLoadTimerFired):
      * loader/cache/CachedResourceLoader.cpp:
      (WebCore::CachedResourceLoader::decrementRequestCount):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6faa2aea