Index: third_party/WebKit/Source/web/ChromeClientImpl.cpp |
diff --git a/third_party/WebKit/Source/web/ChromeClientImpl.cpp b/third_party/WebKit/Source/web/ChromeClientImpl.cpp |
index b099c8b0037714bcd3463ba62248f777e0b2a660..3431dd885759e57b6e33e6fd9c706833a4f37680 100644 |
--- a/third_party/WebKit/Source/web/ChromeClientImpl.cpp |
+++ b/third_party/WebKit/Source/web/ChromeClientImpl.cpp |
@@ -110,6 +110,44 @@ |
namespace blink { |
+namespace { |
+ |
+const char* dialogTypeToString(ChromeClient::DialogType dialogType) |
+{ |
+ switch (dialogType) { |
+ case ChromeClient::AlertDialog: |
+ return "alert"; |
+ case ChromeClient::ConfirmDialog: |
+ return "confirm"; |
+ case ChromeClient::PromptDialog: |
+ return "prompt"; |
+ case ChromeClient::HTMLDialog: |
+ ASSERT_NOT_REACHED(); |
+ } |
+ ASSERT_NOT_REACHED(); |
+ return ""; |
+} |
+ |
+const char* dismissalTypeToString(Document::PageDismissalType dismissalType) |
+{ |
+ switch (dismissalType) { |
+ case Document::BeforeUnloadDismissal: |
+ return "beforeunload"; |
+ case Document::PageHideDismissal: |
+ return "pagehide"; |
+ case Document::UnloadVisibilityChangeDismissal: |
+ return "visibilitychange"; |
+ case Document::UnloadDismissal: |
+ return "unload"; |
+ case Document::NoDismissal: |
+ ASSERT_NOT_REACHED(); |
+ } |
+ ASSERT_NOT_REACHED(); |
+ return ""; |
+} |
+ |
+} // namespace |
+ |
class CompositorAnimationTimeline; |
// Converts a AXObjectCache::AXNotification to a WebAXEvent |
@@ -859,20 +897,7 @@ DOMWindow* ChromeClientImpl::pagePopupWindowForTesting() const |
bool ChromeClientImpl::shouldOpenModalDialogDuringPageDismissal(const DialogType& dialogType, const String& dialogMessage, Document::PageDismissalType dismissalType) const |
{ |
- const char* const kDialogs[] = { "alert", "confirm", "prompt" }; |
- int dialog = static_cast<int>(dialogType); |
- ASSERT_WITH_SECURITY_IMPLICATION(0 <= dialog); |
- ASSERT_WITH_SECURITY_IMPLICATION(dialog < static_cast<int>(WTF_ARRAY_LENGTH(kDialogs))); |
- |
- const char* const kDismissals[] = { "beforeunload", "pagehide", "unload" }; |
- int dismissal = static_cast<int>(dismissalType) - 1; // Exclude NoDismissal. |
- ASSERT_WITH_SECURITY_IMPLICATION(0 <= dismissal); |
- ASSERT_WITH_SECURITY_IMPLICATION(dismissal < static_cast<int>(WTF_ARRAY_LENGTH(kDismissals))); |
- |
- DEFINE_STATIC_LOCAL(EnumerationHistogram, dialogDismissalHistogram, ("Renderer.ModalDialogsDuringPageDismissal", WTF_ARRAY_LENGTH(kDialogs) * WTF_ARRAY_LENGTH(kDismissals))); |
- dialogDismissalHistogram.count(dismissal * WTF_ARRAY_LENGTH(kDialogs) + dialog); |
- |
- String message = String("Blocked ") + kDialogs[dialog] + "('" + dialogMessage + "') during " + kDismissals[dismissal] + "."; |
+ String message = String("Blocked ") + dialogTypeToString(dialogType) + "('" + dialogMessage + "') during " + dismissalTypeToString(dismissalType) + "."; |
m_webView->mainFrame()->addMessageToConsole(WebConsoleMessage(WebConsoleMessage::LevelError, message)); |
return false; |