WebKit-https.git
7 years agoUnreviewed, updated my email information.
michael.bruning@digia.com [Tue, 29 Jan 2013 11:58:30 +0000 (11:58 +0000)]
Unreviewed, updated my email information.

* Scripts/webkitpy/common/config/committers.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141095 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWeb Inspector: [CPU Profile] Taking profile crashes renderer.
commit-queue@webkit.org [Tue, 29 Jan 2013 11:55:43 +0000 (11:55 +0000)]
Web Inspector: [CPU Profile] Taking profile crashes renderer.
https://bugs.webkit.org/show_bug.cgi?id=108072

Patch by Eugene Klyuchnikov <eustas@chromium.org> on 2013-01-29
Reviewed by Yury Semikhatsky.

Source/WebCore:

Test: inspector/profiler/cpu-profiler-agent-crash-on-start.html

Fixed null-pointer access.

* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::start): Fixed null-pointer access.
(WebCore::ScriptProfiler::stop): Ditto.

LayoutTests:

Added test to check that ProfilerAgent start/stop doesn't crash.

* inspector/profiler/cpu-profiler-agent-crash-on-start-expected.txt: Added.
* inspector/profiler/cpu-profiler-agent-crash-on-start.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141094 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoREGRESSION: ChildrenAffectedBy flags lost between siblings which have child elements...
allan.jensen@digia.com [Tue, 29 Jan 2013 11:36:30 +0000 (11:36 +0000)]
REGRESSION: ChildrenAffectedBy flags lost between siblings which have child elements sharing style
https://bugs.webkit.org/show_bug.cgi?id=105672

Reviewed by Andreas Kling.

Source/WebCore:

Change in how childrenAffectedBy bits were stored made it easier to trigger an issue where childrenAffectedBy bits
were not set due to sharing of styles between cousin elements.

This patch fixes the issue by not sharing styles from children with parents who prevent sharing.

Tests: fast/selectors/cousin-stylesharing-adjacent-selector.html
       fast/selectors/cousin-stylesharing-last-child-selector.html

* css/StyleResolver.cpp:
(WebCore::parentElementPreventsSharing):
(WebCore::StyleResolver::locateCousinList):
* dom/Element.cpp:
(WebCore::Element::hasFlagsSetDuringStylingOfChildren):
* dom/Element.h:
(Element):

LayoutTests:

Two test cases by Philippe Wittenbergh that triggers the issue.

* fast/selectors/cousin-stylesharing-adjacent-selector-expected.html: Added.
* fast/selectors/cousin-stylesharing-adjacent-selector.html: Added.
* fast/selectors/cousin-stylesharing-last-child-selector-expected.html: Added.
* fast/selectors/cousin-stylesharing-last-child-selector.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141093 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Qt] Remove misspelled ENABLE(SPEECH_INPUT) guard
commit-queue@webkit.org [Tue, 29 Jan 2013 11:32:12 +0000 (11:32 +0000)]
[Qt] Remove misspelled ENABLE(SPEECH_INPUT) guard
https://bugs.webkit.org/show_bug.cgi?id=105683

Patch by Laszlo Gombos <l.gombos@samsung.com> on 2013-01-29
Reviewed by Simon Hausmann.

The ENABLE(SPEECH_INPUT) guard is only used in one location
in the source tree and as such it is always 0.

I believe that this guard is a left over and is not needed any more
as the code guarded is not guarded anywhere else.

* WebProcess/qt/WebProcessQt.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141092 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWeb Inspector: [Regression] Search across all sources is broken.
vsevik@chromium.org [Tue, 29 Jan 2013 11:08:14 +0000 (11:08 +0000)]
Web Inspector: [Regression] Search across all sources is broken.
https://bugs.webkit.org/show_bug.cgi?id=108157

Reviewed by Pavel Feldman.

Source/WebCore:

Test: http/tests/inspector/search/scripts-search-scope.html

* inspector/front-end/ScriptsSearchScope.js:
(WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):

LayoutTests:

* http/tests/inspector/search/scripts-search-scope-expected.txt: Added.
* http/tests/inspector/search/scripts-search-scope.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141091 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoIDBFactory::webkitGetDatabaseNames should raise DOMExceptions.
mkwst@chromium.org [Tue, 29 Jan 2013 11:06:00 +0000 (11:06 +0000)]
IDBFactory::webkitGetDatabaseNames should raise DOMExceptions.
https://bugs.webkit.org/show_bug.cgi?id=108154

Reviewed by Jochen Eisinger.

In order to properly support blocking third-party IndexedDB usage,
open(), getDatabaseNames(), and deleteDatabase() should all throw
SECURITY_ERR when used in a blocked third-party context. That's possible
now for open() and deleteDatabase(), but getDatabaseNames() can't
currently raise exceptions.

This patch adjusts the IDL file and implementation. No exceptions are
currently thrown, but that will change as soon as wkbug.com/94171 lands.

* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::getDatabaseNames):
* Modules/indexeddb/IDBFactory.h:
(IDBFactory):
* Modules/indexeddb/IDBFactory.idl:
    Add "raises (DOMException)" to getDatabaseNames, and adjust the
    implementation to match.
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
    Pass in an ExceptionCode when calling getDatabaseNames, and handle
    possible exceptions.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141090 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Qt] Implement IncrementalSweeper and HeapTimer
allan.jensen@digia.com [Tue, 29 Jan 2013 10:51:39 +0000 (10:51 +0000)]
[Qt] Implement IncrementalSweeper and HeapTimer
https://bugs.webkit.org/show_bug.cgi?id=103996

Reviewed by Simon Hausmann.

Implements the incremental sweeping garbage collection for the Qt platform.

* heap/HeapTimer.cpp:
(JSC::HeapTimer::HeapTimer):
(JSC::HeapTimer::~HeapTimer):
(JSC::HeapTimer::timerEvent):
(JSC::HeapTimer::synchronize):
(JSC::HeapTimer::invalidate):
(JSC::HeapTimer::didStartVMShutdown):
* heap/HeapTimer.h:
(HeapTimer):
* heap/IncrementalSweeper.cpp:
(JSC::IncrementalSweeper::IncrementalSweeper):
(JSC::IncrementalSweeper::scheduleTimer):
* heap/IncrementalSweeper.h:
(IncrementalSweeper):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141089 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRevert an accidentally changed line of EventHander::handleMousePressEvent(PlatformMou...
hayato@chromium.org [Tue, 29 Jan 2013 10:15:06 +0000 (10:15 +0000)]
Revert an accidentally changed line of EventHander::handleMousePressEvent(PlatformMouseEvent&) in r135650.
https://bugs.webkit.org/show_bug.cgi?id=108165

Reviewed by Hajime Morita.

No new tests.

* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141088 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, rolling out r140959 and r140977.
kadam@inf.u-szeged.hu [Tue, 29 Jan 2013 10:01:51 +0000 (10:01 +0000)]
Unreviewed, rolling out r140959 and r140977.
http://trac.webkit.org/changeset/140959
http://trac.webkit.org/changeset/140977
https://bugs.webkit.org/show_bug.cgi?id=108171

Reverting rebaseline because after r141067 the expected
results should be the old values. (Requested by kadam on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-01-29

* platform/qt-5.0-wk1/compositing/absolute-inside-out-of-view-fixed-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/backing/no-backing-for-clip-overlap-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/bounds-in-flipped-writing-mode-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/clip-child-by-non-stacking-ancestor-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/filters/sw-shadow-overlaps-hw-layer-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/filters/sw-shadow-overlaps-hw-shadow-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/geometry/bounds-clipped-composited-child-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/geometry/bounds-clipped-composited-child-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/geometry/bounds-ignores-hidden-dynamic-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/geometry/bounds-ignores-hidden-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/geometry/clip-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/geometry/clip-inside-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/geometry/composited-in-columns-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/geometry/composited-in-columns-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/geometry/flipped-writing-mode-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/geometry/flipped-writing-mode-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/geometry/foreground-layer-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/geometry/foreground-layer-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/geometry/preserve-3d-switching-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/become-composited-nested-iframes-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/become-overlapped-iframe-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/composited-parent-iframe-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/connect-compositing-iframe-delayed-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/connect-compositing-iframe-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/connect-compositing-iframe2-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/connect-compositing-iframe3-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/enter-compositing-iframe-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/iframe-resize-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/overlapped-iframe-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/overlapped-iframe-iframe-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/overlapped-nested-iframes-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/iframes/scrolling-iframe-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/images/clip-on-directly-composited-image-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/animation-overlap-with-children-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/fixed-position-out-of-view-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/fixed-position-out-of-view-scaled-iframe-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/fixed-position-under-transform-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/fixed-position-under-transform-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/no-compositing-for-fixed-position-under-transform-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/overflow-scroll-overlap-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/overlap-animation-clipping-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/overlap-animation-container-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/overlap-child-layer-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/overlap-child-layer-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/overlap-transformed-layer-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/overlap-transformed-layer-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/rotate3d-overlap-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/stacking-context-overlap-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/layer-creation/stacking-context-overlap-nested-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/masks/mask-layer-size-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/repaint/resize-repaint-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/rtl/rtl-iframe-absolute-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/rtl/rtl-iframe-absolute-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/rtl/rtl-iframe-fixed-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/rtl/rtl-iframe-fixed-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/rtl/rtl-iframe-relative-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/rtl/rtl-iframe-relative-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/tiling/backface-preserve-3d-tiled-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/tiling/backface-preserve-3d-tiled-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/tiling/huge-layer-img-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/tiling/huge-layer-img-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/tiling/rotated-tiled-clamped-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/tiling/rotated-tiled-clamped-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/tiling/tiled-layer-resize-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/visibility/layer-visible-content-expected.png: Removed.
* platform/qt-5.0-wk1/compositing/visibility/layer-visible-content-expected.txt: Removed.
* platform/qt-5.0-wk1/compositing/visibility/visibility-image-layers-dynamic-expected.txt: Removed.
* platform/qt-5.0-wk1/css3/filters/composited-during-transition-layertree-expected.txt: Removed.
* platform/qt-5.0-wk1/css3/filters/filtered-compositing-descendant-expected.png: Removed.
* platform/qt-5.0-wk1/css3/filters/filtered-compositing-descendant-expected.txt: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141087 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFeatureObserver: Input types are counted unexpectedly in a page with Modernizr
tkent@chromium.org [Tue, 29 Jan 2013 10:01:24 +0000 (10:01 +0000)]
FeatureObserver: Input types are counted unexpectedly in a page with Modernizr
https://bugs.webkit.org/show_bug.cgi?id=108141

Reviewed by Kentaro Hara.

We don't want to record input type instantiation by Modernizr. Modernizr
creates input elements with these types, append it to document.body, and
render it with visibility:hidden. So, we record input types only when
they are attached without visibility:hidden.

No new tests. FeatureObserver is not testable by layout test.

* html/InputType.cpp:
(WebCore::InputType::create): Remove FeatureObserver::observe
callsites. They are moved to TextInputType::attach.
(WebCore::InputType::observeFeatureIfVisible):
Added. A helper for attach().
* html/InputType.h:
(InputType): Add observeFeatureIfVisible.

* html/ColorInputType.cpp:
(WebCore::ColorInputType::create):
Remove a FeatureObserver::observe callsite.
(WebCore::ColorInputType::attach):
Calls FetureObserver through InputType::observeFeatureIfVisible.
* html/ColorInputType.h:
(ColorInputType): Declare attach.
* html/DateInputType.cpp: Ditto.
* html/DateInputType.h: Ditto.
* html/DateTimeInputType.cpp: Ditto.
* html/DateTimeInputType.h: Ditto.
* html/DateTimeLocalInputType.cpp: Ditto.
* html/DateTimeLocalInputType.h: Ditto.
* html/MonthInputType.cpp: Ditto.
* html/MonthInputType.h: Ditto.
* html/RangeInputType.cpp: Ditt
* html/RangeInputType.h: Ditto.
* html/TimeInputType.cpp: Ditto.
* html/TimeInputType.h: Ditto.
* html/WeekInputType.cpp: Ditto.
* html/WeekInputType.h: Ditto.

* html/TextFieldInputType.h:
(TextFieldInputType):
Make attach protected in order that sub classes can call it.
* html/EmailInputType.cpp:
(WebCore::EmailInputType::create):
Remove a FeatureObserver::observe callsite.
(WebCore::EmailInputType::attach): Calls FetureObserver through
InputType::observeFeatureIfVisible after TextFieldInptuType::attach.
* html/EmailInputType.h:
(EmailInputType):Declare attach.
* html/NumberInputType.cpp: Ditto.
* html/NumberInputType.h: Ditto.
* html/SearchInputType.cpp: Ditto.
* html/SearchInputType.h: Ditto.
* html/TelephoneInputType.cpp: Ditto.
* html/TelephoneInputType.h: Ditto.
* html/URLInputType.cpp: Ditto.
* html/URLInputType.h: Ditto.

* html/TextInputType.cpp:
(WebCore::TextInputType::attach):
Move the code for type fallback from InputType::create.
* html/TextInputType.h:
(TextInputType): Declare attach.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141086 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Qt][WK1] Reflect recursion limit and loop checks also for list conversions.
michael.bruning@digia.com [Tue, 29 Jan 2013 09:41:31 +0000 (09:41 +0000)]
[Qt][WK1] Reflect recursion limit and loop checks also for list conversions.
https://bugs.webkit.org/show_bug.cgi?id=107950

Reviewed by Allan Sandfeld Jensen.

No new tests, bugfix, no behavioral change.

Make conversions from Javascript values to QLists take the maximum
recursion depth into consideration and check for objects that were
already visited. Otherwise, the conversion may recurse until the
stack is full and then cause a segmentation fault.

* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertToList):
(JSC::Bindings::convertValueToQVariant):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141085 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed GTK gardening.
zandobersek@gmail.com [Tue, 29 Jan 2013 09:37:14 +0000 (09:37 +0000)]
Unreviewed GTK gardening.

* platform/gtk/TestExpectations: Added failure/flaky crash expectations for two layout tests.
* platform/gtk/fast/js/regress: Added.
* platform/gtk/fast/js/regress/integer-modulo-expected.txt: Added the baseline after r141031.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141084 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoClean up interface to ElementShadow
esprehn@chromium.org [Tue, 29 Jan 2013 09:35:35 +0000 (09:35 +0000)]
Clean up interface to ElementShadow
https://bugs.webkit.org/show_bug.cgi?id=108158

Reviewed by Hajime Morita.

Lots of general clean up to ElementShadow removing unused headers,
adding a create() method that returns a PassOwnPtr, adding missing const,
and moving short inline methods into the class definition so it's easier
to understand what methods do what.

No new tests, just refactoring.

* dom/Element.cpp:
(WebCore::Element::ensureShadow):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::childNeedsStyleRecalc):
(WebCore::ElementShadow::needsStyleRecalc):
* dom/ElementShadow.h:
(WebCore::ElementShadow::create):
(ElementShadow):
(WebCore::ElementShadow::~ElementShadow):
(WebCore::ElementShadow::youngestShadowRoot):
(WebCore::ElementShadow::oldestShadowRoot):
(WebCore::ElementShadow::distributor):
(WebCore::ElementShadow::ElementShadow):
(WebCore::ElementShadow::containingShadow):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141083 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[chromium] delete DRTTestRunner
jochen@chromium.org [Tue, 29 Jan 2013 09:30:08 +0000 (09:30 +0000)]
[chromium] delete DRTTestRunner
https://bugs.webkit.org/show_bug.cgi?id=108082

Reviewed by Adam Barth.

* DumpRenderTree/DumpRenderTree.gypi:
* DumpRenderTree/chromium/DRTTestRunner.cpp: Removed.
* DumpRenderTree/chromium/DRTTestRunner.h: Removed.
* DumpRenderTree/chromium/TestRunner/public/WebTestDelegate.h:
(WebTestRunner::WebTestDelegate::testFinished):
(WebTestRunner::WebTestDelegate::testTimedOut):
(WebTestRunner::WebTestDelegate::isBeingDebugged):
(WebTestRunner::WebTestDelegate::layoutTestTimeout):
(WebTestRunner::WebTestDelegate::closeRemainingWindows):
(WebTestRunner::WebTestDelegate::navigationEntryCount):
(WebTestRunner::WebTestDelegate::windowCount):
(WebTestRunner::WebTestDelegate::setCustomPolicyDelegate):
(WebTestRunner::WebTestDelegate::waitForPolicyDelegate):
(WebTestRunner::WebTestDelegate::goToOffset):
(WebTestRunner::WebTestDelegate::reload):
(WebTestRunner::WebTestDelegate::loadURLForFrame):
* DumpRenderTree/chromium/TestRunner/public/WebTestRunner.h:
(WebTestRunner::WebTestRunner::policyDelegateDone):
(WebTestRunner::WebTestRunner::shouldInterceptPostMessage):
* DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp:
(WebTestRunner::TestRunner::WorkQueue::~WorkQueue):
(WebTestRunner):
(WebTestRunner::TestRunner::WorkQueue::processWorkSoon):
(WebTestRunner::TestRunner::WorkQueue::processWork):
(WebTestRunner::TestRunner::WorkQueue::reset):
(WebTestRunner::TestRunner::WorkQueue::addWork):
(WebTestRunner::TestRunner::TestRunner):
(WebTestRunner::TestRunner::reset):
(WebTestRunner::TestRunner::policyDelegateDone):
(WebTestRunner::TestRunner::shouldInterceptPostMessage):
(WebTestRunner::TestRunner::waitUntilDone):
(WebTestRunner::TestRunner::notifyDone):
(WebTestRunner::TestRunner::completeNotifyDone):
(WorkItemBackForward):
(WebTestRunner::WorkItemBackForward::WorkItemBackForward):
(WebTestRunner::WorkItemBackForward::run):
(WebTestRunner::TestRunner::queueBackNavigation):
(WebTestRunner::TestRunner::queueForwardNavigation):
(WorkItemReload):
(WebTestRunner::WorkItemReload::run):
(WebTestRunner::TestRunner::queueReload):
(WorkItemLoadingScript):
(WebTestRunner::WorkItemLoadingScript::WorkItemLoadingScript):
(WebTestRunner::WorkItemLoadingScript::run):
(WorkItemNonLoadingScript):
(WebTestRunner::WorkItemNonLoadingScript::WorkItemNonLoadingScript):
(WebTestRunner::WorkItemNonLoadingScript::run):
(WebTestRunner::TestRunner::queueLoadingScript):
(WebTestRunner::TestRunner::queueNonLoadingScript):
(WorkItemLoad):
(WebTestRunner::WorkItemLoad::WorkItemLoad):
(WebTestRunner::WorkItemLoad::run):
(WebTestRunner::TestRunner::queueLoad):
(WorkItemLoadHTMLString):
(WebTestRunner::WorkItemLoadHTMLString::WorkItemLoadHTMLString):
(WebTestRunner::WorkItemLoadHTMLString::run):
(WebTestRunner::TestRunner::queueLoadHTMLString):
(WebTestRunner::TestRunner::locationChangeDone):
(WebTestRunner::TestRunner::windowCount):
(WebTestRunner::TestRunner::setCloseRemainingWindowsWhenComplete):
(WebTestRunner::TestRunner::setCustomPolicyDelegate):
(WebTestRunner::TestRunner::waitForPolicyDelegate):
* DumpRenderTree/chromium/TestRunner/src/TestRunner.h:
(TestRunner):
(WorkItem):
(WebTestRunner::TestRunner::WorkItem::~WorkItem):
(WorkQueue):
(WebTestRunner::TestRunner::WorkQueue::WorkQueue):
(WebTestRunner::TestRunner::WorkQueue::setFrozen):
(WebTestRunner::TestRunner::WorkQueue::isEmpty):
(WebTestRunner::TestRunner::WorkQueue::taskList):
* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::initialize):
(TestShell::runFileTest):
(TestShell::loadURL):
(TestShell::createNewWindow):
* DumpRenderTree/chromium/TestShell.h:
(TestShell::testRunner):
(TestShell):
* DumpRenderTree/chromium/WebViewHost.cpp:
(WebViewHost::testFinished):
(WebViewHost::testTimedOut):
(WebViewHost::isBeingDebugged):
(WebViewHost::layoutTestTimeout):
(WebViewHost::closeRemainingWindows):
(WebViewHost::navigationEntryCount):
(WebViewHost::windowCount):
(WebViewHost::setCustomPolicyDelegate):
(WebViewHost::waitForPolicyDelegate):
(WebViewHost::goToOffset):
(WebViewHost::reload):
(WebViewHost::loadURLForFrame):
(WebViewHost::shutdown):
(WebViewHost::testRunner):
* DumpRenderTree/chromium/WebViewHost.h:
(WebTestRunner):
(WebViewHost):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141082 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium] Disabling WebFrameTest.DisambiguationPopupMobileSite because WebFrameTest...
keishi@webkit.org [Tue, 29 Jan 2013 09:21:22 +0000 (09:21 +0000)]
[Chromium] Disabling WebFrameTest.DisambiguationPopupMobileSite because WebFrameTest is still failing after r141073.

Unreviewed. Gardening.

* tests/WebFrameTest.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141081 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, rolling out r141064.
commit-queue@webkit.org [Tue, 29 Jan 2013 09:16:00 +0000 (09:16 +0000)]
Unreviewed, rolling out r141064.
http://trac.webkit.org/changeset/141064
https://bugs.webkit.org/show_bug.cgi?id=108166

[Chromium] WebFrameTest.DivScrollIntoEditableTest is failing
on WinXP. (Requested by keishi on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-01-29

* tests/WebFrameTest.cpp:
* tests/data/get_scale_for_zoom_into_editable_test.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141080 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed build fix after r141024.
zandobersek@gmail.com [Tue, 29 Jan 2013 08:58:58 +0000 (08:58 +0000)]
Unreviewed build fix after r141024.
Adding new files to the build.

* GNUmakefile.am:
* GNUmakefile.list.am:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141079 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[WK2] Fix unused parameter build warning
commit-queue@webkit.org [Tue, 29 Jan 2013 08:55:08 +0000 (08:55 +0000)]
[WK2] Fix unused parameter build warning
https://bugs.webkit.org/show_bug.cgi?id=108156

Patch by Jinwoo Song <jinwoo7.song@samsung.com> on 2013-01-29
Reviewed by Kentaro Hara.

Comment out the unused parameters to fix the build warnings.

* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/PluginProxy.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141078 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium] Marking icon-0colors.html as crashing.
keishi@webkit.org [Tue, 29 Jan 2013 08:51:44 +0000 (08:51 +0000)]
[Chromium] Marking icon-0colors.html as crashing.

Unreviewed. Gardening.

* platform/chromium/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141077 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoStore ShadowRootType inside the bitfield
esprehn@chromium.org [Tue, 29 Jan 2013 08:33:33 +0000 (08:33 +0000)]
Store ShadowRootType inside the bitfield
https://bugs.webkit.org/show_bug.cgi?id=108147

Reviewed by Dimitri Glazkov.

We can simplify the interface to ShadowRoot by storing the enum value of
ShadowRootType inside the bitfield like we do in the rest of WebCore.

No new tests, just refactoring.

* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::create):
* dom/ShadowRoot.h:
(WebCore::ShadowRoot::type):
(ShadowRoot):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141075 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium] Disabling WebFrameTest.DisambiguationPopup because it is failing.
keishi@webkit.org [Tue, 29 Jan 2013 08:30:09 +0000 (08:30 +0000)]
[Chromium] Disabling WebFrameTest.DisambiguationPopup because it is failing.

Unreviewed. Gardening.

* tests/WebFrameTest.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141073 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoREGRESSION(r141070): Broke debug build
jochen@chromium.org [Tue, 29 Jan 2013 08:18:54 +0000 (08:18 +0000)]
REGRESSION(r141070): Broke debug build
https://bugs.webkit.org/show_bug.cgi?id=108159

Unreviewed build fix.

* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpTokenizer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141071 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoHTMLDocumentParser should hold the HTMLToken using an OwnPtr
abarth@webkit.org [Tue, 29 Jan 2013 08:01:37 +0000 (08:01 +0000)]
HTMLDocumentParser should hold the HTMLToken using an OwnPtr
https://bugs.webkit.org/show_bug.cgi?id=107762

Reviewed by Eric Seidel.

Using an OwnPtr will let us detach the HTMLToken from the
HTMLDocumentParser and send it to the BackgroundHTMLParser for further
processing.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/CompactHTMLToken.h:
(CompactHTMLToken):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141070 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDFG should not use a graph that is a vector, Nodes shouldn't move after allocation...
fpizlo@apple.com [Tue, 29 Jan 2013 08:01:03 +0000 (08:01 +0000)]
DFG should not use a graph that is a vector, Nodes shouldn't move after allocation, and we should always refer to nodes by Node*
https://bugs.webkit.org/show_bug.cgi?id=106868

Reviewed by Oliver Hunt.

This adds a pool allocator for Nodes, and uses that instead of a Vector. Changes all
uses of Node& and NodeIndex to be simply Node*. Nodes no longer have an index except
for debugging (Node::index(), which is not guaranteed to be O(1)).

1% speed-up on SunSpider, presumably because this improves compile times.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* bytecode/DataFormat.h:
(JSC::dataFormatToString):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::initialize):
(JSC::DFG::AbstractState::booleanResult):
(JSC::DFG::AbstractState::execute):
(JSC::DFG::AbstractState::mergeStateAtTail):
(JSC::DFG::AbstractState::mergeToSuccessors):
(JSC::DFG::AbstractState::mergeVariableBetweenBlocks):
(JSC::DFG::AbstractState::dump):
* dfg/DFGAbstractState.h:
(DFG):
(JSC::DFG::AbstractState::forNode):
(AbstractState):
(JSC::DFG::AbstractState::speculateInt32Unary):
(JSC::DFG::AbstractState::speculateNumberUnary):
(JSC::DFG::AbstractState::speculateBooleanUnary):
(JSC::DFG::AbstractState::speculateInt32Binary):
(JSC::DFG::AbstractState::speculateNumberBinary):
(JSC::DFG::AbstractState::trySetConstant):
* dfg/DFGAbstractValue.h:
(AbstractValue):
* dfg/DFGAdjacencyList.h:
(JSC::DFG::AdjacencyList::AdjacencyList):
(JSC::DFG::AdjacencyList::initialize):
* dfg/DFGAllocator.h: Added.
(DFG):
(Allocator):
(JSC::DFG::Allocator::Region::size):
(JSC::DFG::Allocator::Region::headerSize):
(JSC::DFG::Allocator::Region::numberOfThingsPerRegion):
(JSC::DFG::Allocator::Region::data):
(JSC::DFG::Allocator::Region::isInThisRegion):
(JSC::DFG::Allocator::Region::regionFor):
(Region):
(JSC::DFG::::Allocator):
(JSC::DFG::::~Allocator):
(JSC::DFG::::allocate):
(JSC::DFG::::free):
(JSC::DFG::::freeAll):
(JSC::DFG::::reset):
(JSC::DFG::::indexOf):
(JSC::DFG::::allocatorOf):
(JSC::DFG::::bumpAllocate):
(JSC::DFG::::freeListAllocate):
(JSC::DFG::::allocateSlow):
(JSC::DFG::::freeRegionsStartingAt):
(JSC::DFG::::startBumpingIn):
* dfg/DFGArgumentsSimplificationPhase.cpp:
(JSC::DFG::ArgumentsSimplificationPhase::run):
(JSC::DFG::ArgumentsSimplificationPhase::observeBadArgumentsUse):
(JSC::DFG::ArgumentsSimplificationPhase::observeBadArgumentsUses):
(JSC::DFG::ArgumentsSimplificationPhase::observeProperArgumentsUse):
(JSC::DFG::ArgumentsSimplificationPhase::isOKToOptimize):
(JSC::DFG::ArgumentsSimplificationPhase::removeArgumentsReferencingPhantomChild):
* dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::originalArrayStructure):
(JSC::DFG::ArrayMode::alreadyChecked):
* dfg/DFGArrayMode.h:
(ArrayMode):
* dfg/DFGArrayifySlowPathGenerator.h:
(JSC::DFG::ArrayifySlowPathGenerator::ArrayifySlowPathGenerator):
* dfg/DFGBasicBlock.h:
(JSC::DFG::BasicBlock::node):
(JSC::DFG::BasicBlock::isInPhis):
(JSC::DFG::BasicBlock::isInBlock):
(BasicBlock):
* dfg/DFGBasicBlockInlines.h:
(DFG):
* dfg/DFGByteCodeParser.cpp:
(ByteCodeParser):
(JSC::DFG::ByteCodeParser::getDirect):
(JSC::DFG::ByteCodeParser::get):
(JSC::DFG::ByteCodeParser::setDirect):
(JSC::DFG::ByteCodeParser::set):
(JSC::DFG::ByteCodeParser::setPair):
(JSC::DFG::ByteCodeParser::injectLazyOperandSpeculation):
(JSC::DFG::ByteCodeParser::getLocal):
(JSC::DFG::ByteCodeParser::setLocal):
(JSC::DFG::ByteCodeParser::getArgument):
(JSC::DFG::ByteCodeParser::setArgument):
(JSC::DFG::ByteCodeParser::flushDirect):
(JSC::DFG::ByteCodeParser::getToInt32):
(JSC::DFG::ByteCodeParser::toInt32):
(JSC::DFG::ByteCodeParser::getJSConstantForValue):
(JSC::DFG::ByteCodeParser::getJSConstant):
(JSC::DFG::ByteCodeParser::getCallee):
(JSC::DFG::ByteCodeParser::getThis):
(JSC::DFG::ByteCodeParser::setThis):
(JSC::DFG::ByteCodeParser::isJSConstant):
(JSC::DFG::ByteCodeParser::isInt32Constant):
(JSC::DFG::ByteCodeParser::valueOfJSConstant):
(JSC::DFG::ByteCodeParser::valueOfInt32Constant):
(JSC::DFG::ByteCodeParser::constantUndefined):
(JSC::DFG::ByteCodeParser::constantNull):
(JSC::DFG::ByteCodeParser::one):
(JSC::DFG::ByteCodeParser::constantNaN):
(JSC::DFG::ByteCodeParser::cellConstant):
(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::insertPhiNode):
(JSC::DFG::ByteCodeParser::addVarArgChild):
(JSC::DFG::ByteCodeParser::addCall):
(JSC::DFG::ByteCodeParser::addStructureTransitionCheck):
(JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):
(JSC::DFG::ByteCodeParser::getPrediction):
(JSC::DFG::ByteCodeParser::getArrayModeAndEmitChecks):
(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::makeDivSafe):
(JSC::DFG::ByteCodeParser::ConstantRecord::ConstantRecord):
(ConstantRecord):
(JSC::DFG::ByteCodeParser::PhiStackEntry::PhiStackEntry):
(PhiStackEntry):
(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::emitFunctionChecks):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::setIntrinsicResult):
(JSC::DFG::ByteCodeParser::handleMinMax):
(JSC::DFG::ByteCodeParser::handleIntrinsic):
(JSC::DFG::ByteCodeParser::handleGetByOffset):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::getScope):
(JSC::DFG::ByteCodeParser::parseResolveOperations):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::processPhiStack):
(JSC::DFG::ByteCodeParser::linkBlock):
(JSC::DFG::ByteCodeParser::parseCodeBlock):
(JSC::DFG::ByteCodeParser::parse):
* dfg/DFGCFAPhase.cpp:
(JSC::DFG::CFAPhase::performBlockCFA):
* dfg/DFGCFGSimplificationPhase.cpp:
(JSC::DFG::CFGSimplificationPhase::run):
(JSC::DFG::CFGSimplificationPhase::keepOperandAlive):
(JSC::DFG::CFGSimplificationPhase::fixPossibleGetLocal):
(JSC::DFG::CFGSimplificationPhase::fixPhis):
(JSC::DFG::CFGSimplificationPhase::removePotentiallyDeadPhiReference):
(JSC::DFG::CFGSimplificationPhase::OperandSubstitution::OperandSubstitution):
(JSC::DFG::CFGSimplificationPhase::OperandSubstitution::dump):
(OperandSubstitution):
(JSC::DFG::CFGSimplificationPhase::skipGetLocal):
(JSC::DFG::CFGSimplificationPhase::recordNewTarget):
(JSC::DFG::CFGSimplificationPhase::fixTailOperand):
(JSC::DFG::CFGSimplificationPhase::mergeBlocks):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::canonicalize):
(JSC::DFG::CSEPhase::endIndexForPureCSE):
(JSC::DFG::CSEPhase::pureCSE):
(JSC::DFG::CSEPhase::constantCSE):
(JSC::DFG::CSEPhase::weakConstantCSE):
(JSC::DFG::CSEPhase::getCalleeLoadElimination):
(JSC::DFG::CSEPhase::getArrayLengthElimination):
(JSC::DFG::CSEPhase::globalVarLoadElimination):
(JSC::DFG::CSEPhase::scopedVarLoadElimination):
(JSC::DFG::CSEPhase::globalVarWatchpointElimination):
(JSC::DFG::CSEPhase::globalVarStoreElimination):
(JSC::DFG::CSEPhase::scopedVarStoreElimination):
(JSC::DFG::CSEPhase::getByValLoadElimination):
(JSC::DFG::CSEPhase::checkFunctionElimination):
(JSC::DFG::CSEPhase::checkExecutableElimination):
(JSC::DFG::CSEPhase::checkStructureElimination):
(JSC::DFG::CSEPhase::structureTransitionWatchpointElimination):
(JSC::DFG::CSEPhase::putStructureStoreElimination):
(JSC::DFG::CSEPhase::getByOffsetLoadElimination):
(JSC::DFG::CSEPhase::putByOffsetStoreElimination):
(JSC::DFG::CSEPhase::getPropertyStorageLoadElimination):
(JSC::DFG::CSEPhase::checkArrayElimination):
(JSC::DFG::CSEPhase::getIndexedPropertyStorageLoadElimination):
(JSC::DFG::CSEPhase::getMyScopeLoadElimination):
(JSC::DFG::CSEPhase::getLocalLoadElimination):
(JSC::DFG::CSEPhase::setLocalStoreElimination):
(JSC::DFG::CSEPhase::performSubstitution):
(JSC::DFG::CSEPhase::eliminateIrrelevantPhantomChildren):
(JSC::DFG::CSEPhase::setReplacement):
(JSC::DFG::CSEPhase::eliminate):
(JSC::DFG::CSEPhase::performNodeCSE):
(JSC::DFG::CSEPhase::performBlockCSE):
(CSEPhase):
* dfg/DFGCommon.cpp: Added.
(DFG):
(JSC::DFG::NodePointerTraits::dump):
* dfg/DFGCommon.h:
(DFG):
(JSC::DFG::NodePointerTraits::defaultValue):
(NodePointerTraits):
(JSC::DFG::verboseCompilationEnabled):
(JSC::DFG::shouldDumpGraphAtEachPhase):
(JSC::DFG::validationEnabled):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::isCapturedAtOrAfter):
(JSC::DFG::ConstantFoldingPhase::addStructureTransitionCheck):
(JSC::DFG::ConstantFoldingPhase::paintUnreachableCode):
* dfg/DFGDisassembler.cpp:
(JSC::DFG::Disassembler::Disassembler):
(JSC::DFG::Disassembler::createDumpList):
(JSC::DFG::Disassembler::dumpDisassembly):
* dfg/DFGDisassembler.h:
(JSC::DFG::Disassembler::setForNode):
(Disassembler):
* dfg/DFGDriver.cpp:
(JSC::DFG::compile):
* dfg/DFGEdge.cpp: Added.
(DFG):
(JSC::DFG::Edge::dump):
* dfg/DFGEdge.h:
(JSC::DFG::Edge::Edge):
(JSC::DFG::Edge::node):
(JSC::DFG::Edge::operator*):
(JSC::DFG::Edge::operator->):
(Edge):
(JSC::DFG::Edge::setNode):
(JSC::DFG::Edge::useKind):
(JSC::DFG::Edge::setUseKind):
(JSC::DFG::Edge::isSet):
(JSC::DFG::Edge::shift):
(JSC::DFG::Edge::makeWord):
(JSC::DFG::operator==):
(JSC::DFG::operator!=):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupBlock):
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::checkArray):
(JSC::DFG::FixupPhase::blessArrayOperation):
(JSC::DFG::FixupPhase::fixIntEdge):
(JSC::DFG::FixupPhase::fixDoubleEdge):
(JSC::DFG::FixupPhase::injectInt32ToDoubleNode):
(FixupPhase):
* dfg/DFGGenerationInfo.h:
(JSC::DFG::GenerationInfo::GenerationInfo):
(JSC::DFG::GenerationInfo::initConstant):
(JSC::DFG::GenerationInfo::initInteger):
(JSC::DFG::GenerationInfo::initJSValue):
(JSC::DFG::GenerationInfo::initCell):
(JSC::DFG::GenerationInfo::initBoolean):
(JSC::DFG::GenerationInfo::initDouble):
(JSC::DFG::GenerationInfo::initStorage):
(GenerationInfo):
(JSC::DFG::GenerationInfo::node):
(JSC::DFG::GenerationInfo::noticeOSRBirth):
(JSC::DFG::GenerationInfo::use):
(JSC::DFG::GenerationInfo::appendFill):
(JSC::DFG::GenerationInfo::appendSpill):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::~Graph):
(DFG):
(JSC::DFG::Graph::dumpCodeOrigin):
(JSC::DFG::Graph::amountOfNodeWhiteSpace):
(JSC::DFG::Graph::printNodeWhiteSpace):
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::dumpBlockHeader):
(JSC::DFG::Graph::refChildren):
(JSC::DFG::Graph::derefChildren):
(JSC::DFG::Graph::predictArgumentTypes):
(JSC::DFG::Graph::collectGarbage):
(JSC::DFG::Graph::determineReachability):
(JSC::DFG::Graph::resetExitStates):
* dfg/DFGGraph.h:
(Graph):
(JSC::DFG::Graph::ref):
(JSC::DFG::Graph::deref):
(JSC::DFG::Graph::changeChild):
(JSC::DFG::Graph::compareAndSwap):
(JSC::DFG::Graph::clearAndDerefChild):
(JSC::DFG::Graph::clearAndDerefChild1):
(JSC::DFG::Graph::clearAndDerefChild2):
(JSC::DFG::Graph::clearAndDerefChild3):
(JSC::DFG::Graph::convertToConstant):
(JSC::DFG::Graph::getJSConstantSpeculation):
(JSC::DFG::Graph::addSpeculationMode):
(JSC::DFG::Graph::valueAddSpeculationMode):
(JSC::DFG::Graph::arithAddSpeculationMode):
(JSC::DFG::Graph::addShouldSpeculateInteger):
(JSC::DFG::Graph::mulShouldSpeculateInteger):
(JSC::DFG::Graph::negateShouldSpeculateInteger):
(JSC::DFG::Graph::isConstant):
(JSC::DFG::Graph::isJSConstant):
(JSC::DFG::Graph::isInt32Constant):
(JSC::DFG::Graph::isDoubleConstant):
(JSC::DFG::Graph::isNumberConstant):
(JSC::DFG::Graph::isBooleanConstant):
(JSC::DFG::Graph::isCellConstant):
(JSC::DFG::Graph::isFunctionConstant):
(JSC::DFG::Graph::isInternalFunctionConstant):
(JSC::DFG::Graph::valueOfJSConstant):
(JSC::DFG::Graph::valueOfInt32Constant):
(JSC::DFG::Graph::valueOfNumberConstant):
(JSC::DFG::Graph::valueOfBooleanConstant):
(JSC::DFG::Graph::valueOfFunctionConstant):
(JSC::DFG::Graph::valueProfileFor):
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
(JSC::DFG::Graph::numSuccessors):
(JSC::DFG::Graph::successor):
(JSC::DFG::Graph::successorForCondition):
(JSC::DFG::Graph::isPredictedNumerical):
(JSC::DFG::Graph::byValIsPure):
(JSC::DFG::Graph::clobbersWorld):
(JSC::DFG::Graph::varArgNumChildren):
(JSC::DFG::Graph::numChildren):
(JSC::DFG::Graph::varArgChild):
(JSC::DFG::Graph::child):
(JSC::DFG::Graph::voteNode):
(JSC::DFG::Graph::voteChildren):
(JSC::DFG::Graph::substitute):
(JSC::DFG::Graph::substituteGetLocal):
(JSC::DFG::Graph::addImmediateShouldSpeculateInteger):
(JSC::DFG::Graph::mulImmediateShouldSpeculateInteger):
* dfg/DFGInsertionSet.h:
(JSC::DFG::Insertion::Insertion):
(JSC::DFG::Insertion::element):
(Insertion):
(JSC::DFG::InsertionSet::insert):
(InsertionSet):
* dfg/DFGJITCompiler.cpp:
* dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::setForNode):
(JSC::DFG::JITCompiler::addressOfDoubleConstant):
(JSC::DFG::JITCompiler::noticeOSREntry):
* dfg/DFGLongLivedState.cpp: Added.
(DFG):
(JSC::DFG::LongLivedState::LongLivedState):
(JSC::DFG::LongLivedState::~LongLivedState):
(JSC::DFG::LongLivedState::shrinkToFit):
* dfg/DFGLongLivedState.h: Added.
(DFG):
(LongLivedState):
* dfg/DFGMinifiedID.h:
(JSC::DFG::MinifiedID::MinifiedID):
(JSC::DFG::MinifiedID::node):
* dfg/DFGMinifiedNode.cpp:
(JSC::DFG::MinifiedNode::fromNode):
* dfg/DFGMinifiedNode.h:
(MinifiedNode):
* dfg/DFGNode.cpp: Added.
(DFG):
(JSC::DFG::Node::index):
(WTF):
(WTF::printInternal):
* dfg/DFGNode.h:
(DFG):
(JSC::DFG::Node::Node):
(Node):
(JSC::DFG::Node::convertToGetByOffset):
(JSC::DFG::Node::convertToPutByOffset):
(JSC::DFG::Node::ref):
(JSC::DFG::Node::shouldSpeculateInteger):
(JSC::DFG::Node::shouldSpeculateIntegerForArithmetic):
(JSC::DFG::Node::shouldSpeculateIntegerExpectingDefined):
(JSC::DFG::Node::shouldSpeculateDoubleForArithmetic):
(JSC::DFG::Node::shouldSpeculateNumber):
(JSC::DFG::Node::shouldSpeculateNumberExpectingDefined):
(JSC::DFG::Node::shouldSpeculateFinalObject):
(JSC::DFG::Node::shouldSpeculateArray):
(JSC::DFG::Node::dumpChildren):
(WTF):
* dfg/DFGNodeAllocator.h: Added.
(DFG):
(operator new ):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::OSRExit):
* dfg/DFGOSRExit.h:
(OSRExit):
(SpeculationFailureDebugInfo):
* dfg/DFGOSRExitCompiler.cpp:
* dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOperations.cpp:
* dfg/DFGPhase.cpp:
(DFG):
(JSC::DFG::Phase::beginPhase):
(JSC::DFG::Phase::endPhase):
* dfg/DFGPhase.h:
(Phase):
(JSC::DFG::runAndLog):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::setPrediction):
(JSC::DFG::PredictionPropagationPhase::mergePrediction):
(JSC::DFG::PredictionPropagationPhase::isNotNegZero):
(JSC::DFG::PredictionPropagationPhase::isNotZero):
(JSC::DFG::PredictionPropagationPhase::isWithinPowerOfTwoForConstant):
(JSC::DFG::PredictionPropagationPhase::isWithinPowerOfTwoNonRecursive):
(JSC::DFG::PredictionPropagationPhase::isWithinPowerOfTwo):
(JSC::DFG::PredictionPropagationPhase::propagate):
(JSC::DFG::PredictionPropagationPhase::mergeDefaultFlags):
(JSC::DFG::PredictionPropagationPhase::propagateForward):
(JSC::DFG::PredictionPropagationPhase::propagateBackward):
(JSC::DFG::PredictionPropagationPhase::doDoubleVoting):
(PredictionPropagationPhase):
(JSC::DFG::PredictionPropagationPhase::doRoundOfDoubleVoting):
* dfg/DFGScoreBoard.h:
(JSC::DFG::ScoreBoard::ScoreBoard):
(JSC::DFG::ScoreBoard::use):
(JSC::DFG::ScoreBoard::useIfHasResult):
(ScoreBoard):
* dfg/DFGSilentRegisterSavePlan.h:
(JSC::DFG::SilentRegisterSavePlan::SilentRegisterSavePlan):
(JSC::DFG::SilentRegisterSavePlan::node):
(SilentRegisterSavePlan):
* dfg/DFGSlowPathGenerator.h:
(JSC::DFG::SlowPathGenerator::SlowPathGenerator):
(JSC::DFG::SlowPathGenerator::generate):
(SlowPathGenerator):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::speculationCheck):
(JSC::DFG::SpeculativeJIT::speculationWatchpoint):
(JSC::DFG::SpeculativeJIT::convertLastOSRExitToForward):
(JSC::DFG::SpeculativeJIT::forwardSpeculationCheck):
(JSC::DFG::SpeculativeJIT::terminateSpeculativeExecution):
(JSC::DFG::SpeculativeJIT::silentSavePlanForGPR):
(JSC::DFG::SpeculativeJIT::silentSavePlanForFPR):
(JSC::DFG::SpeculativeJIT::silentSpill):
(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::arrayify):
(JSC::DFG::SpeculativeJIT::fillStorage):
(JSC::DFG::SpeculativeJIT::useChildren):
(JSC::DFG::SpeculativeJIT::isStrictInt32):
(JSC::DFG::SpeculativeJIT::isKnownInteger):
(JSC::DFG::SpeculativeJIT::isKnownNumeric):
(JSC::DFG::SpeculativeJIT::isKnownCell):
(JSC::DFG::SpeculativeJIT::isKnownNotCell):
(JSC::DFG::SpeculativeJIT::isKnownNotInteger):
(JSC::DFG::SpeculativeJIT::isKnownNotNumber):
(JSC::DFG::SpeculativeJIT::writeBarrier):
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativeStrictEq):
(JSC::DFG::GPRTemporary::GPRTemporary):
(JSC::DFG::FPRTemporary::FPRTemporary):
(JSC::DFG::SpeculativeJIT::compilePeepHoleDoubleBranch):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleIntegerBranch):
(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
(JSC::DFG::SpeculativeJIT::noticeOSRBirth):
(JSC::DFG::SpeculativeJIT::compileMovHint):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::checkArgumentTypes):
(JSC::DFG::SpeculativeJIT::computeValueRecoveryFor):
(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
(JSC::DFG::SpeculativeJIT::compileGetCharCodeAt):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::checkGeneratedTypeForToInt32):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileUInt32ToNumber):
(JSC::DFG::SpeculativeJIT::compileDoubleAsInt32):
(JSC::DFG::SpeculativeJIT::compileInt32ToDouble):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::compileInstanceOf):
(JSC::DFG::SpeculativeJIT::compileSoftModulo):
(JSC::DFG::SpeculativeJIT::compileAdd):
(JSC::DFG::SpeculativeJIT::compileArithSub):
(JSC::DFG::SpeculativeJIT::compileArithNegate):
(JSC::DFG::SpeculativeJIT::compileArithMul):
(JSC::DFG::SpeculativeJIT::compileIntegerArithDivForX86):
(JSC::DFG::SpeculativeJIT::compileArithMod):
(JSC::DFG::SpeculativeJIT::compare):
(JSC::DFG::SpeculativeJIT::compileStrictEqForConstant):
(JSC::DFG::SpeculativeJIT::compileStrictEq):
(JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
(JSC::DFG::SpeculativeJIT::compileGetByValOnArguments):
(JSC::DFG::SpeculativeJIT::compileGetArgumentsLength):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):
(JSC::DFG::SpeculativeJIT::compileNewFunctionNoCheck):
(JSC::DFG::SpeculativeJIT::compileNewFunctionExpression):
(JSC::DFG::SpeculativeJIT::compileRegExpExec):
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
* dfg/DFGSpeculativeJIT.h:
(SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::canReuse):
(JSC::DFG::SpeculativeJIT::isFilled):
(JSC::DFG::SpeculativeJIT::isFilledDouble):
(JSC::DFG::SpeculativeJIT::use):
(JSC::DFG::SpeculativeJIT::isConstant):
(JSC::DFG::SpeculativeJIT::isJSConstant):
(JSC::DFG::SpeculativeJIT::isInt32Constant):
(JSC::DFG::SpeculativeJIT::isDoubleConstant):
(JSC::DFG::SpeculativeJIT::isNumberConstant):
(JSC::DFG::SpeculativeJIT::isBooleanConstant):
(JSC::DFG::SpeculativeJIT::isFunctionConstant):
(JSC::DFG::SpeculativeJIT::valueOfInt32Constant):
(JSC::DFG::SpeculativeJIT::valueOfNumberConstant):
(JSC::DFG::SpeculativeJIT::valueOfNumberConstantAsInt32):
(JSC::DFG::SpeculativeJIT::addressOfDoubleConstant):
(JSC::DFG::SpeculativeJIT::valueOfJSConstant):
(JSC::DFG::SpeculativeJIT::valueOfBooleanConstant):
(JSC::DFG::SpeculativeJIT::valueOfFunctionConstant):
(JSC::DFG::SpeculativeJIT::isNullConstant):
(JSC::DFG::SpeculativeJIT::valueOfJSConstantAsImm64):
(JSC::DFG::SpeculativeJIT::detectPeepHoleBranch):
(JSC::DFG::SpeculativeJIT::integerResult):
(JSC::DFG::SpeculativeJIT::noResult):
(JSC::DFG::SpeculativeJIT::cellResult):
(JSC::DFG::SpeculativeJIT::booleanResult):
(JSC::DFG::SpeculativeJIT::jsValueResult):
(JSC::DFG::SpeculativeJIT::storageResult):
(JSC::DFG::SpeculativeJIT::doubleResult):
(JSC::DFG::SpeculativeJIT::initConstantInfo):
(JSC::DFG::SpeculativeJIT::appendCallWithExceptionCheck):
(JSC::DFG::SpeculativeJIT::isInteger):
(JSC::DFG::SpeculativeJIT::temporaryRegisterForPutByVal):
(JSC::DFG::SpeculativeJIT::emitAllocateBasicStorage):
(JSC::DFG::SpeculativeJIT::setNodeForOperand):
(JSC::DFG::IntegerOperand::IntegerOperand):
(JSC::DFG::IntegerOperand::node):
(JSC::DFG::IntegerOperand::gpr):
(JSC::DFG::IntegerOperand::use):
(IntegerOperand):
(JSC::DFG::DoubleOperand::DoubleOperand):
(JSC::DFG::DoubleOperand::node):
(JSC::DFG::DoubleOperand::fpr):
(JSC::DFG::DoubleOperand::use):
(DoubleOperand):
(JSC::DFG::JSValueOperand::JSValueOperand):
(JSC::DFG::JSValueOperand::node):
(JSC::DFG::JSValueOperand::gpr):
(JSC::DFG::JSValueOperand::fill):
(JSC::DFG::JSValueOperand::use):
(JSValueOperand):
(JSC::DFG::StorageOperand::StorageOperand):
(JSC::DFG::StorageOperand::node):
(JSC::DFG::StorageOperand::gpr):
(JSC::DFG::StorageOperand::use):
(StorageOperand):
(JSC::DFG::SpeculateIntegerOperand::SpeculateIntegerOperand):
(JSC::DFG::SpeculateIntegerOperand::node):
(JSC::DFG::SpeculateIntegerOperand::gpr):
(JSC::DFG::SpeculateIntegerOperand::use):
(SpeculateIntegerOperand):
(JSC::DFG::SpeculateStrictInt32Operand::SpeculateStrictInt32Operand):
(JSC::DFG::SpeculateStrictInt32Operand::node):
(JSC::DFG::SpeculateStrictInt32Operand::gpr):
(JSC::DFG::SpeculateStrictInt32Operand::use):
(SpeculateStrictInt32Operand):
(JSC::DFG::SpeculateDoubleOperand::SpeculateDoubleOperand):
(JSC::DFG::SpeculateDoubleOperand::node):
(JSC::DFG::SpeculateDoubleOperand::fpr):
(JSC::DFG::SpeculateDoubleOperand::use):
(SpeculateDoubleOperand):
(JSC::DFG::SpeculateCellOperand::SpeculateCellOperand):
(JSC::DFG::SpeculateCellOperand::node):
(JSC::DFG::SpeculateCellOperand::gpr):
(JSC::DFG::SpeculateCellOperand::use):
(SpeculateCellOperand):
(JSC::DFG::SpeculateBooleanOperand::SpeculateBooleanOperand):
(JSC::DFG::SpeculateBooleanOperand::node):
(JSC::DFG::SpeculateBooleanOperand::gpr):
(JSC::DFG::SpeculateBooleanOperand::use):
(SpeculateBooleanOperand):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::fillInteger):
(JSC::DFG::SpeculativeJIT::fillDouble):
(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::nonSpeculativeValueToNumber):
(JSC::DFG::SpeculativeJIT::nonSpeculativeValueToInt32):
(JSC::DFG::SpeculativeJIT::nonSpeculativeUInt32ToNumber):
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt):
(JSC::DFG::SpeculativeJIT::fillSpeculateIntStrict):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileIntegerCompare):
(JSC::DFG::SpeculativeJIT::compileDoubleCompare):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileNonStringCellOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitNonStringCellOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compileContiguousPutByVal):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillInteger):
(JSC::DFG::SpeculativeJIT::fillDouble):
(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::nonSpeculativeValueToNumber):
(JSC::DFG::SpeculativeJIT::nonSpeculativeValueToInt32):
(JSC::DFG::SpeculativeJIT::nonSpeculativeUInt32ToNumber):
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateIntInternal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt):
(JSC::DFG::SpeculativeJIT::fillSpeculateIntStrict):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileIntegerCompare):
(JSC::DFG::SpeculativeJIT::compileDoubleCompare):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileNonStringCellOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitNonStringCellOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGStructureAbstractValue.h:
(StructureAbstractValue):
* dfg/DFGStructureCheckHoistingPhase.cpp:
(JSC::DFG::StructureCheckHoistingPhase::run):
* dfg/DFGValidate.cpp:
(DFG):
(Validate):
(JSC::DFG::Validate::validate):
(JSC::DFG::Validate::reportValidationContext):
* dfg/DFGValidate.h:
* dfg/DFGValueSource.cpp:
(JSC::DFG::ValueSource::dump):
* dfg/DFGValueSource.h:
(JSC::DFG::ValueSource::ValueSource):
* dfg/DFGVirtualRegisterAllocationPhase.cpp:
(JSC::DFG::VirtualRegisterAllocationPhase::run):
* runtime/FunctionExecutableDump.cpp: Added.
(JSC):
(JSC::FunctionExecutableDump::dump):
* runtime/FunctionExecutableDump.h: Added.
(JSC):
(FunctionExecutableDump):
(JSC::FunctionExecutableDump::FunctionExecutableDump):
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
* runtime/JSGlobalData.h:
(JSC):
(DFG):
(JSGlobalData):
* runtime/Options.h:
(JSC):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141069 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Qt] Build fix
commit-queue@webkit.org [Tue, 29 Jan 2013 07:57:46 +0000 (07:57 +0000)]
[Qt] Build fix
https://bugs.webkit.org/show_bug.cgi?id=108142

