Move more non-settings out of InternalSettings
https://bugs.webkit.org/show_bug.cgi?id=102711

Reviewed by Adam Barth.

Source/WebCore:

Remove userPreferredLanguages, setUserPreferredLanguages and allowRoundingHacks
from internal.settings since they are already exposed by window.internals (in
fact, no one calls the internal.settings version).

Move setUsesOverlayScrollbars from internals.settings to internals because it is
a global (static) setting and not tied to the lifetime of the Settings object.

No new tests, there should be no behavior change since this is a refactor.

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::reset): Remove custom reset code.
(WebCore::InternalSettings::setUsesOverlayScrollbars): Add exception code handling to make it more consistent with other settings setters.
* testing/InternalSettings.h:
* testing/InternalSettings.idl: Remove unnecessary methods.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Reset userPreferredLanguages, allowRoundingHacks and overlay scrollbars.
(WebCore::Internals::userPreferredLanguages): Don't go through InternalSettings.
(WebCore::Internals::setUserPreferredLanguages): Don't go through InternalSettings.
(WebCore::Internals::setUsesOverlayScrollbars): Moved from InternalsSettings.
(WebCore::Internals::allowRoundingHacks): Don't go through InternalSettings.

LayoutTests:

Move static values out of InternalSettings.

* fast/scrolling/scrollbar-tickmarks-hittest.html: Move setUsesOverlayScrollbars to internals.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@135227 268f45cc-cd09-0410-ab3c-d52691b4dbfc
MutationObserver wrapper should not be collected while still observing
https://bugs.webkit.org/show_bug.cgi?id=102328

Reviewed by Adam Barth.

Source/WebCore:

Use the new opaqueRootForGC helper in V8GCController to put each
MutationObserver wrapper in the same object group as the nodes it's
observing.

Only includes V8 impl for now, JSC impl coming soon.

Tests: fast/mutation/observer-wrapper-dropoff-transient.html
       fast/mutation/observer-wrapper-dropoff.html

* bindings/v8/V8GCController.cpp: Add custom code for MutationObserver
with a FIXME to move this out once we update the opaque roots API.
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::getObservedNodes): Plumbing to expose the observed nodes
to the GC controller.
(WebCore):
* dom/MutationObserver.h:
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet): More plumbing.
(WebCore):
* dom/MutationObserverRegistration.h:
(MutationObserverRegistration):

LayoutTests:

Tests showing that observers are kept alive, both in the simple case
and in the transient registered observer case (where the original
registration node is GCed but the transient observation node is still
alive).

* fast/mutation/observer-wrapper-dropoff-expected.txt: Added.
* fast/mutation/observer-wrapper-dropoff-transient-expected.txt: Added.
* fast/mutation/observer-wrapper-dropoff-transient.html: Added.
* fast/mutation/observer-wrapper-dropoff.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@135228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
In the IDL parser, we should rename $dataNode to $interface
https://bugs.webkit.org/show_bug.cgi?id=102746

Reviewed by Adam Barth.

$dataNode is misnamed. It should be $interface.

No tests. No change in behavior.

* bindings/scripts/IDLParser.pm:
(parseInterface):
(parseException):
(parseAttributeOrOperationRest):
(parseOperationOrIterator):
(parseSpecialOperation):
(parseInterfaceOld):
(parseExceptionOld):
(parseAttributeOrOperationOrIteratorOld):
(parseAttributeOrOperationRestOld):
(applyMemberList):
(applyExtendedAttributeList):
* bindings/scripts/generate-bindings.pl:
* bindings/scripts/preprocess-idls.pl:
(checkIDLAttributes):


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