testing: Move chromium out of tree.

This commit is contained in:
Dylan Araps 2019-08-03 09:47:55 +03:00
parent 3aecb17979
commit 9b4a63a0de
113 changed files with 0 additions and 8379 deletions

View File

@ -1,5 +0,0 @@
#!/bin/sh -e
install -D cdefs.h "$1/usr/include/sys/cdefs.h"
install -D queue.h "$1/usr/include/sys/queue.h"
install -D tree.h "$1/usr/include/sys/tree.h"

View File

@ -1,3 +0,0 @@
30bb6d7e0e0b61fcd95d830c376c829a614bce4683c1b97e06c201ec2c6e839a cdefs.h
c13407edd0e33be73cae72514cb234f8612e1c0e54401c9448daffd3a240158b queue.h
e1e498a79bf160a5766fa560f2b07b206fe89fe21a62600c77d72e00a6992f92 tree.h

View File

@ -1,26 +0,0 @@
#warning usage of non-standard #include <sys/cdefs.h> is deprecated
#undef __P
#undef __PMT
#define __P(args) args
#define __PMT(args) args
#define __CONCAT(x,y) x ## y
#define __STRING(x) #x
#ifdef __cplusplus
# define __BEGIN_DECLS extern "C" {
# define __END_DECLS }
#else
# define __BEGIN_DECLS
# define __END_DECLS
#endif
#if defined(__GNUC__) && !defined(__cplusplus)
# define __THROW __attribute__ ((__nothrow__))
# define __NTH(fct) __attribute__ ((__nothrow__)) fct
#else
# define __THROW
# define __NTH(fct) fct
#endif

View File

@ -1,846 +0,0 @@
/* $NetBSD: queue.h,v 1.70 2015/11/02 15:21:23 christos Exp $ */
/*
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)queue.h 8.5 (Berkeley) 8/20/94
*/
#ifndef _SYS_QUEUE_H_
#define _SYS_QUEUE_H_
/*
* This file defines five types of data structures: singly-linked lists,
* lists, simple queues, tail queues, and circular queues.
*
* A singly-linked list is headed by a single forward pointer. The
* elements are singly linked for minimum space and pointer manipulation
* overhead at the expense of O(n) removal for arbitrary elements. New
* elements can be added to the list after an existing element or at the
* head of the list. Elements being removed from the head of the list
* should use the explicit macro for this purpose for optimum
* efficiency. A singly-linked list may only be traversed in the forward
* direction. Singly-linked lists are ideal for applications with large
* datasets and few or no removals or for implementing a LIFO queue.
*
* A list is headed by a single forward pointer (or an array of forward
* pointers for a hash table header). The elements are doubly linked
* so that an arbitrary element can be removed without a need to
* traverse the list. New elements can be added to the list before
* or after an existing element or at the head of the list. A list
* may only be traversed in the forward direction.
*
* A simple queue is headed by a pair of pointers, one the head of the
* list and the other to the tail of the list. The elements are singly
* linked to save space, so elements can only be removed from the
* head of the list. New elements can be added to the list after
* an existing element, at the head of the list, or at the end of the
* list. A simple queue may only be traversed in the forward direction.
*
* A tail queue is headed by a pair of pointers, one to the head of the
* list and the other to the tail of the list. The elements are doubly
* linked so that an arbitrary element can be removed without a need to
* traverse the list. New elements can be added to the list before or
* after an existing element, at the head of the list, or at the end of
* the list. A tail queue may be traversed in either direction.
*
* A circle queue is headed by a pair of pointers, one to the head of the
* list and the other to the tail of the list. The elements are doubly
* linked so that an arbitrary element can be removed without a need to
* traverse the list. New elements can be added to the list before or after
* an existing element, at the head of the list, or at the end of the list.
* A circle queue may be traversed in either direction, but has a more
* complex end of list detection.
*
* For details on the use of these macros, see the queue(3) manual page.
*/
/*
* Include the definition of NULL only on NetBSD because sys/null.h
* is not available elsewhere. This conditional makes the header
* portable and it can simply be dropped verbatim into any system.
* The caveat is that on other systems some other header
* must provide NULL before the macros can be used.
*/
#ifdef __NetBSD__
#include <sys/null.h>
#endif
#if defined(QUEUEDEBUG)
# if defined(_KERNEL)
# define QUEUEDEBUG_ABORT(...) panic(__VA_ARGS__)
# else
# include <err.h>
# define QUEUEDEBUG_ABORT(...) err(1, __VA_ARGS__)
# endif
#endif
/*
* Singly-linked List definitions.
*/
#define SLIST_HEAD(name, type) \
struct name { \
struct type *slh_first; /* first element */ \
}
#define SLIST_HEAD_INITIALIZER(head) \
{ NULL }
#define SLIST_ENTRY(type) \
struct { \
struct type *sle_next; /* next element */ \
}
/*
* Singly-linked List access methods.
*/
#define SLIST_FIRST(head) ((head)->slh_first)
#define SLIST_END(head) NULL
#define SLIST_EMPTY(head) ((head)->slh_first == NULL)
#define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
#define SLIST_FOREACH(var, head, field) \
for((var) = (head)->slh_first; \
(var) != SLIST_END(head); \
(var) = (var)->field.sle_next)
#define SLIST_FOREACH_SAFE(var, head, field, tvar) \
for ((var) = SLIST_FIRST((head)); \
(var) != SLIST_END(head) && \
((tvar) = SLIST_NEXT((var), field), 1); \
(var) = (tvar))
/*
* Singly-linked List functions.
*/
#define SLIST_INIT(head) do { \
(head)->slh_first = SLIST_END(head); \
} while (/*CONSTCOND*/0)
#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \
(elm)->field.sle_next = (slistelm)->field.sle_next; \
(slistelm)->field.sle_next = (elm); \
} while (/*CONSTCOND*/0)
#define SLIST_INSERT_HEAD(head, elm, field) do { \
(elm)->field.sle_next = (head)->slh_first; \
(head)->slh_first = (elm); \
} while (/*CONSTCOND*/0)
#define SLIST_REMOVE_AFTER(slistelm, field) do { \
(slistelm)->field.sle_next = \
SLIST_NEXT(SLIST_NEXT((slistelm), field), field); \
} while (/*CONSTCOND*/0)
#define SLIST_REMOVE_HEAD(head, field) do { \
(head)->slh_first = (head)->slh_first->field.sle_next; \
} while (/*CONSTCOND*/0)
#define SLIST_REMOVE(head, elm, type, field) do { \
if ((head)->slh_first == (elm)) { \
SLIST_REMOVE_HEAD((head), field); \
} \
else { \
struct type *curelm = (head)->slh_first; \
while(curelm->field.sle_next != (elm)) \
curelm = curelm->field.sle_next; \
curelm->field.sle_next = \
curelm->field.sle_next->field.sle_next; \
} \
} while (/*CONSTCOND*/0)
/*
* List definitions.
*/
#define LIST_HEAD(name, type) \
struct name { \
struct type *lh_first; /* first element */ \
}
#define LIST_HEAD_INITIALIZER(head) \
{ NULL }
#define LIST_ENTRY(type) \
struct { \
struct type *le_next; /* next element */ \
struct type **le_prev; /* address of previous next element */ \
}
/*
* List access methods.
*/
#define LIST_FIRST(head) ((head)->lh_first)
#define LIST_END(head) NULL
#define LIST_EMPTY(head) ((head)->lh_first == LIST_END(head))
#define LIST_NEXT(elm, field) ((elm)->field.le_next)
#define LIST_FOREACH(var, head, field) \
for ((var) = ((head)->lh_first); \
(var) != LIST_END(head); \
(var) = ((var)->field.le_next))
#define LIST_FOREACH_SAFE(var, head, field, tvar) \
for ((var) = LIST_FIRST((head)); \
(var) != LIST_END(head) && \
((tvar) = LIST_NEXT((var), field), 1); \
(var) = (tvar))
#define LIST_MOVE(head1, head2) do { \
LIST_INIT((head2)); \
if (!LIST_EMPTY((head1))) { \
(head2)->lh_first = (head1)->lh_first; \
LIST_INIT((head1)); \
} \
} while (/*CONSTCOND*/0)
/*
* List functions.
*/
#if defined(QUEUEDEBUG)
#define QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field) \
if ((head)->lh_first && \
(head)->lh_first->field.le_prev != &(head)->lh_first) \
QUEUEDEBUG_ABORT("LIST_INSERT_HEAD %p %s:%d", (head), \
__FILE__, __LINE__);
#define QUEUEDEBUG_LIST_OP(elm, field) \
if ((elm)->field.le_next && \
(elm)->field.le_next->field.le_prev != \
&(elm)->field.le_next) \
QUEUEDEBUG_ABORT("LIST_* forw %p %s:%d", (elm), \
__FILE__, __LINE__); \
if (*(elm)->field.le_prev != (elm)) \
QUEUEDEBUG_ABORT("LIST_* back %p %s:%d", (elm), \
__FILE__, __LINE__);
#define QUEUEDEBUG_LIST_POSTREMOVE(elm, field) \
(elm)->field.le_next = (void *)1L; \
(elm)->field.le_prev = (void *)1L;
#else
#define QUEUEDEBUG_LIST_INSERT_HEAD(head, elm, field)
#define QUEUEDEBUG_LIST_OP(elm, field)
#define QUEUEDEBUG_LIST_POSTREMOVE(elm, field)
#endif
#define LIST_INIT(head) do { \
(head)->lh_first = LIST_END(head); \
} while (/*CONSTCOND*/0)
#define LIST_INSERT_AFTER(listelm, elm, field) do { \
QUEUEDEBUG_LIST_OP((listelm), field) \
if (((elm)->field.le_next = (listelm)->field.le_next) != \
LIST_END(head)) \
(listelm)->field.le_next->field.le_prev = \
&(elm)->field.le_next; \
(listelm)->field.le_next = (elm); \
(elm)->field.le_prev = &(listelm)->field.le_next; \
} while (/*CONSTCOND*/0)
#define LIST_INSERT_BEFORE(listelm, elm, field) do { \
QUEUEDEBUG_LIST_OP((listelm), field) \
(elm)->field.le_prev = (listelm)->field.le_prev; \
(elm)->field.le_next = (listelm); \
*(listelm)->field.le_prev = (elm); \
(listelm)->field.le_prev = &(elm)->field.le_next; \
} while (/*CONSTCOND*/0)
#define LIST_INSERT_HEAD(head, elm, field) do { \
QUEUEDEBUG_LIST_INSERT_HEAD((head), (elm), field) \
if (((elm)->field.le_next = (head)->lh_first) != LIST_END(head))\
(head)->lh_first->field.le_prev = &(elm)->field.le_next;\
(head)->lh_first = (elm); \
(elm)->field.le_prev = &(head)->lh_first; \
} while (/*CONSTCOND*/0)
#define LIST_REMOVE(elm, field) do { \
QUEUEDEBUG_LIST_OP((elm), field) \
if ((elm)->field.le_next != NULL) \
(elm)->field.le_next->field.le_prev = \
(elm)->field.le_prev; \
*(elm)->field.le_prev = (elm)->field.le_next; \
QUEUEDEBUG_LIST_POSTREMOVE((elm), field) \
} while (/*CONSTCOND*/0)
#define LIST_REPLACE(elm, elm2, field) do { \
if (((elm2)->field.le_next = (elm)->field.le_next) != NULL) \
(elm2)->field.le_next->field.le_prev = \
&(elm2)->field.le_next; \
(elm2)->field.le_prev = (elm)->field.le_prev; \
*(elm2)->field.le_prev = (elm2); \
QUEUEDEBUG_LIST_POSTREMOVE((elm), field) \
} while (/*CONSTCOND*/0)
/*
* Simple queue definitions.
*/
#define SIMPLEQ_HEAD(name, type) \
struct name { \
struct type *sqh_first; /* first element */ \
struct type **sqh_last; /* addr of last next element */ \
}
#define SIMPLEQ_HEAD_INITIALIZER(head) \
{ NULL, &(head).sqh_first }
#define SIMPLEQ_ENTRY(type) \
struct { \
struct type *sqe_next; /* next element */ \
}
/*
* Simple queue access methods.
*/
#define SIMPLEQ_FIRST(head) ((head)->sqh_first)
#define SIMPLEQ_END(head) NULL
#define SIMPLEQ_EMPTY(head) ((head)->sqh_first == SIMPLEQ_END(head))
#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next)
#define SIMPLEQ_FOREACH(var, head, field) \
for ((var) = ((head)->sqh_first); \
(var) != SIMPLEQ_END(head); \
(var) = ((var)->field.sqe_next))
#define SIMPLEQ_FOREACH_SAFE(var, head, field, next) \
for ((var) = ((head)->sqh_first); \
(var) != SIMPLEQ_END(head) && \
((next = ((var)->field.sqe_next)), 1); \
(var) = (next))
/*
* Simple queue functions.
*/
#define SIMPLEQ_INIT(head) do { \
(head)->sqh_first = NULL; \
(head)->sqh_last = &(head)->sqh_first; \
} while (/*CONSTCOND*/0)
#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \
if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
(head)->sqh_last = &(elm)->field.sqe_next; \
(head)->sqh_first = (elm); \
} while (/*CONSTCOND*/0)
#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \
(elm)->field.sqe_next = NULL; \
*(head)->sqh_last = (elm); \
(head)->sqh_last = &(elm)->field.sqe_next; \
} while (/*CONSTCOND*/0)
#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
(head)->sqh_last = &(elm)->field.sqe_next; \
(listelm)->field.sqe_next = (elm); \
} while (/*CONSTCOND*/0)
#define SIMPLEQ_REMOVE_HEAD(head, field) do { \
if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
(head)->sqh_last = &(head)->sqh_first; \
} while (/*CONSTCOND*/0)
#define SIMPLEQ_REMOVE_AFTER(head, elm, field) do { \
if (((elm)->field.sqe_next = (elm)->field.sqe_next->field.sqe_next) \
== NULL) \
(head)->sqh_last = &(elm)->field.sqe_next; \
} while (/*CONSTCOND*/0)
#define SIMPLEQ_REMOVE(head, elm, type, field) do { \
if ((head)->sqh_first == (elm)) { \
SIMPLEQ_REMOVE_HEAD((head), field); \
} else { \
struct type *curelm = (head)->sqh_first; \
while (curelm->field.sqe_next != (elm)) \
curelm = curelm->field.sqe_next; \
if ((curelm->field.sqe_next = \
curelm->field.sqe_next->field.sqe_next) == NULL) \
(head)->sqh_last = &(curelm)->field.sqe_next; \
} \
} while (/*CONSTCOND*/0)
#define SIMPLEQ_CONCAT(head1, head2) do { \
if (!SIMPLEQ_EMPTY((head2))) { \
*(head1)->sqh_last = (head2)->sqh_first; \
(head1)->sqh_last = (head2)->sqh_last; \
SIMPLEQ_INIT((head2)); \
} \
} while (/*CONSTCOND*/0)
#define SIMPLEQ_LAST(head, type, field) \
(SIMPLEQ_EMPTY((head)) ? \
NULL : \
((struct type *)(void *) \
((char *)((head)->sqh_last) - offsetof(struct type, field))))
/*
* Tail queue definitions.
*/
#define _TAILQ_HEAD(name, type, qual) \
struct name { \
qual type *tqh_first; /* first element */ \
qual type *qual *tqh_last; /* addr of last next element */ \
}
#define TAILQ_HEAD(name, type) _TAILQ_HEAD(name, struct type,)
#define TAILQ_HEAD_INITIALIZER(head) \
{ TAILQ_END(head), &(head).tqh_first }
#define _TAILQ_ENTRY(type, qual) \
struct { \
qual type *tqe_next; /* next element */ \
qual type *qual *tqe_prev; /* address of previous next element */\
}
#define TAILQ_ENTRY(type) _TAILQ_ENTRY(struct type,)
/*
* Tail queue access methods.
*/
#define TAILQ_FIRST(head) ((head)->tqh_first)
#define TAILQ_END(head) (NULL)
#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
#define TAILQ_LAST(head, headname) \
(*(((struct headname *)(void *)((head)->tqh_last))->tqh_last))
#define TAILQ_PREV(elm, headname, field) \
(*(((struct headname *)(void *)((elm)->field.tqe_prev))->tqh_last))
#define TAILQ_EMPTY(head) (TAILQ_FIRST(head) == TAILQ_END(head))
#define TAILQ_FOREACH(var, head, field) \
for ((var) = ((head)->tqh_first); \
(var) != TAILQ_END(head); \
(var) = ((var)->field.tqe_next))
#define TAILQ_FOREACH_SAFE(var, head, field, next) \
for ((var) = ((head)->tqh_first); \
(var) != TAILQ_END(head) && \
((next) = TAILQ_NEXT(var, field), 1); (var) = (next))
#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
for ((var) = TAILQ_LAST((head), headname); \
(var) != TAILQ_END(head); \
(var) = TAILQ_PREV((var), headname, field))
#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, prev) \
for ((var) = TAILQ_LAST((head), headname); \
(var) != TAILQ_END(head) && \
((prev) = TAILQ_PREV((var), headname, field), 1); (var) = (prev))
/*
* Tail queue functions.
*/
#if defined(QUEUEDEBUG)
#define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field) \
if ((head)->tqh_first && \
(head)->tqh_first->field.tqe_prev != &(head)->tqh_first) \
QUEUEDEBUG_ABORT("TAILQ_INSERT_HEAD %p %s:%d", (head), \
__FILE__, __LINE__);
#define QUEUEDEBUG_TAILQ_INSERT_TAIL(head, elm, field) \
if (*(head)->tqh_last != NULL) \
QUEUEDEBUG_ABORT("TAILQ_INSERT_TAIL %p %s:%d", (head), \
__FILE__, __LINE__);
#define QUEUEDEBUG_TAILQ_OP(elm, field) \
if ((elm)->field.tqe_next && \
(elm)->field.tqe_next->field.tqe_prev != \
&(elm)->field.tqe_next) \
QUEUEDEBUG_ABORT("TAILQ_* forw %p %s:%d", (elm), \
__FILE__, __LINE__); \
if (*(elm)->field.tqe_prev != (elm)) \
QUEUEDEBUG_ABORT("TAILQ_* back %p %s:%d", (elm), \
__FILE__, __LINE__);
#define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field) \
if ((elm)->field.tqe_next == NULL && \
(head)->tqh_last != &(elm)->field.tqe_next) \
QUEUEDEBUG_ABORT("TAILQ_PREREMOVE head %p elm %p %s:%d",\
(head), (elm), __FILE__, __LINE__);
#define QUEUEDEBUG_TAILQ_POSTREMOVE(elm, field) \
(elm)->field.tqe_next = (void *)1L; \
(elm)->field.tqe_prev = (void *)1L;
#else
#define QUEUEDEBUG_TAILQ_INSERT_HEAD(head, elm, field)
#define QUEUEDEBUG_TAILQ_INSERT_TAIL(head, elm, field)
#define QUEUEDEBUG_TAILQ_OP(elm, field)
#define QUEUEDEBUG_TAILQ_PREREMOVE(head, elm, field)
#define QUEUEDEBUG_TAILQ_POSTREMOVE(elm, field)
#endif
#define TAILQ_INIT(head) do { \
(head)->tqh_first = TAILQ_END(head); \
(head)->tqh_last = &(head)->tqh_first; \
} while (/*CONSTCOND*/0)
#define TAILQ_INSERT_HEAD(head, elm, field) do { \
QUEUEDEBUG_TAILQ_INSERT_HEAD((head), (elm), field) \
if (((elm)->field.tqe_next = (head)->tqh_first) != TAILQ_END(head))\
(head)->tqh_first->field.tqe_prev = \
&(elm)->field.tqe_next; \
else \
(head)->tqh_last = &(elm)->field.tqe_next; \
(head)->tqh_first = (elm); \
(elm)->field.tqe_prev = &(head)->tqh_first; \
} while (/*CONSTCOND*/0)
#define TAILQ_INSERT_TAIL(head, elm, field) do { \
QUEUEDEBUG_TAILQ_INSERT_TAIL((head), (elm), field) \
(elm)->field.tqe_next = TAILQ_END(head); \
(elm)->field.tqe_prev = (head)->tqh_last; \
*(head)->tqh_last = (elm); \
(head)->tqh_last = &(elm)->field.tqe_next; \
} while (/*CONSTCOND*/0)
#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
QUEUEDEBUG_TAILQ_OP((listelm), field) \
if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != \
TAILQ_END(head)) \
(elm)->field.tqe_next->field.tqe_prev = \
&(elm)->field.tqe_next; \
else \
(head)->tqh_last = &(elm)->field.tqe_next; \
(listelm)->field.tqe_next = (elm); \
(elm)->field.tqe_prev = &(listelm)->field.tqe_next; \
} while (/*CONSTCOND*/0)
#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
QUEUEDEBUG_TAILQ_OP((listelm), field) \
(elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
(elm)->field.tqe_next = (listelm); \
*(listelm)->field.tqe_prev = (elm); \
(listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
} while (/*CONSTCOND*/0)
#define TAILQ_REMOVE(head, elm, field) do { \
QUEUEDEBUG_TAILQ_PREREMOVE((head), (elm), field) \
QUEUEDEBUG_TAILQ_OP((elm), field) \
if (((elm)->field.tqe_next) != TAILQ_END(head)) \
(elm)->field.tqe_next->field.tqe_prev = \
(elm)->field.tqe_prev; \
else \
(head)->tqh_last = (elm)->field.tqe_prev; \
*(elm)->field.tqe_prev = (elm)->field.tqe_next; \
QUEUEDEBUG_TAILQ_POSTREMOVE((elm), field); \
} while (/*CONSTCOND*/0)
#define TAILQ_REPLACE(head, elm, elm2, field) do { \
if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != \
TAILQ_END(head)) \
(elm2)->field.tqe_next->field.tqe_prev = \
&(elm2)->field.tqe_next; \
else \
(head)->tqh_last = &(elm2)->field.tqe_next; \
(elm2)->field.tqe_prev = (elm)->field.tqe_prev; \
*(elm2)->field.tqe_prev = (elm2); \
QUEUEDEBUG_TAILQ_POSTREMOVE((elm), field); \
} while (/*CONSTCOND*/0)
#define TAILQ_CONCAT(head1, head2, field) do { \
if (!TAILQ_EMPTY(head2)) { \
*(head1)->tqh_last = (head2)->tqh_first; \
(head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
(head1)->tqh_last = (head2)->tqh_last; \
TAILQ_INIT((head2)); \
} \
} while (/*CONSTCOND*/0)
/*
* Singly-linked Tail queue declarations.
*/
#define STAILQ_HEAD(name, type) \
struct name { \
struct type *stqh_first; /* first element */ \
struct type **stqh_last; /* addr of last next element */ \
}
#define STAILQ_HEAD_INITIALIZER(head) \
{ NULL, &(head).stqh_first }
#define STAILQ_ENTRY(type) \
struct { \
struct type *stqe_next; /* next element */ \
}
/*
* Singly-linked Tail queue access methods.
*/
#define STAILQ_FIRST(head) ((head)->stqh_first)
#define STAILQ_END(head) NULL
#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
#define STAILQ_EMPTY(head) (STAILQ_FIRST(head) == STAILQ_END(head))
/*
* Singly-linked Tail queue functions.
*/
#define STAILQ_INIT(head) do { \
(head)->stqh_first = NULL; \
(head)->stqh_last = &(head)->stqh_first; \
} while (/*CONSTCOND*/0)
#define STAILQ_INSERT_HEAD(head, elm, field) do { \
if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \
(head)->stqh_last = &(elm)->field.stqe_next; \
(head)->stqh_first = (elm); \
} while (/*CONSTCOND*/0)
#define STAILQ_INSERT_TAIL(head, elm, field) do { \
(elm)->field.stqe_next = NULL; \
*(head)->stqh_last = (elm); \
(head)->stqh_last = &(elm)->field.stqe_next; \
} while (/*CONSTCOND*/0)
#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
(head)->stqh_last = &(elm)->field.stqe_next; \
(listelm)->field.stqe_next = (elm); \
} while (/*CONSTCOND*/0)
#define STAILQ_REMOVE_HEAD(head, field) do { \
if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \
(head)->stqh_last = &(head)->stqh_first; \
} while (/*CONSTCOND*/0)
#define STAILQ_REMOVE(head, elm, type, field) do { \
if ((head)->stqh_first == (elm)) { \
STAILQ_REMOVE_HEAD((head), field); \
} else { \
struct type *curelm = (head)->stqh_first; \
while (curelm->field.stqe_next != (elm)) \
curelm = curelm->field.stqe_next; \
if ((curelm->field.stqe_next = \
curelm->field.stqe_next->field.stqe_next) == NULL) \
(head)->stqh_last = &(curelm)->field.stqe_next; \
} \
} while (/*CONSTCOND*/0)
#define STAILQ_FOREACH(var, head, field) \
for ((var) = ((head)->stqh_first); \
(var); \
(var) = ((var)->field.stqe_next))
#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
for ((var) = STAILQ_FIRST((head)); \
(var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
(var) = (tvar))
#define STAILQ_CONCAT(head1, head2) do { \
if (!STAILQ_EMPTY((head2))) { \
*(head1)->stqh_last = (head2)->stqh_first; \
(head1)->stqh_last = (head2)->stqh_last; \
STAILQ_INIT((head2)); \
} \
} while (/*CONSTCOND*/0)
#define STAILQ_LAST(head, type, field) \
(STAILQ_EMPTY((head)) ? \
NULL : \
((struct type *)(void *) \
((char *)((head)->stqh_last) - offsetof(struct type, field))))
#ifndef _KERNEL
/*
* Circular queue definitions. Do not use. We still keep the macros
* for compatibility but because of pointer aliasing issues their use
* is discouraged!
*/
/*
* __launder_type(): We use this ugly hack to work around the the compiler
* noticing that two types may not alias each other and elide tests in code.
* We hit this in the CIRCLEQ macros when comparing 'struct name *' and
* 'struct type *' (see CIRCLEQ_HEAD()). Modern compilers (such as GCC
* 4.8) declare these comparisons as always false, causing the code to
* not run as designed.
*
* This hack is only to be used for comparisons and thus can be fully const.
* Do not use for assignment.
*
* If we ever choose to change the ABI of the CIRCLEQ macros, we could fix
* this by changing the head/tail sentinal values, but see the note above
* this one.
*/
static __inline const void * __launder_type(const void *);
static __inline const void *
__launder_type(const void *__x)
{
__asm __volatile("" : "+r" (__x));
return __x;
}
#if defined(QUEUEDEBUG)
#define QUEUEDEBUG_CIRCLEQ_HEAD(head, field) \
if ((head)->cqh_first != CIRCLEQ_ENDC(head) && \
(head)->cqh_first->field.cqe_prev != CIRCLEQ_ENDC(head)) \
QUEUEDEBUG_ABORT("CIRCLEQ head forw %p %s:%d", (head), \
__FILE__, __LINE__); \
if ((head)->cqh_last != CIRCLEQ_ENDC(head) && \
(head)->cqh_last->field.cqe_next != CIRCLEQ_ENDC(head)) \
QUEUEDEBUG_ABORT("CIRCLEQ head back %p %s:%d", (head), \
__FILE__, __LINE__);
#define QUEUEDEBUG_CIRCLEQ_ELM(head, elm, field) \
if ((elm)->field.cqe_next == CIRCLEQ_ENDC(head)) { \
if ((head)->cqh_last != (elm)) \
QUEUEDEBUG_ABORT("CIRCLEQ elm last %p %s:%d", \
(elm), __FILE__, __LINE__); \
} else { \
if ((elm)->field.cqe_next->field.cqe_prev != (elm)) \
QUEUEDEBUG_ABORT("CIRCLEQ elm forw %p %s:%d", \
(elm), __FILE__, __LINE__); \
} \
if ((elm)->field.cqe_prev == CIRCLEQ_ENDC(head)) { \
if ((head)->cqh_first != (elm)) \
QUEUEDEBUG_ABORT("CIRCLEQ elm first %p %s:%d", \
(elm), __FILE__, __LINE__); \
} else { \
if ((elm)->field.cqe_prev->field.cqe_next != (elm)) \
QUEUEDEBUG_ABORT("CIRCLEQ elm prev %p %s:%d", \
(elm), __FILE__, __LINE__); \
}
#define QUEUEDEBUG_CIRCLEQ_POSTREMOVE(elm, field) \
(elm)->field.cqe_next = (void *)1L; \
(elm)->field.cqe_prev = (void *)1L;
#else
#define QUEUEDEBUG_CIRCLEQ_HEAD(head, field)
#define QUEUEDEBUG_CIRCLEQ_ELM(head, elm, field)
#define QUEUEDEBUG_CIRCLEQ_POSTREMOVE(elm, field)
#endif
#define CIRCLEQ_HEAD(name, type) \
struct name { \
struct type *cqh_first; /* first element */ \
struct type *cqh_last; /* last element */ \
}
#define CIRCLEQ_HEAD_INITIALIZER(head) \
{ CIRCLEQ_END(&head), CIRCLEQ_END(&head) }
#define CIRCLEQ_ENTRY(type) \
struct { \
struct type *cqe_next; /* next element */ \
struct type *cqe_prev; /* previous element */ \
}
/*
* Circular queue functions.
*/
#define CIRCLEQ_INIT(head) do { \
(head)->cqh_first = CIRCLEQ_END(head); \
(head)->cqh_last = CIRCLEQ_END(head); \
} while (/*CONSTCOND*/0)
#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
QUEUEDEBUG_CIRCLEQ_ELM((head), (listelm), field) \
(elm)->field.cqe_next = (listelm)->field.cqe_next; \
(elm)->field.cqe_prev = (listelm); \
if ((listelm)->field.cqe_next == CIRCLEQ_ENDC(head)) \
(head)->cqh_last = (elm); \
else \
(listelm)->field.cqe_next->field.cqe_prev = (elm); \
(listelm)->field.cqe_next = (elm); \
} while (/*CONSTCOND*/0)
#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \
QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
QUEUEDEBUG_CIRCLEQ_ELM((head), (listelm), field) \
(elm)->field.cqe_next = (listelm); \
(elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
if ((listelm)->field.cqe_prev == CIRCLEQ_ENDC(head)) \
(head)->cqh_first = (elm); \
else \
(listelm)->field.cqe_prev->field.cqe_next = (elm); \
(listelm)->field.cqe_prev = (elm); \
} while (/*CONSTCOND*/0)
#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \
QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
(elm)->field.cqe_next = (head)->cqh_first; \
(elm)->field.cqe_prev = CIRCLEQ_END(head); \
if ((head)->cqh_last == CIRCLEQ_ENDC(head)) \
(head)->cqh_last = (elm); \
else \
(head)->cqh_first->field.cqe_prev = (elm); \
(head)->cqh_first = (elm); \
} while (/*CONSTCOND*/0)
#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \
QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
(elm)->field.cqe_next = CIRCLEQ_END(head); \
(elm)->field.cqe_prev = (head)->cqh_last; \
if ((head)->cqh_first == CIRCLEQ_ENDC(head)) \
(head)->cqh_first = (elm); \
else \
(head)->cqh_last->field.cqe_next = (elm); \
(head)->cqh_last = (elm); \
} while (/*CONSTCOND*/0)
#define CIRCLEQ_REMOVE(head, elm, field) do { \
QUEUEDEBUG_CIRCLEQ_HEAD((head), field) \
QUEUEDEBUG_CIRCLEQ_ELM((head), (elm), field) \
if ((elm)->field.cqe_next == CIRCLEQ_ENDC(head)) \
(head)->cqh_last = (elm)->field.cqe_prev; \
else \
(elm)->field.cqe_next->field.cqe_prev = \
(elm)->field.cqe_prev; \
if ((elm)->field.cqe_prev == CIRCLEQ_ENDC(head)) \
(head)->cqh_first = (elm)->field.cqe_next; \
else \
(elm)->field.cqe_prev->field.cqe_next = \
(elm)->field.cqe_next; \
QUEUEDEBUG_CIRCLEQ_POSTREMOVE((elm), field) \
} while (/*CONSTCOND*/0)
#define CIRCLEQ_FOREACH(var, head, field) \
for ((var) = ((head)->cqh_first); \
(var) != CIRCLEQ_ENDC(head); \
(var) = ((var)->field.cqe_next))
#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \
for ((var) = ((head)->cqh_last); \
(var) != CIRCLEQ_ENDC(head); \
(var) = ((var)->field.cqe_prev))
/*
* Circular queue access methods.
*/
#define CIRCLEQ_FIRST(head) ((head)->cqh_first)
#define CIRCLEQ_LAST(head) ((head)->cqh_last)
/* For comparisons */
#define CIRCLEQ_ENDC(head) (__launder_type(head))
/* For assignments */
#define CIRCLEQ_END(head) ((void *)(head))
#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next)
#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev)
#define CIRCLEQ_EMPTY(head) \
(CIRCLEQ_FIRST(head) == CIRCLEQ_ENDC(head))
#define CIRCLEQ_LOOP_NEXT(head, elm, field) \
(((elm)->field.cqe_next == CIRCLEQ_ENDC(head)) \
? ((head)->cqh_first) \
: (elm->field.cqe_next))
#define CIRCLEQ_LOOP_PREV(head, elm, field) \
(((elm)->field.cqe_prev == CIRCLEQ_ENDC(head)) \
? ((head)->cqh_last) \
: (elm->field.cqe_prev))
#endif /* !_KERNEL */
#endif /* !_SYS_QUEUE_H_ */

