Skip to content

Commit

Permalink
Fixes extensions install prompt.
Browse files Browse the repository at this point in the history
The override of extensions install prompt text has regressed with
Chromium 83 update.

Removed BravePrompt that inherited from ExtensionInstallPrompt::Prompt
and overrode GetDialogTitle method. Instead, renamed the original method
to GetDialogTitle_ChromiumImpl and added our own GetDialogTitle.

Fixes brave/brave-browser#10113

The regression is due to Chromium change that was creating
ExtensionInstallPrompt::Prompt from
WebstorePrivateBeginInstallWithManifest3Function::OnWebstoreParseSuccess.

Chromium change:

https://chromium.googlesource.com/chromium/src/+/4f35260605f0a6fa5153bcc40cc9ed7b235fddec

commit 4f35260605f0a6fa5153bcc40cc9ed7b235fddec
Author: Danan S <[email protected]>
Date:   Fri Mar 27 00:41:17 2020 +0000

    Reland "Changes to Webstore Private API to support child extension installation"

    This relands the feature originally landed in
    99ffda8ef2c76aa79923281a57c82a70e68d0d45

    That CL was reverted due to an use-after-free error triggered by
    ExtensionWebstorePrivateApiTestChildInstallEnabled, but caused
    by already landed code used by the Webstore Private API.

    The actual fix for the use-after-free was fixed in http://crrev.com/c/2100548

    That fix involved changes in the ParentPermissionDialog APIs, which are
    reflected in this reland CL.

    Original change's description:
    > Revert "Changes to Webstore Private API to support child extension installation"
    >
    > This reverts commit 99ffda8ef2c76aa79923281a57c82a70e68d0d45.
    >
    > Reason for revert: browser_tests failing on https://ci.chromium.org/p/chromium/builders/ci/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/37129 and https://ci.chromium.org/p/chromium/builders/ci/Linux%20ChromiumOS%20MSan%20Tests/18174
    >
    > Original change's description:
    > > Changes to Webstore Private API to support child extension installation
    > >
    > > These changes are required in order to prompt a child user to get
    > > parent permission when they attempt to install an extension in the
    > > Chrome Webstore.
    > >
    > > This CL also enables the feature by default.
    > >
    > > Bug: 957832
  • Loading branch information
mkarolin committed Jun 8, 2020
1 parent a6bb697 commit b31174b
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 76 deletions.
2 changes: 0 additions & 2 deletions browser/extensions/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ source_set("extensions") {
"brave_component_extension_resource_manager.h",
"brave_component_loader.cc",
"brave_component_loader.h",
"brave_extension_install_prompt.cc",
"brave_extension_install_prompt.h",
"brave_extension_management.cc",
"brave_extension_management.h",
"brave_extension_provider.cc",
Expand Down
21 changes: 0 additions & 21 deletions browser/extensions/brave_extension_install_prompt.h

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,25 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "brave/browser/extensions/brave_extension_install_prompt.h"
#include "chrome/browser/extensions/extension_install_prompt.h"

#include "brave/browser/brave_browser_process_impl.h"
#include "brave/components/brave_component_updater/browser/extension_whitelist_service.h"
#include "brave/grit/brave_generated_resources.h"
#include "ui/base/l10n/l10n_util.h"

base::string16 BravePrompt::GetDialogTitle() const {
#define GetDialogTitle GetDialogTitle_ChromiumImpl
#include "../../../../../chrome/browser/extensions/extension_install_prompt.cc"
#undef GetDialogTitle

base::string16 ExtensionInstallPrompt::Prompt::GetDialogTitle() const {
if (!g_brave_browser_process->extension_whitelist_service()->IsVetted(
extension())) {
extension())) {
if (type_ == ExtensionInstallPrompt::INSTALL_PROMPT ||
type_ == ExtensionInstallPrompt::WEBSTORE_WIDGET_PROMPT) {
return l10n_util::GetStringUTF16(
IDS_UNVETTED_EXTENSION_INSTALL_PROMPT_TITLE);
}
}
return ExtensionInstallPrompt::Prompt::GetDialogTitle();
return GetDialogTitle_ChromiumImpl();
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,11 @@
#ifndef BRAVE_CHROMIUM_SRC_CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_PROMPT_H_
#define BRAVE_CHROMIUM_SRC_CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_PROMPT_H_

#define GetDialogTitle virtual GetDialogTitle
#define GetDialogTitle \
GetDialogTitle_ChromiumImpl() const; \
base::string16 GetDialogTitle

#define BRAVE_EXTENSION_INSTALL_PROMPT_H \
private: \
friend class BravePrompt; \
\
public:
#include "../../../../../chrome/browser/extensions/extension_install_prompt.h"
#undef BRAVE_EXTENSION_INSTALL_PROMPT_H_
#undef GetDialogTitle

#endif // BRAVE_CHROMIUM_SRC_CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_PROMPT_H_
Expand Down

This file was deleted.

21 changes: 0 additions & 21 deletions patches/chrome-browser-extensions-extension_install_prompt.h.patch

This file was deleted.

0 comments on commit b31174b

Please sign in to comment.