Firefox for iOS
Switch branches/tags
Clone or download
Permalink
Failed to load latest commit information.
Account Bug 1504041 - Set the deployment target to iOS11. (#4356) Nov 2, 2018
AccountTests No Bug - Update version to 14.0 Sep 10, 2018
Client.xcodeproj Bug 1504777 - Remove oldStrings. Move strings that are in 2 different… Nov 7, 2018
Client Bug 1503189 - Search tabs not properly checking if search results cha… Nov 8, 2018
ClientTests Bug 1499058 - TabDisplayManager use chained/imperative operation que… Oct 29, 2018
Docs Bug 1455013 - Wikipedia is broken in Reader Mode (#3836) Apr 19, 2018
Extensions Bug 1497194 - Cancel button does not dismiss Siri Shortcuts screen. (#… Oct 9, 2018
FxA Bug 1481673 - Fix about half of the warnings. (#4117) Aug 8, 2018
L10nSnapshotTests Bug 1406477 - Code quality: rename BaseTestCase.waitfor* to BaseTestC… Oct 30, 2018
MarketingUITests No Bug - Update version to 14.0 Sep 10, 2018
Providers Bug 1481674 - New send tab system send tab to additional device (#4242) Sep 18, 2018
Push Bug 1504041 - Set the deployment target to iOS11. (#4356) Nov 2, 2018
PushTests Bug 1364309 - Upgrade ecec to 0.9.0. (#2721) r=jhugman Jun 20, 2017
Shared Bug 1504041 - Set the deployment target to iOS11. (#4356) Nov 2, 2018
SharedTests No Bug - Update version to 14.0 Sep 10, 2018
Storage Bug 1504041 - Set the deployment target to iOS11. (#4356) Nov 2, 2018
StoragePerfTests [nobug, tests] Storage perf tests are too slow, reduce loop counts (#… Sep 13, 2018
StorageTests Bug 1504041 - Set the deployment target to iOS11. (#4356) Nov 2, 2018
Sync Bug 1504041 - Set the deployment target to iOS11. (#4356) Nov 2, 2018
SyncIntegrationTests Bug 1472709 - XCUITest SyncIntegration test starting on Desktop (#4361) Nov 8, 2018
SyncTelemetry No Bug - Update version to 14.0 Sep 10, 2018
SyncTelemetryTests Bug 1491953 - SyncTelemetryTests - Intermittent failure in EventTests… Sep 17, 2018
SyncTests No Bug - Update version to 14.0 Sep 10, 2018
ThirdParty Merge Nimbledroid branch to master. (#4055) Aug 27, 2018
UITests Bug 1494262 - UITestsFixLoginManager (#4267) Oct 2, 2018
XCUITests Bug 1472709 - XCUITest SyncIntegration test starting on Desktop (#4361) Nov 8, 2018
fastlane Update SnapshotHelper.swift Sep 26, 2018
test-fixtures Bug 1487515 - XCUITest: Use internal web server (#4249) Sep 24, 2018
.gitattributes No Bug - Exclude Thirdparty files from github language stats. (#2132) Sep 29, 2016
.gitignore Add initial sync integration test (#3907) May 24, 2018
.swiftlint.yml No Bug - Reenable swiftlint. Fix a small number of linting errors. (#… Oct 13, 2017
AUTHORS Update AUTHORS Mar 22, 2017
Cartfile Use a fork of EarlGrey to avoid build issues Sep 26, 2018
Cartfile.resolved Bug 1493107 - XCUITest work: Update Mappa Mundi and tests (#4289) Oct 8, 2018
Client-Bridging-Header.h No Bug - Remove unused files (#3815) Apr 4, 2018
Dangerfile No Bug - Add a few linting rules via Danger. (#3369) Oct 27, 2017
Gemfile No Bug - Reenable swiftlint. Fix a small number of linting errors. (#… Oct 13, 2017
ISSUE_TEMPLATE.md No bug - Add an issue template encouraging people to create a bugzill… Jul 23, 2016
Jenkinsfile Bug 1505107 - XCUI SyncIntegration tests re-enable (#4360) Nov 7, 2018
L10nSnapshotTests-Info.plist Bug 1247624 - Reset snapshot test schemes so that they run properly u… Feb 16, 2016
LICENSE Initial import Nov 4, 2014
Leanplum.json Create Leanplum.json Aug 25, 2017
MMA.md Bug 1409886 - Add a LeanPlum event for when a user clicks on a Pocket… Oct 23, 2017
PULL_REQUEST_TEMPLATE Create PULL_REQUEST_TEMPLATE Nov 10, 2017
README.md Update README.md (#4349) Oct 30, 2018
Romefile [nobug,build] Rome config used Carthage update, not bootstrap (#3862) Apr 25, 2018
bootstrap.sh Bug 1489275 - Siri shortcuts for opening a new tab (#4208) Sep 14, 2018
buddybuild_carthage_command.sh [No Bug] Setting Rome off for test builds (#3864) Apr 27, 2018
buddybuild_postbuild.sh Merge Nimbledroid branch to master. (#4055) Aug 27, 2018
buddybuild_postclone.sh Bug 1491222 - XCUITests enable the tests for Fennec schema (#4233) Sep 18, 2018
buddybuild_prebuild.sh No Bug - Update Sentry DSN for 14.0 Sep 18, 2018
codecov.yml Bug 1411757 - Eliminate codecov failures (#3383) Oct 27, 2017
l10n-screenshots.sh Bug 1406515 — L10n screenshots for Photon, & ScreenGraph Evolution. (#… Nov 8, 2017
package-lock.json Bug 1486533 - Update lodash dependency (#4175) Aug 27, 2018
package.json Bug 1486533 - Update lodash dependency (#4175) Aug 27, 2018
setup_build_tools.sh Bug 1408127 - Integrate a pre-processor for user scripts (#3585) Jan 22, 2018
shipping_locales.txt No Bug - Added mr locale to master (#4091) Jul 30, 2018
webpack.config.js Bug 1483079 - Update Node package.json dependencies (#4135) Aug 14, 2018

README.md

Firefox for iOS codebeat badge BuddyBuild codecov

Download on the App Store.

This branch (master)

This branch is for mainline development that will ship in v15.0.

This branch only works with Xcode 10.0 and supports iOS 10.3 and above

This branch is written in Swift 4.2

Please make sure you aim your pull requests in the right direction.

For bug fixes and features for a specific release use the version branch.

Getting involved

We encourage you to participate in this open source project. We love Pull Requests, Bug Reports, ideas, (security) code reviews or any kind of positive contribution. Please read the Community Participation Guidelines.

Want to contribute but don't know where to start? Here is a list of Good First Bugs.

Likewise, the design and UX is still in flux. Don't get attached to them. They will change tomorrow!

GitHub issues are enabled on this repository, but we encourage you to file a bug (see above). We'll accept issues to track work items that don't yet have a pull request, and also as an early funnel for bug reports, but Bugzilla is the source of truth for lots of good reasons — issues will be shifted into Bugzilla, and pull requests need a bug number.

Building the code

As of Oct 2018, this project requires Xcode 10.

  1. Install the latest Xcode developer tools from Apple.
  2. Install Carthage
    brew update
    brew install carthage
  3. Clone the repository:
    git clone https://github.com/mozilla-mobile/firefox-ios
  4. Pull in the project dependencies:
    cd firefox-ios
    sh ./bootstrap.sh
  5. Open Client.xcodeproj in Xcode.
  6. Build the Fennec scheme in Xcode.

Building User Scripts

User Scripts (JavaScript injected into the WKWebView) are compiled, concatenated and minified using webpack. User Scripts to be aggregated are placed in the following directories:

/Client
|-- /Frontend
    |-- /UserContent
        |-- /UserScripts
            |-- /AllFrames
            |   |-- /AtDocumentEnd
            |   |-- /AtDocumentStart
            |-- /MainFrame
                |-- /AtDocumentEnd
                |-- /AtDocumentStart

This reduces the total possible number of User Scripts down to four. The compiled output from concatenating and minifying the User Scripts placed in these folders resides in /Client/Assets and are named accordingly:

  • AllFramesAtDocumentEnd.js
  • AllFramesAtDocumentStart.js
  • MainFrameAtDocumentEnd.js
  • MainFrameAtDocumentStart.js

To simplify the build process, these compiled files are checked-in to this repository. When adding or editing User Scripts, these files can be re-compiled with webpack manually. This requires Node.js to be installed and all required npm packages can be installed by running npm install in the root directory of the project. User Scripts can be compiled by running the following npm command in the root directory of the project:

npm run build

Contributor guidelines

Creating a pull request

  • All pull requests must be associated with a specific bug in Bugzilla.
  • If a bug corresponding to the fix does not yet exist, please file it.
  • You'll need to be logged in to create/update bugs, but note that Bugzilla allows you to sign in with your GitHub account.
  • Use the bug number/title as the name of pull request. For example, a pull request for bug 1135920 would be titled "Bug 1135920 - Create a top sites panel".
  • Finally, upload an attachment to the bug pointing to the GitHub pull request.
  1. Click Add an attachment.
  2. Next to File, click Paste text as attachment.
  3. Paste the URL of the GitHub pull request.
  4. Enter "Pull request" as the description.
  5. Finally, flag the pull request for review. Set the review field to "?", then enter the name of the person you'd like to review your patch. If you don't know whom to add as the reviewer, click suggested reviewers and select a name from the dropdown list.

Pro tip: To simplify the attachment step, install the Github Bugzilla Tweaks addon. This will add a button that takes care of the first four attachment steps for you.

Swift style

Whitespace

  • New code should not contain any trailing whitespace.
  • We recommend enabling both the "Automatically trim trailing whitespace" and "Including whitespace-only lines" preferences in Xcode (under Text Editing).
  • git rebase --whitespace=fix can also be used to remove whitespace from your commits before issuing a pull request.

Commits

  • Each commit should have a single clear purpose. If a commit contains multiple unrelated changes, those changes should be split into separate commits.
  • If a commit requires another commit to build properly, those commits should be squashed.
  • Follow-up commits for any review comments should be squashed. Do not include "Fixed PR comments", merge commits, or other "temporary" commits in pull requests.