Changeset 166879 in webkit
- Timestamp:
- Apr 7, 2014, 12:44:06 PM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 1 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r166861 r166879 1 2014-04-07 Dan Bernstein <mitz@apple.com> 2 3 Introduce API::InjectedBundle::PageUIClient 4 https://bugs.webkit.org/show_bug.cgi?id=131310 5 6 Reviewed by Anders Carlsson. 7 8 * WebKit2.xcodeproj/project.pbxproj: Added references to new files. 9 10 * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: Added #include that 11 became necessary. 12 13 * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h: Added. 14 (API::InjectedBundle::PageUIClient::~PageUIClient): 15 (API::InjectedBundle::PageUIClient::willAddMessageToConsole): 16 (API::InjectedBundle::PageUIClient::willSetStatusbarText): 17 (API::InjectedBundle::PageUIClient::willRunJavaScriptAlert): 18 (API::InjectedBundle::PageUIClient::willRunJavaScriptConfirm): 19 (API::InjectedBundle::PageUIClient::willRunJavaScriptPrompt): 20 (API::InjectedBundle::PageUIClient::mouseDidMoveOverElement): 21 (API::InjectedBundle::PageUIClient::pageDidScroll): 22 (API::InjectedBundle::PageUIClient::shouldGenerateFileForUpload): 23 (API::InjectedBundle::PageUIClient::generateFileForUpload): 24 (API::InjectedBundle::PageUIClient::statusBarIsVisible): 25 (API::InjectedBundle::PageUIClient::menuBarIsVisible): 26 (API::InjectedBundle::PageUIClient::toolbarsAreVisible): 27 (API::InjectedBundle::PageUIClient::didReachApplicationCacheOriginQuota): 28 (API::InjectedBundle::PageUIClient::didExceedDatabaseQuota): 29 (API::InjectedBundle::PageUIClient::plugInStartLabelTitle): 30 (API::InjectedBundle::PageUIClient::plugInStartLabelSubtitle): 31 (API::InjectedBundle::PageUIClient::plugInExtraStyleSheet): 32 (API::InjectedBundle::PageUIClient::plugInExtraScript): 33 34 * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: 35 (WKBundlePageSetUIClient): Changed to create an InjectedBundlePageUIClient and set it on 36 the WebPage. 37 38 * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: 39 (WebKit::InjectedBundlePageUIClient::InjectedBundlePageUIClient): Added constructor from 40 WKBundlePageUIClient. 41 (WebKit::toUIElementVisibility): Added helper to convert from C SPI enum to internal enum. 42 (WebKit::InjectedBundlePageUIClient::statusBarIsVisible): Changed to use the above. 43 (WebKit::InjectedBundlePageUIClient::menuBarIsVisible): Ditto. 44 (WebKit::InjectedBundlePageUIClient::toolbarsAreVisible): Ditto. 45 * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Added inheritance from 46 API::InjectedBundle::PageUIClient, marked overrides as such. 47 48 * WebProcess/Storage/StorageAreaMap.cpp: Added #include that became necessary. 49 * WebProcess/WebCoreSupport/WebChromeClient.cpp: 50 (WebKit::WebChromeClient::toolbarsVisible): Updated to use new internal enum. 51 (WebKit::WebChromeClient::statusbarVisible): Ditto. 52 (WebKit::WebChromeClient::menubarVisible): Ditto. 53 54 * WebProcess/WebPage/WebPage.cpp: 55 (WebKit::WebPage::WebPage): Initialized m_uiClient member. 56 (WebKit::WebPage::setInjectedBundleUIClient): Added. Updates m_uiClient. 57 (WebKit::WebPage::close): Updated for change in m_uiClient. 58 (WebKit::WebPage::pageDidScroll): Ditto. 59 (WebKit::WebPage::initializeInjectedBundleUIClient): Deleted. 60 * WebProcess/WebPage/WebPage.h: 61 (WebKit::WebPage::injectedBundleUIClient): Updated return type. 62 63 * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: Added #include that became 64 necessary. 65 1 66 2014-04-06 Dan Bernstein <mitz@apple.com> 2 67 -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r166861 r166879 663 663 3766F9F0189A1248003CF19B /* WebCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AA1C79A100E7FC50078DEBC /* WebCore.framework */; }; 664 664 3766F9F1189A1254003CF19B /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BC87DFA91018101400564216 /* libicucore.dylib */; }; 665 3769079A18F31CB2001DFF04 /* APIInjectedBundlePageUIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 3769079818F31CB2001DFF04 /* APIInjectedBundlePageUIClient.h */; }; 665 666 37694525184FC6B600CDE21F /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCF5068412431861005955AE /* Security.framework */; }; 666 667 377EAD4517E2C51A002D193D /* WKDeclarationSpecifiers.h in Headers */ = {isa = PBXBuildFile; fileRef = 377EAD4417E2C51A002D193D /* WKDeclarationSpecifiers.h */; settings = {ATTRIBUTES = (Public, ); }; }; … … 2479 2480 37608820150414F700FC82C7 /* WKRenderObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKRenderObject.cpp; sourceTree = "<group>"; }; 2480 2481 37608821150414F700FC82C7 /* WKRenderObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKRenderObject.h; sourceTree = "<group>"; }; 2482 3769079818F31CB2001DFF04 /* APIInjectedBundlePageUIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = APIInjectedBundlePageUIClient.h; path = API/APIInjectedBundlePageUIClient.h; sourceTree = "<group>"; }; 2481 2483 377EAD4417E2C51A002D193D /* WKDeclarationSpecifiers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDeclarationSpecifiers.h; sourceTree = "<group>"; }; 2482 2484 377EAD4617E2C77B002D193D /* WKUserContentInjectedFrames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUserContentInjectedFrames.h; sourceTree = "<group>"; }; … … 5755 5757 BC4BEE96120A091700FBA0C7 /* DOM */, 5756 5758 BC204EE411C83E9C008F3375 /* mac */, 5759 3769079818F31CB2001DFF04 /* APIInjectedBundlePageUIClient.h */, 5757 5760 BC204EE011C83E98008F3375 /* InjectedBundle.cpp */, 5758 5761 BC204EE111C83E98008F3375 /* InjectedBundle.h */, … … 7275 7278 BCF69FA91176D1CB00471A52 /* WKNavigationDataRef.h in Headers */, 7276 7279 318BE17914743E6F00A8FBB2 /* WKNotification.h in Headers */, 7280 3769079A18F31CB2001DFF04 /* APIInjectedBundlePageUIClient.h in Headers */, 7277 7281 318BE17114743DB100A8FBB2 /* WKNotificationManager.h in Headers */, 7278 7282 31A2EC74148D59CA00810D71 /* WKNotificationPermissionRequest.h in Headers */, -
trunk/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp
r166262 r166879 33 33 #include "WebPage.h" 34 34 #include "WebPageProxyMessages.h" 35 #include <WebCore/Document.h> 35 36 #include <WebCore/Frame.h> 36 37 #include <WebCore/FrameLoader.h> -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
r166661 r166879 34 34 #include "InjectedBundleBackForwardList.h" 35 35 #include "InjectedBundleNodeHandle.h" 36 #include "InjectedBundlePageUIClient.h" 36 37 #include "PageBanner.h" 37 38 #include "WKAPICast.h" … … 99 100 void WKBundlePageSetUIClient(WKBundlePageRef pageRef, WKBundlePageUIClientBase* wkClient) 100 101 { 101 toImpl(pageRef)-> initializeInjectedBundleUIClient(wkClient);102 toImpl(pageRef)->setInjectedBundleUIClient(std::make_unique<InjectedBundlePageUIClient>(wkClient)); 102 103 } 103 104 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp
r160608 r166879 37 37 namespace WebKit { 38 38 39 InjectedBundlePageUIClient::InjectedBundlePageUIClient(const WKBundlePageUIClientBase* client) 40 { 41 initialize(client); 42 } 43 39 44 void InjectedBundlePageUIClient::willAddMessageToConsole(WebPage* page, const String& message, int32_t lineNumber) 40 45 { … … 103 108 } 104 109 105 WKBundlePageUIElementVisibility InjectedBundlePageUIClient::statusBarIsVisible(WebPage* page) 110 static API::InjectedBundle::PageUIClient::UIElementVisibility toUIElementVisibility(WKBundlePageUIElementVisibility visibility) 111 { 112 switch (visibility) { 113 case WKBundlePageUIElementVisibilityUnknown: 114 return API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown; 115 case WKBundlePageUIElementVisible: 116 return API::InjectedBundle::PageUIClient::UIElementVisibility::Visible; 117 case WKBundlePageUIElementHidden: 118 return API::InjectedBundle::PageUIClient::UIElementVisibility::Hidden; 119 } 120 121 ASSERT_NOT_REACHED(); 122 return API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown; 123 } 124 125 API::InjectedBundle::PageUIClient::UIElementVisibility InjectedBundlePageUIClient::statusBarIsVisible(WebPage* page) 106 126 { 107 127 if (!m_client.statusBarIsVisible) 108 return WKBundlePageUIElementVisibilityUnknown;128 return API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown; 109 129 110 return m_client.statusBarIsVisible(toAPI(page), m_client.base.clientInfo);111 } 112 113 WKBundlePageUIElementVisibility InjectedBundlePageUIClient::menuBarIsVisible(WebPage* page)130 return toUIElementVisibility(m_client.statusBarIsVisible(toAPI(page), m_client.base.clientInfo)); 131 } 132 133 API::InjectedBundle::PageUIClient::UIElementVisibility InjectedBundlePageUIClient::menuBarIsVisible(WebPage* page) 114 134 { 115 135 if (!m_client.menuBarIsVisible) 116 return WKBundlePageUIElementVisibilityUnknown;136 return API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown; 117 137 118 return m_client.menuBarIsVisible(toAPI(page), m_client.base.clientInfo);119 } 120 121 WKBundlePageUIElementVisibility InjectedBundlePageUIClient::toolbarsAreVisible(WebPage* page)138 return toUIElementVisibility(m_client.menuBarIsVisible(toAPI(page), m_client.base.clientInfo)); 139 } 140 141 API::InjectedBundle::PageUIClient::UIElementVisibility InjectedBundlePageUIClient::toolbarsAreVisible(WebPage* page) 122 142 { 123 143 if (!m_client.toolbarsAreVisible) 124 return WKBundlePageUIElementVisibilityUnknown;144 return API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown; 125 145 126 return m_client.toolbarsAreVisible(toAPI(page), m_client.base.clientInfo);146 return toUIElementVisibility(m_client.toolbarsAreVisible(toAPI(page), m_client.base.clientInfo)); 127 147 } 128 148 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h
r159994 r166879 28 28 29 29 #include "APIClient.h" 30 #include "APIInjectedBundlePageUIClient.h" 30 31 #include "WKBundlePage.h" 31 32 #include "WebEvent.h" … … 53 54 class WebSecurityOrigin; 54 55 55 class InjectedBundlePageUIClient : public API::Client<WKBundlePageUIClientBase> {56 class InjectedBundlePageUIClient : public API::Client<WKBundlePageUIClientBase>, public API::InjectedBundle::PageUIClient { 56 57 public: 57 void willAddMessageToConsole(WebPage*, const String& message, int32_t lineNumber); 58 void willSetStatusbarText(WebPage*, const String&); 59 void willRunJavaScriptAlert(WebPage*, const String&, WebFrame*); 60 void willRunJavaScriptConfirm(WebPage*, const String&, WebFrame*); 61 void willRunJavaScriptPrompt(WebPage*, const String&, const String&, WebFrame*); 62 void mouseDidMoveOverElement(WebPage*, const WebCore::HitTestResult&, WebEvent::Modifiers, RefPtr<API::Object>& userData); 63 void pageDidScroll(WebPage*); 58 explicit InjectedBundlePageUIClient(const WKBundlePageUIClientBase*); 64 59 65 String shouldGenerateFileForUpload(WebPage*, const String& originalFilePath); 66 String generateFileForUpload(WebPage*, const String& originalFilePath); 60 void willAddMessageToConsole(WebPage*, const String& message, int32_t lineNumber) override; 61 void willSetStatusbarText(WebPage*, const String&) override; 62 void willRunJavaScriptAlert(WebPage*, const String&, WebFrame*) override; 63 void willRunJavaScriptConfirm(WebPage*, const String&, WebFrame*) override; 64 void willRunJavaScriptPrompt(WebPage*, const String&, const String&, WebFrame*) override; 65 void mouseDidMoveOverElement(WebPage*, const WebCore::HitTestResult&, WebEvent::Modifiers, RefPtr<API::Object>& userData) override; 66 void pageDidScroll(WebPage*) override; 67 68 String shouldGenerateFileForUpload(WebPage*, const String& originalFilePath) override; 69 String generateFileForUpload(WebPage*, const String& originalFilePath) override; 67 70 68 WKBundlePageUIElementVisibility statusBarIsVisible(WebPage*);69 WKBundlePageUIElementVisibility menuBarIsVisible(WebPage*);70 WKBundlePageUIElementVisibility toolbarsAreVisible(WebPage*);71 UIElementVisibility statusBarIsVisible(WebPage*) override; 72 UIElementVisibility menuBarIsVisible(WebPage*) override; 73 UIElementVisibility toolbarsAreVisible(WebPage*) override; 71 74 72 void didReachApplicationCacheOriginQuota(WebPage*, WebSecurityOrigin*, int64_t totalBytesNeeded) ;73 uint64_t didExceedDatabaseQuota(WebPage*, WebSecurityOrigin*, const String& databaseName, const String& databaseDisplayName, uint64_t currentQuotaBytes, uint64_t currentOriginUsageBytes, uint64_t currentDatabaseUsageBytes, uint64_t expectedUsageBytes) ;75 void didReachApplicationCacheOriginQuota(WebPage*, WebSecurityOrigin*, int64_t totalBytesNeeded) override; 76 uint64_t didExceedDatabaseQuota(WebPage*, WebSecurityOrigin*, const String& databaseName, const String& databaseDisplayName, uint64_t currentQuotaBytes, uint64_t currentOriginUsageBytes, uint64_t currentDatabaseUsageBytes, uint64_t expectedUsageBytes) override; 74 77 75 String plugInStartLabelTitle(const String& mimeType) const; 76 String plugInStartLabelSubtitle(const String& mimeType) const; 77 String plugInExtraStyleSheet() const; 78 String plugInExtraScript() const; 79 78 String plugInStartLabelTitle(const String& mimeType) const override; 79 String plugInStartLabelSubtitle(const String& mimeType) const override; 80 String plugInExtraStyleSheet() const override; 81 String plugInExtraScript() const override; 80 82 }; 81 83 -
trunk/Source/WebKit2/WebProcess/Storage/StorageAreaMap.cpp
r160464 r166879 36 36 #include "WebProcess.h" 37 37 #include <WebCore/DOMWindow.h> 38 #include <WebCore/Document.h> 38 39 #include <WebCore/MainFrame.h> 39 40 #include <WebCore/Page.h> -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
r166779 r166879 242 242 bool WebChromeClient::toolbarsVisible() 243 243 { 244 WKBundlePageUIElementVisibility toolbarsVisibility = m_page->injectedBundleUIClient().toolbarsAreVisible(m_page);245 if (toolbarsVisibility != WKBundlePageUIElementVisibilityUnknown)246 return toolbarsVisibility == WKBundlePageUIElementVisible;244 API::InjectedBundle::PageUIClient::UIElementVisibility toolbarsVisibility = m_page->injectedBundleUIClient().toolbarsAreVisible(m_page); 245 if (toolbarsVisibility != API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown) 246 return toolbarsVisibility == API::InjectedBundle::PageUIClient::UIElementVisibility::Visible; 247 247 248 248 bool toolbarsAreVisible = true; … … 260 260 bool WebChromeClient::statusbarVisible() 261 261 { 262 WKBundlePageUIElementVisibility statusbarVisibility = m_page->injectedBundleUIClient().statusBarIsVisible(m_page);263 if (statusbarVisibility != WKBundlePageUIElementVisibilityUnknown)264 return statusbarVisibility == WKBundlePageUIElementVisible;262 API::InjectedBundle::PageUIClient::UIElementVisibility statusbarVisibility = m_page->injectedBundleUIClient().statusBarIsVisible(m_page); 263 if (statusbarVisibility != API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown) 264 return statusbarVisibility == API::InjectedBundle::PageUIClient::UIElementVisibility::Visible; 265 265 266 266 bool statusBarIsVisible = true; … … 289 289 bool WebChromeClient::menubarVisible() 290 290 { 291 WKBundlePageUIElementVisibility menubarVisibility = m_page->injectedBundleUIClient().menuBarIsVisible(m_page);292 if (menubarVisibility != WKBundlePageUIElementVisibilityUnknown)293 return menubarVisibility == WKBundlePageUIElementVisible;291 API::InjectedBundle::PageUIClient::UIElementVisibility menubarVisibility = m_page->injectedBundleUIClient().menuBarIsVisible(m_page); 292 if (menubarVisibility != API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown) 293 return menubarVisibility == API::InjectedBundle::PageUIClient::UIElementVisibility::Visible; 294 294 295 295 bool menuBarIsVisible = true; -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r166818 r166879 264 264 , m_setCanStartMediaTimer(RunLoop::main(), this, &WebPage::setCanStartMediaTimerFired) 265 265 , m_sendDidUpdateViewStateTimer(RunLoop::main(), this, &WebPage::didUpdateViewStateTimerFired) 266 , m_uiClient(std::make_unique<API::InjectedBundle::PageUIClient>()) 266 267 , m_findController(this) 267 268 #if ENABLE(INPUT_TYPE_COLOR) … … 563 564 } 564 565 565 void WebPage::initializeInjectedBundleUIClient(WKBundlePageUIClientBase* client) 566 { 567 m_uiClient.initialize(client); 566 void WebPage::setInjectedBundleUIClient(std::unique_ptr<API::InjectedBundle::PageUIClient> uiClient) 567 { 568 if (!uiClient) { 569 m_uiClient = std::make_unique<API::InjectedBundle::PageUIClient>(); 570 return; 571 } 572 573 m_uiClient = std::move(uiClient); 568 574 } 569 575 … … 878 884 m_policyClient.initialize(0); 879 885 m_resourceLoadClient.initialize(0); 880 m_uiClient .initialize(0);886 m_uiClient = std::make_unique<API::InjectedBundle::PageUIClient>(); 881 887 #if ENABLE(FULLSCREEN_API) 882 888 m_fullScreenClient.initialize(0); … … 1609 1615 void WebPage::pageDidScroll() 1610 1616 { 1611 m_uiClient .pageDidScroll(this);1617 m_uiClient->pageDidScroll(this); 1612 1618 1613 1619 send(Messages::WebPageProxy::PageDidScroll()); -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h
r166861 r166879 27 27 #define WebPage_h 28 28 29 #include "APIInjectedBundlePageUIClient.h" 29 30 #include "APIObject.h" 30 31 #include "DrawingArea.h" … … 39 40 #include "InjectedBundlePagePolicyClient.h" 40 41 #include "InjectedBundlePageResourceLoadClient.h" 41 #include "InjectedBundlePageUIClient.h"42 42 #include "MessageReceiver.h" 43 43 #include "MessageSender.h" … … 116 116 117 117 namespace WebCore { 118 class DocumentLoader; 118 119 class GraphicsContext; 119 120 class Frame; … … 284 285 void initializeInjectedBundlePolicyClient(WKBundlePagePolicyClientBase*); 285 286 void initializeInjectedBundleResourceLoadClient(WKBundlePageResourceLoadClientBase*); 286 void initializeInjectedBundleUIClient(WKBundlePageUIClientBase*);287 void setInjectedBundleUIClient(std::unique_ptr<API::InjectedBundle::PageUIClient>); 287 288 #if ENABLE(FULLSCREEN_API) 288 289 void initializeInjectedBundleFullScreenClient(WKBundlePageFullScreenClientBase*); … … 298 299 InjectedBundlePagePolicyClient& injectedBundlePolicyClient() { return m_policyClient; } 299 300 InjectedBundlePageResourceLoadClient& injectedBundleResourceLoadClient() { return m_resourceLoadClient; } 300 InjectedBundlePageUIClient& injectedBundleUIClient() { return m_uiClient; }301 API::InjectedBundle::PageUIClient& injectedBundleUIClient() { return *m_uiClient.get(); } 301 302 InjectedBundlePageDiagnosticLoggingClient& injectedBundleDiagnosticLoggingClient() { return m_logDiagnosticMessageClient; } 302 303 #if ENABLE(FULLSCREEN_API) … … 1077 1078 InjectedBundlePagePolicyClient m_policyClient; 1078 1079 InjectedBundlePageResourceLoadClient m_resourceLoadClient; 1079 InjectedBundlePageUIClientm_uiClient;1080 std::unique_ptr<API::InjectedBundle::PageUIClient> m_uiClient; 1080 1081 #if ENABLE(FULLSCREEN_API) 1081 1082 InjectedBundlePageFullScreenClient m_fullScreenClient; -
trunk/Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm
r165014 r166879 36 36 #import "WKStringCF.h" 37 37 #import <WebCore/AXObjectCache.h> 38 #import <WebCore/Document.h> 38 39 #import <WebCore/FrameView.h> 39 40 #import <WebCore/MainFrame.h>
Note:
See TracChangeset
for help on using the changeset viewer.