Coverity: Remove default TabCaptureRequest constructor.

Review URL: https://chromiumcodereview.appspot.com/11734034

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175269 0039d316-1c4b-4281-b951-d872f2087c98
parent d7f5ee8b
......@@ -4,6 +4,8 @@
#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h"
#include <utility>
#include "content/public/browser/browser_thread.h"
#include "chrome/browser/extensions/event_names.h"
#include "chrome/browser/extensions/event_router.h"
......@@ -21,6 +23,14 @@ using content::BrowserThread;
namespace extensions {
TabCaptureRegistry::TabCaptureRequest::TabCaptureRequest(
std::string extension_id, int tab_id, tab_capture::TabCaptureState status)
: extension_id(extension_id), tab_id(tab_id), status(status) {
}
TabCaptureRegistry::TabCaptureRequest::~TabCaptureRequest() {
}
TabCaptureRegistry::TabCaptureRegistry(Profile* profile)
: proxy_(new MediaObserverProxy()), profile_(profile) {
proxy_->Attach(this);
......@@ -44,7 +54,8 @@ void TabCaptureRegistry::HandleRequestUpdateOnUIThread(
std::pair<int, int> key = std::make_pair(render_process_id, render_view_id);
if (requests_.find(key) == requests_.end()) {
DeviceCaptureRequestMap::iterator request_it = requests_.find(key);
if (request_it == requests_.end()) {
LOG(ERROR) << "Receiving updates for invalid tab capture request.";
return;
}
......@@ -77,19 +88,19 @@ void TabCaptureRegistry::HandleRequestUpdateOnUIThread(
return;
}
TabCaptureRegistry::TabCaptureRequest& request_info = requests_[key];
request_info.status = state;
TabCaptureRegistry::TabCaptureRequest* request_info = &request_it->second;
request_info->status = state;
scoped_ptr<tab_capture::CaptureInfo> info(new tab_capture::CaptureInfo());
info->tab_id = request_info.tab_id;
info->status = request_info.status;
info->tab_id = request_info->tab_id;
info->status = request_info->status;
scoped_ptr<base::ListValue> args(new ListValue());
args->Append(info->ToValue().release());
scoped_ptr<Event> event(new Event(
events::kOnTabCaptureStatusChanged, args.Pass()));
event->restrict_to_profile = profile_;
router->DispatchEventToExtension(request_info.extension_id, event.Pass());
router->DispatchEventToExtension(request_info->extension_id, event.Pass());
}
const TabCaptureRegistry::CaptureRequestList
......@@ -130,13 +141,14 @@ void TabCaptureRegistry::Observe(int type,
bool TabCaptureRegistry::AddRequest(const std::pair<int, int> key,
const TabCaptureRequest& request) {
// Currently, we do not allow multiple active captures for same tab.
if (requests_.find(key) != requests_.end())
if (requests_[key].status !=
tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_STOPPED &&
requests_[key].status !=
tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_ERROR)
DeviceCaptureRequestMap::iterator it = requests_.find(key);
if (it != requests_.end()) {
const tab_capture::TabCaptureState state = it->second.status;
if (state != tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_STOPPED &&
state != tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_ERROR)
return false;
requests_[key] = request;
}
requests_.insert(std::make_pair(key, request));
return true;
}
......
......@@ -29,14 +29,14 @@ class TabCaptureRegistry : public ProfileKeyedService,
public content::NotificationObserver {
public:
struct TabCaptureRequest {
TabCaptureRequest(std::string extension_id,
int tab_id,
tab_capture::TabCaptureState status);
~TabCaptureRequest();
std::string extension_id;
int tab_id;
tab_capture::TabCaptureState status;
TabCaptureRequest() : tab_id(-1) {}
TabCaptureRequest(std::string extension_id, int tab_id,
tab_capture::TabCaptureState status)
: extension_id(extension_id), tab_id(tab_id), status(status) {}
};
typedef std::vector<TabCaptureRequest> CaptureRequestList;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment