| Index: chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
|
| diff --git a/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc b/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
|
| index 16819e7c106efc7b57cc05e20a0d9b85591abdd4..c28da2b1e201a4041e81ff731ffd01419c959f62 100644
|
| --- a/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
|
| +++ b/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
|
| @@ -5,7 +5,14 @@
|
| #include "chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.h"
|
|
|
| #include "base/logging.h"
|
| +#include "base/supports_user_data.h"
|
| +#include "chrome/browser/media/webrtc_logging_handler_host.h"
|
| #include "content/public/browser/browser_thread.h"
|
| +#include "content/public/browser/render_process_host.h"
|
| +#include "content/public/browser/render_view_host.h"
|
| +#include "content/public/browser/web_contents.h"
|
| +
|
| +using content::BrowserThread;
|
|
|
| namespace extensions {
|
|
|
| @@ -13,6 +20,8 @@ namespace SetMetaData = api::webrtc_logging_private::SetMetaData;
|
| namespace SetUploadOnRenderClose =
|
| api::webrtc_logging_private::SetUploadOnRenderClose;
|
|
|
| +using api::webrtc_logging_private::MetaDataEntry;
|
| +
|
| WebrtcLoggingPrivateSetMetaDataFunction::
|
| WebrtcLoggingPrivateSetMetaDataFunction() {}
|
|
|
| @@ -23,9 +32,32 @@ bool WebrtcLoggingPrivateSetMetaDataFunction::RunImpl() {
|
| scoped_ptr<SetMetaData::Params> params(SetMetaData::Params::Create(*args_));
|
| EXTENSION_FUNCTION_VALIDATE(params.get());
|
|
|
| - // TODO(grunell): Implement.
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| + content::RenderProcessHost* host = render_view_host()->GetProcess();
|
| + scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host(
|
| + base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host));
|
| +
|
| + std::map<std::string, std::string> meta_data;
|
| + for (std::vector<linked_ptr<MetaDataEntry> >::const_iterator it =
|
| + params->meta_data.begin(); it != params->meta_data.end(); ++it) {
|
| + meta_data[(*it)->key] = (*it)->value;
|
| + }
|
| +
|
| + WebRtcLoggingHandlerHost::GenericDoneCallback callback = base::Bind(
|
| + &WebrtcLoggingPrivateSetMetaDataFunction::SetMetaDataCallback, this);
|
| +
|
| + BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, base::Bind(
|
| + &WebRtcLoggingHandlerHost::SetMetaData, webrtc_logging_handler_host,
|
| + meta_data, callback));
|
| +
|
| + return true;
|
| +}
|
| +
|
| +void WebrtcLoggingPrivateSetMetaDataFunction::SetMetaDataCallback(
|
| + bool success, const std::string& error_message) {
|
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| + if (!success)
|
| + SetError(error_message);
|
| + SendResponse(success);
|
| }
|
|
|
| WebrtcLoggingPrivateStartFunction::WebrtcLoggingPrivateStartFunction() {}
|
| @@ -33,15 +65,25 @@ WebrtcLoggingPrivateStartFunction::WebrtcLoggingPrivateStartFunction() {}
|
| WebrtcLoggingPrivateStartFunction::~WebrtcLoggingPrivateStartFunction() {}
|
|
|
| bool WebrtcLoggingPrivateStartFunction::RunImpl() {
|
| - // TODO(grunell): Implement.
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| + content::RenderProcessHost* host = render_view_host()->GetProcess();
|
| + scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host(
|
| + base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host));
|
| +
|
| + WebRtcLoggingHandlerHost::GenericDoneCallback callback = base::Bind(
|
| + &WebrtcLoggingPrivateStartFunction::StartCallback, this);
|
| +
|
| + BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, base::Bind(
|
| + &WebRtcLoggingHandlerHost::StartLogging, webrtc_logging_handler_host,
|
| + callback));
|
| +
|
| + return true;
|
| }
|
|
|
| -void WebrtcLoggingPrivateStartFunction::StartCallback(bool success) {
|
| +void WebrtcLoggingPrivateStartFunction::StartCallback(
|
| + bool success, const std::string& error_message) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| - // TODO(grunell): Implement set lastError.
|
| - NOTIMPLEMENTED();
|
| + if (!success)
|
| + SetError(error_message);
|
| SendResponse(success);
|
| }
|
|
|
| @@ -56,9 +98,14 @@ bool WebrtcLoggingPrivateSetUploadOnRenderCloseFunction::RunImpl() {
|
| SetUploadOnRenderClose::Params::Create(*args_));
|
| EXTENSION_FUNCTION_VALIDATE(params.get());
|
|
|
| - // TODO(grunell): Implement.
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| + content::RenderProcessHost* host = render_view_host()->GetProcess();
|
| + scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host(
|
| + base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host));
|
| +
|
| + webrtc_logging_handler_host->set_upload_log_on_render_close(
|
| + params->should_upload);
|
| +
|
| + return true;
|
| }
|
|
|
| WebrtcLoggingPrivateStopFunction::WebrtcLoggingPrivateStopFunction() {}
|
| @@ -66,15 +113,25 @@ WebrtcLoggingPrivateStopFunction::WebrtcLoggingPrivateStopFunction() {}
|
| WebrtcLoggingPrivateStopFunction::~WebrtcLoggingPrivateStopFunction() {}
|
|
|
| bool WebrtcLoggingPrivateStopFunction::RunImpl() {
|
| - // TODO(grunell): Implement.
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| + content::RenderProcessHost* host = render_view_host()->GetProcess();
|
| + scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host(
|
| + base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host));
|
| +
|
| + WebRtcLoggingHandlerHost::GenericDoneCallback callback = base::Bind(
|
| + &WebrtcLoggingPrivateStopFunction::StopCallback, this);
|
| +
|
| + BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, base::Bind(
|
| + &WebRtcLoggingHandlerHost::StopLogging, webrtc_logging_handler_host,
|
| + callback));
|
| +
|
| + return true;
|
| }
|
|
|
| -void WebrtcLoggingPrivateStopFunction::StopCallback(bool success) {
|
| +void WebrtcLoggingPrivateStopFunction::StopCallback(
|
| + bool success, const std::string& error_message) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| - // TODO(grunell): Implement set lastError.
|
| - NOTIMPLEMENTED();
|
| + if (!success)
|
| + SetError(error_message);
|
| SendResponse(success);
|
| }
|
|
|
| @@ -83,18 +140,31 @@ WebrtcLoggingPrivateUploadFunction::WebrtcLoggingPrivateUploadFunction() {}
|
| WebrtcLoggingPrivateUploadFunction::~WebrtcLoggingPrivateUploadFunction() {}
|
|
|
| bool WebrtcLoggingPrivateUploadFunction::RunImpl() {
|
| - // TODO(grunell): Implement.
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| + content::RenderProcessHost* host = render_view_host()->GetProcess();
|
| + scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host(
|
| + base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host));
|
| +
|
| + WebRtcLoggingHandlerHost::UploadDoneCallback callback = base::Bind(
|
| + &WebrtcLoggingPrivateUploadFunction::UploadCallback, this);
|
| +
|
| + BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, base::Bind(
|
| + &WebRtcLoggingHandlerHost::UploadLog, webrtc_logging_handler_host,
|
| + callback));
|
| +
|
| + return true;
|
| }
|
|
|
| void WebrtcLoggingPrivateUploadFunction::UploadCallback(
|
| - bool success, std::string report_id) {
|
| + bool success, const std::string& report_id,
|
| + const std::string& error_message) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| - api::webrtc_logging_private::UploadResult result;
|
| - result.report_id = report_id;
|
| - // TODO(grunell): Implement set lastError.
|
| - NOTIMPLEMENTED();
|
| + if (success) {
|
| + api::webrtc_logging_private::UploadResult result;
|
| + result.report_id = report_id;
|
| + SetResult(result.ToValue().release());
|
| + } else {
|
| + SetError(error_message);
|
| + }
|
| SendResponse(success);
|
| }
|
|
|
| @@ -103,15 +173,25 @@ WebrtcLoggingPrivateDiscardFunction::WebrtcLoggingPrivateDiscardFunction() {}
|
| WebrtcLoggingPrivateDiscardFunction::~WebrtcLoggingPrivateDiscardFunction() {}
|
|
|
| bool WebrtcLoggingPrivateDiscardFunction::RunImpl() {
|
| - // TODO(grunell): Implement.
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| + content::RenderProcessHost* host = render_view_host()->GetProcess();
|
| + scoped_refptr<WebRtcLoggingHandlerHost> webrtc_logging_handler_host(
|
| + base::UserDataAdapter<WebRtcLoggingHandlerHost>::Get(host, host));
|
| +
|
| + WebRtcLoggingHandlerHost::GenericDoneCallback callback = base::Bind(
|
| + &WebrtcLoggingPrivateDiscardFunction::DiscardCallback, this);
|
| +
|
| + BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, base::Bind(
|
| + &WebRtcLoggingHandlerHost::DiscardLog, webrtc_logging_handler_host,
|
| + callback));
|
| +
|
| + return true;
|
| }
|
|
|
| -void WebrtcLoggingPrivateDiscardFunction::DiscardCallback(bool success) {
|
| +void WebrtcLoggingPrivateDiscardFunction::DiscardCallback(
|
| + bool success, const std::string& error_message) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| - // TODO(grunell): Implement set lastError.
|
| - NOTIMPLEMENTED();
|
| + if (!success)
|
| + SetError(error_message);
|
| SendResponse(success);
|
| }
|
|
|
|
|