Merge lp://qastaging/~abreu-alexandre/oxide/add-quota-permission-context-support into lp://qastaging/~oxide-developers/oxide/oxide.trunk

Proposed by Alexandre Abreu
Status: Needs review
Proposed branch: lp://qastaging/~abreu-alexandre/oxide/add-quota-permission-context-support
Merge into: lp://qastaging/~oxide-developers/oxide/oxide.trunk
Diff against target: 1203 lines (+538/-96)
24 files modified
qt/build/system.gyp (+17/-0)
qt/core/api/oxideqpermissionrequest.cc (+50/-0)
qt/core/api/oxideqpermissionrequest.h (+22/-0)
qt/core/api/oxideqpermissionrequest_p.h (+20/-0)
qt/core/browser/oxide_qt_web_view.cc (+32/-0)
qt/core/browser/oxide_qt_web_view.h (+5/-0)
qt/core/core.gyp (+1/-0)
qt/core/glue/oxide_qt_web_view_proxy.h (+2/-0)
qt/core/glue/oxide_qt_web_view_proxy_client.h (+4/-0)
qt/qmlplugin/oxide.qmltypes (+35/-14)
qt/qmlplugin/oxide_qml_plugin.cc (+8/-0)
qt/quick/api/oxideqquickwebview.cc (+30/-0)
qt/quick/api/oxideqquickwebview.h (+2/-0)
qt/quick/api/oxideqquickwebview_p.h (+6/-0)
qt/tests/qmltests/TestWebView.qml (+1/-1)
qt/tests/qmltests/api/tst_WebView_quotaPermission.html (+49/-0)
qt/tests/qmltests/api/tst_WebView_quotaPermission.qml (+202/-0)
qt/tests/qmltests/api/tst_WebView_quotaPermission_iframe.html (+5/-0)
qt/tests/qmltests/oxide_qml_testing_plugin.cc (+10/-0)
shared/browser/oxide_quota_permission_context.cc (+0/-36)
shared/browser/oxide_quota_permission_context.h (+0/-45)
shared/browser/permissions/oxide_permission_request_dispatcher.cc (+27/-0)
shared/browser/permissions/oxide_permission_request_dispatcher.h (+6/-0)
shared/browser/permissions/oxide_permission_request_dispatcher_client.h (+4/-0)
To merge this branch: bzr merge lp://qastaging/~abreu-alexandre/oxide/add-quota-permission-context-support
Reviewer Review Type Date Requested Status
Chris Coulson Needs Fixing
Review via email: mp+243351@code.qastaging.launchpad.net

Commit message

Add support for quota permission context request.

Description of the change

Add support for quota permission context request.

A patch branch for chromium is needed for that change:

https://git.launchpad.net/~abreu-alexandre/oxide/+git/chromium/commit/?h=expose-frame-id-quota&id=21f76382023aab780d211d5efad3c35690fc8ddc

To post a comment you must log in.
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Thanks for working on this. I've added some comments inline.

This is also lacking tests - I'd start by looking at the geolocation permission tests (and also take in to consideration the points in bug 1399196). Note, cancellation when navigating subframes probably won't work for quota permissions like it should for geolocation (we have no indication of the frame on the browser side).

review: Needs Fixing
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

I've added some comments inline for this

review: Needs Fixing
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

I've left some comments inline again.

Also, how does this API behave if a site requests persistent storage in an incognito webview?

review: Needs Fixing
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

I've left some comments inline.

And the tests are still missing quite a few cases:
- It's not testing if requests from subframes behave correctly.
- It doesn't test if requests are cancelled on navigation.
- It doesn't verify that the request is denied if the application ignores it (ie, QuotaPermissionRequest is deleted without a response).

I still don't know what happens if a page in an incognito webview requests a persistent storage quota. Did you find out?

review: Needs Fixing
Revision history for this message
Alexandre Abreu (abreu-alexandre) wrote :

created a expose-quota-frame-id branch in ~oxide-developers/oxide/+git/chromium to track the patches that add the frame id to the storage quota request,

1283. By Chris Coulson

Use Qt::PrimaryOrientation rather than passing in QScreen's own primary orientation

Revision history for this message
Alexandre Abreu (abreu-alexandre) wrote :

Also about you question, for incognito webviews the request still goes through except that for those the maximum quota is set to a lower threshold, see:

https://git.launchpad.net/~oxide-developers/oxide/+git/chromium/tree/storage/browser/quota/quota_manager.cc#n51

and

https://git.launchpad.net/~oxide-developers/oxide/+git/chromium/tree/storage/browser/quota/quota_manager.cc#n320

which is the control flow for a regular storage quota request with the case of a webview being incognito being handled as a max threshold case.

1284. By Chris Coulson

QCoreApplication::applicationName() isn't really thread-safe - cache it to protect against accessing this whilst the application is modifying it (although we don't really expect this to change)

1285. By Chris Coulson

Build with 'use_ash: 0' as this seems to be pulling in dependencies from //chrome, resulting in random mis-builds

1286. By Chris Coulson

Bump Chromium rev to 0fcc1746 (48.0.2564.22)

1287. By Chris Coulson

Add support for the camera on the phone. Note this requires changes to libhybris that aren't approved yet, so some bits may change. It's also hidden behind a build option (ENABLE_HYBRIS_CAMERA)

1288. By Chris Coulson

Don't require libhybris-dev to be installed when building without ENABLE_HYBRIS_CAMERA

