Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade from Chromium 78.0.3904.108 to Chromium 79.0.3945.45 #4043

Closed
wants to merge 69 commits into from

Conversation

mkarolin
Copy link
Collaborator

@mkarolin mkarolin commented Nov 20, 2019

Fixes brave/brave-browser#6588
Related PR brave/brave-browser#7043

Submitter Checklist:

Test Plan:

Reviewer Checklist:

  • New files have MPL-2.0 license header.
  • Request a security/privacy review as needed.
  • Adequate test coverage exists to prevent regressions
  • Verify test plan is specified in PR before merging to source

After-merge Checklist:

  • The associated issue milestone is set to the smallest version that the
    changes has landed on.
  • All relevant documentation has been updated.

@mkarolin mkarolin added this to the 1.3.x - Nightly milestone Nov 20, 2019
@mkarolin mkarolin self-assigned this Nov 20, 2019
@mkarolin mkarolin force-pushed the 79.0.3945.45 branch 2 times, most recently from 05436bc to ad07b39 Compare November 21, 2019 15:25
@mkarolin mkarolin force-pushed the 79.0.3945.45 branch 2 times, most recently from 56a8225 to e548f10 Compare November 22, 2019 05:08
@mkarolin mkarolin changed the title Upgrade patches from Chromium 78.0.3904.108 to Chromium 79.0.3945.45 WIP: Upgrade patches from Chromium 78.0.3904.108 to Chromium 79.0.3945.45 Nov 22, 2019
@mkarolin mkarolin marked this pull request as ready for review November 22, 2019 16:44
Copy link
Collaborator

@tmancey tmancey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brave ads LGTM++

@mkarolin mkarolin force-pushed the 79.0.3945.45 branch 3 times, most recently from 8d72d44 to adaf07c Compare November 22, 2019 22:33
mkarolin added a commit that referenced this pull request Nov 23, 2019
Fixes brave/brave-browser#7051

Fixes the patch that was removed incorrectly instead of being
updated in "Upgrade patches from Chromium 78.0.3904.108 to
Chromium 79.0.3945.45" commit in #4043
@mkarolin mkarolin added the CI/skip-ios Do not run CI builds for iOS label Nov 23, 2019
Chromium change:

https://chromium.googlesource.com/chromium/src/+/6e011bf45c6cb082083110c4885ca135f37c4202

commit 6e011bf45c6cb082083110c4885ca135f37c4202
Author: Henrique Nakashima <hnakashima@chromium.org>
Date:   Fri Sep 27 16:51:35 2019 +0000

    Extract code in showAccessibilityToast() to showAnchoredToast().

    showAnchoredToast() is in Toast and can be used by other callers since
    it does not contain anything specific to accessibility.

    Bug: 995916
Chromium change:

https://chromium.googlesource.com/chromium/src/+/bcf46e036b818232376174e0e002cfc67f2e337c

commit bcf46e036b818232376174e0e002cfc67f2e337c
Author: Theresa Wellington <twellington@chromium.org>
Date:   Thu Oct 17 14:43:33 2019 +0000

    Clean-up some app menu dependencies in preparation for modularization

     - Move OverviewModeObserver that dismisses menu when overview mode
       changes from appmenu/ to RootUiCoordinator.
     - Remove unneeded ToolbarManager import (only used in comments).
     - Create TranslateUtil with static utility for determining if
       translate  is available for the current Tab.
     - Use ObservableSupplier to pass BookmarkBridge to
       AppMenuPropertiesDelegateImpl instead of using interface method.
     - Rename AppMenuTest to TabbedAppMenuTest since this is really an
       integration test shown for the app menu in ChromeTabbedActivity.
     - Update AppMenuTest to remove dependency on ChromeActivity and avoid
       exposing future internal classes.
     - Create javatests/res/values/ids.xml with test ids for use in
       modal dialog tests.

    BUG=966644
Chromium change:

https://chromium.googlesource.com/chromium/src/+/d42cfe13da276154cb9cfbf3d7b9db9bf006f5ec

commit d42cfe13da276154cb9cfbf3d7b9db9bf006f5ec
Author: Andrew Grieve <agrieve@google.com>
Date:   Wed Sep 25 19:15:58 2019 +0000

    Prevent verification errors from ApiCompatibilityUtils.java

    More hardening against verification failures caused by inlining.

    Also removes some unnecessary passing around of Application context.

    TBR=agrieve # Trivial change to ui/android

    Bug: 1006812
