⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 240644 in webkit


Ignore:
Timestamp:
Jan 28, 2019, 10:20:56 PM (8 years ago)
Author:
Devin Rousso
Message:

Web Inspector: provide a way to edit page WebRTC settings on a remote target
https://bugs.webkit.org/show_bug.cgi?id=193863
<rdar://problem/47572764>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/Page.json:

Add more values to the Setting enum type:

  • ICECandidateFilteringEnabled
  • MediaCaptureRequiresSecureConnection
  • MockCaptureDevicesEnabled

Source/WebCore:

Test: inspector/page/overrideSetting-ICECandidateFilteringEnabled.html

inspector/page/overrideSetting-MockCaptureDevicesEnabled.html

  • inspector/agents/InspectorPageAgent.cpp:
  • page/Settings.yaml:
  • page/SettingsBase.h:
  • page/SettingsBase.cpp:

(SettingsBase::iceCandidateFilteringEnabledChanged): Added.
(SettingsBase::mockCaptureDevicesEnabledChanged): Added.

  • Scripts/GenerateSettings.rb:
  • Scripts/SettingsTemplates/Settings.cpp.erb:

Add page-level settings for WebRTC preferences.

  • Modules/mediastream/UserMediaController.cpp:

(WebCore::UserMediaController::canCallGetUserMedia):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setMediaCaptureRequiresSecureConnection):

  • testing/Internals.h:
  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::setMockMediaCaptureDevicesEnabled):
(WebCore::Internals::setMediaCaptureRequiresSecureConnection): Added.

  • page/DeprecatedGlobalSettings.h:
  • page/DeprecatedGlobalSettings.cpp:

(WebCore::DeprecatedGlobalSettings::mockCaptureDevicesEnabled): Deleted.
(WebCore::DeprecatedGlobalSettings::setMockCaptureDevicesEnabled): Deleted.
(WebCore::DeprecatedGlobalSettings::mediaCaptureRequiresSecureConnection): Deleted.
(WebCore::DeprecatedGlobalSettings::setMediaCaptureRequiresSecureConnection): Deleted.

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WI.loaded):
(WI.initializeTarget):
(WI._handleDeviceSettingsToolbarButtonClicked):
(WI._handleDeviceSettingsToolbarButtonClicked.createCheckbox):
(WI._handleDeviceSettingsToolbarButtonClicked.createColumns): Deleted.

  • UserInterface/Views/Main.css:

(.device-settings-content .container): Added.

  • Localizations/en.lproj/localizedStrings.js:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Add page-level settings for WebRTC preferences.

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
Add page-level settings for WebRTC preferences.

LayoutTests:

  • inspector/page/overrideSetting-ICECandidateFilteringEnabled.html: Added.
  • inspector/page/overrideSetting-ICECandidateFilteringEnabled-expected.txt: Added.
  • inspector/page/overrideSetting-MockCaptureDevicesEnabled.html: Added.
  • inspector/page/overrideSetting-MockCaptureDevicesEnabled-expected.txt: Added.
  • platform/mac/TestExpectations:
