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

Unified Diff: chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc

Issue 1153283005: Revert "Revert of Refactor get_salient_image_url.js to use DocumentImageExtractor" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add closure_out_dir var to components/resources/enhanced_bookmarks/BUILD.gn Created 5 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc
diff --git a/chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc b/chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc
index 61e5b3bb69a31737829d37f65d5c38eeb95ff908..5f8bd9c2565ec15b07c5adcaa450d6c9ae6356b3 100644
--- a/chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc
+++ b/chrome/browser/enhanced_bookmarks/android/bookmark_image_service_android.cc
@@ -17,7 +17,7 @@
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
-#include "content/public/common/referrer.h"
+#include "grit/enhanced_bookmarks_resources.h"
#include "net/base/load_flags.h"
#include "skia/ext/image_operations.h"
#include "ui/base/device_form_factor.h"
@@ -87,7 +87,7 @@ void BookmarkImageServiceAndroid::RetrieveSalientImage(
}
void BookmarkImageServiceAndroid::RetrieveSalientImageFromContext(
- content::RenderFrameHost* render_frame_host,
+ content::WebContents* web_contents,
const GURL& page_url,
bool update_bookmark) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -109,18 +109,25 @@ void BookmarkImageServiceAndroid::RetrieveSalientImageFromContext(
return;
}
- if (script_.empty()) {
- script_ =
- base::UTF8ToUTF16(ResourceBundle::GetSharedInstance()
- .GetRawDataResource(IDR_GET_SALIENT_IMAGE_URL_JS)
- .as_string());
+ if (dom_initializer_script_.empty()) {
+ dom_initializer_script_ =
+ base::UTF8ToUTF16(
+ ResourceBundle::GetSharedInstance()
+ .GetRawDataResource(IDR_DOM_INITIALIZER_GEN_JS)
+ .as_string());
}
+ blink::WebReferrerPolicy policy =
+ web_contents->GetController().GetVisibleEntry()->GetReferrer().policy;
+
+ content::RenderFrameHost* render_frame_host = web_contents->GetMainFrame();
+
render_frame_host->ExecuteJavaScriptInIsolatedWorld(
- script_,
+ dom_initializer_script_,
base::Bind(
- &BookmarkImageServiceAndroid::RetrieveSalientImageFromContextCallback,
- base::Unretained(this), page_url, update_bookmark),
+ &BookmarkImageServiceAndroid::InitializeDomCallback,
+ base::Unretained(this), policy, render_frame_host, page_url,
+ update_bookmark),
chrome::ISOLATED_WORLD_ID_CHROME_INTERNAL);
}
@@ -141,13 +148,36 @@ void BookmarkImageServiceAndroid::FinishSuccessfulPageLoadForTab(
urls.push_back(entry_original_url);
for (GURL url : urls) {
if (enhanced_bookmark_model_->bookmark_model()->IsBookmarked(url)) {
- RetrieveSalientImageFromContext(web_contents->GetMainFrame(), url,
+ RetrieveSalientImageFromContext(web_contents, url,
update_bookmark);
}
}
}
+void BookmarkImageServiceAndroid::InitializeDomCallback(
+ blink::WebReferrerPolicy policy,
+ content::RenderFrameHost* render_frame_host,
+ const GURL& page_url,
+ bool update_bookmark,
+ const base::Value* result) {
+ if (get_salient_image_url_script_.empty()) {
+ get_salient_image_url_script_ =
+ base::UTF8ToUTF16(
+ ResourceBundle::GetSharedInstance()
+ .GetRawDataResource(IDR_GET_SALIENT_IMAGE_URL_GEN_JS)
+ .as_string());
+ }
+
+ render_frame_host->ExecuteJavaScriptInIsolatedWorld(
+ get_salient_image_url_script_,
+ base::Bind(
+ &BookmarkImageServiceAndroid::RetrieveSalientImageFromContextCallback,
+ base::Unretained(this), policy, page_url, update_bookmark),
+ chrome::ISOLATED_WORLD_ID_CHROME_INTERNAL);
+}
+
void BookmarkImageServiceAndroid::RetrieveSalientImageFromContextCallback(
+ blink::WebReferrerPolicy policy,
const GURL& page_url,
bool update_bookmark,
const base::Value* result) {
@@ -181,15 +211,6 @@ void BookmarkImageServiceAndroid::RetrieveSalientImageFromContextCallback(
dict->GetString("referrerPolicy", &referrerPolicy);
dict->GetString("imageUrl", &image_url);
- // The policy strings are guaranteed to be in lower-case.
- blink::WebReferrerPolicy policy = blink::WebReferrerPolicyDefault;
- if (referrerPolicy == "never")
- policy = blink::WebReferrerPolicyNever;
- if (referrerPolicy == "always")
- policy = blink::WebReferrerPolicyAlways;
- if (referrerPolicy == "origin")
- policy = blink::WebReferrerPolicyOrigin;
-
in_progress_page_urls_.insert(page_url);
Referrer referrer =

Powered by Google App Engine
This is Rietveld 408576698