Patch by Jae Hyun Park <jae.park@company100.net> on 2013-01-28
Reviewed by Gyuyoung Kim.

Build fix. Though StorageManager was added to WK2 in r141024,
it is not added to Target.pri for qt port.

* Target.pri:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141068 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Texmap] Refactor code related to debug border and repaint count.
commit-queue@webkit.org [Tue, 29 Jan 2013 07:48:48 +0000 (07:48 +0000)]
[Texmap] Refactor code related to debug border and repaint count.
https://bugs.webkit.org/show_bug.cgi?id=105787

Patch by Huang Dongsung <luxtella@company100.net> on 2013-01-28
Reviewed by Noam Rosenthal.

It is a follow-up patch not to change layout test results.

The previous patch sets GraphicsLayer::m_usingTiledLayer to true when using a
backing store. When the variable is true, dumpLayer() adds (usingTiledLayer 1),
but most of ports don't set m_usingTiledLayer to true. So we don't use
m_usingTiledLayer to match the test results of other ports.

After this patch, Texture Mapper draws debug visuals for a tiled backing
with different color from safari.

No new tests. Debug feature, not covered in tests.

* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCountIfNeeded):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141067 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoHandle createShadowSubtree inside of ensureUserAgentShadowRoot
esprehn@chromium.org [Tue, 29 Jan 2013 07:47:20 +0000 (07:47 +0000)]
Handle createShadowSubtree inside of ensureUserAgentShadowRoot
https://bugs.webkit.org/show_bug.cgi?id=108116

Reviewed by Dimitri Glazkov.

Instead of making everyone create the UserAgentShadowRoot manually all
over, centralize it in ensureUserAgentShadowRoot() and add a notification
Element::didAddUserAgentShadowRoot that lets elements fill in the subtree.
This lets us get rid of lots of code duplication.

No new tests, just refactoring.

* dom/Element.cpp:
(WebCore::Element::ensureUserAgentShadowRoot):
* dom/Element.h:
(WebCore::Element::didAddUserAgentShadowRoot):
(Element):
* html/HTMLDetailsElement.cpp:
(WebCore::DetailsSummaryElement::create):
(WebCore::HTMLDetailsElement::create):
(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
* html/HTMLDetailsElement.h:
(HTMLDetailsElement):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::didAddUserAgentShadowRoot):
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::willAddAuthorShadowRoot):
(WebCore::HTMLMediaElement::createMediaControls):
* html/HTMLMediaElement.h:
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::create):
(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):
* html/HTMLMeterElement.h:
(HTMLMeterElement):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::create):
(WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):
* html/HTMLProgressElement.h:
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::create):
(WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot):
* html/HTMLSummaryElement.h:
(HTMLSummaryElement):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::create):
(WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot):
* html/HTMLTextAreaElement.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelMuteButtonElement::create):
(WebCore::MediaControlVolumeSliderMuteButtonElement::create):
(WebCore::MediaControlPlayButtonElement::create):
(WebCore::MediaControlOverlayPlayButtonElement::create):
(WebCore::MediaControlSeekForwardButtonElement::create):
(WebCore::MediaControlSeekBackButtonElement::create):
(WebCore::MediaControlRewindButtonElement::create):
(WebCore::MediaControlReturnToRealtimeButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlPanelVolumeSliderElement::create):
(WebCore::MediaControlFullscreenVolumeSliderElement::create):
(WebCore::MediaControlFullscreenButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):
* html/shadow/MediaControlsBlackBerry.cpp:
(WebCore::MediaControlFullscreenPlayButtonElement::create):
(WebCore::MediaControlFullscreenFullscreenButtonElement::create):
(WebCore::MediaControlFullscreenTimelineElement::create):
(WebCore::MediaControlAudioMuteButtonElement::create):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::create):
* svg/SVGTRefElement.h:
(SVGTRefElement):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::create):
* svg/SVGUseElement.h:
(SVGUseElement):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141066 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCoordinated Graphics: Refactor code related to debug border and repaint count.
commit-queue@webkit.org [Tue, 29 Jan 2013 07:44:58 +0000 (07:44 +0000)]
Coordinated Graphics: Refactor code related to debug border and repaint count.
https://bugs.webkit.org/show_bug.cgi?id=107910

Patch by Huang Dongsung <luxtella@company100.net> on 2013-01-28
Reviewed by Noam Rosenthal.

There are two big changes:
1. CoordinatedGraphicsLayer sends debugging visuals to UI Process.
2. When updating a backing store, increment a repaint count.

In addition, we don't use QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS
environment. EFL, GTK and QT will use WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS
after http://webkit.org/b/107198.

* Shared/CoordinatedGraphics/CoordinatedLayerInfo.h:
(WebKit::CoordinatedLayerInfo::CoordinatedLayerInfo):
(CoordinatedLayerInfo):
* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStore::removeAllTiles):
(WebKit::CoordinatedBackingStore::updateTile):
(WebKit::CoordinatedBackingStore::texture):
(WebKit::CoordinatedBackingStore::paintTilesToTextureMapper):
(WebKit::CoordinatedBackingStore::adjustedTransformForRect):
(WebKit::CoordinatedBackingStore::paintToTextureMapper):
(WebKit):
(WebKit::CoordinatedBackingStore::drawBorder):
    Override TextureMapperPlatformLayer::drawBorder() to draw the border
    for each tile.
