shadowAncestorNode() should be renamed to deprecatedShadowAncestorNode()
[WebKit-https.git] / Source / WebKit / blackberry / ChangeLog
1 2013-01-23  Shinya Kawanaka  <shinyak@chromium.org>
2
3         shadowAncestorNode() should be renamed to deprecatedShadowAncestorNode()
4         https://bugs.webkit.org/show_bug.cgi?id=107624
5
6         Reviewed by Dimitri Glazkov.
7
8         Since Node::shadowAncestorNode() is deprecated, we would like to rename it to prevent from further use.
9
10         * Api/WebPage.cpp:
11         (BlackBerry::WebKit::WebPagePrivate::webContext):
12         * WebKitSupport/FatFingers.h:
13         (BlackBerry::WebKit::FatFingersResult::node):
14         * WebKitSupport/InPageSearchManager.cpp:
15         (BlackBerry::WebKit::InPageSearchManager::scopeStringMatches):
16
17 2013-01-22  Andrew Lo  <anlo@rim.com>
18
19         [BlackBerry] GIF & RAF animations sometimes don't resume after zoom
20         https://bugs.webkit.org/show_bug.cgi?id=107590
21
22         Reviewed by Rob Buis.
23         Internally reviewed by Jakob Petsovits.
24
25         Internal PR 276907.
26         Dispatch render jobs when resuming backing store updates to perform jobs
27         queued when updates were suspended.
28
29         * Api/BackingStore.cpp:
30         (BlackBerry::WebKit::BackingStorePrivate::resumeBackingStoreUpdates):
31
32 2013-01-21  Nima Ghanavatian  <nghanavatian@rim.com>
33
34         [BlackBerry] Skip spell checking on single character strings
35         https://bugs.webkit.org/show_bug.cgi?id=107463
36
37         Reviewed by Yong Li.
38
39         Check for a minimum string length when firing off spellcheck since we don't
40         want to mark single letter words.
41
42         Internally reviewed by Mike Fenton.
43
44         * WebKitSupport/InputHandler.cpp:
45         * WebKitSupport/SpellingHandler.cpp:
46         (BlackBerry::WebKit::SpellingHandler::createSpellCheckRequest):
47         (BlackBerry::WebKit::SpellingHandler::parseBlockForSpellChecking):
48
49 2013-01-20  Charles Wei  <charles.wei@torchmobile.com.cn>
50
51         [BlackBerry] some websites only takes half of the screen after rotating from landscape to portrait mode.
52         https://bugs.webkit.org/show_bug.cgi?id=107103
53
54         Reviewed by George Staikos.
55         Internally reviewed by Jacky Jiang.
56
57         When the document size changes (by some javascript) which makes it too small to fit the viewport, we should
58         automatically zoom it to fit the viewport.
59
60         * Api/WebPage.cpp:
61         (BlackBerry::WebKit::WebPagePrivate::layoutFinished):
62
63 2013-01-20  Tiancheng Jiang  <tijiang@rim.com>
64
65         [BlackBerry] Improve Fatfinger phase.
66         https://bugs.webkit.org/show_bug.cgi?id=107403
67
68         Reviewed by Rob Buis.
69
70         RIM PR 219489
71         Internally reviewd by Mike Fenton & Gen Mak.
72
73         Treat ClickableByDefault and MadeClickableByTheWebpage elements as
74         same category. Avoid unnecessary nodes check step.
75
76         * WebKitSupport/FatFingers.cpp:
77         (BlackBerry::WebKit::FatFingers::isElementClickable):
78         (BlackBerry::WebKit::FatFingers::FatFingers):
79         (BlackBerry::WebKit::FatFingers::findBestPoint):
80         (BlackBerry::WebKit::FatFingers::getNodesFromRect):
81         * WebKitSupport/FatFingers.h:
82
83 2013-01-18  Andrew Lo  <anlo@rim.com>
84         [BlackBerry] When acquiring/releasing backing store memory, allow web page client control suspend/resuming of backing store
85         https://bugs.webkit.org/show_bug.cgi?id=107307
86
87         Reviewed by Rob Buis.
88         Internally reviewed by Jakob Petsovits.
89
90         Internal PR276660
91         Have BackingStore::createBackingStoreMemory & releaseBackingStoreMemory only
92         acquire & release the surface pool. It doesn't matter if either is called
93         redundantly since SurfacePool has internal state to protect against that.
94
95         Resuming & suspending backing store and screen updates will be handled by
96         the WebPageClient.
97
98         * Api/BackingStore.cpp:
99         (BlackBerry::WebKit::BackingStore::acquireBackingStoreMemory):
100         (BlackBerry::WebKit::BackingStore::releaseOwnedBackingStoreMemory):
101         * Api/BackingStore.h:
102
103 2013-01-18  Nima Ghanavatian  <nghanavatian@rim.com>
104
105         [BlackBerry] Set spellchecking calculations on a timer to free up the WebKit thread
106         https://bugs.webkit.org/show_bug.cgi?id=107284
107
108         Reviewed by Rob Buis.
109
110         PR282351
111         Firing off spellcheck requests is tieing up the WebKit thread for an
112         extended period of time. In testing with large blocks of text, this
113         can be in the matter of 5-10 seconds. Though we are using asynchronous
114         spellchecking, the process in which we break down blocks of text based
115         on input_service limitations is the issue.
116         Using a timer here which fires with an arbitrary timeout to allow for
117         focus and interaction to maintain at a reasonable level.
118         Further, pulling this code out of InputHandler and into its own class.
119
120         Internally reviewed by Mike Fenton and Gen Mak.
121
122         * WebKitSupport/InputHandler.cpp:
123         (BlackBerry::WebKit::InputHandler::InputHandler):
124         (BlackBerry::WebKit::InputHandler::~InputHandler):
125         (BlackBerry::WebKit::InputHandler::callRequestCheckingFor):
126         (WebKit):
127         (BlackBerry::WebKit::InputHandler::requestCheckingOfString):
128         (BlackBerry::WebKit::InputHandler::spellCheckingRequestProcessed):
129         (BlackBerry::WebKit::InputHandler::shouldRequestSpellCheckingOptionsForPoint):
130         (BlackBerry::WebKit::InputHandler::setElementUnfocused):
131         (BlackBerry::WebKit::InputHandler::setElementFocused):
132         * WebKitSupport/InputHandler.h:
133         (WebCore):
134         (WebKit):
135         (InputHandler):
136         * WebKitSupport/SpellingHandler.cpp: Added.
137         (WebKit):
138         (BlackBerry::WebKit::SpellingHandler::SpellingHandler):
139         (BlackBerry::WebKit::SpellingHandler::~SpellingHandler):
140         (BlackBerry::WebKit::SpellingHandler::spellCheckTextBlock):
141         (BlackBerry::WebKit::SpellingHandler::createSpellCheckRequest):
142         (BlackBerry::WebKit::SpellingHandler::parseBlockForSpellChecking):
143         (BlackBerry::WebKit::SpellingHandler::getRangeForSpellCheckWithFineGranularity):
144         * WebKitSupport/SpellingHandler.h: Added.
145         (WebCore):
146         (WebKit):
147         (SpellingHandler):
148         (BlackBerry::WebKit::SpellingHandler::isSpellCheckActive):
149         (BlackBerry::WebKit::SpellingHandler::setSpellCheckActive):
150
151 2013-01-18  Nima Ghanavatian  <nghanavatian@rim.com>
152
153         [BlackBerry] Check if continuous spellchecking is enabled before processing a request
154         https://bugs.webkit.org/show_bug.cgi?id=107169
155
156         Reviewed by Rob Buis.
157
158         PR265815
159         We set this value based on the global settings page. The
160         spellcheck-on-focus codepath did not hit this, so focusing a
161         field would not uphold the setting.
162
163         Internally reviewed by Mike Fenton and Gen Mak.
164
165         * WebKitSupport/DOMSupport.cpp:
166         (BlackBerry::WebKit::DOMSupport::elementHasContinuousSpellCheckingEnabled):
167         (DOMSupport):
168         * WebKitSupport/DOMSupport.h:
169         * WebKitSupport/InputHandler.cpp:
170         (BlackBerry::WebKit::InputHandler::spellCheckingRequestProcessed):
171
172 2013-01-18  Seokju Kwon  <seokju.kwon@gmail.com>
173
174         Add explicit keyword to constructors in platform-specific InspectorClient
175         https://bugs.webkit.org/show_bug.cgi?id=107255
176
177         Reviewed by Kentaro Hara.
178
179         Add explicit keyword to constructors that take one argument
180         in platform-specific implementation of InspectorClient.
181
182         * WebCoreSupport/InspectorClientBlackBerry.h:
183         (InspectorClientBlackBerry):
184
185 2013-01-18  Andrew Lo  <anlo@rim.com>
186
187         [BlackBerry] Assert failing in RenderQueue::renderScrollZoomJobs
188         https://bugs.webkit.org/show_bug.cgi?id=107215
189
190         Reviewed by Rob Buis.
191         Internally reviewed by Jakob Petsovits.
192
193         Internal PR276660
194         Render jobs should not be performed if the backing store is inactive.
195
196         This occured when the browser was invoked, causing a web page to be made
197         visible before the surface pool was resumed.
198
199         * Api/BackingStore.cpp:
200         (BlackBerry::WebKit::BackingStorePrivate::shouldPerformRenderJobs):
201
202 2013-01-17  Yong Li  <yoli@rim.com>
203
204         [BlackBerry] InRegionScroller should notify client before it deletes all the scrollables
205         https://bugs.webkit.org/show_bug.cgi?id=107162
206
207         Reviewed by Rob Buis.
208         Internally reviewed by Gen Mak and Mike Fenton.
209
210         Move the notification code from notifyInRegionScrollStopped() to reset() as there are
211         other places where reset() gets called.
212
213         * Api/InRegionScroller.cpp:
214         (BlackBerry::WebKit::InRegionScrollerPrivate::reset):
215         * Api/WebPage.cpp:
216         (BlackBerry::WebKit::WebPagePrivate::notifyInRegionScrollStopped):
217
218 2013-01-17  Mike Fenton  <mifenton@rim.com>
219
220         [BlackBerry] Fix selection handle appearance for RTL text.
221         https://bugs.webkit.org/show_bug.cgi?id=107043
222
223         Reviewed by Rob Buis.
224
225         PR 263585.
226
227         Invert the reported selection handle position if to match
228         the visual order instead of the logical order to create the
229         desired appearance for RTL text and directional selections.
230
231         Reviewed Internally by Gen Mak and Nima Ghanavatian.
232
233         * WebKitSupport/SelectionHandler.cpp:
234         (BlackBerry::WebKit::SelectionHandler::selectionPositionChanged):
235
236 2013-01-16  Charles Wei  <charles.wei@torchmobile.com.cn>
237
238         [BlackBerry] Need to adjust the scale and scroll position after leaving fullscreen mode if there's
239         device rotation in fullscreen mode
240         https://bugs.webkit.org/show_bug.cgi?id=107085
241
242         Reviewed by George STaikos.
243         Also internally reviewed by Jacky Jiang.
244
245         We saved the scale and scroll position before entering full screen mode, so that we can restore
246         them after leaving fullscreen mode, because entering fullscreen mode automatically changes the 
247        scale to make the video to fit to the viewport. But if there's device rotation during the fullscreen,
248        the scale and scroll position saved before may or may not apply anymore, we need to adjust the
249        scale and/or scroll position if needed to make sure no over-scale or over-scroll in the new orientation.
250
251         * Api/WebPage.cpp:
252         (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
253         (BlackBerry::WebKit::WebPagePrivate::enterFullScreenForElement):
254         * Api/WebPage_p.h:
255         (WebPagePrivate):
256
257 2013-01-16  Joe Mason  <jmason@rim.com>
258
259         [BlackBerry] Remove bogus assert in GeolocationClientBlackBerry
260         https://bugs.webkit.org/show_bug.cgi?id=105651
261
262         Reviewed by Darin Adler.
263
264         GeolocationClientBlackBerry::cancelPermissionRequest contains an ASSERT that the origin is
265         in m_geolocationRequestMap. But it's perfectly valid for the origin to not be in the map -
266         for instance, if GeolocationClientBlackBerry::requestPermission returned immediately,
267         without putting it in the map, because geolocation was disabled. In this case the correct
268         thing to do is just return - there is nothing to be done to cancel the permission.
269
270         * WebCoreSupport/GeolocationClientBlackBerry.cpp:
271         (GeolocationClientBlackBerry::cancelPermissionRequest):
272
273 2013-01-15  Mike Fenton  <mifenton@rim.com>
274
275         [BlackBerry] Don't overwrite field dir with current locale.
276         https://bugs.webkit.org/show_bug.cgi?id=106932
277
278         Reviewed by Yong Li.
279
280         PR 212267.
281
282         Remove uncalled onInputLocaleChanged and stop re-writing the dir
283         on input focus which prevented RTL fields from rendering properly.
284
285         Reviewed Internally by Eli Fidler.
286
287         * Api/WebPage.cpp:
288         * Api/WebPage.h:
289         * Api/WebPage_p.h:
290         (WebPagePrivate):
291         * WebKitSupport/InputHandler.cpp:
292         * WebKitSupport/InputHandler.h:
293         (InputHandler):
294
295 2013-01-15  Jacky Jiang  <zhajiang@rim.com>
296
297         [BlackBerry] Manual zoom propagates to next page load
298         https://bugs.webkit.org/show_bug.cgi?id=106914
299
300         Reviewed by Yong Li.
301         Internally reviewed by Eli Fidler and Jakob Petsovits.
302
303         PR: 280481
304         During load committed, the web page scale was reset. However, UI thread
305         still kept the old scale in UserInterfaceViewportAccessor so that it
306         blitted the contents at the old scale although WebKit thread could
307         update the UI thread scale later when finished the load.
308         We should update the scale of the UI thread right after we reset it in
309         WebKit thread to keep them in sync.
310
311         * Api/WebPage.cpp:
312         (BlackBerry::WebKit::WebPagePrivate::resetScales):
313
314 2013-01-14  Otto Derek Cheung  <otcheung@rim.com>
315
316         [BlackBerry] FCC appears when switching search engine providers
317         https://bugs.webkit.org/show_bug.cgi?id=106824
318
319         Magnifying glass appears when switching search engine providers
320
321         PR 279178
322
323         Reviewed by Rob Buis.
324         Internal Reviewed by Mike Fenton.
325
326         We need to make sure fatfinger is touching a textfield when we tell notifyCaretChanged
327         to show the FCC.
328
329         This behaviour is accidentally regressed in the fix in PR 267177, causing the FCC to show
330         when the user touches an element that is not a textfield and changes the caret in the inputbar..
331
332         Tested that the behaviour in 267177 isn't reproducible and the FCC isn't invoked when we switch
333         search engine providers.
334
335         * WebKitSupport/SelectionHandler.cpp:
336         (BlackBerry::WebKit::SelectionHandler::caretPositionChanged):
337
338 2013-01-14  Jacky Jiang  <zhajiang@rim.com>
339
340         [BlackBerry] Zoom is still possible when user-scalable=no
341         https://bugs.webkit.org/show_bug.cgi?id=106809
342
343         Reviewed by George Staikos.
344
345         PR: 274566
346         On wordpress.com, the contents were rendered at the width 343 which was
347         1 css pixel larger than the expected device-width 342 so that we didn't
348         respect the viewport.
349         There was a RenderBlock on the page which contained "\n" and an
350         inline-block. "\n" took 0.78 width and the inline-block took 342 width
351         and they were unfortunately placed in the same InlineBox which caused
352         the contents width 1 css pixels larger than the device-width.
353         Allow the contents width to be 1 css pixel larger and still respect the
354         viewport in such a special case.
355
356         * Api/WebPage.cpp:
357         (BlackBerry::WebKit::WebPagePrivate::respectViewport):
358
359 2013-01-13  Xiaobo Wang  <xbwang@torchmobile.com.cn>
360
361         [BlackBerry] Add a public function WebPage::isLoading()
362         https://bugs.webkit.org/show_bug.cgi?id=106751
363
364         PR 274392
365
366         Reviewed by George Staikos.
367
368         Need to get the load state in WebPageClient when resolving PR 274392.
369
370         * Api/WebPage.cpp:
371         (BlackBerry::WebKit::WebPage::isLoading):
372         (WebKit):
373         * Api/WebPage.h:
374
375 2013-01-11  Andrew Lo  <anlo@rim.com>
376
377         [BlackBerry] Focus zoom animation doesn't occur on devices with physical keyboard
378         https://bugs.webkit.org/show_bug.cgi?id=106719
379
380         Reviewed by Yong Li.
381         Internally reviewed by Mike Fenton.
382
383         Internal PR 278687
384
385         Always ensureFocusTextElementVisible if an element is focused when
386         the device has a physical keyboard.
387
388         * WebKitSupport/InputHandler.cpp:
389         (BlackBerry::WebKit::InputHandler::setElementFocused):
390
391 2013-01-11  Otto Derek Cheung  <otcheung@rim.com>
392
393         [BlackBerry] Modifying the databaseQuota call to WebPageClient
394         https://bugs.webkit.org/show_bug.cgi?id=106703
395
396         Reviewed by Yong Li.
397
398         The databaseQuota call in WebPageClientImpl is modified to take in
399         BP:Strings directly. Also, we want to use the origin URL from the security origin.
400         Not the database identifier.
401
402         * Api/WebPageClient.h:
403         * WebCoreSupport/ChromeClientBlackBerry.cpp:
404         (WebCore::ChromeClientBlackBerry::exceededDatabaseQuota):
405
406 2013-01-10  Yongxin Dai  <yodai@rim.com>
407
408         [BlackBerry] Handle the case that start/end position is out of unclipped selection region
409         https://bugs.webkit.org/show_bug.cgi?id=106486
410
411         Reviewed by Rob Buis.
412
413         PR #270624
414         Unclipped selection region should cover start/end position of the selection.
415         Since we exclude hidden text when calculating unclipped selection region, the
416         start/end position can be out of unclipped selection region if it is for hidden
417         text. If that is the case, start/end handle will be invisible. To avoid invisible
418         handle, we take unclipped selection region as reference rectangle in the case.
419
420         Internally reviewed by Genevieve Mak, Mike Fenton
421
422         * WebKitSupport/SelectionHandler.cpp:
423         (BlackBerry::WebKit::referencePoint):
424
425 2013-01-09  Genevieve Mak  <gmak@rim.com>
426
427         [BlackBerry] Useless if statement check
428         https://bugs.webkit.org/show_bug.cgi?id=106113
429
430         Reviewed by Yong Li.
431
432         Remove stray ! in if statement which was mistakenly left in during
433         refactoring. Since Injected events are checked before they are sent to
434         webkit, it didn't have an effect on behaviour.
435
436         * Api/WebPage.cpp:
437         (BlackBerry::WebKit::WebPage::touchEvent):
438
439 2013-01-08  Otto Derek Cheung  <otcheung@rim.com>
440
441         [BlackBerry] Removing the totalusage variable in ChromeClientBB::exceededDatabaseQuota
442         https://bugs.webkit.org/show_bug.cgi?id=106370
443
444         Reviewed by Yong Li.
445
446         Removing totalUsage in ChromeClientBlackBerry as we no longer use that variable.
447
448         * WebCoreSupport/ChromeClientBlackBerry.cpp:
449         (WebCore::ChromeClientBlackBerry::exceededDatabaseQuota):
450
451 2013-01-08  Jacky Jiang  <zhajiang@rim.com>
452
453         [Blackberry][FullScreen] Create a helper method to adjust the fullscreen renderer dimensions
454         https://bugs.webkit.org/show_bug.cgi?id=91748
455
456         Reviewed by Antonio Gomes.
457
458         PR: 195524
459         The was originally from Antonio Gomes on PR195524. Bug 105488 has
460         partially upstreamed that patch. This patch upstreams the rest of it.
461
462         * Api/WebPage.cpp:
463         (BlackBerry::WebKit::WebPagePrivate::updateViewportSize):
464         (BlackBerry::WebKit::WebPagePrivate::notifyTransformedScrollChanged):
465         * Api/WebPage_p.h:
466         (WebPagePrivate):
467         * WebCoreSupport/ChromeClientBlackBerry.cpp:
468         (WebCore::ChromeClientBlackBerry::fullScreenRendererChanged):
469
470 2013-01-08  Mark Lam  <mark.lam@apple.com>
471
472         Removed the need for the ProposedDatabase mechanism.
473         https://bugs.webkit.org/show_bug.cgi?id=106292.
474
475         Reviewed by Sam Weinig.
476
477         * WebCoreSupport/ChromeClientBlackBerry.cpp:
478         (WebCore::ChromeClientBlackBerry::exceededDatabaseQuota):
479         * WebCoreSupport/ChromeClientBlackBerry.h:
480         (ChromeClientBlackBerry):
481
482 2013-01-08  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>
483
484         [BlackBerry] Can't select text out of current focused input
485         https://bugs.webkit.org/show_bug.cgi?id=106322
486
487         Reviewed by Rob Buis.
488
489         PR270755
490         Internally reviewed by Mike Fenton
491
492         When selection changed, the selection handler clips new selection with
493         current focused node's boundary. So we clear focus before selectObject.
494         This patch clear focus when selectObject is at a point but not at a node.
495
496         * WebKitSupport/SelectionHandler.cpp:
497         (BlackBerry::WebKit::SelectionHandler::selectObject):
498
499 2013-01-08  Steve Block  <steveblock@chromium.org>
500
501         Rename 'IntSize toSize(const IntPoint&)' to 'toIntSize'
502         https://bugs.webkit.org/show_bug.cgi?id=106307
503
504         This matches other method names which distinguish between sizes and
505         points. See https://bugs.webkit.org/show_bug.cgi?id=105992#c4.
506
507         Reviewed by Kentaro Hara.
508
509         * Api/InRegionScroller.cpp:
510         (BlackBerry::WebKit::InRegionScrollerPrivate::setLayerScrollPosition):
511
512 2013-01-07  Genevieve Mak  <gmak@rim.com>
513
514         [BlackBerry] Touch Events are falling through fullscreen video
515         https://bugs.webkit.org/show_bug.cgi?id=106112
516
517         Reviewed by Rob Buis.
518
519         Reviewed Internally by Jakob Petsovits.
520         PR #274326
521         Do not do viewport centering calculations if in fullscreen video.
522         The offset should be zero.
523
524         * Api/WebPage.cpp:
525         (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
526
527 2013-01-07  Jacky Jiang  <zhajiang@rim.com>
528
529         [BlackBerry] Roll out r136173 as there are alternative approaches from the client sides now
530         https://bugs.webkit.org/show_bug.cgi?id=106236
531
532         Unreviewed, rolling out r136173.
533         This becomes unnecessary now as there are alternative approaches to
534         solve the issue from the client sides.
535
536         * WebCoreSupport/ChromeClientBlackBerry.cpp:
537         (WebCore::ChromeClientBlackBerry::createWindow):
538
539 2013-01-07  Jakob Petsovits  <jpetsovits@rim.com>
540
541         [BlackBerry] Never avoid blitting when one-shot drawing sync is involved.
542         https://bugs.webkit.org/show_bug.cgi?id=106225
543         RIM PR 274948
544
545         Reviewed by George Staikos.
546         Based on a patch by Chris Guan.
547
548         didRenderContent() has a mechanism to avoid double blits;
549         when scrolling or zooming is enabled then we don't issue
550         blitContents() as the client would (continually) do that
551         already.
552
553         However, since r138024, didRenderContents() also deals
554         with one-shot drawing synchronization and commits.
555         When these are required, we can't just skip out or the
556         backingstore and overlaying composited layers are likely
557         to get out of sync. The condition also doesn't make much
558         sense for direct rendering as no blit calls are issued
559         at all when it is enabled.
560
561         Fix the issue by limiting the impact of the scroll/zoom
562         early return to only regular blit operations.
563
564         * Api/BackingStore.cpp:
565         (BlackBerry::WebKit::BackingStorePrivate::didRenderContent):
566
567 2013-01-05  Andy Chen  <andchen@rim.com>
568
569         [BlackBerry] SelectionHandler::selectAtPoint should use last fat finger result when it is a link
570         https://bugs.webkit.org/show_bug.cgi?id=106141
571
572         Reviewed by Rob Buis.
573
574         If last fat finger result is a link, select it directly when
575         SelectionHandler::selectAtPoint is called.
576         PR 263449
577         Internally reviewed by Mike Fenton and Yongxin Dai.
578
579         * WebKitSupport/SelectionHandler.cpp:
580         (BlackBerry::WebKit::SelectionHandler::selectNodeIfFatFingersResultIsLink):
581         (WebKit):
582         (BlackBerry::WebKit::SelectionHandler::selectAtPoint):
583         * WebKitSupport/SelectionHandler.h:
584         (WebKit):
585         (SelectionHandler):
586
587 2013-01-04  Mike Lattanzio  <mlattanzio@rim.com>
588
589         [BlackBerry] Last text input caret left visible when WebView entirely loses focus.
590         https://bugs.webkit.org/show_bug.cgi?id=106124
591
592         Reviewed by George Staikos.
593
594         Internal PR 248834
595
596         There are numerous code paths that lead to repainting of the focus node
597         when the focus moves to another node, but none seem to cover the case
598         of focus leaving the document when there are no DocumentMarkers present.
599
600         * WebKitSupport/InputHandler.cpp:
601         (BlackBerry::WebKit::InputHandler::setElementUnfocused):
602
603 2013-01-04  Otto Derek Cheung  <otcheung@rim.com>
604
605         [BlackBerry]  FCC will show up as you type if you tap on the same input bar twice before typing
606         https://bugs.webkit.org/show_bug.cgi?id=106116
607
608         Reviewed by Yong Li.
609         Internal reviewed by Gen Mak.
610         PR 267177
611
612         FCC is being invoked because the fatfinger result is no longer a reliable source
613         to tell whether the caret change is caused by user touch input. Instead, we recognize all
614         notifyCaretChange calls with userTouchInput as true except when caretPositionChanged is invoked
615         by SelectionHandler:inputHandlerDidFinishProcessingChange.
616
617         * WebKitSupport/SelectionHandler.cpp:
618         (BlackBerry::WebKit::SelectionHandler::inputHandlerDidFinishProcessingChange):
619         (BlackBerry::WebKit::SelectionHandler::notifyCaretPositionChangedIfNeeded):
620         (BlackBerry::WebKit::SelectionHandler::caretPositionChanged):
621         * WebKitSupport/SelectionHandler.h:
622         (SelectionHandler):
623
624 2013-01-04  Yong Li  <yoli@rim.com>
625
626         [BlackBerry] Cached frame shouldn't access the page when being destroyed
627         https://bugs.webkit.org/show_bug.cgi?id=105942
628
629         Reviewed by George Staikos.
630
631         Fix regression of previous patch. dispatchDidHandleOnloadEvents() can be called
632         after Frame has been detached.
633
634         RIM PR# 271237.
635
636         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
637         (WebCore::FrameLoaderClientBlackBerry::dispatchDidHandleOnloadEvents):
638
639 2013-01-04  Nima Ghanavatian  <nghanavatian@rim.com>
640
641         [BlackBerry] Allow defaultTabEventHandler to trigger on tab
642         https://bugs.webkit.org/show_bug.cgi?id=106118
643
644         Reviewed by Yong Li.
645
646         In order to support tabbing through input elements, amongst
647         other things, we need to bipass the processing of the tab key as
648         '\t'. This will simply insert 4 spaces in the field. Remove tab
649         support from the key down map so that we don't translate it to
650         an editor command.
651
652         Internally reviewed by Mike Fenton.
653
654         * WebCoreSupport/EditorClientBlackBerry.cpp:
655         (WebCore):
656
657 2013-01-04  Mike Fenton  <mifenton@rim.com>
658
659         [BlackBerry] Enable Input Focus when handling touch events for JS
660         https://bugs.webkit.org/show_bug.cgi?id=106109
661
662         Reviewed by Yong Li.
663
664         PR 273325.
665
666         Toggle input mode active when a touch event is
667         received for JS processing to ensure state
668         is updated even when event is consumed.
669
670         Reviewed Internally by Gen Mak.
671
672         * Api/WebPage.cpp:
673         (BlackBerry::WebKit::WebPage::touchEvent):
674
675 2013-01-04  Adam Klein  <adamk@chromium.org>
676
677         Remove ENABLE_MUTATION_OBSERVERS #define
678         https://bugs.webkit.org/show_bug.cgi?id=105459
679
680         Reviewed by Ryosuke Niwa.
681
682         * WebCoreSupport/AboutDataEnableFeatures.in:
683
684 2013-01-04  Anthony Scian  <ascian@rim.com>
685
686         [Blackberry] Static code analysis warning fixes
687         https://bugs.webkit.org/show_bug.cgi?id=105679
688
689         Reviewed by Rob Buis.
690
691         Klocwork issue 959: check layer against NULL since it is used in both cases
692         of the subsequent if-stmt
693
694         * Api/InRegionScroller.cpp:
695         (BlackBerry::WebKit::InRegionScrollerPrivate::calculateInRegionScrollableAreasForPoint):
696
697 2013-01-02  Jacky Jiang  <zhajiang@rim.com>
698
699         [BlackBerry] file:/// pages don't get correct scales after several rotations and history navigations
700         https://bugs.webkit.org/show_bug.cgi?id=105996
701
702         Reviewed by George Staikos.
703
704         PR: 273541
705         When navigating back to the previous page on portrait mode, we were
706         trying to set virtual viewport after recalculation. However, we didn't
707         change the fixed layout size so that we still layouted the contents at
708         the old virtual viewport size. In this case, the old virtual viewport
709         was 570 * 293 which was set in landscape mode unfortunately. There
710         would be no chance for such kind of contents size to fit the portrait
711         mode screen size nicely.
712         This was a regression of webkit/cc31d9bad where setViewMode() was
713         removed as a noop. So just get setViewMode() back to apply the fixed
714         layout size with a little bit change as SVG document path was proved
715         invalid in that patch. Thanks to George for the float comparison change.
716         Put a FIXME as we don't have a way to save the scale precisely before
717         the rotation and history navigation currently.
718
719         * Api/WebPage.cpp:
720         (BlackBerry::WebKit::WebPagePrivate::setLoadState):
721         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
722         (WebCore::FrameLoaderClientBlackBerry::saveViewStateToItem):
723
724 2013-01-02  Otto Derek Cheung  <otcheung@rim.com>
725
726         [BlackBerry] Do not determine db quota limit using db file size
727         https://bugs.webkit.org/show_bug.cgi?id=105991
728
729         PR 267191
730
731         Reviewed by George Staikos.
732
733         Passing the current quota to WebPageClientImpl::databaseQuota so we can determine a better
734         quota limit without using the db file size.
735
736         * Api/WebPageClient.h:
737         * WebCoreSupport/ChromeClientBlackBerry.cpp:
738         (WebCore::ChromeClientBlackBerry::exceededDatabaseQuota):
739
740 2013-01-02  Yong Li  <yoli@rim.com>
741
742         [BlackBerry] Cached frame shouldn't access the page when being destroyed
743         https://bugs.webkit.org/show_bug.cgi?id=105942
744
745         Reviewed by George Staikos.
746
747         In order to prevent our FrameLoaderClient from dangling WebPagePrivate object in any case,
748         this patches clear the m_webPagePrivate pointer when the frame is detached or cached.
749
750         RIM PR# 272137.
751
752         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
753         (WebCore::FrameLoaderClientBlackBerry::isMainFrame):
754         (WebCore::FrameLoaderClientBlackBerry::detachedFromParent2):
755         (WebCore::FrameLoaderClientBlackBerry::didSaveToPageCache):
756         (WebCore::FrameLoaderClientBlackBerry::didRestoreFromPageCache):
757
758 2013-01-02  Nima Ghanavatian  <nghanavatian@rim.com>
759
760         [BlackBerry] Use fatfingers result when checking for misspelled words
761         https://bugs.webkit.org/show_bug.cgi?id=105923
762
763         Reviewed by Yong Li.
764
765         PR270866
766         Currently we are using the raw touch point when checking to see if spell check
767         is required on a word. When tapping close to a boundary, the raw point can be
768         placed off but fatfingers moves the point onto the word. This causes the caret
769         to be placed on a word but no spell check request triggered.
770
771         Internally reviewed by Mike Fenton and Tiancheng Jiang
772
773         * WebKitSupport/TouchEventHandler.cpp:
774         (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
775
776 2012-12-28  Charles Wei  <charles.wei@torchmobile.com.cn>
777
778         [BlackBerry] Remove unused BackingStorePrivate::m_defersBlit
779         https://bugs.webkit.org/show_bug.cgi?id=105811
780         RIM PR 272067
781
782         Reviewed by George Staikos.
783         Internally Reviewed by Jakob Petsovits.
784
785         BackingStorePrivate::m_defersBlit is not used anywhere, it should
786         be removed to simplify the code and to avoid confusion.
787         * Api/BackingStore.cpp:
788         (BlackBerry::WebKit::BackingStorePrivate::BackingStorePrivate):
789         (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents):
790         * Api/BackingStore.h:
791         * Api/BackingStore_p.h:
792         (BackingStorePrivate):
793
794 2012-12-26  Jakob Petsovits  <jpetsovits@rim.com>
795
796         [BlackBerry] Set load state for popups manually, in absence of a loader.
797         https://bugs.webkit.org/show_bug.cgi?id=105708
798         RIM PR 257216
799
800         Reviewed by George Staikos.
801         Internally reviewed by Chris Guan.
802
803         The WebPage class relies on the load state for various things,
804         among others it will only emit contents size changes after
805         layouts if a load state other than None is set.
806
807         Given that popups write the web page content itself with no
808         loader that would issue such notifications, the load state
809         should probably just be set manually in this case.
810
811         * WebCoreSupport/PagePopupBlackBerry.cpp:
812         (WebCore::PagePopupBlackBerry::init):
813
814 2012-12-26  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>
815
816         [BlackBerry] Caret doesn't update position when scrolling text in Input element
817         https://bugs.webkit.org/show_bug.cgi?id=105757
818
819         Reviewed by George Staikos.
820
821         PR 271627
822         Internally reviewed by George Staikos.
823
824         Call FrameSelection's updateAppearence instead of SelectionHandler's
825         selectionPositionChanged to update the caret position.
826
827         * Api/InRegionScroller.cpp:
828         (BlackBerry::WebKit::InRegionScrollerPrivate::setLayerScrollPosition):
829
830 2012-12-25  Charles Wei  <charles.wei@torchmobile.com.cn>
831
832         [BlackBerry] Need to initialize the onLine in the global
833         https://bugs.webkit.org/show_bug.cgi?id=105749
834
835         Reviewed by George Staikos.
836
837         The NetworkStatus is initialized to online in the constructor by default,
838         we need to update it correctly with the network status at startup.
839
840         * Api/BlackBerryGlobal.cpp:
841         (BlackBerry::WebKit::globalInitialize):
842
843 2012-12-24  Jakob Petsovits  <jpetsovits@rim.com>
844
845         [BlackBerry] Fix various RenderQueue bugs introduced by r138024.
846         https://bugs.webkit.org/show_bug.cgi?id=105717
847         RIM PR 269029
848
849         Reviewed by George Staikos.
850
851         Scroll/zoom jobs were pretty solid, but I managed to
852         leave some bugs in the region handling of RenderQueue's
853         renderRegularRenderJobs() function, causing us to skip
854         a desired blit or render operation in cases where the
855         region and tile tracking did not match up.
856
857         This commit fixes these errors.
858
859         * WebKitSupport/RenderQueue.cpp:
860         (BlackBerry::WebKit::RenderQueue::renderRegularRenderJobs):
861
862 2012-12-24  Charles Wei  <charles.wei@torchmobile.com.cn>
863
864         [BlackBerry] Close page popup when a page becomes invisible.
865         https://bugs.webkit.org/show_bug.cgi?id=105704
866
867         Reviewed by George Staikos.
868
869         Reviewed internally by Jakob Petsovits.
870
871         * Api/WebPage.cpp:
872         (BlackBerry::WebKit::WebPagePrivate::setVisible):
873
874 2012-12-23  Mary Wu  <mary.wu@torchmobile.com.cn>
875
876         [BlackBerry] give url when createWindow
877         https://bugs.webkit.org/show_bug.cgi?id=105702
878         RIM bug# 257329
879
880         Reviewed by George Staikos.
881
882         This is to revert previous commit 575407238c35f1a0fa7ff7dd5dbbf6cc3ece1107
883         for integration issue of cascade and air, as old app side still use the url
884         to invoke. It would unrevert after resolving the integration issue.
885
886         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
887         (WebCore::FrameLoaderClientBlackBerry::dispatchCreatePage):
888
889 2012-12-23  Jakob Petsovits  <jpetsovits@rim.com>
890
891         [BlackBerry] Specify tile usage enum for backingstore tiles.
892         https://bugs.webkit.org/show_bug.cgi?id=105688
893         RIM PR 262120
894
895         Reviewed by George Staikos.
896
897         This enables us to have separate tile sizes for
898         backingstore / root layer purposes and generic layers.
899
900         * Api/BackingStore.cpp:
901         (BlackBerry::WebKit::BackingStorePrivate::tileSize):
902
903 2012-12-21  Max Feil  <mfeil@rim.com>
904
905         [BlackBerry] Fullscreen video fixed position container horizontal position is wrong
906         https://bugs.webkit.org/show_bug.cgi?id=105488
907
908         Reviewed by George Staikos.
909
910         The fix for https://bugs.webkit.org/show_bug.cgi?id=105333 has
911         broken fullscreen video, which was compensating by doing its
912         own positioning in x. My patch fixes things by making vertical
913         and horizontal handling symmetrical.
914         NOTE: This function was not upstreamed before, so you can't
915         actually see my diff. See the bug.
916
917         * Api/WebPage.cpp:
918         (WebKit):
919         (BlackBerry::WebKit::WebPagePrivate::adjustFullScreenElementDimensionsIfNeeded):
920
921 2012-12-18  Nima Ghanavatian  <nghanavatian@rim.com>
922
923         [BlackBerry] Calculate correct word offsets for form elements.
924         https://bugs.webkit.org/show_bug.cgi?id=105354
925
926         Reviewed by Rob Buis.
927
928         PR266117
929         We need to calculate correct offsets for form elements, such as
930         textareas, relative to the start of the field. This allows for correct
931         spell checking of words in a textarea element after line breaks.
932
933         Internally reviewed by Mike Fenton.
934
935         * WebKitSupport/InputHandler.cpp:
936         (BlackBerry::WebKit::InputHandler::requestSpellingCheckingOptions):
937
938 2012-12-18  Genevieve Mak  <gmak@rim.com>
939
940         [BlackBerry] Remove extra call to doFatFingers.
941         https://bugs.webkit.org/show_bug.cgi?id=105347
942
943         Reviewed by Rob Buis.
944
945         Reviewed Internally by Mike Fenton.
946         Now that we do fat fingers on touch start, we don't need this anymore.
947
948         * Api/WebPage.cpp:
949         (BlackBerry::WebKit::WebPage::touchEvent):
950
951 2012-12-18  Genevieve Mak  <gmak@rim.com>
952
953         Bug 105344 - [BlackBerry] Make single line text edits touch scrollable.
954         https://bugs.webkit.org/show_bug.cgi?id=105344
955
956         Reviewed by Antonio Gomes.
957
958         Reviewed Internally by Mike Fenton.
959         We don't need to check the overflow for editable layers because there's
960         no need for overflow to be set by the content.
961         PR #231776
962
963         * WebKitSupport/InRegionScrollableArea.cpp:
964         (BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea):
965
966 2012-12-18  Jakob Petsovits  <jpetsovits@rim.com>
967
968         [BlackBerry] Build fix for r138024.
969         https://bugs.webkit.org/show_bug.cgi?id=105199
970         RIM PR 260232
971
972         Reviewed by Yong Li.
973
974         The clearVisibleTiles() function doesn't exist anymore
975         and apparently I fail at merge conflict resolution.
976
977         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
978         (WebCore::FrameLoaderClientBlackBerry::dispatchDidLayout):
979
980 2012-12-18  Jakob Petsovits  <jpetsovits@rim.com>
981
982         [BlackBerry] Clean up "frontState" vs. "geometry" naming confusion.
983         https://bugs.webkit.org/show_bug.cgi?id=105331
984         RIM PR 260232
985
986         Reviewed by Adam Treat.
987
988         The concept of the "front state" is going away or will be
989         marginalized/renamed, but I don't want to clutter upcoming
990         patches with renames. So do the variable renames in here,
991         once, and have future patches focus on actual behavior changes.
992
993         * Api/BackingStore.cpp:
994         (BlackBerry::WebKit::BackingStorePrivate::shouldDirectRenderingToWindow):
995         (BlackBerry::WebKit::BackingStorePrivate::setBackingStoreRect):
996         (BlackBerry::WebKit::BackingStorePrivate::updateTilesAfterBackingStoreRectChange):
997         (BlackBerry::WebKit::BackingStorePrivate::render):
998         (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents):
999         (BlackBerry::WebKit::BackingStorePrivate::compositeContents):
1000         (BlackBerry::WebKit::BackingStorePrivate::resetTiles):
1001         (BlackBerry::WebKit::BackingStorePrivate::updateTiles):
1002         (BlackBerry::WebKit::BackingStorePrivate::updateTilesForScrollOrNotRenderedRegion):
1003         (BlackBerry::WebKit::BackingStorePrivate::createSurfaces):
1004
1005 2012-12-18  Nima Ghanavatian  <nghanavatian@rim.com>
1006
1007         [BlackBerry] Reduce calls to IMF on return
1008         https://bugs.webkit.org/show_bug.cgi?id=105308
1009
1010         Reviewed by Yong Li.
1011
1012         PR207743
1013         The extra calls of selection change and most importantly, end composition
1014         are sent incorrectly on return. This is causing our state to be reset
1015         every time we hit enter.
1016
1017         Internally reviewed by Mike Fenton and Gen Mak.
1018
1019         * WebKitSupport/InputHandler.cpp:
1020         (BlackBerry::WebKit::InputHandler::InputHandler):
1021         (BlackBerry::WebKit::InputHandler::nodeTextChanged):
1022         (BlackBerry::WebKit::InputHandler::selectionChanged):
1023         (BlackBerry::WebKit::InputHandler::handleKeyboardInput):
1024         (BlackBerry::WebKit::InputHandler::shouldNotifyWebView):
1025         (WebKit):
1026         * WebKitSupport/InputHandler.h:
1027         (InputHandler):
1028
1029 2012-12-18  Jakob Petsovits  <jpetsovits@rim.com>
1030
1031         [BlackBerry] Remove the visible tile buffer from the BackingStore.
1032         https://bugs.webkit.org/show_bug.cgi?id=105302
1033         RIM PR 260232
1034
1035         Reviewed by George Staikos.
1036
1037         The visible tile buffer was introduced as an additional
1038         buffering solution that was necessary because other
1039         buffers would only cover part of the screen and could
1040         only be swapped one by one, with long blocking calls
1041         between each newly rendered tile. By carrying an old copy
1042         of all tiles at once, we were avoiding checkerboard and
1043         visual artifacts during load time when much zoom-to-fit
1044         action is going on.
1045
1046         These days, the visual tile buffer hurts more than it helps,
1047         not only taking up lots of memory but also requiring
1048         complexity that we'd rather get rid of. Now that multiple
1049         buffers are being swapped into the user interface thread
1050         at once, the need for the visible tile buffer is no longer
1051         there and can be exchanged for standard geometry behavior.
1052
1053         This patch simply deletes the visible tile buffer to use
1054         existing other code instead. Differences in behavior are
1055         non-existent or negligible.
1056
1057         * Api/BackingStore.cpp:
1058         (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents):
1059         (BlackBerry::WebKit::BackingStorePrivate::transformChanged):
1060         (BlackBerry::WebKit::BackingStorePrivate::orientationChanged):
1061         (BlackBerry::WebKit::BackingStorePrivate::createSurfaces):
1062         * Api/BackingStore_p.h:
1063         (BackingStorePrivate):
1064         * Api/WebPage.cpp:
1065         (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
1066         * WebKitSupport/SurfacePool.cpp:
1067         (BlackBerry::WebKit::SurfacePool::SurfacePool):
1068         (BlackBerry::WebKit::SurfacePool::initialize):
1069         (BlackBerry::WebKit::SurfacePool::createBuffers):
1070         (BlackBerry::WebKit::SurfacePool::releaseBuffers):
1071         * WebKitSupport/SurfacePool.h:
1072         (SurfacePool):
1073
1074 2012-12-18  Jakob Petsovits  <jpetsovits@rim.com>
1075
1076         [BlackBerry] Restructure the render queue to process multiple tiles at once.
1077         https://bugs.webkit.org/show_bug.cgi?id=105199
1078         RIM PR 260232
1079
1080         Reviewed by George Staikos.
1081         Internally reviewed by Arvid Nilsson.
1082
1083         Since my last big commit, r136442, the BackingStore's render()
1084         function is able to fetch multiple back buffers and swap them
1085         into the user interface thread in one go. However, it turns out
1086         that this is not enough to actually render to all of the
1087         available back buffers at once. The RenderQueue class was still
1088         working with a model based on processing one rectangle after
1089         another.
1090
1091         This commit rewrites large parts of RenderQueue to issue
1092         render() calls for multiple tiles at once. As WebCore painting
1093         gets cheaper and blocking becomes more of an issue, this commit
1094         does away with paints smaller than tile size and always renders
1095         whole tiles at once. This means the demise of RenderRect.
1096         As an additional benefit, this means we can remove the
1097         copyPreviousContentsToTileBuffer() function which caused
1098         potential threading issues as it was accessing a buffer
1099         now owned by the UI thread from the WebKit thread.
1100
1101         RenderQueue is also smarter than before in assigning batches,
1102         it now takes into account the number of available back buffers
1103         for rendering as well as excludes tiles outside contents
1104         boundaries. Regular render jobs continue being tracked as
1105         regions (and are being issued to didRenderContent()) with only
1106         the changed content regions. Everything else switches over to
1107         tile index lists from previously lists of rectangles.
1108         By default, we render as many tiles at once as we can grab
1109         back buffers, or until a given set of jobs is done.
1110         For high-priority jobs, render() will be called in a loop.
1111
1112         To allow for the necessary changes in render() and improve
1113         reliability in the same go, we now call render() almost
1114         exclusively through RenderQueue. Other places would often
1115         call renderVisibleContents() in situations where rendering
1116         is not possible, geometries don't get updated, or content
1117         rendered notifications would not get issued to the client.
1118         By replacing renderVisibleContents() with a scheduled
1119         high-priority queue that's immediately being processed
1120         (but only if possible), these problems go away.
1121
1122         * Api/BackingStore.cpp:
1123         (BlackBerry::WebKit::BackingStorePrivate::resumeScreenUpdates):
1124         (BlackBerry::WebKit::BackingStorePrivate::repaint):
1125         (BlackBerry::WebKit::BackingStorePrivate::slowScroll):
1126         (BlackBerry::WebKit::BackingStorePrivate::renderJob):
1127         (BlackBerry::WebKit::BackingStorePrivate::setBackingStoreRect):
1128         (BlackBerry::WebKit::BackingStorePrivate::updateTilesAfterBackingStoreRectChange):
1129         (BlackBerry::WebKit::BackingStorePrivate::indexesForBackingStoreRect):
1130         (BlackBerry::WebKit::BackingStorePrivate::clearAndUpdateTileOfNotRenderedRegion):
1131         (BlackBerry::WebKit::BackingStorePrivate::isCurrentVisibleJob):
1132         (BlackBerry::WebKit::BackingStorePrivate::renderDirectToWindow):
1133         (BlackBerry::WebKit::BackingStorePrivate::render):
1134         (BlackBerry::WebKit::BackingStorePrivate::renderAndBlitVisibleContentsImmediately):
1135         (BlackBerry::WebKit::BackingStorePrivate::renderAndBlitImmediately):
1136         (BlackBerry::WebKit::BackingStorePrivate::paintDefaultBackground):
1137         (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents):
1138         (BlackBerry::WebKit::BackingStorePrivate::compositeContents):
1139         (BlackBerry::WebKit::BackingStorePrivate::visibleTileIndexes):
1140         (BlackBerry::WebKit::BackingStorePrivate::resetTiles):
1141         (BlackBerry::WebKit::BackingStorePrivate::updateTilesForScrollOrNotRenderedRegion):
1142         (BlackBerry::WebKit::BackingStorePrivate::updateTile):
1143         (BlackBerry::WebKit::BackingStorePrivate::transformChanged):
1144         (BlackBerry::WebKit::BackingStorePrivate::didRenderContent):
1145         * Api/BackingStore_p.h:
1146         (BackingStorePrivate):
1147         * Api/WebPage.cpp:
1148         (BlackBerry::WebKit::WebPagePrivate::setLoadState):
1149         (BlackBerry::WebKit::WebPagePrivate::zoomAboutPoint):
1150         (BlackBerry::WebKit::WebPagePrivate::resumeBackingStore):
1151         * Api/WebPageCompositor.cpp:
1152         (BlackBerry::WebKit::WebPageCompositorPrivate::animationFrameChanged):
1153         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
1154         (WebCore::FrameLoaderClientBlackBerry::dispatchDidLayout):
1155         * WebKitSupport/RenderQueue.cpp:
1156         (BlackBerry::WebKit::compareRectOneDirection):
1157         (BlackBerry::WebKit::tileIndexIsLessThan):
1158         (WebKit):
1159         (BlackBerry::WebKit::tileIndexLessThanFunction):
1160         (BlackBerry::WebKit::TileIndexLessThan::TileIndexLessThan):
1161         (BlackBerry::WebKit::TileIndexLessThan::operator()):
1162         (TileIndexLessThan):
1163         (BlackBerry::WebKit::RenderQueue::reset):
1164         (BlackBerry::WebKit::RenderQueue::isEmpty):
1165         (BlackBerry::WebKit::RenderQueue::hasCurrentRegularRenderJob):
1166         (BlackBerry::WebKit::RenderQueue::hasCurrentVisibleZoomJob):
1167         (BlackBerry::WebKit::RenderQueue::hasCurrentVisibleScrollJob):
1168         (BlackBerry::WebKit::RenderQueue::isCurrentVisibleZoomJob):
1169         (BlackBerry::WebKit::RenderQueue::isCurrentVisibleZoomJobCompleted):
1170         (BlackBerry::WebKit::RenderQueue::isCurrentVisibleScrollJob):
1171         (BlackBerry::WebKit::RenderQueue::isCurrentVisibleScrollJobCompleted):
1172         (BlackBerry::WebKit::RenderQueue::isCurrentRegularRenderJob):
1173         (BlackBerry::WebKit::RenderQueue::tileIndexesIntersectingRegion):
1174         (BlackBerry::WebKit::RenderQueue::tileIndexesFullyContainedInRegion):
1175         (BlackBerry::WebKit::RenderQueue::tileRegion):
1176         (BlackBerry::WebKit::RenderQueue::addToQueue):
1177         (BlackBerry::WebKit::RenderQueue::addToRegularQueue):
1178         (BlackBerry::WebKit::RenderQueue::addToScrollZoomQueue):
1179         (BlackBerry::WebKit::RenderQueue::quickSort):
1180         (BlackBerry::WebKit::RenderQueue::visibleContentChanged):
1181         (BlackBerry::WebKit::RenderQueue::backingStoreRectChanging):
1182         (BlackBerry::WebKit::RenderQueue::clear):
1183         (BlackBerry::WebKit::RenderQueue::clearRegions):
1184         (BlackBerry::WebKit::RenderQueue::clearTileIndexes):
1185         (BlackBerry::WebKit::RenderQueue::render):
1186         (BlackBerry::WebKit::RenderQueue::renderRegularRenderJobs):
1187         (BlackBerry::WebKit::RenderQueue::renderScrollZoomJobs):
1188         (BlackBerry::WebKit::RenderQueue::scrollZoomJobsCompleted):
1189         * WebKitSupport/RenderQueue.h:
1190         (WebKit):
1191         (RenderQueue):
1192         * WebKitSupport/SurfacePool.cpp:
1193         (BlackBerry::WebKit::SurfacePool::numberOfAvailableBackBuffers):
1194         (BlackBerry::WebKit::SurfacePool::takeBackBuffer):
1195         * WebKitSupport/SurfacePool.h:
1196         (SurfacePool):
1197         * WebKitSupport/TileIndex.h:
1198         (WebKit):
1199
1200 2012-12-17  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>
1201
1202         [BlackBerry] Editable text element can't be selected
1203         https://bugs.webkit.org/show_bug.cgi?id=105240
1204
1205         Reviewed by Rob Buis.
1206         Internally reviewed by Genevieve Mak and Mike Fenton.
1207
1208         Internal PR266755
1209         When the target is Text, we should allow it to collect text nodes in
1210         the shadow tree of text editable elements.
1211
1212         * WebKitSupport/FatFingers.cpp:
1213         (BlackBerry::WebKit::FatFingers::getNodesFromRect):
1214
1215 2012-12-17  Yongxin Dai  <yodai@rim.com>
1216
1217         [BlackBerry] Prevent selection handles from being rendered after selection was canceled
1218         https://bugs.webkit.org/show_bug.cgi?id=105203
1219
1220         Reviewed by Rob Buis.
1221
1222         PR255438
1223
1224         Here is the explanation why handles occur without selection overlay.
1225         1. Still touch at current selection (Selection A) initiated by touch-hold
1226         2. Selection expanding (Selection B) is ongoing
1227         3. Finger moves. In UI thread:
1228             1) SelectionHander::cancelSelection() gets called.
1229                 a. Selection A is canceled immediately (clear selecting state and hide handles)
1230                 b. Post a request to webkit thread to cancel Selection A.
1231         4. In webkit thread:
1232             1) Selection B becomes active selection
1233                 a. Show selection overlay for Selection B
1234                 b. Dispatch Selection B to UI thread to show handles
1235             2) Handle the request of canceling Selection A. The selection A was gone. Instead the active Selection B is canceled.
1236             The visual change is Selection overlay for Selection B becomes invisible..
1237         5. In UI thread:
1238             Selection B is rendered. The start handle and the end handle occur without selection overlay.
1239
1240         The fix is to notify client with a empty selection whenever the selection is canceled in webkit thread.
1241
1242         Reviewed Internally by Mike Fenton.
1243
1244         * WebKitSupport/SelectionHandler.cpp:
1245         (BlackBerry::WebKit::SelectionHandler::cancelSelection):
1246
1247 2012-12-17  Yong Li  <yoli@rim.com>
1248
1249         [BlackBerry] Null pointer access in compositorDrawsRootLayer
1250         https://bugs.webkit.org/show_bug.cgi?id=105204
1251
1252         Reviewed by Rob Buis.
1253
1254         PR# 267188.
1255         Add a null check for m_mainFrame in the function.
1256
1257         * Api/WebPage.cpp:
1258         (BlackBerry::WebKit::WebPagePrivate::compositorDrawsRootLayer):
1259
1260 2012-12-17  Andrew Lo  <anlo@rim.com>
1261
1262         [BlackBerry] Use application size rather than screen size where appropriate.
1263         https://bugs.webkit.org/show_bug.cgi?id=105201
1264
1265         Reviewed by Rob Buis.
1266         Internally reviewed by Jeff Rogers.
1267
1268         Switch from screenSize to applicationSize where appropriate.
1269         Internal PR266400
1270
1271         * Api/WebPage.cpp:
1272         (BlackBerry::WebKit::WebPagePrivate::transformedViewportSize):
1273         (BlackBerry::WebKit::WebPagePrivate::setDefaultLayoutSize):
1274         * WebKitSupport/SurfacePool.cpp:
1275         (BlackBerry::WebKit::SurfacePool::initialize):
1276
1277 2012-12-17  Mike Fenton  <mifenton@rim.com>
1278
1279         [BlackBerry] Improve DOMSupport visibleSelectionForClosestActualWordStart for content editable.
1280         https://bugs.webkit.org/show_bug.cgi?id=105198
1281
1282         Reviewed by Rob Buis.
1283
1284         PR 258038.
1285
1286         Improve closest word matching by giving preference to the left when
1287         distances are equal.
1288
1289         Also enforce container matching to avoid selecting the paragraph
1290         marker if a CE div is followed immediately by a CE paragraph.
1291
1292         Minor refactor - don't calculate the distance if the selection
1293         isn't on a word.
1294
1295         Reviewed Internally by Gen Mak and Nima Ghanavatian.
1296
1297         * WebKitSupport/DOMSupport.cpp:
1298         (BlackBerry::WebKit::DOMSupport::visibleSelectionForClosestActualWordStart):
1299
1300 2012-12-17  Jakob Petsovits  <jpetsovits@rim.com>
1301
1302         [BlackBerry] Clean up log output in WebKit/blackberry.
1303         https://bugs.webkit.org/show_bug.cgi?id=104823
1304
1305         Reviewed by George Staikos.
1306
1307         Behavior-preserving change, fixing many issues with logging:
1308         - Call logAlways() instead of BBLOG() in already defined-out debug blocks.
1309         - Call logAlways() instead of BBLOG() for serious errors, too.
1310         - Fix build for the DEBUG_OVERFLOW_DETECTION block in ChromeClientBlackBerry.
1311         - Fix build for double declarations of "elapsed" variables in RenderQueue.
1312         - Fix compiler warnings due to format string / parameter mismatches.
1313         - Remove unnecessary trailing newlines in logged strings.
1314         - Consistently use Platform:: as prefix except inside WebCore-namespaced code.
1315         - Use indentation that actually passes WebKit style checks.
1316         - Change point/size/rect output to use Platform toString() formats for consistency.
1317
1318         * Api/BackingStore.cpp:
1319         (BlackBerry::WebKit::bestDivisor):
1320         (BlackBerry::WebKit::BackingStorePrivate::suspendBackingStoreUpdates):
1321         (BlackBerry::WebKit::BackingStorePrivate::suspendScreenUpdates):
1322         (BlackBerry::WebKit::BackingStorePrivate::resumeBackingStoreUpdates):
1323         (BlackBerry::WebKit::BackingStorePrivate::resumeScreenUpdates):
1324         (BlackBerry::WebKit::BackingStorePrivate::repaint):
1325         (BlackBerry::WebKit::BackingStorePrivate::slowScroll):
1326         (BlackBerry::WebKit::BackingStorePrivate::scroll):
1327         (BlackBerry::WebKit::BackingStorePrivate::renderJob):
1328         (BlackBerry::WebKit::BackingStorePrivate::setBackingStoreRect):
1329         (BlackBerry::WebKit::BackingStorePrivate::updateTilesAfterBackingStoreRectChange):
1330         (BlackBerry::WebKit::BackingStorePrivate::scrollBackingStore):
1331         (BlackBerry::WebKit::BackingStorePrivate::render):
1332         (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents):
1333         (BlackBerry::WebKit::BackingStorePrivate::updateTilesForScrollOrNotRenderedRegion):
1334         (BlackBerry::WebKit::BackingStorePrivate::renderContents):
1335         (BlackBerry::WebKit::BackingStorePrivate::blitToWindow):
1336         (BlackBerry::WebKit::BackingStorePrivate::fillWindow):
1337         (BlackBerry::WebKit::BackingStorePrivate::invalidateWindow):
1338         (BlackBerry::WebKit::BackingStorePrivate::clearWindow):
1339         * Api/WebPage.cpp:
1340         (BlackBerry::WebKit::WebPagePrivate::setLoadState):
1341         (BlackBerry::WebKit::WebPagePrivate::zoomAboutPoint):
1342         (BlackBerry::WebKit::WebPagePrivate::contentsSizeChanged):
1343         (BlackBerry::WebKit::WebPagePrivate::zoomToInitialScaleOnLoad):
1344         (BlackBerry::WebKit::WebPage::touchEvent):
1345         (BlackBerry::WebKit::WebPagePrivate::scheduleRootLayerCommit):
1346         (BlackBerry::WebKit::WebPagePrivate::commitRootLayer):
1347         (BlackBerry::WebKit::WebPagePrivate::commitRootLayerIfNeeded):
1348         (BlackBerry::WebKit::WebPagePrivate::rootLayerCommitTimerFired):
1349         * WebCoreSupport/ChromeClientBlackBerry.cpp:
1350         (WebCore::ChromeClientBlackBerry::overflowExceedsContentsSize):
1351         * WebKitSupport/FatFingers.cpp:
1352         (BlackBerry::WebKit::FatFingers::checkFingerIntersection):
1353         (BlackBerry::WebKit::FatFingers::findIntersectingRegions):
1354         (BlackBerry::WebKit::FatFingers::checkForText):
1355         * WebKitSupport/InputHandler.cpp:
1356         (BlackBerry::WebKit::convertStringToWchar):
1357         (BlackBerry::WebKit::convertStringToWcharVector):
1358         (BlackBerry::WebKit::convertSpannableStringToString):
1359         (BlackBerry::WebKit::InputHandler::learnText):
1360         (BlackBerry::WebKit::InputHandler::requestCheckingOfString):
1361         (BlackBerry::WebKit::InputHandler::spellCheckingRequestCancelled):
1362         (BlackBerry::WebKit::InputHandler::spellCheckingRequestProcessed):
1363         (BlackBerry::WebKit::InputHandler::shouldRequestSpellCheckingOptionsForPoint):
1364         (BlackBerry::WebKit::InputHandler::requestSpellingCheckingOptions):
1365         (BlackBerry::WebKit::InputHandler::setElementUnfocused):
1366         (BlackBerry::WebKit::InputHandler::setInputModeEnabled):
1367         (BlackBerry::WebKit::InputHandler::setElementFocused):
1368         (BlackBerry::WebKit::InputHandler::spellCheckBlock):
1369         (BlackBerry::WebKit::InputHandler::nodeTextChanged):
1370         (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
1371         (BlackBerry::WebKit::InputHandler::frameUnloaded):
1372         (BlackBerry::WebKit::InputHandler::selectionChanged):
1373         (BlackBerry::WebKit::InputHandler::setSelection):
1374         (BlackBerry::WebKit::InputHandler::handleKeyboardInput):
1375         (BlackBerry::WebKit::InputHandler::deleteTextRelativeToCursor):
1376         (BlackBerry::WebKit::InputHandler::deleteText):
1377         (BlackBerry::WebKit::InputHandler::spannableTextInRange):
1378         (BlackBerry::WebKit::InputHandler::setComposingRegion):
1379         (BlackBerry::WebKit::InputHandler::finishComposition):
1380         (BlackBerry::WebKit::InputHandler::setText):
1381         (BlackBerry::WebKit::InputHandler::setTextAttributes):
1382         (BlackBerry::WebKit::InputHandler::setRelativeCursorPosition):
1383         (BlackBerry::WebKit::InputHandler::setSpannableTextAndRelativeCursor):
1384         (BlackBerry::WebKit::InputHandler::setComposingText):
1385         (BlackBerry::WebKit::InputHandler::commitText):
1386         * WebKitSupport/RenderQueue.cpp:
1387         (BlackBerry::WebKit::RenderQueue::addToRegularQueue):
1388         (BlackBerry::WebKit::RenderQueue::addToScrollZoomQueue):
1389         (BlackBerry::WebKit::RenderQueue::render):
1390         (BlackBerry::WebKit::RenderQueue::renderAllCurrentRegularRenderJobs):
1391         (BlackBerry::WebKit::RenderQueue::startRegularRenderJobBatchIfNeeded):
1392         (BlackBerry::WebKit::RenderQueue::renderVisibleZoomJob):
1393         (BlackBerry::WebKit::RenderQueue::renderVisibleScrollJob):
1394         (BlackBerry::WebKit::RenderQueue::renderRegularRenderJob):
1395         (BlackBerry::WebKit::RenderQueue::renderNonVisibleScrollJob):
1396         * WebKitSupport/SelectionHandler.cpp:
1397         (BlackBerry::WebKit::SelectionHandler::cancelSelection):
1398         (BlackBerry::WebKit::SelectionHandler::shouldUpdateSelectionOrCaretForPoint):
1399         (BlackBerry::WebKit::SelectionHandler::setCaretPosition):
1400         (BlackBerry::WebKit::SelectionHandler::updateOrHandleInputSelection):
1401         (BlackBerry::WebKit::SelectionHandler::setSelection):
1402         (BlackBerry::WebKit::SelectionHandler::selectObject):
1403         (BlackBerry::WebKit::SelectionHandler::selectionPositionChanged):
1404         (BlackBerry::WebKit::SelectionHandler::caretPositionChanged):
1405         * WebKitSupport/SurfacePool.cpp:
1406         (BlackBerry::WebKit::SurfacePool::initialize):
1407
1408 2012-12-17  Anthony Scian  <ascian@rim.com>
1409
1410         [Blackberry] Static code analysis warning fixes
1411         https://bugs.webkit.org/show_bug.cgi?id=105129
1412
1413         Reviewed by Rob Buis.
1414
1415         - disable copy/op= in BackingStore
1416         - cache and check intermediate values in parentLayer
1417         - disable copy/op= in InRegionScroller
1418         - disable copy/op= in WebPageGroupLoadDeferrer
1419         - disable copy/op= in WebSettings
1420         - disable copy/op= in WebViewportArguments
1421         - disable copy/op= in BackingStoreClient
1422         - disable copy/op= in TileBuffer
1423         - if stopNode is not NULL, loop could iterate past NULL; added NULL check to loop
1424           to make the code more robust
1425
1426         * Api/BackingStore.h:
1427         * Api/InRegionScroller.cpp:
1428         (BlackBerry::WebKit::InRegionScrollerPrivate::calculateInRegionScrollableAreasForPoint):
1429         (BlackBerry::WebKit::parentLayer):
1430         * Api/InRegionScroller.h:
1431         * Api/WebPageGroupLoadDeferrer.h:
1432         * Api/WebSettings.h:
1433         * Api/WebViewportArguments.h:
1434         * WebKitSupport/BackingStoreClient.h:
1435         (BackingStoreClient):
1436         * WebKitSupport/BackingStoreTile.h:
1437         (TileBuffer):
1438         * WebKitSupport/DOMSupport.cpp:
1439         (BlackBerry::WebKit::DOMSupport::visibleTextQuads):
1440
1441 2012-12-16  Arvid Nilsson  <anilsson@rim.com>
1442
1443         [BlackBerry] Adapt to new BlackBerry::Platform::TouchPoint API
1444         https://bugs.webkit.org/show_bug.cgi?id=105143
1445         RIM PR 171941
1446
1447         Reviewed by Rob Buis.
1448         Internally reviewed by George Staikos.
1449
1450         TouchPoint instances now provide document coordinates for the viewport
1451         and content position of the touch event. The pixel coordinates stored
1452         in the TouchPoint should no longer be needed in WebKit. One exception
1453         is when passing events to a full screen plugin.
1454
1455         Also adapt to new method names and encapsulation of TouchPoint data
1456         members.
1457
1458         * Api/WebPage.cpp:
1459         (BlackBerry::WebKit::WebPage::touchEvent):
1460         (BlackBerry::WebKit::WebPage::touchPointAsMouseEvent):
1461         (BlackBerry::WebKit::WebPagePrivate::dispatchTouchEventToFullScreenPlugin):
1462         (BlackBerry::WebKit::WebPagePrivate::dispatchTouchPointAsMouseEventToFullScreenPlugin):
1463         * WebKitSupport/InputHandler.cpp:
1464         (BlackBerry::WebKit::InputHandler::shouldRequestSpellCheckingOptionsForPoint):
1465         * WebKitSupport/InputHandler.h:
1466         (InputHandler):
1467         * WebKitSupport/TouchEventHandler.cpp:
1468         (BlackBerry::WebKit::TouchEventHandler::doFatFingers):
1469         (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
1470         * WebKitSupport/TouchEventHandler.h:
1471         (TouchEventHandler):
1472
1473 2012-12-15  Anders Carlsson  <andersca@apple.com>
1474
1475         Rename FrameLoaderClient::download to convertMainResourceLoadToDownload
1476         https://bugs.webkit.org/show_bug.cgi?id=105122
1477
1478         Reviewed by Andreas Kling.
1479
1480         Update for WebCore changes.
1481
1482         * Api/WebPage.h:
1483         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
1484         (WebCore::FrameLoaderClientBlackBerry::convertMainResourceLoadToDownload):
1485         * WebCoreSupport/FrameLoaderClientBlackBerry.h:
1486         (FrameLoaderClientBlackBerry):
1487
1488 2012-12-16  Jacky Jiang  <zhajiang@rim.com>
1489
1490         [BlackBerry] GUIMark3 page is rendered at a large scale during history navigation back
1491         https://bugs.webkit.org/show_bug.cgi?id=105130
1492
1493         Reviewed by George Staikos.
1494
1495         PR: 265999
1496         During history navigation, UI thread can blit the contents at a bad
1497         view state before WebKit thread restores the view state.
1498         Suspend screen updates before goBackOrForward() and resume thereafter
1499         so that screen can be updated after the correct view state is updated.
1500         No need to render or blit here, as goBackOrForward() can dispatch a
1501         message to WebKit thread to do that in WebPagePrivate::restoreHistoryViewState().
1502
1503         * Api/WebPage.cpp:
1504         (BlackBerry::WebKit::WebPage::goBackOrForward):
1505
1506 2012-12-15  Nima Ghanavatian  <nghanavatian@rim.com>
1507
1508         [BlackBerry] Pass key modifiers with touch and mouse events
1509         https://bugs.webkit.org/show_bug.cgi?id=105108
1510
1511         Reviewed by Rob Buis.
1512
1513         Pass key modifiers to allow for added functionality, such as
1514         shift+click to highlight.
1515
1516         Internally reviewed by Gen Mak.
1517
1518         * Api/WebPage.cpp:
1519         (BlackBerry::WebKit::WebPagePrivate::webContext):
1520         (BlackBerry::WebKit::WebPagePrivate::updateCursor):
1521         (BlackBerry::WebKit::WebPage::mouseEvent):
1522         (BlackBerry::WebKit::WebPage::touchPointAsMouseEvent):
1523         * Api/WebPage.h:
1524         * WebKitSupport/TouchEventHandler.cpp:
1525         (BlackBerry::WebKit::TouchEventHandler::sendClickAtFatFingersPoint):
1526         (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
1527         (BlackBerry::WebKit::TouchEventHandler::handleFatFingerPressed):
1528         * WebKitSupport/TouchEventHandler.h:
1529         (TouchEventHandler):
1530
1531 2012-12-15  Nima Ghanavatian  <nghanavatian@rim.com>
1532
1533         [BlackBerry] Clean up allocated memory from InputMethodSupport
1534         https://bugs.webkit.org/show_bug.cgi?id=105110
1535
1536         Reviewed by Rob Buis.
1537
1538         PR265919
1539         We are deep copying the spannable_string from IMF and freeing
1540         here once we're done with it.
1541
1542         Internally reviewed by Jeff Rogers.
1543
1544         * WebKitSupport/InputHandler.cpp:
1545         (BlackBerry::WebKit::InputHandler::spellCheckingRequestProcessed):
1546
1547 2012-12-14  Parth Patel  <parpatel@rim.com>
1548
1549         [BlackBerry] Allow plugins to be disabled by shared library filename
1550         https://bugs.webkit.org/show_bug.cgi?id=101274
1551
1552         Reviewed by Yong Li.
1553
1554         Fixing build error.
1555
1556         * Api/WebPage.cpp:
1557         (BlackBerry::WebKit::WebPage::setExtraPluginDirectory):
1558
1559 2012-12-13  Jacky Jiang  <zhajiang@rim.com>
1560
1561         [BlackBerry][Fullscreen] Exiting fullscreen does not set the correct scroll position
1562         https://bugs.webkit.org/show_bug.cgi?id=104958
1563
1564         Reviewed by Antonio Gomes.
1565         Internally reviewed by Arvid Nilsson and Max Feil.
1566
1567         PR: 231174
1568         When leaving fullscreen, WebPage scale and scroll position can't return
1569         to the original scale and scroll position.
1570         We can't restore them in WebPagePrivate::exitFullScreenForElement()
1571         as they can still be changed thereafter during the async
1572         setViewportSize(). And also the async setViewportSize() from the app
1573         side isn't guaranteed as some apps don't need to resize the viewport if
1574         their windows are already fullscreen.
1575         The restoration is basically only needed if viewport size is changed.
1576         At the point of entering fullscreen, we can safely assume that there
1577         would be a viewport size change thereafter if the current visible size
1578         and screen size are not equal. Based on this assumption, we can save
1579         the scale and position before entering fullscreen and restore them in
1580         setViewportSize() thereafter.
1581
1582         * Api/WebPage.cpp:
1583         (BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
1584         (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
1585         * Api/WebPage_p.h:
1586         (WebPagePrivate):
1587
1588 2012-12-13  Yong Li  <yoli@rim.com>
1589
1590         [BlackBerry] Possible JS re-entrancy caused by UI event handler
1591         https://bugs.webkit.org/show_bug.cgi?id=84862
1592
1593         Reviewed by Rob Buis.
1594
1595         Fix an obvious bug in previous patch.
1596
1597         * Api/WebPage.cpp:
1598         (BlackBerry::WebKit::WebPagePrivate::deferredTasksTimerFired):
1599
1600 2012-12-13  Parth Patel  <parpatel@rim.com>, Max Feil <mfeil@rim.com>
1601
1602         Allow plugins to be disabled by shared library filename
1603         https://bugs.webkit.org/show_bug.cgi?id=101274
1604
1605         Reviewed by Antonio Gomes.
1606
1607         Mechanism allows plugins to be disabled by specifying their shared library filenames.
1608         Once disabled, a plugin's shared library should never be loaded.
1609
1610         * Api/WebPage.cpp:
1611         (BlackBerry::WebKit::WebPage::setExtraPluginDirectory):
1612         (WebKit):
1613         (BlackBerry::WebKit::WebPage::updateDisabledPluginFiles):
1614         * Api/WebPage.h:
1615
1616 2012-12-12  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1617
1618         NetworkInfoController needs to support destructor
1619         https://bugs.webkit.org/show_bug.cgi?id=104642
1620
1621         Reviewed by Kentaro Hara.
1622
1623         Though NetworkInfoController can be referenced by each port in order to update network status change,
1624         there is no virtual interface to destroy it. Beside each port client also needs to be destroyed when
1625         controller is destroyed.
1626
1627         * WebCoreSupport/NetworkInfoClientBlackBerry.cpp:
1628         (WebCore::NetworkInfoClientBlackBerry::networkInfoControllerDestroyed):
1629         (WebCore):
1630         * WebCoreSupport/NetworkInfoClientBlackBerry.h:
1631         (NetworkInfoClientBlackBerry):
1632
1633 2012-12-12  Mike Lattanzio  <mlattanzio@rim.com>
1634
1635         [BlackBerry] Ensure InRegionScrollableArea is valid before using.
1636         https://bugs.webkit.org/show_bug.cgi?id=104832
1637
1638         Reviewed by Antonio Gomes.
1639
1640         Make sure the InRegionScrollableArea we are about to scroll is
1641         still valid by ensuring its present in our cache of scrollable areas.
1642         Internal PR: 258475
1643         Internal Review: Gen Mak
1644
1645         We cache a RefPtr for each scrollable area at the time we discover them,
1646         but this cache can get cleared anytime and then the references will be
1647         released. If a request comes in to scroll a region which no longer
1648         exists we have to ignore it.
1649
1650         * Api/InRegionScroller.cpp:
1651         (BlackBerry::WebKit::InRegionScrollerPrivate::setScrollPositionCompositingThread):
1652         (BlackBerry::WebKit::InRegionScrollerPrivate::setScrollPositionWebKitThread):
1653         (BlackBerry::WebKit::InRegionScrollerPrivate::isValidScrollableLayerWebKitThread):
1654         (WebKit):
1655         (BlackBerry::WebKit::InRegionScrollerPrivate::isValidScrollableNode):
1656         * Api/InRegionScroller_p.h:
1657         (WebCore):
1658         (InRegionScrollerPrivate):
1659         * WebKitSupport/InRegionScrollableArea.cpp:
1660         (BlackBerry::WebKit::InRegionScrollableArea::cachedScrollableLayer):
1661         (WebKit):
1662         (BlackBerry::WebKit::InRegionScrollableArea::cachedScrollableNode):
1663         * WebKitSupport/InRegionScrollableArea.h:
1664         (InRegionScrollableArea):
1665
1666 2012-12-12  Mark Lam  <mark.lam@apple.com>
1667
1668         Encapsulate externally used webdatabase APIs in DatabaseManager.
1669         https://bugs.webkit.org/show_bug.cgi?id=104741.
1670
1671         Reviewed by Sam Weinig.
1672
1673         Use DatabaseManager instead of accessing DatabaseTracker, AbstractDatabase,
1674         and DatabaseContext directly. This is to prepare for upcoming webkit2
1675         refactoring.
1676
1677         * Api/WebPage.cpp:
1678         (BlackBerry::WebKit::WebPagePrivate::didChangeSettings):
1679         * WebCoreSupport/ChromeClientBlackBerry.cpp:
1680         (WebCore::ChromeClientBlackBerry::exceededDatabaseQuota):
1681
1682 2012-12-12  Mike Fenton  <mifenton@rim.com>
1683
1684         [BlackBerry] Fix word matching algorithm to account for adjacent divs with no whitespace between them.
1685         https://bugs.webkit.org/show_bug.cgi?id=104837
1686
1687         Reviewed by Rob Buis.
1688
1689         PR 258038.
1690
1691         Fix selection at the end of content editable text block.
1692
1693         The next character may be in the next block bypassing the distance
1694         comparison logic we have, remove the check for next character being
1695         whitespace
1696
1697         Reviewed Internally by Nima Ghanavatian.
1698
1699         * WebKitSupport/DOMSupport.cpp:
1700         (BlackBerry::WebKit::DOMSupport::visibleSelectionForClosestActualWordStart):
1701
1702 2012-12-12  Alexey Proskuryakov  <ap@apple.com>
1703
1704         Make LOG() work in WebProcess and NetworkProcess
1705         https://bugs.webkit.org/show_bug.cgi?id=104718
1706
1707         Reviewed by Tim Horton.
1708
1709         * Api/BlackBerryGlobal.cpp: Include InitializeLogging.h
1710
1711 2012-12-11  Kihong Kwon  <kihong.kwon@samsung.com>
1712
1713         Vibration API: IDL type doesn't match implementation type
1714         https://bugs.webkit.org/show_bug.cgi?id=103899
1715
1716         Reviewed by Kentaro Hara.
1717
1718         According to WebIDL, "unsigned long" corresponds to "unsigned" in the platform.
1719         Therefore unsigned long need to be changed to unsigned for the Vibration API.
1720         - Change a parameter type of vibrate function from unsigned long to unsigned.
1721
1722         * WebCoreSupport/VibrationClientBlackBerry.cpp:
1723         (WebCore::VibrationClientBlackBerry::vibrate):
1724         * WebCoreSupport/VibrationClientBlackBerry.h:
1725         (VibrationClientBlackBerry):
1726
1727 2012-12-11  Nima Ghanavatian  <nghanavatian@rim.com>
1728
1729         [BlackBerry] Redraw spell check dialog after rotation.
1730         https://bugs.webkit.org/show_bug.cgi?id=104737
1731
1732         Reviewed by Rob Buis.
1733
1734         After rotating the device, all dialogs are dismissed. We should
1735         restore the spell check dialog as it is still valid after
1736         rotation and the user will expect it there.
1737
1738         Internally reviewed by Mike Fenton and Gen Mak.
1739
1740         * Api/WebPage.cpp:
1741         (BlackBerry::WebKit::WebPage::applyPendingOrientationIfNeeded):
1742
1743 2012-12-11  Nima Ghanavatian  <nghanavatian@rim.com>
1744
1745         [BlackBerry] Shift the spell check dialog to align with text after transformation
1746         https://bugs.webkit.org/show_bug.cgi?id=104716
1747
1748         Reviewed by Rob Buis.
1749
1750         PR245033
1751         As the page is transformed, we should redraw the dialog box to align
1752         with the new text position. We send a message to move the dialog
1753         box from different spots to account for scrolling. This includes
1754         keyboard transitions from hidden to displayed and centering of
1755         focus around a new touch point. We do not reposition on manual user
1756         scrolling of the page, as this simply dismisses the dialog.
1757
1758         Internally reviewed by Mike Fenton and Gen Mak.
1759
1760         * Api/WebPage.cpp:
1761         (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
1762         * Api/WebPageClient.h:
1763         * WebCoreSupport/ChromeClientBlackBerry.cpp:
1764         (WebCore::ChromeClientBlackBerry::scroll):
1765         * WebKitSupport/InputHandler.cpp:
1766         (BlackBerry::WebKit::InputHandler::InputHandler):
1767         (BlackBerry::WebKit::InputHandler::shouldRequestSpellCheckingOptionsForPoint):
1768         (BlackBerry::WebKit::InputHandler::requestSpellingCheckingOptions):
1769         (BlackBerry::WebKit::InputHandler::redrawSpellCheckDialogIfRequired):
1770         (WebKit):
1771         * WebKitSupport/InputHandler.h:
1772         (InputHandler):
1773         (BlackBerry::WebKit::InputHandler::clearDidSpellCheckState):
1774         (BlackBerry::WebKit::InputHandler::didSpellCheckWord):
1775         * WebKitSupport/TouchEventHandler.cpp:
1776         (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
1777
1778 2012-12-11  Genevieve Mak  <gmak@rim.com>
1779
1780         [BlackBerry] Avoid multiple calls to fat fingers
1781         https://bugs.webkit.org/show_bug.cgi?id=104703
1782
1783         Reviewed by Rob Buis.
1784
1785         We already run fat fingers on touch start. No need to do it again
1786         in the general use case.
1787
1788         * WebKitSupport/TouchEventHandler.cpp:
1789         (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
1790
1791 2012-12-11  Mike West  <mkwst@chromium.org>
1792
1793         Web Inspector: ConsoleTypes should not expose MessageType - it should be private to inspector.
1794         https://bugs.webkit.org/show_bug.cgi?id=66371
1795
1796         Reviewed by Pavel Feldman.
1797
1798         Drops WebCore::MessageType from the addMessageToConsole method.
1799
1800         * WebCoreSupport/ChromeClientBlackBerry.cpp:
1801         (WebCore::ChromeClientBlackBerry::addMessageToConsole):
1802         * WebCoreSupport/ChromeClientBlackBerry.h:
1803         (ChromeClientBlackBerry):
1804
1805 2012-12-10  Max Feil  <mfeil@rim.com>
1806
1807         [BlackBerry] Flash content is being rendered as garbled characters when Flashplayer is disabled
1808         https://bugs.webkit.org/show_bug.cgi?id=104505
1809
1810         Reviewed by Antonio Gomes.
1811
1812         The check to allow video and audio as the source of embed and
1813         object elements is causing a problem when the Flashplayer plugin
1814         is disabled. We have to take Flash content into account in this
1815         check otherwise the swf contents will be rendered as garbled
1816         text characters where there should just be blank space.
1817
1818         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
1819         (WebCore::FrameLoaderClientBlackBerry::createPlugin):
1820
1821 2012-12-10  Parth Patel  <parpatel@rim.com>
1822
1823         [BlackBerry] Make hiddenPageDomTimerInterval a setting 
1824         https://bugs.webkit.org/show_bug.cgi?id=104555
1825
1826         Reviewed by Yong Li.
1827
1828         HiddenPageDomTimerInterval in setting in webcore can be utilized by browser application
1829         when needed.
1830
1831         * Api/BlackBerryGlobal.cpp:
1832         (BlackBerry::WebKit::globalInitialize):
1833
1834 2012-12-10  Nima Ghanavatian  <nghanavatian@rim.com>
1835
1836         [BlackBerry] Fix warning for comparison between signed and unsigned
1837         https://bugs.webkit.org/show_bug.cgi?id=104563
1838
1839         Reviewed by Rob Buis.
1840
1841         * WebKitSupport/InputHandler.cpp:
1842         (BlackBerry::WebKit::InputHandler::isCaretAtEndOfText):
1843
1844 2012-12-10  Charles Wei  <charles.wei@torchmobile.com.cn>
1845
1846         [BlackBerry] Webkit crashes sometimes (even though very rarely) when deleting a webview
1847         https://bugs.webkit.org/show_bug.cgi?id=104504
1848
1849         Reviewed by George Staikos.
1850
1851         When deleting a webview, the webkit thread will send a sync message to userInterfaceThread
1852         to delete handlers, including the viewport accessor. But the UserInterfaceThread could be
1853         doing a blit after it has deleted the viewport accessor and before the webkit thread gets
1854         the time slot to resume it's operation to clean up the webview, which leaves a very short
1855         time that viewport accessor of a webpage has been deleted while the webpage is still in
1856         the process of deleting, and the viewport accessor is referenced in the UserInterfaceThread.
1857
1858         So we need to check if the viewport accessor is NULL before using it in the backingstore code.
1859
1860         * Api/BackingStore.cpp:
1861         (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents):
1862         (BlackBerry::WebKit::BackingStorePrivate::invalidateWindow):
1863
1864 2012-12-10  Kent Tamura  <tkent@chromium.org>
1865
1866         Refactoring: Introduce HTMLFormControlElement::isDisabledOrReadOnly
1867         https://bugs.webkit.org/show_bug.cgi?id=104508
1868
1869         Reviewed by Kentaro Hara.
1870
1871         * WebKitSupport/InputHandler.cpp:
1872         (BlackBerry::WebKit::InputHandler::openDatePopup): Use isDisabledOrReadOnly.
1873         (BlackBerry::WebKit::InputHandler::openColorPopup): Ditto.
1874
1875 2012-12-08  Jacky Jiang  <zhajiang@rim.com>
1876
1877         [BlackBerry] Google results page rendering issue with RTL languages like arabic/hebrew
1878         https://bugs.webkit.org/show_bug.cgi?id=104451
1879
1880         Reviewed by Rob Buis.
1881
1882         PR: 206372
1883         On Google results page, we layout the contents at the width of 833.
1884         However, "appbar" and "top_nav" elements which have width 980 cause
1885         overflow during the last layout and make the contents width larger.
1886         The other renderers still stay at the old width unfortunately which
1887         results in blank areas on the left side of the Google results RTL page.
1888         Give it a chance to request another layout if overflow exceeds the
1889         contents size and the page doesn't have virtual viewport, as this
1890         layout will pick up the absolute visible overflow width within
1891         DEFAULT_MAX_LAYOUT_WIDTH and update the other renderers.
1892
1893         * Api/WebPage.cpp:
1894         (BlackBerry::WebKit::WebPagePrivate::overflowExceedsContentsSize):
1895         (WebKit):
1896         * Api/WebPage_p.h:
1897         (WebPagePrivate):
1898
1899 2012-12-08  Mike Fenton  <mifenton@rim.com>
1900
1901         [BlackBerry] Enforce selection of last work when triggering caret based selection
1902         https://bugs.webkit.org/show_bug.cgi?id=104447
1903
1904         Reviewed by Rob Buis.
1905
1906         PR 249225.
1907
1908         When the selection has reached the end of an input field,
1909         ensure the last word is selected by adjusting the caret.
1910
1911         Reviewed Internally by Gen Mak.
1912
1913         * WebKitSupport/InputHandler.cpp:
1914         (BlackBerry::WebKit::InputHandler::isCaretAtEndOfText):
1915         (WebKit):
1916         * WebKitSupport/InputHandler.h:
1917         (InputHandler):
1918         * WebKitSupport/SelectionHandler.cpp:
1919         (BlackBerry::WebKit::SelectionHandler::selectObject):
1920
1921 2012-12-08  Chris Hutten-Czapski  <chutten@rim.com>
1922
1923         [BlackBerry] Remove about:credits
1924         https://bugs.webkit.org/show_bug.cgi?id=104399
1925
1926         Reviewed by Rob Buis.
1927
1928         Just a simple removal.
1929
1930         * WebKitSupport/AboutData.cpp:
1931
1932 2012-12-08  Rob Buis  <rbuis@rim.com>
1933
1934         [BlackBerry] Remove no-op line in WebPage.cpp
1935         https://bugs.webkit.org/show_bug.cgi?id=104385
1936
1937         Reviewed by Antonio Gomes.
1938
1939         Remove self-assignment no-op line. Must have been left when I removed the
1940         mapFromTransformed part.
1941
1942         * Api/WebPage.cpp:
1943         (BlackBerry::WebKit::WebPage::touchPointAsMouseEvent):
1944
1945 2012-12-07  Nima Ghanavatian  <nghanavatian@rim.com>
1946
1947         [BlackBerry] General code cleanup and improved logging.
1948         https://bugs.webkit.org/show_bug.cgi?id=104389
1949
1950         Reviewed by Rob Buis.
1951
1952         Internally reviewed by Mike Fenton
1953
1954         * WebKitSupport/InputHandler.cpp:
1955         (BlackBerry::WebKit::convertStringToWchar):
1956         (BlackBerry::WebKit::InputHandler::requestCheckingOfString):
1957         (BlackBerry::WebKit::InputHandler::handleKeyboardInput):
1958
1959 2012-12-07  Nima Ghanavatian  <nghanavatian@rim.com>
1960
1961         [BlackBerry] Strip whitespace from learned text.
1962         https://bugs.webkit.org/show_bug.cgi?id=104391
1963
1964         Reviewed by Rob Buis.
1965
1966         This was removing the first word from the sentence being learned. Using
1967         stripWhiteSpace to remove spaces from the start and end of the text.
1968
1969         Internally reviewed by Mike Fenton.
1970
1971         * WebKitSupport/InputHandler.cpp:
1972         (BlackBerry::WebKit::InputHandler::learnText):
1973
1974 2012-12-07  Otto Derek Cheung  <otcheung@rim.com>
1975
1976         [BlackBerry] GeolocationClientBB should show file system path in prompts when host is not avaliable
1977         https://bugs.webkit.org/show_bug.cgi?id=103785
1978
1979         PR 247656
1980
1981         Reviewed by Rob Buis.
1982
1983         Adding a special case for origins with protocol "file". We will use the filepath as
1984         an origin when asking for geolocation permission.
1985
1986         If the origin is unique (ie. from a sandboxed iframe), we will fail the location request
1987         right away.
1988
1989         * WebCoreSupport/GeolocationClientBlackBerry.cpp:
1990         (getOrigin):
1991         (GeolocationClientBlackBerry::requestPermission):
1992         (GeolocationClientBlackBerry::cancelPermissionRequest):
1993
1994 2012-12-07  Mike Lattanzio  <mlattanzio@rim.com>
1995
1996         [BlackBerry] Update BlackBerry Port to use new Graphics::createBuffer BufferType enum values.
1997         https://bugs.webkit.org/show_bug.cgi?id=104121
1998
1999         Reviewed by Rob Buis.
2000
2001         Update createBuffer calls to reflect new BufferType enum.
2002         Set buffers opaque if possible to avoid unnecessary blends.
2003         Internal PR 254649
2004         Internal Review: Jakob Petsovits
2005
2006         * WebKitSupport/BackingStoreTile.cpp:
2007         (BlackBerry::WebKit::TileBuffer::nativeBuffer):
2008
2009 2012-12-07  Andrew Lo  <anlo@rim.com>
2010
2011         [BlackBerry] Double zoom animation when focusing on input field.
2012         https://bugs.webkit.org/show_bug.cgi?id=104375
2013
2014         Reviewed by Rob Buis.
2015         Internally reviewed by Jakob Petsovits.
2016
2017         UI thread does not need to be notified of a scale change if the WebKit
2018         thread scale has not changed.
2019
2020         This caused issues when two viewport resizes occured one after the other.
2021         Before the scale change due to the first resize could be set in the WK
2022         thread's scale value, it caused WK thread to dispatch a scaleChanged,
2023         overwritting & resetting the new UI thread scale value, resulting in the
2024         double zoom animation.
2025
2026         The larger issue dealing with synchronization between the threads where
2027         scale changes could occur on either thread, however that is beyond the
2028         scope of this change.
2029
2030         Internal PR253122
2031
2032         * Api/WebPage.cpp:
2033         (BlackBerry::WebKit::WebPagePrivate::shouldZoomAboutPoint):
2034
2035 2012-12-07  Xiaobo Wang  <xbwang@torchmobile.com.cn>
2036
2037         [BlackBerry] DRT - Update implementation of TestRunner.setCustomPolicyDelegate()
2038         https://bugs.webkit.org/show_bug.cgi?id=104243
2039
2040         RIM PR 259337
2041
2042         Reviewed by Rob Buis.
2043
2044         1. Add DRT callback in dispatchDecidePolicyForResponse.
2045         2. Pass frame pointer to DRT callback in
2046         dispatchDecidePolicyForNavigationAction, so that it can be used to
2047         calculate originating.
2048         3. Fix some webkit style errors.
2049
2050         The patch fixed the following tests:
2051         - http/tests/download
2052         - fast/forms/mailto/formenctype-attribute-button-html.html
2053         - fast/forms/mailto/formenctype-attribute-input-html.html
2054         - fast/encoding/mailto-always-utf-8.html
2055
2056         * Api/DumpRenderTreeClient.h:
2057         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
2058         (WebCore::FrameLoaderClientBlackBerry::dispatchDecidePolicyForResponse):
2059         (WebCore::FrameLoaderClientBlackBerry::dispatchDecidePolicyForNavigationAction):
2060         (WebCore::FrameLoaderClientBlackBerry::transitionToCommittedForNewPage):
2061         (WebCore::FrameLoaderClientBlackBerry::dispatchDidFinishLoad):
2062         (WebCore::FrameLoaderClientBlackBerry::dispatchDidFailProvisionalLoad):
2063         (WebCore::FrameLoaderClientBlackBerry::dispatchWillSendRequest):
2064         (WebCore::FrameLoaderClientBlackBerry::decidePolicyForExternalLoad):
2065
2066 2012-12-05  Otto Derek Cheung  <otcheung@rim.com>
2067
2068         [BlackBerry] Geolocation prompts won't respond to the correct geolocation object if the user opens two pages and respond in the reversed order
2069         https://bugs.webkit.org/show_bug.cgi?id=104162
2070
2071         PR 257505
2072         Reviewed by Yong Li.
2073
2074         GeolocationClientBlackBerry will register itself to GeolocationHandler when it has
2075         a pending request. When browser responds with WebPageClientImpl::setAllowGeolocation,
2076         we go through the list and let all the pending GeolocationListeners know that a certain
2077         origin has been aceepted/denied.
2078
2079         * WebCoreSupport/GeolocationClientBlackBerry.cpp:
2080         (GeolocationClientBlackBerry::geolocationDestroyed):
2081         (GeolocationClientBlackBerry::requestPermission):
2082         (GeolocationClientBlackBerry::cancelPermissionRequest):
2083         (GeolocationClientBlackBerry::onPermission):
2084
2085 2012-12-05  Jakob Petsovits  <jpetsovits@rim.com>
2086
2087         [BlackBerry] Better crash fix for resetting tiles on a backingstore takeover.
2088         https://bugs.webkit.org/show_bug.cgi?id=103969
2089         RIM PR 258415
2090
2091         Reviewed by Adam Treat.
2092
2093         The previous attempt for releasing tile buffers from the
2094         previously active backingstore did not take into account
2095         that resetTiles() would sometimes return early without
2096         having swapped the tiles and thus reclaiming them.
2097
2098         This patch removes the early returns, because it's safe
2099         to swap in an empty geometry at any time and we should
2100         always take the chance when we get it.
2101
2102         Also put the code that calls resetTiles() on an owner
2103         switch right into setCurrentBackingStoreOwner(), so that
2104         it will also release the buffers when the BackingStore
2105         is destroyed (the function is then called with 0).
2106
2107         * Api/BackingStore.cpp:
2108         (BlackBerry::WebKit::BackingStorePrivate::resetTiles):
2109         (WebKit):
2110         (BlackBerry::WebKit::BackingStorePrivate::setCurrentBackingStoreOwner):
2111         * Api/BackingStore.h: Had to add the friend here to make the moved code work from the static function.
2112         * Api/BackingStore_p.h:
2113         (BackingStorePrivate):
2114         * Api/WebPage.cpp:
2115         (BlackBerry::WebKit::WebPagePrivate::resumeBackingStore):
2116
2117 2012-12-05  Jakob Petsovits  <jpetsovits@rim.com>
2118
2119         [BlackBerry] Keep screen updates suspended until after a viewport resize.
2120         https://bugs.webkit.org/show_bug.cgi?id=104041
2121
2122         Reviewed by Adam Treat.
2123
2124         Now that screen and backing store updates can be suspended
2125         and resumed separately from each other, prevent blits for
2126         the whole duration of setViewportSize() and always issue
2127         a blit at the end.
2128
2129         Makes WebPage::setViewportSize() more robust in threaded usage,
2130         easier to read/understand, and gets rid of a couple of FIXMEs.
2131
2132         * Api/WebPage.cpp:
2133         (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
2134
2135 2012-12-05  Andrew Lo  <anlo@rim.com>
2136
2137         [BlackBerry] Scroll position shifts while FCC & selection handle are dragged
2138         https://bugs.webkit.org/show_bug.cgi?id=104156
2139
2140         Reviewed by Rob Buis.
2141         Internally reviewed by Mike Fenton.
2142
2143         Only ensureFocusTextElementVisible on selectionChanged when
2144         an element is being re-focused.
2145         Internal PR256329
2146
2147         * WebKitSupport/InputHandler.cpp:
2148         (BlackBerry::WebKit::InputHandler::InputHandler):
2149         (BlackBerry::WebKit::InputHandler::setElementFocused):
2150         (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
2151         (BlackBerry::WebKit::InputHandler::selectionChanged):
2152         * WebKitSupport/InputHandler.h:
2153         (InputHandler):
2154
2155 2012-12-05  Leo Yang  <leoyang@rim.com>
2156
2157         [BlackBerry] Enable CSS_IMAGE_RESOLUTION
2158         https://bugs.webkit.org/show_bug.cgi?id=104132
2159
2160         Reviewed by Yong Li.
2161
2162         * WebCoreSupport/AboutDataEnableFeatures.in:
2163
2164 2012-12-05  Jacky Jiang  <zhajiang@rim.com>
2165
2166         [BlackBerry] meta viewport pages are rendered at a bad initial scale
2167         https://bugs.webkit.org/show_bug.cgi?id=104122
2168
2169         Reviewed by Rob Buis.
2170         Internally reviewed by Arvid Nilsson.
2171
2172         PR: 240378
2173         Many websites are rendered at a very bad initial scale because they
2174         both specify meta viewport tag and have large width elements. In such
2175         a case we will think the meta viewport tag is broken if the width of
2176         any element is larger than the calculated layout viewport width.
2177         The fix to this is straightforward that we will zoom the page to fit
2178         the screen to have better user experience instead of respecting the
2179         meta viewport. This can fix the issue on the websites such as
2180         www.travelpod.com, www.forbes.com, interfacelift.com, www.sky.com,
2181         raphaeljs.com and so on.
2182         If non-empty m_userViewportArguments is applied, then we will force to
2183         respect the viewport arguments. In this way we will restrict the fix to
2184         browser only.
2185
2186         * Api/WebPage.cpp:
2187         (BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
2188         (BlackBerry::WebKit::WebPagePrivate::setLoadState):
2189         (BlackBerry::WebKit::WebPagePrivate::respectViewport):
2190         (WebKit):
2191         (BlackBerry::WebKit::WebPagePrivate::initialScale):
2192         (BlackBerry::WebKit::WebPagePrivate::maximumScale):
2193         (BlackBerry::WebKit::WebPagePrivate::dispatchViewportPropertiesDidChange):
2194         * Api/WebPage_p.h:
2195         (BlackBerry::WebKit::WebPagePrivate::isUserScalable):
2196         (WebPagePrivate):
2197         (BlackBerry::WebKit::WebPagePrivate::minimumScale):
2198
2199 2012-12-05  Otto Derek Cheung  <otcheung@rim.com>
2200
2201         [BlackBerry] GeolocationClientBB only holding the latest geolocation permission request
2202         https://bugs.webkit.org/show_bug.cgi?id=104123
2203
2204         PR 256089
2205
2206         Reviewed by Yong Li.
2207
2208         Add a mapping between origin URL and it's geolocation object so we could
2209         respond to the correct geolocation when libwebview responds with onPermission
2210         in GeolocationClient.
2211
2212         Using the mapping, we could also prevent requestGeolocation requests from the same origin
2213         to be sent twice. This prevents pages that hold two iframes to the same resource to request
2214         geolocation permission on the same security origin twice.
2215
2216         Tested this by running a page that includes 2 or more iframes that requests geolocation
2217         permission.
2218
2219         * WebCoreSupport/GeolocationClientBlackBerry.cpp:
2220         (GeolocationClientBlackBerry::requestPermission):
2221         (GeolocationClientBlackBerry::cancelPermissionRequest):
2222         (GeolocationClientBlackBerry::onPermission):
2223         * WebCoreSupport/GeolocationClientBlackBerry.h:
2224         (GeolocationClientBlackBerry):
2225
2226 2012-12-05  Yongxin Dai  <yodai@rim.com>
2227
2228         [BlackBerry] Avoid showing FCC on empty text field in a different way
2229         https://bugs.webkit.org/show_bug.cgi?id=104019
2230
2231         Reviewed by Rob Buis.
2232
2233         PR #222796
2234
2235         Add text field empty flag along with the caret change notification so that
2236         FineCursorContnrol is able to avoid showing FCC on empty text filed.
2237         Previous approach, notifying client with empty caret on empty text field,
2238         causes problem. Its code is removed.
2239
2240         Reviewed Internally by Mike Fenton.
2241
2242         * Api/WebPageClient.h:
2243         * WebKitSupport/SelectionHandler.cpp:
2244         (BlackBerry::WebKit::SelectionHandler::caretPositionChanged):
2245
2246 2012-12-04  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>
2247         [BlackBerry] VKB flickers in and out when tapping on webview after text selection on URL bar
2248         https://bugs.webkit.org/show_bug.cgi?id=103874
2249         PR245678
2250
2251         Reviewed by Rob Buis.
2252         Internally reviewed by Mike Fenton.
2253
2254         When the virtual keyboard is hiding, the viewport is changed and the page needs
2255         to relayout.At the same time, the user interface thread  is executing compositeLayers
2256         and it will dispatch the updateDelegatedOverlays() to webkit thread which will trigger
2257         the selectionPositionChanged() in webkit thread.
2258
2259         When the selectionPositionChanged() calls frame->selection()->selection().
2260         visibleStart() and frame->selection()->selection().visibleEnd(), it will
2261         trigger page relayout and return the relayouted selection start and end position.
2262         These positions are out of the range which is recorded before its relayout.
2263         As a result it think the selection start and end are all clipped out and it send
2264         out an "empty selection"(not selected) changing event.
2265
2266         When the WebPageClient receives the empty selection changing event, it will consider
2267         the selection process aborted and might cancel selection-related user interaction.
2268         This is not what we intend to happen.
2269
2270         This patch stops the changing handling process and returns when the page needs relayout,
2271         and the selection will be updated again when the page finishs relayout.
2272
2273         * WebKitSupport/SelectionHandler.cpp:
2274         (BlackBerry::WebKit::SelectionHandler::selectionPositionChanged):
2275
2276 2012-12-04  Andrew Lo  <anlo@rim.com>
2277
2278         [BlackBerry] Scroll adjustments while typing scroll off page, then bounce back.
2279         https://bugs.webkit.org/show_bug.cgi?id=104045
2280
2281         Reviewed by Rob Buis.
2282         Internally reviewed by Mike Fenton & Jakob Petsovits.
2283
2284         Internal PR253845
2285         The main frame's view should only be temporarily set to
2286         not constrain scrolling to the content edge while the
2287         scroll position is set at the end of the scroll animation.
2288
2289         Remove ensureFocusTextElementVisible from setSpannableTextAndRelativeCursor
2290         in InputHandler since FrameSelection::revealSelection
2291         already implements scroll adjustments due to typing.
2292
2293         * Api/WebPage.cpp:
2294         (BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
2295         (BlackBerry::WebKit::WebPagePrivate::zoomBlock):
2296         (BlackBerry::WebKit::WebPagePrivate::resetBlockZoom):
2297         * Api/WebPage_p.h:
2298         (WebPagePrivate):
2299         * WebKitSupport/InputHandler.cpp:
2300         (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
2301         (BlackBerry::WebKit::InputHandler::setSpannableTextAndRelativeCursor):
2302
2303 2012-12-04  Mike Fenton  <mifenton@rim.com>
2304
2305         [BlackBerry] Remove assert and fix conditional for out of bounds requests in InputHandler::spannableTextInRange
2306         https://bugs.webkit.org/show_bug.cgi?id=104001
2307
2308         Reviewed by Rob Buis.
2309
2310         PR 257723.
2311
2312         Remove assert and update early return to allow out of bounds
2313         request at end of field.
2314
2315         Reviewed Internally by Gen Mak.
2316
2317         * WebKitSupport/InputHandler.cpp:
2318         (BlackBerry::WebKit::InputHandler::spannableTextInRange):
2319
2320 2012-12-04  Jakob Petsovits  <jpetsovits@rim.com>
2321
2322         [BlackBerry] Store rendered regions in pixel contents coordinates.
2323         https://bugs.webkit.org/show_bug.cgi?id=103930
2324         PR 253496
2325
2326         Reviewed by Rob Buis.
2327         Internally reviewed by Adam Treat.
2328
2329         Previously, the rendered region of a tile used to be
2330         stored in coordinates relative to the tile origin.
2331         This brings no benefits whatsoever and causes a lot
2332         of unnecessary transformations, together with the
2333         potential of incorrectly transforming rendered regions.
2334
2335         By storing the rendered region as what it is,
2336         everything is more compact, easier to understand
2337         and easier to use with other existing functionality.
2338
2339         * Api/BackingStore.cpp:
2340         (BlackBerry::WebKit::BackingStorePrivate::clearAndUpdateTileOfNotRenderedRegion):
2341         (BlackBerry::WebKit::BackingStorePrivate::isCurrentVisibleJob):
2342         (BlackBerry::WebKit::BackingStorePrivate::render):
2343         (BlackBerry::WebKit::BackingStorePrivate::renderVisibleContents):
2344         (BlackBerry::WebKit::BackingStorePrivate::copyPreviousContentsToTileBuffer):
2345         (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents):
2346         (BlackBerry::WebKit::BackingStorePrivate::compositeContents):
2347         (BlackBerry::WebKit::BackingStorePrivate::blitTileRect):
2348         (BlackBerry::WebKit::BackingStorePrivate::isTileVisible):
2349         (BlackBerry::WebKit::BackingStorePrivate::visibleTilesRect):
2350         (BlackBerry::WebKit::BackingStorePrivate::tileVisibleContentsRect):
2351         (BlackBerry::WebKit::BackingStorePrivate::tileContentsRect):
2352         (BlackBerry::WebKit::BackingStorePrivate::updateTiles):
2353         (BlackBerry::WebKit::BackingStorePrivate::updateTilesForScrollOrNotRenderedRegion):
2354         (BlackBerry::WebKit::BackingStorePrivate::mapFromPixelContentsToTiles):
2355         (BlackBerry::WebKit::BackingStorePrivate::transformChanged):
2356         (BlackBerry::WebKit::BackingStorePrivate::blitToWindow):
2357         * Api/BackingStore_p.h:
2358         (BackingStorePrivate):
2359         * WebKitSupport/BackingStoreTile.cpp:
2360         (BlackBerry::WebKit::TileBuffer::surfaceRect):
2361         (BlackBerry::WebKit::TileBuffer::pixelContentsRect):
2362         (WebKit):
2363         (BlackBerry::WebKit::TileBuffer::isRendered):
2364         (BlackBerry::WebKit::TileBuffer::notRenderedRegion):
2365         * WebKitSupport/BackingStoreTile.h:
2366         (TileBuffer):
2367
2368 2012-12-04  Jakob Petsovits  <jpetsovits@rim.com>
2369
2370         [BlackBerry] Use updated API for backingstore tiles.
2371         https://bugs.webkit.org/show_bug.cgi?id=103970
2372         PR 212369
2373
2374         Reviewed by George Staikos.
2375         Internally reviewed by Arvid Nilsson.
2376
2377         We now make use of Platform::Settings::tileSize() in the
2378         backingstore and don't hardcode the number of back buffers
2379         like we used to.
2380
2381         * Api/BackingStore.cpp:
2382         (BlackBerry::WebKit::bestDivisor):
2383         (BlackBerry::WebKit::BackingStorePrivate::tileWidth):
2384         (BlackBerry::WebKit::BackingStorePrivate::tileHeight):
2385         (BlackBerry::WebKit::BackingStorePrivate::tileSize):
2386         * WebKitSupport/AboutData.cpp:
2387         (BlackBerry::WebKit::configPage):
2388         * WebKitSupport/SurfacePool.cpp:
2389         (BlackBerry::WebKit::SurfacePool::SurfacePool):
2390         (BlackBerry::WebKit::SurfacePool::numberOfBackingStoreFrontBuffers):
2391         (BlackBerry::WebKit::SurfacePool::initialize):
2392         * WebKitSupport/SurfacePool.h:
2393         (SurfacePool):
2394
2395 2012-12-04  Jakob Petsovits  <jpetsovits@rim.com>
2396
2397         [BlackBerry] On taking over a backingstore, reset the previous page's tiles.
2398         https://bugs.webkit.org/show_bug.cgi?id=103969
2399         RIM PR 253496
2400
2401         Reviewed by George Staikos.
2402
2403         With buffers being explicitly reclaimed from backingstore
2404         geometries, we have to make sure that the previously
2405         active backingstore releases its front buffers for use
2406         in the newly active one.
2407
2408         Previously, this clearing of backingstore tiles occurred
2409         after the dormant backingstore is reactivated,
2410         the backingstore active in the meantime would just use
2411         the back buffer anyway and leave the dormant one with
2412         dangling pointers that would just not be shown.
2413         Now that we have a counted list of back buffers,
2414         we need to be explicit about this thing upfront.
2415
2416         Fixes a crash that would occur after switching ownership
2417         of the backingstore to a different WebPage.
2418
2419         * Api/WebPage.cpp:
2420         (BlackBerry::WebKit::WebPagePrivate::resumeBackingStore):
2421
2422 2012-12-03  Jakob Petsovits  <jpetsovits@rim.com>
2423
2424         [BlackBerry] Refactor the backingstore to swap full geometries.
2425         https://bugs.webkit.org/show_bug.cgi?id=103924
2426         RIM PR 253496
2427
2428         Reviewed by Yong Li.
2429         Internally reviewed by Adam Treat and Arvid Nilsson.
2430
2431         The backingstore had a working split between front and
2432         back state, but it was multilayered and hard to grasp.
2433         This commit cleanly divides the responsibilities of
2434         BackingStoreGeometry and TileBuffer, with the latter
2435         now being able to function on its own without the help
2436         of its geometry. The BackingStoreTile class was an
2437         unnecessary middleman and can be removed wholesale.
2438
2439         A BackingStoreGeometry can now function with null tiles
2440         being assigned to its indices, which enables us to reclaim
2441         tile buffers outside of the visible contents area as back
2442         buffers. This reduces the need to swap and block when the
2443         backingstore size exceeds the contents size, and also lets
2444         us use more tiles for initial rendering after a call to
2445         resetTiles() which is now implemented as swapping in a
2446         geometry with only null buffers.
2447
2448         setBackingStoreRect() was the only function that had to
2449         get a change of behavior. Because we're now constructing
2450         new BackingStoreGeometry objects every time the front
2451         geometry is being exchanged for a new one, it is only
2452         safe to call other functions reliant on the new geometry
2453         after it has been finalized and put in place. Therefore,
2454         updateTilesForScrollOrNotRenderedRegion() takes on the
2455         render queue maintenance tasks that setBackingStoreRect()
2456         had performed previously. It was already doing something
2457         very similar so only few changes to the function were
2458         necessary.
2459
2460         This commit will make subsequent changes to the
2461         backingstore geometry and tile logic a lot easier.
2462
2463         * Api/BackingStore.cpp:
2464         (BlackBerry::WebKit::BackingStoreGeometry::isTileCorrespondingToBuffer):
2465         (WebKit):
2466         (BlackBerry::WebKit::BackingStorePrivate::BackingStorePrivate):
2467         (BlackBerry::WebKit::BackingStorePrivate::~BackingStorePrivate):
2468         (BlackBerry::WebKit::BackingStorePrivate::setBackingStoreRect):
2469         (BlackBerry::WebKit::BackingStorePrivate::updateTilesAfterBackingStoreRectChange):
2470         (BlackBerry::WebKit::BackingStorePrivate::clearAndUpdateTileOfNotRenderedRegion):
2471         (BlackBerry::WebKit::BackingStorePrivate::clearRenderedRegion):
2472         (BlackBerry::WebKit::BackingStorePrivate::isCurrentVisibleJob):
2473         (BlackBerry::WebKit::BackingStorePrivate::render):
2474         (BlackBerry::WebKit::BackingStorePrivate::copyPreviousContentsToTileBuffer):
2475         (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents):
2476         (BlackBerry::WebKit::BackingStorePrivate::compositeContents):
2477         (BlackBerry::WebKit::BackingStorePrivate::blitTileRect):
2478         (BlackBerry::WebKit::BackingStorePrivate::tileVisibleContentsRect):
2479         (BlackBerry::WebKit::BackingStorePrivate::resetTiles):
2480         (BlackBerry::WebKit::BackingStorePrivate::updateTiles):
2481         (BlackBerry::WebKit::BackingStorePrivate::updateTilesForScrollOrNotRenderedRegion):
2482         (BlackBerry::WebKit::BackingStorePrivate::mapFromTilesToTransformedContents):
2483         (BlackBerry::WebKit::BackingStorePrivate::mapFromTransformedContentsToTiles):
2484         (BlackBerry::WebKit::BackingStorePrivate::transformChanged):
2485         (BlackBerry::WebKit::BackingStorePrivate::createSurfaces):
2486         (BlackBerry::WebKit::BackingStoreGeometry::originOfTile):
2487         (BlackBerry::WebKit::BackingStorePrivate::adoptAsFrontState):
2488         * Api/BackingStore_p.h:
2489         (WebKit):
2490         (BackingStoreGeometry):
2491         (BlackBerry::WebKit::BackingStoreGeometry::tileBufferAt):
2492         (BackingStorePrivate):
2493         * Api/WebPage.cpp:
2494         (BlackBerry::WebKit::WebPagePrivate::setLoadState):
2495         (BlackBerry::WebKit::WebPagePrivate::resumeBackingStore):
2496         (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
2497         * Api/WebPage_p.h:
2498         (WebKit):
2499         * WebKitSupport/BackingStoreTile.cpp:
2500         (BlackBerry::WebKit::TileBuffer::TileBuffer):
2501         (BlackBerry::WebKit::TileBuffer::~TileBuffer):
2502         (BlackBerry::WebKit::TileBuffer::isRendered):
2503         (BlackBerry::WebKit::TileBuffer::nativeBuffer):
2504         (BlackBerry::WebKit::TileBuffer::wasNativeBufferCreated):
2505         (BlackBerry::WebKit::TileBuffer::paintBackground):
2506         * WebKitSupport/BackingStoreTile.h:
2507         (BlackBerry::WebKit::TileBuffer::lastRenderOrigin):
2508         (BlackBerry::WebKit::TileBuffer::setLastRenderOrigin):
2509         (BlackBerry::WebKit::TileBuffer::lastRenderScale):
2510         (BlackBerry::WebKit::TileBuffer::setLastRenderScale):
2511         (TileBuffer):
2512         (BlackBerry::WebKit::TileBuffer::backgroundPainted):
2513         * WebKitSupport/SurfacePool.cpp:
2514         (BlackBerry::WebKit::SurfacePool::SurfacePool):
2515         (BlackBerry::WebKit::SurfacePool::size):
2516         (WebKit):
2517         (BlackBerry::WebKit::SurfacePool::initialize):
2518         (BlackBerry::WebKit::SurfacePool::initializeVisibleTileBuffer):
2519         (BlackBerry::WebKit::SurfacePool::hasBackBuffer):
2520         (BlackBerry::WebKit::SurfacePool::takeBackBuffer):
2521         (BlackBerry::WebKit::SurfacePool::addBackBuffer):
2522         (BlackBerry::WebKit::SurfacePool::createBuffers):
2523         (BlackBerry::WebKit::SurfacePool::releaseBuffers):
2524         (BlackBerry::WebKit::SurfacePool::notifyBuffersComposited):
2525         * WebKitSupport/SurfacePool.h:
2526         (BlackBerry::WebKit::SurfacePool::isActive):
2527         (BlackBerry::WebKit::SurfacePool::isEmpty):
2528         (SurfacePool):
2529         (BlackBerry::WebKit::SurfacePool::visibleTileBuffer):
2530
2531 2012-12-03  Cosmin Truta  <ctruta@rim.com>
2532
2533         [BlackBerry] Enable HIDDEN_PAGE_DOM_TIMER_THROTTLING
2534         https://bugs.webkit.org/show_bug.cgi?id=103842
2535
2536         Reviewed by Yong Li.
2537
2538         Add HIDDEN_PAGE_DOM_TIMER_THROTTLING.
2539
2540         * WebCoreSupport/AboutDataEnableFeatures.in:
2541
2542 2012-12-02  Tiancheng Jiang  <tijiang@rim.com>
2543
2544         [BlackBerry]Tap highlight
2545         https://bugs.webkit.org/show_bug.cgi?id=103787
2546
2547         Reviewed by Rob Buis.
2548
2549         RIM PR 248626
2550         Internally Reviewed by Genevieve Mak.
2551
2552         Draw tap highlight as soon as tap on element.
2553
2554         * Api/WebPage.cpp:
2555         (BlackBerry::WebKit::WebPage::touchEvent):
2556         * WebKitSupport/TouchEventHandler.cpp:
2557         (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
2558         * WebKitSupport/TouchEventHandler.h:
2559         (TouchEventHandler):
2560
2561 2012-11-28  Cosmin Truta  <ctruta@rim.com>
2562
2563         [BlackBerry] Set the minimal DOM timer interval to 4 milliseconds
2564         https://bugs.webkit.org/show_bug.cgi?id=103534
2565
2566         Reviewed by Yong Li.
2567
2568         We align this behavior with other platforms.
2569
2570         * Api/BlackBerryGlobal.cpp:
2571         (BlackBerry::WebKit::globalInitialize):
2572
2573 2012-11-29  Otto Derek Cheung  <otcheung@rim.com>
2574
2575         [BlackBerry] Modifying GeoClientBlackBerry to switch between high and low accuracy
2576         https://bugs.webkit.org/show_bug.cgi?id=103666
2577
2578         Reviewed by Yong Li.
2579
2580         Internally reviewed by Yong Li.
2581
2582         PR 243420
2583
2584         Updating GeolocationClientBlackBerry to switch accuracy when GeolocationController
2585         calls setEnableHighAccuracy.
2586
2587         * WebCoreSupport/GeolocationClientBlackBerry.cpp:
2588         (GeolocationClientBlackBerry::startUpdating):
2589         (GeolocationClientBlackBerry::setEnableHighAccuracy):
2590
2591 2012-11-29  Andrew Lo  <anlo@rim.com>
2592
2593         [BlackBerry] Do not adjust scroll position on viewport resizes that are not orientation change related
2594         https://bugs.webkit.org/show_bug.cgi?id=103659
2595
2596         Reviewed by Rob Buis.
2597         Internally reviewed by Gen Mak.
2598
2599         Internal PR253893.
2600         Only adjust scroll position during an orientation change
2601         when setting viewport size.
2602         We don't want the scroll position jumping around when opening
2603         & closing the VKB.
2604
2605         * Api/WebPage.cpp:
2606         (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
2607
2608 2012-11-28  Otto Derek Cheung  <otcheung@rim.com>
2609
2610         [BlackBerry] CookieJarBlackBerry will use document settings for cookiesEnabled
2611         https://bugs.webkit.org/show_bug.cgi?id=103560
2612
2613         Reviewed by Rob Buis.
2614
2615         PR 253490
2616
2617         Syncing platform Websetting's cookieEnabled value with Page->setting's cookieEnabled
2618         value.
2619
2620         * Api/WebPage.cpp:
2621         (BlackBerry::WebKit::WebPagePrivate::didChangeSettings):
2622
2623 2012-11-27  James Simonsen  <simonjam@chromium.org>
2624
2625         Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
2626         https://bugs.webkit.org/show_bug.cgi?id=102151
2627
2628         Reviewed by Adam Barth.
2629
2630         * Api/WebPage.cpp:
2631         (BlackBerry::WebKit::WebPagePrivate::load):
2632         (BlackBerry::WebKit::WebPagePrivate::loadString):
2633         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
2634         (WebCore::FrameLoaderClientBlackBerry::dispatchDidFailProvisionalLoad):
2635
2636 2012-11-27  Jacky Jiang  <zhajiang@rim.com>
2637
2638         [BlackBerry] http:// origins can navigate to privileged local:// origins
2639         https://bugs.webkit.org/show_bug.cgi?id=103437
2640
2641         Reviewed by Yong Li.
2642
2643         PR: 251489
2644         When we aren't allowed to display the destination origin, we shouldn't
2645         even create the window for it. In this way we can block the remote
2646         origins(like http://) window.open local origins(like file:// and
2647         local://) and avoid further security issues.
2648         Chrome and Safari will open a blank window and fail to load. Firefox
2649         will fail to open the window and report a load failure error which has
2650         the same behavior as us. I would prefer this way as the window would
2651         be useless and the calls after that would be harmful to us.
2652
2653         * WebCoreSupport/ChromeClientBlackBerry.cpp:
2654         (WebCore::ChromeClientBlackBerry::createWindow):
2655
2656 2012-11-27  Andrew Lo  <anlo@rim.com>
2657
2658         [BlackBerry] Remove unnecessary backing store suspension in InputHandler::ensureFocusTextElementVisible
2659         https://bugs.webkit.org/show_bug.cgi?id=103441
2660
2661         Reviewed by Rob Buis.
2662         Internally reviewed by Mike Fenton.
2663
2664         Remove unnecessary backing store suspension in
2665         InputHandler::ensureFocusTextElementVisible.
2666
2667         Not necessary anymore since both zoom and scroll adjustments
2668         happen in an animation.
2669
2670         * WebKitSupport/InputHandler.cpp:
2671         (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
2672
2673 2012-11-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2674
2675         Unreviewed, rolling out r135786.
2676         http://trac.webkit.org/changeset/135786
2677         https://bugs.webkit.org/show_bug.cgi?id=103379
2678
2679         It made 3 plugin tests timeout on several platforms (Requested
2680         by Ossy on #webkit).
2681
2682         * Api/WebPage.cpp:
2683         (BlackBerry::WebKit::WebPagePrivate::load):
2684         (BlackBerry::WebKit::WebPagePrivate::loadString):
2685         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
2686         (WebCore::FrameLoaderClientBlackBerry::dispatchDidFailProvisionalLoad):
2687
2688 2012-11-26  James Simonsen  <simonjam@chromium.org>
2689
2690         Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
2691         https://bugs.webkit.org/show_bug.cgi?id=102151
2692
2693         Reviewed by Adam Barth.
2694
2695         * Api/WebPage.cpp:
2696         (BlackBerry::WebKit::WebPagePrivate::load):
2697         (BlackBerry::WebKit::WebPagePrivate::loadString):
2698         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
2699         (WebCore::FrameLoaderClientBlackBerry::dispatchDidFailProvisionalLoad):
2700
2701 2012-11-26  Genevieve Mak  <gmak@rim.com>
2702
2703         [BlackBerry] Form controls don't show pressed state.
2704         https://bugs.webkit.org/show_bug.cgi?id=103292
2705
2706         Reviewed by Rob Buis.
2707
2708         Reviewed internally by Eli Fidler and Mike Lattanzio.
2709         We weren't sending touch events to webpages unless they
2710         had JS touch event listeners which form controls don't have.
2711         Now send them always and do a little cleanup.
2712         PR #249791
2713
2714         * Api/WebPage.cpp:
2715         (BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
2716         (BlackBerry::WebKit::WebPage::touchEvent):
2717         * Api/WebPageClient.h:
2718         * Api/WebPage_p.h:
2719         (WebPagePrivate):
2720         * WebCoreSupport/ChromeClientBlackBerry.cpp:
2721         (WebCore::ChromeClientBlackBerry::needTouchEvents):
2722
2723 2012-11-26  Nima Ghanavatian  <nghanavatian@rim.com>
2724
2725         [BlackBerry] Null check calls associated with retrieving the caret rect.
2726         https://bugs.webkit.org/show_bug.cgi?id=103281
2727
2728         Reviewed by Rob Buis.
2729
2730         Some of these calls can return null, which could lead to a crash.
2731
2732         Internally reviewed by Gen Mak.
2733
2734         * WebKitSupport/InputHandler.cpp:
2735         (BlackBerry::WebKit::InputHandler::requestSpellingCheckingOptions):
2736
2737 2012-11-26  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
2738
2739         [BlackBerry] Should not autofill username and password when there're more than one password inputs on the same page
2740         https://bugs.webkit.org/show_bug.cgi?id=103104
2741
2742         Reviewed by Rob Buis.
2743
2744         RIM PR: 245334
2745         Added the oldPassword detection back into the password input
2746         detection logic, which was removed for simplicity when imported
2747         those pieces of codes from Chromium. And we won't do autofill
2748         when there're more than one password field detected.
2749
2750         Internally reviewed by Rob Buis.
2751
2752         * WebCoreSupport/CredentialTransformData.cpp:
2753         (WebCore::CredentialTransformData::CredentialTransformData):
2754         (WebCore::CredentialTransformData::findPasswordFormFields):
2755         * WebCoreSupport/CredentialTransformData.h:
2756         (CredentialTransformData):
2757         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
2758         (WebCore::FrameLoaderClientBlackBerry::dispatchWillSendSubmitEvent):
2759
2760 2012-11-25  Jacky Jiang  <zhajiang@rim.com>
2761
2762         [BlackBerry] Get rid of resetBitmapZoomScale()
2763         https://bugs.webkit.org/show_bug.cgi?id=103200
2764
2765         Reviewed by Rob Buis.
2766         Internally reviewed by Gen Mak.
2767
2768         PR: 235707
2769         Right now, resetBitmapZoomScale() takes an unused paramter and
2770         dispatches a message to end the bitmap zooming. However, the
2771         interaction has its own state machine to start bitmap zooming when it
2772         is active and end bitmap zooming when it is inactive. This is
2773         expecially for pinch zoom and scroll. From WebKit side, block zoom
2774         which will call zoomBlock when the bitmap zoom finished doesn't even
2775         need to dispatch the useless ending message to ZoomHandler.
2776         resetBitmapZoomScale() is basically a noop for block zoom. And likewise
2777         that is useless for zoomToInitialScaleOnLoad(). It can also potentially
2778         cause problem if it is used somewhere else in the future and
2779         incidentally breaks the interaction's own state machine. So just remove
2780         this completely.
2781
2782         * Api/WebPage.cpp:
2783         (BlackBerry::WebKit::WebPagePrivate::zoomToInitialScaleOnLoad):
2784         (BlackBerry::WebKit::WebPagePrivate::zoomBlock):
2785         * Api/WebPageClient.h:
2786
2787 2012-11-24  Andy Chen  <andchen@rim.com>
2788
2789         [BlackBerry] Find-on-page keeps stale pointer
2790         https://bugs.webkit.org/show_bug.cgi?id=103190
2791
2792         Reviewed by Rob Buis.
2793
2794         Find on page: pendingScopingEffort stores stale pointer when frames unload,
2795         we need to cancel those scoping efforts.
2796         PR 250807.
2797
2798         Internally reviewed by Yongxin Dai and Mike Fenton.
2799
2800         * WebKitSupport/InPageSearchManager.cpp:
2801         (InPageSearchManager::DeferredScopeStringMatches):
2802         (BlackBerry::WebKit::InPageSearchManager::frameUnloaded):
2803
2804 2012-11-24  Genevieve Mak  <gmak@rim.com>
2805
2806         [BlackBerry] Text not selected when input field focused.
2807         https://bugs.webkit.org/show_bug.cgi?id=103182
2808
2809         Reviewed by George Staikos.
2810
2811         Reviewed Internally by: Mike Fenton, Eli Fidler
2812         PR #250163
2813
2814         * WebKitSupport/SelectionHandler.cpp:
2815         (BlackBerry::WebKit::SelectionHandler::selectObject):
2816
2817 2012-11-23  Nima Ghanavatian  <nghanavatian@rim.com>
2818
2819         [BlackBerry] Define platform limitations in platform layer
2820         https://bugs.webkit.org/show_bug.cgi?id=103160
2821
2822         Reviewed by Rob Buis.
2823
2824         Taking length as const unsigned in checkSpellingOfStringAsync.
2825         This value is unchanging and should never be less than 0, even
2826         in an error case.
2827
2828         Internally reviewed by Mike Fenton.
2829
2830         * Api/WebPageClient.h:
2831         * WebKitSupport/InputHandler.cpp:
2832         (BlackBerry::WebKit::InputHandler::requestCheckingOfString):
2833
2834 2012-11-23  Jacky Jiang  <zhajiang@rim.com>
2835
2836         [BlackBerry] Meta viewport can't be changed dynamically
2837         https://bugs.webkit.org/show_bug.cgi?id=103098
2838
2839         Reviewed by Rob Buis.
2840         Internally reviewed by Arvid Nilsson.
2841
2842         PR: 237072
2843         Reset m_userPerformedManualZoom and enable
2844         m_shouldZoomToInitialScaleAfterLoadFinished so that we can relayout the
2845         page and zoom it to fit the screen when we dynamically change the meta
2846         viewport after the load is finished.
2847
2848         * Api/WebPage.cpp:
2849         (BlackBerry::WebKit::WebPagePrivate::dispatchViewportPropertiesDidChange):
2850
2851 2012-11-23  Genevieve Mak  <gmak@rim.com>
2852
2853         [BlackBerry] Drop Synchronous Mouse Events
2854         https://bugs.webkit.org/show_bug.cgi?id=102980
2855
2856         Reviewed by Rob Buis.
2857
2858         Reviewed Internally by George Staikos and Mike Lattanzio.
2859         Don't send actual Touch Events to fullscreen plugins unless
2860         its a Touch Cancel, DoubleTap or TouchHold.
2861         Instead send mouse events as long as its a single finger.
2862         PR #242781
2863
2864         * Api/WebPage.cpp:
2865         (BlackBerry::WebKit::WebPage::touchPointAsMouseEvent):
2866         (BlackBerry::WebKit::WebPagePrivate::dispatchTouchEventToFullScreenPlugin):
2867         (WebKit):
2868         (BlackBerry::WebKit::WebPagePrivate::dispatchTouchPointAsMouseEventToFullScreenPlugin):
2869
2870 2012-11-23  Andrew Lo  <anlo@rim.com>
2871
2872         [BlackBerry] InputHandler::ensureFocusTextElementVisible incorrectly used y coordinate as x coordinate
2873         https://bugs.webkit.org/show_bug.cgi?id=103091
2874
2875         Reviewed by Yong Li.
2876
2877         Internally reviewed by Mike Fenton.
2878         Internal PR249523
2879         Incorrectly used y coordinate as x coordinate in
2880         InputHandler::ensureFocusTextElementVisible.
2881
2882         * WebKitSupport/InputHandler.cpp:
2883         (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
2884
2885 2012-11-22  Jeff Rogers  <jrogers@rim.com>
2886
2887         [BlackBerry] Update Web Notifications Implementation
2888         https://bugs.webkit.org/show_bug.cgi?id=102621
2889
2890         Reviewed by George Staikos.
2891
2892         Reviewed internally by George Staikos and Joe Mason
2893         Internal PR 172120
2894         Add new notifications implementation for the BlackBerry port. Rename
2895         existing class to match Client naming. Adds NotificationManager
2896         implementation for managing notifications and permissions, and logic
2897         for passing the notifications to the platform provider.
2898
2899         * Api/WebPage.cpp:
2900         (BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
2901         (BlackBerry::WebKit::WebPagePrivate::init):
2902         (BlackBerry::WebKit::WebPage::updateNotificationPermission):
2903         (WebKit):
2904         (BlackBerry::WebKit::WebPage::notificationClicked):
2905         (BlackBerry::WebKit::WebPage::notificationClosed):
2906         (BlackBerry::WebKit::WebPage::notificationError):
2907         (BlackBerry::WebKit::WebPage::notificationShown):
2908         * Api/WebPage.h:
2909         * Api/WebPageClient.h:
2910         * Api/WebPage_p.h:
2911         (WebPagePrivate):
2912         (BlackBerry::WebKit::WebPagePrivate::notificationManager):
2913         * WebCoreSupport/NotificationClientBlackBerry.cpp: Added.
2914         (WebCore):
2915         (WebCore::NotificationClientBlackBerry::NotificationClientBlackBerry):
2916         (WebCore::NotificationClientBlackBerry::show):
2917         (WebCore::NotificationClientBlackBerry::cancel):
2918         (WebCore::NotificationClientBlackBerry::clearNotifications):
2919         (WebCore::NotificationClientBlackBerry::notificationObjectDestroyed):
2920         (WebCore::NotificationClientBlackBerry::notificationControllerDestroyed):
2921         (WebCore::NotificationClientBlackBerry::requestPermission):
2922         (WebCore::NotificationClientBlackBerry::cancelRequestsForPermission):
2923         (WebCore::NotificationClientBlackBerry::checkPermission):
2924         * WebCoreSupport/NotificationClientBlackBerry.h: Added.
2925         (WebKit):
2926         (WebCore):
2927         (NotificationClientBlackBerry):
2928         * WebCoreSupport/NotificationPresenterImpl.cpp: Removed.
2929         * WebCoreSupport/NotificationPresenterImpl.h: Removed.
2930         * WebKitSupport/NotificationManager.cpp: Added.
2931         (WebKit):
2932         (BlackBerry::WebKit::NotificationManager::NotificationManager):
2933         (BlackBerry::WebKit::NotificationManager::~NotificationManager):
2934         (BlackBerry::WebKit::NotificationManager::show):
2935         (BlackBerry::WebKit::NotificationManager::cancel):
2936         (BlackBerry::WebKit::NotificationManager::clearNotifications):
2937         (BlackBerry::WebKit::NotificationManager::notificationObjectDestroyed):
2938         (BlackBerry::WebKit::NotificationManager::requestPermission):
2939         (BlackBerry::WebKit::NotificationManager::cancelRequestsForPermission):
2940         (BlackBerry::WebKit::NotificationManager::checkPermission):
2941         (BlackBerry::WebKit::NotificationManager::updatePermission):
2942         (BlackBerry::WebKit::NotificationManager::notificationClicked):
2943         (BlackBerry::WebKit::NotificationManager::notificationClosed):
2944         (BlackBerry::WebKit::NotificationManager::notificationError):
2945         (BlackBerry::WebKit::NotificationManager::notificationShown):
2946         (BlackBerry::WebKit::NotificationManager::removeNotificationFromContextMap):
2947         * WebKitSupport/NotificationManager.h: Added.
2948         (WebKit):
2949         (NotificationManager):
2950
2951 2012-11-22  Mike Fenton  <mifenton@rim.com>
2952
2953         [BlackBerry] Guard against a lost focusedNode that input handler isn't yet informed of.
2954         https://bugs.webkit.org/show_bug.cgi?id=103071
2955
2956         Reviewed by Rob Buis.
2957
2958         Fix potential for a crash if input mode is active but
2959         we can't get a focusedNode.
2960
2961         Reviewed Internally by Gen Mak.
2962
2963         * WebKitSupport/SelectionHandler.cpp:
2964         (BlackBerry::WebKit::SelectionHandler::setCaretPosition):
2965
2966 2012-11-21  Genevieve Mak  <gmak@rim.com>
2967
2968         [BlackBerry] Drop Synchronous Mouse Events
2969         https://bugs.webkit.org/show_bug.cgi?id=102980
2970
2971         Reviewed by Rob Buis.
2972
2973         Reviewed Internally by George Staikos, Mike Lattanzio and Mike Fenton.
2974         Get rid of unneeded methods and simplify code.
2975         Send click if getting context over an empty text field
2976         so that it will be focused and have a caret.
2977         PR #242781
2978
2979         * Api/WebPage.cpp:
2980         (BlackBerry::WebKit::WebPagePrivate::webContext):
2981         (BlackBerry::WebKit::WebPage::touchEvent):
2982         (BlackBerry::WebKit::WebPage::touchPointAsMouseEvent):
2983         (BlackBerry::WebKit::WebPage::touchEventCancel):
2984         * Api/WebPage.h:
2985         * WebKitSupport/TouchEventHandler.cpp:
2986         (BlackBerry::WebKit::TouchEventHandler::TouchEventHandler):
2987         (BlackBerry::WebKit::TouchEventHandler::doFatFingers):
2988         (BlackBerry::WebKit::TouchEventHandler::sendClickAtFatFingersPoint):
2989         (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
2990         (BlackBerry::WebKit::TouchEventHandler::handleFatFingerPressed):
2991         * WebKitSupport/TouchEventHandler.h:
2992         (TouchEventHandler):
2993
2994 2012-11-21  Konrad Piascik  <kpiascik@rim.com>
2995
2996         [BlackBerry] Prevent screen from dimming on device when inspector front-end is connected
2997         https://bugs.webkit.org/show_bug.cgi?id=102978
2998
2999         Reviewed by Rob Buis.
3000
3001         Internal PR 200848
3002         We prevent screen from going dim when the front-end is connected and return to normal when
3003         the front-end disconnects.
3004
3005         * Api/WebPage.cpp:
3006         (BlackBerry::WebKit::WebPage::enableWebInspector):
3007         (BlackBerry::WebKit::WebPage::disableWebInspector):
3008
3009 2012-11-21  Konrad Piascik  <kpiascik@rim.com>
3010
3011         [BlackBerry] Don't add empty rects to the tap highlight region.
3012         https://bugs.webkit.org/show_bug.cgi?id=102966
3013
3014         Reviewed by George Staikos.
3015
3016         Internal PR 246960
3017         Tap highlight is way too large sometimes.
3018         When we add an empty rect it inflates by 2 and causes the tap region to extend to the origin.
3019
3020         * WebKitSupport/TouchEventHandler.cpp:
3021         (BlackBerry::WebKit::TouchEventHandler::drawTapHighlight):
3022
3023 2012-11-21  Mike Fenton  <mifenton@rim.com>
3024
3025         [BlackBerry] Switch to point instead of VisiblePosition comparison for input bounds check
3026         https://bugs.webkit.org/show_bug.cgi?id=102962
3027
3028         Reviewed by Rob Buis.
3029
3030         PR 247270.
3031
3032         Switch from using VisiblePosition to determine if we are in a node
3033         to a comparison of the field bounds.  This fixes the case where
3034         there is no node before the target node to match.
3035
3036         Reviewed Internally by Gen Mak.
3037
3038         * WebKitSupport/DOMSupport.cpp:
3039         * WebKitSupport/DOMSupport.h:
3040         * WebKitSupport/SelectionHandler.cpp:
3041         (BlackBerry::WebKit::SelectionHandler::setCaretPosition):
3042
3043 2012-11-20  Andrew Lo  <anlo@rim.com>
3044
3045         [BlackBerry] Animated gifs pause on scroll or zoom and sometimes don't resume after scroll or zoom completes
3046         https://bugs.webkit.org/show_bug.cgi?id=102838
3047
3048         Reviewed by Rob Buis.
3049
3050         Internally reviewed by Adam Treat.
3051         Internal PR244646
3052         When entering scrolling & zooming, we suspend regular render jobs
3053         in order to pause animations. When finishing scrolling or zooming,
3054         dispatch a render job in order to resume those animations.
3055
3056         If an animation requests a repaint while the backing store is suspended,
3057         add the regular render job to the render queue so that it can be
3058         processed later.
3059
3060         * Api/BackingStore.cpp:
3061         (BlackBerry::WebKit::BackingStorePrivate::repaint):
3062         (BlackBerry::WebKit::BackingStorePrivate::setScrollingOrZooming):
3063
3064 2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
3065
3066         Unreviewed, rolling out r135295.
3067         http://trac.webkit.org/changeset/135295
3068         https://bugs.webkit.org/show_bug.cgi?id=102834
3069
3070         This patch causes assertion to some layout tests on chromium
3071         (Requested by jianli on #webkit).
3072
3073         * Api/WebPage.cpp:
3074         (BlackBerry::WebKit::WebPagePrivate::load):
3075         (BlackBerry::WebKit::WebPagePrivate::loadString):
3076         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
3077         (WebCore::FrameLoaderClientBlackBerry::dispatchDidFailProvisionalLoad):
3078
3079 2012-11-20  James Simonsen  <simonjam@chromium.org>
3080
3081         Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
3082         https://bugs.webkit.org/show_bug.cgi?id=102151
3083
3084         Reviewed by Adam Barth.
3085
3086         * Api/WebPage.cpp:
3087         (BlackBerry::WebKit::WebPagePrivate::load):
3088         (BlackBerry::WebKit::WebPagePrivate::loadString):
3089         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
3090         (WebCore::FrameLoaderClientBlackBerry::dispatchDidFailProvisionalLoad):
3091
3092 2012-11-19  Genevieve Mak  <gmak@rim.com>
3093
3094         [BlackBerry] Block Zoom picks wrong block
3095         https://bugs.webkit.org/show_bug.cgi?id=102728
3096
3097         Reviewed by Rob Buis.
3098
3099         Reviewed Internally by Jakob Petsovits
3100         Remove transform missed in previous commit for
3101         https://bugs.webkit.org/show_bug.cgi?id=101608
3102         PR #247198
3103
3104         * Api/WebPage.cpp:
3105         (BlackBerry::WebKit::WebPagePrivate::nodeForZoomUnderPoint):
3106
3107 2012-11-19  Liam Quinn  <lquinn@rim.com>
3108
3109         [BlackBerry] Remove RTSP handling from FrameLoaderClientBlackBerry
3110         https://bugs.webkit.org/show_bug.cgi?id=102692
3111
3112         Reviewed by Rob Buis.
3113
3114         Reviewed internally by George Staikos. Internal PR 242750.
3115
3116         Our RTSP handling in FrameLoaderClientBlackBerry causes HTTP redirects to "rtsp:" URIs to fail. Remove handling of RTSP from this class; it will be moved to the network layer alongside other URI schemes like "data:" and "file:".
3117
3118         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
3119         (WebCore::FrameLoaderClientBlackBerry::createDocumentLoader):
3120
3121 2012-11-16  Adam Treat  <atreat@rim.com>
3122
3123         https://bugs.webkit.org/show_bug.cgi?id=102540
3124         [BlackBerry] Checkerboard flicker when pinch zooming out on google.com/nwshp
3125
3126         Reviewed by George Staikos.
3127         PR 245827
3128
3129         Disable updates to the backingstore tile matrix when backingstore updates
3130         are disabled.  This prevents changes to the tile matrix when we are in the
3131         middle of a pinch zoom which can cause checkebroard flickering.
3132
3133         * Api/BackingStore.cpp:
3134         (BlackBerry::WebKit::BackingStorePrivate::BackingStorePrivate):
3135         (BlackBerry::WebKit::BackingStorePrivate::resumeBackingStoreUpdates):
3136         (BlackBerry::WebKit::BackingStorePrivate::setBackingStoreRect):
3137         (BlackBerry::WebKit::BackingStorePrivate::render):
3138         (BlackBerry::WebKit::BackingStorePrivate::renderVisibleContents):
3139         (BlackBerry::WebKit::BackingStorePrivate::renderBackingStore):
3140         (BlackBerry::WebKit::BackingStorePrivate::updateTileMatrixIfNeeded):
3141         (BlackBerry::WebKit::BackingStorePrivate::contentsSizeChanged):
3142         (BlackBerry::WebKit::BackingStorePrivate::orientationChanged):
3143         * Api/BackingStore_p.h:
3144         (BlackBerry::WebKit::BackingStorePrivate::setTileMatrixNeedsUpdate):
3145         (BackingStorePrivate):
3146
3147 2012-11-16  Rob Buis  <rbuis@rim.com>
3148
3149         [BlackBerry] FCC doesn't work in textarea
3150         https://bugs.webkit.org/show_bug.cgi?id=102088
3151
3152         Reviewed by Antonio Gomes.
3153
3154         Remove the cancel button specializations, it was needed at some point but hitting it
3155         works just as well without it. This unbreaks FCC in textarea's.
3156
3157         * WebKitSupport/FatFingers.cpp:
3158         (BlackBerry::WebKit::FatFingers::isElementClickable):
3159
3160 2012-11-16  Adam Treat  <atreat@rim.com>
3161
3162         [BlackBerry] Fix regression causing checkerboard flicker after app wake-up
3163         https://bugs.webkit.org/show_bug.cgi?id=102526
3164
3165         Reviewed by George Staikos.
3166         PR 245027
3167
3168         The webkit patch for 219976 introduced an undesirable behavior change
3169         resulting in a regression where there was checkerboard flickering on
3170         resuming from an inactive application state.  This patch restores the
3171         previous behavior and fixes the regression.
3172
3173         * Api/BackingStore.cpp:
3174         (BlackBerry::WebKit::BackingStore::createBackingStoreMemory):
3175         (BlackBerry::WebKit::BackingStore::releaseBackingStoreMemory):
3176
3177 2012-11-16  Mike Fenton  <mifenton@rim.com>
3178
3179         [BlackBerry] Use proper keycode value for space instead of hardcoded value.
3180         https://bugs.webkit.org/show_bug.cgi?id=102518
3181
3182         Reviewed by Rob Buis.
3183
3184         Remove hard coded value for space.
3185
3186         Reviewed Internally by Gen Mak.
3187
3188         * WebKitSupport/InputHandler.cpp:
3189         (BlackBerry::WebKit::InputHandler::setText):
3190
3191 2012-11-15  Andrew Lo  <anlo@rim.com>
3192
3193         [BlackBerry] Animate changes to viewport due to input focus changes.
3194         https://bugs.webkit.org/show_bug.cgi?id=102410
3195
3196         Reviewed by Rob Buis.
3197
3198         When changing scroll position or zoom level for input field focus,
3199         animate the change.
3200         Internal PR 231937
3201
3202         Internally reviewed by Mike Fenton.
3203
3204         * WebKitSupport/InputHandler.cpp:
3205         (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
3206
3207 2012-11-15  Mike Fenton  <mifenton@rim.com>
3208
3209         [BlackBerry] Don't restore zoom and scroll when leaving an input field.
3210         https://bugs.webkit.org/show_bug.cgi?id=102376
3211
3212         Reviewed by Yong Li.
3213
3214         Restoring the zoom causes undesirable behavior when switching between fields.
3215
3216         Reviewed Internally by Andrew Lo.
3217
3218         * WebKitSupport/InputHandler.cpp:
3219         (BlackBerry::WebKit::InputHandler::InputHandler):
3220         (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
3221         * WebKitSupport/InputHandler.h:
3222         (InputHandler):
3223
3224 2012-11-15  Jakob Petsovits  <jpetsovits@rim.com>
3225
3226         [BlackBerry] Fix suspend/resume assertion in setCompositor().
3227         https://bugs.webkit.org/show_bug.cgi?id=102397
3228         RIM PR 244701
3229
3230         Reviewed by Adam Treat.
3231
3232         If a compositor is used but no surface pool is ever
3233         allocated (which is a perfectly valid use case), initial
3234         suspension of the backingstore is skipped because of an
3235         early return. This will cause an assertion to be triggered
3236         and a bug. Fix this by suspending it before the return.
3237
3238         With Adam Treat's recent change to split suspension of
3239         screen and backingstore into two different functions,
3240         this can now be reduced to a mere screen (blitting)
3241         suspension. That was the original intention of this code.
3242
3243         * Api/BackingStore.cpp:
3244         (BlackBerry::WebKit::BackingStorePrivate::createSurfaces):
3245         * Api/WebPage.cpp:
3246         (BlackBerry::WebKit::WebPagePrivate::setCompositor):
3247
3248 2012-11-15  Jakob Petsovits  <jpetsovits@rim.com>
3249
3250         [BlackBerry] Leave surface resizing to the client.
3251         https://bugs.webkit.org/show_bug.cgi?id=102280
3252         RIM PR 235034
3253         RIM PR 160619
3254
3255         Reviewed by Adam Treat.
3256
3257         Now that we always blit on the user interface thread and
3258         use the client's userInterfaceViewportAccessor() to determine
3259         the destination rectangle for blitting, changing the viewport
3260         size does not affect the window or target surface directly.
3261         The only way that blitted output is affected is through
3262         layout, scroll position or scale changes. None of these
3263         require us to synchronize with the UI thread to resize its
3264         target surface.
3265
3266         This commit simplifies setViewportSize() and removes a
3267         blocking message dispatch by simply offloading all surface
3268         resizing responsibilities to the client. This is safer,
3269         cleaner and easier.
3270
3271         * Api/WebPage.cpp:
3272         (BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
3273         (BlackBerry::WebKit::WebPage::setScreenOrientation):
3274         (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
3275         * Api/WebPage.h:
3276         * Api/WebPageClient.h:
3277         * Api/WebPage_p.h:
3278         (WebPagePrivate):
3279
3280 2012-11-14  Nima Ghanavatian  <nghanavatian@rim.com>
3281
3282         [BlackBerry] Do not clear the ProcessingChangeGuard state on DeleteBackward
3283         https://bugs.webkit.org/show_bug.cgi?id=102284
3284
3285         Reviewed by Rob Buis.
3286
3287         PR237497
3288         When holding backspace, clearing the state forces a keyboard
3289         update which resets the state of the keyboard. Handling this
3290         specific corner case separate from all other editor commands.
3291
3292         Internally reviewed by Mike Fenton.
3293
3294         * WebCoreSupport/EditorClientBlackBerry.cpp:
3295         (WebCore::EditorClientBlackBerry::handleKeyboardEvent):
3296
3297 2012-11-14  Rob Buis  <rbuis@rim.com>
3298
3299         [BlackBerry] Improve debug functionality in FatFingers
3300         https://bugs.webkit.org/show_bug.cgi?id=102263
3301
3302         Reviewed by Antonio Gomes.
3303
3304         - use logAlways to log even in release.
3305         - dump shadow tree info if available.
3306
3307         * WebKitSupport/FatFingers.cpp:
3308         (BlackBerry::WebKit::FatFingers::isElementClickable):
3309         (BlackBerry::WebKit::FatFingers::checkFingerIntersection):
3310         (BlackBerry::WebKit::FatFingers::findIntersectingRegions):
3311         (BlackBerry::WebKit::FatFingers::checkForText):
3312
3313 2012-11-14  Adam Treat  <atreat@rim.com>
3314
3315         [BlackBerry] Break suspend/resume of the backingstore and screen into separate methods
3316         https://bugs.webkit.org/show_bug.cgi?id=102126
3317
3318         Reviewed by George Staikos.
3319         PR 219976
3320
3321         Modify the suspend/resume methods so that they can be called from the UI thread
3322         itself and split up the suspend/resume methods so that we can suspend/resume
3323         the screen or backingstore separately.
3324
3325         * Api/BackingStore.cpp:
3326         (BlackBerry::WebKit::BackingStorePrivate::suspendBackingStoreUpdates):
3327         (WebKit):
3328         (BlackBerry::WebKit::BackingStorePrivate::suspendScreenUpdates):
3329         (BlackBerry::WebKit::BackingStorePrivate::resumeBackingStoreUpdates):
3330         (BlackBerry::WebKit::BackingStorePrivate::resumeScreenUpdates):
3331         (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents):
3332         (BlackBerry::WebKit::BackingStorePrivate::createSurfaces):
3333         (BlackBerry::WebKit::BackingStore::suspendBackingStoreUpdates):
3334         (BlackBerry::WebKit::BackingStore::resumeBackingStoreUpdates):
3335         (BlackBerry::WebKit::BackingStore::suspendScreenUpdates):
3336         (BlackBerry::WebKit::BackingStore::resumeScreenUpdates):
3337         (BlackBerry::WebKit::BackingStore::createBackingStoreMemory):
3338         (BlackBerry::WebKit::BackingStore::releaseBackingStoreMemory):
3339         * Api/BackingStore.h:
3340         * Api/BackingStore_p.h:
3341         (BackingStorePrivate):
3342         * Api/WebPage.cpp:
3343         (BlackBerry::WebKit::WebPagePrivate::setLoadState):
3344         (BlackBerry::WebKit::WebPagePrivate::zoomAboutPoint):
3345         (BlackBerry::WebKit::WebPagePrivate::zoomBlock):
3346         (BlackBerry::WebKit::WebPage::destroy):
3347         (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
3348         (BlackBerry::WebKit::WebPagePrivate::setCompositor):
3349         (BlackBerry::WebKit::WebPagePrivate::exitFullScreenForElement):
3350         (BlackBerry::WebKit::WebPagePrivate::restoreHistoryViewState):
3351         * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
3352         (WebCore::FrameLoaderClientBlackBerry::transitionToCommittedForNewPage):
3353         (WebCore::FrameLoaderClientBlackBerry::restoreViewState):
3354         * WebKitSupport/InputHandler.cpp:
3355         (BlackBerry::WebKit::InputHandler::setBatchEditingActive):
3356
3357 2012-11-14  Andy Chen  <andchen@rim.com>
3358
3359         [BlackBerry] Add FocusBased context node detection strategy
3360         https://bugs.webkit.org/show_bug.cgi?id=102238
3361
3362         Reviewed by Rob Buis.
3363
3364         If last fat finger result is invalid, we need to return current
3365         focus element as context node, because when user tap on selection
3366         overlay, there is not touch event sent to webkit.
3367         PR 241382
3368
3369         Internally reviewed by Genevieve Mak and Mike Fenton.
3370
3371         * Api/WebPage.cpp:
3372         (BlackBerry::WebKit::WebPagePrivate::contextNode):
3373         * Api/WebPage.h:
3374         * WebKitSupport/InputHandler.h:
3375         (BlackBerry::WebKit::InputHandler::currentFocusElement):
3376
3377 2012-11-14  Nima Ghanavatian  <nghanavatian@rim.com>
3378
3379         [BlackBerry] Use mispelled-marker offsets relative to the element
3380         https://bugs.webkit.org/show_bug.cgi?id=102236
3381
3382         Reviewed by Rob Buis.
3383
3384         DocumentMarker offsets are calculated relative to a node. This is causing
3385         problems for contenteditable which can have numerous nodes. Creating a Range around a word
3386         and calculating its location and length gives us the correct override in this case for starting
3387         and ending points to pass to IMF.