19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.dumprendertree;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface LayoutTestController {
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void dumpAsText(boolean enablePixelTests);
22357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void dumpChildFramesAsText();
23357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void waitUntilDone();
24357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void notifyDone();
25357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch
26357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    // Force a redraw of the page
27357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void display();
28357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    // Used with pixel dumps of content
29357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void testRepaint();
30357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch
31357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    // If the page title changes, add the information to the output.
32357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void dumpTitleChanges();
33357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void dumpBackForwardList();
34357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void dumpChildFrameScrollPositions();
35357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void dumpEditingCallbacks();
36357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch
37357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    // Show/Hide window for window.onBlur() testing
38357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void setWindowIsKey(boolean b);
39357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    // Mac function, used to disable events going to the window
40357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void setMainFrameIsFirstResponder(boolean b);
41357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch
42357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    public void dumpSelectionRect();
43357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch
44357d280a25a978a2ea0c1b89f6a7c7f385630b98Ben Murdoch    // invalidate and draw one line at a time of the web view.
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void repaintSweepHorizontally();
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // History testing functions
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void keepWebHistory();
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void clearBackForwardList();
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // navigate after page load has finished
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void queueBackNavigation(int howfar);
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void queueForwardNavigation(int howfar);
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // Reload when the page load has finished
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void queueReload();
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // Execute the provided script in current context when page load has finished.
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void queueScript(String scriptToRunInCurrentContext);
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // Load the provided URL into the provided frame
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void queueLoad(String Url, String frameTarget);
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setAcceptsEditing(boolean b);
62e6f3e45dc4d8a2b482183c57c61dd9ea22505c85Ben Murdoch
63e6f3e45dc4d8a2b482183c57c61dd9ea22505c85Ben Murdoch    // For storage tests
64e6f3e45dc4d8a2b482183c57c61dd9ea22505c85Ben Murdoch    public void dumpDatabaseCallbacks();
65e6f3e45dc4d8a2b482183c57c61dd9ea22505c85Ben Murdoch    public void setCanOpenWindows();
66dad347c8b83aeb49eafae68774b7bfb59c956977Steve Block
67dad347c8b83aeb49eafae68774b7bfb59c956977Steve Block    // For Geolocation tests
68dad347c8b83aeb49eafae68774b7bfb59c956977Steve Block    public void setGeolocationPermission(boolean allow);
69fb0de34a47a435b57075d7a72cbc40a2daf5ee6cSteve Block
70fb0de34a47a435b57075d7a72cbc40a2daf5ee6cSteve Block    public void overridePreference(String key, boolean value);
715dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter
725dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter    // For XSSAuditor tests
735dc0c8253b368239a90d7176ff6325ae5ba371b3Elliott Slaughter    public void setXSSAuditorEnabled(boolean flag);
7468dede3d6664d91302d727531d13f7f5862d3a50Steve Block
75f3f60d9328d8acfedf987a73631fc90c39bf5447Steve Block    // For Geolocation tests
76f3f60d9328d8acfedf987a73631fc90c39bf5447Steve Block    public void setMockGeolocationPosition(double latitude, double longitude, double accuracy);
77f3f60d9328d8acfedf987a73631fc90c39bf5447Steve Block    public void setMockGeolocationError(int code, String message);
78f3f60d9328d8acfedf987a73631fc90c39bf5447Steve Block
7968dede3d6664d91302d727531d13f7f5862d3a50Steve Block    // For DeviceOrientation tests
8068dede3d6664d91302d727531d13f7f5862d3a50Steve Block    public void setMockDeviceOrientation(boolean canProvideAlpha, double alpha,
8168dede3d6664d91302d727531d13f7f5862d3a50Steve Block            boolean canProvideBeta, double beta, boolean canProvideGamma, double gamma);
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
83