1289. By Chris Coulson

Merge from lp:oxide/crmaster

1290. By Chris Coulson

Bump qt version to 1.13

1291. By Chris Coulson

Bump Chromium rev to dee8b819 (49.0.2587.3)

1292. By Chris Coulson

Fix OxideQCertificateError::isMainFrame to work with Chromium 49

1293. By Chris Coulson

Don't build qt/core/api in a separate target with different build options. This means we can stop linking unconditionally with --gc-sections. It also means that the public API no longer has RTTI enabled - if we need this in the future, we'll have to split it out again and plumb it through a proxy layer like we do with qt/quick/api

1294. By Chris Coulson

Merge r1067 from lp:oxide/crmaster

1295. By Chris Coulson

Bump Chromium rev to 8af47bb2 (49.0.2593.0)

1296. By Chris Coulson

Bump Chromium rev to a6f2995b to pick up build fix

1297. By Chris Coulson

Pass StartParams by value and give it a move constructor - this makes it obvious that the StartParams passed to BrowserProcessMain::Start is no longer valid once the function returns

1298. By Chris Coulson

Merge r1072 from lp:oxide/crmaster

1299. By Chris Coulson

Bump Chromium rev to 3bbb11d8 (49.0.2612.0)

1300. By Chris Coulson

Check the return value from android_camera_get_device_info

1301. By Chris Coulson

Check the return of android_camera_get_device_info in another location

1302. By Chris Coulson

Fix an import failure in release.py

1303. By Chris Coulson

Update the exclude list and call init-checkout.py from release.py

1304. By Olivier Tilloy

Add missing revision qualifier to the WebView.hoveredUrl property.

1305. By Chris Coulson

Be a bit more intelligent when detecting whether the hybris camera compatibility layer is available, or whether we're running on the Android EGL stack

1306. By Chris Coulson

Expose value type enums to QML in Qt5.5

1307. By Olivier Tilloy

Update to oxide.qmltypes missed at revision 1304.

1308. By Chris Coulson

Don't include .git/index files anywhere in the tarball. This was added way back in r640 but doesn't actually fix anything, and instead causes LP: #1490868 to be reintroduced in official builds where we don't install git

1309. By Olivier Tilloy

Add a touch selection API, to allow embedders to display handles for resizing the current selection, and contextual actions for it.

1310. By Chris Coulson

Make QFlags naming consistent betweeen qt/core/api and qt/quick/api

1311. By Chris Coulson

Various clean-ups in soon-to-be-public headers. Also, we rename header files based on whether they're going to be public or not

1312. By Chris Coulson

Ensure we define OXIDE_QTQUICK_IMPLEMENTATION as part of the build

1313. By Chris Coulson

Remove SimplePermissionRequest

1314. By Chris Coulson

Register PermissionRequest and MediaAccessPermissionRequest

1315. By Chris Coulson

Add deprecation warnings for deprecated APIs

1316. By Chris Coulson

Add missing file

1317. By Chris Coulson

Disable the unprivileged namespace sandbox and fallback to the suid sandbox until we've figured out how it fits in with application confinement

1318. By Chris Coulson

Make a few changes to the build system:
- package is renamed to test-package, as the former is a reserved target in cmake. This gets rid of a warning.
- Use the built-in option command.
- Move a bunch of stuff from qt/CMakeLists.txt to CMakeLists.txt

1319. By Chris Coulson

Use INTERFACE_LINK_LIBRARIES for OXIDE_LIB, and make some libraries linked in to OXIDE_QUICKLIB public

1320. By Chris Coulson

Merge r1085 from lp:oxide/crmaster

1321. By Chris Coulson

Bump Chromium rev to c51aaef (49.0.2623.0)

1322. By Chris Coulson

Unbreak cross-compiles and make sure we test the version of the correct module

1323. By Chris Coulson

Merge in various build changes:
- Split out some code in to CMake modules
- Use CMake's PROJECT_VERSION properties rather than our own OXIDE_VERSION
- Install public header files
- Create and install CMake package config files

1324. By Chris Coulson

Safely handle event loop nesting from outside of Oxide

1325. By Chris Coulson

Bump Chromium rev to 37948b2 (49.0.2623.13)

1326. By Chris Coulson

Update the deprecation warning for loadingChanged and add a macro for doing this as well

1327. By Chris Coulson

Bump Chromium rev to 8e193e1 (49.0.2623.23)

1328. By Chris Coulson

Remove WebViewProxy::createHelpers - just export the relevant private classes and have OxideQQuickWebView use those directly

1329. By Chris Coulson

Bump qt version to 1.14

1330. By Chris Coulson

Rename development Chromium branches to oxide/dev/crXXXX

1331. By Chris Coulson

Merge r1097 from lp:oxide/crmaster

1332. By Chris Coulson

Bump Chromium rev to 0571636 (50.0.2633.3)

1333. By Alexandre Abreu

fix build failure with MediaHub specific code

1334. By Chris Coulson

Add support for drag and drop

1335. By Chris Coulson

Merge r1100 from lp:oxide/crmaster

1336. By Chris Coulson

Fix some test failures

1337. By Alexandre Abreu

Add support for quota permission context request.

1338. By Alexandre Abreu

Tweaks

Unmerged revisions

1338. By Alexandre Abreu

Tweaks

1337. By Alexandre Abreu

Add support for quota permission context request.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches