You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by "Andrew Grieve (JIRA)" <ji...@apache.org> on 2013/01/18 16:14:13 UTC
[jira] [Commented] (CB-2225) User-Agent changes in the
CordovaWebView after using InAppBrowser
[ https://issues.apache.org/jira/browse/CB-2225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13557264#comment-13557264 ]
Andrew Grieve commented on CB-2225:
-----------------------------------
Did some research with this:
-Does the UA always for each PDF open, or only the first PDF load
-Only the first time
-Can we load pdfs in an iframe, does this trigger the bug?
-PDFs *do* load in iframes, but don't trigger the bug.
-Can we detect PDF loads?
-They have a nil URL in their request object when webViewDidStartLoad is called, but not webViewDidFinishLoad nor shouldLoad
-It's likely that we could identify a PDF in our NSURLProtocol handler, but only if we proxy the request
So..., some possible Solutions:
#1 - After loading first page, load a background UIWebView with a PDF (maybe even use data URL)
#2 - Detect PDF load (via the nil URL), and let it load *without* changing the user-agent.
- Make sure the load works by temporarily adding the URL to the container's whitelist
- If the user tries to navigate anywhere else with the UIWebView, close it and make a new one
- This method still messes things up if there are more than one active CDV webviews
#3 - Block all PDF loads
- Not sure this is easy to do without proxying every request, which has other side-effects
I think the first option is probably the best for starters, it's possible the the UA bug is triggered from some sub-system being loaded the first time a PDF is loaded, and so doing it every time will cause the app to use more memory than it requires. Maybe we could have a user-pref that would allow the bug work-around to be disabled if they are sure that their app can't be used to navigate to a PDF, or if they don't use a whitelist anyways.
> User-Agent changes in the CordovaWebView after using InAppBrowser
> -----------------------------------------------------------------
>
> Key: CB-2225
> URL: https://issues.apache.org/jira/browse/CB-2225
> Project: Apache Cordova
> Issue Type: Bug
> Components: iOS
> Reporter: Shazron Abdullah
> Assignee: Andrew Grieve
> Fix For: 2.4.0
>
> Attachments: www-cb-2102.zip
>
>
> See CB-2102.
> Attached www-cb-2102.zip which I tested with Cordova 2.3.0.
> Repro:
> 1. On the main index.html, touch the "UserAgent" button, observe that the UA has a numbered suffix (correct)
> 2. Touch the "About" link to go to the About page
> 3. On the About page, touch the "UserAgent" button, observe that the UA has a numbered suffix (correct, it's the same as in (1))
> 4. Touch the "English" link, this will load a PDF in the InAppBrowser
> 5. Touch the "Done" button in the InAppBrowser to dismiss it
> 6. Now you are back to the "About" page, touch the "UserAgent" button again, and note that the UA is not the same as expected in (3)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira