Commit ef121dab authored by Maksim Moskvitin's avatar Maksim Moskvitin Committed by Commit Bot

Revert "Keep DevTools navigator.language in-sync with chromiums app language"

This reverts commit 73ac7d88.

Reason for revert: new tests consistently crashes on Mac builders,
see crbug.com/1126379.

Original change's description:
> Keep DevTools navigator.language in-sync with chromiums app language
> 
> DevTools is considered part of the Chromium UI, so it should be
> displayed in the same language as the Chromium UI and not the configured
> accepted language (chrome://settings/languages).
> 
> This CL moves the code where we override the DevTools renderer
> preferences around so it works consistently across platforms. It also
> installs an event handler in case the user changes his language settings
> so `navigator.language` has consistently the same value in the
> DevTools renderer.
> 
> R=​petermarshall@chromium.org
> 
> Bug: chromium:1125490
> Change-Id: Iaac568d82357d6ae7c50d5022d687f4f1741b147
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2398538
> Commit-Queue: Simon Zünd <szuend@chromium.org>
> Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#805219}

TBR=caseq@chromium.org,petermarshall@chromium.org,szuend@chromium.org

Change-Id: I5d80fbfce70fd62336b15beb0d29a7bbe09ba6fd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1125490, chromium:1126379
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2400280Reviewed-by: default avatarMaksim Moskvitin <mmoskvitin@google.com>
Commit-Queue: Maksim Moskvitin <mmoskvitin@google.com>
Cr-Commit-Position: refs/heads/master@{#805249}
parent 9f91af71
......@@ -29,7 +29,6 @@
#include "base/threading/thread_restrictions.h"
#include "base/threading/thread_task_runner_handle.h"
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/devtools/device/tcp_device_provider.h"
#include "chrome/browser/devtools/devtools_window_testing.h"
......@@ -67,7 +66,6 @@
#include "components/javascript_dialogs/app_modal_dialog_view.h"
#include "components/keep_alive_registry/keep_alive_registry.h"
#include "components/keep_alive_registry/keep_alive_types.h"
#include "components/language/core/browser/pref_names.h"
#include "components/policy/core/common/mock_configuration_policy_provider.h"
#include "components/policy/core/common/policy_map.h"
#include "components/policy/policy_constants.h"
......@@ -2580,53 +2578,24 @@ IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest,
CloseDevToolsWindow();
}
namespace {
class DevToolsLocalizationTest : public DevToolsSanityTest {
public:
bool NavigatorLanguageMatches(const std::string& expected_locale) {
bool result = false;
const bool execute_result = content::ExecuteScriptAndExtractBool(
main_web_contents(),
"window.domAutomationController.send(window.navigator.language === "
"'" +
expected_locale + "')",
&result);
return execute_result && result;
void SetUpCommandLine(base::CommandLine* command_line) override {
command_line->AppendSwitchASCII(switches::kLang, "es-ES");
}
};
} // namespace
IN_PROC_BROWSER_TEST_F(DevToolsLocalizationTest,
NavigatorLanguageMatchesApplicationLocaleDocked) {
g_browser_process->SetApplicationLocale("es-ES");
OpenDevToolsWindow("about:blank", /* is_docked */ true);
EXPECT_TRUE(NavigatorLanguageMatches("es-ES"));
CloseDevToolsWindow();
}
IN_PROC_BROWSER_TEST_F(DevToolsLocalizationTest,
NavigatorLanguageMatchesApplicationLocaleUndocked) {
g_browser_process->SetApplicationLocale("es-ES");
OpenDevToolsWindow("about:blank", /* is_docked */ false);
EXPECT_TRUE(NavigatorLanguageMatches("es-ES"));
CloseDevToolsWindow();
}
IN_PROC_BROWSER_TEST_F(DevToolsLocalizationTest,
AcceptedLanguageChangesWhileDevToolsIsOpen) {
g_browser_process->SetApplicationLocale("es-ES");
// Make it run on Windows only since the browser language on Mac
// is tied to the OS language and --lang flag won't work
#if defined(OS_WIN)
IN_PROC_BROWSER_TEST_F(DevToolsLocalizationTest, testNavigatorLanguage) {
bool result = false;
OpenDevToolsWindow("about:blank", true);
EXPECT_TRUE(NavigatorLanguageMatches("es-ES"));
PrefService* prefs = browser()->profile()->GetPrefs();
prefs->SetString(language::prefs::kAcceptLanguages, "de-DE");
EXPECT_TRUE(NavigatorLanguageMatches("es-ES"));
ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
main_web_contents(),
"window.domAutomationController.send(window.navigator.language === "
"'es-ES')",
&result));
EXPECT_TRUE(result);
CloseDevToolsWindow();
}
#endif // defined(OS_WIN)
......@@ -677,6 +677,9 @@ DevToolsUIBindings::DevToolsUIBindings(content::WebContents* web_contents)
frontend_loaded_(false) {
g_devtools_ui_bindings_instances.Get().push_back(this);
frontend_contents_observer_.reset(new FrontendWebContentsObserver(this));
web_contents_->GetMutableRendererPrefs()->can_accept_load_drops = false;
web_contents_->GetMutableRendererPrefs()->accept_languages =
g_browser_process->GetApplicationLocale();
file_helper_.reset(new DevToolsFileHelper(web_contents_, profile_, this));
file_system_indexer_ = new DevToolsFileSystemIndexer();
......
......@@ -17,7 +17,6 @@
#include "base/metrics/user_metrics.h"
#include "base/time/time.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/certificate_viewer.h"
#include "chrome/browser/devtools/chrome_devtools_manager_delegate.h"
#include "chrome/browser/devtools/devtools_eye_dropper.h"
......@@ -40,7 +39,6 @@
#include "components/javascript_dialogs/app_modal_dialog_manager.h"
#include "components/keep_alive_registry/keep_alive_types.h"
#include "components/keep_alive_registry/scoped_keep_alive.h"
#include "components/language/core/browser/pref_names.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/prefs/scoped_user_pref_update.h"
#include "components/sessions/content/session_tab_helper.h"
......@@ -68,7 +66,6 @@
#include "net/base/escape.h"
#include "third_party/blink/public/common/input/web_gesture_event.h"
#include "third_party/blink/public/common/input/web_input_event.h"
#include "third_party/blink/public/mojom/renderer_preferences.mojom.h"
#include "third_party/blink/public/public_buildflags.h"
#include "ui/base/page_transition_types.h"
#include "ui/events/keycodes/dom/keycode_converter.h"
......@@ -863,7 +860,7 @@ void DevToolsWindow::Show(const DevToolsToggleAction& action) {
main_web_contents_->SetInitialFocus();
PrefsTabHelper::CreateForWebContents(main_web_contents_);
OverrideAndSyncDevToolsRendererPrefs();
main_web_contents_->SyncRendererPrefs();
DoAction(action);
return;
......@@ -1024,12 +1021,6 @@ DevToolsWindow::DevToolsWindow(FrontendType frontend_type,
g_creation_callbacks.Get());
for (const auto& callback : copy)
callback.Run(this);
pref_change_registrar_.Init(profile_->GetPrefs());
pref_change_registrar_.Add(
language::prefs::kAcceptLanguages,
base::BindRepeating(&DevToolsWindow::OnLocaleChanged,
base::Unretained(this)));
}
// static
......@@ -1588,7 +1579,7 @@ void DevToolsWindow::CreateDevToolsBrowser() {
OwnedMainWebContents::TakeWebContents(
std::move(owned_main_web_contents_)),
-1, ui::PAGE_TRANSITION_AUTO_TOPLEVEL, TabStripModel::ADD_ACTIVE);
OverrideAndSyncDevToolsRendererPrefs();
main_web_contents_->SyncRendererPrefs();
}
BrowserWindow* DevToolsWindow::GetInspectedBrowserWindow() {
......@@ -1690,14 +1681,3 @@ void DevToolsWindow::RegisterModalDialogManager(Browser* browser) {
void DevToolsWindow::OnReattachMainTargetComplete(base::Value) {
std::move(reattach_complete_callback_).Run();
}
void DevToolsWindow::OnLocaleChanged() {
OverrideAndSyncDevToolsRendererPrefs();
}
void DevToolsWindow::OverrideAndSyncDevToolsRendererPrefs() {
main_web_contents_->GetMutableRendererPrefs()->can_accept_load_drops = false;
main_web_contents_->GetMutableRendererPrefs()->accept_languages =
g_browser_process->GetApplicationLocale();
main_web_contents_->SyncRendererPrefs();
}
......@@ -384,15 +384,6 @@ class DevToolsWindow : public DevToolsUIBindings::Delegate,
void OnReattachMainTargetComplete(base::Value);
// Called when the accepted language changes. |navigator.language| of the
// DevTools window should match the application language. When the user
// changes the accepted language then this listener flips the language back
// to the application language for the DevTools renderer process.
// Please note that |navigator.language| will have the wrong language for
// a very short period of time (until this handler has reset it again).
void OnLocaleChanged();
void OverrideAndSyncDevToolsRendererPrefs();
std::unique_ptr<ObserverWithAccessor> inspected_contents_observer_;
FrontendType frontend_type_;
......@@ -441,8 +432,6 @@ class DevToolsWindow : public DevToolsUIBindings::Delegate,
base::OnceCallback<void()> reattach_complete_callback_;
PrefChangeRegistrar pref_change_registrar_;
friend class DevToolsEventForwarder;
DISALLOW_COPY_AND_ASSIGN(DevToolsWindow);
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment