Source/JavaScriptCore/ChangeLog

 12016-08-30 Brady Eidson <beidson@apple.com>
 2
 3 WK2 Gamepad provider on iOS.
 4 https://bugs.webkit.org/show_bug.cgi?id=161412
 5
 6 Reviewed by Tim Horton.
 7
 8 * Configurations/FeatureDefines.xcconfig:
 9
1102016-08-30 Mark Lam <mark.lam@apple.com>
211
312 Introduce the ThrowScope and force every throw site to instantiate a ThrowScope.

Source/WebCore/ChangeLog

 12016-08-30 Brady Eidson <beidson@apple.com>
 2
 3 WK2 Gamepad provider on iOS.
 4 https://bugs.webkit.org/show_bug.cgi?id=161412
 5
 6 Reviewed by Tim Horton.
 7
 8 No new tests (Native framework backends not directly testable)
 9
 10 * Configurations/FeatureDefines.xcconfig:
 11
1122016-08-30 Chris Dumez <cdumez@apple.com>
213
314 [[Delete]] should throw for cross-origin Window / Location objects

Source/WebKit/mac/ChangeLog

 12016-08-30 Brady Eidson <beidson@apple.com>
 2
 3 WK2 Gamepad provider on iOS.
 4 https://bugs.webkit.org/show_bug.cgi?id=161412
 5
 6 Reviewed by Tim Horton.
 7
 8 * Configurations/FeatureDefines.xcconfig:
 9
1102016-08-30 Mark Lam <mark.lam@apple.com>
211
312 Introduce the ThrowScope and force every throw site to instantiate a ThrowScope.

Source/WebKit2/ChangeLog

112016-08-30 Brady Eidson <beidson@apple.com>
22
 3 WK2 Gamepad provider on iOS.
 4 https://bugs.webkit.org/show_bug.cgi?id=161412
 5
 6 Reviewed by Tim Horton.
 7
 8 * Configurations/FeatureDefines.xcconfig:
 9
 10 * Platform/spi/ios/UIKitSPI.h:
 11
 12 * UIProcess/Gamepad/UIGamepadProvider.cpp:
 13
 14 * UIProcess/Gamepad/ios/UIGamepadProviderIOS.mm: Copied from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderMac.mm.
 15 (WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput):
 16
 17 * UIProcess/Gamepad/mac/UIGamepadProviderMac.mm:
 18
 19 * WebKit2.xcodeproj/project.pbxproj:
 20
 212016-08-30 Brady Eidson <beidson@apple.com>
 22
323 Fix runtime error caused by missing export after https://bugs.webkit.org/show_bug.cgi?id=160846
424
525 Rubberstamped by Dan Bernstein.

Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig

@@ENABLE_FETCH_API = ENABLE_FETCH_API;
8080ENABLE_FILTERS_LEVEL_2 = ENABLE_FILTERS_LEVEL_2;
8181ENABLE_FONT_LOAD_EVENTS = ;
8282ENABLE_FULLSCREEN_API[sdk=macosx*] = ENABLE_FULLSCREEN_API;
83 ENABLE_GAMEPAD[sdk=macosx*] = ENABLE_GAMEPAD;
 83ENABLE_GAMEPAD = ENABLE_GAMEPAD;
8484ENABLE_GAMEPAD_DEPRECATED = ;
8585ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
8686ENABLE_ICONDATABASE[sdk=macosx*] = ENABLE_ICONDATABASE;

Source/WebCore/Configurations/FeatureDefines.xcconfig

@@ENABLE_FETCH_API = ENABLE_FETCH_API;
8080ENABLE_FILTERS_LEVEL_2 = ENABLE_FILTERS_LEVEL_2;
8181ENABLE_FONT_LOAD_EVENTS = ;
8282ENABLE_FULLSCREEN_API[sdk=macosx*] = ENABLE_FULLSCREEN_API;
83 ENABLE_GAMEPAD[sdk=macosx*] = ENABLE_GAMEPAD;
 83ENABLE_GAMEPAD = ENABLE_GAMEPAD;
