Changeset 250816 in webkit


Ignore:
Timestamp:
Oct 7, 2019 11:22:46 PM (5 years ago)
Author:
rniwa@webkit.org
Message:

Add IDL for requestIdleCallback
https://bugs.webkit.org/show_bug.cgi?id=202653

Reviewed by Geoffrey Garen.

Source/WebCore:

Added the basic scaffolding for implementing requestIdleCallback disabled by default:
https://w3c.github.io/requestidlecallback/

This patch just adds the support for calling requestIdleCallback which generates a monotonically increasing number.
The callback is never called for now.

Tests: requestidlecallback/requestidlecallback-enabled.html

requestidlecallback/requestidlecallback-id.html
requestidlecallback/requestidlecallback-not-enabled.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/Document.cpp:

(WebCore::Document::requestIdleCallback):
(WebCore::Document::cancelIdleCallback):

  • dom/Document.h:
  • dom/IdleCallbackController.cpp: Added.

(WebCore::IdleCallbackController::queueIdleCallback):
(WebCore::IdleCallbackController::removeIdleCallback):

  • dom/IdleCallbackController.h: Added.
  • dom/IdleDeadline.cpp: Added.

(WebCore::IdleDeadline::timeRemaining const):
(WebCore::IdleDeadline::didTimeout const):

  • dom/IdleDeadline.h: Added.
  • dom/IdleDeadline.idl: Added.
  • dom/IdleRequestCallback.h: Added.
  • dom/IdleRequestCallback.idl: Added.
  • dom/IdleRequestOptions.h: Added.
  • dom/IdleRequestOptions.idl: Added.
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::requestIdleCallback):
(WebCore::DOMWindow::cancelIdleCallback):

  • page/DOMWindow.h:
  • page/DOMWindow.idl:
  • page/Settings.yaml:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Tools:

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(setWebPreferencesForTestOptions):

LayoutTests:

Added basic tests for validating requestIdleCallback is enabled or disabled, and its identifier starts at 1 in each document.

  • requestidlecallback: Added.
  • requestidlecallback/requestidlecallback-enabled-expected.txt: Added.
  • requestidlecallback/requestidlecallback-enabled.html: Added.
  • requestidlecallback/requestidlecallback-id-expected.txt: Added.
  • requestidlecallback/requestidlecallback-id.html: Added.
  • requestidlecallback/requestidlecallback-not-enabled-expected.txt: Added.
  • requestidlecallback/requestidlecallback-not-enabled.html: Added.