Location:
trunk
Files:
4 added
26 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r240642 r240644  
     12019-01-28  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: provide a way to edit page WebRTC settings on a remote target
     4        https://bugs.webkit.org/show_bug.cgi?id=193863
     5        <rdar://problem/47572764>
     6
     7        Reviewed by Joseph Pecoraro.
     8
     9        * inspector/page/overrideSetting-ICECandidateFilteringEnabled.html: Added.
     10        * inspector/page/overrideSetting-ICECandidateFilteringEnabled-expected.txt: Added.
     11        * inspector/page/overrideSetting-MockCaptureDevicesEnabled.html: Added.
     12        * inspector/page/overrideSetting-MockCaptureDevicesEnabled-expected.txt: Added.
     13        * platform/mac/TestExpectations:
     14
    1152019-01-28  Ryan Haddad  <ryanhaddad@apple.com>
    216
  • trunk/LayoutTests/platform/mac/TestExpectations

    r240532 r240644  
    146146fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html [ Skip ]
    147147fast/mediastream/RTCPeerConnection-stats.html [ Skip ]
     148
     149[ HighSierra ] inspector/page/overrideSetting-ICECandidateFilteringEnabled.html [ Skip ]
     150[ HighSierra ] inspector/page/overrideSetting-MockCaptureDevicesEnabled.html [ Skip ]
    148151
    149152# Asserts in debug.
  • trunk/Source/JavaScriptCore/ChangeLog

    r240641 r240644  
     12019-01-28  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: provide a way to edit page WebRTC settings on a remote target
     4        https://bugs.webkit.org/show_bug.cgi?id=193863
     5        <rdar://problem/47572764>
     6
     7        Reviewed by Joseph Pecoraro.
     8
     9        * inspector/protocol/Page.json:
     10        Add more values to the `Setting` enum type:
     11         - `ICECandidateFilteringEnabled`
     12         - `MediaCaptureRequiresSecureConnection`
     13         - `MockCaptureDevicesEnabled`
     14
    1152019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
    216
  • trunk/Source/JavaScriptCore/inspector/protocol/Page.json

    r240549 r240644  
    1010            "enum": [
    1111                "AuthorAndUserStylesEnabled",
     12                "ICECandidateFilteringEnabled",
    1213                "ImagesEnabled",
     14                "MediaCaptureRequiresSecureConnection",
     15                "MockCaptureDevicesEnabled",
    1316                "NeedsSiteSpecificQuirks",
    1417                "ScriptEnabled",
  • trunk/Source/WebCore/ChangeLog

    r240643 r240644  
     12019-01-28  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: provide a way to edit page WebRTC settings on a remote target
     4        https://bugs.webkit.org/show_bug.cgi?id=193863
     5        <rdar://problem/47572764>
     6
     7        Reviewed by Joseph Pecoraro.
     8
     9        Test: inspector/page/overrideSetting-ICECandidateFilteringEnabled.html
     10              inspector/page/overrideSetting-MockCaptureDevicesEnabled.html
     11
     12        * inspector/agents/InspectorPageAgent.cpp:
     13
     14        * page/Settings.yaml:
     15        * page/SettingsBase.h:
     16        * page/SettingsBase.cpp:
     17        (SettingsBase::iceCandidateFilteringEnabledChanged): Added.
     18        (SettingsBase::mockCaptureDevicesEnabledChanged): Added.
     19        * Scripts/GenerateSettings.rb:
     20        * Scripts/SettingsTemplates/Settings.cpp.erb:
     21        Add page-level settings for WebRTC preferences.
     22
     23        * Modules/mediastream/UserMediaController.cpp:
     24        (WebCore::UserMediaController::canCallGetUserMedia):
     25
     26        * testing/InternalSettings.cpp:
     27        (WebCore::InternalSettings::setMediaCaptureRequiresSecureConnection):
     28
     29        * testing/Internals.h:
     30        * testing/Internals.cpp:
     31        (WebCore::Internals::Internals):
     32        (WebCore::Internals::setMockMediaCaptureDevicesEnabled):
     33        (WebCore::Internals::setMediaCaptureRequiresSecureConnection): Added.
     34
     35        * page/DeprecatedGlobalSettings.h:
     36        * page/DeprecatedGlobalSettings.cpp:
     37        (WebCore::DeprecatedGlobalSettings::mockCaptureDevicesEnabled): Deleted.
     38        (WebCore::DeprecatedGlobalSettings::setMockCaptureDevicesEnabled): Deleted.
     39        (WebCore::DeprecatedGlobalSettings::mediaCaptureRequiresSecureConnection): Deleted.
     40        (WebCore::DeprecatedGlobalSettings::setMediaCaptureRequiresSecureConnection): Deleted.
     41
    1422019-01-28  Jer Noble  <jer.noble@apple.com>
    243
  • trunk/Source/WebCore/Modules/mediastream/UserMediaController.cpp

    r238091 r240644  
    3030
    3131#include "DOMWindow.h"
    32 #include "DeprecatedGlobalSettings.h"
    3332#include "Document.h"
    3433#include "DocumentLoader.h"
     
    3736#include "HTMLParserIdioms.h"
    3837#include "SchemeRegistry.h"
     38#include "Settings.h"
    3939#include "UserMediaRequest.h"
    4040
     
    114114    ASSERT(!types.isEmpty());
    115115
    116     bool requiresSecureConnection = DeprecatedGlobalSettings::mediaCaptureRequiresSecureConnection();
     116    bool requiresSecureConnection = true;
     117    if (auto page = document.page())
     118        requiresSecureConnection = page->settings().mediaCaptureRequiresSecureConnection();
    117119    auto& documentLoader = *document.loader();
    118120    if (requiresSecureConnection && !isSecure(documentLoader))
  • trunk/Source/WebCore/Scripts/GenerateSettings.rb

    r240540 r240644  
    121121
    122122  def setterFunctionName
    123     if @name.start_with?("css", "xss", "ftp", "dom", "dns")
     123    if @name.start_with?("css", "xss", "ftp", "dom", "dns", "ice")
    124124      "set" + @name[0..2].upcase + @name[3..@name.length]
    125125    else
  • trunk/Source/WebCore/Scripts/SettingsTemplates/Settings.cpp.erb

    r240540 r240644  
    126126        return;
    127127    m_<%= @setting.name %>InspectorOverride = <%= @setting.name %>InspectorOverride;
     128<%- if @setting.conditional -%>
     129#if ENABLE(<%= @setting.conditional %>)
     130<%- end -%>
    128131    <%= @setting.onChange %>();
     132<%- if @setting.conditional -%>
     133#endif
     134<%- end -%>
    129135}
    130136
  • trunk/Source/WebCore/inspector/agents/InspectorPageAgent.cpp

    r240549 r240644  
    8484using namespace Inspector;
    8585
     86// Keep this in sync with Page.Setting
    8687#define FOR_EACH_INSPECTOR_OVERRIDE_SETTING(macro) \
    8788    macro(AuthorAndUserStylesEnabled) \
     89    macro(ICECandidateFilteringEnabled) \
    8890    macro(ImagesEnabled) \
     91    macro(MediaCaptureRequiresSecureConnection) \
     92    macro(MockCaptureDevicesEnabled) \
    8993    macro(NeedsSiteSpecificQuirks) \
    9094    macro(ScriptEnabled) \
  • trunk/Source/WebCore/page/DeprecatedGlobalSettings.cpp

    r239065 r240644  
    3232#include <wtf/NeverDestroyed.h>
    3333
    34 #if ENABLE(MEDIA_STREAM)
    35 #include "MockRealtimeMediaSourceCenter.h"
    36 
    37 #endif
    38 
    3934namespace WebCore {
    4035
     
    5146bool DeprecatedGlobalSettings::gUsesOverlayScrollbars = false;
    5247bool DeprecatedGlobalSettings::gMockScrollAnimatorEnabled = false;
    53 
    54 #if ENABLE(MEDIA_STREAM)
    55 bool DeprecatedGlobalSettings::gMockCaptureDevicesEnabled = false;
    56 bool DeprecatedGlobalSettings::gMediaCaptureRequiresSecureConnection = true;
    57 #endif
    5848
    5949#if PLATFORM(WIN)
     
    111101    HTMLMediaElement::resetMediaEngines();
    112102#endif
    113 }
    114 #endif
    115 
    116 #if ENABLE(MEDIA_STREAM)
    117 bool DeprecatedGlobalSettings::mockCaptureDevicesEnabled()
    118 {
    119     return gMockCaptureDevicesEnabled;
    120 }
    121 
    122 void DeprecatedGlobalSettings::setMockCaptureDevicesEnabled(bool enabled)
    123 {
    124     gMockCaptureDevicesEnabled = enabled;
    125     MockRealtimeMediaSourceCenter::setMockRealtimeMediaSourceCenterEnabled(enabled);
    126 }
    127 
    128 bool DeprecatedGlobalSettings::mediaCaptureRequiresSecureConnection()
    129 {
    130     return gMediaCaptureRequiresSecureConnection;
    131 }
    132 
    133 void DeprecatedGlobalSettings::setMediaCaptureRequiresSecureConnection(bool mediaCaptureRequiresSecureConnection)
    134 {
    135     gMediaCaptureRequiresSecureConnection = mediaCaptureRequiresSecureConnection;
    136103}
    137104#endif
  • trunk/Source/WebCore/page/DeprecatedGlobalSettings.h

    r237266 r240644  
    104104    static bool shouldManageAudioSessionCategory() { return gManageAudioSession; }
    105105#endif
    106    
    107 #if ENABLE(MEDIA_STREAM)
    108     static bool mockCaptureDevicesEnabled();
    109     WEBCORE_EXPORT static void setMockCaptureDevicesEnabled(bool);
    110 
    111     static bool mediaCaptureRequiresSecureConnection();
    112     WEBCORE_EXPORT static void setMediaCaptureRequiresSecureConnection(bool);
    113 #endif
    114106
    115107    WEBCORE_EXPORT static void setAllowsAnySSLCertificate(bool);
     
    141133#endif
    142134    WEBCORE_EXPORT static bool gManageAudioSession;
    143    
    144 #if ENABLE(MEDIA_STREAM)
    145     static bool gMockCaptureDevicesEnabled;
    146     static bool gMediaCaptureRequiresSecureConnection;
    147 #endif
    148135
    149136    static bool gLowPowerVideoAudioBufferSizeEnabled;
  • trunk/Source/WebCore/page/Settings.yaml

    r240592 r240644  
    797797adClickAttributionEnabled:
    798798  initial: false
     799
     800# Deprecated
     801
     802iceCandidateFilteringEnabled:
     803  initial: true
     804  onChange: iceCandidateFilteringEnabledChanged
     805  inspectorOverride: true
     806
     807mockCaptureDevicesEnabled:
     808  initial: false
     809  conditional: MEDIA_STREAM
     810  onChange: mockCaptureDevicesEnabledChanged
     811  inspectorOverride: true
     812
     813mediaCaptureRequiresSecureConnection:
     814  initial: true
     815  conditional: MEDIA_STREAM
     816  inspectorOverride: true
  • trunk/Source/WebCore/page/SettingsBase.cpp

    r240592 r240644  
    4949#include <wtf/StdLibExtras.h>
    5050
     51#if ENABLE(MEDIA_STREAM)
     52#include "MockRealtimeMediaSourceCenter.h"
     53#endif
     54
    5155namespace WebCore {
    5256
     
    305309}
    306310
     311void SettingsBase::iceCandidateFilteringEnabledChanged()
     312{
     313    if (!m_page)
     314        return;
     315
     316    if (m_page->settings().iceCandidateFilteringEnabled())
     317        m_page->enableICECandidateFiltering();
     318    else
     319        m_page->disableICECandidateFiltering();
     320}
     321
    307322#if ENABLE(TEXT_AUTOSIZING)
    308323
     
    322337#endif
    323338
     339#if ENABLE(MEDIA_STREAM)
     340void SettingsBase::mockCaptureDevicesEnabledChanged()
     341{
     342    bool enabled = false;
     343    if (m_page)
     344        enabled = m_page->settings().mockCaptureDevicesEnabled();
     345
     346    MockRealtimeMediaSourceCenter::setMockRealtimeMediaSourceCenterEnabled(enabled);
     347}
     348#endif
     349
    324350void SettingsBase::userStyleSheetLocationChanged()
    325351{
  • trunk/Source/WebCore/page/SettingsBase.h

    r240592 r240644  
    193193    void hiddenPageCSSAnimationSuspensionEnabledChanged();
    194194    void resourceUsageOverlayVisibleChanged();
     195    void iceCandidateFilteringEnabledChanged();
    195196#if ENABLE(TEXT_AUTOSIZING)
    196197    void shouldEnableTextAutosizingBoostChanged();
     198#endif
     199#if ENABLE(MEDIA_STREAM)
     200    void mockCaptureDevicesEnabledChanged();
    197201#endif
    198202
  • trunk/Source/WebCore/page/SettingsDefaultValues.h

    r237266 r240644  
    110110static const bool defaultConicGradient = false;
    111111#endif
    112    
    113112
    114113}
  • trunk/Source/WebCore/testing/InternalSettings.cpp

    r237990 r240644  
    463463        return Exception { InvalidAccessError };
    464464#if ENABLE(MEDIA_STREAM)
    465     DeprecatedGlobalSettings::setMediaCaptureRequiresSecureConnection(requires);
     465    m_page->settings().setMediaCaptureRequiresSecureConnection(requires);
    466466#else
    467467    UNUSED_PARAM(requires);
  • trunk/Source/WebCore/testing/Internals.cpp

    r240553 r240644  
    535535#if ENABLE(MEDIA_STREAM)
    536536    setMockMediaCaptureDevicesEnabled(true);
    537     WebCore::DeprecatedGlobalSettings::setMediaCaptureRequiresSecureConnection(false);
     537    setMediaCaptureRequiresSecureConnection(false);
    538538#endif
    539539
     
    14731473void Internals::setMockMediaCaptureDevicesEnabled(bool enabled)
    14741474{
    1475     WebCore::DeprecatedGlobalSettings::setMockCaptureDevicesEnabled(enabled);
     1475    Document* document = contextDocument();
     1476    if (auto* page = document->page())
     1477        page->settings().setMockCaptureDevicesEnabled(enabled);
     1478}
     1479
     1480void Internals::setMediaCaptureRequiresSecureConnection(bool enabled)
     1481{
     1482    Document* document = contextDocument();
     1483    if (auto* page = document->page())
     1484        page->settings().setMediaCaptureRequiresSecureConnection(enabled);
    14761485}
    14771486
  • trunk/Source/WebCore/testing/Internals.h

    r239694 r240644  
    508508#if ENABLE(MEDIA_STREAM)
    509509    void setMockMediaCaptureDevicesEnabled(bool);
     510    void setMediaCaptureRequiresSecureConnection(bool);
    510511    void setCustomPrivateRecorderCreator();
    511512#endif
  • trunk/Source/WebInspectorUI/ChangeLog

    r240639 r240644  
     12019-01-28  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: provide a way to edit page WebRTC settings on a remote target
     4        https://bugs.webkit.org/show_bug.cgi?id=193863
     5        <rdar://problem/47572764>
     6
     7        Reviewed by Joseph Pecoraro.
     8
     9        * UserInterface/Base/Main.js:
     10        (WI.loaded):
     11        (WI.initializeTarget):
     12        (WI._handleDeviceSettingsToolbarButtonClicked):
     13        (WI._handleDeviceSettingsToolbarButtonClicked.createCheckbox):
     14        (WI._handleDeviceSettingsToolbarButtonClicked.createColumns): Deleted.
     15        * UserInterface/Views/Main.css:
     16        (.device-settings-content .container): Added.
     17
     18        * Localizations/en.lproj/localizedStrings.js:
     19
    1202019-01-28  Matt Baker  <mattbaker@apple.com>
    221
  • trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js

    r240639 r240644  
    6060localizedStrings["%s eval\n%s async"] = "%s eval\n%s async";
    6161localizedStrings["%s interval"] = "%s interval";
     62localizedStrings["%s:"] = "%s:";
    6263localizedStrings["(Action %s)"] = "(Action %s)";
    6364localizedStrings["(Disk)"] = "(Disk)";
     
    105106localizedStrings["All items in \u0022%s\u0022 must be non-empty strings"] = "All items in \u0022%s\u0022 must be non-empty strings";
    106107localizedStrings["All items in \u0022%s\u0022 must be valid DOM nodes"] = "All items in \u0022%s\u0022 must be valid DOM nodes";
     108localizedStrings["Allow Media Capture on Insecure Sites"] = "Allow Media Capture on Insecure Sites";
    107109localizedStrings["An error occurred trying to load the resource."] = "An error occurred trying to load the resource.";
    108110localizedStrings["An error occurred trying to read the \u201C%s\u201D table."] = "An error occurred trying to read the \u201C%s\u201D table.";
     
    305307localizedStrings["Disable Breakpoints"] = "Disable Breakpoints";
    306308localizedStrings["Disable Event Listener"] = "Disable Event Listener";
     309localizedStrings["Disable ICE Candidate Restrictions"] = "Disable ICE Candidate Restrictions";
    307310localizedStrings["Disable Program"] = "Disable Program";
    308311localizedStrings["Disable all breakpoints (%s)"] = "Disable all breakpoints (%s)";
     
    10241027localizedStrings["Use Default Appearance"] = "Use Default Appearance";
    10251028localizedStrings["Use Default Media Styles"] = "Use Default Media Styles";
     1029localizedStrings["Use Mock Capture Devices"] = "Use Mock Capture Devices";
    10261030localizedStrings["Use the resource cache when loading resources"] = "Use the resource cache when loading resources";
    10271031localizedStrings["User Agent"] = "User Agent";
  • trunk/Source/WebInspectorUI/UserInterface/Base/Main.js

    r240549 r240644  
    163163    this._targetsAvailablePromise = new WI.WrappedPromise;
    164164    WI._overridenDeviceUserAgent = null;
    165     WI._overridenDeviceSettings = new Set;
     165    WI._overridenDeviceSettings = new Map;
    166166
    167167    // Targets.
     
    613613        // COMPATIBILITY (iOS 12.2): Page.overrideSetting did not exist.
    614614        if (target.PageAgent.overrideSetting) {
    615             for (let setting of WI._overridenDeviceSettings)
    616                 target.PageAgent.overrideSetting(setting, true);
     615            for (let [setting, value] of WI._overridenDeviceSettings)
     616                target.PageAgent.overrideSetting(setting, value);
    617617        }
    618618
     
    19911991    }
    19921992
    1993     function applyOverriddenSetting(setting, callback) {
     1993    function applyOverriddenSetting(setting, value, callback) {
    19941994        if (WI._overridenDeviceSettings.has(setting)) {
    19951995            // We've just "disabled" the checkbox, so clear the override instead of applying it.
     
    20052005            });
    20062006        } else {
    2007             // Override to false since the labels are the inverse of the setting.
    2008             const value = false;
    20092007            PageAgent.overrideSetting(setting, value, (error) => {
    20102008                if (error) {
     
    20132011                }
    20142012
    2015                 WI._overridenDeviceSettings.add(setting);
     2013                WI._overridenDeviceSettings.set(setting, value);
    20162014                callback(true);
    20172015                updateActivatedState();
     
    20322030    }
    20332031
    2034     function createColumns(parent, count) {
    2035         let columnContainer = parent.appendChild(document.createElement("div"));
    2036         columnContainer.classList.add("columns");
    2037 
    2038         let columns = [];
    2039         for (let i = 0; i < count; ++i) {
    2040             let column = columnContainer.appendChild(document.createElement("div"));
    2041             column.classList.add("column");
    2042             columns.push(column);
    2043         }
    2044         return columns;
    2045     }
    2046 
    2047     function createCheckbox(container, label, setting) {
     2032    function createCheckbox(container, label, setting, value) {
     2033        if (!setting)
     2034            return;
     2035
    20482036        let labelElement = container.appendChild(document.createElement("label"));
    20492037
     
    20522040        checkboxElement.checked = WI._overridenDeviceSettings.has(setting);
    20532041        checkboxElement.addEventListener("change", (event) => {
    2054             applyOverriddenSetting(setting, (enabled) => {
     2042            applyOverriddenSetting(setting, value, (enabled) => {
    20552043                checkboxElement.checked = enabled;
    20562044            });
     
    21692157    });
    21702158
    2171     let disableColumns = createColumns(createContainer(contentElement, WI.UIString("Disable:")), 2);
    2172     createCheckbox(disableColumns[0], WI.UIString("Images"), PageAgent.Setting.ImagesEnabled);
    2173     createCheckbox(disableColumns[0], WI.UIString("Styles"), PageAgent.Setting.AuthorAndUserStylesEnabled);
    2174     createCheckbox(disableColumns[0], WI.UIString("JavaScript"), PageAgent.Setting.ScriptEnabled);
    2175     createCheckbox(disableColumns[1], WI.UIString("Site-specific Hacks"), PageAgent.Setting.NeedsSiteSpecificQuirks);
    2176     createCheckbox(disableColumns[1], WI.UIString("Cross-Origin Restrictions"), PageAgent.Setting.WebSecurityEnabled);
     2159    const settings = [
     2160        {
     2161            name: WI.UIString("Disable:"),
     2162            columns: [
     2163                [
     2164                    {name: WI.UIString("Images"), setting: PageAgent.Setting.ImagesEnabled, value: false},
     2165                    {name: WI.UIString("Styles"), setting: PageAgent.Setting.AuthorAndUserStylesEnabled, value: false},
     2166                    {name: WI.UIString("JavaScript"), setting: PageAgent.Setting.ScriptEnabled, value: false},
     2167                ],
     2168                [
     2169                    {name: WI.UIString("Site-specific Hacks"), setting: PageAgent.Setting.NeedsSiteSpecificQuirks, value: false},
     2170                    {name: WI.UIString("Cross-Origin Restrictions"), setting: PageAgent.Setting.WebSecurityEnabled, value: false},
     2171                ]
     2172            ],
     2173        },
     2174        {
     2175            name: WI.UIString("%s:").format(WI.unlocalizedString("WebRTC")),
     2176            columns: [
     2177                [
     2178                    {name: WI.UIString("Allow Media Capture on Insecure Sites"), setting: PageAgent.Setting.MediaCaptureRequiresSecureConnection, value: false},
     2179                    {name: WI.UIString("Disable ICE Candidate Restrictions"), setting: PageAgent.Setting.ICECandidateFilteringEnabled, value: false},
     2180                    {name: WI.UIString("Use Mock Capture Devices"), setting: PageAgent.Setting.MockCaptureDevicesEnabled, value: true},
     2181                ],
     2182            ],
     2183        },
     2184    ];
     2185
     2186    for (let group of settings) {
     2187        if (!group.columns.some((column) => column.some((item) => item.setting)))
     2188            continue;
     2189
     2190        let container = createContainer(contentElement, group.name);
     2191
     2192        let columnContainer = container.appendChild(document.createElement("div"));
     2193        columnContainer.classList.add("columns");
     2194
     2195        for (let column of group.columns) {
     2196            let columnElement = columnContainer.appendChild(document.createElement("div"));
     2197            columnElement.classList.add("column");
     2198
     2199            for (let item of column)
     2200                createCheckbox(columnElement, item.name, item.setting, item.value);
     2201        }
     2202    }
    21772203
    21782204    WI._deviceSettingsPopover.presentNewContentWithFrame(contentElement, calculateTargetFrame(), preferredEdges);
  • trunk/Source/WebInspectorUI/UserInterface/Views/Main.css

    r240549 r240644  
    392392}
    393393
     394.device-settings-content .container {
     395    margin-top: 8px;
     396}
     397
    394398.device-settings-content .columns {
    395399    display: flex;
  • trunk/Source/WebKit/ChangeLog

    r240641 r240644  
     12019-01-28  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: provide a way to edit page WebRTC settings on a remote target
     4        https://bugs.webkit.org/show_bug.cgi?id=193863
     5        <rdar://problem/47572764>
     6
     7        Reviewed by Joseph Pecoraro.
     8
     9        * Shared/WebPreferences.yaml:
     10        Add page-level settings for WebRTC preferences.
     11
    1122019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
    213
  • trunk/Source/WebKit/Shared/WebPreferences.yaml

    r240635 r240644  
    630630  webcoreName: httpEquivEnabled
    631631
    632 MockCaptureDevicesEnabled:
    633   type: bool
    634   defaultValue: DEFAULT_MOCK_CAPTURE_DEVICES_ENABLED
    635   webcoreBinding: DeprecatedGlobalSettings
    636   condition: ENABLE(MEDIA_STREAM)
    637 
    638632MockCaptureDevicesPromptEnabled:
    639633  type: bool
    640634  defaultValue: true
    641635  webcoreBinding: none
    642 
    643 MediaCaptureRequiresSecureConnection:
    644   type: bool
    645   defaultValue: true
    646   webcoreBinding: DeprecatedGlobalSettings
    647   condition: ENABLE(MEDIA_STREAM)
    648636
    649637# FIXME: What is this for?
     
    651639  type: bool
    652640  defaultValue: false
    653   webcoreBinding: none
    654 
    655 # FIXME: What is this for?
    656 ICECandidateFilteringEnabled:
    657   type: bool
    658   defaultValue: true
    659641  webcoreBinding: none
    660642
     
    15521534  webcoreBinding: RuntimeEnabledFeatures
    15531535  category: internal
     1536
     1537# Deprecated
     1538
     1539ICECandidateFilteringEnabled:
     1540  type: bool
     1541  defaultValue: true
     1542
     1543MockCaptureDevicesEnabled:
     1544  type: bool
     1545  defaultValue: DEFAULT_MOCK_CAPTURE_DEVICES_ENABLED
     1546  condition: ENABLE(MEDIA_STREAM)
     1547
     1548MediaCaptureRequiresSecureConnection:
     1549  type: bool
     1550  defaultValue: true
     1551  condition: ENABLE(MEDIA_STREAM)
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r240633 r240644  
     12019-01-28  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: provide a way to edit page WebRTC settings on a remote target
     4        https://bugs.webkit.org/show_bug.cgi?id=193863
     5        <rdar://problem/47572764>
     6
     7        Reviewed by Joseph Pecoraro.
     8
     9        * WebView/WebView.mm:
     10        (-[WebView _preferencesChanged:]):
     11        Add page-level settings for WebRTC preferences.
     12
    1132019-01-28  Andy Estes  <aestes@apple.com>
    214
  • trunk/Source/WebKitLegacy/mac/WebView/WebView.mm

    r240628 r240644  
    30583058
    30593059#if ENABLE(MEDIA_STREAM)
    3060     DeprecatedGlobalSettings::setMockCaptureDevicesEnabled(false);
    3061     DeprecatedGlobalSettings::setMediaCaptureRequiresSecureConnection(true);
     3060    settings.setMockCaptureDevicesEnabled(false);
     3061    settings.setMediaCaptureRequiresSecureConnection(true);
    30623062    RuntimeEnabledFeatures::sharedFeatures().setMediaStreamEnabled(false);
    30633063    RuntimeEnabledFeatures::sharedFeatures().setMediaDevicesEnabled(false);
Note: See TracChangeset for help on using the changeset viewer.