(WebKit::CoordinatedBackingStore::drawRepaintCounter):
(WebKit::CoordinatedBackingStore::commitTileOperations):
* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h:
(WebKit::CoordinatedBackingStoreTile::CoordinatedBackingStoreTile):
(CoordinatedBackingStoreTile):
(CoordinatedBackingStore):
(WebKit::CoordinatedBackingStore::rect):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::setLayerRepaintCount):
(WebKit):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(CoordinatedLayerTreeHostProxy):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::setLayerRepaintCount):
(WebKit):
(WebKit::LayerTreeRenderer::setLayerState):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
(LayerTreeRenderer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setShowDebugBorder):
(WebCore):
(WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter):
(WebCore::CoordinatedGraphicsLayer::syncLayerState):
(WebCore::CoordinatedGraphicsLayer::setDebugBorder):
(WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintEnd):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayerClient):
(CoordinatedGraphicsLayer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::setLayerRepaintCount):
(WebKit):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141065 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRe-enable WebFrameTest.DivScrollIntoEditableTest
wangxianzhu@chromium.org [Tue, 29 Jan 2013 07:40:28 +0000 (07:40 +0000)]
Re-enable WebFrameTest.DivScrollIntoEditableTest
https://bugs.webkit.org/show_bug.cgi?id=98558

Reviewed by Adam Barth.

* tests/WebFrameTest.cpp: Fixed several issues (onload script, the maximum scale factor, etc.) of WebFrameTest.DivScrollIntoEditableTest and enable it.
* tests/data/get_scale_for_zoom_into_editable_test.html: Moved the logic of onload script (which seems not to work) into WebFrameTest.cpp.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141064 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoHTMLOutputElement::htmlFor should be readonly
rgf748@motorola.com [Tue, 29 Jan 2013 07:31:43 +0000 (07:31 +0000)]
HTMLOutputElement::htmlFor should be readonly
https://bugs.webkit.org/show_bug.cgi?id=101898

Reviewed by Kentaro Hara.

Source/WebCore:

The spec says htmlFor should be readonly, but WebKit implements it as no-readonly.
Spec: http://dev.w3.org/html5/spec-preview/the-output-element.html

No new tests. Modified existing test fast/dom/HTMLOutputElement/dom-settable-token-list.html
to work as expected.

* GNUmakefile.list.am: Removed JSHTMLOutputElementCustom.cpp
* Target.pri: Ditto
* UseJSC.cmake: Ditto
* UseV8.cmake: Removed V8HTMLOutputElementCustom.cpp
* WebCore.gypi: Removed V8HTMLOutputElementCustom.cpp
* WebCore.vcproj/WebCore.vcproj: Removed JSHTMLOutputElementCustom.cpp
* WebCore.vcxproj/WebCore.vcxproj: Ditto
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
* WebCore.xcodeproj/project.pbxproj: Ditto
* bindings/js/JSBindingsAllInOne.cpp: Ditto
* bindings/js/JSHTMLOutputElementCustom.cpp: Removed.
* bindings/v8/custom/V8HTMLOutputElementCustom.cpp: Removed.
* html/HTMLOutputElement.idl: Made htmlFor attribute readonly.

LayoutTests:

The spec says htmlFor should be readonly, but WebKit implements it as no-readonly.
Spec: http://dev.w3.org/html5/spec-preview/the-output-element.html
Modified tests according to new behavior.

* fast/dom/HTMLOutputElement/dom-settable-token-list-expected.txt:
* fast/dom/HTMLOutputElement/script-tests/dom-settable-token-list.js: Test for attribute htmlFor is readonly.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141063 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix disambiguation popup for new-style page scale
commit-queue@webkit.org [Tue, 29 Jan 2013 07:29:26 +0000 (07:29 +0000)]
Fix disambiguation popup for new-style page scale
https://bugs.webkit.org/show_bug.cgi?id=107391

Patch by Tien-Ren Chen <trchen@chromium.org> on 2013-01-28
Reviewed by Adam Barth.

This patch corrects various coordinate conversion for disambiguation
popup for the new-style page scale mode.

Source/WebCore:

New unit test: WebFrameTest.DisambiguationPopupPageScale

* page/TouchDisambiguation.cpp:
(WebCore::findGoodTouchTargets):
* page/TouchDisambiguation.h:
(WebCore):

Source/WebKit/chromium:

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::handleGestureEvent):
(WebKit::WebViewImpl::handleInputEvent):
* tests/WebFrameTest.cpp:
* tests/data/disambiguation_popup_page_scale.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141062 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove support from ArgumentEncoder for deprecated encode functions
weinig@apple.com [Tue, 29 Jan 2013 07:14:20 +0000 (07:14 +0000)]
Remove support from ArgumentEncoder for deprecated encode functions
https://bugs.webkit.org/show_bug.cgi?id=108155

Reviewed by Dan Bernstein.

* Platform/CoreIPC/ArgumentEncoder.h:
(CoreIPC::ArgumentEncoder::encode):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141061 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium] Reverting change to chromium/TestExpectation in r141056.
keishi@webkit.org [Tue, 29 Jan 2013 07:05:30 +0000 (07:05 +0000)]
[Chromium] Reverting change to chromium/TestExpectation in r141056.

Unreviewed. Gardening.

* platform/chromium/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141060 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCollapse testing for a list of PLATFORM() into OS() and USE() tests
commit-queue@webkit.org [Tue, 29 Jan 2013 06:59:42 +0000 (06:59 +0000)]
Collapse testing for a list of PLATFORM() into OS() and USE() tests
https://bugs.webkit.org/show_bug.cgi?id=108018

Patch by Laszlo Gombos <l.gombos@samsung.com> on 2013-01-28
Reviewed by Eric Seidel.

No functional change as "OS(DARWIN) && USE(CF)" equals to the
following platforms: MAC, WX, QT and CHROMIUM. CHROMIUM
is not using JavaScriptCore.

* runtime/DatePrototype.cpp:
(JSC):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141059 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, rolling out r141049.
commit-queue@webkit.org [Tue, 29 Jan 2013 06:55:27 +0000 (06:55 +0000)]
Unreviewed, rolling out r141049.
http://trac.webkit.org/changeset/141049
https://bugs.webkit.org/show_bug.cgi?id=108151

Caused some indexed tests to crash. (Requested by keishi on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-01-28

Source/WebCore:

* Modules/indexeddb/IDBCallbacks.h:
(WebCore::IDBCallbacks::onUpgradeNeeded):
(WebCore::IDBCallbacks::onSuccess):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::onSuccess):
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):

Source/WebKit/chromium:

* public/WebIDBCallbacks.h:
(WebKit):
* src/IDBCallbacksProxy.cpp:
(WebKit::IDBCallbacksProxy::onUpgradeNeeded):
* src/IDBCallbacksProxy.h:
(IDBCallbacksProxy):
* src/WebIDBCallbacksImpl.cpp:
(WebKit::WebIDBCallbacksImpl::onSuccess):
(WebKit::WebIDBCallbacksImpl::onUpgradeNeeded):
* src/WebIDBCallbacksImpl.h:
(WebIDBCallbacksImpl):
* tests/IDBAbortOnCorruptTest.cpp:
(WebCore::MockIDBCallbacks::onSuccess):
* tests/IDBDatabaseBackendTest.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141058 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoLayout Test http/tests/workers/terminate-during-sync-operation.html is flaky
abarth@webkit.org [Tue, 29 Jan 2013 06:52:51 +0000 (06:52 +0000)]
Layout Test http/tests/workers/terminate-during-sync-operation.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=79013

Reviewed by David Levin.

Source/WebCore:

We need to use an isolated copy because we're going to use it on a
different thread.

* Modules/webdatabase/AbstractDatabase.cpp:
(WebCore::AbstractDatabase::AbstractDatabase):

LayoutTests:

This test shouldn't be flaky anymore.

* platform/chromium/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141057 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium] Rebaselining after 141039.
keishi@webkit.org [Tue, 29 Jan 2013 06:50:22 +0000 (06:50 +0000)]
[Chromium] Rebaselining after 141039.

Unreviewed. Gardening.

* platform/chromium/TestExpectations:
* platform/chromium/compositing/layer-creation/fixed-position-change-out-of-view-in-view-expected.txt: Added.
* platform/chromium/compositing/layer-creation/fixed-position-in-view-dynamic-expected.txt: Added.
* platform/chromium/compositing/layer-creation/fixed-position-out-of-view-expected.txt: Added.
* platform/chromium/compositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt: Added.
* platform/chromium/compositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt: Added.
* platform/chromium/compositing/overflow/content-gains-scrollbars-expected.txt:
* platform/chromium/compositing/overflow/overflow-scrollbar-layers-expected.txt:
* platform/chromium/compositing/overflow/resize-painting-expected.txt:
* platform/chromium/platform/chromium/virtual/gpu/compositedscrolling/overflow/content-gains-scrollbars-expected.txt: Copied from LayoutTests/platform/chromium/compositing/overflow/content-gains-scrollbars-expected.txt.
* platform/chromium/platform/chromium/virtual/gpu/compositedscrolling/overflow/overflow-scrollbar-layers-expected.txt: Copied from LayoutTests/platform/chromium/compositing/overflow/overflow-scrollbar-layers-expected.txt.
* platform/chromium/platform/chromium/virtual/gpu/compositedscrolling/overflow/resize-painting-expected.txt: Copied from LayoutTests/platform/chromium/compositing/overflow/resize-painting-expected.txt.
* platform/chromium/platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-change-out-of-view-in-view-expected.txt: Added.
* platform/chromium/platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-in-view-dynamic-expected.txt: Added.
* platform/chromium/platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-out-of-view-expected.txt: Added.
* platform/chromium/platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt: Added.
* platform/chromium/platform/chromium/virtual/softwarecompositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt: Added.
* platform/chromium/platform/chromium/virtual/softwarecompositing/overflow/content-gains-scrollbars-expected.txt: Copied from LayoutTests/platform/chromium/compositing/overflow/content-gains-scrollbars-expected.txt.
* platform/chromium/platform/chromium/virtual/softwarecompositing/overflow/overflow-scrollbar-layers-expected.txt: Copied from LayoutTests/platform/chromium/compositing/overflow/overflow-scrollbar-layers-expected.txt.
* platform/chromium/platform/chromium/virtual/softwarecompositing/overflow/resize-painting-expected.txt: Copied from LayoutTests/platform/chromium/compositing/overflow/resize-painting-expected.txt.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141056 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoExpose isRadioButton and isCheckbox API in chromium-webkit glue layer.
commit-queue@webkit.org [Tue, 29 Jan 2013 06:35:58 +0000 (06:35 +0000)]
Expose isRadioButton and isCheckbox API in chromium-webkit glue layer.
https://bugs.webkit.org/show_bug.cgi?id=108031

Patch by Raman Kumar <ramankk@chromium.org> on 2013-01-28
Reviewed by Adam Barth.

In chromium, to know if an InputElement is radiobutton or a checkbox,
we are checking for formControlType (a string comparision), which is
very slow. Exposing these API to chromium will make them faster.

* public/WebInputElement.h:
(WebInputElement):
* src/WebInputElement.cpp:
(WebKit::WebInputElement::isRadioButton):
(WebKit):
(WebKit::WebInputElement::isCheckbox):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141055 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Shadow] Gesture event is not fired in ShadowDOM
shinyak@chromium.org [Tue, 29 Jan 2013 06:22:28 +0000 (06:22 +0000)]
[Shadow] Gesture event is not fired in ShadowDOM
https://bugs.webkit.org/show_bug.cgi?id=107797

Reviewed by Dimitri Glazkov.

Source/WebCore:

Gesture event (e.g. touchstart) is not fired in ShadowDOM.

We have to run event retargetting algorithm to retarget touchTarget, however it is not implemented yet (Bug 107800).
Until it's implemented, we use the shadow ancestor node of touchTarget in Document treescope as touchTarget
for backward compatibility. If a touch event is fired in nested ShadowDOM, touchTarget will be always element in
document tree, so an event listener in ShadowDOM will get a wrong touchTarget. However we prioritized
the correctness of document tree.

Test: fast/dom/shadow/touch-event.html

* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent): Allows us to take elements in ShadowDOM.

LayoutTests:

* fast/dom/shadow/touch-event-expected.txt: Added.
* fast/dom/shadow/touch-event.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141054 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMake page scale shrink FrameView in applyPageScaleInCompositor mode
aelias@chromium.org [Tue, 29 Jan 2013 06:19:10 +0000 (06:19 +0000)]
Make page scale shrink FrameView in applyPageScaleInCompositor mode
https://bugs.webkit.org/show_bug.cgi?id=107424

Reviewed by Levi Weintraub.

If applyPageScaleFactorInCompositor is enabled (Chromium-only setting),
instead of the entire document expanding as the user pinch zooms, the
viewport shrinks instead. This patch applies the pageScaleFactor to
visibleContentRect to get this behavior, and simplifies Chromium's
resize logic to stop hiding the true viewport size from WebCore.

I verified that the scaling makes sense for all the callers of
visibleContentRect. The exceptions are clip-layer size,
layout size in non-fixed-layout mode, and text autosizing, which need
the original unscaled size. Therefore I added a new method
unscaledVisibleContentSize() to ScrollView/FrameView.

This patch also modifies Page::setPageScaleFactor to perform no
invalidates or layout when applyPageScaleFactorInCompositor is true,
and also writes pageScaleFactor into HistoryItems instead of using
frameScaleFactor.

Since all behavior changes are tied to applyPageScaleFactorInCompositor,
this patch should be a no-op for non-Chromium ports.

Source/Platform:

* chromium/public/WebLayerTreeView.h:
(WebLayerTreeView):
(WebKit::WebLayerTreeView::adjustEventPointForPinchZoom):

Source/WebCore:

New unit tests in WebFrameTest.cpp.

* loader/HistoryController.cpp:
(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):
Use pageScaleFactor here because frameScaleFactor always returns 1
with our setting.
* page/FrameView.cpp:
(WebCore::FrameView::visibleContentScaleFactor):
(WebCore):
* page/FrameView.h:
(FrameView):
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor): Make setPageScaleFactor stop
invalidating/layouting as this is handled by our compositor.
* platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSize): This new method
just returns the original visible rect without pageScaleFactor being
applied.
(WebCore):
(WebCore::ScrollView::visibleContentRect): This now is divided by
pageScaleFactor if our setting is active.
(WebCore::ScrollView::layoutSize):
* platform/ScrollView.h:
(WebCore::ScrollView::visibleContentScaleFactor): Returns
pageScaleFactor if the visible rect is scaled, 1 normally.
(ScrollView):
(WebCore::ScrollView::layoutWidth):
(WebCore::ScrollView::layoutHeight):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidChangeSize):
(WebCore::RenderLayerCompositor::updateRootLayerPosition): Clip layer
should use unscaled size, because it's above the root scroll layer
on the layer tree (i.e. page scale isn't applied on it).
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processSubtree): Text autosizer should use
unscaled size, because it cares about physical screen size.

Source/WebKit/chromium:

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::scaledSize): Returns the post page-scale size
similar to what visibleContentRect() now returns, except that it may
be at a different scale than the current one.
(WebKit::WebViewImpl::size): Back to returning density-independent
size without any tricks, not the "layoutSize()" fake viewport.
(WebKit::WebViewImpl::resize):
(WebKit::WebViewImpl::handleInputEvent): No need to apply
implTransform anymore as WebKit knows the true scroll offset; just
divide event coords by pageScaleFactor.
(WebKit::WebViewImpl::clampOffsetAtScale): Make this method support
applyPageScaleFactorInCompositor.  This is used to pre-clamp scroll
offsets at a given viewport size.
(WebKit::WebViewImpl::setPageScaleFactorPreservingScrollOffset): Make
this method support applyPageScaleFactorInCompositor (don't scale
scroll offsets as they are now scale-independent).
(WebKit::WebViewImpl::setPageScaleFactor): Make this method always use
clampOffsetAtScale instead of bypassing it, since it's now supported.
Also notify the compositor to update its state.
(WebKit::WebViewImpl::contentsSize): Convenience method, removed
difference between scaled and unscaled.
(WebKit::WebViewImpl::layoutSize): This method returned the "fake"
size we used to give FrameView.  Now no longer used for much.
(WebKit::WebViewImpl::computePageScaleFactorLimits):
(WebKit::WebViewImpl::didChangeContentsSize): Remove unnecessary
resize() now that we can give the true size to FrameView.
(WebKit::WebViewImpl::updateLayerTreeViewport): Use layoutSize()
directly now that FrameView no longer uses it.
* src/WebViewImpl.h:
(WebViewImpl):
* tests/WebFrameTest.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141053 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDisable default use of the Plug-in XPCService until we can
weinig@apple.com [Tue, 29 Jan 2013 06:05:29 +0000 (06:05 +0000)]
Disable default use of the Plug-in XPCService until we can
figure out how to deal with the 32-bit one.

* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::shouldUseXPC):
(WebKit::PluginProcessProxy::platformInitializeLaunchOptions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141052 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoPlug-ins should initialize their sandbox at creation time
weinig@apple.com [Tue, 29 Jan 2013 05:58:15 +0000 (05:58 +0000)]
Plug-ins should initialize their sandbox at creation time
https://bugs.webkit.org/show_bug.cgi?id=108098

Reviewed by Anders Carlsson.

Add the ability to add string key/value pairs to process creation parameters
to allow the plugin process to get passed the plugin path which in turn allows
the plugin to initialize its sandbox at the correct time.

* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/NetworkServiceMain.Development.mm:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
(NetworkServiceInitializer):
* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
(WebKit::PluginProcessMainDelegate::getExtraData):
(PluginProcessMainDelegate):
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32/PluginService.32.Main.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/PluginService.64.Main.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/PluginService.Development.Main.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
(WebKit):
(PluginServiceInitializerDelegate):
(WebKit::PluginServiceInitializerDelegate::PluginServiceInitializerDelegate):
(WebKit::PluginServiceInitializerDelegate::getExtraData):
(PluginServiceInitializer):
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::initializeProcess):
(WebKit::PluginProcess::initializePluginProcess):
(WebKit::PluginProcess::initializeProcessName):
(WebKit::PluginProcess::initializeSandbox):
* PluginProcess/PluginProcess.h:
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::platformInitializePluginProcess):
(WebKit::PluginProcess::platformInitializeProcess):
(WebKit::PluginProcess::initializeProcessName):
(WebKit::PluginProcess::initializeSandbox):
* Shared/ChildProcess.h:
(ChildProcessInitializationParameters):
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.h:
(ChildProcessMainDelegate):
(WebKit::ChildProcessMain):
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm:
(WebKit::ChildProcessMainDelegate::getExtraData):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h:
(WebKit::XPCServiceEventHandler):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.h:
(WebKit::XPCServiceEventHandler):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: Added.
(XPCServiceInitializerDelegate):
(WebKit::XPCServiceInitializerDelegate::XPCServiceInitializerDelegate):
(WebKit::XPCServiceInitializer):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: Added.
(WebKit::XPCServiceInitializerDelegate::~XPCServiceInitializerDelegate):
(WebKit::XPCServiceInitializerDelegate::getConnectionIdentifier):
(WebKit::XPCServiceInitializerDelegate::getClientIdentifier):
(WebKit::XPCServiceInitializerDelegate::getClientProcessName):
(WebKit::XPCServiceInitializerDelegate::getExtraData):
* Shared/Plugins/PluginProcessCreationParameters.cpp:
(WebKit::PluginProcessCreationParameters::encode):
(WebKit::PluginProcessCreationParameters::decode):
* Shared/Plugins/PluginProcessCreationParameters.h:
(PluginProcessCreationParameters):
* UIProcess/Launcher/ProcessLauncher.h:
(LaunchOptions):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
(WebKit::connectToReExecService):
(WebKit::createService):
(WebKit::createProcess):
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching):
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::platformInitializeLaunchOptions):
(WebKit::PluginProcessProxy::platformInitializePluginProcess):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm:
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
(WebContentServiceInitializer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141051 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoStatic size inference for JavaScript objects
ggaren@apple.com [Tue, 29 Jan 2013 05:48:01 +0000 (05:48 +0000)]
Static size inference for JavaScript objects
https://bugs.webkit.org/show_bug.cgi?id=108093

Reviewed by Phil Pizlo.

../JavaScriptCore:

* API/JSObjectRef.cpp:
* JavaScriptCore.order:
* JavaScriptCore.xcodeproj/project.pbxproj: Pay the tax man.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode): op_new_object and op_create_this now
have an extra inferredInlineCapacity argument. This is the statically
inferred inline capacity, just from analyzing source text. op_new_object
also gets a pointer to an allocation profile. (For op_create_this, the
profile is in the construtor function.)