Fixes brave/brave-browser#6627

The label used to be set based on a flag that's no longer available
causing our label in OnExit tab to differ from the Advanced tab.

Chromium change:

https://chromium.googlesource.com/chromium/src/+/a3f57021dd6ac0f0df8e473da36f874d4132819f

commit a3f57021dd6ac0f0df8e473da36f874d4132819f
Author: Maggie Cai <mxcai@chromium.org>
Date:   Wed Jul 17 01:03:22 2019 +0000

    Settings: Remove site-settings flag.

    All sites is launched in M74, this CL removes site-settings flag.

    BUG=980426
…nge.

The API was changed in C78, but missed this instance of it because it
only happens in x64 build.

C78 change:
fabfe6c

Chromium change:
https://chromium.googlesource.com/chromium/src/+/b851acc052ee6a505d4f60fb9cc326c410b1285b

commit b851acc052ee6a505d4f60fb9cc326c410b1285b
Author: Lily Chen <chlily@chromium.org>
Date:   Wed Aug 7 15:54:44 2019 +0000

    Split server_time out of net::CookieOptions

    CookieOptions had an optional server_time field, which was used for
    clock skew adjustments when creating a cookie, and nothing else.
    Since CanonicalCookie::Create no longer depends on the other fields of
    CookieOptions, this CL replaces its CookieOptions argument with a
    base::Optional<base::Time> server_time argument. The server_time field
    is removed from CookieOptions because nothing else needs it. This does
    mean that CookieStore::SetCookieWithOptionsAsync needs an additional
    server_time argument since CookieOptions no longer includes it. But
    that method needs to be removed anyways.

    Mostly but not entirely mechanical changes. This should not change any
    behavior.

    Bug: 989098
In components/cdm/renderer/android_key_systems.h the declaration of
AddAndroidWidevine is guarded by BUILDFLAG(ENABLE_WIDEVINE), but in
android_webview/renderer/aw_key_systems.cc it is used without the
guard. Instead of patching we can add an empty definition of the
same function in a chromium_src override for when
BUILDFLAG(ENABLE_WIDEVINE) is not true.
Fixes brave/brave-browser#7051

Fixes the patch that was removed incorrectly instead of being
updated in "Upgrade patches from Chromium 78.0.3904.108 to
Chromium 79.0.3945.45" commit in #4043
The script asserts that every message starts with IDS_. Messages in
print_media_strings.grdp start with PRINT_PREVIEW_MEDIA_. Added the
prefix to the assertion.
In Android .grd files Hebrew lang attribute is 'iw' whereas other .grd
files use 'he'. Updated the script to replace 'iw' to 'he' when fetching
the files from Transifex.
Got the following compilation error in Chromium/Quiche/Quic code:

../../net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc:546:26: error: result of comparison of constant 65280 with expression of type 'const quic::TransportParameters::TransportParameterId' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
    QUIC_BUG_IF(kv.first < 0xff00) << "custom_parameters should not be used "
                ~~~~~~~~ ^ ~~~~~~

As a workaround, added a chromium_src override that redefines QUIC_BUG_IF as DVLOG.

The Quiche change that causes it is:

https://quiche.googlesource.com/quiche.git/+/a2ef3010deaafd79e6ab52292b6051be7defab33

