Bug 1291363 - Part 1: Move GeckoView sources into mobile/android/geckoview. r?sebastian,snorp draft
authorNick Alexander <nalexander@mozilla.com>
Tue, 02 Aug 2016 16:34:32 -0700
changeset 395853 e41fd474a19e93cdee9328859ad3790b10daf7f7
parent 395624 6608e5864780589b25d5421c3d3673ab30c4c318
child 527081 4c477d21c164ceb7018e18666b7427b857770d89
push id24867
push usernalexander@mozilla.com
push dateTue, 02 Aug 2016 23:41:57 +0000
reviewerssebastian, snorp
bugs1291363
milestone51.0a1
Bug 1291363 - Part 1: Move GeckoView sources into mobile/android/geckoview. r?sebastian,snorp This is the first part only. It moves Experiments out of util (just for convenience) -- I would have liked to have moved WhatsNewReceiver out of notifications as well, but it's referenced in AndroidManifest.xml.in and I don't want to break that. The set of files in GeckoView is slightly larger than what we really want, but it's close to correct. Future tickets will get things compiling and trim the set of files down to size. Hopefully we can move notifications/, permissions/, and restrictions/ back to Fennec. This is not technically required, but it's best to bulk move the files up front and patch later, rather than jump through hoops to distinguish the set of files in Gradle (and moz.build). MozReview-Commit-ID: EWaAeswFoeG
mobile/android/app/build.gradle
mobile/android/base/java/org/mozilla/gecko/ANRReporter.java
mobile/android/base/java/org/mozilla/gecko/AlarmReceiver.java
mobile/android/base/java/org/mozilla/gecko/AndroidGamepadManager.java
mobile/android/base/java/org/mozilla/gecko/BaseGeckoInterface.java
mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
mobile/android/base/java/org/mozilla/gecko/ContextGetter.java
mobile/android/base/java/org/mozilla/gecko/CrashHandler.java
mobile/android/base/java/org/mozilla/gecko/EventDispatcher.java
mobile/android/base/java/org/mozilla/gecko/Experiments.java
mobile/android/base/java/org/mozilla/gecko/GeckoAccessibility.java
mobile/android/base/java/org/mozilla/gecko/GeckoAppShell.java
mobile/android/base/java/org/mozilla/gecko/GeckoBatteryManager.java
mobile/android/base/java/org/mozilla/gecko/GeckoEditable.java
mobile/android/base/java/org/mozilla/gecko/GeckoEditableClient.java
mobile/android/base/java/org/mozilla/gecko/GeckoEditableListener.java
mobile/android/base/java/org/mozilla/gecko/GeckoEvent.java
mobile/android/base/java/org/mozilla/gecko/GeckoHalDefines.java
mobile/android/base/java/org/mozilla/gecko/GeckoInputConnection.java
mobile/android/base/java/org/mozilla/gecko/GeckoJavaSampler.java
mobile/android/base/java/org/mozilla/gecko/GeckoNetworkManager.java
mobile/android/base/java/org/mozilla/gecko/GeckoProfile.java
mobile/android/base/java/org/mozilla/gecko/GeckoProfileDirectories.java
mobile/android/base/java/org/mozilla/gecko/GeckoScreenOrientation.java
mobile/android/base/java/org/mozilla/gecko/GeckoService.java
mobile/android/base/java/org/mozilla/gecko/GeckoSharedPrefs.java
mobile/android/base/java/org/mozilla/gecko/GeckoSmsManager.java
mobile/android/base/java/org/mozilla/gecko/GeckoThread.java
mobile/android/base/java/org/mozilla/gecko/GeckoView.java
mobile/android/base/java/org/mozilla/gecko/GeckoViewChrome.java
mobile/android/base/java/org/mozilla/gecko/GeckoViewContent.java
mobile/android/base/java/org/mozilla/gecko/InputConnectionListener.java
mobile/android/base/java/org/mozilla/gecko/InputMethods.java
mobile/android/base/java/org/mozilla/gecko/NSSBridge.java
mobile/android/base/java/org/mozilla/gecko/PrefsHelper.java
mobile/android/base/java/org/mozilla/gecko/SmsManager.java
mobile/android/base/java/org/mozilla/gecko/TouchEventInterceptor.java
mobile/android/base/java/org/mozilla/gecko/ZoomConstraints.java
mobile/android/base/java/org/mozilla/gecko/dlc/SyncAction.java
mobile/android/base/java/org/mozilla/gecko/feeds/FeedService.java
mobile/android/base/java/org/mozilla/gecko/feeds/action/SetupAlarmsAction.java
mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunAnimationContainer.java
mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPagerConfig.java
mobile/android/base/java/org/mozilla/gecko/gfx/Axis.java
mobile/android/base/java/org/mozilla/gecko/gfx/BitmapUtils.java
mobile/android/base/java/org/mozilla/gecko/gfx/BufferedImage.java
mobile/android/base/java/org/mozilla/gecko/gfx/BufferedImageGLInfo.java
mobile/android/base/java/org/mozilla/gecko/gfx/DisplayPortCalculator.java
mobile/android/base/java/org/mozilla/gecko/gfx/DisplayPortMetrics.java
mobile/android/base/java/org/mozilla/gecko/gfx/DrawTimingQueue.java
mobile/android/base/java/org/mozilla/gecko/gfx/DynamicToolbarAnimator.java
mobile/android/base/java/org/mozilla/gecko/gfx/FloatSize.java
mobile/android/base/java/org/mozilla/gecko/gfx/FullScreenState.java
mobile/android/base/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
mobile/android/base/java/org/mozilla/gecko/gfx/ImmutableViewportMetrics.java
mobile/android/base/java/org/mozilla/gecko/gfx/IntSize.java
mobile/android/base/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
mobile/android/base/java/org/mozilla/gecko/gfx/Layer.java
mobile/android/base/java/org/mozilla/gecko/gfx/LayerRenderer.java
mobile/android/base/java/org/mozilla/gecko/gfx/LayerView.java
mobile/android/base/java/org/mozilla/gecko/gfx/NativePanZoomController.java
mobile/android/base/java/org/mozilla/gecko/gfx/Overscroll.java
mobile/android/base/java/org/mozilla/gecko/gfx/OverscrollEdgeEffect.java
mobile/android/base/java/org/mozilla/gecko/gfx/PanZoomController.java
mobile/android/base/java/org/mozilla/gecko/gfx/PanZoomTarget.java
mobile/android/base/java/org/mozilla/gecko/gfx/PanningPerfAPI.java
mobile/android/base/java/org/mozilla/gecko/gfx/PluginLayer.java
mobile/android/base/java/org/mozilla/gecko/gfx/PointUtils.java
mobile/android/base/java/org/mozilla/gecko/gfx/ProgressiveUpdateData.java
mobile/android/base/java/org/mozilla/gecko/gfx/RectUtils.java
mobile/android/base/java/org/mozilla/gecko/gfx/RenderTask.java
mobile/android/base/java/org/mozilla/gecko/gfx/ScrollbarLayer.java
mobile/android/base/java/org/mozilla/gecko/gfx/SimpleScaleGestureDetector.java
mobile/android/base/java/org/mozilla/gecko/gfx/StackScroller.java
mobile/android/base/java/org/mozilla/gecko/gfx/SubdocumentScrollHelper.java
mobile/android/base/java/org/mozilla/gecko/gfx/TextureGenerator.java
mobile/android/base/java/org/mozilla/gecko/gfx/TextureReaper.java
mobile/android/base/java/org/mozilla/gecko/gfx/TouchEventHandler.java
mobile/android/base/java/org/mozilla/gecko/gfx/ViewTransform.java
mobile/android/base/java/org/mozilla/gecko/gfx/VirtualLayer.java
mobile/android/base/java/org/mozilla/gecko/home/HomePager.java
mobile/android/base/java/org/mozilla/gecko/mozglue/ByteBufferInputStream.java
mobile/android/base/java/org/mozilla/gecko/mozglue/DirectBufferAllocator.java
mobile/android/base/java/org/mozilla/gecko/mozglue/GeckoLoader.java
mobile/android/base/java/org/mozilla/gecko/mozglue/JNIObject.java
mobile/android/base/java/org/mozilla/gecko/mozglue/NativeReference.java
mobile/android/base/java/org/mozilla/gecko/mozglue/NativeZip.java
mobile/android/base/java/org/mozilla/gecko/mozglue/SafeIntent.java
mobile/android/base/java/org/mozilla/gecko/notifications/AppNotificationClient.java
mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHandler.java
mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
mobile/android/base/java/org/mozilla/gecko/notifications/NotificationReceiver.java
mobile/android/base/java/org/mozilla/gecko/notifications/NotificationService.java
mobile/android/base/java/org/mozilla/gecko/notifications/ServiceNotificationClient.java
mobile/android/base/java/org/mozilla/gecko/notifications/WhatsNewReceiver.java
mobile/android/base/java/org/mozilla/gecko/permissions/PermissionBlock.java
mobile/android/base/java/org/mozilla/gecko/permissions/Permissions.java
mobile/android/base/java/org/mozilla/gecko/permissions/PermissionsHelper.java
mobile/android/base/java/org/mozilla/gecko/promotion/AddToHomeScreenPromotion.java
mobile/android/base/java/org/mozilla/gecko/promotion/HomeScreenPrompt.java
mobile/android/base/java/org/mozilla/gecko/promotion/ReaderViewBookmarkPromotion.java
mobile/android/base/java/org/mozilla/gecko/restrictions/DefaultConfiguration.java
mobile/android/base/java/org/mozilla/gecko/restrictions/GuestProfileConfiguration.java
mobile/android/base/java/org/mozilla/gecko/restrictions/Restrictable.java
mobile/android/base/java/org/mozilla/gecko/restrictions/RestrictedProfileConfiguration.java
mobile/android/base/java/org/mozilla/gecko/restrictions/RestrictionCache.java
mobile/android/base/java/org/mozilla/gecko/restrictions/RestrictionConfiguration.java
mobile/android/base/java/org/mozilla/gecko/restrictions/RestrictionProvider.java
mobile/android/base/java/org/mozilla/gecko/restrictions/Restrictions.java
mobile/android/base/java/org/mozilla/gecko/sqlite/ByteBufferInputStream.java
mobile/android/base/java/org/mozilla/gecko/sqlite/MatrixBlobCursor.java
mobile/android/base/java/org/mozilla/gecko/sqlite/SQLiteBridge.java
mobile/android/base/java/org/mozilla/gecko/sqlite/SQLiteBridgeException.java
mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetryCorePingBuilder.java
mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarDisplayLayout.java
mobile/android/base/java/org/mozilla/gecko/util/ActivityResultHandler.java
mobile/android/base/java/org/mozilla/gecko/util/ActivityResultHandlerMap.java
mobile/android/base/java/org/mozilla/gecko/util/ActivityUtils.java
mobile/android/base/java/org/mozilla/gecko/util/BundleEventListener.java
mobile/android/base/java/org/mozilla/gecko/util/Clipboard.java
mobile/android/base/java/org/mozilla/gecko/util/ContextUtils.java
mobile/android/base/java/org/mozilla/gecko/util/DateUtil.java
mobile/android/base/java/org/mozilla/gecko/util/DrawableUtil.java
mobile/android/base/java/org/mozilla/gecko/util/EventCallback.java
mobile/android/base/java/org/mozilla/gecko/util/Experiments.java
mobile/android/base/java/org/mozilla/gecko/util/FileUtils.java
mobile/android/base/java/org/mozilla/gecko/util/FloatUtils.java
mobile/android/base/java/org/mozilla/gecko/util/GamepadUtils.java
mobile/android/base/java/org/mozilla/gecko/util/GeckoBackgroundThread.java
mobile/android/base/java/org/mozilla/gecko/util/GeckoEventListener.java
mobile/android/base/java/org/mozilla/gecko/util/GeckoJarReader.java
mobile/android/base/java/org/mozilla/gecko/util/GeckoRequest.java
mobile/android/base/java/org/mozilla/gecko/util/HardwareCodecCapabilityUtils.java
mobile/android/base/java/org/mozilla/gecko/util/HardwareUtils.java
mobile/android/base/java/org/mozilla/gecko/util/INIParser.java
mobile/android/base/java/org/mozilla/gecko/util/INISection.java
mobile/android/base/java/org/mozilla/gecko/util/IOUtils.java
mobile/android/base/java/org/mozilla/gecko/util/InputOptionsUtils.java
mobile/android/base/java/org/mozilla/gecko/util/IntentUtils.java
mobile/android/base/java/org/mozilla/gecko/util/JSONUtils.java
mobile/android/base/java/org/mozilla/gecko/util/MenuUtils.java
mobile/android/base/java/org/mozilla/gecko/util/NativeEventListener.java
mobile/android/base/java/org/mozilla/gecko/util/NativeJSContainer.java
mobile/android/base/java/org/mozilla/gecko/util/NativeJSObject.java
mobile/android/base/java/org/mozilla/gecko/util/NetworkUtils.java
mobile/android/base/java/org/mozilla/gecko/util/NonEvictingLruCache.java
mobile/android/base/java/org/mozilla/gecko/util/PrefUtils.java
mobile/android/base/java/org/mozilla/gecko/util/ProxySelector.java
mobile/android/base/java/org/mozilla/gecko/util/RawResource.java
mobile/android/base/java/org/mozilla/gecko/util/StringUtils.java
mobile/android/base/java/org/mozilla/gecko/util/ThreadUtils.java
mobile/android/base/java/org/mozilla/gecko/util/UIAsyncTask.java
mobile/android/base/java/org/mozilla/gecko/util/UUIDUtil.java
mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java
mobile/android/base/java/org/mozilla/gecko/util/WeakReferenceHandler.java
mobile/android/base/java/org/mozilla/gecko/util/WebActivityMapper.java
mobile/android/base/java/org/mozilla/gecko/util/WindowUtils.java
mobile/android/base/java/org/mozilla/gecko/widget/SwipeDismissListViewTouchListener.java
mobile/android/base/moz.build
mobile/android/geckoview/src/main/java/org/mozilla/gecko/ANRReporter.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/AlarmReceiver.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/AndroidGamepadManager.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/BaseGeckoInterface.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/ContextGetter.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/CrashHandler.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/EventDispatcher.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAccessibility.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoBatteryManager.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEditable.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEditableClient.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEditableListener.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEvent.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoHalDefines.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoInputConnection.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoJavaSampler.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoNetworkManager.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoProfile.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoProfileDirectories.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoScreenOrientation.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoService.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoSharedPrefs.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoSmsManager.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoThread.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoViewChrome.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoViewContent.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputConnectionListener.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputMethods.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/NSSBridge.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/PrefsHelper.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/SmsManager.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/TouchEventInterceptor.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/ZoomConstraints.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/Axis.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/BitmapUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/BufferedImage.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/BufferedImageGLInfo.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/DisplayPortCalculator.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/DisplayPortMetrics.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/DrawTimingQueue.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/DynamicToolbarAnimator.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/FloatSize.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/FullScreenState.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/ImmutableViewportMetrics.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/IntSize.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/Layer.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/LayerRenderer.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/LayerView.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/NativePanZoomController.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/Overscroll.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/OverscrollEdgeEffect.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PanZoomController.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PanZoomTarget.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PanningPerfAPI.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PluginLayer.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PointUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/ProgressiveUpdateData.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/RectUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/RenderTask.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/ScrollbarLayer.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/SimpleScaleGestureDetector.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/StackScroller.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/SubdocumentScrollHelper.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/TextureGenerator.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/TextureReaper.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/TouchEventHandler.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/ViewTransform.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/VirtualLayer.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/ByteBufferInputStream.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/DirectBufferAllocator.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/GeckoLoader.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/JNIObject.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/NativeReference.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/NativeZip.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/SafeIntent.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/AppNotificationClient.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/NotificationClient.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/NotificationHandler.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/NotificationHelper.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/NotificationReceiver.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/NotificationService.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/ServiceNotificationClient.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/permissions/PermissionBlock.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/permissions/Permissions.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/permissions/PermissionsHelper.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/DefaultConfiguration.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/GuestProfileConfiguration.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/Restrictable.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/RestrictedProfileConfiguration.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/RestrictionCache.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/RestrictionConfiguration.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/RestrictionProvider.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/Restrictions.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/sqlite/ByteBufferInputStream.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/sqlite/MatrixBlobCursor.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/sqlite/SQLiteBridge.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/sqlite/SQLiteBridgeException.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ActivityResultHandler.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ActivityResultHandlerMap.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ActivityUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/BundleEventListener.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/Clipboard.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/DateUtil.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/DrawableUtil.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/EventCallback.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/FileUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/FloatUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/GamepadUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/GeckoBackgroundThread.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/GeckoEventListener.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/GeckoJarReader.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/GeckoRequest.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/HardwareCodecCapabilityUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/HardwareUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/INIParser.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/INISection.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IOUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/InputOptionsUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/JSONUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/MenuUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/NativeEventListener.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/NativeJSContainer.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/NativeJSObject.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/NetworkUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/NonEvictingLruCache.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/PrefUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/RawResource.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/StringUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ThreadUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/UIAsyncTask.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/UUIDUtil.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/UnusedResourcesUtil.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/WeakReferenceHandler.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/WebActivityMapper.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/WindowUtils.java
mobile/android/geckoview/src/main/java/org/mozilla/gecko/widget/SwipeDismissListViewTouchListener.java
mobile/android/tests/background/junit4/src/com/keepsafe/switchboard/TestSwitchboard.java
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -80,16 +80,17 @@ android {
         }
     }
 
     sourceSets {
         main {
             manifest.srcFile "${project.buildDir}/generated/source/preprocessed_manifest/AndroidManifest.xml"
 
             java {
+                srcDir "${topsrcdir}/mobile/android/geckoview/src/main/java"
                 srcDir "${topsrcdir}/mobile/android/base/java"
                 srcDir "${topsrcdir}/mobile/android/search/java"
                 srcDir "${topsrcdir}/mobile/android/javaaddons/java"
                 srcDir "${topsrcdir}/mobile/android/services/src/main/java"
 
                 if (mozconfig.substs.MOZ_ANDROID_MLS_STUMBLER) {
                     srcDir "${topsrcdir}/mobile/android/stumbler/java"
                 }
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -6,19 +6,17 @@
 package org.mozilla.gecko;
 
 import android.Manifest;
 import android.app.DownloadManager;
 import android.os.Environment;
 import android.support.annotation.CheckResult;
 import android.support.annotation.NonNull;
 
-import android.widget.AbsoluteLayout;
 import android.widget.VideoView;
-import android.graphics.RectF;
 import android.graphics.Rect;
 
 import org.json.JSONArray;
 import org.mozilla.gecko.activitystream.ActivityStream;
 import org.mozilla.gecko.adjust.AdjustHelperInterface;
 import org.mozilla.gecko.annotation.RobocopTarget;
 import org.mozilla.gecko.AppConstants.Versions;
 import org.mozilla.gecko.DynamicToolbar.VisibilityTransition;
@@ -47,17 +45,16 @@ import org.mozilla.gecko.gfx.DynamicTool
 import org.mozilla.gecko.gfx.ImmutableViewportMetrics;
 import org.mozilla.gecko.gfx.LayerView;
 import org.mozilla.gecko.home.BrowserSearch;
 import org.mozilla.gecko.home.HomeBanner;
 import org.mozilla.gecko.home.HomeConfig;
 import org.mozilla.gecko.home.HomeConfig.PanelType;
 import org.mozilla.gecko.home.HomeConfigPrefsBackend;
 import org.mozilla.gecko.home.HomeFragment;
-import org.mozilla.gecko.home.HomePager;
 import org.mozilla.gecko.home.HomePager.OnUrlOpenInBackgroundListener;
 import org.mozilla.gecko.home.HomePager.OnUrlOpenListener;
 import org.mozilla.gecko.home.HomePanelsManager;
 import org.mozilla.gecko.home.HomeScreen;
 import org.mozilla.gecko.home.SearchEngine;
 import org.mozilla.gecko.javaaddons.JavaAddonManager;
 import org.mozilla.gecko.media.AudioFocusAgent;
 import org.mozilla.gecko.menu.GeckoMenu;
@@ -96,17 +93,16 @@ import org.mozilla.gecko.toolbar.Browser
 import org.mozilla.gecko.toolbar.BrowserToolbar.TabEditingState;
 import org.mozilla.gecko.toolbar.ToolbarProgressView;
 import org.mozilla.gecko.trackingprotection.TrackingProtectionPrompt;
 import org.mozilla.gecko.updater.PostUpdateHandler;
 import org.mozilla.gecko.updater.UpdateServiceHelper;
 import org.mozilla.gecko.util.ActivityUtils;
 import org.mozilla.gecko.util.Clipboard;
 import org.mozilla.gecko.util.EventCallback;
-import org.mozilla.gecko.util.Experiments;
 import org.mozilla.gecko.util.FloatUtils;
 import org.mozilla.gecko.util.GamepadUtils;
 import org.mozilla.gecko.util.GeckoEventListener;
 import org.mozilla.gecko.util.HardwareUtils;
 import org.mozilla.gecko.util.IntentUtils;
 import org.mozilla.gecko.util.MenuUtils;
 import org.mozilla.gecko.util.NativeEventListener;
 import org.mozilla.gecko.util.NativeJSObject;
@@ -126,17 +122,16 @@ import android.content.ContentResolver;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
-import android.graphics.Rect;
 import android.graphics.drawable.BitmapDrawable;
 import android.net.Uri;
 import android.nfc.NdefMessage;
 import android.nfc.NdefRecord;
 import android.nfc.NfcAdapter;
 import android.nfc.NfcEvent;
 import android.os.Build;
 import android.os.Bundle;
rename from mobile/android/base/java/org/mozilla/gecko/util/Experiments.java
rename to mobile/android/base/java/org/mozilla/gecko/Experiments.java
--- a/mobile/android/base/java/org/mozilla/gecko/util/Experiments.java
+++ b/mobile/android/base/java/org/mozilla/gecko/Experiments.java
@@ -1,22 +1,21 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-package org.mozilla.gecko.util;
+package org.mozilla.gecko;
 
 import android.content.Context;
 
 import android.util.Log;
 import android.text.TextUtils;
 
 import com.keepsafe.switchboard.Preferences;
 import com.keepsafe.switchboard.SwitchBoard;
-import org.mozilla.gecko.GeckoSharedPrefs;
 
 import java.util.LinkedList;
 import java.util.List;
 
 /**
  * This class should reflect the experiment names found in the Switchboard experiments config here:
  * https://github.com/mozilla-services/switchboard-experiments
  */
--- a/mobile/android/base/java/org/mozilla/gecko/dlc/SyncAction.java
+++ b/mobile/android/base/java/org/mozilla/gecko/dlc/SyncAction.java
@@ -11,17 +11,17 @@ import android.util.Log;
 
 import com.keepsafe.switchboard.SwitchBoard;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.mozilla.gecko.dlc.catalog.DownloadContent;
 import org.mozilla.gecko.dlc.catalog.DownloadContentBuilder;
 import org.mozilla.gecko.dlc.catalog.DownloadContentCatalog;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 import org.mozilla.gecko.util.IOUtils;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.HttpURLConnection;
 
--- a/mobile/android/base/java/org/mozilla/gecko/feeds/FeedService.java
+++ b/mobile/android/base/java/org/mozilla/gecko/feeds/FeedService.java
@@ -22,17 +22,17 @@ import org.mozilla.gecko.GeckoSharedPref
 import org.mozilla.gecko.db.BrowserDB;
 import org.mozilla.gecko.feeds.action.FeedAction;
 import org.mozilla.gecko.feeds.action.CheckForUpdatesAction;
 import org.mozilla.gecko.feeds.action.EnrollSubscriptionsAction;
 import org.mozilla.gecko.feeds.action.SetupAlarmsAction;
 import org.mozilla.gecko.feeds.action.SubscribeToFeedAction;
 import org.mozilla.gecko.feeds.action.WithdrawSubscriptionsAction;
 import org.mozilla.gecko.preferences.GeckoPreferences;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 
 /**
  * Background service for subscribing to and checking website feeds to notify the user about updates.
  */
 public class FeedService extends IntentService {
     private static final String LOGTAG = "GeckoFeedService";
 
     public static final String ACTION_SETUP = AppConstants.ANDROID_PACKAGE_NAME + ".FEEDS.SETUP";
--- a/mobile/android/base/java/org/mozilla/gecko/feeds/action/SetupAlarmsAction.java
+++ b/mobile/android/base/java/org/mozilla/gecko/feeds/action/SetupAlarmsAction.java
@@ -11,20 +11,19 @@ import android.content.Context;
 import android.content.Intent;
 import android.os.SystemClock;
 
 import com.keepsafe.switchboard.SwitchBoard;
 
 import org.mozilla.gecko.db.BrowserDB;
 import org.mozilla.gecko.feeds.FeedAlarmReceiver;
 import org.mozilla.gecko.feeds.FeedService;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 
 import java.text.DateFormat;
-import java.text.SimpleDateFormat;
 import java.util.Calendar;
 
 /**
  * SetupAlarmsAction: Set up alarms to run various actions every now and then.
  */
 public class SetupAlarmsAction extends FeedAction {
     private static final String LOGTAG = "FeedSetupAction";
 
--- a/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunAnimationContainer.java
+++ b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunAnimationContainer.java
@@ -12,17 +12,17 @@ import android.util.AttributeSet;
 import android.view.View;
 import android.widget.LinearLayout;
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.animation.ObjectAnimator;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.Telemetry;
 import org.mozilla.gecko.TelemetryContract;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 
 /**
  * A container for the pager and the entire first run experience.
  * This is used for animation purposes.
  */
 public class FirstrunAnimationContainer extends LinearLayout {
     public static final String PREF_FIRSTRUN_ENABLED = "startpane_enabled";
 
--- a/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPagerConfig.java
+++ b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPagerConfig.java
@@ -7,17 +7,17 @@ package org.mozilla.gecko.firstrun;
 
 import android.content.Context;
 import android.os.Bundle;
 import android.util.Log;
 import org.mozilla.gecko.GeckoSharedPrefs;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.Telemetry;
 import org.mozilla.gecko.TelemetryContract;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 
 import java.util.LinkedList;
 import java.util.List;
 
 public class FirstrunPagerConfig {
     public static final String LOGTAG = "FirstrunPagerConfig";
 
     public static final String KEY_IMAGE = "imageRes";
--- a/mobile/android/base/java/org/mozilla/gecko/home/HomePager.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/HomePager.java
@@ -12,17 +12,16 @@ import java.util.List;
 import org.mozilla.gecko.AppConstants.Versions;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.Telemetry;
 import org.mozilla.gecko.TelemetryContract;
 import org.mozilla.gecko.animation.PropertyAnimator;
 import org.mozilla.gecko.animation.ViewHelper;
 import org.mozilla.gecko.home.HomeAdapter.OnAddPanelListener;
 import org.mozilla.gecko.home.HomeConfig.PanelConfig;
-import org.mozilla.gecko.util.Experiments;
 import org.mozilla.gecko.util.ThreadUtils;
 
 import android.content.Context;
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.LoaderManager;
--- a/mobile/android/base/java/org/mozilla/gecko/notifications/WhatsNewReceiver.java
+++ b/mobile/android/base/java/org/mozilla/gecko/notifications/WhatsNewReceiver.java
@@ -9,26 +9,26 @@ import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
 import android.support.v4.app.NotificationCompat;
 import android.text.TextUtils;
-import android.util.Log;
+
 import com.keepsafe.switchboard.SwitchBoard;
 import org.mozilla.gecko.AppConstants;
 import org.mozilla.gecko.GeckoSharedPrefs;
 import org.mozilla.gecko.Locales;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.Telemetry;
 import org.mozilla.gecko.TelemetryContract;
 import org.mozilla.gecko.preferences.GeckoPreferences;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 
 import java.util.Locale;
 
 public class WhatsNewReceiver extends BroadcastReceiver {
 
     public static final String EXTRA_WHATSNEW_NOTIFICATION = "whatsnew_notification";
     private static final String ACTION_NOTIFICATION_CANCELLED = "notification_cancelled";
 
--- a/mobile/android/base/java/org/mozilla/gecko/promotion/AddToHomeScreenPromotion.java
+++ b/mobile/android/base/java/org/mozilla/gecko/promotion/AddToHomeScreenPromotion.java
@@ -20,17 +20,17 @@ import org.mozilla.gecko.AboutPages;
 import org.mozilla.gecko.BrowserApp;
 import org.mozilla.gecko.GeckoProfile;
 import org.mozilla.gecko.Tab;
 import org.mozilla.gecko.Tabs;
 import org.mozilla.gecko.db.BrowserContract;
 import org.mozilla.gecko.db.BrowserDB;
 import org.mozilla.gecko.db.UrlAnnotations;
 import org.mozilla.gecko.delegates.TabsTrayVisibilityAwareDelegate;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 import org.mozilla.gecko.util.ThreadUtils;
 
 import java.lang.ref.WeakReference;
 
 import ch.boye.httpclientandroidlib.util.TextUtils;
 
 /**
  * Promote "Add to home screen" if user visits website often.
--- a/mobile/android/base/java/org/mozilla/gecko/promotion/HomeScreenPrompt.java
+++ b/mobile/android/base/java/org/mozilla/gecko/promotion/HomeScreenPrompt.java
@@ -23,17 +23,17 @@ import org.mozilla.gecko.GeckoAppShell;
 import org.mozilla.gecko.GeckoProfile;
 import org.mozilla.gecko.Locales;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.Telemetry;
 import org.mozilla.gecko.TelemetryContract;
 import org.mozilla.gecko.db.UrlAnnotations;
 import org.mozilla.gecko.favicons.Favicons;
 import org.mozilla.gecko.favicons.OnFaviconLoadedListener;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 import org.mozilla.gecko.util.ThreadUtils;
 
 /**
  * Prompt to promote adding the current website to the home screen.
  */
 public class HomeScreenPrompt extends Locales.LocaleAwareActivity implements OnFaviconLoadedListener {
     private static final String EXTRA_TITLE = "title";
     private static final String EXTRA_URL = "url";
--- a/mobile/android/base/java/org/mozilla/gecko/promotion/ReaderViewBookmarkPromotion.java
+++ b/mobile/android/base/java/org/mozilla/gecko/promotion/ReaderViewBookmarkPromotion.java
@@ -12,17 +12,17 @@ import com.keepsafe.switchboard.SwitchBo
 
 import org.mozilla.gecko.BrowserApp;
 import org.mozilla.gecko.GeckoSharedPrefs;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.Tab;
 import org.mozilla.gecko.Tabs;
 import org.mozilla.gecko.delegates.BrowserAppDelegateWithReference;
 import org.mozilla.gecko.reader.ReaderModeUtils;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 
 public class ReaderViewBookmarkPromotion extends BrowserAppDelegateWithReference implements Tabs.OnTabsChangedListener {
     private static final String PREF_FIRST_RV_HINT_SHOWN = "first_reader_view_hint_shown";
     private static final String FIRST_READERVIEW_OPEN_TELEMETRYEXTRA = "first_readerview_open_prompt";
 
     private boolean hasEnteredReaderMode = false;
 
     @Override
--- a/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetryCorePingBuilder.java
+++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetryCorePingBuilder.java
@@ -17,17 +17,17 @@ import android.text.TextUtils;
 import android.util.Log;
 import org.mozilla.gecko.AppConstants;
 import org.mozilla.gecko.GeckoProfile;
 import org.mozilla.gecko.Locales;
 import org.mozilla.gecko.search.SearchEngine;
 import org.mozilla.gecko.sync.ExtendedJSONObject;
 import org.mozilla.gecko.telemetry.TelemetryPing;
 import org.mozilla.gecko.util.DateUtil;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 import org.mozilla.gecko.util.StringUtils;
 
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Locale;
 import java.util.concurrent.TimeUnit;
 
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarDisplayLayout.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarDisplayLayout.java
@@ -17,17 +17,17 @@ import org.mozilla.gecko.reader.ReaderMo
 import org.mozilla.gecko.SiteIdentity;
 import org.mozilla.gecko.SiteIdentity.MixedMode;
 import org.mozilla.gecko.SiteIdentity.SecurityMode;
 import org.mozilla.gecko.SiteIdentity.TrackingMode;
 import org.mozilla.gecko.Tab;
 import org.mozilla.gecko.animation.PropertyAnimator;
 import org.mozilla.gecko.animation.ViewHelper;
 import org.mozilla.gecko.toolbar.BrowserToolbarTabletBase.ForwardButtonAnimation;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 import org.mozilla.gecko.util.HardwareUtils;
 import org.mozilla.gecko.util.StringUtils;
 import org.mozilla.gecko.widget.themed.ThemedLinearLayout;
 import org.mozilla.gecko.widget.themed.ThemedTextView;
 
 import android.content.Context;
 import android.os.SystemClock;
 import android.support.annotation.NonNull;
--- a/mobile/android/base/moz.build
+++ b/mobile/android/base/moz.build
@@ -1,20 +1,21 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 DIRS += ['locales']
 
 CONFIGURE_SUBST_FILES += ['adjust_sdk_app_token']
 
 include('android-services.mozbuild')
 
+geckoview_source_dir = TOPSRCDIR + '/mobile/android/geckoview/src/main/'
 thirdparty_source_dir = TOPSRCDIR + '/mobile/android/thirdparty/'
 
 constants_jar = add_java_jar('constants')
 constants_jar.sources = ['java/org/mozilla/gecko/' + x for x in [
     'adjust/AdjustHelperInterface.java',
     'annotation/JNITarget.java',
     'annotation/ReflectionTarget.java',
     'annotation/RobocopTarget.java',
@@ -77,33 +78,33 @@ if CONFIG['ANDROID_RECYCLERVIEW_V7_AAR']
 if CONFIG['ANDROID_CUSTOMTABS_AAR']:
     ANDROID_EXTRA_PACKAGES += ['android.support.customtabs']
     ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_CUSTOMTABS_AAR_RES']]
     resjar.generated_sources += ['android/support/customtabs/R.java']
 
 resjar.javac_flags += ['-Xlint:all']
 
 mgjar = add_java_jar('gecko-mozglue')
-mgjar.sources += ['java/org/mozilla/gecko/' + x for x in [
+mgjar.sources += [geckoview_source_dir + 'java/org/mozilla/gecko/' + x for x in [
     'mozglue/ByteBufferInputStream.java',
     'mozglue/DirectBufferAllocator.java',
     'mozglue/GeckoLoader.java',
     'mozglue/JNIObject.java',
     'mozglue/NativeReference.java',
     'mozglue/NativeZip.java',
     'mozglue/SafeIntent.java',
 ]]
 mgjar.generated_sources = [] # Keep it this way.
 mgjar.extra_jars += [
     'constants.jar',
 ]
 mgjar.javac_flags += ['-Xlint:all']
 
 gujar = add_java_jar('gecko-util')
-gujar.sources += ['java/org/mozilla/gecko/' + x for x in [
+gujar.sources += [geckoview_source_dir + 'java/org/mozilla/gecko/' + x for x in [
     'util/ActivityResultHandler.java',
     'util/ActivityResultHandlerMap.java',
     'util/ActivityUtils.java',
     'util/BundleEventListener.java',
     'util/Clipboard.java',
     'util/ContextUtils.java',
     'util/DateUtil.java',
     'util/DrawableUtil.java',
@@ -192,42 +193,137 @@ if CONFIG['MOZ_WEBRTC']:
         'constants.jar',
         'gecko-R.jar',
         'gecko-browser.jar',
         'gecko-util.jar',
         'gecko-mozglue.jar',
     ]
     wrjar.javac_flags += ['-Xlint:all,-deprecation,-cast']
 
+geckoview_java_files = [
+    'AlarmReceiver.java',
+    'AndroidGamepadManager.java',
+    'ANRReporter.java',
+    'BaseGeckoInterface.java',
+    'ContextGetter.java',
+    'CrashHandler.java',
+    'EventDispatcher.java',
+    'GeckoAccessibility.java',
+    'GeckoAppShell.java',
+    'GeckoBatteryManager.java',
+    'GeckoEditable.java',
+    'GeckoEditableClient.java',
+    'GeckoEditableListener.java',
+    'GeckoEvent.java',
+    'GeckoHalDefines.java',
+    'GeckoInputConnection.java',
+    'GeckoJavaSampler.java',
+    'GeckoNetworkManager.java',
+    'GeckoProfile.java',
+    'GeckoProfileDirectories.java',
+    'GeckoScreenOrientation.java',
+    'GeckoService.java',
+    'GeckoSharedPrefs.java',
+    'GeckoSmsManager.java',
+    'GeckoThread.java',
+    'GeckoView.java',
+    'GeckoViewChrome.java',
+    'GeckoViewContent.java',
+    'gfx/Axis.java',
+    'gfx/BitmapUtils.java',
+    'gfx/BufferedImage.java',
+    'gfx/BufferedImageGLInfo.java',
+    'gfx/DisplayPortCalculator.java',
+    'gfx/DisplayPortMetrics.java',
+    'gfx/DrawTimingQueue.java',
+    'gfx/DynamicToolbarAnimator.java',
+    'gfx/FloatSize.java',
+    'gfx/FullScreenState.java',
+    'gfx/GeckoLayerClient.java',
+    'gfx/ImmutableViewportMetrics.java',
+    'gfx/IntSize.java',
+    'gfx/JavaPanZoomController.java',
+    'gfx/Layer.java',
+    'gfx/LayerRenderer.java',
+    'gfx/LayerView.java',
+    'gfx/NativePanZoomController.java',
+    'gfx/Overscroll.java',
+    'gfx/OverscrollEdgeEffect.java',
+    'gfx/PanningPerfAPI.java',
+    'gfx/PanZoomController.java',
+    'gfx/PanZoomTarget.java',
+    'gfx/PluginLayer.java',
+    'gfx/PointUtils.java',
+    'gfx/ProgressiveUpdateData.java',
+    'gfx/RectUtils.java',
+    'gfx/RenderTask.java',
+    'gfx/ScrollbarLayer.java',
+    'gfx/SimpleScaleGestureDetector.java',
+    'gfx/StackScroller.java',
+    'gfx/SubdocumentScrollHelper.java',
+    'gfx/TextureGenerator.java',
+    'gfx/TextureReaper.java',
+    'gfx/TouchEventHandler.java',
+    'gfx/ViewTransform.java',
+    'gfx/VirtualLayer.java',
+    'InputConnectionListener.java',
+    'InputMethods.java',
+    'notifications/AppNotificationClient.java',
+    'notifications/NotificationClient.java',
+    'notifications/NotificationHandler.java',
+    'notifications/NotificationHelper.java',
+    'notifications/NotificationReceiver.java',
+    'notifications/NotificationService.java',
+    'notifications/ServiceNotificationClient.java',
+    'NSSBridge.java',
+    'permissions/PermissionBlock.java',
+    'permissions/Permissions.java',
+    'permissions/PermissionsHelper.java',
+    'PrefsHelper.java',
+    'restrictions/DefaultConfiguration.java',
+    'restrictions/GuestProfileConfiguration.java',
+    'restrictions/Restrictable.java',
+    'restrictions/RestrictedProfileConfiguration.java',
+    'restrictions/RestrictionCache.java',
+    'restrictions/RestrictionConfiguration.java',
+    'restrictions/RestrictionProvider.java',
+    'restrictions/Restrictions.java',
+    'SmsManager.java',
+    'sqlite/ByteBufferInputStream.java',
+    'sqlite/MatrixBlobCursor.java',
+    'sqlite/SQLiteBridge.java',
+    'sqlite/SQLiteBridgeException.java',
+    'TouchEventInterceptor.java',
+    'widget/SwipeDismissListViewTouchListener.java',
+    'ZoomConstraints.java',
+]
+
 gbjar = add_java_jar('gecko-browser')
+gbjar.sources += [geckoview_source_dir + 'java/org/mozilla/gecko/' + x
+                  for x in geckoview_java_files]
+
 gbjar.sources += ['java/org/mozilla/gecko/' + x for x in [
     'AboutPages.java',
     'AccountsHelper.java',
     'ActionBarTextSelection.java',
     'ActionModeCompat.java',
     'ActionModeCompatView.java',
     'ActivityHandlerHelper.java',
     'activitystream/ActivityStream.java',
-    'AlarmReceiver.java',
-    'AndroidGamepadManager.java',
     'animation/AnimationUtils.java',
     'animation/HeightChangeAnimation.java',
     'animation/PropertyAnimator.java',
     'animation/Rotate3DAnimation.java',
     'animation/ViewHelper.java',
-    'ANRReporter.java',
-    'BaseGeckoInterface.java',
     'BootReceiver.java',
     'BrowserApp.java',
     'BrowserLocaleManager.java',
     'cleanup/FileCleanupController.java',
     'cleanup/FileCleanupService.java',
     'ContactService.java',
-    'ContextGetter.java',
-    'CrashHandler.java',
     'CustomEditText.java',
     'customtabs/CustomTabsActivity.java',
     'customtabs/GeckoCustomTabsService.java',
     'DataReportingNotification.java',
     'db/AbstractPerProfileDatabaseProvider.java',
     'db/AbstractTransactionalProvider.java',
     'db/BaseTable.java',
     'db/BrowserDatabaseHelper.java',
@@ -281,17 +377,17 @@ gbjar.sources += ['java/org/mozilla/geck
     'dlc/DownloadContentService.java',
     'dlc/StudyAction.java',
     'dlc/SyncAction.java',
     'dlc/VerifyAction.java',
     'DoorHangerPopup.java',
     'DownloadsIntegration.java',
     'DynamicToolbar.java',
     'EditBookmarkDialog.java',
-    'EventDispatcher.java',
+    'Experiments.java',
     'favicons/cache/FaviconCache.java',
     'favicons/cache/FaviconCacheElement.java',
     'favicons/cache/FaviconsForURL.java',
     'favicons/decoders/FaviconDecoder.java',
     'favicons/decoders/ICODecoder.java',
     'favicons/decoders/IconDirectoryEntry.java',
     'favicons/decoders/LoadFaviconResult.java',
     'favicons/FaviconGenerator.java',
@@ -325,81 +421,23 @@ gbjar.sources += ['java/org/mozilla/geck
     'firstrun/FirstrunAnimationContainer.java',
     'firstrun/FirstrunPager.java',
     'firstrun/FirstrunPagerConfig.java',
     'firstrun/FirstrunPanel.java',
     'firstrun/RestrictedWelcomePanel.java',
     'firstrun/SyncPanel.java',
     'firstrun/TabQueuePanel.java',
     'FormAssistPopup.java',
-    'GeckoAccessibility.java',
     'GeckoActivity.java',
     'GeckoActivityStatus.java',
     'GeckoApp.java',
     'GeckoApplication.java',
-    'GeckoAppShell.java',
-    'GeckoBatteryManager.java',
-    'GeckoEditable.java',
-    'GeckoEditableClient.java',
-    'GeckoEditableListener.java',
-    'GeckoEvent.java',
-    'GeckoHalDefines.java',
-    'GeckoInputConnection.java',
-    'GeckoJavaSampler.java',
     'GeckoMessageReceiver.java',
-    'GeckoNetworkManager.java',
-    'GeckoProfile.java',
-    'GeckoProfileDirectories.java',
     'GeckoProfilesProvider.java',
-    'GeckoScreenOrientation.java',
-    'GeckoService.java',
-    'GeckoSharedPrefs.java',
-    'GeckoSmsManager.java',
-    'GeckoThread.java',
     'GeckoUpdateReceiver.java',
-    'GeckoView.java',
-    'GeckoViewChrome.java',
-    'GeckoViewContent.java',
-    'gfx/Axis.java',
-    'gfx/BitmapUtils.java',
-    'gfx/BufferedImage.java',
-    'gfx/BufferedImageGLInfo.java',
-    'gfx/DisplayPortCalculator.java',
-    'gfx/DisplayPortMetrics.java',
-    'gfx/DrawTimingQueue.java',
-    'gfx/DynamicToolbarAnimator.java',
-    'gfx/FloatSize.java',
-    'gfx/FullScreenState.java',
-    'gfx/GeckoLayerClient.java',
-    'gfx/ImmutableViewportMetrics.java',
-    'gfx/IntSize.java',
-    'gfx/JavaPanZoomController.java',
-    'gfx/Layer.java',
-    'gfx/LayerRenderer.java',
-    'gfx/LayerView.java',
-    'gfx/NativePanZoomController.java',
-    'gfx/Overscroll.java',
-    'gfx/OverscrollEdgeEffect.java',
-    'gfx/PanningPerfAPI.java',
-    'gfx/PanZoomController.java',
-    'gfx/PanZoomTarget.java',
-    'gfx/PluginLayer.java',
-    'gfx/PointUtils.java',
-    'gfx/ProgressiveUpdateData.java',
-    'gfx/RectUtils.java',
-    'gfx/RenderTask.java',
-    'gfx/ScrollbarLayer.java',
-    'gfx/SimpleScaleGestureDetector.java',
-    'gfx/StackScroller.java',
-    'gfx/SubdocumentScrollHelper.java',
-    'gfx/TextureGenerator.java',
-    'gfx/TextureReaper.java',
-    'gfx/TouchEventHandler.java',
-    'gfx/ViewTransform.java',
-    'gfx/VirtualLayer.java',
     'GlobalHistory.java',
     'GuestSession.java',
     'health/HealthRecorder.java',
     'health/SessionInformation.java',
     'health/StubbedHealthRecorder.java',
     'home/activitystream/ActivityStream.java',
     'home/BookmarkFolderView.java',
     'home/BookmarkScreenshotRow.java',
@@ -454,18 +492,16 @@ gbjar.sources += ['java/org/mozilla/geck
     'home/SpacingDecoration.java',
     'home/TabMenuStrip.java',
     'home/TabMenuStripLayout.java',
     'home/TopSitesGridItemView.java',
     'home/TopSitesGridView.java',
     'home/TopSitesPanel.java',
     'home/TopSitesThumbnailView.java',
     'home/TwoLinePageRow.java',
-    'InputConnectionListener.java',
-    'InputMethods.java',
     'IntentHelper.java',
     'javaaddons/JavaAddonManager.java',
     'javaaddons/JavaAddonManagerV1.java',
     'LauncherActivity.java',
     'lwt/LightweightTheme.java',
     'lwt/LightweightThemeDrawable.java',
     'mdns/MulticastDNSManager.java',
     'media/AudioFocusAgent.java',
@@ -477,39 +513,28 @@ gbjar.sources += ['java/org/mozilla/geck
     'menu/GeckoMenuItem.java',
     'menu/GeckoSubMenu.java',
     'menu/MenuItemActionBar.java',
     'menu/MenuItemDefault.java',
     'menu/MenuItemSwitcherLayout.java',
     'menu/MenuPanel.java',
     'menu/MenuPopup.java',
     'MotionEventInterceptor.java',
-    'notifications/AppNotificationClient.java',
-    'notifications/NotificationClient.java',
-    'notifications/NotificationHandler.java',
-    'notifications/NotificationHelper.java',
-    'notifications/NotificationReceiver.java',
-    'notifications/NotificationService.java',
-    'notifications/ServiceNotificationClient.java',
     'notifications/WhatsNewReceiver.java',
-    'NSSBridge.java',
     'overlays/OverlayConstants.java',
     'overlays/service/OverlayActionService.java',
     'overlays/service/ShareData.java',
     'overlays/service/sharemethods/AddBookmark.java',
     'overlays/service/sharemethods/SendTab.java',
     'overlays/service/sharemethods/ShareMethod.java',
     'overlays/ui/OverlayDialogButton.java',
     'overlays/ui/SendTabDeviceListArrayAdapter.java',
     'overlays/ui/SendTabList.java',
     'overlays/ui/SendTabTargetSelectedListener.java',
     'overlays/ui/ShareDialog.java',
-    'permissions/PermissionBlock.java',
-    'permissions/Permissions.java',
-    'permissions/PermissionsHelper.java',
     'preferences/AlignRightLinkPreference.java',
     'preferences/AndroidImport.java',
     'preferences/AndroidImportPreference.java',
     'preferences/AppCompatPreferenceActivity.java',
     'preferences/ClearOnShutdownPref.java',
     'preferences/CustomCheckBoxPreference.java',
     'preferences/CustomListCategory.java',
     'preferences/CustomListPreference.java',
@@ -525,17 +550,16 @@ gbjar.sources += ['java/org/mozilla/geck
     'preferences/MultiPrefMultiChoicePreference.java',
     'preferences/PanelsPreference.java',
     'preferences/PanelsPreferenceCategory.java',
     'preferences/PrivateDataPreference.java',
     'preferences/SearchEnginePreference.java',
     'preferences/SearchPreferenceCategory.java',
     'preferences/SetHomepagePreference.java',
     'preferences/SyncPreference.java',
-    'PrefsHelper.java',
     'PrintHelper.java',
     'PrivateTab.java',
     'promotion/AddToHomeScreenPromotion.java',
     'promotion/HomeScreenPrompt.java',
     'promotion/ReaderViewBookmarkPromotion.java',
     'promotion/SimpleHelperUI.java',
     'prompts/ColorPickerInput.java',
     'prompts/IconGridInput.java',
@@ -547,36 +571,23 @@ gbjar.sources += ['java/org/mozilla/geck
     'prompts/PromptListItem.java',
     'prompts/PromptService.java',
     'prompts/TabInput.java',
     'reader/ReaderModeUtils.java',
     'reader/ReadingListHelper.java',
     'reader/SavedReaderViewHelper.java',
     'RemoteClientsDialogFragment.java',
     'Restarter.java',
-    'restrictions/DefaultConfiguration.java',
-    'restrictions/GuestProfileConfiguration.java',
-    'restrictions/Restrictable.java',
-    'restrictions/RestrictedProfileConfiguration.java',
-    'restrictions/RestrictionCache.java',
-    'restrictions/RestrictionConfiguration.java',
-    'restrictions/RestrictionProvider.java',
-    'restrictions/Restrictions.java',
     'ScreenshotObserver.java',
     'search/SearchEngine.java',
     'search/SearchEngineManager.java',
     'SessionParser.java',
     'SharedPreferencesHelper.java',
     'SiteIdentity.java',
-    'SmsManager.java',
     'SnackbarBuilder.java',
-    'sqlite/ByteBufferInputStream.java',
-    'sqlite/MatrixBlobCursor.java',
-    'sqlite/SQLiteBridge.java',
-    'sqlite/SQLiteBridgeException.java',
     'SuggestClient.java',
     'Tab.java',
     'tabqueue/TabQueueHelper.java',
     'tabqueue/TabQueuePrompt.java',
     'tabqueue/TabQueueService.java',
     'tabqueue/TabReceivedService.java',
     'Tabs.java',
     'tabs/PrivateTabsPanel.java',
@@ -630,22 +641,20 @@ gbjar.sources += ['java/org/mozilla/geck
     'toolbar/ShapedButtonFrameLayout.java',
     'toolbar/SiteIdentityPopup.java',
     'toolbar/TabCounter.java',
     'toolbar/ToolbarDisplayLayout.java',
     'toolbar/ToolbarEditLayout.java',
     'toolbar/ToolbarEditText.java',
     'toolbar/ToolbarPrefs.java',
     'toolbar/ToolbarProgressView.java',
-    'TouchEventInterceptor.java',
     'trackingprotection/TrackingProtectionPrompt.java',
     'updater/PostUpdateHandler.java',
     'updater/UpdateService.java',
     'updater/UpdateServiceHelper.java',
-    'util/Experiments.java',
     'widget/ActivityChooserModel.java',
     'widget/AllCapsTextView.java',
     'widget/AnchoredPopup.java',
     'widget/AnimatedHeightLayout.java',
     'widget/BasicColorPicker.java',
     'widget/CheckableLinearLayout.java',
     'widget/ClickableWhenDisabledEditText.java',
     'widget/ContentSecurityDoorHanger.java',
@@ -667,21 +676,19 @@ gbjar.sources += ['java/org/mozilla/geck
     'widget/IconTabWidget.java',
     'widget/LoginDoorHanger.java',
     'widget/RecyclerViewClickSupport.java',
     'widget/ResizablePathDrawable.java',
     'widget/RoundedCornerLayout.java',
     'widget/SiteLogins.java',
     'widget/SquaredImageView.java',
     'widget/SquaredRelativeLayout.java',
-    'widget/SwipeDismissListViewTouchListener.java',
     'widget/TabThumbnailWrapper.java',
     'widget/ThumbnailView.java',
     'widget/TwoWayView.java',
-    'ZoomConstraints.java',
     'ZoomedView.java',
 ]]
 # The following sources are checked in to version control but
 # generated by a script (java/org/mozilla/gecko/widget/themed/generate_themed_views.py).
 # If you're editing this list, make sure to edit that script.
 gbjar.sources += ['java/org/mozilla/gecko/' + x for x in [
     'widget/themed/ThemedEditText.java',
     'widget/themed/ThemedFrameLayout.java',
rename from mobile/android/base/java/org/mozilla/gecko/ANRReporter.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/ANRReporter.java
rename from mobile/android/base/java/org/mozilla/gecko/AlarmReceiver.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/AlarmReceiver.java
rename from mobile/android/base/java/org/mozilla/gecko/AndroidGamepadManager.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/AndroidGamepadManager.java
rename from mobile/android/base/java/org/mozilla/gecko/BaseGeckoInterface.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/BaseGeckoInterface.java
rename from mobile/android/base/java/org/mozilla/gecko/ContextGetter.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/ContextGetter.java
rename from mobile/android/base/java/org/mozilla/gecko/CrashHandler.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/CrashHandler.java
rename from mobile/android/base/java/org/mozilla/gecko/EventDispatcher.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/EventDispatcher.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoAccessibility.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAccessibility.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoAppShell.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoBatteryManager.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoBatteryManager.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoEditable.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEditable.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoEditableClient.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEditableClient.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoEditableListener.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEditableListener.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoEvent.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEvent.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoHalDefines.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoHalDefines.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoInputConnection.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoInputConnection.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoJavaSampler.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoJavaSampler.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoNetworkManager.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoNetworkManager.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoProfile.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoProfile.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoProfileDirectories.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoProfileDirectories.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoScreenOrientation.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoScreenOrientation.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoService.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoService.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoSharedPrefs.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoSharedPrefs.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoSmsManager.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoSmsManager.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoThread.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoThread.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoView.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoViewChrome.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoViewChrome.java
rename from mobile/android/base/java/org/mozilla/gecko/GeckoViewContent.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoViewContent.java
rename from mobile/android/base/java/org/mozilla/gecko/InputConnectionListener.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputConnectionListener.java
rename from mobile/android/base/java/org/mozilla/gecko/InputMethods.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputMethods.java
rename from mobile/android/base/java/org/mozilla/gecko/NSSBridge.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/NSSBridge.java
rename from mobile/android/base/java/org/mozilla/gecko/PrefsHelper.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/PrefsHelper.java
rename from mobile/android/base/java/org/mozilla/gecko/SmsManager.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/SmsManager.java
rename from mobile/android/base/java/org/mozilla/gecko/TouchEventInterceptor.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/TouchEventInterceptor.java
rename from mobile/android/base/java/org/mozilla/gecko/ZoomConstraints.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/ZoomConstraints.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/Axis.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/Axis.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/BitmapUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/BitmapUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/BufferedImage.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/BufferedImage.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/BufferedImageGLInfo.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/BufferedImageGLInfo.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/DisplayPortCalculator.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/DisplayPortCalculator.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/DisplayPortMetrics.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/DisplayPortMetrics.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/DrawTimingQueue.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/DrawTimingQueue.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/DynamicToolbarAnimator.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/DynamicToolbarAnimator.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/FloatSize.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/FloatSize.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/FullScreenState.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/FullScreenState.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/ImmutableViewportMetrics.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/ImmutableViewportMetrics.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/IntSize.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/IntSize.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/Layer.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/Layer.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/LayerRenderer.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/LayerRenderer.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/LayerView.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/LayerView.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/NativePanZoomController.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/NativePanZoomController.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/Overscroll.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/Overscroll.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/OverscrollEdgeEffect.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/OverscrollEdgeEffect.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/PanZoomController.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PanZoomController.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/PanZoomTarget.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PanZoomTarget.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/PanningPerfAPI.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PanningPerfAPI.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/PluginLayer.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PluginLayer.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/PointUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/PointUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/ProgressiveUpdateData.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/ProgressiveUpdateData.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/RectUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/RectUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/RenderTask.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/RenderTask.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/ScrollbarLayer.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/ScrollbarLayer.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/SimpleScaleGestureDetector.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/SimpleScaleGestureDetector.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/StackScroller.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/StackScroller.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/SubdocumentScrollHelper.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/SubdocumentScrollHelper.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/TextureGenerator.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/TextureGenerator.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/TextureReaper.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/TextureReaper.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/TouchEventHandler.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/TouchEventHandler.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/ViewTransform.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/ViewTransform.java
rename from mobile/android/base/java/org/mozilla/gecko/gfx/VirtualLayer.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/VirtualLayer.java
rename from mobile/android/base/java/org/mozilla/gecko/mozglue/ByteBufferInputStream.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/ByteBufferInputStream.java
rename from mobile/android/base/java/org/mozilla/gecko/mozglue/DirectBufferAllocator.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/DirectBufferAllocator.java
rename from mobile/android/base/java/org/mozilla/gecko/mozglue/GeckoLoader.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/GeckoLoader.java
rename from mobile/android/base/java/org/mozilla/gecko/mozglue/JNIObject.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/JNIObject.java
rename from mobile/android/base/java/org/mozilla/gecko/mozglue/NativeReference.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/NativeReference.java
rename from mobile/android/base/java/org/mozilla/gecko/mozglue/NativeZip.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/NativeZip.java
rename from mobile/android/base/java/org/mozilla/gecko/mozglue/SafeIntent.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/SafeIntent.java
rename from mobile/android/base/java/org/mozilla/gecko/notifications/AppNotificationClient.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/AppNotificationClient.java
rename from mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/NotificationClient.java
rename from mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHandler.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/NotificationHandler.java
rename from mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/NotificationHelper.java
rename from mobile/android/base/java/org/mozilla/gecko/notifications/NotificationReceiver.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/NotificationReceiver.java
rename from mobile/android/base/java/org/mozilla/gecko/notifications/NotificationService.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/NotificationService.java
rename from mobile/android/base/java/org/mozilla/gecko/notifications/ServiceNotificationClient.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/notifications/ServiceNotificationClient.java
rename from mobile/android/base/java/org/mozilla/gecko/permissions/PermissionBlock.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/permissions/PermissionBlock.java
rename from mobile/android/base/java/org/mozilla/gecko/permissions/Permissions.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/permissions/Permissions.java
rename from mobile/android/base/java/org/mozilla/gecko/permissions/PermissionsHelper.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/permissions/PermissionsHelper.java
rename from mobile/android/base/java/org/mozilla/gecko/restrictions/DefaultConfiguration.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/DefaultConfiguration.java
rename from mobile/android/base/java/org/mozilla/gecko/restrictions/GuestProfileConfiguration.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/GuestProfileConfiguration.java
rename from mobile/android/base/java/org/mozilla/gecko/restrictions/Restrictable.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/Restrictable.java
rename from mobile/android/base/java/org/mozilla/gecko/restrictions/RestrictedProfileConfiguration.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/RestrictedProfileConfiguration.java
rename from mobile/android/base/java/org/mozilla/gecko/restrictions/RestrictionCache.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/RestrictionCache.java
rename from mobile/android/base/java/org/mozilla/gecko/restrictions/RestrictionConfiguration.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/RestrictionConfiguration.java
rename from mobile/android/base/java/org/mozilla/gecko/restrictions/RestrictionProvider.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/RestrictionProvider.java
rename from mobile/android/base/java/org/mozilla/gecko/restrictions/Restrictions.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/restrictions/Restrictions.java
rename from mobile/android/base/java/org/mozilla/gecko/sqlite/ByteBufferInputStream.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/sqlite/ByteBufferInputStream.java
rename from mobile/android/base/java/org/mozilla/gecko/sqlite/MatrixBlobCursor.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/sqlite/MatrixBlobCursor.java
rename from mobile/android/base/java/org/mozilla/gecko/sqlite/SQLiteBridge.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/sqlite/SQLiteBridge.java
rename from mobile/android/base/java/org/mozilla/gecko/sqlite/SQLiteBridgeException.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/sqlite/SQLiteBridgeException.java
rename from mobile/android/base/java/org/mozilla/gecko/util/ActivityResultHandler.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ActivityResultHandler.java
rename from mobile/android/base/java/org/mozilla/gecko/util/ActivityResultHandlerMap.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ActivityResultHandlerMap.java
rename from mobile/android/base/java/org/mozilla/gecko/util/ActivityUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ActivityUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/BundleEventListener.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/BundleEventListener.java
rename from mobile/android/base/java/org/mozilla/gecko/util/Clipboard.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/Clipboard.java
rename from mobile/android/base/java/org/mozilla/gecko/util/ContextUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/DateUtil.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/DateUtil.java
rename from mobile/android/base/java/org/mozilla/gecko/util/DrawableUtil.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/DrawableUtil.java
rename from mobile/android/base/java/org/mozilla/gecko/util/EventCallback.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/EventCallback.java
rename from mobile/android/base/java/org/mozilla/gecko/util/FileUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/FileUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/FloatUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/FloatUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/GamepadUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/GamepadUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/GeckoBackgroundThread.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/GeckoBackgroundThread.java
rename from mobile/android/base/java/org/mozilla/gecko/util/GeckoEventListener.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/GeckoEventListener.java
rename from mobile/android/base/java/org/mozilla/gecko/util/GeckoJarReader.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/GeckoJarReader.java
rename from mobile/android/base/java/org/mozilla/gecko/util/GeckoRequest.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/GeckoRequest.java
rename from mobile/android/base/java/org/mozilla/gecko/util/HardwareCodecCapabilityUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/HardwareCodecCapabilityUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/HardwareUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/HardwareUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/INIParser.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/INIParser.java
rename from mobile/android/base/java/org/mozilla/gecko/util/INISection.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/INISection.java
rename from mobile/android/base/java/org/mozilla/gecko/util/IOUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IOUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/InputOptionsUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/InputOptionsUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/IntentUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/JSONUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/JSONUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/MenuUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/MenuUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/NativeEventListener.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/NativeEventListener.java
rename from mobile/android/base/java/org/mozilla/gecko/util/NativeJSContainer.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/NativeJSContainer.java
rename from mobile/android/base/java/org/mozilla/gecko/util/NativeJSObject.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/NativeJSObject.java
rename from mobile/android/base/java/org/mozilla/gecko/util/NetworkUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/NetworkUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/NonEvictingLruCache.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/NonEvictingLruCache.java
rename from mobile/android/base/java/org/mozilla/gecko/util/PrefUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/PrefUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/ProxySelector.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
rename from mobile/android/base/java/org/mozilla/gecko/util/RawResource.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/RawResource.java
rename from mobile/android/base/java/org/mozilla/gecko/util/StringUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/StringUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/ThreadUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ThreadUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/util/UIAsyncTask.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/UIAsyncTask.java
rename from mobile/android/base/java/org/mozilla/gecko/util/UUIDUtil.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/UUIDUtil.java
rename from mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/UnusedResourcesUtil.java
rename from mobile/android/base/java/org/mozilla/gecko/util/WeakReferenceHandler.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/WeakReferenceHandler.java
rename from mobile/android/base/java/org/mozilla/gecko/util/WebActivityMapper.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/WebActivityMapper.java
rename from mobile/android/base/java/org/mozilla/gecko/util/WindowUtils.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/WindowUtils.java
rename from mobile/android/base/java/org/mozilla/gecko/widget/SwipeDismissListViewTouchListener.java
rename to mobile/android/geckoview/src/main/java/org/mozilla/gecko/widget/SwipeDismissListViewTouchListener.java
--- a/mobile/android/tests/background/junit4/src/com/keepsafe/switchboard/TestSwitchboard.java
+++ b/mobile/android/tests/background/junit4/src/com/keepsafe/switchboard/TestSwitchboard.java
@@ -1,21 +1,19 @@
 package com.keepsafe.switchboard;
 
 import android.content.Context;
-import android.util.Log;
 
-import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mozilla.gecko.background.testhelpers.TestRunner;
-import org.mozilla.gecko.util.Experiments;
+import org.mozilla.gecko.Experiments;
 import org.mozilla.gecko.util.IOUtils;
 import org.robolectric.RuntimeEnvironment;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
 import java.io.ByteArrayOutputStream;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;