| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/renderer_context_menu/render_view_context_menu.h" | 5 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 ui_test_utils::WindowedTabAddedNotificationObserver tab_observer( | 200 ui_test_utils::WindowedTabAddedNotificationObserver tab_observer( |
| 201 content::NotificationService::AllSources()); | 201 content::NotificationService::AllSources()); |
| 202 | 202 |
| 203 // Go to a page with a link | 203 // Go to a page with a link |
| 204 ui_test_utils::NavigateToURL( | 204 ui_test_utils::NavigateToURL( |
| 205 browser(), GURL("data:text/html,<a href='about:blank'>link</a>")); | 205 browser(), GURL("data:text/html,<a href='about:blank'>link</a>")); |
| 206 | 206 |
| 207 // Open a context menu. | 207 // Open a context menu. |
| 208 blink::WebMouseEvent mouse_event; | 208 blink::WebMouseEvent mouse_event; |
| 209 mouse_event.type = blink::WebInputEvent::MouseDown; | 209 mouse_event.type = blink::WebInputEvent::MouseDown; |
| 210 mouse_event.button = blink::WebMouseEvent::ButtonRight; | 210 mouse_event.button = blink::WebMouseEvent::Button::Right; |
| 211 mouse_event.x = 15; | 211 mouse_event.x = 15; |
| 212 mouse_event.y = 15; | 212 mouse_event.y = 15; |
| 213 content::WebContents* tab = | 213 content::WebContents* tab = |
| 214 browser()->tab_strip_model()->GetActiveWebContents(); | 214 browser()->tab_strip_model()->GetActiveWebContents(); |
| 215 gfx::Rect offset = tab->GetContainerBounds(); | 215 gfx::Rect offset = tab->GetContainerBounds(); |
| 216 mouse_event.globalX = 15 + offset.x(); | 216 mouse_event.globalX = 15 + offset.x(); |
| 217 mouse_event.globalY = 15 + offset.y(); | 217 mouse_event.globalY = 15 + offset.y(); |
| 218 mouse_event.clickCount = 1; | 218 mouse_event.clickCount = 1; |
| 219 tab->GetRenderViewHost()->GetWidget()->ForwardMouseEvent(mouse_event); | 219 tab->GetRenderViewHost()->GetWidget()->ForwardMouseEvent(mouse_event); |
| 220 mouse_event.type = blink::WebInputEvent::MouseUp; | 220 mouse_event.type = blink::WebInputEvent::MouseUp; |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 // Go to a page with a link having download attribute. | 341 // Go to a page with a link having download attribute. |
| 342 const std::string kSuggestedFilename("test_filename.png"); | 342 const std::string kSuggestedFilename("test_filename.png"); |
| 343 ui_test_utils::NavigateToURL( | 343 ui_test_utils::NavigateToURL( |
| 344 browser(), | 344 browser(), |
| 345 GURL("data:text/html,<a href='about:blank' download='" + | 345 GURL("data:text/html,<a href='about:blank' download='" + |
| 346 kSuggestedFilename + "'>link</a>")); | 346 kSuggestedFilename + "'>link</a>")); |
| 347 | 347 |
| 348 // Open a context menu. | 348 // Open a context menu. |
| 349 blink::WebMouseEvent mouse_event; | 349 blink::WebMouseEvent mouse_event; |
| 350 mouse_event.type = blink::WebInputEvent::MouseDown; | 350 mouse_event.type = blink::WebInputEvent::MouseDown; |
| 351 mouse_event.button = blink::WebMouseEvent::ButtonRight; | 351 mouse_event.button = blink::WebMouseEvent::Button::Right; |
| 352 mouse_event.x = 15; | 352 mouse_event.x = 15; |
| 353 mouse_event.y = 15; | 353 mouse_event.y = 15; |
| 354 content::WebContents* tab = | 354 content::WebContents* tab = |
| 355 browser()->tab_strip_model()->GetActiveWebContents(); | 355 browser()->tab_strip_model()->GetActiveWebContents(); |
| 356 tab->GetRenderViewHost()->GetWidget()->ForwardMouseEvent(mouse_event); | 356 tab->GetRenderViewHost()->GetWidget()->ForwardMouseEvent(mouse_event); |
| 357 mouse_event.type = blink::WebInputEvent::MouseUp; | 357 mouse_event.type = blink::WebInputEvent::MouseUp; |
| 358 tab->GetRenderViewHost()->GetWidget()->ForwardMouseEvent(mouse_event); | 358 tab->GetRenderViewHost()->GetWidget()->ForwardMouseEvent(mouse_event); |
| 359 | 359 |
| 360 // Wait for context menu to be visible. | 360 // Wait for context menu to be visible. |
| 361 menu_observer.WaitForMenuOpenAndClose(); | 361 menu_observer.WaitForMenuOpenAndClose(); |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 646 ui_test_utils::NavigateToURL(browser(), page); | 646 ui_test_utils::NavigateToURL(browser(), page); |
| 647 } | 647 } |
| 648 | 648 |
| 649 void AttemptImageSearch() { | 649 void AttemptImageSearch() { |
| 650 // Right-click where the image should be. | 650 // Right-click where the image should be. |
| 651 // |menu_observer_| will cause the search-by-image menu item to be clicked. | 651 // |menu_observer_| will cause the search-by-image menu item to be clicked. |
| 652 menu_observer_.reset(new ContextMenuNotificationObserver( | 652 menu_observer_.reset(new ContextMenuNotificationObserver( |
| 653 IDC_CONTENT_CONTEXT_SEARCHWEBFORIMAGE)); | 653 IDC_CONTENT_CONTEXT_SEARCHWEBFORIMAGE)); |
| 654 content::WebContents* tab = | 654 content::WebContents* tab = |
| 655 browser()->tab_strip_model()->GetActiveWebContents(); | 655 browser()->tab_strip_model()->GetActiveWebContents(); |
| 656 content::SimulateMouseClickAt(tab, 0, blink::WebMouseEvent::ButtonRight, | 656 content::SimulateMouseClickAt(tab, 0, blink::WebMouseEvent::Button::Right, |
| 657 gfx::Point(15, 15)); | 657 gfx::Point(15, 15)); |
| 658 } | 658 } |
| 659 | 659 |
| 660 GURL GetImageSearchURL() { | 660 GURL GetImageSearchURL() { |
| 661 static const char kImageSearchURL[] = "/imagesearch"; | 661 static const char kImageSearchURL[] = "/imagesearch"; |
| 662 return embedded_test_server()->GetURL(kImageSearchURL); | 662 return embedded_test_server()->GetURL(kImageSearchURL); |
| 663 } | 663 } |
| 664 | 664 |
| 665 private: | 665 private: |
| 666 void SetupImageSearchEngine() { | 666 void SetupImageSearchEngine() { |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 813 base::Passed(&owned_interceptor))); | 813 base::Passed(&owned_interceptor))); |
| 814 } | 814 } |
| 815 | 815 |
| 816 void AttemptLoadImage() { | 816 void AttemptLoadImage() { |
| 817 // Right-click where the image should be. | 817 // Right-click where the image should be. |
| 818 // |menu_observer_| will cause the "Load image" menu item to be clicked. | 818 // |menu_observer_| will cause the "Load image" menu item to be clicked. |
| 819 menu_observer_.reset(new ContextMenuNotificationObserver( | 819 menu_observer_.reset(new ContextMenuNotificationObserver( |
| 820 IDC_CONTENT_CONTEXT_LOAD_ORIGINAL_IMAGE)); | 820 IDC_CONTENT_CONTEXT_LOAD_ORIGINAL_IMAGE)); |
| 821 content::WebContents* tab = | 821 content::WebContents* tab = |
| 822 browser()->tab_strip_model()->GetActiveWebContents(); | 822 browser()->tab_strip_model()->GetActiveWebContents(); |
| 823 content::SimulateMouseClickAt(tab, 0, blink::WebMouseEvent::ButtonRight, | 823 content::SimulateMouseClickAt(tab, 0, blink::WebMouseEvent::Button::Right, |
| 824 gfx::Point(15, 15)); | 824 gfx::Point(15, 15)); |
| 825 } | 825 } |
| 826 | 826 |
| 827 void AddInterceptorForURL( | 827 void AddInterceptorForURL( |
| 828 const GURL& url, | 828 const GURL& url, |
| 829 std::unique_ptr<net::URLRequestInterceptor> handler) { | 829 std::unique_ptr<net::URLRequestInterceptor> handler) { |
| 830 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 830 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
| 831 net::URLRequestFilter::GetInstance()->AddUrlInterceptor(url, | 831 net::URLRequestFilter::GetInstance()->AddUrlInterceptor(url, |
| 832 std::move(handler)); | 832 std::move(handler)); |
| 833 } | 833 } |
| 834 | 834 |
| 835 LoadImageRequestInterceptor* interceptor_; | 835 LoadImageRequestInterceptor* interceptor_; |
| 836 | 836 |
| 837 private: | 837 private: |
| 838 std::unique_ptr<ContextMenuNotificationObserver> menu_observer_; | 838 std::unique_ptr<ContextMenuNotificationObserver> menu_observer_; |
| 839 }; | 839 }; |
| 840 | 840 |
| 841 IN_PROC_BROWSER_TEST_F(LoadImageBrowserTest, LoadImage) { | 841 IN_PROC_BROWSER_TEST_F(LoadImageBrowserTest, LoadImage) { |
| 842 static const char kValidImage[] = "/load_image/image.png"; | 842 static const char kValidImage[] = "/load_image/image.png"; |
| 843 SetupAndLoadImagePage(kValidImage); | 843 SetupAndLoadImagePage(kValidImage); |
| 844 AddLoadImageInterceptor(kValidImage); | 844 AddLoadImageInterceptor(kValidImage); |
| 845 AttemptLoadImage(); | 845 AttemptLoadImage(); |
| 846 interceptor_->WaitForRequests(1); | 846 interceptor_->WaitForRequests(1); |
| 847 EXPECT_EQ(1, interceptor_->num_requests()); | 847 EXPECT_EQ(1, interceptor_->num_requests()); |
| 848 } | 848 } |
| 849 | 849 |
| 850 } // namespace | 850 } // namespace |
| OLD | NEW |