Add audible, muted to Tab, c.t.query, c.t.update, and c.t.onUpdated where relevant
chrome.tabs.update will reject the audible property.
When the onUpdated event is triggered for the muted property, it sets cause
to "user", "capture", or the extension id that caused it
Note: Requires --enable-tab-audio-muting flag to be active (chrome://flags) in order to set a tab's muted state via c.t.update.
BUG=438903
Review URL: https://codereview.chromium.org/987583004
Cr-Commit-Position: refs/heads/master@{#337981}
diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc
index f1783f7..0298cb0 100644
--- a/chrome/browser/extensions/extension_tab_util.cc
+++ b/chrome/browser/extensions/extension_tab_util.cc
@@ -22,6 +22,7 @@
#include "chrome/browser/ui/singleton_tabs.h"
#include "chrome/browser/ui/tab_contents/tab_contents_iterator.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/tabs/tab_utils.h"
#include "chrome/common/extensions/api/tabs.h"
#include "chrome/common/url_constants.h"
#include "components/url_fixer/url_fixer.h"
@@ -386,6 +387,12 @@
tab_strip && tab_strip->IsTabSelected(tab_index));
result->SetBoolean(keys::kPinnedKey,
tab_strip && tab_strip->IsTabPinned(tab_index));
+ result->SetBoolean(keys::kAudibleKey,
+ tab_strip && chrome::IsPlayingAudio(contents));
+ result->SetBoolean(keys::kMutedKey,
+ tab_strip && chrome::IsTabAudioMuted(contents));
+ result->SetString(keys::kMutedCauseKey,
+ chrome::GetTabAudioMutedCause(contents));
result->SetBoolean(keys::kIncognitoKey,
contents->GetBrowserContext()->IsOffTheRecord());
result->SetInteger(keys::kWidthKey,