text: // Copyright 2014 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #include "extensions/common/ad_injection_constants.h"
  
  #include "base/strings/string_util.h"
  
  namespace extensions {
  namespace ad_injection_constants {
  
  namespace keys {
  
  const char kType[] = "type";
  const char kChildren[] = "children";
  const char kSrc[] = "src";
  const char kHref[] = "href";
  
  }  // namespace keys
  
  const char kHtmlIframeSrcApiName[] = "HTMLIFrameElement.src";
  const char kHtmlEmbedSrcApiName[] = "HTMLEmbedElement.src";
  const char kHtmlAnchorHrefApiName[] = "HTMLAnchorElement.href";
  const char kAppendChildApiSuffix[] = "appendChild";
  
  // The maximum number of children to check when we examine a newly-added
  // element.
  extern const size_t kMaximumChildrenToCheck = 10u;
  
  // The maximum depth to check when we examine a newly-added element.
  extern const size_t kMaximumDepthToCheck = 5u;
  
  bool ApiCanInjectAds(const std::string& api) {
    return api == kHtmlIframeSrcApiName ||
           api == kHtmlEmbedSrcApiName ||
           api == kHtmlAnchorHrefApiName ||
           EndsWith(api, kAppendChildApiSuffix, true /* case sensitive */);
  }
  
  }  // namespace ad_injection_constants
  }  // namespace extensions
  