| Differences between
and this patch
- a/Source/JavaScriptCore/ChangeLog +22 lines
Lines 1-3 a/Source/JavaScriptCore/ChangeLog_sec1
1
2015-02-21  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 NOBODY (OOPS!).
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 leverages existing JavaScriptExperimentsEnabled runtime flag.
16
        If it's not enabled, experimental constructors like Symbol is not attached to JSGlobalObject.
17
        We enable it under test runner and inspector to continue to work with Symbol.
18
19
        * runtime/JSGlobalObject.cpp:
20
        (JSC::JSGlobalObject::init):
21
        * runtime/JSGlobalObject.h:
22
1
2015-02-20  Mark Lam  <mark.lam@apple.com>
23
2015-02-20  Mark Lam  <mark.lam@apple.com>
2
24
3
        Refactor JSWrapperMap.mm to defer creation of the ObjC JSValue until the latest possible moment.
25
        Refactor JSWrapperMap.mm to defer creation of the ObjC JSValue until the latest possible moment.
- a/Source/WebCore/ChangeLog +12 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2015-02-21  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 NOBODY (OOPS!).
7
8
        No new tests (OOPS!).
9
10
        * inspector/InspectorFrontendClientLocal.cpp:
11
        (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):
12
1
2015-02-20  Enrica Casucci  <enrica@apple.com>
13
2015-02-20  Enrica Casucci  <enrica@apple.com>
2
14
3
        [WK2] Add support for font panel on OS X.
15
        [WK2] Add support for font panel on OS X.
- a/Source/WebKit2/ChangeLog +17 lines
Lines 1-3 a/Source/WebKit2/ChangeLog_sec1
1
2015-02-21  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 NOBODY (OOPS!).
7
8
        * UIProcess/API/Cocoa/WKPreferences.mm:
9
        (-[WKPreferences _setJavaScriptExperimentsEnabled:]):
10
        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
11
        * UIProcess/efl/WebInspectorProxyEfl.cpp:
12
        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
13
        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
14
        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
15
        * UIProcess/mac/WebInspectorProxyMac.mm:
16
        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
17
1
2015-02-20  Carlos Alberto Lopez Perez  <clopez@igalia.com>
18
2015-02-20  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2
19
3
        [GTK] Unreviewed build fix after r180449.
20
        [GTK] Unreviewed build fix after r180449.
- a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp -2 / +7 lines
Lines 373-379 void JSGlobalObject::init(VM& vm) a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp_sec1
373
putDirectWithoutTransition(vm, vm.propertyNames-> jsName, lowerName ## Constructor, DontEnum); \
373
putDirectWithoutTransition(vm, vm.propertyNames-> jsName, lowerName ## Constructor, DontEnum); \
374
374
375
    FOR_EACH_SIMPLE_BUILTIN_TYPE_WITH_CONSTRUCTOR(PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE)
375
    FOR_EACH_SIMPLE_BUILTIN_TYPE_WITH_CONSTRUCTOR(PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE)
376
    
376
377
    if (m_experimentsEnabled) {
378
        // Following macro could be extended to several statements. Don't drop braces around it.
379
        FOR_EACH_EXPERIMENTAL_BUILTIN_TYPE_WITH_CONSTRUCTOR(PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE)
380
    }
381
377
#undef PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE
382
#undef PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE
378
    PrototypeMap& prototypeMap = vm.prototypeMap;
383
    PrototypeMap& prototypeMap = vm.prototypeMap;
379
    Structure* iteratorResultStructure = prototypeMap.emptyObjectStructureForPrototype(m_objectPrototype.get(), JSFinalObject::defaultInlineCapacity());
384
    Structure* iteratorResultStructure = prototypeMap.emptyObjectStructureForPrototype(m_objectPrototype.get(), JSFinalObject::defaultInlineCapacity());
Lines 436-442 void JSGlobalObject::init(VM& vm) a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp_sec2
436
    m_consoleStructure.set(vm, this, JSConsole::createStructure(vm, this, consolePrototype));
441
    m_consoleStructure.set(vm, this, JSConsole::createStructure(vm, this, consolePrototype));
437
    JSConsole* consoleObject = JSConsole::create(vm, m_consoleStructure.get());
442
    JSConsole* consoleObject = JSConsole::create(vm, m_consoleStructure.get());
438
    putDirectWithoutTransition(vm, Identifier(exec, "console"), consoleObject, DontEnum);
443
    putDirectWithoutTransition(vm, Identifier(exec, "console"), consoleObject, DontEnum);
439
    
444
440
    resetPrototype(vm, prototype());
445
    resetPrototype(vm, prototype());
441
}
446
}
442
447
- a/Source/JavaScriptCore/runtime/JSGlobalObject.h -2 / +5 lines
Lines 86-98 a/Source/JavaScriptCore/runtime/JSGlobalObject.h_sec1
86
struct HashTable;
86
struct HashTable;
87
87
88
#define DEFINE_STANDARD_BUILTIN(macro, upperName, lowerName) macro(upperName, lowerName, lowerName, JS ## upperName, upperName)
88
#define DEFINE_STANDARD_BUILTIN(macro, upperName, lowerName) macro(upperName, lowerName, lowerName, JS ## upperName, upperName)
89
    
