| Index: chrome/browser/ui/views/certificate_viewer_win.cc
|
| diff --git a/chrome/browser/ui/views/certificate_viewer_win.cc b/chrome/browser/ui/views/certificate_viewer_win.cc
|
| index fa345391d1eb89c4dec3a0a3ba4532f566aa4c20..4c4fd8f5617b69992184b3d020e05a248f6ae409 100644
|
| --- a/chrome/browser/ui/views/certificate_viewer_win.cc
|
| +++ b/chrome/browser/ui/views/certificate_viewer_win.cc
|
| @@ -9,6 +9,7 @@
|
| #pragma comment(lib, "cryptui.lib")
|
|
|
| #include "base/logging.h"
|
| +#include "base/message_loop/message_loop.h"
|
| #include "net/cert/x509_certificate.h"
|
|
|
| #if defined(USE_AURA)
|
| @@ -40,6 +41,11 @@ void ShowCertificateViewerImpl(content::WebContents* web_contents,
|
| view_info.rghStores = &cert_store;
|
| BOOL properties_changed;
|
|
|
| + // We must allow nested tasks to dispatch so that, e.g. gpu tasks are
|
| + // processed for painting. This allows a second window to continue painting
|
| + // while the the certificate dialog is open.
|
| + base::MessageLoop::ScopedNestableTaskAllower allow(
|
| + base::MessageLoop::current());
|
| // This next call blocks but keeps processing windows messages, making it
|
| // modal to the browser window.
|
| BOOL rv = ::CryptUIDlgViewCertificate(&view_info, &properties_changed);
|
|
|