diff options
Diffstat (limited to 'Source/WebKit/blackberry/Api/WebPageClient.h')
| -rw-r--r-- | Source/WebKit/blackberry/Api/WebPageClient.h | 288 |
1 files changed, 288 insertions, 0 deletions
diff --git a/Source/WebKit/blackberry/Api/WebPageClient.h b/Source/WebKit/blackberry/Api/WebPageClient.h new file mode 100644 index 000000000..74b735c77 --- /dev/null +++ b/Source/WebKit/blackberry/Api/WebPageClient.h @@ -0,0 +1,288 @@ +/* + * Copyright (C) 2009, 2010, 2011, 2012 Research In Motion Limited. All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef WebPageClient_h +#define WebPageClient_h + +#include "BlackBerryGlobal.h" +#include "WebString.h" + +#include <BlackBerryPlatformCursor.h> +#include <BlackBerryPlatformInputEvents.h> +#include <BlackBerryPlatformNavigationType.h> +#include <BlackBerryPlatformPrimitives.h> +#include <interaction/ScrollViewBase.h> +#include <vector> + +template<typename T> class ScopeArray; +template<typename T> class SharedArray; + +typedef void* WebFrame; + +namespace BlackBerry { + +namespace Platform { +class FilterStream; +class GeoTrackerListener; +class IntRectRegion; +class NetworkRequest; +class NetworkStreamFactory; + +namespace Graphics { +class Window; +} +} + +namespace WebKit { +class WebPage; + +class BLACKBERRY_EXPORT WebPageClient { +public: + virtual ~WebPageClient() { } + enum WindowStyleFlag { + FlagWindowHasMenuBar = 0x00000001, + FlagWindowHasToolBar = 0x00000002, + FlagWindowHasLocationBar = 0x00000004, + FlagWindowHasStatusBar = 0x00000008, + FlagWindowHasScrollBar = 0x00000010, + FlagWindowIsResizable = 0x00000020, + FlagWindowIsFullScreen = 0x00000040, + FlagWindowIsDialog = 0x00000080, + FlagWindowDefault = 0xFFFFFFFF, + }; + + enum FocusType { + FocusUnknown = 0, + FocusNone, + FocusCanvas, + FocusImage, + FocusInputButton, + FocusInputCheckBox, + FocusInputColor, + FocusInputDate, + FocusInputDateTime, + FocusInputDateTimeLocal, + FocusInputEmail, + FocusInputFile, + FocusInputImage, + FocusInputMonth, + FocusInputNumber, + FocusInputPassword, + FocusInputRadio, + FocusInputRange, + FocusInputReset, + FocusInputSearch, + FocusInputSubmit, + FocusInputTelephone, + FocusInputText, + FocusInputTime, + FocusInputURL, + FocusInputWeek, + FocusInputUnknown, + FocusLink, + FocusObject, + FocusSelect, + FocusSVGElement, + FocusTextArea, + FocusVideo, + }; + + enum AlertType { + MediaOK = 0, + MediaDecodeError, + MediaMetaDataError, + MediaMetaDataTimeoutError, + MediaNoMetaDataError, + MediaVideoReceiveError, + MediaAudioReceiveError, + MediaInvalidError, + }; + + virtual int getInstanceId() const = 0; + + virtual void notifyLoadStarted() = 0; + virtual void notifyLoadCommitted(const unsigned short* originalUrl, unsigned int originalUrlLength, const unsigned short* finalUrl, unsigned int finalUrlLength, const unsigned short* networkToken, unsigned int networkTokenLength) = 0; + virtual void notifyLoadFailedBeforeCommit(const unsigned short* originalUrl, unsigned int originalUrlLength, const unsigned short* finalUrl, unsigned int finalUrlLength, const unsigned short* networkToken, unsigned int networkTokenLength) = 0; + virtual void notifyLoadToAnchor(const unsigned short* url, unsigned int urlLength, const unsigned short* networkToken, unsigned int networkTokenLength) = 0; + virtual void notifyLoadProgress(int percentage) = 0; + virtual void notifyLoadReadyToRender(bool pageIsVisuallyNonEmpty) = 0; + virtual void notifyFirstVisuallyNonEmptyLayout() = 0; + virtual void notifyLoadFinished(int status) = 0; + virtual void notifyClientRedirect(const unsigned short* originalUrl, unsigned int originalUrlLength, const unsigned short* finalUrl, unsigned int finalUrlLength) = 0; + + virtual void notifyFrameDetached(const WebFrame) = 0; + + virtual void notifyRunLayoutTestsFinished() = 0; + + virtual void notifyInRegionScrollingStartingPointChanged(std::vector<Platform::ScrollViewBase>) = 0; + + virtual void notifyDocumentOnLoad() = 0; + + virtual void notifyWindowObjectCleared() = 0; + virtual WebString invokeClientJavaScriptCallback(const char* const* args, unsigned numArgs) = 0; + + virtual void addMessageToConsole(const unsigned short* message, unsigned messageLength, const unsigned short* source, unsigned sourceLength, unsigned lineNumber) = 0; + virtual int showAlertDialog(AlertType) = 0; + + virtual void runJavaScriptAlert(const unsigned short* message, unsigned messageLength, const char* origin, unsigned originLength) = 0; + virtual bool runJavaScriptConfirm(const unsigned short* message, unsigned messageLength, const char* origin, unsigned originLength) = 0; + virtual bool runJavaScriptPrompt(const unsigned short* message, unsigned messageLength, const unsigned short* defaultValue, unsigned defaultValueLength, const char* origin, unsigned originLength, WebString& result) = 0; + + virtual bool shouldInterruptJavaScript() = 0; + + virtual void javascriptSourceParsed(const unsigned short* url, unsigned urlLength, const unsigned short* script, unsigned scriptLength) = 0; + virtual void javascriptParsingFailed(const unsigned short* url, unsigned urlLength, const unsigned short* error, unsigned errorLength, int lineNumber) = 0; + virtual void javascriptPaused(const unsigned short* stack, unsigned stackLength) = 0; + virtual void javascriptContinued() = 0; + + // All of these methods use transformed coordinates. + virtual void contentsSizeChanged(const Platform::IntSize&) const = 0; + virtual void scrollChanged(const Platform::IntPoint&) const = 0; + virtual void zoomChanged(bool isMinZoomed, bool isMaxZoomed, bool isAtInitialZoom, double newZoom) const = 0; + + virtual void setPageTitle(const unsigned short* title, unsigned titleLength) = 0; + + virtual Platform::Graphics::Window* window() const = 0; + + virtual void notifyContentRendered(const Platform::IntRect&) = 0; + virtual void notifyScreenRotated() = 0; + + virtual void drawTapHighlight(const Platform::IntRectRegion&, int red, int green, int blue, int alpha, bool hideAfterScroll) = 0; + virtual void hideTapHighlight() = 0; + + virtual void focusChanged(FocusType, int elementId) = 0; + virtual void inputFocusGained(Platform::BlackBerryInputType, int inputStyle, bool waitForExplicitKeyboardShowCall) = 0; + virtual void inputFocusLost() = 0; + virtual void inputTextChanged() = 0; + virtual void inputSelectionChanged(unsigned selectionStart, unsigned selectionEnd) = 0; + virtual void inputLearnText(wchar_t* text, int length) = 0; + + virtual void showVirtualKeyboard(bool) = 0; + + virtual void checkSpellingOfString(const unsigned short* text, int length, int& misspellingLocation, int& misspellingLength) = 0; + virtual void requestSpellingSuggestionsForString(unsigned start, unsigned end) = 0; + + virtual void notifySelectionDetailsChanged(const Platform::IntRect& start, const Platform::IntRect& end, const Platform::IntRectRegion&) = 0; + virtual void cancelSelectionVisuals() = 0; + virtual void notifySelectionHandlesReversed() = 0; + virtual void notifyCaretChanged(const Platform::IntRect& caret, bool userTouchTriggered) = 0; + + virtual void cursorChanged(Platform::CursorType, const char* url, int x, int y) = 0; + + virtual void requestGeolocationPermission(Platform::GeoTrackerListener*, void* context, const char* origin, unsigned originLength) = 0; + virtual void cancelGeolocationPermission(Platform::GeoTrackerListener*, void* context) = 0; + virtual Platform::NetworkStreamFactory* networkStreamFactory() = 0; + + virtual void handleStringPattern(const unsigned short* pattern, unsigned length) = 0; + virtual void handleExternalLink(const Platform::NetworkRequest&, const unsigned short* context, unsigned contextLength, bool isClientRedirect) = 0; + + virtual void resetBackForwardList(unsigned listSize, unsigned currentIndex) = 0; + + virtual void openPopupList(bool multiple, int size, const ScopeArray<WebString>& labels, bool* enableds, const int* itemType, bool* selecteds) = 0; + virtual void openDateTimePopup(int type, const WebString& value, const WebString& min, const WebString& max, double step) = 0; + virtual void openColorPopup(const WebString& value) = 0; + + virtual bool chooseFilenames(bool allowMultiple, const WebString& acceptTypes, const SharedArray<WebString>& initialFiles, unsigned initialFileSize, SharedArray<WebString>& chosenFiles, unsigned& chosenFileSize) = 0; + + virtual void loadPluginForMimetype(int, int width, int height, const SharedArray<WebString>& paramNames, const SharedArray<WebString>& paramValues, int size, const char* url) = 0; + virtual void notifyPluginRectChanged(int, Platform::IntRect rectChanged) = 0; + virtual void destroyPlugin(int) = 0; + virtual void playMedia(int) = 0; + virtual void pauseMedia(int) = 0; + virtual float getTime(int) = 0; + virtual void setTime(int, float) = 0; + virtual void setVolume(int, float) = 0; + virtual void setMuted(int, bool) = 0; + + virtual WebPage* createWindow(int x, int y, int width, int height, unsigned flags, const WebString& url, const WebString& windowName) = 0; + + virtual void scheduleCloseWindow() = 0; + + // Database interface. + virtual unsigned long long databaseQuota(const unsigned short* origin, unsigned originLength, const unsigned short* databaseName, unsigned databaseNameLength, unsigned long long totalUsage, unsigned long long originUsage, unsigned long long estimatedSize) = 0; + + virtual void setIconForUrl(const char* originalPageUrl, const char* finalPageUrl, const char* iconUrl) = 0; + virtual void setFavicon(int width, int height, unsigned char* iconData, const char* url) = 0; + virtual void setLargeIcon(const char* iconUrl) = 0; + virtual void setWebAppCapable() = 0; + virtual void setSearchProviderDetails(const char* title, const char* documentUrl) = 0; + virtual void setAlternateFeedDetails(const char* title, const char* feedUrl) = 0; + + virtual WebString getErrorPage(int errorCode, const char* errorMessage, const char* url) = 0; + + virtual void willDeferLoading() = 0; + virtual void didResumeLoading() = 0; + + // Headers is a list of alternating key and value. + virtual void setMetaHeaders(const ScopeArray<WebString>& headers, unsigned int headersSize) = 0; + + virtual void needMoreData() = 0; + virtual void handleWebInspectorMessageToFrontend(int id, const char* message, int length) = 0; + + virtual bool hasPendingScrollOrZoomEvent() const = 0; + virtual Platform::IntRect userInterfaceBlittedDestinationRect() const = 0; + virtual Platform::IntRect userInterfaceBlittedVisibleContentsRect() const = 0; + + virtual void resetBitmapZoomScale(double scale) = 0; + virtual void animateBlockZoom(const Platform::FloatPoint& finalPoint, double finalScale) = 0; + + virtual void setPreventsScreenIdleDimming(bool noDimming) = 0; + virtual void authenticationChallenge(const unsigned short* realm, unsigned int realmLength, WebString& username, WebString& password) = 0; + + virtual bool shouldPluginEnterFullScreen() = 0; + virtual void didPluginEnterFullScreen() = 0; + virtual void didPluginExitFullScreen() = 0; + virtual void onPluginStartBackgroundPlay() = 0; + virtual void onPluginStopBackgroundPlay() = 0; + virtual bool lockOrientation(bool landscape) = 0; + virtual void unlockOrientation() = 0; + virtual bool isActive() const = 0; + virtual void requestWebGLPermission(const WebString&) = 0; + + virtual void setToolTip(WebString) = 0; + virtual void setStatus(WebString) = 0; + virtual bool acceptNavigationRequest(const Platform::NetworkRequest&, Platform::NavigationType) = 0; + virtual void cursorEventModeChanged(Platform::CursorEventMode) = 0; + virtual void touchEventModeChanged(Platform::TouchEventMode) = 0; + + virtual bool downloadAllowed(const char* url) = 0; + virtual void downloadRequested(const Platform::NetworkRequest&) = 0; + virtual void downloadRequested(Platform::FilterStream*, const WebString& suggestedFilename) = 0; + + virtual int fullscreenStart(const char* contextName, Platform::Graphics::Window*, unsigned x, unsigned y, unsigned width, unsigned height) = 0; + + virtual int fullscreenStop() = 0; + + virtual int fullscreenWindowSet(unsigned x, unsigned y, unsigned width, unsigned height) = 0; + + virtual void drawVerticalScrollbar() = 0; + virtual void drawHorizontalScrollbar() = 0; + virtual void populateCustomHeaders(Platform::NetworkRequest&) = 0; + + virtual void notifyWillUpdateApplicationCache() = 0; + virtual void notifyDidLoadFromApplicationCache() = 0; + + virtual void clearCookies() = 0; + virtual void clearCache() = 0; + + virtual bool hasKeyboardFocus() = 0; +}; +} // namespace WebKit +} // namespace BlackBerry + +#endif // WebPageClient_h |
