We have a lot of tests that poke internal settings, via testRunner:

    testRunner.setFrameFlatteningEnabled(true);

or window.internals:

    internals.settings.setPageScaleFactor(0.5, 0, 0);

and some that poke preferences, like:

    testRunner.overridePreference("WebKitUsesPageCachePreferenceKey", 1);

First, direct calls on testRunner that just set preferences should be migrated 
to internals.settings or testRunner.overridePreference calls, I think (I don't 
know if either is preferred).

Secondly, I see no guarantee that these settings and preferences are reset to 
their default values before the next test, and we don't seem to have a 
consistent strategy about how to do this.

For internal settings, we have InternalSettings::Backup methods. However, 
there's no enforcement that when changing a setting in a test for the first 
time, developers also add code to reset it in InternalSettings.

I looked at testRunner.overridePreference(), and it doesn't appear to reset the 
value at the end of the test.

So I think we need clearer rules here. I suggest:

* testRunner methods that just set preferences should migrate to 
internals.settings or testRunner.overridePreference
* we should choose between internals.settings or testRunner.overridePreference 
if that makes sense.
* we should enforce a policy that patches adding a settings/prefs toggle 
should, if necessary, add code to reset between tests.

Simon

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to