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

Side by Side Diff: extensions/browser/api/mime_handler_private/mime_handler_private.cc

Issue 885563002: Fix a crash in MimeHandlerServiceImpl::AbortStream(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: GN Created 5 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/browser/api/mime_handler_private/mime_handler_private.h" 5 #include "extensions/browser/api/mime_handler_private/mime_handler_private.h"
6 6
7 #include "content/public/browser/stream_handle.h" 7 #include "content/public/browser/stream_handle.h"
8 #include "content/public/browser/stream_info.h" 8 #include "content/public/browser/stream_info.h"
9 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues t.h" 9 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues t.h"
10 #include "extensions/common/constants.h" 10 #include "extensions/common/constants.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 const mojo::Callback<void(mime_handler::StreamInfoPtr)>& callback) { 53 const mojo::Callback<void(mime_handler::StreamInfoPtr)>& callback) {
54 if (!stream_) { 54 if (!stream_) {
55 callback.Run(mime_handler::StreamInfoPtr()); 55 callback.Run(mime_handler::StreamInfoPtr());
56 return; 56 return;
57 } 57 }
58 callback.Run(mojo::ConvertTo<mime_handler::StreamInfoPtr>(*stream_)); 58 callback.Run(mojo::ConvertTo<mime_handler::StreamInfoPtr>(*stream_));
59 } 59 }
60 60
61 void MimeHandlerServiceImpl::AbortStream( 61 void MimeHandlerServiceImpl::AbortStream(
62 const mojo::Callback<void()>& callback) { 62 const mojo::Callback<void()>& callback) {
63 if (!stream_) {
64 callback.Run();
65 return;
66 }
63 stream_->Abort(base::Bind(&MimeHandlerServiceImpl::OnStreamClosed, 67 stream_->Abort(base::Bind(&MimeHandlerServiceImpl::OnStreamClosed,
64 weak_factory_.GetWeakPtr(), callback)); 68 weak_factory_.GetWeakPtr(), callback));
65 } 69 }
66 70
67 void MimeHandlerServiceImpl::OnStreamClosed( 71 void MimeHandlerServiceImpl::OnStreamClosed(
68 const mojo::Callback<void()>& callback) { 72 const mojo::Callback<void()>& callback) {
69 callback.Run(); 73 callback.Run();
70 } 74 }
71 75
72 } // namespace extensions 76 } // namespace extensions
(...skipping 13 matching lines...) Expand all
86 const content::StreamInfo* info = stream.stream_info(); 90 const content::StreamInfo* info = stream.stream_info();
87 result->mime_type = info->mime_type; 91 result->mime_type = info->mime_type;
88 result->original_url = info->original_url.spec(); 92 result->original_url = info->original_url.spec();
89 result->stream_url = info->handle->GetURL().spec(); 93 result->stream_url = info->handle->GetURL().spec();
90 result->response_headers = 94 result->response_headers =
91 extensions::CreateResponseHeadersMap(info->response_headers.get()); 95 extensions::CreateResponseHeadersMap(info->response_headers.get());
92 return result.Pass(); 96 return result.Pass();
93 } 97 }
94 98
95 } // namespace mojo 99 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698