@@ -37,7 +37,9 @@ const char kWindowIdKey[] = "windowId";
37
37
const char kTitleKey [] = " title" ;
38
38
const char kUrlKey [] = " url" ;
39
39
const char kStatusKey [] = " status" ;
40
- }
40
+ const char kAudibleKey [] = " audible" ;
41
+ const char kMutedKey [] = " muted" ;
42
+ } // namespace keys
41
43
42
44
static std::map<int , std::pair<int , int >> render_view_map_;
43
45
static std::map<int , int > active_tab_map_;
@@ -47,6 +49,7 @@ namespace extensions {
47
49
48
50
TabHelper::TabHelper (content::WebContents* contents)
49
51
: content::WebContentsObserver(contents),
52
+ values_ (new base::DictionaryValue),
50
53
script_executor_(
51
54
new ScriptExecutor(contents, &script_execution_observers_)) {
52
55
session_id_ = next_id++;
@@ -75,6 +78,10 @@ void TabHelper::SetActive(bool active) {
75
78
active_tab_map_[window_id_] = -1 ;
76
79
}
77
80
81
+ void TabHelper::SetTabValues (const base::DictionaryValue& values) {
82
+ values_->MergeDictionary (&values);
83
+ }
84
+
78
85
void TabHelper::RenderViewCreated (content::RenderViewHost* render_view_host) {
79
86
render_view_map_[session_id_] = std::make_pair (
80
87
render_view_host->GetProcess ()->GetID (),
@@ -264,8 +271,10 @@ base::DictionaryValue* TabHelper::CreateTabValue(
264
271
content::WebContents* contents) {
265
272
auto tab_id = IdForTab (contents);
266
273
auto window_id = IdForWindowContainingTab (contents);
274
+ auto tab_helper = TabHelper::FromWebContents (contents);
267
275
268
- std::unique_ptr<base::DictionaryValue> result (new base::DictionaryValue);
276
+ std::unique_ptr<base::DictionaryValue> result (
277
+ tab_helper->getTabValues ()->CreateDeepCopy ());
269
278
270
279
result->SetInteger (keys::kIdKey , tab_id);
271
280
result->SetInteger (keys::kTabIdKey , tab_id);
@@ -277,6 +286,8 @@ base::DictionaryValue* TabHelper::CreateTabValue(
277
286
result->SetString (keys::kTitleKey , contents->GetTitle ());
278
287
result->SetString (keys::kStatusKey , contents->IsLoading ()
279
288
? " loading" : " complete" );
289
+ result->SetBoolean (keys::kAudibleKey , contents->WasRecentlyAudible ());
290
+ result->SetBoolean (keys::kMutedKey , contents->IsAudioMuted ());
280
291
return result.release ();
281
292
}
282
293
0 commit comments