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

WIP: Upgrade Chromium from 74.0.3729.108 to Chromium 75.0.3770.15 #2349

Closed
wants to merge 33 commits into from

Conversation

mkarolin
Copy link
Collaborator

Fix brave/brave-browser#
Related PR: brave/brave-browser#

It's easiest to review this per commit.
Each commit explains where the change came from in Chromium's history.

Special notes to QA:

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.

Chromium change:

commit ebb902010f96a6c192d8dbb17a1ceac8ed1d783a
Author: Christopher Lam <[email protected]>
Date:   Thu Apr 4 03:42:36 2019 +0000

    Move OneShotEvent into base/.

    This CL moves the OneShotEvent primitive into base/, as it
    now satisfies the rule of 3 (chromecast/, extensions/, chrome/).
Due to Chromium change:

commit 0f5bdf53856d1891336823bb76a901ee0593b2d1
Author: Mounir Lamouri <[email protected]>
Date:   Thu Apr 4 16:32:35 2019 +0000

    Move MediaPlayerId to its own file.

    This avoids including web_contents_observer.h for consumers of the struct
    that aren't WebContentsObserver.

    Bug: 947806
Patch NativeExtensionBindingsSystem to have virtual destrcutor.
This class no longer inhertis from a base class, so we need to
explicitly make the destructor virtual so that we can subclass.

Also patch dispatcher.cc as redefinition in chromium_src is replacing
occurrances of NativeExtensionBindingsSystem that shouldn't be replaced.

Chromium change:

commit 095dc1341b05f736b93466941fa455d075efe8d5
Author: Devlin Cronin <[email protected]>
Date:   Fri Mar 29 19:43:30 2019 +0000

    [Extensions Bindings] Consolidate ExtensionBindingsSystem

    Since native bindings are now the only bindings system for extensions,
    remove the base class of ExtensionBindingsSystem, and conslidate all
    functionality in NativeExtensionBindingsSystem:
    - Remove extension_bindings_system.*
    - De-virtualize methods and transfer comments to
      NativeExtensionBindingsSystem
    - Move functionality from extension_bindings_system.cc to
      native_extension_bindings_system.cc
    - Update references and includes to point to
      NativeExtensionBindingsSystem

    Bug: 938998
Chromium change:

commit be09e054ddeb4d9c402ae6a071143a286a615c9e
Author: Mario Sanchez Prada <[email protected]>
Date:   Thu Apr 4 16:11:22 2019 +0000

    Remove net/base/completion_callback.h, which is no longer used

    After the cleanup work done to migrate away from net::CompletionCallback()
    and use net::Completion{Once|Repeating}Callback instead, this file is not
    needed anymore, so let's remove it to prevent accidental new usages of
    those generic callbacks, and force using the new ones.

    Bug: 807724
As indicated in the message below, these are now only intended for
tests. A review of our code using these may be needed.

Chromium change:

commit c113169ee60372b8fe17f0f449860032bf3b859d
Author: danakj <[email protected]>
Date:   Thu Mar 28 15:19:05 2019 +0000

    Move Shell messages to web_test and rename to BlinkTest.

    These messages are only used by web_test/blink_test_{controller,runner}.
    So move them into common/web_test, to indicate they are for tests not
    content shell.

    Also give them their own target so that test_runner can be made to use
    them, since they are only for tests. I believe this would let us move
    BlinkTestRunner into test_runner, and remove WebTestDelegate interface
    out of content/shell/renderer.

    [email protected]
    TBR=inferno

    Bug: 866140
Chromium change:

commit 024afb89267a5eb6200cc22e1e752f70ef22b674
Author: Wei Li <[email protected]>
Date:   Fri Mar 15 20:26:35 2019 +0000

    Change GetTooltipText() to return the value directly

    Instead of using an output parameter of pointer type, this CL changes
    GetTooltipText() function to directly return the tooltip's value.

    There is one case where the return value is used by ChromeOS
    ShelfButton to indicate whether the tooltip should not be drawn by View.
    We added one API for such case.

    BUG=155933
