Changeset 192589 in webkit
- Timestamp:
- Nov 18, 2015 3:04:36 PM (9 years ago)
- Location:
- trunk/Source
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/mac/ChangeLog
r192393 r192589 1 2015-11-18 Jer Noble <jer.noble@apple.com> 2 3 Expose WebCore's AudioPlaybackRequiresUserGesture setting to WebKit & WebKit2 4 https://bugs.webkit.org/show_bug.cgi?id=151274 5 6 Reviewed by Anders Carlsson. 7 8 Add a WebKit preference key, WebKitAudioPlaybackRequiresUserGesture, and a matching WebPreference 9 property, and transfer those preferences to WebCore's settings when they change. 10 11 * WebView/WebPreferenceKeysPrivate.h: 12 * WebView/WebPreferences.mm: 13 (+[WebPreferences initialize]): 14 (-[WebPreferences audioPlaybackRequiresUserGesture]): 15 (-[WebPreferences setAudioPlaybackRequiresUserGesture:]): 16 * WebView/WebPreferencesPrivate.h: 17 * WebView/WebView.mm: 18 (-[WebView _preferencesChanged:]): 19 1 20 2015-11-12 Anders Carlsson <andersca@apple.com> 2 21 -
trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h
r189129 r192589 121 121 #define WebKitHixie76WebSocketProtocolEnabledKey @"WebKitHixie76WebSocketProtocolEnabled" 122 122 #define WebKitRequiresUserGestureForMediaPlaybackPreferenceKey @"WebKitMediaPlaybackRequiresUserGesture" 123 #define WebKitRequiresUserGestureForAudioPlaybackPreferenceKey @"WebKitAudioPlaybackRequiresUserGesture" 123 124 #define WebKitAllowsInlineMediaPlaybackPreferenceKey @"WebKitMediaPlaybackAllowsInline" 124 125 #define WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey @"InlineMediaPlaybackRequiresPlaysInlineAttribute" -
trunk/Source/WebKit/mac/WebView/WebPreferences.mm
r191904 r192589 523 523 #if !PLATFORM(IOS) 524 524 [NSNumber numberWithBool:NO], WebKitRequiresUserGestureForMediaPlaybackPreferenceKey, 525 [NSNumber numberWithBool:NO], WebKitRequiresUserGestureForAudioPlaybackPreferenceKey, 525 526 [NSNumber numberWithBool:YES], WebKitAllowsInlineMediaPlaybackPreferenceKey, 526 527 [NSNumber numberWithBool:YES], WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey, … … 536 537 #else 537 538 [NSNumber numberWithBool:YES], WebKitRequiresUserGestureForMediaPlaybackPreferenceKey, 539 [NSNumber numberWithBool:YES], WebKitRequiresUserGestureForAudioPlaybackPreferenceKey, 538 540 [NSNumber numberWithBool:allowsInlineMediaPlayback], WebKitAllowsInlineMediaPlaybackPreferenceKey, 539 541 [NSNumber numberWithBool:requiresPlaysInlineAttribute], WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey, … … 2187 2189 } 2188 2190 2191 - (BOOL)audioPlaybackRequiresUserGesture 2192 { 2193 return [self _boolValueForKey:WebKitRequiresUserGestureForAudioPlaybackPreferenceKey]; 2194 } 2195 2196 - (void)setAudioPlaybackRequiresUserGesture:(BOOL)flag 2197 { 2198 [self _setBoolValue:flag forKey:WebKitRequiresUserGestureForAudioPlaybackPreferenceKey]; 2199 } 2200 2189 2201 - (BOOL)mediaPlaybackAllowsInline 2190 2202 { -
trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h
r190841 r192589 246 246 - (BOOL)mediaPlaybackRequiresUserGesture; 247 247 248 - (void)setAudioPlaybackRequiresUserGesture:(BOOL)flag; 249 - (BOOL)audioPlaybackRequiresUserGesture; 250 248 251 - (void)setMediaPlaybackAllowsInline:(BOOL)flag; 249 252 - (BOOL)mediaPlaybackAllowsInline; -
trunk/Source/WebKit/mac/WebView/WebView.mm
r192200 r192589 2304 2304 2305 2305 settings.setRequiresUserGestureForMediaPlayback([preferences mediaPlaybackRequiresUserGesture]); 2306 settings.setAudioPlaybackRequiresUserGesture([preferences audioPlaybackRequiresUserGesture]); 2306 2307 settings.setAllowsInlineMediaPlayback([preferences mediaPlaybackAllowsInline]); 2307 2308 settings.setInlineMediaPlaybackRequiresPlaysInlineAttribute([preferences inlineMediaPlaybackRequiresPlaysInlineAttribute]); -
trunk/Source/WebKit2/ChangeLog
r192583 r192589 1 2015-11-18 Jer Noble <jer.noble@apple.com> 2 3 Expose WebCore's AudioPlaybackRequiresUserGesture setting to WebKit & WebKit2 4 https://bugs.webkit.org/show_bug.cgi?id=151274 5 6 Reviewed by Anders Carlsson. 7 8 Add a new, private, WKWebViewConfiguration property, _requiresUserActionForAudioPlayback, 9 and use that configuration property to set WebCore's AudioPlaybackRequiresUserGesture setting 10 during page creation. 11 12 * Shared/WebPreferencesDefinitions.h: 13 * UIProcess/API/C/WKPreferences.cpp: 14 (WKPreferencesSetAudioPlaybackRequiresUserGesture): Add legacy C API for setting this new WK preference. 15 (WKPreferencesGetAudioPlaybackRequiresUserGesture): Ditto. 16 * UIProcess/API/C/WKPreferencesRefPrivate.h: 17 * UIProcess/API/Cocoa/WKWebView.mm: 18 (-[WKWebView initWithFrame:configuration:]): Set the page configuration value from preferences. 19 * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: 20 (-[WKWebViewConfiguration init]): Default the value of the new configuration property to YES for iOS. 21 (-[WKWebViewConfiguration copyWithZone:]): Copy the value across. 22 (-[WKWebViewConfiguration _requiresUserActionForAudioPlayback]): Simple getter. 23 (-[WKWebViewConfiguration _setRequiresUserActionForAudioPlayback:]): Simple setter. 24 * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: 25 * WebProcess/WebPage/WebPage.cpp: 26 (WebKit::WebPage::updatePreferences): Set WebCore's audioPlaybackRequiresUserGesture Setting. 27 1 28 2015-11-18 Daniel Bates <dabates@apple.com> 2 29 -
trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h
r192093 r192589 62 62 #define DEFAULT_MEDIA_DATA_LOADS_AUTOMATICALLY false 63 63 #define DEFAULT_REQUIRES_USER_GESTURE_FOR_MEDIA_PLAYBACK true 64 #define DEFAULT_REQUIRES_USER_GESTURE_FOR_AUDIO_PLAYBACK true 64 65 #define DEFAULT_MEDIA_CONTROLS_SCALE_WITH_PAGE_ZOOM false 65 66 #define DEFAULT_TEMPORARY_TILE_COHORT_RETENTION_ENABLED false … … 77 78 #define DEFAULT_MEDIA_DATA_LOADS_AUTOMATICALLY true 78 79 #define DEFAULT_REQUIRES_USER_GESTURE_FOR_MEDIA_PLAYBACK false 80 #define DEFAULT_REQUIRES_USER_GESTURE_FOR_AUDIO_PLAYBACK false 79 81 #define DEFAULT_MEDIA_CONTROLS_SCALE_WITH_PAGE_ZOOM true 80 82 #define DEFAULT_TEMPORARY_TILE_COHORT_RETENTION_ENABLED true … … 139 141 macro(AVFoundationEnabled, isAVFoundationEnabled, Bool, bool, true) \ 140 142 macro(RequiresUserGestureForMediaPlayback, requiresUserGestureForMediaPlayback, Bool, bool, DEFAULT_REQUIRES_USER_GESTURE_FOR_MEDIA_PLAYBACK) \ 143 macro(RequiresUserGestureForAudioPlayback, requiresUserGestureForAudioPlayback, Bool, bool, DEFAULT_REQUIRES_USER_GESTURE_FOR_AUDIO_PLAYBACK) \ 141 144 macro(AllowsInlineMediaPlayback, allowsInlineMediaPlayback, Bool, bool, DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK) \ 142 145 macro(InlineMediaPlaybackRequiresPlaysInlineAttribute, inlineMediaPlaybackRequiresPlaysInlineAttribute, Bool, bool, DEFAULT_INLINE_MEDIA_PLAYBACK_REQUIRES_PLAYS_INLINE_ATTRIBUTE) \ -
trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp
r192093 r192589 749 749 } 750 750 751 void WKPreferencesSetAudioPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef, bool flag) 752 { 753 toImpl(preferencesRef)->setRequiresUserGestureForAudioPlayback(flag); 754 } 755 756 bool WKPreferencesGetAudioPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef) 757 { 758 return toImpl(preferencesRef)->requiresUserGestureForAudioPlayback(); 759 } 760 751 761 void WKPreferencesSetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef, bool flag) 752 762 { -
trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h
r192093 r192589 178 178 WK_EXPORT bool WKPreferencesGetMediaPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef); 179 179 180 // Defaults to false. 181 WK_EXPORT void WKPreferencesSetAudioPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef, bool flag); 182 WK_EXPORT bool WKPreferencesGetAudioPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef); 183 180 184 // Defaults to true. 181 185 WK_EXPORT void WKPreferencesSetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef, bool flag); -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r192447 r192589 361 361 pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsPictureInPictureMediaPlayback] && shouldAllowPictureInPictureMediaPlayback())); 362 362 pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::requiresUserGestureForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration requiresUserActionForMediaPlayback])); 363 pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::requiresUserGestureForAudioPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration _requiresUserActionForAudioPlayback])); 363 364 pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::mediaDataLoadsAutomaticallyKey(), WebKit::WebPreferencesStore::Value(!![_configuration _mediaDataLoadsAutomatically])); 364 365 #endif -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm
r192253 r192589 105 105 BOOL _inlineMediaPlaybackRequiresPlaysInlineAttribute; 106 106 BOOL _mediaDataLoadsAutomatically; 107 BOOL _requiresUserActionForAudioPlayback; 107 108 #endif 108 109 #if PLATFORM(MAC) … … 120 121 #if PLATFORM(IOS) 121 122 _requiresUserActionForMediaPlayback = YES; 123 _requiresUserActionForAudioPlayback = YES; 122 124 _allowsPictureInPictureMediaPlayback = YES; 123 125 _allowsInlineMediaPlayback = WebCore::deviceClass() == MGDeviceClassiPad; … … 186 188 configuration->_alwaysRunsAtForegroundPriority = _alwaysRunsAtForegroundPriority; 187 189 configuration->_requiresUserActionForMediaPlayback = self->_requiresUserActionForMediaPlayback; 190 configuration->_requiresUserActionForAudioPlayback = self->_requiresUserActionForAudioPlayback; 188 191 configuration->_selectionGranularity = self->_selectionGranularity; 189 192 #endif … … 463 466 _mediaDataLoadsAutomatically = mediaDataLoadsAutomatically; 464 467 } 468 469 - (BOOL)_requiresUserActionForAudioPlayback 470 { 471 return _requiresUserActionForAudioPlayback; 472 } 473 474 - (void)_setRequiresUserActionForAudioPlayback:(BOOL)requiresUserActionForAudioPlayback 475 { 476 _requiresUserActionForAudioPlayback = requiresUserActionForAudioPlayback; 477 } 478 465 479 #endif // PLATFORM(IOS) 466 480 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h
r192253 r192589 54 54 @property (nonatomic, setter=_setAlwaysRunsAtForegroundPriority:) BOOL _alwaysRunsAtForegroundPriority WK_AVAILABLE(NA, 9_0); 55 55 56 @property (nonatomic, setter=_setRequiresUserActionForAudioPlayback:) BOOL _requiresUserActionForAudioPlayback WK_AVAILABLE(NA, WK_IOS_TBA); 56 57 @property (nonatomic, setter=_setInlineMediaPlaybackRequiresPlaysInlineAttribute:) BOOL _inlineMediaPlaybackRequiresPlaysInlineAttribute WK_AVAILABLE(NA, WK_IOS_TBA); 57 58 @property (nonatomic, setter=_setMediaDataLoadsAutomatically:) BOOL _mediaDataLoadsAutomatically WK_AVAILABLE(NA, WK_IOS_TBA); -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r192437 r192589 2781 2781 settings.setAccelerated2dCanvasEnabled(store.getBoolValueForKey(WebPreferencesKey::accelerated2dCanvasEnabledKey())); 2782 2782 settings.setRequiresUserGestureForMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::requiresUserGestureForMediaPlaybackKey())); 2783 settings.setAudioPlaybackRequiresUserGesture(store.getBoolValueForKey(WebPreferencesKey::requiresUserGestureForAudioPlaybackKey())); 2783 2784 settings.setAllowsInlineMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::allowsInlineMediaPlaybackKey())); 2784 2785 settings.setInlineMediaPlaybackRequiresPlaysInlineAttribute(store.getBoolValueForKey(WebPreferencesKey::inlineMediaPlaybackRequiresPlaysInlineAttributeKey()));
Note: See TracChangeset
for help on using the changeset viewer.