(JSC::CodeBlock::CodeBlock): Link op_new_object.

(JSC::CodeBlock::stronglyVisitStrongReferences): Mark our profiles.

* bytecode/CodeBlock.h:
(CodeBlock): Removed some dead code. Added object allocation profiles.

* bytecode/Instruction.h:
(JSC): New union type, since an instruction operand may point to an
object allocation profile now.

* bytecode/ObjectAllocationProfile.h: Added.
(JSC):
(ObjectAllocationProfile):
(JSC::ObjectAllocationProfile::offsetOfAllocator):
(JSC::ObjectAllocationProfile::offsetOfStructure):
(JSC::ObjectAllocationProfile::ObjectAllocationProfile):
(JSC::ObjectAllocationProfile::isNull):
(JSC::ObjectAllocationProfile::initialize):
(JSC::ObjectAllocationProfile::structure):
(JSC::ObjectAllocationProfile::inlineCapacity):
(JSC::ObjectAllocationProfile::clear):
(JSC::ObjectAllocationProfile::visitAggregate):
(JSC::ObjectAllocationProfile::possibleDefaultPropertyCount): New class
for tracking a prediction about object allocation: structure, inline
capacity, allocator to use.

* bytecode/Opcode.h:
(JSC):
(JSC::padOpcodeName): Updated instruction sizes.

* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
* bytecode/UnlinkedCodeBlock.h:
(JSC):
(JSC::UnlinkedCodeBlock::addObjectAllocationProfile):
(JSC::UnlinkedCodeBlock::numberOfObjectAllocationProfiles):
(UnlinkedCodeBlock): Unlinked support for allocation profiles.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate): Kill all remaining analyses at the
end of codegen, since this is our last opportunity.

(JSC::BytecodeGenerator::BytecodeGenerator): Added a static property
analyzer to bytecode generation. It tracks initializing assignments and
makes a guess about how many will happen.

(JSC::BytecodeGenerator::newObjectAllocationProfile):
(JSC):
(JSC::BytecodeGenerator::emitProfiledOpcode):
(JSC::BytecodeGenerator::emitMove):
(JSC::BytecodeGenerator::emitResolve):
(JSC::BytecodeGenerator::emitResolveBase):
(JSC::BytecodeGenerator::emitResolveBaseForPut):
(JSC::BytecodeGenerator::emitResolveWithBaseForPut):
(JSC::BytecodeGenerator::emitResolveWithThis):
(JSC::BytecodeGenerator::emitGetById):
(JSC::BytecodeGenerator::emitPutById):
(JSC::BytecodeGenerator::emitDirectPutById):
(JSC::BytecodeGenerator::emitPutGetterSetter):
(JSC::BytecodeGenerator::emitGetArgumentByVal):
(JSC::BytecodeGenerator::emitGetByVal): Added hooks to the static property
analyzer, so it can observe allocations and stores.

(JSC::BytecodeGenerator::emitCreateThis): Factored this into a helper
function because it was a significant amount of logic, and I wanted to
add to it.

(JSC::BytecodeGenerator::emitNewObject):
(JSC::BytecodeGenerator::emitExpectedFunctionSnippet):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitCallVarargs):
(JSC::BytecodeGenerator::emitConstruct): Added a hook to profiled opcodes
to track their stores, in case a store kills a profiled allocation. Since
profiled opcodes are basically the only interesting stores we do, this
is a convenient place to notice any store that might kill an allocation.

* bytecompiler/BytecodeGenerator.h:
(BytecodeGenerator): As above.

* bytecompiler/StaticPropertyAnalysis.h: Added.
(JSC):
(StaticPropertyAnalysis):
(JSC::StaticPropertyAnalysis::create):
(JSC::StaticPropertyAnalysis::addPropertyIndex):
(JSC::StaticPropertyAnalysis::record):
(JSC::StaticPropertyAnalysis::propertyIndexCount):
(JSC::StaticPropertyAnalysis::StaticPropertyAnalysis): Simple helper
class for tracking allocations and stores.

* bytecompiler/StaticPropertyAnalyzer.h: Added.
(StaticPropertyAnalyzer):
(JSC::StaticPropertyAnalyzer::StaticPropertyAnalyzer):
(JSC::StaticPropertyAnalyzer::createThis):
(JSC::StaticPropertyAnalyzer::newObject):
(JSC::StaticPropertyAnalyzer::putById):
(JSC::StaticPropertyAnalyzer::mov):
(JSC::StaticPropertyAnalyzer::kill): Helper class for observing allocations
and stores and making an inline capacity guess. The heuristics here are
intentionally minimal because we don't want this one class to try to
re-create something like a DFG or a runtime analysis. If we discover that
we need those kinds of analyses, we should just replace this class with
something else.

This class tracks multiple registers that alias the same object -- that
happens a lot, when moving locals into temporary registers -- but it
doesn't track control flow or multiple objects that alias the same register.

* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute): Updated for rename.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock): Updated for inline capacity and
allocation profile.

* dfg/DFGNode.h:
(JSC::DFG::Node::hasInlineCapacity):
(Node):
(JSC::DFG::Node::inlineCapacity):
(JSC::DFG::Node::hasFunction): Give the graph a good way to represent
inline capacity for an allocation.

* dfg/DFGNodeType.h:
(DFG): Updated for rename.

* dfg/DFGOperations.cpp: Updated for interface change.

* dfg/DFGOperations.h: We pass the inline capacity to the slow case as
an argument. This is the simplest way, since it's stored as a bytecode operand.

* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate): Updated for rename.

* dfg/DFGRepatch.cpp:
(JSC::DFG::tryCacheGetByID): Fixed a horrible off-by-one-half bug that only
appears when doing an inline cached load for property number 64 on a 32-bit
system. In JSVALUE32_64 land, "offsetRelativeToPatchedStorage" is the
offset of the 64bit JSValue -- but we'll actually issue two loads, one for
the payload at that offset, and one for the tag at that offset + 4. We need
to ensure that both loads have a compact representation, or we'll corrupt
the instruction stream.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitAllocateJSArray):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::emitAllocateBasicStorage):
(SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObject):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile): Lots of refactoring to support
passing an allocator to our allocation function, and/or passing a Structure
as a register instead of an immediate.

* heap/MarkedAllocator.h:
(DFG):
(MarkedAllocator):
(JSC::MarkedAllocator::offsetOfFreeListHead): Added an accessor to simplify
JIT code generation of allocation from an arbitrary allocator.

* jit/JIT.h:
(JSC):
* jit/JITInlines.h:
(JSC):
(JSC::JIT::emitAllocateJSObject):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_new_object):
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emitSlow_op_create_this):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_new_object):
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emitSlow_op_create_this): Same refactoring as done for the DFG.

* jit/JITStubs.cpp:
(JSC::tryCacheGetByID): Fixed the same bug mentioned above.

(JSC::DEFINE_STUB_FUNCTION): Updated for interface changes.

* llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions): Updated for interface changes.

* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm: Same refactoring as for the JITs.

* profiler/ProfilerBytecode.cpp:
* profiler/ProfilerBytecodes.cpp:
* profiler/ProfilerCompilation.cpp:
* profiler/ProfilerCompiledBytecode.cpp:
* profiler/ProfilerDatabase.cpp:
* profiler/ProfilerOSRExit.cpp:
* profiler/ProfilerOrigin.cpp:
* profiler/ProfilerProfiledBytecodes.cpp: Include ObjectConstructor.h
because that's where createEmptyObject() lives now.

* runtime/Executable.h:
(JSC::JSFunction::JSFunction): Updated for rename.

* runtime/JSCellInlines.h:
(JSC::allocateCell): Updated to match the allocator selection code in
the JIT, so it's clearer that both are correct.

* runtime/JSFunction.cpp:
(JSC::JSFunction::JSFunction):
(JSC::JSFunction::createAllocationProfile):
(JSC::JSFunction::visitChildren):
(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):
(JSC::JSFunction::getConstructData):
* runtime/JSFunction.h:
(JSC::JSFunction::offsetOfScopeChain):
(JSC::JSFunction::offsetOfExecutable):
(JSC::JSFunction::offsetOfAllocationProfile):
(JSC::JSFunction::allocationProfile):
(JSFunction):
(JSC::JSFunction::tryGetAllocationProfile):
(JSC::JSFunction::addAllocationProfileWatchpoint): Changed inheritorID
data member to be an ObjectAllocationProfile, which includes a pointer
to the desired allocator. This simplifies JIT code, since we don't have
to compute the allocator on the fly. I verified by code inspection that
JSFunction is still only 64 bytes.

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSGlobalObject):
(JSC::JSGlobalObject::dateStructure): No direct pointer to the empty
object structure anymore, because now clients need to specify how much
inline capacity they want.

* runtime/JSONObject.cpp:
* runtime/JSObject.h:
(JSC):
(JSFinalObject):
(JSC::JSFinalObject::defaultInlineCapacity):
(JSC::JSFinalObject::maxInlineCapacity):
(JSC::JSFinalObject::createStructure): A little refactoring to try to
clarify where some of these constants derive from.

(JSC::maxOffsetRelativeToPatchedStorage): Used for bug fix, above.

* runtime/JSProxy.cpp:
(JSC::JSProxy::setTarget): Ugly, but effective.

* runtime/LiteralParser.cpp:
* runtime/ObjectConstructor.cpp:
(JSC::constructObject):
(JSC::constructWithObjectConstructor):
(JSC::callObjectConstructor):
(JSC::objectConstructorCreate): Updated for interface changes.

* runtime/ObjectConstructor.h:
(JSC::constructEmptyObject): Clarified your options for how to allocate
an empty object, to emphasize what things can actually vary.

* runtime/PropertyOffset.h: These constants have moved because they're
really higher level concepts to do with the layout of objects and the
collector. PropertyOffset is just an abstract number line, independent
of those things.

* runtime/PrototypeMap.cpp:
(JSC::PrototypeMap::emptyObjectStructureForPrototype):
(JSC::PrototypeMap::clearEmptyObjectStructureForPrototype):
* runtime/PrototypeMap.h:
(PrototypeMap): The map key is now a pair of prototype and inline capacity,
since Structure encodes inline capacity.

* runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap):
(JSC::Structure::addPropertyTransition):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::copyPropertyTableForPinning):
* runtime/Structure.h:
(Structure):
(JSC::Structure::totalStorageSize):
(JSC::Structure::transitionCount):
(JSC::Structure::create): Fixed a nasty refactoring bug that only shows
up after enabling variable-sized inline capacities: we were passing our
type info where our inline capacity was expected. The compiler didn't
notice because both have type int :(.

../WebCore:

* ForwardingHeaders/runtime/ObjectConstructor.h: Added.

* bindings/js/JSInjectedScriptHostCustom.cpp:
* bindings/js/JSSQLResultSetRowListCustom.cpp: Include ObjectConstructor.h because
that's where createEmptyObject() is located now.

* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserialize): Updated for interface change.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141050 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoIndexedDB: Pass metadata in to IDBOpenDBRequest.onUpgradeNeeded/onSuccess
alecflett@chromium.org [Tue, 29 Jan 2013 05:40:11 +0000 (05:40 +0000)]
IndexedDB: Pass metadata in to IDBOpenDBRequest.onUpgradeNeeded/onSuccess
https://bugs.webkit.org/show_bug.cgi?id=103920

Reviewed by Dimitri Glazkov.

Source/WebCore:

Update IDBCallbacks::onSuccess and IDBCallbacks::onUpgradeNeeded to
pass through a metadata parameter. While there, remove the unused
IDBTransactionBackendInterface parameter to onUpgradeNeeded.

As this is another step in the IDB refactor, I've simplified future cleanup
work by making the WebKit API code still use the old API. This
will make it possible to outright remove code on the chromium side rather
than another three-step checkin.

No new tests, as this is more refactoring.

* Modules/indexeddb/IDBCallbacks.h:
(WebCore::IDBCallbacks::onUpgradeNeeded): new method signature.
(WebCore::IDBCallbacks::onSuccess): new method signature.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded): use passed-in metadata.
(WebCore::IDBOpenDBRequest::onSuccess): use passed-in metadata.
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):

Source/WebKit/chromium:

Support the new IDBCallbacks::onSuccess and IDBCallbacks::onUpgradeNeeded
while maintaining chromium compatibility by shimming in the old API
in the WebKit side. Future code will clean this up so that it is just a
pass-through as it was before.

* public/WebIDBCallbacks.h:
(WebKit):
(WebKit::WebIDBCallbacks::onSuccess): new method signature.
(WebKit::WebIDBCallbacks::onUpgradeNeeded): new method signature.
* src/IDBCallbacksProxy.cpp:
(WebKit::IDBCallbacksProxy::onSuccess): call on new method signature proxies through old API.
(WebKit):
(WebKit::IDBCallbacksProxy::onUpgradeNeeded): call on new method signature proxies through old API.
* src/IDBCallbacksProxy.h:
(IDBCallbacksProxy):
* src/WebIDBCallbacksImpl.cpp:
(WebKit::WebIDBCallbacksImpl::onSuccess): call on old WebKit proxy signature calls new API.
(WebKit):
(WebKit::WebIDBCallbacksImpl::onUpgradeNeeded): call on old WebKit proxy signature calls new API.
* src/WebIDBCallbacksImpl.h:
(WebIDBCallbacksImpl):
* tests/IDBAbortOnCorruptTest.cpp: new method signature.
(WebCore::MockIDBCallbacks::onSuccess):
* tests/IDBDatabaseBackendTest.cpp: new method signature.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141049 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd window occlusion criteria to determine page visibility on Mac
commit-queue@webkit.org [Tue, 29 Jan 2013 05:11:09 +0000 (05:11 +0000)]
Add window occlusion criteria to determine page visibility on Mac
https://bugs.webkit.org/show_bug.cgi?id=107494

Patch by Kiran Muppala <cmuppala@apple.com> on 2013-01-28
Reviewed by Simon Fraser.

Source/WebKit2:

* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::isViewVisible): Add window occlusion check.
* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]): Remove self from the all views vector.
(-[WKView addWindowObserversForWindow:]): Register observer for
NSWindowWillOrderOffScreenNotification.
(-[WKView removeWindowObservers]): Unregister observer for
NSWindowWillOrderOffScreenNotification.
(-[WKView viewWillMoveToWindow:]): Disable occlusion notifications.
(-[WKView viewDidMoveToWindow]): Enable occlusion notifications.
(-[WKView _windowWillOrderOffScreen:]): Disable occlusion notifications.
(-[WKView _windowDidOrderOnScreen:]): Enable occlusion notifications.
This notification ensures that occlusion notifications are registered
correctly even if the NSWindow object is assigned a window number after
the viewDidMoveToWindow notification has been received.  This occurs
for instance during application launch.
(-[WKView _setIsWindowOccluded:]):
(-[WKView _enableWindowOcclusionNotifications]):
(-[WKView _disableWindowOcclusionNotifications]):
(windowBecameVisible):
(windowBecameOccluded):
(+[WKView _registerWindowOcclusionNotificationHandlers]):
(+[WKView _unregisterWindowOcclusionNotificationHandlers]):
(+[WKView _allViews]):
(-[WKView _isWindowOccluded]):
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): Add
self to the all views vector.
* UIProcess/API/mac/WKViewInternal.h:

WebKitLibraries:

Add enum constants to specify window occlusion notification type to
notification registration/unregistration methods.  Add typedef for
window ID data passed to the window occlusion notification handler.
Add method to enable occlusion notifications for a particular window.

* WebKitSystemInterface.h: Add
WKOcclusionNotificationTypeWindowBecameVisible,
WKOcclusionNotificationTypeWindowBecameOccluded,
WKWindowID,
WKEnableWindowOcclusionNotifications().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141045 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium] Rebaselining integer-modulo after r141031.
keishi@webkit.org [Tue, 29 Jan 2013 04:47:23 +0000 (04:47 +0000)]
[Chromium] Rebaselining integer-modulo after r141031.

Unreviewed. Gardening.

* platform/chromium/fast/js/regress/integer-modulo-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141044 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[BlackBerry] Small animated zoom level adjustments are unnecessary
commit-queue@webkit.org [Tue, 29 Jan 2013 04:41:48 +0000 (04:41 +0000)]
[BlackBerry] Small animated zoom level adjustments are unnecessary
https://bugs.webkit.org/show_bug.cgi?id=108104

Patch by Andrew Lo <anlo@rim.com> on 2013-01-28
Reviewed by Rob Buis.
Internally reviewed by Mike Fenton.

Internal PR 285861.
If the difference between the target scale and current scale is
less than a given threshold, don't perform a zoom animation.

* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141043 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agofix multi-touch-inside-iframes Layout test
commit-queue@webkit.org [Tue, 29 Jan 2013 04:38:18 +0000 (04:38 +0000)]
fix multi-touch-inside-iframes Layout test
https://bugs.webkit.org/show_bug.cgi?id=108113

Patch by Min Qin <qinmin@chromium.org> on 2013-01-28
Reviewed by Adam Barth.

The ordering of OnLoad() of the 2 child iframes is racy.
Fixed by assigning title from the parent frame.

* fast/events/touch/multi-touch-inside-iframes.html:
* fast/events/touch/resources/multi-touch-inside-iframes2.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141042 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[BlackBerry] Reduce the region that is spellchecked on keystroke
nghanavatian@rim.com [Tue, 29 Jan 2013 04:37:59 +0000 (04:37 +0000)]
[BlackBerry] Reduce the region that is spellchecked on keystroke
https://bugs.webkit.org/show_bug.cgi?id=108115

Reviewed by Rob Buis.

PR288217
Instead of blindly checking text until endOfDocument, we should be honoring the boundaries of
the VisibleSelection that is passed into SpellingHandler. Though this results in the same behavior
on focus, this dramatically reduces the region that is rechecked when a key is hit.

Internally reviewed by Mike Fenton.

* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::requestCheckingOfString):
* WebKitSupport/SpellingHandler.cpp:
(BlackBerry::WebKit::SpellingHandler::spellCheckTextBlock):
(BlackBerry::WebKit::SpellingHandler::parseBlockForSpellChecking):
* WebKitSupport/SpellingHandler.h:
(SpellingHandler):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141041 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[TexMap] Enable debug borders and repaint counter via Settings.
commit-queue@webkit.org [Tue, 29 Jan 2013 04:32:00 +0000 (04:32 +0000)]
[TexMap] Enable debug borders and repaint counter via Settings.
https://bugs.webkit.org/show_bug.cgi?id=107198

Patch by Huang Dongsung <luxtella@company100.net> on 2013-01-28
Reviewed by Benjamin Poulain.

Source/WebKit/efl:

If WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS is set to 1, set
showDebugBorders and showRepaintCounter in Settings to true.

* ewk/ewk_view.cpp:
(_ewk_view_priv_new):

Source/WebKit/gtk:

If WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS is set to 1, set
showDebugBorders and showRepaintCounter in Settings to true.

* webkit/webkitwebview.cpp:
(webkit_web_view_update_settings):

Source/WebKit/qt:

If WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS is set to 1, set
showDebugBorders and showRepaintCounter in Settings to true.

* Api/qwebsettings.cpp:
(QWebSettingsPrivate::apply):

Source/WebKit2:

Currently, if the environment variable WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS
is set to 1, only CoordinatedBacking shows debug borders and repaint counter.

This patch makes the environment variable change Settings.

In addition, Qt uses WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS instead of
QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS from now.

After Bug 105787, all backing stores and platform layers in TextureMapper can
show debug borders and repaint counter.

* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsSetProperty):
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::initialize):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141040 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoposition:fixed that doesn't render any content should not force compositing
simon.fraser@apple.com [Tue, 29 Jan 2013 04:16:56 +0000 (04:16 +0000)]
position:fixed that doesn't render any content should not force compositing
https://bugs.webkit.org/show_bug.cgi?id=108112

Source/WebCore:

Reviewed by Beth Dakin.

It's not uncommon for pages to have position:fixed elements with no content.
When these are behind other elements, they can cause those other elements
to become composited, using lots of backing store memory.

Optimize for the case where the position:fixed element has no rendered
content and no children by not making it composited in that case.

Test: compositing/layer-creation/fixed-position-no-content.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hasNonEmptyChildRenderers): Moved from RenderLayerBacking.cpp.
(WebCore::hasBoxDecorations): Ditto.
(WebCore::RenderLayer::hasBoxDecorationsOrBackground): Ditto.
(WebCore::RenderLayer::hasVisibleBoxDecorations): Check for visibility:visible, box decorations and
overflow controls.
(WebCore::RenderLayer::isVisuallyNonEmpty): Returns true if this layer has some visible
representation.
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Need to call updateDescendantDependentFlags()
to ensure that the visibility flags are up to date.
(WebCore::RenderLayerBacking::updateDrawsContent): Call RenderLayer::hasBoxDecorationsOrBackground() now.
(WebCore::RenderLayerBacking::paintsBoxDecorations): Call RenderLayer::hasVisibleBoxDecorations() now.
(WebCore::RenderLayerBacking::paintsChildren): Call RenderLayer::hasNonEmptyChildRenderers().
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Whitespace.
(WebCore::RenderLayerBacking::containsPaintedContent): Call RenderLayer::hasBoxDecorationsOrBackground().
(WebCore::RenderLayerBacking::isDirectlyCompositedImage): Ditto.
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition): If the layer has no content to paint,
or visible descendant layers, then don't make it composited.

LayoutTests:

Reviewed by Beth Dakin.

Change tests to put a background color on position:fixed elements that need to be composited.
New test with an empty fixed position element.

* compositing/layer-creation/fixed-position-change-out-of-view-in-view.html:
* compositing/layer-creation/fixed-position-no-content-expected.txt: Added.
* compositing/layer-creation/fixed-position-no-content.html: Copied from LayoutTests/compositing/layer-creation/fixed-position-out-of-view.html.
* compositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html:
* compositing/layer-creation/fixed-position-out-of-view-scaled.html:
* compositing/layer-creation/fixed-position-out-of-view.html:
* platform/mac/tiled-drawing/fixed/fixed-position-out-of-view-negative-zindex.html:
* platform/mac/tiled-drawing/fixed/fixed-position-out-of-view.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141039 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium] Skipping mathml tests because MATHML was disasbled.
keishi@webkit.org [Tue, 29 Jan 2013 03:51:54 +0000 (03:51 +0000)]
[Chromium] Skipping mathml tests because MATHML was disasbled.

Unreviewed. Gardening.

* platform/chromium/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141038 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMove Mach port handling from WorkQueue to Connection
andersca@apple.com [Tue, 29 Jan 2013 03:47:01 +0000 (03:47 +0000)]
Move Mach port handling from WorkQueue to Connection
https://bugs.webkit.org/show_bug.cgi?id=108140

Reviewed by Sam Weinig.

Instead of having WorkQueue know about Mach port sources, just fold that
functionality directly into Connection. This lets us get rid of the generic source
handling from WorkQueue.

* Platform/CoreIPC/Connection.h:
(Connection):
* Platform/CoreIPC/mac/ConnectionMac.cpp:
(CoreIPC::Connection::platformInvalidate):
(CoreIPC::createDataAvailableSource):
(CoreIPC):
(CoreIPC::Connection::open):
(CoreIPC::Connection::initializeDeadNameSource):
* Platform/WorkQueue.h:
(WorkQueue::dispatchQueue):
(WorkQueue):
* Platform/mac/WorkQueueMac.cpp:
(WorkQueue::platformInvalidate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141037 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAvoid doing work at 60fps for tiled layers when not necessary
simon.fraser@apple.com [Tue, 29 Jan 2013 03:42:59 +0000 (03:42 +0000)]
Avoid doing work at 60fps for tiled layers when not necessary
https://bugs.webkit.org/show_bug.cgi?id=108135

Reviewed by Dean Jackson.

When there were any tiled layers on the page, we would run a CVDisplayLink
to cause GraphicsLayerCA to flush, in order to update tiled layer visible rects.
This is overkill; we should only do this if the tiled layer is affected by
an accelerated animation.

Fix by tracking whether an ancestor has a running animation when committing
GraphicsLayerCAs.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::flushCompositingState): Start with an empty CommitState.
(WebCore::GraphicsLayerCA::recursiveCommitChanges): Push CommitState for
each layer, which tracks whether an ancestor has a running transform animation.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): updateLayerAnimations() renamed.
(WebCore::GraphicsLayerCA::updateAnimations): Renamed from updateLayerAnimations().
(WebCore::GraphicsLayerCA::isRunningTransformAnimation): Look in the map of running
animations for one affecting transform. This list is normally small (one item).
* platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::CommitState::CommitState):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141036 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agocompositing/reflections/become-simple-composited-reflection.html pixel result shows bug
simon.fraser@apple.com [Tue, 29 Jan 2013 03:42:34 +0000 (03:42 +0000)]
compositing/reflections/become-simple-composited-reflection.html pixel result shows bug
https://bugs.webkit.org/show_bug.cgi?id=107174

Reviewed by Dean Jackson.

When we have a content layer for solid color, we need to update reflection
clones when that color changes.

Tested by the pixel test for compositing/reflections/become-simple-composited-reflection.html.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateContentsColorLayer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141035 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[v8] Security feature: JavaScript Bindings hardening
abarth@webkit.org [Tue, 29 Jan 2013 02:37:52 +0000 (02:37 +0000)]
[v8] Security feature: JavaScript Bindings hardening
https://bugs.webkit.org/show_bug.cgi?id=106608

Source/WebCore:

The patch adds a check at wrapper creation time to enuse that the
object being wrapped is not already free, to the extent that we know
the information about the type of the object as provided in the IDL.

Patch by Tom Sepez <tsepez@chromium.org> on 2013-01-28
Reviewed by Adam Barth.

Patch is correct if existing tests pass without new crashes.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
(GenerateToV8Converters):
(GetNativeTypeForConversions):
(GetGnuVTableRefForInterface):
(GetGnuVTableNameForInterface):
(GetGnuMangledNameForInterface):
(GetGnuVTableOffsetForType):
(GetWinVTableRefForInterface):
(GetWinVTableNameForInterface):
(GetWinMangledNameForInterface):
(GetNamespaceForInterface):
(GetImplementationLacksVTableForInterface):
(GetV8SkipVTableValidationForInterface):
Update code generation to add object validity tests under the control
of the ENABLE_BINDING_INTEGRITY option.

* Modules/filesystem/DirectoryReader.idl:
* Modules/filesystem/DirectoryReaderSync.idl:
* Modules/filesystem/EntryArray.idl:
* Modules/filesystem/EntryArraySync.idl:
* Modules/filesystem/Metadata.idl:
* Modules/gamepad/Gamepad.idl:
* Modules/gamepad/GamepadList.idl:
* Modules/geolocation/Geoposition.idl:
* Modules/geolocation/PositionError.idl:
* Modules/indexeddb/IDBFactory.idl:
* Modules/indexeddb/IDBIndex.idl:
* Modules/indexeddb/IDBKeyRange.idl:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/mediastream/RTCStatsElement.idl:
* Modules/mediastream/RTCStatsReport.idl:
* Modules/quota/StorageInfo.idl:
* Modules/speech/SpeechGrammar.idl:
* Modules/speech/SpeechGrammarList.idl:
* Modules/speech/SpeechRecognitionAlternative.idl:
* Modules/speech/SpeechRecognitionResult.idl:
* Modules/speech/SpeechRecognitionResultList.idl:
* Modules/webaudio/AudioBuffer.idl:
* Modules/webaudio/AudioDestinationNode.idl:
* Modules/webaudio/AudioListener.idl:
* Modules/webaudio/AudioSourceNode.idl:
* Modules/webaudio/WaveTable.idl:
* Modules/webdatabase/SQLError.idl:
* Modules/webdatabase/SQLException.idl:
* Modules/webdatabase/SQLResultSet.idl:
* Modules/webdatabase/SQLResultSetRowList.idl:
* Modules/webdatabase/SQLTransaction.idl:
* Modules/webdatabase/SQLTransactionSync.idl:
* bindings/scripts/IDLAttributes.txt:
* css/CSSPrimitiveValue.idl:
* css/CSSRule.idl:
* css/CSSRuleList.idl:
* css/CSSStyleDeclaration.idl:
* css/CSSValue.idl:
* css/CSSValueList.idl:
* css/Counter.idl:
* css/MediaList.idl:
* css/MediaQueryList.idl:
* css/RGBColor.idl:
* css/Rect.idl:
* css/StyleSheetList.idl:
* css/WebKitCSSFilterValue.idl:
* css/WebKitCSSMixFunctionValue.idl:
* css/WebKitCSSTransformValue.idl:
* dom/ClientRect.idl:
* dom/ClientRectList.idl:
* dom/Clipboard.idl:
* dom/DOMCoreException.idl:
* dom/DOMError.idl:
* dom/DOMImplementation.idl:
* dom/DOMNamedFlowCollection.idl:
* dom/DOMStringList.idl:
* dom/DOMStringMap.idl:
* dom/DataTransferItem.idl:
* dom/DataTransferItemList.idl:
* dom/DocumentFragment.idl:
* dom/Element.idl:
* dom/Entity.idl:
* dom/Event.idl:
* dom/EventException.idl:
* dom/MessageChannel.idl:
* dom/MouseEvent.idl:
* dom/MutationObserver.idl:
* dom/MutationRecord.idl:
* dom/NamedNodeMap.idl:
* dom/NodeFilter.idl:
* dom/NodeIterator.idl:
* dom/NodeList.idl:
* dom/Range.idl:
* dom/RangeException.idl:
* dom/Touch.idl:
* dom/TouchList.idl:
* dom/TreeWalker.idl:
* fileapi/FileError.idl:
* fileapi/FileException.idl:
* fileapi/FileList.idl:
* html/DOMFormData.idl:
* html/DOMTokenList.idl:
* html/DOMURL.idl:
* html/HTMLAllCollection.idl:
* html/HTMLCollection.idl:
* html/HTMLDialogElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLDocument.idl:
* html/HTMLElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLSelectElement.idl:
* html/HTMLSpanElement.idl:
* html/HTMLUnknownElement.idl:
* html/ImageData.idl:
* html/MediaError.idl:
* html/MediaKeyError.idl:
* html/TimeRanges.idl:
* html/ValidityState.idl:
* html/canvas/ArrayBuffer.idl:
* html/canvas/ArrayBufferView.idl:
* html/canvas/CanvasGradient.idl:
* html/canvas/CanvasPattern.idl:
* html/canvas/Float32Array.idl:
* html/canvas/Float64Array.idl:
* html/canvas/Int16Array.idl:
* html/canvas/Int32Array.idl:
* html/canvas/Int8Array.idl:
* html/canvas/Uint16Array.idl:
* html/canvas/Uint32Array.idl:
* html/canvas/Uint8Array.idl:
* html/canvas/Uint8ClampedArray.idl:
* html/canvas/WebGLActiveInfo.idl:
* html/canvas/WebGLShaderPrecisionFormat.idl:
* html/track/TextTrack.idl:
* html/track/TextTrackCue.idl:
* html/track/TextTrackCueList.idl:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorFrontendHost.idl:
* inspector/JavaScriptCallFrame.idl:
* page/Coordinates.idl:
* page/Crypto.idl:
* page/MemoryInfo.idl:
* page/PagePopupController.idl:
* page/PerformanceEntryList.idl:
* page/SpeechInputResult.idl:
* page/SpeechInputResultList.idl:
* page/WebKitPoint.idl:
* svg/SVGAnimatedAngle.idl:
* svg/SVGAnimatedBoolean.idl:
* svg/SVGAnimatedEnumeration.idl:
* svg/SVGAnimatedInteger.idl:
* svg/SVGAnimatedLength.idl:
* svg/SVGAnimatedLengthList.idl:
* svg/SVGAnimatedNumber.idl:
* svg/SVGAnimatedNumberList.idl:
* svg/SVGAnimatedPreserveAspectRatio.idl:
* svg/SVGAnimatedRect.idl:
* svg/SVGAnimatedString.idl:
* svg/SVGAnimatedTransformList.idl:
* svg/SVGColor.idl:
* svg/SVGException.idl:
* svg/SVGPaint.idl:
* svg/SVGPathSeg.idl:
* svg/SVGRenderingIntent.idl:
* svg/SVGUnitTypes.idl:
* svg/SVGZoomAndPan.idl:
* testing/MallocStatistics.idl:
* testing/TypeConversions.idl:
* workers/WorkerLocation.idl:
* xml/DOMParser.idl:
* xml/XMLHttpRequestException.idl:
* xml/XMLSerializer.idl:
* xml/XPathEvaluator.idl:
* xml/XPathException.idl:
* xml/XPathExpression.idl:
* xml/XPathNSResolver.idl:
* xml/XPathResult.idl:
* xml/XSLTProcessor.idl:
Add exceptions to binding integrity checks to IDL.

Source/WebKit/chromium:

Patch by Tom Sepez <tsepez@chromium.org> on 2013-01-28
Reviewed by Adam Barth.

* features.gypi:
Added ENABLE_BINDING_INTEGRITY option.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141034 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[chromium] Build fix.
hclam@chromium.org [Tue, 29 Jan 2013 02:28:04 +0000 (02:28 +0000)]
[chromium] Build fix.

Unreviewed build fix. Remove the use of SkMutex from DiscardablePixelRef.

* platform/graphics/chromium/DiscardablePixelRef.cpp:
(WebCore::DiscardablePixelRefAllocator::allocPixelRef):
(WebCore::DiscardablePixelRef::DiscardablePixelRef):
* platform/graphics/chromium/DiscardablePixelRef.h:
(DiscardablePixelRef):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141033 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd StorageManager class to cmake ports
gyuyoung.kim@samsung.com [Tue, 29 Jan 2013 02:03:22 +0000 (02:03 +0000)]
Add StorageManager class to cmake ports

Unreviewed build fix. Though StorageManager was added to WK2 in r141024,
it is not added to cmake ports(EFL).

* CMakeLists.txt:
* PlatformEfl.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141032 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMake integer-modulo.js a try JS-Regress test
msaboff@apple.com [Tue, 29 Jan 2013 01:42:07 +0000 (01:42 +0000)]
Make integer-modulo.js a try JS-Regress test
https://bugs.webkit.org/show_bug.cgi?id=108130

Reviewed by Filip Pizlo.

Eliminated the LayoutTest calls.  Sum the values and throw an expection if it doesn't
match up.

* fast/js/regress/script-tests/integer-modulo.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141031 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoString constructed from Literals should be non-empty
benjamin@webkit.org [Tue, 29 Jan 2013 01:29:12 +0000 (01:29 +0000)]
String constructed from Literals should be non-empty
https://bugs.webkit.org/show_bug.cgi?id=108103

Reviewed by Eric Carlson.

Source/WebCore:

Strings from literal should not be constructed from empty strings. Use emptyString()
instead.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):

Source/WTF:

For efficiency, the construction from literal only works with valid non-empty strings.
One of the constructor was changed to fix an error from HTMLMediaElement.

This patch replaces the branch with an assertions.

* wtf/text/StringImpl.cpp:
(WTF::StringImpl::createFromLiteral):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141030 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd more assertions to the property storage use in arrays
oliver@apple.com [Tue, 29 Jan 2013 01:22:12 +0000 (01:22 +0000)]
Add more assertions to the property storage use in arrays
https://bugs.webkit.org/show_bug.cgi?id=107728

Reviewed by Filip Pizlo.

Add a bunch of assertions to array and object butterfly
usage.  This should make debugging somewhat easier.

I also converted a couple of assertions to release asserts
as they were so low cost it seemed a sensible thing to do.

* runtime/JSArray.cpp:
(JSC::JSArray::sortVector):
(JSC::JSArray::compactForSorting):
* runtime/JSObject.h:
(JSC::JSObject::getHolyIndexQuickly):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141029 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoImplement CompositionEvent constructor
haraken@chromium.org [Tue, 29 Jan 2013 01:01:37 +0000 (01:01 +0000)]
Implement CompositionEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=107919

Reviewed by Sam Weinig.

This patch implements a CompositionEvent constructor under
a DOM4_EVENTS_CONSTRUCTOR flag.

Spec: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm

Source/WebCore:

Test: fast/events/constructors/composition-event-constructor.html

* dom/CompositionEvent.cpp:
(WebCore::CompositionEventInit::CompositionEventInit):
(WebCore):
(WebCore::CompositionEvent::CompositionEvent):
* dom/CompositionEvent.h:
(CompositionEventInit):
(WebCore):
(CompositionEvent):
(WebCore::CompositionEvent::create):
(WebCore::CompositionEvent::data):
* dom/CompositionEvent.idl:

LayoutTests:

* fast/dom/constructed-objects-prototypes-expected.txt:
* fast/events/constructors/composition-event-constructor-expected.txt: Added.
* fast/events/constructors/composition-event-constructor.html: Added.
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/qt/TestExpectations:
* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:

* fast/dom/constructed-objects-prototypes-expected.txt:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/qt/TestExpectations:
* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141028 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago<rdar://problem/13098777>
weinig@apple.com [Tue, 29 Jan 2013 01:01:03 +0000 (01:01 +0000)]
<rdar://problem/13098777>
Add (allow mach-lookup (global-name "com.apple.tccd.system"))

Reviewed by Maciej Stachowiak.

* WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141027 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWebKit2 should notify the client if the NetworkProcess crashes.
beidson@apple.com [Tue, 29 Jan 2013 00:41:36 +0000 (00:41 +0000)]
WebKit2 should notify the client if the NetworkProcess crashes.
<rdar://problem/13090513> and https://bugs.webkit.org/show_bug.cgi?id=108126

Reviewed by Sam Weinig.

Add new client callback to the ContextClient:
* UIProcess/API/C/WKContext.h:
* UIProcess/WebContextClient.cpp:
(WebKit::WebContextClient::networkProcessDidCrash):
* UIProcess/WebContextClient.h:

Call out to the client when the NetworkProcess crashes:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::networkProcessCrashed):
* UIProcess/WebContext.h:

* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141026 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoPLATFORM(IOS) should come before __MAC_OS_X_VERSION_MIN_REQUIRED
psolanki@apple.com [Tue, 29 Jan 2013 00:18:29 +0000 (00:18 +0000)]
PLATFORM(IOS) should come before __MAC_OS_X_VERSION_MIN_REQUIRED
https://bugs.webkit.org/show_bug.cgi?id=108101

Reviewed by Benjamin Poulain.

Since iOS does not define __MAC_OS_X_VERSION_MIN_REQUIRED, any usage of
__MAC_OS_X_VERSION_MIN_REQUIRED should be after a PLATFORM(IOS) check.

Source/WebCore:

* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:

Source/WebKit/mac:

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):

Source/WebKit2:

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141025 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd StorageManager class
andersca@apple.com [Tue, 29 Jan 2013 00:08:21 +0000 (00:08 +0000)]
Add StorageManager class
https://bugs.webkit.org/show_bug.cgi?id=108127

Reviewed by Sam Weinig.

The StorageManager will be in charge of handling access to local and session storage
in the UI process.

* UIProcess/Storage/StorageManager.cpp: Added.
* UIProcess/Storage/StorageManager.h: Added.
* WebKit2.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141024 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[GTK] Pass ICU cppflags to libWebCoreSVG.la build
commit-queue@webkit.org [Tue, 29 Jan 2013 00:02:01 +0000 (00:02 +0000)]
[GTK] Pass ICU cppflags to libWebCoreSVG.la build
https://bugs.webkit.org/show_bug.cgi?id=108032

Patch by Kalev Lember <kalevlember@gmail.com> on 2013-01-28
Reviewed by Martin Robinson.

Fixes a linking error with new libicu 50 on Fedora rawhide.

