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