SlideShare une entreprise Scribd logo
1  sur  83
Télécharger pour lire hors ligne
@pati_gallardo
TurtleSec
@pati_gallardo
Turtle
Sec
@pati_gallardo
TurtleSec
...actually before 2005
2
@pati_gallardo
TurtleSec
But I have no money
At least not for this...
3
@pati_gallardo
TurtleSec
What does it take?
- Development needs people = money
- Maintenance needs people = money
- Hosting = money
4
@pati_gallardo
TurtleSec
What is the “browser business model”?
Google Search
About 1$ per user/year… maybe
5
@pati_gallardo
TurtleSec
I don’t have a deal now at least
Google is only interested once you have users
There is no bootstrapping process
6
@pati_gallardo
TurtleSec
0 budget1 dev
Open Source
Heh...
More a stunt
than a plan
7
@pati_gallardo
TurtleSec
@pati_gallardo
Upside is…
...it’s 2020?
8
@pati_gallardo
Turtle
Sec
Trying to build an
Open Source browser
in 2020
Patricia Aas
TechTown 2020
@pati_gallardo
Turtle
Sec
Patricia Aas - Trainer & Consultant
C++ Programmer, Application Security
Currently : TurtleSec
Previously : Vivaldi, Cisco Systems, Knowit, Opera Software
Master in Computer Science
Pronouns: she/her
First job, first browserSecondThird
Fourth
@pati_gallardo
TurtleSec
@pati_gallardo Clearly, I have a thing for browsers 11
@pati_gallardo
TurtleSec
@pati_gallardo
Why?
Technically challenging
I use it myself
Lots of other users
I believe in the web
12
@pati_gallardo
TurtleSec
@pati_gallardo
Outside of Firefox
this is the general
landscape of browsers
in 2020...
13
@pati_gallardo
TurtleSec
Konqueror Safari Chrome
Edge
Opera
KHTML Webkit Blink
KDE Apple Google
Vivaldi
Chromium
14
@pati_gallardo
Then I made a toy browser
A bit by accident 15
Isolating GPU Access
in its own process
Patricia Aas, TurtleSec
NDC TechTown 2018
Turtle
Sec
@pati_gallardo
Demo of Composition
...I might have made a browser...
...I might have decided to have a demo last night...
Turtle
Sec
@pati_gallardo
2018 Slide
@pati_gallardo
TurtleSec
@pati_gallardo
But I got busy
18
@pati_gallardo
TurtleSec
@pati_gallardo
I was doing on-prem international trainings
March 2020: everything got canceled
19
@pati_gallardo
TurtleSec
So…
I guess I suddenly have some time?
20
@pati_gallardo
TurtleSec
@pati_gallardo
TurtleBrowser
21
@pati_gallardo
TurtleSec
Skimming the surface
Bring-up time is Queen
No time for Depth First
22
So, if the last 10% of
functionality is 90% of the time...
..then the first 90% is 10% of
the time, right?
@pati_gallardo
TurtleSec
@pati_gallardo
GUI framework
23
Porting layer
@pati_gallardo
TurtleSec
@pati_gallardo
Qt ( C++ )
Qml
24
@pati_gallardo
TurtleSec
@pati_gallardo
C++ for business logic
Qml for GUI
25
@pati_gallardo
TurtleSec
What does Qml look like?
Imagine if JSON, JavaScript and CSS had a baby...
26
@pati_gallardo
TurtleSec
WebPage.qml
import QtQml 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import QtWebEngine 1.10
import "url.js" as URL
ColumnLayout {
AddressBar {
url: webView.url
onReload: webView.reload()
onBack: webView.goBack()
onForward: webView.goForward()
onGoToAddress: webView.typedText = address
}
WebEngineView {
id: webView
property string typedText: ""
onTypedTextChanged: {
webView.url = URL.construct(typedText)
}
}
}
@pati_gallardo
Importing Qml modules
Importing JS files
Custom Qml Component
Defined in a file in this
directory
QtWebEngine
Component
Imported on line 4
27
@pati_gallardo
TurtleSec
Advantage of Qml
Easy to change the GUI
28
@pati_gallardo
TurtleSec
@pati_gallardo
Desktop
WebView
29
@pati_gallardo
TurtleSec
@pati_gallardo
Chromium
Blink
QtWebEngine
This bit will get
complicated
30
@pati_gallardo
TurtleSec
@pati_gallardo
Build System 31
@pati_gallardo
TurtleSec
@pati_gallardo
CMake
32
@pati_gallardo
TurtleSec
@pati_gallardo
Dependency
Management 33
@pati_gallardo
TurtleSec
@pati_gallardo
Conan
34
@pati_gallardo
TurtleSec
@pati_gallardo
conan-qt
Eric Lemanissier
Config Qt modules
35
@pati_gallardo
TurtleSec
@pati_gallardo
CI/CD 36
@pati_gallardo
TurtleSec
@pati_gallardo
GitHub
Actions
37
@pati_gallardo
TurtleSec
@pati_gallardo
conan-cache
GitHub Action Hack
Stuff .conan into git
Push it to GitHub
GitHub LFS
38
@pati_gallardo
TurtleSec
@pati_gallardo
Docker Action
JavaScript Action
Docker Actions
are Linux only!
39
@pati_gallardo
TurtleSec
@pati_gallardo
Hack
Call shell script
from JavaScript
40
@pati_gallardo
TurtleSec
@pati_gallardo
Testing
41
@pati_gallardo
TurtleSec
@pati_gallardo
Qml
C++
GUI Driver?
42
@pati_gallardo
TurtleSec
@pati_gallardo
Licensing 43
@pati_gallardo
TurtleSec
@pati_gallardo
Chromium
Qt
Pretty Safe
Maneuverable
Remember, we
have no money
44
@pati_gallardo
TurtleSec
@pati_gallardo
- Collect Conan licenses
- Make qrc
- Make GUI to display
- MONITOR
45
@pati_gallardo
TurtleSec
MVP
Build/Tests Window“Update” Webview
ShortcutsPackaging
WebView TabsLicenses
46
@pati_gallardo
TurtleSec
@pati_gallardo
Packaging 47
@pati_gallardo
TurtleSec
@pati_gallardo
CPack
48
@pati_gallardo
TurtleSec
@pati_gallardo
Web Site 49
@pati_gallardo
TurtleSec
@pati_gallardo
GitHub Pages
Jekyll Theme
50
@pati_gallardo
TurtleSec
@pati_gallardo
Releases 51
@pati_gallardo
TurtleSec
@pati_gallardo
GitHub
Releases?
52
@pati_gallardo
TurtleSec
Web
Autocomplete Tab cyclingFind in Page
Menu/middle clickNotifications
Certificates Url/load displayDialogs
53
@pati_gallardo
TurtleSec
@pati_gallardo 54
Alpha Release
@pati_gallardo
TurtleSec
Alpha
Custom Shortcuts AccessibilitySessions
Design/StylingDevTools
UPDATE Webview LanguagesDownloads
55
@pati_gallardo
TurtleSec
@pati_gallardo
GUI Styling
56
@pati_gallardo
TurtleSec
@pati_gallardo
Qt Imagine
Style
57
@pati_gallardo
TurtleSec
@pati_gallardo
The Hard Parts
58
@pati_gallardo
TurtleSec
@pati_gallardo
Updating
Chromium
59
@pati_gallardo
TurtleSec
How Qt has
designed it
Start of 2020
Qt5.14
Qt5.15
7780
Chromium
2019
77 80
By the time a
new Qt
version is
released the
Chromium
version is
almost
a year old.
60
@pati_gallardo
TurtleSec
@pati_gallardo
Chromium browser
releases have to follow
Chromium releases.
NOT Qt releasesWe’re not
going to play
browser
61
@pati_gallardo
TurtleSec
How it has
to be
81
82 83
84
8588
87 86
Qt5.15
Qt5.14
80Start of 2020 Chrome
Vivaldi
77
62
@pati_gallardo
TurtleSec
@pati_gallardo
Sandboxing
63
@pati_gallardo
TurtleSec
@pati_gallardo
● Platform specific
● Qt has disabled
● Process architecture
different
64
@pati_gallardo
TurtleSec
NS(User)
NS(Pid)NS(Net)Web
Network
Filesystem System Calls
chroot seccomp, capset
Resources
setrlimit
Linux
65
@pati_gallardo
TurtleSec
@pati_gallardo
Proprietary Media 66
@pati_gallardo
TurtleSec
@pati_gallardo
- Codec Patents
- Free ffmpeg
- QtMultimedia?
67
@pati_gallardo
TurtleSec
@pati_gallardo 68
Beta Release
@pati_gallardo
TurtleSec
@pati_gallardo 69
@pati_gallardo
TurtleSec
Beta
Bookmarks HistoryNew page GUI
E ensionsPanel
Crash Reporting PrintingAuto Update
70
@pati_gallardo
TurtleSec
@pati_gallardo
Crash Reporting
71
@pati_gallardo
TurtleSec
@pati_gallardo
Sentry
72
@pati_gallardo
TurtleSec
Server
Issue reportLinux browser
Stack tracesMacOS browser
DeduplicationWindows browser
73
@pati_gallardo
TurtleSec
@pati_gallardo Mobile Alpha 74
@pati_gallardo
TurtleSec
@pati_gallardo
Embedding
Platform
WebViews
75
@pati_gallardo
TurtleSec
@pati_gallardo
QtWebView 76
@pati_gallardo
TurtleSec
Mobile
UX Intent integrationTesting
Intro ScreenApproval
Android build iOS buildFeedback
77
@pati_gallardo
TurtleSec
@pati_gallardo
August 2020
78
@pati_gallardo
TurtleSec
Making a browser is not a one person job
Just to keep up with Chromium is a full/part-time job
But you can get pretty far with just one person
And little or no money
79
@pati_gallardo
TurtleSec
We need a way to pay for Open Source Software
GitHub Sponsor?
80
@pati_gallardo
TurtleSec
0 budget1 dev
Open Source
TurtleBrowser
It kinda
works?
81
@pati_gallardo
TurtleSec
@pati_gallardo
Turtle
Sec
@pati_gallardo
Turtle
Sec
Questions?
Photos from pixabay.com
Patricia Aas, TurtleSec

