[CSS Regions] Infinite loop when computing widows
https://bugs.webkit.org/show_bug.cgi?id=122215

Reviewed by David Hyatt.

Source/WebCore:

The patch ensures it's not possible to relayout a block indefinitely because of widows contraints. You can't
break a block more than once to account for widows. This can happen if, for example, some lines are moved
to the next container and there the content breaks in another container again without respecting the widows property.
This is in line with the idea of not leaving empty fragmentation containers during layout.

Test: fast/regions/regions-widows-stack-overflow.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustLinePositionForPagination):
(WebCore::RenderBlockFlow::setBreakAtLineToAvoidWidow):
(WebCore::RenderBlockFlow::setDidBreakAtLineToAvoidWidow):
(WebCore::RenderBlockFlow::clearDidBreakAtLineToAvoidWidow):
(WebCore::RenderBlockFlow::clearShouldBreakAtLineToAvoidWidow):

* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData): Rename the m_shouldBreakAtLineToAvoidWidow
flag to m_didBreakAtLineToAvoidWidow.

(WebCore::RenderBlockFlow::shouldBreakAtLineToAvoidWidow): Use the line index to determine if it should break or not.
(WebCore::RenderBlockFlow::didBreakAtLineToAvoidWidow): Use to determine if a break already happened because of widows.

* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):

LayoutTests:

Test there is no stack overflow when trying to break for widows that are caused by other widows.

* fast/regions/regions-widows-stack-overflow-expected.html: Added.
* fast/regions/regions-widows-stack-overflow.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156881 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebIDL] Annotate IDL interfaces under Source/WebCore/workers/ with the OperationsNotDeletable attribute
https://bugs.webkit.org/show_bug.cgi?id=122270

Reviewed by Darin Adler.

Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
doesn't have any effect, but will keep the operations not configurable after the generator is modified
to preserve the original behavior. The attribute will be removed from each interface after checking
conformity with other browsers (in terms of configurability of operations of that interface) and the
WebKit's existing test suites.

This patch covers IDL interfaces under Source/WebCore/workers/.

* workers/DedicatedWorkerGlobalScope.idl:
* workers/Worker.idl:
* workers/WorkerGlobalScope.idl:
* workers/WorkerLocation.idl:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156882 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebIDL] Annotate IDL interfaces under Source/WebCore/storage/ with the OperationsNotDeletable attribute
https://bugs.webkit.org/show_bug.cgi?id=122272

Reviewed by Darin Adler.

Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
doesn't have any effect, but will keep the operations not configurable after the generator is modified
to preserve the original behavior. The attribute will be removed from each interface after checking
conformity with other browsers (in terms of configurability of operations of that interface) and the
WebKit's existing test suites.

This patch covers IDL interfaces under Source/WebCore/storage/.

* storage/Storage.idl:
* storage/StorageEvent.idl:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156883 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebIDL] Annotate IDL interfaces under Source/WebCore/plugins/ with the OperationsNotDeletable attribute
https://bugs.webkit.org/show_bug.cgi?id=122273

Reviewed by Darin Adler.

Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
doesn't have any effect, but will keep the operations not configurable after the generator is modified
to preserve the original behavior. The attribute will be removed from each interface after checking
conformity with other browsers (in terms of configurability of operations of that interface) and the
WebKit's existing test suites.

This patch covers IDL interfaces under Source/WebCore/plugins/.

* plugins/DOMMimeTypeArray.idl:
* plugins/DOMPlugin.idl:
* plugins/DOMPluginArray.idl:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156884 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebIDL] Annotate IDL interfaces under Source/WebCore/loader/appcache/ with the OperationsNotDeletable attribute
https://bugs.webkit.org/show_bug.cgi?id=122274

Reviewed by Darin Adler.

Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
doesn't have any effect, but will keep the operations not configurable after the generator is modified
to preserve the original behavior. The attribute will be removed from each interface after checking
conformity with other browsers (in terms of configurability of operations of that interface) and the
WebKit's existing test suites.

This patch covers IDL interfaces under Source/WebCore/loader/appcache/.

* loader/appcache/DOMApplicationCache.idl:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156885 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebIDL] Annotate IDL interfaces under Source/WebCore/css/ with the OperationsNotDeletable attribute
https://bugs.webkit.org/show_bug.cgi?id=122276

Reviewed by Darin Adler.

Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
doesn't have any effect, but will keep the operations not configurable after the generator is modified
to preserve the original behavior. The attribute will be removed from each interface after checking
conformity with other browsers (in terms of configurability of operations of that interface) and the
WebKit's existing test suites.

This patch covers IDL interfaces under Source/WebCore/css/.

* css/CSSHostRule.idl:
* css/CSSMediaRule.idl:
* css/CSSPrimitiveValue.idl:
* css/CSSRuleList.idl:
* css/CSSStyleDeclaration.idl:
* css/CSSStyleSheet.idl:
* css/CSSSupportsRule.idl:
* css/CSSValueList.idl:
* css/DOMWindowCSS.idl:
* css/FontLoader.idl:
* css/MediaList.idl:
* css/MediaQueryList.idl:
* css/MediaQueryListListener.idl:
* css/StyleMedia.idl:
* css/StyleSheet.idl:
* css/StyleSheetList.idl:
* css/WebKitCSSFilterValue.idl:
* css/WebKitCSSKeyframesRule.idl:
* css/WebKitCSSMatrix.idl:
* css/WebKitCSSTransformValue.idl:


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