Commit 54e1801b authored by Bret Sepulveda's avatar Bret Sepulveda Committed by Commit Bot

Delete GetNativeWindow from PermissionPrompt.

GetNativeWindow is only used by tests, and so the method is deleted
from non-test code. Instead, PermissionRequestManagerTestApi downcasts
PermissionPrompt to PermissionPromptImpl in order to get at the prompt
bubble's NativeWindow. Because this requires a dependency on views,
which is not allowed from c/b/permissions,
permission_request_manager_test_api.h/cc is moved to the new
directory chrome/test/permissions.

Bug: 1019129
Change-Id: I5d5e47743abd7c1702de97f78c7acb0898ec1ee6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1893287
Commit-Queue: Bret Sepulveda <bsep@chromium.org>
Reviewed-by: default avatarVasilii Sukhanov <vasilii@chromium.org>
Reviewed-by: default avatarEmily Stark <estark@chromium.org>
Reviewed-by: default avatarBalazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#722458}
parent 958cb242
...@@ -59,11 +59,6 @@ void PermissionPromptAndroid::UpdateAnchorPosition() { ...@@ -59,11 +59,6 @@ void PermissionPromptAndroid::UpdateAnchorPosition() {
NOTREACHED() << "UpdateAnchorPosition is not implemented"; NOTREACHED() << "UpdateAnchorPosition is not implemented";
} }
gfx::NativeWindow PermissionPromptAndroid::GetNativeWindow() {
NOTREACHED() << "GetNativeWindow is not implemented";
return nullptr;
}
PermissionPrompt::TabSwitchingBehavior PermissionPrompt::TabSwitchingBehavior
PermissionPromptAndroid::GetTabSwitchingBehavior() { PermissionPromptAndroid::GetTabSwitchingBehavior() {
if (permission_request_notification_) if (permission_request_notification_)
......
...@@ -32,7 +32,6 @@ class PermissionPromptAndroid : public PermissionPrompt, ...@@ -32,7 +32,6 @@ class PermissionPromptAndroid : public PermissionPrompt,
// PermissionPrompt: // PermissionPrompt:
void UpdateAnchorPosition() override; void UpdateAnchorPosition() override;
gfx::NativeWindow GetNativeWindow() override;
TabSwitchingBehavior GetTabSwitchingBehavior() override; TabSwitchingBehavior GetTabSwitchingBehavior() override;
void Closing(); void Closing();
......
...@@ -158,12 +158,6 @@ void PermissionRequestManager::UpdateAnchorPosition() { ...@@ -158,12 +158,6 @@ void PermissionRequestManager::UpdateAnchorPosition() {
view_->UpdateAnchorPosition(); view_->UpdateAnchorPosition();
} }
gfx::NativeWindow PermissionRequestManager::GetBubbleWindow() {
if (view_)
return view_->GetNativeWindow();
return nullptr;
}
void PermissionRequestManager::DidStartNavigation( void PermissionRequestManager::DidStartNavigation(
content::NavigationHandle* navigation_handle) { content::NavigationHandle* navigation_handle) {
if (!navigation_handle->IsInMainFrame() || if (!navigation_handle->IsInMainFrame() ||
......
...@@ -74,10 +74,6 @@ class PermissionRequestManager ...@@ -74,10 +74,6 @@ class PermissionRequestManager
// Will reposition the bubble (may change parent if necessary). // Will reposition the bubble (may change parent if necessary).
void UpdateAnchorPosition(); void UpdateAnchorPosition();
// Get the native window of the bubble.
// TODO(hcarmona): Remove this as part of the bubble API work.
gfx::NativeWindow GetBubbleWindow();
// For observing the status of the permission bubble manager. // For observing the status of the permission bubble manager.
void AddObserver(Observer* observer); void AddObserver(Observer* observer);
void RemoveObserver(Observer* observer); void RemoveObserver(Observer* observer);
......
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
#include "chrome/browser/permissions/mock_permission_request.h" #include "chrome/browser/permissions/mock_permission_request.h"
#include "chrome/browser/permissions/permission_context_base.h" #include "chrome/browser/permissions/permission_context_base.h"
#include "chrome/browser/permissions/permission_request_impl.h" #include "chrome/browser/permissions/permission_request_impl.h"
#include "chrome/browser/permissions/permission_request_manager_test_api.h"
#include "chrome/browser/permissions/permission_util.h" #include "chrome/browser/permissions/permission_util.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
...@@ -30,6 +29,7 @@ ...@@ -30,6 +29,7 @@
#include "chrome/common/chrome_features.h" #include "chrome/common/chrome_features.h"
#include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h" #include "chrome/test/base/ui_test_utils.h"
#include "chrome/test/permissions/permission_request_manager_test_api.h"
#include "components/content_settings/core/common/content_settings_types.h" #include "components/content_settings/core/common/content_settings_types.h"
#include "components/variations/variations_associated_data.h" #include "components/variations/variations_associated_data.h"
#include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_frame_host.h"
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/test/scoped_feature_list.h" #include "base/test/scoped_feature_list.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/permissions/permission_request_manager_test_api.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/browser_window.h"
...@@ -19,6 +18,7 @@ ...@@ -19,6 +18,7 @@
#include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/interactive_test_utils.h" #include "chrome/test/base/interactive_test_utils.h"
#include "chrome/test/base/ui_test_utils.h" #include "chrome/test/base/ui_test_utils.h"
#include "chrome/test/permissions/permission_request_manager_test_api.h"
#include "ui/base/test/ui_controls.h" #include "ui/base/test/ui_controls.h"
#import "ui/base/test/windowed_nsnotification_observer.h" #import "ui/base/test/windowed_nsnotification_observer.h"
#include "ui/base/ui_base_features.h" #include "ui/base/ui_base_features.h"
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
#include <memory> #include <memory>
#include "chrome/browser/permissions/permission_request_manager_test_api.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands_mac.h" #include "chrome/browser/ui/browser_commands_mac.h"
#include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_finder.h"
...@@ -15,6 +14,7 @@ ...@@ -15,6 +14,7 @@
#include "chrome/browser/ui/permission_bubble/permission_bubble_browser_test_util.h" #include "chrome/browser/ui/permission_bubble/permission_bubble_browser_test_util.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/views/permission_bubble/permission_prompt_impl.h" #include "chrome/browser/ui/views/permission_bubble/permission_prompt_impl.h"
#include "chrome/test/permissions/permission_request_manager_test_api.h"
#import "testing/gtest_mac.h" #import "testing/gtest_mac.h"
#include "ui/base/test/scoped_fake_nswindow_fullscreen.h" #include "ui/base/test/scoped_fake_nswindow_fullscreen.h"
......
...@@ -21,12 +21,6 @@ MockPermissionPrompt::~MockPermissionPrompt() { ...@@ -21,12 +21,6 @@ MockPermissionPrompt::~MockPermissionPrompt() {
void MockPermissionPrompt::UpdateAnchorPosition() {} void MockPermissionPrompt::UpdateAnchorPosition() {}
gfx::NativeWindow MockPermissionPrompt::GetNativeWindow() {
// This class should only be used when the UI is not necessary.
NOTREACHED();
return nullptr;
}
PermissionPrompt::TabSwitchingBehavior PermissionPrompt::TabSwitchingBehavior
MockPermissionPrompt::GetTabSwitchingBehavior() { MockPermissionPrompt::GetTabSwitchingBehavior() {
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
......
...@@ -19,7 +19,6 @@ class MockPermissionPrompt : public PermissionPrompt { ...@@ -19,7 +19,6 @@ class MockPermissionPrompt : public PermissionPrompt {
// PermissionPrompt: // PermissionPrompt:
void UpdateAnchorPosition() override; void UpdateAnchorPosition() override;
gfx::NativeWindow GetNativeWindow() override;
TabSwitchingBehavior GetTabSwitchingBehavior() override; TabSwitchingBehavior GetTabSwitchingBehavior() override;
bool IsVisible(); bool IsVisible();
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/strings/string16.h" #include "base/strings/string16.h"
#include "ui/gfx/native_widget_types.h"
class PermissionRequest; class PermissionRequest;
...@@ -77,10 +76,6 @@ class PermissionPrompt { ...@@ -77,10 +76,6 @@ class PermissionPrompt {
// Updates where the prompt should be anchored. ex: fullscreen toggle. // Updates where the prompt should be anchored. ex: fullscreen toggle.
virtual void UpdateAnchorPosition() = 0; virtual void UpdateAnchorPosition() = 0;
// Returns a reference to this prompt's native window.
// TODO(hcarmona): Remove this as part of the bubble API work.
virtual gfx::NativeWindow GetNativeWindow() = 0;
// Get the behavior of this prompt when the user switches away from the // Get the behavior of this prompt when the user switches away from the
// associated tab. // associated tab.
virtual TabSwitchingBehavior GetTabSwitchingBehavior() = 0; virtual TabSwitchingBehavior GetTabSwitchingBehavior() = 0;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include "base/run_loop.h" #include "base/run_loop.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/browser/permissions/permission_request_manager_test_api.h" #include "chrome/browser/permissions/permission_request_manager.h"
#include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/content_settings/content_setting_image_model.h" #include "chrome/browser/ui/content_settings/content_setting_image_model.h"
......
...@@ -9,13 +9,13 @@ ...@@ -9,13 +9,13 @@
#import "base/mac/scoped_nsobject.h" #import "base/mac/scoped_nsobject.h"
#include "base/run_loop.h" #include "base/run_loop.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/permissions/permission_request_manager_test_api.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/browser_window.h"
#include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/interactive_test_utils.h" #include "chrome/test/base/interactive_test_utils.h"
#include "chrome/test/base/ui_test_utils.h" #include "chrome/test/base/ui_test_utils.h"
#include "chrome/test/permissions/permission_request_manager_test_api.h"
#include "ui/base/test/ui_controls.h" #include "ui/base/test/ui_controls.h"
#import "ui/base/test/windowed_nsnotification_observer.h" #import "ui/base/test/windowed_nsnotification_observer.h"
#include "ui/base/ui_base_features.h" #include "ui/base/ui_base_features.h"
......
...@@ -104,11 +104,6 @@ void PermissionPromptBubbleView::CloseWithoutNotifyingDelegate() { ...@@ -104,11 +104,6 @@ void PermissionPromptBubbleView::CloseWithoutNotifyingDelegate() {
GetWidget()->CloseWithReason(views::Widget::ClosedReason::kUnspecified); GetWidget()->CloseWithReason(views::Widget::ClosedReason::kUnspecified);
} }
gfx::NativeWindow PermissionPromptBubbleView::GetNativeWindow() {
views::Widget* widget = GetWidget();
return widget ? widget->GetNativeWindow() : nullptr;
}
void PermissionPromptBubbleView::AddedToWidget() { void PermissionPromptBubbleView::AddedToWidget() {
if (name_or_origin_.is_origin) { if (name_or_origin_.is_origin) {
// There is a risk of URL spoofing from origins that are too wide to fit in // There is a risk of URL spoofing from origins that are too wide to fit in
......
...@@ -29,9 +29,6 @@ class PermissionPromptBubbleView : public views::BubbleDialogDelegateView { ...@@ -29,9 +29,6 @@ class PermissionPromptBubbleView : public views::BubbleDialogDelegateView {
// the UI. // the UI.
void CloseWithoutNotifyingDelegate(); void CloseWithoutNotifyingDelegate();
// Returns the gfx::NativeWindow for the bubble's widget.
gfx::NativeWindow GetNativeWindow();
// views::BubbleDialogDelegateView: // views::BubbleDialogDelegateView:
void AddedToWidget() override; void AddedToWidget() override;
bool ShouldShowCloseButton() const override; bool ShouldShowCloseButton() const override;
......
...@@ -60,10 +60,6 @@ void PermissionPromptImpl::UpdateAnchorPosition() { ...@@ -60,10 +60,6 @@ void PermissionPromptImpl::UpdateAnchorPosition() {
prompt_bubble_->UpdateAnchorPosition(); prompt_bubble_->UpdateAnchorPosition();
} }
gfx::NativeWindow PermissionPromptImpl::GetNativeWindow() {
return prompt_bubble_ ? prompt_bubble_->GetNativeWindow() : nullptr;
}
PermissionPrompt::TabSwitchingBehavior PermissionPrompt::TabSwitchingBehavior
PermissionPromptImpl::GetTabSwitchingBehavior() { PermissionPromptImpl::GetTabSwitchingBehavior() {
return PermissionPrompt::TabSwitchingBehavior:: return PermissionPrompt::TabSwitchingBehavior::
......
...@@ -27,9 +27,12 @@ class PermissionPromptImpl : public PermissionPrompt { ...@@ -27,9 +27,12 @@ class PermissionPromptImpl : public PermissionPrompt {
// PermissionPrompt: // PermissionPrompt:
void UpdateAnchorPosition() override; void UpdateAnchorPosition() override;
gfx::NativeWindow GetNativeWindow() override;
TabSwitchingBehavior GetTabSwitchingBehavior() override; TabSwitchingBehavior GetTabSwitchingBehavior() override;
PermissionPromptBubbleView* prompt_bubble_for_testing() {
return prompt_bubble_;
}
private: private:
// The popup bubble. Not owned by this class; it will delete itself when a // The popup bubble. Not owned by this class; it will delete itself when a
// decision is made. // decision is made.
......
...@@ -5311,8 +5311,6 @@ if (!is_android) { ...@@ -5311,8 +5311,6 @@ if (!is_android) {
testonly = true testonly = true
sources = [ sources = [
"../browser/permissions/permission_request_manager_test_api.cc",
"../browser/permissions/permission_request_manager_test_api.h",
"../browser/ssl/cert_verifier_browser_test.cc", "../browser/ssl/cert_verifier_browser_test.cc",
"../browser/ssl/cert_verifier_browser_test.h", "../browser/ssl/cert_verifier_browser_test.h",
"../browser/ui/search/instant_test_utils.cc", "../browser/ui/search/instant_test_utils.cc",
...@@ -5336,6 +5334,8 @@ if (!is_android) { ...@@ -5336,6 +5334,8 @@ if (!is_android) {
"base/ui_test_utils.h", "base/ui_test_utils.h",
"base/web_ui_browser_test.cc", "base/web_ui_browser_test.cc",
"base/web_ui_browser_test.h", "base/web_ui_browser_test.h",
"permissions/permission_request_manager_test_api.cc",
"permissions/permission_request_manager_test_api.h",
] ]
configs += [ "//build/config:precompiled_headers" ] configs += [ "//build/config:precompiled_headers" ]
......
file://chrome/browser/permissions/PERMISSIONS_OWNERS
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/permissions/permission_request_manager_test_api.h" #include "chrome/test/permissions/permission_request_manager_test_api.h"
#include <memory> #include <memory>
...@@ -11,6 +11,12 @@ ...@@ -11,6 +11,12 @@
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/tabs/tab_strip_model.h"
#if defined(TOOLKIT_VIEWS)
#include "chrome/browser/ui/views/permission_bubble/permission_prompt_bubble_view.h"
#include "chrome/browser/ui/views/permission_bubble/permission_prompt_impl.h"
#include "ui/views/widget/widget.h"
#endif
namespace test { namespace test {
namespace { namespace {
...@@ -57,7 +63,16 @@ void PermissionRequestManagerTestApi::AddSimpleRequest( ...@@ -57,7 +63,16 @@ void PermissionRequestManagerTestApi::AddSimpleRequest(
} }
gfx::NativeWindow PermissionRequestManagerTestApi::GetPromptWindow() { gfx::NativeWindow PermissionRequestManagerTestApi::GetPromptWindow() {
return manager_->view_ ? manager_->view_->GetNativeWindow() : nullptr; #if defined(TOOLKIT_VIEWS)
PermissionPromptImpl* prompt =
static_cast<PermissionPromptImpl*>(manager_->view_.get());
return prompt ? prompt->prompt_bubble_for_testing()
->GetWidget()
->GetNativeWindow()
: nullptr;
#else
NOTIMPLEMENTED();
#endif
} }
void PermissionRequestManagerTestApi::SimulateWebContentsDestroyed() { void PermissionRequestManagerTestApi::SimulateWebContentsDestroyed() {
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_PERMISSIONS_PERMISSION_REQUEST_MANAGER_TEST_API_H_ #ifndef CHROME_TEST_PERMISSIONS_PERMISSION_REQUEST_MANAGER_TEST_API_H_
#define CHROME_BROWSER_PERMISSIONS_PERMISSION_REQUEST_MANAGER_TEST_API_H_ #define CHROME_TEST_PERMISSIONS_PERMISSION_REQUEST_MANAGER_TEST_API_H_
#include "base/macros.h" #include "base/macros.h"
#include "chrome/browser/permissions/permission_request_manager.h" #include "chrome/browser/permissions/permission_request_manager.h"
...@@ -27,8 +27,8 @@ class PermissionRequestManagerTestApi { ...@@ -27,8 +27,8 @@ class PermissionRequestManagerTestApi {
// NOTIFICATIONS, GEOLOCATON, or PLUGINS. // NOTIFICATIONS, GEOLOCATON, or PLUGINS.
void AddSimpleRequest(ContentSettingsType type); void AddSimpleRequest(ContentSettingsType type);
// Return the bubble window for the permission prompt or null if there is no // Return the NativeWindow for the permission prompt bubble, or nullptr if
// prompt currently showing. // there is no prompt currently showing.
gfx::NativeWindow GetPromptWindow(); gfx::NativeWindow GetPromptWindow();
void SimulateWebContentsDestroyed(); void SimulateWebContentsDestroyed();
...@@ -41,4 +41,4 @@ class PermissionRequestManagerTestApi { ...@@ -41,4 +41,4 @@ class PermissionRequestManagerTestApi {
} // namespace test } // namespace test
#endif // CHROME_BROWSER_PERMISSIONS_PERMISSION_REQUEST_MANAGER_TEST_API_H_ #endif // CHROME_TEST_PERMISSIONS_PERMISSION_REQUEST_MANAGER_TEST_API_H_
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