Commit Graph

775 Commits

Author SHA1 Message Date
Grace Kloba
51b97011b7 cherry-pick 4a4f9886a7 into froyo
Use the content width to calculate the zoom overview
width. We used to use the minimum preferred width
to calculate the overview width as it is what we
use to define the viewport width. But some sites,
like cbsnews, engadget, the content width will be
slightly wider than the viewport width decided by
the min preferred width. The result is we can still
scroll a little bit in the overview mode. This issue
is magnified when we introduce the overscroll feature.

By using content width as zoom overview width, we
will have content fit in the overview mode. But
some sites, like
"http://www.sfjazz.org/concerts/2010/spring/artists/towner.php"
will be layout wider in the overview mode than it
is in the zoom in state. This is a tradeoff.

Fix http://b/issue?id=2551119
2010-03-29 09:32:36 -07:00
Leon Clarke
7c3006f53a http://b/issue?id=2496591
When receiving a message to delete the root layer, delay it until the next
new picture message, so that the layers only disappear when we start displaying
the new page, and not the moment the DOM on the old page is destroyed.
2010-03-29 16:49:16 +01:00
Grace Kloba
378f028000 Remove long_press when WebView lost window focus.
Reset touch mode too.

Fix http://b/issue?id=2542711.

Also move dismissZoomControl() before calling
super.onDetachedFromWindow(). This is a guess to
fix http://b/issue?id=2547574
2010-03-26 15:01:30 -07:00
Grace Kloba
7e8bc24f62 cherry-picked bf4650ca39 to froyo
According to GMail profile, almost half of WebView
init time is spent in creating the zoomControl which
is not used by them. So change to lazy initialize
the ZoomButtonControl which will be used by Browser.

Fix http://b/issue?id=2546481
2010-03-26 11:44:48 -07:00
Patrick Scott
661a19765b Merge "Add .3gpp as the preferred extension for video/3gpp." 2010-03-25 13:27:57 -07:00
Patrick Scott
c9048a683d Add .3gpp as the preferred extension for video/3gpp.
As it appears earlier in the list, .3gpp will be used as the extension for
video/3gpp mime types.

Bug: 2542939
Change-Id: I7d9188b460774af7bc29f4e8f1ebada43bf2ed10
2010-03-25 16:18:05 -04:00
Steve Block
c6a90a59b3 Provides ability to store HTTP authentication credentials supplied to an XHR from JavaScript
This change forwards to the WebViewClient HTTP authentication credentials that
are supplied to an XHR from JavaScript. This allows the client to store these
credentials for use with later requests.

Currently, the browser only stores credentials that have been entered manually
by the user through the authentication dialog.

Bug: 2544330
Change-Id: I913e35d80b7ad41ff75586092408b86ea9f543d8
2010-03-25 18:18:36 +00:00
Grace Kloba
26f1faa122 Turn on plugin signature checking.
Fix http://b/issue?id=2465450
2010-03-25 10:25:59 -07:00
Patrick Scott
11f5738424 Use ViewRoot.addConfigCallback instead of a BroadcastReceiver.
Store a list of Handlers in a global ComponentCallbacks instance. Use
WeakReference to avoid leaking BrowserFrame objects.

Bug: 2542935
Change-Id: I67b102288f47f9fa6e855ba6558f2b1d611e8427
2010-03-25 11:51:37 -04:00
Grace Kloba
9c4750a676 Draw a hairline border in the overscroll mode.
Fix http://b/issue?id=2542449
2010-03-25 08:32:22 -07:00
Grace Kloba
1cd1c8e8be There are two computeHorizontalScrollRange() got
missed in the last conversion.

Fix http://b/issue?id=2542555
2010-03-24 18:05:37 -07:00
Patrick Scott
dbde425e21 Use the Display orientation rather than the accelerometer.
Register to receive configuration changes and query the Display rotation as that
will reflect both device orientation and an open keyboard.

