New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 620762 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 2
Type: Feature

Blocked on:
issue 641993



Sign in to add a comment

Allow on-demand uploads of stored crash reports

Project Member Reported by wfh@chromium.org, Jun 16 2016

Issue description

Currently if crash reporting is not enabled then crashpad will dump a crash report to disk but not upload it.

It would be good to expose a method for users to selectively upload these crash reports by showing them in chrome://crashes and then adding some kind of UI to allow upload via a consent dialog.
 
Cc: mark@chromium.org rsesek@chromium.org
We'd talked about improving this before. I don't think anyone actually looked into it though.

My first thought was to have a second block in chrome://crashes for "Crashes captured but not uploaded". Then, a link there to cause upload. Then we'd want an indication that it's pending, and then I guess it should move to the normal "Crashes" section, but instead of saying "Automatically reported..." something sensible about it being user-reported. But it might be jarring to have it move sections, especially if the user intends to use the "Provide additional details." link.

So perhaps, what we want is that all crashes are in the list, along with a clear indication of "Not uploaded", "Automatically reported", "You uploaded this" and the associated links.

In Crashpad's mode of operation, crashes are captured to disk regardless of consent bit. If we're going to allow users to upload those (that would be the default as far as Crashpad is concerned), we'd need clear messaging to the users who haven't already opted in to UMA to explain what they're uploading if they choose to. This would be different for Breakpad platforms as the capture is gated on consent rather than upload.

As far as implementing the backend:
- Crashpad can list reports that are both pending (not uploaded) and completed (both skipped due to throttling, and upload finished)
- It doesn't currently have an API to move it back into pending and force upload (would that only be valid for Skipped? Or also for Complete)
- This would also have to be plumbed into components/crash which exposes Crashpad to Chrome
  -- Which brings up what to do about Linux/CrOS/Android -- I'm not sure about Breakpad's API or anyone's willingness to add the functionality there.

Comment 2 by mark@chromium.org, Jun 16 2016

Yes, where you landed is basically exactly where my thinking was. about:crashes should show all crashes, uploaded or not. The ones that weren’t ever uploaded would have an “upload” button or link, which should work on anything that’s “completed” without having had a successful upload. Maybe also on things that are “pending” but waiting for another upload attempt. Allowing it for reports that were completed with a successful upload is probably too much power for users to have easy access to.

I’d like for crashpad_handler to just detect that something’s become “pending” and deal with it, but we probably also need a way to mark it as user-requested, to exempt it from the rate-limiting skip.

No sense in adding this to non-Crashpad platforms. It means that some platforms won’t get this feature until they get Crashpad, but we’re already spread thin enough without having to implement this same feature twice AND rework the Breakpad integration to be “always on.”

Comment 3 by wfh@chromium.org, Jun 16 2016

Labels: OS-Mac

Comment 4 by gayane@chromium.org, Jun 16 2016

Cc: battre@chromium.org gayane@chromium.org
Adding battre@ who was at some point interested in showing all the crashes not just uploaded ones in the chrome://crashes
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 21 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d5a71f13c8003163c0cb232de99e159ab8b8a0b

commit 6d5a71f13c8003163c0cb232de99e159ab8b8a0b
Author: scottmg <scottmg@chromium.org>
Date: Tue Jun 21 04:18:51 2016

List all crashes in chrome://crashes, including those not uploaded

This will only affect Crashpad platforms (currently Mac and Windows).
This is only a basic first step towards the linked bug, but might even
be slightly useful already for users who are willing to manually attach
a dump to a filed bug.

Screenshot: http://imgur.com/C58HDi5.

R=mark@chromium.org, caitkp@chromium.org
BUG= 620762 

