| Index: content/renderer/android/content_detector.cc
|
| diff --git a/content/renderer/android/content_detector.cc b/content/renderer/android/content_detector.cc
|
| index 94d7e3d4b8c47bf91cdc5c0e106ec88dcdf33a0e..22a4fe91ffba98d13be0f6fb0633906a2ddf5f61 100644
|
| --- a/content/renderer/android/content_detector.cc
|
| +++ b/content/renderer/android/content_detector.cc
|
| @@ -9,54 +9,36 @@
|
| #include "third_party/WebKit/public/web/WebHitTestResult.h"
|
| #include "third_party/WebKit/public/web/WebSurroundingText.h"
|
|
|
| -using blink::WebRange;
|
| +using blink::WebURL;
|
| +using blink::WebHitTestResult;
|
| using blink::WebSurroundingText;
|
|
|
| namespace content {
|
|
|
| -ContentDetector::Result::Result() : valid(false) {}
|
| -
|
| -ContentDetector::Result::Result(const blink::WebRange& content_boundaries,
|
| - const std::string& text,
|
| - const GURL& intent_url)
|
| - : valid(true),
|
| - content_boundaries(content_boundaries),
|
| - text(text),
|
| - intent_url(intent_url) {
|
| -}
|
| -
|
| -ContentDetector::Result::Result(const Result& other) = default;
|
| -
|
| -ContentDetector::Result::~Result() {}
|
| -
|
| -ContentDetector::Result ContentDetector::FindTappedContent(
|
| - const blink::WebHitTestResult& hit_test) {
|
| +WebURL ContentDetector::FindTappedContent(const WebHitTestResult& hit_test) {
|
| if (hit_test.isNull())
|
| - return Result();
|
| + return WebURL();
|
|
|
| std::string content_text;
|
| - blink::WebRange range = FindContentRange(hit_test, &content_text);
|
| - if (range.isNull())
|
| - return Result();
|
| + if (!FindContentRange(hit_test, &content_text))
|
| + return WebURL();
|
|
|
| - GURL intent_url = GetIntentURL(content_text);
|
| - return Result(range, content_text, intent_url);
|
| + return GetIntentURL(content_text);
|
| }
|
|
|
| -WebRange ContentDetector::FindContentRange(
|
| - const blink::WebHitTestResult& hit_test,
|
| - std::string* content_text) {
|
| +bool ContentDetector::FindContentRange(const WebHitTestResult& hit_test,
|
| + std::string* content_text) {
|
| // As the surrounding text extractor looks at maxLength/2 characters on
|
| // either side of the hit point, we need to double max content length here.
|
| WebSurroundingText surrounding_text;
|
| surrounding_text.initialize(hit_test.node(), hit_test.localPoint(),
|
| GetMaximumContentLength() * 2);
|
| if (surrounding_text.isNull())
|
| - return WebRange();
|
| + return false;
|
|
|
| base::string16 content = surrounding_text.textContent();
|
| if (content.empty())
|
| - return WebRange();
|
| + return false;
|
|
|
| size_t selected_offset = surrounding_text.hitOffsetInTextContent();
|
| for (size_t start_offset = 0; start_offset < content.length();) {
|
| @@ -69,18 +51,14 @@ WebRange ContentDetector::FindContentRange(
|
| size_t content_end = start_offset + relative_end;
|
| DCHECK(content_end <= content.length());
|
|
|
| - if (selected_offset >= content_start && selected_offset < content_end) {
|
| - WebRange range = surrounding_text.rangeFromContentOffsets(
|
| - content_start, content_end);
|
| - DCHECK(!range.isNull());
|
| - return range;
|
| - } else {
|
| + if (selected_offset >= content_start && selected_offset < content_end)
|
| + return true;
|
| + else
|
| start_offset += relative_end;
|
| - }
|
| }
|
| }
|
|
|
| - return WebRange();
|
| + return false;
|
| }
|
|
|
| } // namespace content
|
|
|