C++程序  |  35行  |  1.21 KB

// Copyright (c) 2012 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.

#ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_PROCESS_POLICY_H_
#define CHROME_COMMON_EXTENSIONS_EXTENSION_PROCESS_POLICY_H_

class ExtensionSet;
class GURL;

namespace extensions {

class Extension;

// Returns the extension for the given URL.  Excludes extension objects for
// bookmark apps, which do not use the app process model.
const Extension* GetNonBookmarkAppExtension(const ExtensionSet& extensions,
                                            const GURL& url);

// Check if navigating a toplevel page from |old_url| to |new_url| would cross
// an extension process boundary (e.g. navigating from a web URL into an
// extension URL).
// We temporarily consider a workaround where we will keep non-app URLs in
// an app process, but only if |should_consider_workaround| is true.  See
// http://crbug.com/59285.
bool CrossesExtensionProcessBoundary(
    const ExtensionSet& extensions,
    const GURL& old_url,
    const GURL& new_url,
    bool should_consider_workaround);

}  // namespace extensions

#endif  // CHROME_COMMON_EXTENSIONS_EXTENSION_PROCESS_POLICY_H_