| 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 e4d6e513bbf493801b44f5f0376f81adaf75c238..ccca826504a9bf8273d05654aaeeb4de9cd80b4f 100644
|
| --- a/chrome/browser/permissions/permission_request_manager.cc
|
| +++ b/chrome/browser/permissions/permission_request_manager.cc
|
| @@ -83,6 +83,7 @@ PermissionRequestManager::PermissionRequestManager(
|
| #endif
|
| view_(nullptr),
|
| main_frame_has_fully_loaded_(false),
|
| + persist_(true),
|
| auto_response_for_test_(NONE),
|
| weak_factory_(this) {
|
| }
|
| @@ -310,6 +311,10 @@ void PermissionRequestManager::ToggleAccept(int request_index, bool new_value) {
|
| accept_states_[request_index] = new_value;
|
| }
|
|
|
| +void PermissionRequestManager::TogglePersist(bool new_value) {
|
| + persist_ = new_value;
|
| +}
|
| +
|
| void PermissionRequestManager::Accept() {
|
| PermissionUmaUtil::PermissionPromptAccepted(requests_, accept_states_);
|
|
|
| @@ -445,19 +450,25 @@ void PermissionRequestManager::PermissionGrantedIncludingDuplicates(
|
| PermissionRequest* request) {
|
| DCHECK_EQ(request, GetExistingRequest(request))
|
| << "Only requests in [queued_[frame_]]requests_ can have duplicates";
|
| + request->set_persist(persist_);
|
| request->PermissionGranted();
|
| auto range = duplicate_requests_.equal_range(request);
|
| - for (auto it = range.first; it != range.second; ++it)
|
| + for (auto it = range.first; it != range.second; ++it) {
|
| + it->second->set_persist(persist_);
|
| it->second->PermissionGranted();
|
| + }
|
| }
|
| void PermissionRequestManager::PermissionDeniedIncludingDuplicates(
|
| PermissionRequest* request) {
|
| DCHECK_EQ(request, GetExistingRequest(request))
|
| << "Only requests in [queued_[frame_]]requests_ can have duplicates";
|
| + request->set_persist(persist_);
|
| request->PermissionDenied();
|
| auto range = duplicate_requests_.equal_range(request);
|
| - for (auto it = range.first; it != range.second; ++it)
|
| + for (auto it = range.first; it != range.second; ++it) {
|
| + it->second->set_persist(persist_);
|
| it->second->PermissionDenied();
|
| + }
|
| }
|
| void PermissionRequestManager::CancelledIncludingDuplicates(
|
| PermissionRequest* request) {
|
|
|