Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: sky/engine/public/web/WebWidget.h

Issue 770223002: Remove lots of code from the WebWidget/WebView/WebFrame layer. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sky/engine/public/web/WebWidget.h
diff --git a/sky/engine/public/web/WebWidget.h b/sky/engine/public/web/WebWidget.h
index 50ba10af3965213e61ff1e6a2d5bf12e39433d82..5305109a2f71fadb45aaeee9ebcb8ecb7eb01dc1 100644
--- a/sky/engine/public/web/WebWidget.h
+++ b/sky/engine/public/web/WebWidget.h
@@ -54,49 +54,19 @@ template <typename T> class WebVector;
class WebWidget {
public:
// This method closes and deletes the WebWidget.
- virtual void close() { }
+ virtual void close() = 0;
// Returns the current size of the WebWidget.
- virtual WebSize size() { return WebSize(); }
-
- // Used to group a series of resize events. For example, if the user
- // drags a resizer then willStartLiveResize will be called, followed by a
- // sequence of resize events, ending with willEndLiveResize when the user
- // lets go of the resizer.
- virtual void willStartLiveResize() { }
+ virtual WebSize size() = 0;
// Called to resize the WebWidget.
- virtual void resize(const WebSize&) { }
-
- // Ends a group of resize events that was started with a call to
- // willStartLiveResize.
- virtual void willEndLiveResize() { }
-
- // Called to notify the WebWidget of entering/exiting fullscreen mode. The
- // resize method may be called between will{Enter,Exit}FullScreen and
- // did{Enter,Exit}FullScreen.
- virtual void willEnterFullScreen() { }
- virtual void didEnterFullScreen() { }
- virtual void willExitFullScreen() { }
- virtual void didExitFullScreen() { }
-
- // Called to update imperative animation state. This should be called before
- // paint, although the client can rate-limit these calls.
- // FIXME: Remove this function once Chrome side patch lands.
- void animate(double monotonicFrameBeginTime)
- {
- beginFrame(WebBeginFrameArgs(monotonicFrameBeginTime));
- }
- virtual void beginFrame(const WebBeginFrameArgs& frameTime) { }
-
- // Called to notify that a previously begun frame was finished and
- // committed to the compositor. This is used to schedule lower priority
- // work after tasks such as input processing and painting.
- virtual void didCommitFrameToCompositor() { }
+ virtual void resize(const WebSize&) = 0;
+
+ virtual void beginFrame(const WebBeginFrameArgs& frameTime) = 0;
// Called to layout the WebWidget. This MUST be called before Paint,
// and it may result in calls to WebWidgetClient::didInvalidateRect.
- virtual void layout() { }
+ virtual void layout() = 0;
// Called to paint the rectangular region within the WebWidget
// onto the specified canvas at (viewPort.x,viewPort.y). You MUST call
@@ -105,32 +75,23 @@ public:
// changes are made to the WebWidget (e.g., once events are
// processed, it should be assumed that another call to layout is
// warranted before painting again).
- virtual void paint(WebCanvas*, const WebRect& viewPort) { }
+ virtual void paint(WebCanvas*, const WebRect& viewPort) = 0;
// Returns true if we've started tracking repaint rectangles.
- virtual bool isTrackingRepaints() const { return false; }
-
- // Indicates that the compositing surface associated with this WebWidget is
- // ready to use.
- virtual void setCompositorSurfaceReady() { }
-
- // Called to inform the WebWidget of a change in theme.
- // Implementors that cache rendered copies of widgets need to re-render
- // on receiving this message
- virtual void themeChanged() { }
+ virtual bool isTrackingRepaints() const = 0;
// Called to inform the WebWidget of an input event. Returns true if
// the event has been processed, false otherwise.
- virtual bool handleInputEvent(const WebInputEvent&) { return false; }
+ virtual bool handleInputEvent(const WebInputEvent&) = 0;
// Called to inform the WebWidget of the mouse cursor's visibility.
- virtual void setCursorVisibilityState(bool isVisible) { }
+ virtual void setCursorVisibilityState(bool isVisible) = 0;
// Called to inform the WebWidget that mouse capture was lost.
- virtual void mouseCaptureLost() { }
+ virtual void mouseCaptureLost() = 0;
// Called to inform the WebWidget that it has gained or lost keyboard focus.
- virtual void setFocus(bool) { }
+ virtual void setFocus(bool) = 0;
// Called to inform the WebWidget of a new composition text.
// If selectionStart and selectionEnd has the same value, then it indicates
@@ -141,7 +102,7 @@ public:
const WebString& text,
const WebVector<WebCompositionUnderline>& underlines,
int selectionStart,
- int selectionEnd) { return false; }
+ int selectionEnd) = 0;
enum ConfirmCompositionBehavior {
DoNotKeepSelection,
@@ -151,8 +112,8 @@ public:
// Called to inform the WebWidget to confirm an ongoing composition.
// This method is same as confirmComposition(WebString());
// Returns true if there is an ongoing composition.
- virtual bool confirmComposition() { return false; } // Deprecated
- virtual bool confirmComposition(ConfirmCompositionBehavior selectionBehavior) { return false; }
+ virtual bool confirmComposition() = 0; // Deprecated
+ virtual bool confirmComposition(ConfirmCompositionBehavior selectionBehavior) = 0;
// Called to inform the WebWidget to confirm an ongoing composition with a
// new composition text. If the text is empty then the current composition
@@ -160,57 +121,26 @@ public:
// current selection and inserts the text. This method has no effect if
// there is no ongoing composition and the text is empty.
// Returns true if there is an ongoing composition or the text is inserted.
- virtual bool confirmComposition(const WebString& text) { return false; }
+ virtual bool confirmComposition(const WebString& text) = 0;
// Fetches the character range of the current composition, also called the
// "marked range." Returns true and fills the out-paramters on success;
// returns false on failure.
- virtual bool compositionRange(size_t* location, size_t* length) { return false; }
+ virtual bool compositionRange(size_t* location, size_t* length) = 0;
// Returns information about the current text input of this WebWidget.
- virtual WebTextInputInfo textInputInfo() { return WebTextInputInfo(); }
-
- // Returns the anchor and focus bounds of the current selection.
- // If the selection range is empty, it returns the caret bounds.
- virtual bool selectionBounds(WebRect& anchor, WebRect& focus) const { return false; }
+ virtual WebTextInputInfo textInputInfo() = 0;
// Called to notify that IME candidate window has changed its visibility or
// its appearance. These calls correspond to trigger
// candidatewindow{show,update,hide} events defined in W3C IME API.
- virtual void didShowCandidateWindow() { }
- virtual void didUpdateCandidateWindow() { }
- virtual void didHideCandidateWindow() { }
-
- // Returns the text direction at the start and end bounds of the current selection.
- // If the selection range is empty, it returns false.
- virtual bool selectionTextDirection(WebTextDirection& start, WebTextDirection& end) const { return false; }
-
- // Returns true if the selection range is nonempty and its anchor is first
- // (i.e its anchor is its start).
- virtual bool isSelectionAnchorFirst() const { return false; }
-
- // Fetch the current selection range of this WebWidget. If there is no
- // selection, it will output a 0-length range with the location at the
- // caret. Returns true and fills the out-paramters on success; returns false
- // on failure.
- virtual bool caretOrSelectionRange(size_t* location, size_t* length) { return false; }
-
- // Changes the text direction of the selected input node.
- virtual void setTextDirection(WebTextDirection) { }
-
- // Calling WebWidgetClient::requestPointerLock() will result in one
- // return call to didAcquirePointerLock() or didNotAcquirePointerLock().
- virtual void didAcquirePointerLock() { }
- virtual void didNotAcquirePointerLock() { }
-
- // Pointer lock was held, but has been lost. This may be due to a
- // request via WebWidgetClient::requestPointerUnlock(), or for other
- // reasons such as the user exiting lock, window focus changing, etc.
- virtual void didLosePointerLock() { }
+ virtual void didShowCandidateWindow() = 0;
+ virtual void didUpdateCandidateWindow() = 0;
+ virtual void didHideCandidateWindow() = 0;
// The page background color. Can be used for filling in areas without
// content.
- virtual WebColor backgroundColor() const { return 0xFFFFFFFF; /* SK_ColorWHITE */ }
+ virtual WebColor backgroundColor() const = 0;
protected:
~WebWidget() { }

Powered by Google App Engine
This is Rietveld 408576698