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..56453c6bb93d69ae12f3a334f16eff15ac5e13e4 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 { |
@@ -23,9 +30,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; |
+ std::vector<linked_ptr<api::webrtc_logging_private::MetaDataEntry> >::iterator |
no longer working on chromium
2013/10/01 08:41:42
Put it in the scope of for loop, and use const_ite
Henrik Grunell
2013/10/02 12:47:18
Done.
|
+ it = params->meta_data.begin(); |
+ for (; 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)); |
Jói
2013/09/27 14:39:53
Just noting it here, probably not worth optimizing
Henrik Grunell
2013/10/02 12:47:18
Yes, it's expected to be in the order of 5 entries
|
+ |
+ return true; |
+} |
+ |
+void WebrtcLoggingPrivateSetMetaDataFunction::SetMetaDataCallback( |
+ bool success, std::string error_message) { |
+ DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
+ if (!success) |
+ SetError(error_message); |
+ SendResponse(success); |
} |
WebrtcLoggingPrivateStartFunction::WebrtcLoggingPrivateStartFunction() {} |
@@ -33,15 +63,31 @@ 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)); |
+ |
+ std::string app_url; |
+ content::WebContents* web_contents = |
+ content::WebContents::FromRenderViewHost(render_view_host()); |
+ if (web_contents) |
+ app_url = web_contents->GetLastCommittedURL().spec(); |
+ |
+ WebRtcLoggingHandlerHost::GenericDoneCallback callback = base::Bind( |
+ &WebrtcLoggingPrivateStartFunction::StartCallback, this); |
+ |
+ BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, base::Bind( |
+ &WebRtcLoggingHandlerHost::StartLogging, webrtc_logging_handler_host, |
+ app_url, callback)); |
+ |
+ return true; |
} |
-void WebrtcLoggingPrivateStartFunction::StartCallback(bool success) { |
+void WebrtcLoggingPrivateStartFunction::StartCallback( |
+ bool success, 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 +102,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 +117,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, 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 +144,30 @@ 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, std::string report_id, 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 +176,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, std::string error_message) { |
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- // TODO(grunell): Implement set lastError. |
- NOTIMPLEMENTED(); |
+ if (!success) |
+ SetError(error_message); |
SendResponse(success); |
} |