8484ENABLE_GAMEPAD_DEPRECATED = ;
8585ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
8686ENABLE_ICONDATABASE[sdk=macosx*] = ENABLE_ICONDATABASE;

Source/WebCore/platform/gamepad/mac/HIDGamepad.cpp

2626#include "config.h"
2727#include "HIDGamepad.h"
2828
29 #if ENABLE(GAMEPAD)
 29#if ENABLE(GAMEPAD) && PLATFORM(MAC)
3030
3131#include <IOKit/hid/IOHIDElement.h>
3232#include <IOKit/hid/IOHIDUsageTables.h>

@@void HIDGamepad::valueChanged(IOHIDValueRef value)
187187
188188} // namespace WebCore
189189
190 #endif // ENABLE(GAMEPAD)
 190#endif // ENABLE(GAMEPAD) && PLATFORM(MAC)

Source/WebCore/platform/gamepad/mac/HIDGamepad.h

2525
2626#pragma once
2727
28 #if ENABLE(GAMEPAD)
 28#if ENABLE(GAMEPAD) && PLATFORM(MAC)
2929
3030#include "PlatformGamepad.h"
3131#include <IOKit/hid/IOHIDDevice.h>

@@private:
123123
124124} // namespace WebCore
125125
126 #endif // ENABLE(GAMEPAD)
 126#endif // ENABLE(GAMEPAD) && PLATFORM(MAC)

Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.cpp

2626#include "config.h"
2727#include "HIDGamepadProvider.h"
2828
29 #if ENABLE(GAMEPAD)
 29#if ENABLE(GAMEPAD) && PLATFORM(MAC)
3030
3131#include "GamepadProviderClient.h"
3232#include "Logging.h"

@@std::unique_ptr<HIDGamepad> HIDGamepadProvider::removeGamepadForDevice(IOHIDDevi
268268
269269} // namespace WebCore
270270
271 #endif // ENABLE(GAMEPAD)
 271#endif // ENABLE(GAMEPAD) && PLATFORM(MAC)

Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.h

2525
2626#pragma once
2727
28 #if ENABLE(GAMEPAD)
 28#if ENABLE(GAMEPAD) && PLATFORM(MAC)
2929
3030#include "GamepadProvider.h"
3131#include "HIDGamepad.h"

@@private:
8585
8686} // namespace WebCore
8787
88 #endif // ENABLE(GAMEPAD)
 88#endif // ENABLE(GAMEPAD) && PLATFORM(MAC)

Source/WebKit/mac/Configurations/FeatureDefines.xcconfig

@@ENABLE_FETCH_API = ENABLE_FETCH_API;
8080ENABLE_FILTERS_LEVEL_2 = ENABLE_FILTERS_LEVEL_2;
8181ENABLE_FONT_LOAD_EVENTS = ;
8282ENABLE_FULLSCREEN_API[sdk=macosx*] = ENABLE_FULLSCREEN_API;
83 ENABLE_GAMEPAD[sdk=macosx*] = ENABLE_GAMEPAD;
 83ENABLE_GAMEPAD = ENABLE_GAMEPAD;
8484ENABLE_GAMEPAD_DEPRECATED = ;
8585ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
8686ENABLE_ICONDATABASE[sdk=macosx*] = ENABLE_ICONDATABASE;

Source/WebKit2/Configurations/FeatureDefines.xcconfig

@@ENABLE_FETCH_API = ENABLE_FETCH_API;
8080ENABLE_FILTERS_LEVEL_2 = ENABLE_FILTERS_LEVEL_2;
8181ENABLE_FONT_LOAD_EVENTS = ;
8282ENABLE_FULLSCREEN_API[sdk=macosx*] = ENABLE_FULLSCREEN_API;
83 ENABLE_GAMEPAD[sdk=macosx*] = ENABLE_GAMEPAD;
 83ENABLE_GAMEPAD = ENABLE_GAMEPAD;
8484ENABLE_GAMEPAD_DEPRECATED = ;
8585ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
8686ENABLE_ICONDATABASE[sdk=macosx*] = ENABLE_ICONDATABASE;

