]> git.sesse.net Git - casparcg/blobdiff - dependencies64/cef/windows/tests/cefclient/browser/root_window.h
Upgrade CEF to 3.3029.1611.g44e39a8 / Chromium 58.0.3029.81.
[casparcg] / dependencies64 / cef / windows / tests / cefclient / browser / root_window.h
diff --git a/dependencies64/cef/windows/tests/cefclient/browser/root_window.h b/dependencies64/cef/windows/tests/cefclient/browser/root_window.h
new file mode 100644 (file)
index 0000000..fee654c
--- /dev/null
@@ -0,0 +1,134 @@
+// Copyright (c) 2015 The Chromium Embedded Framework 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 CEF_TESTS_CEFCLIENT_BROWSER_ROOT_WINDOW_H_
+#define CEF_TESTS_CEFCLIENT_BROWSER_ROOT_WINDOW_H_
+#pragma once
+
+#include <string>
+
+#include "include/base/cef_ref_counted.h"
+#include "include/cef_browser.h"
+#include "tests/cefclient/browser/client_types.h"
+#include "tests/shared/browser/main_message_loop.h"
+
+namespace client {
+
+// Represents a top-level native window in the browser process. While references
+// to this object are thread-safe the methods must be called on the main thread
+// unless otherwise indicated.
+class RootWindow :
+    public base::RefCountedThreadSafe<RootWindow, DeleteOnMainThread> {
+ public:
+  // This interface is implemented by the owner of the RootWindow. The methods
+  // of this class will be called on the main thread.
+  class Delegate {
+   public:
+    // Called to retrieve the CefRequestContext for browser. Only called for
+    // non-popup browsers. May return NULL.
+    virtual CefRefPtr<CefRequestContext> GetRequestContext(
+        RootWindow* root_window) = 0;
+
+    // Returns the default window icon.
+    virtual CefRefPtr<CefImage> GetDefaultWindowIcon() = 0;
+
+    // Called to execute a test. See resource.h for |test_id| values.
+    virtual void OnTest(RootWindow* root_window, int test_id) = 0;
+
+    // Called to exit the application.
+    virtual void OnExit(RootWindow* root_window) = 0;
+
+    // Called when the RootWindow has been destroyed.
+    virtual void OnRootWindowDestroyed(RootWindow* root_window) = 0;
+
+   protected:
+    virtual ~Delegate() {}
+  };
+
+  // Create a new RootWindow object. This method may be called on any thread.
+  // Use RootWindowManager::CreateRootWindow() or CreateRootWindowAsPopup()
+  // instead of calling this method directly. |use_views| will be true if the
+  // Views framework should be used.
+  static scoped_refptr<RootWindow> Create(bool use_views);
+
+  // Returns the RootWindow associated with the specified |browser_id|. Must be
+  // called on the main thread.
+  static scoped_refptr<RootWindow> GetForBrowser(int browser_id);
+
+#if defined(OS_MACOSX)
+  // Returns the RootWindow associated with the specified |window|. Must be
+  // called on the main thread.
+  static scoped_refptr<RootWindow> GetForNSWindow(NSWindow* window);
+#endif
+
+  // Initialize as a normal window. This will create and show a native window
+  // hosting a single browser instance. This method may be called on any thread.
+  // |delegate| must be non-NULL and outlive this object.
+  // Use RootWindowManager::CreateRootWindow() instead of calling this method
+  // directly.
+  virtual void Init(RootWindow::Delegate* delegate,
+                    bool with_controls,
+                    bool with_osr,
+                    const CefRect& bounds,
+                    const CefBrowserSettings& settings,
+                    const std::string& url) = 0;
+
+  // Initialize as a popup window. This is used to attach a new native window to
+  // a single browser instance that will be created later. The native window
+  // will be created and shown once the browser is available. This method may be
+  // called on any thread. |delegate| must be non-NULL and outlive this object.
+  // Use RootWindowManager::CreateRootWindowAsPopup() instead of calling this
+  // method directly.
+  virtual void InitAsPopup(RootWindow::Delegate* delegate,
+                           bool with_controls,
+                           bool with_osr,
+                           const CefPopupFeatures& popupFeatures,
+                           CefWindowInfo& windowInfo,
+                           CefRefPtr<CefClient>& client,
+                           CefBrowserSettings& settings) = 0;
+
+  enum ShowMode {
+    ShowNormal,
+    ShowMinimized,
+    ShowMaximized,
+  };
+
+  // Show the window.
+  virtual void Show(ShowMode mode) = 0;
+
+  // Hide the window.
+  virtual void Hide() = 0;
+
+  // Set the window bounds in screen coordinates.
+  virtual void SetBounds(int x, int y, size_t width, size_t height) = 0;
+
+  // Close the window. If |force| is true onunload handlers will not be
+  // executed.
+  virtual void Close(bool force) = 0;
+
+  // Set the device scale factor. Only used in combination with off-screen
+  // rendering.
+  virtual void SetDeviceScaleFactor(float device_scale_factor) = 0;
+
+  // Returns the device scale factor. Only used in combination with off-screen
+  // rendering.
+  virtual float GetDeviceScaleFactor() const = 0;
+
+  // Returns the browser that this window contains, if any.
+  virtual CefRefPtr<CefBrowser> GetBrowser() const = 0;
+
+  // Returns the native handle for this window, if any.
+  virtual ClientWindowHandle GetWindowHandle() const = 0;
+
+ protected:
+  // Allow deletion via scoped_refptr only.
+  friend struct DeleteOnMainThread;
+  friend class base::RefCountedThreadSafe<RootWindow, DeleteOnMainThread>;
+
+  virtual ~RootWindow() {}
+};
+
+}  // namespace client
+
+#endif  // CEF_TESTS_CEFCLIENT_BROWSER_ROOT_WINDOW_H_