Changeset 62284 in webkit


Ignore:
Timestamp:
Jul 1, 2010 12:32:15 PM (14 years ago)
Author:
timothy@apple.com
Message:

Provide a WebView preference to disable DNS prefetching.

https://bugs.webkit.org/show_bug.cgi?id=28825
rdar://problem/7181249

Reviewed by Darin Adler.

WebCore:

  • WebCore.base.exp: Added Settings::setDNSPrefetchingEnabled.
  • dom/Document.cpp:

(WebCore::Document::initDNSPrefetch): Check settings->dnsPrefetchingEnabled().

  • page/Settings.cpp:

(WebCore::Settings::Settings): Set m_dnsPrefetchingEnabled to true.
(WebCore::Settings::setDNSPrefetchingEnabled): Added. Set m_dnsPrefetchingEnabled.

  • page/Settings.h:

(WebCore::Settings::dnsPrefetchingEnabled): Added. Return m_dnsPrefetchingEnabled.

WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h: Added WebKitDNSPrefetchingEnabledPreferenceKey.
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Set WebKitDNSPrefetchingEnabledPreferenceKey to YES.
(-[WebPreferences isDNSPrefetchingEnabled]): Added. Return WebKitDNSPrefetchingEnabledPreferenceKey's value.
(-[WebPreferences setDNSPrefetchingEnabled:]): Added. Set WebKitDNSPrefetchingEnabledPreferenceKey's value.

  • WebView/WebPreferencesPrivate.h: Added isDNSPrefetchingEnabled and setDNSPrefetchingEnabled:.
  • WebView/WebView.mm:

