GithubHelp home page GithubHelp logo

brave / brave-ios Goto Github PK

View Code? Open in Web Editor NEW
1.7K 67.0 441.0 847.7 MB

Brave iOS Browser

Home Page: https://brave.com

License: Mozilla Public License 2.0

Swift 95.31% HTML 0.92% CSS 0.36% JavaScript 2.79% Python 0.26% Ruby 0.16% Shell 0.20%
swift browser brave ios

brave-ios's Introduction

brave-ios's People

Contributors

bkmunar avatar brandon-t avatar cuba avatar danishjafri88 avatar darrinhenein avatar dusek avatar eoger avatar farhanpatel avatar garvankeeley avatar iccub avatar isabelrios avatar jhreis avatar jhugman avatar jumde avatar justindarc avatar kjozwiak avatar kylehickinson avatar ncalexan avatar nuo-xu avatar rnewman avatar soner-yuksel avatar srirambv avatar st3fan avatar stephenheaps avatar thebnich avatar tylerlacroix avatar uni-verse avatar varkor avatar vbudhram avatar wesj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

brave-ios's Issues

Issue Template Test

Hey there! Thanks for using Firefox!

We prefer to have bugs in Bugzilla. That way issues can be tracked and the rest of Mozilla can help us fix and verify issues as well.

We would love if you have found a bug to report it in Bugzilla. File a new bug

If you are having an issue building or running the project message us on IRC. There are lots of people who are around to help. We are on #mobile

Testing

Remove Reading List

Remove existing Reading List code. This feature may make a new appearance, but should be removed in the midterm.

Cookie Controls

Be able to manage / clear cookies. Functionality should be comparable to browser-ios

Block Scripts

let baseRule = [{'trigger':{'url-filter':'.*','resource-type':['script']},'action':{'type':'block'}}]

Main place of complication here regards domain exceptions.

If Global Script Blocking (GSB) is off a blacklist of domains must be tracked.

If GSB is on a whitelist of domains must be tracked.


Whenever GSB is changed, all domain-specific script settings are left alone.

Whenever a domain exception is created, it i stored in CoreData, and the adblock script rule rebuilt and reloaded. During rebuilding, CD is quiried to build the blacklist/whitelist

Domain flags will be tracked in CoreData:

shield_noScript
shield_allOff

let domainString = Domain.domainAndScheme(fromUrl: url)
let basePredicate = NSPredicate(format: "url == %@", domainString)

...

// Gives us `whitelist` if GSB is on
// Gives us `blacklist` if GSB is off
let exceptionListPredicate = NSPredicate(format: "shield_noScript == \(!shield_allOff)")
let exceptionListDomains = // ...

The new baseRule ends up being:

let baseJSON = [{'trigger':{'url-filter':'.*','resource-type':['script']},'action':{'type':'block'}}]

let exceptionListKey = GSB.isOn ? "unless-domain" : "if-domain"
baseJSON["trigger"][exceptionListKey] = exceptionListDomains

// Reload Lists

// Refresh Tab

There are two situations that blocking logic must be handled.

  • On creation of a tab's webview (can happen beyond just tab creation), content rules must be loaded into the webview's configuration
  • Reloaded on change

DuckDuckGo Integration Migration

Migrate existing DDG in private mode screens and functionality.

  • DDG popup screen when coming to Private Browsing for the first time
  • DDG label on private browsing
    • Only visible if DDG is not the default search engine for private mode
    • Tapping on it DDG label re-opens the pop up
  • Popup options must both work (Yes and No)
Label Popup
Screen Shot 2018-09-28 at 10.27.43 AM.png Screen Shot 2018-09-28 at 10.27.34 AM.png

Update App Icons

Update UI for Brave's primary branding:

  • Icons
  • App names
  • Bundle Ids

App Signing

Get app signed for prod/beta, and local device runs.

File System Lock for Private Mode

Private mode should lock the file system to prevent any accidental writes. This may take a bit of time, depending on the amount of write access currently being utilized.

Repair reading list tests.

Opening reader mode in XCUItests doesn't work, blank view is shown. Normally it works. For now the reading list tests are disabled, we should fix them soon.

Pull New Translations Into Project

Create scripts to "automatically" pull in new translations from Transifex and massage data into any necessary format for utilization.

Style changes

Update the project to use Brave icons and colors.

Brave Rewards

Maybe panel and setting to open webview, ledger integration

Update Readme

We need to update the ReadMe for Brave:

  • Store link
  • Brach explanations
  • Community / involvement information
  • Project setup (should be similar)
  • Contributor guidelines
  • Scheme support
  • Signing
  • JS Tips

Feature Migration

General ticket as validation of item completion below:

Porting existing code:

  • Tab bar
  • Bookmarks
  • Password managers
  • Search engines
  • Cookie controls
  • URP
  • Favorites

Blending features:

  • Pincode
  • Readermode
  • Saved logins
  • Private mode
  • ShareTo (“open in...”)

User Referral Promo (URP) Integration

Convert existing URP functionality. User Referral Promo is used to anonymously track referral codes from specific sources and retention metrics for a maximum of 90 days.

  • Move necessary files
  • Update preference locations for saved data [maybe] (see #61 (comment))
  • Connect any necessary function calls (calling into the URP files from AppDelegate, or where ever)
    • startApplication on AppDelegate is main contact point
  • URP authenticates against certificate authority, so must move necessary certs as well as coding in the checks (note, this is not cert pinning, just authority check). See https://github.com/brave/browser-ios/commit/506509f64f20ed89c15f97f8e79ee1f2eae98c46
  • Unit Tests

Please note: this does not include DAU integration.

Related:
#189

Search Engine Equality

Very current search engines are equivalent or a strict superset of current browser-ios project.

Also make sure browser source for related search engines is "Brave" (e.g. DDG).

Preference / Setting Migration

General

  • Save Login
  • Block Popups
  • Tab bar visibility†: Waiting on #67 and #70 (See BrowserViewController.swift:L2713)
  • Password Managers (GH Issue missing)

Privacy

  • Clear Private Data

Security

  • Passcode (Used FF's implementation over the old implementation)

Shields (in settings panel, no implementation)

  • Block Ads & Tracking
  • HTTPS Everywhere
  • Block Phishing & Malware
  • Block Scripts
  • Fingerprinting Protection: See BrowserViewController.swift:L2714

Support

  • Send crash reports and metrics
  • Report a bug
  • Privacy Policy
  • Terms of Use

Adblock Rules

Integrate new adblock rules into the ruleset lists.

Feature Removal

  • FxA
  • Telemetry/tracking
  • Onboarding
  • Top sites
  • Pocket
  • Reading List
  • Firefox sync

Project Setup

Project provisions, build steps and README, CI, Continuous Deployment

Cleanup Deprecation Warnings

Lots of deprecation or other random warnings. This should deal with any moderately easy warnings to fix. Anything requiring larger refactors or significant API changes should be dealt with individually.

Touch-Id DoS

STR -

  • Settings > Touch ID and Passcode > Enable Touch Id
  • Navigate to any site - say google.com
  • minimize the app, and open it again.

Actual Result - Infinite Touch Id Requests

JS DoS

<script>
   while(true) {
     alert(1);
   }
</script>

Test Plan

  • please see PR

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.