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.
Created attachment 53115 [details] [Haiku] Fix bridging to top-level platform widget.
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.
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 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.
Created attachment 53256 [details] [Haiku] Fix bridging to top-level platform widget. Fixed the patch in place (and looked for similar problems).
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>
All reviewed patches have been landed. Closing bug.