Changeset 205295 in webkit
- Timestamp:
- Sep 1, 2016 10:32:32 AM (8 years ago)
- Location:
- trunk/Tools
- Files:
-
- 9 added
- 1 deleted
- 6 edited
- 2 copied
- 7 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r205281 r205295 1 2016-08-31 Jer Noble <jer.noble@apple.com> 2 3 Refactor MobileMiniBrowser into an application framework to allow external XCTesting 4 https://bugs.webkit.org/show_bug.cgi?id=161462 5 6 Reviewed by Eric Carlson. 7 8 XCTest targets need to be in the same project as the application which they're testing. To facilitate 9 having external projects with XCTest targets, move the application's implementation into a framework 10 that can be included with a bare-bones application shell for testing. 11 12 Simultaneously, add the ability to load files from within the new framework's bundle by using a 13 'bundle:/' URL scheme. Update the tests to use this new bundle URL and remove the dependency on 14 an external server for testing. 15 16 * MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj: 17 * MobileMiniBrowser/MobileMiniBrowser/Base.lproj/LaunchScreen.storyboard: 18 * MobileMiniBrowser/MobileMiniBrowser/Info.plist: 19 * MobileMiniBrowser/MobileMiniBrowser/main.m: 20 * MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.h. 21 * MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.m. 22 (-[AppDelegate application:didFinishLaunchingWithOptions:]): Manually instantiate the main view 23 controller from the framework's bundle. 24 * MobileMiniBrowser/MobileMiniBrowserFramework/Assets.xcassets/AppIcon.appiconset/Contents.json: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/Assets.xcassets/AppIcon.appiconset/Contents.json. 25 * MobileMiniBrowser/MobileMiniBrowserFramework/Base.lproj/Main.storyboard: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/Main.storyboard. 26 * MobileMiniBrowser/MobileMiniBrowserFramework/Info.plist: Added. 27 * MobileMiniBrowser/MobileMiniBrowserFramework/MobileMiniBrowser.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/AppDelegate.h. 28 * MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.h. 29 * MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/TabViewController.m. 30 * MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.h: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.h. 31 * MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m: Renamed from Tools/MobileMiniBrowser/MobileMiniBrowser/WebViewController.m. 32 (+[NSURL __bundleURLForFileURL:bundle:]): Add utility method. 33 (+[NSURL __fileURLForBundleURL:bundle:]): Ditto. 34 (-[WebViewController navigateTo:]): Support loading "bundle:/" URLs which are really just "file:" URLs 35 pointing to the framework's resources directory. 36 (-[WebViewController observeValueForKeyPath:ofObject:change:context:]): Ditto. 37 * MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m: 38 (-[MobileMiniBrowserUITests testBasicVideoPlayback]): 39 1 40 2016-09-01 Carlos Garcia Campos <cgarcia@igalia.com> 2 41 -
trunk/Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj
r205074 r205295 9 9 /* Begin PBXBuildFile section */ 10 10 CD1DAF971D709E3600017CF0 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAF961D709E3600017CF0 /* main.m */; }; 11 CD1DAF9A1D709E3600017CF0 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAF991D709E3600017CF0 /* AppDelegate.m */; };12 CD1DAFA01D709E3600017CF0 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CD1DAF9E1D709E3600017CF0 /* Main.storyboard */; };13 CD1DAFA21D709E3600017CF0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CD1DAFA11D709E3600017CF0 /* Assets.xcassets */; };14 11 CD1DAFA51D709E3600017CF0 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CD1DAFA31D709E3600017CF0 /* LaunchScreen.storyboard */; }; 15 12 CD1DAFB01D709E3600017CF0 /* MobileMiniBrowserUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAFAF1D709E3600017CF0 /* MobileMiniBrowserUITests.m */; }; 16 CD1DAFBE1D709EF200017CF0 /* TabViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAFBB1D709EF200017CF0 /* TabViewController.m */; };17 CD1DAFBF1D709EF200017CF0 /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAFBD1D709EF200017CF0 /* WebViewController.m */; };18 13 CD1DAFC21D70E12D00017CF0 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD1DAFC11D70E12D00017CF0 /* WebKit.framework */; }; 14 CD498B421D76348000681FA7 /* MobileMiniBrowser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */; }; 15 CD498B431D76348000681FA7 /* MobileMiniBrowser.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 16 CD498B4A1D763D4800681FA7 /* MobileMiniBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = CD498B481D7634C700681FA7 /* MobileMiniBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17 CD498B4B1D763D7100681FA7 /* TabViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAFBB1D709EF200017CF0 /* TabViewController.m */; }; 18 CD498B4C1D763D7100681FA7 /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAFBD1D709EF200017CF0 /* WebViewController.m */; }; 19 CD498B4D1D763D7100681FA7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CD1DAF991D709E3600017CF0 /* AppDelegate.m */; }; 20 CD498B4E1D763D7600681FA7 /* TabViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CD1DAFBA1D709EF200017CF0 /* TabViewController.h */; }; 21 CD498B4F1D763D7600681FA7 /* WebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CD1DAFBC1D709EF200017CF0 /* WebViewController.h */; }; 22 CD498B501D763D7600681FA7 /* AppDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD1DAF981D709E3600017CF0 /* AppDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 23 CD498B511D763D7F00681FA7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CD1DAF9E1D709E3600017CF0 /* Main.storyboard */; }; 24 CD498B521D763D8800681FA7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CD1DAFA11D709E3600017CF0 /* Assets.xcassets */; }; 25 CD498B531D763D9300681FA7 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = CD498B471D7634C700681FA7 /* Info.plist */; }; 26 CDA985191D76483400EBC399 /* test.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = CDA985151D76477900EBC399 /* test.mp4 */; }; 27 CDA9851A1D76483400EBC399 /* index.html in Resources */ = {isa = PBXBuildFile; fileRef = CDA985131D76474100EBC399 /* index.html */; }; 28 CDA9851B1D76483400EBC399 /* looping.html in Resources */ = {isa = PBXBuildFile; fileRef = CDA985171D7647CD00EBC399 /* looping.html */; }; 19 29 /* End PBXBuildFile section */ 20 30 … … 27 37 remoteInfo = MobileMiniBrowser; 28 38 }; 39 CD498B401D76348000681FA7 /* PBXContainerItemProxy */ = { 40 isa = PBXContainerItemProxy; 41 containerPortal = CD1DAF8A1D709E3600017CF0 /* Project object */; 42 proxyType = 1; 43 remoteGlobalIDString = CD498B3A1D76348000681FA7; 44 remoteInfo = MobileMiniBrowser; 45 }; 29 46 /* End PBXContainerItemProxy section */ 47 48 /* Begin PBXCopyFilesBuildPhase section */ 49 CD498B231D76341700681FA7 /* Embed Frameworks */ = { 50 isa = PBXCopyFilesBuildPhase; 51 buildActionMask = 2147483647; 52 dstPath = ""; 53 dstSubfolderSpec = 10; 54 files = ( 55 CD498B431D76348000681FA7 /* MobileMiniBrowser.framework in Embed Frameworks */, 56 ); 57 name = "Embed Frameworks"; 58 runOnlyForDeploymentPostprocessing = 0; 59 }; 60 /* End PBXCopyFilesBuildPhase section */ 30 61 31 62 /* Begin PBXFileReference section */ … … 46 77 CD1DAFBD1D709EF200017CF0 /* WebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebViewController.m; sourceTree = "<group>"; }; 47 78 CD1DAFC11D70E12D00017CF0 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = "../../WebKitBuild/Debug-iphonesimulator/WebKit.framework"; sourceTree = "<group>"; }; 79 CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MobileMiniBrowser.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 80 CD498B471D7634C700681FA7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 81 CD498B481D7634C700681FA7 /* MobileMiniBrowser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobileMiniBrowser.h; sourceTree = "<group>"; }; 82 CDA985131D76474100EBC399 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = index.html; path = Resources/index.html; sourceTree = "<group>"; }; 83 CDA985151D76477900EBC399 /* test.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; name = test.mp4; path = Resources/test.mp4; sourceTree = "<group>"; }; 84 CDA985171D7647CD00EBC399 /* looping.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = looping.html; path = Resources/looping.html; sourceTree = "<group>"; }; 48 85 /* End PBXFileReference section */ 49 86 … … 53 90 buildActionMask = 2147483647; 54 91 files = ( 92 CD498B421D76348000681FA7 /* MobileMiniBrowser.framework in Frameworks */, 55 93 CD1DAFC21D70E12D00017CF0 /* WebKit.framework in Frameworks */, 56 94 ); … … 58 96 }; 59 97 CD1DAFA81D709E3600017CF0 /* Frameworks */ = { 98 isa = PBXFrameworksBuildPhase; 99 buildActionMask = 2147483647; 100 files = ( 101 ); 102 runOnlyForDeploymentPostprocessing = 0; 103 }; 104 CD498B371D76348000681FA7 /* Frameworks */ = { 60 105 isa = PBXFrameworksBuildPhase; 61 106 buildActionMask = 2147483647; … … 70 115 isa = PBXGroup; 71 116 children = ( 72 CD1DAF941D709E3600017CF0 /* MobileMiniBrowser */, 117 CD1DAF941D709E3600017CF0 /* MobileMiniBrowser App */, 118 CD498B3C1D76348000681FA7 /* MobileMiniBrowser Framework */, 73 119 CD1DAFAE1D709E3600017CF0 /* MobileMiniBrowserUITests */, 74 120 CD1DAF931D709E3600017CF0 /* Products */, … … 82 128 CD1DAF921D709E3600017CF0 /* MobileMiniBrowser.app */, 83 129 CD1DAFAB1D709E3600017CF0 /* MobileMiniBrowserUITests.xctest */, 130 CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */, 84 131 ); 85 132 name = Products; 86 133 sourceTree = "<group>"; 87 134 }; 88 CD1DAF941D709E3600017CF0 /* MobileMiniBrowser */ = {135 CD1DAF941D709E3600017CF0 /* MobileMiniBrowser App */ = { 89 136 isa = PBXGroup; 90 137 children = ( 138 CD1DAFA61D709E3600017CF0 /* Info.plist */, 139 CD1DAFA31D709E3600017CF0 /* LaunchScreen.storyboard */, 140 CD1DAF961D709E3600017CF0 /* main.m */, 141 ); 142 name = "MobileMiniBrowser App"; 143 path = MobileMiniBrowser; 144 sourceTree = "<group>"; 145 }; 146 CD1DAFAE1D709E3600017CF0 /* MobileMiniBrowserUITests */ = { 147 isa = PBXGroup; 148 children = ( 149 CD1DAFAF1D709E3600017CF0 /* MobileMiniBrowserUITests.m */, 150 CD1DAFB11D709E3600017CF0 /* Info.plist */, 151 ); 152 path = MobileMiniBrowserUITests; 153 sourceTree = "<group>"; 154 }; 155 CD1DAFC01D70E12D00017CF0 /* Frameworks */ = { 156 isa = PBXGroup; 157 children = ( 158 CD1DAFC11D70E12D00017CF0 /* WebKit.framework */, 159 ); 160 name = Frameworks; 161 sourceTree = "<group>"; 162 }; 163 CD498B3C1D76348000681FA7 /* MobileMiniBrowser Framework */ = { 164 isa = PBXGroup; 165 children = ( 166 CDA985121D76471700EBC399 /* Resources */, 167 CD1DAF981D709E3600017CF0 /* AppDelegate.h */, 168 CD1DAF991D709E3600017CF0 /* AppDelegate.m */, 169 CD1DAFA11D709E3600017CF0 /* Assets.xcassets */, 170 CD498B471D7634C700681FA7 /* Info.plist */, 171 CD1DAF9E1D709E3600017CF0 /* Main.storyboard */, 172 CD498B481D7634C700681FA7 /* MobileMiniBrowser.h */, 91 173 CD1DAFBA1D709EF200017CF0 /* TabViewController.h */, 92 174 CD1DAFBB1D709EF200017CF0 /* TabViewController.m */, 93 175 CD1DAFBC1D709EF200017CF0 /* WebViewController.h */, 94 176 CD1DAFBD1D709EF200017CF0 /* WebViewController.m */, 95 CD1DAF981D709E3600017CF0 /* AppDelegate.h */, 96 CD1DAF991D709E3600017CF0 /* AppDelegate.m */, 97 CD1DAF9E1D709E3600017CF0 /* Main.storyboard */, 98 CD1DAFA11D709E3600017CF0 /* Assets.xcassets */, 99 CD1DAFA31D709E3600017CF0 /* LaunchScreen.storyboard */, 100 CD1DAFA61D709E3600017CF0 /* Info.plist */, 101 CD1DAF951D709E3600017CF0 /* Supporting Files */, 102 ); 103 path = MobileMiniBrowser; 104 sourceTree = "<group>"; 105 }; 106 CD1DAF951D709E3600017CF0 /* Supporting Files */ = { 177 ); 178 name = "MobileMiniBrowser Framework"; 179 path = MobileMiniBrowserFramework; 180 sourceTree = SOURCE_ROOT; 181 }; 182 CDA985121D76471700EBC399 /* Resources */ = { 107 183 isa = PBXGroup; 108 184 children = ( 109 CD1DAF961D709E3600017CF0 /* main.m */, 110 ); 111 name = "Supporting Files"; 112 sourceTree = "<group>"; 113 }; 114 CD1DAFAE1D709E3600017CF0 /* MobileMiniBrowserUITests */ = { 115 isa = PBXGroup; 116 children = ( 117 CD1DAFAF1D709E3600017CF0 /* MobileMiniBrowserUITests.m */, 118 CD1DAFB11D709E3600017CF0 /* Info.plist */, 119 ); 120 path = MobileMiniBrowserUITests; 121 sourceTree = "<group>"; 122 }; 123 CD1DAFC01D70E12D00017CF0 /* Frameworks */ = { 124 isa = PBXGroup; 125 children = ( 126 CD1DAFC11D70E12D00017CF0 /* WebKit.framework */, 127 ); 128 name = Frameworks; 185 CDA985151D76477900EBC399 /* test.mp4 */, 186 CDA985131D76474100EBC399 /* index.html */, 187 CDA985171D7647CD00EBC399 /* looping.html */, 188 ); 189 name = Resources; 129 190 sourceTree = "<group>"; 130 191 }; 131 192 /* End PBXGroup section */ 193 194 /* Begin PBXHeadersBuildPhase section */ 195 CD498B381D76348000681FA7 /* Headers */ = { 196 isa = PBXHeadersBuildPhase; 197 buildActionMask = 2147483647; 198 files = ( 199 CD498B4A1D763D4800681FA7 /* MobileMiniBrowser.h in Headers */, 200 CD498B4F1D763D7600681FA7 /* WebViewController.h in Headers */, 201 CD498B4E1D763D7600681FA7 /* TabViewController.h in Headers */, 202 CD498B501D763D7600681FA7 /* AppDelegate.h in Headers */, 203 ); 204 runOnlyForDeploymentPostprocessing = 0; 205 }; 206 /* End PBXHeadersBuildPhase section */ 132 207 133 208 /* Begin PBXNativeTarget section */ … … 139 214 CD1DAF8F1D709E3600017CF0 /* Frameworks */, 140 215 CD1DAF901D709E3600017CF0 /* Resources */, 216 CD498B231D76341700681FA7 /* Embed Frameworks */, 141 217 ); 142 218 buildRules = ( 143 219 ); 144 220 dependencies = ( 221 CD498B411D76348000681FA7 /* PBXTargetDependency */, 145 222 ); 146 223 name = MobileMiniBrowser; … … 166 243 productReference = CD1DAFAB1D709E3600017CF0 /* MobileMiniBrowserUITests.xctest */; 167 244 productType = "com.apple.product-type.bundle.ui-testing"; 245 }; 246 CD498B3A1D76348000681FA7 /* MobileMiniBrowser.framework */ = { 247 isa = PBXNativeTarget; 248 buildConfigurationList = CD498B441D76348000681FA7 /* Build configuration list for PBXNativeTarget "MobileMiniBrowser.framework" */; 249 buildPhases = ( 250 CD498B361D76348000681FA7 /* Sources */, 251 CD498B371D76348000681FA7 /* Frameworks */, 252 CD498B381D76348000681FA7 /* Headers */, 253 CD498B391D76348000681FA7 /* Resources */, 254 ); 255 buildRules = ( 256 ); 257 dependencies = ( 258 ); 259 name = MobileMiniBrowser.framework; 260 productName = MobileMiniBrowser; 261 productReference = CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */; 262 productType = "com.apple.product-type.framework"; 168 263 }; 169 264 /* End PBXNativeTarget section */ … … 183 278 TestTargetID = CD1DAF911D709E3600017CF0; 184 279 }; 280 CD498B3A1D76348000681FA7 = { 281 CreatedOnToolsVersion = 8.0; 282 ProvisioningStyle = Automatic; 283 }; 185 284 }; 186 285 }; … … 200 299 CD1DAF911D709E3600017CF0 /* MobileMiniBrowser */, 201 300 CD1DAFAA1D709E3600017CF0 /* MobileMiniBrowserUITests */, 301 CD498B3A1D76348000681FA7 /* MobileMiniBrowser.framework */, 202 302 ); 203 303 }; … … 210 310 files = ( 211 311 CD1DAFA51D709E3600017CF0 /* LaunchScreen.storyboard in Resources */, 212 CD1DAFA21D709E3600017CF0 /* Assets.xcassets in Resources */,213 CD1DAFA01D709E3600017CF0 /* Main.storyboard in Resources */,214 312 ); 215 313 runOnlyForDeploymentPostprocessing = 0; … … 219 317 buildActionMask = 2147483647; 220 318 files = ( 319 ); 320 runOnlyForDeploymentPostprocessing = 0; 321 }; 322 CD498B391D76348000681FA7 /* Resources */ = { 323 isa = PBXResourcesBuildPhase; 324 buildActionMask = 2147483647; 325 files = ( 326 CDA9851A1D76483400EBC399 /* index.html in Resources */, 327 CD498B521D763D8800681FA7 /* Assets.xcassets in Resources */, 328 CD498B511D763D7F00681FA7 /* Main.storyboard in Resources */, 329 CDA9851B1D76483400EBC399 /* looping.html in Resources */, 330 CD498B531D763D9300681FA7 /* Info.plist in Resources */, 331 CDA985191D76483400EBC399 /* test.mp4 in Resources */, 221 332 ); 222 333 runOnlyForDeploymentPostprocessing = 0; … … 229 340 buildActionMask = 2147483647; 230 341 files = ( 231 CD1DAFBE1D709EF200017CF0 /* TabViewController.m in Sources */,232 CD1DAF9A1D709E3600017CF0 /* AppDelegate.m in Sources */,233 342 CD1DAF971D709E3600017CF0 /* main.m in Sources */, 234 CD1DAFBF1D709EF200017CF0 /* WebViewController.m in Sources */,235 343 ); 236 344 runOnlyForDeploymentPostprocessing = 0; … … 241 349 files = ( 242 350 CD1DAFB01D709E3600017CF0 /* MobileMiniBrowserUITests.m in Sources */, 351 ); 352 runOnlyForDeploymentPostprocessing = 0; 353 }; 354 CD498B361D76348000681FA7 /* Sources */ = { 355 isa = PBXSourcesBuildPhase; 356 buildActionMask = 2147483647; 357 files = ( 358 CD498B4B1D763D7100681FA7 /* TabViewController.m in Sources */, 359 CD498B4C1D763D7100681FA7 /* WebViewController.m in Sources */, 360 CD498B4D1D763D7100681FA7 /* AppDelegate.m in Sources */, 243 361 ); 244 362 runOnlyForDeploymentPostprocessing = 0; … … 251 369 target = CD1DAF911D709E3600017CF0 /* MobileMiniBrowser */; 252 370 targetProxy = CD1DAFAC1D709E3600017CF0 /* PBXContainerItemProxy */; 371 }; 372 CD498B411D76348000681FA7 /* PBXTargetDependency */ = { 373 isa = PBXTargetDependency; 374 target = CD498B3A1D76348000681FA7 /* MobileMiniBrowser.framework */; 375 targetProxy = CD498B401D76348000681FA7 /* PBXContainerItemProxy */; 253 376 }; 254 377 /* End PBXTargetDependency section */ … … 367 490 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 368 491 PRODUCT_BUNDLE_IDENTIFIER = org.webkit.MobileMiniBrowser; 369 PRODUCT_NAME = "$(TARGET_NAME)";492 PRODUCT_NAME = MobileMiniBrowser; 370 493 }; 371 494 name = Debug; … … 378 501 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 379 502 PRODUCT_BUNDLE_IDENTIFIER = org.webkit.MobileMiniBrowser; 380 PRODUCT_NAME = "$(TARGET_NAME)";503 PRODUCT_NAME = MobileMiniBrowser; 381 504 }; 382 505 name = Release; … … 401 524 PRODUCT_NAME = "$(TARGET_NAME)"; 402 525 TEST_TARGET_NAME = MobileMiniBrowser; 526 }; 527 name = Release; 528 }; 529 CD498B451D76348000681FA7 /* Debug */ = { 530 isa = XCBuildConfiguration; 531 buildSettings = { 532 CODE_SIGN_IDENTITY = ""; 533 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 534 CURRENT_PROJECT_VERSION = 1; 535 DEFINES_MODULE = YES; 536 DYLIB_COMPATIBILITY_VERSION = 1; 537 DYLIB_CURRENT_VERSION = 1; 538 DYLIB_INSTALL_NAME_BASE = "@rpath"; 539 INFOPLIST_FILE = MobileMiniBrowser/Info.plist; 540 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 541 IPHONEOS_DEPLOYMENT_TARGET = 10.1; 542 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 543 PRODUCT_BUNDLE_IDENTIFIER = org.webkit.MobileMiniBrowserFramework; 544 PRODUCT_NAME = MobileMiniBrowser; 545 SKIP_INSTALL = YES; 546 VERSIONING_SYSTEM = "apple-generic"; 547 VERSION_INFO_PREFIX = ""; 548 }; 549 name = Debug; 550 }; 551 CD498B461D76348000681FA7 /* Release */ = { 552 isa = XCBuildConfiguration; 553 buildSettings = { 554 CODE_SIGN_IDENTITY = ""; 555 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 556 CURRENT_PROJECT_VERSION = 1; 557 DEFINES_MODULE = YES; 558 DYLIB_COMPATIBILITY_VERSION = 1; 559 DYLIB_CURRENT_VERSION = 1; 560 DYLIB_INSTALL_NAME_BASE = "@rpath"; 561 INFOPLIST_FILE = MobileMiniBrowser/Info.plist; 562 INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 563 IPHONEOS_DEPLOYMENT_TARGET = 10.1; 564 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 565 PRODUCT_BUNDLE_IDENTIFIER = org.webkit.MobileMiniBrowserFramework; 566 PRODUCT_NAME = MobileMiniBrowser; 567 SKIP_INSTALL = YES; 568 VERSIONING_SYSTEM = "apple-generic"; 569 VERSION_INFO_PREFIX = ""; 403 570 }; 404 571 name = Release; … … 434 601 defaultConfigurationName = Release; 435 602 }; 603 CD498B441D76348000681FA7 /* Build configuration list for PBXNativeTarget "MobileMiniBrowser.framework" */ = { 604 isa = XCConfigurationList; 605 buildConfigurations = ( 606 CD498B451D76348000681FA7 /* Debug */, 607 CD498B461D76348000681FA7 /* Release */, 608 ); 609 defaultConfigurationIsVisible = 0; 610 defaultConfigurationName = Release; 611 }; 436 612 /* End XCConfigurationList section */ 437 613 }; -
trunk/Tools/MobileMiniBrowser/MobileMiniBrowser/Base.lproj/LaunchScreen.storyboard
r205073 r205295 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="1 0117" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">1 <?xml version="1.0" encoding="UTF-8"?> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11191" systemVersion="16B2314" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> 3 3 <dependencies> 4 4 <deployment version="2304" identifier="iOS"/> 5 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1 0085"/>5 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11156"/> 6 6 <capability name="Constraints to layout margins" minToolsVersion="6.0"/> 7 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 7 8 </dependencies> 8 9 <scenes> … … 10 11 <scene sceneID="EHf-IW-A2E"> 11 12 <objects> 12 <viewController id="01J-lp-oVM" sceneMemberID="viewController">13 <viewController storyboardIdentifier="idViewController" id="01J-lp-oVM" sceneMemberID="viewController"> 13 14 <layoutGuides> 14 15 <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/> … … 16 17 </layoutGuides> 17 18 <view key="view" contentMode="scaleToFill" id="9qo-7e-hd1"> 18 <rect key="frame" x="0.0" y="0.0" width=" 600" height="600"/>19 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 19 20 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 20 21 <subviews> 21 <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="F7I-Hn-oUR"> 22 <rect key="frame" x="0.0" y="0.0" width="0.0" height="44"/> 22 <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="F7I-Hn-oUR"> 23 23 <constraints> 24 24 <constraint firstAttribute="height" constant="44" id="h95-xh-m8y"/> … … 34 34 </items> 35 35 </toolbar> 36 <view clipsSubviews="YES" contentMode="scaleToFill" misplaced="YES"translatesAutoresizingMaskIntoConstraints="NO" id="7Vg-6f-OBr" userLabel="URL Field Container">36 <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7Vg-6f-OBr" userLabel="URL Field Container"> 37 37 <subviews> 38 <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nX4-D6-AXV"> 39 <rect key="frame" x="0.0" y="0.0" width="0.0" height="45"/> 38 <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nX4-D6-AXV"> 40 39 <items/> 41 40 </toolbar> 42 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="249" misplaced="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="L4i-oL-VFG"> 43 <rect key="frame" x="0.0" y="0.0" width="0.0" height="30"/> 41 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="L4i-oL-VFG"> 44 42 <nil key="textColor"/> 45 43 <fontDescription key="fontDescription" type="system" pointSize="14"/> 46 44 <textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no" keyboardType="URL" returnKeyType="go" enablesReturnKeyAutomatically="YES"/> 47 45 </textField> 48 <button opaque="NO" contentMode="scaleToFill" misplaced="YES"contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1CE-0G-4aC">46 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1CE-0G-4aC"> 49 47 <constraints> 50 48 <constraint firstAttribute="width" constant="45.999999999999886" id="Az8-yd-X45"/> … … 52 50 <state key="normal" title="Go"/> 53 51 </button> 54 <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vYP-Mc-B8q"> 55 <rect key="frame" x="0.0" y="0.0" width="0.0" height="2"/> 56 </progressView> 52 <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vYP-Mc-B8q"/> 57 53 </subviews> 58 54 <constraints> … … 73 69 </view> 74 70 </subviews> 75 <color key="backgroundColor" red="1" green=" 1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>71 <color key="backgroundColor" red="1" green="0.99997437000274658" blue="0.99999129772186279" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 76 72 <constraints> 77 73 <constraint firstItem="F7I-Hn-oUR" firstAttribute="top" secondItem="Llm-lL-Icb" secondAttribute="bottom" id="Dbb-TN-26g"/> -
trunk/Tools/MobileMiniBrowser/MobileMiniBrowser/Info.plist
r205057 r205295 23 23 <key>UILaunchStoryboardName</key> 24 24 <string>LaunchScreen</string> 25 <key>UIMainStoryboardFile</key>26 <string>Main</string>27 25 <key>UIRequiredDeviceCapabilities</key> 28 26 <array> -
trunk/Tools/MobileMiniBrowser/MobileMiniBrowser/main.m
r205057 r205295 24 24 */ 25 25 26 #import "AppDelegate.h" 27 #import <UIKit/UIKit.h> 26 #import <MobileMiniBrowser/MobileMiniBrowser.h> 28 27 29 28 int main(int argc, char * argv[]) -
trunk/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/AppDelegate.m
r205293 r205295 24 24 */ 25 25 26 #import "config.h" 26 27 #import "AppDelegate.h" 27 28 29 #import "WebViewController.h" 30 28 31 @interface AppDelegate () 29 30 32 @end 31 33 32 34 @implementation AppDelegate 33 35 34 35 36 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 36 37 { 37 // Override point for customization after application launch. 38 UIStoryboard *frameworkMainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle bundleForClass:[AppDelegate class]]]; 39 WebViewController *viewController = [frameworkMainStoryboard instantiateInitialViewController]; 40 if (!viewController) 41 return NO; 42 43 if (!self.window) 44 self.window = [[UIWindow alloc] init]; 45 self.window.rootViewController = viewController; 46 [self.window makeKeyAndVisible]; 47 38 48 return YES; 39 49 } -
trunk/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/Base.lproj/Main.storyboard
r205293 r205295 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="1 0117" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="Ohh-6U-lsQ">1 <?xml version="1.0" encoding="UTF-8"?> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11191" systemVersion="16B2314" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="Ohh-6U-lsQ"> 3 3 <dependencies> 4 4 <deployment version="2304" identifier="iOS"/> 5 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/> 5 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11156"/> 6 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 6 7 </dependencies> 7 8 <scenes> … … 15 16 </layoutGuides> 16 17 <view key="view" contentMode="scaleToFill" id="1WJ-am-PnB"> 17 <rect key="frame" x="0.0" y="0.0" width=" 600" height="600"/>18 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 18 19 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 19 20 <subviews> 20 <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="SYm-x3-D12"> 21 <rect key="frame" x="0.0" y="0.0" width="0.0" height="44"/> 21 <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SYm-x3-D12"> 22 22 <constraints> 23 23 <constraint firstAttribute="height" constant="44" id="0IC-RY-cRv"/> … … 49 49 </items> 50 50 </toolbar> 51 <view clipsSubviews="YES" contentMode="scaleToFill" misplaced="YES"translatesAutoresizingMaskIntoConstraints="NO" id="Wkd-K8-BC1" userLabel="URL Field Container">51 <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Wkd-K8-BC1" userLabel="URL Field Container"> 52 52 <subviews> 53 <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="SSg-5u-loI"> 54 <rect key="frame" x="0.0" y="0.0" width="0.0" height="46"/> 53 <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SSg-5u-loI"> 55 54 <items/> 56 55 </toolbar> 57 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="249" misplaced="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="n4f-v4-gO4"> 58 <rect key="frame" x="0.0" y="0.0" width="0.0" height="30"/> 56 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="n4f-v4-gO4"> 59 57 <accessibility key="accessibilityConfiguration" identifier="idURLField" label="URL Field"/> 60 58 <nil key="textColor"/> … … 66 64 </connections> 67 65 </textField> 68 <button opaque="NO" contentMode="scaleToFill" misplaced="YES"contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qSw-Ym-IBE">66 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qSw-Ym-IBE"> 69 67 <accessibility key="accessibilityConfiguration" identifier="idGoToURL" label="Go To URL"/> 70 68 <constraints> … … 76 74 </connections> 77 75 </button> 78 <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" misplaced="YES" progress="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="2bJ-bG-4SW"> 79 <rect key="frame" x="0.0" y="0.0" width="0.0" height="2"/> 80 </progressView> 76 <progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" progress="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="2bJ-bG-4SW"/> 81 77 </subviews> 82 78 <constraints> … … 96 92 </constraints> 97 93 </view> 98 <view contentMode="scaleToFill" misplaced="YES"translatesAutoresizingMaskIntoConstraints="NO" id="719-Zt-fvZ" userLabel="Web View Container">99 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>94 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="719-Zt-fvZ" userLabel="Web View Container"> 95 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 100 96 <accessibility key="accessibilityConfiguration" label="Web View Container"/> 101 97 </view> 102 98 </subviews> 103 <color key="backgroundColor" red="1" green=" 1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>99 <color key="backgroundColor" red="1" green="0.99997437000274658" blue="0.99999129772186279" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 104 100 <constraints> 105 101 <constraint firstItem="Wkd-K8-BC1" firstAttribute="leading" secondItem="1WJ-am-PnB" secondAttribute="leading" id="2cZ-lB-Wel"/> … … 136 132 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 137 133 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 138 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>134 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 139 135 <prototypes> 140 136 <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="idTabViewCustomCell" selectionStyle="default" indentationWidth="10" id="Bxf-dM-uYf"> … … 142 138 <autoresizingMask key="autoresizingMask"/> 143 139 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Bxf-dM-uYf" id="lpb-yc-EJ5"> 144 < rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>140 <frame key="frameInset" width="375" height="44"/> 145 141 <autoresizingMask key="autoresizingMask"/> 146 142 </tableViewCellContentView> -
trunk/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/MobileMiniBrowser.h
r205293 r205295 24 24 */ 25 25 26 #import <UIKit/UIKit.h> 27 28 @interface AppDelegate : UIResponder <UIApplicationDelegate> 29 30 @property (strong, nonatomic) UIWindow *window; 31 32 @end 33 26 #import <MobileMiniBrowser/AppDelegate.h> -
trunk/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/TabViewController.m
r205293 r205295 24 24 */ 25 25 26 #import "config.h" 26 27 #import "TabViewController.h" 27 28 -
trunk/Tools/MobileMiniBrowser/MobileMiniBrowserFramework/WebViewController.m
r205293 r205295 24 24 */ 25 25 26 #import "config.h" 26 27 #import "WebViewController.h" 27 28 … … 32 33 #import <WebKit/WKWebViewConfiguration.h> 33 34 35 @implementation NSURL (BundleURLMethods) 36 + (NSURL *)__bundleURLForFileURL:(NSURL *)url bundle:(NSBundle *)bundle 37 { 38 if (![url.scheme isEqualToString:@"file"]) 39 return nil; 40 NSString *resourcePath = [bundle.resourcePath stringByAppendingString:@"/"]; 41 if (![url.path hasPrefix:resourcePath]) 42 return nil; 43 NSURLComponents *bundleComponents = [[NSURLComponents alloc] init]; 44 bundleComponents.scheme = @"bundle"; 45 bundleComponents.path = [url.path substringFromIndex:resourcePath.length]; 46 return [bundleComponents.URL copy]; 47 } 48 49 + (NSURL *)__fileURLForBundleURL:(NSURL *)url bundle:(NSBundle *)bundle 50 { 51 if (![url.scheme isEqualToString:@"bundle"]) 52 return nil; 53 return [bundle.resourceURL URLByAppendingPathComponent:url.path]; 54 } 55 @end 56 34 57 @interface WebViewController () <WKNavigationDelegate> { 35 58 WKWebView *_currentWebView; … … 91 114 if ([requestedDestination rangeOfString:@"^[\\p{Alphabetic}]+:" options:(NSRegularExpressionSearch | NSCaseInsensitiveSearch | NSAnchoredSearch)].location == NSNotFound) 92 115 requestedDestination = [@"http://" stringByAppendingString:requestedDestination]; 93 [self.currentWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:requestedDestination]]]; 116 NSURL* requestedURL = [NSURL URLWithString:requestedDestination]; 117 if ([requestedURL.scheme isEqualToString:@"bundle"]) { 118 NSBundle *frameworkBundle = [NSBundle bundleForClass:[WebViewController class]]; 119 requestedURL = [NSURL __fileURLForBundleURL:requestedURL bundle:frameworkBundle]; 120 [self.currentWebView loadFileURL:requestedURL allowingReadAccessToURL:frameworkBundle.resourceURL]; 121 } 122 [self.currentWebView loadRequest:[NSURLRequest requestWithURL:requestedURL]]; 94 123 } 95 124 96 125 - (IBAction)showTabs:(id)sender 97 126 { 98 [self presentViewController:self.tabViewController animated:YES completion: ^{ }];127 [self presentViewController:self.tabViewController animated:YES completion:nil]; 99 128 self.tabViewController.popoverPresentationController.barButtonItem = self.tabButton; 100 129 } … … 187 216 [self.progressView setProgress:value animated:YES]; 188 217 } else if (context == URLContext) { 189 id newURLValue = [change valueForKey:NSKeyValueChangeNewKey]; 190 if ([newURLValue isKindOfClass:[NSURL class]]) 218 NSURL *newURLValue = [change valueForKey:NSKeyValueChangeNewKey]; 219 if ([newURLValue isKindOfClass:[NSURL class]]) { 220 if ([newURLValue.scheme isEqualToString:@"file"]) 221 newURLValue = [NSURL __bundleURLForFileURL:newURLValue bundle:[NSBundle bundleForClass:[WebViewController class]]]; 191 222 self.urlField.text = [newURLValue absoluteString]; 192 else if ([newURLValue isKindOfClass:[NSNull class]])223 } else if ([newURLValue isKindOfClass:[NSNull class]]) 193 224 self.urlField.text = @""; 194 225 } else if (context == TitleContext) -
trunk/Tools/MobileMiniBrowser/MobileMiniBrowserUITests/MobileMiniBrowserUITests.m
r205057 r205295 61 61 if (clearButton.exists) 62 62 [clearButton tap]; 63 [urlField typeText:@" http://test-safari.apple.com/"];63 [urlField typeText:@"bundle:/looping.html"]; 64 64 [app.buttons[@"Go To URL"] tap]; 65 66 XCUIElement *captions = app.links[@"Captions"];67 [self expectationForPredicate:exists evaluatedWithObject:captions handler:nil];68 [self waitForExpectationsWithTimeout:5.0 handler:nil];69 [captions tap];70 71 XCUIElement *viewInPage = app.links[@"Video in page"];72 [self expectationForPredicate:exists evaluatedWithObject:viewInPage handler:nil];73 [self waitForExpectationsWithTimeout:5.0 handler:nil];74 [viewInPage tap];75 65 76 66 XCUIElement *startPlayback = app.buttons[@"Start Playback"];
Note: See TracChangeset
for help on using the changeset viewer.