89
90
#define FOR_EACH_EXPERIMENTAL_BUILTIN_TYPE_WITH_CONSTRUCTOR(macro) \
91
    macro(Symbol, symbol, symbolObject, SymbolObject, Symbol) \
92
90
#define FOR_EACH_SIMPLE_BUILTIN_TYPE_WITH_CONSTRUCTOR(macro) \
93
#define FOR_EACH_SIMPLE_BUILTIN_TYPE_WITH_CONSTRUCTOR(macro) \
91
    macro(Set, set, set, JSSet, Set) \
94
    macro(Set, set, set, JSSet, Set) \
92
    macro(Map, map, map, JSMap, Map) \
95
    macro(Map, map, map, JSMap, Map) \
93
    macro(Date, date, date, DateInstance, Date) \
96
    macro(Date, date, date, DateInstance, Date) \
94
    macro(String, string, stringObject, StringObject, String) \
97
    macro(String, string, stringObject, StringObject, String) \
95
    macro(Symbol, symbol, symbolObject, SymbolObject, Symbol) \
96
    macro(Boolean, boolean, booleanObject, BooleanObject, Boolean) \
98
    macro(Boolean, boolean, booleanObject, BooleanObject, Boolean) \
97
    macro(Number, number, numberObject, NumberObject, Number) \
99
    macro(Number, number, numberObject, NumberObject, Number) \
98
    macro(Error, error, error, ErrorInstance, Error) \
100
    macro(Error, error, error, ErrorInstance, Error) \
Lines 101-106 a/Source/JavaScriptCore/runtime/JSGlobalObject.h_sec2
101
103
102
#define FOR_EACH_SIMPLE_BUILTIN_TYPE(macro) \
104
#define FOR_EACH_SIMPLE_BUILTIN_TYPE(macro) \
103
    FOR_EACH_SIMPLE_BUILTIN_TYPE_WITH_CONSTRUCTOR(macro) \
105
    FOR_EACH_SIMPLE_BUILTIN_TYPE_WITH_CONSTRUCTOR(macro) \
106
    FOR_EACH_EXPERIMENTAL_BUILTIN_TYPE_WITH_CONSTRUCTOR(macro) \
104
    DEFINE_STANDARD_BUILTIN(macro, ArrayIterator, arrayIterator) \
107
    DEFINE_STANDARD_BUILTIN(macro, ArrayIterator, arrayIterator) \
105
    DEFINE_STANDARD_BUILTIN(macro, ArgumentsIterator, argumentsIterator) \
108
    DEFINE_STANDARD_BUILTIN(macro, ArgumentsIterator, argumentsIterator) \
106
    DEFINE_STANDARD_BUILTIN(macro, MapIterator, mapIterator) \
109
    DEFINE_STANDARD_BUILTIN(macro, MapIterator, mapIterator) \