View File

@ -1,761 +0,0 @@
/* $NetBSD: tree.h,v 1.20 2013/09/14 13:20:45 joerg Exp $ */
/* $OpenBSD: tree.h,v 1.13 2011/07/09 00:19:45 pirofti Exp $ */
/*
* Copyright 2002 Niels Provos <provos@citi.umich.edu>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _SYS_TREE_H_
#define _SYS_TREE_H_
/*
* This file defines data structures for different types of trees:
* splay trees and red-black trees.
*
* A splay tree is a self-organizing data structure. Every operation
* on the tree causes a splay to happen. The splay moves the requested
* node to the root of the tree and partly rebalances it.
*
* This has the benefit that request locality causes faster lookups as
* the requested nodes move to the top of the tree. On the other hand,
* every lookup causes memory writes.
*
* The Balance Theorem bounds the total access time for m operations
* and n inserts on an initially empty tree as O((m + n)lg n). The
* amortized cost for a sequence of m accesses to a splay tree is O(lg n);
*
* A red-black tree is a binary search tree with the node color as an
* extra attribute. It fulfills a set of conditions:
* - every search path from the root to a leaf consists of the
* same number of black nodes,
* - each red node (except for the root) has a black parent,
* - each leaf node is black.
*
* Every operation on a red-black tree is bounded as O(lg n).
* The maximum height of a red-black tree is 2lg (n+1).
*/
#define SPLAY_HEAD(name, type) \
struct name { \
struct type *sph_root; /* root of the tree */ \
}
#define SPLAY_INITIALIZER(root) \
{ NULL }
#define SPLAY_INIT(root) do { \
(root)->sph_root = NULL; \
} while (/*CONSTCOND*/ 0)
#define SPLAY_ENTRY(type) \
struct { \
struct type *spe_left; /* left element */ \
struct type *spe_right; /* right element */ \
}
#define SPLAY_LEFT(elm, field) (elm)->field.spe_left
#define SPLAY_RIGHT(elm, field) (elm)->field.spe_right
#define SPLAY_ROOT(head) (head)->sph_root
#define SPLAY_EMPTY(head) (SPLAY_ROOT(head) == NULL)
/* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */
#define SPLAY_ROTATE_RIGHT(head, tmp, field) do { \
SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \
SPLAY_RIGHT(tmp, field) = (head)->sph_root; \
(head)->sph_root = tmp; \
} while (/*CONSTCOND*/ 0)
#define SPLAY_ROTATE_LEFT(head, tmp, field) do { \
SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \
SPLAY_LEFT(tmp, field) = (head)->sph_root; \
(head)->sph_root = tmp; \
} while (/*CONSTCOND*/ 0)
#define SPLAY_LINKLEFT(head, tmp, field) do { \
SPLAY_LEFT(tmp, field) = (head)->sph_root; \
tmp = (head)->sph_root; \
(head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \
} while (/*CONSTCOND*/ 0)
#define SPLAY_LINKRIGHT(head, tmp, field) do { \
SPLAY_RIGHT(tmp, field) = (head)->sph_root; \
tmp = (head)->sph_root; \
(head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \
} while (/*CONSTCOND*/ 0)
#define SPLAY_ASSEMBLE(head, node, left, right, field) do { \
SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \
SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field);\
SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \
SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \
} while (/*CONSTCOND*/ 0)
/* Generates prototypes and inline functions */
#define SPLAY_PROTOTYPE(name, type, field, cmp) \
void name##_SPLAY(struct name *, struct type *); \
void name##_SPLAY_MINMAX(struct name *, int); \
struct type *name##_SPLAY_INSERT(struct name *, struct type *); \
struct type *name##_SPLAY_REMOVE(struct name *, struct type *); \
\
/* Finds the node with the same key as elm */ \
static __inline struct type * \
name##_SPLAY_FIND(struct name *head, struct type *elm) \
{ \
if (SPLAY_EMPTY(head)) \
return(NULL); \
name##_SPLAY(head, elm); \
if ((cmp)(elm, (head)->sph_root) == 0) \
return (head->sph_root); \
return (NULL); \
} \
\
static __inline __unused struct type * \
name##_SPLAY_NEXT(struct name *head, struct type *elm) \
{ \
name##_SPLAY(head, elm); \
if (SPLAY_RIGHT(elm, field) != NULL) { \
elm = SPLAY_RIGHT(elm, field); \
while (SPLAY_LEFT(elm, field) != NULL) { \
elm = SPLAY_LEFT(elm, field); \
} \
} else \
elm = NULL; \
return (elm); \
} \
\
static __unused __inline struct type * \
name##_SPLAY_MIN_MAX(struct name *head, int val) \
{ \
name##_SPLAY_MINMAX(head, val); \
return (SPLAY_ROOT(head)); \
}
/* Main splay operation.
* Moves node close to the key of elm to top
*/
#define SPLAY_GENERATE(name, type, field, cmp) \
struct type * \
name##_SPLAY_INSERT(struct name *head, struct type *elm) \
{ \
if (SPLAY_EMPTY(head)) { \
SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \
} else { \
int __comp; \
name##_SPLAY(head, elm); \
__comp = (cmp)(elm, (head)->sph_root); \
if(__comp < 0) { \
SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field);\
SPLAY_RIGHT(elm, field) = (head)->sph_root; \
SPLAY_LEFT((head)->sph_root, field) = NULL; \
} else if (__comp > 0) { \
SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field);\
SPLAY_LEFT(elm, field) = (head)->sph_root; \
SPLAY_RIGHT((head)->sph_root, field) = NULL; \
} else \
return ((head)->sph_root); \
} \
(head)->sph_root = (elm); \
return (NULL); \
} \
\
struct type * \
name##_SPLAY_REMOVE(struct name *head, struct type *elm) \
{ \
struct type *__tmp; \
if (SPLAY_EMPTY(head)) \
return (NULL); \
name##_SPLAY(head, elm); \
if ((cmp)(elm, (head)->sph_root) == 0) { \
if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \
(head)->sph_root = SPLAY_RIGHT((head)->sph_root, field);\
} else { \
__tmp = SPLAY_RIGHT((head)->sph_root, field); \
(head)->sph_root = SPLAY_LEFT((head)->sph_root, field);\
name##_SPLAY(head, elm); \
SPLAY_RIGHT((head)->sph_root, field) = __tmp; \
} \
return (elm); \
} \
return (NULL); \
} \
\
void \
name##_SPLAY(struct name *head, struct type *elm) \
{ \
struct type __node, *__left, *__right, *__tmp; \
int __comp; \
\
SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\
__left = __right = &__node; \
\
while ((__comp = (cmp)(elm, (head)->sph_root)) != 0) { \
if (__comp < 0) { \
__tmp = SPLAY_LEFT((head)->sph_root, field); \
if (__tmp == NULL) \
break; \
if ((cmp)(elm, __tmp) < 0){ \
SPLAY_ROTATE_RIGHT(head, __tmp, field); \
if (SPLAY_LEFT((head)->sph_root, field) == NULL)\
break; \
} \
SPLAY_LINKLEFT(head, __right, field); \
} else if (__comp > 0) { \
__tmp = SPLAY_RIGHT((head)->sph_root, field); \
if (__tmp == NULL) \
break; \
if ((cmp)(elm, __tmp) > 0){ \
SPLAY_ROTATE_LEFT(head, __tmp, field); \
if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\
break; \
} \
SPLAY_LINKRIGHT(head, __left, field); \
} \
} \
SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \
} \
\
/* Splay with either the minimum or the maximum element \
* Used to find minimum or maximum element in tree. \
*/ \
void name##_SPLAY_MINMAX(struct name *head, int __comp) \
{ \
struct type __node, *__left, *__right, *__tmp; \
\
SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\
__left = __right = &__node; \
\
while (1) { \
if (__comp < 0) { \
__tmp = SPLAY_LEFT((head)->sph_root, field); \
if (__tmp == NULL) \
break; \
if (__comp < 0){ \
SPLAY_ROTATE_RIGHT(head, __tmp, field); \
if (SPLAY_LEFT((head)->sph_root, field) == NULL)\
break; \
} \
SPLAY_LINKLEFT(head, __right, field); \
} else if (__comp > 0) { \
__tmp = SPLAY_RIGHT((head)->sph_root, field); \
if (__tmp == NULL) \
break; \
if (__comp > 0) { \
SPLAY_ROTATE_LEFT(head, __tmp, field); \
if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\
break; \
} \
SPLAY_LINKRIGHT(head, __left, field); \
} \
} \
SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \
}
#define SPLAY_NEGINF -1
#define SPLAY_INF 1
#define SPLAY_INSERT(name, x, y) name##_SPLAY_INSERT(x, y)
#define SPLAY_REMOVE(name, x, y) name##_SPLAY_REMOVE(x, y)
#define SPLAY_FIND(name, x, y) name##_SPLAY_FIND(x, y)
#define SPLAY_NEXT(name, x, y) name##_SPLAY_NEXT(x, y)
#define SPLAY_MIN(name, x) (SPLAY_EMPTY(x) ? NULL \
: name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF))
#define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? NULL \
: name##_SPLAY_MIN_MAX(x, SPLAY_INF))
#define SPLAY_FOREACH(x, name, head) \
for ((x) = SPLAY_MIN(name, head); \
(x) != NULL; \
(x) = SPLAY_NEXT(name, head, x))
/* Macros that define a red-black tree */
#define RB_HEAD(name, type) \
struct name { \
struct type *rbh_root; /* root of the tree */ \
}
#define RB_INITIALIZER(root) \
{ NULL }
#define RB_INIT(root) do { \
(root)->rbh_root = NULL; \
} while (/*CONSTCOND*/ 0)
#define RB_BLACK 0
#define RB_RED 1
#define RB_ENTRY(type) \
struct { \
struct type *rbe_left; /* left element */ \
struct type *rbe_right; /* right element */ \
struct type *rbe_parent; /* parent element */ \
int rbe_color; /* node color */ \
}
#define RB_LEFT(elm, field) (elm)->field.rbe_left
#define RB_RIGHT(elm, field) (elm)->field.rbe_right
#define RB_PARENT(elm, field) (elm)->field.rbe_parent
#define RB_COLOR(elm, field) (elm)->field.rbe_color
#define RB_ROOT(head) (head)->rbh_root
#define RB_EMPTY(head) (RB_ROOT(head) == NULL)
#define RB_SET(elm, parent, field) do { \
RB_PARENT(elm, field) = parent; \
RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \
RB_COLOR(elm, field) = RB_RED; \
} while (/*CONSTCOND*/ 0)
#define RB_SET_BLACKRED(black, red, field) do { \
RB_COLOR(black, field) = RB_BLACK; \
RB_COLOR(red, field) = RB_RED; \
} while (/*CONSTCOND*/ 0)
#ifndef RB_AUGMENT
#define RB_AUGMENT(x) do {} while (/*CONSTCOND*/ 0)
#endif
#define RB_ROTATE_LEFT(head, elm, tmp, field) do { \
(tmp) = RB_RIGHT(elm, field); \
if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \
RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \
} \
RB_AUGMENT(elm); \
if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \
if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \
RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \
else \
RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \
} else \
(head)->rbh_root = (tmp); \
RB_LEFT(tmp, field) = (elm); \
RB_PARENT(elm, field) = (tmp); \
RB_AUGMENT(tmp); \
if ((RB_PARENT(tmp, field))) \
RB_AUGMENT(RB_PARENT(tmp, field)); \
} while (/*CONSTCOND*/ 0)
#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \
(tmp) = RB_LEFT(elm, field); \
if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \
RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \
} \
RB_AUGMENT(elm); \
if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \
if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \
RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \
else \
RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \
} else \
(head)->rbh_root = (tmp); \
RB_RIGHT(tmp, field) = (elm); \
RB_PARENT(elm, field) = (tmp); \
RB_AUGMENT(tmp); \
if ((RB_PARENT(tmp, field))) \
RB_AUGMENT(RB_PARENT(tmp, field)); \
} while (/*CONSTCOND*/ 0)
/* Generates prototypes and inline functions */
#define RB_PROTOTYPE(name, type, field, cmp) \
RB_PROTOTYPE_INTERNAL(name, type, field, cmp,)
#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \
RB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static)
#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \
attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \
attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *);\
attr struct type *name##_RB_REMOVE(struct name *, struct type *); \
attr struct type *name##_RB_INSERT(struct name *, struct type *); \
attr struct type *name##_RB_FIND(struct name *, struct type *); \
attr struct type *name##_RB_NFIND(struct name *, struct type *); \
attr struct type *name##_RB_NEXT(struct type *); \
attr struct type *name##_RB_PREV(struct type *); \
attr struct type *name##_RB_MINMAX(struct name *, int); \
\
/* Main rb operation.
* Moves node close to the key of elm to top
*/
#define RB_GENERATE(name, type, field, cmp) \
RB_GENERATE_INTERNAL(name, type, field, cmp,)
#define RB_GENERATE_STATIC(name, type, field, cmp) \
RB_GENERATE_INTERNAL(name, type, field, cmp, __unused static)
#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \
attr void \
name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \
{ \
struct type *parent, *gparent, *tmp; \
while ((parent = RB_PARENT(elm, field)) != NULL && \
RB_COLOR(parent, field) == RB_RED) { \
gparent = RB_PARENT(parent, field); \
if (parent == RB_LEFT(gparent, field)) { \
tmp = RB_RIGHT(gparent, field); \
if (tmp && RB_COLOR(tmp, field) == RB_RED) { \
RB_COLOR(tmp, field) = RB_BLACK; \
RB_SET_BLACKRED(parent, gparent, field);\
elm = gparent; \
continue; \
} \
if (RB_RIGHT(parent, field) == elm) { \
RB_ROTATE_LEFT(head, parent, tmp, field);\
tmp = parent; \
parent = elm; \
elm = tmp; \
} \
RB_SET_BLACKRED(parent, gparent, field); \
RB_ROTATE_RIGHT(head, gparent, tmp, field); \
} else { \
tmp = RB_LEFT(gparent, field); \
if (tmp && RB_COLOR(tmp, field) == RB_RED) { \
RB_COLOR(tmp, field) = RB_BLACK; \
RB_SET_BLACKRED(parent, gparent, field);\
elm = gparent; \
continue; \
} \
if (RB_LEFT(parent, field) == elm) { \
RB_ROTATE_RIGHT(head, parent, tmp, field);\
tmp = parent; \
parent = elm; \
elm = tmp; \
} \
RB_SET_BLACKRED(parent, gparent, field); \
RB_ROTATE_LEFT(head, gparent, tmp, field); \
} \
} \
RB_COLOR(head->rbh_root, field) = RB_BLACK; \
} \
\
attr void \
name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, struct type *elm) \
{ \
struct type *tmp; \
while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) && \
elm != RB_ROOT(head)) { \
if (RB_LEFT(parent, field) == elm) { \
tmp = RB_RIGHT(parent, field); \
if (RB_COLOR(tmp, field) == RB_RED) { \
RB_SET_BLACKRED(tmp, parent, field); \
RB_ROTATE_LEFT(head, parent, tmp, field);\
tmp = RB_RIGHT(parent, field); \
} \
if ((RB_LEFT(tmp, field) == NULL || \
RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\
(RB_RIGHT(tmp, field) == NULL || \
RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\
RB_COLOR(tmp, field) = RB_RED; \
elm = parent; \
parent = RB_PARENT(elm, field); \
} else { \
if (RB_RIGHT(tmp, field) == NULL || \
RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) {\
struct type *oleft; \
if ((oleft = RB_LEFT(tmp, field)) \
!= NULL) \
RB_COLOR(oleft, field) = RB_BLACK;\
RB_COLOR(tmp, field) = RB_RED; \
RB_ROTATE_RIGHT(head, tmp, oleft, field);\
tmp = RB_RIGHT(parent, field); \
} \
RB_COLOR(tmp, field) = RB_COLOR(parent, field);\
RB_COLOR(parent, field) = RB_BLACK; \
if (RB_RIGHT(tmp, field)) \
RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK;\
RB_ROTATE_LEFT(head, parent, tmp, field);\
elm = RB_ROOT(head); \
break; \
} \
} else { \
tmp = RB_LEFT(parent, field); \
if (RB_COLOR(tmp, field) == RB_RED) { \
RB_SET_BLACKRED(tmp, parent, field); \
RB_ROTATE_RIGHT(head, parent, tmp, field);\
tmp = RB_LEFT(parent, field); \
} \
if ((RB_LEFT(tmp, field) == NULL || \
RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) &&\
(RB_RIGHT(tmp, field) == NULL || \
RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) {\
RB_COLOR(tmp, field) = RB_RED; \
elm = parent; \
parent = RB_PARENT(elm, field); \
} else { \
if (RB_LEFT(tmp, field) == NULL || \
RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) {\
struct type *oright; \
if ((oright = RB_RIGHT(tmp, field)) \
!= NULL) \
RB_COLOR(oright, field) = RB_BLACK;\
RB_COLOR(tmp, field) = RB_RED; \
RB_ROTATE_LEFT(head, tmp, oright, field);\
tmp = RB_LEFT(parent, field); \
} \
RB_COLOR(tmp, field) = RB_COLOR(parent, field);\
RB_COLOR(parent, field) = RB_BLACK; \
if (RB_LEFT(tmp, field)) \
RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK;\
RB_ROTATE_RIGHT(head, parent, tmp, field);\
elm = RB_ROOT(head); \
break; \
} \
} \
} \
if (elm) \
RB_COLOR(elm, field) = RB_BLACK; \
} \
\
attr struct type * \
name##_RB_REMOVE(struct name *head, struct type *elm) \
{ \
struct type *child, *parent, *old = elm; \
int color; \
if (RB_LEFT(elm, field) == NULL) \
child = RB_RIGHT(elm, field); \
else if (RB_RIGHT(elm, field) == NULL) \
child = RB_LEFT(elm, field); \
else { \
struct type *left; \
elm = RB_RIGHT(elm, field); \
while ((left = RB_LEFT(elm, field)) != NULL) \
elm = left; \
child = RB_RIGHT(elm, field); \
parent = RB_PARENT(elm, field); \
color = RB_COLOR(elm, field); \
if (child) \
RB_PARENT(child, field) = parent; \
if (parent) { \
if (RB_LEFT(parent, field) == elm) \
RB_LEFT(parent, field) = child; \
else \
RB_RIGHT(parent, field) = child; \
RB_AUGMENT(parent); \
} else \
RB_ROOT(head) = child; \
if (RB_PARENT(elm, field) == old) \
parent = elm; \
(elm)->field = (old)->field; \
if (RB_PARENT(old, field)) { \
if (RB_LEFT(RB_PARENT(old, field), field) == old)\
RB_LEFT(RB_PARENT(old, field), field) = elm;\
else \
RB_RIGHT(RB_PARENT(old, field), field) = elm;\
RB_AUGMENT(RB_PARENT(old, field)); \
} else \
RB_ROOT(head) = elm; \
RB_PARENT(RB_LEFT(old, field), field) = elm; \
if (RB_RIGHT(old, field)) \
RB_PARENT(RB_RIGHT(old, field), field) = elm; \
if (parent) { \
left = parent; \
do { \
RB_AUGMENT(left); \
} while ((left = RB_PARENT(left, field)) != NULL); \
} \
goto color; \
} \
parent = RB_PARENT(elm, field); \
color = RB_COLOR(elm, field); \
if (child) \
RB_PARENT(child, field) = parent; \
if (parent) { \
if (RB_LEFT(parent, field) == elm) \
RB_LEFT(parent, field) = child; \
else \
RB_RIGHT(parent, field) = child; \
RB_AUGMENT(parent); \
} else \
RB_ROOT(head) = child; \
color: \
if (color == RB_BLACK) \
name##_RB_REMOVE_COLOR(head, parent, child); \
return (old); \
} \
\
/* Inserts a node into the RB tree */ \
attr struct type * \
name##_RB_INSERT(struct name *head, struct type *elm) \
{ \
struct type *tmp; \
struct type *parent = NULL; \
int comp = 0; \
tmp = RB_ROOT(head); \
while (tmp) { \
parent = tmp; \
comp = (cmp)(elm, parent); \
if (comp < 0) \
tmp = RB_LEFT(tmp, field); \
else if (comp > 0) \
tmp = RB_RIGHT(tmp, field); \
else \
return (tmp); \
} \
RB_SET(elm, parent, field); \
if (parent != NULL) { \
if (comp < 0) \
RB_LEFT(parent, field) = elm; \
else \
RB_RIGHT(parent, field) = elm; \
RB_AUGMENT(parent); \
} else \
RB_ROOT(head) = elm; \
name##_RB_INSERT_COLOR(head, elm); \
return (NULL); \
} \
\
/* Finds the node with the same key as elm */ \
attr struct type * \
name##_RB_FIND(struct name *head, struct type *elm) \
{ \
struct type *tmp = RB_ROOT(head); \
int comp; \
while (tmp) { \
comp = cmp(elm, tmp); \
if (comp < 0) \
tmp = RB_LEFT(tmp, field); \
else if (comp > 0) \
tmp = RB_RIGHT(tmp, field); \
else \
return (tmp); \
} \
return (NULL); \
} \
\
/* Finds the first node greater than or equal to the search key */ \
attr struct type * \
name##_RB_NFIND(struct name *head, struct type *elm) \
{ \
struct type *tmp = RB_ROOT(head); \
struct type *res = NULL; \
int comp; \
while (tmp) { \
comp = cmp(elm, tmp); \
if (comp < 0) { \
res = tmp; \
tmp = RB_LEFT(tmp, field); \
} \
else if (comp > 0) \
tmp = RB_RIGHT(tmp, field); \
else \
return (tmp); \
} \
return (res); \
} \
\
/* ARGSUSED */ \
attr struct type * \
name##_RB_NEXT(struct type *elm) \
{ \
if (RB_RIGHT(elm, field)) { \
elm = RB_RIGHT(elm, field); \
while (RB_LEFT(elm, field)) \
elm = RB_LEFT(elm, field); \
} else { \
if (RB_PARENT(elm, field) && \
(elm == RB_LEFT(RB_PARENT(elm, field), field))) \
elm = RB_PARENT(elm, field); \
else { \
while (RB_PARENT(elm, field) && \
(elm == RB_RIGHT(RB_PARENT(elm, field), field)))\
elm = RB_PARENT(elm, field); \
elm = RB_PARENT(elm, field); \
} \
} \
return (elm); \
} \
\
/* ARGSUSED */ \
attr struct type * \
name##_RB_PREV(struct type *elm) \
{ \
if (RB_LEFT(elm, field)) { \
elm = RB_LEFT(elm, field); \
while (RB_RIGHT(elm, field)) \
elm = RB_RIGHT(elm, field); \
} else { \
if (RB_PARENT(elm, field) && \
(elm == RB_RIGHT(RB_PARENT(elm, field), field))) \
elm = RB_PARENT(elm, field); \
else { \
while (RB_PARENT(elm, field) && \
(elm == RB_LEFT(RB_PARENT(elm, field), field)))\
elm = RB_PARENT(elm, field); \
elm = RB_PARENT(elm, field); \
} \
} \
return (elm); \
} \
\
attr struct type * \
name##_RB_MINMAX(struct name *head, int val) \
{ \
struct type *tmp = RB_ROOT(head); \
struct type *parent = NULL; \
while (tmp) { \
parent = tmp; \
if (val < 0) \
tmp = RB_LEFT(tmp, field); \
else \
tmp = RB_RIGHT(tmp, field); \
} \
return (parent); \
}
#define RB_NEGINF -1
#define RB_INF 1
#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y)
#define RB_REMOVE(name, x, y) name##_RB_REMOVE(x, y)
#define RB_FIND(name, x, y) name##_RB_FIND(x, y)
#define RB_NFIND(name, x, y) name##_RB_NFIND(x, y)
#define RB_NEXT(name, x, y) name##_RB_NEXT(y)
#define RB_PREV(name, x, y) name##_RB_PREV(y)
#define RB_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF)
#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF)
#define RB_FOREACH(x, name, head) \
for ((x) = RB_MIN(name, head); \
(x) != NULL; \
(x) = name##_RB_NEXT(x))
#define RB_FOREACH_FROM(x, name, y) \
for ((x) = (y); \
((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \
(x) = (y))
#define RB_FOREACH_SAFE(x, name, head, y) \
for ((x) = RB_MIN(name, head); \
((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \
(x) = (y))
#define RB_FOREACH_REVERSE(x, name, head) \
for ((x) = RB_MAX(name, head); \
(x) != NULL; \
(x) = name##_RB_PREV(x))
#define RB_FOREACH_REVERSE_FROM(x, name, y) \
for ((x) = (y); \
((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \
(x) = (y))
#define RB_FOREACH_REVERSE_SAFE(x, name, head, y) \
for ((x) = RB_MAX(name, head); \
((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \
(x) = (y))
#endif /* _SYS_TREE_H_ */

View File

@ -1,3 +0,0 @@
files/cdefs.h
files/queue.h
files/tree.h

View File

@ -1 +0,0 @@
0.7.1 1

View File

@ -1,101 +0,0 @@
#!/bin/sh -e
pkg_dir=$1
set -- \
blink_symbol_level=0 \
clang_use_chrome_plugins=false \
closure_compile=false \
custom_toolchain=\"//build/toolchain/linux/unbundle:default\" \
enable_ipc_logging=false \
enable_iterator_debugging=false \
enable_nacl=false \
enable_nacl_nonsfi=false \
enable_native_notifications=false \
enable_service_discovery=false \
enable_swiftshader=false \
fatal_linker_warnings=false \
fieldtrial_testing_like_official_build=true \
host_toolchain=\"//build/toolchain/linux/unbundle:default\" \
icu_use_data_file=true \
is_clang=true \
is_component_build=false \
is_debug=false \
linux_use_bundled_binutils=false \
proprietary_codecs=false \
safe_browsing_mode=0 \
symbol_level=0 \
treat_warnings_as_errors=false \
use_allocator=\"none\" \
use_allocator_shim=false \
use_atk=false \
use_cups=false \
use_custom_libcxx=false \
use_dbus=false \
use_gnome_keyring=false \
use_official_google_api_keys=false \
use_pulseaudio=false \
use_sysroot=false \
use_system_harfbuzz=true \
rtc_use_pipewire = false
for patch in *.patch; do
patch -p1 < "$patch"
done
# Use 'clang' instead of 'gcc'.
# Clang is the officially supported compiler and builds chromium faster.
export CC=clang CXX=clang++ AR=llvm-ar NM=llvm-nm LD=clang++
export PATH=$PWD/fix-python-bin:$PATH
# Make a temporary script to cause 'python' to resolve to python 2 and not 3.
mkdir -p fix-python-bin
cat << EOF > ./fix-python-bin/python
#!/bin/sh
exec python2 "\$@"
EOF
chmod +x ./fix-python-bin/python
# Use system nodejs.
mkdir -p third_party/node/linux/node-linux-x64/bin
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
# Use system libraries.
for dep in fontconfig harfbuzz-ng libdrm libevent libjpeg \
libpng libwebp libxml libxslt opus re2 snappy yasm; do
find . -type f -path "*third_party/$dep/*" \
\! -path "*third_party/$dep/chromium/*" \
\! -path "*third_party/$dep/google/*" \
\! -path './base/third_party/icu/*' \
\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
\! -path './third_party/yasm/run_yasm.py' \
\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
-delete
done
# Switch to system provided dependencies.
python2 build/linux/unbundle/replace_gn_files.py \
--system-libraries fontconfig harfbuzz-ng libdrm libevent \
libjpeg libpng libwebp libxml libxslt opus re2 \
snappy yasm
python2 tools/gn/bootstrap/bootstrap.py -s -v --gn-gen-args "$*"
# All shells seem to support this despite the lack of a POSIX spec for it.
# shellcheck disable=2039
ulimit -n 4096 ||:
out/Release/gn gen out/Release \
--script-executable=/usr/bin/python2
ninja -C out/Release chrome chromedriver
cd out/Release
for bin in chrome chromedriver *.bin; do
install -Dm755 "$bin" "$pkg_dir/usr/lib/chromium/$bin"
done
mkdir -p "$pkg_dir/usr/bin"
ln -s /usr/lib/chromium/chrome "$pkg_dir/usr/bin/chrome"
ln -s /usr/lib/chromium/chromedriver "$pkg_dir/usr/bin/chromedriver"

View File

@ -1,74 +0,0 @@
510e6ca7ccc218b401b375c13656f6aecab196b03142026dc3602b9d1804a5ac chromium-75.0.3770.142.tar.xz
8f53e2516ae830db656cbeb13bab3ace3df6c15494ac3df94a4b5c0f78dadf31 0000-build.patch
6cb02c710eee5c2a0b67b8ff48ee1328f9db3d1f430cb4c213887f1860720f32 0001-fix-building-without-safebrowsing.patch
25d80d8cdb4143e0d96fe2b748340bcdf21055b1c7cbd5529fc630eea48875b0 0001-simd.patch
62293ec9232bf68362c33135739623dc432c04e54842425b7b1a5d5646975e95 0002-uninitializedcheck.patch
bc2a44c2f3574f5997e54e4088e1644bcffaa6f541cd729a32bf94ea05dd10bb 0003-disable-autofill-download-manager.patch
4a27dea88e61e1ba607cc9868ecba60882759ea608299c42ce59b821f0e17d8a 0004-disable-google-url-tracker.patch
1dc7e3f22cd81ca85ea9f3240cc6adb90f111477c9cc05efcfe4943a2dcf9f6e 0005-disable-default-extensions.patch
a15de5b30ad7d77358116faf1e40a82dec2f43da25f51a44e8e265b161ab8da0 0006-modify-default-prefs.patch
22cc3b5e1032a170c958213f546a1dc48fd9433823767b0159d40f930a0b3029 0007-disable-web-resource-service.patch
a7728ea22805f69ce9a16a35ae067fe570825e8154bdb66b18bb072289c5589e 0008-restore-classic-ntp.patch
e7d182028feb9d6790e7a849671c4c79a833909fdb2c48f3b11272ea53c127cc 0009-disable-google-ipv6-probes.patch
3f40d4f1a0f7a03945c80e6ffd417ca93e4f7f22ee09faaa71a058e6e246786f 0010-disable-gcm-status-check.patch
52dc08f76953323413eefded936b7fa3e3bc69ba75e2a74b80455d3da5e708a8 0014-disable-translation-lang-fetch.patch
b5e0f354ebf44075899d3161f808e2e070194377c7f801935e49200ca4bae9c0 0015-disable-update-pings.patch
ed7c8ebaa0ee44d4775c0bfb097a22340e30d2d78546f223fbc8e8da4e457686 0019-disable-battery-status-service.patch
80e6512b928082a0b59465e1dcbab5e6284b545933f42d262194b1a86811a243 0021-disable-rlz.patch
45e970e285ceb599c15aa7184f6f86061abd4de6c58a985678bfb6cc68464c77 android.patch
ece2d462169429541a7fa1cc7f3f72698e883292500dde6f1c64ce165dd6abd9 chromium-75-fix-gn-gen.patch
b386cb54d0229c640cc44012a9dbb0b822c979810a62be92dc44e1a3c8a457d3 chromium-75-gcc-angle-fix.patch
1830b37534e2adf7fd22569c1bbe10eb29bcf85bd9437dc5039c91e7097dc627 chromium-75-llvm8.patch
3376f7868124a45a8ee325b1fbd607aabdfd86adba6b77d49b1399dcddc70605 chromium-75-lss.patch
a53cf274de7b13ab06fb7867b45b4bfdb1229c5686f3874b2854e3172824ce19 chromium-75-noexcept.patch
788ad2094f5c6991c3c4514000d153a1ecb3a23767594092748b6e85a367ddbd chromium-75-pure-virtual.patch
762f707ebd9397e7be2ba47bc106911dc2535ff82f37dbbeeded683b66bffa32 chromium-75-unique_ptr.patch
365e1a76dc3e508846a221d4490d134ed7fa3d36a3a28ce0b03f5d66c1503778 chromium-compiler-r9.patch
daa26bab3a3a9f8b8539dffefa7a07f6d7ac07476d7ae762e3f0169985e429ff chromium-fix-char_traits.patch
75c31df557238c5bdc2b91401b13b381b68c812594d89f8f053e0e489d4991c2 chromium-optional-atk-r1.patch
6592a17ac557d4cdd5dbb9cd2445c95c1668f17d8c95a7f5ebf42ebbde35430e chromium-optional-dbus-r5.patch
f0e59aee57bffc87ab8d51f1f893ec8ed561769328352a9124f717e886b8054f chromium-url-formatter.patch
8c6ecc26aab9f4acc911350d9bb1e40f32cad144b6a08c9d7b188e9598d0f2de chromium-widevine-r4.patch
85f819beee54b6a87d63d59dd0094885dccf0b7cbed7efe6b90b9f6b5cbb78e9 device-notifications.patch
2907556a180098f02e945ee4f8dce1f0ff6f84362328700a4a23fb195b324266 disable-crash-reporter.patch
13ee937555d20af557a18029a7cfde0f387c542f2bfe75bdb9b9b85187cec9ee disable-domain-reliability.patch
a1422d23da46e2dc39974dbe25787e5040e0dd1104806a796d5776af80cf0bb4 disable-download-quarantine.patch
cba503f5d3d776c951c5ee20eaa0a17d48fb5981823dd8118f9d48e61b42d411 disable-fetching-field-trials.patch
3ab3ef00886f89da2802b16ad8cebde881b26dbcbb0f1b1b6563dcede0a627d3 disable-fonts-googleapis-references.patch
39ea6f6e39f91249f5a89324f083863b934171eeb67667e26a2863e91af2b578 disable-gaia.patch
64d6c33f565c6fc1702fcc97af56ecbc3564fa8b5591d73f554ec48d97fc73fd disable-gcm.patch
ef924778ebfc2462b8b12f49e32dff00adc2883af344c3895e5026b11d36c4f1 disable-google-host-detection.patch
ce6a00f2c31dfc6b06154ca9db9ccda5b42bc9965f861d9978bc202ee2549c01 disable-mei-preload.patch
599ba1f2bb26b6afd81fc207181dfd95368ad10992b40a6752999fe12f7ea837 disable-network-time-tracker.patch
a4d5cc75a9979d13a368d22c8281c80a2c025629b6145ee0aacafef56da4c5d9 disable-webrtc-log-uploader.patch
9058162657672162964d2f35431c208d1cfae12325858ff636044d667e9dcaf5 disable_swiftshader.patch
d0059ab268e3d2030f9e2d2b36b16f3e68bdb3353a98b07f974d3c353fa7238f fix-building-without-mdns-and-service-discovery.patch
5b698ada72c4afe56271d6397c49367ec8614c664fd294cc7d43705eb4306ac6 fix-building-without-safebrowsing.patch
760a9fd65492138fa9ccf57aa5579f8f66d0e593582ac930dcc0cbe54076b166 fuzzers.patch
9248bae6df77f701afc9ecd36a6e2901649a4a5edf106475e4f26f623cd31892 google-api-warning.patch
6d921355eaef7101a0713e0e7a88b7a7c4e8aa28391325399fdd0a59f2358d13 musl-cdefs-r2.patch
fec5590225bf3d0238ee45f8f67fcb032946abe351383653c3026ce4e706d48f musl-dlopen.patch
f1375a3acd205ee46dd5d7c729e09d19982833f71e5eb1fb9c3ec5d3de5ffe90 musl-dns-r2.patch
f1f414b16acc1986eca620c264fffc1a73e6468e4d8ae076b8ab7c2266c66c58 musl-execinfo-r8.patch
49537286728fe29d2e9d3e9040480576aa13be862fb68596fb9629462aab30c1 musl-fpstate-r1.patch
f2f8d67f26dc69e050950b522410cab6ab8ee4170ad810f15ed75ce30fe0ae8d musl-headers-r1.patch
a7bffd948d4f55c7d57985f85b6fbbbbea3a6638be223b6b7863008dd1b72006 musl-libcpp.patch
50505f127d17e25c298848b8a02664fd03083ebbd33e3318f818cd4657a51fee musl-mallinfo-r7.patch
2fbc6fba166788e5f6d8a4846fcffc00f703f47b37f16a5e832132e01cc8c565 musl-pthread-r5.patch
375df387335a82bea9362f819a93575877de94eae96528347726e6b5d9c4a4cd musl-ptrace.patch
c8dac5abf0cd34f1eee71c6c1bce619ec213d9d2f9511654ccc947a2ad0e6850 musl-realpath.patch
ebde3be74f0db9486cf99cd7faafb29f1472f432046b8801c494cff5713c8d94 musl-sandbox-r3.patch
8b183ce939a5ec37dee6af3e473ce71bd86c9cf1e647a667b4a3f760b56404de musl-secure_getenv-r1.patch
3ff4f1eb041048efe9ff8ce5d91fcb092d2fc06e373459ca2d9d590ee176dfb9 musl-siginfo.patch
675c056977f396ec135c50b25601cf10b545c357e5a21baf7e0e4fe71e3ecdf1 musl-socket.patch
5813a3031e97178a3e36fe48b24f3ddec934f43505819b66dcea5c0dd340644c musl-stacksize-r3.patch
4e96a1204c6cc0d9ab38a7232121709b48ed1704391c30ed3ba7b22bc0881b92 musl-stacktrace-r2.patch
1f10590d5322968667874c4aa5a4314e9dc5f659091de67f032ebe9654cd5482 musl-syscall.patch
a4b0374c536128483cdaeb706f2b1a7144168ae6e44d9ca2df7445d1be780afc musl-ucontext-r1.patch
72d806af57a729d36b1eb482419245fba4c58d035fc20e58dbbcf88c35d50e97 musl-v8-monotonic-pthread-cont_timedwait.patch
e191334207865e43b831492913d58cae4c89449d32b362b9f9aa7e1d196837a9 musl-wordsize-r1.patch
b07a4903f150da643320012880622b6d52c0ccf1e85d3425240188277ee546ef perfetto.patch
77ece26615320e5ffbda4ba2dcfc3a184cba923a1be19fc031fa5edb56e59632 safe_browsing-disable-incident-reporting.patch
5f8d6876420bd9a5c208d432a82a4faa78f43d24fe5b425a8f6a0a475bc4e8dd safe_browsing-disable-reporting-of-safebrowsing-over.patch
3f55f3ed81f4d967b8eb45655ddbdd3a59da3d69dbf1999a9335b199c84d1c9d unrar.patch
815a2a41003747bb6b44df192af4650e9ea0fe2dc87bb689a9bbb6e7a2c3eddd welcome-page.patch

View File

@ -1,40 +0,0 @@
alsa-lib make
bison make
bsd-compat-headers make
clang make
lld make
ffmpeg make
fontconfig make
freetype make
git make
glib make
gperf make
gtk+3 make
gzip make
json-c make
jsoncpp make
libXScrnSaver make
libXcomposite make
libXcursor make
libXdamage make
libXi make
libXrandr make
libXtst make
libcap make
libevent make
libjpeg-turbo make
libwebp make
libxml2 make
libxslt make
minizip make
ninja make
nodejs make
nss make
pango make
pciutils make
perl make
python2 make
re2 make
snappy make
yasm make
zlib make

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
RnJvbSAxYTAzZTdhZWM5NWQ4OWM2NTlmZDkxZjE5NWI5OTg5M2I2NDU4Y2Q3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLmNhdmFsY2FudGlAYXJtLmNvbT4KRGF0ZTogV2VkLCAyNyBTZXAgMjAxNyAxMzo1OTowNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFpsaWIgcGF0Y2g6IHByZXZlbnQgdW5pbml0aWFsaXplZCB1c2Ugb2Ygc3RhdGUtPmNoZWNrCgpObyBuZWVkIHRvIGNhbGwgdGhlIEFkbGVyMzIgY2hlY2tzdW0gZnVuY3Rpb24sIGp1c3Qgc2V0CnRoZSBzdHJ1Y3QgZmllbGQgdG8gdGhlIGV4cGVjdGVkIHZhbHVlLgoKVXBzdHJlYW0gYnVnOiBtYWRsZXIvemxpYiMyNDUKLS0tCiB0aGlyZF9wYXJ0eS96bGliL2luZmxhdGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCB0aGlyZF9wYXJ0eS96bGliL3BhdGNoZXMvMDAwMi11bmluaXRpYWxpemVkY2hlY2sucGF0Y2gKCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS96bGliL2luZmxhdGUuYyBiL3RoaXJkX3BhcnR5L3psaWIvaW5mbGF0ZS5jCmluZGV4IGJlYzk0OTcuLjVjNDBjZjEgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L3psaWIvaW5mbGF0ZS5jCisrKyBiL3RoaXJkX3BhcnR5L3psaWIvaW5mbGF0ZS5jCkBAIC0yMjgsNyArMjI4LDcgQEAgaW50IHN0cmVhbV9zaXplOwogICAgIHN0YXRlLT5zdHJtID0gc3RybTsKICAgICBzdGF0ZS0+d2luZG93ID0gWl9OVUxMOwogICAgIHN0YXRlLT5tb2RlID0gSEVBRDsgICAgIC8qIHRvIHBhc3Mgc3RhdGUgdGVzdCBpbiBpbmZsYXRlUmVzZXQyKCkgKi8KLSAgICBzdGF0ZS0+Y2hlY2sgPSBhZGxlcjMyKDBMLCBaX05VTEwsIDApOworICAgIHN0YXRlLT5jaGVjayA9IDFMOyAgICAgIC8qIDFMIGlzIHRoZSByZXN1bHQgb2YgYWRsZXIzMigpIHplcm8gbGVuZ3RoIGRhdGEgKi8KICAgICByZXQgPSBpbmZsYXRlUmVzZXQyKHN0cm0sIHdpbmRvd0JpdHMpOwogICAgIGlmIChyZXQgIT0gWl9PSykgewogICAgICAgICBaRlJFRShzdHJtLCBzdGF0ZSk7Cg==

View File

@ -1,73 +0,0 @@
--- a/components/autofill/core/browser/autofill_download_manager.cc
+++ b/components/autofill/core/browser/autofill_download_manager.cc
@@ -703,70 +703,6 @@ AutofillDownloadManager::GetRequestURLAn
}
bool AutofillDownloadManager::StartRequest(FormRequestData request_data) {
- scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory =
- driver_->GetURLLoaderFactory();
- DCHECK(url_loader_factory);
-
- // Get the URL and method to use for this request.
- std::string method;
- GURL request_url;
- std::tie(request_url, method) =
- UseApi() ? GetRequestURLAndMethodForApi(request_data)
- : GetRequestURLAndMethod(request_data);
-
- auto resource_request = std::make_unique<network::ResourceRequest>();
- resource_request->url = request_url;
- resource_request->load_flags =
- net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES;
- resource_request->method = method;
-
- // Add Chrome experiment state to the request headers.
- variations::AppendVariationsHeaderUnknownSignedIn(
- request_url,
- driver_->IsIncognito() ? variations::InIncognito::kYes
- : variations::InIncognito::kNo,
- resource_request.get());
-
- // Set headers specific to the API if using it.
- if (UseApi())
- // Encode response serialized proto in base64 for safety.
- resource_request->headers.SetHeader(kGoogEncodeResponseIfExecutable,
- "base64");
-
- // Put API key in request's header if a key exists, and the endpoint is
- // trusted by Google.
- if (!api_key_.empty() && request_url.SchemeIs(url::kHttpsScheme) &&
- google_util::IsGoogleAssociatedDomainUrl(request_url)) {
- resource_request->headers.SetHeader(kGoogApiKey, api_key_);
- }
-
- auto simple_loader = network::SimpleURLLoader::Create(
- std::move(resource_request),
- GetNetworkTrafficAnnotation(request_data.request_type));
-
- // This allows reading the error message within the API response when status
- // is not 200 (e.g., 400). Otherwise, URL loader will not give any content in
- // the response when there is a failure, which makes debugging hard.
- simple_loader->SetAllowHttpErrorResults(true);
-
- if (method == "POST") {
- const std::string content_type =
- UseApi() ? "application/x-protobuf" : "text/proto";
- // Attach payload data and add data format header.
- simple_loader->AttachStringForUpload(request_data.payload, content_type);
- }
-
- // Transfer ownership of the loader into url_loaders_. Temporarily hang
- // onto the raw pointer to use it as a key and to kick off the request;
- // transferring ownership (std::move) invalidates the |simple_loader|
- // variable.
- auto* raw_simple_loader = simple_loader.get();
- url_loaders_.push_back(std::move(simple_loader));
- raw_simple_loader->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
- url_loader_factory.get(),
- base::BindOnce(&AutofillDownloadManager::OnSimpleLoaderComplete,
- base::Unretained(this), std::move(--url_loaders_.end()),
- std::move(request_data), base::TimeTicks::Now()));
return true;
}

View File

@ -1,98 +0,0 @@
--- a/components/google/core/browser/google_url_tracker.cc
+++ b/components/google/core/browser/google_url_tracker.cc
@@ -25,9 +25,9 @@
#include "services/network/public/cpp/simple_url_loader.h"
const char GoogleURLTracker::kDefaultGoogleHomepage[] =
- "https://www.google.com/";
+ "";
const char GoogleURLTracker::kSearchDomainCheckURL[] =
- "https://www.google.com/searchdomaincheck?format=domain&type=chrome";
+ "";
const base::Feature GoogleURLTracker::kNoSearchDomainCheck{
"NoSearchDomainCheck", base::FEATURE_DISABLED_BY_DEFAULT};
@@ -148,83 +148,4 @@ void GoogleURLTracker::FinishSleep() {
}
void GoogleURLTracker::StartLoadIfDesirable() {
- // Bail if a load isn't appropriate right now. This function will be called
- // again each time one of the preconditions changes, so we'll load
- // immediately once all of them are met.
- //
- // See comments in header on the class, on RequestServerCheck(), and on the
- // various members here for more detail on exactly what the conditions are.
- if (in_startup_sleep_ || already_loaded_ || !need_to_load_)
- return;
-
- // Some switches should disable the Google URL tracker entirely. If we can't
- // do background networking, we can't do the necessary load, and if the user
- // specified a Google base URL manually, we shouldn't bother to look up any
- // alternatives or offer to switch to them.
- if (!client_->IsBackgroundNetworkingEnabled() ||
- base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kGoogleBaseURL))
- return;
-
- already_loaded_ = true;
- net::NetworkTrafficAnnotationTag traffic_annotation =
- net::DefineNetworkTrafficAnnotation("google_url_tracker", R"(
- semantics {
- sender: "Google URL Tracker"
- description:
- "When the user's default search engine is Google, or Google "
- "services are used to resolve navigation errors, the browser needs "
- "to know the ideal origin for requests to Google services. In "
- "these cases the browser makes a request to a global Google "
- "service that returns this origin, potentially taking into account "
- "the user's cookies or IP address."
- trigger: "Browser startup or network change."
- data: "None."
- destination: GOOGLE_OWNED_SERVICE
- }
- policy {
- cookies_allowed: YES
- cookies_store: "user"
- setting:
- "To disable this check, users can change the default search engine "
- "to something other than Google, and disable 'Use a web service to "
- "help resolve navigation errors' in Chromium's settings under "
- "Privacy.\nAlternately, running Chromium with "
- "--google-base-url=\"https://www.google.com/\" will disable this, "
- "and force Chromium to use the specified URL for Google service "
- "requests.\nFinally, running Chromium with "
- "--disable-background-networking will disable this, as well as "
- "various other features that make network requests automatically."
- policy_exception_justification:
- "Setting DefaultSearchProviderEnabled Chrome settings policy to "
- "false suffices as a way of setting the default search engine to "
- "not be Google. But there is no policy that controls navigation "
- "error resolution."
- })");
- auto resource_request = std::make_unique<network::ResourceRequest>();
- resource_request->url = GURL(kSearchDomainCheckURL);
- // We don't want this load to set new entries in the cache or cookies, lest
- // we alarm the user.
- resource_request->load_flags =
- (net::LOAD_DISABLE_CACHE | net::LOAD_DO_NOT_SAVE_COOKIES);
- simple_loader_ = network::SimpleURLLoader::Create(std::move(resource_request),
- traffic_annotation);
- // Configure to retry at most kMaxRetries times for 5xx errors and network
- // changes.
- // A network change can propagate through Chrome in various stages, so it's
- // possible for this code to be reached via OnNetworkChanged(), and then have
- // the load we kick off be canceled due to e.g. the DNS server changing at a
- // later time. In general it's not possible to ensure that by the time we
- // reach here any requests we start won't be canceled in this fashion, so
- // retrying is the best we can do.
- static const int kMaxRetries = 5;
- simple_loader_->SetRetryOptions(
- kMaxRetries,
- network::SimpleURLLoader::RetryMode::RETRY_ON_5XX |
- network::SimpleURLLoader::RetryMode::RETRY_ON_NETWORK_CHANGE);
- simple_loader_->DownloadToString(
- client_->GetURLLoaderFactory(),
- base::BindOnce(&GoogleURLTracker::OnURLLoaderComplete,
- base::Unretained(this)),
- 2 * 1024 /* max_body_size */);
}

View File

@ -1,121 +0,0 @@
--- a/chrome/browser/extensions/component_loader.cc
+++ b/chrome/browser/extensions/component_loader.cc
@@ -345,11 +345,6 @@ void ComponentLoader::AddWebStoreApp() {
if (!IsNormalSession())
return;
#endif
-
- AddWithNameAndDescription(
- IDR_WEBSTORE_MANIFEST, base::FilePath(FILE_PATH_LITERAL("web_store")),
- l10n_util::GetStringUTF8(IDS_WEBSTORE_NAME_STORE),
- l10n_util::GetStringUTF8(IDS_WEBSTORE_APP_DESCRIPTION));
}
#if defined(OS_CHROMEOS)
@@ -447,11 +442,6 @@ void ComponentLoader::AddDefaultComponen
AddKeyboardApp();
#else // defined(OS_CHROMEOS)
DCHECK(!skip_session_components);
-#if BUILDFLAG(ENABLE_PRINTING)
- // Cloud Print component app. Not required on Chrome OS.
- Add(IDR_CLOUDPRINT_MANIFEST,
- base::FilePath(FILE_PATH_LITERAL("cloud_print")));
-#endif // BUILDFLAG(ENABLE_PRINTING)
#endif // defined(OS_CHROMEOS)
if (!skip_session_components) {
@@ -536,12 +526,6 @@ void ComponentLoader::AddDefaultComponen
#if BUILDFLAG(ENABLE_HANGOUT_SERVICES_EXTENSION)
AddHangoutServicesExtension();
#endif // BUILDFLAG(ENABLE_HANGOUT_SERVICES_EXTENSION)
- bool install_feedback = enable_background_extensions_during_testing;
-#if defined(GOOGLE_CHROME_BUILD)
- install_feedback = true;
-#endif // defined(GOOGLE_CHROME_BUILD)
- if (install_feedback)
- Add(IDR_FEEDBACK_MANIFEST, base::FilePath(FILE_PATH_LITERAL("feedback")));
}
#if defined(OS_CHROMEOS)
--- a/chrome/browser/extensions/external_component_loader.cc
+++ b/chrome/browser/extensions/external_component_loader.cc
@@ -29,9 +29,6 @@ ExternalComponentLoader::~ExternalCompon
void ExternalComponentLoader::StartLoading() {
auto prefs = std::make_unique<base::DictionaryValue>();
-#if defined(GOOGLE_CHROME_BUILD)
- AddExternalExtension(extension_misc::kInAppPaymentsSupportAppId, prefs.get());
-#endif // defined(GOOGLE_CHROME_BUILD)
#if defined(OS_CHROMEOS)
{
--- a/chrome/browser/extensions/webstore_installer.cc
+++ b/chrome/browser/extensions/webstore_installer.cc
@@ -568,28 +568,6 @@ void WebstoreInstaller::DownloadNextPend
void WebstoreInstaller::DownloadCrx(
const std::string& extension_id,
InstallSource source) {
- download_url_ = GetWebstoreInstallURL(extension_id, source);
- MaybeAppendAuthUserParameter(approval_->authuser, &download_url_);
-
- base::FilePath user_data_dir;
- base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir);
- base::FilePath download_path = user_data_dir.Append(kWebstoreDownloadFolder);
-
- base::FilePath download_directory(g_download_directory_for_tests ?
- *g_download_directory_for_tests : download_path);
-
-#if defined(OS_CHROMEOS)
- // Do not use drive for extension downloads.
- if (drive::util::IsUnderDriveMountPoint(download_directory)) {
- download_directory = DownloadPrefs::FromBrowserContext(
- profile_)->GetDefaultDownloadDirectoryForProfile();
- }
-#endif
-
- base::PostTaskAndReplyWithResult(
- GetExtensionFileTaskRunner().get(), FROM_HERE,
- base::BindOnce(&GetDownloadFilePath, download_directory, extension_id),
- base::BindOnce(&WebstoreInstaller::StartDownload, this, extension_id));
}
// http://crbug.com/165634
@@ -735,28 +713,6 @@ void WebstoreInstaller::UpdateDownloadPr
}
void WebstoreInstaller::StartCrxInstaller(const DownloadItem& download) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK(!crx_installer_.get());
-
- // The clock may be backward, e.g. daylight savings time just happenned.
- if (download.GetEndTime() >= download.GetStartTime()) {
- UMA_HISTOGRAM_TIMES("Extensions.WebstoreDownload.FileDownload",
- download.GetEndTime() - download.GetStartTime());
- }
- ExtensionService* service = ExtensionSystem::Get(profile_)->
- extension_service();
- CHECK(service);
-
- const Approval* approval = GetAssociatedApproval(download);
- DCHECK(approval);
-
- crx_installer_ = download_crx_util::CreateCrxInstaller(profile_, download);
-
- crx_installer_->set_expected_id(approval->extension_id);
- crx_installer_->set_is_gallery_install(true);
- crx_installer_->set_allow_silent_install(true);
-
- crx_installer_->InstallCrx(download.GetFullPath());
}
void WebstoreInstaller::ReportFailure(const std::string& error,
--- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
+++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
@@ -25,7 +25,6 @@ namespace extensions {
bool IsComponentExtensionWhitelisted(const std::string& extension_id) {
const char* const kAllowed[] = {
- extension_misc::kInAppPaymentsSupportAppId,
extension_misc::kMediaRouterStableExtensionId,
extension_misc::kPdfExtensionId,
#if defined(OS_CHROMEOS)

View File

@ -1,248 +0,0 @@
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1125,7 +1125,7 @@ void ChromeContentBrowserClient::Registe
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
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -66,11 +66,11 @@ void RegisterBrowserUserPrefs(user_prefs
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->RegisterDictionaryPref(prefs::kBrowserWindowPlacement);
registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup);
registry->RegisterDictionaryPref(prefs::kAppWindowPlacement);
--- a/chrome/browser/net/prediction_options.cc
+++ b/chrome/browser/net/prediction_options.cc
@@ -32,7 +32,7 @@ NetworkPredictionStatus CanPrefetchAndPr
}
return NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK;
default:
- DCHECK_EQ(NETWORK_PREDICTION_NEVER, network_prediction_options);
+ //DCHECK_EQ(NETWORK_PREDICTION_NEVER, network_prediction_options);
return NetworkPredictionStatus::DISABLED_ALWAYS;
}
}
--- 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 {
--- a/chrome/browser/background/background_mode_manager.cc
+++ b/chrome/browser/background/background_mode_manager.cc
@@ -352,7 +352,7 @@ void BackgroundModeManager::RegisterPref
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) {
--- a/components/content_settings/core/browser/cookie_settings.cc
+++ b/components/content_settings/core/browser/cookie_settings.cc
@@ -50,7 +50,7 @@ void CookieSettings::GetCookieSettings(
void CookieSettings::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
- prefs::kBlockThirdPartyCookies, false,
+ prefs::kBlockThirdPartyCookies, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
}
--- a/chrome/browser/ui/navigation_correction_tab_observer.cc
+++ b/chrome/browser/ui/navigation_correction_tab_observer.cc
@@ -55,7 +55,7 @@ NavigationCorrectionTabObserver::~Naviga
// static
void NavigationCorrectionTabObserver::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* prefs) {
- prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled, true,
+ prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
}
--- a/components/autofill/core/common/autofill_prefs.cc
+++ b/components/autofill/core/common/autofill_prefs.cc
@@ -130,10 +130,10 @@ const char kAutocompleteLastVersionReten
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
// Synced prefs. Used for cross-device choices, e.g., credit card Autofill.
registry->RegisterBooleanPref(
- prefs::kAutofillEnabledDeprecated, true,
+ prefs::kAutofillEnabledDeprecated, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(
- prefs::kAutofillProfileEnabled, true,
+ prefs::kAutofillProfileEnabled, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterIntegerPref(
prefs::kAutofillLastVersionDeduped, 0,
@@ -146,7 +146,7 @@ void RegisterProfilePrefs(user_prefs::Pr
prefs::kAutofillLastVersionDisusedAddressesDeleted, 0,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(
- prefs::kAutofillCreditCardEnabled, true,
+ prefs::kAutofillCreditCardEnabled, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterStringPref(
prefs::kAutofillProfileValidity, "",
--- a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
+++ b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
@@ -52,7 +52,7 @@
</paper-button>
</div>
<div slot="footer">
- <cr-checkbox id="sendSettings" checked>
+ <cr-checkbox id="sendSettings">
$i18nRaw{resetPageFeedback}</cr-checkbox>
</div>
</cr-dialog>
--- a/chrome/browser/signin/signin_promo.cc
+++ b/chrome/browser/signin/signin_promo.cc
@@ -171,7 +171,7 @@ bool IsAutoCloseEnabledInEmbeddedURL(con
void RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
- registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, true);
+ registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, false);
registry->RegisterBooleanPref(prefs::kSignInPromoShowNTPBubble, false);
registry->RegisterIntegerPref(prefs::kDiceSigninUserMenuPromoCount, 0);
}
--- a/components/bookmarks/browser/bookmark_utils.cc
+++ b/components/bookmarks/browser/bookmark_utils.cc
@@ -440,12 +440,12 @@ void GetBookmarksMatchingProperties(Book
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,
--- a/chrome/browser/profiles/profile.cc
+++ b/chrome/browser/profiles/profile.cc
@@ -148,7 +148,7 @@ const char Profile::kProfileKey[] = "__P
void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
prefs::kSearchSuggestEnabled,
- true,
+ false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
#if defined(OS_ANDROID)
registry->RegisterStringPref(
--- a/chrome/service/cloud_print/connector_settings.cc
+++ b/chrome/service/cloud_print/connector_settings.cc
@@ -60,7 +60,7 @@ void ConnectorSettings::InitFrom(Service
DCHECK(server_url_.is_valid());
connect_new_printers_ = prefs->GetBoolean(
- prefs::kCloudPrintConnectNewPrinters, true);
+ prefs::kCloudPrintConnectNewPrinters, false);
xmpp_ping_enabled_ = prefs->GetBoolean(
prefs::kCloudPrintXmppPingEnabled, false);
--- a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
+++ b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
@@ -127,10 +127,6 @@ void LocalDiscoveryUI::RegisterProfilePr
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
prefs::kLocalDiscoveryNotificationsEnabled,
-#if defined(OS_WIN)
false,
-#else
- true,
-#endif
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
}
--- a/extensions/common/extension.cc
+++ b/extensions/common/extension.cc
@@ -382,14 +382,6 @@ bool Extension::ShouldDisplayInExtension
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
--- a/components/safe_browsing/common/safe_browsing_prefs.cc
+++ b/components/safe_browsing/common/safe_browsing_prefs.cc
@@ -149,9 +149,9 @@ void RegisterProfilePrefs(PrefRegistrySi
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);
--- a/components/password_manager/core/browser/password_manager.cc
+++ b/components/password_manager/core/browser/password_manager.cc
@@ -354,10 +354,10 @@ bool IsOnlyNewParserEnabled() {
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->RegisterStringPref(prefs::kSyncPasswordHash, std::string(),
PrefRegistry::NO_REGISTRATION_FLAGS);
--- a/components/payments/core/payment_prefs.cc
+++ b/components/payments/core/payment_prefs.cc
@@ -16,7 +16,7 @@ const char kCanMakePaymentEnabled[] = "p
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(kPaymentsFirstTransactionCompleted, false);
registry->RegisterBooleanPref(
- kCanMakePaymentEnabled, true,
+ kCanMakePaymentEnabled, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
}
--- a/chrome/browser/signin/account_consistency_mode_manager.cc
+++ b/chrome/browser/signin/account_consistency_mode_manager.cc
@@ -126,7 +126,7 @@ void AccountConsistencyModeManager::Regi
registry->RegisterBooleanPref(prefs::kAccountConsistencyMirrorRequired,
false);
#endif
- registry->RegisterBooleanPref(prefs::kSigninAllowedOnNextStartup, true);
+ registry->RegisterBooleanPref(prefs::kSigninAllowedOnNextStartup, false);
}
// static

View File

@ -1,52 +0,0 @@
--- a/components/web_resource/web_resource_service.cc
+++ b/components/web_resource/web_resource_service.cc
@@ -128,48 +128,7 @@ bool WebResourceService::GetFetchSchedul
// Initializes the fetching of data from the resource server. Data
// load calls OnSimpleLoaderComplete.
void WebResourceService::StartFetch() {
- // Set to false so that next fetch can be scheduled after this fetch or
- // if we receive notification that resource is allowed.
- fetch_scheduled_ = false;
- // Check whether fetching is allowed.
- if (!resource_request_allowed_notifier_->ResourceRequestsAllowed())
- return;
-
- // First, put our next cache load on the MessageLoop.
- ScheduleFetch(cache_update_delay_ms_);
-
- // Set cache update time in preferences.
- prefs_->SetString(last_update_time_pref_name_,
- base::NumberToString(base::Time::Now().ToDoubleT()));
-
- // If we are still fetching data, exit.
- if (in_fetch_)
- return;
- in_fetch_ = true;
-
- GURL web_resource_server =
- application_locale_.empty()
- ? web_resource_server_
- : google_util::AppendGoogleLocaleParam(web_resource_server_,
- application_locale_);
-
- DVLOG(1) << "WebResourceService StartFetch " << web_resource_server;
- auto resource_request = std::make_unique<network::ResourceRequest>();
- resource_request->url = web_resource_server;
- // Do not let url fetcher affect existing state in system context
- // (by setting cookies, for example).
- resource_request->load_flags = net::LOAD_DISABLE_CACHE |
- net::LOAD_DO_NOT_SEND_COOKIES |
- net::LOAD_DO_NOT_SAVE_COOKIES;
- // TODO(https://crbug.com/808498): Re-add data use measurement once
- // SimpleURLLoader supports it.
- // ID=data_use_measurement::DataUseUserData::WEB_RESOURCE_SERVICE
- simple_url_loader_ = network::SimpleURLLoader::Create(
- std::move(resource_request), traffic_annotation_);
- simple_url_loader_->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
- url_loader_factory_.get(),
- base::BindOnce(&WebResourceService::OnSimpleLoaderComplete,
- base::Unretained(this)));
+ in_fetch_ = false;
}
void WebResourceService::EndFetch() {

View File

@ -1,53 +0,0 @@
--- a/chrome/browser/search/search.cc
+++ b/chrome/browser/search/search.cc
@@ -196,29 +196,7 @@ struct NewTabURLDetails {
const GURL local_url(chrome::kChromeSearchLocalNtpUrl);
- if (ShouldShowLocalNewTab(profile))
- return NewTabURLDetails(local_url, NEW_TAB_URL_VALID);
-
- const TemplateURL* template_url =
- GetDefaultSearchProviderTemplateURL(profile);
- if (!profile || !template_url)
- return NewTabURLDetails(local_url, NEW_TAB_URL_BAD);
-
- GURL search_provider_url(template_url->new_tab_url_ref().ReplaceSearchTerms(
- TemplateURLRef::SearchTermsArgs(base::string16()),
- UIThreadSearchTermsData(profile)));
-
- if (ShouldDelayRemoteNTP(search_provider_url, profile))
- return NewTabURLDetails(local_url, NEW_TAB_URL_VALID);
-
- if (!search_provider_url.is_valid())
- return NewTabURLDetails(local_url, NEW_TAB_URL_NOT_SET);
- if (!search_provider_url.SchemeIsCryptographic())
- return NewTabURLDetails(local_url, NEW_TAB_URL_INSECURE);
- if (!IsURLAllowedForSupervisedUser(search_provider_url, profile))
- return NewTabURLDetails(local_url, NEW_TAB_URL_BLOCKED);
-
- return NewTabURLDetails(search_provider_url, NEW_TAB_URL_VALID);
+ return NewTabURLDetails(local_url, NEW_TAB_URL_VALID);
}
const GURL url;
--- a/components/ntp_snippets/features.cc
+++ b/components/ntp_snippets/features.cc
@@ -41,7 +41,7 @@ const base::Feature* const kAllFeatures[
&kRemoteSuggestionsBackendFeature};
const base::Feature kArticleSuggestionsFeature{
- "NTPArticleSuggestions", base::FEATURE_ENABLED_BY_DEFAULT};
+ "NTPArticleSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kRemoteSuggestionsEmulateM58FetchingSchedule{
"RemoteSuggestionsEmulateM58FetchingSchedule",
@@ -71,7 +71,7 @@ const char kNotificationsDailyLimit[] =
const char kNotificationsIgnoredLimitParam[] = "ignored_limit";
const base::Feature kKeepPrefetchedContentSuggestions{
- "KeepPrefetchedContentSuggestions", base::FEATURE_ENABLED_BY_DEFAULT};
+ "KeepPrefetchedContentSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kContentSuggestionsDebugLog{
"ContentSuggestionsDebugLog", base::FEATURE_DISABLED_BY_DEFAULT};

View File

@ -1,16 +0,0 @@
--- a/net/dns/host_resolver_manager.cc
+++ b/net/dns/host_resolver_manager.cc
@@ -120,10 +120,10 @@ const unsigned kMinimumTTLSeconds = kCac
// cached.
const int kIPv6ProbePeriodMs = 1000;
-// Google DNS address used for IPv6 probes.
-const uint8_t kIPv6ProbeAddress[] = {0x20, 0x01, 0x48, 0x60, 0x48, 0x60,
+// RIPE NCC k.root-servers.net. 2001:7fd::1 (anycasted), used for IPv6 probes.
+const uint8_t kIPv6ProbeAddress[] = {0x20, 0x01, 0x07, 0xfd, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x88, 0x88};
+ 0x00, 0x00, 0x00, 0x01};
enum DnsResolveStatus {
RESOLVE_STATUS_DNS_SUCCESS = 0,

View File

@ -1,87 +0,0 @@
--- a/components/gcm_driver/gcm_channel_status_request.cc
+++ b/components/gcm_driver/gcm_channel_status_request.cc
@@ -24,8 +24,6 @@ namespace gcm {
namespace {
-const char kRequestContentType[] = "application/octet-stream";
-const char kGCMChannelTag[] = "gcm_channel";
const int kDefaultPollIntervalSeconds = 60 * 60; // 60 minutes.
const int kMinPollIntervalSeconds = 30 * 60; // 30 minutes.
@@ -57,73 +55,8 @@ int GCMChannelStatusRequest::min_poll_in
}
void GCMChannelStatusRequest::Start() {
- // url_loader_factory_ can be null for tests.
- if (!url_loader_factory_)
- return;
-
- DCHECK(!simple_url_loader_);
-
- GURL request_url(channel_status_request_url_);
-
- sync_pb::ExperimentStatusRequest proto_data;
- proto_data.add_experiment_name(kGCMChannelTag);
- std::string upload_data;
- if (!proto_data.SerializeToString(&upload_data)) {
- NOTREACHED();
- }
-
- net::NetworkTrafficAnnotationTag traffic_annotation =
- net::DefineNetworkTrafficAnnotation("gcm_channel_status_request", R"(
- semantics {
- sender: "GCM Driver"
- description:
- "Google Chrome interacts with Google Cloud Messaging to receive "
- "push messages for various browser features, as well as on behalf "
- "of websites and extensions. The channel status request "
- "periodically confirms with Google servers whether the feature "
- "should be enabled."
- trigger:
- "Periodically when Chrome has established an active Google Cloud "
- "Messaging subscription. The first request will be issued a minute "
- "after the first subscription activates. Subsequent requests will "
- "be issued each hour with a jitter of 15 minutes. Google can "
- "adjust this interval when it deems necessary."
- data:
- "A user agent string containing the Chrome version, channel and "
- "platform will be sent to the server. No user identifier is sent "
- "along with the request."
- destination: GOOGLE_OWNED_SERVICE
- }
- policy {
- cookies_allowed: NO
- setting:
- "Support for interacting with Google Cloud Messaging is enabled by "
- "default, and there is no configuration option to completely "
- "disable it. Websites wishing to receive push messages must "
- "acquire express permission from the user for the 'Notification' "
- "permission."
- policy_exception_justification:
- "Not implemented, considered not useful."
- })");
-
- auto resource_request = std::make_unique<network::ResourceRequest>();
-
- resource_request->url = request_url;
- resource_request->load_flags =
- net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES;
- resource_request->method = "POST";
- resource_request->headers.SetHeader(net::HttpRequestHeaders::kUserAgent,
- user_agent_);
- // TODO(https://crbug.com/808498): Re-add data use measurement once
- // SimpleURLLoader supports it.
- // ID=data_use_measurement::DataUseUserData::GCM_DRIVER
- simple_url_loader_ = network::SimpleURLLoader::Create(
- std::move(resource_request), traffic_annotation);
- simple_url_loader_->AttachStringForUpload(upload_data, kRequestContentType);
- simple_url_loader_->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
- url_loader_factory_.get(),
- base::BindOnce(&GCMChannelStatusRequest::OnSimpleLoaderComplete,
- base::Unretained(this)));
+ // Simulate an empty response and disable GCM.
+ callback_.Run(false, false, 0);
}
void GCMChannelStatusRequest::OnSimpleLoaderComplete(

View File

@ -1,61 +0,0 @@
--- a/components/translate/core/browser/translate_language_list.cc
+++ b/components/translate/core/browser/translate_language_list.cc
@@ -207,6 +207,8 @@ GURL TranslateLanguageList::TranslateLan
}
void TranslateLanguageList::RequestLanguageList() {
+ return;
+
// If resource requests are not allowed, we'll get a callback when they are.
if (!resource_requests_allowed_) {
request_pending_ = true;
--- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
+++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
@@ -167,7 +167,6 @@ void SpellcheckHunspellDictionary::Retry
return;
}
browser_context_ = browser_context;
- DownloadDictionary(GetDictionaryURL());
}
bool SpellcheckHunspellDictionary::IsReady() const {
@@ -406,9 +405,6 @@ void SpellcheckHunspellDictionary::Initi
}
if (browser_context_) {
- // Download from the UI thread to check that |browser_context_| is
- // still valid.
- DownloadDictionary(GetDictionaryURL());
return;
}
}
--- a/components/translate/core/browser/translate_ranker_impl.cc
+++ b/components/translate/core/browser/translate_ranker_impl.cc
@@ -157,14 +157,10 @@ TranslateRankerImpl::TranslateRankerImpl
ukm::UkmRecorder* ukm_recorder)
: ukm_recorder_(ukm_recorder),
is_logging_enabled_(false),
- is_query_enabled_(base::FeatureList::IsEnabled(kTranslateRankerQuery)),
- is_enforcement_enabled_(
- base::FeatureList::IsEnabled(kTranslateRankerEnforcement)),
- is_auto_blacklist_override_enabled_(base::FeatureList::IsEnabled(
- translate::kTranslateRankerAutoBlacklistOverride)),
- is_previous_language_matches_override_enabled_(
- base::FeatureList::IsEnabled(
- translate::kTranslateRankerPreviousLanguageMatchesOverride)),
+ is_query_enabled_(false),
+ is_enforcement_enabled_(false),
+ is_auto_blacklist_override_enabled_(false),
+ is_previous_language_matches_override_enabled_(false),
weak_ptr_factory_(this) {
if (is_query_enabled_ || is_enforcement_enabled_) {
model_loader_ = std::make_unique<assist_ranker::RankerModelLoaderImpl>(
@@ -238,6 +234,8 @@ bool TranslateRankerImpl::ShouldOfferTra
// (or become False).
const bool kDefaultResponse = true;
+ return kDefaultResponse;
+
translate_event->set_ranker_request_timestamp_sec(
(base::TimeTicks::Now() - base::TimeTicks()).InSeconds());
translate_event->set_ranker_version(GetModelVersion());

View File

@ -1,18 +0,0 @@
--- a/components/component_updater/configurator_impl.cc
+++ b/components/component_updater/configurator_impl.cc
@@ -73,14 +73,7 @@ int ConfiguratorImpl::UpdateDelay() cons
}
std::vector<GURL> ConfiguratorImpl::UpdateUrl() const {
- if (url_source_override_.is_valid())
- return {GURL(url_source_override_)};
-
- std::vector<GURL> urls{GURL(kUpdaterJSONDefaultUrl),
- GURL(kUpdaterJSONFallbackUrl)};
- if (require_encryption_)
- update_client::RemoveUnsecureUrls(&urls);
-
+ std::vector<GURL> urls;
return urls;
}

View File

@ -1,102 +0,0 @@
--- a/services/device/battery/battery_status_service.cc
+++ b/services/device/battery/battery_status_service.cc
@@ -19,10 +19,7 @@ BatteryStatusService::BatteryStatusServi
: main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
update_callback_(base::Bind(&BatteryStatusService::NotifyConsumers,
base::Unretained(this))),
- status_updated_(false),
is_shutdown_(false) {
- callback_list_.set_removal_callback(base::Bind(
- &BatteryStatusService::ConsumersChanged, base::Unretained(this)));
}
BatteryStatusService::~BatteryStatusService() {}
@@ -38,58 +35,16 @@ BatteryStatusService::AddCallback(const
DCHECK(main_thread_task_runner_->BelongsToCurrentThread());
DCHECK(!is_shutdown_);
- if (!battery_fetcher_)
- battery_fetcher_ = BatteryStatusManager::Create(update_callback_);
-
- if (callback_list_.empty()) {
- bool success = battery_fetcher_->StartListeningBatteryChange();
- // On failure pass the default values back.
- if (!success)
- callback.Run(mojom::BatteryStatus());
- }
-
- if (status_updated_) {
- // Send recent status to the new callback if already available.
- callback.Run(status_);
- }
+ // Always pass the default values.
+ callback.Run(mojom::BatteryStatus());
return callback_list_.Add(callback);
}
-void BatteryStatusService::ConsumersChanged() {
- if (is_shutdown_)
- return;
-
- if (callback_list_.empty()) {
- battery_fetcher_->StopListeningBatteryChange();
- status_updated_ = false;
- }
-}
-
void BatteryStatusService::NotifyConsumers(const mojom::BatteryStatus& status) {
- DCHECK(!is_shutdown_);
-
- main_thread_task_runner_->PostTask(
- FROM_HERE,
- base::BindOnce(&BatteryStatusService::NotifyConsumersOnMainThread,
- base::Unretained(this), status));
-}
-
-void BatteryStatusService::NotifyConsumersOnMainThread(
- const mojom::BatteryStatus& status) {
- DCHECK(main_thread_task_runner_->BelongsToCurrentThread());
- if (callback_list_.empty())
- return;
-
- status_ = status;
- status_updated_ = true;
- callback_list_.Notify(status_);
}
void BatteryStatusService::Shutdown() {
- if (!callback_list_.empty())
- battery_fetcher_->StopListeningBatteryChange();
- battery_fetcher_.reset();
is_shutdown_ = true;
}
@@ -100,9 +55,6 @@ BatteryStatusService::GetUpdateCallbackF
void BatteryStatusService::SetBatteryManagerForTesting(
std::unique_ptr<BatteryStatusManager> test_battery_manager) {
- battery_fetcher_ = std::move(test_battery_manager);
- status_ = mojom::BatteryStatus();
- status_updated_ = false;
is_shutdown_ = false;
main_thread_task_runner_ = base::ThreadTaskRunnerHandle::Get();
}
--- a/services/device/battery/battery_status_service.h
+++ b/services/device/battery/battery_status_service.h
@@ -56,15 +56,10 @@ class BatteryStatusService {
// Updates current battery status and sends new status to interested
// render processes. Can be called on any thread via a callback.
void NotifyConsumers(const mojom::BatteryStatus& status);
- void NotifyConsumersOnMainThread(const mojom::BatteryStatus& status);
- void ConsumersChanged();
scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_;
- std::unique_ptr<BatteryStatusManager> battery_fetcher_;
BatteryUpdateCallbackList callback_list_;
BatteryUpdateCallback update_callback_;
- mojom::BatteryStatus status_;
- bool status_updated_;
bool is_shutdown_;
DISALLOW_COPY_AND_ASSIGN(BatteryStatusService);

View File

@ -1,12 +0,0 @@
# Disable rlz
--- a/rlz/buildflags/buildflags.gni
+++ b/rlz/buildflags/buildflags.gni
@@ -6,6 +6,6 @@ import("//build/config/chrome_build.gni"
# Whether we are using the rlz library or not. Platforms like Android send
# rlz codes for searches but do not use the library.
-enable_rlz_support = is_win || is_mac || is_ios || is_chromeos
+enable_rlz_support = false
enable_rlz = is_chrome_branded && enable_rlz_support

View File

@ -1,24 +0,0 @@
description: disable dependency on chrome/android
author: Michael Gilbert <mgilbert@debian.org>
--- a/device/vr/buildflags/buildflags.gni
+++ b/device/vr/buildflags/buildflags.gni
@@ -5,7 +5,6 @@
import("//build/config/chrome_build.gni")
import("//build/config/chromecast_build.gni")
import("//build/config/gclient_args.gni")
-import("//chrome/android/channel.gni")
declare_args() {
enable_gvr_services = is_android && !is_chromecast &&
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -371,7 +371,7 @@ group("gn_all") {
# seems currently broken for this platform at the moment, and the
# corresponding code build and works on Linux unmodified.
# See instructions in the corresponding BUILD.gn.
- if (is_linux) {
+ if (is_android) {
deps +=
[ "//third_party/android_crazy_linker:android_crazy_linker_zip_fuzzer" ]
}

View File

@ -1,27 +0,0 @@
Fix 'gn gen' when gn is built in debug config
Fixes this DCHECK:
https://cs.chromium.org/chromium/gn/tools/gn/source_file.cc?q=source_file.cc&sq=package:chromium&dr&l=21
BUG=None
Change-Id: Ide60a650c800d4a0981b4f28cf0427fa91616464
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1613888
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#660103}
diff --git a/tools/perf/contrib/vr_benchmarks/BUILD.gn b/tools/perf/contrib/vr_benchmarks/BUILD.gn
index 758057a..51644e0 100644
--- a/tools/perf/contrib/vr_benchmarks/BUILD.gn
+++ b/tools/perf/contrib/vr_benchmarks/BUILD.gn
@@ -72,7 +72,7 @@
"//chrome/browser/resources/vr/assets/vr_assets_component_files.json",
]
outputs = [
- "$target_gen_dir/vr_assets_profile/",
+ "$target_gen_dir/vr_assets_profile",
]
args = [
"--output",

View File

@ -1,20 +0,0 @@
--- a/third_party/angle/src/common/debug.h 2019-06-02 17:59:16.698392030 -0000
+++ b/third_party/angle/src/common/debug.h 2019-06-02 17:59:48.738265672 -0000
@@ -248,7 +248,7 @@
# define EVENT(message, ...) (void(0))
#endif
-#if defined(COMPILER_GCC) || defined(__clang__)
+#if defined(__GNUC__) || defined(__clang__)
# define ANGLE_CRASH() __builtin_trap()
#else
# define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
@@ -336,7 +336,7 @@
# define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
_Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
# define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
-#elif defined(COMPILER_GCC)
+#elif defined(__GNUC__)
# define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
# define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")

View File

@ -1,17 +0,0 @@
Issue 945938: Build fails with clang/llvm-8
https://bugs.chromium.org/p/chromium/issues/detail?id=945938&q=TabStripModelChange&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Component%20Status%20Owner%20Summary%20OS%20Modified
diff --git a/chrome/browser/ui/tabs/tab_strip_model_observer.h b/chrome/browser/ui/tabs/tab_strip_model_observer.h
index 6c8bce5..7f67b7d 100644
--- a/chrome/browser/ui/tabs/tab_strip_model_observer.h
+++ b/chrome/browser/ui/tabs/tab_strip_model_observer.h
@@ -135,7 +135,7 @@ class TabStripModelChange {
private:
const Type type_ = kSelectionOnly;
- const std::vector<Delta> deltas_;
+ std::vector<Delta> deltas_;
DISALLOW_COPY_AND_ASSIGN(TabStripModelChange);
};

View File

@ -1,63 +0,0 @@
--- a/third_party/lss/BUILD.gn
+++ b/third_party/lss/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright 2019 The Crashpad Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("../../build/crashpad_buildconfig.gni")
+
+config("lss_config") {
+ if (crashpad_is_in_chromium) {
+ defines = [ "CRASHPAD_LSS_SOURCE_EXTERNAL" ]
+ } else {
+ defines = [ "CRASHPAD_LSS_SOURCE_EMBEDDED" ]
+ }
+}
+
+source_set("lss") {
+ public_configs = [ ":lss_config" ]
+
+ sources = [
+ "lss.h",
+ ]
+}
--- a/third_party/lss/lss.h
+++ b/third_party/lss/lss.h
@@ -0,0 +1,26 @@
+// Copyright 2019 The Crashpad Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef CRASHPAD_THIRD_PARTY_LSS_LSS_H_
+#define CRASHPAD_THIRD_PARTY_LSS_LSS_H_
+
+#if defined(CRASHPAD_LSS_SOURCE_EXTERNAL)
+#include "third_party/lss/linux_syscall_support.h"
+#elif defined(CRASHPAD_LSS_SOURCE_EMBEDDED)
+#include "third_party/lss/lss/linux_syscall_support.h"
+#else
+#error Unknown lss source
+#endif
+
+#endif // CRASHPAD_THIRD_PARTY_LSS_LSS_H_

View File

@ -1,101 +0,0 @@
From 41d954dec0669c9a85730c0bde7df7ba7a0ff43e Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Thu, 06 Jun 2019 15:30:49 +0000
Subject: [PATCH] Fix AutocompleteMatch move constructor/assign operator noexcept
For AutocompleteMatch to declare noexcept them, all the contained
properties need to be noexcept too. This is required at least
for SuggestionAnswer, because base::string16 will make default
calculated signature of the move operator noexcept(false).
To avoid this issue we explicitely declare them on SuggestionAnswer,
and its member classes TextField and ImageLine.
Bug: 819294
Change-Id: I8714f2c6352a3292bdebdc3aed9790270e49c580
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1554669
Reviewed-by: Kevin Bailey <krb@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#666714}
---
diff --git a/components/omnibox/browser/suggestion_answer.cc b/components/omnibox/browser/suggestion_answer.cc
index 151e55f..a0c9049 100644
--- a/components/omnibox/browser/suggestion_answer.cc
+++ b/components/omnibox/browser/suggestion_answer.cc
@@ -55,6 +55,12 @@
SuggestionAnswer::TextField::TextField() = default;
SuggestionAnswer::TextField::~TextField() = default;
+SuggestionAnswer::TextField::TextField(const TextField&) = default;
+SuggestionAnswer::TextField::TextField(TextField&&) noexcept = default;
+SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ TextField&&) noexcept = default;
// static
bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
@@ -93,9 +99,12 @@
SuggestionAnswer::ImageLine::ImageLine()
: num_text_lines_(1) {}
SuggestionAnswer::ImageLine::ImageLine(const ImageLine& line) = default;
+SuggestionAnswer::ImageLine::ImageLine(ImageLine&&) noexcept = default;
SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=(
const ImageLine& line) = default;
+SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=(
+ ImageLine&&) noexcept = default;
SuggestionAnswer::ImageLine::~ImageLine() {}
@@ -251,9 +260,14 @@
SuggestionAnswer::SuggestionAnswer(const SuggestionAnswer& answer) = default;
+SuggestionAnswer::SuggestionAnswer(SuggestionAnswer&&) noexcept = default;
+
SuggestionAnswer& SuggestionAnswer::operator=(const SuggestionAnswer& answer) =
default;
+SuggestionAnswer& SuggestionAnswer::operator=(SuggestionAnswer&&) noexcept =
+ default;
+
SuggestionAnswer::~SuggestionAnswer() = default;
// static
diff --git a/components/omnibox/browser/suggestion_answer.h b/components/omnibox/browser/suggestion_answer.h
index 31be937..2840ace 100644
--- a/components/omnibox/browser/suggestion_answer.h
+++ b/components/omnibox/browser/suggestion_answer.h
@@ -125,6 +125,10 @@
public:
TextField();
~TextField();
+ TextField(const TextField&);
+ TextField(TextField&&) noexcept;
+ TextField& operator=(const TextField&);
+ TextField& operator=(TextField&&) noexcept;
// Parses |field_json| dictionary and populates |text_field| with the
// contents. If any of the required elements is missing, returns false and
@@ -162,7 +166,9 @@
public:
ImageLine();
explicit ImageLine(const ImageLine& line);
+ ImageLine(ImageLine&&) noexcept;
ImageLine& operator=(const ImageLine& line);
+ ImageLine& operator=(ImageLine&&) noexcept;
~ImageLine();
// Parses dictionary |line_json| and populates |image_line| with the
@@ -213,7 +219,9 @@
SuggestionAnswer();
SuggestionAnswer(const SuggestionAnswer& answer);
+ SuggestionAnswer(SuggestionAnswer&&) noexcept;
SuggestionAnswer& operator=(const SuggestionAnswer& answer);
+ SuggestionAnswer& operator=(SuggestionAnswer&&) noexcept;
~SuggestionAnswer();
// Parses dictionary |answer_json| and fills a SuggestionAnswer containing the

View File

@ -1,50 +0,0 @@
From cdf306db81efaaaa954487585d5a5a16205a5ebd Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Wed, 05 Jun 2019 14:45:06 +0000
Subject: [PATCH] Avoid pure virtual crash destroying RenderProcessUserData
When RenderProcessUserData is destroyed from the destructor of
RenderProcessHostImpl, it is done in the destructor of RenderProcessHost.
At this point RemoveObserver override is already freed, so RenderProcessHost
is pure virtual. This crash happens at least building with GCC:
at /usr/include/c++/8/ext/new_allocator.h:140
(this=0x7fffffffcb50, __in_chrg=<optimized out>) at /usr/include/c++/8/bits/stl_tree.h:964
We need to destroy RenderProcessUserData before that happens. To do that
we can just override RenderProcessHostDestroyed.
Bug: 910288
Change-Id: I38107b178829b0cb7494f5333b765e5b087d82cd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645366
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#666279}
---
diff --git a/chrome/browser/performance_manager/render_process_user_data.cc b/chrome/browser/performance_manager/render_process_user_data.cc
index 2e2c199..ef6e1fb 100644
--- a/chrome/browser/performance_manager/render_process_user_data.cc
+++ b/chrome/browser/performance_manager/render_process_user_data.cc
@@ -116,4 +116,9 @@
base::Unretained(process_node_.get()), info.exit_code));
}
+void RenderProcessUserData::RenderProcessHostDestroyed(
+ content::RenderProcessHost* host) {
+ host->RemoveUserData(kRenderProcessUserDataKey);
+}
+
} // namespace performance_manager
diff --git a/chrome/browser/performance_manager/render_process_user_data.h b/chrome/browser/performance_manager/render_process_user_data.h
index ac74b1d..f3b4d16 100644
--- a/chrome/browser/performance_manager/render_process_user_data.h
+++ b/chrome/browser/performance_manager/render_process_user_data.h
@@ -47,6 +47,7 @@
void RenderProcessExited(
content::RenderProcessHost* host,
const content::ChildProcessTerminationInfo& info) override;
+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
// All instances are linked together in a doubly linked list to allow orderly
// destruction at browser shutdown time.

View File

@ -1,31 +0,0 @@
From aeed4d1f15ce84a17ea0bc219e258dc4982b2368 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri, 26 Apr 2019 20:07:05 +0000
Subject: [PATCH] libstdc++: do not assume unique_ptr has ostream operator
CompositorFrameReportingController is using DCHECK_NE to compare
several unique_ptr. This is valid in libc++, but on libstdc++ unique_ptr
does not have an ostream operator.
Change-Id: I9f23ef17f02b9e107694ba493f6f8f3caf5cac4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1584292
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#654570}
---
diff --git a/cc/scheduler/compositor_frame_reporting_controller.cc b/cc/scheduler/compositor_frame_reporting_controller.cc
index f1587ed..1b17021 100644
--- a/cc/scheduler/compositor_frame_reporting_controller.cc
+++ b/cc/scheduler/compositor_frame_reporting_controller.cc
@@ -31,8 +31,8 @@
void CompositorFrameReportingController::WillBeginMainFrame() {
DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
- reporters_[PipelineStage::kBeginImplFrame]);
+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
+ reporters_[PipelineStage::kBeginImplFrame]);
reporters_[PipelineStage::kBeginImplFrame]->StartStage(
"SendBeginMainFrameToCommit");
AdvanceReporterStage(PipelineStage::kBeginImplFrame,

View File

@ -1,196 +0,0 @@
From a1207cc75454e653030716948d27ec27412f6fe8 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Sat, 1 Jun 2019 14:22:57 +0100
Subject: [PATCH] Disable various compiler configs
---
build/config/compiler/BUILD.gn | 68 +++++++++++++++-------------------
1 file changed, 29 insertions(+), 39 deletions(-)
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 4b24c76..0737326 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -230,8 +230,6 @@ config("compiler") {
configs += [
# See the definitions below.
- ":clang_revision",
- ":compiler_cpu_abi",
":compiler_codegen",
":compiler_deterministic",
]
@@ -471,20 +469,6 @@ config("compiler") {
}
}
- if (is_clang && !is_nacl && !use_xcode_clang) {
- cflags += [ "-fcrash-diagnostics-dir=" +
- rebase_path("//tools/clang/crashreports", root_build_dir) ]
-
- cflags += [
- # TODO(hans): Remove this once Clang generates better optimized debug info
- # by default. https://crbug.com/765793
- "-Xclang",
- "-mllvm",
- "-Xclang",
- "-instcombine-lower-dbg-declare=0",
- ]
- }
-
# C11/C++11 compiler flags setup.
# ---------------------------
if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
@@ -1433,6 +1417,12 @@ config("default_warnings") {
"-Wno-narrowing",
]
+ # -Wno-class-memaccess warns about hash table and vector in blink.
+ # But the violation is intentional.
+ if (!is_nacl) {
+ cflags_cc += [ "-Wno-class-memaccess" ]
+ }
+
# -Wunused-local-typedefs is broken in gcc,
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
cflags += [ "-Wno-unused-local-typedefs" ]
@@ -1447,6 +1437,10 @@ config("default_warnings") {
# comments
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61638
cflags += [ "-Wno-comments" ]
+
+ # -Wpacked-not-aligned complains all generated mojom-shared-internal.h
+ # files.
+ cflags += [ "-Wno-packed-not-aligned" ]
}
}
@@ -1523,7 +1517,7 @@ config("chromium_code") {
defines = [ "_HAS_NODISCARD" ]
}
} else {
- cflags = [ "-Wall" ]
+ cflags = []
if (treat_warnings_as_errors) {
cflags += [ "-Werror" ]
@@ -1532,10 +1526,6 @@ config("chromium_code") {
# well.
ldflags = [ "-Werror" ]
}
- if (is_clang) {
- # Enable extra warnings for chromium_code when we control the compiler.
- cflags += [ "-Wextra" ]
- }
# In Chromium code, we define __STDC_foo_MACROS in order to get the
# C99 macros on Mac and Linux.
@@ -1544,15 +1534,6 @@ config("chromium_code") {
"__STDC_FORMAT_MACROS",
]
- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
- current_cpu != "s390" && current_cpu != "ppc64" &&
- current_cpu != "mips" && current_cpu != "mips64") {
- # Non-chromium code is not guaranteed to compile cleanly with
- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
- # disabled, so only do that for Release build.
- defines += [ "_FORTIFY_SOURCE=2" ]
- }
-
if (is_mac) {
cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
@@ -1941,7 +1922,8 @@ config("default_stack_frames") {
}
# Default "optimization on" config.
-config("optimize") {
+config("optimize") { }
+config("xoptimize") {
if (is_win) {
# TODO(thakis): Remove is_clang here, https://crbug.com/598772
if (is_official_build && full_wpo_on_official && !is_clang) {
@@ -1975,7 +1957,8 @@ config("optimize") {
}
# Same config as 'optimize' but without the WPO flag.
-config("optimize_no_wpo") {
+config("optimize_no_wpo") { }
+config("xoptimize_no_wpo") {
if (is_win) {
# Favor size over speed, /O1 must be before the common flags. The GYP
# build also specifies /Os and /GF but these are implied by /O1.
@@ -1998,7 +1981,8 @@ config("optimize_no_wpo") {
}
# Turn off optimizations.
-config("no_optimize") {
+config("no_optimize") { }
+config("xno_optimize") {
if (is_win) {
cflags = [
"/Od", # Disable optimization.
@@ -2026,7 +2010,8 @@ config("no_optimize") {
# Turns up the optimization level. On Windows, this implies whole program
# optimization and link-time code generation which is very expensive and should
# be used sparingly.
-config("optimize_max") {
+config("optimize_max") { }
+config("xoptimize_max") {
if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config.
# Various components do:
@@ -2073,7 +2058,8 @@ config("optimize_max") {
#
# TODO(crbug.com/621335) - rework how all of these configs are related
# so that we don't need this disclaimer.
-config("optimize_speed") {
+config("optimize_speed") { }
+config("xoptimize_speed") {
if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config.
# Various components do:
@@ -2111,7 +2097,8 @@ config("optimize_speed") {
}
}
-config("optimize_fuzzing") {
+config("optimize_fuzzing") { }
+config("xoptimize_fuzzing") {
cflags = [ "-O1" ] + common_optimize_on_cflags
ldflags = common_optimize_on_ldflags
visibility = [ ":default_optimization" ]
@@ -2213,7 +2200,8 @@ config("win_pdbaltpath") {
}
# Full symbols.
-config("symbols") {
+config("symbols") { }
+config("xsymbols") {
if (is_win) {
if (use_goma || is_clang) {
# Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
@@ -2323,7 +2311,8 @@ config("symbols") {
# Minimal symbols.
# This config guarantees to hold symbol for stack trace which are shown to user
# when crash happens in unittests running on buildbot.
-config("minimal_symbols") {
+config("minimal_symbols") { }
+config("xminimal_symbols") {
if (is_win) {
# Linker symbols for backtraces only.
cflags = []
@@ -2380,7 +2369,8 @@ config("minimal_symbols") {
}
# No symbols.
-config("no_symbols") {
+config("no_symbols") { }
+config("xno_symbols") {
if (!is_win) {
cflags = [ "-g0" ]
asmflags = cflags
--
2.21.0

View File

@ -1,14 +0,0 @@
--- a/base/strings/char_traits.h
+++ b/base/strings/char_traits.h
@@ -67,9 +67,9 @@
return __builtin_memcmp(s1, s2, n);
#else
for (; n; --n, ++s1, ++s2) {
- if (*s1 < *s2)
+ if ((unsigned char)*s1 < (unsigned char)*s2)
return -1;
- if (*s1 > *s2)
+ if ((unsigned char)*s1 > (unsigned char)*s2)
return 1;
}
return 0;

View File

@ -1,63 +0,0 @@
diff --git chromium-73.0.3683.103/build/config/ui.gni chromium-73.0.3683.103/build/config/ui.gni
index 547b42fb5..966b00c2a 100644
--- chromium-73.0.3683.103/build/config/ui.gni
+++ chromium-73.0.3683.103/build/config/ui.gni
@@ -51,8 +51,10 @@ if (use_ozone) {
use_glib = false
}
-# Whether to use atk, the Accessibility ToolKit library
-use_atk = is_desktop_linux && use_x11
+declare_args() {
+ # Whether to use atk, the Accessibility ToolKit library
+ use_atk = is_desktop_linux && use_x11
+}
# =============================================
# PLEASE DO NOT ADD MORE FLAGS TO THIS FILE
# =============================================
diff --git chromium-73.0.3683.103/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc chromium-73.0.3683.103/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
index bd2f435da..5c2ec8b90 100644
--- chromium-73.0.3683.103/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
+++ chromium-73.0.3683.103/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
@@ -17,7 +17,9 @@
#include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/trace_event.h"
#include "third_party/skia/include/core/SkPath.h"
+#if defined(USE_ATK)
#include "ui/accessibility/platform/atk_util_auralinux.h"
+#endif
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/client/cursor_client.h"
#include "ui/aura/client/focus_client.h"
@@ -2049,11 +2051,15 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent(
break;
}
case KeyPress: {
+#if defined(USE_ATK)
if (ui::AtkUtilAuraLinux::HandleKeyEvent(xev) !=
ui::DiscardAtkKeyEvent::Discard) {
+#endif
ui::KeyEvent keydown_event(xev);
DispatchKeyEvent(&keydown_event);
+#if defined(USE_ATK)
}
+#endif
break;
}
case KeyRelease: {
@@ -2062,11 +2068,15 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent(
if (!IsActive() && !HasCapture())
break;
+#if defined(USE_ATK)
if (ui::AtkUtilAuraLinux::HandleKeyEvent(xev) !=
ui::DiscardAtkKeyEvent::Discard) {
+#endif
ui::KeyEvent key_event(xev);
DispatchKeyEvent(&key_event);
+#if defined(USE_ATK)
}
+#endif
break;
}
case ButtonPress:

View File

@ -1,185 +0,0 @@
--- chromium-75.0.3770.100/chrome/browser/BUILD.gn
+++ chromium-75.0.3770.100/chrome/browser/BUILD.gn
@@ -3681,14 +3681,16 @@ jumbo_split_static_library("browser") {
"first_run/upgrade_util_linux.cc",
"first_run/upgrade_util_linux.h",
"icon_loader_auralinux.cc",
- "password_manager/native_backend_kwallet_x.cc",
- "password_manager/native_backend_kwallet_x.h",
"platform_util_linux.cc",
"shell_integration_linux.cc",
"shell_integration_linux.h",
]
if (use_dbus) {
+ sources += [
+ "password_manager/native_backend_kwallet_x.cc",
+ "password_manager/native_backend_kwallet_x.h",
+ ]
deps += [ "//components/dbus:dbus_thread_linux" ]
}
--- chromium-75.0.3770.100/chrome/browser/chrome_browser_main_linux.cc
+++ chromium-75.0.3770.100/chrome/browser/chrome_browser_main_linux.cc
@@ -95,7 +95,7 @@ void ChromeBrowserMainPartsLinux::PostProfileInit() {
}
void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() {
-#if !defined(OS_CHROMEOS)
+#if !defined(OS_CHROMEOS) && defined(USE_DBUS)
bluez::BluezDBusManager::Initialize(nullptr /* system_bus */);
#endif
@@ -103,7 +103,7 @@ void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() {
}
void ChromeBrowserMainPartsLinux::PostDestroyThreads() {
-#if !defined(OS_CHROMEOS)
+#if !defined(OS_CHROMEOS) && defined(USE_DBUS)
bluez::BluezDBusManager::Shutdown();
bluez::BluezDBusThreadManager::Shutdown();
#endif
diff --git chromium-75.0.3770.100/chrome/browser/metrics/bluetooth_available_utility.cc chromium-75.0.3770.100/chrome/browser/metrics/bluetooth_available_utility.cc
index 1f6c223..dcade65 100644
--- chromium-75.0.3770.100/chrome/browser/metrics/bluetooth_available_utility.cc
+++ chromium-75.0.3770.100/chrome/browser/metrics/bluetooth_available_utility.cc
@@ -14,7 +14,7 @@
#include "device/bluetooth/bluetooth_adapter.h"
#include "device/bluetooth/bluetooth_adapter_factory.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) && defined(USE_DBUS)
#include "device/bluetooth/dbus/bluez_dbus_manager.h"
#endif // defined(OS_LINUX)
@@ -62,7 +62,7 @@ void ReportBluetoothAvailability() {
return;
}
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) && defined(USE_DBUS)
// This is for tests that have not initialized bluez or dbus thread manager.
// Outside of tests these are initialized earlier during browser startup.
if (!bluez::BluezDBusManager::IsInitialized())
diff --git chromium-75.0.3770.100/chrome/browser/password_manager/password_store_factory.cc chromium-75.0.3770.100/chrome/browser/password_manager/password_store_factory.cc
index 03d205d0e..cb8e9e820 100644
--- chromium-75.0.3770.100/chrome/browser/password_manager/password_store_factory.cc
+++ chromium-75.0.3770.100/chrome/browser/password_manager/password_store_factory.cc
@@ -211,6 +211,7 @@ PasswordStoreFactory::BuildServiceInstanceFor(
std::unique_ptr<PasswordStoreX::NativeBackend> backend;
if (selected_backend == os_crypt::SelectedLinuxBackend::KWALLET ||
selected_backend == os_crypt::SelectedLinuxBackend::KWALLET5) {
+#if defined(USE_DBUS)
VLOG(1) << "Trying KWallet for password storage.";
base::nix::DesktopEnvironment used_desktop_env =
selected_backend == os_crypt::SelectedLinuxBackend::KWALLET
@@ -223,6 +224,7 @@ PasswordStoreFactory::BuildServiceInstanceFor(
} else {
backend.reset();
}
+#endif // defined(USE_DBUS)
} else if (selected_backend == os_crypt::SelectedLinuxBackend::GNOME_ANY ||
selected_backend ==
os_crypt::SelectedLinuxBackend::GNOME_KEYRING ||
diff --git chromium-75.0.3770.100/device/bluetooth/bluetooth_adapter_factory.cc chromium-75.0.3770.100/device/bluetooth/bluetooth_adapter_factory.cc
index 6413a162c..4a7fa801a 100644
--- chromium-75.0.3770.100/device/bluetooth/bluetooth_adapter_factory.cc
+++ chromium-75.0.3770.100/device/bluetooth/bluetooth_adapter_factory.cc
@@ -96,7 +96,7 @@ bool BluetoothAdapterFactory::IsBluetoothSupported() {
// instance even on platforms that would otherwise not support it.
if (default_adapter.Get())
return true;
-#if defined(OS_ANDROID) || defined(OS_WIN) || defined(OS_LINUX) || \
+#if defined(OS_ANDROID) || defined(OS_WIN) || (defined(OS_LINUX) && defined(USE_DBUS)) || \
defined(OS_MACOSX)
return true;
#else
@@ -119,7 +119,7 @@ bool BluetoothAdapterFactory::IsLowEnergySupported() {
return base::win::GetVersion() >= base::win::VERSION_WIN10;
#elif defined(OS_MACOSX)
return base::mac::IsAtLeastOS10_10();
-#elif defined(OS_LINUX)
+#elif (defined(OS_LINUX) && defined(USE_DBUS))
return true;
#else
return false;
diff --git chromium-75.0.3770.100/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc chromium-75.0.3770.100/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc
index adbe0ca74..91781e839 100644
--- chromium-75.0.3770.100/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc
+++ chromium-75.0.3770.100/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc
@@ -1328,7 +1328,7 @@ void BluetoothLowEnergyCreateServiceFunction::DoWork() {
// TODO: Ideally this should be handled by our feature system, so that this
// code doesn't even compile on OSes it isn't being used on, but currently this
// is not possible.
-#if !defined(OS_WIN)
+#if !defined(OS_WIN) && (!defined(OS_LINUX) || defined(USE_DBUS))
base::WeakPtr<device::BluetoothLocalGattService> service =
device::BluetoothLocalGattService::Create(
event_router_->adapter(),
@@ -1357,6 +1357,7 @@ bool BluetoothLowEnergyCreateCharacteristicFunction::ParseParams() {
}
void BluetoothLowEnergyCreateCharacteristicFunction::DoWork() {
+#if !defined(OS_LINUX) || defined(USE_DBUS)
device::BluetoothLocalGattService* service =
event_router_->adapter()->GetGattService(params_->service_id);
if (!service) {
@@ -1377,6 +1378,9 @@ void BluetoothLowEnergyCreateCharacteristicFunction::DoWork() {
Respond(ArgumentList(apibtle::CreateCharacteristic::Results::Create(
characteristic->GetIdentifier())));
+#else
+ Respond(Error(kErrorPlatformNotSupported));
+#endif
}
// createDescriptor:
@@ -1393,6 +1397,7 @@ bool BluetoothLowEnergyCreateDescriptorFunction::ParseParams() {
}
void BluetoothLowEnergyCreateDescriptorFunction::DoWork() {
+#if !defined(OS_LINUX) || defined(USE_DBUS)
device::BluetoothLocalGattCharacteristic* characteristic =
event_router_->GetLocalCharacteristic(params_->characteristic_id);
if (!characteristic) {
@@ -1408,6 +1413,9 @@ void BluetoothLowEnergyCreateDescriptorFunction::DoWork() {
Respond(ArgumentList(
apibtle::CreateDescriptor::Results::Create(descriptor->GetIdentifier())));
+#else
+ Respond(Error(kErrorPlatformNotSupported));
+#endif
}
// registerService:
diff --git chromium-75.0.3770.100/services/device/battery/battery_status_manager_default.cc chromium-75.0.3770.100/services/device/battery/battery_status_manager_default.cc
index 0249c6faa..ab2ff4e17 100644
--- chromium-75.0.3770.100/services/device/battery/battery_status_manager_default.cc
+++ chromium-75.0.3770.100/services/device/battery/battery_status_manager_default.cc
@@ -22,11 +22,10 @@ class BatteryStatusManagerDefault : public BatteryStatusManager {
private:
// BatteryStatusManager:
bool StartListeningBatteryChange() override {
- NOTIMPLEMENTED();
return false;
}
- void StopListeningBatteryChange() override { NOTIMPLEMENTED(); }
+ void StopListeningBatteryChange() override { }
DISALLOW_COPY_AND_ASSIGN(BatteryStatusManagerDefault);
};
diff --git chromium-75.0.3770.100/services/device/wake_lock/power_save_blocker/BUILD.gn chromium-75.0.3770.100/services/device/wake_lock/power_save_blocker/BUILD.gn
index 788bb497b..b40c0394f 100644
--- chromium-75.0.3770.100/services/device/wake_lock/power_save_blocker/BUILD.gn
+++ chromium-75.0.3770.100/services/device/wake_lock/power_save_blocker/BUILD.gn
@@ -62,6 +62,9 @@ source_set("power_save_blocker") {
if (is_chromeos || !use_x11 || !use_dbus) {
sources -= [ "power_save_blocker_x11.cc" ]
}
+ if (!is_chromeos && use_x11 && !use_dbus) {
+ sources += [ "power_save_blocker_ozone.cc" ]
+ }
if (is_android) {
deps += [ ":jni_headers" ]

View File

@ -1,27 +0,0 @@
diff --git chromium-73.0.3683.103/components/url_formatter/url_formatter.cc chromium-73.0.3683.103/components/url_formatter/url_formatter.cc
index 97bc67e4b..caead697b 100644
--- chromium-73.0.3683.103/components/url_formatter/url_formatter.cc
+++ chromium-73.0.3683.103/components/url_formatter/url_formatter.cc
@@ -410,14 +410,14 @@ IDNConversionStatus 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 kFormatUrlOmitTrivialSubdomains = 1 << 5;
-const FormatUrlType kFormatUrlTrimAfterHost = 1 << 6;
-const FormatUrlType kFormatUrlOmitFileScheme = 1 << 7;
-const FormatUrlType kFormatUrlOmitMailToScheme = 1 << 8;
+const FormatUrlType kFormatUrlOmitUsernamePassword = 0;
+const FormatUrlType kFormatUrlOmitHTTP = 0;
+const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname = 0;
+const FormatUrlType kFormatUrlOmitHTTPS = 0;
+const FormatUrlType kFormatUrlOmitTrivialSubdomains = 0;
+const FormatUrlType kFormatUrlTrimAfterHost = 0;
+const FormatUrlType kFormatUrlOmitFileScheme = 0;
+const FormatUrlType kFormatUrlOmitMailToScheme = 0;
const FormatUrlType kFormatUrlOmitDefaults =
kFormatUrlOmitUsernamePassword | kFormatUrlOmitHTTP |

View File

@ -1,26 +0,0 @@
Define WIDEVINE_CDM_VERSION_STRING && re-re-re-patch for latest ninja
Stolen from Arch basically.
gmt
--- a/chrome/common/chrome_content_client.cc
+++ b/chrome/common/chrome_content_client.cc
@@ -99,7 +99,7 @@
// Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
// bundled and not a component. When the Widevine CDM is a component, it is
// registered in widevine_cdm_component_installer.cc.
-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
+#if BUILDFLAG(ENABLE_WIDEVINE) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
#define REGISTER_BUNDLED_WIDEVINE_CDM
#include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
// TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
--- a/third_party/widevine/cdm/widevine_cdm_version.h
+++ b/third_party/widevine/cdm/widevine_cdm_version.h
@@ -11,5 +11,6 @@
// If the Widevine CDM is available define the following:
// - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
// as a string, e.g., "1.0.123.456").
+#define WIDEVINE_CDM_VERSION_STRING "unknown"
#endif // WIDEVINE_CDM_VERSION_H_

View File

@ -1,16 +0,0 @@
description: disable device discovery notifications by default
author: Michael Gilbert <mgilbert@debian.org>
bug-debian: http://bugs.debian.org/856571
--- a/chrome/browser/printing/cloud_print/privet_notifications.cc
+++ b/chrome/browser/printing/cloud_print/privet_notifications.cc
@@ -229,8 +229,7 @@ void PrivetNotificationService::DeviceCa
// static
bool PrivetNotificationService::IsEnabled() {
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
- return !command_line->HasSwitch(
- switches::kDisableDeviceDiscoveryNotifications);
+ return command_line->HasSwitch(switches::kEnableDeviceDiscoveryNotifications);
}
// static

View File

@ -1,56 +0,0 @@
# Disable some background communication with clients2.google.com
--- a/third_party/breakpad/breakpad/src/client/linux/sender/google_crash_report_sender.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/sender/google_crash_report_sender.cc
@@ -85,6 +85,7 @@ bool CheckForRequiredFlagsOrDie() {
}
int main(int argc, char *argv[]) {
+ return 0;
google::InitGoogleLogging(argv[0]);
google::ParseCommandLineFlags(&argc, &argv, true);
if (!CheckForRequiredFlagsOrDie()) {
--- a/chrome/browser/tracing/crash_service_uploader.cc
+++ b/chrome/browser/tracing/crash_service_uploader.cc
@@ -132,11 +132,16 @@ void TraceCrashServiceUploader::DoUpload
progress_callback_ = progress_callback;
done_callback_ = std::move(done_callback);
- base::PostTaskWithTraits(
- FROM_HERE, {base::TaskPriority::BEST_EFFORT},
- base::BindOnce(&TraceCrashServiceUploader::DoCompressOnBackgroundThread,
- base::Unretained(this), file_contents, upload_mode,
- upload_url_, std::move(metadata)));
+ if (!progress_callback_.is_null()) {
+ base::PostTaskWithTraits(
+ FROM_HERE, {content::BrowserThread::UI},
+ base::Bind(progress_callback_, 1, 1));
+ }
+ if (!done_callback_.is_null()) {
+ base::PostTaskWithTraits(
+ FROM_HERE, {content::BrowserThread::UI},
+ base::BindOnce(std::move(done_callback_), true, "Upload skipped."));
+ }
}
void TraceCrashServiceUploader::DoCompressOnBackgroundThread(
@@ -207,11 +212,6 @@ void TraceCrashServiceUploader::DoCompre
std::string post_data;
SetupMultipart(product, version, std::move(metadata), "trace.json.gz",
compressed_contents, &post_data);
-
- base::PostTaskWithTraits(
- FROM_HERE, {content::BrowserThread::UI},
- base::BindOnce(&TraceCrashServiceUploader::CreateAndStartURLLoader,
- base::Unretained(this), upload_url, post_data));
}
void TraceCrashServiceUploader::OnUploadError(
@@ -309,6 +309,7 @@ bool TraceCrashServiceUploader::Compress
void TraceCrashServiceUploader::CreateAndStartURLLoader(
const std::string& upload_url,
const std::string& post_data) {
+ return;
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(!simple_url_loader_);

View File

@ -1,660 +0,0 @@
# Disable domain reliability component
--- a/components/domain_reliability/google_configs.cc
+++ b/components/domain_reliability/google_configs.cc
@@ -13,575 +13,10 @@
namespace domain_reliability {
-namespace {
-
-struct GoogleConfigParams {
- const char* hostname;
- bool include_subdomains;
-
- // If true, prepend a collector URL within https://|hostname|/.
- bool include_origin_specific_collector;
-
- // If true, also add a config for www.|hostname|.
- //
- // |include_subdomains| will be false in the extra config, but
- // |include_origin_specific_collector| will be respected, and will use the
- // www subdomain as the origin for the collector so it matches the config.
- bool duplicate_for_www;
-};
-
-const GoogleConfigParams kGoogleConfigs[] = {
- // Origins with subdomains and same-origin collectors. Currently, all
- // origins with same-origin collectors also run collectors on their www
- // subdomain. (e.g., both foo.com and www.foo.com.)
- {"google.ac", true, true, true},
- {"google.ad", true, true, true},
- {"google.ae", true, true, true},
- {"google.af", true, true, true},
- {"google.ag", true, true, true},
- {"google.al", true, true, true},
- {"google.am", true, true, true},
- {"google.as", true, true, true},
- {"google.at", true, true, true},
- {"google.az", true, true, true},
- {"google.ba", true, true, true},
- {"google.be", true, true, true},
- {"google.bf", true, true, true},
- {"google.bg", true, true, true},
- {"google.bi", true, true, true},
- {"google.bj", true, true, true},
- {"google.bs", true, true, true},
- {"google.bt", true, true, true},
- {"google.by", true, true, true},
- {"google.ca", true, true, true},
- {"google.cc", true, true, true},
- {"google.cd", true, true, true},
- {"google.cf", true, true, true},
- {"google.cg", true, true, true},
- {"google.ch", true, true, true},
- {"google.ci", true, true, true},
- {"google.cl", true, true, true},
- {"google.cm", true, true, true},
- {"google.cn", true, true, true},
- {"google.co.ao", true, true, true},
- {"google.co.bw", true, true, true},
- {"google.co.ck", true, true, true},
- {"google.co.cr", true, true, true},
- {"google.co.hu", true, true, true},
- {"google.co.id", true, true, true},
- {"google.co.il", true, true, true},
- {"google.co.im", true, true, true},
- {"google.co.in", true, true, true},
- {"google.co.je", true, true, true},
- {"google.co.jp", true, true, true},
- {"google.co.ke", true, true, true},
- {"google.co.kr", true, true, true},
- {"google.co.ls", true, true, true},
- {"google.co.ma", true, true, true},
- {"google.co.mz", true, true, true},
- {"google.co.nz", true, true, true},
- {"google.co.th", true, true, true},
- {"google.co.tz", true, true, true},
- {"google.co.ug", true, true, true},
- {"google.co.uk", true, true, true},
- {"google.co.uz", true, true, true},
- {"google.co.ve", true, true, true},
- {"google.co.vi", true, true, true},
- {"google.co.za", true, true, true},
- {"google.co.zm", true, true, true},
- {"google.co.zw", true, true, true},
- {"google.com.af", true, true, true},
- {"google.com.ag", true, true, true},
- {"google.com.ai", true, true, true},
- {"google.com.ar", true, true, true},
- {"google.com.au", true, true, true},
- {"google.com.bd", true, true, true},
- {"google.com.bh", true, true, true},
- {"google.com.bn", true, true, true},
- {"google.com.bo", true, true, true},
- {"google.com.br", true, true, true},
- {"google.com.by", true, true, true},
- {"google.com.bz", true, true, true},
- {"google.com.cn", true, true, true},
- {"google.com.co", true, true, true},
- {"google.com.cu", true, true, true},
- {"google.com.cy", true, true, true},
- {"google.com.do", true, true, true},
- {"google.com.ec", true, true, true},
- {"google.com.eg", true, true, true},
- {"google.com.et", true, true, true},
- {"google.com.fj", true, true, true},
- {"google.com.ge", true, true, true},
- {"google.com.gh", true, true, true},
- {"google.com.gi", true, true, true},
- {"google.com.gr", true, true, true},
- {"google.com.gt", true, true, true},
- {"google.com.hk", true, true, true},
- {"google.com.iq", true, true, true},
- {"google.com.jm", true, true, true},
- {"google.com.jo", true, true, true},
- {"google.com.kh", true, true, true},
- {"google.com.kw", true, true, true},
- {"google.com.lb", true, true, true},
- {"google.com.ly", true, true, true},
- {"google.com.mm", true, true, true},
- {"google.com.mt", true, true, true},
- {"google.com.mx", true, true, true},
- {"google.com.my", true, true, true},
- {"google.com.na", true, true, true},
- {"google.com.nf", true, true, true},
- {"google.com.ng", true, true, true},
- {"google.com.ni", true, true, true},
- {"google.com.np", true, true, true},
- {"google.com.nr", true, true, true},
- {"google.com.om", true, true, true},
- {"google.com.pa", true, true, true},
- {"google.com.pe", true, true, true},
- {"google.com.pg", true, true, true},
- {"google.com.ph", true, true, true},
- {"google.com.pk", true, true, true},
- {"google.com.pl", true, true, true},
- {"google.com.pr", true, true, true},
- {"google.com.py", true, true, true},
- {"google.com.qa", true, true, true},
- {"google.com.ru", true, true, true},
- {"google.com.sa", true, true, true},
- {"google.com.sb", true, true, true},
- {"google.com.sg", true, true, true},
- {"google.com.sl", true, true, true},
- {"google.com.sv", true, true, true},
- {"google.com.tj", true, true, true},
- {"google.com.tn", true, true, true},
- {"google.com.tr", true, true, true},
- {"google.com.tw", true, true, true},
- {"google.com.ua", true, true, true},
- {"google.com.uy", true, true, true},
- {"google.com.vc", true, true, true},
- {"google.com.ve", true, true, true},
- {"google.com.vn", true, true, true},
- {"google.cv", true, true, true},
- {"google.cz", true, true, true},
- {"google.de", true, true, true},
- {"google.dj", true, true, true},
- {"google.dk", true, true, true},
- {"google.dm", true, true, true},
- {"google.dz", true, true, true},
- {"google.ee", true, true, true},
- {"google.es", true, true, true},
- {"google.fi", true, true, true},
- {"google.fm", true, true, true},
- {"google.fr", true, true, true},
- {"google.ga", true, true, true},
- {"google.ge", true, true, true},
- {"google.gg", true, true, true},
- {"google.gl", true, true, true},
- {"google.gm", true, true, true},
- {"google.gp", true, true, true},
- {"google.gr", true, true, true},
- {"google.gy", true, true, true},
- {"google.hk", true, true, true},
- {"google.hn", true, true, true},
- {"google.hr", true, true, true},
- {"google.ht", true, true, true},
- {"google.hu", true, true, true},
- {"google.ie", true, true, true},
- {"google.im", true, true, true},
- {"google.iq", true, true, true},
- {"google.ir", true, true, true},
- {"google.is", true, true, true},
- {"google.it", true, true, true},
- {"google.it.ao", true, true, true},
- {"google.je", true, true, true},
- {"google.jo", true, true, true},
- {"google.jp", true, true, true},
- {"google.kg", true, true, true},
- {"google.ki", true, true, true},
- {"google.kz", true, true, true},
- {"google.la", true, true, true},
- {"google.li", true, true, true},
- {"google.lk", true, true, true},
- {"google.lt", true, true, true},
- {"google.lu", true, true, true},
- {"google.lv", true, true, true},
- {"google.md", true, true, true},
- {"google.me", true, true, true},
- {"google.mg", true, true, true},
- {"google.mk", true, true, true},
- {"google.ml", true, true, true},
- {"google.mn", true, true, true},
- {"google.ms", true, true, true},
- {"google.mu", true, true, true},
- {"google.mv", true, true, true},
- {"google.mw", true, true, true},
- {"google.ne", true, true, true},
- {"google.ne.jp", true, true, true},
- {"google.ng", true, true, true},
- {"google.nl", true, true, true},
- {"google.no", true, true, true},
- {"google.nr", true, true, true},
- {"google.nu", true, true, true},
- {"google.off.ai", true, true, true},
- {"google.pk", true, true, true},
- {"google.pl", true, true, true},
- {"google.pn", true, true, true},
- {"google.ps", true, true, true},
- {"google.pt", true, true, true},
- {"google.ro", true, true, true},
- {"google.rs", true, true, true},
- {"google.ru", true, true, true},
- {"google.rw", true, true, true},
- {"google.sc", true, true, true},
- {"google.se", true, true, true},
- {"google.sh", true, true, true},
- {"google.si", true, true, true},
- {"google.sk", true, true, true},
- {"google.sm", true, true, true},
- {"google.sn", true, true, true},
- {"google.so", true, true, true},
- {"google.sr", true, true, true},
- {"google.st", true, true, true},
- {"google.td", true, true, true},
- {"google.tg", true, true, true},
- {"google.tk", true, true, true},
- {"google.tl", true, true, true},
- {"google.tm", true, true, true},
- {"google.tn", true, true, true},
- {"google.to", true, true, true},
- {"google.tt", true, true, true},
- {"google.us", true, true, true},
- {"google.uz", true, true, true},
- {"google.vg", true, true, true},
- {"google.vu", true, true, true},
- {"google.ws", true, true, true},
- {"l.google.com", true, true, true},
-
- // google.com is a special case. We have a custom config for www.google.com,
- // so set generate_config_for_www_subdomain = false.
- {"google.com", true, true, false},
-
- // Origins with subdomains and without same-origin collectors.
- {"2mdn.net", true, false, false},
- {"adgoogle.net", true, false, false},
- {"admeld.com", true, false, false},
- {"admob.biz", true, false, false},
- {"admob.co.in", true, false, false},
- {"admob.co.kr", true, false, false},
- {"admob.co.nz", true, false, false},
- {"admob.co.uk", true, false, false},
- {"admob.co.za", true, false, false},
- {"admob.com", true, false, false},
- {"admob.com.br", true, false, false},
- {"admob.com.es", true, false, false},
- {"admob.com.fr", true, false, false},
- {"admob.com.mx", true, false, false},
- {"admob.com.pt", true, false, false},
- {"admob.de", true, false, false},
- {"admob.dk", true, false, false},
- {"admob.es", true, false, false},
- {"admob.fi", true, false, false},
- {"admob.fr", true, false, false},
- {"admob.gr", true, false, false},
- {"admob.hk", true, false, false},
- {"admob.ie", true, false, false},
- {"admob.in", true, false, false},
- {"admob.it", true, false, false},
- {"admob.jp", true, false, false},
- {"admob.kr", true, false, false},
- {"admob.mobi", true, false, false},
- {"admob.no", true, false, false},
- {"admob.ph", true, false, false},
- {"admob.pt", true, false, false},
- {"admob.sg", true, false, false},
- {"admob.tw", true, false, false},
- {"admob.us", true, false, false},
- {"admob.vn", true, false, false},
- {"adwhirl.com", true, false, false},
- {"ampproject.com", true, false, false},
- {"ampproject.net", true, false, false},
- {"ampproject.org", true, false, false},
- {"android.com", true, false, false},
- {"anycast-edge.metric.gstatic.com", true, false, false},
- {"anycast-stb.metric.gstatic.com", true, false, false},
- {"anycast.metric.gstatic.com", true, false, false},
- {"cdn.ampproject.org", true, false, false},
- {"chromecast.com", true, false, false},
- {"chromeexperiments.com", true, false, false},
- {"chromestatus.com", true, false, false},
- {"chromium.org", true, false, false},
- {"clients6.google.com", true, false, false},
- {"cloudendpointsapis.com", true, false, false},
- {"dartmotif.com", true, false, false},
- {"dartsearch.net", true, false, false},
- {"doubleclick.com", true, false, false},
- {"doubleclick.ne.jp", true, false, false},
- {"doubleclick.net", true, false, false},
- {"doubleclickusercontent.com", true, false, false},
- {"fls.doubleclick.net", true, false, false},
- {"g.co", true, false, false},
- {"g.doubleclick.net", true, false, false},
- {"ggpht.com", true, false, false},
- {"gmodules.com", true, false, false},
- {"goo.gl", true, false, false},
- {"google-syndication.com", true, false, false},
- {"google.cat", true, false, false},
- {"google.info", true, false, false},
- {"google.jobs", true, false, false},
- {"google.net", true, false, false},
- {"google.org", true, false, false},
- {"google.stackdriver.com", true, false, false},
- {"googleadapis.com", true, false, false},
- {"googleadservices.com", true, false, false},
- {"googleadsserving.cn", true, false, false},
- {"googlealumni.com", true, false, false},
- {"googleapis.cn", true, false, false},
- {"googleapis.com", true, false, false},
- {"googleapps.com", true, false, false},
- {"googlecbs.com", true, false, false},
- {"googlecode.com", true, false, false},
- {"googlecommerce.com", true, false, false},
- {"googledrive.com", true, false, false},
- {"googleenterprise.com", true, false, false},
- {"googlefiber.com", true, false, false},
- {"googlefiber.net", true, false, false},
- {"googlegoro.com", true, false, false},
- {"googlehosted.com", true, false, false},
- {"googlepayments.com", true, false, false},
- {"googlesource.com", true, false, false},
- {"googlesyndication.com", true, false, false},
- {"googletagmanager.com", true, false, false},
- {"googletagservices.com", true, false, false},
- {"googleusercontent.com", true, false, false},
- {"googlezip.net", true, false, false},
- {"gstatic.cn", true, false, false},
- {"gstatic.com", true, false, false},
- {"gvt3.com", true, false, false},
- {"gvt9.com", true, false, false},
- {"picasa.com", true, false, false},
- {"recaptcha.net", true, false, false},
- {"stackdriver.com", true, false, false},
- {"stbcast-stb.metric.gstatic.com", true, false, false},
- {"stbcast.metric.gstatic.com", true, false, false},
- {"stbcast2-stb.metric.gstatic.com", true, false, false},
- {"stbcast2.metric.gstatic.com", true, false, false},
- {"stbcast3-stb.metric.gstatic.com", true, false, false},
- {"stbcast3.metric.gstatic.com", true, false, false},
- {"stbcast4-stb.metric.gstatic.com", true, false, false},
- {"stbcast4.metric.gstatic.com", true, false, false},
- {"unicast-edge.metric.gstatic.com", true, false, false},
- {"unicast-stb.metric.gstatic.com", true, false, false},
- {"unicast.metric.gstatic.com", true, false, false},
- {"unicast2-stb.metric.gstatic.com", true, false, false},
- {"unicast2.metric.gstatic.com", true, false, false},
- {"waze.com", true, false, false},
- {"withgoogle.com", true, false, false},
- {"youtu.be", true, false, false},
- {"youtube-3rd-party.com", true, false, false},
- {"youtube-nocookie.com", true, false, false},
- {"youtube.ae", true, false, false},
- {"youtube.al", true, false, false},
- {"youtube.am", true, false, false},
- {"youtube.at", true, false, false},
- {"youtube.az", true, false, false},
- {"youtube.ba", true, false, false},
- {"youtube.be", true, false, false},
- {"youtube.bg", true, false, false},
- {"youtube.bh", true, false, false},
- {"youtube.bo", true, false, false},
- {"youtube.ca", true, false, false},
- {"youtube.cat", true, false, false},
- {"youtube.ch", true, false, false},
- {"youtube.cl", true, false, false},
- {"youtube.co", true, false, false},
- {"youtube.co.ae", true, false, false},
- {"youtube.co.at", true, false, false},
- {"youtube.co.hu", true, false, false},
- {"youtube.co.id", true, false, false},
- {"youtube.co.il", true, false, false},
- {"youtube.co.in", true, false, false},
- {"youtube.co.jp", true, false, false},
- {"youtube.co.ke", true, false, false},
- {"youtube.co.kr", true, false, false},
- {"youtube.co.ma", true, false, false},
- {"youtube.co.nz", true, false, false},
- {"youtube.co.th", true, false, false},
- {"youtube.co.ug", true, false, false},
- {"youtube.co.uk", true, false, false},
- {"youtube.co.ve", true, false, false},
- {"youtube.co.za", true, false, false},
- {"youtube.com", true, false, false},
- {"youtube.com.ar", true, false, false},
- {"youtube.com.au", true, false, false},
- {"youtube.com.az", true, false, false},
- {"youtube.com.bh", true, false, false},
- {"youtube.com.bo", true, false, false},
- {"youtube.com.br", true, false, false},
- {"youtube.com.by", true, false, false},
- {"youtube.com.co", true, false, false},
- {"youtube.com.do", true, false, false},
- {"youtube.com.ee", true, false, false},
- {"youtube.com.eg", true, false, false},
- {"youtube.com.es", true, false, false},
- {"youtube.com.gh", true, false, false},
- {"youtube.com.gr", true, false, false},
- {"youtube.com.gt", true, false, false},
- {"youtube.com.hk", true, false, false},
- {"youtube.com.hr", true, false, false},
- {"youtube.com.jm", true, false, false},
- {"youtube.com.jo", true, false, false},
- {"youtube.com.kw", true, false, false},
- {"youtube.com.lb", true, false, false},
- {"youtube.com.lv", true, false, false},
- {"youtube.com.mk", true, false, false},
- {"youtube.com.mt", true, false, false},
- {"youtube.com.mx", true, false, false},
- {"youtube.com.my", true, false, false},
- {"youtube.com.ng", true, false, false},
- {"youtube.com.om", true, false, false},
- {"youtube.com.pe", true, false, false},
- {"youtube.com.ph", true, false, false},
- {"youtube.com.pk", true, false, false},
- {"youtube.com.pt", true, false, false},
- {"youtube.com.qa", true, false, false},
- {"youtube.com.ro", true, false, false},
- {"youtube.com.sa", true, false, false},
- {"youtube.com.sg", true, false, false},
- {"youtube.com.tn", true, false, false},
- {"youtube.com.tr", true, false, false},
- {"youtube.com.tw", true, false, false},
- {"youtube.com.ua", true, false, false},
- {"youtube.com.uy", true, false, false},
- {"youtube.com.ve", true, false, false},
- {"youtube.cz", true, false, false},
- {"youtube.de", true, false, false},
- {"youtube.dk", true, false, false},
- {"youtube.ee", true, false, false},
- {"youtube.es", true, false, false},
- {"youtube.fi", true, false, false},
- {"youtube.fr", true, false, false},
- {"youtube.ge", true, false, false},
- {"youtube.gr", true, false, false},
- {"youtube.gt", true, false, false},
- {"youtube.hk", true, false, false},
- {"youtube.hr", true, false, false},
- {"youtube.hu", true, false, false},
- {"youtube.ie", true, false, false},
- {"youtube.in", true, false, false},
- {"youtube.is", true, false, false},
- {"youtube.it", true, false, false},
- {"youtube.jo", true, false, false},
- {"youtube.jp", true, false, false},
- {"youtube.kr", true, false, false},
- {"youtube.lk", true, false, false},
- {"youtube.lt", true, false, false},
- {"youtube.lv", true, false, false},
- {"youtube.ma", true, false, false},
- {"youtube.md", true, false, false},
- {"youtube.me", true, false, false},
- {"youtube.mk", true, false, false},
- {"youtube.mx", true, false, false},
- {"youtube.my", true, false, false},
- {"youtube.ng", true, false, false},
- {"youtube.nl", true, false, false},
- {"youtube.no", true, false, false},
- {"youtube.pe", true, false, false},
- {"youtube.ph", true, false, false},
- {"youtube.pk", true, false, false},
- {"youtube.pl", true, false, false},
- {"youtube.pr", true, false, false},
- {"youtube.pt", true, false, false},
- {"youtube.qa", true, false, false},
- {"youtube.ro", true, false, false},
- {"youtube.rs", true, false, false},
- {"youtube.ru", true, false, false},
- {"youtube.sa", true, false, false},
- {"youtube.se", true, false, false},
- {"youtube.sg", true, false, false},
- {"youtube.si", true, false, false},
- {"youtube.sk", true, false, false},
- {"youtube.sn", true, false, false},
- {"youtube.tn", true, false, false},
- {"youtube.ua", true, false, false},
- {"youtube.ug", true, false, false},
- {"youtube.uy", true, false, false},
- {"youtube.vn", true, false, false},
- {"youtubeeducation.com", true, false, false},
- {"youtubemobilesupport.com", true, false, false},
- {"ytimg.com", true, false, false},
-
- // Origins without subdomains and with same-origin collectors.
- {"accounts.google.com", false, true, false},
- {"apis.google.com", false, true, false},
- {"app.google.stackdriver.com", false, true, false},
- {"b.mail.google.com", false, true, false},
- {"chatenabled.mail.google.com", false, true, false},
- {"ddm.google.com", false, true, false},
- {"gmail.com", false, true, false},
- {"gmail.google.com", false, true, false},
- {"mail-attachment.googleusercontent.com", false, true, false},
- {"mail.google.com", false, true, false},
- {"www.gmail.com", false, true, false},
-
- // Origins without subdomains or same-origin collectors.
- {"ad.doubleclick.net", false, false, false},
- {"drive.google.com", false, false, false},
- {"redirector.googlevideo.com", false, false, false},
-};
-
-const char* const kGoogleStandardCollectors[] = {
- "https://beacons.gcp.gvt2.com/domainreliability/upload",
- "https://beacons.gvt2.com/domainreliability/upload",
- "https://beacons2.gvt2.com/domainreliability/upload",
- "https://beacons3.gvt2.com/domainreliability/upload",
- "https://beacons4.gvt2.com/domainreliability/upload",
- "https://beacons5.gvt2.com/domainreliability/upload",
- "https://beacons5.gvt3.com/domainreliability/upload",
- "https://clients2.google.com/domainreliability/upload",
-};
-
-const char* const kGoogleOriginSpecificCollectorPathString =
- "/domainreliability/upload";
-
-static std::unique_ptr<DomainReliabilityConfig> CreateGoogleConfig(
- const GoogleConfigParams& params,
- bool is_www) {
- if (is_www)
- DCHECK(params.duplicate_for_www);
-
- std::string hostname = (is_www ? "www." : "") + std::string(params.hostname);
- bool include_subdomains = params.include_subdomains && !is_www;
-
- std::unique_ptr<DomainReliabilityConfig> config(
- new DomainReliabilityConfig());
- config->origin = GURL("https://" + hostname + "/");
- config->include_subdomains = include_subdomains;
- config->collectors.clear();
- if (params.include_origin_specific_collector) {
- GURL::Replacements replacements;
- replacements.SetPathStr(kGoogleOriginSpecificCollectorPathString);
- config->collectors.push_back(
- std::make_unique<GURL>(config->origin.ReplaceComponents(replacements)));
- }
- for (size_t i = 0; i < base::size(kGoogleStandardCollectors); i++)
- config->collectors.push_back(
- std::make_unique<GURL>(kGoogleStandardCollectors[i]));
- config->success_sample_rate = 0.05;
- config->failure_sample_rate = 1.00;
- config->path_prefixes.clear();
- return config;
-}
-
-} // namespace
-
// static
void GetAllGoogleConfigs(
std::vector<std::unique_ptr<DomainReliabilityConfig>>* configs_out) {
configs_out->clear();
-
- for (auto& params : kGoogleConfigs) {
- configs_out->push_back(CreateGoogleConfig(params, false));
- if (params.duplicate_for_www)
- configs_out->push_back(CreateGoogleConfig(params, true));
- }
}
} // namespace domain_reliability
--- a/components/domain_reliability/uploader.cc
+++ b/components/domain_reliability/uploader.cc
@@ -82,7 +82,7 @@ class DomainReliabilityUploaderImpl
if (discard_uploads_)
discarded_upload_count_++;
- if (discard_uploads_ || shutdown_) {
+ if (true) {
DVLOG(1) << "Discarding report instead of uploading.";
UploadResult result;
result.status = UploadResult::SUCCESS;
--- a/components/domain_reliability/bake_in_configs.py
+++ b/components/domain_reliability/bake_in_configs.py
@@ -490,7 +490,7 @@ def origin_is_whitelisted(origin):
domain = origin[8:-1]
else:
return False
- return any(domain == e or domain.endswith('.' + e) for e in DOMAIN_WHITELIST)
+ return False
def quote_and_wrap_text(text, width=79, prefix=' "', suffix='"'):
--- a/components/domain_reliability/BUILD.gn
+++ b/components/domain_reliability/BUILD.gn
@@ -9,26 +9,6 @@ action("bake_in_configs") {
script = "bake_in_configs.py"
inputs = [
- "baked_in_configs/c_android_clients_google_com.json",
- "baked_in_configs/c_bigcache_googleapis_com.json",
- "baked_in_configs/c_doc-0-0-sj_sj_googleusercontent_com.json",
- "baked_in_configs/c_docs_google_com.json",
- "baked_in_configs/c_drive_google_com.json",
- "baked_in_configs/c_googlesyndication_com.json",
- "baked_in_configs/c_pack_google_com.json",
- "baked_in_configs/c_play_google_com.json",
- "baked_in_configs/c_youtube_com.json",
- "baked_in_configs/clients2_google_com.json",
- "baked_in_configs/docs_google_com.json",
- "baked_in_configs/gcp_gvt2_com.json",
- "baked_in_configs/gcp_gvt6_com.json",
- "baked_in_configs/google-analytics_com.json",
- "baked_in_configs/googlevideo_com.json",
- "baked_in_configs/gvt1_com.json",
- "baked_in_configs/gvt2_com.json",
- "baked_in_configs/gvt6_com.json",
- "baked_in_configs/ssl_gstatic_com.json",
- "baked_in_configs/www_google_com.json",
]
output_file = "$target_gen_dir/baked_in_configs.cc"
@@ -38,13 +18,21 @@ action("bake_in_configs") {
# The JSON file list is too long for the command line on Windows, so put
# them in a response file.
- response_file_contents = rebase_path(inputs, root_build_dir)
- args = [
- "--file-list",
- "{{response_file_name}}",
- "--output",
- rebase_path(output_file, root_build_dir),
- ]
+ if (is_win) {
+ args = [
+ "--file-list",
+ "nul",
+ "--output",
+ rebase_path(output_file, root_build_dir),
+ ]
+ } else {
+ args = [
+ "--file-list",
+ "/dev/null",
+ "--output",
+ rebase_path(output_file, root_build_dir),
+ ]
+ }
}
jumbo_component("domain_reliability") {

View File

@ -1,98 +0,0 @@
# Disables file download quarantining
--- a/content/browser/renderer_host/pepper/pepper_file_io_host.cc
+++ b/content/browser/renderer_host/pepper/pepper_file_io_host.cc
@@ -432,7 +432,7 @@ void PepperFileIOHost::OnLocalFileOpened
ppapi::host::ReplyMessageContext reply_context,
const base::FilePath& path,
base::File::Error error_code) {
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if 0
// Quarantining a file before its contents are available is only supported on
// Windows and Linux.
if (!FileOpenForWrite(open_flags_) || error_code != base::File::FILE_OK) {
@@ -452,7 +452,7 @@ void PepperFileIOHost::OnLocalFileOpened
#endif
}
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if 0
void PepperFileIOHost::OnLocalFileQuarantined(
ppapi::host::ReplyMessageContext reply_context,
const base::FilePath& path,
--- a/content/browser/renderer_host/pepper/pepper_file_io_host.h
+++ b/content/browser/renderer_host/pepper/pepper_file_io_host.h
@@ -15,7 +15,6 @@
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
-#include "components/download/quarantine/quarantine.h"
#include "content/browser/renderer_host/pepper/browser_ppapi_host_impl.h"
#include "ipc/ipc_listener.h"
#include "ipc/ipc_platform_file.h"
@@ -92,10 +91,6 @@ class PepperFileIOHost : public ppapi::h
const base::FilePath& path,
base::File::Error error_code);
- void OnLocalFileQuarantined(ppapi::host::ReplyMessageContext reply_context,
- const base::FilePath& path,
- download::QuarantineFileResult quarantine_result);
-
void SendFileOpenReply(ppapi::host::ReplyMessageContext reply_context,
base::File::Error error_code);
--- a/components/download/internal/common/base_file.cc
+++ b/components/download/internal/common/base_file.cc
@@ -22,7 +22,6 @@
#include "components/download/public/common/download_interrupt_reasons_utils.h"
#include "components/download/public/common/download_item.h"
#include "components/download/public/common/download_stats.h"
-#include "components/download/quarantine/quarantine.h"
#include "crypto/secure_hash.h"
#if defined(OS_ANDROID)
@@ -494,7 +493,7 @@ DownloadInterruptReason BaseFile::Publis
}
#endif // defined(OS_ANDROID)
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
+#if 0
namespace {
@@ -578,7 +577,7 @@ DownloadInterruptReason BaseFile::Annota
}
return DOWNLOAD_INTERRUPT_REASON_FILE_FAILED;
}
-#else // !OS_WIN && !OS_MACOSX && !OS_LINUX
+#else // 1
DownloadInterruptReason BaseFile::AnnotateWithSourceInformation(
const std::string& client_guid,
const GURL& source_url,
--- a/components/download/quarantine/quarantine.cc
+++ b/components/download/quarantine/quarantine.cc
@@ -6,8 +6,6 @@
#include "build/build_config.h"
-#if !defined(OS_WIN) && !defined(OS_MACOSX)
-
namespace download {
QuarantineFileResult QuarantineFile(const base::FilePath& file,
@@ -18,5 +16,3 @@ QuarantineFileResult QuarantineFile(cons
}
} // namespace download
-
-#endif // !WIN && !MAC
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -51,7 +51,6 @@ jumbo_source_set("browser") {
"//components/discardable_memory/service",
"//components/download/database",
"//components/download/public/common:public",
- "//components/download/quarantine",
"//components/filename_generation",
"//components/link_header_util",
"//components/metrics",

View File

@ -1,66 +0,0 @@
# NOTE: Modified to remove usage of compiler #if macros
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 8 Jul 2018 18:16:34 +0200
Subject: Disable fetching of all field trials
---
.../src/org/chromium/chrome/browser/ChromeFeatureList.java | 12 +++---------
components/variations/service/variations_service.cc | 4 ++++
2 files changed, 7 insertions(+), 9 deletions(-)
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -106,9 +106,7 @@ public abstract class ChromeFeatureList
*/
public static int getFieldTrialParamByFeatureAsInt(
String featureName, String paramName, int defaultValue) {
- if (sTestFeatures != null) return defaultValue;
- assert isInitialized();
- return nativeGetFieldTrialParamByFeatureAsInt(featureName, paramName, defaultValue);
+ return defaultValue;
}
/**
@@ -125,9 +123,7 @@ public abstract class ChromeFeatureList
*/
public static double getFieldTrialParamByFeatureAsDouble(
String featureName, String paramName, double defaultValue) {
- if (sTestFeatures != null) return defaultValue;
- assert isInitialized();
- return nativeGetFieldTrialParamByFeatureAsDouble(featureName, paramName, defaultValue);
+ return defaultValue;
}
/**
@@ -144,9 +140,7 @@ public abstract class ChromeFeatureList
*/
public static boolean getFieldTrialParamByFeatureAsBoolean(
String featureName, String paramName, boolean defaultValue) {
- if (sTestFeatures != null) return defaultValue;
- assert isInitialized();
- return nativeGetFieldTrialParamByFeatureAsBoolean(featureName, paramName, defaultValue);
+ return defaultValue;
}
// Alphabetical:
--- a/components/variations/service/variations_service.cc
+++ b/components/variations/service/variations_service.cc
@@ -240,17 +240,7 @@ bool GetInstanceManipulations(const net:
// Variations seed fetching is only enabled in official Chrome builds, if a URL
// is specified on the command line, and for testing.
bool IsFetchingEnabled() {
-#if !defined(GOOGLE_CHROME_BUILD)
- if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kVariationsServerURL) &&
- !g_should_fetch_for_testing) {
- DVLOG(1)
- << "Not performing repeated fetching in unofficial build without --"
- << switches::kVariationsServerURL << " specified.";
- return false;
- }
-#endif
- return true;
+ return false;
}
std::unique_ptr<SeedResponse> MaybeImportFirstRunSeed(

View File

@ -1,107 +0,0 @@
# Disables references to fonts.googleapis.com
--- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
+++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
@@ -309,7 +309,7 @@ bool DomDistillerViewerSource::ShouldSer
}
std::string DomDistillerViewerSource::GetContentSecurityPolicyStyleSrc() const {
- return "style-src 'self' https://fonts.googleapis.com;";
+ return "style-src 'self';";
}
std::string DomDistillerViewerSource::GetContentSecurityPolicyChildSrc() const {
--- 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}
--- a/third_party/catapult/third_party/polymer/components/font-roboto/roboto.html
+++ b/third_party/catapult/third_party/polymer/components/font-roboto/roboto.html
@@ -7,4 +7,4 @@ The complete set of contributors may be
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
-<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700|Roboto:400,300,300italic,400italic,500,500italic,700,700italic" crossorigin="anonymous">
+<link rel="stylesheet" href="chrome://resources/css/roboto.css">
--- a/third_party/catapult/tracing/third_party/gl-matrix/jsdoc-template/static/default.css
+++ b/third_party/catapult/tracing/third_party/gl-matrix/jsdoc-template/static/default.css
@@ -168,7 +168,7 @@ ul.inheritsList
/* Copied from styles.css generated by Github Pages */
-@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
+@import url(chrome://resources/css/roboto.css);
body {
padding:50px;
--- 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,
--- a/third_party/flatbuffers/src/docs/header.html
+++ b/third_party/flatbuffers/src/docs/header.html
@@ -14,7 +14,7 @@ $treeview
$search
$mathjax
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
-<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
+<link href="chrome://resources/css/roboto.css" rel="stylesheet">
$extrastylesheet
</head>
<body>
--- a/components/dom_distiller/core/javascript/dom_distiller_viewer.js
+++ b/components/dom_distiller/core/javascript/dom_distiller_viewer.js
@@ -123,7 +123,7 @@ function maybeSetWebFont() {
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);
--- a/tools/md_browser/base.css
+++ b/tools/md_browser/base.css
@@ -16,8 +16,7 @@
/* Common styles and definitions. */
-@import "//fonts.googleapis.com/css?family=Open+Sans:300,400,700&subset=latin,cyrillic-ext,greek-ext,cyrillic,greek,vietnamese,latin-ext";
-@import "//fonts.googleapis.com/css?family=Source+Code+Pro";
+@import "chrome://resources/css/roboto.css";
*,
*::after,
*::before {
@@ -72,7 +71,7 @@ ul, ol {
user-select: none;
}
.u-monospace {
- font-family: 'Source Code Pro', monospace;
+ font-family: monospace;
}
/* Common.soy */
@@ -82,7 +81,7 @@ ul, ol {
color: #000;
display: -ms-flexbox;
display: flex;
- font: 14px/1.54 'Open Sans', sans-serif;
+ font: 14px/1.54 'Roboto', sans-serif;
min-height: 100vh;
-ms-flex-direction: column;
flex-direction: column;

View File

@ -1,138 +0,0 @@
# Disables Gaia code
# Somehow it is still activated even without being signed-in: https://github.com/Eloston/ungoogled-chromium/issues/104
--- a/google_apis/gaia/gaia_auth_fetcher.cc
+++ b/google_apis/gaia/gaia_auth_fetcher.cc
@@ -262,61 +262,6 @@ void GaiaAuthFetcher::CreateAndStartGaia
int load_flags,
const net::NetworkTrafficAnnotationTag& traffic_annotation) {
DCHECK(!fetch_pending_) << "Tried to fetch two things at once!";
-
- auto resource_request = std::make_unique<network::ResourceRequest>();
- resource_request->url = gaia_gurl;
- original_url_ = gaia_gurl;
-
- if (!(load_flags & net::LOAD_DO_NOT_SEND_COOKIES)) {
- DCHECK_EQ(GaiaUrls::GetInstance()->gaia_url(), gaia_gurl.GetOrigin())
- << gaia_gurl;
- resource_request->site_for_cookies = GaiaUrls::GetInstance()->gaia_url();
- }
-
- if (!body.empty())
- resource_request->method = "POST";
-
- if (!headers.empty())
- resource_request->headers.AddHeadersFromString(headers);
-
- // 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.
- resource_request->load_flags = load_flags;
-
- // Use raw headers as the cookies are filtered-out of the response when
- // serialized at the IPC layer.
- resource_request->report_raw_headers = true;
-
- url_loader_ = network::SimpleURLLoader::Create(std::move(resource_request),
- traffic_annotation);
- if (!body.empty())
- url_loader_->AttachStringForUpload(body,
- "application/x-www-form-urlencoded");
-
- url_loader_->SetAllowHttpErrorResults(true);
-
- VLOG(2) << "Gaia fetcher URL: " << gaia_gurl.spec();
- VLOG(2) << "Gaia fetcher headers: " << headers;
- VLOG(2) << "Gaia fetcher body: " << body;
-
- // 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
- url_loader_->SetRetryOptions(
- 3, network::SimpleURLLoader::RETRY_ON_NETWORK_CHANGE);
-
- fetch_pending_ = true;
-
- // Unretained is OK below as |url_loader_| is owned by this.
- url_loader_->DownloadToString(
- url_loader_factory_.get(),
- base::BindOnce(&GaiaAuthFetcher::OnURLLoadComplete,
- base::Unretained(this)),
- kMaxMessageSize);
}
// static
--- a/chrome/browser/resources/component_extension_resources.grd
+++ b/chrome/browser/resources/component_extension_resources.grd
@@ -32,8 +32,6 @@
<!-- Bookmarks -->
<include name="IDR_COMPONENT_BOOKMARKS_BOOKMARKS_HTML" file="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" />
--- a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
+++ b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
@@ -43,19 +43,6 @@ ComponentLoader* GetComponentLoader(Brow
void LoadGaiaAuthExtension(BrowserContext* context) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- 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) {
--- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
+++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
@@ -67,7 +67,6 @@ bool IsComponentExtensionWhitelisted(int
#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
--- a/chrome/browser/ui/webui/signin/inline_login_ui.cc
+++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc
@@ -53,7 +53,6 @@ content::WebUIDataSource* CreateWebUIDat
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(
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -392,7 +392,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" />
@@ -492,7 +491,6 @@
<include name="IDR_WEBRTC_LOGS_JS" file="resources\media\webrtc_logs.js" type="BINDATA" />
<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>

View File

@ -1,28 +0,0 @@
# Disable Google Cloud Messaging (GCM) client
--- a/components/gcm_driver/gcm_client_impl.cc
+++ b/components/gcm_driver/gcm_client_impl.cc
@@ -496,6 +496,7 @@ void GCMClientImpl::StartGCM() {
void GCMClientImpl::InitializeMCSClient() {
DCHECK(network_connection_tracker_);
+ return;
std::vector<GURL> endpoints;
endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
@@ -685,6 +686,7 @@ void GCMClientImpl::RemoveHeartbeatInter
}
void GCMClientImpl::StartCheckin() {
+ return;
// Make sure no checkin is in progress.
if (checkin_request_)
return;
@@ -760,6 +762,7 @@ void GCMClientImpl::SetGServicesSettings
}
void GCMClientImpl::SchedulePeriodicCheckin() {
+ return;
// Make sure no checkin is in progress.
if (checkin_request_.get() || !device_checkin_info_.accounts_set)
return;

View File

@ -1,588 +0,0 @@
# Disables various detections of Google hosts and functionality specific to them
--- a/net/base/url_util.cc
+++ b/net/base/url_util.cc
@@ -392,28 +392,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;
}
--- a/components/variations/net/variations_http_headers.cc
+++ b/components/variations/net/variations_http_headers.cc
@@ -29,10 +29,6 @@ namespace variations {
namespace {
-// The name string for the header for variations information.
-// Note that prior to M33 this header was named X-Chrome-Variations.
-const char kClientDataHeader[] = "X-Client-Data";
-
// The result of checking if a URL should have variations headers appended.
// This enum is used to record UMA histogram values, and should not be
// reordered.
@@ -96,34 +92,7 @@ class VariationsHeaderHelper {
: VariationsHeaderHelper(request, null_url_request, variations_header) {}
bool AppendHeaderIfNeeded(const GURL& url, InIncognito incognito) {
- // Note the criteria for attaching client experiment headers:
- // 1. We only transmit to Google owned domains which can evaluate
- // experiments.
- // 1a. These include hosts which have a standard postfix such as:
- // *.doubleclick.net or *.googlesyndication.com or
- // exactly www.googleadservices.com or
- // international TLD domains *.google.<TLD> or *.youtube.<TLD>.
- // 2. Only transmit for non-Incognito profiles.
- // 3. For the X-Client-Data header, only include non-empty variation IDs.
- if ((incognito == InIncognito::kYes) || !ShouldAppendVariationsHeader(url))
- return false;
-
- if (variations_header_.empty())
- return false;
-
- if (resource_request_) {
- // Set the variations header to cors_exempt_headers rather than headers
- // to be exempted from CORS checks.
- resource_request_->cors_exempt_headers.SetHeaderIfMissing(
- kClientDataHeader, variations_header_);
- } else if (url_request_) {
- url_request_->SetExtraRequestHeaderByName(kClientDataHeader,
- variations_header_, false);
- } else {
- NOTREACHED();
- return false;
- }
- return true;
+ return false;
}
private:
@@ -189,14 +158,10 @@ void RemoveVariationsHeaderIfNeeded(
const net::RedirectInfo& redirect_info,
const network::ResourceResponseHead& response_head,
std::vector<std::string>* to_be_removed_headers) {
- if (!ShouldAppendVariationsHeader(redirect_info.new_url))
- to_be_removed_headers->push_back(kClientDataHeader);
}
void StripVariationsHeaderIfNeeded(const GURL& new_location,
net::URLRequest* request) {
- if (!ShouldAppendVariationsHeader(new_location))
- request->RemoveRequestHeaderByName(kClientDataHeader);
}
std::unique_ptr<network::SimpleURLLoader>
@@ -226,11 +191,11 @@ CreateSimpleURLLoaderWithVariationsHeade
}
bool IsVariationsHeader(const std::string& header_name) {
- return header_name == kClientDataHeader;
+ return false;
}
bool HasVariationsHeader(const network::ResourceRequest& request) {
- return request.cors_exempt_headers.HasHeader(kClientDataHeader);
+ return false;
}
bool ShouldAppendVariationsHeaderForTesting(const GURL& url) {
@@ -239,7 +204,6 @@ bool ShouldAppendVariationsHeaderForTest
void UpdateCorsExemptHeaderForVariations(
network::mojom::NetworkContextParams* params) {
- params->cors_exempt_header_list.push_back(kClientDataHeader);
}
} // namespace variations
--- 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) {
--- a/components/search_engines/template_url.cc
+++ b/components/search_engines/template_url.cc
@@ -505,11 +505,7 @@ base::string16 TemplateURLRef::SearchTer
bool TemplateURLRef::HasGoogleBaseURLs(
const SearchTermsData& search_terms_data) const {
ParseIfNecessary(search_terms_data);
- return std::any_of(replacements_.begin(), replacements_.end(),
- [](const Replacement& replacement) {
- return replacement.type == GOOGLE_BASE_URL ||
- replacement.type == GOOGLE_BASE_SUGGEST_URL;
- });
+ return false;
}
bool TemplateURLRef::ExtractSearchTermsFromURL(
--- a/components/google/core/common/google_util.cc
+++ b/components/google/core/common/google_util.cc
@@ -45,120 +45,16 @@ bool gUseMockLinkDoctorBaseURLForTesting
bool g_ignore_port_numbers = 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() || g_ignore_port_numbers ||
- (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);
-
- static const base::NoDestructor<base::flat_set<base::StringPiece>>
- google_tlds(std::initializer_list<base::StringPiece>({GOOGLE_TLD_LIST}));
- return google_tlds->contains(tld);
-}
-
-// 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);
-
- static const base::NoDestructor<base::flat_set<base::StringPiece>>
- google_subdomains(std::initializer_list<base::StringPiece>(
- {"ipv4.google.com", "ipv6.google.com"}));
-
- return google_subdomains->contains(host);
-}
-
} // 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() {
@@ -172,162 +68,53 @@ std::string GetGoogleLocale(const std::s
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('.');
- if (last_dot == std::string::npos)
- return std::string();
- 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.
- static base::NoDestructor<std::string> switch_value;
static base::NoDestructor<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;
}
bool IsGoogleAssociatedDomainUrl(const GURL& url) {
- if (IsGoogleDomainUrl(url, ALLOW_SUBDOMAIN, ALLOW_NON_STANDARD_PORTS))
- return true;
-
- if (IsYoutubeDomainUrl(url, ALLOW_SUBDOMAIN, ALLOW_NON_STANDARD_PORTS))
- return true;
-
- // Some domains don't have international TLD extensions, so testing for them
- // is very straightforward.
- static const char* kSuffixesToSetHeadersFor[] = {
- ".android.com",
- ".doubleclick.com",
- ".doubleclick.net",
- ".ggpht.com",
- ".googleadservices.com",
- ".googleapis.com",
- ".googlesyndication.com",
- ".googleusercontent.com",
- ".googlevideo.com",
- ".gstatic.com",
- ".litepages.googlezip.net",
- ".ytimg.com",
- };
- const std::string host = url.host();
- for (size_t i = 0; i < base::size(kSuffixesToSetHeadersFor); ++i) {
- if (base::EndsWith(host, kSuffixesToSetHeadersFor[i],
- base::CompareCase::INSENSITIVE_ASCII)) {
- return true;
- }
- }
-
- // Exact hostnames in lowercase to set headers for.
- static const char* kHostsToSetHeadersFor[] = {
- "googleweblight.com",
- };
- for (size_t i = 0; i < base::size(kHostsToSetHeadersFor); ++i) {
- if (base::LowerCaseEqualsASCII(host, kHostsToSetHeadersFor[i]))
- return true;
- }
-
return false;
}
--- 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) {
--- a/chrome/common/google_url_loader_throttle.cc
+++ b/chrome/common/google_url_loader_throttle.cc
@@ -8,10 +8,6 @@
#include "components/variations/net/variations_http_headers.h"
#include "services/network/public/cpp/features.h"
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "extensions/common/extension_urls.h"
-#endif
-
GoogleURLLoaderThrottle::GoogleURLLoaderThrottle(
bool is_off_the_record,
chrome::mojom::DynamicParams dynamic_params)
@@ -25,36 +21,6 @@ void GoogleURLLoaderThrottle::DetachFrom
void GoogleURLLoaderThrottle::WillStartRequest(
network::ResourceRequest* request,
bool* defer) {
- variations::AppendVariationsHeaderWithCustomValue(
- request->url,
- is_off_the_record_ ? variations::InIncognito::kYes
- : variations::InIncognito::kNo,
- dynamic_params_.variation_ids_header, request);
-
- if (dynamic_params_.force_safe_search) {
- GURL new_url;
- safe_search_util::ForceGoogleSafeSearch(request->url, &new_url);
- if (!new_url.is_empty())
- request->url = new_url;
- }
-
- static_assert(safe_search_util::YOUTUBE_RESTRICT_OFF == 0,
- "OFF must be first");
- if (dynamic_params_.youtube_restrict >
- safe_search_util::YOUTUBE_RESTRICT_OFF &&
- dynamic_params_.youtube_restrict <
- safe_search_util::YOUTUBE_RESTRICT_COUNT) {
- safe_search_util::ForceYouTubeRestrict(
- request->url, &request->headers,
- static_cast<safe_search_util::YouTubeRestrictMode>(
- dynamic_params_.youtube_restrict));
- }
-
- if (!dynamic_params_.allowed_domains_for_apps.empty() &&
- request->url.DomainIs("google.com")) {
- request->headers.SetHeader(safe_search_util::kGoogleAppsAllowedDomains,
- dynamic_params_.allowed_domains_for_apps);
- }
}
void GoogleURLLoaderThrottle::WillRedirectRequest(
@@ -63,33 +29,6 @@ void GoogleURLLoaderThrottle::WillRedire
bool* /* defer */,
std::vector<std::string>* to_be_removed_headers,
net::HttpRequestHeaders* modified_headers) {
- variations::RemoveVariationsHeaderIfNeeded(*redirect_info, response_head,
- to_be_removed_headers);
-
- // URLLoaderThrottles can only change the redirect URL when the network
- // service is enabled. The non-network service path handles this in
- // ChromeNetworkDelegate.
- if (dynamic_params_.force_safe_search &&
- base::FeatureList::IsEnabled(network::features::kNetworkService)) {
- safe_search_util::ForceGoogleSafeSearch(redirect_info->new_url,
- &redirect_info->new_url);
- }
-
- if (dynamic_params_.youtube_restrict >
- safe_search_util::YOUTUBE_RESTRICT_OFF &&
- dynamic_params_.youtube_restrict <
- safe_search_util::YOUTUBE_RESTRICT_COUNT) {
- safe_search_util::ForceYouTubeRestrict(
- redirect_info->new_url, modified_headers,
- static_cast<safe_search_util::YouTubeRestrictMode>(
- dynamic_params_.youtube_restrict));
- }
-
- if (!dynamic_params_.allowed_domains_for_apps.empty() &&
- redirect_info->new_url.DomainIs("google.com")) {
- modified_headers->SetHeader(safe_search_util::kGoogleAppsAllowedDomains,
- dynamic_params_.allowed_domains_for_apps);
- }
}
#if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -97,17 +36,5 @@ void GoogleURLLoaderThrottle::WillProces
const GURL& response_url,
network::ResourceResponseHead* response_head,
bool* defer) {
- // Built-in additional protection for the chrome web store origin.
- GURL webstore_url(extension_urls::GetWebstoreLaunchURL());
- if (response_url.SchemeIsHTTPOrHTTPS() &&
- response_url.DomainIs(webstore_url.host_piece())) {
- if (response_head && response_head->headers &&
- !response_head->headers->HasHeaderValue("x-frame-options", "deny") &&
- !response_head->headers->HasHeaderValue("x-frame-options",
- "sameorigin")) {
- response_head->headers->RemoveHeader("x-frame-options");
- response_head->headers->AddHeader("x-frame-options: sameorigin");
- }
- }
}
#endif

View File

@ -1,25 +0,0 @@
# Disables use of a binary for preloading the Media Engagement index
# Said binary is: chrome/browser/resources/media/mei_preload/preloaded_data.pb
# According to media/base/media_switches (for PreloadMediaEngagementData), it
# "enables a list of origins to be considered as having a high MEI until there
# is enough local data to determine the user's preferred behavior." This feature
# does not seem to outweigh the benefit of removing the binary, thus this patch.
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -330,7 +330,6 @@ if (!is_android && !is_mac) {
}
data_deps += [
- "//chrome/browser/resources/media/mei_preload:component",
"//third_party/widevine/cdm",
]
@@ -1330,7 +1329,6 @@ if (is_win) {
":packed_resources",
":swiftshader_library",
":widevine_cdm_library",
- "//chrome/browser/resources/media/mei_preload:component_bundle",
]
if (is_chrome_branded) {

View File

@ -1,16 +0,0 @@
# Disable Network Time Tracker
# This connects to Google to check if the system time is correct when a website certificate
# date seems incorrect, according to https://bugs.chromium.org/p/chromium/issues/detail?id=725232,
# Fixes https://github.com/Eloston/ungoogled-chromium/issues/302
--- a/components/network_time/network_time_tracker.cc
+++ b/components/network_time/network_time_tracker.cc
@@ -277,7 +277,7 @@ void NetworkTimeTracker::UpdateNetworkTi
}
bool NetworkTimeTracker::AreTimeFetchesEnabled() const {
- return base::FeatureList::IsEnabled(kNetworkTimeServiceQuerying);
+ return false;
}
NetworkTimeTracker::FetchBehavior NetworkTimeTracker::GetFetchBehavior() const {

View File

@ -1,112 +0,0 @@
# Disables WebRTC log uploading to Google
--- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc
+++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
@@ -131,29 +131,11 @@ void WebRtcLogUploader::LoggingStoppedDo
DCHECK(meta_data.get());
DCHECK(!upload_done_data.log_path.empty());
- std::string compressed_log = CompressLog(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::TextLogList::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);
+ NotifyUploadDoneAndLogStats(net::HTTP_OK, net::OK, "", upload_done_data);
}
void WebRtcLogUploader::PrepareMultipartPostData(
@@ -164,27 +146,7 @@ void WebRtcLogUploader::PrepareMultipart
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;
- NotifyUploadDoneAndLogStats(net::HTTP_OK, net::OK, "", upload_done_data);
- return;
- }
-
- base::PostTaskWithTraits(
- FROM_HERE, {BrowserThread::IO},
- base::BindOnce(&WebRtcLogUploader::UploadCompressedLog,
- base::Unretained(this), upload_done_data,
- std::move(post_data)));
+ NotifyUploadDoneAndLogStats(net::HTTP_OK, net::OK, "", upload_done_data);
}
void WebRtcLogUploader::UploadStoredLog(
@@ -255,47 +217,6 @@ void WebRtcLogUploader::LoggingStoppedDo
webrtc_logging::DeleteOldWebRtcLogFiles(log_paths.log_path);
- base::FilePath log_list_path =
- webrtc_logging::TextLogList::GetWebRtcLogListFileForDirectory(
- log_paths.log_path);
-
- // Store the native log with a ".gz" extension.
- std::string compressed_log = CompressLog(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());
- }
-
base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI},
base::BindOnce(done_callback, true, ""));

View File

@ -1,14 +0,0 @@
description: avoid building the swiftshader library
author: Michael Gilbert <mgilbert@debian.org>
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -449,7 +449,7 @@ group("gn_all") {
]
}
- if ((is_win || is_mac || is_linux || is_chromeos || is_fuchsia) &&
+ if (false &&
(target_cpu == "x86" || target_cpu == "x64")) {
deps += [ "//third_party/swiftshader" ]
}

View File

@ -1,53 +0,0 @@
# Fix building with enable_service_discovery=false and enable_mds=false
--- a/chrome/browser/media/router/discovery/mdns/dns_sd_device_lister.cc
+++ b/chrome/browser/media/router/discovery/mdns/dns_sd_device_lister.cc
@@ -37,48 +37,22 @@ DnsSdDeviceLister::DnsSdDeviceLister(
DnsSdDeviceLister::~DnsSdDeviceLister() {}
void DnsSdDeviceLister::Discover() {
- if (!device_lister_) {
- device_lister_ = local_discovery::ServiceDiscoveryDeviceLister::Create(
- this, service_discovery_client_, service_type_);
- device_lister_->Start();
- VLOG(1) << "Started device lister for service type "
- << device_lister_->service_type();
- }
- device_lister_->DiscoverNewDevices();
- VLOG(1) << "Discovery new devices for service type "
- << device_lister_->service_type();
}
void DnsSdDeviceLister::Reset() {
- device_lister_.reset();
}
void DnsSdDeviceLister::OnDeviceChanged(
const std::string& service_type,
bool added,
const ServiceDescription& service_description) {
- DnsSdService service;
- FillServiceInfo(service_description, &service);
- VLOG(1) << "OnDeviceChanged: "
- << "service_name: " << service.service_name << ", "
- << "added: " << added << ", "
- << "service_type: " << device_lister_->service_type();
- delegate_->ServiceChanged(device_lister_->service_type(), added, service);
}
void DnsSdDeviceLister::OnDeviceRemoved(const std::string& service_type,
const std::string& service_name) {
- VLOG(1) << "OnDeviceRemoved: "
- << "service_name: " << service_name << ", "
- << "service_type: " << service_type;
- delegate_->ServiceRemoved(service_type, service_name);
}
void DnsSdDeviceLister::OnDeviceCacheFlushed(const std::string& service_type) {
- VLOG(1) << "OnDeviceCacheFlushed: "
- << "service_type: " << device_lister_->service_type();
- delegate_->ServicesFlushed(device_lister_->service_type());
- device_lister_->DiscoverNewDevices();
}
} // namespace media_router

View File

@ -1,74 +0,0 @@
# Additional changes to Inox's fix-building-without-safebrowsing.patch
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -5307,20 +5307,7 @@ safe_browsing::UrlCheckerDelegate*
ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
content::ResourceContext* resource_context) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
-
- ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
- if (!io_data->safe_browsing_enabled()->GetValue())
- return nullptr;
-
- // |safe_browsing_service_| may be unavailable in tests.
- if (safe_browsing_service_ && !safe_browsing_url_checker_delegate_) {
- safe_browsing_url_checker_delegate_ =
- base::MakeRefCounted<safe_browsing::UrlCheckerDelegateImpl>(
- safe_browsing_service_->database_manager(),
- safe_browsing_service_->ui_manager());
- }
-
- return safe_browsing_url_checker_delegate_.get();
+ return nullptr;
}
base::Optional<std::string>
--- a/chrome/browser/download/download_item_model.cc
+++ b/chrome/browser/download/download_item_model.cc
@@ -22,9 +22,6 @@
#include "chrome/browser/download/download_stats.h"
#include "chrome/browser/download/offline_item_utils.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/safe_browsing/download_protection/download_feedback_service.h"
-#include "chrome/common/safe_browsing/download_file_types.pb.h"
-#include "chrome/common/safe_browsing/file_type_policies.h"
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
#include "components/download/public/common/download_danger_type.h"
@@ -37,7 +34,6 @@
using base::TimeDelta;
using download::DownloadItem;
-using safe_browsing::DownloadFileType;
namespace {
@@ -264,14 +260,7 @@ bool DownloadItemModel::IsMalicious() co
}
bool DownloadItemModel::ShouldAllowDownloadFeedback() const {
-#if defined(FULL_SAFE_BROWSING)
- if (!IsDangerous())
- return false;
- return safe_browsing::DownloadFeedbackService::IsEnabledForDownload(
- *download_);
-#else
return false;
-#endif
}
bool DownloadItemModel::ShouldRemoveFromShelfWhenComplete() const {
--- a/chrome/browser/ui/views/safe_browsing/password_reuse_modal_warning_dialog.cc
+++ b/chrome/browser/ui/views/safe_browsing/password_reuse_modal_warning_dialog.cc
@@ -58,9 +58,7 @@ PasswordReuseModalWarningDialog::Passwor
SetLayoutManager(std::make_unique<views::FillLayout>());
views::Label* message_body_label = new views::Label(
- service_
- ? service_->GetWarningDetailText(password_type)
- : l10n_util::GetStringUTF16(IDS_PAGE_INFO_CHANGE_PASSWORD_DETAILS));
+ l10n_util::GetStringUTF16(IDS_PAGE_INFO_CHANGE_PASSWORD_DETAILS));
message_body_label->SetMultiLine(true);
message_body_label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
message_body_label->SetHandlesTooltips(false);

View File

@ -1,40 +0,0 @@
description: fuzzers aren't built, so don't depend on them
author: Michael Gilbert <mgilbert@debian.org>
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -722,8 +722,7 @@ group("gn_all") {
}
}
- if ((is_linux && !is_chromecast) || (is_win && use_libfuzzer) ||
- (use_libfuzzer && is_mac)) {
+ if (false) {
deps += [
"//chrome/services/cups_ipp_parser/public/cpp:fuzzers",
"//testing/libfuzzer/fuzzers",
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -2320,12 +2320,6 @@ test("content_perftests") {
}
}
-group("fuzzers") {
- deps = [
- "//content/test/fuzzer",
- ]
-}
-
# This group defines the isolate files needed to run
# test_buildbucket_api_gpu_cases.py on bots. This also tells the build system
# when the tests should be re-run - when one of the dependent files changes.
--- a/v8/tools/BUILD.gn
+++ b/v8/tools/BUILD.gn
@@ -11,7 +11,6 @@ group("gn_all") {
data_deps = [
":v8_check_static_initializers",
"gcmole:v8_run_gcmole",
- "jsfunfuzz:v8_jsfunfuzz",
]
}

View File

@ -1,16 +0,0 @@
description: disable the google api key warning when those aren't found
author: Michael Gilbert <mgilbert@debian.org>
--- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc
@@ -810,10 +810,6 @@ void StartupBrowserCreatorImpl::AddInfoB
chrome::ShowBadFlagsPrompt(web_contents);
InfoBarService* infobar_service =
InfoBarService::FromWebContents(web_contents);
- if (!google_apis::HasAPIKeyConfigured() ||
- !google_apis::HasOAuthClientConfigured()) {
- GoogleApiKeysInfoBarDelegate::Create(infobar_service);
- }
if (ObsoleteSystem::IsObsoleteNowOrSoon()) {
PrefService* local_state = g_browser_process->local_state();
if (!local_state ||

View File

@ -1,78 +0,0 @@
diff --git chromium-75.0.3770.100/base/allocator/allocator_shim_internals.h chromium-75.0.3770.100/base/allocator/allocator_shim_internals.h
index 0196f89..bb42b5d 100644
--- chromium-75.0.3770.100/base/allocator/allocator_shim_internals.h
+++ chromium-75.0.3770.100/base/allocator/allocator_shim_internals.h
@@ -7,7 +7,9 @@
#if defined(__GNUC__)
+#if defined(__GLIBC__)
#include <sys/cdefs.h> // for __THROW
+#endif
#ifndef __THROW // Not a glibc system
#ifdef _NOEXCEPT // LLVM libc++ uses noexcept instead
diff --git chromium-75.0.3770.100/sandbox/linux/suid/sandbox.c chromium-75.0.3770.100/sandbox/linux/suid/sandbox.c
index 854819b..39937e4 100644
--- chromium-75.0.3770.100/sandbox/linux/suid/sandbox.c
+++ chromium-75.0.3770.100/sandbox/linux/suid/sandbox.c
@@ -44,7 +44,16 @@
static bool DropRoot();
+#if defined(TEMP_FAILURE_RETRY)
#define HANDLE_EINTR(x) TEMP_FAILURE_RETRY(x)
+#else
+#define HANDLE_EINTR(expression) \
+ (__extension__ \
+ ({ long __result; \
+ do __result = (long) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+#endif
static void FatalError(const char* msg, ...)
__attribute__((noreturn, format(printf, 1, 2)));
diff --git chromium-75.0.3770.100/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h chromium-75.0.3770.100/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
index f8be372..c07e4c8 100644
--- chromium-75.0.3770.100/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
+++ chromium-75.0.3770.100/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
@@ -17,8 +17,6 @@
#include_next <sys/ptrace.h>
-#include <sys/cdefs.h>
-
// https://sourceware.org/bugzilla/show_bug.cgi?id=22433
#if !defined(PTRACE_GET_THREAD_AREA) && !defined(PT_GET_THREAD_AREA) && \
defined(__GLIBC__)
diff --git chromium-69.0.3497.100/third_party/libsync/src/include/sync/sync.h
index 50ed0ac..7552a49 100644
--- chromium-69.0.3497.100/third_party/libsync/src/include/sync/sync.h
+++ chromium-69.0.3497.100/third_party/libsync/src/include/sync/sync.h
@@ -19,12 +19,13 @@
#ifndef __SYS_CORE_SYNC_H
#define __SYS_CORE_SYNC_H
-#include <sys/cdefs.h>
#include <stdint.h>
#include <linux/types.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
struct sync_legacy_merge_data {
int32_t fd2;
@@ -158,6 +159,8 @@ struct sync_pt_info *sync_pt_info(struct sync_fence_info_data *info,
struct sync_pt_info *itr);
void sync_fence_info_free(struct sync_fence_info_data *info);
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
#endif /* __SYS_CORE_SYNC_H */

View File

@ -1,13 +0,0 @@
diff --git chromium-75.0.3770.100/base/native_library_posix.cc chromium-75.0.3770.100/base/native_library_posix.cc
index 7a5c6f5..6e8a5fa 100644
--- chromium-75.0.3770.100/base/native_library_posix.cc
+++ chromium-75.0.3770.100/base/native_library_posix.cc
@@ -34,7 +34,7 @@ NativeLibrary LoadNativeLibraryWithOptions(const FilePath& library_path,
// further investigation, as it might vary across versions. Crash here to
// warn developers that they're trying to rely on uncertain behavior.
CHECK(!options.prefer_own_symbols);
-#else
+#elif defined(RTLD_DEEPBIND)
if (options.prefer_own_symbols)
flags |= RTLD_DEEPBIND;
#endif

View File

@ -1,71 +0,0 @@
diff --git chromium-75.0.3770.100/net/dns/dns_config_service_posix.cc chromium-75.0.3770.100/net/dns/dns_config_service_posix.cc
index 48ee925..3bf8756 100644
--- chromium-75.0.3770.100/net/dns/dns_config_service_posix.cc
+++ chromium-75.0.3770.100/net/dns/dns_config_service_posix.cc
@@ -150,7 +150,7 @@ ConfigParsePosixResult ReadDnsConfig(DnsConfig* dns_config) {
#if !defined(OS_ANDROID)
ConfigParsePosixResult result;
// TODO(fuchsia): Use res_ninit() when it's implemented on Fuchsia.
-#if defined(OS_OPENBSD) || defined(OS_FUCHSIA)
+#if defined(OS_OPENBSD) || defined(OS_FUCHSIA) || (defined(OS_LINUX) && !defined(__GLIBC__))
// Note: res_ninit in glibc always returns 0 and sets RES_INIT.
// res_init behaves the same way.
memset(&_res, 0, sizeof(_res));
@@ -173,7 +173,7 @@ ConfigParsePosixResult ReadDnsConfig(DnsConfig* dns_config) {
#else
res_nclose(&res);
#endif // defined(OS_MACOSX) || defined(OS_FREEBSD)
-#endif // defined(OS_OPENBSD)
+#endif // defined(OS_OPENBSD) || defined(OS_FUCHSIA) || (defined(OS_LINUX) && !defined(__GLIBC__))
#if defined(OS_MACOSX) && !defined(OS_IOS)
ConfigParsePosixResult error = DnsConfigWatcher::CheckDnsConfig();
diff --git chromium-75.0.3770.100/net/dns/dns_reloader.cc chromium-75.0.3770.100/net/dns/dns_reloader.cc
index 03e248c..6135fcc 100644
--- chromium-75.0.3770.100/net/dns/dns_reloader.cc
+++ chromium-75.0.3770.100/net/dns/dns_reloader.cc
@@ -4,8 +4,7 @@
#include "net/dns/dns_reloader.h"
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
+#if defined(__GLIBC__)
#include <resolv.h>
@@ -108,5 +107,4 @@ void DnsReloaderMaybeReload() {
} // namespace net
-#endif // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) &&
- // !defined(OS_ANDROID)
+#endif // defined(__GLIBC__)
diff --git chromium-75.0.3770.100/net/dns/host_resolver_manager.cc chromium-75.0.3770.100/net/dns/host_resolver_manager.cc
index 3c75dde..c748d94 100644
--- chromium-75.0.3770.100/net/dns/host_resolver_manager.cc
+++ chromium-75.0.3770.100/net/dns/host_resolver_manager.cc
@@ -2266,8 +2266,7 @@ HostResolverManager::HostResolverManager(const Options& options,
NetworkChangeNotifier::AddIPAddressObserver(this);
NetworkChangeNotifier::AddConnectionTypeObserver(this);
NetworkChangeNotifier::AddDNSObserver(this);
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
- !defined(OS_ANDROID)
+#if defined(__GLIBC__)
EnsureDnsReloaderInit();
#endif
diff --git chromium-75.0.3770.100/net/dns/host_resolver_proc.cc chromium-75.0.3770.100/net/dns/host_resolver_proc.cc
index 90d9958..71d9b4a 100644
--- chromium-75.0.3770.100/net/dns/host_resolver_proc.cc
+++ chromium-75.0.3770.100/net/dns/host_resolver_proc.cc
@@ -197,8 +197,7 @@ int SystemHostResolverCall(const std::string& host,
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
base::BlockingType::WILL_BLOCK);
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
+#if defined(__GLIBC__)
DnsReloaderMaybeReload();
#endif
int err = getaddrinfo(host.c_str(), nullptr, &hints, &ai);

View File

@ -1,96 +0,0 @@
diff --git chromium-75.0.3770.100/base/debug/stack_trace_posix.cc chromium-75.0.3770.100/base/debug/stack_trace_posix.cc
index d4b8b3a..bd26968 100644
--- chromium-75.0.3770.100/base/debug/stack_trace_posix.cc
+++ chromium-75.0.3770.100/base/debug/stack_trace_posix.cc
@@ -27,7 +27,7 @@
#if !defined(USE_SYMBOLIZE)
#include <cxxabi.h>
#endif
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
#include <execinfo.h>
#endif
@@ -86,7 +86,7 @@ void DemangleSymbols(std::string* text) {
// Note: code in this function is NOT async-signal safe (std::string uses
// malloc internally).
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
std::string::size_type search_from = 0;
while (search_from < text->size()) {
// Look for the start of a mangled symbol, from search_from.
@@ -121,7 +121,7 @@ void DemangleSymbols(std::string* text) {
search_from = mangled_start + 2;
}
}
-#endif // !defined(__UCLIBC__) && !defined(_AIX)
+#endif // defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
}
#endif // !defined(USE_SYMBOLIZE)
@@ -133,7 +133,7 @@ class BacktraceOutputHandler {
virtual ~BacktraceOutputHandler() = default;
};
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
void OutputPointer(void* pointer, BacktraceOutputHandler* handler) {
// This should be more than enough to store a 64-bit number in hex:
// 16 hex digits + 1 for null-terminator.
@@ -216,7 +216,7 @@ void ProcessBacktrace(void* const* trace,
}
#endif // defined(USE_SYMBOLIZE)
}
-#endif // !defined(__UCLIBC__) && !defined(_AIX)
+#endif // defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
void PrintToStderr(const char* output) {
// NOTE: This code MUST be async-signal safe (it's used by in-process
@@ -812,7 +812,7 @@ size_t CollectStackTrace(void** trace, size_t count) {
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
// Though the backtrace API man page does not list any possible negative
// return values, we take no chance.
return base::saturated_cast<size_t>(backtrace(trace, count));
@@ -825,13 +825,13 @@ void StackTrace::PrintWithPrefix(const char* prefix_string) const {
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
PrintBacktraceOutputHandler handler;
ProcessBacktrace(trace_, count_, prefix_string, &handler);
#endif
}
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
void StackTrace::OutputToStreamWithPrefix(std::ostream* os,
const char* prefix_string) const {
StreamBacktraceOutputHandler handler(os);
diff --git chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
index e14edbd..dfeca51 100644
--- chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
+++ chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
@@ -14,7 +14,7 @@
#define ENABLE_CRASH_OVERRIDES 1
/* Define to 1 if you have the `backtrace' function. */
-#define HAVE_BACKTRACE 1
+/* #undef HAVE_BACKTRACE */
/* Define to 1 if you have the <CrashReporterClient.h> header file. */
/* #undef HAVE_CRASHREPORTERCLIENT_H */
@@ -55,7 +55,7 @@
#define HAVE_ERRNO_H 1
/* Define to 1 if you have the <execinfo.h> header file. */
-#define HAVE_EXECINFO_H 1
+/* #undef HAVE_EXECINFO_H */
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1

View File

@ -1,48 +0,0 @@
diff --git chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
index 052ce37..95b0fb4 100644
--- chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+++ chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
@@ -49,7 +49,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
}
void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp) {
+ const struct _fpstate* fp) {
const greg_t* regs = uc->uc_mcontext.gregs;
out->context_flags = MD_CONTEXT_X86_FULL |
@@ -97,7 +97,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
}
void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fpregs) {
+ const struct _fpstate* fpregs) {
const greg_t* regs = uc->uc_mcontext.gregs;
out->context_flags = MD_CONTEXT_AMD64_FULL;
diff --git chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
index f830618..f3dde1f 100644
--- chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+++ chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
@@ -50,7 +50,7 @@ struct UContextReader {
// info: the collection of register structures.
#if defined(__i386__) || defined(__x86_64)
static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp);
+ const struct _fpstate* fp);
#elif defined(__aarch64__)
static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
const struct fpsimd_context* fpregs);
diff --git chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
index d1dc331..d1cc562 100644
--- chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
+++ chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
@@ -48,7 +48,7 @@ class ExceptionHandler;
#if defined(__aarch64__)
typedef struct fpsimd_context fpstate_t;
#elif !defined(__ARM_EABI__) && !defined(__mips__)
-typedef struct _libc_fpstate fpstate_t;
+typedef struct _fpstate fpstate_t;
#endif
// These entries store a list of memory regions that the client wants included

View File

@ -1,35 +0,0 @@
diff --git chromium-75.0.3770.100/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc chromium-75.0.3770.100/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
index 3ae4f3c..08ed693 100644
--- chromium-75.0.3770.100/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+++ chromium-75.0.3770.100/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
@@ -43,7 +43,9 @@
#endif // defined(OS_ANDROID) && defined(__arm__)
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#if defined(__GLIBC__)
#include <gnu/libc-version.h>
+#endif // defined(__GLIBC__)
#include "base/linux_util.h"
#include "base/strings/string_split.h"
@@ -326,7 +328,7 @@ void RecordLinuxDistro() {
#endif // defined(OS_LINUX) && !defined(OS_CHROMEOS)
void RecordLinuxGlibcVersion() {
-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(__GLIBC__)
base::Version version(gnu_get_libc_version());
UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE;
diff --git chromium-75.0.3770.100/services/device/serial/serial_io_handler_posix.cc chromium-75.0.3770.100/services/device/serial/serial_io_handler_posix.cc
index daed079..5470a35 100644
--- chromium-75.0.3770.100/services/device/serial/serial_io_handler_posix.cc
+++ chromium-75.0.3770.100/services/device/serial/serial_io_handler_posix.cc
@@ -4,6 +4,7 @@
#include "services/device/serial/serial_io_handler_posix.h"
+#include <asm/ioctls.h>
#include <sys/ioctl.h>
#include <termios.h>

View File

@ -1,13 +0,0 @@
diff --git chromium-69.0.3497.100/buildtools/third_party/libc++/trunk/include/__config
index 52c7142..ca187dd 100644
--- chromium-69.0.3497.100/buildtools/third_party/libc++/trunk/include/__config
+++ chromium-69.0.3497.100/buildtools/third_party/libc++/trunk/include/__config
@@ -11,6 +11,8 @@
#ifndef _LIBCPP_CONFIG
#define _LIBCPP_CONFIG
+#define _LIBCPP_HAS_MUSL_LIBC
+
#if defined(_MSC_VER) && !defined(__clang__)
# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER

View File

@ -1,47 +0,0 @@
diff --git chromium-75.0.3770.100/base/process/process_metrics_posix.cc chromium-75.0.3770.100/base/process/process_metrics_posix.cc
index a09bbf2..f0a439f 100644
--- chromium-75.0.3770.100/base/process/process_metrics_posix.cc
+++ chromium-75.0.3770.100/base/process/process_metrics_posix.cc
@@ -100,14 +100,14 @@ size_t ProcessMetrics::GetMallocUsage() {
malloc_statistics_t stats = {0};
malloc_zone_statistics(nullptr, &stats);
return stats.size_in_use;
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
+#elif (defined(OS_LINUX) && defined(__GLIBC__)) || defined(OS_ANDROID)
struct mallinfo minfo = mallinfo();
#if defined(USE_TCMALLOC)
return minfo.uordblks;
#else
return minfo.hblkhd + minfo.arena;
#endif
-#elif defined(OS_FUCHSIA)
+#else
// TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
return 0;
#endif
diff --git chromium-75.0.3770.100/base/trace_event/malloc_dump_provider.cc chromium-75.0.3770.100/base/trace_event/malloc_dump_provider.cc
index 0077d8b..13ef0f3 100644
--- chromium-75.0.3770.100/base/trace_event/malloc_dump_provider.cc
+++ chromium-75.0.3770.100/base/trace_event/malloc_dump_provider.cc
@@ -132,7 +132,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
}
#elif defined(OS_FUCHSIA)
// TODO(fuchsia): Port, see https://crbug.com/706592.
-#else
+#elif defined(OS_LINUX) && defined(__GLIBC__)
struct mallinfo info = mallinfo();
DCHECK_GE(info.arena + info.hblkhd, info.uordblks);
diff --git chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
index e14edbd..154fefe 100644
--- chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
+++ chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
@@ -130,7 +130,7 @@
/* #undef HAVE_MALLCTL */
/* Define to 1 if you have the `mallinfo' function. */
-#define HAVE_MALLINFO 1
+/* #undef HAVE_MALLINFO */
/* Define to 1 if you have the <malloc.h> header file. */
#define HAVE_MALLOC_H 1

View File

@ -1,40 +0,0 @@
diff --git chromium-75.0.3770.100/third_party/blink/renderer/platform/wtf/stack_util.cc chromium-75.0.3770.100/third_party/blink/renderer/platform/wtf/stack_util.cc
index b242164..93f8f08 100644
--- chromium-75.0.3770.100/third_party/blink/renderer/platform/wtf/stack_util.cc
+++ chromium-75.0.3770.100/third_party/blink/renderer/platform/wtf/stack_util.cc
@@ -29,7 +29,7 @@ size_t GetUnderestimatedStackSize() {
// FIXME: On Mac OSX and Linux, this method cannot estimate stack size
// correctly for the main thread.
-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
// pthread_getattr_np() can fail if the thread is not invoked by
// pthread_create() (e.g., the main thread of blink_unittests).
@@ -55,6 +55,9 @@ size_t GetUnderestimatedStackSize() {
pthread_attr_destroy(&attr);
#endif
+#if defined(OS_LINUX) && !defined(__GLIBC__)
+ return 0;
+#else
// Return a 512k stack size, (conservatively) assuming the following:
// - that size is much lower than the pthreads default (x86 pthreads has a 2M
// default.)
@@ -62,6 +65,7 @@ size_t GetUnderestimatedStackSize() {
// low as 512k.
//
return 512 * 1024;
+#endif
#elif defined(OS_MACOSX)
// pthread_get_stacksize_np() returns too low a value for the main thread on
// OSX 10.9,
@@ -97,7 +101,7 @@ return Threading::ThreadStackSize();
}
void* GetStackStart() {
-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
pthread_attr_t attr;
int error;

View File

@ -1,22 +0,0 @@
diff --git chromium-75.0.3770.100/third_party/crashpad/crashpad/util/linux/ptracer.cc chromium-75.0.3770.100/third_party/crashpad/crashpad/util/linux/ptracer.cc
index c6c9229..6731148 100644
--- chromium-75.0.3770.100/third_party/crashpad/crashpad/util/linux/ptracer.cc
+++ chromium-75.0.3770.100/third_party/crashpad/crashpad/util/linux/ptracer.cc
@@ -66,6 +66,7 @@ bool GetThreadArea32(pid_t tid,
const ThreadContext& context,
LinuxVMAddress* address,
bool can_log) {
+#ifdef PTRACE_GET_THREAD_AREA
size_t index = (context.t32.xgs & 0xffff) >> 3;
user_desc desc;
if (ptrace(
@@ -77,6 +78,9 @@ bool GetThreadArea32(pid_t tid,
*address = desc.base_addr;
return true;
+#else
+ return false;
+#endif
}
bool GetThreadArea64(pid_t tid,

View File

@ -1,13 +0,0 @@
diff --git chromium-75.0.3770.100/third_party/nasm/config/config-linux.h
index 7eb7c20..882b736 100644
--- chromium-75.0.3770.100/third_party/nasm/config/config-linux.h.orig
+++ chromium-75.0.3770.100/third_party/nasm/config/config-linux.h
@@ -117,7 +117,7 @@
#define HAVE_ACCESS 1
/* Define to 1 if you have the `canonicalize_file_name' function. */
-#define HAVE_CANONICALIZE_FILE_NAME 1
+/* #undef HAVE_CANONICALIZE_FILE_NAME */
/* Define to 1 if you have the `cpu_to_le16' intrinsic function. */
/* #undef HAVE_CPU_TO_LE16 */

View File

@ -1,120 +0,0 @@
diff --git chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
index 479d1ed..b06cec7 100644
--- chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+++ chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
@@ -216,6 +216,9 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno,
if (sysno == __NR_prctl)
return RestrictPrctl();
+ if (sysno == __NR_set_tid_address)
+ return RestrictSetTIDAddress();
+
#if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
defined(__aarch64__)
if (sysno == __NR_socketpair) {
diff --git chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
index 348ab6e..2e91cf7 100644
--- chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+++ chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
@@ -140,20 +140,11 @@ namespace sandbox {
ResultExpr RestrictCloneToThreadsAndEPERMFork() {
const Arg<unsigned long> flags(0);
- // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
- const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
- CLONE_SIGHAND | CLONE_THREAD |
- CLONE_SYSVSEM;
- const uint64_t kObsoleteAndroidCloneMask = kAndroidCloneMask | CLONE_DETACHED;
-
- const uint64_t kGlibcPthreadFlags =
- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD |
- CLONE_SYSVSEM | CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID;
- const BoolExpr glibc_test = flags == kGlibcPthreadFlags;
-
- const BoolExpr android_test =
- AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
- flags == kGlibcPthreadFlags);
+ const int required = CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
+ CLONE_THREAD | CLONE_SYSVSEM;
+ const int safe = CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID |
+ CLONE_DETACHED;
+ const BoolExpr thread_clone_ok = (flags&~safe)==required;
// The following two flags are the two important flags in any vfork-emulating
// clone call. EPERM any clone call that contains both of them.
@@ -163,7 +154,7 @@ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
(flags & kImportantCloneVforkFlags) == kImportantCloneVforkFlags);
- return If(IsAndroid() ? android_test : glibc_test, Allow())
+ return If(thread_clone_ok, Allow())
.ElseIf(is_fork_or_clone_vfork, Error(EPERM))
.Else(CrashSIGSYSClone());
}
@@ -427,4 +418,10 @@ ResultExpr RestrictPtrace() {
}
#endif // defined(OS_NACL_NONSFI)
+ResultExpr RestrictSetTIDAddress() {
+ const Arg<uintptr_t> address(0);
+ // Only allow clearing the TID address.
+ return If(address == 0, Allow()).Else(CrashSIGSYS());
+}
+
} // namespace sandbox.
diff --git chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
index cb563df..8aef632 100644
--- chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
+++ chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
@@ -107,6 +107,9 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictPrlimit(pid_t target_pid);
// reporting. See https://crbug.com/933418 for details.
SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictPtrace();
+// Restrict the address to NULL.
+SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictSetTIDAddress();
+
} // namespace sandbox.
#endif // SANDBOX_LINUX_SECCOMP_BPF_HELPERS_SYSCALL_PARAMETERS_RESTRICTIONS_H_
diff --git chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
index 7dbcc87..41f3fd5 100644
--- chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+++ chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
@@ -386,6 +386,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
switch (sysno) {
case __NR_exit:
case __NR_exit_group:
+ case __NR_membarrier:
case __NR_wait4:
case __NR_waitid:
#if defined(__i386__)
@@ -513,6 +514,7 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
case __NR_mlock:
case __NR_munlock:
case __NR_munmap:
+ case __NR_mremap:
return true;
case __NR_madvise:
case __NR_mincore:
@@ -530,7 +532,6 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
case __NR_modify_ldt:
#endif
case __NR_mprotect:
- case __NR_mremap:
case __NR_msync:
case __NR_munlockall:
case __NR_readahead:
diff --git chromium-75.0.3770.100/sandbox/linux/system_headers/x86_64_linux_syscalls.h chromium-75.0.3770.100/sandbox/linux/system_headers/x86_64_linux_syscalls.h
index 349504a..ea3c7c9 100644
--- chromium-75.0.3770.100/sandbox/linux/system_headers/x86_64_linux_syscalls.h
+++ chromium-75.0.3770.100/sandbox/linux/system_headers/x86_64_linux_syscalls.h
@@ -1290,5 +1290,9 @@
#define __NR_memfd_create 319
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 324
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_

View File

@ -1,15 +0,0 @@
diff --git chromium-69.0.3497.100/third_party/angle/third_party/vulkan-loader/BUILD.gn
index 0d662fd..de5a0b1 100644
--- chromium-69.0.3497.100/third_party/angle/third_party/vulkan-loader/BUILD.gn
+++ chromium-69.0.3497.100/third_party/angle/third_party/vulkan-loader/BUILD.gn
@@ -192,10 +192,6 @@ config("vulkan_loader_config") {
if (is_win) {
cflags = [ "/wd4201" ]
}
- if (is_linux) {
- # assume secure_getenv() is available
- defines += [ "HAVE_SECURE_GETENV" ]
- }
}
if (!is_android) {

View File

@ -1,13 +0,0 @@
diff --git chromium-75.0.3770.100/sandbox/linux/seccomp-bpf/trap.cc chromium-75.0.3770.100/sandbox/linux/seccomp-bpf/trap.cc
index 003708d..0fef314 100644
--- chromium-75.0.3770.100/sandbox/linux/seccomp-bpf/trap.cc
+++ chromium-75.0.3770.100/sandbox/linux/seccomp-bpf/trap.cc
@@ -168,7 +168,7 @@ void Trap::SigSys(int nr, LinuxSigInfo* info, ucontext_t* ctx) {
// most versions of glibc don't include this information in siginfo_t. So,
// we need to explicitly copy it into a arch_sigsys structure.
struct arch_sigsys sigsys;
- memcpy(&sigsys, &info->_sifields, sizeof(sigsys));
+ memcpy(&sigsys, &info->__si_fields, sizeof(sigsys));
#if defined(__mips__)
// When indirect syscall (syscall(__NR_foo, ...)) is made on Mips, the

View File

@ -1,25 +0,0 @@
diff --git chromium-69.0.3497.100/third_party/swiftshader/src/Common/Socket.hpp
index b6b9abd..aa61d9f 100644
--- chromium-69.0.3497.100/third_party/swiftshader/src/Common/Socket.hpp
+++ chromium-69.0.3497.100/third_party/swiftshader/src/Common/Socket.hpp
@@ -18,6 +18,7 @@
#if defined(_WIN32)
#include <winsock2.h>
#else
+ #include <sys/select.h>
#include <sys/socket.h>
typedef int SOCKET;
#endif
diff --git chromium-75.0.3770.100/net/socket/udp_socket_posix.cc
index 08bf79c..3ee5353 100644
--- chromium-75.0.3770.100/net/socket/udp_socket_posix.cc.orig
+++ chromium-75.0.3770.100/net/socket/udp_socket_posix.cc
@@ -1194,7 +1194,7 @@ SendResult UDPSocketPosixSender::InternalSendmmsgBuffers(
msg_iov->push_back({const_cast<char*>(buffer->data()), buffer->length()});
msgvec->reserve(buffers.size());
for (size_t j = 0; j < buffers.size(); j++)
- msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0});
+ msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, 0, nullptr, 0, 0, 0}, 0});
int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0));
SendResult send_result(0, 0, std::move(buffers));
if (result < 0) {

View File

@ -1,46 +0,0 @@
diff --git chromium-75.0.3770.100/base/threading/platform_thread_linux.cc chromium-75.0.3770.100/base/threading/platform_thread_linux.cc
index 095c49b..b81b050 100644
--- chromium-75.0.3770.100/base/threading/platform_thread_linux.cc
+++ chromium-75.0.3770.100/base/threading/platform_thread_linux.cc
@@ -185,12 +185,14 @@ void InitThreading() {}
void TerminateOnThread() {}
size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) {
-#if !defined(THREAD_SANITIZER)
- return 0;
-#else
+#if defined(THREAD_SANITIZER)
// ThreadSanitizer bloats the stack heavily. Evidence has been that the
// default stack size isn't enough for some browser tests.
return 2 * (1 << 23); // 2 times 8192K (the default stack size on Linux).
+#elif defined(__GLIBC__)
+ return 0;
+#else
+ return 1 * (1 << 23); // 8192K (the default stack size on glibc)
#endif
}
diff --git chromium-75.0.3770.100/chrome/app/shutdown_signal_handlers_posix.cc chromium-75.0.3770.100/chrome/app/shutdown_signal_handlers_posix.cc
index 621d441..132e0f2 100644
--- chromium-75.0.3770.100/chrome/app/shutdown_signal_handlers_posix.cc
+++ chromium-75.0.3770.100/chrome/app/shutdown_signal_handlers_posix.cc
@@ -186,12 +186,19 @@ void InstallShutdownSignalHandlers(
g_pipe_pid = getpid();
g_shutdown_pipe_read_fd = pipefd[0];
g_shutdown_pipe_write_fd = pipefd[1];
+#ifdef __GLIBC__
#if !defined(ADDRESS_SANITIZER)
const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 2;
#else
// ASan instrumentation bloats the stack frames, so we need to increase the
// stack size to avoid hitting the guard page.
const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 4;
+#endif
+#else
+ // PTHREAD_STACK_MIN is much smaller on musl. ConstructTlsVector uses
+ // 6616 bytes of stack by itself. This matches the value of the GLIBC
+ // minumum * 2.
+ const size_t kShutdownDetectorThreadStackSize = 32768;
#endif
ShutdownDetector* detector = new ShutdownDetector(
g_shutdown_pipe_read_fd, std::move(shutdown_callback), task_runner);

View File

@ -1,38 +0,0 @@
diff --git chromium-75.0.3770.100/base/debug/stack_trace.cc chromium-75.0.3770.100/base/debug/stack_trace.cc
index d8ca822..d78f128 100644
--- chromium-75.0.3770.100/base/debug/stack_trace.cc
+++ chromium-75.0.3770.100/base/debug/stack_trace.cc
@@ -225,7 +225,9 @@ void StackTrace::Print() const {
}
void StackTrace::OutputToStream(std::ostream* os) const {
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
OutputToStreamWithPrefix(os, nullptr);
+#endif
}
std::string StackTrace::ToString() const {
@@ -233,7 +235,7 @@ std::string StackTrace::ToString() const {
}
std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const {
std::stringstream stream;
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
OutputToStreamWithPrefix(&stream, prefix_string);
#endif
return stream.str();
diff --git chromium-75.0.3770.100/base/logging.cc chromium-75.0.3770.100/base/logging.cc
index 52720c4..8b759c7 100644
--- chromium-75.0.3770.100/base/logging.cc
+++ chromium-75.0.3770.100/base/logging.cc
@@ -582,8 +582,8 @@ LogMessage::LogMessage(const char* file, int line, LogSeverity severity,
LogMessage::~LogMessage() {
size_t stack_start = stream_.tellp();
-#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && !defined(__UCLIBC__) && \
- !defined(OS_AIX)
+#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && defined(__GLIBC__) && \
+ !defined(__UCLIBC__) && !defined(OS_AIX)
if (severity_ == LOG_FATAL && !base::debug::BeingDebugged()) {
// Include a stack trace on a fatal, unless a debugger is attached.
base::debug::StackTrace stack_trace;

View File

@ -1,18 +0,0 @@
diff --git chromium-69.0.3497.100/third_party/lss/linux_syscall_support.h
index 5d9c2e8..2682349 100644
--- chromium-69.0.3497.100/third_party/lss/linux_syscall_support.h
+++ chromium-69.0.3497.100/third_party/lss/linux_syscall_support.h
@@ -166,6 +166,13 @@ extern "C" {
# undef __NR_waitpid
#endif
+#ifdef pread64
+#undef pread64
+#endif
+#ifdef pwrite64
+#undef pwrite64
+#endif
+
/* As glibc often provides subtly incompatible data structures (and implicit
* wrapper functions that convert them), we provide our own kernel data
* structures for use by the system calls.

View File

@ -1,25 +0,0 @@
diff --git chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
index b895f6d..4f13352 100644
--- chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+++ chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
@@ -490,7 +490,9 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
siginfo.si_code = SI_USER;
siginfo.si_pid = getpid();
ucontext_t context;
+#if defined(__GLIBC__)
getcontext(&context);
+#endif
return HandleSignal(sig, &siginfo, &context);
}
@@ -675,8 +677,10 @@ bool ExceptionHandler::WriteMinidump() {
sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
CrashContext context;
+#if defined(__GLIBC__)
int getcontext_result = getcontext(&context.context);
if (getcontext_result)
+#endif
return false;
#if defined(__i386__)

View File

@ -1,24 +0,0 @@
Use monotonic clock for pthread_cond_timedwait with musl too.
diff --git a/v8/src/base/platform/condition-variable.cc b/v8/src/base/platform/condition-variable.cc
index 5ea7083..c13027e 100644
--- ./v8/src/base/platform/condition-variable.cc
+++ ./v8/src/base/platform/condition-variable.cc
@@ -16,7 +16,7 @@ namespace base {
ConditionVariable::ConditionVariable() {
#if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \
- (V8_OS_LINUX && V8_LIBC_GLIBC))
+ V8_OS_LINUX)
// On Free/Net/OpenBSD and Linux with glibc we can change the time
// source for pthread_cond_timedwait() to use the monotonic clock.
pthread_condattr_t attr;
@@ -92,7 +92,7 @@ bool ConditionVariable::WaitFor(Mutex* mutex, const TimeDelta& rel_time) {
&native_handle_, &mutex->native_handle(), &ts);
#else
#if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \
- (V8_OS_LINUX && V8_LIBC_GLIBC))
+ V8_OS_LINUX)
// On Free/Net/OpenBSD and Linux with glibc we can change the time
// source for pthread_cond_timedwait() to use the monotonic clock.
result = clock_gettime(CLOCK_MONOTONIC, &ts);

View File

@ -1,24 +0,0 @@
diff --git chromium-69.0.3497.100/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
index d03c7a8..78ca9dd 100644
--- chromium-69.0.3497.100/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
+++ chromium-69.0.3497.100/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
@@ -36,6 +36,7 @@
#include <elf.h>
#include <link.h>
#include <stddef.h>
+#include <limits.h>
#include "common/memory_range.h"
@@ -51,9 +52,9 @@ class ElfCoreDump {
typedef ElfW(Phdr) Phdr;
typedef ElfW(Word) Word;
typedef ElfW(Addr) Addr;
-#if __WORDSIZE == 32
+#if ULONG_MAX == 0xffffffff
static const int kClass = ELFCLASS32;
-#elif __WORDSIZE == 64
+#elif ULONG_MAX == 0xffffffffffffffff
static const int kClass = ELFCLASS64;
#else
#error "Unsupported __WORDSIZE for ElfCoreDump."

View File

@ -1,14 +0,0 @@
description: disable dependencies on third_party/perfetto
author: Michael Gilbert <mgilbert@debian.org>
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -666,7 +666,7 @@ group("gn_all") {
}
}
- if (is_mac || is_linux || is_android || is_fuchsia) {
+ if (false) {
deps += [ "//third_party/perfetto:all" ]
}

View File

@ -1,75 +0,0 @@
From fe92c640c7e02841dcf5dbc20a5eddbd07fd7edf Mon Sep 17 00:00:00 2001
From: Joachim Bauch <jojo@struktur.de>
Date: Tue, 7 Jul 2015 17:02:09 +0200
Subject: [PATCH 47/66] safe_browsing: disable incident reporting
Disables the safebrowsing incident reporting where you could upload
information about a blocked URL to Google (also added a trk prefix to
the URL so we get notified if this happens again in the future).
---
.../safe_browsing/incident_reporting/incident_report_uploader_impl.cc | 2 +-
.../safe_browsing/incident_reporting/incident_reporting_service.cc | 3 +++
chrome/browser/safe_browsing/safe_browsing_blocking_page.cc | 3 +--
chrome/browser/safe_browsing/safe_browsing_service.cc | 2 ++
components/security_interstitials/core/safe_browsing_loud_error_ui.cc | 2 ++
5 files changed, 9 insertions(+), 3 deletions(-)
--- a/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc
@@ -23,7 +23,7 @@ namespace safe_browsing {
namespace {
const char kSbIncidentReportUrl[] =
- "https://sb-ssl.google.com/safebrowsing/clientreport/incident";
+ "trk:268:https://sb-ssl.google.com/safebrowsing/clientreport/incident";
constexpr net::NetworkTrafficAnnotationTag
kSafeBrowsingIncidentTrafficAnnotation =
--- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
@@ -311,11 +311,7 @@ IncidentReportingService::UploadContext:
// static
bool IncidentReportingService::IsEnabledForProfile(Profile* profile) {
- if (profile->IsOffTheRecord())
- return false;
- if (!profile->GetPrefs()->GetBoolean(prefs::kSafeBrowsingEnabled))
- return false;
- return IsExtendedReportingEnabled(*profile->GetPrefs());
+ return false;
}
IncidentReportingService::IncidentReportingService(
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
@@ -62,8 +62,7 @@ class SafeBrowsingBlockingPageFactoryImp
PrefService* prefs =
Profile::FromBrowserContext(web_contents->GetBrowserContext())
->GetPrefs();
- bool is_extended_reporting_opt_in_allowed =
- IsExtendedReportingOptInAllowed(*prefs);
+ bool is_extended_reporting_opt_in_allowed = false;
bool is_proceed_anyway_disabled =
prefs->GetBoolean(prefs::kSafeBrowsingProceedAnywayDisabled);
--- a/chrome/browser/safe_browsing/safe_browsing_service.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_service.cc
@@ -358,7 +358,7 @@ SafeBrowsingUIManager* SafeBrowsingServi
}
void SafeBrowsingService::RegisterAllDelayedAnalysis() {
-#if defined(FULL_SAFE_BROWSING)
+#if 0
RegisterBinaryIntegrityAnalysis();
#endif
}
--- a/components/security_interstitials/core/safe_browsing_loud_error_ui.cc
+++ b/components/security_interstitials/core/safe_browsing_loud_error_ui.cc
@@ -22,6 +22,7 @@ namespace {
// For malware interstitial pages, we link the problematic URL to Google's
// diagnostic page.
+// trk:228
const char kSbDiagnosticUrl[] =
"https://transparencyreport.google.com/safe-browsing/search?url=%s";

View File

@ -1,209 +0,0 @@
From 8f348bf2c249701de2f6049ac57fe346bd6b665f Mon Sep 17 00:00:00 2001
From: Joachim Bauch <jojo@struktur.de>
Date: Tue, 7 Jul 2015 18:28:46 +0200
Subject: [PATCH 48/66] safe_browsing: disable reporting of safebrowsing
override
Disables reporting of the safebrowsing override, i.e. the report sent
if a user decides to visit a page that was flagged as "insecure".
This prevents trk:148 (phishing) and trk:149 (malware).
---
.../browser/safe_browsing/client_side_detection_service.cc | 12 ++++++++++++
1 file changed, 12 insertions(+)
--- a/chrome/browser/safe_browsing/client_side_detection_service.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_service.cc
@@ -64,12 +64,6 @@ enum MalwareReportTypes {
REPORT_RESULT_MAX
};
-void UpdateEnumUMAHistogram(MalwareReportTypes report_type) {
- DCHECK(report_type >= 0 && report_type < REPORT_RESULT_MAX);
- UMA_HISTOGRAM_ENUMERATION("SBClientMalware.SentReports", report_type,
- REPORT_RESULT_MAX);
-}
-
} // namespace
const int ClientSideDetectionService::kInitialClientModelFetchDelayMs = 10000;
@@ -284,94 +278,8 @@ void ClientSideDetectionService::StartCl
DCHECK_CURRENTLY_ON(BrowserThread::UI);
std::unique_ptr<ClientPhishingRequest> request(verdict);
- if (!enabled_) {
- if (!callback.is_null())
- callback.Run(GURL(request->url()), false);
- return;
- }
-
- // Fill in metadata about which model we used.
- if (is_extended_reporting) {
- request->set_model_filename(model_loader_extended_->name());
- request->mutable_population()->set_user_population(
- ChromeUserPopulation::EXTENDED_REPORTING);
- } else {
- request->set_model_filename(model_loader_standard_->name());
- request->mutable_population()->set_user_population(
- ChromeUserPopulation::SAFE_BROWSING);
- }
- DVLOG(2) << "Starting report for hit on model " << request->model_filename();
-
- request->mutable_population()->set_profile_management_status(
- GetProfileManagementStatus(
- g_browser_process->browser_policy_connector()));
-
- std::string request_data;
- if (!request->SerializeToString(&request_data)) {
- UMA_HISTOGRAM_COUNTS_1M("SBClientPhishing.RequestNotSerialized", 1);
- DVLOG(1) << "Unable to serialize the CSD request. Proto file changed?";
- if (!callback.is_null())
- callback.Run(GURL(request->url()), false);
- return;
- }
-
- net::NetworkTrafficAnnotationTag traffic_annotation =
- net::DefineNetworkTrafficAnnotation(
- "safe_browsing_client_side_phishing_detector", R"(
- semantics {
- sender: "Safe Browsing Client-Side Phishing Detector"
- description:
- "If the client-side phishing detector determines that the "
- "current page contents are similar to phishing pages, it will "
- "send a request to Safe Browsing to ask for a final verdict. If "
- "Safe Browsing agrees the page is dangerous, Chrome will show a "
- "full-page interstitial warning."
- trigger:
- "Whenever the clinet-side detector machine learning model "
- "computes a phishy-ness score above a threshold, after page-load."
- data:
- "Top-level page URL without CGI parameters, boolean and double "
- "features extracted from DOM, such as the number of resources "
- "loaded in the page, if certain likely phishing and social "
- "engineering terms found on the page, etc."
- destination: GOOGLE_OWNED_SERVICE
- }
- policy {
- cookies_allowed: YES
- cookies_store: "Safe browsing cookie store"
- setting:
- "Users can enable or disable this feature by toggling 'Protect "
- "you and your device from dangerous sites' in Chrome settings "
- "under Privacy. This feature is enabled by default."
- chrome_policy {
- SafeBrowsingEnabled {
- policy_options {mode: MANDATORY}
- SafeBrowsingEnabled: false
- }
- }
- })");
- auto resource_request = std::make_unique<network::ResourceRequest>();
- resource_request->url = GetClientReportUrl(kClientReportPhishingUrl);
- resource_request->method = "POST";
- resource_request->load_flags = net::LOAD_DISABLE_CACHE;
- auto loader = network::SimpleURLLoader::Create(std::move(resource_request),
- traffic_annotation);
- loader->AttachStringForUpload(request_data, "application/octet-stream");
- loader->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
- url_loader_factory_.get(),
- base::BindOnce(&ClientSideDetectionService::OnURLLoaderComplete,
- base::Unretained(this), loader.get()));
-
- // Remember which callback and URL correspond to the current fetcher object.
- std::unique_ptr<ClientPhishingReportInfo> info(new ClientPhishingReportInfo);
- auto* loader_ptr = loader.get();
- info->loader = std::move(loader);
- info->callback = callback;
- info->phishing_url = GURL(request->url());
- client_phishing_reports_[loader_ptr] = std::move(info);
-
- // Record that we made a request
- phishing_report_times_.push(base::Time::Now());
+ if (!callback.is_null())
+ callback.Run(GURL(request->url()), false);
}
void ClientSideDetectionService::StartClientReportMalwareRequest(
@@ -380,81 +288,8 @@ void ClientSideDetectionService::StartCl
DCHECK_CURRENTLY_ON(BrowserThread::UI);
std::unique_ptr<ClientMalwareRequest> request(verdict);
- if (!enabled_) {
- if (!callback.is_null())
- callback.Run(GURL(request->url()), GURL(request->url()), false);
- return;
- }
-
- std::string request_data;
- if (!request->SerializeToString(&request_data)) {
- UpdateEnumUMAHistogram(REPORT_FAILED_SERIALIZATION);
- DVLOG(1) << "Unable to serialize the CSD request. Proto file changed?";
- if (!callback.is_null())
- callback.Run(GURL(request->url()), GURL(request->url()), false);
- return;
- }
-
- net::NetworkTrafficAnnotationTag traffic_annotation =
- net::DefineNetworkTrafficAnnotation(
- "safe_browsing_client_side_malware_detector", R"(
- semantics {
- sender: "Safe Browsing Client-Side Malware Detector"
- description:
- "If the client-side malware detector determines that a requested "
- "page's IP is in the blacklisted malware IPs, it will send a "
- "request to Safe Browsing to ask for a final verdict. If Safe "
- "Browsing agrees the page is dangerous, Chrome will show a "
- "full-page interstitial warning."
- trigger:
- "Whenever the IP of the page is in malware blacklist."
- data:
- "Top-level page URL without CGI parameters, its non-https "
- "referrer, URLs of resources that match IP blacklist."
- destination: GOOGLE_OWNED_SERVICE
- }
- policy {
- cookies_allowed: YES
- cookies_store: "Safe browsing cookie store"
- setting:
- "Users can enable or disable this feature by toggling 'Protect "
- "you and your device from dangerous sites' in Chrome settings "
- "under Privacy. This feature is enabled by default."
- chrome_policy {
- SafeBrowsingEnabled {
- policy_options {mode: MANDATORY}
- SafeBrowsingEnabled: false
- }
- }
- })");
- auto resource_request = std::make_unique<network::ResourceRequest>();
- resource_request->url = GetClientReportUrl(kClientReportMalwareUrl);
- resource_request->method = "POST";
- resource_request->load_flags = net::LOAD_DISABLE_CACHE;
- auto loader = network::SimpleURLLoader::Create(std::move(resource_request),
- traffic_annotation);
- loader->AttachStringForUpload(request_data, "application/octet-stream");
- loader->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
- url_loader_factory_.get(),
- base::BindOnce(&ClientSideDetectionService::OnURLLoaderComplete,
- base::Unretained(this), loader.get()));
-
- // Remember which callback and URL correspond to the current fetcher object.
- std::unique_ptr<ClientMalwareReportInfo> info(new ClientMalwareReportInfo);
- auto* loader_ptr = loader.get();
- info->loader = std::move(loader);
- info->callback = callback;
- info->original_url = GURL(request->url());
- client_malware_reports_[loader_ptr] = std::move(info);
-
- UMA_HISTOGRAM_ENUMERATION("SBClientMalware.SentReports", REPORT_SENT,
- REPORT_RESULT_MAX);
-
- UMA_HISTOGRAM_COUNTS_1M("SBClientMalware.IPBlacklistRequestPayloadSize",
- request_data.size());
-
- // Record that we made a malware request
- malware_report_times_.push(base::Time::Now());
+ if (!callback.is_null())
+ callback.Run(GURL(request->url()), GURL(request->url()), false);
}
void ClientSideDetectionService::HandlePhishingVerdict(

View File

@ -1,87 +0,0 @@
description: disable support for safe browsing inspection of rar files
author: Michael Gilbert <mgilbert@debian.org>
bug: http://bugs.debian.org/914487
--- a/chrome/common/safe_browsing/BUILD.gn
+++ b/chrome/common/safe_browsing/BUILD.gn
@@ -64,41 +64,6 @@ if (safe_browsing_mode == 1) {
]
}
- source_set("rar_analyzer") {
- sources = [
- "rar_analyzer.cc",
- "rar_analyzer.h",
- ]
-
- deps = [
- ":archive_analyzer_results",
- ":download_type_util",
- ":file_type_policies",
- "//base",
- "//base:i18n",
- "//components/safe_browsing:features",
- "//third_party/unrar:unrar",
- ]
-
- defines = [
- "_FILE_OFFSET_BITS=64",
- "LARGEFILE_SOURCE",
- "RAR_SMP",
- "SILENT",
-
- # The following is set to disable certain macro definitions in the unrar
- # source code.
- "CHROMIUM_UNRAR",
-
- # Disables exceptions in unrar, replaces them with process termination.
- "UNRAR_NO_EXCEPTIONS",
- ]
-
- public_deps = [
- "//components/safe_browsing:csd_proto",
- ]
- }
-
source_set("disk_image_type_sniffer_mac") {
sources = [
"disk_image_type_sniffer_mac.cc",
@@ -167,7 +132,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing:features",
]
--- a/chrome/services/file_util/safe_archive_analyzer.cc
+++ b/chrome/services/file_util/safe_archive_analyzer.cc
@@ -7,7 +7,6 @@
#include "base/macros.h"
#include "build/build_config.h"
#include "chrome/common/safe_browsing/archive_analyzer_results.h"
-#include "chrome/common/safe_browsing/rar_analyzer.h"
#include "chrome/common/safe_browsing/zip_analyzer.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
@@ -50,8 +49,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
AnalyzeRarFileCallback callback) {
DCHECK(rar_file.IsValid());
+ LOG(FATAL) << "AnalyzeRarFile is disabled in this build";
safe_browsing::ArchiveAnalyzerResults results;
- safe_browsing::rar_analyzer::AnalyzeRarFile(
- std::move(rar_file), std::move(temporary_file), &results);
std::move(callback).Run(results);
}
--- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
+++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
@@ -101,7 +101,7 @@ void FileAnalyzer::Start(const base::Fil
if (inspection_type == DownloadFileType::ZIP) {
StartExtractZipFeatures();
} else if (inspection_type == DownloadFileType::RAR) {
- StartExtractRarFeatures();
+ LOG(WARNING) << "Safebrowser inspection of rar files is disabled in this build";
#if defined(OS_MACOSX)
} else if (inspection_type == DownloadFileType::DMG) {
StartExtractDmgFeatures();

View File

@ -1,15 +0,0 @@
description: do not override the welcome page setting set in master_preferences
author: Michael Gilbert <mgilbert@debian.org>
bug-debian: http://bugs.debian.org/857767
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -1072,7 +1072,7 @@ void ProfileManager::InitProfileUserPref
profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
supervised_user_id);
}
-#if !defined(OS_ANDROID)
+#if 0
// TODO(pmonette): Fix IsNewProfile() to handle the case where the profile is
// new even if the "Preferences" file already existed. (For example: The
// master_preferences file is dumped into the default profile on first run,

View File

@ -1,74 +0,0 @@
https://commondatastorage.googleapis.com/chromium-browser-official/chromium-75.0.3770.142.tar.xz
patches/0000-build.patch
patches/0001-fix-building-without-safebrowsing.patch
patches/0001-simd.patch
patches/0002-uninitializedcheck.patch
patches/0003-disable-autofill-download-manager.patch
patches/0004-disable-google-url-tracker.patch
patches/0005-disable-default-extensions.patch
patches/0006-modify-default-prefs.patch
patches/0007-disable-web-resource-service.patch
patches/0008-restore-classic-ntp.patch
patches/0009-disable-google-ipv6-probes.patch
patches/0010-disable-gcm-status-check.patch
patches/0014-disable-translation-lang-fetch.patch
patches/0015-disable-update-pings.patch
patches/0019-disable-battery-status-service.patch
patches/0021-disable-rlz.patch
patches/android.patch
patches/chromium-75-fix-gn-gen.patch
patches/chromium-75-gcc-angle-fix.patch
patches/chromium-75-llvm8.patch
patches/chromium-75-lss.patch
patches/chromium-75-noexcept.patch
patches/chromium-75-pure-virtual.patch
patches/chromium-75-unique_ptr.patch
patches/chromium-compiler-r9.patch
patches/chromium-fix-char_traits.patch
patches/chromium-optional-atk-r1.patch
patches/chromium-optional-dbus-r5.patch
patches/chromium-url-formatter.patch
patches/chromium-widevine-r4.patch
patches/device-notifications.patch
patches/disable-crash-reporter.patch
patches/disable-domain-reliability.patch
patches/disable-download-quarantine.patch
patches/disable-fetching-field-trials.patch
patches/disable-fonts-googleapis-references.patch
patches/disable-gaia.patch
patches/disable-gcm.patch
patches/disable-google-host-detection.patch
patches/disable-mei-preload.patch
patches/disable-network-time-tracker.patch
patches/disable-webrtc-log-uploader.patch
patches/disable_swiftshader.patch
patches/fix-building-without-mdns-and-service-discovery.patch
patches/fix-building-without-safebrowsing.patch
patches/fuzzers.patch
patches/google-api-warning.patch
patches/musl-cdefs-r2.patch
patches/musl-dlopen.patch
patches/musl-dns-r2.patch
patches/musl-execinfo-r8.patch
patches/musl-fpstate-r1.patch
patches/musl-headers-r1.patch
patches/musl-libcpp.patch
patches/musl-mallinfo-r7.patch
patches/musl-pthread-r5.patch
patches/musl-ptrace.patch
patches/musl-realpath.patch
patches/musl-sandbox-r3.patch
patches/musl-secure_getenv-r1.patch
patches/musl-siginfo.patch
patches/musl-socket.patch
patches/musl-stacksize-r3.patch
patches/musl-stacktrace-r2.patch
patches/musl-syscall.patch
patches/musl-ucontext-r1.patch
patches/musl-v8-monotonic-pthread-cont_timedwait.patch
patches/musl-wordsize-r1.patch
patches/perfetto.patch
patches/safe_browsing-disable-incident-reporting.patch
patches/safe_browsing-disable-reporting-of-safebrowsing-over.patch
patches/unrar.patch
patches/welcome-page.patch

View File

@ -1 +0,0 @@
75.0.3770.142 1

View File

@ -1,11 +0,0 @@
#!/bin/sh -e
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DBUILD_SHARED_LIBS=1 \
-DJSONCPP_WITH_TESTS=0 \
-DCMAKE_BUILD_TYPE=Release
make
make DESTDIR="$1" install

View File

@ -1 +0,0 @@
c49deac9e0933bcb7044f08516861a2d560988540b23de2ac1ad443b219afdb6 1.8.4.tar.gz

View File

@ -1 +0,0 @@
cmake make

View File

@ -1 +0,0 @@
https://github.com/open-source-parsers/jsoncpp/archive/1.8.4.tar.gz

View File

@ -1 +0,0 @@
1.8.4 1

View File

@ -1,4 +0,0 @@
#!/bin/sh -e
make
make DESTDIR="$1" RAISE_SETFCAP=no lib=lib prefix=/usr install

View File

@ -1 +0,0 @@
dac1792d0118bee6aae6ba7fb93ff1602c6a9bda812fd63916eee1435b9c486a libcap-2.27.tar.xz

View File

@ -1 +0,0 @@
https://kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.27.tar.xz

View File

@ -1 +0,0 @@
2.27 1

View File

@ -1,14 +0,0 @@
#!/bin/sh -e
cd contrib/minizip
autoreconf -fi
./configure \
--prefix=/usr \
--enable-static=no
make
make DESTDIR="$1" install
rm -f "$1/usr/include/minizip/crypt.h"

View File

@ -1 +0,0 @@
c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1 zlib-1.2.11.tar.gz

View File

@ -1,4 +0,0 @@
#zlib make
#automake make
#autoconf make
#libtool make

View File

@ -1 +0,0 @@
https://zlib.net/zlib-1.2.11.tar.gz

View File

@ -1 +0,0 @@
1.2.11 1

View File

@ -1,19 +0,0 @@
#!/bin/sh -e
make \
PREFIX=/usr \
SHAREDIR=/usr/share/hwdata \
SHARED=yes \
MANDIR=/usr/share/man \
SBINDIR=/usr/bin
make \
PREFIX=/usr \
SHAREDIR=/usr/share/hwdata \
SHARED=yes \
MANDIR=/usr/share/man \
SBINDIR=/usr/bin \
DESTDIR="$1" \
install install-lib
chmod -v 755 "$1/usr/lib/libpci.so"

Some files were not shown because too many files have changed in this diff Show More