* GNUmakefile.am:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141023 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRefactor ChangeLog and PrepareChangeLog to use FileSystem objects
commit-queue@webkit.org [Mon, 28 Jan 2013 23:53:54 +0000 (23:53 +0000)]
Refactor ChangeLog and PrepareChangeLog to use FileSystem objects
https://bugs.webkit.org/show_bug.cgi?id=107903

Patch by Timothy Loh <timloh@chromium.com> on 2013-01-28
Reviewed by Eric Seidel.

To make ChangeLog and PrepareChangeLog easier to test, we can use
FileSystem objects instead of just passing around paths.

* Scripts/webkitpy/common/checkout/changelog.py:
(ChangeLog.__init__):
(ChangeLog.parse_latest_entry_from_file):
(ChangeLog.parse_entries_from_file):
(ChangeLog.latest_entry):
(ChangeLog.update_with_unreviewed_message):
(ChangeLog.set_reviewer):
(ChangeLog.set_short_description_and_bug_url):
(ChangeLog.delete_entries):
(ChangeLog.prepend_text):
* Scripts/webkitpy/common/checkout/changelog_unittest.py:
(ChangeLogTest):
(test_parse_log_entries_from_changelog):
(test_latest_entry_parse_single_entry):
(test_set_reviewer):
(test_set_short_description_and_bug_url):
(test_delete_entries):
(test_prepend_text):
* Scripts/webkitpy/common/system/filesystem_mock.py:
(ReadableTextFileObject.__init__):
* Scripts/webkitpy/tool/steps/preparechangelog.py:
(PrepareChangeLog._ensure_bug_url):
(PrepareChangeLog._resolve_existing_entry):
(PrepareChangeLog.run):
* Scripts/webkitpy/tool/steps/preparechangelog_unittest.py:
(test_ensure_bug_url):
* Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py:
(_assert_message_for_revert_output):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141022 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, rolling out r141006.
commit-queue@webkit.org [Mon, 28 Jan 2013 23:48:46 +0000 (23:48 +0000)]
Unreviewed, rolling out r141006.
http://trac.webkit.org/changeset/141006
https://bugs.webkit.org/show_bug.cgi?id=108123

Broke chromium build (Requested by arv on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-01-28

* public/WebConsoleMessage.h:
* src/AssertMatchingEnums.cpp:
* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::addMessageToConsole):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141021 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoadding support for DiscardablePixelRef for caching lazily decoded images
wangxianzhu@chromium.org [Mon, 28 Jan 2013 23:40:01 +0000 (23:40 +0000)]
adding support for DiscardablePixelRef for caching lazily decoded images
https://bugs.webkit.org/show_bug.cgi?id=106842

Patch by Min Qin <qinmin@chromium.org> on 2013-01-28
Reviewed by Stephen White.

Source/WebCore:

This change allows using discardable memory in the deferred image decoding path.
Fully decoded images are unpinned and stored in ImageDecodingStore.
Partially decoded images are pinned and stored in ImageDecodingStore.
Discardable memory allocation could fail. Fall back to heap allocation in that case.
There is a separate size limit for heap entries and no limit on discardable entries.
New tests are added to ImageDecodingStoreTests

* WebCore.gypi:
* platform/graphics/chromium/DiscardablePixelRef.cpp: Added.
  Added implementation of the DiscardablePixelRef object that is backed by discardable memory.
  Memory allocated to the DiscardablePixelRef can be purged when it is unlocked.
(WebCore::DiscardablePixelRefAllocator::allocPixelRef):
(WebCore):
(WebCore::DiscardablePixelRef::DiscardablePixelRef):
(WebCore::DiscardablePixelRef::~DiscardablePixelRef):
(WebCore::DiscardablePixelRef::allocAndLockDiscardableMemory):
(WebCore::DiscardablePixelRef::onLockPixels):
(WebCore::DiscardablePixelRef::onUnlockPixels):
(WebCore::DiscardablePixelRef::isDiscardable):
* platform/graphics/chromium/DiscardablePixelRef.h: Added.
  Added class definition of the DiscardablePixelRef.
(WebCore):
(DiscardablePixelRefAllocator):
(DiscardablePixelRef):
* platform/graphics/chromium/ImageDecodingStore.cpp:
  Added new cache replacement strategy for DiscardablePixelRef.
(WebCore::ImageDecodingStore::lockCache):
(WebCore::ImageDecodingStore::overwriteAndLockCache):
(WebCore::ImageDecodingStore::prune):
(WebCore::ImageDecodingStore::insertCacheInternal):
(WebCore::ImageDecodingStore::removeFromCacheInternal):
* platform/graphics/chromium/ImageDecodingStore.h:
  Added isDiscardable() calls to check if a cache entry is discardable.
(WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
(WebCore::ImageDecodingStore::CacheEntry::overwriteCachedImage):
(WebCore::ImageDecodingStore::CacheEntry::isDiscardable):
(CacheEntry):
* platform/graphics/chromium/ImageFrameGenerator.cpp:
  Added some code to pass DiscardableMemoryAllocator to the image decoder.
(WebCore::ImageFrameGenerator::tryToScale):
(WebCore::ImageFrameGenerator::decode):
* platform/graphics/chromium/ImageFrameGenerator.h:
  Added a new member variable of type DiscardableMemoryAllocator.
(ImageFrameGenerator):
* platform/image-decoders/ImageDecoder.h:
  Added methods to pass Allocator to ImageFrame.
(ImageFrame):
(WebCore::ImageFrame::setMemoryAllocator):
(WebCore::ImageFrame::allocator):
(ImageDecoder):
(WebCore::ImageDecoder::setMemoryAllocator):
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
  Added code to allocate pixel memory using the allocator passed from the caller.
(WebCore::ImageFrame::ImageFrame):
(WebCore::ImageFrame::operator=):
(WebCore::ImageFrame::setSize):

Source/WebKit/chromium:

Adding new tests for ImageDecodingStore

* WebKit.gypi:
* tests/ImageDecodingStoreTest.cpp:
(WebCore::ImageDecodingStoreTest::createCompleteImage):
(WebCore::ImageDecodingStoreTest::createIncompleteImage):
(WebCore::TEST_F):
(WebCore):
* tests/MockDiscardablePixelRef.h: Added.
(WebCore):
(MockDiscardablePixelRef):
(WebCore::MockDiscardablePixelRef::MockDiscardablePixelRef):
(WebCore::MockDiscardablePixelRef::~MockDiscardablePixelRef):
(WebCore::MockDiscardablePixelRef::discard):
(WebCore::MockDiscardablePixelRef::onLockPixels):
(WebCore::MockDiscardablePixelRef::onUnlockPixels):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141020 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium, Mobile] Do not show disambiguation pop up in mobile sites
commit-queue@webkit.org [Mon, 28 Jan 2013 23:38:14 +0000 (23:38 +0000)]
[Chromium, Mobile] Do not show disambiguation pop up in mobile sites
https://bugs.webkit.org/show_bug.cgi?id=107607

Patch by Dan Alcantara <dfalcantara@chromium.org> on 2013-01-28
Reviewed by Adam Barth.

Add a check before showing the disambiguation popup to prevent it from appearing
on mobile sites.  Makes a similar test to the current disambiguation popup test
that expects the popup to never appear.

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::handleGestureEvent):
(WebKit):
(WebKit::WebViewImpl::isLikelyMobileSite):
* src/WebViewImpl.h:
(WebViewImpl):
* tests/WebFrameTest.cpp:
* tests/data/disambiguation_popup_mobile_site.html: Added.

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::handleGestureEvent):
(WebKit):
(WebKit::WebViewImpl::shouldDisableDesktopWorkarounds):
* src/WebViewImpl.h:
(WebViewImpl):
* tests/WebFrameTest.cpp:
* tests/data/disambiguation_popup_mobile_site.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141019 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium] Fix the build.
schenney@chromium.org [Mon, 28 Jan 2013 23:32:58 +0000 (23:32 +0000)]
[Chromium] Fix the build.

Unreviewed build fix.

* src/AssertMatchingEnums.cpp: Move the include to the right place and remove the bad directory prefix.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141018 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMore work on UI side local storage
andersca@apple.com [Mon, 28 Jan 2013 23:20:06 +0000 (23:20 +0000)]
More work on UI side local storage
https://bugs.webkit.org/show_bug.cgi?id=108119

Reviewed by Beth Dakin.

* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Storage/StorageNamespaceProxy.cpp:
(WebKit::StorageNamespaceProxy::createSessionStorageNamespace):
Rename create to createSessionStorageNamespace and make it take a WebPage.

(WebKit::StorageNamespaceProxy::StorageNamespaceProxy):
Add WebPage parameter.

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::sessionStorageNamespace):
Add an #ifdef for enabling UI side storage.

* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::page):
Call new WebPage::fromCorePage helper.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::fromCorePage):
Add new function for getting a WebPage from a WebCore::Page.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141017 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd myself to committers.py
rtoy@google.com [Mon, 28 Jan 2013 23:15:26 +0000 (23:15 +0000)]
Add myself to committers.py
https://bugs.webkit.org/show_bug.cgi?id=107992

Reviewed by kbr@google.com.

* Scripts/webkitpy/common/config/committers.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141016 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, rolling out r140869.
commit-queue@webkit.org [Mon, 28 Jan 2013 23:07:00 +0000 (23:07 +0000)]
Unreviewed, rolling out r140869.
http://trac.webkit.org/changeset/140869
https://bugs.webkit.org/show_bug.cgi?id=108120

"Crashes on http://en.wikipedia.org/wiki/Wikipedia" (Requested
by tonyg-cr on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-01-28

Source/WebCore:

* page/FrameView.cpp:
(WebCore::FrameView::visibleContentsResized):
* platform/ScrollView.cpp:
(WebCore::ScrollView::setFixedLayoutSize):
(WebCore::ScrollView::setUseFixedLayout):

Source/WebKit/chromium:

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::resize):
(WebKit::WebViewImpl::computePageScaleFactorLimits):
* tests/WebFrameTest.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141015 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium] Unreviewed gardening, removing Crash expectations from storage/indexeddb...
jsbell@chromium.org [Mon, 28 Jan 2013 23:05:09 +0000 (23:05 +0000)]
[Chromium] Unreviewed gardening, removing Crash expectations from storage/indexeddb tests.
https://bugs.webkit.org/show_bug.cgi?id=108048

Unreviewed.

* platform/chromium/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141014 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, rolling out r140934, r140935, and r140937.
commit-queue@webkit.org [Mon, 28 Jan 2013 22:47:38 +0000 (22:47 +0000)]
Unreviewed, rolling out r140934, r140935, and r140937.
http://trac.webkit.org/changeset/140934
http://trac.webkit.org/changeset/140935
http://trac.webkit.org/changeset/140937
https://bugs.webkit.org/show_bug.cgi?id=108117

Re-land some speculative rollouts - see wkbug.com/108048 for
context (Requested by jsbell on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-01-28

Source/WebCore:

* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBCallbacks.h:
(IDBCallbacks):
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::create):
(IDBCursorBackendImpl):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::onVersionChange):
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setIndexesReady):
(WebCore::OpenCursorOperation::perform):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/IDBFactory.h:
(WebCore):
(IDBFactory):
* Modules/indexeddb/IDBFactory.idl:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::openCursor):
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::openCursor):
(IDBObjectStore):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::create):
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onBlocked):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::dispatchEvent):
* Modules/indexeddb/IDBOpenDBRequest.h:
(IDBOpenDBRequest):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::create):
(WebCore::IDBRequest::IDBRequest):
* Modules/indexeddb/IDBRequest.h:
(IDBRequest):
(WebCore::IDBRequest::taskType):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::scheduleTask):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::scheduleTask):
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Removed.
* Modules/indexeddb/IDBUpgradeNeededEvent.h: Removed.
* Modules/indexeddb/IDBUpgradeNeededEvent.idl: Removed.
* Modules/indexeddb/IDBVersionChangeEvent.cpp:
(WebCore::IDBVersionChangeEvent::create):
(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
* Modules/indexeddb/IDBVersionChangeEvent.h:
(IDBVersionChangeEvent):
(WebCore::IDBVersionChangeEvent::oldVersion):
(WebCore::IDBVersionChangeEvent::newVersion):
* Modules/indexeddb/IDBVersionChangeEvent.idl:
* Modules/indexeddb/IDBVersionChangeRequest.cpp: Removed.
* Modules/indexeddb/IDBVersionChangeRequest.h: Removed.
* Modules/indexeddb/IDBVersionChangeRequest.idl: Removed.
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventNames.in:
* dom/EventTarget.h:
(WebCore):
* dom/EventTargetFactory.in:

Source/WebKit/chromium:

* public/WebIDBCallbacks.h:
(WebIDBCallbacks):
* src/AssertMatchingEnums.cpp:
* src/IDBCallbacksProxy.cpp:
* src/IDBCallbacksProxy.h:
(IDBCallbacksProxy):
* src/WebIDBCallbacksImpl.cpp:
* src/WebIDBCallbacksImpl.h:
(WebIDBCallbacksImpl):
* tests/IDBAbortOnCorruptTest.cpp:
* tests/IDBDatabaseBackendTest.cpp:

LayoutTests:

* storage/indexeddb/delete-in-upgradeneeded-close-in-open-success-expected.txt:
* storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange-expected.txt:
* storage/indexeddb/deletedatabase-blocked-expected.txt:
* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-expected.txt:
* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers-expected.txt:
* storage/indexeddb/deletedatabase-delayed-by-versionchange-expected.txt:
* storage/indexeddb/deletedatabase-not-blocked-expected.txt:
* storage/indexeddb/events-expected.txt: Added.
* storage/indexeddb/events.html: Added.
* storage/indexeddb/intversion-gated-on-delete-expected.txt:
* storage/indexeddb/intversion-long-queue-expected.txt:
* storage/indexeddb/intversion-upgrades-expected.txt:
* storage/indexeddb/removed-expected.txt:
* storage/indexeddb/resources/delete-in-upgradeneeded-close-in-open-success.js:
(versionChangeCallback):
* storage/indexeddb/resources/delete-in-upgradeneeded-close-in-versionchange.js:
(versionChangeCallback):
* storage/indexeddb/resources/deletedatabase-blocked.js:
(test.request.onsuccess.openOnSuccess.h.onversionchange):
* storage/indexeddb/resources/deletedatabase-delayed-by-open-and-versionchange.js:
(prepareDatabase.h.onversionchange):
* storage/indexeddb/resources/deletedatabase-delayed-by-versionchange.js:
(h1OpenSuccess.h1.onversionchange.h1OnVersionChange.h1.onversionchange):
(h1OpenSuccess.h1.onversionchange):
(h1OpenSuccess.request.onsuccess.h2OpenSuccess.h2.onversionchange):
* storage/indexeddb/resources/deletedatabase-not-blocked.js:
(test.request.onsuccess.openOnSuccess.h.onversionchange):
* storage/indexeddb/resources/events.js: Added.
(test):
* storage/indexeddb/resources/intversion-gated-on-delete.js:
(firstSuccessCallback):
(connection1VersionChangeCallback):
* storage/indexeddb/resources/intversion-long-queue.js:
(connection1VersionChangeCallback):
(deleteDatabaseBlockedCallback):
(deleteDatabaseSuccessCallback):
(connection2VersionChangeEvent):
* storage/indexeddb/resources/removed.js:
(test):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141013 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed Mac build fix. Add an export for a function that may be
joepeck@webkit.org [Mon, 28 Jan 2013 22:42:20 +0000 (22:42 +0000)]
Unreviewed Mac build fix. Add an export for a function that may be
accessed outside of WebCore (RenderLayer::needsCompositedScrolling).

* WebCore.exp.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141012 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Mac] Update PageVisibilityState when WebView is hidden / visible
joepeck@webkit.org [Mon, 28 Jan 2013 22:38:26 +0000 (22:38 +0000)]
[Mac] Update PageVisibilityState when WebView is hidden / visible
https://bugs.webkit.org/show_bug.cgi?id=107509

Source/WebKit/mac:

Reviewed by NOBODY (OOPS!).

* WebView/WebView.mm:
* WebView/WebViewPrivate.h:
(-[WebView _commonInitializationWithFrameName:groupName:]):
Set the initial visibility of the page.

(-[WebView addWindowObserversForWindow:]):
(-[WebView removeWindowObservers]):
(-[WebView _isViewVisible]):
(-[WebView _updateVisibilityState]):
(-[WebView viewDidMoveToWindow]):
(-[WebView _windowVisibilityChanged:]):
Update visibility state in the same ways WK2 does. This involves
listening for some new NSWindow delegates.

Tools:

Add a test that PageVisibility of WK1 WebViews and WK2 WKViews
automatically changes between hidden and visible as the view is added
and removed from window, or when it is in a window that changes
visibility, for instance by minimizing / deminimizing.

Reviewed by NOBODY (OOPS!).

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.html: Added.
* TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm: Added.
(-[PageVisibilityStateDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]):
(runJavaScriptAlert):
(PageVisibilityStateWithWindowChanges):
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::initializeView):
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::deinitializeView):
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::runTest):
(TestWebKitAPI::TEST_F):
Test visibility state of a page in a WebView/WKView with different window states.

* TestWebKitAPI/mac/WebKitAgnosticTest.h:
* TestWebKitAPI/mac/WebKitAgnosticTest.mm:
(TestWebKitAPI::WebKitAgnosticTest::deinitializeView):
(TestWebKitAPI::WebKitAgnosticTest::runWebKit1Test):
(TestWebKitAPI::WebKitAgnosticTest::runWebKit2Test):
Add a WK1 and WK2 deinitializeView to balance initializeView.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141011 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoImprove PageVisibility API with enums
joepeck@webkit.org [Mon, 28 Jan 2013 22:38:23 +0000 (22:38 +0000)]
Improve PageVisibility API with enums
https://bugs.webkit.org/show_bug.cgi?id=107364

Reviewed by Sam Weinig.

Source/WebKit/mac:

* WebView/WebView.mm:
* WebView/WebViewPrivate.h:
(corePageVisibilityState):
(-[WebView _setVisibilityState:isInitialState:]):
Switch the private API form int to a WebPageVisibilityState enum.

Source/WebKit2:

* Shared/API/c/WKPageVisibilityTypes.h: Added.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toPageVisibilityState):
Create an enum for page visibility APIs and a conversion function
for the WK2 values to WebCore values.

* Target.pri:
* GNUmakefile.list.am:
* WebKit2.xcodeproj/project.pbxproj:
Add WKPageVisibilityTypes.h to the build as a private export.

* UIProcess/API/C/WKPage.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageSetVisibilityState):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setVisibilityState):
UIProcess API to set visibility state. WebPageProxy already
had m_visibilityState, so update that when setter is used.

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.h:
Remove the old SPI for WebKitTestRunner. Tests now use the C API.

* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setVisibilityState):
* WebProcess/WebPage/WebPage.messages.in:
Update the existing WebPage API to use uint32_t, which matches
other enum message types.

Tools:

* DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::resetPageVisibility):
(TestRunner::setPageVisibility):
Update the WK1 test code to use the new WK1 enums.

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::setVisibilityState):
* WebKitTestRunner/InjectedBundle/InjectedBundle.h:
(InjectedBundle):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setPageVisibility):
(WTR::TestRunner::resetPageVisibility):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::setVisibilityState):
* WebKitTestRunner/TestController.h:
(TestController):
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
Update the WK2 test code to use the new WK2 API and enums.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2/PageVisibilityState.cpp: Added.
(TestWebKitAPI):
(TestWebKitAPI::setPageVisibilityStateWithEvalContinuation):
(TestWebKitAPI::assertSerializedScriptValueIsStringValue):
(TestWebKitAPI::didRunStep1StateChangeVisibleToHidden):
(TestWebKitAPI::didRunStep2StateChangeHiddenToPrerender):
(TestWebKitAPI::didRunStep3StateChangePrerenderToPreview):
(TestWebKitAPI::didRunStep4InStatePreview):
(TestWebKitAPI::TEST):
Test the new WK2 API with all enum types.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141010 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCrash inside RenderBlock::layoutRunsAndFloatsInRange in the widow code
jchaffraix@webkit.org [Mon, 28 Jan 2013 22:28:21 +0000 (22:28 +0000)]
Crash inside RenderBlock::layoutRunsAndFloatsInRange in the widow code
https://bugs.webkit.org/show_bug.cgi?id=108084

