Source/WebCore/ChangeLog

 12016-11-18 Brent Fulgham <bfulgham@apple.com>
 2
 3 Make showModalDialog an option (off-by-default) feature
 4 https://bugs.webkit.org/show_bug.cgi?id=151885
 5 <rdar://problem/16747181>
 6
 7 Reviewed by NOBODY (OOPS!).
 8
 9 Tested by existing suite.
 10
 11 * bindings/generic/RuntimeEnabledFeatures.cpp:
 12 (WebCore::RuntimeEnabledFeatures::reset):
 13 * bindings/generic/RuntimeEnabledFeatures.h:
 14 (WebCore::RuntimeEnabledFeatures::setShowModalDialogEnabled):
 15 (WebCore::RuntimeEnabledFeatures::showModalDialogEnabled):
 16 * page/DOMWindow.cpp:
 17 (WebCore::DOMWindow::canShowModalDialog):
 18 (WebCore::DOMWindow::showModalDialog):
 19 * page/DOMWindow.idl:
 20
1212016-11-17 Chris Dumez <cdumez@apple.com>
222
323 Regression(r208672?): ASSERTION FAILED: isMainThread() in WebCore::Node::ref()
208869

Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp

11/*
22 * Copyright (C) 2009 Google Inc. All rights reserved.
3  * Copyright (C) 2013 Apple Inc. All rights reserved.
 3 * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
44 *
55 * Redistribution and use in source and binary forms, with or without
66 * modification, are permitted provided that the following conditions are

@@void RuntimeEnabledFeatures::reset()
109109#if ENABLE(CSS_GRID_LAYOUT)
110110 m_cssGridLayoutEnabled = true;
111111#endif
112 
 112 m_showModalDialogEnabled = false;
113113}
114114
115115RuntimeEnabledFeatures& RuntimeEnabledFeatures::sharedFeatures()
208860

Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h

@@public:
230230 void setModernMediaControlsEnabled(bool areEnabled) { m_areModernMediaControlsEnabled = areEnabled; }
231231 bool modernMediaControlsEnabled() const { return m_areModernMediaControlsEnabled; }
232232
 233 void setShowModalDialogEnabled(bool isEnabled) { m_showModalDialogEnabled = isEnabled; }
 234 bool showModalDialogEnabled() const { return m_showModalDialogEnabled; }
 235
233236 WEBCORE_EXPORT static RuntimeEnabledFeatures& sharedFeatures();
234237
235238 WEBCORE_EXPORT void reset();

@@private:
344347 bool m_cssGridLayoutEnabled;
345348#endif
346349
 350 bool m_showModalDialogEnabled { false };
 351
347352 friend class WTF::NeverDestroyed<RuntimeEnabledFeatures>;
348353};
349354
208860

Source/WebCore/page/DOMWindow.cpp

11/*
2  * Copyright (C) 2006, 2007, 2008, 2010, 2013 Apple Inc. All rights reserved.
 2 * Copyright (C) 2006-2008, 2010, 2012-2016 Apple Inc. All rights reserved.
33 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
44 *
55 * Redistribution and use in source and binary forms, with or without

@@bool DOMWindow::allowPopUp()
378378
379379bool DOMWindow::canShowModalDialog(const Frame* frame)
380380{
 381 if (!RuntimeEnabledFeatures::sharedFeatures().showModalDialogEnabled())
 382 return false;
 383
381384 if (!frame)
382385 return false;
383386

@@RefPtr<DOMWindow> DOMWindow::open(const
22392242
22402243void DOMWindow::showModalDialog(const String& urlString, const String& dialogFeaturesString, DOMWindow& activeWindow, DOMWindow& firstWindow, std::function<void (DOMWindow&)> prepareDialogFunction)
22412244{
 2245 if (!RuntimeEnabledFeatures::sharedFeatures().showModalDialogEnabled())
 2246 return;
 2247
22422248 if (!isCurrentlyDisplayedInFrame())
22432249 return;
22442250 Frame* activeFrame = activeWindow.frame();
208860

Source/WebCore/page/DOMWindow.idl

6868
6969 [Custom] DOMWindow open(optional USVString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "");
7070
71  [Custom] any showModalDialog(DOMString url, optional any dialogArgs, optional DOMString featureArgs);
 71 [EnabledAtRuntime=showModalDialog, Custom] any showModalDialog(DOMString url, optional any dialogArgs, optional DOMString featureArgs);
7272
7373 void alert();
7474 void alert(DOMString message);
208860

Source/WebKit2/ChangeLog

 12016-11-18 Brent Fulgham <bfulgham@apple.com>
 2
 3 Make showModalDialog an option (off-by-default) feature
 4 https://bugs.webkit.org/show_bug.cgi?id=151885
 5 <rdar://problem/16747181>
 6
 7 Reviewed by NOBODY (OOPS!).
 8
 9 Add a preference to allow WebKit2 to toggle 'showModalDialog' availability.
 10
 11 * Shared/WebPreferencesDefinitions.h:
 12 * WebProcess/InjectedBundle/InjectedBundle.cpp:
 13 (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
 14 * WebProcess/WebPage/WebPage.cpp:
 15 (WebKit::WebPage::updatePreferences):
 16
1172016-11-17 Saam Barati <sbarati@apple.com>
218
319 Remove async/await compile time flag and enable tests
208860

Source/WebKit2/Shared/WebPreferencesDefinitions.h

236236 macro(NeedsStorageAccessFromFileURLsQuirk, needsStorageAccessFromFileURLsQuirk, Bool, bool, true, "", "") \
237237 macro(AsyncImageDecodingEnabled, asyncImageDecodingEnabled, Bool, bool, true, "", "") \
238238 macro(CustomElementsEnabled, customElementsEnabled, Bool, bool, true, "", "") \
 239 macro(ShowModalDialogEnabled, showModalDialogEnabled, Bool, bool, false, "", "") \
239240 \
240241
241242#define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \
208860

Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp

@@void InjectedBundle::overrideBoolPrefere
197197 if (preference == "WebKitDOMIteratorEnabled")
198198 RuntimeEnabledFeatures::sharedFeatures().setDOMIteratorEnabled(enabled);
199199
 200 if (preference == "WebKitShowModalDialogEnabled")
 201 RuntimeEnabledFeatures::sharedFeatures().setShowModalDialogEnabled(enabled);
 202
200203#if ENABLE(CSS_GRID_LAYOUT)
201204 if (preference == "WebKitCSSGridLayoutEnabled")
202205 RuntimeEnabledFeatures::sharedFeatures().setCSSGridLayoutEnabled(enabled);
208860

Source/WebKit2/WebProcess/WebPage/WebPage.cpp

@@void WebPage::updatePreferences(const We
32083208
32093209 RuntimeEnabledFeatures::sharedFeatures().setDOMIteratorEnabled(store.getBoolValueForKey(WebPreferencesKey::domIteratorEnabledKey()));
32103210
 3211 RuntimeEnabledFeatures::sharedFeatures().setShowModalDialogEnabled(store.getBoolValueForKey(WebPreferencesKey::showModalDialogEnabledKey()));
 3212
32113213 // Experimental Features.
32123214
32133215#if ENABLE(CSS_GRID_LAYOUT)
208860

Source/WebKit/mac/ChangeLog

 12016-11-18 Brent Fulgham <bfulgham@apple.com>
 2
 3 Make showModalDialog an option (off-by-default) feature
 4 https://bugs.webkit.org/show_bug.cgi?id=151885
 5 <rdar://problem/16747181>
 6
 7 Reviewed by NOBODY (OOPS!).
 8
 9 Add a preference to allow WebKit1 to toggle 'showModalDialog' availability.
 10
 11 * WebView/WebPreferenceKeysPrivate.h:
 12 * WebView/WebPreferences.mm:
 13 (-[WebPreferences showModalDialogEnabled]):
 14 (-[WebPreferences setShowModalDialogEnabled:]):
 15 * WebView/WebPreferencesPrivate.h:
 16 * WebView/WebView.mm:
 17 (-[WebView _preferencesChanged:]):
 18
1192016-11-16 Dave Hyatt <hyatt@apple.com>
220
321 [CSS Parser] Add @supports, @keyframe and media query parsing options
208860

Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h

171171#define WebKitCSSGridLayoutEnabledPreferenceKey @"WebKitCSSGridLayoutEnabled"
172172#define WebKitVisualViewportEnabledPreferenceKey @"WebKitVisualViewportEnabled"
173173#define WebKitModernMediaControlsEnabledPreferenceKey @"WebKitModernMediaControlsEnabled"
 174#define WebKitShowModalDialogEnabledPreferenceKey @"WebKitShowModalDialogEnabled"
174175
175176#if !TARGET_OS_IPHONE
176177// These are private both because callers should be using the cover methods and because the
208860

Source/WebKit/mac/WebView/WebPreferences.mm

@@- (void)setModernMediaControlsEnabled:(B
28392839 [self _setBoolValue:flag forKey:WebKitModernMediaControlsEnabledPreferenceKey];
28402840}
28412841
 2842- (BOOL)showModalDialogEnabled
 2843{
 2844 return [self _boolValueForKey:WebKitShowModalDialogEnabledPreferenceKey];
 2845}
 2846
 2847- (void)setShowModalDialogEnabled:(BOOL)flag
 2848{
 2849 [self _setBoolValue:flag forKey:WebKitShowModalDialogEnabledPreferenceKey];
 2850}
 2851
 2852
28422853@end
28432854
28442855@implementation WebPreferences (WebInternal)
208860

Source/WebKit/mac/WebView/WebPreferencesPrivate.h

@@@interface WebPreferences (WebPrivate)
509509- (void)setModernMediaControlsEnabled:(BOOL)flag;
510510- (BOOL)modernMediaControlsEnabled;
511511
 512- (void)setShowModalDialogEnabled:(BOOL)flag;
 513- (BOOL)showModalDialogEnabled;
 514
512515@property (nonatomic) BOOL visualViewportEnabled;
513516@property (nonatomic) BOOL asyncImageDecodingEnabled;
514517@property (nonatomic) BOOL javaScriptMarkupEnabled;
208860

Source/WebKit/mac/WebView/WebView.mm

@@- (void)_preferencesChanged:(WebPreferen
28362836
28372837 RuntimeEnabledFeatures::sharedFeatures().setCustomElementsEnabled([preferences customElementsEnabled]);
28382838
 2839 RuntimeEnabledFeatures::sharedFeatures().setShowModalDialogEnabled([preferences showModalDialogEnabled]);
 2840
 2841
28392842#if ENABLE(FETCH_API)
28402843 RuntimeEnabledFeatures::sharedFeatures().setFetchAPIEnabled([preferences fetchAPIEnabled]);
28412844#endif
208860

Tools/ChangeLog

 12016-11-18 Brent Fulgham <bfulgham@apple.com>
 2
 3 Make showModalDialog an option (off-by-default) feature
 4 https://bugs.webkit.org/show_bug.cgi?id=151885
 5 <rdar://problem/16747181>
 6
 7 Reviewed by NOBODY (OOPS!).
 8
 9 Turn the optional 'showModalDialog' feature on for testing.
 10
 11 * DumpRenderTree/mac/DumpRenderTree.mm:
 12 (resetWebPreferencesToConsistentValues):
 13 * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
 14 (WTR::InjectedBundle::beginTesting):
 15 * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
 16 (WTR::TestRunner::setShowModalDialogEnabled):
 17 * WebKitTestRunner/InjectedBundle/TestRunner.h:
 18
1192016-11-18 Alex Christensen <achristensen@webkit.org>
220
321 Fix API test after r208902
208909

Tools/DumpRenderTree/mac/DumpRenderTree.mm

@@static void resetWebPreferencesToConsist
999999 [preferences setHiddenPageDOMTimerThrottlingEnabled:NO];
10001000 [preferences setHiddenPageCSSAnimationSuspensionEnabled:NO];
10011001
 1002 [preferences setShowModalDialogEnabled:YES];
 1003
10021004 [WebPreferences _clearNetworkLoaderSession];
10031005 [WebPreferences _setCurrentNetworkLoaderSessionCookieAcceptPolicy:NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain];
10041006}
208860

Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp

@@void InjectedBundle::beginTesting(WKDict
330330
331331 m_testRunner->setES6ModulesEnabled(true);
332332
 333 m_testRunner->setShowModalDialogEnabled(true);
 334
333335 m_testRunner->setCloseRemainingWindowsWhenComplete(false);
334336 m_testRunner->setAcceptsEditing(true);
335337 m_testRunner->setTabKeyCyclesThroughElements(true);
208860

Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp

@@void TestRunner::setShadowDOMEnabled(boo
347347 WKBundleOverrideBoolPreferenceForTestRunner(injectedBundle.bundle(), injectedBundle.pageGroup(), key.get(), enabled);
348348}
349349
 350void TestRunner::setShowModalDialogEnabled(bool enabled)
 351{
 352 WKRetainPtr<WKStringRef> key(AdoptWK, WKStringCreateWithUTF8CString("WebKitShowModalDialogEnabled"));
 353 auto& injectedBundle = InjectedBundle::singleton();
 354 WKBundleOverrideBoolPreferenceForTestRunner(injectedBundle.bundle(), injectedBundle.pageGroup(), key.get(), enabled);
 355}
 356
350357void TestRunner::setCustomElementsEnabled(bool enabled)
351358{
352359 WKRetainPtr<WKStringRef> key(AdoptWK, WKStringCreateWithUTF8CString("WebKitCustomElementsEnabled"));
208860

Tools/WebKitTestRunner/InjectedBundle/TestRunner.h

@@public:
128128 void setDownloadAttributeEnabled(bool);
129129 void setAllowsAnySSLCertificate(bool);
130130 void setES6ModulesEnabled(bool);
 131 void setShowModalDialogEnabled(bool);
131132
132133 // Special DOM functions.
133134 void clearBackForwardList();
208860