OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/child/runtime_features.h" | 5 #include "content/child/runtime_features.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "media/base/android/media_codec_bridge.h" | 22 #include "media/base/android/media_codec_bridge.h" |
23 #elif defined(OS_WIN) | 23 #elif defined(OS_WIN) |
24 #include "base/win/windows_version.h" | 24 #include "base/win/windows_version.h" |
25 #endif | 25 #endif |
26 | 26 |
27 using blink::WebRuntimeFeatures; | 27 using blink::WebRuntimeFeatures; |
28 | 28 |
29 namespace content { | 29 namespace content { |
30 | 30 |
31 static void SetRuntimeFeatureDefaultsForPlatform() { | 31 static void SetRuntimeFeatureDefaultsForPlatform() { |
| 32 // Enable non-standard "apple-touch-icon" and "apple-touch-icon-precomposed". |
| 33 WebRuntimeFeatures::enableTouchIconLoading(true); |
| 34 |
32 #if defined(OS_ANDROID) | 35 #if defined(OS_ANDROID) |
33 // MSE/EME implementation needs Android MediaCodec API. | 36 // MSE/EME implementation needs Android MediaCodec API. |
34 if (!media::MediaCodecBridge::IsAvailable()) { | 37 if (!media::MediaCodecBridge::IsAvailable()) { |
35 WebRuntimeFeatures::enableMediaSource(false); | 38 WebRuntimeFeatures::enableMediaSource(false); |
36 WebRuntimeFeatures::enablePrefixedEncryptedMedia(false); | 39 WebRuntimeFeatures::enablePrefixedEncryptedMedia(false); |
37 WebRuntimeFeatures::enableEncryptedMedia(false); | 40 WebRuntimeFeatures::enableEncryptedMedia(false); |
38 } | 41 } |
39 // WebAudio is enabled by default but only when the MediaCodec API | 42 // WebAudio is enabled by default but only when the MediaCodec API |
40 // is available. | 43 // is available. |
41 AndroidCpuFamily cpu_family = android_getCpuFamily(); | 44 AndroidCpuFamily cpu_family = android_getCpuFamily(); |
42 WebRuntimeFeatures::enableWebAudio( | 45 WebRuntimeFeatures::enableWebAudio( |
43 media::MediaCodecBridge::IsAvailable() && | 46 media::MediaCodecBridge::IsAvailable() && |
44 ((cpu_family == ANDROID_CPU_FAMILY_ARM) || | 47 ((cpu_family == ANDROID_CPU_FAMILY_ARM) || |
45 (cpu_family == ANDROID_CPU_FAMILY_ARM64) || | 48 (cpu_family == ANDROID_CPU_FAMILY_ARM64) || |
46 (cpu_family == ANDROID_CPU_FAMILY_X86) || | 49 (cpu_family == ANDROID_CPU_FAMILY_X86) || |
47 (cpu_family == ANDROID_CPU_FAMILY_MIPS))); | 50 (cpu_family == ANDROID_CPU_FAMILY_MIPS))); |
48 | 51 |
49 // Android does not have support for PagePopup | 52 // Android does not have support for PagePopup |
50 WebRuntimeFeatures::enablePagePopup(false); | 53 WebRuntimeFeatures::enablePagePopup(false); |
51 // Android does not yet support SharedWorker. crbug.com/154571 | 54 // Android does not yet support SharedWorker. crbug.com/154571 |
52 WebRuntimeFeatures::enableSharedWorker(false); | 55 WebRuntimeFeatures::enableSharedWorker(false); |
53 // Android does not yet support NavigatorContentUtils. | 56 // Android does not yet support NavigatorContentUtils. |
54 WebRuntimeFeatures::enableNavigatorContentUtils(false); | 57 WebRuntimeFeatures::enableNavigatorContentUtils(false); |
55 WebRuntimeFeatures::enableTouchIconLoading(true); | |
56 WebRuntimeFeatures::enableOrientationEvent(true); | 58 WebRuntimeFeatures::enableOrientationEvent(true); |
57 WebRuntimeFeatures::enableFastMobileScrolling(true); | 59 WebRuntimeFeatures::enableFastMobileScrolling(true); |
58 WebRuntimeFeatures::enableMediaCapture(true); | 60 WebRuntimeFeatures::enableMediaCapture(true); |
59 WebRuntimeFeatures::enableCompositedSelectionUpdate(true); | 61 WebRuntimeFeatures::enableCompositedSelectionUpdate(true); |
60 // If navigation transitions gets activated via field trial, enable it in | 62 // If navigation transitions gets activated via field trial, enable it in |
61 // blink. We don't set this to false in case the user has manually enabled | 63 // blink. We don't set this to false in case the user has manually enabled |
62 // the feature via experimental web platform features. | 64 // the feature via experimental web platform features. |
63 if (base::FieldTrialList::FindFullName("NavigationTransitions") == "Enabled") | 65 if (base::FieldTrialList::FindFullName("NavigationTransitions") == "Enabled") |
64 WebRuntimeFeatures::enableNavigationTransitions(true); | 66 WebRuntimeFeatures::enableNavigationTransitions(true); |
65 // Android won't be able to reliably support non-persistent notifications, the | 67 // Android won't be able to reliably support non-persistent notifications, the |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 command_line.GetSwitchValueASCII(switches::kDisableBlinkFeatures), ',', | 222 command_line.GetSwitchValueASCII(switches::kDisableBlinkFeatures), ',', |
221 &disabled_features); | 223 &disabled_features); |
222 for (const std::string& feature : disabled_features) { | 224 for (const std::string& feature : disabled_features) { |
223 WebRuntimeFeatures::enableFeatureFromString( | 225 WebRuntimeFeatures::enableFeatureFromString( |
224 blink::WebString::fromLatin1(feature), false); | 226 blink::WebString::fromLatin1(feature), false); |
225 } | 227 } |
226 } | 228 } |
227 } | 229 } |
228 | 230 |
229 } // namespace content | 231 } // namespace content |
OLD | NEW |