1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#ifndef CHROME_BROWSER_SEARCH_CONTEXTUAL_SEARCH_PROMO_SOURCE_ANDROID_H_
66e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#define CHROME_BROWSER_SEARCH_CONTEXTUAL_SEARCH_PROMO_SOURCE_ANDROID_H_
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/basictypes.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/compiler_specific.h"
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "content/public/browser/url_data_source.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Serves HTML for displaying the contextual search first-run promo.
136e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class ContextualSearchPromoSourceAndroid : public content::URLDataSource {
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public:
156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  ContextualSearchPromoSourceAndroid();
166e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual ~ContextualSearchPromoSourceAndroid();
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch protected:
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // Overridden from content::URLDataSource:
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void StartDataRequest(
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& path_and_query,
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      int render_process_id,
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      int render_frame_id,
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const content::URLDataSource::GotDataCallback& callback) OVERRIDE;
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual std::string GetSource() const OVERRIDE;
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual std::string GetMimeType(
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& path_and_query) const OVERRIDE;
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual bool ShouldDenyXFrameOptions() const OVERRIDE;
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual bool ShouldAddContentSecurityPolicy() const OVERRIDE;
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // Sends unmodified resource bytes.
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void SendResource(
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      int resource_id,
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const content::URLDataSource::GotDataCallback& callback);
35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  // Sends the config JS resource.
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  void SendConfigResource(
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const content::URLDataSource::GotDataCallback& callback);
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // Sends HTML with localized strings.
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void SendHtmlWithStrings(
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const content::URLDataSource::GotDataCallback& callback);
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private:
456e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ContextualSearchPromoSourceAndroid);
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch};
47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
486e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#endif  // CHROME_BROWSER_SEARCH_CONTEXTUAL_SEARCH_PROMO_SOURCE_ANDROID_H_
49