Index: chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc |
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc |
index 866f6ceae240c9ceed18353d4c75964b655f1b5d..d67a1be72f004c4c31447394ed9b907dfe49bf94 100644 |
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc |
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc |
@@ -30,9 +30,11 @@ class TabCaptureRegistry::LiveRequest : public content::WebContentsObserver { |
public: |
LiveRequest(content::WebContents* target_contents, |
const std::string& extension_id, |
+ bool is_anonymous, |
TabCaptureRegistry* registry) |
: content::WebContentsObserver(target_contents), |
extension_id_(extension_id), |
+ is_anonymous_(is_anonymous), |
registry_(registry), |
capture_state_(tab_capture::TAB_CAPTURE_STATE_NONE), |
is_verified_(false), |
@@ -51,6 +53,9 @@ class TabCaptureRegistry::LiveRequest : public content::WebContentsObserver { |
const std::string& extension_id() const { |
return extension_id_; |
} |
+ bool is_anonymous() const { |
+ return is_anonymous_; |
+ } |
TabCaptureState capture_state() const { |
return capture_state_; |
} |
@@ -120,6 +125,7 @@ class TabCaptureRegistry::LiveRequest : public content::WebContentsObserver { |
private: |
const std::string extension_id_; |
+ const bool is_anonymous_; |
TabCaptureRegistry* const registry_; |
TabCaptureState capture_state_; |
bool is_verified_; |
@@ -164,13 +170,13 @@ void TabCaptureRegistry::GetCapturedTabs( |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
DCHECK(list_of_capture_info); |
list_of_capture_info->Clear(); |
- for (ScopedVector<LiveRequest>::const_iterator it = requests_.begin(); |
- it != requests_.end(); ++it) { |
- if ((*it)->is_verified() && (*it)->extension_id() == extension_id) { |
- tab_capture::CaptureInfo info; |
- (*it)->GetCaptureInfo(&info); |
- list_of_capture_info->Append(info.ToValue().release()); |
- } |
+ for (const LiveRequest* request : requests_) { |
+ if (request->is_anonymous() || !request->is_verified() || |
+ request->extension_id() != extension_id) |
+ continue; |
+ tab_capture::CaptureInfo info; |
+ request->GetCaptureInfo(&info); |
+ list_of_capture_info->Append(info.ToValue().release()); |
} |
} |
@@ -190,7 +196,8 @@ void TabCaptureRegistry::OnExtensionUnloaded( |
} |
bool TabCaptureRegistry::AddRequest(content::WebContents* target_contents, |
- const std::string& extension_id) { |
+ const std::string& extension_id, |
+ bool is_anonymous) { |
LiveRequest* const request = FindRequest(target_contents); |
// Currently, we do not allow multiple active captures for same tab. |
@@ -204,7 +211,8 @@ bool TabCaptureRegistry::AddRequest(content::WebContents* target_contents, |
} |
} |
- requests_.push_back(new LiveRequest(target_contents, extension_id, this)); |
+ requests_.push_back( |
+ new LiveRequest(target_contents, extension_id, is_anonymous, this)); |
return true; |
} |
@@ -305,6 +313,9 @@ void TabCaptureRegistry::OnRequestUpdate( |
void TabCaptureRegistry::DispatchStatusChangeEvent( |
const LiveRequest* request) const { |
+ if (request->is_anonymous()) |
+ return; |
+ |
EventRouter* router = EventRouter::Get(browser_context_); |
if (!router) |
return; |