commit a2ef3010deaafd79e6ab52292b6051be7defab33
Author: vasilvv <vasilvv@google.com>
Date:   Thu Sep 12 18:32:14 2019 -0700

    Enable getting and setting custom QUIC transport parameters.

    This is primarily for WebTransport (https://tools.ietf.org/html/draft-vvv-webtransport-quic-00#section-3.2), but may be useful for other purposes in the future.
Chromium change:

https://chromium.googlesource.com/chromium/src/+/5feade616b86c4bd3022ebe486844ff8c4672841

commit 5feade616b86c4bd3022ebe486844ff8c4672841
Author: Lijin Shen <lazzzis@google.com>
Date:   Tue Sep 17 03:01:01 2019 +0000

    Add a checkbox for auto-darkening web contents to "Themes" settings

    This CL adds a checkbox in "Themes" settings screen, which is only
    shown when "System default" or "Dark" is selected. The checkbox can
    toggle the feature of auto-darkening web contents.

    Bug: 993391
Copy link
Member

@bsclifton bsclifton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Went through most of the commits - tried to respond to the ones @iefremov was tagged on 😄 (also built locally and ran through a few websites; works great)

The sooner we do brave/brave-browser#7056, the better! If it's backwards compatible, that is (ex: not sure if we can use new types before upstream changes it?) cc: @yrliou

I saw at least 6 commits in this PR related to that (ex: InterfacePtr => Remote, etc) as Igalia is porting these types upstream 😄

Nice work, @mkarolin, @pilgrim-brave, and @simonhong! 😄

@yrliou
Copy link
Member

yrliou commented Nov 26, 2019

@bsclifton For our own services, we could start to use new types and new types are backwards compatible. And I'll soon start working on brave/brave-browser#7056, but since it is not fully migrated on upstream yet, I don't think we are in a rush here.
As for chromium changes like commits you see in this PR, I think we could just do the change accordingly when doing chromium rebase like what we did in this PR.

Chromium changes:

https://chromium.googlesource.com/chromium/src/+/06a7f290e23932b6c9835361aac9fbbf565813f0

commit 06a7f290e23932b6c9835361aac9fbbf565813f0
Author: Yoichi Osato <yoichio@chromium.org>
Date:   Sat Oct 12 01:41:14 2019 +0000

    [WebSocket] Do not send response headers for failed handshake.

    This patch changes network service to restrict sending the headers to
    the renderer not to leak info if handshake was failed.

    This also changes WebRequest API and devtools event listening as failed
    when handshake was failed.

    Change-Id: I03160b06546711365273180a8020239e09528a47
    Bug: 944619

https://chromium.googlesource.com/chromium/src/+/832c8907284db238cec43d1ba0a3e8bb818c5cc3

commit 832c8907284db238cec43d1ba0a3e8bb818c5cc3
Author: Yutaka Hirano <yhirano@chromium.org>
Date:   Wed Oct 16 10:04:34 2019 +0000

    Allow extensions to modify CORS preflight with Web Request API (1/2)

    Supporting preflight is tricky because preflight requests are made in
    the network service, and they don't have request IDs. We are adding
    a new message, OnLoaderForCorsPreflightCreated, to
    TrustedURLLoaderHeaderClient to address that.

    We are using TrustedURLLoaderHeaderClient, which means this mechanism
    works only when "extraHeaders" is specified. Unlike for usual requests,
    WebRequestProxyingUrlLoaderFactory::InProgressRequest dispatches
     - onBeforeRequest when OnLoaderForCorsPreflightCreated is called,
     - onBeforeSendHeaders and onSendHeaders when OnBeforeSendHeaders
       is called, and
     - onHeadersReceived, onResponseStarted, and onCompleted when
       OnHeadersReceived is called.

    This CL is a preliminary change. It adds
     - TrustedURLLoaderHeaderClient.OnLoaderForCorsPreflightCreated
       as described above,
     - "remote_endpoint" param to TrustedHeaderClient.OnHeadersReceived
       to get endpoint information in OnHeadersReceived, and
     - kURLLoaderOptionAsCorsPreflight to mark a request as a CORS
       preflight.

    This CL doesn't change any behavior because we have not set
    kURLLoadOptionAsCorsPreflight and kURLLoadOptionUseHeaderClient in
    network::cors::PreflightController yet.

    The subsequent change is: https://crrev.com/c/1837561

    Bug: 1002884
mkarolin added a commit that referenced this pull request Nov 27, 2019
Fixes brave/brave-browser#7051

Fixes the patch that was removed incorrectly instead of being
updated in "Upgrade patches from Chromium 78.0.3904.108 to
Chromium 79.0.3945.45" commit in #4043
mkarolin added a commit that referenced this pull request Nov 27, 2019
Fixes brave/brave-browser#7051

Fixes the patch that was removed incorrectly instead of being
updated in "Upgrade patches from Chromium 78.0.3904.108 to
Chromium 79.0.3945.45" commit in #4043
@mkarolin
Copy link
Collaborator Author

Closing in favor of #4091

@mkarolin mkarolin closed this Nov 27, 2019
@mkarolin mkarolin deleted the 79.0.3945.45 branch November 27, 2019 21:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Upgrade from Chromium 78.0.3904.108 to Chromium 79.0.3945.56
8 participants