- a/Source/WebCore/inspector/InspectorFrontendClientLocal.cpp +1 lines
Lines 120-125 void InspectorFrontendClientLocal::Settings::setProperty(const String&, const St a/Source/WebCore/inspector/InspectorFrontendClientLocal.cpp_sec1
120
    , m_dockSide(DockSide::Undocked)
120
    , m_dockSide(DockSide::Undocked)
121
{
121
{
122
    m_frontendPage->settings().setAllowFileAccessFromFileURLs(true);
122
    m_frontendPage->settings().setAllowFileAccessFromFileURLs(true);
123
    m_frontendPage->settings().setJavaScriptExperimentsEnabled(true);
123
    m_dispatchTask = std::make_unique<InspectorBackendDispatchTask>(inspectorController);
124
    m_dispatchTask = std::make_unique<InspectorBackendDispatchTask>(inspectorController);
124
}
125
}
125
126
- a/Source/WebKit2/UIProcess/API/Cocoa/WKPreferences.mm +5 lines
Lines 267-272 - (void)_setAllowFileAccessFromFileURLs:(BOOL)allowFileAccessFromFileURLs a/Source/WebKit2/UIProcess/API/Cocoa/WKPreferences.mm_sec1
267
    _preferences->setAllowFileAccessFromFileURLs(allowFileAccessFromFileURLs);
267
    _preferences->setAllowFileAccessFromFileURLs(allowFileAccessFromFileURLs);
268
}
268
}
269
269
270
- (void)_setJavaScriptExperimentsEnabled:(BOOL)javaScriptExperimentsEnabled
271
{
272
    _preferences->setJavaScriptExperimentsEnabled(javaScriptExperimentsEnabled);
273
}
274
270
- (BOOL)_isStandalone
275
- (BOOL)_isStandalone
271
{
276
{
272
    return _preferences->standalone();
277
    return _preferences->standalone();
- a/Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h +1 lines
Lines 59-64 typedef NS_OPTIONS(NSUInteger, _WKDebugOverlayRegions) { a/Source/WebKit2/UIProcess/API/Cocoa/WKPreferencesPrivate.h_sec1
59
@property (nonatomic, setter=_setLogsPageMessagesToSystemConsoleEnabled:) BOOL _logsPageMessagesToSystemConsoleEnabled WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
59
@property (nonatomic, setter=_setLogsPageMessagesToSystemConsoleEnabled:) BOOL _logsPageMessagesToSystemConsoleEnabled WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
60
60
61
@property (nonatomic, setter=_setAllowFileAccessFromFileURLs:) BOOL _allowFileAccessFromFileURLs WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
61
@property (nonatomic, setter=_setAllowFileAccessFromFileURLs:) BOOL _allowFileAccessFromFileURLs WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
62
@property (nonatomic, setter=_setJavaScriptExperimentsEnabled:) BOOL _javaScriptExperimentsEnabled WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
62
63
63
@property (nonatomic, setter=_setStandalone:, getter=_isStandalone) BOOL _standalone WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
64
@property (nonatomic, setter=_setStandalone:, getter=_isStandalone) BOOL _standalone WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
64
65
- a/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp +1 lines
Lines 114-119 WebPageProxy* WebInspectorProxy::platformCreateInspectorPage() a/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp_sec1
114
114
115
    WKPreferencesRef wkPreferences = WKPageGroupGetPreferences(wkPageGroup);
115
    WKPreferencesRef wkPreferences = WKPageGroupGetPreferences(wkPageGroup);
116
    WKPreferencesSetFileAccessFromFileURLsAllowed(wkPreferences, true);
116
    WKPreferencesSetFileAccessFromFileURLsAllowed(wkPreferences, true);
117
    WKPreferencesSetJavaScriptEnabled(wkPreferences, true);
117
118
118
    return toImpl(WKViewGetPage(wkView));
119
    return toImpl(WKViewGetPage(wkView));
119
}
120
}
- a/Source/WebKit2/UIProcess/gtk/WebInspectorProxyGtk.cpp +1 lines
Lines 69-74 WebPageProxy* WebInspectorProxy::platformCreateInspectorPage() a/Source/WebKit2/UIProcess/gtk/WebInspectorProxyGtk.cpp_sec1
69
    preferences->setLogsPageMessagesToSystemConsoleEnabled(true);
69
    preferences->setLogsPageMessagesToSystemConsoleEnabled(true);
70
#endif
70
#endif
71
    preferences->setAllowFileAccessFromFileURLs(true);
71
    preferences->setAllowFileAccessFromFileURLs(true);
72
    preferences->setJavaScriptExperimentsEnabled(true);
72
    RefPtr<WebPageGroup> pageGroup = WebPageGroup::create(inspectorPageGroupIdentifier(), false, false);
73
    RefPtr<WebPageGroup> pageGroup = WebPageGroup::create(inspectorPageGroupIdentifier(), false, false);
73
    m_inspectorView = GTK_WIDGET(webkitWebViewBaseCreate(&inspectorProcessPool(), preferences.get(), pageGroup.get(), nullptr, nullptr));
74
    m_inspectorView = GTK_WIDGET(webkitWebViewBaseCreate(&inspectorProcessPool(), preferences.get(), pageGroup.get(), nullptr, nullptr));
74
    g_object_add_weak_pointer(G_OBJECT(m_inspectorView), reinterpret_cast<void**>(&m_inspectorView));
75
    g_object_add_weak_pointer(G_OBJECT(m_inspectorView), reinterpret_cast<void**>(&m_inspectorView));
- a/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm +1 lines
Lines 488-493 WebPageProxy* WebInspectorProxy::platformCreateInspectorPage() a/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm_sec1
488
    preferences._logsPageMessagesToSystemConsoleEnabled = YES;
488
    preferences._logsPageMessagesToSystemConsoleEnabled = YES;
489
#endif
489
#endif
490
    preferences._allowFileAccessFromFileURLs = YES;
490
    preferences._allowFileAccessFromFileURLs = YES;
491
    preferences._javaScriptExperimentsEnabled = YES;
491
    [configuration setProcessPool: ::WebKit::wrapper(inspectorProcessPool())];
492
    [configuration setProcessPool: ::WebKit::wrapper(inspectorProcessPool())];
492
    [configuration _setGroupIdentifier:inspectorPageGroupIdentifier()];
493
    [configuration _setGroupIdentifier:inspectorPageGroupIdentifier()];
493
494

Return to Bug 141859