Home | History | Annotate | Download | only in test_runner
      1 // Copyright 2014 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 CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_PERMISSIONS_H_
      6 #define CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_PERMISSIONS_H_
      7 
      8 #include "base/macros.h"
      9 #include "third_party/WebKit/public/web/WebPermissionClient.h"
     10 
     11 namespace content {
     12 
     13 class WebTestDelegate;
     14 
     15 class WebPermissions : public blink::WebPermissionClient {
     16  public:
     17   WebPermissions();
     18   virtual ~WebPermissions();
     19 
     20   // blink::WebPermissionClient:
     21   virtual bool allowImage(bool enabledPerSettings,
     22                           const blink::WebURL& imageURL);
     23   virtual bool allowMedia(const blink::WebURL& mediaURL);
     24   virtual bool allowScriptFromSource(bool enabledPerSettings,
     25                                      const blink::WebURL& scriptURL);
     26   virtual bool allowStorage(bool local);
     27   virtual bool allowPlugins(bool enabledPerSettings);
     28   virtual bool allowDisplayingInsecureContent(bool enabledPerSettings,
     29                                               const blink::WebSecurityOrigin&,
     30                                               const blink::WebURL&);
     31   virtual bool allowRunningInsecureContent(bool enabledPerSettings,
     32                                            const blink::WebSecurityOrigin&,
     33                                            const blink::WebURL&);
     34 
     35   // Hooks to set the different policies.
     36   void SetImagesAllowed(bool);
     37   void SetMediaAllowed(bool);
     38   void SetScriptsAllowed(bool);
     39   void SetStorageAllowed(bool);
     40   void SetPluginsAllowed(bool);
     41   void SetDisplayingInsecureContentAllowed(bool);
     42   void SetRunningInsecureContentAllowed(bool);
     43 
     44   void SetDelegate(WebTestDelegate*);
     45   void SetDumpCallbacks(bool);
     46 
     47   // Resets the policy to allow everything, except for running insecure content.
     48   void Reset();
     49 
     50  private:
     51   WebTestDelegate* delegate_;
     52   bool dump_callbacks_;
     53 
     54   bool images_allowed_;
     55   bool media_allowed_;
     56   bool scripts_allowed_;
     57   bool storage_allowed_;
     58   bool plugins_allowed_;
     59   bool displaying_insecure_content_allowed_;
     60   bool running_insecure_content_allowed_;
     61 
     62   DISALLOW_COPY_AND_ASSIGN(WebPermissions);
     63 };
     64 
     65 }  // namespace content
     66 
     67 #endif  // CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_PERMISSIONS_H_
     68