All Projects → brave → Browser Ios

brave / Browser Ios

Licence: mpl-2.0
Brave iOS Browser

Programming Languages

c
50402 projects - #5 most used programming language
swift
15916 projects

Projects that are alternatives of or similar to Browser Ios

Slack
🎉✨ Slack API client for Node and browsers.
Stars: ✭ 903 (-5.45%)
Mutual labels:  browser
Noodel
A programming language designed around supporting ASCII animation based code golfing challenges.
Stars: ✭ 8 (-99.16%)
Mutual labels:  browser
Hat.sh
encrypt and decrypt files in your browser. Fast, Secure client-side File Encryption and Decryption using the web crypto api
Stars: ✭ 886 (-7.23%)
Mutual labels:  browser
Webmidi
Tame the Web MIDI API. Send and receive MIDI messages with ease. Control instruments with user-friendly functions (playNote, sendPitchBend, etc.). React to MIDI input with simple event listeners (noteon, pitchbend, controlchange, etc.).
Stars: ✭ 906 (-5.13%)
Mutual labels:  browser
Node Webshark
webShark UI + API for NodeJS
Stars: ✭ 26 (-97.28%)
Mutual labels:  browser
Tbro
Visualization and management of denovo transcriptomes
Stars: ✭ 10 (-98.95%)
Mutual labels:  browser
Karma Event Driver Ext
use webdriverio like api in browser with karma lol
Stars: ✭ 17 (-98.22%)
Mutual labels:  browser
Navalia
A bullet-proof, fast, and reliable headless browser API
Stars: ✭ 950 (-0.52%)
Mutual labels:  browser
Uzbl
A web browser that adheres to the unix philosophy.
Stars: ✭ 938 (-1.78%)
Mutual labels:  browser
Bugz
🐛 Composable User Agent Detection using Ramda
Stars: ✭ 15 (-98.43%)
Mutual labels:  browser
Defiant.js
http://defiantjs.com
Stars: ✭ 907 (-5.03%)
Mutual labels:  browser
Console.md
Ever dreamed of rendering Markdown in the console? No. Neither had I.
Stars: ✭ 24 (-97.49%)
Mutual labels:  browser
Azure Sdk For Js
This repository is for active development of the Azure SDK for JavaScript (NodeJS & Browser). For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/en-us/javascript/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-js.
Stars: ✭ 872 (-8.69%)
Mutual labels:  browser
Text Layout
Fast implementation of a browser-like text layout engine, for Node and browsers
Stars: ✭ 19 (-98.01%)
Mutual labels:  browser
Awesome Mad Science
Delightful npm packages that make you say "wow, didn't know that was possible!"
Stars: ✭ 909 (-4.82%)
Mutual labels:  browser
Is Online
Check if the internet connection is up
Stars: ✭ 894 (-6.39%)
Mutual labels:  browser
Daily Front End News
前端每日前沿资讯推送
Stars: ✭ 9 (-99.06%)
Mutual labels:  browser
Regexanalyzer
Regular Expression Analyzer and Composer for Node.js / XPCOM / Browser Javascript, PHP, Python
Stars: ✭ 29 (-96.96%)
Mutual labels:  browser
Vdjviz
A lightweight immune repertoire browser
Stars: ✭ 21 (-97.8%)
Mutual labels:  browser
Brave Ios
Brave iOS Browser
Stars: ✭ 871 (-8.8%)
Mutual labels:  browser

We Moved!

Please see the new home and codebase for Brave on iOS over at our new repo: brave-ios.

This codebase is now depreciated and all tickets for Brave iOS should be filed and fixed over there.

To download the latest version of Brave iOS please visit the App Store.

Brave iOS Browser

Brave is based on Firefox iOS, most of the Brave-specific code is in the brave dir

Labels

When looking at browser-ios issues some issues have been labeled with:
v2 Relevant: Issues that might be relevant for the new codebase. Some of these will be fixed here, and others may not be.
v2 Only: Issues that will not be fixed on this codebase, but will be addressed in the new repo.

Why the Change?

The primary reason for this project's deprecation is to support Apple's WKWebView. Brave iOS is still utilizing UIWebView, which contains many website comptability issues. Although it is possible to handle this upgrade on browser-ios, rebuilding from a new fork provides many useful advantages. The complexity of upgrading to WKWebView touches most of the current project, and this seemed like an obvious time to switch project bases.

Adding Brave to your app to open links

Either ensure your app supports opening urls in a share menu or use this project https://github.com/brave/ios-open-thirdparty-browser to open links directly.

Setup

1. Install Xcode from the AppStore

2. Install the latest LTS version of Node.js

3. Install Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

4. Install Carthage:

brew install carthage

5. Download the source code:

git clone https://github.com/brave/browser-ios.git # this will download git if it isn't currently installed

6. Run the following commands:

cd browser-ios
./checkout.sh # this pulls Carthage dependencies
(cd brave && ./setup.sh your.fake.appid) # put in a fake unique app id if you want to build to device
open Client.xcodeproj

Note: building your own ad-hoc builds is supported see user device build

You will need a Apple developer account to run on your device.

Tests

Run Product>Test in Xcode to do so. Not all Firefox tests are passing yet.

Contribution Notes

Most of the code is in the brave/ directory. The primary design goal has been to preserve easy merging from Firefox iOS upstream, so hopefully code changes outside of that dir are minimal.

To find changes outside of brave/, look for #if BRAVE / #if !BRAVE (#if/#else/#endif is supported by Swift).

Adding Carthage modules

  1. Add line into Cartfile, run carthage bootstrap to update Cartfile.resolved
  2. Verify that your new module has been added to Cartfile.resolved
  3. Run checkout.sh
  4. In the Xcode Project, go to Client target settings, open the Build Phases tab and add a line such as
$(SRCROOT)/Carthage/Build/iOS/FRAMEWORKNAME.framework

Provisioning Profiles using a Team account

(This section doesn't apply to individual developer accounts, Xcode managed profiles seem to work fine in that case.)

Do not use 'Xcode managed profiles', there is no advantage to this, and debugging problems with that system is a dead end due to lack of transparency in that system.

brave/build-system/profiles has some handy scripts to download the adhoc or developer profiles and install them.

JS Tips

For anyone working with JS in iOS native, I recommend running and debugging your JS in an attached JS console. (Not using an edit/compile/debug cycle in Xcode). When you run from Xcode any iOS web view in the simulator (or attached device), you can then attach from Safari desktop (the Develop menu), and you get a JS console to work in.

We have various JS interpreters available: UIWebView, JavaScriptCore, and WKWebView.

The first is required if we are running JS on the web page, since we are using UIWebView. JavaScriptCore is a stand-alone JS engine that I believe is more up-to-date than UIWebView's. WKWebView will have the most modern JS engine, but requires instantiating a WKWebView for this purpose, which we would prefer to avoid as that is a heavy approach. UIWebView's JS engine is a few years old, and is quite primitive.

None of these are comparable to Safari iOS's JS engine, which is highly up-to-date in its capabilities but is not available to us.

Release Builds

brave/build-system/build-archive.sh does everything. When that completes, the Fabric app detects a new archive and asks to distribute to testers.

Misc Tips

If you get the dreaded "Launch Services Error 0": open ~/Library/Logs/CoreSimulator/CoreSimulator.log for info

Go to the Brave app folder for the most recently run simulator:

cd ~/Library/Developer/CoreSimulator/Devices && cd `ls -t | head -1` && cd data/Containers/Data/Application && cd `find . -iname "*brave*" | head -1 | xargs -I{} dirname {}`
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].