Implement the basic declarativeContent API.

This CL includes the top_url and css conditions and the ShowPageAction
action.  CSS matching is implemented inefficiently using a
MutationObserver, but I plan to push that into WebKit before releasing
this to stable.

BUG=172011

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179051 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/tab_helper.h b/chrome/browser/extensions/tab_helper.h
index 8e3e00e..539871f 100644
--- a/chrome/browser/extensions/tab_helper.h
+++ b/chrome/browser/extensions/tab_helper.h
@@ -7,6 +7,8 @@
 
 #include <map>
 #include <string>
+#include <vector>
+
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
@@ -30,6 +32,7 @@
 namespace extensions {
 class Extension;
 class LocationBarController;
+class RulesRegistryService;
 class ScriptBadgeController;
 class ScriptBubbleController;
 class ScriptExecutor;
@@ -192,6 +195,7 @@
       const ScriptExecutionObserver::ExecutingScriptsMap& extension_ids,
       int32 page_id,
       const GURL& on_url);
+  void OnWatchedPageChange(const std::vector<std::string>& css_selectors);
 
   // App extensions related methods:
 
@@ -259,6 +263,8 @@
 
   scoped_ptr<ScriptBubbleController> script_bubble_controller_;
 
+  RulesRegistryService* rules_registry_service_;
+
   Profile* profile_;
 
   // Vend weak pointers that can be invalidated to stop in-progress loads.