Reviewed by Dean Jackson.

This is a blind fix based on the code and Chromium's stack-traces.

Unfortunately no new test as I couldn't get a local reproduction.

* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
Added a missing NULL-check: the previous 'while' finish if |lineBox|
is NULL and we don't want to crash in this case.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141009 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[EFL][WK2] Use C API inside ewk_download_job
christophe.dumez@intel.com [Mon, 28 Jan 2013 22:22:16 +0000 (22:22 +0000)]
[EFL][WK2] Use C API inside ewk_download_job
https://bugs.webkit.org/show_bug.cgi?id=107810

Reviewed by Anders Carlsson.

Use C API inside ewk_download_job instead of accessing internal C++
classes directly, to avoid violating API layering.

* UIProcess/API/C/WKDownload.cpp:
(WKDownloadGetID): Add C API to get the download ID as we need it to
support our public API and it seems like a useful addition.
* UIProcess/API/C/WKDownload.h:
* UIProcess/API/efl/ewk_download_job.cpp:
(EwkDownloadJob::EwkDownloadJob):
(EwkDownloadJob::id):
(EwkDownloadJob::request):
(EwkDownloadJob::cancel):
* UIProcess/API/efl/ewk_download_job_private.h:
(EwkDownloadJob::create):
(EwkDownloadJob):
* UIProcess/efl/DownloadManagerEfl.cpp:
(WebKit::DownloadManagerEfl::decideDestinationWithSuggestedFilename):
(WebKit::DownloadManagerEfl::didReceiveResponse):
(WebKit::DownloadManagerEfl::didCreateDestination):
(WebKit::DownloadManagerEfl::didReceiveData):
(WebKit::DownloadManagerEfl::didFail):
(WebKit::DownloadManagerEfl::didCancel):
(WebKit::DownloadManagerEfl::didFinish):
(WebKit::DownloadManagerEfl::registerDownloadJob): Rename
registerDownload() to registerDownloadJob() for consistency with
unregisterDownloadJob().
(WebKit::DownloadManagerEfl::ewkDownloadJob): Rename downloadJob() to
ewkDownloadJob() for clarity since it returns a EwkDownload object.
Also take a WKDownloadRef in argument instead of an identifier since
all the callers have a WKDownloadRef and it makes their code simpler.
Finally, make the getter non-const since it returns a non-const pointer.
(WebKit::DownloadManagerEfl::unregisterDownloadJob): Take a
WKDownloadRef in argument instead of an identifier since all the
callers have a WKDownloadRef and it makes their code simpler.
* UIProcess/efl/DownloadManagerEfl.h:
(DownloadManagerEfl):
* UIProcess/efl/PageClientBase.cpp:
(WebKit::PageClientBase::handleDownloadRequest):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141008 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago"clang: warning: not using the clang compiler for C++ inputs" due to hard-coding...
tony@chromium.org [Mon, 28 Jan 2013 22:06:01 +0000 (22:06 +0000)]
"clang: warning: not using the clang compiler for C++ inputs" due to hard-coding of /usr/bin/clang in WebCore.gyp
https://bugs.webkit.org/show_bug.cgi?id=108089

Reviewed by Ojan Vafai.

Use gcc since older versions of clang (with Xcode 3.2) warn that they are going to use gcc anyway.
These warnings are showing up on the main Chromium waterfall too:
http://build.chromium.org/p/chromium/builders/Mac/builds/19113/steps/compile/logs/stdio

No new tests, this is a build change.

* WebCore.gyp/WebCore.gyp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141007 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[chromium] WebConsoleMessage is missing LevelDebug (chromium bug 172416)
commit-queue@webkit.org [Mon, 28 Jan 2013 21:47:44 +0000 (21:47 +0000)]
[chromium] WebConsoleMessage is missing LevelDebug (chromium bug 172416)
https://bugs.webkit.org/show_bug.cgi?id=108004
http://code.google.com/p/chromium/issues/detail?id=172416

console.debug triggers a NOTREACHED() assertation in Chromium. This
is because WebCore::MessageLevel contains 5 levels, including debug,
where WebConsoleMessage::Level is missing a "debug" level. Add a
WebConsoleMessage::LevelDebug so that it can get passed up to the
renderer even if it doesn't make use of that now.

Requires another patch to chromium itself to fix chromium bug 172416
but this is a prerequisite.

Also add an enum compile time check to AssertMatchingEnums.cpp,

Patch by Kevin Day <kevinday@gmail.com> on 2013-01-28
Reviewed by Jochen Eisinger.

* public/WebConsoleMessage.h:
* src/AssertMatchingEnums.cpp:
* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::addMessageToConsole):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141006 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMove hasAuthorShadowRoot to Element
esprehn@chromium.org [Mon, 28 Jan 2013 21:45:11 +0000 (21:45 +0000)]
Move hasAuthorShadowRoot to Element
https://bugs.webkit.org/show_bug.cgi?id=108071

Reviewed by Dimitri Glazkov.

Move hasAuthorShadowRoot to Element and get rid of unneccesary booleans
in HTMLProgressElement and HTMLMeterElement. Also get rid of
ShadowRoot::isAccessible since it obfuscates what's actually happening
inside of Element::shadowRoot().

No new tests, just refactoring.

* dom/Element.cpp:
(WebCore::Element::shadowRoot):
(WebCore::Element::hasAuthorShadowRoot):
* dom/Element.h:
(Element):
* dom/ShadowRoot.h:
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::HTMLMeterElement):
* html/HTMLMeterElement.h:
(HTMLMeterElement):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::HTMLProgressElement):
* html/HTMLProgressElement.h:
(HTMLProgressElement):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141005 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoPDFPlugin: getMainResourceDataOfFrame should return PDFPlugin's data so that Save...
timothy_horton@apple.com [Mon, 28 Jan 2013 21:42:22 +0000 (21:42 +0000)]
PDFPlugin: getMainResourceDataOfFrame should return PDFPlugin's data so that Save... works
https://bugs.webkit.org/show_bug.cgi?id=108060
<rdar://problem/13075454>

Reviewed by Sam Weinig.

* WebProcess/Plugins/Netscape/NetscapePlugin.h: Implement getResourceData.
* WebProcess/Plugins/PDF/SimplePDFPlugin.h:
* WebProcess/Plugins/PDF/SimplePDFPlugin.mm: Implement getResourceData, returning the accumulated
data if it exists and has finished loading.
(WebKit::SimplePDFPlugin::getResourceData):
* WebProcess/Plugins/Plugin.h: Add getResourceData, which hands out a raw pointer/size pair
to the plugin's "main resource" data.
* WebProcess/Plugins/PluginProxy.h: Implement getResourceData.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::getResourceData): Forward getResourceData through to the plugin.
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getMainResourceDataOfFrame): If the requested frame is backed by a PluginDocument,
attempt to ask the PluginView for its resource data.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141004 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[wk2] WKView's intrinsicContentSize should only report a flexible width if the conten...
timothy_horton@apple.com [Mon, 28 Jan 2013 21:36:49 +0000 (21:36 +0000)]
[wk2] WKView's intrinsicContentSize should only report a flexible width if the content width is less than the minimum width
https://bugs.webkit.org/show_bug.cgi?id=108056

Reviewed by Simon Fraser.

We're currently reporting a flexible width if the intrinsic
content size is less than *or equal* to the minimum layout
width. This is wrong and causes ping-ponging between flexible
and inflexible width in cases where autolayout fits our
view to exactly the intrinsic content size. It should be strictly
less than instead.

* UIProcess/API/mac/WKView.mm:
(-[WKView _setIntrinsicContentSize:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141003 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMove ensureUserAgentShadowRoot to Element
esprehn@chromium.org [Mon, 28 Jan 2013 21:36:13 +0000 (21:36 +0000)]
Move ensureUserAgentShadowRoot to Element
https://bugs.webkit.org/show_bug.cgi?id=108070

Reviewed by Dimitri Glazkov.

Move ensureUserAgentShadowRoot to Element where the other
methods related to shadow roots are and get rid of the
unnecessarily specific cast to HTMLElement.

No new tests, just refactoring.

* dom/Element.cpp:
(WebCore::Element::ensureUserAgentShadowRoot): Moved from FormAssociatedElement.
* dom/Element.h:
(Element):
* html/FormAssociatedElement.cpp:
* html/FormAssociatedElement.h:
(FormAssociatedElement):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141002 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRevert 130950
cevans@google.com [Mon, 28 Jan 2013 21:20:50 +0000 (21:20 +0000)]
Revert 130950
BUG=163593

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141000 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoPromote composited-scrolling layers to stacking containers.
vollick@chromium.org [Mon, 28 Jan 2013 21:18:14 +0000 (21:18 +0000)]
Promote composited-scrolling layers to stacking containers.
https://bugs.webkit.org/show_bug.cgi?id=106142

Reviewed by Simon Fraser.

With this patch, RenderLayers that use composited scrolling are
treated as stacking contexts. Since isStackingContainer now depends on
the value of m_needsCompositedScrolling, special care needed to be
taken to ensure that the value of isStackingContainer is not used when
updating m_needsCompositedScrolling. In particular, the code for
rebuilding the layer lists needed to be generalized so that we could
build the layer lists using the value of isStackingContext rather than
isStackingContainer when building the layer lists used to determine if
the descendants are contiguous in stacking order. Also, updating
m_needsCompositedScrolling can now affect stacking container status
and can therefore dirty layer lists.

Source/WebCore:

Test: compositing/overflow/composited-scrolling-creates-a-stacking-container.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
  Modified to use layer lists built based on isStackingContext rather
  than isStackingContainer.
(WebCore::RenderLayer::updateNeedsCompositedScrolling):
  This function can now affect stacking container status and layer
  lists.
(WebCore::RenderLayer::rebuildZOrderLists):
  Refactored to generalize layer list building.
(WebCore::RenderLayer::collectLayers):
  This function can now stop at either stacking containers or
  contexts.
(WebCore::RenderLayer::updateLayerListsIfNeeded):
  Layer lists may need to be built a 2nd time if we opt into
  composited scrolling.
* rendering/RenderLayer.h:
(RenderLayer):
(WebCore::RenderLayer::isStackingContainer):
  Returns true if we use composited scrolling.

LayoutTests:

* compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Added.
* compositing/overflow/composited-scrolling-creates-a-stacking-container.html: Added.
* platform/chromium/TestExpectations:
* platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140999 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRevert 140996
cevans@google.com [Mon, 28 Jan 2013 21:15:32 +0000 (21:15 +0000)]
Revert 140996
> Revert 130950
> BUG=163593

TBR=cevans@google.com

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140998 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[CSS Shaders] Parse @-webkit-filter
mvujovic@adobe.com [Mon, 28 Jan 2013 21:14:42 +0000 (21:14 +0000)]
[CSS Shaders] Parse @-webkit-filter
https://bugs.webkit.org/show_bug.cgi?id=106837

Reviewed by Dean Jackson.

Source/WebCore:

The new CSS Custom Filters syntax includes an @filter rule:
@filter IDENT { <custom-filter-description> }

IDENT is the filter name. For example:
@filter my-filter { ... }

<custom-filter-description> is a set of CSS properties, which are still under discussion in
the CSSWG.

This patch adds parsing and JS bindings for the prefixed at-rule. It does not add parsing
for any of the at-rule's internal properties.

Spec: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#the-atfilter-rule

Tests: css3/filters/custom/custom-filter-parsing-at-rule-invalid.html
       css3/filters/custom/custom-filter-parsing-at-rule-valid.html

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/objc/DOMCSS.mm:
(kitClass):
* bindings/v8/custom/V8CSSRuleCustom.cpp:
(WebCore::wrap):
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::createFilterRule):
(WebCore::CSSParser::detectAtToken):
* css/CSSParser.h:
* css/CSSPropertySourceData.h:
* css/CSSRule.h:
* css/CSSRule.idl:
    Only contains a CSSStyleDeclaration "style" property, like the other at-rules that are
    supposed to contain properties (e.g. CSSStyleRule, CSSFontFaceRule, CSSPageRule).
    Eventually, when it's specified, we should expose the filter name as well.
    Other at-rules IDL Spec: http://www.w3.org/TR/DOM-Level-2-Style/idl-definitions.html
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::reportMemoryUsage):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
(WebCore::StyleRuleFilter::StyleRuleFilter):
(WebCore::StyleRuleFilter::~StyleRuleFilter):
(WebCore::StyleRuleFilter::mutableProperties):
(WebCore::StyleRuleFilter::setProperties):
(WebCore::StyleRuleFilter::reportDescendantMemoryUsage):
* css/StyleRule.h:
(StyleRuleBase):
(WebCore::StyleRuleBase::isFilterRule):
(StyleRuleFilter):
(WebCore::StyleRuleFilter::create):
(WebCore::StyleRuleFilter::filterName):
(WebCore::StyleRuleFilter::properties):
(WebCore::StyleRuleFilter::copy):
* css/StyleSheetContents.cpp:
(WebCore::childRulesHaveFailedOrCanceledSubresources):
* css/WebKitCSSFilterRule.cpp: Added.
    WebKitCSSFilterRule is implemented similar to CSSFontFaceRule.
(WebCore::WebKitCSSFilterRule::WebKitCSSFilterRule):
(WebCore::WebKitCSSFilterRule::~WebKitCSSFilterRule):
(WebCore::WebKitCSSFilterRule::style):
(WebCore::WebKitCSSFilterRule::cssText):
    The CSS text implementation for WebKitCSSFilterRule is almost the same as
    CSSFontFaceRule. WebKitCSSFilterRule additionally needs to output the filter name in its
    syntax (e.g. @-webkit-filter my-filter { }).
(WebCore::WebKitCSSFilterRule::reattach):
(WebCore::WebKitCSSFilterRule::reportMemoryUsage):
* css/WebKitCSSFilterRule.h: Added.
(WebKitCSSFilterRule):
(WebCore::WebKitCSSFilterRule::create):
* css/WebKitCSSFilterRule.idl: Added.

LayoutTests:

Add positive and negative tests for parsing the @-webkit-filter rule.

Factored out common helper functions between the existing CSS Custom Filters parsing tests
and the new tests into custom-filter-parsing-common.js.

* css3/filters/custom/custom-filter-parsing-at-rule-invalid-expected.txt: Added.
* css3/filters/custom/custom-filter-parsing-at-rule-invalid.html: Added.
* css3/filters/custom/custom-filter-parsing-at-rule-valid-expected.txt: Added.
* css3/filters/custom/custom-filter-parsing-at-rule-valid.html: Added.
* css3/filters/custom/custom-filter-property-parsing-invalid.html:
* css3/filters/custom/custom-filter-property-parsing.html:
* css3/filters/script-tests/custom-filter-parsing-at-rule-invalid.js: Added.
(testInvalidFilterAtRule):
* css3/filters/script-tests/custom-filter-parsing-at-rule-valid.js: Added.
(testFilterAtRule):
    Tests @-webkit-filter rule parsing and its ability to hold CSS properties.
(testNestedRules):
    Tests nesting between at-rules, involving @-webkit-filter rules.
(checkRule):
    Factor out common rule checking functionality into its own helper function, so it can be
    reused.
* css3/filters/script-tests/custom-filter-parsing-common.js: Added.
(jsWrapperClass):
    Moved.
(shouldBeType):
    Moved.
* css3/filters/script-tests/custom-filter-property-parsing-invalid.js:
* css3/filters/script-tests/custom-filter-property-parsing.js:
* platform/chromium/css3/filters/custom/custom-filter-parsing-at-rule-valid-expected.txt:
    V8 represents WebKitCSSFilterRule a little differently.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140997 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRevert 130950
cevans@google.com [Mon, 28 Jan 2013 21:13:44 +0000 (21:13 +0000)]
Revert 130950
BUG=163593

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140996 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd StorageStrategy member functions to WebKit2
andersca@apple.com [Mon, 28 Jan 2013 21:10:43 +0000 (21:10 +0000)]
Add StorageStrategy member functions to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=108105

Reviewed by Tim Horton.

Source/WebCore:

StorageStrategy::sessionStorageNamespace should be virtual, not static...

* WebCore.exp.in:
* storage/StorageStrategy.h:
(StorageStrategy):

Source/WebKit2:

Add default implementations that just chain up to the base class for now.

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::localStorageNamespace):
(WebKit::WebPlatformStrategies::sessionStorageNamespace):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140995 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Chromium] Correct auto-zoom when using compositor scaling
wangxianzhu@chromium.org [Mon, 28 Jan 2013 21:08:20 +0000 (21:08 +0000)]
[Chromium] Correct auto-zoom when using compositor scaling
https://bugs.webkit.org/show_bug.cgi?id=107592

Reviewed by Adam Barth.

1. The scale of auto-zoom should exclude deviceScaleFactor because the compositor will handle the scaling;
2. Scroll location needs to be calculated differently when pageScaleFactor is handled by the compositor.

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::computeScaleAndScrollForHitRect):
* tests/WebFrameTest.cpp: Updated tests DivAutoZoomParamsTest, DivAutoZoomMultipleDivsTest, DivAutoZoomScaleBoundsTest and DivAutoZoomScaleFontScaleFactorTest, to make two versions of them (WebKitScaling and CompositorScaling).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140994 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agogetComputedStyle returns "left" instead of "none" for "float" on abspos elements
commit-queue@webkit.org [Mon, 28 Jan 2013 20:43:33 +0000 (20:43 +0000)]
getComputedStyle returns "left" instead of "none" for "float" on abspos elements
https://bugs.webkit.org/show_bug.cgi?id=105836

Patch by Uday Kiran <udaykiran@motorola.com> on 2013-01-28
Reviewed by Tony Chang.

If 'position' has the value absolute, page or fixed, and the value of float is
left or right, the box is absolutely positioned and the computed value of float is none.
http://www.w3.org/TR/css3-positioning/#dis-pos-flo
This matches behavior of Firefox 18, Opera 12 and IE9.

Source/WebCore:

Test: fast/css/position-absolute-float.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

LayoutTests:

* fast/css/position-absolute-float-expected.txt: Added.
* fast/css/position-absolute-float.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140993 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDon't use threaded HTML parser for data: URLs
tonyg@chromium.org [Mon, 28 Jan 2013 20:36:12 +0000 (20:36 +0000)]
Don't use threaded HTML parser for data: URLs
https://bugs.webkit.org/show_bug.cgi?id=108096

Reviewed by Eric Seidel.

data: URLs are currently loaded synchronously. Using the main thread parser for them preserves this behavior.
This fixes fast/dom/HTMLDocument/document-open-return-value.html and probably others.

No new tests because covered by existing tests.

* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140992 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed GTK gardening.
zandobersek@gmail.com [Mon, 28 Jan 2013 20:26:15 +0000 (20:26 +0000)]
Unreviewed GTK gardening.

Adding a failure expectation for a User Timing test added in r140882.

* platform/gtk/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140991 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[EFL] Quit debug build without -DSHARED_CORE=ON
commit-queue@webkit.org [Mon, 28 Jan 2013 20:19:14 +0000 (20:19 +0000)]
[EFL] Quit debug build without -DSHARED_CORE=ON
https://bugs.webkit.org/show_bug.cgi?id=104773

Patch by Halton Huo <halton.huo@intel.com> on 2013-01-28
Reviewed by Laszlo Gombos.

Debug build without -DSHARED_CORE=ON will fail because libwebcore_efl.a
is too big (>4G) to archive. The solution is simply to abort cmake in
this condition and notify developer.

* CMakeLists.txt:
* Source/cmake/OptionsEfl.cmake:
* Source/cmake/OptionsCommon.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140990 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCollapse OS(UNIX)||OS(ANDROID) to OS(UNIX)
commit-queue@webkit.org [Mon, 28 Jan 2013 20:13:51 +0000 (20:13 +0000)]
Collapse OS(UNIX)||OS(ANDROID) to OS(UNIX)
https://bugs.webkit.org/show_bug.cgi?id=108091

Patch by Laszlo Gombos <l.gombos@samsung.com> on 2013-01-28
Reviewed by Adam Barth.

OS(UNIX) is defined when OS(ANDROID) is defined.

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::handleMouseDown):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140989 268f45cc-cd09-0410-ab3c-d52691b4dbfc