rhodes 6.2.0 → 7.1.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +14 -10
- data/appveyor.yml +1 -1
- data/extensions/emdk3-manager/ext/platform/android/Rakefile +2 -0
- data/extensions/rhoconnect-push/ext/rhoconnect-push/platform/android/Rakefile +18 -1
- data/extensions/rhoelementsext/ext/rhoelementsext/platform/android/Rakefile +19 -1
- data/lib/commonAPI/RubyServer/ext.yml +21 -0
- data/lib/commonAPI/RubyServer/ext/RubyServer.xml +101 -0
- data/lib/commonAPI/RubyServer/ext/build +19 -0
- data/lib/commonAPI/RubyServer/ext/build.bat +29 -0
- data/lib/commonAPI/RubyServer/ext/platform/android/Rakefile +161 -0
- data/lib/commonAPI/RubyServer/ext/platform/android/ext_java.files +9 -0
- data/lib/commonAPI/RubyServer/ext/platform/android/ext_native.files +7 -0
- data/lib/commonAPI/RubyServer/ext/platform/iphone/Rakefile +73 -0
- data/lib/commonAPI/RubyServer/ext/platform/iphone/RubyServer.xcodeproj/project.pbxproj +322 -0
- data/lib/commonAPI/RubyServer/ext/platform/iphone/RubyServer_Prefix.pch +7 -0
- data/lib/commonAPI/RubyServer/ext/shared/RubyServerImpl.cpp +242 -0
- data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/BarcodeFactory.java +23 -3
- data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/BarcodeRhoExtension.java +68 -8
- data/lib/commonAPI/barcode/ext/platform/iphone/Barcode.xcodeproj/project.pbxproj +24 -52
- data/lib/commonAPI/barcode/ext/platform/iphone/Classes/BarcodeViewController.h +38 -10
- data/lib/commonAPI/barcode/ext/platform/iphone/Classes/BarcodeViewController.m +300 -22
- data/lib/commonAPI/barcode/ext/platform/iphone/Classes/BarcodeViewFactory.mm +6 -0
- data/lib/commonAPI/barcode/ext/platform/iphone/Classes/barcode.m +6 -2
- data/lib/commonAPI/barcode/ext/platform/iphone/impl/Barcode.m +7 -3
- data/lib/commonAPI/barcode/ext/platform/iphone/impl/BarcodeFactory.m +13 -0
- data/lib/commonAPI/barcode/ext/platform/iphone/impl/BarcodeSingleton.m +25 -3
- data/lib/commonAPI/bluetooth/ext/platform/android/Rakefile +29 -10
- data/lib/commonAPI/clipboard/ext/platform/android/Rakefile +29 -10
- data/lib/commonAPI/coreapi/ext/Notification.xml +47 -0
- data/lib/commonAPI/coreapi/ext/platform/android/ApplicationManifestAdds.erb +1 -0
- data/lib/commonAPI/coreapi/ext/platform/android/Rakefile +19 -0
- data/lib/commonAPI/coreapi/ext/platform/android/ext_java.files +2 -0
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/AlarmReceiver.java +27 -0
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/Notification.java +28 -10
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationFactory.java +14 -1
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationScheduler.java +260 -0
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationSingleton.java +23 -1
- data/lib/commonAPI/coreapi/ext/platform/iphone/Coreapi.xcodeproj/project.pbxproj +21 -19
- data/lib/commonAPI/coreapi/ext/platform/iphone/impl/NotificationSingleton.h +1 -0
- data/lib/commonAPI/coreapi/ext/platform/iphone/impl/NotificationSingleton.m +234 -1
- data/lib/commonAPI/coreapi/ext/platform/qt/coreapi.pro +2 -0
- data/lib/commonAPI/coreapi/ext/platform/qt/src/CNotificationImpl.cpp +7 -0
- data/lib/commonAPI/coreapi/ext/shared/ApplicationImpl.cpp +5 -0
- data/lib/commonAPI/coreapi/public/api/rhoapi.js +18 -8
- data/lib/commonAPI/devicesecurity/ext/platform/android/Rakefile +19 -0
- data/lib/commonAPI/devicesecurity/ext/platform/iphone/DeviceSecurity.xcodeproj/project.pbxproj +16 -0
- data/lib/commonAPI/hardwarekeys/ext/keycapture.xml +11 -9
- data/lib/commonAPI/hardwarekeys/ext/platform/iphone/impl/KeyCaptureSingleton.h +5 -3
- data/lib/commonAPI/hardwarekeys/ext/platform/iphone/impl/KeyCaptureSingleton.m +80 -67
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraEclair.java +25 -14
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraGingerbread.java +55 -25
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraObject.java +34 -9
- data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/ICameraObject.java +1 -0
- data/lib/commonAPI/printing_zebra/ext/platform/android/Rakefile +18 -0
- data/lib/commonAPI/sensor/ext/platform/android/src/com/rho/sensor/Sensor.java +4 -4
- data/lib/extensions/decrypt/ext/platform/android/Rakefile +19 -1
- data/lib/extensions/decryptstub/ext/platform/android/Rakefile +19 -0
- data/lib/extensions/decryptstub/ext/platform/iphone/Decryptstub.xcodeproj/project.pbxproj +4 -2
- data/lib/extensions/digest-md5/ext/android/Rakefile +18 -0
- data/lib/extensions/digest-sha1/ext/android/Rakefile +18 -0
- data/lib/extensions/digest-sha2/ext/android/Rakefile +18 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/Classes/MapViewControllerESRI.h +19 -19
- data/lib/extensions/fcm-push/ext/android/Rakefile +18 -0
- data/lib/extensions/fcm-push/ext/android/src/com/rhomobile/rhodes/fcm/FCMIntentService.java +38 -16
- data/lib/extensions/gcm-push/ext/android/Rakefile +19 -0
- data/lib/extensions/keyboard/ext.yml +15 -0
- data/lib/extensions/keyboard/ext/Keyboard.xml +28 -0
- data/lib/extensions/keyboard/ext/build +19 -0
- data/lib/extensions/keyboard/ext/build.bat +29 -0
- data/lib/extensions/keyboard/ext/platform/android/Rakefile +141 -0
- data/lib/extensions/keyboard/ext/platform/android/ext_java.files +9 -0
- data/lib/extensions/keyboard/ext/platform/android/ext_native.files +7 -0
- data/lib/extensions/keyboard/ext/platform/android/jni/Keyboard_impl.cpp +61 -0
- data/lib/extensions/keyboard/ext/platform/android/src/com/rho/keyboard/Keyboard.java +32 -0
- data/lib/extensions/keyboard/ext/platform/android/src/com/rho/keyboard/KeyboardFactory.java +18 -0
- data/lib/extensions/keyboard/ext/platform/android/src/com/rho/keyboard/KeyboardSingleton.java +29 -0
- data/lib/extensions/keyboard/ext/platform/iphone/Keyboard.xcodeproj/project.pbxproj +368 -0
- data/lib/extensions/keyboard/ext/platform/iphone/Keyboard_Prefix.pch +7 -0
- data/lib/extensions/keyboard/ext/platform/iphone/Rakefile +73 -0
- data/lib/extensions/keyboard/ext/platform/iphone/impl/Keyboard.h +14 -0
- data/lib/extensions/keyboard/ext/platform/iphone/impl/Keyboard.m +24 -0
- data/lib/extensions/keyboard/ext/platform/iphone/impl/KeyboardFactorySingleton.m +16 -0
- data/lib/extensions/keyboard/ext/platform/iphone/impl/KeyboardSetup.m +9 -0
- data/lib/extensions/keyboard/ext/platform/iphone/impl/KeyboardSingleton.h +17 -0
- data/lib/extensions/keyboard/ext/platform/iphone/impl/KeyboardSingleton.m +23 -0
- data/lib/extensions/keyboard/ext/platform/iphone/impl/readme.txt +7 -0
- data/lib/extensions/keyboard/ext/platform/qt/Keyboard.pro +68 -0
- data/lib/extensions/keyboard/ext/platform/qt/Makefile +473 -0
- data/lib/extensions/keyboard/ext/platform/qt/Makefile.Release +408 -0
- data/lib/extensions/keyboard/ext/platform/qt/Rakefile +39 -0
- data/lib/extensions/keyboard/ext/platform/qt/src/Keyboard_impl.cpp +99 -0
- data/lib/extensions/keyboard/ext/platform/uwp/Keyboard.props +18 -0
- data/lib/extensions/keyboard/ext/platform/uwp/Keyboard.vcxproj +197 -0
- data/lib/extensions/keyboard/ext/platform/uwp/Keyboard.vcxproj.filters +50 -0
- data/lib/extensions/keyboard/ext/platform/uwp/KeyboardImpl.csproj +119 -0
- data/lib/extensions/keyboard/ext/platform/uwp/KeyboardImpl.props +8 -0
- data/lib/extensions/keyboard/ext/platform/uwp/KeyboardImpl.targets +7 -0
- data/lib/extensions/keyboard/ext/platform/uwp/KeyboardLib.props +18 -0
- data/lib/extensions/keyboard/ext/platform/uwp/KeyboardLib.vcxproj +197 -0
- data/lib/extensions/keyboard/ext/platform/uwp/KeyboardLib.vcxproj.filters +58 -0
- data/lib/extensions/keyboard/ext/platform/uwp/src/Keyboard_impl.cpp +76 -0
- data/lib/extensions/keyboard/ext/platform/uwp/src/Keyboard_impl.cs +69 -0
- data/lib/extensions/keyboard/ext/platform/uwp/src/Properties/AssemblyInfo.cs +37 -0
- data/lib/extensions/keyboard/ext/platform/wm/Keyboard.sln +52 -0
- data/lib/extensions/keyboard/ext/platform/wm/Keyboard.vcproj +714 -0
- data/lib/extensions/keyboard/ext/platform/wm/Keyboard.vsprops +15 -0
- data/lib/extensions/keyboard/ext/platform/wm/src/Keyboard_impl.cpp +77 -0
- data/lib/extensions/openssl.so.src/ext/android/Rakefile +18 -0
- data/lib/extensions/openssl.so/ext/android/aarch64/libopenssl.so.a +0 -0
- data/lib/extensions/openssl.so/ext/iphone/OpenSSl.SDK/howtobuild.txt +2 -0
- data/lib/extensions/openssl.so/ext/iphone/OpenSSl.SDK/libcrypto.a +0 -0
- data/lib/extensions/openssl.so/ext/iphone/OpenSSl.SDK/libssl.a +0 -0
- data/lib/extensions/openssl.so/ext/iphone/Release-iphoneos/libopenssl.so.a +0 -0
- data/lib/extensions/openssl.so/ext/iphone/Release-iphonesimulator/libopenssl.so.a +0 -0
- data/lib/extensions/openssl/ext/android/Rakefile +18 -0
- data/lib/extensions/zlib/ext/zlib.c +5 -1
- data/lib/framework/autocomplete/Rhodes.rb +1 -1
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/set.rb +799 -0
- data/lib/framework/version.rb +1 -1
- data/lib/rhodes.rb +1 -1
- data/platform/android/Rhodes/AndroidManifest.xml.erb +11 -2
- data/platform/android/Rhodes/jni/include/rhodes.h +6 -0
- data/platform/android/Rhodes/jni/include/rhodes/RhoClassFactory.h +3 -0
- data/platform/android/Rhodes/jni/include/rhodes/SecurityTokenGenerator.h +30 -0
- data/platform/android/Rhodes/jni/include/rhodes/details/rhojava.inc +1 -0
- data/platform/android/Rhodes/jni/src/JNIRhoRubyCppWrapper.cpp +408 -0
- data/platform/android/Rhodes/jni/src/RhoClassFactory.cpp +7 -0
- data/platform/android/Rhodes/jni/src/SecurityTokenGenerator.cpp +60 -0
- data/platform/android/Rhodes/jni/src/fileapi.cpp +318 -12
- data/platform/android/Rhodes/jni/src/mapview.cpp +4 -0
- data/platform/android/Rhodes/res/drawable/ic_notification.png +0 -0
- data/platform/android/Rhodes/res/xml/network_security_config.xml +7 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/BaseActivity.java +9 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/LocalFileProvider.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoMain.java +8 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyArrayObjects.java +33 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyClassObject.java +20 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyObject.java +115 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubySingleton.java +52 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyTypes.java +15 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +25 -13
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/SecurityTokenGenerator.java +57 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManagerImpl.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +9 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality.java +3 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality01.java +7 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality11.java +13 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality26.java +105 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionalityManager.java +4 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/socket/SSLImpl.java +24 -4
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +20 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java +10 -0
- data/platform/android/build/Rakefile +30 -1
- data/platform/android/build/RhodesSRC_build.files +8 -0
- data/platform/android/build/android.rake +326 -22
- data/platform/android/build/android_tools.rb +36 -3
- data/platform/android/build/androidcommon.rb +97 -44
- data/platform/android/build/librhocommon_build.files +11 -0
- data/platform/android/build/librhodes_build.files +2 -0
- data/platform/android/build/manifest_generator.rb +9 -2
- data/platform/android/build/maven_deps_extractor.rb +96 -15
- data/platform/android/build/ndkwrapper.rb +111 -16
- data/platform/android/build/pom.erb +2 -2
- data/platform/iphone/Classes/AppManager/AppManager.m +31 -1
- data/platform/iphone/Classes/MapView/GoogleGeocoder.h +3 -3
- data/platform/iphone/Classes/RhoMainViewStubImpl.h +38 -0
- data/platform/iphone/Classes/RhoMainViewStubImpl.m +88 -0
- data/platform/iphone/Classes/RhoUIWebView.h +5 -0
- data/platform/iphone/Classes/RhoUIWebView.m +14 -6
- data/platform/iphone/Classes/{RhoWKWebView.m → RhoWKWebView.mm} +98 -18
- data/platform/iphone/Classes/RhoWebView.h +1 -1
- data/platform/iphone/Classes/RhoWebViewFabrique.m +24 -12
- data/platform/iphone/Classes/Rhodes.h +7 -2
- data/platform/iphone/Classes/Rhodes.m +46 -8
- data/platform/iphone/Classes/SimpleMainView.m +22 -13
- data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.h +32 -3
- data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.m +93 -61
- data/platform/iphone/Classes/URLProtocol/CRhoWKURLProtocol.h +22 -0
- data/platform/iphone/Classes/URLProtocol/CRhoWKURLProtocol.m +246 -0
- data/platform/iphone/Classes/WebView.m +14 -2
- data/platform/iphone/Entitlements.plist +1 -1
- data/platform/iphone/Framework/RhoApplication/RhoApplication.xcodeproj/project.pbxproj +399 -0
- data/platform/iphone/Framework/Rhodes/Rhodes.xcodeproj/project.pbxproj +1208 -0
- data/platform/iphone/Framework/Rhodes/Rhodes/Info.plist +24 -0
- data/platform/iphone/Framework/Rhodes/Rhodes/Rhodes.h +21 -0
- data/platform/iphone/Framework/Rhodes/Rhodes/StubCode.m +15 -0
- data/platform/iphone/Info.plist +1 -3
- data/platform/iphone/RhoAppBaseLib/RhoAppBaseLib.xcodeproj/project.pbxproj +511 -4
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +467 -1
- data/platform/iphone/Rhodes.xcodeproj/project.pbxproj +51 -274
- data/platform/iphone/RhodesBaseDelegate.h +1 -1
- data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +85 -3
- data/platform/iphone/rbuild/ApplicationPlist.erb +1 -1
- data/platform/iphone/rbuild/iphone.rake +497 -25
- data/platform/iphone/rbuild/iphonecommon.rb +15 -6
- data/platform/iphone/rhodes_stub.cpp +15 -0
- data/platform/iphone/rhodeslib/api/RhodesLib.h +28 -0
- data/platform/iphone/rhodeslib/impl/RhodesLib.m +52 -0
- data/platform/iphone/rhodesruby/api/IRefCountedObject.h +20 -0
- data/platform/iphone/rhodesruby/api/IRhoRuby.h +72 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyArray.h +12 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyBoolean.h +11 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyFloat.h +10 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyHash.h +15 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyInteger.h +10 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyMutableArray.h +9 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyMutableBoolean.h +10 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyMutableFloat.h +10 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyMutableHash.h +10 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyMutableInteger.h +10 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyMutableString.h +10 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyNativeCallback.h +9 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyNil.h +10 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyObject.h +37 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyRunnable.h +8 -0
- data/platform/iphone/rhodesruby/api/IRhoRubyString.h +10 -0
- data/platform/iphone/rhodesruby/api/RhoRuby.h +26 -0
- data/platform/iphone/rhodesruby/api/RhoRubySingletone.h +14 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyFabrique.h +10 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyImpl.h +56 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyImpl.mm +432 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableArrayImpl.h +24 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableArrayImpl.mm +43 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableBooleanImpl.h +23 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableBooleanImpl.mm +38 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableFloatImpl.h +23 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableFloatImpl.mm +35 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableHashImpl.h +24 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableHashImpl.mm +48 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableIntegerImpl.h +23 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableIntegerImpl.mm +35 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableStringImpl.h +23 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyMutableStringImpl.mm +35 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyNilImpl.h +22 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyNilImpl.mm +11 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyObjectImpl.h +31 -0
- data/platform/iphone/rhodesruby/impl/RhoRubyObjectImpl.mm +49 -0
- data/platform/iphone/rhodesruby/impl/RhoRubySingletone.m +19 -0
- data/platform/iphone/rhodesruby/impl/RubyServerResponceImpl.h +21 -0
- data/platform/iphone/rhodesruby/impl/RubyServerResponceImpl.mm +32 -0
- data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +79 -0
- data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +91 -0
- data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +85 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app.zip +0 -0
- data/platform/shared/common/IRhoClassFactory.h +2 -0
- data/platform/shared/common/ISecurityTokenGenerator.h +16 -0
- data/platform/shared/common/RhoFile.cpp +11 -0
- data/platform/shared/common/RhoMath.h +14 -0
- data/platform/shared/common/RhoMutexLock.h +13 -0
- data/platform/shared/common/RhoSystem.h +1 -1
- data/platform/shared/common/RhoThread.cpp +25 -0
- data/platform/shared/common/RhodesApp.cpp +52 -6
- data/platform/shared/common/RhodesApp.h +25 -1
- data/platform/shared/common/RhodesAppBase.cpp +4 -2
- data/platform/shared/common/RhodesAppBase.h +5 -0
- data/platform/shared/common/iphone/RhoClassfactory.h +6 -0
- data/platform/shared/common/iphone/RhoCryptImpl.mm +21 -2
- data/platform/shared/common/map/BaseMapEngine.cpp +2 -2
- data/platform/shared/common/map/GeocodingMapEngine.cpp +1 -1
- data/platform/shared/common/map/GoogleMapEngine.cpp +1 -1
- data/platform/shared/common/map/OSMMapEngine.cpp +1 -1
- data/platform/shared/curl/lib/curl_config.h +28 -0
- data/platform/shared/db/DBAdapter.cpp +18 -10
- data/platform/shared/json.new/JSONIterator.cpp +2 -2
- data/platform/shared/net/HttpServer.cpp +32 -0
- data/platform/shared/net/HttpServer.h +15 -0
- data/platform/shared/net/INetRequest.cpp +54 -0
- data/platform/shared/qt/RhoRubylib.pro +10 -0
- data/platform/shared/qt/rhodes/impl/AlertImpl.cpp +13 -0
- data/platform/shared/qt/rhodes/impl/CameraImpl.cpp +6 -0
- data/platform/shared/qt/rhodes/impl/DateTimePickerImpl.cpp +4 -0
- data/platform/shared/qt/rhodes/impl/MainWindowImpl.cpp +36 -7
- data/platform/shared/qt/rhodes/impl/MainWindowImpl.h +12 -1
- data/platform/shared/qt/rhodes/impl/NativeTabbarImpl.cpp +21 -2
- data/platform/shared/qt/rhodes/impl/NativeTabbarImpl.h +1 -0
- data/platform/shared/qt/rhodes/impl/NativeToolbarImpl.cpp +10 -0
- data/platform/shared/qt/rhodes/impl/QtSystemImpl.cpp +55 -3
- data/platform/shared/qt/rhodes/impl/RhoClassFactoryImpl.h +11 -0
- data/platform/shared/qt/rhodes/impl/RhoThreadImpl.cpp +71 -7
- data/platform/shared/qt/rhodes/impl/RhoThreadImpl.h +79 -2
- data/platform/shared/qt/rhodes/impl/RhodesImpl.cpp +16 -6
- data/platform/shared/qt/rhodes/impl/SecurityTokenGeneratorImpl.cpp +37 -0
- data/platform/shared/qt/rhodes/impl/SecurityTokenGeneratorImpl.h +25 -0
- data/platform/shared/qt/rhodes/impl/SignatureImpl.cpp +2 -0
- data/platform/shared/qt/rhodes/impl/WebViewImpl.cpp +27 -0
- data/platform/shared/qt/rhodes/impl/notificationsound.cpp +16 -2
- data/platform/shared/qt/rhodes/impl/notificationsound.h +11 -1
- data/platform/shared/qt/rhodes/newVersion/QtMainWindow.cpp +25 -16
- data/platform/shared/qt/rhodes/newVersion/QtMainWindow.h +3 -0
- data/platform/shared/qt/rhodes/newVersion/WebUrlRequestInterceptor.cpp +17 -0
- data/platform/shared/qt/rhodes/rhodes.pro +68 -14
- data/platform/shared/qt/rhodes/rhorubyVersion/rhodeslib.cpp +148 -0
- data/platform/shared/qt/rhodes/rhorubyVersion/rhodeslib.h +12 -0
- data/platform/shared/qt/rholib/rholib.pro +33 -5
- data/platform/shared/qt/rhoruby_win32_build.bat +19 -0
- data/platform/shared/qt/rhoruby_win32_build_debug.bat +19 -0
- data/platform/shared/qt/rhosimulator_win32_build_debug.bat +19 -0
- data/platform/shared/qt/rubylib/rubylib.pro +1 -0
- data/platform/shared/qt/sqlite3/sqlite3.pro +1 -0
- data/platform/shared/qt/syncengine/syncengine.pro +1 -0
- data/platform/shared/rhoruby/api/IArray.h +20 -0
- data/platform/shared/rhoruby/api/IBoolean.h +17 -0
- data/platform/shared/rhoruby/api/IFloat.h +17 -0
- data/platform/shared/rhoruby/api/IHash.h +23 -0
- data/platform/shared/rhoruby/api/IInteger.h +18 -0
- data/platform/shared/rhoruby/api/IMutableArray.h +18 -0
- data/platform/shared/rhoruby/api/IMutableBoolean.h +18 -0
- data/platform/shared/rhoruby/api/IMutableFloat.h +17 -0
- data/platform/shared/rhoruby/api/IMutableHash.h +18 -0
- data/platform/shared/rhoruby/api/IMutableInteger.h +17 -0
- data/platform/shared/rhoruby/api/IMutableString.h +17 -0
- data/platform/shared/rhoruby/api/INil.h +16 -0
- data/platform/shared/rhoruby/api/IObject.h +46 -0
- data/platform/shared/rhoruby/api/IRefCountedObject.h +20 -0
- data/platform/shared/rhoruby/api/IRhoRuby.h +78 -0
- data/platform/shared/rhoruby/api/IRunnable.h +17 -0
- data/platform/shared/rhoruby/api/IString.h +17 -0
- data/platform/shared/rhoruby/api/RhoRuby.h +29 -0
- data/platform/shared/rhoruby/api/RhoRubySingletone.h +19 -0
- data/platform/shared/rhoruby/api/SmartPointer.h +27 -0
- data/platform/shared/rhoruby/impl/MutableArrayImpl.cpp +54 -0
- data/platform/shared/rhoruby/impl/MutableArrayImpl.h +48 -0
- data/platform/shared/rhoruby/impl/MutableBooleanImpl.cpp +44 -0
- data/platform/shared/rhoruby/impl/MutableBooleanImpl.h +44 -0
- data/platform/shared/rhoruby/impl/MutableFloatImpl.cpp +41 -0
- data/platform/shared/rhoruby/impl/MutableFloatImpl.h +44 -0
- data/platform/shared/rhoruby/impl/MutableHashImpl.cpp +64 -0
- data/platform/shared/rhoruby/impl/MutableHashImpl.h +49 -0
- data/platform/shared/rhoruby/impl/MutableIntegerImpl.cpp +41 -0
- data/platform/shared/rhoruby/impl/MutableIntegerImpl.h +44 -0
- data/platform/shared/rhoruby/impl/MutableStringImpl.cpp +52 -0
- data/platform/shared/rhoruby/impl/MutableStringImpl.h +44 -0
- data/platform/shared/rhoruby/impl/NilImpl.cpp +23 -0
- data/platform/shared/rhoruby/impl/NilImpl.h +32 -0
- data/platform/shared/rhoruby/impl/ObjectImpl.cpp +77 -0
- data/platform/shared/rhoruby/impl/ObjectImpl.h +53 -0
- data/platform/shared/rhoruby/impl/RefCountedObjectImpl.cpp +28 -0
- data/platform/shared/rhoruby/impl/RefCountedObjectImpl.h +33 -0
- data/platform/shared/rhoruby/impl/RhoRubyImpl.cpp +799 -0
- data/platform/shared/rhoruby/impl/RhoRubyImpl.h +81 -0
- data/platform/shared/rhoruby/impl/RhoRubySingletone.cpp +20 -0
- data/platform/shared/rhoruby/impl/RubyServerResponceImpl.cpp +32 -0
- data/platform/shared/rhoruby/impl/RubyServerResponceImpl.h +21 -0
- data/platform/shared/ruby/android/ruby/config.h +55 -3
- data/platform/shared/ruby/error.c +1 -1
- data/platform/shared/ruby/ext/rho/rhoruby.c +60 -7
- data/platform/shared/ruby/ext/rho/rhoruby.h +3 -0
- data/platform/shared/rubyext/NativeToolbarExt.h +1 -0
- data/platform/uwp/rhodes/rhodes_TemporaryKey.pfx +0 -0
- data/platform/uwp/rhoruntime/common/RhoClassFactory.h +6 -0
- data/platform/win32/RhoSimulator/Qt5Core.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5Gui.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5Multimedia.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5Network.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5Positioning.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5PrintSupport.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5Qml.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5Quick.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5QuickWidgets.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5SerialPort.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5Svg.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5WebChannel.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5WebEngine.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5WebEngineCore.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5WebEngineWidgets.dll +0 -0
- data/platform/win32/RhoSimulator/Qt5Widgets.dll +0 -0
- data/platform/win32/RhoSimulator/QtWebEngineProcess.exe +0 -0
- data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
- data/platform/win32/RhoSimulator/audio/qtaudio_wasapi.dll +0 -0
- data/platform/win32/RhoSimulator/audio/qtaudio_windows.dll +0 -0
- data/platform/win32/RhoSimulator/bearer/qgenericbearer.dll +0 -0
- data/platform/win32/RhoSimulator/iconengines/qsvgicon.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qgif.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qicns.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qico.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qjpeg.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qsvg.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qtga.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qtiff.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qwbmp.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qwebp.dll +0 -0
- data/platform/win32/RhoSimulator/libEGL.dll +0 -0
- data/platform/win32/RhoSimulator/libGLESV2.dll +0 -0
- data/platform/win32/RhoSimulator/mediaservice/dsengine.dll +0 -0
- data/platform/win32/RhoSimulator/mediaservice/qtmedia_audioengine.dll +0 -0
- data/platform/win32/RhoSimulator/mediaservice/wmfengine.dll +0 -0
- data/platform/win32/RhoSimulator/platforms/qwindows.dll +0 -0
- data/platform/win32/RhoSimulator/playlistformats/qtmultimedia_m3u.dll +0 -0
- data/platform/win32/RhoSimulator/position/qtposition_geoclue.dll +0 -0
- data/platform/win32/RhoSimulator/position/qtposition_positionpoll.dll +0 -0
- data/platform/win32/RhoSimulator/position/qtposition_serialnmea.dll +0 -0
- data/platform/win32/RhoSimulator/position/qtposition_winrt.dll +0 -0
- data/platform/win32/RhoSimulator/printsupport/windowsprintersupport.dll +0 -0
- data/platform/wm/build/wm.rake +110 -5
- data/platform/wm/rhodes/rho/common/ExtManager.cpp +30 -0
- data/platform/wm/rhodes/rho/common/RhoClassFactory.h +6 -0
- data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +3 -0
- data/platform/wm/rubylib/rubylib.vcxproj +6 -0
- data/platform/wp8/rhoruntime/common/RhoClassFactory.h +6 -0
- data/rakefile.rb +14 -10
- data/res/build-tools/iphonesim/build/Release/iphonesim_8 +23 -15
- data/res/build-tools/maven/LICENSE +18 -89
- data/res/build-tools/maven/NOTICE +1 -1
- data/res/build-tools/maven/README.txt +12 -12
- data/res/build-tools/maven/bin/m2.conf +2 -2
- data/res/build-tools/maven/bin/mvn +122 -125
- data/res/build-tools/maven/bin/mvn.cmd +205 -0
- data/res/build-tools/maven/bin/mvnDebug +10 -176
- data/res/build-tools/maven/bin/mvnDebug.cmd +33 -0
- data/res/build-tools/maven/bin/mvnyjp +9 -181
- data/res/build-tools/maven/boot/plexus-classworlds-2.6.0.jar +0 -0
- data/res/build-tools/maven/conf/logging/simplelogger.properties +8 -1
- data/res/build-tools/maven/conf/settings.xml +1 -1
- data/res/build-tools/maven/conf/toolchains.xml +103 -0
- data/res/build-tools/maven/lib/animal-sniffer-annotations-1.14.jar +0 -0
- data/res/build-tools/maven/lib/animal-sniffer-annotations.license +14 -0
- data/res/build-tools/maven/lib/checker-compat-qual-2.0.0.jar +0 -0
- data/res/build-tools/maven/lib/checker-compat-qual.license +14 -0
- data/res/build-tools/maven/lib/commons-cli-1.4.jar +0 -0
- data/res/build-tools/maven/lib/commons-io-2.5.jar +0 -0
- data/res/build-tools/maven/lib/commons-lang3-3.8.1.jar +0 -0
- data/res/build-tools/maven/lib/error_prone_annotations-2.1.3.jar +0 -0
- data/res/build-tools/maven/lib/guava-25.1-android.jar +0 -0
- data/res/build-tools/maven/lib/guice-4.2.1-no_aop.jar +0 -0
- data/res/build-tools/maven/lib/j2objc-annotations-1.1.jar +0 -0
- data/res/build-tools/maven/lib/jansi-1.17.1.jar +0 -0
- data/res/build-tools/maven/lib/jansi-native/README.txt +7 -0
- data/res/build-tools/maven/lib/jansi-native/freebsd32/libjansi.so +0 -0
- data/res/build-tools/maven/lib/jansi-native/freebsd64/libjansi.so +0 -0
- data/res/build-tools/maven/lib/jansi-native/linux32/libjansi.so +0 -0
- data/res/build-tools/maven/lib/jansi-native/linux64/libjansi.so +0 -0
- data/res/build-tools/maven/lib/jansi-native/osx/libjansi.jnilib +0 -0
- data/res/build-tools/maven/lib/jansi-native/windows32/jansi.dll +0 -0
- data/res/build-tools/maven/lib/jansi-native/windows64/jansi.dll +0 -0
- data/res/build-tools/maven/lib/jcl-over-slf4j-1.7.25.jar +0 -0
- data/res/build-tools/maven/lib/jcl-over-slf4j.license +14 -0
- data/res/build-tools/maven/lib/jsr250-api.license +383 -405
- data/res/build-tools/maven/lib/jsr305-3.0.2.jar +0 -0
- data/res/build-tools/maven/lib/maven-artifact-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-builder-support-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-compat-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-core-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-embedder-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-model-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-model-builder-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-plugin-api-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-repository-metadata-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-resolver-api-1.3.3.jar +0 -0
- data/res/build-tools/maven/lib/maven-resolver-connector-basic-1.3.3.jar +0 -0
- data/res/build-tools/maven/lib/maven-resolver-impl-1.3.3.jar +0 -0
- data/res/build-tools/maven/lib/maven-resolver-provider-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-resolver-spi-1.3.3.jar +0 -0
- data/res/build-tools/maven/lib/maven-resolver-transport-wagon-1.3.3.jar +0 -0
- data/res/build-tools/maven/lib/maven-resolver-util-1.3.3.jar +0 -0
- data/res/build-tools/maven/lib/maven-settings-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-settings-builder-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-shared-utils-3.2.1.jar +0 -0
- data/res/build-tools/maven/lib/maven-slf4j-provider-3.6.1.jar +0 -0
- data/res/build-tools/maven/lib/org.eclipse.sisu.inject-0.3.3.jar +0 -0
- data/res/build-tools/maven/lib/org.eclipse.sisu.inject.license +210 -261
- data/res/build-tools/maven/lib/org.eclipse.sisu.plexus-0.3.3.jar +0 -0
- data/res/build-tools/maven/lib/org.eclipse.sisu.plexus.license +210 -261
- data/res/build-tools/maven/lib/plexus-component-annotations-1.7.1.jar +0 -0
- data/res/build-tools/maven/lib/plexus-interpolation-1.25.jar +0 -0
- data/res/build-tools/maven/lib/plexus-sec-dispatcher-1.4.jar +0 -0
- data/res/build-tools/maven/lib/plexus-utils-3.2.0.jar +0 -0
- data/res/build-tools/maven/lib/slf4j-api-1.7.25.jar +0 -0
- data/res/build-tools/maven/lib/slf4j-api.license +10 -186
- data/res/build-tools/maven/lib/wagon-file-3.3.2.jar +0 -0
- data/res/build-tools/maven/lib/wagon-http-3.3.2-shaded.jar +0 -0
- data/res/build-tools/maven/lib/wagon-provider-api-3.3.2.jar +0 -0
- data/res/generators/rhogen.rb +150 -0
- data/res/generators/templates/application/AndroidManifest.erb +13 -4
- data/res/generators/templates/application/build.yml +9 -0
- data/res/generators/templates/application/nodejs_build.yml +1 -1
- data/res/generators/templates/application/resources/android/res/xml/network_security_config.xml +7 -0
- data/res/generators/templates/application/rhoconfig.txt +13 -6
- data/res/generators/templates/application/rhoconfig_rubynode.txt +139 -0
- data/res/generators/templates/application/rubynodejs_build.yml +95 -0
- data/res/generators/templates/extension/extensions/montana/ext/platform/android/Rakefile +19 -0
- data/res/generators/templates/iphone_project/root/Entitlements.plist +1 -1
- data/res/generators/templates/iphone_project/root/Info.plist +1 -3
- data/res/generators/templates/iphone_project/root/rhorunner_development.entitlements +1 -1
- data/res/generators/templates/iphone_project/root/rhorunner_production.entitlements +1 -1
- data/rhodes.gemspec +2 -2
- data/version +1 -1
- metadata +244 -71
- data/res/build-tools/maven/bin/mvn.bat +0 -197
- data/res/build-tools/maven/bin/mvnDebug.bat +0 -200
- data/res/build-tools/maven/boot/plexus-classworlds-2.5.2.jar +0 -0
- data/res/build-tools/maven/lib/aether-api-1.0.0.v20140518.jar +0 -0
- data/res/build-tools/maven/lib/aether-api.license +0 -261
- data/res/build-tools/maven/lib/aether-connector-basic-1.0.0.v20140518.jar +0 -0
- data/res/build-tools/maven/lib/aether-connector-basic.license +0 -261
- data/res/build-tools/maven/lib/aether-impl-1.0.0.v20140518.jar +0 -0
- data/res/build-tools/maven/lib/aether-impl.license +0 -261
- data/res/build-tools/maven/lib/aether-spi-1.0.0.v20140518.jar +0 -0
- data/res/build-tools/maven/lib/aether-spi.license +0 -261
- data/res/build-tools/maven/lib/aether-transport-wagon-1.0.0.v20140518.jar +0 -0
- data/res/build-tools/maven/lib/aether-transport-wagon.license +0 -261
- data/res/build-tools/maven/lib/aether-util-1.0.0.v20140518.jar +0 -0
- data/res/build-tools/maven/lib/aether-util.license +0 -261
- data/res/build-tools/maven/lib/cdi-api.license +0 -445
- data/res/build-tools/maven/lib/commons-cli-1.2.jar +0 -0
- data/res/build-tools/maven/lib/commons-io-2.2.jar +0 -0
- data/res/build-tools/maven/lib/commons-lang-2.6.jar +0 -0
- data/res/build-tools/maven/lib/guava-18.0.jar +0 -0
- data/res/build-tools/maven/lib/jsoup-1.7.2.jar +0 -0
- data/res/build-tools/maven/lib/jsoup.license +0 -66
- data/res/build-tools/maven/lib/maven-aether-provider-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-aether-provider.license +0 -202
- data/res/build-tools/maven/lib/maven-artifact-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-artifact.license +0 -202
- data/res/build-tools/maven/lib/maven-compat-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-compat.license +0 -202
- data/res/build-tools/maven/lib/maven-core-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-core.license +0 -202
- data/res/build-tools/maven/lib/maven-embedder-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-embedder.license +0 -202
- data/res/build-tools/maven/lib/maven-model-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-model-builder-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-model-builder.license +0 -202
- data/res/build-tools/maven/lib/maven-model.license +0 -202
- data/res/build-tools/maven/lib/maven-plugin-api-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-plugin-api.license +0 -202
- data/res/build-tools/maven/lib/maven-repository-metadata-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-repository-metadata.license +0 -202
- data/res/build-tools/maven/lib/maven-settings-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-settings-builder-3.2.5.jar +0 -0
- data/res/build-tools/maven/lib/maven-settings-builder.license +0 -202
- data/res/build-tools/maven/lib/maven-settings.license +0 -202
- data/res/build-tools/maven/lib/org.eclipse.sisu.inject-0.3.0.M1.jar +0 -0
- data/res/build-tools/maven/lib/org.eclipse.sisu.plexus-0.3.0.M1.jar +0 -0
- data/res/build-tools/maven/lib/plexus-cipher.license +0 -445
- data/res/build-tools/maven/lib/plexus-component-annotations-1.5.5.jar +0 -0
- data/res/build-tools/maven/lib/plexus-interpolation-1.21.jar +0 -0
- data/res/build-tools/maven/lib/plexus-sec-dispatcher-1.3.jar +0 -0
- data/res/build-tools/maven/lib/plexus-sec-dispatcher.license +0 -445
- data/res/build-tools/maven/lib/plexus-utils-3.0.20.jar +0 -0
- data/res/build-tools/maven/lib/sisu-guice-3.2.3-no_aop.jar +0 -0
- data/res/build-tools/maven/lib/slf4j-api-1.7.5.jar +0 -0
- data/res/build-tools/maven/lib/slf4j-simple-1.7.5.jar +0 -0
- data/res/build-tools/maven/lib/slf4j-simple.license +0 -190
- data/res/build-tools/maven/lib/wagon-file-2.8.jar +0 -0
- data/res/build-tools/maven/lib/wagon-file.license +0 -202
- data/res/build-tools/maven/lib/wagon-http-2.8-shaded.jar +0 -0
- data/res/build-tools/maven/lib/wagon-http-shared-2.8.jar +0 -0
- data/res/build-tools/maven/lib/wagon-http-shared.license +0 -202
- data/res/build-tools/maven/lib/wagon-http.license +0 -202
- data/res/build-tools/maven/lib/wagon-provider-api-2.8.jar +0 -0
- data/res/build-tools/maven/lib/wagon-provider-api.license +0 -202
@@ -1,14 +1,18 @@
|
|
1
1
|
|
2
2
|
#import <Foundation/Foundation.h>
|
3
3
|
|
4
|
+
@interface CRhoURLResponse : NSHTTPURLResponse {
|
5
|
+
|
6
|
+
}
|
4
7
|
|
8
|
+
@property NSInteger statusCode;
|
5
9
|
|
6
|
-
@
|
10
|
+
@end
|
7
11
|
|
8
12
|
|
9
|
-
|
13
|
+
@interface CRhoURLProtocol : NSURLProtocol {}
|
14
|
+
|
10
15
|
|
11
|
-
- (void)sendResponseWithResponseCode:(NSInteger)statusCode data:(NSData*)data;
|
12
16
|
|
13
17
|
@property (nonatomic) NSInteger httpStatusCode;
|
14
18
|
@property (retain) NSString* httpHeaderName;
|
@@ -17,4 +21,29 @@
|
|
17
21
|
|
18
22
|
@property (nonatomic) BOOL isStopped;
|
19
23
|
|
24
|
+
|
25
|
+
//NSURLProtocol specific
|
26
|
+
+ (void) initAndRegister;
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
//utils methods
|
31
|
+
+ (BOOL) isLocalURL:(NSURL*)url;
|
32
|
+
- (void)sendResponseWithResponseCode:(NSInteger)statusCode data:(NSData*)data;
|
33
|
+
- (const char*)selfIDstring;
|
34
|
+
+ (const char*)requestInfo:(NSURLRequest*)req;
|
35
|
+
+ (const char*)responseHttpInfo:(NSURLResponse*)res;
|
36
|
+
+ (BOOL)canInitWithRequest:(NSURLRequest*)theRequest;
|
37
|
+
+ (NSURLRequest*)canonicalRequestForRequest:(NSURLRequest*)request;
|
38
|
+
- (CRhoURLResponse*) makeDirectHttpRequest:(NSURL*)theUrl;
|
39
|
+
- (void) processCommonAPIrequest:(NSURL*)url;
|
40
|
+
- (void)startLoadingInThread;
|
41
|
+
|
42
|
+
// should be override !
|
43
|
+
- (void) freeAllResources;
|
44
|
+
- (void) informAboutRedirect:(NSHTTPURLResponse*)response redirectRequest:(NSURLRequest*)redirectRequest;
|
45
|
+
- (void) informAboutResponse:(NSURLResponse*)response data:(NSData*)data;
|
46
|
+
- (void) informAboutError:(NSError*)error;
|
47
|
+
|
48
|
+
|
20
49
|
@end
|
@@ -27,6 +27,8 @@ static bool is_net_trace() {
|
|
27
27
|
|
28
28
|
extern int rho_http_started();
|
29
29
|
extern int rho_http_get_port();
|
30
|
+
extern int rho_nodejs_get_port();
|
31
|
+
extern const char* rho_native_rhopath();
|
30
32
|
|
31
33
|
const char* rho_http_direct_request( const char* method, const char* uri, const char* query, const void* headers, const char* body, int bodylen, int* responseLength );
|
32
34
|
void rho_http_free_response( const char* data );
|
@@ -48,17 +50,16 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
48
50
|
|
49
51
|
|
50
52
|
|
51
|
-
@interface CRhoURLResponse : NSHTTPURLResponse {
|
52
|
-
|
53
|
-
}
|
54
|
-
|
55
|
-
@property NSInteger statusCode;
|
56
|
-
|
57
|
-
@end
|
58
53
|
|
59
54
|
|
60
55
|
@implementation CRhoURLProtocol
|
61
56
|
|
57
|
+
- (void) freeAllResources {
|
58
|
+
self.isStopped = false;
|
59
|
+
self.httpBody = nil;
|
60
|
+
self.httpHeaderName = nil;
|
61
|
+
self.httpHeaders = nil;
|
62
|
+
}
|
62
63
|
|
63
64
|
-(const char*)selfIDstring {
|
64
65
|
return [[NSString stringWithFormat:@"<%p>", self] UTF8String];
|
@@ -68,12 +69,56 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
68
69
|
return [[NSString stringWithFormat:@"<NSURLRequest:<%p>, URL:[ %@ ], Headers:[ %@ ]", req, req.URL, req.allHTTPHeaderFields] UTF8String];
|
69
70
|
}
|
70
71
|
|
72
|
+
+ (const char*)responseHttpInfo:(NSURLResponse*)res {
|
73
|
+
if ([res isKindOfClass:[NSHTTPURLResponse class]]) {
|
74
|
+
return [[NSString stringWithFormat:@"<NSHTTPURLResponse:<%p>, URL:[ %@ ], Headers:[ %@ ]", res, [res URL], [[(NSHTTPURLResponse*)res allHeaderFields] description]] UTF8String];
|
75
|
+
}
|
76
|
+
else {
|
77
|
+
return [[NSString stringWithFormat:@"<NSHTTPURLResponse:<%p>, URL:[ %@ ], Responce isnot HTTP !", res, [res URL]] UTF8String];
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
- (void) informAboutRedirect:(NSHTTPURLResponse*)response redirectRequest:(NSURLRequest*)redirectRequest {
|
83
|
+
if (is_net_trace()) {
|
84
|
+
RAWTRACE2("$NetRequestProcess$ CRhoURLProtocol %s :: informAboutRedirect { %s }", [self selfIDstring], [CRhoURLProtocol responseHttpInfo:response]);
|
85
|
+
}
|
86
|
+
[[self client] URLProtocol:self wasRedirectedToRequest:redirectRequest redirectResponse:response];
|
87
|
+
[self freeAllResources];
|
88
|
+
}
|
89
|
+
|
90
|
+
- (void) informAboutResponse:(NSURLResponse*)response data:(NSData*)data {
|
91
|
+
if (is_net_trace()) {
|
92
|
+
RAWTRACE2("$NetRequestProcess$ CRhoURLProtocol %s :: informAboutResponse { %s }", [self selfIDstring], [CRhoURLProtocol responseHttpInfo:(NSHTTPURLResponse*)response]);
|
93
|
+
}
|
94
|
+
|
95
|
+
if (!self.isStopped) {
|
96
|
+
[[self client] URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageNotAllowed];
|
97
|
+
}
|
98
|
+
if (data != nil) {
|
99
|
+
if (!self.isStopped) {
|
100
|
+
[[self client] URLProtocol:self didLoadData:data];
|
101
|
+
}
|
102
|
+
}
|
103
|
+
if (!self.isStopped) {
|
104
|
+
[[self client] URLProtocolDidFinishLoading:self];
|
105
|
+
}
|
106
|
+
|
107
|
+
[self freeAllResources];
|
108
|
+
}
|
109
|
+
|
110
|
+
- (void) informAboutError:(NSError*)error {
|
111
|
+
if (is_net_trace()) {
|
112
|
+
RAWLOG_ERROR2("$NetRequestProcess$ CRhoURLProtocol %s :: informAboutERROR { %@ }", [self selfIDstring], [error localizedDescription]);
|
113
|
+
}
|
114
|
+
// nothing
|
115
|
+
[self freeAllResources];
|
116
|
+
}
|
117
|
+
|
71
118
|
|
72
119
|
- (void)dealloc
|
73
120
|
{
|
74
|
-
|
75
|
-
[httpHeaderName release];
|
76
|
-
[httpHeaders release];
|
121
|
+
[self freeAllResources];
|
77
122
|
|
78
123
|
[super dealloc];
|
79
124
|
}
|
@@ -113,7 +158,7 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
113
158
|
}
|
114
159
|
#endif
|
115
160
|
|
116
|
-
bool canHandle =
|
161
|
+
bool canHandle = false;
|
117
162
|
if (rho_conf_is_property_exists("ios_direct_local_requests")!=0) {
|
118
163
|
canHandle = rho_conf_getBool("ios_direct_local_requests")!=0;
|
119
164
|
}
|
@@ -172,14 +217,7 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
172
217
|
textEncodingName:@"UTF-8"];
|
173
218
|
response.statusCode = 200;
|
174
219
|
|
175
|
-
|
176
|
-
[[self client] URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageNotAllowed];
|
177
|
-
if (data != nil) {
|
178
|
-
[[self client] URLProtocol:self didLoadData:data];
|
179
|
-
}
|
180
|
-
[[self client] URLProtocolDidFinishLoading:self];
|
181
|
-
}
|
182
|
-
|
220
|
+
[self informAboutResponse:response data:data];
|
183
221
|
return;
|
184
222
|
}
|
185
223
|
}
|
@@ -228,10 +266,10 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
228
266
|
|
229
267
|
|
230
268
|
if (force_https) {
|
231
|
-
s = [NSMutableString stringWithFormat:@"
|
269
|
+
s = [NSMutableString stringWithFormat:@"%@://127.0.0.1:%d%@",@"https",rho_http_get_port(),spath];
|
232
270
|
}
|
233
271
|
else {
|
234
|
-
s = [NSMutableString stringWithFormat:@"
|
272
|
+
s = [NSMutableString stringWithFormat:@"%@://127.0.0.1:%d%@",@"http", rho_http_get_port(),spath];
|
235
273
|
}
|
236
274
|
|
237
275
|
|
@@ -266,7 +304,7 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
266
304
|
}
|
267
305
|
if (!self.isStopped) {
|
268
306
|
|
269
|
-
[
|
307
|
+
[self informAboutRedirect:resp redirectRequest:redirReq];
|
270
308
|
}
|
271
309
|
if (is_net_trace()) {
|
272
310
|
RAWTRACE1("$NetRequestProcess$ CRhoURLProtocol %s :: startLoading END", [self selfIDstring]);
|
@@ -282,18 +320,7 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
282
320
|
if (is_net_trace()) {
|
283
321
|
RAWTRACE1("$NetRequestProcess$ CRhoURLProtocol %s :: startLoading just request - no redirection", [self selfIDstring]);
|
284
322
|
}
|
285
|
-
|
286
|
-
|
287
|
-
[[self client] URLProtocol:self didReceiveResponse:resp cacheStoragePolicy:NSURLCacheStorageNotAllowed];
|
288
|
-
}
|
289
|
-
if (self.httpBody != nil) {
|
290
|
-
if (!self.isStopped) {
|
291
|
-
[[self client] URLProtocol:self didLoadData:self.httpBody];
|
292
|
-
}
|
293
|
-
}
|
294
|
-
if (!self.isStopped) {
|
295
|
-
[[self client] URLProtocolDidFinishLoading:self];
|
296
|
-
}
|
323
|
+
[self informAboutResponse:resp data:self.httpBody];
|
297
324
|
|
298
325
|
if (is_net_trace()) {
|
299
326
|
RAWTRACE1("$NetRequestProcess$ CRhoURLProtocol %s :: startLoading END", [self selfIDstring]);
|
@@ -313,16 +340,8 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
313
340
|
}
|
314
341
|
}
|
315
342
|
|
316
|
-
- (void)
|
317
|
-
{
|
318
|
-
self.isStopped = NO;
|
319
|
-
if (is_net_trace()) {
|
320
|
-
RAWTRACE1("$NetRequestProcess$ CRhoURLProtocol %s :: startLoading()", [self selfIDstring]);
|
321
|
-
}
|
322
|
-
|
323
|
-
NSURL* theUrl = [[self request] URL];
|
324
|
-
|
325
|
-
if ([[theUrl path] isEqualToString:@"/!__rhoNativeApi"]) {
|
343
|
+
- (void) processCommonAPIrequest:(NSURL*)url {
|
344
|
+
if ([[url path] isEqualToString:@"/!__rhoNativeApi"]) {
|
326
345
|
if (is_net_trace()) {
|
327
346
|
RAWTRACE1("$NetRequestProcess$ CRhoURLProtocol %s :: startLoading URL has !__rhoNativeApi", [self selfIDstring]);
|
328
347
|
}
|
@@ -339,6 +358,18 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
339
358
|
}
|
340
359
|
|
341
360
|
}
|
361
|
+
}
|
362
|
+
|
363
|
+
- (void)startLoading
|
364
|
+
{
|
365
|
+
self.isStopped = NO;
|
366
|
+
if (is_net_trace()) {
|
367
|
+
RAWTRACE1("$NetRequestProcess$ CRhoURLProtocol %s :: startLoading()", [self selfIDstring]);
|
368
|
+
}
|
369
|
+
|
370
|
+
NSURL* theUrl = [[self request] URL];
|
371
|
+
|
372
|
+
[self processCommonAPIrequest:theUrl];
|
342
373
|
|
343
374
|
dispatch_async( dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0 ), ^{
|
344
375
|
[self startLoadingInThread];
|
@@ -433,10 +464,10 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
433
464
|
|
434
465
|
}
|
435
466
|
|
436
|
-
|
437
|
-
{
|
438
|
-
return NO;
|
439
|
-
}
|
467
|
+
//+ (BOOL)requestIsCacheEquivalent:(NSURLRequest*)requestA toRequest:(NSURLRequest*)requestB
|
468
|
+
//{
|
469
|
+
// return NO;
|
470
|
+
//}
|
440
471
|
|
441
472
|
- (void)sendResponseWithResponseCode:(NSInteger)statusCode data:(NSData*)data
|
442
473
|
{
|
@@ -454,18 +485,9 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
454
485
|
textEncodingName:@"UTF-8"];
|
455
486
|
response.statusCode = statusCode;
|
456
487
|
|
457
|
-
|
458
|
-
[[self client] URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageNotAllowed];
|
459
|
-
}
|
460
|
-
if (data != nil) {
|
461
|
-
if (!self.isStopped) {
|
462
|
-
[[self client] URLProtocol:self didLoadData:data];
|
463
|
-
}
|
464
|
-
}
|
465
|
-
if (!self.isStopped) {
|
466
|
-
[[self client] URLProtocolDidFinishLoading:self];
|
467
|
-
}
|
488
|
+
[self informAboutResponse:response data:data];
|
468
489
|
[response release];
|
490
|
+
|
469
491
|
}
|
470
492
|
|
471
493
|
+ (BOOL) isLocalURL:(NSURL*)url
|
@@ -505,9 +527,19 @@ int on_http_cb(http_parser* parser) { return 0; }
|
|
505
527
|
int port = (nil==p)?80:[[url port] intValue];
|
506
528
|
|
507
529
|
int rhoPort = rho_http_get_port();
|
508
|
-
|
530
|
+
|
531
|
+
// path for Rhodes JS API from WebView in case of Node.js application
|
532
|
+
int rhoNodeJSPort = rho_nodejs_get_port();
|
533
|
+
NSString* path = [url path];
|
534
|
+
if (![@"/system/js_api_entrypoint" isEqualToString:path]) {
|
535
|
+
if (![@"/system/rholib_callback" isEqualToString:path]) {
|
536
|
+
rhoNodeJSPort= -521;
|
537
|
+
}
|
538
|
+
}
|
539
|
+
|
540
|
+
|
509
541
|
BOOL ret = (
|
510
|
-
((port == rhoPort))
|
542
|
+
((port == rhoPort) || (port == rhoNodeJSPort))
|
511
543
|
&& ( (strcmp(host,"127.0.0.1")==0) || (strcmp(host,"localhost")==0) )
|
512
544
|
);
|
513
545
|
if (is_net_trace()) {
|
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
#import <Foundation/Foundation.h>
|
3
|
+
#import <UIKit/UIKit.h>
|
4
|
+
#import <WebKit/WebKit.h>
|
5
|
+
#import <WebKit/WKWebViewConfiguration.h>
|
6
|
+
#import "CRhoURLProtocol.h"
|
7
|
+
|
8
|
+
|
9
|
+
@interface CRhoWKURLProtocol : CRhoURLProtocol<WKURLSchemeHandler> {
|
10
|
+
|
11
|
+
id <WKURLSchemeTask> mUrlTask;
|
12
|
+
}
|
13
|
+
|
14
|
+
|
15
|
+
@property (nonatomic, retain) NSURLRequest* mRedirectRequest;
|
16
|
+
|
17
|
+
|
18
|
+
- (NSURLRequest*) request;
|
19
|
+
- (void)webView:(WKWebView *)webView startURLSchemeTask:(id <WKURLSchemeTask>)urlSchemeTask;
|
20
|
+
- (void)webView:(WKWebView *)webView stopURLSchemeTask:(id <WKURLSchemeTask>)urlSchemeTask;
|
21
|
+
|
22
|
+
@end
|
@@ -0,0 +1,246 @@
|
|
1
|
+
|
2
|
+
#import "CRhoWKURLProtocol.h"
|
3
|
+
//#import "CRhoURLProtocol.h"
|
4
|
+
#import "api_generator/iphone/CJSEntryPoint.h"
|
5
|
+
|
6
|
+
#import "net/http_parser.h"
|
7
|
+
|
8
|
+
#import "common/RhoConf.h"
|
9
|
+
|
10
|
+
#import "logging/RhoLog.h"
|
11
|
+
#undef DEFAULT_LOGCATEGORY
|
12
|
+
#define DEFAULT_LOGCATEGORY "RhoWKURLProtocol"
|
13
|
+
|
14
|
+
static bool is_net_trace() {
|
15
|
+
static int res = -1;
|
16
|
+
if (res == -1) {
|
17
|
+
if (rho_conf_getBool("net_trace") ) {
|
18
|
+
res = 1;
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
res = 0;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
return res == 1;
|
25
|
+
}
|
26
|
+
|
27
|
+
extern int rho_http_get_port();
|
28
|
+
extern int rho_nodejs_get_port();
|
29
|
+
|
30
|
+
|
31
|
+
@implementation CRhoWKURLProtocol
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
- (void)dealloc
|
38
|
+
{
|
39
|
+
[super dealloc];
|
40
|
+
}
|
41
|
+
|
42
|
+
|
43
|
+
- (void) freeAllResources {
|
44
|
+
mUrlTask = nil;
|
45
|
+
self.mRedirectRequest = nil;
|
46
|
+
[super freeAllResources];
|
47
|
+
}
|
48
|
+
|
49
|
+
- (void) informAboutRedirect:(NSHTTPURLResponse*)response redirectRequest:(NSURLRequest*)redirectRequest {
|
50
|
+
if (is_net_trace()) {
|
51
|
+
RAWTRACE2("$NetWKRequestProcess$ CRhoWKURLProtocol %s :: informAboutRedirect { %s }", [self selfIDstring], [CRhoWKURLProtocol responseHttpInfo:response]);
|
52
|
+
}
|
53
|
+
|
54
|
+
NSString* t01 = @"Redirection";
|
55
|
+
NSString* t02 = @"did";
|
56
|
+
NSString* selname = [NSString stringWithFormat:@"_%@%@%@:newRequest:", t02, @"Perform", t01];
|
57
|
+
|
58
|
+
SEL selector = NSSelectorFromString(selname);
|
59
|
+
|
60
|
+
NSObject* obj = (NSObject*)mUrlTask;
|
61
|
+
[obj performSelector:selector withObject:response withObject:redirectRequest];
|
62
|
+
|
63
|
+
self.mRedirectRequest = [redirectRequest retain];
|
64
|
+
[self startLoading];
|
65
|
+
}
|
66
|
+
|
67
|
+
- (void) informAboutResponse:(NSURLResponse*)response data:(NSData*)data {
|
68
|
+
if (is_net_trace()) {
|
69
|
+
RAWTRACE2("$NetWKRequestProcess$ CRhoWKURLProtocol %s :: informAboutResponse { %s }", [self selfIDstring], [CRhoWKURLProtocol responseHttpInfo:(NSHTTPURLResponse*)response]);
|
70
|
+
}
|
71
|
+
|
72
|
+
if (!self.isStopped) {
|
73
|
+
[mUrlTask didReceiveResponse:response];
|
74
|
+
}
|
75
|
+
if (data != nil) {
|
76
|
+
if (!self.isStopped) {
|
77
|
+
[mUrlTask didReceiveData:data];
|
78
|
+
}
|
79
|
+
}
|
80
|
+
if (!self.isStopped) {
|
81
|
+
[mUrlTask didFinish];
|
82
|
+
}
|
83
|
+
|
84
|
+
[self freeAllResources];
|
85
|
+
}
|
86
|
+
|
87
|
+
- (void) informAboutError:(NSError*)error {
|
88
|
+
if (is_net_trace()) {
|
89
|
+
RAWTRACE2("$NetWKRequestProcess$ CRhoWKURLProtocol %s :: informAboutERROR { %@ }", [self selfIDstring], [error localizedDescription]);
|
90
|
+
}
|
91
|
+
|
92
|
+
if (!self.isStopped) {
|
93
|
+
[mUrlTask didFailWithError:error];
|
94
|
+
}
|
95
|
+
|
96
|
+
[self freeAllResources];
|
97
|
+
}
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
- (void)startLoading
|
105
|
+
{
|
106
|
+
if (is_net_trace()) {
|
107
|
+
RAWTRACE1("$NetWKRequestProcess$ CRhoWKURLProtocol %s :: startLoading()", [self selfIDstring]);
|
108
|
+
}
|
109
|
+
|
110
|
+
NSURL* theUrl = [[self request] URL];
|
111
|
+
|
112
|
+
if (is_net_trace()) {
|
113
|
+
if (theUrl != nil) {
|
114
|
+
RAWTRACE1("$NetWKRequestProcess$ CRhoWKURLProtocol :: startLoading() URL = %s", [[theUrl absoluteString] UTF8String]);
|
115
|
+
} else {
|
116
|
+
RAWTRACE("$NetWKRequestProcess$ CRhoWKURLProtocol :: startLoading() URL = NIL !!!");
|
117
|
+
}
|
118
|
+
}
|
119
|
+
|
120
|
+
if (![CRhoWKURLProtocol canInitWithRequest:[self request]]) {
|
121
|
+
// extern URL !
|
122
|
+
if (is_net_trace()) {
|
123
|
+
RAWTRACE2("$NetWKRequestProcess$ CRhoWKURLProtocol %s :: startLoading EXTERNAL REQUEST: { %s }", [self selfIDstring], [CRhoWKURLProtocol requestInfo:[self request]]);
|
124
|
+
}
|
125
|
+
|
126
|
+
NSData* __block _data = nil;
|
127
|
+
NSURLResponse* __block _response = nil;
|
128
|
+
NSError* __block _error = nil;
|
129
|
+
|
130
|
+
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
|
131
|
+
[[[NSURLSession sharedSession] dataTaskWithRequest:[self request] completionHandler:^(NSData * data, NSURLResponse * response, NSError * error) {
|
132
|
+
_data = [data retain];
|
133
|
+
_response = [response retain];
|
134
|
+
_error = [error retain];
|
135
|
+
dispatch_semaphore_signal(semaphore);
|
136
|
+
if (is_net_trace()) {
|
137
|
+
RAWTRACE2("$NetWKRequestProcess$ CRhoWKURLProtocol %s :: startLoading EXTERNAL REQUEST get response in thread: { %s }", [self selfIDstring], [CRhoWKURLProtocol responseHttpInfo:_response]);
|
138
|
+
}
|
139
|
+
}] resume];
|
140
|
+
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
|
141
|
+
|
142
|
+
// check for error
|
143
|
+
if (_error != nil) {
|
144
|
+
[self informAboutError:_error];
|
145
|
+
return;
|
146
|
+
}
|
147
|
+
|
148
|
+
NSInteger _statusCode = 0;
|
149
|
+
|
150
|
+
NSHTTPURLResponse *_httpResponse = nil;
|
151
|
+
if ([_response isKindOfClass:[NSHTTPURLResponse class]]) {
|
152
|
+
_httpResponse = (NSHTTPURLResponse*)_response;
|
153
|
+
_statusCode = _httpResponse.statusCode;
|
154
|
+
|
155
|
+
if (is_net_trace()) {
|
156
|
+
RAWTRACE2("$NetWKRequestProcess$ CRhoWKURLProtocol %s :: startLoading EXTERNAL RESPONSE: { %s }", [self selfIDstring], [CRhoWKURLProtocol responseHttpInfo:_httpResponse]);
|
157
|
+
}
|
158
|
+
}
|
159
|
+
// check for redirect
|
160
|
+
if (((_statusCode == 301) || (_statusCode == 302) || (_statusCode == 303) || (_statusCode == 307) || (_statusCode == 308)) && (_httpResponse != nil) ) {
|
161
|
+
|
162
|
+
NSDictionary* _headers = [_httpResponse allHeaderFields];
|
163
|
+
|
164
|
+
NSString* loc = [_headers objectForKey:@"location"];
|
165
|
+
if (loc == nil) {
|
166
|
+
loc = [_headers objectForKey:@"Location"];
|
167
|
+
}
|
168
|
+
if (loc != nil) {
|
169
|
+
NSString* escaped = [loc stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
170
|
+
NSURL* _url = [NSURL URLWithString:escaped];
|
171
|
+
|
172
|
+
NSMutableURLRequest* _redirReq = [NSMutableURLRequest requestWithURL:_url];
|
173
|
+
|
174
|
+
// clone headers from original request to redirect request
|
175
|
+
NSDictionary* _headers = [[self request] allHTTPHeaderFields];
|
176
|
+
for (NSString* key in _headers) {
|
177
|
+
NSString* value = [_headers objectForKey:key];
|
178
|
+
[_redirReq setValue:value forHTTPHeaderField:key];
|
179
|
+
}
|
180
|
+
|
181
|
+
[self informAboutRedirect:_httpResponse redirectRequest:_redirReq];
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
return;
|
186
|
+
}
|
187
|
+
}
|
188
|
+
|
189
|
+
// other answer
|
190
|
+
[self informAboutResponse:_response data:_data];
|
191
|
+
|
192
|
+
[_data release];
|
193
|
+
[_response release];
|
194
|
+
[_error release];
|
195
|
+
|
196
|
+
return;
|
197
|
+
}
|
198
|
+
|
199
|
+
|
200
|
+
[self processCommonAPIrequest:theUrl];
|
201
|
+
|
202
|
+
[self startLoadingInThread];
|
203
|
+
}
|
204
|
+
|
205
|
+
|
206
|
+
- (void)stopLoading
|
207
|
+
{
|
208
|
+
mUrlTask = nil;
|
209
|
+
self.isStopped = YES;
|
210
|
+
if (is_net_trace()) {
|
211
|
+
RAWTRACE1("$NetWKRequestProcess$ CRhoWKURLProtocol %s :: stopLoading()", [self selfIDstring]);
|
212
|
+
}
|
213
|
+
|
214
|
+
}
|
215
|
+
|
216
|
+
- (NSURLRequest*) request {
|
217
|
+
if (self.mRedirectRequest !=nil) {
|
218
|
+
return self.mRedirectRequest;
|
219
|
+
}
|
220
|
+
return [mUrlTask request];
|
221
|
+
}
|
222
|
+
|
223
|
+
|
224
|
+
- (void)webView:(WKWebView *)webView startURLSchemeTask:(id <WKURLSchemeTask>)urlSchemeTask {
|
225
|
+
mUrlTask = urlSchemeTask;
|
226
|
+
self.isStopped = NO;
|
227
|
+
self.mRedirectRequest = nil;
|
228
|
+
[self startLoading];
|
229
|
+
}
|
230
|
+
|
231
|
+
- (void)webView:(WKWebView *)webView stopURLSchemeTask:(id <WKURLSchemeTask>)urlSchemeTask {
|
232
|
+
[self stopLoading];
|
233
|
+
}
|
234
|
+
|
235
|
+
|
236
|
+
+ (BOOL)requestIsCacheEquivalent:(NSURLRequest*)requestA toRequest:(NSURLRequest*)requestB
|
237
|
+
{
|
238
|
+
return NO;
|
239
|
+
}
|
240
|
+
|
241
|
+
@synthesize mRedirectRequest;
|
242
|
+
|
243
|
+
|
244
|
+
@end
|
245
|
+
|
246
|
+
|