You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by er...@apache.org on 2020/03/09 13:23:42 UTC
[cordova-ios] branch master updated: breaking (UserAgent): Drop
CDVUserAgentUtil and Implement for WKWebView (#801)
This is an automated email from the ASF dual-hosted git repository.
erisu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-ios.git
The following commit(s) were added to refs/heads/master by this push:
new 20248c1 breaking (UserAgent): Drop CDVUserAgentUtil and Implement for WKWebView (#801)
20248c1 is described below
commit 20248c196d35c9b8390dbbd2953f9bc1191b6c6d
Author: エリス <er...@users.noreply.github.com>
AuthorDate: Mon Mar 9 22:23:27 2020 +0900
breaking (UserAgent): Drop CDVUserAgentUtil and Implement for WKWebView (#801)
* breaking (CDVUserAgentUtil): delete
* feature (User-Agent): Added Support for WKWebView
---
.../Plugins/CDVWebViewEngine/CDVWebViewEngine.m | 41 +++++-
CordovaLib/Classes/Public/CDV.h | 1 -
CordovaLib/Classes/Public/CDVCommandDelegate.h | 2 -
CordovaLib/Classes/Public/CDVCommandDelegateImpl.m | 5 -
CordovaLib/Classes/Public/CDVUserAgentUtil.h | 27 ----
CordovaLib/Classes/Public/CDVUserAgentUtil.m | 156 ---------------------
CordovaLib/Classes/Public/CDVViewController.h | 18 ---
CordovaLib/Classes/Public/CDVViewController.m | 81 +++--------
CordovaLib/Cordova/Cordova.h | 1 -
CordovaLib/CordovaLib.xcodeproj/project.pbxproj | 12 --
10 files changed, 53 insertions(+), 291 deletions(-)
diff --git a/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.m b/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.m
index 8c97c70..e7e4f05 100644
--- a/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.m
+++ b/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.m
@@ -108,6 +108,32 @@
}
configuration.allowsAirPlayForMediaPlayback = allowsAirPlayForMediaPlayback;
+ /*
+ * Sets Custom User Agents
+ * - (Default) "userAgent" is set the the clean user agent.
+ * E.g.
+ * UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
+ *
+ * - If "OverrideUserAgent" is set, it will overwrite the entire "userAgent" value. The "AppendUserAgent" will be iggnored if set.
+ * Notice: The override logic is handled in the "pluginInitialize" method.
+ * E.g.
+ * OverrideUserAgent = "foobar"
+ * UserAgent = "foobar"
+ *
+ * - If "AppendUserAgent" is set and "OverrideUserAgent" is not set, the user defined "AppendUserAgent" will be appended to the "userAgent"
+ * E.g.
+ * AppendUserAgent = "foobar"
+ * UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 foobar"
+ */
+ NSString *userAgent = configuration.applicationNameForUserAgent;
+ if (
+ [settings cordovaSettingForKey:@"OverrideUserAgent"] == nil &&
+ [settings cordovaSettingForKey:@"AppendUserAgent"] != nil
+ ) {
+ userAgent = [NSString stringWithFormat:@"%@ %@", userAgent, [settings cordovaSettingForKey:@"AppendUserAgent"]];
+ }
+ configuration.applicationNameForUserAgent = userAgent;
+
return configuration;
}
@@ -149,9 +175,16 @@
// re-create WKWebView, since we need to update configuration
WKWebView* wkWebView = [[WKWebView alloc] initWithFrame:self.engineWebView.frame configuration:configuration];
wkWebView.UIDelegate = self.uiDelegate;
- self.engineWebView = wkWebView;
- wkWebView.customUserAgent = vc.userAgent;
+ /*
+ * This is where the "OverrideUserAgent" is handled. This will replace the entire UserAgent
+ * with the user defined custom UserAgent.
+ */
+ if ([settings cordovaSettingForKey:@"OverrideUserAgent"] != nil) {
+ wkWebView.customUserAgent = [settings cordovaSettingForKey:@"OverrideUserAgent"];
+ }
+
+ self.engineWebView = wkWebView;
if ([self.viewController conformsToProtocol:@protocol(WKUIDelegate)]) {
wkWebView.UIDelegate = (id <WKUIDelegate>)self.viewController;
@@ -425,9 +458,6 @@ static void * KVOContext = &KVOContext;
- (void)webView:(WKWebView*)webView didFinishNavigation:(WKNavigation*)navigation
{
- CDVViewController* vc = (CDVViewController*)self.viewController;
- [CDVUserAgentUtil releaseLock:vc.userAgentLockToken];
-
[[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:CDVPageDidLoadNotification object:webView]];
}
@@ -439,7 +469,6 @@ static void * KVOContext = &KVOContext;
- (void)webView:(WKWebView*)theWebView didFailNavigation:(WKNavigation*)navigation withError:(NSError*)error
{
CDVViewController* vc = (CDVViewController*)self.viewController;
- [CDVUserAgentUtil releaseLock:vc.userAgentLockToken];
NSString* message = [NSString stringWithFormat:@"Failed to load webpage with error: %@", [error localizedDescription]];
NSLog(@"%@", message);
diff --git a/CordovaLib/Classes/Public/CDV.h b/CordovaLib/Classes/Public/CDV.h
index 3f22df1..8706ef4 100644
--- a/CordovaLib/Classes/Public/CDV.h
+++ b/CordovaLib/Classes/Public/CDV.h
@@ -28,4 +28,3 @@
#import "CDVWhitelist.h"
#import "CDVScreenOrientationDelegate.h"
#import "CDVTimer.h"
-#import "CDVUserAgentUtil.h"
diff --git a/CordovaLib/Classes/Public/CDVCommandDelegate.h b/CordovaLib/Classes/Public/CDVCommandDelegate.h
index c0ece71..ac82727 100644
--- a/CordovaLib/Classes/Public/CDVCommandDelegate.h
+++ b/CordovaLib/Classes/Public/CDVCommandDelegate.h
@@ -45,7 +45,5 @@ typedef NSURL* (^ UrlTransformerBlock)(NSURL*);
- (void)evalJs:(NSString*)js scheduledOnRunLoop:(BOOL)scheduledOnRunLoop;
// Runs the given block on a background thread using a shared thread-pool.
- (void)runInBackground:(void (^)(void))block;
-// Returns the User-Agent of the associated WKWebView.
-- (NSString*)userAgent;
@end
diff --git a/CordovaLib/Classes/Public/CDVCommandDelegateImpl.m b/CordovaLib/Classes/Public/CDVCommandDelegateImpl.m
index d315072..649d30d 100644
--- a/CordovaLib/Classes/Public/CDVCommandDelegateImpl.m
+++ b/CordovaLib/Classes/Public/CDVCommandDelegateImpl.m
@@ -173,11 +173,6 @@
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block);
}
-- (NSString*)userAgent
-{
- return [_viewController userAgent];
-}
-
- (NSDictionary*)settings
{
return _viewController.settings;
diff --git a/CordovaLib/Classes/Public/CDVUserAgentUtil.h b/CordovaLib/Classes/Public/CDVUserAgentUtil.h
deleted file mode 100644
index 4de382f..0000000
--- a/CordovaLib/Classes/Public/CDVUserAgentUtil.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <Foundation/Foundation.h>
-
-@interface CDVUserAgentUtil : NSObject
-+ (NSString*)originalUserAgent;
-+ (void)acquireLock:(void (^)(NSInteger lockToken))block;
-+ (void)releaseLock:(NSInteger*)lockToken;
-+ (void)setUserAgent:(NSString*)value lockToken:(NSInteger)lockToken;
-@end
diff --git a/CordovaLib/Classes/Public/CDVUserAgentUtil.m b/CordovaLib/Classes/Public/CDVUserAgentUtil.m
deleted file mode 100644
index 1968a21..0000000
--- a/CordovaLib/Classes/Public/CDVUserAgentUtil.m
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "CDVUserAgentUtil.h"
-
-#import <UIKit/UIKit.h>
-
-// #define VerboseLog NSLog
-#define VerboseLog(...) do {} while (0)
-
-static NSString* const kCdvUserAgentKey = @"Cordova-User-Agent";
-static NSString* const kCdvUserAgentVersionKey = @"Cordova-User-Agent-Version";
-
-static NSString* gOriginalUserAgent = nil;
-static NSInteger gNextLockToken = 0;
-static NSInteger gCurrentLockToken = 0;
-static NSMutableArray* gPendingSetUserAgentBlocks = nil;
-
-#import <WebKit/WebKit.h>
-
-@interface WKWebView(SynchronousEvaluateJavaScript)
-- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
-@end
-
-@implementation WKWebView(SynchronousEvaluateJavaScript)
-
-- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
-{
- __block NSString *resultString = nil;
- __block BOOL finished = NO;
-
- [self evaluateJavaScript:script completionHandler:^(id result, NSError *error) {
- if (error == nil) {
- if (result != nil) {
- resultString = [NSString stringWithFormat:@"%@", result];
- }
- } else {
- NSLog(@"evaluateJavaScript error : %@", error.localizedDescription);
- }
- finished = YES;
- }];
-
- while (!finished) {
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
- }
-
- return resultString;
-}
-@end
-
-@implementation CDVUserAgentUtil
-
-+ (NSString*)originalUserAgent
-{
- if (gOriginalUserAgent == nil) {
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppLocaleDidChange:)
- name:NSCurrentLocaleDidChangeNotification object:nil];
-
- NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
- NSString* systemVersion = [[UIDevice currentDevice] systemVersion];
- NSString* localeStr = [[NSLocale currentLocale] localeIdentifier];
- // Record the model since simulator can change it without re-install (CB-5420).
- NSString* model = [UIDevice currentDevice].model;
- // Record the version of the app so that we can bust the cache when it changes (CB-10078)
- NSString* appVersion = [[NSBundle mainBundle] infoDictionary][@"CFBundleVersion"];
- NSString* systemAndLocale = [NSString stringWithFormat:@"%@ %@ %@ %@", appVersion, model, systemVersion, localeStr];
-
- NSString* cordovaUserAgentVersion = [userDefaults stringForKey:kCdvUserAgentVersionKey];
- gOriginalUserAgent = [userDefaults stringForKey:kCdvUserAgentKey];
- BOOL cachedValueIsOld = ![systemAndLocale isEqualToString:cordovaUserAgentVersion];
-
- if ((gOriginalUserAgent == nil) || cachedValueIsOld) {
- WKWebView* sampleWebView = [[WKWebView alloc] initWithFrame:CGRectZero];
- gOriginalUserAgent = [sampleWebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
-
- [userDefaults setObject:gOriginalUserAgent forKey:kCdvUserAgentKey];
- [userDefaults setObject:systemAndLocale forKey:kCdvUserAgentVersionKey];
-
- [userDefaults synchronize];
- }
- }
- return gOriginalUserAgent;
-}
-
-+ (void)onAppLocaleDidChange:(NSNotification*)notification
-{
- // TODO: We should figure out how to update the user-agent of existing WKWebViews when this happens.
- // Maybe use the PDF bug (noted in setUserAgent:).
- gOriginalUserAgent = nil;
-}
-
-+ (void)acquireLock:(void (^)(NSInteger lockToken))block
-{
- if (gCurrentLockToken == 0) {
- gCurrentLockToken = ++gNextLockToken;
- VerboseLog(@"Gave lock %d", gCurrentLockToken);
- block(gCurrentLockToken);
- } else {
- if (gPendingSetUserAgentBlocks == nil) {
- gPendingSetUserAgentBlocks = [[NSMutableArray alloc] initWithCapacity:4];
- }
- VerboseLog(@"Waiting for lock");
- [gPendingSetUserAgentBlocks addObject:block];
- }
-}
-
-+ (void)releaseLock:(NSInteger*)lockToken
-{
- if (lockToken == nil || *lockToken == 0) {
- return;
- }
- NSAssert(gCurrentLockToken == *lockToken, @"Got token %ld, expected %ld", (long)*lockToken, (long)gCurrentLockToken);
-
- VerboseLog(@"Released lock %d", *lockToken);
- if ([gPendingSetUserAgentBlocks count] > 0) {
- void (^block)(NSInteger lockToken) = [gPendingSetUserAgentBlocks objectAtIndex:0];
- [gPendingSetUserAgentBlocks removeObjectAtIndex:0];
- gCurrentLockToken = ++gNextLockToken;
- NSLog(@"Gave lock %ld", (long)gCurrentLockToken);
- block(gCurrentLockToken);
- } else {
- gCurrentLockToken = 0;
- }
- *lockToken = 0;
-}
-
-+ (void)setUserAgent:(NSString*)value lockToken:(NSInteger)lockToken
-{
- NSAssert(gCurrentLockToken == lockToken, @"Got token %ld, expected %ld", (long)lockToken, (long)gCurrentLockToken);
- VerboseLog(@"User-Agent set to: %@", value);
-
- // Setting the UserAgent must occur before a WKWebView is instantiated.
- // It is read per instantiation, so it does not affect previously created views.
- // Except! When a PDF is loaded, all currently active WKWebViews reload their
- // User-Agent from the NSUserDefaults some time after the DidFinishLoad of the PDF bah!
- NSDictionary* dict = [[NSDictionary alloc] initWithObjectsAndKeys:value, @"UserAgent", nil];
- [[NSUserDefaults standardUserDefaults] registerDefaults:dict];
-}
-
-@end
diff --git a/CordovaLib/Classes/Public/CDVViewController.h b/CordovaLib/Classes/Public/CDVViewController.h
index 079fe90..8586386 100644
--- a/CordovaLib/Classes/Public/CDVViewController.h
+++ b/CordovaLib/Classes/Public/CDVViewController.h
@@ -34,7 +34,6 @@
id <CDVCommandDelegate> _commandDelegate;
@protected
CDVCommandQueue* _commandQueue;
- NSString* _userAgent;
}
@property (nonatomic, readonly, weak) IBOutlet UIView* webView;
@@ -53,28 +52,11 @@
@property (nonatomic, readonly, strong) id <CDVCommandDelegate> commandDelegate;
/**
- The complete user agent that Cordova will use when sending web requests.
- */
-@property (nonatomic, readonly) NSString* userAgent;
-
-/**
- The base user agent data that Cordova will use to build its user agent. If this
- property isn't set, Cordova will use the standard web view user agent as its
- base.
- */
-@property (nonatomic, readwrite, copy) NSString* baseUserAgent;
-
-/**
Takes/Gives an array of UIInterfaceOrientation (int) objects
ex. UIInterfaceOrientationPortrait
*/
@property (nonatomic, readwrite, strong) NSArray* supportedOrientations;
-/**
- The address of the lock token used for controlling access to setting the user-agent
- */
-@property (nonatomic, readonly) NSInteger* userAgentLockToken;
-
- (UIView*)newCordovaViewWithFrame:(CGRect)bounds;
- (NSString*)appURLScheme;
diff --git a/CordovaLib/Classes/Public/CDVViewController.m b/CordovaLib/Classes/Public/CDVViewController.m
index 152ffdc..1b1f274 100644
--- a/CordovaLib/Classes/Public/CDVViewController.m
+++ b/CordovaLib/Classes/Public/CDVViewController.m
@@ -22,15 +22,12 @@
#import "CDVPlugin+Private.h"
#import "CDVWebViewUIDelegate.h"
#import "CDVConfigParser.h"
-#import "CDVUserAgentUtil.h"
#import <AVFoundation/AVFoundation.h>
#import "NSDictionary+CordovaPreferences.h"
#import "CDVCommandDelegateImpl.h"
#import <Foundation/NSCharacterSet.h>
-@interface CDVViewController () {
- NSInteger _userAgentLockToken;
-}
+@interface CDVViewController () { }
@property (nonatomic, readwrite, strong) NSXMLParser* configParser;
@property (nonatomic, readwrite, strong) NSMutableDictionary* settings;
@@ -50,7 +47,7 @@
@synthesize supportedOrientations;
@synthesize pluginObjects, pluginsMap, startupPluginNames;
@synthesize configParser, settings;
-@synthesize wwwFolderName, startPage, initialized, openURL, baseUserAgent;
+@synthesize wwwFolderName, startPage, initialized, openURL;
@synthesize commandDelegate = _commandDelegate;
@synthesize commandQueue = _commandQueue;
@synthesize webViewEngine = _webViewEngine;
@@ -306,30 +303,24 @@
// /////////////////
NSURL* appURL = [self appUrl];
- __weak __typeof__(self) weakSelf = self;
-
- [CDVUserAgentUtil acquireLock:^(NSInteger lockToken) {
- // Fix the memory leak caused by the strong reference.
- [weakSelf setLockToken:lockToken];
- if (appURL) {
- NSURLRequest* appReq = [NSURLRequest requestWithURL:appURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];
- [self.webViewEngine loadRequest:appReq];
+
+ if (appURL) {
+ NSURLRequest* appReq = [NSURLRequest requestWithURL:appURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];
+ [self.webViewEngine loadRequest:appReq];
+ } else {
+ NSString* loadErr = [NSString stringWithFormat:@"ERROR: Start Page at '%@/%@' was not found.", self.wwwFolderName, self.startPage];
+ NSLog(@"%@", loadErr);
+
+ NSURL* errorUrl = [self errorURL];
+ if (errorUrl) {
+ errorUrl = [NSURL URLWithString:[NSString stringWithFormat:@"?error=%@", [loadErr stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLPathAllowedCharacterSet]] relativeToURL:errorUrl];
+ NSLog(@"%@", [errorUrl absoluteString]);
+ [self.webViewEngine loadRequest:[NSURLRequest requestWithURL:errorUrl]];
} else {
- NSString* loadErr = [NSString stringWithFormat:@"ERROR: Start Page at '%@/%@' was not found.", self.wwwFolderName, self.startPage];
- NSLog(@"%@", loadErr);
-
- NSURL* errorUrl = [self errorURL];
- if (errorUrl) {
- errorUrl = [NSURL URLWithString:[NSString stringWithFormat:@"?error=%@", [loadErr stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLPathAllowedCharacterSet]] relativeToURL:errorUrl];
- NSLog(@"%@", [errorUrl absoluteString]);
- [self.webViewEngine loadRequest:[NSURLRequest requestWithURL:errorUrl]];
- } else {
- NSString* html = [NSString stringWithFormat:@"<html><body> %@ </body></html>", loadErr];
- [self.webViewEngine loadHTMLString:html baseURL:nil];
- }
+ NSString* html = [NSString stringWithFormat:@"<html><body> %@ </body></html>", loadErr];
+ [self.webViewEngine loadHTMLString:html baseURL:nil];
}
- }];
-
+ }
// /////////////////
NSString* bgColorString = [self.settings cordovaSettingForKey:@"BackgroundColor"];
@@ -337,12 +328,6 @@
[self.webView setBackgroundColor:bgColor];
}
-- (void)setLockToken:(NSInteger)lockToken
-{
- _userAgentLockToken = lockToken;
- [CDVUserAgentUtil setUserAgent:self.userAgent lockToken:lockToken];
-}
-
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
@@ -525,30 +510,6 @@
return self.webViewEngine.engineWebView;
}
-- (NSString*)userAgent
-{
- if (_userAgent != nil) {
- return _userAgent;
- }
-
- NSString* localBaseUserAgent;
- if (self.baseUserAgent != nil) {
- localBaseUserAgent = self.baseUserAgent;
- } else if ([self.settings cordovaSettingForKey:@"OverrideUserAgent"] != nil) {
- localBaseUserAgent = [self.settings cordovaSettingForKey:@"OverrideUserAgent"];
- } else {
- localBaseUserAgent = [CDVUserAgentUtil originalUserAgent];
- }
- NSString* appendUserAgent = [self.settings cordovaSettingForKey:@"AppendUserAgent"];
- if (appendUserAgent) {
- _userAgent = [NSString stringWithFormat:@"%@ %@", localBaseUserAgent, appendUserAgent];
- } else {
- // Use our address as a unique number to append to the User-Agent.
- _userAgent = localBaseUserAgent;
- }
- return _userAgent;
-}
-
- (void)createGapView
{
CGRect webViewBounds = self.view.bounds;
@@ -779,7 +740,6 @@
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
- [CDVUserAgentUtil releaseLock:&_userAgentLockToken];
[_commandQueue dispose];
[[self.pluginObjects allValues] makeObjectsPerformSelector:@selector(dispose)];
@@ -789,9 +749,4 @@
self.webViewEngine = nil;
}
-- (NSInteger*)userAgentLockToken
-{
- return &_userAgentLockToken;
-}
-
@end
diff --git a/CordovaLib/Cordova/Cordova.h b/CordovaLib/Cordova/Cordova.h
index ecec02b..62675ac 100644
--- a/CordovaLib/Cordova/Cordova.h
+++ b/CordovaLib/Cordova/Cordova.h
@@ -47,4 +47,3 @@ FOUNDATION_EXPORT const unsigned char CordovaVersionString[];
#import <Cordova/CDVWhitelist.h>
#import <Cordova/CDVScreenOrientationDelegate.h>
#import <Cordova/CDVTimer.h>
-#import <Cordova/CDVUserAgentUtil.h>
diff --git a/CordovaLib/CordovaLib.xcodeproj/project.pbxproj b/CordovaLib/CordovaLib.xcodeproj/project.pbxproj
index 7176b09..f19717e 100644
--- a/CordovaLib/CordovaLib.xcodeproj/project.pbxproj
+++ b/CordovaLib/CordovaLib.xcodeproj/project.pbxproj
@@ -49,8 +49,6 @@
7ED95D491AB9029B008C4574 /* CDVScreenOrientationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D231AB9029B008C4574 /* CDVScreenOrientationDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
7ED95D4A1AB9029B008C4574 /* CDVTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D241AB9029B008C4574 /* CDVTimer.h */; settings = {ATTRIBUTES = (Public, ); }; };
7ED95D4B1AB9029B008C4574 /* CDVTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED95D251AB9029B008C4574 /* CDVTimer.m */; };
- 7ED95D4E1AB9029B008C4574 /* CDVUserAgentUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D281AB9029B008C4574 /* CDVUserAgentUtil.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 7ED95D4F1AB9029B008C4574 /* CDVUserAgentUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED95D291AB9029B008C4574 /* CDVUserAgentUtil.m */; };
7ED95D501AB9029B008C4574 /* CDVViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D2A1AB9029B008C4574 /* CDVViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
7ED95D511AB9029B008C4574 /* CDVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED95D2B1AB9029B008C4574 /* CDVViewController.m */; };
7ED95D521AB9029B008C4574 /* CDVWebViewEngineProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D2C1AB9029B008C4574 /* CDVWebViewEngineProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -69,7 +67,6 @@
9052DE772150D040008E83D4 /* CDVPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED95D201AB9029B008C4574 /* CDVPlugin.m */; };
9052DE782150D040008E83D4 /* CDVPluginResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED95D221AB9029B008C4574 /* CDVPluginResult.m */; };
9052DE792150D040008E83D4 /* CDVTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED95D251AB9029B008C4574 /* CDVTimer.m */; };
- 9052DE7B2150D040008E83D4 /* CDVUserAgentUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED95D291AB9029B008C4574 /* CDVUserAgentUtil.m */; };
9052DE7C2150D040008E83D4 /* CDVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED95D2B1AB9029B008C4574 /* CDVViewController.m */; };
9052DE7D2150D040008E83D4 /* CDVWhitelist.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED95D2E1AB9029B008C4574 /* CDVWhitelist.m */; };
9052DE7E2150D040008E83D4 /* NSDictionary+CordovaPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 7ED95D321AB9029B008C4574 /* NSDictionary+CordovaPreferences.m */; };
@@ -103,7 +100,6 @@
C0C01EC61E39131A0056E6CB /* CDVPluginResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D211AB9029B008C4574 /* CDVPluginResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
C0C01EC71E39131A0056E6CB /* CDVScreenOrientationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D231AB9029B008C4574 /* CDVScreenOrientationDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
C0C01EC81E39131A0056E6CB /* CDVTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D241AB9029B008C4574 /* CDVTimer.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C0C01ECA1E39131A0056E6CB /* CDVUserAgentUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D281AB9029B008C4574 /* CDVUserAgentUtil.h */; settings = {ATTRIBUTES = (Public, ); }; };
C0C01ECB1E39131A0056E6CB /* CDVViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D2A1AB9029B008C4574 /* CDVViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
C0C01ECC1E39131A0056E6CB /* CDVWebViewEngineProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D2C1AB9029B008C4574 /* CDVWebViewEngineProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
C0C01ECD1E39131A0056E6CB /* CDVWhitelist.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ED95D2D1AB9029B008C4574 /* CDVWhitelist.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -154,8 +150,6 @@
7ED95D231AB9029B008C4574 /* CDVScreenOrientationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDVScreenOrientationDelegate.h; sourceTree = "<group>"; };
7ED95D241AB9029B008C4574 /* CDVTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDVTimer.h; sourceTree = "<group>"; };
7ED95D251AB9029B008C4574 /* CDVTimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDVTimer.m; sourceTree = "<group>"; };
- 7ED95D281AB9029B008C4574 /* CDVUserAgentUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDVUserAgentUtil.h; sourceTree = "<group>"; };
- 7ED95D291AB9029B008C4574 /* CDVUserAgentUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDVUserAgentUtil.m; sourceTree = "<group>"; };
7ED95D2A1AB9029B008C4574 /* CDVViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDVViewController.h; sourceTree = "<group>"; };
7ED95D2B1AB9029B008C4574 /* CDVViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDVViewController.m; sourceTree = "<group>"; };
7ED95D2C1AB9029B008C4574 /* CDVWebViewEngineProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDVWebViewEngineProtocol.h; sourceTree = "<group>"; };
@@ -302,8 +296,6 @@
7ED95D231AB9029B008C4574 /* CDVScreenOrientationDelegate.h */,
7ED95D241AB9029B008C4574 /* CDVTimer.h */,
7ED95D251AB9029B008C4574 /* CDVTimer.m */,
- 7ED95D281AB9029B008C4574 /* CDVUserAgentUtil.h */,
- 7ED95D291AB9029B008C4574 /* CDVUserAgentUtil.m */,
7ED95D2A1AB9029B008C4574 /* CDVViewController.h */,
7ED95D2B1AB9029B008C4574 /* CDVViewController.m */,
7ED95D2C1AB9029B008C4574 /* CDVWebViewEngineProtocol.h */,
@@ -360,7 +352,6 @@
C0C01EC61E39131A0056E6CB /* CDVPluginResult.h in Headers */,
C0C01EC71E39131A0056E6CB /* CDVScreenOrientationDelegate.h in Headers */,
C0C01EC81E39131A0056E6CB /* CDVTimer.h in Headers */,
- C0C01ECA1E39131A0056E6CB /* CDVUserAgentUtil.h in Headers */,
C0C01ECB1E39131A0056E6CB /* CDVViewController.h in Headers */,
C0C01ECC1E39131A0056E6CB /* CDVWebViewEngineProtocol.h in Headers */,
C0C01ECD1E39131A0056E6CB /* CDVWhitelist.h in Headers */,
@@ -398,7 +389,6 @@
7ED95D491AB9029B008C4574 /* CDVScreenOrientationDelegate.h in Headers */,
4E23F8FC23E16E96006CD852 /* CDVWebViewUIDelegate.h in Headers */,
7ED95D4A1AB9029B008C4574 /* CDVTimer.h in Headers */,
- 7ED95D4E1AB9029B008C4574 /* CDVUserAgentUtil.h in Headers */,
7ED95D501AB9029B008C4574 /* CDVViewController.h in Headers */,
7ED95D521AB9029B008C4574 /* CDVWebViewEngineProtocol.h in Headers */,
4E23F90023E16E96006CD852 /* CDVWebViewEngine.h in Headers */,
@@ -502,7 +492,6 @@
9052DE772150D040008E83D4 /* CDVPlugin.m in Sources */,
9052DE782150D040008E83D4 /* CDVPluginResult.m in Sources */,
9052DE792150D040008E83D4 /* CDVTimer.m in Sources */,
- 9052DE7B2150D040008E83D4 /* CDVUserAgentUtil.m in Sources */,
9052DE7C2150D040008E83D4 /* CDVViewController.m in Sources */,
9052DE7D2150D040008E83D4 /* CDVWhitelist.m in Sources */,
9052DE7E2150D040008E83D4 /* NSDictionary+CordovaPreferences.m in Sources */,
@@ -531,7 +520,6 @@
7ED95D4B1AB9029B008C4574 /* CDVTimer.m in Sources */,
4E23F8FE23E16E96006CD852 /* CDVWebViewEngine.m in Sources */,
4E23F8FB23E16E96006CD852 /* CDVWebViewProcessPoolFactory.m in Sources */,
- 7ED95D4F1AB9029B008C4574 /* CDVUserAgentUtil.m in Sources */,
7ED95D511AB9029B008C4574 /* CDVViewController.m in Sources */,
7ED95D541AB9029B008C4574 /* CDVWhitelist.m in Sources */,
7ED95D581AB9029B008C4574 /* NSDictionary+CordovaPreferences.m in Sources */,
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org