Bug: 2219138
Change-Id: Ibd6119ae0c7d473e1a9ede3af24bb4b584c9db71
2010-03-24 16:03:56 -04:00
Steve Block
ea08c51354 Fixes XHR requests to use the username and password supplied from JavaScript
Currently, the browser does not use the credentials supplied from JavaScript.
If a request returns a 401 Unauthorized, the browser always prompts the user.
This violates http://www.w3.org/TR/XMLHttpRequest/#the-send-method

Bug: 2533522
Change-Id: I8e72c1a0be187d193c4ad6b2ca8a624c7ae06fa1
2010-03-24 18:22:32 +00:00
Steve Block
c76bfa5bb5 Fixes synchronous XHR requests which require authentication to complete synchronously
Bug: 2540515
Change-Id: I58eebdf2db9388f66c75d86dc26b8055f513b038
2010-03-24 17:49:42 +00:00
Leon Scroggins
1bb1a911c3 If failUrl(now historyUrl) is null, use "about:blank" instead of "".
This prevents a crash that is caused by calling
WebView.loadDataWithBaseUrl with a null failUrl (which I have renamed
to historyUrl).  Also update the docs to be more accurate.

Fixes the general case of bug 2522457

Change-Id: I832351ce1e0016b00e924a2f9b0097ae15fba34a
2010-03-24 10:25:40 -04:00
Leon Clarke
7f49b9e474 Merge "Fix for when flash loads cached crossdomain.xml files. Cache the x-permitted-cross-domain-policies header. http://b/issue?id=2519669" 2010-03-24 05:09:53 -07:00
Adam Powell
2cd5c59b5a Make WebView scroll bars compress during overscroll.
Change-Id: Ia0caaf67088134efa78b5a0c87fea7a9be93f467
2010-03-23 16:34:34 -07:00
Patrick Scott
300f2e95a4 Add on-demand setting for plugins.
Deprecate the old apis for enabling plugins in favor of the multi-state plugin
flag. Add the assets for WebView to display the plugin placeholder for on-demand
plugins.

Bug: 2411524
Change-Id: I5a35cc6d0afced1489f54d4dcb8bb92d36de52d8
2010-03-23 16:35:37 -04:00
Derek Sollenberger
1fa70928d3 fixing problem with allocating too much memory to a surface by fixing
the size of the surface when it exceeds a threshold and resizing the
surface when it falls beneath the threshold.

This change also causes the surface to fix its size while it is
being zoomed in order to prevent the surface from getting multiple
surfaceChangedEvents as the result of a zoom.  This also allows us
to have a smooth zoom animation for the surface.

Change-Id: I30e208f98d3a32660032bf1df9de77d0a813d756
2010-03-23 15:34:33 -04:00
Leon Clarke
60708a7512 Fix for when flash loads cached crossdomain.xml files.
Cache the x-permitted-cross-domain-policies header.
http://b/issue?id=2519669
2010-03-23 18:36:58 +00:00
Mike Reed
b64f6f8953 only send new visiblerect and size on onscrollchanged if we're not in overscroll mode
Change-Id: Ifa290121db8f0a3612f40c40bab4f92494ce93df
2010-03-23 11:43:02 -04:00
Shimeng (Simon) Wang
4d8ef42003 Check mWebViewCore to prevent potential NPE.
Bug:2532493
Change-Id: I917c57dced8638f36252638bb9814e26cdbc2768
2010-03-22 17:06:17 -07:00
Ben Murdoch
5b494c1ca4 Add an API on the Java side to allow WebKit to pause the current load. This is used when the plugin is streaming data but it's
buffer is full. In that case, WebCore instructs the laoder to pause loading to give the plugin a chance to clear it's buffer and
continue.

Requires an external/webkit change.

Change-Id: Iec96a6325d92e979cbdc53289c2a20cad940ded2
2010-03-22 20:50:16 +00:00
Leon Scroggins
0fc140431d Close Cursors in finally blocks.
Fix for http://b/issue?id=2533750

Change-Id: I3ebcc6147e4035ce1c4bf6b76a359ce14196e357
2010-03-22 16:33:07 -04:00
Cary Clark
ac96fa575f use the stream instead of the cursor data to return its size
Most content providers set up the data size in the cursor that
provides the file name, but sound recorder does not. Use the
stream size instead, which will work with all sources and
probably is no slower.

