Skip to content
  • jer.noble@apple.com's avatar
    Add a Setting to disable QTKit media engine. · e0fcb88a
    jer.noble@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=106972
    
    Reviewed by Eric Carlson.
    
    Source/WebCore:
    
    Allow the MediaPlayerPrivateQTKit engine to be disabled by adding a
    runtime setting to Settings. Make the setting 'live' by requerying the
    installed media engines when the setting changes.
    
    * WebCore.exp.in: Add new symbols to export list.
    * page/Settings.cpp: Add new gQTKitEnabled global.
    (WebCore::Settings::setAVFoundationEnabled): Requery media engines.
    (WebCore::Settings::setQTKitEnabled): Ditto. Setter for global setting variable.
    * page/Settings.h:
    (WebCore::Settings::isQTKitEnabled): Getter for same.
    * platform/graphics/MediaPlayer.cpp:
    (WebCore::installedMediaEngines): Check isQTKitEnabled() before adding
        MediaPlayerPrivateQTKit engine.
    * html/HTMLMediaElement.cpp:
    (WebCore::HTMLMediaElement::requeryMediaEngines): Pass through to MediaPlayer.
    * html/HTMLMediaElement.h:
    * platform/graphics/MediaPlayer.cpp:
    (WebCore::installedMediaEngines): Take an optional requery options parameter.
    (WebCore::MediaPlayer::requeryMediaEngines): Pass through to installedMediaEngines().
    * platform/graphics/MediaPlayer.h:
    
    Source/WebKit/mac:
    
    Add WebKit API to set QTKit enabled setting from user defaults.
    
    * WebView/WebPreferenceKeysPrivate.h:
    * WebView/WebPreferences.mm:
    (+[WebPreferences initialize]): Set WebCore settings based on user defaults.
    (-[WebPreferences setQTKitEnabled:]): Pass through to WebCore.
    (-[WebPreferences isQTKitEnabled]): Ditto.
    * WebView/WebPreferencesPrivate.h:
    * WebView/WebView.mm:
    (-[WebView _preferencesChanged:]): Synchronize WebKit/WebCore settings.
    
    Source/WebKit2:
    
    Add a WebKit2 API to access WebCore QTKitEnabled settings.
    
    * Shared/WebPreferencesStore.h:
    * UIProcess/API/C/WKPreferences.cpp:
    (WKPreferencesSetQTKitEnabled): Pass through to WebCore.
    (WKPreferencesGetQTKitEnabled): Ditto.
    * UIProcess/API/C/WKPreferences.h:
    * WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::updatePreferences): Synchronize WebKit2/WebCore settings.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139899 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    e0fcb88a