Introduce an "ExtensionWantsToAct" method

Add an ExtensionWantsToAct() method on ExtensionActionAPI.
Even though we're not quite sure what we want the UI to look
like for an extension desiring to act, we can start a little
bit of the plumbing now. For instance, exposing a method that
allows a caller to check if an extension wants to act on a
given page.

BUG=417441

Review URL: https://codereview.chromium.org/597413003

Cr-Commit-Position: refs/heads/master@{#297309}
diff --git a/chrome/browser/extensions/active_script_controller.h b/chrome/browser/extensions/active_script_controller.h
index fe6f3cb..95133f2 100644
--- a/chrome/browser/extensions/active_script_controller.h
+++ b/chrome/browser/extensions/active_script_controller.h
@@ -19,6 +19,7 @@
 #include "extensions/common/user_script.h"
 
 namespace content {
+class BrowserContext;
 class WebContents;
 }
 
@@ -108,6 +109,10 @@
   // Grants permission for the given request to run.
   void PermitScriptInjection(int64 request_id);
 
+  // Notifies the ExtensionActionAPI of a change (either that an extension now
+  // wants permission to run, or that it has been run).
+  void NotifyChange(const Extension* extension);
+
   // Log metrics.
   void LogUMA() const;
 
@@ -123,6 +128,9 @@
       const Extension* extension,
       UnloadedExtensionInfo::Reason reason) OVERRIDE;
 
+  // The associated browser context.
+  content::BrowserContext* browser_context_;
+
   // Whether or not the ActiveScriptController is enabled (corresponding to the
   // kActiveScriptEnforcement switch). If it is not, it acts as an empty shell,
   // always allowing scripts to run and never displaying actions.