fixes http://b/2529352 http://b/2524574

Change-Id: I32d101d07ca1d0fa2ff17c3c68393356902096d3
2010-03-22 11:12:46 -04:00
Steve Block
547b83328e Merge "Implements layoutTestController.setAppCacheMaximumSize" 2010-03-22 03:44:09 -07:00
Grace Kloba
cad9ab60ce In some case, like in Email, the WebView can be
detached from Window long after it is destroyed.
As we freed the native side by setting mWebViewCore
to null, we can't access settings any more. In this
case, just hide both styles of zoom control.

Fix http://b/issue?id=2532401
2010-03-21 14:05:14 -07:00
Steve Block
427efcca19 Implements layoutTestController.setAppCacheMaximumSize
Change-Id: Ib64123738bc384213ef80e2e60e4a0d9407c09d8
2010-03-20 11:03:53 +00:00
Grace Kloba
7865fa9724 As http header can't be empty, check length before
setting lastModified and etag to the cacheResult.

Fix http://b/issue?id=2531047
2010-03-19 19:48:28 -07:00
Grace Kloba
ee8500eeb0 Don't overscroll horizontally if the content just
fit in the WebView.

Fix http://b/issue?id=2530843
2010-03-19 19:40:17 -07:00
Grace Kloba
21817f6e29 Explicitly dismiss the zoom control if
1. start double tap
 2. start pinch
 3. start a popup window
 4. about to detach from window
 5. WebView size change which happens when IME is up
    or rotation changed.

Partial fix http://b/issue?id=2530401. Dismiss the
zoom control of the main window when bringing up
the sub window
2010-03-19 19:36:35 -07:00
Patrick Scott
1bb63afca1 Merge "Compare the cookie names to ensure a consistent ordering." 2010-03-19 17:59:39 -07:00
Brian Carlstrom
dba8cb7637 b/2511635 Browser displays incorrect SSL cert information
Two more cases of "View certificate" problems like b/2511635

One problem is that if there are multiple resources downloaded for a
page. In that case the mCertificate shown ends up being from the last
loaded resource instead of the main resource of the page. The solution
is to only set the certificate if the LoadListener is the
mIsMainResourceLoader as well as the mIsMainPageLoader.

A larger problem was the fact that the EventHandler.certificate
interface method (in this case the LoadListener.certificate
implementation) once per https connection instead of once per request
as was documented. That meant if an https connection was reused (which
happens frequently on login pages such as
https://www.google.com/accounts which use the POST -> redirect -> GET
idiom to avoid POST data page refresh warnings) then later pages never
were associated with an SslCertificate.

The solution was to change EventHandler.certificate to be called once
per request, specifcally before the request. This means we no longer
call the certificate method in the handleSslErrorRequest case, which
is okay because it includes the SslCertificate within the SslError and
that is what the BrowserActivity expects.

Change-Id: Icbd9bd98c89db82762d1d06de85e1cde2470300d
2010-03-19 17:09:01 -07:00
Grace Kloba
f4418b0113 Change api for webview overscroll background. 2010-03-19 16:18:25 -07:00
Mike Reed
e5e63f4921 remove special-case logic to allow the titlebar to always scroll off the screen. This means that we
now won't force pages to resize due to scrolling.

fixes http://b/issue?id=2512549

Change-Id: Icd91d032ccfc78db6011f293b33543ff2f27f3cf
2010-03-19 15:54:20 -04:00
Patrick Scott
06312cae6b Compare the cookie names to ensure a consistent ordering.
Comparing the hash code provided a consistent order but it was not a logical,
testable order as the hash code was not related to lexicographic ordering.

Remove a spurious '=' from a comment.