Location:
trunk
Files:
16 added
24 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r250811 r250816  
     12019-10-07  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Add IDL for requestIdleCallback
     4        https://bugs.webkit.org/show_bug.cgi?id=202653
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        Added basic tests for validating requestIdleCallback is enabled or disabled, and its identifier starts at 1 in each document.
     9
     10        * requestidlecallback: Added.
     11        * requestidlecallback/requestidlecallback-enabled-expected.txt: Added.
     12        * requestidlecallback/requestidlecallback-enabled.html: Added.
     13        * requestidlecallback/requestidlecallback-id-expected.txt: Added.
     14        * requestidlecallback/requestidlecallback-id.html: Added.
     15        * requestidlecallback/requestidlecallback-not-enabled-expected.txt: Added.
     16        * requestidlecallback/requestidlecallback-not-enabled.html: Added.
     17
    1182019-10-07  Jiewen Tan  <jiewen_tan@apple.com>
    219
  • trunk/Source/WebCore/CMakeLists.txt

    r249601 r250816  
    707707    dom/GlobalEventHandlers.idl
    708708    dom/HashChangeEvent.idl
     709    dom/IdleDeadline.idl
     710    dom/IdleRequestCallback.idl
     711    dom/IdleRequestOptions.idl
    709712    dom/InputEvent.idl
    710713    dom/KeyboardEvent.idl
  • trunk/Source/WebCore/ChangeLog

    r250811 r250816  
     12019-10-07  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Add IDL for requestIdleCallback
     4        https://bugs.webkit.org/show_bug.cgi?id=202653
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        Added the basic scaffolding for implementing requestIdleCallback disabled by default:
     9        https://w3c.github.io/requestidlecallback/
     10
     11        This patch just adds the support for calling requestIdleCallback which generates a monotonically increasing number.
     12        The callback is never called for now.
     13
     14        Tests: requestidlecallback/requestidlecallback-enabled.html
     15               requestidlecallback/requestidlecallback-id.html
     16               requestidlecallback/requestidlecallback-not-enabled.html
     17
     18        * CMakeLists.txt:
     19        * DerivedSources.make:
     20        * Sources.txt:
     21        * WebCore.xcodeproj/project.pbxproj:
     22        * bindings/js/WebCoreBuiltinNames.h:
     23        * dom/Document.cpp:
     24        (WebCore::Document::requestIdleCallback):
     25        (WebCore::Document::cancelIdleCallback):
     26        * dom/Document.h:
     27        * dom/IdleCallbackController.cpp: Added.
     28        (WebCore::IdleCallbackController::queueIdleCallback):
     29        (WebCore::IdleCallbackController::removeIdleCallback):
     30        * dom/IdleCallbackController.h: Added.
     31        * dom/IdleDeadline.cpp: Added.
     32        (WebCore::IdleDeadline::timeRemaining const):
     33        (WebCore::IdleDeadline::didTimeout const):
     34        * dom/IdleDeadline.h: Added.
     35        * dom/IdleDeadline.idl: Added.
     36        * dom/IdleRequestCallback.h: Added.
     37        * dom/IdleRequestCallback.idl: Added.
     38        * dom/IdleRequestOptions.h: Added.
     39        * dom/IdleRequestOptions.idl: Added.
     40        * page/DOMWindow.cpp:
     41        (WebCore::DOMWindow::requestIdleCallback):
     42        (WebCore::DOMWindow::cancelIdleCallback):
     43        * page/DOMWindow.h:
     44        * page/DOMWindow.idl:
     45        * page/Settings.yaml:
     46
    1472019-10-07  Jiewen Tan  <jiewen_tan@apple.com>
    248
  • trunk/Source/WebCore/DerivedSources.make

    r250048 r250816  
    607607    $(WebCore)/dom/GlobalEventHandlers.idl \
    608608    $(WebCore)/dom/HashChangeEvent.idl \
     609    $(WebCore)/dom/IdleDeadline.idl \
     610    $(WebCore)/dom/IdleRequestCallback.idl \
     611    $(WebCore)/dom/IdleRequestOptions.idl \
    609612    $(WebCore)/dom/InputEvent.idl \
    610613    $(WebCore)/dom/KeyboardEvent.idl \
  • trunk/Source/WebCore/Sources.txt

    r250769 r250816  
    887887dom/IdTargetObserver.cpp
    888888dom/IdTargetObserverRegistry.cpp
     889dom/IdleDeadline.cpp
     890dom/IdleCallbackController.cpp
    889891dom/InlineClassicScript.cpp
    890892dom/InlineStyleSheetOwner.cpp
     
    29662968JSIDBTransactionMode.cpp
    29672969JSIDBVersionChangeEvent.cpp
     2970JSIdleRequestCallback.cpp
     2971JSIdleRequestOptions.cpp
     2972JSIdleDeadline.cpp
    29682973JSImageBitmap.cpp
    29692974JSImageBitmapOptions.cpp
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r250769 r250816  
    28532853                9B6C41531344949000085B62 /* StringWithDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B6C41521344949000085B62 /* StringWithDirection.h */; settings = {ATTRIBUTES = (Private, ); }; };
    28542854                9B714E211C91166900AC0E92 /* EventPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B714E1F1C91166900AC0E92 /* EventPath.h */; };
     2855                9B742605234BE95600DB52E9 /* IdleRequestCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B742603234BE95600DB52E9 /* IdleRequestCallback.h */; };
     2856                9B74260B234BEA6E00DB52E9 /* IdleDeadline.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B742608234BEA6E00DB52E9 /* IdleDeadline.h */; };
     2857                9B864F02234C028A006D10EB /* IdleRequestOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B864F00234C028A006D10EB /* IdleRequestOptions.h */; };
     2858                9B864F06234C0893006D10EB /* IdleCallbackController.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B864F05234C0893006D10EB /* IdleCallbackController.h */; };
    28552859                9BA273F4172206BB0097CE47 /* LogicalSelectionOffsetCaches.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BA273F3172206BB0097CE47 /* LogicalSelectionOffsetCaches.h */; };
    28562860                9BAAC45C21520128003D4A98 /* GCReachableRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BAAC4562151E39E003D4A98 /* GCReachableRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    1106911073                9B714E1E1C91166900AC0E92 /* EventPath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventPath.cpp; sourceTree = "<group>"; };
    1107011074                9B714E1F1C91166900AC0E92 /* EventPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventPath.h; sourceTree = "<group>"; };
     11075                9B742603234BE95600DB52E9 /* IdleRequestCallback.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdleRequestCallback.h; sourceTree = "<group>"; };
     11076                9B742604234BE95600DB52E9 /* IdleRequestCallback.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = IdleRequestCallback.idl; sourceTree = "<group>"; };
     11077                9B742608234BEA6E00DB52E9 /* IdleDeadline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdleDeadline.h; sourceTree = "<group>"; };
     11078                9B742609234BEA6E00DB52E9 /* IdleDeadline.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = IdleDeadline.cpp; sourceTree = "<group>"; };
     11079                9B74260A234BEA6E00DB52E9 /* IdleDeadline.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = IdleDeadline.idl; sourceTree = "<group>"; };
    1107111080                9B85530520E733B5009EEF4F /* EventTargetFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EventTargetFactory.cpp; path = DerivedSources/WebCore/EventTargetFactory.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
     11081                9B864F00234C028A006D10EB /* IdleRequestOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdleRequestOptions.h; sourceTree = "<group>"; };
     11082                9B864F01234C028A006D10EB /* IdleRequestOptions.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = IdleRequestOptions.idl; sourceTree = "<group>"; };
     11083                9B864F05234C0893006D10EB /* IdleCallbackController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdleCallbackController.h; sourceTree = "<group>"; };
     11084                9B864F07234C08A3006D10EB /* IdleCallbackController.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = IdleCallbackController.cpp; sourceTree = "<group>"; };
    1107211085                9B9299B01F6796A4006723C2 /* WebContentReaderCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebContentReaderCocoa.mm; sourceTree = "<group>"; };
    1107311086                9B9CADA72165DC7600E8D858 /* JSMutationRecordCustom.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = JSMutationRecordCustom.cpp; sourceTree = "<group>"; };
     
    2766827681                                2442BBF81194C9D300D49469 /* HashChangeEvent.h */,
    2766927682                                8482B7441198C32E00BFB005 /* HashChangeEvent.idl */,
     27683                                9B864F07234C08A3006D10EB /* IdleCallbackController.cpp */,
     27684                                9B864F05234C0893006D10EB /* IdleCallbackController.h */,
     27685                                9B742609234BEA6E00DB52E9 /* IdleDeadline.cpp */,
     27686                                9B742608234BEA6E00DB52E9 /* IdleDeadline.h */,
     27687                                9B74260A234BEA6E00DB52E9 /* IdleDeadline.idl */,
     27688                                9B742603234BE95600DB52E9 /* IdleRequestCallback.h */,
     27689                                9B742604234BE95600DB52E9 /* IdleRequestCallback.idl */,
     27690                                9B864F00234C028A006D10EB /* IdleRequestOptions.h */,
     27691                                9B864F01234C028A006D10EB /* IdleRequestOptions.idl */,
    2767027692                                C3CF17A015B0063F00276D39 /* IdTargetObserver.cpp */,
    2767127693                                C3CF17A115B0063F00276D39 /* IdTargetObserver.h */,
     
    2970029722                                49E911C50EF86D47009D0CAF /* IdentityTransformOperation.h in Headers */,
    2970129723                                7CE9A12B1EA2F1DB00651AD1 /* IDLAttributes.json in Headers */,
     29724                                9B864F06234C0893006D10EB /* IdleCallbackController.h in Headers */,
     29725                                9B74260B234BEA6E00DB52E9 /* IdleDeadline.h in Headers */,
     29726                                9B742605234BE95600DB52E9 /* IdleRequestCallback.h in Headers */,
     29727                                9B864F02234C028A006D10EB /* IdleRequestOptions.h in Headers */,
    2970229728                                C0C054CD1118C8E400CE2636 /* IDLParser.pm in Headers */,
    2970329729                                7C5222961E1DAE03002CB8F7 /* IDLTypes.h in Headers */,
  • trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h

    r250551 r250816  
    131131    macro(ImageBitmap) \
    132132    macro(ImageBitmapRenderingContext) \
     133    macro(IdleDeadline) \
    133134    macro(InputEvent) \
    134135    macro(IntersectionObserver) \
     
    244245    macro(caches) \
    245246    macro(cancel) \
     247    macro(cancelIdleCallback) \
    246248    macro(cloneArrayBuffer) \
    247249    macro(close) \
     
    318320    macro(reader) \
    319321    macro(readyPromiseCapability) \
     322    macro(requestIdleCallback) \
    320323    macro(response) \
    321324    macro(responseCacheIsValid) \
  • trunk/Source/WebCore/dom/Document.cpp

    r250774 r250816  
    110110#include "History.h"
    111111#include "HitTestResult.h"
     112#include "IdleCallbackController.h"
    112113#include "ImageBitmapRenderingContext.h"
    113114#include "ImageLoader.h"
     
    63626363}
    63636364
     6365int Document::requestIdleCallback(Ref<IdleRequestCallback>&& callback, Seconds timeout)
     6366{
     6367    if (!m_idleCallbackController)
     6368        m_idleCallbackController = makeUnique<IdleCallbackController>();
     6369    return m_idleCallbackController->queueIdleCallback(WTFMove(callback), timeout);
     6370}
     6371
     6372void Document::cancelIdleCallback(int id)
     6373{
     6374    if (!m_idleCallbackController)
     6375        return;
     6376    m_idleCallbackController->removeIdleCallback(id);
     6377}
     6378
    63646379void Document::wheelEventHandlersChanged()
    63656380{
  • trunk/Source/WebCore/dom/Document.h

    r250803 r250816  
    146146class HitTestRequest;
    147147class HitTestResult;
     148class IdleCallbackController;
     149class IdleRequestCallback;
    148150class ImageBitmapRenderingContext;
    149151class IntPoint;
     
    12071209    void cancelAnimationFrame(int id);
    12081210
     1211    int requestIdleCallback(Ref<IdleRequestCallback>&&, Seconds timeout);
     1212    void cancelIdleCallback(int id);
     1213
    12091214    EventTarget* errorEventTarget() final;
    12101215    void logExceptionToConsole(const String& errorMessage, const String& sourceURL, int lineNumber, int columnNumber, RefPtr<Inspector::ScriptCallStack>&&) final;
     
    18391844    RefPtr<ScriptedAnimationController> m_scriptedAnimationController;
    18401845
     1846    std::unique_ptr<IdleCallbackController> m_idleCallbackController;
     1847
    18411848    void notifyMediaCaptureOfVisibilityChanged();
    18421849
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r250735 r250816  
    6969#include "HTTPParsers.h"
    7070#include "History.h"
     71#include "IdleRequestOptions.h"
    7172#include "InspectorInstrumentation.h"
    7273#include "JSDOMPromiseDeferred.h"
     
    17821783}
    17831784
     1785int DOMWindow::requestIdleCallback(Ref<IdleRequestCallback>&& callback, const IdleRequestOptions& options)
     1786{
     1787    auto document = makeRefPtr(this->document());
     1788    if (!document)
     1789        return 0;
     1790    return document->requestIdleCallback(WTFMove(callback), Seconds::fromMilliseconds(options.timeout));
     1791}
     1792
     1793void DOMWindow::cancelIdleCallback(int id)
     1794{
     1795    auto document = makeRefPtr(this->document());
     1796    if (!document)
     1797        return;
     1798    return document->cancelIdleCallback(id);
     1799}
     1800
    17841801void DOMWindow::createImageBitmap(ImageBitmap::Source&& source, ImageBitmapOptions&& options, ImageBitmap::Promise&& promise)
    17851802{
  • trunk/Source/WebCore/page/DOMWindow.h

    r250803 r250816  
    6666class FloatRect;
    6767class History;
     68class IdleRequestCallback;
    6869class Location;
    6970class MediaQueryList;
     
    7677class PostMessageTimer;
    7778class RequestAnimationFrameCallback;
     79class RequestIdleCallback;
    7880class ScheduledAction;
    7981class Screen;
     
    8991#endif
    9092
     93struct IdleRequestOptions;
    9194struct ImageBitmapOptions;
    9295struct WindowFeatures;
     
    276279    int webkitRequestAnimationFrame(Ref<RequestAnimationFrameCallback>&&);
    277280    void cancelAnimationFrame(int id);
     281
     282    int requestIdleCallback(Ref<IdleRequestCallback>&&, const IdleRequestOptions&);
     283    void cancelIdleCallback(int id);
    278284
    279285    // ImageBitmap
  • trunk/Source/WebCore/page/DOMWindow.idl

    r250558 r250816  
    9494    void cancelAnimationFrame(long handle); // FIXME: handle should be an unsigned long.
    9595
     96    [EnabledBySetting=requestIdleCallback] unsigned long requestIdleCallback(IdleRequestCallback callback, optional IdleRequestOptions options);
     97    [EnabledBySetting=requestIdleCallback] void cancelIdleCallback(unsigned long handle);
     98
    9699    [CallWith=ExecState&IncumbentWindow, DoNotCheckSecurity, ForwardDeclareInHeader, MayThrowException] void postMessage(any message, USVString targetOrigin, optional sequence<object> transfer = []);
    97100
  • trunk/Source/WebCore/page/Settings.yaml

    r249162 r250816  
    338338requestAnimationFrameEnabled:
    339339  initial: true
     340requestIdleCallbackEnabled:
     341  initial: false
    340342
    341343HTTPSUpgradeEnabled:
  • trunk/Source/WebKit/ChangeLog

    r250804 r250816  
     12019-10-07  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Add IDL for requestIdleCallback
     4        https://bugs.webkit.org/show_bug.cgi?id=202653
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * Shared/WebPreferences.yaml:
     9
    1102019-10-07  Kate Cheney  <katherine_cheney@apple.com>
    211
  • trunk/Source/WebKit/Shared/WebPreferences.yaml

    r250780 r250816  
    362362  type: bool
    363363  defaultValue: true
     364
     365RequestIdleCallbackEnabled:
     366  type: bool
     367  defaultValue: false
     368  humanReadableName: "requestIdleCallback"
     369  humanReadableDescription: "Enable requestIdleCallback support"
     370  category: experimental
    364371
    365372DiagnosticLoggingEnabled:
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r250803 r250816  
     12019-10-07  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Add IDL for requestIdleCallback
     4        https://bugs.webkit.org/show_bug.cgi?id=202653
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * WebView/WebPreferenceKeysPrivate.h:
     9        * WebView/WebPreferences.mm:
     10        (+[WebPreferences initialize]):
     11        * WebView/WebPreferencesPrivate.h:
     12        * WebView/WebView.mm:
     13        (-[WebView _preferencesChanged:]):
     14
    1152019-10-07  Yusuke Suzuki  <ysuzuki@apple.com>
    216
  • trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h

    r250584 r250816  
    273273#define WebKitResizeObserverEnabledPreferenceKey @"WebKitResizeObserverEnabled"
    274274#define WebKitCoreMathMLEnabledPreferenceKey @"WebKitCoreMathMLEnabled"
     275#define WebKitRequestIdleCallbackEnabledPreferenceKey @"WebKitRequestIdleCallbackEnabled"
    275276#define WebKitLinkPreloadResponsiveImagesEnabledPreferenceKey @"WebKitLinkPreloadResponsiveImagesEnabled"
    276277
  • trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm

    r250584 r250816  
    691691#endif
    692692        @NO, WebKitCoreMathMLEnabledPreferenceKey,
     693        @NO, WebKitRequestIdleCallbackEnabledPreferenceKey,
    693694        @NO, WebKitLinkPreloadResponsiveImagesEnabledPreferenceKey,
    694695        @NO, WebKitCSSShadowPartsEnabledPreferenceKey,
     
    34993500}
    35003501
     3502- (BOOL)requestIdleCallbackEnabled
     3503{
     3504    return [self _boolValueForKey:WebKitRequestIdleCallbackEnabledPreferenceKey];
     3505}
     3506
     3507- (void)setRequestIdleCallbackEnabled:(BOOL)flag
     3508{
     3509    [self _setBoolValue:flag forKey:WebKitRequestIdleCallbackEnabledPreferenceKey];
     3510}
     3511
    35013512- (BOOL)linkPreloadResponsiveImagesEnabled
    35023513{
  • trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h

    r250584 r250816  
    612612- (void)setCoreMathMLEnabled:(BOOL)flag;
    613613- (BOOL)coreMathMLEnabled;
     614
     615- (void)setRequestIdleCallbackEnabled:(BOOL)flag;
     616- (BOOL)requestIdleCallbackEnabled;
    614617
    615618- (void)setLinkPreloadResponsiveImagesEnabled:(BOOL)flag;
     
    653656@property (nonatomic) BOOL resizeObserverEnabled;
    654657@property (nonatomic) BOOL coreMathMLEnabled;
     658@property (nonatomic) BOOL requestIdleCallbackEnabled;
    655659@property (nonatomic) BOOL linkPreloadResponsiveImagesEnabled;
    656660
  • trunk/Source/WebKitLegacy/mac/WebView/WebView.mm

    r250738 r250816  
    32363236
    32373237    settings.setCoreMathMLEnabled([preferences coreMathMLEnabled]);
     3238    settings.setRequestIdleCallbackEnabled([preferences requestIdleCallbackEnabled]);
    32383239
    32393240    RuntimeEnabledFeatures::sharedFeatures().setServerTimingEnabled([preferences serverTimingEnabled]);
  • trunk/Tools/ChangeLog

    r250811 r250816  
     12019-10-07  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Add IDL for requestIdleCallback
     4        https://bugs.webkit.org/show_bug.cgi?id=202653
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * DumpRenderTree/TestOptions.cpp:
     9        (TestOptions::TestOptions):
     10        * DumpRenderTree/TestOptions.h:
     11        * DumpRenderTree/mac/DumpRenderTree.mm:
     12        (setWebPreferencesForTestOptions):
     13
    1142019-10-07  Jiewen Tan  <jiewen_tan@apple.com>
    215
  • trunk/Tools/DumpRenderTree/TestOptions.cpp

    r249961 r250816  
    124124        else if (key == "experimental:CoreMathMLEnabled")
    125125            enableCoreMathML = parseBooleanTestHeaderValue(value);
     126        else if (key == "experimental:RequestIdleCallbackEnabled")
     127            enableRequestIdleCallback = parseBooleanTestHeaderValue(value);
    126128        pairStart = pairEnd + 1;
    127129    }
  • trunk/Tools/DumpRenderTree/TestOptions.h

    r249961 r250816  
    5252    bool enableResizeObserver { false };
    5353    bool enableCoreMathML { false };
     54    bool enableRequestIdleCallback { false };
    5455    std::string jscOptions;
    5556    std::string additionalSupportedImageTypes;
  • trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm

    r250584 r250816  
    10291029    preferences.resizeObserverEnabled = options.enableResizeObserver;
    10301030    preferences.coreMathMLEnabled = options.enableCoreMathML;
     1031    preferences.requestIdleCallbackEnabled = options.enableRequestIdleCallback;
    10311032    preferences.privateBrowsingEnabled = options.useEphemeralSession;
    10321033    preferences.usesPageCache = options.enablePageCache;
Note: See TracChangeset for help on using the changeset viewer.