Chromium change:

commit fc21834b89ddf98ab536e2d927101c978545c292
Author: Tim Volodine <[email protected]>
Date:   Fri Mar 8 15:34:38 2019 +0000

    [AW NS] Add support for custom intercept-only URLLoaderFactory when handling external protocols.

    In Android WebView we need to be able to intercept so-called external
    schemes, i.e. schemes that are not known to the content/ layer and for
    which HandleExternalProtocol() is invoked. Examples of such schemes
    include: generally unsupported schemes and "cid:" schemes.

    This patch:
    - Adds support for providing a custom URLLoader when HandleExternalProtocol
    is invoked.
    - Adds the concept of intercept-only AwProxyingURLLoaderFactory,
    i.e. a factory that only loads responses from the interceptor and
    does not proceed otherwise (i.e. no actual network traffic). This
    type of factory/loader is used when handling schemes not supported
    by content/ loader.
    - Factors out InterceptedResponse::SendErrorAndCompleteImmediately
    method.
    - Removes OnReceivedErrorOnUIThread callback from
    aw_content_browser_client.
    - Make sure to notify InterceptedRequest loader when the
    shouldInterceptRequest response input stream failed to load. In
    that case produce an appropriate error and stop immediately.

    Fixed tests:
    -AwContentsClientShouldInterceptRequestTest.testCalledForUnsupportedSchemes
    -AwContentsClientShouldInterceptRequestTest.testContentIdIframe

    BUG=893566,841556
Chromium change:

commit d998539fbd8b8beacd48432335e683f73d0603ed
Author: Jared Saul <[email protected]>
Date:   Tue Mar 19 15:11:17 2019 +0000

    [Autofill] Split autofill_payments_features from autofill_features

    Also adds jsaul@ as OWNERS for autofill_payments_features.*

    Bug: 940042
Chromium changes:

commit 3b5078ddea27c6ad15275c66a78596283343600a
Author: Gayane Petrosyan <[email protected]>
Date:   Tue Mar 26 23:35:51 2019 +0000

    Remove COLOR_CONTROL_BACKGROUND from theme properties.

    COLOR_CONTROL_BACKGROUND always defaults to white and doesn't have
    calculated value based on other theme properties. Therefore it
    shouldn't be part of the theme properties.

    This change removes COLOR_CONTROL_BACKGROUND from theme properties and
    its only call in browser_view as it has no effect.

commit c0d9e6fb635067afd79d76f226a22944e373d409
Author: Kyle Milka <[email protected]>
Date:   Thu Mar 21 22:35:04 2019 +0000

    Remove theme properties for the detached bookmark bar

    The detached bookmark bar has been removed, also remove
    the theme properties associated with it.

    Bug: 941196
LocationBarModel::input_in_progress has been removed.

Chromium change:

commit 3f2285d27ee93d5a69ba49ab92cdf527f324c877
Author: Tommy C. Li <[email protected]>
Date:   Fri Apr 5 19:13:58 2019 +0000

    Omnibox: Code health - Remove LocationBarModel::input_in_progress()

    LocationBarModel was originally designed to provide data on the current
    navigation entry's state, as described by the class comment.

    Eventually, it grew to track input_in_progress() state as well,
    duplicating this state canonically tracked by OmniboxEditModel.

    This CL removes this method. All of the callsites (other than a few)
    have already been migrated to calling the View to determine if
    user input is in progress.

    This is part of the overall UI architecture effort.

    Bug: 912722
Now takes full CookieOptions instead of a bool.

Chromium change:

commit fdbc8beebe3e89c3e7c1a9ca2d6b039ba784fca4
Author: Maks Orlovich <[email protected]>
Date:   Mon Mar 18 18:34:52 2019 +0000

    Pass in full Options to SetCanonicalCookieAsync

    This will be used to check whether same site cookies are being set
    in the proper context. This change alters all the callsites to
    include whether it should be trusted to set such cookies or not,
    so it's not a simple/mechanical transformation.

    (The old bool for httponly gets passed inside the options object as well,
     like it would be for the get).

    Bug: 837412
Chromium change:

commit d5409e147575eec363aee4f3ecb4dd38e0728055
Author: Joshua Pawlicki <[email protected]>
Date:   Sat Apr 6 00:23:11 2019 +0000

    Refactor unzipper and patcher to allow for non-mojo implementations.

    Supply a non-mojo unzipper/patcher in chrome/updater.

    Change-Id: Ic884058a1b7b1de5b6cd631153550dfccfec9873
    Bug: 947606
Xml protocol hander has been removed, JSON is now used instead.

Chromium change:

commit 8ac39328330738ded0e2fc1fe94e56efd7ed88d1
Author: Joshua Pawlicki <[email protected]>
Date:   Thu Apr 4 21:22:46 2019 +0000

    Remove XML from update_client.

    Bug: 881076

https://bugs.chromium.org/p/chromium/issues/detail?id=881076
Chromium change:

commit 03c6b7855dffb5c16f431ce383024da1db3945a7
Author: Lei Zhang <[email protected]>
Date:   Thu Mar 21 05:22:24 2019 +0000

    Remove default argument from NotificationDisplayService::Display().

    Default arguments are banned on virtual functions.
ExtensionActionViewController now requires a valid instance of
ToolbarActionBar. To get around it patched ExtensionActionViewController
to not DCHECK for it and patched the class definition to allow for
overriding a number of methods that use the passed in instance of the
ToolbarActionBar. Overrode those in BraveActionViewController to not
call out into ToolbarActionBar.

Chromium change:

commit 4d71c399c2cfe34f45114e13ba83e293122ecf2c
Author: Peter Boström <[email protected]>
Date:   Wed Apr 10 00:21:04 2019 +0000

    Add extension pop-out to Extension menu

    This changes ExtensionActionViewController to be aware of a main
    ToolbarActionsBar, which it asks directly in
    ::GetPreferredPopupViewController() instead of delegating into the
    owner's ::GetMainControllerForAction(), which is now gone.

    Separating the main bar from the owning bar allows ExtensionMenuView to
    make use of it even though it's not a ToolbarActionsBar.

    Bug: chromium:943702
* Incognito profile menu is now in a separate class, so need to add Tor
menu to it separately.

* ProfileChooseView is now instantiated in ProfileMenuViewBase so
instantiate our subclasses there.

* Menu is no longer built from constructor so we can use overridden
  method to fix the profile button instead of casting.

* We only need to add the button to the menu_items now, don't need to
worry about the layout.

* Switch to 'using' base class constructors since we don't do anything
in the subclassed ones.

* ResetView was renamed to Reset.

Chromium changes:

commit 10f5093c58bc6785735a4d67498e24a6af81c5da
Author: Ramin Halavati <[email protected]>
Date:   Thu Mar 28 09:58:30 2019 +0000

    Separate content generation and formatting of ProfileChooserView.

    ProfileChooserView generates several menus and draws them. Drawing is
    done using different code paths causing difficulty in maintenance of
    similar output.

    This CL separates content generation code and menu formatting to make
    a unified code path for drawing all menus and prepare the class for
    separation of Incognito menu (which is used on all desktop platform)
    from Profile menu which is not used on Chrome OS.

    Bug: 934689

commit ef75f6cddf70f78459048c6c0eb48919c2864b45
Author: Ramin Halavati <[email protected]>
Date:   Tue Apr 2 19:24:51 2019 +0000

    Separate Incognito menu from Profile menu.

    ProfileChooserView created all menus that are generated when user clicks
    on avatar menu. Except incognito menu, the other menus are not used in
    ChromeOS and have dependencies that are not supported on ChromeOS.
    To add the incognito menu to ChromeOS, this menu is separated into a
    different class.

    Bug: 934689
Chromium change:

commit 705087b2a392fdb79c0ffc298ded98397179e15d
Author: Joshua Pawlicki <[email protected]>
Date:   Tue Mar 12 15:40:57 2019 +0000

    Launch JSON Omaha protocol.

    Bug: 881076
Chromium change:

commit 52fa3aed17a23a6d1dc7459879c9fb2abc689bc8
Author: Gabriel Charette <[email protected]>
Date:   Mon Apr 15 21:44:37 2019 +0000

    [base] Rename TaskScheduler to ThreadPool

    Reason: with the advent of other scheduling primitives in //base
    (i.e. SequenceManager), TaskScheduler was no longer the only component
    responsible for scheduling tasks. We will from now on refer to the
    whole of //base/task as the "task scheduling infrastructure".

    There are other types named "TaskScheduler" outside of base:: so
    s/TaskScheduler/ThreadPool/ across the codebase wasn't possible.

    Instead, this CL did:
     1) base/task/task_scheduler => base/task/thread_pool
        (catches all files with includes)
     1.1) Careful manual search to add files without includes
          (e.g. missing IWYU, docs, etc.)
     2) TaskScheduler => ThreadPool in all files affected by (1)
     3) task_scheduler => thread_pool in all files affected by (1)
     4) "task scheduler" => "thread pool"  in all files affected by (1)
     4) Move task_scheduler_util like headers in
        //content //components and //ios

    Also:
     * Renamed UMA metrics from TaskScheduler.* to ThreadPool.*
       and dropped "Pool" from worker pool name suffixes.
     * Renamed TaskScheduler*Worker thread names to ThreadPool*Worker
     * In base/android: NativeTaskScheduler => NativeScheduler as it
       was referring to the whole of base/task.
       TaskSchedulerTest.java => NativePostTaskTest.java (former DNE)
     * Intentionally ignoring IWYU violations in this already too large
       CL.

    In follow-up:
     * Rename other types as well:
         SchedulerWorker => WorkerThread
         SchedulerWorkerPool* => WorkerThreadGroup*

    Bug: 951388
Chromium change:

commit aee5c031a69ebb58dffc6618244c0cb8efbcbb39
Author: Daniel Cheng <[email protected]>
Date:   Thu Apr 18 23:49:05 2019 +0000

    Make content::ResourceType an enum class.

    This allows us to be more explicit when content::ResourceType needs to
    be smuggled in an untyped int. It has the effect of introducing more
    static_cast<int>, but this makes the conversion sites explicit.

    This also allows several other incidental fixes:
    - the Mojo version of the enum no longer defines a sentinel value (which
      violates best practices in the security guidelines)
    - the C++ version of the enum can now define a compiler-enforced
      kMaxValue enumerator.
    - Since kMaxValue is no longer a distinct value, dummy handling for this
      value can be removed. This revealed a quirk in
      chrome/browser/predictors/loading_data_collector.cc
Chromium change:

commit 136759f05184acd08fcb9b15cd9d8c1e9b8648e1
Author: John Lee <[email protected]>
Date:   Mon Apr 15 20:19:11 2019 +0000

    Settings WebUI: Remove 'md' prefix from Settings code

    Bug: 887150
ChromeContentBrowserClient.

Chromium change:

commit 85079c267464cfb90c4f5dff217d7d515ded6139
Author: Xi Han <[email protected]>
Date:   Thu Apr 18 21:43:05 2019 +0000

    Create Profile's PrefService before the Profile is created on Android. [1/4]

    This is a precursor CL for https://crrev.com/c/1532361.
    We introduce StartupData which owns all of the pre-create objects,
    including the ChromeFeatureListCreator.

    Bug: 937469
Added a replacement for kAccessibilityLabelsLearnMoreURL and
kGoogleAccountChooserURL.

Chromium changes:

commit b7e1f19bb266074c9e454e5bf34e9a4d96fd7768
Author: Katie D <[email protected]>
Date:   Wed Apr 17 18:15:47 2019 +0000

    Adds link to help center article for accessibility labels.

    The article is being written for M75.

    Bug: 953095

