Chromium Code Reviews| Index: chrome/browser/permissions/permission_request_manager.cc |
| diff --git a/chrome/browser/permissions/permission_request_manager.cc b/chrome/browser/permissions/permission_request_manager.cc |
| index 40fdb5031c0ea5d498ea63f9a43a18bbf4cc2ba6..5f8e5c2809871910ad67a8921ab5cae38658582a 100644 |
| --- a/chrome/browser/permissions/permission_request_manager.cc |
| +++ b/chrome/browser/permissions/permission_request_manager.cc |
| @@ -7,10 +7,13 @@ |
| #include <algorithm> |
| #include "base/command_line.h" |
| +#include "base/feature_list.h" |
| #include "base/metrics/user_metrics_action.h" |
| #include "build/build_config.h" |
| #include "chrome/browser/permissions/permission_request.h" |
| #include "chrome/browser/permissions/permission_uma_util.h" |
| +#include "chrome/browser/ui/website_settings/permission_prompt.h" |
| +#include "chrome/common/chrome_features.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/navigation_details.h" |
| @@ -74,15 +77,12 @@ DEFINE_WEB_CONTENTS_USER_DATA_KEY(PermissionRequestManager); |
| PermissionRequestManager::PermissionRequestManager( |
| content::WebContents* web_contents) |
| : content::WebContentsObserver(web_contents), |
| -#if !defined(OS_ANDROID) // No bubbles in android tests. |
| view_factory_(base::Bind(&PermissionPrompt::Create)), |
| -#endif |
| view_(nullptr), |
| main_frame_has_fully_loaded_(false), |
| persist_(true), |
| auto_response_for_test_(NONE), |
| - weak_factory_(this) { |
| -} |
| + weak_factory_(this) {} |
| PermissionRequestManager::~PermissionRequestManager() { |
| if (view_ != NULL) |
| @@ -237,13 +237,8 @@ void PermissionRequestManager::DisplayPendingRequests() { |
| if (IsBubbleVisible()) |
| return; |
| -#if defined(OS_ANDROID) |
| - NOTREACHED(); |
| - return; |
| -#else |
| view_ = view_factory_.Run(web_contents()); |
| view_->SetDelegate(this); |
| -#endif |
| TriggerShowBubble(); |
| } |
| @@ -257,6 +252,15 @@ bool PermissionRequestManager::IsBubbleVisible() { |
| return view_ && view_->IsVisible(); |
| } |
| +// static |
| +bool PermissionRequestManager::IsEnabled() { |
| +#if defined(OS_ANDROID) |
| + return base::FeatureList::IsEnabled(features::kUseGroupedPermissionInfobars); |
| +#else |
| + return true; |
| +#endif |
| +} |
| + |
| gfx::NativeWindow PermissionRequestManager::GetBubbleWindow() { |
| if (view_) |
| return view_->GetNativeWindow(); |
| @@ -351,10 +355,12 @@ void PermissionRequestManager::Closing() { |
| } |
| void PermissionRequestManager::ScheduleShowBubble() { |
| +#if !defined(OS_ANDROID) |
|
raymes
2016/10/19 00:25:41
Do you know why this ifdef is needed? (and the sec
lshang
2016/10/20 05:03:10
Removed. This is not needed, probably some leftove
|
| // ::ScheduleShowBubble() will be called again when the main frame will be |
| // loaded. |
| if (!main_frame_has_fully_loaded_) |
| return; |
| +#endif |
| content::BrowserThread::PostTask( |
| content::BrowserThread::UI, |
| @@ -368,8 +374,10 @@ void PermissionRequestManager::TriggerShowBubble() { |
| return; |
| if (IsBubbleVisible()) |
| return; |
| +#if !defined(OS_ANDROID) |
| if (!main_frame_has_fully_loaded_) |
| return; |
| +#endif |
| if (requests_.empty() && queued_requests_.empty() && |
| queued_frame_requests_.empty()) { |
| return; |