From d2d5baeb8c3b10579f7f144e918b2935af66bec5 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 7 Nov 2014 14:31:48 +0100 Subject: Fix enum names of audio/video features The feature enum names and documentation gave the impression it could control audio and video output, while they only control input. Also removed documentation of non connected feature permissions for Notifications and GeoLocation. Change-Id: Ia35142ca691ebd6059b7472e9803fda8cbd84813 Reviewed-by: Jocelyn Turcotte Reviewed-by: Pierre Rossi --- src/webenginewidgets/api/qwebenginepage.cpp | 16 ++++++++-------- src/webenginewidgets/api/qwebenginepage.h | 16 ++++++++++------ src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc | 8 +++----- 3 files changed, 21 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index d6782974b..72b16f28b 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -332,11 +332,11 @@ void QWebEnginePagePrivate::runMediaAccessPermissionRequest(const QUrl &security Q_Q(QWebEnginePage); QWebEnginePage::Feature requestedFeature; if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture) && requestFlags.testFlag(WebContentsAdapterClient::MediaVideoCapture)) - requestedFeature = QWebEnginePage::MediaAudioVideoDevices; + requestedFeature = QWebEnginePage::MediaAudioVideoCapture; else if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture)) - requestedFeature = QWebEnginePage::MediaAudioDevices; + requestedFeature = QWebEnginePage::MediaAudioCapture; else if (requestFlags.testFlag(WebContentsAdapterClient::MediaVideoCapture)) - requestedFeature = QWebEnginePage::MediaVideoDevices; + requestedFeature = QWebEnginePage::MediaVideoCapture; else return; Q_EMIT q->featurePermissionRequested(securityOrigin, requestedFeature); @@ -745,16 +745,16 @@ void QWebEnginePage::setFeaturePermission(const QUrl &securityOrigin, QWebEngine Q_D(QWebEnginePage); WebContentsAdapterClient::MediaRequestFlags flags = WebContentsAdapterClient::MediaNone; switch (feature) { - case MediaAudioVideoDevices: - case MediaAudioDevices: - case MediaVideoDevices: + case MediaAudioVideoCapture: + case MediaAudioCapture: + case MediaVideoCapture: if (policy != PermissionUnknown) { if (policy == PermissionDeniedByUser) flags = WebContentsAdapterClient::MediaNone; else { - if (feature == MediaAudioDevices) + if (feature == MediaAudioCapture) flags = WebContentsAdapterClient::MediaAudioCapture; - else if (feature == MediaVideoDevices) + else if (feature == MediaVideoCapture) flags = WebContentsAdapterClient::MediaVideoCapture; else flags = WebContentsAdapterClient::MediaRequestFlags(WebContentsAdapterClient::MediaVideoCapture | WebContentsAdapterClient::MediaAudioCapture); diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index cda6e620f..7856b8243 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -122,7 +122,8 @@ public: FindBackward = 1, FindCaseSensitively = 2, }; - Q_DECLARE_FLAGS(FindFlags, FindFlag) + Q_DECLARE_FLAGS(FindFlags, FindFlag); + enum WebWindowType { WebBrowserWindow, WebBrowserTab, @@ -136,12 +137,15 @@ public: }; enum Feature { - Notifications, - Geolocation, - MediaAudioDevices, - MediaVideoDevices, - MediaAudioVideoDevices +#ifndef Q_QDOC + Notifications = 0, + Geolocation = 1, +#endif + MediaAudioCapture = 2, + MediaVideoCapture, + MediaAudioVideoCapture }; + // Ex-QWebFrame enum enum FileSelectionMode { diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc index 983b80d7e..e89b10ab8 100644 --- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc +++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc @@ -151,11 +151,9 @@ This enum describes the platform feature access categories that the user may be asked to grant or deny access to. - \value Notifications Grants access to display notifications to the user. - \value Geolocation The geographic location devices that may be available. - \value MediaAudioDevices Audio devices such as speakers or microphones - \value MediaVideoDevices Video devices, e.g. cameras - \value MediaAudioVideoDevices Both Audio and Video devices. + \value MediaAudioCapture Audio capture devices such a microphones + \value MediaVideoCapture Video devices, e.g. cameras + \value MediaAudioVideoCapture Both Audio and Video capture devices. \sa featurePermissionRequested(), featurePermissionRequestCanceled(), setFeaturePermission(), PermissionPolicy -- cgit v1.2.3 From f343e9d69a9aa8d64fe61725cf17c824f8f2d703 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 7 Nov 2014 17:07:48 +0100 Subject: Cache to QStandardPaths::CacheLocation We should save our cache in the configured CacheLocation, and ensure we are prepared for multiple BrowserContext by caching to a Default subdir. This matches how chromium caches on linux. Change-Id: Ibe914fca35435ea1658565be87747cfabc71e97b Reviewed-by: Jocelyn Turcotte --- src/core/browser_context_qt.cpp | 14 +++++++++++++- src/core/browser_context_qt.h | 1 + src/core/url_request_context_getter_qt.cpp | 9 +++++---- src/core/url_request_context_getter_qt.h | 5 +++-- 4 files changed, 22 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/core/browser_context_qt.cpp b/src/core/browser_context_qt.cpp index 3913b7548..44b6ca4ef 100644 --- a/src/core/browser_context_qt.cpp +++ b/src/core/browser_context_qt.cpp @@ -72,9 +72,21 @@ base::FilePath BrowserContextQt::GetPath() const dataLocation = QDir::homePath() % QDir::separator() % QChar::fromLatin1('.') % QCoreApplication::applicationName(); dataLocation.append(QDir::separator() % QLatin1String("QtWebEngine")); + dataLocation.append(QDir::separator() % QLatin1String("Default")); return base::FilePath(toFilePathString(dataLocation)); } +base::FilePath BrowserContextQt::GetCachePath() const +{ + QString cacheLocation = QStandardPaths::writableLocation(QStandardPaths::CacheLocation); + if (cacheLocation.isEmpty()) + cacheLocation = QDir::homePath() % QDir::separator() % QChar::fromLatin1('.') % QCoreApplication::applicationName(); + + cacheLocation.append(QDir::separator() % QLatin1String("QtWebEngine")); + cacheLocation.append(QDir::separator() % QLatin1String("Default")); + return base::FilePath(toFilePathString(cacheLocation)); +} + bool BrowserContextQt::IsOffTheRecord() const { return false; @@ -133,7 +145,7 @@ content::PushMessagingService *BrowserContextQt::GetPushMessagingService() net::URLRequestContextGetter *BrowserContextQt::CreateRequestContext(content::ProtocolHandlerMap *protocol_handlers) { - url_request_getter_ = new URLRequestContextGetterQt(GetPath(), protocol_handlers); + url_request_getter_ = new URLRequestContextGetterQt(GetPath(), GetCachePath(), protocol_handlers); static_cast(resourceContext.get())->set_url_request_context_getter(url_request_getter_.get()); return url_request_getter_.get(); } diff --git a/src/core/browser_context_qt.h b/src/core/browser_context_qt.h index 8c7e707a8..125c0fc46 100644 --- a/src/core/browser_context_qt.h +++ b/src/core/browser_context_qt.h @@ -51,6 +51,7 @@ public: virtual ~BrowserContextQt(); virtual base::FilePath GetPath() const Q_DECL_OVERRIDE; + base::FilePath GetCachePath() const; virtual bool IsOffTheRecord() const Q_DECL_OVERRIDE; virtual net::URLRequestContextGetter *GetRequestContext() Q_DECL_OVERRIDE; diff --git a/src/core/url_request_context_getter_qt.cpp b/src/core/url_request_context_getter_qt.cpp index 8d44d0ad1..8ec600a85 100644 --- a/src/core/url_request_context_getter_qt.cpp +++ b/src/core/url_request_context_getter_qt.cpp @@ -69,9 +69,10 @@ static const char kQrcSchemeQt[] = "qrc"; using content::BrowserThread; -URLRequestContextGetterQt::URLRequestContextGetterQt(const base::FilePath &basePath, content::ProtocolHandlerMap *protocolHandlers) +URLRequestContextGetterQt::URLRequestContextGetterQt(const base::FilePath &dataPath, const base::FilePath &cachePath, content::ProtocolHandlerMap *protocolHandlers) : m_ignoreCertificateErrors(false) - , m_basePath(basePath) + , m_dataPath(dataPath) + , m_cachePath(cachePath) { std::swap(m_protocolHandlers, *protocolHandlers); @@ -93,7 +94,7 @@ net::URLRequestContext *URLRequestContextGetterQt::GetURLRequestContext() m_urlRequestContext->set_network_delegate(m_networkDelegate.get()); - base::FilePath cookiesPath = m_basePath.Append(FILE_PATH_LITERAL("Cookies")); + base::FilePath cookiesPath = m_dataPath.Append(FILE_PATH_LITERAL("Cookies")); content::CookieStoreConfig cookieStoreConfig(cookiesPath, content::CookieStoreConfig::PERSISTANT_SESSION_COOKIES, NULL, NULL); scoped_refptr cookieStore = content::CreateCookieStore(cookieStoreConfig); @@ -119,7 +120,7 @@ net::URLRequestContext *URLRequestContextGetterQt::GetURLRequestContext() net::HttpAuthHandlerFactory::CreateDefault(host_resolver.get())); m_storage->set_http_server_properties(scoped_ptr(new net::HttpServerPropertiesImpl)); - base::FilePath cache_path = m_basePath.Append(FILE_PATH_LITERAL("Cache")); + base::FilePath cache_path = m_cachePath.Append(FILE_PATH_LITERAL("Cache")); net::HttpCache::DefaultBackend* main_backend = new net::HttpCache::DefaultBackend( net::DISK_CACHE, diff --git a/src/core/url_request_context_getter_qt.h b/src/core/url_request_context_getter_qt.h index 50335291e..6c9ac6d59 100644 --- a/src/core/url_request_context_getter_qt.h +++ b/src/core/url_request_context_getter_qt.h @@ -58,7 +58,7 @@ class ProxyConfigService; class URLRequestContextGetterQt : public net::URLRequestContextGetter { public: - explicit URLRequestContextGetterQt(const base::FilePath &, content::ProtocolHandlerMap *protocolHandlers); + explicit URLRequestContextGetterQt(const base::FilePath &, const base::FilePath &, content::ProtocolHandlerMap *protocolHandlers); virtual net::URLRequestContext *GetURLRequestContext() Q_DECL_OVERRIDE; virtual scoped_refptr GetNetworkTaskRunner() const Q_DECL_OVERRIDE; @@ -67,7 +67,8 @@ private: virtual ~URLRequestContextGetterQt() {} bool m_ignoreCertificateErrors; - base::FilePath m_basePath; + base::FilePath m_dataPath; + base::FilePath m_cachePath; content::ProtocolHandlerMap m_protocolHandlers; scoped_ptr m_proxyConfigService; -- cgit v1.2.3