Changeset 180547 in webkit
- Timestamp:
- Feb 23, 2015 7:47:29 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 42 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r180546 r180547 1 2015-02-23 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 REGRESSION(r179429): Can't type comments in Facebook 4 https://bugs.webkit.org/show_bug.cgi?id=141859 5 6 Reviewed by Geoffrey Garen. 7 8 When window.Symbol is exposed to user-space pages, 9 Facebook's JavaScript use it (maybe, for immutable-js and React.js's unique key). 10 However, to work with Symbols completely, it also requires 11 1) Object.getOwnPropertySymbols (for mixin including Symbols) 12 2) the latest ES6 Iterator interface that uses Iterator.next and it returns { done: boolean, value: value }. 13 Since they are not landed yet, comments in Facebook don't work. 14 15 This patch introduces RuntimeFlags for JavaScriptCore. 16 Specifying SymbolEnabled flag under test runner and inspector to continue to work with Symbol. 17 And drop JavaScriptExperimentsEnabled flag 18 because it is no longer used and use case of this is duplicated to runtime flags. 19 20 * JavaScriptCore.order: 21 * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: 22 * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: 23 * JavaScriptCore.xcodeproj/project.pbxproj: 24 * jsc.cpp: 25 (GlobalObject::javaScriptRuntimeFlags): 26 (GlobalObject::javaScriptExperimentsEnabled): Deleted. 27 * runtime/JSGlobalObject.cpp: 28 (JSC::JSGlobalObject::JSGlobalObject): 29 (JSC::JSGlobalObject::init): 30 * runtime/JSGlobalObject.h: 31 (JSC::JSGlobalObject::finishCreation): 32 (JSC::JSGlobalObject::javaScriptRuntimeFlags): 33 (JSC::JSGlobalObject::javaScriptExperimentsEnabled): Deleted. 34 * runtime/RuntimeFlags.h: Added. 35 (JSC::RuntimeFlags::RuntimeFlags): 36 (JSC::RuntimeFlags::createAllEnabled): 37 1 38 2015-02-23 Benjamin Poulain <bpoulain@apple.com> 2 39 -
trunk/Source/JavaScriptCore/JavaScriptCore.order
r179429 r180547 638 638 _JSGlobalContextCreateInGroup 639 639 __ZN3JSC14JSGlobalObjectC1ERNS_2VMEPNS_9StructureEPKNS_23GlobalObjectMethodTableE 640 __ZN3JSC14JSGlobalObject28javaScriptExperimentsEnabledEPKS0_641 640 _JSGlobalContextRetain 642 641 _JSStringCreateWithCFString -
trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj
r180460 r180547 1612 1612 <ClInclude Include="..\runtime\RegExpPrototype.h" /> 1613 1613 <ClInclude Include="..\runtime\Reject.h" /> 1614 <ClInclude Include="..\runtime\RuntimeFlags.h" /> 1614 1615 <ClInclude Include="..\runtime\SamplingCounter.h" /> 1615 1616 <ClInclude Include="..\runtime\SetConstructor.h" /> -
trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters
r180258 r180547 2863 2863 <Filter>runtime</Filter> 2864 2864 </ClInclude> 2865 <ClInclude Include="..\runtime\RuntimeFlags.h"> 2866 <Filter>runtime</Filter> 2867 </ClInclude> 2865 2868 <ClInclude Include="..\runtime\SamplingCounter.h"> 2866 2869 <Filter>runtime</Filter> -
trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r180460 r180547 950 950 705B41B11A6E501E00716757 /* SymbolPrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 705B41A91A6E501E00716757 /* SymbolPrototype.cpp */; }; 951 951 705B41B21A6E501E00716757 /* SymbolPrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = 705B41AA1A6E501E00716757 /* SymbolPrototype.h */; settings = {ATTRIBUTES = (Private, ); }; }; 952 70B0A9D11A9B66460001306A /* RuntimeFlags.h in Headers */ = {isa = PBXBuildFile; fileRef = 70B0A9D01A9B66200001306A /* RuntimeFlags.h */; settings = {ATTRIBUTES = (Private, ); }; }; 952 953 7C008CD2186F8A9300955C24 /* JSPromiseFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C008CD0186F8A9300955C24 /* JSPromiseFunctions.cpp */; }; 953 954 7C008CD3186F8A9300955C24 /* JSPromiseFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C008CD1186F8A9300955C24 /* JSPromiseFunctions.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 2629 2630 705B41A91A6E501E00716757 /* SymbolPrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SymbolPrototype.cpp; sourceTree = "<group>"; }; 2630 2631 705B41AA1A6E501E00716757 /* SymbolPrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SymbolPrototype.h; sourceTree = "<group>"; }; 2632 70B0A9D01A9B66200001306A /* RuntimeFlags.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RuntimeFlags.h; sourceTree = "<group>"; }; 2631 2633 7C008CD0186F8A9300955C24 /* JSPromiseFunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = JSPromiseFunctions.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; 2632 2634 7C008CD1186F8A9300955C24 /* JSPromiseFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSPromiseFunctions.h; sourceTree = "<group>"; }; … … 4537 4539 0F6B1CB81861244C00845D97 /* RegisterPreservationMode.h */, 4538 4540 0FB7F39115ED8E3800F167B2 /* Reject.h */, 4541 70B0A9D01A9B66200001306A /* RuntimeFlags.h */, 4539 4542 0F7700911402FF280078EB39 /* SamplingCounter.cpp */, 4540 4543 0F77008E1402FDD60078EB39 /* SamplingCounter.h */, … … 6276 6279 0FF42748158EBE91004CB9FF /* udis86_syn.h in Headers */, 6277 6280 0FF42749158EBE91004CB9FF /* udis86_types.h in Headers */, 6281 70B0A9D11A9B66460001306A /* RuntimeFlags.h in Headers */, 6278 6282 A7E5AB391799E4B200D2833D /* UDis86Disassembler.h in Headers */, 6279 6283 A7A8AF4117ADB5F3005AB174 /* Uint16Array.h in Headers */, -
trunk/Source/JavaScriptCore/jsc.cpp
r180518 r180547 576 576 } 577 577 578 static bool javaScriptExperimentsEnabled(const JSGlobalObject*) { return true; }578 static RuntimeFlags javaScriptRuntimeFlags(const JSGlobalObject*) { return RuntimeFlags::createAllEnabled(); } 579 579 580 580 protected: … … 664 664 665 665 const ClassInfo GlobalObject::s_info = { "global", &JSGlobalObject::s_info, &globalObjectTable, CREATE_METHOD_TABLE(GlobalObject) }; 666 const GlobalObjectMethodTable GlobalObject::s_globalObjectMethodTable = { &allowsAccessFrom, &supportsProfiling, &supportsRichSourceInfo, &shouldInterruptScript, &javaScript ExperimentsEnabled, 0, &shouldInterruptScriptBeforeTimeout };666 const GlobalObjectMethodTable GlobalObject::s_globalObjectMethodTable = { &allowsAccessFrom, &supportsProfiling, &supportsRichSourceInfo, &shouldInterruptScript, &javaScriptRuntimeFlags, 0, &shouldInterruptScriptBeforeTimeout }; 667 667 668 668 -
trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
r180460 r180547 146 146 const ClassInfo JSGlobalObject::s_info = { "GlobalObject", &Base::s_info, &globalObjectTable, CREATE_METHOD_TABLE(JSGlobalObject) }; 147 147 148 const GlobalObjectMethodTable JSGlobalObject::s_globalObjectMethodTable = { &allowsAccessFrom, &supportsProfiling, &supportsRichSourceInfo, &shouldInterruptScript, &javaScript ExperimentsEnabled, 0, &shouldInterruptScriptBeforeTimeout };148 const GlobalObjectMethodTable JSGlobalObject::s_globalObjectMethodTable = { &allowsAccessFrom, &supportsProfiling, &supportsRichSourceInfo, &shouldInterruptScript, &javaScriptRuntimeFlags, 0, &shouldInterruptScriptBeforeTimeout }; 149 149 150 150 /* Source for JSGlobalObject.lut.h … … 174 174 , m_weakRandom(Options::forceWeakRandomSeed() ? Options::forcedWeakRandomSeed() : static_cast<unsigned>(randomNumber() * (std::numeric_limits<unsigned>::max() + 1.0))) 175 175 , m_evalEnabled(true) 176 , m_ experimentsEnabled(false)176 , m_runtimeFlags() 177 177 , m_consoleClient(nullptr) 178 178 , m_globalObjectMethodTable(globalObjectMethodTable ? globalObjectMethodTable : &s_globalObjectMethodTable) … … 374 374 375 375 FOR_EACH_SIMPLE_BUILTIN_TYPE_WITH_CONSTRUCTOR(PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE) 376 376 377 if (m_runtimeFlags.isSymbolEnabled()) 378 putDirectWithoutTransition(vm, vm.propertyNames->Symbol, symbolConstructor, DontEnum); 379 377 380 #undef PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE 378 381 PrototypeMap& prototypeMap = vm.prototypeMap; … … 437 440 JSConsole* consoleObject = JSConsole::create(vm, m_consoleStructure.get()); 438 441 putDirectWithoutTransition(vm, Identifier(exec, "console"), consoleObject, DontEnum); 439 442 440 443 resetPrototype(vm, prototype()); 441 444 } -
trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h
r180460 r180547 32 32 #include "JSWeakObjectMapRefInternal.h" 33 33 #include "NumberPrototype.h" 34 #include "RuntimeFlags.h" 34 35 #include "SpecialPointer.h" 35 36 #include "StringPrototype.h" … … 87 88 88 89 #define DEFINE_STANDARD_BUILTIN(macro, upperName, lowerName) macro(upperName, lowerName, lowerName, JS ## upperName, upperName) 89 90 91 #define FOR_EACH_EXPERIMENTAL_BUILTIN_TYPE_WITH_CONSTRUCTOR(macro) \ 92 macro(Symbol, symbol, symbolObject, SymbolObject, Symbol) \ 93 90 94 #define FOR_EACH_SIMPLE_BUILTIN_TYPE_WITH_CONSTRUCTOR(macro) \ 91 95 macro(Set, set, set, JSSet, Set) \ … … 93 97 macro(Date, date, date, DateInstance, Date) \ 94 98 macro(String, string, stringObject, StringObject, String) \ 95 macro(Symbol, symbol, symbolObject, SymbolObject, Symbol) \96 99 macro(Boolean, boolean, booleanObject, BooleanObject, Boolean) \ 97 100 macro(Number, number, numberObject, NumberObject, Number) \ … … 102 105 #define FOR_EACH_SIMPLE_BUILTIN_TYPE(macro) \ 103 106 FOR_EACH_SIMPLE_BUILTIN_TYPE_WITH_CONSTRUCTOR(macro) \ 107 FOR_EACH_EXPERIMENTAL_BUILTIN_TYPE_WITH_CONSTRUCTOR(macro) \ 104 108 DEFINE_STANDARD_BUILTIN(macro, ArrayIterator, arrayIterator) \ 105 109 DEFINE_STANDARD_BUILTIN(macro, ArgumentsIterator, argumentsIterator) \ … … 132 136 ShouldInterruptScriptFunctionPtr shouldInterruptScript; 133 137 134 typedef bool (*JavaScriptExperimentsEnabledFunctionPtr)(const JSGlobalObject*);135 JavaScript ExperimentsEnabledFunctionPtr javaScriptExperimentsEnabled;138 typedef RuntimeFlags (*JavaScriptRuntimeFlagsFunctionPtr)(const JSGlobalObject*); 139 JavaScriptRuntimeFlagsFunctionPtr javaScriptRuntimeFlags; 136 140 137 141 typedef void (*QueueTaskToEventLoopFunctionPtr)(const JSGlobalObject*, PassRefPtr<Microtask>); … … 274 278 bool m_evalEnabled; 275 279 String m_evalDisabledErrorMessage; 276 bool m_experimentsEnabled;280 RuntimeFlags m_runtimeFlags; 277 281 ConsoleClient* m_consoleClient; 278 282 … … 310 314 Base::finishCreation(vm); 311 315 structure()->setGlobalObject(vm, this); 312 m_ experimentsEnabled = m_globalObjectMethodTable->javaScriptExperimentsEnabled(this);316 m_runtimeFlags = m_globalObjectMethodTable->javaScriptRuntimeFlags(this); 313 317 init(vm); 314 318 setGlobalThis(vm, JSProxy::create(vm, JSProxy::createStructure(vm, this, prototype(), PureForwardingProxyType), this)); … … 319 323 Base::finishCreation(vm); 320 324 structure()->setGlobalObject(vm, this); 321 m_ experimentsEnabled = m_globalObjectMethodTable->javaScriptExperimentsEnabled(this);325 m_runtimeFlags = m_globalObjectMethodTable->javaScriptRuntimeFlags(this); 322 326 init(vm); 323 327 setGlobalThis(vm, thisValue); … … 547 551 static bool shouldInterruptScript(const JSGlobalObject*) { return true; } 548 552 static bool shouldInterruptScriptBeforeTimeout(const JSGlobalObject*) { return false; } 549 static bool javaScriptExperimentsEnabled(const JSGlobalObject*) { return false; }553 static RuntimeFlags javaScriptRuntimeFlags(const JSGlobalObject*) { return RuntimeFlags(); } 550 554 551 555 void queueMicrotask(PassRefPtr<Microtask>); -
trunk/Source/WebCore/ChangeLog
r180544 r180547 1 2015-02-23 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 REGRESSION(r179429): Can't type comments in Facebook 4 https://bugs.webkit.org/show_bug.cgi?id=141859 5 6 Reviewed by Geoffrey Garen. 7 8 Enable SymbolEnabled runtime flag in inspector context. 9 10 * ForwardingHeaders/runtime/RuntimeFlags.h: Added. 11 * WebCore.order: 12 * WebCore.vcxproj/WebCore.vcxproj: 13 * WebCore.vcxproj/WebCore.vcxproj.filters: 14 * bindings/js/JSDOMWindowBase.cpp: 15 (WebCore::JSDOMWindowBase::javaScriptRuntimeFlags): 16 (WebCore::JSDOMWindowBase::javaScriptExperimentsEnabled): Deleted. 17 * bindings/js/JSDOMWindowBase.h: 18 * bindings/js/JSWorkerGlobalScopeBase.cpp: 19 (WebCore::JSWorkerGlobalScopeBase::javaScriptRuntimeFlags): 20 (WebCore::JSWorkerGlobalScopeBase::javaScriptExperimentsEnabled): Deleted. 21 * bindings/js/JSWorkerGlobalScopeBase.h: 22 * inspector/InspectorFrontendClientLocal.cpp: 23 (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal): 24 * page/Settings.h: 25 * page/Settings.in: 26 1 27 2015-02-23 Benjamin Poulain <benjamin@webkit.org> 2 28 -
trunk/Source/WebCore/WebCore.order
r180447 r180547 3336 3336 __ZN7WebCore15JSDOMWindowBase14finishCreationERN3JSC2VMEPNS_16JSDOMWindowShellE 3337 3337 __ZN7WebCore17JSDOMGlobalObject14finishCreationERN3JSC2VMEPNS1_8JSObjectE 3338 __ZN7WebCore15JSDOMWindowBase28javaScriptExperimentsEnabledEPKN3JSC14JSGlobalObjectE3339 3338 __ZN7WebCore12gcControllerEv 3340 3339 __ZN7WebCore12GCController18garbageCollectSoonEv -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
r180533 r180547 19139 19139 <ClInclude Include="..\ForwardingHeaders\runtime\RegExp.h" /> 19140 19140 <ClInclude Include="..\ForwardingHeaders\runtime\RegExpObject.h" /> 19141 <ClInclude Include="..\ForwardingHeaders\runtime\RuntimeFlags.h" /> 19141 19142 <ClInclude Include="..\ForwardingHeaders\runtime\StorageBarrier.h" /> 19142 19143 <ClInclude Include="..\ForwardingHeaders\runtime\StringPrototype.h" /> -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
r180533 r180547 11632 11632 <Filter>ForwardingHeaders\runtime</Filter> 11633 11633 </ClInclude> 11634 <ClInclude Include="..\ForwardingHeaders\runtime\RuntimeFlags.h"> 11635 <Filter>ForwardingHeaders\runtime</Filter> 11636 </ClInclude> 11634 11637 <ClInclude Include="..\ForwardingHeaders\runtime\StringObject.h"> 11635 11638 <Filter>ForwardingHeaders\runtime</Filter> -
trunk/Source/WebCore/bindings/js/JSDOMWindowBase.cpp
r179609 r180547 57 57 const ClassInfo JSDOMWindowBase::s_info = { "Window", &JSDOMGlobalObject::s_info, 0, CREATE_METHOD_TABLE(JSDOMWindowBase) }; 58 58 59 const GlobalObjectMethodTable JSDOMWindowBase::s_globalObjectMethodTable = { &shouldAllowAccessFrom, &supportsProfiling, &supportsRichSourceInfo, &shouldInterruptScript, &javaScript ExperimentsEnabled, &queueTaskToEventLoop, &shouldInterruptScriptBeforeTimeout };59 const GlobalObjectMethodTable JSDOMWindowBase::s_globalObjectMethodTable = { &shouldAllowAccessFrom, &supportsProfiling, &supportsRichSourceInfo, &shouldInterruptScript, &javaScriptRuntimeFlags, &queueTaskToEventLoop, &shouldInterruptScriptBeforeTimeout }; 60 60 61 61 JSDOMWindowBase::JSDOMWindowBase(VM& vm, Structure* structure, PassRefPtr<DOMWindow> window, JSDOMWindowShell* shell) … … 170 170 } 171 171 172 bool JSDOMWindowBase::javaScriptExperimentsEnabled(const JSGlobalObject* object)172 RuntimeFlags JSDOMWindowBase::javaScriptRuntimeFlags(const JSGlobalObject* object) 173 173 { 174 174 const JSDOMWindowBase* thisObject = static_cast<const JSDOMWindowBase*>(object); 175 175 Frame* frame = thisObject->impl().frame(); 176 176 if (!frame) 177 return false;178 return frame->settings().javaScript ExperimentsEnabled();177 return RuntimeFlags(); 178 return frame->settings().javaScriptRuntimeFlags(); 179 179 } 180 180 -
trunk/Source/WebCore/bindings/js/JSDOMWindowBase.h
r173176 r180547 65 65 static bool shouldInterruptScript(const JSC::JSGlobalObject*); 66 66 static bool shouldInterruptScriptBeforeTimeout(const JSC::JSGlobalObject*); 67 static bool javaScriptExperimentsEnabled(const JSC::JSGlobalObject*);67 static JSC::RuntimeFlags javaScriptRuntimeFlags(const JSC::JSGlobalObject*); 68 68 static void queueTaskToEventLoop(const JSC::JSGlobalObject*, PassRefPtr<JSC::Microtask>); 69 69 -
trunk/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp
r178310 r180547 44 44 const ClassInfo JSWorkerGlobalScopeBase::s_info = { "WorkerGlobalScope", &JSDOMGlobalObject::s_info, 0, CREATE_METHOD_TABLE(JSWorkerGlobalScopeBase) }; 45 45 46 const GlobalObjectMethodTable JSWorkerGlobalScopeBase::s_globalObjectMethodTable = { &allowsAccessFrom, &supportsProfiling, &supportsRichSourceInfo, &shouldInterruptScript, &javaScript ExperimentsEnabled, &queueTaskToEventLoop, &shouldInterruptScriptBeforeTimeout };46 const GlobalObjectMethodTable JSWorkerGlobalScopeBase::s_globalObjectMethodTable = { &allowsAccessFrom, &supportsProfiling, &supportsRichSourceInfo, &shouldInterruptScript, &javaScriptRuntimeFlags, &queueTaskToEventLoop, &shouldInterruptScriptBeforeTimeout }; 47 47 48 48 JSWorkerGlobalScopeBase::JSWorkerGlobalScopeBase(JSC::VM& vm, JSC::Structure* structure, PassRefPtr<WorkerGlobalScope> impl) … … 93 93 } 94 94 95 bool JSWorkerGlobalScopeBase::javaScriptExperimentsEnabled(const JSGlobalObject* object)95 RuntimeFlags JSWorkerGlobalScopeBase::javaScriptRuntimeFlags(const JSGlobalObject* object) 96 96 { 97 return JSGlobalObject::javaScript ExperimentsEnabled(object);97 return JSGlobalObject::javaScriptRuntimeFlags(object); 98 98 } 99 99 -
trunk/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.h
r178310 r180547 58 58 static bool shouldInterruptScript(const JSC::JSGlobalObject*); 59 59 static bool shouldInterruptScriptBeforeTimeout(const JSC::JSGlobalObject*); 60 static bool javaScriptExperimentsEnabled(const JSC::JSGlobalObject*);60 static JSC::RuntimeFlags javaScriptRuntimeFlags(const JSC::JSGlobalObject*); 61 61 static void queueTaskToEventLoop(const JSC::JSGlobalObject*, PassRefPtr<JSC::Microtask>); 62 62 -
trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.cpp
r178820 r180547 121 121 { 122 122 m_frontendPage->settings().setAllowFileAccessFromFileURLs(true); 123 m_frontendPage->settings().setJavaScriptRuntimeFlags({ 124 JSC::RuntimeFlags::SymbolEnabled 125 }); 123 126 m_dispatchTask = std::make_unique<InspectorBackendDispatchTask>(inspectorController); 124 127 } -
trunk/Source/WebCore/page/Settings.h
r179974 r180547 36 36 #include "Timer.h" 37 37 #include <chrono> 38 #include <runtime/RuntimeFlags.h> 38 39 #include <unicode/uscript.h> 39 40 #include <wtf/HashMap.h> -
trunk/Source/WebCore/page/Settings.in
r180416 r180547 74 74 forceFTPDirectoryListings initial=false 75 75 developerExtrasEnabled initial=false 76 javaScriptExperimentsEnabled initial=false77 76 scriptMarkupEnabled initial=true 78 77 needsSiteSpecificQuirks initial=false … … 88 87 acceleratedFiltersEnabled initial=false 89 88 useLegacyTextAlignPositionedElementBehavior initial=false 89 javaScriptRuntimeFlags type=JSC::RuntimeFlags 90 90 91 91 # FIXME: This should really be disabled by default as it makes platforms that don't support the feature download files -
trunk/Source/WebKit/mac/ChangeLog
r180416 r180547 1 2015-02-23 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 REGRESSION(r179429): Can't type comments in Facebook 4 https://bugs.webkit.org/show_bug.cgi?id=141859 5 6 Reviewed by Geoffrey Garen. 7 8 Introduce SymbolEnabled and drop javaScriptExperimentsEnabled. 9 Private API, javaScriptExperimentsEnabled is dropped. 10 11 * Misc/WebNSDictionaryExtras.h: 12 * Misc/WebNSDictionaryExtras.m: 13 (-[NSMutableDictionary _webkit_setUnsignedInt:forKey:]): 14 * WebKit.order: 15 * WebView/WebPreferenceKeysPrivate.h: 16 * WebView/WebPreferences.mm: 17 (+[WebPreferences initialize]): 18 (-[WebPreferences _setUnsignedIntValue:forKey:]): 19 (-[WebPreferences javaScriptRuntimeFlags]): 20 (-[WebPreferences setJavaScriptRuntimeFlags:]): 21 (-[WebPreferences setJavaScriptExperimentsEnabled:]): Deleted. 22 (-[WebPreferences javaScriptExperimentsEnabled]): Deleted. 23 * WebView/WebPreferencesPrivate.h: 24 * WebView/WebView.mm: 25 (-[WebView _preferencesChanged:]): 26 1 27 2015-02-20 Eric Carlson <eric.carlson@apple.com> 2 28 -
trunk/Source/WebKit/mac/Misc/WebNSDictionaryExtras.h
r165676 r180547 45 45 - (void)_webkit_setLongLong:(long long)value forKey:(id)key; 46 46 - (void)_webkit_setUnsignedLongLong:(unsigned long long)value forKey:(id)key; 47 #if PLATFORM(IOS)48 47 - (void)_webkit_setUnsignedInt:(unsigned)value forKey:(id)key; 49 #endif50 48 @end -
trunk/Source/WebKit/mac/Misc/WebNSDictionaryExtras.m
r168047 r180547 119 119 } 120 120 121 #if PLATFORM(IOS)122 121 - (void)_webkit_setUnsignedInt:(unsigned)value forKey:(id)key 123 122 { … … 126 125 [object release]; 127 126 } 128 #endif129 127 130 128 @end -
trunk/Source/WebKit/mac/WebKit.order
r176112 r180547 288 288 -[WebPreferences(WebPrivate) showsToolTipOverTruncatedText] 289 289 -[WebPreferences(WebPrivate) developerExtrasEnabled] 290 -[WebPreferences(WebPrivate) javaScriptExperimentsEnabled]291 290 -[WebPreferences(WebPrivate) authorAndUserStylesEnabled] 292 291 -[WebPreferences(WebPrivate) applicationChromeModeEnabled] … … 1247 1246 -[WebPreferences(WebPrivate) setJavaScriptCanAccessClipboard:] 1248 1247 -[WebPreferences(WebPrivate) setOfflineWebApplicationCacheEnabled:] 1249 -[WebPreferences(WebPrivate) setJavaScriptExperimentsEnabled:]1250 1248 -[WebPreferences(WebPrivate) setLoadsSiteIconsIgnoringImageLoadingPreference:] 1251 1249 -[WebPreferences(WebPrivate) setFrameFlatteningEnabled:] -
trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h
r179368 r180547 85 85 #define WebKitForceFTPDirectoryListings @"WebKitForceFTPDirectoryListings" 86 86 #define WebKitDeveloperExtrasEnabledPreferenceKey @"WebKitDeveloperExtrasEnabledPreferenceKey" 87 #define WebKitJavaScript ExperimentsEnabledPreferenceKey @"WebKitJavaScriptExperimentsEnabledPreferenceKey"87 #define WebKitJavaScriptRuntimeFlagsPreferenceKey @"WebKitJavaScriptRuntimeFlagsPreferenceKey" 88 88 #define WebKitAuthorAndUserStylesEnabledPreferenceKey @"WebKitAuthorAndUserStylesEnabledPreferenceKey" 89 89 #define WebKitDOMTimersThrottlingEnabledPreferenceKey @"WebKitDOMTimersThrottlingEnabledPreferenceKey" -
trunk/Source/WebKit/mac/WebView/WebPreferences.mm
r179368 r180547 474 474 [NSNumber numberWithBool:YES], WebKitPageCacheSupportsPluginsPreferenceKey, 475 475 [NSNumber numberWithBool:NO], WebKitDeveloperExtrasEnabledPreferenceKey, 476 [NSNumber numberWith Bool:NO], WebKitJavaScriptExperimentsEnabledPreferenceKey,476 [NSNumber numberWithUnsignedInt:0], WebKitJavaScriptRuntimeFlagsPreferenceKey, 477 477 [NSNumber numberWithBool:YES], WebKitAuthorAndUserStylesEnabledPreferenceKey, 478 478 [NSNumber numberWithBool:YES], WebKitDOMTimersThrottlingEnabledPreferenceKey, … … 668 668 } 669 669 670 #if PLATFORM(IOS)671 670 - (unsigned int)_unsignedIntValueForKey:(NSString *)key 672 671 { … … 679 678 return; 680 679 NSString *_key = KEY(key); 680 #if PLATFORM(IOS) 681 681 dispatch_barrier_sync(_private->readWriteQueue, ^{ 682 #endif 682 683 [_private->values.get() _webkit_setUnsignedInt:value forKey:_key]; 684 #if PLATFORM(IOS) 683 685 }); 686 #endif 684 687 if (_private->autosaves) 685 688 [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithUnsignedInt:value] forKey:_key]; 686 689 [self _postPreferencesChangedNotification]; 687 690 } 688 #endif689 691 690 692 - (float)_floatValueForKey:(NSString *)key … … 1185 1187 } 1186 1188 1187 - ( void)setJavaScriptExperimentsEnabled:(BOOL)flag1188 { 1189 [self _setBoolValue:flag forKey:WebKitJavaScriptExperimentsEnabledPreferenceKey];1190 } 1191 1192 - ( BOOL)javaScriptExperimentsEnabled1193 { 1194 return [self _boolValueForKey:WebKitJavaScriptExperimentsEnabledPreferenceKey];1189 - (WebKitJavaScriptRuntimeFlags)javaScriptRuntimeFlags 1190 { 1191 return static_cast<WebKitJavaScriptRuntimeFlags>([self _unsignedIntValueForKey:WebKitJavaScriptRuntimeFlagsPreferenceKey]); 1192 } 1193 1194 - (void)setJavaScriptRuntimeFlags:(WebKitJavaScriptRuntimeFlags)flags 1195 { 1196 [self _setUnsignedIntValue:flags forKey:WebKitJavaScriptRuntimeFlagsPreferenceKey]; 1195 1197 } 1196 1198 -
trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h
r179368 r180547 53 53 } WebStorageBlockingPolicy; 54 54 55 typedef enum { 56 WebKitJavaScriptRuntimeFlagsSymbolEnabled = 1u << 0, 57 WebKitJavaScriptRuntimeFlagsAllEnabled = WebKitJavaScriptRuntimeFlagsSymbolEnabled 58 } WebKitJavaScriptRuntimeFlags; 59 55 60 extern NSString *WebPreferencesChangedNotification; 56 61 extern NSString *WebPreferencesRemovedNotification; … … 68 73 - (void)setDeveloperExtrasEnabled:(BOOL)flag; 69 74 70 - ( BOOL)javaScriptExperimentsEnabled;71 - (void)setJavaScript ExperimentsEnabled:(BOOL)flag;75 - (WebKitJavaScriptRuntimeFlags)javaScriptRuntimeFlags; 76 - (void)setJavaScriptRuntimeFlags:(WebKitJavaScriptRuntimeFlags)flags; 72 77 73 78 - (BOOL)authorAndUserStylesEnabled; -
trunk/Source/WebKit/mac/WebView/WebView.mm
r180291 r180547 2235 2235 2236 2236 settings.setDeveloperExtrasEnabled([preferences developerExtrasEnabled]); 2237 settings.setJavaScript ExperimentsEnabled([preferences javaScriptExperimentsEnabled]);2237 settings.setJavaScriptRuntimeFlags(JSC::RuntimeFlags([preferences javaScriptRuntimeFlags])); 2238 2238 settings.setAuthorAndUserStylesEnabled([preferences authorAndUserStylesEnabled]); 2239 2239 -
trunk/Source/WebKit2/ChangeLog
r180539 r180547 1 2015-02-23 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 REGRESSION(r179429): Can't type comments in Facebook 4 https://bugs.webkit.org/show_bug.cgi?id=141859 5 6 Reviewed by Geoffrey Garen. 7 8 Enable SymbolEnabled in inspector context. 9 10 * Shared/WebPreferencesDefinitions.h: 11 * UIProcess/API/C/WKPreferences.cpp: 12 (WKPreferencesSetJavaScriptRuntimeFlags): 13 (WKPreferencesGetJavaScriptRuntimeFlags): 14 (WKPreferencesSetJavaScriptExperimentsEnabled): Deleted. 15 (WKPreferencesGetJavaScriptExperimentsEnabled): Deleted. 16 * UIProcess/API/C/WKPreferencesRef.h: 17 * UIProcess/API/C/WKPreferencesRefPrivate.h: 18 * UIProcess/API/Cocoa/WKPreferences.mm: 19 (-[WKPreferences _javaScriptRuntimeFlags]): 20 (-[WKPreferences _setJavaScriptRuntimeFlags:]): 21 * UIProcess/API/Cocoa/WKPreferencesPrivate.h: 22 * UIProcess/efl/WebInspectorProxyEfl.cpp: 23 (WebKit::WebInspectorProxy::platformCreateInspectorPage): 24 * UIProcess/gtk/WebInspectorProxyGtk.cpp: 25 (WebKit::WebInspectorProxy::platformCreateInspectorPage): 26 * UIProcess/mac/WebInspectorProxyMac.mm: 27 (WebKit::WebInspectorProxy::platformCreateInspectorPage): 28 * WebProcess/WebPage/WebPage.cpp: 29 (WebKit::WebPage::updatePreferences): 30 * mac/WebKit2.order: 31 1 32 2015-02-23 Benjamin Poulain <bpoulain@apple.com> 2 33 -
trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h
r179828 r180547 96 96 macro(XSSAuditorEnabled, xssAuditorEnabled, Bool, bool, true) \ 97 97 macro(FrameFlatteningEnabled, frameFlatteningEnabled, Bool, bool, DEFAULT_FRAME_FLATTENING_ENABLED) \ 98 macro(JavaScriptExperimentsEnabled, javaScriptExperimentsEnabled, Bool, bool, false) \99 98 macro(PrivateBrowsingEnabled, privateBrowsingEnabled, Bool, bool, false) \ 100 99 macro(TextAreasAreResizable, textAreasAreResizable, Bool, bool, DEFAULT_TEXT_AREAS_ARE_RESIZABLE) \ … … 218 217 macro(InspectorAttachmentSide, inspectorAttachmentSide, UInt32, uint32_t, 0) \ 219 218 macro(StorageBlockingPolicy, storageBlockingPolicy, UInt32, uint32_t, WebCore::SecurityOrigin::BlockThirdPartyStorage) \ 219 macro(JavaScriptRuntimeFlags, javaScriptRuntimeFlags, UInt32, uint32_t, 0) \ 220 220 \ 221 221 -
trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp
r179368 r180547 350 350 } 351 351 352 void WKPreferencesSetJavaScript ExperimentsEnabled(WKPreferencesRef preferencesRef, bool enabled)353 { 354 toImpl(preferencesRef)->setJavaScript ExperimentsEnabled(enabled);355 } 356 357 bool WKPreferencesGetJavaScriptExperimentsEnabled(WKPreferencesRef preferencesRef)358 { 359 return toImpl(preferencesRef)->javaScript ExperimentsEnabled();352 void WKPreferencesSetJavaScriptRuntimeFlags(WKPreferencesRef preferencesRef, WKJavaScriptRuntimeFlagSet javaScriptRuntimeFlagSet) 353 { 354 toImpl(preferencesRef)->setJavaScriptRuntimeFlags(javaScriptRuntimeFlagSet); 355 } 356 357 WKJavaScriptRuntimeFlagSet WKPreferencesGetJavaScriptRuntimeFlags(WKPreferencesRef preferencesRef) 358 { 359 return toImpl(preferencesRef)->javaScriptRuntimeFlags(); 360 360 } 361 361 -
trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRef.h
r177110 r180547 151 151 WK_EXPORT bool WKPreferencesGetDeveloperExtrasEnabled(WKPreferencesRef preferencesRef); 152 152 153 // Defaults to false.154 WK_EXPORT void WKPreferencesSetJavaScriptExperimentsEnabled(WKPreferencesRef preferencesRef, bool enabled);155 WK_EXPORT bool WKPreferencesGetJavaScriptExperimentsEnabled(WKPreferencesRef preferencesRef);156 157 153 // Defaults to true. 158 154 WK_EXPORT void WKPreferencesSetTextAreasAreResizable(WKPreferencesRef preferencesRef, bool resizable); -
trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h
r179404 r180547 50 50 typedef enum WKEditableLinkBehavior WKEditableLinkBehavior; 51 51 52 enum WKJavaScriptRuntimeFlags { 53 kWKJavaScriptRuntimeFlagsSymbolEnabled = 1 << 0, 54 kWKJavaScriptRuntimeFlagsAllEnabled = kWKJavaScriptRuntimeFlagsSymbolEnabled 55 }; 56 typedef unsigned WKJavaScriptRuntimeFlagSet; 57 52 58 // Creates a copy with no identifier. 53 59 WK_EXPORT WKPreferencesRef WKPreferencesCreateCopy(WKPreferencesRef); … … 347 353 WK_EXPORT bool WKPreferencesGetScreenFontSubstitutionEnabled(WKPreferencesRef preferences); 348 354 355 // Defaults to 0. 356 WK_EXPORT void WKPreferencesSetJavaScriptRuntimeFlags(WKPreferencesRef preferences, WKJavaScriptRuntimeFlagSet javascriptRuntimeFlagSet); 357 WK_EXPORT WKJavaScriptRuntimeFlagSet WKPreferencesGetJavaScriptRuntimeFlags(WKPreferencesRef preferences); 358 349 359 #ifdef __cplusplus 350 360 } -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKPreferences.mm
r179573 r180547 268 268 } 269 269 270 - (_WKJavaScriptRuntimeFlags)_javaScriptRuntimeFlags 271 { 272 return _preferences->javaScriptRuntimeFlags(); 273 } 274 275 - (void)_setJavaScriptRuntimeFlags:(_WKJavaScriptRuntimeFlags)javaScriptRuntimeFlags 276 { 277 _preferences->setJavaScriptRuntimeFlags(javaScriptRuntimeFlags); 278 } 279 270 280 - (BOOL)_isStandalone 271 281 { -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h
r179573 r180547 43 43 } WK_ENUM_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA); 44 44 45 typedef NS_OPTIONS(NSUInteger, _WKJavaScriptRuntimeFlags) { 46 _WKJavaScriptRuntimeFlagsSymbolEnabled = 1 << 0, 47 _WKJavaScriptRuntimeFlagsAllEnabled = _WKJavaScriptRuntimeFlagsSymbolEnabled 48 } WK_ENUM_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA); 49 45 50 @interface WKPreferences (WKPrivate) 46 51 … … 60 65 61 66 @property (nonatomic, setter=_setAllowFileAccessFromFileURLs:) BOOL _allowFileAccessFromFileURLs WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA); 67 @property (nonatomic, setter=_setJavaScriptRuntimeFlags:) _WKJavaScriptRuntimeFlags _javaScriptRuntimeFlags WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA); 62 68 63 69 @property (nonatomic, setter=_setStandalone:, getter=_isStandalone) BOOL _standalone WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA); -
trunk/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp
r179705 r180547 115 115 WKPreferencesRef wkPreferences = WKPageGroupGetPreferences(wkPageGroup); 116 116 WKPreferencesSetFileAccessFromFileURLsAllowed(wkPreferences, true); 117 WKPreferencesSetJavaScriptRuntimeFlags(wkPreferences, kWKJavaScriptRuntimeFlagsSymbolEnabled); 117 118 118 119 return toImpl(WKViewGetPage(wkView)); -
trunk/Source/WebKit2/UIProcess/gtk/WebInspectorProxyGtk.cpp
r179821 r180547 70 70 #endif 71 71 preferences->setAllowFileAccessFromFileURLs(true); 72 preferences->setJavaScriptRuntimeFlags({ 73 JSC::RuntimeFlags::SymbolEnabled 74 }); 72 75 RefPtr<WebPageGroup> pageGroup = WebPageGroup::create(inspectorPageGroupIdentifier(), false, false); 73 76 m_inspectorView = GTK_WIDGET(webkitWebViewBaseCreate(&inspectorProcessPool(), preferences.get(), pageGroup.get(), nullptr, nullptr)); -
trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm
r180112 r180547 489 489 #endif 490 490 preferences._allowFileAccessFromFileURLs = YES; 491 preferences._javaScriptRuntimeFlags = _WKJavaScriptRuntimeFlagsSymbolEnabled; 491 492 [configuration setProcessPool: ::WebKit::wrapper(inspectorProcessPool())]; 492 493 [configuration _setGroupIdentifier:inspectorPageGroupIdentifier()]; -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r180465 r180547 2654 2654 setSessionID(SessionID::defaultSessionID()); 2655 2655 settings.setDeveloperExtrasEnabled(store.getBoolValueForKey(WebPreferencesKey::developerExtrasEnabledKey())); 2656 settings.setJavaScript ExperimentsEnabled(store.getBoolValueForKey(WebPreferencesKey::javaScriptExperimentsEnabledKey()));2656 settings.setJavaScriptRuntimeFlags(RuntimeFlags(store.getUInt32ValueForKey(WebPreferencesKey::javaScriptRuntimeFlagsKey()))); 2657 2657 settings.setTextAreasAreResizable(store.getBoolValueForKey(WebPreferencesKey::textAreasAreResizableKey())); 2658 2658 settings.setNeedsSiteSpecificQuirks(store.getBoolValueForKey(WebPreferencesKey::needsSiteSpecificQuirksKey())); -
trunk/Source/WebKit2/mac/WebKit2.order
r176112 r180547 177 177 __ZN6WebKit17WebPreferencesKey25frameFlatteningEnabledKeyEv 178 178 __ZN6WebKit17WebPreferencesKey25developerExtrasEnabledKeyEv 179 __ZN6WebKit17WebPreferencesKey31javaScriptExperimentsEnabledKeyEv180 179 __ZN6WebKit17WebPreferencesKey25privateBrowsingEnabledKeyEv 181 180 __ZN6WebKit17WebPreferencesKey24textAreasAreResizableKeyEv … … 8130 8129 _WKPreferencesSetWebAudioEnabled 8131 8130 __ZN6WebKit14WebPreferences18setWebAudioEnabledERKb 8132 _WKPreferencesSetJavaScriptExperimentsEnabled8133 __ZN6WebKit14WebPreferences31setJavaScriptExperimentsEnabledERKb8134 8131 _WKPreferencesSetJavaScriptCanAccessClipboard 8135 8132 __ZN6WebKit14WebPreferences31setJavaScriptCanAccessClipboardERKb -
trunk/Tools/ChangeLog
r180542 r180547 1 2015-02-23 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 REGRESSION(r179429): Can't type comments in Facebook 4 https://bugs.webkit.org/show_bug.cgi?id=141859 5 6 Reviewed by Geoffrey Garen. 7 8 Drop javaScriptExperimentsEnabled and specify JavaScriptRuntimeFlagsAllEnabled as KJavaScriptRuntimeFlags. 9 10 * DumpRenderTree/mac/DumpRenderTree.mm: 11 (resetWebPreferencesToConsistentValues): 12 * WebKitTestRunner/TestController.cpp: 13 (WTR::TestController::resetPreferencesToConsistentValues): 14 1 15 2015-02-23 KwangHyuk Kim <hyuki.kim@samsung.com> 2 16 -
trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm
r179639 r180547 840 840 [preferences setOfflineWebApplicationCacheEnabled:YES]; 841 841 [preferences setDeveloperExtrasEnabled:NO]; 842 [preferences setJavaScript ExperimentsEnabled:YES];842 [preferences setJavaScriptRuntimeFlags:WebKitJavaScriptRuntimeFlagsAllEnabled]; 843 843 [preferences setLoadsImagesAutomatically:YES]; 844 844 [preferences setLoadsSiteIconsIgnoringImageLoadingPreference:NO]; -
trunk/Tools/WebKitTestRunner/TestController.cpp
r179754 r180547 550 550 WKPreferencesSetMediaStreamEnabled(preferences, true); 551 551 WKPreferencesSetDeveloperExtrasEnabled(preferences, true); 552 WKPreferencesSetJavaScript ExperimentsEnabled(preferences, true);552 WKPreferencesSetJavaScriptRuntimeFlags(preferences, kWKJavaScriptRuntimeFlagsAllEnabled); 553 553 WKPreferencesSetJavaScriptCanOpenWindowsAutomatically(preferences, true); 554 554 WKPreferencesSetJavaScriptCanAccessClipboard(preferences, true);
Note: See TracChangeset
for help on using the changeset viewer.