OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/html_viewer/html_frame.h" | 5 #include "components/html_viewer/html_frame.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 blink::WebNavigationPolicy HTMLFrame::decidePolicyForNavigation( | 343 blink::WebNavigationPolicy HTMLFrame::decidePolicyForNavigation( |
344 const NavigationPolicyInfo& info) { | 344 const NavigationPolicyInfo& info) { |
345 // If we have extraData() it means we already have the url response | 345 // If we have extraData() it means we already have the url response |
346 // (presumably because we are being called via Navigate()). In that case we | 346 // (presumably because we are being called via Navigate()). In that case we |
347 // can go ahead and navigate locally. | 347 // can go ahead and navigate locally. |
348 if (info.urlRequest.extraData()) { | 348 if (info.urlRequest.extraData()) { |
349 DCHECK_EQ(blink::WebNavigationPolicyCurrentTab, info.defaultPolicy); | 349 DCHECK_EQ(blink::WebNavigationPolicyCurrentTab, info.defaultPolicy); |
350 return blink::WebNavigationPolicyCurrentTab; | 350 return blink::WebNavigationPolicyCurrentTab; |
351 } | 351 } |
352 | 352 |
353 // about:blank is treated as the same origin and is always allowed for | 353 // about:blank is treated as the same origin and is always allowed for frames. |
354 // frames. | |
355 if (parent_ && info.urlRequest.url() == GURL(url::kAboutBlankURL) && | 354 if (parent_ && info.urlRequest.url() == GURL(url::kAboutBlankURL) && |
356 info.defaultPolicy == blink::WebNavigationPolicyCurrentTab) { | 355 info.defaultPolicy == blink::WebNavigationPolicyCurrentTab) { |
357 return blink::WebNavigationPolicyCurrentTab; | 356 return blink::WebNavigationPolicyCurrentTab; |
358 } | 357 } |
359 | 358 |
360 // Ask the Frame to handle the navigation. By returning | 359 // Ask the Frame to handle the navigation. By returning |
361 // WebNavigationPolicyIgnore the load is suppressed. | 360 // WebNavigationPolicyIgnore the load is suppressed. |
362 mojo::URLRequestPtr url_request = mojo::URLRequest::From(info.urlRequest); | 361 mojo::URLRequestPtr url_request = mojo::URLRequest::From(info.urlRequest); |
363 server_->RequestNavigate( | 362 server_->RequestNavigate( |
364 WebNavigationPolicyToNavigationTarget(info.defaultPolicy), id_, | 363 WebNavigationPolicyToNavigationTarget(info.defaultPolicy), id_, |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
643 } | 642 } |
644 | 643 |
645 void HTMLFrame::OnViewDestroyed(View* view) { | 644 void HTMLFrame::OnViewDestroyed(View* view) { |
646 DCHECK_EQ(view, view_); | 645 DCHECK_EQ(view, view_); |
647 view_->RemoveObserver(this); | 646 view_->RemoveObserver(this); |
648 view_ = nullptr; | 647 view_ = nullptr; |
649 Close(); | 648 Close(); |
650 } | 649 } |
651 | 650 |
652 void HTMLFrame::OnViewInputEvent(View* view, const mojo::EventPtr& event) { | 651 void HTMLFrame::OnViewInputEvent(View* view, const mojo::EventPtr& event) { |
653 if (event->pointer_data) { | 652 if (event->pointer_data && event->pointer_data->location) { |
654 // Blink expects coordintes to be in DIPs. | 653 // Blink expects coordintes to be in DIPs. |
655 event->pointer_data->location->x /= global_state()->device_pixel_ratio(); | 654 event->pointer_data->location->x /= global_state()->device_pixel_ratio(); |
656 event->pointer_data->location->y /= global_state()->device_pixel_ratio(); | 655 event->pointer_data->location->y /= global_state()->device_pixel_ratio(); |
657 event->pointer_data->location->screen_x /= | 656 event->pointer_data->location->screen_x /= |
658 global_state()->device_pixel_ratio(); | 657 global_state()->device_pixel_ratio(); |
659 event->pointer_data->location->screen_y /= | 658 event->pointer_data->location->screen_y /= |
660 global_state()->device_pixel_ratio(); | 659 global_state()->device_pixel_ratio(); |
661 } | 660 } |
662 | 661 |
663 blink::WebWidget* web_widget = GetWebWidget(); | 662 blink::WebWidget* web_widget = GetWebWidget(); |
664 | 663 |
665 if (!touch_handler_ && web_widget) | 664 if (!touch_handler_ && web_widget) |
666 touch_handler_.reset(new TouchHandler(web_widget)); | 665 touch_handler_.reset(new TouchHandler(web_widget)); |
667 | 666 |
668 if (touch_handler_ && (event->action == mojo::EVENT_TYPE_POINTER_DOWN || | 667 if (touch_handler_ && (event->action == mojo::EVENT_TYPE_POINTER_DOWN || |
669 event->action == mojo::EVENT_TYPE_POINTER_UP || | 668 event->action == mojo::EVENT_TYPE_POINTER_UP || |
670 event->action == mojo::EVENT_TYPE_POINTER_CANCEL || | 669 event->action == mojo::EVENT_TYPE_POINTER_CANCEL || |
671 event->action == mojo::EVENT_TYPE_POINTER_MOVE) && | 670 event->action == mojo::EVENT_TYPE_POINTER_MOVE) && |
| 671 event->pointer_data && |
672 event->pointer_data->kind == mojo::POINTER_KIND_TOUCH) { | 672 event->pointer_data->kind == mojo::POINTER_KIND_TOUCH) { |
673 touch_handler_->OnTouchEvent(*event); | 673 touch_handler_->OnTouchEvent(*event); |
674 return; | 674 return; |
675 } | 675 } |
676 | 676 |
677 if (!web_widget) | 677 if (!web_widget) |
678 return; | 678 return; |
679 | 679 |
680 scoped_ptr<blink::WebInputEvent> web_event = | 680 scoped_ptr<blink::WebInputEvent> web_event = |
681 event.To<scoped_ptr<blink::WebInputEvent>>(); | 681 event.To<scoped_ptr<blink::WebInputEvent>>(); |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 | 842 |
843 void HTMLFrame::reload(bool ignore_cache, bool is_client_redirect) { | 843 void HTMLFrame::reload(bool ignore_cache, bool is_client_redirect) { |
844 NOTIMPLEMENTED(); | 844 NOTIMPLEMENTED(); |
845 } | 845 } |
846 | 846 |
847 void HTMLFrame::forwardInputEvent(const blink::WebInputEvent* event) { | 847 void HTMLFrame::forwardInputEvent(const blink::WebInputEvent* event) { |
848 NOTIMPLEMENTED(); | 848 NOTIMPLEMENTED(); |
849 } | 849 } |
850 | 850 |
851 } // namespace mojo | 851 } // namespace mojo |
OLD | NEW |