1/* 2 * Copyright (C) 2014 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 23 * THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#ifndef APIInjectedBundlePageUIClient_h 27#define APIInjectedBundlePageUIClient_h 28 29#include "WebEvent.h" 30 31namespace WebCore { 32class HitTestResult; 33} 34 35namespace WebKit { 36class WebFrame; 37class WebPage; 38class WebSecurityOrigin; 39} 40 41namespace API { 42 43class Object; 44 45namespace InjectedBundle { 46 47class PageUIClient { 48public: 49 virtual ~PageUIClient() { } 50 51 virtual void willAddMessageToConsole(WebKit::WebPage*, const WTF::String& message, int32_t lineNumber) { UNUSED_PARAM(message); UNUSED_PARAM(lineNumber); } 52 virtual void willSetStatusbarText(WebKit::WebPage*, const WTF::String&) { } 53 virtual void willRunJavaScriptAlert(WebKit::WebPage*, const WTF::String&, WebKit::WebFrame*) { } 54 virtual void willRunJavaScriptConfirm(WebKit::WebPage*, const WTF::String&, WebKit::WebFrame*) { } 55 virtual void willRunJavaScriptPrompt(WebKit::WebPage*, const WTF::String&, const WTF::String&, WebKit::WebFrame*) { } 56 virtual void mouseDidMoveOverElement(WebKit::WebPage*, const WebCore::HitTestResult&, WebKit::WebEvent::Modifiers, RefPtr<API::Object>& userData) { UNUSED_PARAM(userData); } 57 virtual void pageDidScroll(WebKit::WebPage*) { } 58 59 virtual WTF::String shouldGenerateFileForUpload(WebKit::WebPage*, const WTF::String& originalFilePath) { UNUSED_PARAM(originalFilePath); return WTF::String(); } 60 virtual WTF::String generateFileForUpload(WebKit::WebPage*, const WTF::String& originalFilePath) { UNUSED_PARAM(originalFilePath); return emptyString(); } 61 62 enum class UIElementVisibility { 63 Unknown, 64 Visible, 65 Hidden, 66 }; 67 68 virtual UIElementVisibility statusBarIsVisible(WebKit::WebPage*) { return UIElementVisibility::Unknown; } 69 virtual UIElementVisibility menuBarIsVisible(WebKit::WebPage*) { return UIElementVisibility::Unknown; } 70 virtual UIElementVisibility toolbarsAreVisible(WebKit::WebPage*) { return UIElementVisibility::Unknown; } 71 72 virtual bool didReachApplicationCacheOriginQuota(WebKit::WebPage*, WebKit::WebSecurityOrigin*, int64_t totalBytesNeeded) { UNUSED_PARAM(totalBytesNeeded); return false; } 73 virtual uint64_t didExceedDatabaseQuota(WebKit::WebPage*, WebKit::WebSecurityOrigin*, const WTF::String& databaseName, const WTF::String& databaseDisplayName, uint64_t currentQuotaBytes, uint64_t currentOriginUsageBytes, uint64_t currentDatabaseUsageBytes, uint64_t expectedUsageBytes) 74 { 75 UNUSED_PARAM(databaseName); 76 UNUSED_PARAM(databaseDisplayName); 77 UNUSED_PARAM(currentQuotaBytes); 78 UNUSED_PARAM(currentOriginUsageBytes); 79 UNUSED_PARAM(currentDatabaseUsageBytes); 80 UNUSED_PARAM(expectedUsageBytes); 81 return 0; 82 } 83 84 virtual WTF::String plugInStartLabelTitle(const WTF::String& mimeType) const { UNUSED_PARAM(mimeType); return emptyString(); } 85 virtual WTF::String plugInStartLabelSubtitle(const WTF::String& mimeType) const { UNUSED_PARAM(mimeType); return emptyString(); } 86 virtual WTF::String plugInExtraStyleSheet() const { return emptyString(); } 87 virtual WTF::String plugInExtraScript() const { return emptyString(); } 88}; 89 90} // namespace InjectedBundle 91 92} // namespace API 93 94#endif // APIInjectedBundlePageUIClient_h 95