Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / web_navigation / web_navigation_api_helpers.h
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_WEB_NAVIGATION_WEB_NAVIGATION_API_HELPERS_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_WEB_NAVIGATION_WEB_NAVIGATION_API_HELPERS_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11 #include "ui/base/page_transition_types.h"
12
13 namespace content {
14 class BrowserContext;
15 class RenderFrameHost;
16 class WebContents;
17 }
18
19 class GURL;
20
21 namespace extensions {
22
23 namespace web_navigation_api_helpers {
24
25 // Returns the frame ID as it will be passed to the extension:
26 // 0 if the navigation happens in the main frame, or the frame routing ID
27 // otherwise.
28 int GetFrameId(content::RenderFrameHost* frame_host);
29
30 // Create and dispatch the various events of the webNavigation API.
31 void DispatchOnBeforeNavigate(content::WebContents* web_contents,
32                               content::RenderFrameHost* frame_host,
33                               const GURL& validated_url);
34
35 void DispatchOnCommitted(const std::string& event_name,
36                          content::WebContents* web_contents,
37                          content::RenderFrameHost* frame_host,
38                          const GURL& url,
39                          ui::PageTransition transition_type);
40
41 void DispatchOnDOMContentLoaded(content::WebContents* web_contents,
42                                 content::RenderFrameHost* frame_host,
43                                 const GURL& url);
44
45 void DispatchOnCompleted(content::WebContents* web_contents,
46                          content::RenderFrameHost* frame_host,
47                          const GURL& url);
48
49 void DispatchOnCreatedNavigationTarget(
50     content::WebContents* web_contents,
51     content::BrowserContext* browser_context,
52     content::RenderFrameHost* source_frame_host,
53     content::WebContents* target_web_contents,
54     const GURL& target_url);
55
56 void DispatchOnErrorOccurred(content::WebContents* web_contents,
57                              content::RenderFrameHost* frame_host,
58                              const GURL& url,
59                              int error_code);
60
61 void DispatchOnTabReplaced(
62     content::WebContents* old_web_contents,
63     content::BrowserContext* browser_context,
64     content::WebContents* new_web_contents);
65
66 }  // namespace web_navigation_api_helpers
67
68 }  // namespace extensions
69
70 #endif  // CHROME_BROWSER_EXTENSIONS_API_WEB_NAVIGATION_WEB_NAVIGATION_API_HELPERS_H_