Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: third_party/WebKit/Source/web/tests/WebViewTest.cpp

Issue 1876653003: Register clipboard image blob in the browser process to copy data less. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 #include "core/timing/PerformanceCompositeTiming.h" 57 #include "core/timing/PerformanceCompositeTiming.h"
58 #include "platform/KeyboardCodes.h" 58 #include "platform/KeyboardCodes.h"
59 #include "platform/UserGestureIndicator.h" 59 #include "platform/UserGestureIndicator.h"
60 #include "platform/geometry/IntSize.h" 60 #include "platform/geometry/IntSize.h"
61 #include "platform/graphics/Color.h" 61 #include "platform/graphics/Color.h"
62 #include "platform/graphics/GraphicsContext.h" 62 #include "platform/graphics/GraphicsContext.h"
63 #include "platform/graphics/paint/SkPictureBuilder.h" 63 #include "platform/graphics/paint/SkPictureBuilder.h"
64 #include "platform/testing/URLTestHelpers.h" 64 #include "platform/testing/URLTestHelpers.h"
65 #include "platform/testing/UnitTestHelpers.h" 65 #include "platform/testing/UnitTestHelpers.h"
66 #include "public/platform/Platform.h" 66 #include "public/platform/Platform.h"
67 #include "public/platform/WebClipboard.h"
68 #include "public/platform/WebDisplayMode.h" 67 #include "public/platform/WebDisplayMode.h"
69 #include "public/platform/WebDragData.h" 68 #include "public/platform/WebDragData.h"
70 #include "public/platform/WebDragOperation.h" 69 #include "public/platform/WebDragOperation.h"
70 #include "public/platform/WebMockClipboard.h"
71 #include "public/platform/WebSize.h" 71 #include "public/platform/WebSize.h"
72 #include "public/platform/WebThread.h" 72 #include "public/platform/WebThread.h"
73 #include "public/platform/WebURLLoaderMockFactory.h" 73 #include "public/platform/WebURLLoaderMockFactory.h"
74 #include "public/web/WebAutofillClient.h" 74 #include "public/web/WebAutofillClient.h"
75 #include "public/web/WebCache.h" 75 #include "public/web/WebCache.h"
76 #include "public/web/WebContentDetectionResult.h" 76 #include "public/web/WebContentDetectionResult.h"
77 #include "public/web/WebDateTimeChooserCompletion.h" 77 #include "public/web/WebDateTimeChooserCompletion.h"
78 #include "public/web/WebDeviceEmulationParams.h" 78 #include "public/web/WebDeviceEmulationParams.h"
79 #include "public/web/WebDocument.h" 79 #include "public/web/WebDocument.h"
80 #include "public/web/WebElement.h" 80 #include "public/web/WebElement.h"
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 URLTestHelpers::registerMockedURLLoad(toKURL(url), "canvas-copy-image.html") ; 317 URLTestHelpers::registerMockedURLLoad(toKURL(url), "canvas-copy-image.html") ;
318 WebView* webView = m_webViewHelper.initializeAndLoad(url, true, 0); 318 WebView* webView = m_webViewHelper.initializeAndLoad(url, true, 0);
319 webView->resize(WebSize(400, 400)); 319 webView->resize(WebSize(400, 400));
320 320
321 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard); 321 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard);
322 322
323 webView->copyImageAt(WebPoint(50, 50)); 323 webView->copyImageAt(WebPoint(50, 50));
324 324
325 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard)); 325 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard));
326 326
327 WebData data = Platform::current()->clipboard()->readImage(WebClipboard::Buf fer()); 327 WebImage image = static_cast<WebMockClipboard*>(Platform::current()->clipboa rd())->readRawImage(WebClipboard::Buffer());
328 WebImage image = WebImage::fromData(data, WebSize());
329 328
330 SkAutoLockPixels autoLock(image.getSkBitmap()); 329 SkAutoLockPixels autoLock(image.getSkBitmap());
331 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0) ); 330 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0) );
332 }; 331 };
333 332
334 TEST_F(WebViewTest, CopyImageAtWithPinchZoom) 333 TEST_F(WebViewTest, CopyImageAtWithPinchZoom)
335 { 334 {
336 std::string url = m_baseURL + "canvas-copy-image.html"; 335 std::string url = m_baseURL + "canvas-copy-image.html";
337 URLTestHelpers::registerMockedURLLoad(toKURL(url), "canvas-copy-image.html") ; 336 URLTestHelpers::registerMockedURLLoad(toKURL(url), "canvas-copy-image.html") ;
338 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(url, true, 0); 337 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(url, true, 0);
339 webView->resize(WebSize(400, 400)); 338 webView->resize(WebSize(400, 400));
340 webView->updateAllLifecyclePhases(); 339 webView->updateAllLifecyclePhases();
341 webView->setPageScaleFactor(2); 340 webView->setPageScaleFactor(2);
342 webView->setVisualViewportOffset(WebFloatPoint(200, 200)); 341 webView->setVisualViewportOffset(WebFloatPoint(200, 200));
343 342
344 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard); 343 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard);
345 344
346 webView->copyImageAt(WebPoint(0, 0)); 345 webView->copyImageAt(WebPoint(0, 0));
347 346
348 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard)); 347 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard));
349 348
350 WebData data = Platform::current()->clipboard()->readImage(WebClipboard::Buf fer()); 349 WebImage image = static_cast<WebMockClipboard*>(Platform::current()->clipboa rd())->readRawImage(WebClipboard::Buffer());
351 WebImage image = WebImage::fromData(data, WebSize());
352 350
353 SkAutoLockPixels autoLock(image.getSkBitmap()); 351 SkAutoLockPixels autoLock(image.getSkBitmap());
354 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0) ); 352 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0) );
355 }; 353 };
356 354
357 TEST_F(WebViewTest, CopyImageWithImageMap) 355 TEST_F(WebViewTest, CopyImageWithImageMap)
358 { 356 {
359 SaveImageFromDataURLWebViewClient client; 357 SaveImageFromDataURLWebViewClient client;
360 358
361 std::string url = m_baseURL + "image-map.html"; 359 std::string url = m_baseURL + "image-map.html";
(...skipping 2929 matching lines...) Expand 10 before | Expand all | Expand 10 after
3291 frame->setAutofillClient(&client); 3289 frame->setAutofillClient(&client);
3292 webView->setInitialFocus(false); 3290 webView->setInitialFocus(false);
3293 3291
3294 EXPECT_TRUE(webView->confirmComposition(WebString::fromUTF8(std::string("hel lo").c_str()))); 3292 EXPECT_TRUE(webView->confirmComposition(WebString::fromUTF8(std::string("hel lo").c_str())));
3295 EXPECT_EQ(1, client.textChangesFromUserGesture()); 3293 EXPECT_EQ(1, client.textChangesFromUserGesture());
3296 EXPECT_FALSE(UserGestureIndicator::processingUserGesture()); 3294 EXPECT_FALSE(UserGestureIndicator::processingUserGesture());
3297 frame->setAutofillClient(0); 3295 frame->setAutofillClient(0);
3298 } 3296 }
3299 3297
3300 } // namespace blink 3298 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/clipboard/DataObjectItem.cpp ('k') | third_party/WebKit/public/blink_headers.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698