(-[WebView _preferencesChangedNotification:]): Call WebCore::Settings::setDNSPrefetchingEnabled.

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r62283 r62284  
     12010-07-01  Timothy Hatcher  <timothy@apple.com>
     2
     3        Provide a WebView preference to disable DNS prefetching.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=28825
     6        rdar://problem/7181249
     7
     8        Reviewed by Darin Adler.
     9
     10        * WebCore.base.exp: Added Settings::setDNSPrefetchingEnabled.
     11        * dom/Document.cpp:
     12        (WebCore::Document::initDNSPrefetch): Check settings->dnsPrefetchingEnabled().
     13        * page/Settings.cpp:
     14        (WebCore::Settings::Settings): Set m_dnsPrefetchingEnabled to true.
     15        (WebCore::Settings::setDNSPrefetchingEnabled): Added. Set m_dnsPrefetchingEnabled.
     16        * page/Settings.h:
     17        (WebCore::Settings::dnsPrefetchingEnabled): Added. Return m_dnsPrefetchingEnabled.
     18
    1192010-07-01  Simon Fraser  <simon.fraser@apple.com>
    220
  • trunk/WebCore/WebCore.base.exp

    r62283 r62284  
    507507__ZN7WebCore4KURLC1EPK7__CFURL
    508508__ZN7WebCore4KURLC1ERKS0_RKNS_6StringE
     509__ZN7WebCore4Node10renderRectEPb
    509510__ZN7WebCore4Node17stopIgnoringLeaksEv
    510511__ZN7WebCore4Node18startIgnoringLeaksEv
    511512__ZN7WebCore4Node19setNeedsStyleRecalcENS_15StyleChangeTypeE
    512 __ZN7WebCore4Node10renderRectEPb
    513513__ZN7WebCore4Page12setGroupNameERKNS_6StringE
    514514__ZN7WebCore4Page13didStopPluginEPNS_14HaltablePluginE
     
    667667__ZN7WebCore8Settings23setUsesEncodingDetectorEb
    668668__ZN7WebCore8Settings24setApplicationChromeModeEb
     669__ZN7WebCore8Settings24setDNSPrefetchingEnabledEb
    669670__ZN7WebCore8Settings24setTextAreasAreResizableEb
    670671__ZN7WebCore8Settings25setDeveloperExtrasEnabledEb
  • trunk/WebCore/dom/Document.cpp

    r61985 r62284  
    48524852void Document::initDNSPrefetch()
    48534853{
     4854    Settings* settings = this->settings();
     4855
    48544856    m_haveExplicitlyDisabledDNSPrefetch = false;
    4855     m_isDNSPrefetchEnabled = securityOrigin()->protocol() == "http";
     4857    m_isDNSPrefetchEnabled = settings && settings->dnsPrefetchingEnabled() && securityOrigin()->protocol() == "http";
    48564858
    48574859    // Inherit DNS prefetch opt-out from parent frame   
  • trunk/WebCore/page/Settings.cpp

    r61989 r62284  
    136136    , m_html5TreeBuilderEnabled(false) // Will be deleted soon, do not use.
    137137    , m_paginateDuringLayoutEnabled(false)
     138    , m_dnsPrefetchingEnabled(true)
    138139{
    139140    // A Frame may not have been created yet, so we initialize the AtomicString
     
    526527}
    527528
     529void Settings::setDNSPrefetchingEnabled(bool dnsPrefetchingEnabled)
     530{
     531    m_dnsPrefetchingEnabled = dnsPrefetchingEnabled;
     532}
     533
    528534void Settings::setAllowScriptsToCloseWindows(bool allowScriptsToCloseWindows)
    529535{
  • trunk/WebCore/page/Settings.h

    r61989 r62284  
    152152        void setUsesEncodingDetector(bool);
    153153        bool usesEncodingDetector() const { return m_usesEncodingDetector; }
     154
     155        void setDNSPrefetchingEnabled(bool);
     156        bool dnsPrefetchingEnabled() const { return m_dnsPrefetchingEnabled; }
    154157
    155158        void setUserStyleSheetLocation(const KURL&);
     
    390393        bool m_html5TreeBuilderEnabled: 1; // Will be deleted soon, do not use.
    391394        bool m_paginateDuringLayoutEnabled : 1;
     395        bool m_dnsPrefetchingEnabled : 1;
    392396   
    393397#if USE(SAFARI_THEME)
  • trunk/WebKit/mac/ChangeLog

    r62279 r62284  
     12010-07-01  Timothy Hatcher  <timothy@apple.com>
     2
     3        Provide a WebView preference to disable DNS prefetching.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=28825
     6        rdar://problem/7181249
     7
     8        Reviewed by Darin Adler.
     9
     10        * WebView/WebPreferenceKeysPrivate.h: Added WebKitDNSPrefetchingEnabledPreferenceKey.
     11        * WebView/WebPreferences.mm:
     12        (+[WebPreferences initialize]): Set WebKitDNSPrefetchingEnabledPreferenceKey to YES.
     13        (-[WebPreferences isDNSPrefetchingEnabled]): Added. Return WebKitDNSPrefetchingEnabledPreferenceKey's value.
     14        (-[WebPreferences setDNSPrefetchingEnabled:]): Added. Set WebKitDNSPrefetchingEnabledPreferenceKey's value.
     15        * WebView/WebPreferencesPrivate.h: Added isDNSPrefetchingEnabled and setDNSPrefetchingEnabled:.
     16        * WebView/WebView.mm:
     17        (-[WebView _preferencesChangedNotification:]): Call WebCore::Settings::setDNSPrefetchingEnabled.
     18
    1192010-07-01  Alexey Proskuryakov  <ap@apple.com>
    220
  • trunk/WebKit/mac/WebView/WebPreferenceKeysPrivate.h

    r61989 r62284  
    9797#define WebKitHTML5TreeBuilderEnabledPreferenceKey @"WebKitHTML5TreeBuilderEnabled" // Temporary, do not use.
    9898#define WebKitPaginateDuringLayoutEnabledPreferenceKey @"WebKitPaginateDuringLayoutEnabled"
     99#define WebKitDNSPrefetchingEnabledPreferenceKey @"WebKitDNSPrefetchingEnabled"
    99100
    100101// These are private both because callers should be using the cover methods and because the
  • trunk/WebKit/mac/WebView/WebPreferences.mm

    r61989 r62284  
    361361        [NSNumber numberWithUnsignedInt:4], WebKitPluginAllowedRunTimePreferenceKey,
    362362        [NSNumber numberWithBool:NO],   WebKitFrameFlatteningEnabledPreferenceKey,
    363         [NSNumber numberWithBool:YES],   WebKitHTML5ParserEnabledPreferenceKey,
     363        [NSNumber numberWithBool:YES],  WebKitHTML5ParserEnabledPreferenceKey,
    364364        [NSNumber numberWithBool:NO],   WebKitHTML5TreeBuilderEnabledPreferenceKey,
     365        [NSNumber numberWithBool:YES],  WebKitDNSPrefetchingEnabledPreferenceKey,
    365366        nil];
    366367
     
    756757
    757758@implementation WebPreferences (WebPrivate)
     759
     760- (BOOL)isDNSPrefetchingEnabled
     761{
     762    return [self _boolValueForKey:WebKitDNSPrefetchingEnabledPreferenceKey];
     763}
     764
     765- (void)setDNSPrefetchingEnabled:(BOOL)flag
     766{
     767    [self _setBoolValue:flag forKey:WebKitDNSPrefetchingEnabledPreferenceKey];
     768}
    758769
    759770- (BOOL)developerExtrasEnabled
  • trunk/WebKit/mac/WebView/WebPreferencesPrivate.h

    r61989 r62284  
    5656// Preferences that might be public in a future release
    5757
     58- (BOOL)isDNSPrefetchingEnabled;
     59- (void)setDNSPrefetchingEnabled:(BOOL)flag;
     60
    5861- (BOOL)developerExtrasEnabled;
    5962- (void)setDeveloperExtrasEnabled:(BOOL)flag;
  • trunk/WebKit/mac/WebView/WebView.mm

    r61989 r62284  
    14041404    settings->setXSSAuditorEnabled([preferences isXSSAuditorEnabled]);
    14051405    settings->setEnforceCSSMIMETypeInStrictMode(!WKAppVersionCheckLessThan(@"com.apple.iWeb", -1, 2.1));
     1406    settings->setDNSPrefetchingEnabled([preferences isDNSPrefetchingEnabled]);
    14061407   
    14071408    // FIXME: Enabling accelerated compositing when WebGL is enabled causes tests to fail on Leopard which expect HW compositing to be disabled.
Note: See TracChangeset for help on using the changeset viewer.