Changeset 234502 in webkit


Ignore:
Timestamp:
Aug 2, 2018, 9:42:39 AM (7 years ago)
Author:
mitz@apple.com
Message:

Optionally expose Attr::style to JavaScript
https://bugs.webkit.org/show_bug.cgi?id=188226
<rdar://problem/42818113>

Reviewed by Darin Adler.

Source/WebCore:

Test: TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.mm

  • dom/Attr.cpp: Update comment.
  • dom/Attr.idl: Define the style attribute, enabled at runtime by the AttrStyle feature.
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setAttrStyleEnabled): Added this accessor.
(WebCore::RuntimeEnabledFeatures::attrStyleEnabled const): Ditto.

Source/WebKit:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const): Encode new attrStyleEnabled member.
(WebKit::WebProcessCreationParameters::decode): Decode new attrStyleEnabled member.

  • Shared/WebProcessCreationParameters.h: Define new attrStyleEnabled member, initialized to false.
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy): Copy new m_attrStyleEnabled member.

  • UIProcess/API/APIProcessPoolConfiguration.h: Define new m_attrStyleEnabled member.
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: Declare new attrStyleEnabled boolean property.
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration attrStyleEnabled]): New accessor.
(-[_WKProcessPoolConfiguration setAttrStyleEnabled:]): Ditto.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess): Initialize parameters.attrStyleEnabled

from the configuration.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess): Set the attrStyleEnabled runtime feature based

on the creation parameters.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.mm: Added.

(TEST):

Location:
trunk
Files:
2 added
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r234501 r234502  
     12018-08-01  Dan Bernstein  <mitz@apple.com>
     2
     3        Optionally expose Attr::style to JavaScript
     4        https://bugs.webkit.org/show_bug.cgi?id=188226
     5        <rdar://problem/42818113>
     6
     7        Reviewed by Darin Adler.
     8
     9        Test: TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.mm
     10
     11        * dom/Attr.cpp: Update comment.
     12        * dom/Attr.idl: Define the style attribute, enabled at runtime by the AttrStyle feature.
     13
     14        * page/RuntimeEnabledFeatures.h:
     15        (WebCore::RuntimeEnabledFeatures::setAttrStyleEnabled): Added this accessor.
     16        (WebCore::RuntimeEnabledFeatures::attrStyleEnabled const): Ditto.
     17
    1182018-08-02  David Fenton  <david_fenton@apple.com>
    219
  • trunk/Source/WebCore/dom/Attr.cpp

    r229694 r234502  
    108108CSSStyleDeclaration* Attr::style()
    109109{
    110     // This function only exists to support the Obj-C bindings.
     110    // This is not part of the DOM API, and therefore not available to webpages. However, WebKit SPI
     111    // lets clients use this via the Objective-C and JavaScript bindings.
    111112    if (!is<StyledElement>(m_element))
    112113        return nullptr;
  • trunk/Source/WebCore/dom/Attr.idl

    r216632 r234502  
    3333
    3434    readonly attribute boolean specified; // Useless; always returns true.
     35
     36    [EnabledAtRuntime=AttrStyle] readonly attribute CSSStyleDeclaration style;
    3537};
  • trunk/Source/WebCore/page/RuntimeEnabledFeatures.h

    r234482 r234502  
    280280#endif
    281281
     282    void setAttrStyleEnabled(bool isEnabled) { m_attrStyleEnabled = isEnabled; }
     283    bool attrStyleEnabled() const { return m_attrStyleEnabled; }
     284
    282285    WEBCORE_EXPORT static RuntimeEnabledFeatures& sharedFeatures();
    283286
     
    421424#endif
    422425
     426    bool m_attrStyleEnabled { false };
     427
    423428    friend class WTF::NeverDestroyed<RuntimeEnabledFeatures>;
    424429};
  • trunk/Source/WebKit/ChangeLog

    r234501 r234502  
     12018-08-01  Dan Bernstein  <mitz@apple.com>
     2
     3        Optionally expose Attr::style to JavaScript
     4        https://bugs.webkit.org/show_bug.cgi?id=188226
     5        <rdar://problem/42818113>
     6
     7        Reviewed by Darin Adler.
     8
     9        * Shared/WebProcessCreationParameters.cpp:
     10        (WebKit::WebProcessCreationParameters::encode const): Encode new attrStyleEnabled member.
     11        (WebKit::WebProcessCreationParameters::decode): Decode new attrStyleEnabled member.
     12        * Shared/WebProcessCreationParameters.h: Define new attrStyleEnabled member, initialized to
     13          false.
     14
     15        * UIProcess/API/APIProcessPoolConfiguration.cpp:
     16        (API::ProcessPoolConfiguration::copy): Copy new m_attrStyleEnabled member.
     17        * UIProcess/API/APIProcessPoolConfiguration.h: Define new m_attrStyleEnabled member.
     18
     19        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: Declare new attrStyleEnabled boolean
     20          property.
     21        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
     22        (-[_WKProcessPoolConfiguration attrStyleEnabled]): New accessor.
     23        (-[_WKProcessPoolConfiguration setAttrStyleEnabled:]): Ditto.
     24
     25        * UIProcess/WebProcessPool.cpp:
     26        (WebKit::WebProcessPool::initializeNewWebProcess): Initialize parameters.attrStyleEnabled
     27          from the configuration.
     28
     29        * WebProcess/WebProcess.cpp:
     30        (WebKit::WebProcess::initializeWebProcess): Set the attrStyleEnabled runtime feature based
     31          on the creation parameters.
     32
    1332018-08-02  David Fenton  <david_fenton@apple.com>
    234
  • trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp

    r234447 r234502  
    126126    encoder << plugInAutoStartOrigins;
    127127    encoder << memoryCacheDisabled;
     128    encoder << attrStyleEnabled;
    128129
    129130#if ENABLE(SERVICE_CONTROLS)
     
    369370    if (!decoder.decode(parameters.memoryCacheDisabled))
    370371        return false;
     372    if (!decoder.decode(parameters.attrStyleEnabled))
     373        return false;
    371374
    372375#if ENABLE(SERVICE_CONTROLS)
  • trunk/Source/WebKit/Shared/WebProcessCreationParameters.h

    r234447 r234502  
    134134    bool fullKeyboardAccessEnabled { false };
    135135    bool memoryCacheDisabled { false };
     136    bool attrStyleEnabled { false };
    136137
    137138#if ENABLE(SERVICE_CONTROLS)
  • trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp

    r234459 r234502  
    118118    copy->m_fullySynchronousModeIsAllowedForTesting = this->m_fullySynchronousModeIsAllowedForTesting;
    119119    copy->m_ignoreSynchronousMessagingTimeoutsForTesting = this->m_ignoreSynchronousMessagingTimeoutsForTesting;
     120    copy->m_attrStyleEnabled = this->m_attrStyleEnabled;
    120121    copy->m_overrideLanguages = this->m_overrideLanguages;
    121122    copy->m_sourceApplicationBundleIdentifier = this->m_sourceApplicationBundleIdentifier;
  • trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h

    r234459 r234502  
    110110    void setIgnoreSynchronousMessagingTimeoutsForTesting(bool allowed) { m_ignoreSynchronousMessagingTimeoutsForTesting = allowed; }
    111111
     112    bool attrStyleEnabled() const { return m_attrStyleEnabled; }
     113    void setAttrStyleEnabled(bool enabled) { m_attrStyleEnabled = enabled; }
     114
    112115    const Vector<WTF::String>& overrideLanguages() const { return m_overrideLanguages; }
    113116    void setOverrideLanguages(Vector<WTF::String>&& languages) { m_overrideLanguages = WTFMove(languages); }
     
    179182    bool m_fullySynchronousModeIsAllowedForTesting { false };
    180183    bool m_ignoreSynchronousMessagingTimeoutsForTesting { false };
     184    bool m_attrStyleEnabled { false };
    181185    Vector<WTF::String> m_overrideLanguages;
    182186    WTF::String m_sourceApplicationBundleIdentifier;
  • trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h

    r234459 r234502  
    3838
    3939@property (nonatomic) BOOL ignoreSynchronousMessagingTimeoutsForTesting WK_API_AVAILABLE(macosx(10.12), ios(10.0));
     40@property (nonatomic) BOOL attrStyleEnabled WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
    4041
    4142@property (nonatomic, copy) NSArray<NSURL *> *additionalReadAccessAllowedURLs WK_API_AVAILABLE(macosx(10.13), ios(11.0));
  • trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm

    r234459 r234502  
    103103}
    104104
     105- (BOOL)attrStyleEnabled
     106{
     107    return _processPoolConfiguration->attrStyleEnabled();
     108}
     109
     110- (void)setAttrStyleEnabled:(BOOL)enabled
     111{
     112    return _processPoolConfiguration->setAttrStyleEnabled(enabled);
     113}
     114
    105115- (NSArray<NSURL *> *)additionalReadAccessAllowedURLs
    106116{
  • trunk/Source/WebKit/UIProcess/WebProcessPool.cpp

    r234501 r234502  
    927927
    928928    parameters.memoryCacheDisabled = m_memoryCacheDisabled;
     929    parameters.attrStyleEnabled = m_configuration->attrStyleEnabled();
    929930
    930931#if ENABLE(SERVICE_CONTROLS)
  • trunk/Source/WebKit/WebProcess/WebProcess.cpp

    r233939 r234502  
    111111#include <WebCore/ResourceLoadStatistics.h>
    112112#include <WebCore/RuntimeApplicationChecks.h>
     113#include <WebCore/RuntimeEnabledFeatures.h>
    113114#include <WebCore/SchemeRegistry.h>
    114115#include <WebCore/SecurityOrigin.h>
     
    391392    setMemoryCacheDisabled(parameters.memoryCacheDisabled);
    392393
     394    WebCore::RuntimeEnabledFeatures::sharedFeatures().setAttrStyleEnabled(parameters.attrStyleEnabled);
     395
    393396#if ENABLE(SERVICE_CONTROLS)
    394397    setEnabledServices(parameters.hasImageServices, parameters.hasSelectionServices, parameters.hasRichContentServices);
  • trunk/Tools/ChangeLog

    r234501 r234502  
     12018-08-01  Dan Bernstein  <mitz@apple.com>
     2
     3        Optionally expose Attr::style to JavaScript
     4        https://bugs.webkit.org/show_bug.cgi?id=188226
     5        <rdar://problem/42818113>
     6
     7        Reviewed by Darin Adler.
     8
     9        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     10        * TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.html: Added.
     11        * TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.mm: Added.
     12        (TEST):
     13
    1142018-08-02  David Fenton  <david_fenton@apple.com>
    215
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r234459 r234502  
    131131                370CE22A1F57343400E7410B /* WKContentViewTargetForAction.mm in Sources */ = {isa = PBXBuildFile; fileRef = 370CE2291F57343400E7410B /* WKContentViewTargetForAction.mm */; };
    132132                371195AB1FE5797700A1FB92 /* WKWebViewAlwaysShowsScroller.mm in Sources */ = {isa = PBXBuildFile; fileRef = 371195AA1FE5797700A1FB92 /* WKWebViewAlwaysShowsScroller.mm */; };
     133                37137E4B21124D01002BEEA4 /* AttrStyle.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 3760C4F221124BD000233ACC /* AttrStyle.html */; };
    133134                374B7A601DF36EEE00ACCB6C /* BundleEditingDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 374B7A5E1DF36EEE00ACCB6C /* BundleEditingDelegate.mm */; };
    134135                374B7A611DF371CF00ACCB6C /* BundleEditingDelegatePlugIn.mm in Sources */ = {isa = PBXBuildFile; fileRef = 374B7A5F1DF36EEE00ACCB6C /* BundleEditingDelegatePlugIn.mm */; };
    135136                375E0E171D66674400EFEC2C /* WKNSNumber.mm in Sources */ = {isa = PBXBuildFile; fileRef = 375E0E151D66674400EFEC2C /* WKNSNumber.mm */; };
     137                3760C4F1211249AF00233ACC /* AttrStyle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3760C4F0211249AF00233ACC /* AttrStyle.mm */; };
    136138                376C8C061D6E197C007D2BB9 /* FrameHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 376C8C041D6E197C007D2BB9 /* FrameHandle.cpp */; };
    137139                378E64771632655E00B6C676 /* InjectedBundleFrameHitTest_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 378E64751632655D00B6C676 /* InjectedBundleFrameHitTest_Bundle.cpp */; };
     
    925927                                B55F11B71517D03300915916 /* attributedStringCustomFont.html in Copy Resources */,
    926928                                7C9ED98B17A19F4B00E4DC33 /* attributedStringStrikethrough.html in Copy Resources */,
     929                                37137E4B21124D01002BEEA4 /* AttrStyle.html in Copy Resources */,
    927930                                CD9E292E1C90C33F000BB800 /* audio-only.html in Copy Resources */,
    928931                                76E182DF154767E600F1FADD /* auto-submitting-form.html in Copy Resources */,
     
    13551358                3751AF7A169518F800764319 /* DOMNodeFromJSObject.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMNodeFromJSObject.mm; sourceTree = "<group>"; };
    13561359                375E0E151D66674400EFEC2C /* WKNSNumber.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNSNumber.mm; sourceTree = "<group>"; };
     1360                3760C4F0211249AF00233ACC /* AttrStyle.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = AttrStyle.mm; sourceTree = "<group>"; };
     1361                3760C4F221124BD000233ACC /* AttrStyle.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = AttrStyle.html; sourceTree = "<group>"; };
    13571362                376C8C041D6E197C007D2BB9 /* FrameHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FrameHandle.cpp; sourceTree = "<group>"; };
    13581363                3776BC62150946BC0043A66D /* DeviceScaleFactorInDashboardRegions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DeviceScaleFactorInDashboardRegions.mm; sourceTree = "<group>"; };
     
    22342239                                63F668201F97C3AA0032EE51 /* ApplicationManifest.mm */,
    22352240                                834138C6203261B900F26960 /* AsyncPolicyForNavigationResponse.mm */,
     2241                                3760C4F0211249AF00233ACC /* AttrStyle.mm */,
    22362242                                754CEC801F6722DC00D0039A /* AutoFillAvailable.mm */,
    22372243                                2DD355351BD08378005DF4A7 /* AutoLayoutIntegration.mm */,
     
    25532559                                5C9E59401D3EB1DE00E3C62E /* ApplicationCache.db-wal */,
    25542560                                F4856CA21E6498A8009D7EE7 /* attachment-element.html */,
     2561                                3760C4F221124BD000233ACC /* AttrStyle.html */,
    25552562                                F41AB9981EF4692C0083FA08 /* autofocus-contenteditable.html */,
    25562563                                93CFA8661CEB9DE1000565A8 /* autofocused-text-input.html */,
     
    35983605                                834138C7203261CA00F26960 /* AsyncPolicyForNavigationResponse.mm in Sources */,
    35993606                                7CCE7EB41A411A7E00447C4C /* AttributedString.mm in Sources */,
     3607                                3760C4F1211249AF00233ACC /* AttrStyle.mm in Sources */,
    36003608                                CDC8E48D1BC5CB4500594FEC /* AudioSessionCategoryIOS.mm in Sources */,
    36013609                                7C83E0B91D0A64F100FEBCF3 /* AutoLayoutIntegration.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.