Bug 37419

Summary: [Haiku] Fix bridging Widget to native top-level BView.
Product: WebKit Reporter: Stephan Aßmus <superstippi>
Component: PlatformAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Other   
OS: Other   
Attachments:
Description Flags
[Haiku] Fix bridging to top-level platform widget.
none
[Haiku] Fix bridging to top-level platform widget.
levin: review-
[Haiku] Fix bridging to top-level platform widget. none

Description Stephan Aßmus 2010-04-11 15:45:04 PDT
In the Haiku port, there is no mapping between native widgets and WebCore Widget instances. There is only a top-level BView which renders a web page into a bitmap. For certain WebCore widget functionality, we need to access this BView, like for setting the current cursor or forcing focus. On the other hand, setting a platform widget pointer on Widget results into completely different behavior, like ScrollView tries to forward everything instead of handling stuff itself. To make this work, the pointer to a "top-level" BView is stored in every Widget for the Haiku port.
Comment 1 Stephan Aßmus 2010-04-11 15:46:14 PDT
Created attachment 53115 [details]
[Haiku] Fix bridging to top-level platform widget.
Comment 2 WebKit Review Bot 2010-04-11 15:50:43 PDT
Attachment 53115 [details] did not pass style-queue:

Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1
WebCore/platform/haiku/WidgetHaiku.cpp:43:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:44:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:49:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:50:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:55:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:100:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:111:  Tab found; better to use spaces  [whitespace/tab] [1]
Total errors found: 7 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Stephan Aßmus 2010-04-11 16:45:25 PDT
Created attachment 53118 [details]
[Haiku] Fix bridging to top-level platform widget.

Sorry about the tabs. Got confused which files I already ran check-webkit-style on...
Comment 4 David Levin 2010-04-13 08:15:07 PDT
Comment on attachment 53118 [details]
[Haiku] Fix bridging to top-level platform widget.

> Index: WebCore/platform/haiku/WidgetHaiku.cpp
> +        if (!m_widget || m_widget->LockLooperWithTimeout(5000) != B_OK)
> +           m_widget = 0;

Your indent is off by one here.
Comment 5 Stephan Aßmus 2010-04-13 08:47:26 PDT
Created attachment 53256 [details]
[Haiku] Fix bridging to top-level platform widget.

Fixed the patch in place (and looked for similar problems).
Comment 6 WebKit Commit Bot 2010-04-13 10:20:51 PDT
Comment on attachment 53256 [details]
[Haiku] Fix bridging to top-level platform widget.

Clearing flags on attachment: 53256

Committed r57521: <http://trac.webkit.org/changeset/57521>
Comment 7 WebKit Commit Bot 2010-04-13 10:20:56 PDT
All reviewed patches have been landed.  Closing bug.