Source/WebKit2/Platform/spi/ios/UIKitSPI.h

@@typedef enum {
825825- (CGRect)accessibilityConvertRectToSceneReferenceCoordinates:(CGRect)rect;
826826@end
827827
 828@interface UIResponder ()
 829- (UIResponder *)firstResponder;
 830@end
 831
828832WTF_EXTERN_C_BEGIN
829833
830834BOOL UIKeyboardEnabledInputModesAllowOneToManyShortcuts();

Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.cpp

@@Vector<GamepadData> UIGamepadProvider::snapshotGamepads()
223223 return gamepadDatas;
224224}
225225
226 #if !PLATFORM(MAC)
 226#if !PLATFORM(COCOA)
227227
228228void UIGamepadProvider::platformSetDefaultGamepadProvider()
229229{

Source/WebKit2/UIProcess/Gamepad/ios/UIGamepadProviderIOS.mm

 1/*
 2 * Copyright (C) 2016 Apple Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions
 6 * are met:
 7 * 1. Redistributions of source code must retain the above copyright
 8 * notice, this list of conditions and the following disclaimer.
 9 * 2. Redistributions in binary form must reproduce the above copyright
 10 * notice, this list of conditions and the following disclaimer in the
 11 * documentation and/or other materials provided with the distribution.
 12 *
 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
 14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
 17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 23 * THE POSSIBILITY OF SUCH DAMAGE.
 24 */
 25
 26#import "config.h"
 27#import "UIGamepadProvider.h"
 28
 29#if ENABLE(GAMEPAD) && PLATFORM(IOS)
 30
 31#import "UIKitSPI.h"
 32#import "WKWebViewInternal.h"
 33
 34namespace WebKit {
 35
 36WebPageProxy* UIGamepadProvider::platformWebPageProxyForGamepadInput()
 37{
 38 auto firstResponder = [[[UIApplication sharedApplication] keyWindow] firstResponder];
 39
 40 if ([firstResponder isKindOfClass:[WKContentView class]])
 41 return ((WKContentView *)firstResponder).page;
 42
 43 return nullptr;
 44}
 45
 46}
 47
 48#endif // ENABLE(GAMEPAD) && PLATFORM(IOS)

Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderMac.mm

2626#import "config.h"
2727#import "UIGamepadProvider.h"
2828
29 #if ENABLE(GAMEPAD)
 29#if ENABLE(GAMEPAD) && PLATFORM(MAC)
3030
3131#import "WebPageProxy.h"
3232#import "WKAPICast.h"

@@WebPageProxy* UIGamepadProvider::platformWebPageProxyForGamepadInput()
5252
5353}
5454
55 #endif // ENABLE(GAMEPAD)
 55#endif // ENABLE(GAMEPAD) && PLATFORM(MAC)

Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

10161016 51E35202180F5D1E00E53BE9 /* DatabaseProcessMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51E35201180F5D1E00E53BE9 /* DatabaseProcessMac.mm */; };
10171017 51E35209180F5D6B00E53BE9 /* DatabaseServiceEntryPoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51E35208180F5D6B00E53BE9 /* DatabaseServiceEntryPoint.mm */; };
10181018 51E399061D6F54C7009C8831 /* UIGamepadProviderCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51E399051D6F54C5009C8831 /* UIGamepadProviderCocoa.mm */; };
 1019 51E949971D76211300EC9EB9 /* UIGamepadProviderIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51E949961D761CC700EC9EB9 /* UIGamepadProviderIOS.mm */; };
10191020 51EFC1CF1524E62500C9A938 /* WKBundleDOMWindowExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 51FA2D541521118600C1BA0B /* WKBundleDOMWindowExtension.h */; settings = {ATTRIBUTES = (Private, ); }; };
10201021 51F060E01654317F00F3281B /* WebResourceLoaderMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F060DE1654317500F3281B /* WebResourceLoaderMessages.h */; };
10211022 51F060E11654318500F3281B /* WebResourceLoaderMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F060DD1654317500F3281B /* WebResourceLoaderMessageReceiver.cpp */; };

