| Index: ios/public/provider/web/web_controller_provider.h
|
| diff --git a/ios/public/provider/web/web_controller_provider.h b/ios/public/provider/web/web_controller_provider.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4d9f81ba800fa2e14156eb7ef779d915049ef4a6
|
| --- /dev/null
|
| +++ b/ios/public/provider/web/web_controller_provider.h
|
| @@ -0,0 +1,67 @@
|
| +// Copyright 2015 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 IOS_PUBLIC_PROVIDER_WEB_WEB_CONTROLLER_PROVIDER_H_
|
| +#define IOS_PUBLIC_PROVIDER_WEB_WEB_CONTROLLER_PROVIDER_H_
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "ios/web/public/block_types.h"
|
| +#include "ios/web/public/web_state/web_state_observer.h"
|
| +#include "url/gurl.h"
|
| +
|
| +namespace web {
|
| +class BrowserState;
|
| +class WebState;
|
| +}
|
| +
|
| +namespace ios {
|
| +
|
| +class WebControllerProviderFactory;
|
| +
|
| +// Setter and getter for the provider factory. The provider factory should be
|
| +// set early, before any component using WebControllerProviders is called.
|
| +void SetWebControllerProviderFactory(
|
| + WebControllerProviderFactory* provider_factory);
|
| +WebControllerProviderFactory* GetWebControllerProviderFactory();
|
| +
|
| +// Interface that provides URL-loading and JavaScript injection with optional
|
| +// dialog suppression.
|
| +class WebControllerProvider {
|
| + public:
|
| + // Constructor for a WebControllerProvider backed by a CRWWebController
|
| + // initialized with |browser_state|.
|
| + explicit WebControllerProvider(web::BrowserState* browser_state);
|
| + virtual ~WebControllerProvider();
|
| +
|
| + // Determines whether JavaScript dialogs are allowed.
|
| + virtual bool SuppressesDialogs() const;
|
| + virtual void SetSuppressesDialogs(bool should_suppress_dialogs) {}
|
| +
|
| + // Triggers a load of |url|.
|
| + virtual void LoadURL(const GURL& url) {}
|
| +
|
| + // Returns the WebState associated with this web controller.
|
| + virtual web::WebState* GetWebState() const;
|
| +
|
| + // Injects |script| into the previously loaded page, if any, and calls
|
| + // |completion| with the result. Calls |completion| with nil parameters
|
| + // when there is no previously loaded page.
|
| + virtual void InjectScript(const std::string& script,
|
| + web::JavaScriptCompletion completion);
|
| +};
|
| +
|
| +class WebControllerProviderFactory {
|
| + public:
|
| + WebControllerProviderFactory();
|
| + virtual ~WebControllerProviderFactory();
|
| +
|
| + // Vends WebControllerProviders created using |browser_state|, passing
|
| + // ownership to callers.
|
| + virtual scoped_ptr<WebControllerProvider> CreateWebControllerProvider(
|
| + web::BrowserState* browser_state);
|
| +};
|
| +
|
| +} // namespace ios
|
| +
|
| +#endif // IOS_PUBLIC_PROVIDER_WEB_WEB_CONTROLLER_PROVIDER_H_
|
|
|