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_COMMON_EXTENSIONS_EXTENSION_PROCESS_POLICY_H_
6#define CHROME_COMMON_EXTENSIONS_EXTENSION_PROCESS_POLICY_H_
7
8class ExtensionSet;
9class GURL;
10
11namespace extensions {
12
13class Extension;
14
15// Returns the extension for the given URL.  Excludes extension objects for
16// bookmark apps, which do not use the app process model.
17const Extension* GetNonBookmarkAppExtension(const ExtensionSet& extensions,
18                                            const GURL& url);
19
20// Check if navigating a toplevel page from |old_url| to |new_url| would cross
21// an extension process boundary (e.g. navigating from a web URL into an
22// extension URL).
23// We temporarily consider a workaround where we will keep non-app URLs in
24// an app process, but only if |should_consider_workaround| is true.  See
25// http://crbug.com/59285.
26bool CrossesExtensionProcessBoundary(
27    const ExtensionSet& extensions,
28    const GURL& old_url,
29    const GURL& new_url,
30    bool should_consider_workaround);
31
32}  // namespace extensions
33
34#endif  // CHROME_COMMON_EXTENSIONS_EXTENSION_PROCESS_POLICY_H_
35