Contenu connexe

Tendances

SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
Fred Sauer
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
Ariya Hidayat
 

Tendances (20)

Bootiful Development with Spring Boot and React - Richmond JUG 2018
Bootiful Development with Spring Boot and React - Richmond JUG 2018Bootiful Development with Spring Boot and React - Richmond JUG 2018
Bootiful Development with Spring Boot and React - Richmond JUG 2018
 
Let your tests drive your code
Let your tests drive your codeLet your tests drive your code
Let your tests drive your code
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...
 
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
 
Os Johnson
Os JohnsonOs Johnson
Os Johnson
 
GOTO - The Ultimate Android Lock Screen
GOTO - The Ultimate Android Lock ScreenGOTO - The Ultimate Android Lock Screen
GOTO - The Ultimate Android Lock Screen
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
 
What Going All-Remote Taught Us About Appsec and Testing Shortfalls
What Going All-Remote Taught Us About Appsec and Testing ShortfallsWhat Going All-Remote Taught Us About Appsec and Testing Shortfalls
What Going All-Remote Taught Us About Appsec and Testing Shortfalls
 
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019
 
Bootiful Development with Spring Boot and React - Belfast JUG 2018
Bootiful Development with Spring Boot and React - Belfast JUG 2018Bootiful Development with Spring Boot and React - Belfast JUG 2018
Bootiful Development with Spring Boot and React - Belfast JUG 2018
 
What did you inspec?
What did you inspec?What did you inspec?
What did you inspec?
 
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
 
Leveraging a distributed architecture to your advantage
Leveraging a distributed architecture to your advantageLeveraging a distributed architecture to your advantage
Leveraging a distributed architecture to your advantage
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019
 
When Web meet Native App
When Web meet Native AppWhen Web meet Native App
When Web meet Native App
 
Continuous Delivery As Code
Continuous Delivery As CodeContinuous Delivery As Code
Continuous Delivery As Code
 
Mocks, Stubs and Fakes. ¿What Else?
Mocks, Stubs and Fakes. ¿What Else?Mocks, Stubs and Fakes. ¿What Else?
Mocks, Stubs and Fakes. ¿What Else?
 

Similaire à Trying to build an Open Source browser in 2020

Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil TayarDocker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Applitools
 
Polymer
Polymer Polymer
Polymer
jskvara
 

Similaire à Trying to build an Open Source browser in 2020 (20)

Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil TayarDocker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
 
Isolating GPU Access in its Own Process
Isolating GPU Access in its Own ProcessIsolating GPU Access in its Own Process
Isolating GPU Access in its Own Process
 
Мы ведь тоже люди. Еретическая лекция про юзабилити инструментов разработчика
Мы ведь тоже люди. Еретическая лекция про юзабилити инструментов разработчикаМы ведь тоже люди. Еретическая лекция про юзабилити инструментов разработчика
Мы ведь тоже люди. Еретическая лекция про юзабилити инструментов разработчика
 
