Observer MUST be detached if it is deleted! Meaning, it either (1)should have protected event_manager_ or (2)event manager should keep weak refs to its observers, an since https://github.com/crosswalk-project/crosswalk/pull/1128 there is one more option (3)  xwalk::XWalkContentBrowserClient::Get()->runtime_context()->GetApplicationSystem()->event_manager()->DetachObserver(this); // :D . I recommend option #1.