Bug: 2527671
Change-Id: Ia2248cb8acbc4d5759a624eec13da3837f7406b8
2010-03-19 15:40:05 -04:00
Grace Kloba
bb1934a5ba Merge "Change overscroll background to be same as status bar pulldown." 2010-03-19 10:41:01 -07:00
Steve Block
d12b232575 Merge "Fix HttpAuthHandler for synchronous requests" 2010-03-19 08:47:56 -07:00
Cary Clark
cfe688d8d9 create absolute layout if view layout can't be reused
The existing view layout may not be an absolute layout,
and will throw a ClassCastException. Check to see if it
is compatible before the cast.

Change-Id: I7309600a1e7405a29e49a3bab469a164d51126ae
http://b/2526854
2010-03-19 10:52:41 -04:00
Steve Block
c877c6b87a Fix HttpAuthHandler for synchronous requests
When HttpAuthHandler queries the WebViewClient to obtain a username and
password, we need to make sure that this is done synchronously when the request
is synchronous.

Bug: 2511043
Change-Id: I9ff2156cfb3c81edaf4a50ec7094a00a8f8ff91f
2010-03-19 13:48:49 +00:00
Grace Kloba
f8338d4a98 Change overscroll background to be same as status
bar pulldown.

Fix http://b/issue?id=2520825
2010-03-18 23:00:51 -07:00
Leon Scroggins
b415779e3b Pass selection data with the message to open the keyboard.
Fix for http://b/issue?id=2431351

Requires a change to external/webkit.

Change-Id: I501c3b1a9ae602458b830d34f779ccedf51dba9b
2010-03-18 12:51:08 -04:00
Cary Clark
e84a0db030 simplify utility to hit-test focused plugin
After about 4 taps, this starts to return that the tap was
in the plugin. Before that, the plugin doesn't have focus.
Derek may want to verify that everything is working as it
should -- maybe it just takes that long for webkit to take
focus.

companion fix in external/webkit

Change-Id: I80ffba6c55876b0af9c305c539a10e8e8ed7cb3c
http://b/2521087
2010-03-18 08:46:41 -04:00
Adam Powell
8a836a8b98 Eliminate haptic feedback when hitting an overscroll barrier due to a fling.
Change-Id: I434ec3edd95a19677ad9dbd1ac5ca3f3f5d091cb
2010-03-17 20:33:07 -07:00
Leon Scroggins
69a63b0c52 Allow the shift key to be passed to plugin.
Fix for http://b/issue?id=2519667

Do not return so that we can fall through and pass the shift up
to the page.

Change-Id: Ib3c07f2d39e772f88dd6eee6390034e5a3e3e026
2010-03-17 09:57:19 -04:00
Steve Block
247c065aec Merge "Fix loading from the cache for synchronous requests" 2010-03-16 15:42:14 -07:00
Steve Block
0b43747206 Fix loading from the cache for synchronous requests
This fixes crashes in several XHR layout tests.

Bug: 2218794
Change-Id: Iebe3a2d19f1fa43b8d9c9d7763e818f7195b8ceb
2010-03-16 22:31:52 +00:00
Brian Carlstrom
4ab72cb7e7 b/2511635 Browser displays incorrect SSL cert information
WebView's mCertificate member was not cleared when going to new
pages. Rather than clearing mCertificate as was done in previously in
WebView.goBackOrForward, we now clear when CallbackProxy receives a
PAGE_STARTED message.

This problem was highlighted whenever we went to a https page that was
in the cache, since the cache does not store certificate information,
so "More > Page Info > View Certifcate" was showing the certificate of
the last non-cached page because it had not been cleared. See also
b/2516638 "SslCertificate information not cached by CacheManager"

Change-Id: I40284f22ceb7150a6b20ecc2741f6153ed9a3276
2010-03-16 15:14:22 -07:00
Grace Kloba
1e65d9e561 Use float instead of cast to int when calculating
the new zoom center. This should avoid the rounding
difference which caused the video in nytimes.com
not fully fit in the current view.

Fix http://b/issue?id=2512510
2010-03-16 14:21:21 -07:00
Derek Sollenberger
d222a16286 Plugin surfaces will be limited to 270% of the devices screen size.
Change-Id: I7e5ff1f5b8919b9e2e70a703009f9544f457a0e1
2010-03-16 16:52:20 -04:00