Isolating GPU Access in its Own Process (Foss-North 2018)
Isolating GPU Access in its Own Process (Foss-North 2018)Isolating GPU Access in its Own Process (Foss-North 2018)
Isolating GPU Access in its Own Process (Foss-North 2018)
 
The Web Components interoperability challenge - Horacio Gonzalez - Codemotion...
The Web Components interoperability challenge - Horacio Gonzalez - Codemotion...The Web Components interoperability challenge - Horacio Gonzalez - Codemotion...
The Web Components interoperability challenge - Horacio Gonzalez - Codemotion...
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018
 
Gretty: Managing Web Containers with Gradle
Gretty: Managing Web Containers with GradleGretty: Managing Web Containers with Gradle
Gretty: Managing Web Containers with Gradle
 
Azure from scratch part 4
Azure from scratch part 4Azure from scratch part 4
Azure from scratch part 4
 
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
 
Polymer
Polymer Polymer
Polymer
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
 
Hacking the browser with puppeteer sharp .NET conf AR 2018
Hacking the browser with puppeteer sharp .NET conf AR 2018Hacking the browser with puppeteer sharp .NET conf AR 2018
Hacking the browser with puppeteer sharp .NET conf AR 2018
 
Php on the Web and Desktop
Php on the Web and DesktopPhp on the Web and Desktop
Php on the Web and Desktop
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
 
Architecture in Ajax Applications
Architecture in Ajax ApplicationsArchitecture in Ajax Applications
Architecture in Ajax Applications
 
Create rich web stories with Drupal 8 and paragraphs
Create rich web stories with Drupal 8 and paragraphsCreate rich web stories with Drupal 8 and paragraphs
Create rich web stories with Drupal 8 and paragraphs
 
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
 
How to speedup GWT compiler
How to speedup GWT compilerHow to speedup GWT compiler
How to speedup GWT compiler
 

Plus de Patricia Aas

Plus de Patricia Aas (20)

NDC TechTown 2023_ Return Oriented Programming an introduction.pdf
NDC TechTown 2023_ Return Oriented Programming an introduction.pdfNDC TechTown 2023_ Return Oriented Programming an introduction.pdf
NDC TechTown 2023_ Return Oriented Programming an introduction.pdf
 
Telling a story
Telling a storyTelling a story
Telling a story
 
Return Oriented Programming, an introduction
Return Oriented Programming, an introductionReturn Oriented Programming, an introduction
Return Oriented Programming, an introduction
 
I can't work like this (KDE Academy Keynote 2021)
I can't work like this (KDE Academy Keynote 2021)I can't work like this (KDE Academy Keynote 2021)
I can't work like this (KDE Academy Keynote 2021)
 
Dependency Management in C++ (NDC TechTown 2021)
Dependency Management in C++ (NDC TechTown 2021)Dependency Management in C++ (NDC TechTown 2021)
Dependency Management in C++ (NDC TechTown 2021)
 
Introduction to Memory Exploitation (Meeting C++ 2021)
Introduction to Memory Exploitation (Meeting C++ 2021)Introduction to Memory Exploitation (Meeting C++ 2021)
Introduction to Memory Exploitation (Meeting C++ 2021)
 
Classic Vulnerabilities (MUCplusplus2022).pdf
Classic Vulnerabilities (MUCplusplus2022).pdfClassic Vulnerabilities (MUCplusplus2022).pdf
Classic Vulnerabilities (MUCplusplus2022).pdf
 
Classic Vulnerabilities (ACCU Keynote 2022)
Classic Vulnerabilities (ACCU Keynote 2022)Classic Vulnerabilities (ACCU Keynote 2022)
Classic Vulnerabilities (ACCU Keynote 2022)
 
Introduction to Memory Exploitation (CppEurope 2021)
Introduction to Memory Exploitation (CppEurope 2021)Introduction to Memory Exploitation (CppEurope 2021)
Introduction to Memory Exploitation (CppEurope 2021)
 
Thoughts On Learning A New Programming Language
Thoughts On Learning A New Programming LanguageThoughts On Learning A New Programming Language
Thoughts On Learning A New Programming Language
 
The Anatomy of an Exploit (NDC TechTown 2019)
The Anatomy of an Exploit (NDC TechTown 2019)The Anatomy of an Exploit (NDC TechTown 2019)
The Anatomy of an Exploit (NDC TechTown 2019)
 
Elections: Trust and Critical Infrastructure (NDC TechTown 2019)
Elections: Trust and Critical Infrastructure (NDC TechTown 2019)Elections: Trust and Critical Infrastructure (NDC TechTown 2019)
Elections: Trust and Critical Infrastructure (NDC TechTown 2019)
 
The Anatomy of an Exploit (NDC TechTown 2019))
The Anatomy of an Exploit (NDC TechTown 2019))The Anatomy of an Exploit (NDC TechTown 2019))
The Anatomy of an Exploit (NDC TechTown 2019))
 
Elections, Trust and Critical Infrastructure (NDC TechTown)
Elections, Trust and Critical Infrastructure (NDC TechTown)Elections, Trust and Critical Infrastructure (NDC TechTown)
Elections, Trust and Critical Infrastructure (NDC TechTown)
 
Survival Tips for Women in Tech (JavaZone 2019)
Survival Tips for Women in Tech (JavaZone 2019) Survival Tips for Women in Tech (JavaZone 2019)
Survival Tips for Women in Tech (JavaZone 2019)
 
Embedded Ethics (EuroBSDcon 2019)
Embedded Ethics (EuroBSDcon 2019)Embedded Ethics (EuroBSDcon 2019)
Embedded Ethics (EuroBSDcon 2019)
 
Chromium Sandbox on Linux (NDC Security 2019)
Chromium Sandbox on Linux (NDC Security 2019)Chromium Sandbox on Linux (NDC Security 2019)
Chromium Sandbox on Linux (NDC Security 2019)
 
Keynote: Deconstructing Privilege (C++ on Sea 2019)
Keynote: Deconstructing Privilege (C++ on Sea 2019)Keynote: Deconstructing Privilege (C++ on Sea 2019)
Keynote: Deconstructing Privilege (C++ on Sea 2019)
 
The Anatomy of an Exploit (CPPP 2019)
The Anatomy of an Exploit (CPPP 2019)The Anatomy of an Exploit (CPPP 2019)
The Anatomy of an Exploit (CPPP 2019)
 
Make it Fixable (NDC Copenhagen 2018)
Make it Fixable (NDC Copenhagen 2018)Make it Fixable (NDC Copenhagen 2018)
Make it Fixable (NDC Copenhagen 2018)
 

Dernier

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Dernier (20)

Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 

Trying to build an Open Source browser in 2020