Review-Url: https://codereview.chromium.org/2070993002
Cr-Commit-Position: refs/heads/master@{#400892}

[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/chrome/app/chrome_exe_main_win.cc
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/chrome/browser/crash_upload_list_crashpad.cc
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/components/OWNERS
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/components/crash/content/app/crashpad.cc
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/components/crash/content/app/crashpad.h
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/components/crash/core/browser/crashes_ui_util.cc
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/components/crash/core/browser/resources/crashes.css
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/components/crash/core/browser/resources/crashes.js
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/components/crash_strings.grdp
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/components/upload_list/upload_list.cc
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/components/upload_list/upload_list.h
[modify] https://crrev.com/6d5a71f13c8003163c0cb232de99e159ab8b8a0b/components/upload_list/upload_list_unittest.cc

Comment 7 by mark@chromium.org, Aug 16 2016

Owner: gayane@chromium.org
Status: Started (was: Untriaged)
Gayane has been working on the Crashpad side of this at https://chromium-review.googlesource.com/367328/.
Project Member

Comment 8 by bugdroid1@chromium.org, Aug 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/crashpad/crashpad.git/+/b35ee1fca18956f3c27ba124d6dc456a723c7670

commit b35ee1fca18956f3c27ba124d6dc456a723c7670
Author: Gayane Petrosyan <gayane@chromium.org>
Date: Wed Aug 24 19:37:46 2016

Adding support for on-demand uploads.

In order to allow on-demand uploads for crash reports, adding a
upload_explicitly_requested bit on 'pending' state and necessary support
for it.

BUG= chromium:620762 

Change-Id: Ida38e483fe8d0e48eb5cbe95e8b8bfd96a2f8f00
Reviewed-on: https://chromium-review.googlesource.com/367328
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>

[modify] https://crrev.com/b35ee1fca18956f3c27ba124d6dc456a723c7670/client/crash_report_database.cc
[modify] https://crrev.com/b35ee1fca18956f3c27ba124d6dc456a723c7670/client/crash_report_database.h
[modify] https://crrev.com/b35ee1fca18956f3c27ba124d6dc456a723c7670/client/crash_report_database_mac.mm
[modify] https://crrev.com/b35ee1fca18956f3c27ba124d6dc456a723c7670/client/crash_report_database_test.cc
[modify] https://crrev.com/b35ee1fca18956f3c27ba124d6dc456a723c7670/client/crash_report_database_win.cc
[modify] https://crrev.com/b35ee1fca18956f3c27ba124d6dc456a723c7670/client/prune_crash_reports_test.cc
[modify] https://crrev.com/b35ee1fca18956f3c27ba124d6dc456a723c7670/handler/crash_report_upload_thread.cc
[modify] https://crrev.com/b35ee1fca18956f3c27ba124d6dc456a723c7670/util/mac/xattr.cc
[modify] https://crrev.com/b35ee1fca18956f3c27ba124d6dc456a723c7670/util/mac/xattr.h
[modify] https://crrev.com/b35ee1fca18956f3c27ba124d6dc456a723c7670/util/mac/xattr_test.cc

Comment 9 by gayane@chromium.org, Aug 29 2016

Blockedon: 641993
Project Member

Comment 10 by bugdroid1@chromium.org, Sep 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f132d5d5801871170f5d87aabb9bad3339c9c022

commit f132d5d5801871170f5d87aabb9bad3339c9c022
Author: gayane <gayane@chromium.org>
Date: Wed Sep 07 16:07:10 2016

Manual crash uploads for mac and win

Adding functionally for requesting upload for a crash report from
about:crashes page and propagating the request to crashpad.

BUG= 620762 

Review-Url: https://codereview.chromium.org/2268783002
Cr-Commit-Position: refs/heads/master@{#416945}

[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/chrome/browser/crash_upload_list/crash_upload_list_crashpad.h
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/chrome/browser/ui/webui/crashes_ui.cc
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/components/crash/content/app/crashpad.cc
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/components/crash/content/app/crashpad.h
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/components/crash/core/browser/crashes_ui_util.cc
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/components/crash/core/browser/crashes_ui_util.h
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/components/crash/core/browser/resources/crashes.html
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/components/crash/core/browser/resources/crashes.js
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/components/crash_strings.grdp
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/components/upload_list/upload_list.cc
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/components/upload_list/upload_list.h
[modify] https://crrev.com/f132d5d5801871170f5d87aabb9bad3339c9c022/ios/chrome/browser/ui/webui/crashes_ui.cc

Labels: Merge-Request-54
Merge request for https://codereview.chromium.org/2268783002

Comment 12 by dimu@chromium.org, Sep 8 2016

Labels: -Merge-Request-54 Merge-Approved-54 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M54 (branch: 2840)
Project Member

Comment 13 by bugdroid1@chromium.org, Sep 8 2016

Labels: -merge-approved-54 merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e299643c1a472625ebb0ed91ee824c5b0f6b256f

commit e299643c1a472625ebb0ed91ee824c5b0f6b256f
Author: Jesse Doherty <jwd@chromium.org>
Date: Thu Sep 08 17:49:17 2016

Manual crash uploads for mac and win

Adding functionally for requesting upload for a crash report from
about:crashes page and propagating the request to crashpad.

BUG= 620762 

Review-Url: https://codereview.chromium.org/2268783002
Cr-Commit-Position: refs/heads/master@{#416945}
(cherry picked from commit f132d5d5801871170f5d87aabb9bad3339c9c022)

Review URL: https://codereview.chromium.org/2325713002 .

Cr-Commit-Position: refs/branch-heads/2840@{#235}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/chrome/browser/crash_upload_list/crash_upload_list_crashpad.h
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/chrome/browser/ui/webui/crashes_ui.cc
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/content/app/crashpad.cc
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/content/app/crashpad.h
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/core/browser/crashes_ui_util.cc
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/core/browser/crashes_ui_util.h
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/core/browser/resources/crashes.html
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/core/browser/resources/crashes.js
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash_strings.grdp
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/upload_list/upload_list.cc
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/upload_list/upload_list.h
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/ios/chrome/browser/ui/webui/crashes_ui.cc

Status: Fixed (was: Started)
For on-demand crash report uploads for Android follow  crbug.com/641628 
Project Member

Comment 15 by bugdroid1@chromium.org, Sep 10 2016

Cc: rnimmagadda@chromium.org
Labels: TE-Verified-M54 TE-Verified-54.0.2840.27
Verified the fix on Windows 7 & MAC (10.11.6) for Google Chrome Beta Version - 54.0.2840.27 

Screen-recording is attached.

TE-Verified Labels are attached.
620762.mp4
514 KB View Download
rnimmagadda@ Thanks for verifying that crashes will be successfully uploaded as before and there is no regression.
To see the new feature (e.g. manual uploads of not uploaded crashes) you can 
* disable your network connection before generating a crash
* generate a crash
* verify that the crash will be displayed as not uploaded with the "Send now" link.
* then you can enable the network connection and press "Send now"
* now crash should be marked as 'upload requested by user' and will be uploaded within 15min
* if you don't want to wait 15min you can generate a new crash after which both crashes should be uploaded.

Let me know if you would need more info.
Project Member

Comment 18 by bugdroid1@chromium.org, Oct 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e299643c1a472625ebb0ed91ee824c5b0f6b256f

commit e299643c1a472625ebb0ed91ee824c5b0f6b256f
Author: Jesse Doherty <jwd@chromium.org>
Date: Thu Sep 08 17:49:17 2016

Manual crash uploads for mac and win

Adding functionally for requesting upload for a crash report from
about:crashes page and propagating the request to crashpad.

BUG= 620762 

Review-Url: https://codereview.chromium.org/2268783002
Cr-Commit-Position: refs/heads/master@{#416945}
(cherry picked from commit f132d5d5801871170f5d87aabb9bad3339c9c022)

Review URL: https://codereview.chromium.org/2325713002 .

Cr-Commit-Position: refs/branch-heads/2840@{#235}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/chrome/browser/crash_upload_list/crash_upload_list_crashpad.h
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/chrome/browser/ui/webui/crashes_ui.cc
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/content/app/crashpad.cc
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/content/app/crashpad.h
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/core/browser/crashes_ui_util.cc
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/core/browser/crashes_ui_util.h
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/core/browser/resources/crashes.html
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash/core/browser/resources/crashes.js
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/crash_strings.grdp
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/upload_list/upload_list.cc
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/components/upload_list/upload_list.h
[modify] https://crrev.com/e299643c1a472625ebb0ed91ee824c5b0f6b256f/ios/chrome/browser/ui/webui/crashes_ui.cc

Sign in to add a comment