Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(260)

Unified Diff: content/browser/service_worker/service_worker_dispatcher_host.cc

Issue 2134623002: service worker: Add crash keys for OnMessageReceived crash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: blimp Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/service_worker/embedded_worker_registry.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/service_worker/service_worker_dispatcher_host.cc
diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc
index 5173be229978db1399c69b0cf781902e15b8e275..08cb58c226d5954efe68e29b9947641ced858272 100644
--- a/content/browser/service_worker/service_worker_dispatcher_host.cc
+++ b/content/browser/service_worker/service_worker_dispatcher_host.cc
@@ -6,6 +6,7 @@
#include <utility>
+#include "base/debug/crash_logging.h"
#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
@@ -85,6 +86,52 @@ bool CanGetRegistration(const GURL& document_url,
OriginCanAccessServiceWorkers(given_document_url);
}
+std::string GetIPCMessageTypeAsString(uint32_t type) {
+ switch (type) {
+ case ServiceWorkerHostMsg_InstallEventFinished::ID:
+ return "ServiceWorkerHostMsg_InstallEventFinished";
+ case ServiceWorkerHostMsg_ActivateEventFinished::ID:
+ return "ServiceWorkerHostMsg_ActivateEventFinished";
+ case ServiceWorkerHostMsg_ExtendableMessageEventFinished::ID:
+ return "ServiceWorkerHostMsg_ExtendableMessageEventFinished";
+ case ServiceWorkerHostMsg_FetchEventResponse::ID:
+ return "ServiceWorkerHostMsg_FetchEventResponse";
+ case ServiceWorkerHostMsg_FetchEventFinished::ID:
+ return "ServiceWorkerHostMsg_FetchEventFinished";
+ case ServiceWorkerHostMsg_NotificationClickEventFinished::ID:
+ return "ServiceWorkerHostMsg_NotificationClickEventFinished";
+ case ServiceWorkerHostMsg_NotificationCloseEventFinished::ID:
+ return "ServiceWorkerHostMsg_NotificationCloseEventFinished";
+ case ServiceWorkerHostMsg_PushEventFinished::ID:
+ return "ServiceWorkerHostMsg_PushEventFinished";
+ case ServiceWorkerHostMsg_Pong::ID:
+ return "ServiceWorkerHostMsg_Pong";
+ case ServiceWorkerHostMsg_GetClient::ID:
+ return "ServiceWorkerHostMsg_GetClient";
+ case ServiceWorkerHostMsg_GetClients::ID:
+ return "ServiceWorkerHostMsg_GetClients";
+ case ServiceWorkerHostMsg_PostMessageToClient::ID:
+ return "ServiceWorkerHostMsg_PostMessageToClient";
+ case ServiceWorkerHostMsg_SetCachedMetadata::ID:
+ return "ServiceWorkerHostMsg_SetCachedMetadata";
+ case ServiceWorkerHostMsg_ClearCachedMetadata::ID:
+ return "ServiceWorkerHostMsg_ClearCachedMetadata";
+ case ServiceWorkerHostMsg_OpenWindow::ID:
+ return "ServiceWorkerHostMsg_OpenWindow";
+ case ServiceWorkerHostMsg_FocusClient::ID:
+ return "ServiceWorkerHostMsg_FocusClient";
+ case ServiceWorkerHostMsg_NavigateClient::ID:
+ return "ServiceWorkerHostMsg_NavigateClient";
+ case ServiceWorkerHostMsg_SkipWaiting::ID:
+ return "ServiceWorkerHostMsg_SkipWaiting";
+ case ServiceWorkerHostMsg_ClaimClients::ID:
+ return "ServiceWorkerHostMsg_ClaimClients";
+ case ServiceWorkerHostMsg_RegisterForeignFetchScopes::ID:
+ return "ServiceWorkerHostMsg_RegisterForeignFetchScopes";
+ }
+ return "Unknown";
+}
+
} // namespace
ServiceWorkerDispatcherHost::ServiceWorkerDispatcherHost(
@@ -207,8 +254,18 @@ bool ServiceWorkerDispatcherHost::OnMessageReceived(
if (!handled && GetContext()) {
handled = GetContext()->embedded_worker_registry()->OnMessageReceived(
message, render_process_id_);
- if (!handled)
+ if (!handled) {
+ // Temporary debugging for https://crbug.com/625040
+ EmbeddedWorkerInstance* worker =
+ GetContext()->embedded_worker_registry()->GetWorkerForMessage(
+ render_process_id_, message.routing_id());
+ base::debug::ScopedCrashKey("swdh_not_handled_message_type",
+ GetIPCMessageTypeAsString(message.type()));
+ base::debug::ScopedCrashKey(
+ "swdh_not_handled_worker_status",
+ EmbeddedWorkerInstance::StatusToString(worker->status()));
bad_message::ReceivedBadMessage(this, bad_message::SWDH_NOT_HANDLED);
+ }
}
return handled;
« no previous file with comments | « content/browser/service_worker/embedded_worker_registry.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698