Compare commits
78
Commits
ci
..
64.0.3282.182
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e664528479 | ||
|
|
83a16596e6 | ||
|
|
7c6a4374f5 | ||
|
|
5b2034ff45 | ||
|
|
6807e7b388 | ||
|
|
71b5dc1b0b | ||
|
|
2bda9e45f6 | ||
|
|
530626fd21 | ||
|
|
4e8b70cb64 | ||
|
|
f4b6592dbc | ||
|
|
0d6534d9eb | ||
|
|
b869bb5b7b | ||
|
|
a6603ca827 | ||
|
|
881b4199f4 | ||
|
|
8f418f10d5 | ||
|
|
7a436cad38 | ||
|
|
ba521c5412 | ||
|
|
23623ffc1f | ||
|
|
ca0a121f19 | ||
|
|
65554f30c6 | ||
|
|
4f1fa500e3 | ||
|
|
00ad417ff8 | ||
|
|
af04dfea67 | ||
|
|
b26461b55f | ||
|
|
39f5761729 | ||
|
|
10cc8c8310 | ||
|
|
4c844ba92d | ||
|
|
d855bc2f8f | ||
|
|
bffc981dca | ||
|
|
fc970af553 | ||
|
|
fb79f25139 | ||
|
|
3f68ef470d | ||
|
|
ce004bc49a | ||
|
|
a99533f633 | ||
|
|
a300522aed | ||
|
|
1da96f0fca | ||
|
|
11994a352c | ||
|
|
4e39f7c900 | ||
|
|
eca32f09e9 | ||
|
|
a452a9356e | ||
|
|
0645ccf03a | ||
|
|
b81a196c71 | ||
|
|
8589334b98 | ||
|
|
df91ed0407 | ||
|
|
250ae9ffad | ||
|
|
cd354c6786 | ||
|
|
6d337a4945 | ||
|
|
2f1e3c26e1 | ||
|
|
be7e413b7a | ||
|
|
83e140c4f6 | ||
|
|
f8d7135ac8 | ||
|
|
4676d9b2ec | ||
|
|
256fe0ec37 | ||
|
|
415a0ea9e5 | ||
|
|
f5e5472dd4 | ||
|
|
b1b989dac9 | ||
|
|
1d039eb656 | ||
|
|
905432882c | ||
|
|
61ee5cb055 | ||
|
|
33f6df6958 | ||
|
|
82e9d2d28e | ||
|
|
2c679f5ff7 | ||
|
|
36827a2b1e | ||
|
|
d1ca11e008 | ||
|
|
18377261b0 | ||
|
|
a772e67318 | ||
|
|
02dfbb43dc | ||
|
|
e9a7ef7933 | ||
|
|
b8d531f546 | ||
|
|
5268ec2716 | ||
|
|
2a7bde2570 | ||
|
|
c94b463e4f | ||
|
|
a5367f7345 | ||
|
|
90c88fdce4 | ||
|
|
169509d3a9 | ||
|
|
1345e65a98 | ||
|
|
1a56155bee | ||
|
|
d425b41589 |
@@ -1,141 +0,0 @@
|
||||
name: Check git apply
|
||||
#permissions:
|
||||
# actions: none
|
||||
# checks: none
|
||||
# contents: none
|
||||
# deployments: none
|
||||
# issues: none
|
||||
# packages: none
|
||||
# pull-requests: write
|
||||
# repository-projects: none
|
||||
# security-events: none
|
||||
# statuses: none
|
||||
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'ci'
|
||||
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
rtag:
|
||||
description: 'uazo/bromite TAG or COMMIT'
|
||||
required: true
|
||||
default: ''
|
||||
|
||||
env:
|
||||
RTAG: ${{ github.event.inputs.rtag }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: "Get value from dispatch"
|
||||
run: |
|
||||
if [ -z "${RTAG}" ]; then
|
||||
echo "RTAG=$GITHUB_SHA" >> $GITHUB_ENV
|
||||
echo "RTAG=$RTAG"
|
||||
fi
|
||||
|
||||
- name: Prepare container
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y wget unzip tar sed dos2unix patchutils wiggle curl
|
||||
|
||||
wget https://github.com/uazo/superpatch/releases/latest/download/SuperPatchUtils.tar.gz
|
||||
tar xfz SuperPatchUtils.tar.gz
|
||||
rm SuperPatchUtils.tar.gz
|
||||
|
||||
git clone https://github.com/uazo/bromite-buildtools
|
||||
|
||||
wget https://github.com/ericchiang/pup/releases/download/v0.4.0/pup_v0.4.0_linux_amd64.zip
|
||||
unzip pup_v0.4.0_linux_amd64.zip
|
||||
rm pup_v0.4.0_linux_amd64.zip
|
||||
|
||||
BRANCH=$(curl https://github.com/uazo/bromite/branch_commits/$RTAG | ./pup -p li.branch:last-child a text{})
|
||||
if [ -z "${BRANCH}" ]; then
|
||||
BRANCH=$(curl https://github.com/uazo/bromite/branch_commits/$RTAG a | ./pup -p li.branch:first-child a text{})
|
||||
fi
|
||||
if [ -z "${BRANCH}" ]; then
|
||||
echo "Impossible to recover the base commit"
|
||||
exit 1
|
||||
fi
|
||||
echo "BRANCH=$BRANCH" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout 'uazo/bromite' ${{ env.BRANCH }}
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: 'uazo/bromite'
|
||||
ref: ${{ github.event.inputs.rtag }}
|
||||
path: 'bromite'
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Check chromium version
|
||||
run: |
|
||||
VERSION=$(cat bromite/build/RELEASE)
|
||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||
|
||||
- name: Download chromium ${{ env.VERSION }} sources
|
||||
run: |
|
||||
./bin/SuperPatchUtils bromite $RTAG chromium/src
|
||||
cd chromium/src
|
||||
git init
|
||||
git config user.email "you@example.com"
|
||||
git config user.name "Your Name"
|
||||
git add .
|
||||
git commit -m $VERSION
|
||||
git tag -a $VERSION -m $VERSION
|
||||
cd ../..
|
||||
|
||||
- name: Apply patches ${{ github.event.inputs.rtag }}
|
||||
run: |
|
||||
export HOME=$(pwd)
|
||||
cd ~/chromium/src
|
||||
|
||||
export SILENT=true
|
||||
export SKIPAUTOGENERATED=true
|
||||
bash ~/bromite-buildtools/apply-all-patch.sh || exit 1
|
||||
|
||||
rm -rf ~/bromite/build/patches-new/
|
||||
rm ~/bromite/build/bromite_patches_list_new.txt
|
||||
|
||||
- name: Export patches
|
||||
run: |
|
||||
export HOME=$(pwd)
|
||||
|
||||
cd ~/chromium/src
|
||||
bash ~/bromite-buildtools/export-all-patch.sh
|
||||
|
||||
cd ~/bromite
|
||||
rm -rf build/patches/*
|
||||
mv build/patches-new/* build/patches
|
||||
rm -rf build/patches-new/
|
||||
|
||||
- name: Check differences CHANGES=${{ env.CHANGES }}
|
||||
run: |
|
||||
cd bromite
|
||||
CHANGES=0 && git diff --quiet || CHANGES=1
|
||||
echo "CHANGES=$CHANGES" >> $GITHUB_ENV
|
||||
|
||||
if [[ CHANGES -eq 1 ]]; then
|
||||
git add build/patches/*.patch
|
||||
git diff --name-only --staged
|
||||
# MESSAGE=$(git diff --name-only --staged)
|
||||
# echo "MESSAGE='$MESSAGE'" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a #v3.12.0
|
||||
if: env.CHANGES == '1'
|
||||
with:
|
||||
path: bromite
|
||||
base: ${{ env.BRANCH }}
|
||||
#push-to-fork: uazo/bromite
|
||||
add-paths: |
|
||||
build/patches/*.patch
|
||||
commit-message: 'AUTOMATED - git apply results'
|
||||
title: Git apply result for ${{ env.BRANCH }} branch
|
||||
body: ${{ env.MESSAGE }}
|
||||
delete-branch: true
|
||||
branch-suffix: short-commit-hash
|
||||
@@ -1,7 +0,0 @@
|
||||
################################################################################
|
||||
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
|
||||
################################################################################
|
||||
|
||||
*.sqlite
|
||||
/.vs/ProjectSettings.json
|
||||
/.vs
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
# 64.0.3282.182
|
||||
* add support for domain-based adblock filters
|
||||
* optimized memory allocation for filters
|
||||
* updated AdBlock filters
|
||||
|
||||
# 64.0.3282.168
|
||||
* extension: allow playing youtube/vimeo videos in background (https://github.com/bromite/bromite/issues/16)
|
||||
* never fetch most popular sites for new tab initialization, disable logo on new tab page
|
||||
* some improvements to adblock filters
|
||||
* disabled signin (ungoogled-chromium) (https://github.com/bromite/bromite/issues/31 and https://github.com/bromite/bromite/issues/11)
|
||||
* disabled webRTC and crash uploaders (ungoogled-chromium)
|
||||
* disabled translate (ungoogled-chromium)
|
||||
* disabled Gaia & GCM (ungoogled-chromium)
|
||||
* added clear HTTP cache menu item (ungoogled-chromium)
|
||||
* disabled Google host detection (ungoogled-chromium)
|
||||
* disabled profile avatar downloading (ungoogled-chromium)
|
||||
* disabled intranet redirect detector (ungoogled-chromium)
|
||||
* disabled plugin untraceable URLs (ungoogled-chromium)
|
||||
|
||||
# 64.0.3282.149
|
||||
* updated AdBlock filters
|
||||
|
||||
# 63.0.3239.150
|
||||
* fixed crash when clicking on address bar lock (page info) or opening site settings (https://github.com/bromite/bromite/issues/28)
|
||||
* build H264 with NEON optimizations for ARMv7
|
||||
* updated AdBlock filters
|
||||
* more builds for arm64 architecture
|
||||
|
||||
# 63.0.3239.144
|
||||
* fixed invalid AdBlock filter rule blocking all connections (https://github.com/bromite/bromite/issues/26)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 63.0.3239.129
|
||||
* updated AdBlock filters
|
||||
|
||||
# 63.0.3239.122
|
||||
* disable webRTC completely (https://github.com/bromite/bromite/issues/9)
|
||||
* hyperlinks sanitization fixed and now accessible from Google logo click
|
||||
* now building and publishing SystemWebView apks
|
||||
|
||||
# 63.0.3239.118
|
||||
* limit impact of AMP-removal to not break tabs (https://github.com/bromite/bromite/issues/20)
|
||||
* fix DuckDuckGo and StartPage suggestions (https://github.com/bromite/bromite/issues/19)
|
||||
* revert /deep/ and ::shadow feature drop to attempt fixing DevTools support (https://github.com/bromite/bromite/issues/23)
|
||||
* remove also ads from search results
|
||||
* add Google search engine with English-only results, no RLZ and field trials
|
||||
* updated adBlock filters
|
||||
* fix build of x86 version (was broken in previous version)
|
||||
|
||||
# 63.0.3239.85
|
||||
* no suggest URL for DuckDuckGo (https://github.com/bromite/bromite/issues/19)
|
||||
* fixed 4chan blocking rule
|
||||
* limit AMP links cleanup to search results only (fixes broken images/news result tabs)
|
||||
* updated adBlock filters
|
||||
|
||||
# 63.0.3239.78
|
||||
* correctly set version and build numbers
|
||||
* updated adBlock filters
|
||||
|
||||
# 63.0.3239.73
|
||||
|
||||
# 63.0.3239.64
|
||||
* updated adblock filters
|
||||
* fixed an issue with incognito new tab
|
||||
* permanent disable for ToS/metrics and unused auto-updates check
|
||||
|
||||
# 63.0.3239.46
|
||||
* removed search engine geolocation default patch
|
||||
|
||||
# 63.0.3239.38
|
||||
|
||||
# 63.0.3239.27
|
||||
|
||||
# 63.0.3239.24
|
||||
* convert AMP search results to regular search results
|
||||
|
||||
# 63.0.3239.15
|
||||
* remove URL tracking from Google search results
|
||||
* disable webRTC by default (https://github.com/bromite/bromite/issues/9, still not working proper)
|
||||
* do not enable search engine geolocation by default
|
||||
* use own package name (closes https://github.com/bromite/bromite/issues/1)
|
||||
* use 64bit WebView process
|
||||
|
||||
# 63.0.3239.10
|
||||
* attempt enabling API keys (didn't work)
|
||||
* added StartPage search engine (closes https://github.com/bromite/bromite/issues/3)
|
||||
|
||||
# 63.0.3239.6
|
||||
* added Bromite patch for Google search results click-tracking removal
|
||||
* added x86 target CPU
|
||||
* fixed red blink frame
|
||||
|
||||
# 63.0.3235.2
|
||||
* first release with NoChromo adblocking patch
|
||||
* Bromite patch: disable NTP remote suggestions
|
||||
* added some Inox/Iridium/Ungoogled-Chromium patches, namely:
|
||||
* DuckDuckGo search engine
|
||||
* disable battery status service
|
||||
* disable formatting in OmniBox
|
||||
* disable GCM status checks
|
||||
* use local fonts instead of fonts from Google servers
|
||||
* disable updater pings
|
||||
* do not enable Google integrations by default (translation, lookup, etc)
|
||||
* disable the ad promo system
|
||||
* do not store passwords by default
|
||||
* do not fetch Google promotions
|
||||
* restore classic NTP
|
||||
* only keep cookies until exit
|
||||
* block third-party cookies
|
||||
@@ -0,0 +1,674 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
@@ -0,0 +1,71 @@
|
||||
# Bromite - Take back your browser
|
||||
|
||||
[![GitHub release][version-image]][version-url] [![license][license-image]][license-url]
|
||||
|
||||
<img title="Bromite - take back your browser!" src="https://www.bromite.org/android-icon-192x192.png" width="96" alt="Bromite" />
|
||||
|
||||
Bromite is [Chromium](https://www.chromium.org/Home) plus some patches for ad blocking and enhanced privacy.
|
||||
|
||||
Bromite is only available for Android v4.1 and above.
|
||||
|
||||
See [open issues](https://github.com/bromite/bromite/issues) for the development in progress.
|
||||
|
||||
# Donate
|
||||
|
||||
Please donate to support development of Bromite and the costs for the build system.
|
||||
|
||||
Support development with a donation of 3 EUR: [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JP3XTQPVRNET2)
|
||||
|
||||
Support development with a free amount donation: [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=LC7Q6A3UAQPY8)
|
||||
|
||||
BTC donations address: `3MkC3idL61npQSCxL1gceksmRTkNkiCPcG`
|
||||
|
||||
ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
|
||||
|
||||
# Features
|
||||
|
||||
* adblocking (currently baked-in, no configuration options available)
|
||||
* remove click-tracking and AMP from Google search results
|
||||
* allow youtube/vimeo videos to play in background
|
||||
* [StartPage](https://startpage.com/) search engine (select it from search engines under settings)
|
||||
* [DuckDuckGo](https://duckduckgo.com/) search engine (select it from search engines under settings)
|
||||
* Google search engines English-only with reduced tracking (select it from search engines under settings)
|
||||
* privacy enhancement patches from Inox patchset, ungoogled-chromium and Iridium projects
|
||||
* all codecs included (proprietary, open H.264 etc.)
|
||||
* built with official optimizations
|
||||
|
||||
# F.A.Q.
|
||||
|
||||
## Does Google Sync/Translate/Data saver work?
|
||||
No.
|
||||
This is not a limitation of Bromite but of all Chromium-based projects in general, as general public is not allowed to use Google's APIs for free unless when using Chrome.
|
||||
|
||||
# Releases
|
||||
|
||||
A build server goes through the very lengthy build operation and then new versions are available in this project as [releases](https://github.com/bromite/bromite/releases).
|
||||
|
||||
Each tag corresponds to a Chromium release tag.
|
||||
|
||||
# How to build
|
||||
|
||||
The [bromite main repository](https://github.com/bromite/bromite) contains tags for each corresponding Chromium release (see https://chromium.googlesource.com/chromium/src.git).
|
||||
|
||||
Please refer to [official Chromium build documentation](https://www.chromium.org/developers/how-tos/get-the-code) to get started on how to build Chromium; if you can build Chromium for Android, you can build Bromite.
|
||||
|
||||
# Credits
|
||||
|
||||
* [Chromium project](https://www.chromium.org/Home) and developers
|
||||
* [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) for some patches
|
||||
* [Iridium project](https://github.com/iridium-browser) for some patches (taken from above ungoogled-chromium)
|
||||
* [Inox patchset](https://github.com/gcarq/inox-patchset) for some patches (taken from above ungoogled-chromium)
|
||||
* nochromo for the original adblock patch
|
||||
* AdBlock Plus, uBlock, EasyList and EasyPrivacy for the compilation of original adblock patch
|
||||
|
||||
# License
|
||||
|
||||
The patches published as part of the Bromite project are released under [GNU GPL v3](./LICENSE).
|
||||
|
||||
[version-image]: https://img.shields.io/github/release/bromite/bromite.svg?style=flat-square
|
||||
[version-url]: https://github.com/bromite/bromite/releases/latest
|
||||
[license-image]: https://img.shields.io/github/license/bromite/bromite.svg
|
||||
[license-url]: https://github.com/bromite/bromite/blob/master/LICENSE
|
||||
@@ -0,0 +1,21 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 22:47:49 2017 +0200
|
||||
|
||||
Disable the ad promo system by default
|
||||
author: Michael Gilbert <mgilbert@debian.org>
|
||||
bug-debian: http://bugs.debian.org/634101
|
||||
|
||||
diff --git a/chrome/browser/ui/app_list/app_list_service.cc b/chrome/browser/ui/app_list/app_list_service.cc
|
||||
--- a/chrome/browser/ui/app_list/app_list_service.cc
|
||||
+++ b/chrome/browser/ui/app_list/app_list_service.cc
|
||||
@@ -142,6 +142,10 @@ void AppListService::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterIntegerPref(prefs::kAppListEnableMethod,
|
||||
ENABLE_NOT_RECORDED);
|
||||
registry->RegisterInt64Pref(prefs::kAppListEnableTime, 0);
|
||||
+
|
||||
+ // Identifies whether we should show the app launcher promo or not. This
|
||||
+ // becomes false when the user dismisses the promo.
|
||||
+ registry->RegisterBooleanPref(prefs::kShowAppLauncherPromo, false);
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -0,0 +1,18 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 22:50:10 2017 +0200
|
||||
|
||||
Disable third-party cookies by default
|
||||
author: Chad Miller <chad.miller@canonical.com>
|
||||
|
||||
diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc
|
||||
--- a/components/content_settings/core/browser/cookie_settings.cc
|
||||
+++ b/components/content_settings/core/browser/cookie_settings.cc
|
||||
@@ -88,7 +88,7 @@ void CookieSettings::GetCookieSettings(
|
||||
void CookieSettings::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kBlockThirdPartyCookies, false,
|
||||
+ prefs::kBlockThirdPartyCookies, true,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun Nov 26 11:40:05 2017 +0100
|
||||
|
||||
Restore classic new tab page
|
||||
|
||||
diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
|
||||
--- a/chrome/browser/search/search.cc
|
||||
+++ b/chrome/browser/search/search.cc
|
||||
@@ -155,10 +155,7 @@ bool IsURLAllowedForSupervisedUser(const GURL& url, Profile* profile) {
|
||||
}
|
||||
|
||||
bool ShouldShowLocalNewTab(Profile* profile) {
|
||||
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
||||
- return command_line->HasSwitch(switches::kForceLocalNtp) ||
|
||||
- (base::FeatureList::IsEnabled(features::kUseGoogleLocalNtp) &&
|
||||
- profile && DefaultSearchProviderIsGoogle(profile));
|
||||
+ return true;
|
||||
}
|
||||
|
||||
bool ShouldDelayRemoteNTP(const GURL& search_provider_url, Profile* profile) {
|
||||
@@ -0,0 +1,27 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 22:57:29 2017 +0200
|
||||
|
||||
Disable battery status service
|
||||
|
||||
diff --git a/services/device/battery/battery_status_service.cc b/services/device/battery/battery_status_service.cc
|
||||
--- a/services/device/battery/battery_status_service.cc
|
||||
+++ b/services/device/battery/battery_status_service.cc
|
||||
@@ -41,6 +41,7 @@ BatteryStatusService::AddCallback(const BatteryUpdateCallback& callback) {
|
||||
if (!battery_fetcher_)
|
||||
battery_fetcher_ = BatteryStatusManager::Create(update_callback_);
|
||||
|
||||
+#if 0
|
||||
if (callback_list_.empty()) {
|
||||
bool success = battery_fetcher_->StartListeningBatteryChange();
|
||||
// On failure pass the default values back.
|
||||
@@ -52,6 +53,10 @@ BatteryStatusService::AddCallback(const BatteryUpdateCallback& callback) {
|
||||
// Send recent status to the new callback if already available.
|
||||
callback.Run(status_);
|
||||
}
|
||||
+#else
|
||||
+ // Always pass the default values.
|
||||
+ callback.Run(BatteryStatus());
|
||||
+#endif
|
||||
|
||||
return callback_list_.Add(callback);
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 22:58:52 2017 +0200
|
||||
|
||||
Disable GCM status check
|
||||
|
||||
diff --git a/components/gcm_driver/gcm_channel_status_request.cc b/components/gcm_driver/gcm_channel_status_request.cc
|
||||
--- a/components/gcm_driver/gcm_channel_status_request.cc
|
||||
+++ b/components/gcm_driver/gcm_channel_status_request.cc
|
||||
@@ -23,8 +23,10 @@ namespace gcm {
|
||||
|
||||
namespace {
|
||||
|
||||
+#if 0
|
||||
const char kRequestContentType[] = "application/octet-stream";
|
||||
const char kGCMChannelTag[] = "gcm_channel";
|
||||
+#endif
|
||||
const int kDefaultPollIntervalSeconds = 60 * 60; // 60 minutes.
|
||||
const int kMinPollIntervalSeconds = 30 * 60; // 30 minutes.
|
||||
|
||||
@@ -57,6 +59,7 @@ int GCMChannelStatusRequest::min_poll_interval_seconds() {
|
||||
}
|
||||
|
||||
void GCMChannelStatusRequest::Start() {
|
||||
+#if 0
|
||||
DCHECK(!url_fetcher_.get());
|
||||
|
||||
GURL request_url(channel_status_request_url_);
|
||||
@@ -112,6 +115,9 @@ void GCMChannelStatusRequest::Start() {
|
||||
url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES |
|
||||
net::LOAD_DO_NOT_SAVE_COOKIES);
|
||||
url_fetcher_->Start();
|
||||
+#endif
|
||||
+ // Simulate an empty response and disable GCM.
|
||||
+ callback_.Run(false, false, 0);
|
||||
}
|
||||
|
||||
void GCMChannelStatusRequest::OnURLFetchComplete(
|
||||
@@ -0,0 +1,63 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu Oct 12 01:35:53 2017 +0200
|
||||
|
||||
Disable updater pings
|
||||
|
||||
diff --git a/components/component_updater/configurator_impl.cc b/components/component_updater/configurator_impl.cc
|
||||
--- a/components/component_updater/configurator_impl.cc
|
||||
+++ b/components/component_updater/configurator_impl.cc
|
||||
@@ -56,8 +56,10 @@ const char kSwitchDisableDeltaUpdates[] = "disable-delta-updates";
|
||||
const char kSwitchDisableBackgroundDownloads[] = "disable-background-downloads";
|
||||
#endif // defined(OS_WIN)
|
||||
|
||||
+#if 0
|
||||
const base::Feature kAlternateComponentUrls{"AlternateComponentUrls",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+#endif
|
||||
|
||||
// If there is an element of |vec| of the form |test|=.*, returns the right-
|
||||
// hand side of that assignment. Otherwise, returns an empty string.
|
||||
@@ -86,8 +88,7 @@ ConfiguratorImpl::ConfiguratorImpl(const base::CommandLine* cmdline,
|
||||
: fast_update_(false),
|
||||
pings_enabled_(false),
|
||||
deltas_enabled_(false),
|
||||
- background_downloads_enabled_(false),
|
||||
- require_encryption_(require_encryption) {
|
||||
+ background_downloads_enabled_(false) {
|
||||
// Parse comma-delimited debug flags.
|
||||
std::vector<std::string> switch_values = base::SplitString(
|
||||
cmdline->GetSwitchValueASCII(switches::kComponentUpdater), ",",
|
||||
@@ -135,22 +136,6 @@ int ConfiguratorImpl::UpdateDelay() const {
|
||||
|
||||
std::vector<GURL> ConfiguratorImpl::UpdateUrl() const {
|
||||
std::vector<GURL> urls;
|
||||
- if (url_source_override_.is_valid()) {
|
||||
- urls.push_back(GURL(url_source_override_));
|
||||
- return urls;
|
||||
- }
|
||||
-
|
||||
- if (base::FeatureList::IsEnabled(kAlternateComponentUrls)) {
|
||||
- urls.push_back(GURL(kUpdaterDefaultUrlAlt));
|
||||
- urls.push_back(GURL(kUpdaterFallbackUrlAlt));
|
||||
- } else {
|
||||
- urls.push_back(GURL(kUpdaterDefaultUrl));
|
||||
- urls.push_back(GURL(kUpdaterFallbackUrl));
|
||||
- }
|
||||
-
|
||||
- if (require_encryption_)
|
||||
- update_client::RemoveUnsecureUrls(&urls);
|
||||
-
|
||||
return urls;
|
||||
}
|
||||
|
||||
diff --git a/components/component_updater/configurator_impl.h b/components/component_updater/configurator_impl.h
|
||||
--- a/components/component_updater/configurator_impl.h
|
||||
+++ b/components/component_updater/configurator_impl.h
|
||||
@@ -89,7 +89,6 @@ class ConfiguratorImpl {
|
||||
bool pings_enabled_;
|
||||
bool deltas_enabled_;
|
||||
bool background_downloads_enabled_;
|
||||
- bool require_encryption_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(ConfiguratorImpl);
|
||||
};
|
||||
@@ -0,0 +1,43 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 23:12:18 2017 +0200
|
||||
|
||||
[PATCH 35/60] Remove EV certificates
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Thu, 2 Apr 2015 12:44:23 +0200
|
||||
|
||||
The team chose to let EV certificates appear just like normal
|
||||
certificates. The web of trust is considered a failure in itself, so
|
||||
do not give users a false sense of extra security with EV certs.
|
||||
Instead, let them appear just like regular ones.
|
||||
|
||||
diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc
|
||||
--- a/net/cert/ev_root_ca_metadata.cc
|
||||
+++ b/net/cert/ev_root_ca_metadata.cc
|
||||
@@ -46,6 +46,16 @@ struct EVMetadata {
|
||||
|
||||
// These certificates may be found in net/data/ssl/ev_roots.
|
||||
static const EVMetadata ev_root_ca_metadata[] = {
|
||||
+ // need some dummy thing to make compiler happy, because
|
||||
+ // arraysize() is implemented as a convoluted template rather than
|
||||
+ // the traditional sizeof(x)/sizeof(*x)
|
||||
+ { { { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } },
|
||||
+ {
|
||||
+ "0",
|
||||
+ }
|
||||
+ },
|
||||
+#if 0
|
||||
// AC Camerfirma S.A. Chambers of Commerce Root - 2008
|
||||
// https://www.camerfirma.com
|
||||
{
|
||||
@@ -708,7 +718,9 @@ static const EVMetadata ev_root_ca_metadata[] = {
|
||||
0xd2, 0x09, 0xb7, 0x37, 0xcb, 0xe2, 0xc1, 0x8c, 0xfb, 0x2c, 0x10,
|
||||
0xc0, 0xff, 0x0b, 0xcf, 0x0d, 0x32, 0x86, 0xfc, 0x1a, 0xa2}},
|
||||
{"2.16.840.1.114404.1.1.2.4.1", ""},
|
||||
- }};
|
||||
+ }
|
||||
+#endif
|
||||
+};
|
||||
|
||||
#endif // defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 23:19:25 2017 +0200
|
||||
|
||||
Subject: [PATCH 21/60] prefs: only keep cookies until exit
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Sat, 13 Sep 2014 17:25:47 +0200
|
||||
|
||||
Out with all those tracking cookies!
|
||||
|
||||
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
@@ -117,7 +117,7 @@ void ContentSettingsRegistry::Init() {
|
||||
// WARNING: The string names of the permissions passed in below are used to
|
||||
// generate preference names and should never be changed!
|
||||
|
||||
- Register(CONTENT_SETTINGS_TYPE_COOKIES, "cookies", CONTENT_SETTING_ALLOW,
|
||||
+ Register(CONTENT_SETTINGS_TYPE_COOKIES, "cookies", CONTENT_SETTING_SESSION_ONLY,
|
||||
WebsiteSettingsInfo::SYNCABLE,
|
||||
WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
|
||||
ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
||||
@@ -0,0 +1,32 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 23:22:05 2017 +0200
|
||||
|
||||
[PATCH 45/60] promo: disable Google promotion fetching
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Sun, 9 Nov 2014 01:54:27 +0100
|
||||
|
||||
Documentation is scarce, and sprinkled with misleading acronyms.
|
||||
NTP is not NTP, for example. FWIW:
|
||||
|
||||
// A PromoResourceService fetches data from a web resource server to
|
||||
// be used to dynamically change the appearance of the New Tab Page.
|
||||
// For example, it has been used to fetch "tips" to be displayed on
|
||||
// the NTP, or to display promotional messages to certain groups of
|
||||
// Chrome users.
|
||||
|
||||
Whatever it is that it downloads, deactivate the one that leads to
|
||||
Google.
|
||||
|
||||
References: https://github.com/iridium-browser/iridium-browser/issues/33
|
||||
|
||||
diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
|
||||
--- a/chrome/browser/signin/signin_promo.cc
|
||||
+++ b/chrome/browser/signin/signin_promo.cc
|
||||
@@ -130,6 +130,7 @@ namespace signin {
|
||||
|
||||
bool ShouldShowPromoAtStartup(Profile* profile, bool is_new_profile) {
|
||||
DCHECK(profile);
|
||||
+ return false;
|
||||
|
||||
// Don't show if the profile is an incognito.
|
||||
if (profile->IsOffTheRecord())
|
||||
@@ -0,0 +1,31 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 23:24:58 2017 +0200
|
||||
|
||||
Disables omission of URL elements in Omnibox
|
||||
|
||||
Disable all omissions (already shadowed by first flag)
|
||||
|
||||
diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
|
||||
--- a/components/url_formatter/url_formatter.cc
|
||||
+++ b/components/url_formatter/url_formatter.cc
|
||||
@@ -401,13 +401,13 @@ bool IDNToUnicodeOneComponent(const base::char16* comp,
|
||||
|
||||
} // namespace
|
||||
|
||||
-const FormatUrlType kFormatUrlOmitNothing = 0;
|
||||
-const FormatUrlType kFormatUrlOmitUsernamePassword = 1 << 0;
|
||||
-const FormatUrlType kFormatUrlOmitHTTP = 1 << 1;
|
||||
-const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname = 1 << 2;
|
||||
-const FormatUrlType kFormatUrlOmitHTTPS = 1 << 3;
|
||||
-const FormatUrlType kFormatUrlExperimentalElideAfterHost = 1 << 4;
|
||||
-const FormatUrlType kFormatUrlOmitTrivialSubdomains = 1 << 5;
|
||||
+const FormatUrlType kFormatUrlOmitNothing = 1;
|
||||
+const FormatUrlType kFormatUrlOmitUsernamePassword = 0 << 0;
|
||||
+const FormatUrlType kFormatUrlOmitHTTP = 0 << 1;
|
||||
+const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname = 0 << 2;
|
||||
+const FormatUrlType kFormatUrlOmitHTTPS = 0 << 3;
|
||||
+const FormatUrlType kFormatUrlExperimentalElideAfterHost = 0 << 4;
|
||||
+const FormatUrlType kFormatUrlOmitTrivialSubdomains = 0 << 5;
|
||||
|
||||
const FormatUrlType kFormatUrlOmitDefaults =
|
||||
kFormatUrlOmitUsernamePassword | kFormatUrlOmitHTTP |
|
||||
@@ -0,0 +1,221 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu Oct 12 08:09:24 2017 +0200
|
||||
|
||||
Modify default preferences
|
||||
|
||||
diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc
|
||||
--- a/chrome/browser/background/background_mode_manager.cc
|
||||
+++ b/chrome/browser/background/background_mode_manager.cc
|
||||
@@ -363,7 +363,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false);
|
||||
registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false);
|
||||
#endif
|
||||
- registry->RegisterBooleanPref(prefs::kBackgroundModeEnabled, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kBackgroundModeEnabled, false);
|
||||
}
|
||||
|
||||
void BackgroundModeManager::RegisterProfile(Profile* profile) {
|
||||
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
|
||||
--- a/chrome/browser/chrome_content_browser_client.cc
|
||||
+++ b/chrome/browser/chrome_content_browser_client.cc
|
||||
@@ -879,7 +879,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
void ChromeContentBrowserClient::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
|
||||
- registry->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, false);
|
||||
registry->RegisterListPref(prefs::kEnableDeprecatedWebPlatformFeatures);
|
||||
// Register user prefs for mapping SitePerProcess and IsolateOrigins in
|
||||
// user policy in addition to the same named ones in Local State (which are
|
||||
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
|
||||
--- a/chrome/browser/io_thread.cc
|
||||
+++ b/chrome/browser/io_thread.cc
|
||||
@@ -625,7 +625,7 @@ void IOThread::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
std::string());
|
||||
registry->RegisterBooleanPref(prefs::kEnableReferrers, true);
|
||||
data_reduction_proxy::RegisterPrefs(registry);
|
||||
- registry->RegisterBooleanPref(prefs::kBuiltInDnsClientEnabled, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kBuiltInDnsClientEnabled, false);
|
||||
registry->RegisterBooleanPref(prefs::kQuickCheckEnabled, true);
|
||||
registry->RegisterBooleanPref(prefs::kPacHttpsUrlStrippingEnabled, true);
|
||||
#if defined(OS_POSIX)
|
||||
diff --git a/chrome/browser/net/prediction_options.cc b/chrome/browser/net/prediction_options.cc
|
||||
--- a/chrome/browser/net/prediction_options.cc
|
||||
+++ b/chrome/browser/net/prediction_options.cc
|
||||
@@ -30,7 +30,7 @@ NetworkPredictionStatus CanPrefetchAndPrerender(
|
||||
return NetworkPredictionStatus::ENABLED;
|
||||
}
|
||||
default:
|
||||
- DCHECK_EQ(NETWORK_PREDICTION_NEVER, network_prediction_options);
|
||||
+ //DCHECK_EQ(NETWORK_PREDICTION_NEVER, network_prediction_options);
|
||||
return NetworkPredictionStatus::DISABLED_ALWAYS;
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/browser/net/prediction_options.h b/chrome/browser/net/prediction_options.h
|
||||
--- a/chrome/browser/net/prediction_options.h
|
||||
+++ b/chrome/browser/net/prediction_options.h
|
||||
@@ -23,7 +23,7 @@ enum NetworkPredictionOptions {
|
||||
NETWORK_PREDICTION_ALWAYS,
|
||||
NETWORK_PREDICTION_WIFI_ONLY,
|
||||
NETWORK_PREDICTION_NEVER,
|
||||
- NETWORK_PREDICTION_DEFAULT = NETWORK_PREDICTION_WIFI_ONLY,
|
||||
+ NETWORK_PREDICTION_DEFAULT = NETWORK_PREDICTION_NEVER,
|
||||
};
|
||||
|
||||
enum class NetworkPredictionStatus {
|
||||
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
|
||||
--- a/chrome/browser/profiles/profile.cc
|
||||
+++ b/chrome/browser/profiles/profile.cc
|
||||
@@ -138,7 +138,7 @@ const char Profile::kNoHostedDomainFound[] = "NO_HOSTED_DOMAIN";
|
||||
void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSearchSuggestEnabled,
|
||||
- true,
|
||||
+ false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
#if defined(OS_ANDROID)
|
||||
registry->RegisterStringPref(
|
||||
diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
|
||||
--- a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
|
||||
+++ b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
|
||||
@@ -45,7 +45,7 @@
|
||||
</paper-button>
|
||||
</div>
|
||||
<div slot="footer">
|
||||
- <paper-checkbox id="sendSettings" checked>
|
||||
+ <paper-checkbox id="sendSettings">
|
||||
$i18nRaw{resetPageFeedback}</paper-checkbox>
|
||||
</div>
|
||||
</dialog>
|
||||
diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
|
||||
--- a/chrome/browser/signin/signin_promo.cc
|
||||
+++ b/chrome/browser/signin/signin_promo.cc
|
||||
@@ -384,8 +384,8 @@ void ForceWebBasedSigninFlowForTesting(bool force) {
|
||||
void RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterIntegerPref(prefs::kSignInPromoStartupCount, 0);
|
||||
- registry->RegisterBooleanPref(prefs::kSignInPromoUserSkipped, false);
|
||||
- registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kSignInPromoUserSkipped, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, false);
|
||||
registry->RegisterBooleanPref(prefs::kSignInPromoShowNTPBubble, false);
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -65,11 +65,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kOfferTranslateEnabled, true,
|
||||
+ prefs::kOfferTranslateEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterStringPref(prefs::kCloudPrintEmail, std::string());
|
||||
registry->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true);
|
||||
- registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, false);
|
||||
registry->RegisterBooleanPref(prefs::kDevToolsDisabled, false);
|
||||
registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement);
|
||||
registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup);
|
||||
diff --git a/chrome/browser/ui/navigation_correction_tab_observer.cc b/chrome/browser/ui/navigation_correction_tab_observer.cc
|
||||
--- a/chrome/browser/ui/navigation_correction_tab_observer.cc
|
||||
+++ b/chrome/browser/ui/navigation_correction_tab_observer.cc
|
||||
@@ -58,7 +58,7 @@ NavigationCorrectionTabObserver::~NavigationCorrectionTabObserver() {
|
||||
void NavigationCorrectionTabObserver::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* prefs) {
|
||||
prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled,
|
||||
- true,
|
||||
+ false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
--- a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
@@ -144,10 +144,6 @@ void LocalDiscoveryUI::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kLocalDiscoveryNotificationsEnabled,
|
||||
-#if defined(OS_WIN)
|
||||
false,
|
||||
-#else
|
||||
- true,
|
||||
-#endif
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
}
|
||||
diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/cloud_print/connector_settings.cc
|
||||
--- a/chrome/service/cloud_print/connector_settings.cc
|
||||
+++ b/chrome/service/cloud_print/connector_settings.cc
|
||||
@@ -60,7 +60,7 @@ void ConnectorSettings::InitFrom(ServiceProcessPrefs* prefs) {
|
||||
DCHECK(server_url_.is_valid());
|
||||
|
||||
connect_new_printers_ = prefs->GetBoolean(
|
||||
- prefs::kCloudPrintConnectNewPrinters, true);
|
||||
+ prefs::kCloudPrintConnectNewPrinters, false);
|
||||
|
||||
xmpp_ping_enabled_ = prefs->GetBoolean(
|
||||
prefs::kCloudPrintXmppPingEnabled, false);
|
||||
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
|
||||
--- a/components/autofill/core/browser/autofill_manager.cc
|
||||
+++ b/components/autofill/core/browser/autofill_manager.cc
|
||||
@@ -216,7 +216,7 @@ void AutofillManager::RegisterProfilePrefs(
|
||||
registry->RegisterIntegerPref(
|
||||
prefs::kAutofillCreditCardSigninPromoImpressionCount, 0);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kAutofillEnabled, true,
|
||||
+ prefs::kAutofillEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kAutofillProfileUseDatesFixed, false,
|
||||
diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc
|
||||
--- a/components/bookmarks/browser/bookmark_utils.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_utils.cc
|
||||
@@ -442,12 +442,12 @@ void GetBookmarksMatchingProperties(BookmarkModel* model,
|
||||
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kShowBookmarkBar,
|
||||
- false,
|
||||
+ true,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(prefs::kEditBookmarksEnabled, true);
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kShowAppsShortcutInBookmarkBar,
|
||||
- true,
|
||||
+ false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kShowManagedBookmarksInBookmarkBar,
|
||||
diff --git a/components/safe_browsing/common/safe_browsing_prefs.cc b/components/safe_browsing/common/safe_browsing_prefs.cc
|
||||
--- a/components/safe_browsing/common/safe_browsing_prefs.cc
|
||||
+++ b/components/safe_browsing/common/safe_browsing_prefs.cc
|
||||
@@ -346,9 +346,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSafeBrowsingSawInterstitialScoutReporting, false);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kSafeBrowsingExtendedReportingOptInAllowed, true);
|
||||
+ prefs::kSafeBrowsingExtendedReportingOptInAllowed, false);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kSafeBrowsingEnabled, true,
|
||||
+ prefs::kSafeBrowsingEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(prefs::kSafeBrowsingProceedAnywayDisabled,
|
||||
false);
|
||||
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
|
||||
--- a/extensions/common/extension.cc
|
||||
+++ b/extensions/common/extension.cc
|
||||
@@ -330,14 +330,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
if (is_theme())
|
||||
return false;
|
||||
|
||||
- // Hide component extensions because they are only extensions as an
|
||||
- // implementation detail of Chrome.
|
||||
- if (extensions::Manifest::IsComponentLocation(location()) &&
|
||||
- !base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
- switches::kShowComponentExtensionOptions)) {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
// Unless they are unpacked, never show hosted apps. Note: We intentionally
|
||||
// show packaged apps and platform apps because there are some pieces of
|
||||
// functionality that are only available in chrome://extensions/ but which
|
||||
@@ -0,0 +1,21 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 23:17:17 2017 +0200
|
||||
|
||||
Do not store passwords by default
|
||||
|
||||
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
|
||||
--- a/components/password_manager/core/browser/password_manager.cc
|
||||
+++ b/components/password_manager/core/browser/password_manager.cc
|
||||
@@ -244,10 +244,10 @@ PasswordFormManager* FindMatchedManager(
|
||||
void PasswordManager::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kCredentialsEnableService, true,
|
||||
+ prefs::kCredentialsEnableService, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kCredentialsEnableAutosignin, true,
|
||||
+ prefs::kCredentialsEnableAutosignin, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
|
||||
registry->RegisterBooleanPref(prefs::kWasObsoleteHttpDataCleaned, false);
|
||||
registry->RegisterStringPref(prefs::kSyncPasswordHash, std::string(),
|
||||
@@ -0,0 +1,28 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu Oct 12 08:15:17 2017 +0200
|
||||
|
||||
Disable NTP remote suggestions by default
|
||||
|
||||
diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
|
||||
--- a/components/ntp_snippets/features.cc
|
||||
+++ b/components/ntp_snippets/features.cc
|
||||
@@ -41,16 +41,16 @@ const base::Feature kArticleSuggestionsExpandableHeader{
|
||||
"NTPArticleSuggestionsExpandableHeader", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kArticleSuggestionsFeature{
|
||||
- "NTPArticleSuggestions", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ "NTPArticleSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kBookmarkSuggestionsFeature{
|
||||
- "NTPBookmarkSuggestions", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ "NTPBookmarkSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kRecentOfflineTabSuggestionsFeature{
|
||||
"NTPOfflinePageSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kIncreasedVisibility{"NTPSnippetsIncreasedVisibility",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kPhysicalWebPageSuggestionsFeature{
|
||||
"NTPPhysicalWebPageSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
@@ -0,0 +1,54 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun Oct 15 21:45:46 2017 +0200
|
||||
|
||||
Disables references to fonts.googleapis.com
|
||||
|
||||
diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
--- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
+++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
@@ -310,7 +310,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
|
||||
|
||||
std::string DomDistillerViewerSource::GetContentSecurityPolicyStyleSrc()
|
||||
const {
|
||||
- return "style-src 'self' https://fonts.googleapis.com;";
|
||||
+ return "style-src 'self';";
|
||||
}
|
||||
|
||||
std::string DomDistillerViewerSource::GetContentSecurityPolicyChildSrc() const {
|
||||
diff --git a/components/dom_distiller/core/html/preview.html b/components/dom_distiller/core/html/preview.html
|
||||
--- a/components/dom_distiller/core/html/preview.html
|
||||
+++ b/components/dom_distiller/core/html/preview.html
|
||||
@@ -11,7 +11,7 @@ found in the LICENSE file.
|
||||
<meta name="theme-color" id="theme-color">
|
||||
<title>Title goes here and it could be kind of lengthy - Publisher name</title>
|
||||
<link href="../css/distilledpage.css" rel="stylesheet" type="text/css">
|
||||
- <link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
|
||||
+ <link href='chrome://resources/css/roboto.css' rel='stylesheet' type='text/css'>
|
||||
<style>
|
||||
.english :lang(th) {display: none}
|
||||
.english :lang(zh) {display: none}
|
||||
diff --git a/components/dom_distiller/core/javascript/dom_distiller_viewer.js b/components/dom_distiller/core/javascript/dom_distiller_viewer.js
|
||||
--- a/components/dom_distiller/core/javascript/dom_distiller_viewer.js
|
||||
+++ b/components/dom_distiller/core/javascript/dom_distiller_viewer.js
|
||||
@@ -120,7 +120,7 @@ function maybeSetWebFont() {
|
||||
if (distiller_on_ios) return;
|
||||
|
||||
var e = document.createElement('link');
|
||||
- e.href = 'https://fonts.googleapis.com/css?family=Roboto';
|
||||
+ e.href = 'chrome://resources/css/roboto.css';
|
||||
e.rel = 'stylesheet';
|
||||
e.type = 'text/css';
|
||||
document.head.appendChild(e);
|
||||
diff --git a/third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css b/third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css
|
||||
--- a/third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css
|
||||
+++ b/third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css
|
||||
@@ -12,8 +12,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License. */
|
||||
|
||||
-@import "https://fonts.googleapis.com/css?family=Open+Sans:300,400,700&subset=latin,cyrillic-ext,greek-ext,cyrillic,greek,vietnamese,latin-ext";
|
||||
-@import "https://fonts.googleapis.com/css?family=Source+Code+Pro";
|
||||
+@import "chrome://resources/css/roboto.css";
|
||||
|
||||
body,
|
||||
table,
|
||||
@@ -0,0 +1,22 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu Oct 26 16:59:03 2017 +0200
|
||||
|
||||
Disable WebRTC by default
|
||||
|
||||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -84,10 +84,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
#endif
|
||||
#if BUILDFLAG(ENABLE_WEBRTC)
|
||||
// TODO(guoweis): Remove next 2 options at M50.
|
||||
- registry->RegisterBooleanPref(prefs::kWebRTCMultipleRoutesEnabled, true);
|
||||
- registry->RegisterBooleanPref(prefs::kWebRTCNonProxiedUdpEnabled, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kWebRTCMultipleRoutesEnabled, false);
|
||||
+ registry->RegisterBooleanPref(prefs::kWebRTCNonProxiedUdpEnabled, false);
|
||||
registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy,
|
||||
- content::kWebRTCIPHandlingDefault);
|
||||
+ content::kWebRTCIPHandlingDisableNonProxiedUdp);
|
||||
registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string());
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri Oct 27 15:53:37 2017 +0200
|
||||
|
||||
Ported data reduction disable patch
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
|
||||
@@ -140,7 +140,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
boolean notifyAdapter = false;
|
||||
// An optional Data Saver page.
|
||||
if (mFreProperties.getBoolean(SHOW_DATA_REDUCTION_PAGE)) {
|
||||
- mPages.add(new DataReductionProxyFirstRunFragment.Page());
|
||||
+ //mPages.add(new DataReductionProxyFirstRunFragment.Page());
|
||||
mFreProgressStates.add(FRE_PROGRESS_DATA_SAVER_SHOWN);
|
||||
notifyAdapter = true;
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java
|
||||
@@ -149,6 +149,7 @@ public class DataReductionProxySettings {
|
||||
// DataReductionProxySettings is a singleton that lives forever and there's no clean
|
||||
// shutdown of Chrome on Android
|
||||
mNativeDataReductionProxySettings = nativeInit();
|
||||
+ nativeSetDataReductionProxyEnabled(mNativeDataReductionProxySettings, false);
|
||||
}
|
||||
|
||||
/** Returns true if the SPDY proxy promo is allowed to be shown. */
|
||||
@@ -171,6 +172,7 @@ public class DataReductionProxySettings {
|
||||
* data reduction statistics if this is the first time the SPDY proxy has been enabled.
|
||||
*/
|
||||
public void setDataReductionProxyEnabled(Context context, boolean enabled) {
|
||||
+ enabled = false;
|
||||
if (enabled
|
||||
&& ContextUtils.getAppSharedPreferences().getLong(
|
||||
DATA_REDUCTION_FIRST_ENABLED_TIME, 0)
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
|
||||
@@ -68,7 +68,7 @@ public class DataReductionPromoUtils {
|
||||
}
|
||||
if (DataReductionProxySettings.getInstance().isDataReductionProxyManaged()) return false;
|
||||
if (DataReductionProxySettings.getInstance().isDataReductionProxyEnabled()) return false;
|
||||
- return true;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -0,0 +1,80 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun Nov 26 22:51:43 2017 +0100
|
||||
|
||||
Skip the first run and metrics
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java
|
||||
@@ -36,11 +36,11 @@ public class FirstRunStatus {
|
||||
* includes ToS and Sign In pages if necessary.
|
||||
*/
|
||||
public static boolean getFirstRunFlowComplete() {
|
||||
- if (ContextUtils.getAppSharedPreferences().getBoolean(FIRST_RUN_FLOW_COMPLETE, false)) {
|
||||
- return true;
|
||||
+ boolean complete = ContextUtils.getAppSharedPreferences().getBoolean(FIRST_RUN_FLOW_COMPLETE, false);
|
||||
+ if (!complete) {
|
||||
+ setFirstRunFlowComplete(true);
|
||||
}
|
||||
- return CommandLine.getInstance().hasSwitch(
|
||||
- ChromeSwitches.FORCE_FIRST_RUN_FLOW_COMPLETE_FOR_TESTING);
|
||||
+ return true;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
|
||||
@@ -30,16 +30,12 @@ public class FirstRunUtils {
|
||||
// - checkAnyUserHasSeenToS() may be true which needs to sync its state to the prefs.
|
||||
boolean javaPrefValue = javaPrefs.getBoolean(CACHED_TOS_ACCEPTED_PREF, false);
|
||||
boolean nativePrefValue = prefsBridge.isFirstRunEulaAccepted();
|
||||
- boolean userHasSeenTos =
|
||||
- ToSAckedReceiver.checkAnyUserHasSeenToS();
|
||||
- boolean isFirstRunComplete = FirstRunStatus.getFirstRunFlowComplete();
|
||||
- if (javaPrefValue || nativePrefValue || userHasSeenTos || isFirstRunComplete) {
|
||||
- if (!javaPrefValue) {
|
||||
- javaPrefs.edit().putBoolean(CACHED_TOS_ACCEPTED_PREF, true).apply();
|
||||
- }
|
||||
- if (!nativePrefValue) {
|
||||
- prefsBridge.setEulaAccepted();
|
||||
- }
|
||||
+
|
||||
+ if (!javaPrefValue) {
|
||||
+ javaPrefs.edit().putBoolean(CACHED_TOS_ACCEPTED_PREF, true).apply();
|
||||
+ }
|
||||
+ if (!nativePrefValue) {
|
||||
+ prefsBridge.setEulaAccepted();
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
|
||||
@@ -73,20 +73,14 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
|
||||
}
|
||||
});
|
||||
|
||||
- if (ChromeVersionInfo.isOfficialBuild()) {
|
||||
- int paddingStart = getResources().getDimensionPixelSize(
|
||||
- R.dimen.fre_tos_checkbox_padding);
|
||||
- ApiCompatibilityUtils.setPaddingRelative(mSendReportCheckBox,
|
||||
- ApiCompatibilityUtils.getPaddingStart(mSendReportCheckBox) + paddingStart,
|
||||
- mSendReportCheckBox.getPaddingTop(),
|
||||
- ApiCompatibilityUtils.getPaddingEnd(mSendReportCheckBox),
|
||||
- mSendReportCheckBox.getPaddingBottom());
|
||||
-
|
||||
- mSendReportCheckBox.setChecked(FirstRunActivity.DEFAULT_METRICS_AND_CRASH_REPORTING);
|
||||
- } else {
|
||||
- mSendReportCheckBox.setVisibility(View.GONE);
|
||||
+ int paddingStart = getResources().getDimensionPixelSize(R.dimen.fre_tos_checkbox_padding);
|
||||
+ if (paddingStart != 0) {
|
||||
+ mSendReportCheckBox.setChecked(false);
|
||||
}
|
||||
|
||||
+ mSendReportCheckBox.setChecked(false);
|
||||
+ mSendReportCheckBox.setVisibility(View.GONE);
|
||||
+
|
||||
mTosAndPrivacy.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
||||
NoUnderlineClickableSpan clickableTermsSpan = new NoUnderlineClickableSpan() {
|
||||
@@ -0,0 +1,17 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun Nov 26 23:11:56 2017 +0100
|
||||
|
||||
Always disable Omaha update checks
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
@@ -122,7 +122,7 @@ public class OmahaBase {
|
||||
|
||||
/** See {@link #sIsDisabled}. */
|
||||
static boolean isDisabled() {
|
||||
- return sIsDisabled;
|
||||
+ return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -0,0 +1,714 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu Oct 12 11:06:18 2017 +0200
|
||||
|
||||
Add DuckDuckGo search engine, not enabled by default
|
||||
|
||||
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
|
||||
--- a/components/search_engines/prepopulated_engines.json
|
||||
+++ b/components/search_engines/prepopulated_engines.json
|
||||
@@ -32,12 +32,31 @@
|
||||
|
||||
// Increment this if you change the data in ways that mean users with
|
||||
// existing data should get a new version.
|
||||
- "kCurrentDataVersion": 100
|
||||
+ "kCurrentDataVersion": 101
|
||||
},
|
||||
|
||||
// The following engines are included in country lists and are added to the
|
||||
// list of search engines on the first run depending on user's country.
|
||||
"elements": {
|
||||
+ "duckduckgo": {
|
||||
+ "name": "DuckDuckGo",
|
||||
+ "keyword": "duckduckgo.com",
|
||||
+ "favicon_url": "https://duckduckgo.com/favicon.ico",
|
||||
+ "search_url": "https://duckduckgo.com/?q={searchTerms}",
|
||||
+ "suggest_url": "https://ac.duckduckgo.com/ac/?q={searchTerms}&type=list",
|
||||
+ "type": "SEARCH_ENGINE_DUCKDUCKGO",
|
||||
+ "id": 11
|
||||
+ },
|
||||
+
|
||||
+ "duckduckgo_light": {
|
||||
+ "name": "DuckDuckGo Light",
|
||||
+ "keyword": "duckduckgo.com/lite",
|
||||
+ "favicon_url": "https://duckduckgo.com/favicon.ico",
|
||||
+ "search_url": "https://duckduckgo.com/lite/?q={searchTerms}",
|
||||
+ "type": "SEARCH_ENGINE_DUCKDUCKGOLIGHT",
|
||||
+ "id": 12
|
||||
+ },
|
||||
+
|
||||
"aol": {
|
||||
"name": "AOL",
|
||||
"keyword": "aol.com",
|
||||
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
|
||||
--- a/components/search_engines/search_engine_type.h
|
||||
+++ b/components/search_engines/search_engine_type.h
|
||||
@@ -63,6 +63,8 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_YANDEX,
|
||||
SEARCH_ENGINE_ZOZNAM,
|
||||
SEARCH_ENGINE_360,
|
||||
+ SEARCH_ENGINE_DUCKDUCKGO,
|
||||
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT,
|
||||
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
||||
};
|
||||
|
||||
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
|
||||
--- a/components/search_engines/template_url_prepopulate_data.cc
|
||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||
@@ -51,548 +51,548 @@ namespace {
|
||||
|
||||
// Default (for countries with no better engine set)
|
||||
const PrepopulatedEngine* const engines_default[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// United Arab Emirates
|
||||
const PrepopulatedEngine* const engines_AE[] = {
|
||||
- &google, &yahoo_maktoob, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Albania
|
||||
const PrepopulatedEngine* const engines_AL[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Argentina
|
||||
const PrepopulatedEngine* const engines_AR[] = {
|
||||
- &google, &bing, &yahoo_ar,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar,
|
||||
};
|
||||
|
||||
// Austria
|
||||
const PrepopulatedEngine* const engines_AT[] = {
|
||||
- &google, &bing, &yahoo_at,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at,
|
||||
};
|
||||
|
||||
// Australia
|
||||
const PrepopulatedEngine* const engines_AU[] = {
|
||||
- &google, &bing, &yahoo_au,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au,
|
||||
};
|
||||
|
||||
// Bosnia and Herzegovina
|
||||
const PrepopulatedEngine* const engines_BA[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Belgium
|
||||
const PrepopulatedEngine* const engines_BE[] = {
|
||||
- &google, &bing, &yahoo, &yahoo_fr,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr,
|
||||
};
|
||||
|
||||
// Bulgaria
|
||||
const PrepopulatedEngine* const engines_BG[] = {
|
||||
- &google, &bing, &ask,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
};
|
||||
|
||||
// Bahrain
|
||||
const PrepopulatedEngine* const engines_BH[] = {
|
||||
- &google, &yahoo_maktoob, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Burundi
|
||||
const PrepopulatedEngine* const engines_BI[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Brunei
|
||||
const PrepopulatedEngine* const engines_BN[] = {
|
||||
- &google, &yahoo_my, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
};
|
||||
|
||||
// Bolivia
|
||||
const PrepopulatedEngine* const engines_BO[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Brazil
|
||||
const PrepopulatedEngine* const engines_BR[] = {
|
||||
- &google, &ask_br, &bing, &yahoo_br,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br,
|
||||
};
|
||||
|
||||
// Belarus
|
||||
const PrepopulatedEngine* const engines_BY[] = {
|
||||
- &google, &yandex_by, &mail_ru,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru,
|
||||
};
|
||||
|
||||
// Belize
|
||||
const PrepopulatedEngine* const engines_BZ[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Canada
|
||||
const PrepopulatedEngine* const engines_CA[] = {
|
||||
- &google, &bing, &ask, &yahoo_ca, &yahoo_qc,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc,
|
||||
};
|
||||
|
||||
// Switzerland
|
||||
const PrepopulatedEngine* const engines_CH[] = {
|
||||
- &google, &bing, &yahoo_ch,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch,
|
||||
};
|
||||
|
||||
// Chile
|
||||
const PrepopulatedEngine* const engines_CL[] = {
|
||||
- &google, &bing, &yahoo_cl,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl,
|
||||
};
|
||||
|
||||
// China
|
||||
const PrepopulatedEngine* const engines_CN[] = {
|
||||
- &google, &baidu, &sogou, &so_360,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360,
|
||||
};
|
||||
|
||||
// Colombia
|
||||
const PrepopulatedEngine* const engines_CO[] = {
|
||||
- &google, &bing, &yahoo_co,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co,
|
||||
};
|
||||
|
||||
// Costa Rica
|
||||
const PrepopulatedEngine* const engines_CR[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Czech Republic
|
||||
const PrepopulatedEngine* const engines_CZ[] = {
|
||||
- &google, &seznam, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &seznam, &bing,
|
||||
};
|
||||
|
||||
// Germany
|
||||
const PrepopulatedEngine* const engines_DE[] = {
|
||||
- &google, &bing, &yahoo_de,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
};
|
||||
|
||||
// Denmark
|
||||
const PrepopulatedEngine* const engines_DK[] = {
|
||||
- &google, &bing, &yahoo_dk,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk,
|
||||
};
|
||||
|
||||
// Dominican Republic
|
||||
const PrepopulatedEngine* const engines_DO[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Algeria
|
||||
const PrepopulatedEngine* const engines_DZ[] = {
|
||||
- &google, &bing, &yahoo_maktoob,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Ecuador
|
||||
const PrepopulatedEngine* const engines_EC[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Estonia
|
||||
const PrepopulatedEngine* const engines_EE[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Egypt
|
||||
const PrepopulatedEngine* const engines_EG[] = {
|
||||
- &google, &yahoo_maktoob, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Spain
|
||||
const PrepopulatedEngine* const engines_ES[] = {
|
||||
- &google, &bing, &yahoo_es,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es,
|
||||
};
|
||||
|
||||
// Faroe Islands
|
||||
const PrepopulatedEngine* const engines_FO[] = {
|
||||
- &google, &bing, &ask,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
};
|
||||
|
||||
// Finland
|
||||
const PrepopulatedEngine* const engines_FI[] = {
|
||||
- &google, &bing, &yahoo_fi,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi,
|
||||
};
|
||||
|
||||
// France
|
||||
const PrepopulatedEngine* const engines_FR[] = {
|
||||
- &google, &bing, &yahoo_fr,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
};
|
||||
|
||||
// United Kingdom
|
||||
const PrepopulatedEngine* const engines_GB[] = {
|
||||
- &google, &bing, &yahoo_uk, &ask_uk,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk,
|
||||
};
|
||||
|
||||
// Greece
|
||||
const PrepopulatedEngine* const engines_GR[] = {
|
||||
- &google, &bing, &yahoo_gr,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr,
|
||||
};
|
||||
|
||||
// Guatemala
|
||||
const PrepopulatedEngine* const engines_GT[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Hong Kong
|
||||
const PrepopulatedEngine* const engines_HK[] = {
|
||||
- &google, &yahoo_hk, &baidu, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing,
|
||||
};
|
||||
|
||||
// Honduras
|
||||
const PrepopulatedEngine* const engines_HN[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Croatia
|
||||
const PrepopulatedEngine* const engines_HR[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Hungary
|
||||
const PrepopulatedEngine* const engines_HU[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Indonesia
|
||||
const PrepopulatedEngine* const engines_ID[] = {
|
||||
- &google, &yahoo_id, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing,
|
||||
};
|
||||
|
||||
// Ireland
|
||||
const PrepopulatedEngine* const engines_IE[] = {
|
||||
- &google, &bing, &yahoo_uk,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk,
|
||||
};
|
||||
|
||||
// Israel
|
||||
const PrepopulatedEngine* const engines_IL[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// India
|
||||
const PrepopulatedEngine* const engines_IN[] = {
|
||||
- &google, &bing, &yahoo_in,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in,
|
||||
};
|
||||
|
||||
// Iraq
|
||||
const PrepopulatedEngine* const engines_IQ[] = {
|
||||
- &google, &yahoo_maktoob, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Iran
|
||||
const PrepopulatedEngine* const engines_IR[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Iceland
|
||||
const PrepopulatedEngine* const engines_IS[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Italy
|
||||
const PrepopulatedEngine* const engines_IT[] = {
|
||||
- &google, &virgilio, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &virgilio, &bing,
|
||||
};
|
||||
|
||||
// Jamaica
|
||||
const PrepopulatedEngine* const engines_JM[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Jordan
|
||||
const PrepopulatedEngine* const engines_JO[] = {
|
||||
- &google, &yahoo_maktoob, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Japan
|
||||
const PrepopulatedEngine* const engines_JP[] = {
|
||||
- &google, &yahoo_jp, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing,
|
||||
};
|
||||
|
||||
// Kenya
|
||||
const PrepopulatedEngine* const engines_KE[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Kuwait
|
||||
const PrepopulatedEngine* const engines_KW[] = {
|
||||
- &google, &yahoo_maktoob, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// South Korea
|
||||
const PrepopulatedEngine* const engines_KR[] = {
|
||||
- &google, &naver, &daum,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &naver, &daum,
|
||||
};
|
||||
|
||||
// Kazakhstan
|
||||
const PrepopulatedEngine* const engines_KZ[] = {
|
||||
- &google, &mail_ru, &yandex_kz,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz,
|
||||
};
|
||||
|
||||
// Lebanon
|
||||
const PrepopulatedEngine* const engines_LB[] = {
|
||||
- &google, &yahoo_maktoob, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Liechtenstein
|
||||
const PrepopulatedEngine* const engines_LI[] = {
|
||||
- &google, &bing, &yahoo_de,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
};
|
||||
|
||||
// Lithuania
|
||||
const PrepopulatedEngine* const engines_LT[] = {
|
||||
- &google, &bing, &yandex_ru,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru,
|
||||
};
|
||||
|
||||
// Luxembourg
|
||||
const PrepopulatedEngine* const engines_LU[] = {
|
||||
- &google, &bing, &yahoo_fr,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
};
|
||||
|
||||
// Latvia
|
||||
const PrepopulatedEngine* const engines_LV[] = {
|
||||
- &google, &yandex_ru, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing,
|
||||
};
|
||||
|
||||
// Libya
|
||||
const PrepopulatedEngine* const engines_LY[] = {
|
||||
- &google, &yahoo_maktoob, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Morocco
|
||||
const PrepopulatedEngine* const engines_MA[] = {
|
||||
- &google, &bing, &yahoo_maktoob,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Monaco
|
||||
const PrepopulatedEngine* const engines_MC[] = {
|
||||
- &google, &yahoo_fr, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing,
|
||||
};
|
||||
|
||||
// Moldova
|
||||
const PrepopulatedEngine* const engines_MD[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Montenegro
|
||||
const PrepopulatedEngine* const engines_ME[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Macedonia
|
||||
const PrepopulatedEngine* const engines_MK[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Mexico
|
||||
const PrepopulatedEngine* const engines_MX[] = {
|
||||
- &google, &bing, &yahoo_mx,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx,
|
||||
};
|
||||
|
||||
// Malaysia
|
||||
const PrepopulatedEngine* const engines_MY[] = {
|
||||
- &google, &yahoo_my, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
};
|
||||
|
||||
// Nicaragua
|
||||
const PrepopulatedEngine* const engines_NI[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Netherlands
|
||||
const PrepopulatedEngine* const engines_NL[] = {
|
||||
- &google, &yahoo_nl, &vinden,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden,
|
||||
};
|
||||
|
||||
// Norway
|
||||
const PrepopulatedEngine* const engines_NO[] = {
|
||||
- &google, &bing, &kvasir,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &kvasir,
|
||||
};
|
||||
|
||||
// New Zealand
|
||||
const PrepopulatedEngine* const engines_NZ[] = {
|
||||
- &google, &bing, &yahoo_nz,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz,
|
||||
};
|
||||
|
||||
// Oman
|
||||
const PrepopulatedEngine* const engines_OM[] = {
|
||||
- &google, &bing, &yahoo_maktoob,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Panama
|
||||
const PrepopulatedEngine* const engines_PA[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Peru
|
||||
const PrepopulatedEngine* const engines_PE[] = {
|
||||
- &google, &bing, &yahoo_pe,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe,
|
||||
};
|
||||
|
||||
// Philippines
|
||||
const PrepopulatedEngine* const engines_PH[] = {
|
||||
- &google, &yahoo_ph, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing,
|
||||
};
|
||||
|
||||
// Pakistan
|
||||
const PrepopulatedEngine* const engines_PK[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Puerto Rico
|
||||
const PrepopulatedEngine* const engines_PR[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Poland
|
||||
const PrepopulatedEngine* const engines_PL[] = {
|
||||
- &google, &onet, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &onet, &bing,
|
||||
};
|
||||
|
||||
// Portugal
|
||||
const PrepopulatedEngine* const engines_PT[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Paraguay
|
||||
const PrepopulatedEngine* const engines_PY[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Qatar
|
||||
const PrepopulatedEngine* const engines_QA[] = {
|
||||
- &google, &yahoo_maktoob, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Romania
|
||||
const PrepopulatedEngine* const engines_RO[] = {
|
||||
- &google, &yahoo_ro, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing,
|
||||
};
|
||||
|
||||
// Serbia
|
||||
const PrepopulatedEngine* const engines_RS[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Russia
|
||||
const PrepopulatedEngine* const engines_RU[] = {
|
||||
- &google, &yandex_ru, &mail_ru,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru,
|
||||
};
|
||||
|
||||
// Rwanda
|
||||
const PrepopulatedEngine* const engines_RW[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Saudi Arabia
|
||||
const PrepopulatedEngine* const engines_SA[] = {
|
||||
- &google, &yahoo_maktoob, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Sweden
|
||||
const PrepopulatedEngine* const engines_SE[] = {
|
||||
- &google, &bing, &yahoo_se,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se,
|
||||
};
|
||||
|
||||
// Singapore
|
||||
const PrepopulatedEngine* const engines_SG[] = {
|
||||
- &google, &yahoo_sg, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing,
|
||||
};
|
||||
|
||||
// Slovenia
|
||||
const PrepopulatedEngine* const engines_SI[] = {
|
||||
- &google, &najdi, &ask,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &najdi, &ask,
|
||||
};
|
||||
|
||||
// Slovakia
|
||||
const PrepopulatedEngine* const engines_SK[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// El Salvador
|
||||
const PrepopulatedEngine* const engines_SV[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Syria
|
||||
const PrepopulatedEngine* const engines_SY[] = {
|
||||
- &google, &bing, &yahoo_maktoob,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Thailand
|
||||
const PrepopulatedEngine* const engines_TH[] = {
|
||||
- &google, &yahoo_th, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing,
|
||||
};
|
||||
|
||||
// Tunisia
|
||||
const PrepopulatedEngine* const engines_TN[] = {
|
||||
- &google, &bing, &yahoo_maktoob,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Turkey
|
||||
const PrepopulatedEngine* const engines_TR[] = {
|
||||
- &google, &bing, &yahoo_tr, &yandex_tr,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr,
|
||||
};
|
||||
|
||||
// Trinidad and Tobago
|
||||
const PrepopulatedEngine* const engines_TT[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Taiwan
|
||||
const PrepopulatedEngine* const engines_TW[] = {
|
||||
- &google, &yahoo_tw, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing,
|
||||
};
|
||||
|
||||
// Tanzania
|
||||
const PrepopulatedEngine* const engines_TZ[] = {
|
||||
- &google, &yahoo, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Ukraine
|
||||
const PrepopulatedEngine* const engines_UA[] = {
|
||||
- &google, &yandex_ua, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing,
|
||||
};
|
||||
|
||||
// United States
|
||||
const PrepopulatedEngine* const engines_US[] = {
|
||||
- &google, &bing, &yahoo, &aol, &ask,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask,
|
||||
};
|
||||
|
||||
// Uruguay
|
||||
const PrepopulatedEngine* const engines_UY[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Venezuela
|
||||
const PrepopulatedEngine* const engines_VE[] = {
|
||||
- &google, &bing, &yahoo_ve,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve,
|
||||
};
|
||||
|
||||
// Vietnam
|
||||
const PrepopulatedEngine* const engines_VN[] = {
|
||||
- &google, &yahoo_vn, &bing,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing,
|
||||
};
|
||||
|
||||
// Yemen
|
||||
const PrepopulatedEngine* const engines_YE[] = {
|
||||
- &google, &bing, &yahoo_maktoob,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// South Africa
|
||||
const PrepopulatedEngine* const engines_ZA[] = {
|
||||
- &google, &bing, &yahoo,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Zimbabwe
|
||||
const PrepopulatedEngine* const engines_ZW[] = {
|
||||
- &google, &bing, &yahoo, &ask,
|
||||
+ &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask,
|
||||
};
|
||||
|
||||
// A list of all the engines that we know about.
|
||||
const PrepopulatedEngine* const kAllEngines[] = {
|
||||
// Prepopulated engines:
|
||||
- &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &google, &kvasir,
|
||||
+ &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &google, &duckduckgo, &duckduckgo_light, &kvasir,
|
||||
&mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio,
|
||||
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
|
||||
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
|
||||
@@ -0,0 +1,706 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 18 21:24:05 2017 +0200
|
||||
|
||||
Add StartPage search engine
|
||||
|
||||
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
|
||||
--- a/components/search_engines/prepopulated_engines.json
|
||||
+++ b/components/search_engines/prepopulated_engines.json
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
// Increment this if you change the data in ways that mean users with
|
||||
// existing data should get a new version.
|
||||
- "kCurrentDataVersion": 101
|
||||
+ "kCurrentDataVersion": 102
|
||||
},
|
||||
|
||||
// The following engines are included in country lists and are added to the
|
||||
@@ -232,6 +232,16 @@
|
||||
"id": 56
|
||||
},
|
||||
|
||||
+ "startpage": {
|
||||
+ "name": "StartPage",
|
||||
+ "keyword": "startpage.com",
|
||||
+ "favicon_url": "https://www.startpage.com/graphics/favicon/sp-favicon-16x16.png",
|
||||
+ "search_url": "https://www.startpage.com/do/dsearch?query={searchTerms}&cat=web&pl=opensearch",
|
||||
+ "suggest_url": "https://www.startpage.com/cgi-bin/csuggest?query={searchTerms}&limit=10&format=json",
|
||||
+ "type": "SEARCH_ENGINE_STARTPAGE",
|
||||
+ "id": 33
|
||||
+ },
|
||||
+
|
||||
"vinden": {
|
||||
"name": "Vinden.nl",
|
||||
"keyword": "vinden.nl",
|
||||
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
|
||||
--- a/components/search_engines/search_engine_type.h
|
||||
+++ b/components/search_engines/search_engine_type.h
|
||||
@@ -65,6 +65,7 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_360,
|
||||
SEARCH_ENGINE_DUCKDUCKGO,
|
||||
SEARCH_ENGINE_DUCKDUCKGOLIGHT,
|
||||
+ SEARCH_ENGINE_STARTPAGE,
|
||||
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
||||
};
|
||||
|
||||
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
|
||||
--- a/components/search_engines/template_url_prepopulate_data.cc
|
||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||
@@ -51,548 +51,548 @@ namespace {
|
||||
|
||||
// Default (for countries with no better engine set)
|
||||
const PrepopulatedEngine* const engines_default[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// United Arab Emirates
|
||||
const PrepopulatedEngine* const engines_AE[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Albania
|
||||
const PrepopulatedEngine* const engines_AL[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Argentina
|
||||
const PrepopulatedEngine* const engines_AR[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar,
|
||||
};
|
||||
|
||||
// Austria
|
||||
const PrepopulatedEngine* const engines_AT[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at,
|
||||
};
|
||||
|
||||
// Australia
|
||||
const PrepopulatedEngine* const engines_AU[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au,
|
||||
};
|
||||
|
||||
// Bosnia and Herzegovina
|
||||
const PrepopulatedEngine* const engines_BA[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Belgium
|
||||
const PrepopulatedEngine* const engines_BE[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr,
|
||||
};
|
||||
|
||||
// Bulgaria
|
||||
const PrepopulatedEngine* const engines_BG[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
};
|
||||
|
||||
// Bahrain
|
||||
const PrepopulatedEngine* const engines_BH[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Burundi
|
||||
const PrepopulatedEngine* const engines_BI[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Brunei
|
||||
const PrepopulatedEngine* const engines_BN[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
};
|
||||
|
||||
// Bolivia
|
||||
const PrepopulatedEngine* const engines_BO[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Brazil
|
||||
const PrepopulatedEngine* const engines_BR[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br,
|
||||
};
|
||||
|
||||
// Belarus
|
||||
const PrepopulatedEngine* const engines_BY[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru,
|
||||
};
|
||||
|
||||
// Belize
|
||||
const PrepopulatedEngine* const engines_BZ[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Canada
|
||||
const PrepopulatedEngine* const engines_CA[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc,
|
||||
};
|
||||
|
||||
// Switzerland
|
||||
const PrepopulatedEngine* const engines_CH[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch,
|
||||
};
|
||||
|
||||
// Chile
|
||||
const PrepopulatedEngine* const engines_CL[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl,
|
||||
};
|
||||
|
||||
// China
|
||||
const PrepopulatedEngine* const engines_CN[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360,
|
||||
};
|
||||
|
||||
// Colombia
|
||||
const PrepopulatedEngine* const engines_CO[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co,
|
||||
};
|
||||
|
||||
// Costa Rica
|
||||
const PrepopulatedEngine* const engines_CR[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Czech Republic
|
||||
const PrepopulatedEngine* const engines_CZ[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &seznam, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &seznam, &bing,
|
||||
};
|
||||
|
||||
// Germany
|
||||
const PrepopulatedEngine* const engines_DE[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
};
|
||||
|
||||
// Denmark
|
||||
const PrepopulatedEngine* const engines_DK[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk,
|
||||
};
|
||||
|
||||
// Dominican Republic
|
||||
const PrepopulatedEngine* const engines_DO[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Algeria
|
||||
const PrepopulatedEngine* const engines_DZ[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Ecuador
|
||||
const PrepopulatedEngine* const engines_EC[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Estonia
|
||||
const PrepopulatedEngine* const engines_EE[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Egypt
|
||||
const PrepopulatedEngine* const engines_EG[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Spain
|
||||
const PrepopulatedEngine* const engines_ES[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es,
|
||||
};
|
||||
|
||||
// Faroe Islands
|
||||
const PrepopulatedEngine* const engines_FO[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
};
|
||||
|
||||
// Finland
|
||||
const PrepopulatedEngine* const engines_FI[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi,
|
||||
};
|
||||
|
||||
// France
|
||||
const PrepopulatedEngine* const engines_FR[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
};
|
||||
|
||||
// United Kingdom
|
||||
const PrepopulatedEngine* const engines_GB[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk,
|
||||
};
|
||||
|
||||
// Greece
|
||||
const PrepopulatedEngine* const engines_GR[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr,
|
||||
};
|
||||
|
||||
// Guatemala
|
||||
const PrepopulatedEngine* const engines_GT[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Hong Kong
|
||||
const PrepopulatedEngine* const engines_HK[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing,
|
||||
};
|
||||
|
||||
// Honduras
|
||||
const PrepopulatedEngine* const engines_HN[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Croatia
|
||||
const PrepopulatedEngine* const engines_HR[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Hungary
|
||||
const PrepopulatedEngine* const engines_HU[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Indonesia
|
||||
const PrepopulatedEngine* const engines_ID[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing,
|
||||
};
|
||||
|
||||
// Ireland
|
||||
const PrepopulatedEngine* const engines_IE[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk,
|
||||
};
|
||||
|
||||
// Israel
|
||||
const PrepopulatedEngine* const engines_IL[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// India
|
||||
const PrepopulatedEngine* const engines_IN[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in,
|
||||
};
|
||||
|
||||
// Iraq
|
||||
const PrepopulatedEngine* const engines_IQ[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Iran
|
||||
const PrepopulatedEngine* const engines_IR[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Iceland
|
||||
const PrepopulatedEngine* const engines_IS[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Italy
|
||||
const PrepopulatedEngine* const engines_IT[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &virgilio, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &virgilio, &bing,
|
||||
};
|
||||
|
||||
// Jamaica
|
||||
const PrepopulatedEngine* const engines_JM[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Jordan
|
||||
const PrepopulatedEngine* const engines_JO[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Japan
|
||||
const PrepopulatedEngine* const engines_JP[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing,
|
||||
};
|
||||
|
||||
// Kenya
|
||||
const PrepopulatedEngine* const engines_KE[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Kuwait
|
||||
const PrepopulatedEngine* const engines_KW[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// South Korea
|
||||
const PrepopulatedEngine* const engines_KR[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &naver, &daum,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &naver, &daum,
|
||||
};
|
||||
|
||||
// Kazakhstan
|
||||
const PrepopulatedEngine* const engines_KZ[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz,
|
||||
};
|
||||
|
||||
// Lebanon
|
||||
const PrepopulatedEngine* const engines_LB[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Liechtenstein
|
||||
const PrepopulatedEngine* const engines_LI[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
};
|
||||
|
||||
// Lithuania
|
||||
const PrepopulatedEngine* const engines_LT[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru,
|
||||
};
|
||||
|
||||
// Luxembourg
|
||||
const PrepopulatedEngine* const engines_LU[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
};
|
||||
|
||||
// Latvia
|
||||
const PrepopulatedEngine* const engines_LV[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing,
|
||||
};
|
||||
|
||||
// Libya
|
||||
const PrepopulatedEngine* const engines_LY[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Morocco
|
||||
const PrepopulatedEngine* const engines_MA[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Monaco
|
||||
const PrepopulatedEngine* const engines_MC[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing,
|
||||
};
|
||||
|
||||
// Moldova
|
||||
const PrepopulatedEngine* const engines_MD[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Montenegro
|
||||
const PrepopulatedEngine* const engines_ME[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Macedonia
|
||||
const PrepopulatedEngine* const engines_MK[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Mexico
|
||||
const PrepopulatedEngine* const engines_MX[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx,
|
||||
};
|
||||
|
||||
// Malaysia
|
||||
const PrepopulatedEngine* const engines_MY[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
};
|
||||
|
||||
// Nicaragua
|
||||
const PrepopulatedEngine* const engines_NI[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Netherlands
|
||||
const PrepopulatedEngine* const engines_NL[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden,
|
||||
};
|
||||
|
||||
// Norway
|
||||
const PrepopulatedEngine* const engines_NO[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &kvasir,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &kvasir,
|
||||
};
|
||||
|
||||
// New Zealand
|
||||
const PrepopulatedEngine* const engines_NZ[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz,
|
||||
};
|
||||
|
||||
// Oman
|
||||
const PrepopulatedEngine* const engines_OM[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Panama
|
||||
const PrepopulatedEngine* const engines_PA[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Peru
|
||||
const PrepopulatedEngine* const engines_PE[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe,
|
||||
};
|
||||
|
||||
// Philippines
|
||||
const PrepopulatedEngine* const engines_PH[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing,
|
||||
};
|
||||
|
||||
// Pakistan
|
||||
const PrepopulatedEngine* const engines_PK[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Puerto Rico
|
||||
const PrepopulatedEngine* const engines_PR[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Poland
|
||||
const PrepopulatedEngine* const engines_PL[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &onet, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &onet, &bing,
|
||||
};
|
||||
|
||||
// Portugal
|
||||
const PrepopulatedEngine* const engines_PT[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Paraguay
|
||||
const PrepopulatedEngine* const engines_PY[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Qatar
|
||||
const PrepopulatedEngine* const engines_QA[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Romania
|
||||
const PrepopulatedEngine* const engines_RO[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing,
|
||||
};
|
||||
|
||||
// Serbia
|
||||
const PrepopulatedEngine* const engines_RS[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Russia
|
||||
const PrepopulatedEngine* const engines_RU[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru,
|
||||
};
|
||||
|
||||
// Rwanda
|
||||
const PrepopulatedEngine* const engines_RW[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Saudi Arabia
|
||||
const PrepopulatedEngine* const engines_SA[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Sweden
|
||||
const PrepopulatedEngine* const engines_SE[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se,
|
||||
};
|
||||
|
||||
// Singapore
|
||||
const PrepopulatedEngine* const engines_SG[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing,
|
||||
};
|
||||
|
||||
// Slovenia
|
||||
const PrepopulatedEngine* const engines_SI[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &najdi, &ask,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &najdi, &ask,
|
||||
};
|
||||
|
||||
// Slovakia
|
||||
const PrepopulatedEngine* const engines_SK[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// El Salvador
|
||||
const PrepopulatedEngine* const engines_SV[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Syria
|
||||
const PrepopulatedEngine* const engines_SY[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Thailand
|
||||
const PrepopulatedEngine* const engines_TH[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing,
|
||||
};
|
||||
|
||||
// Tunisia
|
||||
const PrepopulatedEngine* const engines_TN[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Turkey
|
||||
const PrepopulatedEngine* const engines_TR[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr,
|
||||
};
|
||||
|
||||
// Trinidad and Tobago
|
||||
const PrepopulatedEngine* const engines_TT[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Taiwan
|
||||
const PrepopulatedEngine* const engines_TW[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing,
|
||||
};
|
||||
|
||||
// Tanzania
|
||||
const PrepopulatedEngine* const engines_TZ[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Ukraine
|
||||
const PrepopulatedEngine* const engines_UA[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing,
|
||||
};
|
||||
|
||||
// United States
|
||||
const PrepopulatedEngine* const engines_US[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask,
|
||||
};
|
||||
|
||||
// Uruguay
|
||||
const PrepopulatedEngine* const engines_UY[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Venezuela
|
||||
const PrepopulatedEngine* const engines_VE[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve,
|
||||
};
|
||||
|
||||
// Vietnam
|
||||
const PrepopulatedEngine* const engines_VN[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing,
|
||||
};
|
||||
|
||||
// Yemen
|
||||
const PrepopulatedEngine* const engines_YE[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// South Africa
|
||||
const PrepopulatedEngine* const engines_ZA[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Zimbabwe
|
||||
const PrepopulatedEngine* const engines_ZW[] = {
|
||||
- &google, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask,
|
||||
+ &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask,
|
||||
};
|
||||
|
||||
// A list of all the engines that we know about.
|
||||
const PrepopulatedEngine* const kAllEngines[] = {
|
||||
// Prepopulated engines:
|
||||
- &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &google, &duckduckgo, &duckduckgo_light, &kvasir,
|
||||
+ &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &google, &startpage, &duckduckgo, &duckduckgo_light, &kvasir,
|
||||
&mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio,
|
||||
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
|
||||
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
|
||||
@@ -0,0 +1,717 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Dec 11 22:42:11 2017 +0100
|
||||
|
||||
Added Google English-only engine, no RLZ and field experiments
|
||||
|
||||
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
|
||||
--- a/components/search_engines/prepopulated_engines.json
|
||||
+++ b/components/search_engines/prepopulated_engines.json
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
// Increment this if you change the data in ways that mean users with
|
||||
// existing data should get a new version.
|
||||
- "kCurrentDataVersion": 102
|
||||
+ "kCurrentDataVersion": 103
|
||||
},
|
||||
|
||||
// The following engines are included in country lists and are added to the
|
||||
@@ -154,6 +154,27 @@
|
||||
"id": 1
|
||||
},
|
||||
|
||||
+ "googleen": {
|
||||
+ "name": "GoogleEN",
|
||||
+ "keyword": "google.co.uk",
|
||||
+ "favicon_url": "https://www.google.com/favicon.ico",
|
||||
+ "search_url": "{google:baseURL}search?q={searchTerms}&{google:originalQueryForSuggestion}{google:iOSSearchLanguage}{google:searchClient}{google:contextualSearchVersion}ie={inputEncoding}&hl=en",
|
||||
+ "suggest_url": "{google:baseSuggestURL}search?client={google:suggestClient}&gs_ri={google:suggestRid}&xssi=t&q={searchTerms}&{google:inputType}{google:pageClassification}{google:searchVersion}{google:prefetchQuery}sugkey={google:suggestAPIKeyParameter}&hl=en",
|
||||
+ "image_url": "{google:baseURL}searchbyimage/upload?hl=en",
|
||||
+ "new_tab_url": "{google:baseURL}_/chrome/newtab?hl=en&ie={inputEncoding}",
|
||||
+ "contextual_search_url": "{google:baseURL}_/contextualsearch?{google:contextualSearchVersion}{google:contextualSearchContextData}&hl=en",
|
||||
+ "image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}",
|
||||
+ "alternate_urls": [
|
||||
+ "{google:baseURL}?hl=en#q={searchTerms}",
|
||||
+ "{google:baseURL}search?hl=en#q={searchTerms}",
|
||||
+ "{google:baseURL}webhp?hl=en#q={searchTerms}",
|
||||
+ "{google:baseURL}s?hl=en#q={searchTerms}",
|
||||
+ "{google:baseURL}s?hl=en&q={searchTerms}"
|
||||
+ ],
|
||||
+ "type": "SEARCH_ENGINE_GOOGLE_EN",
|
||||
+ "id": 13
|
||||
+ },
|
||||
+
|
||||
"kvasir": {
|
||||
"name": "Kvasir",
|
||||
"keyword": "kvasir.no",
|
||||
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
|
||||
--- a/components/search_engines/search_engine_type.h
|
||||
+++ b/components/search_engines/search_engine_type.h
|
||||
@@ -66,6 +66,7 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_DUCKDUCKGO,
|
||||
SEARCH_ENGINE_DUCKDUCKGOLIGHT,
|
||||
SEARCH_ENGINE_STARTPAGE,
|
||||
+ SEARCH_ENGINE_GOOGLE_EN,
|
||||
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
||||
};
|
||||
|
||||
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
|
||||
--- a/components/search_engines/template_url_prepopulate_data.cc
|
||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||
@@ -51,548 +51,548 @@ namespace {
|
||||
|
||||
// Default (for countries with no better engine set)
|
||||
const PrepopulatedEngine* const engines_default[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// United Arab Emirates
|
||||
const PrepopulatedEngine* const engines_AE[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Albania
|
||||
const PrepopulatedEngine* const engines_AL[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Argentina
|
||||
const PrepopulatedEngine* const engines_AR[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar,
|
||||
};
|
||||
|
||||
// Austria
|
||||
const PrepopulatedEngine* const engines_AT[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at,
|
||||
};
|
||||
|
||||
// Australia
|
||||
const PrepopulatedEngine* const engines_AU[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au,
|
||||
};
|
||||
|
||||
// Bosnia and Herzegovina
|
||||
const PrepopulatedEngine* const engines_BA[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Belgium
|
||||
const PrepopulatedEngine* const engines_BE[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr,
|
||||
};
|
||||
|
||||
// Bulgaria
|
||||
const PrepopulatedEngine* const engines_BG[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
};
|
||||
|
||||
// Bahrain
|
||||
const PrepopulatedEngine* const engines_BH[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Burundi
|
||||
const PrepopulatedEngine* const engines_BI[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Brunei
|
||||
const PrepopulatedEngine* const engines_BN[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
};
|
||||
|
||||
// Bolivia
|
||||
const PrepopulatedEngine* const engines_BO[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Brazil
|
||||
const PrepopulatedEngine* const engines_BR[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br,
|
||||
};
|
||||
|
||||
// Belarus
|
||||
const PrepopulatedEngine* const engines_BY[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru,
|
||||
};
|
||||
|
||||
// Belize
|
||||
const PrepopulatedEngine* const engines_BZ[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Canada
|
||||
const PrepopulatedEngine* const engines_CA[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc,
|
||||
};
|
||||
|
||||
// Switzerland
|
||||
const PrepopulatedEngine* const engines_CH[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch,
|
||||
};
|
||||
|
||||
// Chile
|
||||
const PrepopulatedEngine* const engines_CL[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl,
|
||||
};
|
||||
|
||||
// China
|
||||
const PrepopulatedEngine* const engines_CN[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360,
|
||||
};
|
||||
|
||||
// Colombia
|
||||
const PrepopulatedEngine* const engines_CO[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co,
|
||||
};
|
||||
|
||||
// Costa Rica
|
||||
const PrepopulatedEngine* const engines_CR[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Czech Republic
|
||||
const PrepopulatedEngine* const engines_CZ[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &seznam, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &seznam, &bing,
|
||||
};
|
||||
|
||||
// Germany
|
||||
const PrepopulatedEngine* const engines_DE[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
};
|
||||
|
||||
// Denmark
|
||||
const PrepopulatedEngine* const engines_DK[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk,
|
||||
};
|
||||
|
||||
// Dominican Republic
|
||||
const PrepopulatedEngine* const engines_DO[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Algeria
|
||||
const PrepopulatedEngine* const engines_DZ[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Ecuador
|
||||
const PrepopulatedEngine* const engines_EC[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Estonia
|
||||
const PrepopulatedEngine* const engines_EE[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Egypt
|
||||
const PrepopulatedEngine* const engines_EG[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Spain
|
||||
const PrepopulatedEngine* const engines_ES[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es,
|
||||
};
|
||||
|
||||
// Faroe Islands
|
||||
const PrepopulatedEngine* const engines_FO[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
};
|
||||
|
||||
// Finland
|
||||
const PrepopulatedEngine* const engines_FI[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi,
|
||||
};
|
||||
|
||||
// France
|
||||
const PrepopulatedEngine* const engines_FR[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
};
|
||||
|
||||
// United Kingdom
|
||||
const PrepopulatedEngine* const engines_GB[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk,
|
||||
};
|
||||
|
||||
// Greece
|
||||
const PrepopulatedEngine* const engines_GR[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr,
|
||||
};
|
||||
|
||||
// Guatemala
|
||||
const PrepopulatedEngine* const engines_GT[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Hong Kong
|
||||
const PrepopulatedEngine* const engines_HK[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing,
|
||||
};
|
||||
|
||||
// Honduras
|
||||
const PrepopulatedEngine* const engines_HN[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Croatia
|
||||
const PrepopulatedEngine* const engines_HR[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Hungary
|
||||
const PrepopulatedEngine* const engines_HU[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Indonesia
|
||||
const PrepopulatedEngine* const engines_ID[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing,
|
||||
};
|
||||
|
||||
// Ireland
|
||||
const PrepopulatedEngine* const engines_IE[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk,
|
||||
};
|
||||
|
||||
// Israel
|
||||
const PrepopulatedEngine* const engines_IL[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// India
|
||||
const PrepopulatedEngine* const engines_IN[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in,
|
||||
};
|
||||
|
||||
// Iraq
|
||||
const PrepopulatedEngine* const engines_IQ[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Iran
|
||||
const PrepopulatedEngine* const engines_IR[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Iceland
|
||||
const PrepopulatedEngine* const engines_IS[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Italy
|
||||
const PrepopulatedEngine* const engines_IT[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &virgilio, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &virgilio, &bing,
|
||||
};
|
||||
|
||||
// Jamaica
|
||||
const PrepopulatedEngine* const engines_JM[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Jordan
|
||||
const PrepopulatedEngine* const engines_JO[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Japan
|
||||
const PrepopulatedEngine* const engines_JP[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing,
|
||||
};
|
||||
|
||||
// Kenya
|
||||
const PrepopulatedEngine* const engines_KE[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Kuwait
|
||||
const PrepopulatedEngine* const engines_KW[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// South Korea
|
||||
const PrepopulatedEngine* const engines_KR[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &naver, &daum,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &naver, &daum,
|
||||
};
|
||||
|
||||
// Kazakhstan
|
||||
const PrepopulatedEngine* const engines_KZ[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz,
|
||||
};
|
||||
|
||||
// Lebanon
|
||||
const PrepopulatedEngine* const engines_LB[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Liechtenstein
|
||||
const PrepopulatedEngine* const engines_LI[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
};
|
||||
|
||||
// Lithuania
|
||||
const PrepopulatedEngine* const engines_LT[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru,
|
||||
};
|
||||
|
||||
// Luxembourg
|
||||
const PrepopulatedEngine* const engines_LU[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
};
|
||||
|
||||
// Latvia
|
||||
const PrepopulatedEngine* const engines_LV[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing,
|
||||
};
|
||||
|
||||
// Libya
|
||||
const PrepopulatedEngine* const engines_LY[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Morocco
|
||||
const PrepopulatedEngine* const engines_MA[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Monaco
|
||||
const PrepopulatedEngine* const engines_MC[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing,
|
||||
};
|
||||
|
||||
// Moldova
|
||||
const PrepopulatedEngine* const engines_MD[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Montenegro
|
||||
const PrepopulatedEngine* const engines_ME[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Macedonia
|
||||
const PrepopulatedEngine* const engines_MK[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Mexico
|
||||
const PrepopulatedEngine* const engines_MX[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx,
|
||||
};
|
||||
|
||||
// Malaysia
|
||||
const PrepopulatedEngine* const engines_MY[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
};
|
||||
|
||||
// Nicaragua
|
||||
const PrepopulatedEngine* const engines_NI[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Netherlands
|
||||
const PrepopulatedEngine* const engines_NL[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden,
|
||||
};
|
||||
|
||||
// Norway
|
||||
const PrepopulatedEngine* const engines_NO[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &kvasir,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &kvasir,
|
||||
};
|
||||
|
||||
// New Zealand
|
||||
const PrepopulatedEngine* const engines_NZ[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz,
|
||||
};
|
||||
|
||||
// Oman
|
||||
const PrepopulatedEngine* const engines_OM[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Panama
|
||||
const PrepopulatedEngine* const engines_PA[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Peru
|
||||
const PrepopulatedEngine* const engines_PE[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe,
|
||||
};
|
||||
|
||||
// Philippines
|
||||
const PrepopulatedEngine* const engines_PH[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing,
|
||||
};
|
||||
|
||||
// Pakistan
|
||||
const PrepopulatedEngine* const engines_PK[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Puerto Rico
|
||||
const PrepopulatedEngine* const engines_PR[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Poland
|
||||
const PrepopulatedEngine* const engines_PL[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &onet, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &onet, &bing,
|
||||
};
|
||||
|
||||
// Portugal
|
||||
const PrepopulatedEngine* const engines_PT[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Paraguay
|
||||
const PrepopulatedEngine* const engines_PY[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Qatar
|
||||
const PrepopulatedEngine* const engines_QA[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Romania
|
||||
const PrepopulatedEngine* const engines_RO[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing,
|
||||
};
|
||||
|
||||
// Serbia
|
||||
const PrepopulatedEngine* const engines_RS[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Russia
|
||||
const PrepopulatedEngine* const engines_RU[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru,
|
||||
};
|
||||
|
||||
// Rwanda
|
||||
const PrepopulatedEngine* const engines_RW[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Saudi Arabia
|
||||
const PrepopulatedEngine* const engines_SA[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Sweden
|
||||
const PrepopulatedEngine* const engines_SE[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se,
|
||||
};
|
||||
|
||||
// Singapore
|
||||
const PrepopulatedEngine* const engines_SG[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing,
|
||||
};
|
||||
|
||||
// Slovenia
|
||||
const PrepopulatedEngine* const engines_SI[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &najdi, &ask,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &najdi, &ask,
|
||||
};
|
||||
|
||||
// Slovakia
|
||||
const PrepopulatedEngine* const engines_SK[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// El Salvador
|
||||
const PrepopulatedEngine* const engines_SV[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Syria
|
||||
const PrepopulatedEngine* const engines_SY[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Thailand
|
||||
const PrepopulatedEngine* const engines_TH[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing,
|
||||
};
|
||||
|
||||
// Tunisia
|
||||
const PrepopulatedEngine* const engines_TN[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Turkey
|
||||
const PrepopulatedEngine* const engines_TR[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr,
|
||||
};
|
||||
|
||||
// Trinidad and Tobago
|
||||
const PrepopulatedEngine* const engines_TT[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Taiwan
|
||||
const PrepopulatedEngine* const engines_TW[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing,
|
||||
};
|
||||
|
||||
// Tanzania
|
||||
const PrepopulatedEngine* const engines_TZ[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Ukraine
|
||||
const PrepopulatedEngine* const engines_UA[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing,
|
||||
};
|
||||
|
||||
// United States
|
||||
const PrepopulatedEngine* const engines_US[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask,
|
||||
};
|
||||
|
||||
// Uruguay
|
||||
const PrepopulatedEngine* const engines_UY[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Venezuela
|
||||
const PrepopulatedEngine* const engines_VE[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve,
|
||||
};
|
||||
|
||||
// Vietnam
|
||||
const PrepopulatedEngine* const engines_VN[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing,
|
||||
};
|
||||
|
||||
// Yemen
|
||||
const PrepopulatedEngine* const engines_YE[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// South Africa
|
||||
const PrepopulatedEngine* const engines_ZA[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Zimbabwe
|
||||
const PrepopulatedEngine* const engines_ZW[] = {
|
||||
- &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask,
|
||||
+ &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask,
|
||||
};
|
||||
|
||||
// A list of all the engines that we know about.
|
||||
const PrepopulatedEngine* const kAllEngines[] = {
|
||||
// Prepopulated engines:
|
||||
- &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &google, &startpage, &duckduckgo, &duckduckgo_light, &kvasir,
|
||||
+ &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &kvasir,
|
||||
&mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio,
|
||||
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
|
||||
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
|
||||
+114
@@ -0,0 +1,114 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Dec 20 22:18:41 2017 +0100
|
||||
|
||||
Revert "Remove Runtime flags for /deep/ and ::shadow used in CSS dynamic profile"
|
||||
|
||||
This reverts commit 860f43550bf6587ca21900dfdf901fce697cbbb7
|
||||
|
||||
diff --git a/third_party/WebKit/Source/core/css/CSSSelector.cpp b/third_party/WebKit/Source/core/css/CSSSelector.cpp
|
||||
--- a/third_party/WebKit/Source/core/css/CSSSelector.cpp
|
||||
+++ b/third_party/WebKit/Source/core/css/CSSSelector.cpp
|
||||
@@ -546,8 +546,14 @@ void CSSSelector::UpdatePseudoType(const AtomicString& value,
|
||||
pseudo_type_ = kPseudoUnknown;
|
||||
break;
|
||||
case kPseudoShadow:
|
||||
- if (match_ != kPseudoElement || context.IsDynamicProfile())
|
||||
- pseudo_type_ = kPseudoUnknown;
|
||||
+ if (RuntimeEnabledFeatures::
|
||||
+ ShadowPseudoElementInCSSDynamicProfileEnabled()) {
|
||||
+ if (match_ != kPseudoElement)
|
||||
+ pseudo_type_ = kPseudoUnknown;
|
||||
+ } else {
|
||||
+ if (match_ != kPseudoElement || context.IsDynamicProfile())
|
||||
+ pseudo_type_ = kPseudoUnknown;
|
||||
+ }
|
||||
break;
|
||||
case kPseudoBlinkInternalElement:
|
||||
if (match_ != kPseudoElement || mode != kUASheetMode)
|
||||
diff --git a/third_party/WebKit/Source/core/css/SelectorChecker.cpp b/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
||||
--- a/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
||||
+++ b/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
||||
@@ -336,6 +336,8 @@ SelectorChecker::MatchStatus SelectorChecker::MatchForRelation(
|
||||
|
||||
switch (relation) {
|
||||
case CSSSelector::kShadowDeepAsDescendant:
|
||||
+ DCHECK(
|
||||
+ !RuntimeEnabledFeatures::DeepCombinatorInCSSDynamicProfileEnabled());
|
||||
Deprecation::CountDeprecation(context.element->GetDocument(),
|
||||
WebFeature::kCSSDeepCombinator);
|
||||
FALLTHROUGH;
|
||||
@@ -424,6 +426,11 @@ SelectorChecker::MatchStatus SelectorChecker::MatchForRelation(
|
||||
UseCounter::Count(context.element->GetDocument(),
|
||||
WebFeature::kPseudoShadowInStaticProfile);
|
||||
}
|
||||
+ if (RuntimeEnabledFeatures::
|
||||
+ ShadowPseudoElementInCSSDynamicProfileEnabled()) {
|
||||
+ Deprecation::CountDeprecation(context.element->GetDocument(),
|
||||
+ WebFeature::kCSSSelectorPseudoShadow);
|
||||
+ }
|
||||
// If we're in the same tree-scope as the scoping element, then following
|
||||
// a shadow descendant combinator would escape that and thus the scope.
|
||||
if (context.scope && context.scope->OwnerShadowHost() &&
|
||||
diff --git a/third_party/WebKit/Source/core/css/StyleEngineTest.cpp b/third_party/WebKit/Source/core/css/StyleEngineTest.cpp
|
||||
--- a/third_party/WebKit/Source/core/css/StyleEngineTest.cpp
|
||||
+++ b/third_party/WebKit/Source/core/css/StyleEngineTest.cpp
|
||||
@@ -842,6 +842,14 @@ TEST_F(StyleEngineTest, RuleSetInvalidationV0BoundaryCrossing) {
|
||||
EXPECT_EQ(ScheduleInvalidationsForRules(
|
||||
*shadow_root, ".a ::content span { background: green}"),
|
||||
kRuleSetInvalidationFullRecalc);
|
||||
+ if (RuntimeEnabledFeatures::DeepCombinatorInCSSDynamicProfileEnabled()) {
|
||||
+ EXPECT_EQ(ScheduleInvalidationsForRules(
|
||||
+ *shadow_root, ".a /deep/ span { background: green}"),
|
||||
+ kRuleSetInvalidationFullRecalc);
|
||||
+ EXPECT_EQ(ScheduleInvalidationsForRules(
|
||||
+ *shadow_root, ".a::shadow span { background: green}"),
|
||||
+ kRuleSetInvalidationFullRecalc);
|
||||
+ }
|
||||
}
|
||||
|
||||
TEST_F(StyleEngineTest, HasViewportDependentMediaQueries) {
|
||||
diff --git a/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp b/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
|
||||
--- a/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
|
||||
+++ b/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
|
||||
@@ -1,4 +1,3 @@
|
||||
-
|
||||
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
@@ -667,6 +666,9 @@ CSSSelector::RelationType CSSSelectorParser::ConsumeCombinator(
|
||||
const CSSParserToken& slash = range.ConsumeIncludingWhitespace();
|
||||
if (slash.GetType() != kDelimiterToken || slash.Delimiter() != '/')
|
||||
failed_parsing_ = true;
|
||||
+ if (RuntimeEnabledFeatures::DeepCombinatorInCSSDynamicProfileEnabled()) {
|
||||
+ return CSSSelector::kShadowDeep;
|
||||
+ }
|
||||
return context_->IsDynamicProfile() ? CSSSelector::kShadowDeepAsDescendant
|
||||
: CSSSelector::kShadowDeep;
|
||||
}
|
||||
diff --git a/third_party/WebKit/Source/platform/runtime_enabled_features.json5 b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
--- a/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
+++ b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
@@ -325,6 +325,11 @@
|
||||
name: "DecodeToYUV",
|
||||
status: "experimental",
|
||||
},
|
||||
+ // Remove this flag once we can remove /deep/ at M63.
|
||||
+ {
|
||||
+ name: "DeepCombinatorInCSSDynamicProfile",
|
||||
+ status: "test",
|
||||
+ },
|
||||
{
|
||||
name: "DeprecationReporting",
|
||||
status: "experimental",
|
||||
@@ -974,6 +979,11 @@
|
||||
name: "ShadowPiercingDescendantCombinator",
|
||||
status: "experimental",
|
||||
},
|
||||
+ // Remove this flag once we can remove ::shadow at M63.
|
||||
+ {
|
||||
+ name: "ShadowPseudoElementInCSSDynamicProfile",
|
||||
+ status: "test",
|
||||
+ },
|
||||
{
|
||||
name: "ShapeDetection",
|
||||
status: "experimental",
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Dec 20 22:31:37 2017 +0100
|
||||
|
||||
Revert "Disable runtime flags for /deep/ and ::shadow used in CSS dynamic profile for M63."
|
||||
|
||||
This reverts commit 0ebd56da93abf970128804390879624b3dc79ac2.
|
||||
|
||||
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt
|
||||
--- a/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt
|
||||
+++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt
|
||||
@@ -1,4 +1,4 @@
|
||||
-CONSOLE WARNING: line 1: /deep/ combinator is no longer supported in CSS dynamic profile.It is now effectively no-op, acting as if it were a descendant combinator. /deep/ combinator will be removed, and will be invalid at M65. You should remove it. See https://www.chromestatus.com/features/4964279606312960 for more details.
|
||||
+CONSOLE WARNING: line 1: /deep/ combinator in CSS is deprecated and will be removed in M63, around December 2017. See https://www.chromestatus.com/features/4964279606312960 for more details.
|
||||
/deep/ as a descendant selector in document without shadow trees.
|
||||
|
||||
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
|
||||
diff --git a/third_party/WebKit/Source/core/frame/Deprecation.cpp b/third_party/WebKit/Source/core/frame/Deprecation.cpp
|
||||
--- a/third_party/WebKit/Source/core/frame/Deprecation.cpp
|
||||
+++ b/third_party/WebKit/Source/core/frame/Deprecation.cpp
|
||||
@@ -388,13 +388,13 @@ DeprecationInfo GetDeprecationInfo(WebFeature feature) {
|
||||
"details.")};
|
||||
|
||||
case WebFeature::kCSSDeepCombinator:
|
||||
- return {"CSSDeepCombinator", M65,
|
||||
- "/deep/ combinator is no longer supported in CSS dynamic profile."
|
||||
- "It is now effectively no-op, acting as if it were a descendant "
|
||||
- "combinator. /deep/ combinator will be removed, and will be "
|
||||
- "invalid at M65. You should remove it. See "
|
||||
- "https://www.chromestatus.com/features/4964279606312960 for more "
|
||||
- "details."};
|
||||
+ return {"CSSDeepCombinator", M63,
|
||||
+ willBeRemoved("/deep/ combinator in CSS", M63, "4964279606312960")};
|
||||
+
|
||||
+ case WebFeature::kCSSSelectorPseudoShadow:
|
||||
+ return {"CSSSelectorPseudoShadow", M63,
|
||||
+ willBeRemoved("::shadow pseudo-element in CSS", M63,
|
||||
+ "6750456638341120")};
|
||||
|
||||
case WebFeature::kVREyeParametersOffset:
|
||||
return {"VREyeParametersOffset", Unknown,
|
||||
diff --git a/third_party/WebKit/Source/platform/runtime_enabled_features.json5 b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
--- a/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
+++ b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
@@ -325,10 +325,11 @@
|
||||
name: "DecodeToYUV",
|
||||
status: "experimental",
|
||||
},
|
||||
- // Remove this flag once we can remove /deep/ at M63.
|
||||
+ // Introduced this flag as stable so we can re-enable this feature easily
|
||||
+ // after we disable this feature.
|
||||
{
|
||||
name: "DeepCombinatorInCSSDynamicProfile",
|
||||
- status: "test",
|
||||
+ status: "stable",
|
||||
},
|
||||
{
|
||||
name: "DeprecationReporting",
|
||||
@@ -979,10 +980,11 @@
|
||||
name: "ShadowPiercingDescendantCombinator",
|
||||
status: "experimental",
|
||||
},
|
||||
- // Remove this flag once we can remove ::shadow at M63.
|
||||
+ // Introduced this flag as stable so we can re-enable this feature easily
|
||||
+ // after we disable this feature.
|
||||
{
|
||||
name: "ShadowPseudoElementInCSSDynamicProfile",
|
||||
- status: "test",
|
||||
+ status: "stable",
|
||||
},
|
||||
{
|
||||
name: "ShapeDetection",
|
||||
@@ -0,0 +1,18 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat Jan 20 19:44:43 2018 +0100
|
||||
|
||||
Fix crash when accessing page info / site settings
|
||||
|
||||
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
|
||||
--- a/chrome/browser/permissions/permission_manager.cc
|
||||
+++ b/chrome/browser/permissions/permission_manager.cc
|
||||
@@ -573,6 +573,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
|
||||
const GURL& embedding_origin) {
|
||||
GURL canonical_requesting_origin = GetCanonicalOrigin(requesting_origin);
|
||||
PermissionContextBase* context = GetPermissionContext(permission);
|
||||
+ if (context == nullptr) {
|
||||
+ return PermissionResult(CONTENT_SETTING_BLOCK, PermissionStatusSource::UNSPECIFIED);
|
||||
+ }
|
||||
PermissionResult result = context->GetPermissionStatus(
|
||||
render_frame_host, canonical_requesting_origin.GetOrigin(),
|
||||
embedding_origin.GetOrigin());
|
||||
@@ -0,0 +1,81 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat Jan 20 21:17:27 2018 +0100
|
||||
|
||||
Compile ARM optimizations for H264
|
||||
Not only when running ChromeOS+ARM but for all ARM devices
|
||||
|
||||
diff --git a/content/renderer/media_recorder/h264_encoder.cc b/content/renderer/media_recorder/h264_encoder.cc
|
||||
--- a/content/renderer/media_recorder/h264_encoder.cc
|
||||
+++ b/content/renderer/media_recorder/h264_encoder.cc
|
||||
@@ -149,11 +149,11 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) {
|
||||
init_params.iRCMode = RC_OFF_MODE;
|
||||
}
|
||||
|
||||
-#if defined(OS_CHROMEOS)
|
||||
- init_params.iMultipleThreadIdc = 0;
|
||||
-#else
|
||||
+#if defined(OS_MACOSX)
|
||||
// Threading model: Set to 1 due to https://crbug.com/583348.
|
||||
init_params.iMultipleThreadIdc = 1;
|
||||
+#else
|
||||
+ init_params.iMultipleThreadIdc = 0;
|
||||
#endif
|
||||
|
||||
// TODO(mcasas): consider reducing complexity if there are few CPUs available.
|
||||
diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn
|
||||
--- a/third_party/openh264/BUILD.gn
|
||||
+++ b/third_party/openh264/BUILD.gn
|
||||
@@ -10,16 +10,22 @@ import("//third_party/yasm/yasm_assemble.gni")
|
||||
# Config shared by all openh264 targets.
|
||||
config("config") {
|
||||
cflags = []
|
||||
+ defines = []
|
||||
|
||||
+ # HAVE_NEON and __chromeos__ are needed for enabling NEON on ChromeOS
|
||||
+ # devices.
|
||||
if (is_chromeos && target_cpu == "arm") {
|
||||
- # HAVE_NEON and __chromeos__ are needed for enabling NEON on ChromeOS
|
||||
- # devices.
|
||||
- defines = [
|
||||
- "HAVE_NEON",
|
||||
+ defines += [
|
||||
"__chromeos__",
|
||||
]
|
||||
}
|
||||
|
||||
+ if (target_cpu == "arm") {
|
||||
+ defines += [
|
||||
+ "HAVE_NEON",
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
# GCC and clang flags. MSVS (is_win && !is_clang) does not use cflags.
|
||||
if (!is_win || is_clang) {
|
||||
cflags += [
|
||||
@@ -123,7 +129,7 @@ if (use_assembler) {
|
||||
|
||||
source_set("common") {
|
||||
sources = openh264_common_sources
|
||||
- if (is_chromeos && target_cpu == "arm") {
|
||||
+ if (target_cpu == "arm") {
|
||||
sources += openh264_common_sources_asm_arm
|
||||
}
|
||||
include_dirs = openh264_common_include_dirs
|
||||
@@ -149,7 +155,7 @@ source_set("common") {
|
||||
|
||||
source_set("processing") {
|
||||
sources = openh264_processing_sources
|
||||
- if (is_chromeos && target_cpu == "arm") {
|
||||
+ if (target_cpu == "arm") {
|
||||
sources += openh264_processing_sources_asm_arm
|
||||
}
|
||||
include_dirs = openh264_processing_include_dirs
|
||||
@@ -168,7 +174,7 @@ source_set("processing") {
|
||||
|
||||
source_set("encoder") {
|
||||
sources = openh264_encoder_sources
|
||||
- if (is_chromeos && target_cpu == "arm") {
|
||||
+ if (target_cpu == "arm") {
|
||||
sources += openh264_encoder_sources_asm_arm
|
||||
}
|
||||
include_dirs = openh264_encoder_include_dirs
|
||||
@@ -0,0 +1,66 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat Oct 28 10:09:41 2017 +0200
|
||||
|
||||
Do not track google search results clicks
|
||||
|
||||
Limit AMP cleanup to main search results
|
||||
|
||||
diff --git a/third_party/WebKit/Source/core/dom/BUILD.gn b/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
--- a/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
+++ b/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
@@ -301,6 +301,7 @@ blink_core_sources("dom") {
|
||||
"events/TreeScopeEventContext.h",
|
||||
"events/WindowEventContext.cpp",
|
||||
"events/WindowEventContext.h",
|
||||
+ "extensions/dont-track-me.h",
|
||||
"ng/flat_tree_traversal_ng.cc",
|
||||
"ng/flat_tree_traversal_ng.h",
|
||||
"trustedtypes/TrustedHTML.cpp",
|
||||
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
--- a/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
+++ b/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
@@ -221,6 +221,7 @@
|
||||
#include "core/xml/parser/XMLDocumentParser.h"
|
||||
#include "core/xml_names.h"
|
||||
#include "core/xmlns_names.h"
|
||||
+#include "extensions/dont-track-me.h"
|
||||
#include "platform/CrossThreadFunctional.h"
|
||||
#include "platform/DateComponents.h"
|
||||
#include "platform/EventDispatchForbiddenScope.h"
|
||||
@@ -5786,8 +5787,24 @@ void Document::FinishedParsing() {
|
||||
fetcher_->ClearResourcesFromPreviousFetcher();
|
||||
}
|
||||
|
||||
- if (IsPrefetchOnly())
|
||||
+ if (IsPrefetchOnly()) {
|
||||
WebPrerenderingSupport::Current()->PrefetchFinished();
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // determine whether this is a Google search results page
|
||||
+ const SecurityOrigin *origin = GetSecurityOrigin();
|
||||
+ if (origin) {
|
||||
+ WTF::String domain = origin->Domain();
|
||||
+ size_t pos = domain.Find(".google.");
|
||||
+ auto* bodyElement = body();
|
||||
+ if (bodyElement && (pos != WTF::kNotFound) && (domain.length() - pos - 8 < 4)) {
|
||||
+ LOG(INFO) << "injecting dont-track-me Javascript payload";
|
||||
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
+ e->setText(DONT_TRACK_ME_JS);
|
||||
+ bodyElement->AppendChild(e);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
void Document::ElementDataCacheClearTimerFired(TimerBase*) {
|
||||
diff --git a/third_party/WebKit/Source/core/dom/extensions/dont-track-me.h b/third_party/WebKit/Source/core/dom/extensions/dont-track-me.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/third_party/WebKit/Source/core/dom/extensions/dont-track-me.h
|
||||
@@ -0,0 +1,6 @@
|
||||
+#ifndef dont_track_me_h
|
||||
+#define dont_track_me_h
|
||||
+
|
||||
+#define DONT_TRACK_ME_JS "/* Bromite click-tracking and AMP removal v0.3.5 */\n\nfunction recreateHyperlink(a) {\n // skip already-sanitized hyperlinks\n if (a.sane) return false;\n\n // create new A element - old one has event listeners attached\n var newA = document.createElement('a');\n newA.referrerPolicy = 'origin';\n // property set when hyperlink has been created by this script\n newA.sane = 1;\n\n // remove AMP class, get actual page URL\n var ampCur = a.getAttribute('data-amp-cur');\n if (ampCur) {\n newA.href = ampCur;\n a.classList.remove('amp_r');\n } else {\n var realLink = getRealLinkFromGoogleUrl(a);\n if (realLink) {\n newA.href = realLink;\n } else {\n // might not be an actual hyperlink, ignore it\n if (!a.href) {\n return false;\n }\n // leave original href unchanged\n newA.href = a.href;\n }\n }\n // copy CSS classes\n newA.className = a.className;\n\n // copy nodes inside the hyperlink\n while (a.firstChild) {\n newA.appendChild(a.lastChild);\n }\n // replace hyperlink\n a.parentNode.replaceChild(newA, a);\n return true;\n}\n\nfunction isResult(a) {\n if (a.getAttribute('data-amp-cur'))\n return true;\n var inlineMousedown = a.getAttribute('onmousedown');\n if (!inlineMousedown)\n\treturn false;\n // return rwt(....); // E.g Google search results.\n // return google.rwt(...); // E.g. sponsored search results\n // return google.arwt(this); // E.g. sponsored search results (dec 2016).\n return /\\ba?rwt\\(/.test(inlineMousedown) || /\\bctpacw\\b/.test(inlineMousedown);\n}\n\n/**\n * @returns {String} the real URL if the given link is a Google redirect URL.\n */\nfunction getRealLinkFromGoogleUrl(a) {\n if ((a.hostname === location.hostname || a.hostname.indexOf('www.google.') == 0) &&\n /^\\/(local_)?url$/.test(a.pathname)) {\n // Google Maps / Dito (/local_url?q=<url>)\n // Mobile (/url?q=<url>)\n var url = /[?&](?:q|url)=((?:https?|ftp)[%:][^&]+)/.exec(a.search);\n if (url) {\n return decodeURIComponent(url[1]);\n }\n // Help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...)\n url = /[?&](?:q|url)=((?:%2[Ff]|\\/)[^&]+)/.exec(a.search);\n if (url) {\n return a.origin + decodeURIComponent(url[1]);\n }\n }\n}\n\nfunction sanitizeAds() {\n // scan all divs\n var div = document.getElementById('tads');\n if (div) {\n div.style.display = 'none';\n\treturn true;\n }\n return false;\n}\n\nfunction sanitizeAll() {\n console.log(\"ads removed: \", sanitizeAds());\n console.log(\"hyperlinks sanitized: \", sanitizeAllHyperlinks());\n}\n\nfunction setMlogoClick() {\n var mlogo = document.getElementById('mlogo');\n if (mlogo) {\n mlogo.removeAttribute(\"href\");\n mlogo.setAttribute(\"onclick\", \"sanitizeAll()\");\n console.log(\"logo link replaced\");\n } else {\n console.log(\"could not replace logo link\");\n }\n}\n\nfunction sanitizeAllHyperlinks() {\n var saned = 0, total = 0;\n document.querySelectorAll('div[data-hveid]:not([data-hveid=\"\"]) a').forEach(function(a) {\n\ttotal++;\n\tvar res = recreateHyperlink(a);\n\tif (res) saned++;\n });\n console.log(\"sanitized \", saned, \"/\", total, \" hyperlinks\");\n\n return saned;\n}\n\n// avoid running cleanup on non-search pages\nif ((document.location.host.indexOf(\"images.google.\") == -1) && (document.location.host.indexOf(\"news.google.\") == -1)) {\n// document.addEventListener('touchstart', handlePointerPress, true);\n sanitizeAll();\n}\nsetMlogoClick();\n"
|
||||
+
|
||||
+#endif // dont_track_me_h
|
||||
@@ -0,0 +1,18 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:43:35 2018 +0100
|
||||
|
||||
Never send any crash upload data
|
||||
|
||||
diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
--- a/chrome/browser/tracing/crash_service_uploader.cc
|
||||
+++ b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
@@ -122,6 +122,9 @@ void TraceCrashServiceUploader::DoUpload(
|
||||
std::unique_ptr<const base::DictionaryValue> metadata,
|
||||
const UploadProgressCallback& progress_callback,
|
||||
const UploadDoneCallback& done_callback) {
|
||||
+
|
||||
+ return;
|
||||
+
|
||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
|
||||
progress_callback_ = progress_callback;
|
||||
@@ -0,0 +1,21 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Feb 14 12:56:01 2018 +0100
|
||||
|
||||
Never fetch popular sites
|
||||
|
||||
diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/popular_sites_impl.cc
|
||||
--- a/components/ntp_tiles/popular_sites_impl.cc
|
||||
+++ b/components/ntp_tiles/popular_sites_impl.cc
|
||||
@@ -289,6 +289,12 @@ bool PopularSitesImpl::MaybeStartFetch(bool force_download,
|
||||
DCHECK(!callback_);
|
||||
callback_ = callback;
|
||||
|
||||
+ if (force_download) {
|
||||
+ callback_.Run(true);
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+
|
||||
const base::Time last_download_time = base::Time::FromInternalValue(
|
||||
prefs_->GetInt64(prefs::kPopularSitesLastDownloadPref));
|
||||
const base::TimeDelta time_since_last_download =
|
||||
@@ -0,0 +1,49 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:14:39 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable signin
|
||||
|
||||
diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc
|
||||
--- a/chrome/browser/ui/chrome_pages.cc
|
||||
+++ b/chrome/browser/ui/chrome_pages.cc
|
||||
@@ -76,12 +76,6 @@ void OpenBookmarkManagerForNode(Browser* browser, int64_t node_id) {
|
||||
ShowSingletonTabOverwritingNTP(browser, params);
|
||||
}
|
||||
|
||||
-void NavigateToSingletonTab(Browser* browser, const GURL& url) {
|
||||
- NavigateParams params(GetSingletonTabNavigateParams(browser, url));
|
||||
- params.path_behavior = NavigateParams::IGNORE_AND_NAVIGATE;
|
||||
- ShowSingletonTabOverwritingNTP(browser, params);
|
||||
-}
|
||||
-
|
||||
// Shows either the help app or the appropriate help page for |source|. If
|
||||
// |browser| is NULL and the help page is used (vs the app), the help page is
|
||||
// shown in the last active browser. If there is no such browser, a new browser
|
||||
@@ -396,6 +390,7 @@ void ShowSearchEngineSettings(Browser* browser) {
|
||||
#if !defined(OS_ANDROID)
|
||||
void ShowBrowserSignin(Browser* browser,
|
||||
signin_metrics::AccessPoint access_point) {
|
||||
+#if 0
|
||||
Profile* original_profile = browser->profile()->GetOriginalProfile();
|
||||
SigninManagerBase* manager =
|
||||
SigninManagerFactory::GetForProfile(original_profile);
|
||||
@@ -436,6 +431,7 @@ void ShowBrowserSignin(Browser* browser,
|
||||
false));
|
||||
DCHECK_GT(browser->tab_strip_model()->count(), 0);
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ShowBrowserSigninOrSettings(Browser* browser,
|
||||
diff --git a/components/signin/core/browser/signin_manager_base.cc b/components/signin/core/browser/signin_manager_base.cc
|
||||
--- a/components/signin/core/browser/signin_manager_base.cc
|
||||
+++ b/components/signin/core/browser/signin_manager_base.cc
|
||||
@@ -158,7 +158,7 @@ void SigninManagerBase::Initialize(PrefService* local_state) {
|
||||
bool SigninManagerBase::IsInitialized() const { return initialized_; }
|
||||
|
||||
bool SigninManagerBase::IsSigninAllowed() const {
|
||||
- return client_->GetPrefs()->GetBoolean(prefs::kSigninAllowed);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
AccountInfo SigninManagerBase::GetAuthenticatedAccountInfo() const {
|
||||
@@ -0,0 +1,117 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:21:36 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable webRTC log uploader
|
||||
Disables WebRTC log uploading to Google - ported patch
|
||||
|
||||
diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
|
||||
--- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc
|
||||
+++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
|
||||
@@ -115,30 +115,10 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
|
||||
DCHECK(meta_data.get());
|
||||
DCHECK(!upload_done_data.log_path.empty());
|
||||
|
||||
- std::string compressed_log;
|
||||
- CompressLog(&compressed_log, log_buffer.get());
|
||||
-
|
||||
- std::string local_log_id;
|
||||
-
|
||||
if (base::PathExists(upload_done_data.log_path)) {
|
||||
webrtc_logging::DeleteOldWebRtcLogFiles(upload_done_data.log_path);
|
||||
-
|
||||
- local_log_id = base::NumberToString(base::Time::Now().ToDoubleT());
|
||||
- base::FilePath log_file_path =
|
||||
- upload_done_data.log_path.AppendASCII(local_log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".gz"));
|
||||
- WriteCompressedLogToFile(compressed_log, log_file_path);
|
||||
-
|
||||
- base::FilePath log_list_path =
|
||||
- webrtc_logging::LogList::GetWebRtcLogListFileForDirectory(
|
||||
- upload_done_data.log_path);
|
||||
- AddLocallyStoredLogInfoToUploadListFile(log_list_path, local_log_id);
|
||||
}
|
||||
-
|
||||
- WebRtcLogUploadDoneData upload_done_data_with_log_id = upload_done_data;
|
||||
- upload_done_data_with_log_id.local_log_id = local_log_id;
|
||||
- PrepareMultipartPostData(compressed_log, std::move(meta_data),
|
||||
- upload_done_data_with_log_id);
|
||||
+ NotifyUploadDone(net::HTTP_OK, "", upload_done_data);
|
||||
}
|
||||
|
||||
void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
@@ -149,29 +129,7 @@ void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
DCHECK(!compressed_log.empty());
|
||||
DCHECK(meta_data.get());
|
||||
|
||||
- std::unique_ptr<std::string> post_data(new std::string());
|
||||
- SetupMultipart(post_data.get(),
|
||||
- compressed_log,
|
||||
- upload_done_data.incoming_rtp_dump,
|
||||
- upload_done_data.outgoing_rtp_dump,
|
||||
- *meta_data.get());
|
||||
-
|
||||
- // If a test has set the test string pointer, write to it and skip uploading.
|
||||
- // Still fire the upload callback so that we can run an extension API test
|
||||
- // using the test framework for that without hanging.
|
||||
- // TODO(grunell): Remove this when the api test for this feature is fully
|
||||
- // implemented according to the test plan. http://crbug.com/257329.
|
||||
- if (post_data_) {
|
||||
- *post_data_ = *post_data;
|
||||
- NotifyUploadDone(net::HTTP_OK, "", upload_done_data);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- BrowserThread::PostTask(
|
||||
- BrowserThread::IO, FROM_HERE,
|
||||
- base::BindOnce(&WebRtcLogUploader::UploadCompressedLog,
|
||||
- base::Unretained(this), upload_done_data,
|
||||
- base::Passed(&post_data)));
|
||||
+ NotifyUploadDone(net::HTTP_OK, "", upload_done_data);
|
||||
}
|
||||
|
||||
void WebRtcLogUploader::UploadStoredLog(
|
||||
@@ -237,44 +195,6 @@ void WebRtcLogUploader::LoggingStoppedDoStore(
|
||||
|
||||
webrtc_logging::DeleteOldWebRtcLogFiles(log_paths.log_path);
|
||||
|
||||
- base::FilePath log_list_path =
|
||||
- webrtc_logging::LogList::GetWebRtcLogListFileForDirectory(
|
||||
- log_paths.log_path);
|
||||
-
|
||||
- // Store the native log with a ".gz" extension.
|
||||
- std::string compressed_log;
|
||||
- CompressLog(&compressed_log, log_buffer.get());
|
||||
- base::FilePath native_log_path = log_paths.log_path.AppendASCII(log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".gz"));
|
||||
- WriteCompressedLogToFile(compressed_log, native_log_path);
|
||||
- AddLocallyStoredLogInfoToUploadListFile(log_list_path, log_id);
|
||||
-
|
||||
- // Move the rtp dump files to the log directory with a name of
|
||||
- // <log id>.rtp_[in|out].
|
||||
- if (!log_paths.incoming_rtp_dump.empty()) {
|
||||
- base::FilePath rtp_path = log_paths.log_path.AppendASCII(log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".rtp_in"));
|
||||
- base::Move(log_paths.incoming_rtp_dump, rtp_path);
|
||||
- }
|
||||
-
|
||||
- if (!log_paths.outgoing_rtp_dump.empty()) {
|
||||
- base::FilePath rtp_path = log_paths.log_path.AppendASCII(log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".rtp_out"));
|
||||
- base::Move(log_paths.outgoing_rtp_dump, rtp_path);
|
||||
- }
|
||||
-
|
||||
- if (meta_data.get() && !meta_data->empty()) {
|
||||
- base::Pickle pickle;
|
||||
- for (const auto& it : *meta_data.get()) {
|
||||
- pickle.WriteString(it.first);
|
||||
- pickle.WriteString(it.second);
|
||||
- }
|
||||
- base::FilePath meta_path = log_paths.log_path.AppendASCII(log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".meta"));
|
||||
- base::WriteFile(meta_path, static_cast<const char*>(pickle.data()),
|
||||
- pickle.size());
|
||||
- }
|
||||
-
|
||||
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
|
||||
base::BindOnce(done_callback, true, ""));
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:28:11 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable untraceable URLs
|
||||
Disable additional URLs that are not caught by the "trk" scheme
|
||||
|
||||
diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/android/rlz/rlz_ping_handler.cc
|
||||
--- a/chrome/browser/android/rlz/rlz_ping_handler.cc
|
||||
+++ b/chrome/browser/android/rlz/rlz_ping_handler.cc
|
||||
@@ -66,7 +66,7 @@ void RlzPingHandler::Ping(
|
||||
DCHECK_EQ(id.length(), 50u);
|
||||
|
||||
GURL request_url(base::StringPrintf(
|
||||
- "https://%s%s?", rlz_lib::kFinancialServer, rlz_lib::kFinancialPingPath));
|
||||
+ "about:blank"));
|
||||
request_url = net::AppendQueryParameter(
|
||||
request_url, rlz_lib::kProductSignatureCgiVariable, "chrome");
|
||||
request_url =
|
||||
diff --git a/chrome/browser/plugins/plugins_resource_service.cc b/chrome/browser/plugins/plugins_resource_service.cc
|
||||
--- a/chrome/browser/plugins/plugins_resource_service.cc
|
||||
+++ b/chrome/browser/plugins/plugins_resource_service.cc
|
||||
@@ -69,7 +69,7 @@ GURL GetPluginsServerURL() {
|
||||
#error Unknown platform
|
||||
#endif
|
||||
|
||||
- return GURL(kPluginsServerUrl + filename);
|
||||
+ return GURL("about:blank");
|
||||
}
|
||||
|
||||
} // namespace
|
||||
diff --git a/chrome/browser/safe_browsing/client_side_model_loader.cc b/chrome/browser/safe_browsing/client_side_model_loader.cc
|
||||
--- a/chrome/browser/safe_browsing/client_side_model_loader.cc
|
||||
+++ b/chrome/browser/safe_browsing/client_side_model_loader.cc
|
||||
@@ -34,8 +34,6 @@ namespace safe_browsing {
|
||||
// Model Loader strings
|
||||
const size_t ModelLoader::kMaxModelSizeBytes = 150 * 1024;
|
||||
const int ModelLoader::kClientModelFetchIntervalMs = 3600 * 1000;
|
||||
-const char ModelLoader::kClientModelUrlPrefix[] =
|
||||
- "https://ssl.gstatic.com/safebrowsing/csd/";
|
||||
const char ModelLoader::kClientModelNamePattern[] =
|
||||
"client_model_v5%s_variation_%d.pb";
|
||||
const char ModelLoader::kClientModelFinchExperiment[] =
|
||||
@@ -88,7 +86,7 @@ ModelLoader::ModelLoader(base::Closure update_renderers_callback,
|
||||
net::URLRequestContextGetter* request_context_getter,
|
||||
bool is_extended_reporting)
|
||||
: name_(FillInModelName(is_extended_reporting, GetModelNumber())),
|
||||
- url_(kClientModelUrlPrefix + name_),
|
||||
+ url_("about:blank"),
|
||||
update_renderers_callback_(update_renderers_callback),
|
||||
request_context_getter_(request_context_getter),
|
||||
weak_factory_(this) {
|
||||
@@ -99,7 +97,7 @@ ModelLoader::ModelLoader(base::Closure update_renderers_callback,
|
||||
ModelLoader::ModelLoader(base::Closure update_renderers_callback,
|
||||
const std::string& model_name)
|
||||
: name_(model_name),
|
||||
- url_(kClientModelUrlPrefix + name_),
|
||||
+ url_("about:blank"),
|
||||
update_renderers_callback_(update_renderers_callback),
|
||||
request_context_getter_(NULL),
|
||||
weak_factory_(this) {
|
||||
diff --git a/chrome/browser/safe_browsing/client_side_model_loader.h b/chrome/browser/safe_browsing/client_side_model_loader.h
|
||||
--- a/chrome/browser/safe_browsing/client_side_model_loader.h
|
||||
+++ b/chrome/browser/safe_browsing/client_side_model_loader.h
|
||||
@@ -43,7 +43,6 @@ class ModelLoader : public net::URLFetcherDelegate {
|
||||
static const int kClientModelFetchIntervalMs;
|
||||
static const char kClientModelFinchExperiment[];
|
||||
static const char kClientModelFinchParam[];
|
||||
- static const char kClientModelUrlPrefix[];
|
||||
static const char kClientModelNamePattern[];
|
||||
|
||||
// Constructs a model loader to fetch a model using |request_context_getter|.
|
||||
diff --git a/rlz/lib/financial_ping.cc b/rlz/lib/financial_ping.cc
|
||||
--- a/rlz/lib/financial_ping.cc
|
||||
+++ b/rlz/lib/financial_ping.cc
|
||||
@@ -366,7 +366,7 @@ bool FinancialPing::PingServer(const char* request, std::string* response) {
|
||||
|
||||
// Open network connection.
|
||||
InternetHandle connection_handle = InternetConnectA(inet_handle,
|
||||
- kFinancialServer, kFinancialPort, "", "", INTERNET_SERVICE_HTTP,
|
||||
+ "about:blank", kFinancialPort, "", "", INTERNET_SERVICE_HTTP,
|
||||
INTERNET_FLAG_NO_CACHE_WRITE, 0);
|
||||
if (!connection_handle)
|
||||
return false;
|
||||
@@ -410,7 +410,7 @@ bool FinancialPing::PingServer(const char* request, std::string* response) {
|
||||
return true;
|
||||
#else
|
||||
std::string url =
|
||||
- base::StringPrintf("https://%s%s", kFinancialServer, request);
|
||||
+ base::StringPrintf("about:blank");
|
||||
|
||||
// Use a waitable event to cause this function to block, to match the
|
||||
// wininet implementation.
|
||||
diff --git a/rlz/lib/lib_values.cc b/rlz/lib/lib_values.cc
|
||||
--- a/rlz/lib/lib_values.cc
|
||||
+++ b/rlz/lib/lib_values.cc
|
||||
@@ -41,7 +41,6 @@ const char kSetDccResponseVariable[] = "set_dcc";
|
||||
//
|
||||
|
||||
const char kFinancialPingPath[] = "/tools/pso/ping";
|
||||
-const char kFinancialServer[] = "clients1.google.com";
|
||||
const int kFinancialPort = 443;
|
||||
|
||||
// Ping times in 100-nanosecond intervals.
|
||||
diff --git a/rlz/lib/lib_values.h b/rlz/lib/lib_values.h
|
||||
--- a/rlz/lib/lib_values.h
|
||||
+++ b/rlz/lib/lib_values.h
|
||||
@@ -72,7 +72,6 @@ extern const char kSetDccResponseVariable[];
|
||||
//
|
||||
|
||||
extern const char kFinancialPingPath[];
|
||||
-extern const char kFinancialServer[];
|
||||
|
||||
extern const int kFinancialPort;
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:28:53 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable translate
|
||||
Disable Google Translate integration
|
||||
|
||||
diff --git a/components/translate/content/renderer/translate_helper.cc b/components/translate/content/renderer/translate_helper.cc
|
||||
--- a/components/translate/content/renderer/translate_helper.cc
|
||||
+++ b/components/translate/content/renderer/translate_helper.cc
|
||||
@@ -74,7 +74,9 @@ TranslateHelper::TranslateHelper(content::RenderFrame* render_frame,
|
||||
world_id_(world_id),
|
||||
extension_scheme_(extension_scheme),
|
||||
binding_(this),
|
||||
- weak_method_factory_(this) {}
|
||||
+ weak_method_factory_(this) {
|
||||
+ CancelPendingTranslation();
|
||||
+}
|
||||
|
||||
TranslateHelper::~TranslateHelper() {
|
||||
}
|
||||
diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc
|
||||
--- a/components/translate/core/browser/translate_manager.cc
|
||||
+++ b/components/translate/core/browser/translate_manager.cc
|
||||
@@ -102,7 +102,7 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) {
|
||||
if (net::NetworkChangeNotifier::IsOffline())
|
||||
return;
|
||||
|
||||
- if (!ignore_missing_key_for_testing_ && !::google_apis::HasKeysConfigured()) {
|
||||
+ if (true) {
|
||||
// Without an API key, translate won't work, so don't offer to translate in
|
||||
// the first place. Leave prefs::kOfferTranslateEnabled on, though, because
|
||||
// that settings syncs and we don't want to turn off translate everywhere
|
||||
diff --git a/components/translate/core/browser/translate_script.cc b/components/translate/core/browser/translate_script.cc
|
||||
--- a/components/translate/core/browser/translate_script.cc
|
||||
+++ b/components/translate/core/browser/translate_script.cc
|
||||
@@ -149,9 +149,8 @@ void TranslateScript::OnScriptFetchComplete(
|
||||
base::StringAppendF(&data_, "var serverParams = '%s';\n",
|
||||
server_params.c_str());
|
||||
|
||||
- GURL security_origin = translate::GetTranslateSecurityOrigin();
|
||||
base::StringAppendF(
|
||||
- &data_, "var securityOrigin = '%s';", security_origin.spec().c_str());
|
||||
+ &data_, "var securityOrigin = '';");
|
||||
|
||||
// Append embedded translate.js and a remote element library.
|
||||
base::StringPiece str =
|
||||
@@ -0,0 +1,30 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:29:30 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable profile avatar downloading
|
||||
Stop downloading profile avatar
|
||||
|
||||
diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/browser/profiles/profile_avatar_downloader.cc
|
||||
--- a/chrome/browser/profiles/profile_avatar_downloader.cc
|
||||
+++ b/chrome/browser/profiles/profile_avatar_downloader.cc
|
||||
@@ -16,19 +16,13 @@
|
||||
#include "net/traffic_annotation/network_traffic_annotation.h"
|
||||
#include "ui/gfx/image/image.h"
|
||||
|
||||
-namespace {
|
||||
-const char kHighResAvatarDownloadUrlPrefix[] =
|
||||
- "https://www.gstatic.com/chrome/profile_avatars/";
|
||||
-}
|
||||
-
|
||||
ProfileAvatarDownloader::ProfileAvatarDownloader(
|
||||
size_t icon_index,
|
||||
const FetchCompleteCallback& callback)
|
||||
: icon_index_(icon_index),
|
||||
callback_(callback) {
|
||||
DCHECK(!callback_.is_null());
|
||||
- GURL url(std::string(kHighResAvatarDownloadUrlPrefix) +
|
||||
- profiles::GetDefaultAvatarIconFileNameAtIndex(icon_index));
|
||||
+ GURL url(std::string("about:blank"));
|
||||
net::NetworkTrafficAnnotationTag traffic_annotation =
|
||||
net::DefineNetworkTrafficAnnotation("profile_avatar", R"(
|
||||
semantics {
|
||||
@@ -0,0 +1,21 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:30:30 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable intranet redirect detector
|
||||
Disables the intranet redirect detector. It generates extra DNS requests and the functionality using this is disabled
|
||||
See this page for more information: https://mikewest.org/2012/02/chrome-connects-to-three-random-domains-at-startup
|
||||
|
||||
diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intranet_redirect_detector.cc
|
||||
--- a/chrome/browser/intranet_redirect_detector.cc
|
||||
+++ b/chrome/browser/intranet_redirect_detector.cc
|
||||
@@ -72,9 +72,7 @@ void IntranetRedirectDetector::FinishSleep() {
|
||||
fetchers_.clear();
|
||||
resulting_origins_.clear();
|
||||
|
||||
- const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
|
||||
- if (cmd_line->HasSwitch(switches::kDisableBackgroundNetworking))
|
||||
- return;
|
||||
+ return;
|
||||
|
||||
DCHECK(fetchers_.empty() && resulting_origins_.empty());
|
||||
|
||||
@@ -0,0 +1,363 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:36:33 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable Google host detection
|
||||
Disables various detections of Google hosts and functionality specific to them
|
||||
|
||||
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_util.cc b/chrome/browser/page_load_metrics/page_load_metrics_util.cc
|
||||
--- a/chrome/browser/page_load_metrics/page_load_metrics_util.cc
|
||||
+++ b/chrome/browser/page_load_metrics/page_load_metrics_util.cc
|
||||
@@ -169,9 +169,7 @@ bool DidObserveLoadingBehaviorInAnyFrame(
|
||||
}
|
||||
|
||||
bool IsGoogleSearchHostname(const GURL& url) {
|
||||
- base::Optional<std::string> result =
|
||||
- page_load_metrics::GetGoogleHostnamePrefix(url);
|
||||
- return result && result.value() == "www";
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool IsGoogleSearchResultUrl(const GURL& url) {
|
||||
diff --git a/chrome/common/page_load_metrics/page_load_metrics_util.cc b/chrome/common/page_load_metrics/page_load_metrics_util.cc
|
||||
--- a/chrome/common/page_load_metrics/page_load_metrics_util.cc
|
||||
+++ b/chrome/common/page_load_metrics/page_load_metrics_util.cc
|
||||
@@ -12,38 +12,7 @@
|
||||
namespace page_load_metrics {
|
||||
|
||||
base::Optional<std::string> GetGoogleHostnamePrefix(const GURL& url) {
|
||||
- const size_t registry_length =
|
||||
- net::registry_controlled_domains::GetRegistryLength(
|
||||
- url,
|
||||
-
|
||||
- // Do not include unknown registries (registries that don't have any
|
||||
- // matches in effective TLD names).
|
||||
- net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES,
|
||||
-
|
||||
- // Do not include private registries, such as appspot.com. We don't
|
||||
- // want to match URLs like www.google.appspot.com.
|
||||
- net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES);
|
||||
-
|
||||
- const base::StringPiece hostname = url.host_piece();
|
||||
- if (registry_length == 0 || registry_length == std::string::npos ||
|
||||
- registry_length >= hostname.length()) {
|
||||
- return base::Optional<std::string>();
|
||||
- }
|
||||
-
|
||||
- // Removes the tld and the preceding dot.
|
||||
- const base::StringPiece hostname_minus_registry =
|
||||
- hostname.substr(0, hostname.length() - (registry_length + 1));
|
||||
-
|
||||
- if (hostname_minus_registry == "google")
|
||||
- return std::string("");
|
||||
-
|
||||
- if (!base::EndsWith(hostname_minus_registry, ".google",
|
||||
- base::CompareCase::INSENSITIVE_ASCII)) {
|
||||
- return base::Optional<std::string>();
|
||||
- }
|
||||
-
|
||||
- return std::string(hostname_minus_registry.substr(
|
||||
- 0, hostname_minus_registry.length() - strlen(".google")));
|
||||
+ return base::Optional<std::string>();
|
||||
}
|
||||
|
||||
bool IsGoogleHostname(const GURL& url) {
|
||||
diff --git a/components/google/core/browser/google_util.cc b/components/google/core/browser/google_util.cc
|
||||
--- a/components/google/core/browser/google_util.cc
|
||||
+++ b/components/google/core/browser/google_util.cc
|
||||
@@ -41,118 +41,16 @@ namespace {
|
||||
|
||||
bool gUseMockLinkDoctorBaseURLForTesting = false;
|
||||
|
||||
-bool IsPathHomePageBase(base::StringPiece path) {
|
||||
- return (path == "/") || (path == "/webhp");
|
||||
-}
|
||||
-
|
||||
-// Removes a single trailing dot if present in |host|.
|
||||
-void StripTrailingDot(base::StringPiece* host) {
|
||||
- if (host->ends_with("."))
|
||||
- host->remove_suffix(1);
|
||||
-}
|
||||
-
|
||||
-// True if the given canonical |host| is "[www.]<domain_in_lower_case>.<TLD>"
|
||||
-// with a valid TLD. If |subdomain_permission| is ALLOW_SUBDOMAIN, we check
|
||||
-// against host "*.<domain_in_lower_case>.<TLD>" instead. Will return the TLD
|
||||
-// string in |tld|, if specified and the |host| can be parsed.
|
||||
-bool IsValidHostName(base::StringPiece host,
|
||||
- base::StringPiece domain_in_lower_case,
|
||||
- SubdomainPermission subdomain_permission,
|
||||
- base::StringPiece* tld) {
|
||||
- // Fast path to avoid searching the registry set.
|
||||
- if (host.find(domain_in_lower_case) == base::StringPiece::npos)
|
||||
- return false;
|
||||
-
|
||||
- size_t tld_length =
|
||||
- net::registry_controlled_domains::GetCanonicalHostRegistryLength(
|
||||
- host, net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES,
|
||||
- net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES);
|
||||
- if ((tld_length == 0) || (tld_length == std::string::npos))
|
||||
- return false;
|
||||
-
|
||||
- // Removes the tld and the preceding dot.
|
||||
- base::StringPiece host_minus_tld =
|
||||
- host.substr(0, host.length() - tld_length - 1);
|
||||
-
|
||||
- if (tld)
|
||||
- *tld = host.substr(host.length() - tld_length);
|
||||
-
|
||||
- if (base::LowerCaseEqualsASCII(host_minus_tld, domain_in_lower_case))
|
||||
- return true;
|
||||
-
|
||||
- if (subdomain_permission == ALLOW_SUBDOMAIN) {
|
||||
- std::string dot_domain(".");
|
||||
- domain_in_lower_case.AppendToString(&dot_domain);
|
||||
- return base::EndsWith(host_minus_tld, dot_domain,
|
||||
- base::CompareCase::INSENSITIVE_ASCII);
|
||||
- }
|
||||
-
|
||||
- std::string www_domain("www.");
|
||||
- domain_in_lower_case.AppendToString(&www_domain);
|
||||
- return base::LowerCaseEqualsASCII(host_minus_tld, www_domain);
|
||||
-}
|
||||
-
|
||||
-// True if |url| is a valid URL with HTTP or HTTPS scheme. If |port_permission|
|
||||
-// is DISALLOW_NON_STANDARD_PORTS, this also requires |url| to use the standard
|
||||
-// port for its scheme (80 for HTTP, 443 for HTTPS).
|
||||
-bool IsValidURL(const GURL& url, PortPermission port_permission) {
|
||||
- return url.is_valid() && url.SchemeIsHTTPOrHTTPS() &&
|
||||
- (url.port().empty() || (port_permission == ALLOW_NON_STANDARD_PORTS));
|
||||
-}
|
||||
-
|
||||
-bool IsCanonicalHostGoogleHostname(base::StringPiece canonical_host,
|
||||
- SubdomainPermission subdomain_permission) {
|
||||
- const GURL& base_url(CommandLineGoogleBaseURL());
|
||||
- if (base_url.is_valid() && (canonical_host == base_url.host_piece()))
|
||||
- return true;
|
||||
-
|
||||
- base::StringPiece tld;
|
||||
- if (!IsValidHostName(canonical_host, "google", subdomain_permission, &tld))
|
||||
- return false;
|
||||
-
|
||||
- // Remove the trailing dot from tld if present, as for google domain it's the
|
||||
- // same page.
|
||||
- StripTrailingDot(&tld);
|
||||
-
|
||||
- CR_DEFINE_STATIC_LOCAL(std::set<std::string>, google_tlds,
|
||||
- ({GOOGLE_TLD_LIST}));
|
||||
- return base::ContainsKey(google_tlds, tld.as_string());
|
||||
-}
|
||||
-
|
||||
-// True if |url| is a valid URL with a host that is in the static list of
|
||||
-// Google subdomains for google search, and an HTTP or HTTPS scheme. Requires
|
||||
-// |url| to use the standard port for its scheme (80 for HTTP, 443 for HTTPS).
|
||||
-bool IsGoogleSearchSubdomainUrl(const GURL& url) {
|
||||
- if (!IsValidURL(url, PortPermission::DISALLOW_NON_STANDARD_PORTS))
|
||||
- return false;
|
||||
-
|
||||
- base::StringPiece host(url.host_piece());
|
||||
- StripTrailingDot(&host);
|
||||
-
|
||||
- CR_DEFINE_STATIC_LOCAL(std::set<std::string>, google_subdomains,
|
||||
- ({"ipv4.google.com", "ipv6.google.com"}));
|
||||
-
|
||||
- return base::ContainsKey(google_subdomains, host.as_string());
|
||||
-}
|
||||
-
|
||||
} // namespace
|
||||
|
||||
// Global functions -----------------------------------------------------------
|
||||
|
||||
bool HasGoogleSearchQueryParam(base::StringPiece str) {
|
||||
- url::Component query(0, static_cast<int>(str.length())), key, value;
|
||||
- while (url::ExtractQueryKeyValue(str.data(), &query, &key, &value)) {
|
||||
- base::StringPiece key_str = str.substr(key.begin, key.len);
|
||||
- if (key_str == "q" || key_str == "as_q")
|
||||
- return true;
|
||||
- }
|
||||
return false;
|
||||
}
|
||||
|
||||
GURL LinkDoctorBaseURL() {
|
||||
- if (gUseMockLinkDoctorBaseURLForTesting)
|
||||
- return GURL("http://mock.linkdoctor.url/for?testing");
|
||||
- return GURL(LINKDOCTOR_SERVER_REQUEST_URL);
|
||||
+ return GURL();
|
||||
}
|
||||
|
||||
void SetMockLinkDoctorBaseURLForTesting() {
|
||||
@@ -166,119 +64,50 @@ std::string GetGoogleLocale(const std::string& application_locale) {
|
||||
|
||||
GURL AppendGoogleLocaleParam(const GURL& url,
|
||||
const std::string& application_locale) {
|
||||
- return net::AppendQueryParameter(
|
||||
- url, "hl", GetGoogleLocale(application_locale));
|
||||
+ return url;
|
||||
}
|
||||
|
||||
std::string GetGoogleCountryCode(const GURL& google_homepage_url) {
|
||||
- base::StringPiece google_hostname = google_homepage_url.host_piece();
|
||||
- // TODO(igorcov): This needs a fix for case when the host has a trailing dot,
|
||||
- // like "google.com./". https://crbug.com/720295.
|
||||
- const size_t last_dot = google_hostname.find_last_of('.');
|
||||
- DCHECK_NE(std::string::npos, last_dot);
|
||||
- base::StringPiece country_code = google_hostname.substr(last_dot + 1);
|
||||
- // Assume the com TLD implies the US.
|
||||
- if (country_code == "com")
|
||||
- return "us";
|
||||
- // Google uses the Unicode Common Locale Data Repository (CLDR), and the CLDR
|
||||
- // code for the UK is "gb".
|
||||
- if (country_code == "uk")
|
||||
- return "gb";
|
||||
- // Catalonia does not have a CLDR country code, since it's a region in Spain,
|
||||
- // so use Spain instead.
|
||||
- if (country_code == "cat")
|
||||
- return "es";
|
||||
- return country_code.as_string();
|
||||
+ return "nolocale";
|
||||
}
|
||||
|
||||
GURL GetGoogleSearchURL(const GURL& google_homepage_url) {
|
||||
- // To transform the homepage URL into the corresponding search URL, add the
|
||||
- // "search" and the "q=" query string.
|
||||
- GURL::Replacements replacements;
|
||||
- replacements.SetPathStr("search");
|
||||
- replacements.SetQueryStr("q=");
|
||||
- return google_homepage_url.ReplaceComponents(replacements);
|
||||
+ return google_homepage_url;
|
||||
}
|
||||
|
||||
const GURL& CommandLineGoogleBaseURL() {
|
||||
- // Unit tests may add command-line flags after the first call to this
|
||||
- // function, so we don't simply initialize a static |base_url| directly and
|
||||
- // then unconditionally return it.
|
||||
- CR_DEFINE_STATIC_LOCAL(std::string, switch_value, ());
|
||||
CR_DEFINE_STATIC_LOCAL(GURL, base_url, ());
|
||||
- std::string current_switch_value(
|
||||
- base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
||||
- switches::kGoogleBaseURL));
|
||||
- if (current_switch_value != switch_value) {
|
||||
- switch_value = current_switch_value;
|
||||
- base_url = url_formatter::FixupURL(switch_value, std::string());
|
||||
- if (!base_url.is_valid() || base_url.has_query() || base_url.has_ref())
|
||||
- base_url = GURL();
|
||||
- }
|
||||
+ base_url = GURL();
|
||||
return base_url;
|
||||
}
|
||||
|
||||
bool StartsWithCommandLineGoogleBaseURL(const GURL& url) {
|
||||
- const GURL& base_url(CommandLineGoogleBaseURL());
|
||||
- return base_url.is_valid() &&
|
||||
- base::StartsWith(url.possibly_invalid_spec(), base_url.spec(),
|
||||
- base::CompareCase::SENSITIVE);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool IsGoogleHostname(base::StringPiece host,
|
||||
SubdomainPermission subdomain_permission) {
|
||||
- url::CanonHostInfo host_info;
|
||||
- return IsCanonicalHostGoogleHostname(net::CanonicalizeHost(host, &host_info),
|
||||
- subdomain_permission);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool IsGoogleDomainUrl(const GURL& url,
|
||||
SubdomainPermission subdomain_permission,
|
||||
PortPermission port_permission) {
|
||||
- return IsValidURL(url, port_permission) &&
|
||||
- IsCanonicalHostGoogleHostname(url.host_piece(), subdomain_permission);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool IsGoogleHomePageUrl(const GURL& url) {
|
||||
- // First check to see if this has a Google domain.
|
||||
- if (!IsGoogleDomainUrl(url, DISALLOW_SUBDOMAIN,
|
||||
- DISALLOW_NON_STANDARD_PORTS) &&
|
||||
- !IsGoogleSearchSubdomainUrl(url)) {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- // Make sure the path is a known home page path.
|
||||
- base::StringPiece path(url.path_piece());
|
||||
- return IsPathHomePageBase(path) ||
|
||||
- base::StartsWith(path, "/ig", base::CompareCase::INSENSITIVE_ASCII);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool IsGoogleSearchUrl(const GURL& url) {
|
||||
- // First check to see if this has a Google domain.
|
||||
- if (!IsGoogleDomainUrl(url, DISALLOW_SUBDOMAIN,
|
||||
- DISALLOW_NON_STANDARD_PORTS) &&
|
||||
- !IsGoogleSearchSubdomainUrl(url)) {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- // Make sure the path is a known search path.
|
||||
- base::StringPiece path(url.path_piece());
|
||||
- bool is_home_page_base = IsPathHomePageBase(path);
|
||||
- if (!is_home_page_base && (path != "/search"))
|
||||
- return false;
|
||||
-
|
||||
- // Check for query parameter in URL parameter and hash fragment, depending on
|
||||
- // the path type.
|
||||
- return HasGoogleSearchQueryParam(url.ref_piece()) ||
|
||||
- (!is_home_page_base && HasGoogleSearchQueryParam(url.query_piece()));
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool IsYoutubeDomainUrl(const GURL& url,
|
||||
SubdomainPermission subdomain_permission,
|
||||
PortPermission port_permission) {
|
||||
- return IsValidURL(url, port_permission) &&
|
||||
- IsValidHostName(url.host_piece(), "youtube", subdomain_permission,
|
||||
- nullptr);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
const std::vector<std::string>& GetGoogleRegistrableDomains() {
|
||||
diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
|
||||
--- a/components/search_engines/template_url.cc
|
||||
+++ b/components/search_engines/template_url.cc
|
||||
@@ -510,11 +510,6 @@ base::string16 TemplateURLRef::SearchTermToString16(
|
||||
bool TemplateURLRef::HasGoogleBaseURLs(
|
||||
const SearchTermsData& search_terms_data) const {
|
||||
ParseIfNecessary(search_terms_data);
|
||||
- for (size_t i = 0; i < replacements_.size(); ++i) {
|
||||
- if ((replacements_[i].type == GOOGLE_BASE_URL) ||
|
||||
- (replacements_[i].type == GOOGLE_BASE_SUGGEST_URL))
|
||||
- return true;
|
||||
- }
|
||||
return false;
|
||||
}
|
||||
|
||||
diff --git a/net/base/url_util.cc b/net/base/url_util.cc
|
||||
--- a/net/base/url_util.cc
|
||||
+++ b/net/base/url_util.cc
|
||||
@@ -397,28 +397,6 @@ void GetIdentityFromURL(const GURL& url,
|
||||
}
|
||||
|
||||
bool HasGoogleHost(const GURL& url) {
|
||||
- static const char* kGoogleHostSuffixes[] = {
|
||||
- ".google.com",
|
||||
- ".youtube.com",
|
||||
- ".gmail.com",
|
||||
- ".doubleclick.net",
|
||||
- ".gstatic.com",
|
||||
- ".googlevideo.com",
|
||||
- ".googleusercontent.com",
|
||||
- ".googlesyndication.com",
|
||||
- ".google-analytics.com",
|
||||
- ".googleadservices.com",
|
||||
- ".googleapis.com",
|
||||
- ".ytimg.com",
|
||||
- };
|
||||
- base::StringPiece host = url.host_piece();
|
||||
- for (const char* suffix : kGoogleHostSuffixes) {
|
||||
- // Here it's possible to get away with faster case-sensitive comparisons
|
||||
- // because the list above is all lowercase, and a GURL's host name will
|
||||
- // always be canonicalized to lowercase as well.
|
||||
- if (base::EndsWith(host, suffix, base::CompareCase::SENSITIVE))
|
||||
- return true;
|
||||
- }
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:37:10 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable GCM
|
||||
Disable Google Cloud Messaging (GCM) client
|
||||
|
||||
diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc
|
||||
--- a/components/gcm_driver/gcm_client_impl.cc
|
||||
+++ b/components/gcm_driver/gcm_client_impl.cc
|
||||
@@ -502,6 +502,7 @@ void GCMClientImpl::StartGCM() {
|
||||
}
|
||||
|
||||
void GCMClientImpl::InitializeMCSClient() {
|
||||
+ return;
|
||||
std::vector<GURL> endpoints;
|
||||
endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
|
||||
GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
|
||||
@@ -699,6 +700,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) {
|
||||
}
|
||||
|
||||
void GCMClientImpl::StartCheckin() {
|
||||
+ return;
|
||||
// Make sure no checkin is in progress.
|
||||
if (checkin_request_.get())
|
||||
return;
|
||||
@@ -777,6 +779,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) {
|
||||
}
|
||||
|
||||
void GCMClientImpl::SchedulePeriodicCheckin() {
|
||||
+ return;
|
||||
// Make sure no checkin is in progress.
|
||||
if (checkin_request_.get() || !device_checkin_info_.accounts_set)
|
||||
return;
|
||||
@@ -0,0 +1,121 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:37:52 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable Gaia
|
||||
Disables Gaia code
|
||||
Somehow it is still activated even without being signed-in: https://github.com/Eloston/ungoogled-chromium/issues/104
|
||||
|
||||
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
|
||||
--- a/chrome/browser/browser_resources.grd
|
||||
+++ b/chrome/browser/browser_resources.grd
|
||||
@@ -301,7 +301,6 @@
|
||||
<include name="IDR_INLINE_LOGIN_HTML" file="resources\inline_login\inline_login.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
|
||||
<include name="IDR_INLINE_LOGIN_CSS" file="resources\inline_login\inline_login.css" flattenhtml="true" type="BINDATA" />
|
||||
<include name="IDR_INLINE_LOGIN_JS" file="resources\inline_login\inline_login.js" flattenhtml="true" type="BINDATA" />
|
||||
- <include name="IDR_GAIA_AUTH_AUTHENTICATOR_JS" file="resources\gaia_auth_host\authenticator.js" flattenhtml="true" type="BINDATA" />
|
||||
<include name="IDR_INSPECT_CSS" file="resources\inspect\inspect.css" flattenhtml="true" type="BINDATA" />
|
||||
<include name="IDR_INSPECT_HTML" file="resources\inspect\inspect.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
|
||||
<include name="IDR_INSPECT_JS" file="resources\inspect\inspect.js" flattenhtml="true" type="BINDATA" />
|
||||
@@ -437,7 +436,6 @@
|
||||
</if>
|
||||
<include name="IDR_WEBSTORE_MANIFEST" file="resources\webstore_app\manifest.json" type="BINDATA" />
|
||||
<include name="IDR_CRYPTOTOKEN_MANIFEST" file="resources\cryptotoken\manifest.json" type="BINDATA" />
|
||||
- <include name="IDR_GAIA_AUTH_MANIFEST" file="resources\gaia_auth\manifest.json" type="BINDATA" />
|
||||
<if expr="chromeos">
|
||||
<if expr="optimize_webui">
|
||||
<then>
|
||||
diff --git a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
|
||||
--- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
|
||||
+++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
|
||||
@@ -68,7 +68,6 @@ bool IsComponentExtensionWhitelisted(int manifest_resource_id) {
|
||||
#endif
|
||||
case IDR_CRYPTOTOKEN_MANIFEST:
|
||||
case IDR_FEEDBACK_MANIFEST:
|
||||
- case IDR_GAIA_AUTH_MANIFEST:
|
||||
#if BUILDFLAG(ENABLE_HANGOUT_SERVICES_EXTENSION)
|
||||
case IDR_HANGOUT_SERVICES_MANIFEST:
|
||||
#endif
|
||||
diff --git a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
|
||||
--- a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
|
||||
+++ b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
|
||||
@@ -42,18 +42,11 @@ extensions::ComponentLoader* GetComponentLoader(BrowserContext* context) {
|
||||
void LoadGaiaAuthExtension(BrowserContext* context) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
|
||||
- extensions::ComponentLoader* component_loader = GetComponentLoader(context);
|
||||
const base::CommandLine* command_line =
|
||||
base::CommandLine::ForCurrentProcess();
|
||||
if (command_line->HasSwitch(switches::kAuthExtensionPath)) {
|
||||
- base::FilePath auth_extension_path =
|
||||
- command_line->GetSwitchValuePath(switches::kAuthExtensionPath);
|
||||
- component_loader->Add(IDR_GAIA_AUTH_MANIFEST, auth_extension_path);
|
||||
return;
|
||||
}
|
||||
-
|
||||
- component_loader->Add(IDR_GAIA_AUTH_MANIFEST,
|
||||
- base::FilePath(FILE_PATH_LITERAL("gaia_auth")));
|
||||
}
|
||||
|
||||
void UnloadGaiaAuthExtension(BrowserContext* context) {
|
||||
diff --git a/chrome/browser/resources/component_extension_resources.grd b/chrome/browser/resources/component_extension_resources.grd
|
||||
--- a/chrome/browser/resources/component_extension_resources.grd
|
||||
+++ b/chrome/browser/resources/component_extension_resources.grd
|
||||
@@ -40,8 +40,6 @@
|
||||
<include name="IDR_BOOKMARK_MANAGER_BOOKMARK_BMM_JS" file="bookmark_manager/js/bmm.js" type="BINDATA" />
|
||||
<!-- Material Design Bookmarks -->
|
||||
<include name="IDR_COMPONENT_MD_BOOKMARKS_BOOKMARKS_HTML" file="md_bookmarks/bookmarks.html" type="BINDATA" />
|
||||
- <!-- Gaia auth extension -->
|
||||
- <include name="IDR_GAIA_AUTH_SUCCESS" file="gaia_auth/success.html" allowexternalscript="true" type="BINDATA" />
|
||||
<!-- Hangout Services extension, included in Google Chrome builds only. -->
|
||||
<if expr="_google_chrome or enable_hangout_services_extension">
|
||||
<include name="IDR_HANGOUT_SERVICES_BACKGROUND_HTML" file="hangout_services/background.html" type="BINDATA" />
|
||||
diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/ui/webui/signin/inline_login_ui.cc
|
||||
--- a/chrome/browser/ui/webui/signin/inline_login_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc
|
||||
@@ -44,7 +44,6 @@ content::WebUIDataSource* CreateWebUIDataSource() {
|
||||
|
||||
source->AddResourcePath("inline_login.css", IDR_INLINE_LOGIN_CSS);
|
||||
source->AddResourcePath("inline_login.js", IDR_INLINE_LOGIN_JS);
|
||||
- source->AddResourcePath("gaia_auth_host.js", IDR_GAIA_AUTH_AUTHENTICATOR_JS);
|
||||
|
||||
source->AddLocalizedString("title", IDS_CHROME_SIGNIN_TITLE);
|
||||
source->AddLocalizedString(
|
||||
diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc
|
||||
--- a/google_apis/gaia/gaia_auth_fetcher.cc
|
||||
+++ b/google_apis/gaia/gaia_auth_fetcher.cc
|
||||
@@ -219,35 +219,6 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
|
||||
int load_flags,
|
||||
const net::NetworkTrafficAnnotationTag& traffic_annotation) {
|
||||
DCHECK(!fetch_pending_) << "Tried to fetch two things at once!";
|
||||
- fetcher_ = net::URLFetcher::Create(
|
||||
- 0, gaia_gurl, body.empty() ? net::URLFetcher::GET : net::URLFetcher::POST,
|
||||
- this, traffic_annotation);
|
||||
- fetcher_->SetRequestContext(getter_);
|
||||
- fetcher_->SetUploadData("application/x-www-form-urlencoded", body);
|
||||
- gaia::MarkURLFetcherAsGaia(fetcher_.get());
|
||||
-
|
||||
- VLOG(2) << "Gaia fetcher URL: " << gaia_gurl.spec();
|
||||
- VLOG(2) << "Gaia fetcher headers: " << headers;
|
||||
- VLOG(2) << "Gaia fetcher body: " << body;
|
||||
-
|
||||
- // The Gaia token exchange requests do not require any cookie-based
|
||||
- // identification as part of requests. We suppress sending any cookies to
|
||||
- // maintain a separation between the user's browsing and Chrome's internal
|
||||
- // services. Where such mixing is desired (MergeSession or OAuthLogin), it
|
||||
- // will be done explicitly.
|
||||
- fetcher_->SetLoadFlags(load_flags);
|
||||
-
|
||||
- // Fetchers are sometimes cancelled because a network change was detected,
|
||||
- // especially at startup and after sign-in on ChromeOS. Retrying once should
|
||||
- // be enough in those cases; let the fetcher retry up to 3 times just in case.
|
||||
- // http://crbug.com/163710
|
||||
- fetcher_->SetAutomaticallyRetryOnNetworkChanges(3);
|
||||
-
|
||||
- if (!headers.empty())
|
||||
- fetcher_->SetExtraRequestHeaders(headers);
|
||||
-
|
||||
- fetch_pending_ = true;
|
||||
- fetcher_->Start();
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -0,0 +1,166 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:45:21 2018 +0100
|
||||
|
||||
ungoogled-chromium: Clear HTTP cache menu item
|
||||
Adds a menu item under "More tools" to clear the HTTP authentication cache on demand
|
||||
|
||||
diff --git a/chrome/app/chrome_command_ids.h b/chrome/app/chrome_command_ids.h
|
||||
--- a/chrome/app/chrome_command_ids.h
|
||||
+++ b/chrome/app/chrome_command_ids.h
|
||||
@@ -148,6 +148,7 @@
|
||||
#define IDC_DEV_TOOLS_INSPECT 40023
|
||||
#define IDC_UPGRADE_DIALOG 40024
|
||||
#define IDC_VIEW_INCOMPATIBILITIES 40025
|
||||
+#define IDC_CLEAR_HTTP_AUTH_CACHE 40026
|
||||
#define IDC_SHOW_KEYBOARD_OVERLAY 40027
|
||||
#define IDC_PROFILING_ENABLED 40028
|
||||
#define IDC_BOOKMARKS_MENU 40029
|
||||
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
|
||||
--- a/chrome/app/generated_resources.grd
|
||||
+++ b/chrome/app/generated_resources.grd
|
||||
@@ -1067,6 +1067,9 @@ are declared in build/common.gypi.
|
||||
<message name="IDS_CLEAR_BROWSING_DATA" desc="The text label for the menu item for clearing of browsing data">
|
||||
&Clear browsing data...
|
||||
</message>
|
||||
+ <message name="IDS_CLEAR_HTTP_AUTH_CACHE" desc="The text label for the menu item for clearing the HTTP authentication cache">
|
||||
+ Clear &HTTP auth cache
|
||||
+ </message>
|
||||
<message name="IDS_SHOW_DOWNLOADS" desc="The show downloads menu in the app menu">
|
||||
&Downloads
|
||||
</message>
|
||||
@@ -1105,6 +1108,9 @@ are declared in build/common.gypi.
|
||||
<message name="IDS_CLEAR_BROWSING_DATA" desc="In Title Case: The text label for the menu item for clearing of browsing data">
|
||||
&Clear Browsing Data...
|
||||
</message>
|
||||
+ <message name="IDS_CLEAR_HTTP_AUTH_CACHE" desc="In Title Case: The text label for the menu item for clearing the HTTP authentication cache">
|
||||
+ Clear &HTTP Auth Cache
|
||||
+ </message>
|
||||
<message name="IDS_SHOW_DOWNLOADS" desc="In Title Case: The show downloads menu in the app menu">
|
||||
&Downloads
|
||||
</message>
|
||||
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc
|
||||
--- a/chrome/browser/ui/browser_command_controller.cc
|
||||
+++ b/chrome/browser/ui/browser_command_controller.cc
|
||||
@@ -58,6 +58,9 @@
|
||||
#include "extensions/browser/extension_system.h"
|
||||
#include "printing/features/features.h"
|
||||
#include "ui/events/keycodes/keyboard_codes.h"
|
||||
+#include "net/url_request/url_request_context.h"
|
||||
+#include "net/url_request/url_request_context_getter.h"
|
||||
+#include "net/http/http_transaction_factory.h"
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
#include "chrome/browser/ui/browser_commands_mac.h"
|
||||
@@ -625,6 +628,9 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
|
||||
case IDC_CLEAR_BROWSING_DATA:
|
||||
ShowClearBrowsingDataDialog(browser_);
|
||||
break;
|
||||
+ case IDC_CLEAR_HTTP_AUTH_CACHE:
|
||||
+ profile()->GetRequestContext()->GetURLRequestContext()->http_transaction_factory()->GetSession()->http_auth_cache()->Clear();
|
||||
+ break;
|
||||
case IDC_IMPORT_SETTINGS:
|
||||
ShowImportDialog(browser_);
|
||||
break;
|
||||
@@ -867,6 +873,7 @@ void BrowserCommandController::InitCommandState() {
|
||||
!profile()->IsOffTheRecord());
|
||||
command_updater_.UpdateCommandEnabled(IDC_CLEAR_BROWSING_DATA,
|
||||
!guest_session);
|
||||
+ command_updater_.UpdateCommandEnabled(IDC_CLEAR_HTTP_AUTH_CACHE, true);
|
||||
#if defined(OS_CHROMEOS)
|
||||
command_updater_.UpdateCommandEnabled(IDC_TAKE_SCREENSHOT, true);
|
||||
#else
|
||||
diff --git a/chrome/browser/ui/toolbar/app_menu_model.cc b/chrome/browser/ui/toolbar/app_menu_model.cc
|
||||
--- a/chrome/browser/ui/toolbar/app_menu_model.cc
|
||||
+++ b/chrome/browser/ui/toolbar/app_menu_model.cc
|
||||
@@ -215,6 +215,7 @@ void ToolsMenuModel::Build(Browser* browser) {
|
||||
|
||||
AddSeparator(ui::NORMAL_SEPARATOR);
|
||||
AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA);
|
||||
+ AddItemWithStringId(IDC_CLEAR_HTTP_AUTH_CACHE, IDS_CLEAR_HTTP_AUTH_CACHE);
|
||||
AddItemWithStringId(IDC_MANAGE_EXTENSIONS, IDS_SHOW_EXTENSIONS);
|
||||
if (chrome::CanOpenTaskManager())
|
||||
AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
|
||||
@@ -475,6 +476,13 @@ void AppMenuModel::LogMenuMetrics(int command_id) {
|
||||
}
|
||||
LogMenuAction(MENU_ACTION_CLEAR_BROWSING_DATA);
|
||||
break;
|
||||
+ case IDC_CLEAR_HTTP_AUTH_CACHE:
|
||||
+ if (!uma_action_recorded_) {
|
||||
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ClearHttpAuthCache",
|
||||
+ delta);
|
||||
+ }
|
||||
+ LogMenuAction(MENU_ACTION_CLEAR_HTTP_AUTH_CACHE);
|
||||
+ break;
|
||||
case IDC_VIEW_SOURCE:
|
||||
if (!uma_action_recorded_)
|
||||
UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ViewSource", delta);
|
||||
diff --git a/chrome/browser/ui/toolbar/app_menu_model.h b/chrome/browser/ui/toolbar/app_menu_model.h
|
||||
--- a/chrome/browser/ui/toolbar/app_menu_model.h
|
||||
+++ b/chrome/browser/ui/toolbar/app_menu_model.h
|
||||
@@ -76,6 +76,7 @@ enum AppMenuAction {
|
||||
MENU_ACTION_OPEN_IN_CHROME = 48,
|
||||
MENU_ACTION_SITE_SETTINGS = 49,
|
||||
MENU_ACTION_APP_INFO = 50,
|
||||
+ MENU_ACTION_CLEAR_HTTP_AUTH_CACHE = 51,
|
||||
LIMIT_MENU_ACTION
|
||||
};
|
||||
|
||||
diff --git a/chrome/browser/ui/views/frame/global_menu_bar_x11.cc b/chrome/browser/ui/views/frame/global_menu_bar_x11.cc
|
||||
--- a/chrome/browser/ui/views/frame/global_menu_bar_x11.cc
|
||||
+++ b/chrome/browser/ui/views/frame/global_menu_bar_x11.cc
|
||||
@@ -225,6 +225,7 @@ GlobalMenuBarCommand tools_menu[] = {
|
||||
|
||||
{IDS_TASK_MANAGER, IDC_TASK_MANAGER},
|
||||
{IDS_CLEAR_BROWSING_DATA, IDC_CLEAR_BROWSING_DATA},
|
||||
+ {IDS_CLEAR_HTTP_AUTH_CACHE, IDC_CLEAR_HTTP_AUTH_CACHE},
|
||||
|
||||
{MENU_SEPARATOR, MENU_SEPARATOR},
|
||||
|
||||
diff --git a/net/http/http_auth_cache.cc b/net/http/http_auth_cache.cc
|
||||
--- a/net/http/http_auth_cache.cc
|
||||
+++ b/net/http/http_auth_cache.cc
|
||||
@@ -250,6 +250,10 @@ bool HttpAuthCache::Remove(const GURL& origin,
|
||||
return false;
|
||||
}
|
||||
|
||||
+void HttpAuthCache::Clear() {
|
||||
+ entries_.clear();
|
||||
+}
|
||||
+
|
||||
void HttpAuthCache::ClearEntriesAddedWithin(base::TimeDelta duration) {
|
||||
base::TimeTicks begin_time = base::TimeTicks::Now() - duration;
|
||||
base::EraseIf(entries_, [begin_time](const Entry& entry) {
|
||||
diff --git a/net/http/http_auth_cache.h b/net/http/http_auth_cache.h
|
||||
--- a/net/http/http_auth_cache.h
|
||||
+++ b/net/http/http_auth_cache.h
|
||||
@@ -166,6 +166,8 @@ class NET_EXPORT HttpAuthCache {
|
||||
HttpAuth::Scheme scheme,
|
||||
const AuthCredentials& credentials);
|
||||
|
||||
+ void Clear();
|
||||
+
|
||||
// Clears cache entries created within |duration| of base::TimeTicks::Now().
|
||||
void ClearEntriesAddedWithin(base::TimeDelta duration);
|
||||
|
||||
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
|
||||
--- a/tools/metrics/histograms/enums.xml
|
||||
+++ b/tools/metrics/histograms/enums.xml
|
||||
@@ -46546,6 +46546,7 @@ Called by update_traffic_annotation_histograms.py.-->
|
||||
<int value="48" label="Open in Chrome"/>
|
||||
<int value="49" label="Site Settings"/>
|
||||
<int value="50" label="App Info"/>
|
||||
+ <int value="51" label="Clear HTTP auth cache"/>
|
||||
</enum>
|
||||
|
||||
<enum name="XFrameOptions">
|
||||
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
|
||||
--- a/tools/metrics/histograms/histograms.xml
|
||||
+++ b/tools/metrics/histograms/histograms.xml
|
||||
@@ -103687,6 +103687,7 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
|
||||
<suffix name="Overestimate"
|
||||
label="Tracks when the compositor's estimates were too high and by how
|
||||
much."/>
|
||||
+ <suffix name="ClearHttpAuthCache" label="Clear HTTP authentication cache"/>
|
||||
<suffix name="Underestimate"
|
||||
label="Tracks when the compositor's estimates were too low and by how
|
||||
much."/>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,70 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun Feb 18 22:15:25 2018 +0100
|
||||
|
||||
Play videos in background
|
||||
Break Page Visibility API and Fullscreen API for youtube.com and vimeo.com
|
||||
Original Javascript code by timdream
|
||||
|
||||
diff --git a/third_party/WebKit/Source/core/dom/BUILD.gn b/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
--- a/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
+++ b/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
@@ -302,6 +302,7 @@ blink_core_sources("dom") {
|
||||
"events/WindowEventContext.cpp",
|
||||
"events/WindowEventContext.h",
|
||||
"extensions/dont-track-me.h",
|
||||
+ "extensions/video-bg-play.h",
|
||||
"ng/flat_tree_traversal_ng.cc",
|
||||
"ng/flat_tree_traversal_ng.h",
|
||||
"trustedtypes/TrustedHTML.cpp",
|
||||
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
--- a/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
+++ b/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
@@ -222,6 +222,7 @@
|
||||
#include "core/xml_names.h"
|
||||
#include "core/xmlns_names.h"
|
||||
#include "extensions/dont-track-me.h"
|
||||
+#include "extensions/video-bg-play.h"
|
||||
#include "platform/CrossThreadFunctional.h"
|
||||
#include "platform/DateComponents.h"
|
||||
#include "platform/EventDispatchForbiddenScope.h"
|
||||
@@ -5794,17 +5795,25 @@ void Document::FinishedParsing() {
|
||||
|
||||
// determine whether this is a Google search results page
|
||||
const SecurityOrigin *origin = GetSecurityOrigin();
|
||||
- if (origin) {
|
||||
+ auto* bodyElement = body();
|
||||
+ if (origin && bodyElement) {
|
||||
WTF::String domain = origin->Domain();
|
||||
size_t pos = domain.Find(".google.");
|
||||
- auto* bodyElement = body();
|
||||
- if (bodyElement && (pos != WTF::kNotFound) && (domain.length() - pos - 8 < 4)) {
|
||||
+ if ((pos != WTF::kNotFound) && (domain.length() - pos - 8 < 4)) {
|
||||
LOG(INFO) << "injecting dont-track-me Javascript payload";
|
||||
HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
e->setText(DONT_TRACK_ME_JS);
|
||||
bodyElement->AppendChild(e);
|
||||
}
|
||||
- }
|
||||
+
|
||||
+ // check for eligibility of the video bg fix
|
||||
+ if ((WTF::kNotFound != domain.Find("youtube.com")) || (WTF::kNotFound != domain.Find("vimeo.com"))) {
|
||||
+ LOG(INFO) << "injecting video-bg-play Javascript payload";
|
||||
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
+ e->setText(VIDEO_BG_PLAY_JS);
|
||||
+ bodyElement->AppendChild(e);
|
||||
+ }
|
||||
+ } // has origin and body element
|
||||
}
|
||||
|
||||
void Document::ElementDataCacheClearTimerFired(TimerBase*) {
|
||||
diff --git a/third_party/WebKit/Source/core/dom/extensions/video-bg-play.h b/third_party/WebKit/Source/core/dom/extensions/video-bg-play.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/third_party/WebKit/Source/core/dom/extensions/video-bg-play.h
|
||||
@@ -0,0 +1,6 @@
|
||||
+#ifndef video_bg_play_h
|
||||
+#define video_bg_play_h
|
||||
+
|
||||
+#define VIDEO_BG_PLAY_JS "'use strict';\n\n/* video background play fix - original version by timdream */\ndocument.videoBGFix = {};\n\n// Page Visibility API\nObject.defineProperties(document.videoBGFix,\n { 'hidden': {value: false}, 'visibilityState': {value: 'visible'} });\n\nwindow.addEventListener(\n 'visibilitychange', evt => evt.stopImmediatePropagation(), true);\nwindow.addEventListener(\n 'blur', evt => evt.stopImmediatePropagation(), true);\n\n// Fullscreen API\nwindow.addEventListener('fullscreenchange', evt => {\n Object.defineProperties(document.videoBGFix,\n { 'fullscreenEnabled': {value: true},\n 'fullscreen': {value: true},\n 'fullscreenElement': {value: document.fullscreenElement.videoBGFix}});\n window.addEventListener(\n 'fullscreenchange', evt => evt.stopImmediatePropagation(), true);\n}, { capture: true, once: true });\n"
|
||||
+
|
||||
+#endif // video_bg_play_h
|
||||
Reference in New Issue
Block a user