Swift JavaScript HTML Python CSS Objective-C Other
Switch branches/tags
Clone or download
Permalink
Failed to load latest commit information.
Account No Bug - Update version to v13.0 (#4051) Jul 18, 2018
AccountTests No Bug - Update version to v13.0 (#4051) Jul 18, 2018
Client.xcodeproj Bug 1473249 - XCUISmoketest add checks to add Default Top Sites test … Jul 20, 2018
Client Bug 1474519 - Undo closed tabs toast should appear when closing all t… Jul 20, 2018
ClientTests Bug 1475516 - select non private tab after undo of Close all tabs (#4052 Jul 19, 2018
Docs Bug 1455013 - Wikipedia is broken in Reader Mode (#3836) Apr 19, 2018
Extensions No Bug - Update version to v13.0 (#4051) Jul 18, 2018
FxA Bug 1418075 - Memory leaks in FxA (#3469) Nov 20, 2017
L10nSnapshotTests No Bug - Update version to v13.0 (#4051) Jul 18, 2018
MarketingUITests No Bug - Update version to v13.0 (#4051) Jul 18, 2018
Providers Bug 1474174 - Use AnyObject for class-only protocols (#4010) Jul 11, 2018
Push No Bug - Remove whitespace (#4013) Jul 9, 2018
PushTests Bug 1364309 - Upgrade ecec to 0.9.0. (#2721) r=jhugman Jun 20, 2017
Shared No Bug - Update version to v13.0 (#4051) Jul 18, 2018
SharedTests No Bug - Update version to v13.0 (#4051) Jul 18, 2018
Storage Bug 1421082 - Reports of Sync Not Working After Successful Login (#4063) Jul 20, 2018
StoragePerfTests No Bug - Update version to v13.0 (#4051) Jul 18, 2018
StorageTests No Bug - Update version to v13.0 (#4051) Jul 18, 2018
Sync No Bug - Update version to v13.0 (#4051) Jul 18, 2018
SyncIntegrationTests Bug 1472708 - New Integration test: Password (#4014) Jul 11, 2018
SyncTelemetry No Bug - Update version to v13.0 (#4051) Jul 18, 2018
SyncTelemetryTests No Bug - Update version to v13.0 (#4051) Jul 18, 2018
SyncTests No Bug - Update version to v13.0 (#4051) Jul 18, 2018
ThirdParty Bug 1173164 - Use FTS for Awesomebar searches (#4046) Jul 18, 2018
UITests No Bug - Update version to v13.0 (#4051) Jul 18, 2018
XCUITests Bug 1476543 - XCUITest Fix Intermittent failure DatabaseFixture· (#4047) Jul 20, 2018
fastlane No Bug - Remove whitespace (#4013) Jul 9, 2018
test-fixtures Bug 1472128 - Integration Bookmark Test uses DB (#3999) Jul 4, 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 Bug 1461734 - Update sentry-cocoa to 3.12.4 (#3930) May 15, 2018
Cartfile.resolved Bug 1461734 - Update sentry-cocoa to 3.12.4 (#3930) May 15, 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 1471569 - Update depedencies for sync integration tests (#3986) Jun 27, 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 (#3848) May 3, 2018
Romefile [nobug,build] Rome config used Carthage update, not bootstrap (#3862) Apr 25, 2018
bootstrap.sh Bug 1408127 - Integrate a pre-processor for user scripts (#3585) Jan 22, 2018
buddybuild_carthage_command.sh [No Bug] Setting Rome off for test builds (#3864) Apr 27, 2018
buddybuild_postbuild.sh No Bug - Add a few linting rules via Danger. (#3369) Oct 27, 2017
buddybuild_postclone.sh [nobug,build] npm install is noisy, silent flag will only report erro… Apr 27, 2018
buddybuild_prebuild.sh Bug 1456138 - Remove conditional UIFileSharingEnabled flag-setting fo… Apr 23, 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 1455013 - Wikipedia is broken in Reader Mode (#3836) Apr 19, 2018
package.json Bug 1455013 - Wikipedia is broken in Reader Mode (#3836) Apr 19, 2018
setup_build_tools.sh Bug 1408127 - Integrate a pre-processor for user scripts (#3585) Jan 22, 2018
shipping_locales.txt Bug 1464108 - Updated shipping_locales.txt for v12.x (#3949) May 24, 2018
webpack.config.js Bug 1435239 - Favicons not showing on the TabTray (#3625) Feb 5, 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 v11.0.

This branch only works with Xcode 9.3 and supports iOS 10, and 11.

This branch is written in Swift 4

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

For bug fixes and features for the upcoming v12.0 release, please see the v12.x branch. (Which may not exist yet)

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! https://mozilla.invisionapp.com/share/HA254M642#/screens/63057282?maintainScrollPosition=false

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 April 2018, this project requires Xcode 9.3.

  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.