30773078 51E35207180F5D6100E53BE9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
30783079 51E35208180F5D6B00E53BE9 /* DatabaseServiceEntryPoint.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DatabaseServiceEntryPoint.mm; sourceTree = "<group>"; };
30793080 51E399051D6F54C5009C8831 /* UIGamepadProviderCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = UIGamepadProviderCocoa.mm; sourceTree = "<group>"; };
 3081 51E949961D761CC700EC9EB9 /* UIGamepadProviderIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = UIGamepadProviderIOS.mm; sourceTree = "<group>"; };
30803082 51F060DD1654317500F3281B /* WebResourceLoaderMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebResourceLoaderMessageReceiver.cpp; sourceTree = "<group>"; };
30813083 51F060DE1654317500F3281B /* WebResourceLoaderMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebResourceLoaderMessages.h; sourceTree = "<group>"; };
30823084 51F7DC4A180CC93600212CA3 /* com.apple.WebKit.Databases.Development.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.Databases.Development.xpc; sourceTree = BUILT_PRODUCTS_DIR; };

55025504 isa = PBXGroup;
55035505 children = (
55045506 51E399041D6F54AD009C8831 /* cocoa */,
 5507 51E949951D761CB000EC9EB9 /* ios */,
55055508 515BE1A11D5523B300DD7C68 /* mac */,
55065509 515BE1AC1D555C5100DD7C68 /* UIGamepad.cpp */,
55075510 515BE1AD1D555C5100DD7C68 /* UIGamepad.h */,

56265629 path = cocoa;
56275630 sourceTree = "<group>";
56285631 };
 5632 51E949951D761CB000EC9EB9 /* ios */ = {
 5633 isa = PBXGroup;
 5634 children = (
 5635 51E949961D761CC700EC9EB9 /* UIGamepadProviderIOS.mm */,
 5636 );
 5637 path = ios;
 5638 sourceTree = "<group>";
 5639 };
56295640 51F7DC0A180CC41100212CA3 /* DatabaseProcess */ = {
56305641 isa = PBXGroup;
56315642 children = (

97109721 BC989D81161A7E5D000D46D3 /* WKWebProcessPlugIn.mm in Sources */,
97119722 BC8F2F2A16273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.mm in Sources */,
97129723 1F7506AD1859161C00EC0FF7 /* WKWebProcessPlugInFrame.mm in Sources */,
 9724 51E949971D76211300EC9EB9 /* UIGamepadProviderIOS.mm in Sources */,
97139725 1F7506AE1859162200EC0FF7 /* WKWebProcessPlugInHitTestResult.mm in Sources */,
97149726 1F7506AF1859162800EC0FF7 /* WKWebProcessPlugInNodeHandle.mm in Sources */,
97159727 1FB00AC8185F76460019142E /* WKWebProcessPlugInPageGroup.mm in Sources */,

Tools/ChangeLog

112016-08-30 Brady Eidson <beidson@apple.com>
22
 3 WK2 Gamepad provider on iOS.
 4 https://bugs.webkit.org/show_bug.cgi?id=161412
 5
 6 Reviewed by Tim Horton.
 7
 8 * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
 9
 102016-08-30 Brady Eidson <beidson@apple.com>
 11
312 GameController.framework backend for gamepad API.
413 https://bugs.webkit.org/show_bug.cgi?id=161086
514

Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig

@@ENABLE_FETCH_API = ENABLE_FETCH_API;
8080ENABLE_FILTERS_LEVEL_2 = ENABLE_FILTERS_LEVEL_2;
8181ENABLE_FONT_LOAD_EVENTS = ;
8282ENABLE_FULLSCREEN_API[sdk=macosx*] = ENABLE_FULLSCREEN_API;
83 ENABLE_GAMEPAD[sdk=macosx*] = ENABLE_GAMEPAD;
 83ENABLE_GAMEPAD = ENABLE_GAMEPAD;
8484ENABLE_GAMEPAD_DEPRECATED = ;
8585ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
8686ENABLE_ICONDATABASE[sdk=macosx*] = ENABLE_ICONDATABASE;