commit a588c5d073e2f9b96e039fa79ad20e6d5a623f9d
Author: Thomas Tangl <[email protected]>
Date:   Wed Apr 10 16:16:08 2019 +0000

    Don't show Google Account button in user menu when signed out of web

    Additional change:
    The account email is specified in the URL for the Google Account page,
    so the page always shows the account that is seen in the user menu.

    Bug: 950534
This prevents us from triggering a DCHECK for now, but crbug.com/754178
means to remove resource identifiers from content settings prefs API
altogether.

Chromium change:

commit 116896fff47428ed53cb8daad883cc5fbda9c065
Author: Andy Paicu <[email protected]>
Date:   Tue Apr 2 09:29:48 2019 +0000

    Add DCHECKS to ensure content settings API isn't used with resource id

    This was a reland of https://chromium-review.googlesource.com/790075/
    which was reverted by https://chromium-review.googlesource.com/817993/

    This removes one of the NOTREACHED assertions as it was causing issues.
    The reason the NOTREACHED assertion was reached is because it is still
    possible to have flash settings saved from before the ephemereal
    settings provider was introduced, but they are just not used.

    I've added a different DCHECK in GetRuleIterator to ensure the value
    is not used.

    As I'm pretty unfamiliar with the code any and all of the above might
    be wrong.

    Original CR message:
    Add DCHECKS to ensure content settings API isn't used with resource ids

    Using resource ids with the content settings API is supported but is
    apparently not being used. This change adds some DCHECKS to check that
    this is true as preparation for removing resource ids from the API.

    Bug: 754178
@mkarolin mkarolin force-pushed the 75.0.3770.15 branch 3 times, most recently from e64e365 to e42ef77 Compare May 2, 2019 18:05
This script has been a noop for a while and now i18n_template.html has
been removed completely, so the js file is no longer included in
resources.

Instead include i18n_template_no_process.js directly.

Chromium change:

commit 4b411e69edcdfda5fa1deb9aa3f54b1f1bd0558d
Author: Igor Kobylin <[email protected]>
Date:   Fri Jan 25 21:45:01 2019 +0000

    [i18n] Remove i18n_template.html

    All pages importing it have already been migrated to $i18n{}, so these
    dependencies don't seem needed anymore.

    This changes following pages:
    * chrome://media-router
    * chrome://md-user-manager

    [email protected]

    Bug: 677338
Chromium change added a NOTREACHED guard for accessing
SystemRequestContext beyond its initial creation to help identify what
still needs to transition to network service. The intent is to have this
failure triggered when network service is enabled, however there is no
check for network service feature state. Patching it to only trigger
NOTREACHED check if network service is enabled.

Chromium change:

commit a97e0c861c150cecd77683417ddf49845eb47e6f
Author: John Abd-El-Malek <[email protected]>
Date:   Tue Apr 2 23:36:58 2019 +0000

    Stop creating the failing system URLRequestContext when network service is enabled.

    This isn't used by any code after r646920.

    Bug: 825242
Chromium change:

commit 20c2c6baa6d9847db46eca1e0dcfaa3c915ebb92
Author: Robert Sesek <[email protected]>
Date:   Wed Apr 3 20:30:36 2019 +0000

    Rename entitlements.plist to app-entitlements.plist

    There will be more than one entitlements file (e.g., for helper app
    bundles) in the future. This will allow differentiation, just like for
    the Info.plists.

    Bug: 850193
Chromium change:

commit 0724dc56429fcd713d357151c744adfef5e43db1
Author: Charlene Yan <[email protected]>
Date:   Fri Apr 12 17:57:41 2019 +0000

    Migrate flags from chrome/browser/browser_features to
    chrome/browser/ui/ui_features

    The flags moved are only used under chrome/browser/ui
@mkarolin
Copy link
Collaborator Author

mkarolin commented May 6, 2019

Closing in favor of #2374

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.

1 participant